第2章 古典密码学体制
– 密文: giffg hddn0 njngn cuaa0 inano meiog – 解密:加密的逆过程; 463521
6
课堂练习
•
对明文”can you believe her‖分别按以下算 法加密,求密文。
1. 2. 3. 4.
倒序置换密码; 密钥为3421的周期置换密码; 密钥为love的周期置换密码; 密钥为love的列置换密码;
– Vigenere密码;
• (4)多字母组代替密码(polygram substitution cipher)
– Playfair密码
10
同音代替密码
• homophonic Substitution cipher • 与简单代替密码系统相似,唯一的不同是单个字符可以映 射成密文的几个字符之一。 • 一个明文字母表的字母a,可以变换为若干密文字母f(a), 称为同音字母。 • 同样的明文,加密所得的密文可能不相同。 • 举例:
明文:M=m1m2…mi…ml 密文:C=c1c2 …c i …c l 工作钥:K=K1 K 2 …K i …K l
•
加密变换:
– – –
•
例:用户钥为cat,对明文“vigenere cipher‖加密
–
加密:ci=mi+Ki mod n,其中n为明文字母表的长度
M: K: C:
v c x
i a i
• 置换起到扩散(diffusion)的作用,代替起到混乱 (confusion)的作用。 • 扩散(diffusion)和混乱(confusion)是对称密码 设计的基本思想。置换和代替在现代密码设计中 仍然被采用:S盒,P盒;SP结构。
3
提纲
• 1 置换密码 • 2 代替密码 • 3 转轮机 • 4 ENIGMA的兴亡 • 作业
/
17
• 例:用Playfair密码加密明文“BOOKSTORE‖,密钥为 harpsicod
H I E M V
A C F N W
R O G Q X
P D K T Y
S B L U Z
明文填充规则:
– ①连续的相同字符间用X填充; – ②明文总长为偶数,末尾用X填充;
古典密码体制
1
古典密码与现代密码
• Classical Cryptography 古典密码学 • Contemporary Cryptography 现代密码学 • 许多古典密码都不能抵抗统计分析攻击。
– 替换密码虽然可以抗击穷举密钥攻击,但密码分析者可以利用英 文语言的统计规律来破译 – 经典密码分析的许多技术利用了英文语言的统计特性。
– – – – – – –
明文:ming chen jiu dian fa dong fan gong 加密密钥:3421(i=1,2,3,4的一个置换f (i) =3,4,2,1) 加密:将明文分组(4个字母一组),然后根据规定顺序变换 ming chen jiud ianf adon gfan gong ngim enhc udij nfai onda anfg ngog 密文:ngimenhcudijnfaiondaanfgngog 解密密钥:4312(3421的逆置换)
43,44
28,29,34 39
T
U V W X Y
18,23,24,30,40
37 21
G
H I J K L M 2,3,31 4,8
w
31 l 41 c
a
32 c 42 d
t
33 a 43 f
t
34 h 44 f
a
35 p
c
36 a
n
37 v
h
38 p
h
39 i
t
40 t
Z
“数字-字母”对应表
/
– 密钥:为一段给定的短文; – 将短文每一单词的首字母和一个数字(此单词在短文中出现的顺 序)对应,可得到一个1对多的“字母-数字”对应表; – 加密:明文字母可用其在对应表中的任何一个数字代替;
11
Canada’s large land mass and Scattered population make efficient comm. a necessity. Extensive railway, road and other transportation systems, as well as telephone, telegraph, and Cable networks, have helped to Link communities and have played a vital part in the Country’s development for future.
5,11,16,20,22,25 ,33,36 N O P 1,10,26,32,41 42 9,13 Q R S 14,15 6,19, 12,27 17 7,35,38
A
B 1 c 11 a 21 2 l 12 n 22 3 l 13 e 23 4 m 14 r 24 5 a 15 r 25 6 s 16 a 26 7 p 17 o 27 8 m 18 t 28 9 e 19 s 29 10 c 20 a 30 C D E F
5
置换密码(2)
• (3)列置换密码(距阵置换密码)
– 明文:
ming chen jiu dian fa dong fan gong – 密钥:yu lan hua – 加密:
• 去掉密钥重复字母:yulanh,得出距阵 列数为6;将明文按行填充距阵。 • 得到密钥字母顺序: 653142; • 按列(依顺序)写出距阵中的字母。
17
7,35,38 14,15 6,19 18,23,24,30,40 37 21
R
S T U V W X Y
E
F G H I J K L M
a
21 w 31 l 41 c
n
22 a 32 c 42 d
e
23 t 33 a 43 f
r
24 t 34 h 44 f
r
25 a 35 p
a
26 c 36 a
A B 1 c 11 2 l 12 3 l 13 4 m 14 5 a 15 6 s 16 7 p 17 8 m 18 9 e 19 10 c 20 C D 1,10,26,32,41 42 9,13 43,44 28,29,34 5,11,16,20,22,25,3 3,36 N 12,27
O
P Q
7
明文“can you believe her”
提纲
• 1 置换密码 • 2 代替密码 • 3 转轮机 • 4 ENIGMA的兴亡 • 作业
9
• 代替密码( Substitution cipher)就是明文中的每一个字符 被替换成密文中的另一个字符。接收者对密文进行逆替换 恢复出明文。 • (1)简单代替密码(simple substitution cipher):
18
•
•
The most well known digraph substitution cipher is the Playfair cipher, invented by Sir Charles Wheatstone. As well as devising the Playfair cipher he also invented the Wheatstone bridge. He also initiated the usage of electromagnets in electric generators and devised the stereoscope, a device for viewing pictures in three dimensions still used today. The Playfair cipher was named for Lyon Playfair, the first Baron Playfair of St. Andrews, who championed its usage at the British Foreign Office (although he was unsuccessful).
这本书中,他发明了自动密钥密码,这是一种理论上不可破译的加密算法。
15
多字母组代替密码-Playfair密码
• • • • • polygram substitution cipher 字符块成组加密的一种。 Playfair密码是一种2字母组代替密码。 密钥:由25个英文字母(除去J)组成的5阶方阵。 每一对明文字母m1和m2,都根据以下5条规则进行加密:
(1) 分组(2个为一组)加密:
– – – – – BO,同行,右,B→I,O→D OK,长方形,顶点,O→D,K→G ST,长方形,顶点,S→P,T→U OR,同列,下, O→G,R→O EX (填充X) ,长方形,顶点, E→G,X→V
Playfair密钥方阵
(2) 密文:IDDGPUGOGV
• 课堂练习:使用密钥加密明文“attack at nine morning‖ • 思考:解密算法?
– 明文的一个字符用相应的一个密文字符代替;亦称为单表 (monoalphabetic)代替密码; – 加法密码(例:Caesar密码),乘法密码,仿射密码;
• (2)同音代替密码(homophonic substitution cipher) • (3)多表代替密码(polyalphabetic substitution cipher)“字母-数字”对应表 Nhomakorabea13
多表代替密码-Vigenere
• • • Polyalphabetic substitution cipher,由多个简单的代替密码构成。 Vigenere密码是周期代替密码
chap2-古典密码
25个可能的密钥k,适用Brute-Force Cryptanalysis
明文的语言是已知的且易于识别
恺撒密码的特点
单字母密码(简单替换技术) 简单,便于记忆 缺点:结构过于简单,密码分析员只使用很
Cryptography” 提出了不对称密钥密
▪ 1977年Rivest,Shamir & Adleman提出了RSA公钥算法 ▪ 90年代逐步出现椭圆曲线等其他公钥算法 ▪ 主要特点:公钥密码使得发送端和接收端无密钥传输的保密
通信成为可能
第3阶段 1976~
▪ 1977年DES正式成为标准 ▪ 80年代出现“过渡性”的“Post DES”算法,如
Chap2 古典密码
密码学的发展历史
三个阶段:古代加密方法、古典密码和近代密码。
1.古代加密方法(手工阶段)
从某种意义上说,战争是科学技术进步的催化剂。人类自从有了战 争,就面临着通信安全的需求,密码技术源远流长。 古代加密方法大约起源于公元前440年出现在古希腊战争中的隐写术 。当时为了安全传送军事情报,奴隶主剃光奴隶的头发,将情报写 在奴隶的光头上,待头发长长后将奴隶送到另一个部落,再次剃光 头发,原有的信息复现出来,从而实现这两个部落之间的秘密通信 。
➢ 1967年David Kahn的《The Codebreakers》 ➢ 1971-73年IBM Watson实验室的Horst Feistel等几篇技术报告
▪ 主要特点:数据的安全基于密钥而不是算法的保密
第3阶段 1976~
▪ 1976年:Diffie & Hellman 的 “New Directions in
2-1 古典密码
广义的单表代换
• 设P=C=Z/(26),K是由26个符号0,1,..,25的所有可能 置换组成。任意π∈K,定义e π(x)= π(x)=y 且 d π(y)=π-1(y)=x, π-1是π的逆置换。 注: 1*. 置换π的表示: 0 1 2 3 ..23 24 25 π= 0' 1' 2' 3' ..23' 24' 25' 2*密钥空间K很大,|k|=26! ≈ 4×1026,破译者穷举搜索 是不行的,然而,可由统计的方式破译它。 3*移位密码、乘数密码、仿射密码算法都是单表代换密 码。
• •
依然保留了字符频率某些统计信息 重码分析法:间距是密钥长度整数倍的相同子串有相 同密文,反过来,密文中两个相同的子串对应的密文 相同的可能性很大。
a b c d e f g h i j k l m 000102 030405 060708 091011 12 n o p q r s t u v w x y z 131415 161718 192021 222324 25 密钥: cryptographycryptographycr 明文: yourpackagereadyroomathree 密文: AFSGIOI PG PG
Playfair密码分析
• • • •
Playfair有26×26=676种字母对组合 字符出现概率一定程度上被均匀化 基于字母频率的攻击比较困难 依然保留了相当的结构信息
Hill密码(1929)
• •
基于矩阵的线性变换: K是一个m*m矩阵,在Z/(26)上可逆,即存在K-1使得: KK-1 = I (在Z/(26)) 对每一个k∈ K,定义ek(x)=xK (mod 26) 和 dk(y)=yK-1 (mod 26) 注:明文与密文都是 m元的向量(x1, x2 …, xm );(y1, y2,…,ym),Z/(26)为同余类环。在这个环上的可逆矩阵 Amxm,是指行列式detAmxm的值∈ Z*/(26),它为Z/(26)中全 体可逆元的集合。Z*/(26)= {a ∈Z/(26)|(a,26)=1}, Z*/(26)={1,3,5,7,9,11,15,17,19,21,23,25}
密码学-第2章古典密码
问题:
置换和换位的定义、区别?
作业:
习题2.1、2.2、2.3、2.4、2.6
抽象代数
群:由一个非空集合和一个二元运算组成,并满 足封闭性、结合性、单位元、逆元的代数系统。
乘法群
环:一个集合,可以在其上进行加法和乘法运算 而封闭。
交换环:对于乘法运算可交换
域:非零元都有乘法逆的交换环。
设明文m = (m1, m2, …, mn) ∈Z26n,密文c= (c1, c2, …, cn) ∈ Z26n ,密钥为Z26上的的n×n阶可逆 方阵K = (kij) n×n ,则 c = mK mod 26, m = cK-1 mod 26。
例2.4 设n=2,密钥为 11 8 7 18 -1 K= ,容易计算 K = 3 7 23 11 设明文为Hill, 则相应的明文向量为(7,8)和( 11,11)。于是,相应的密文向量 分别为 11 (7,8) 3 11 ( 11,11) 3 8 77 24, 56 56 )=(23,8), =( 7 8 121 33, 88 77 )=(24, 9 ), =( 7
表2.4称为Vigenere方阵(书P12)。当用密钥字 母ki对明文字母mi进行加密时,Vigenere方阵中 的第ki行第mi列的字母就是相应的密文字母。
例2.2
设明文为 This cryptosystem is not secure, 密钥为cipher, 则密文为:
VPXZGI AXIVWP UBTTMJ PWIZIT WZT。
有限域(伽罗瓦域):GF(2)
第2章 古典密码
主要内容
古典密码中的基本加密运算 几种典型的古典密码体制 古典密码的统计分析
第2章古典密码学-PPT文档资料
(x , y Z ) 26
7 mod 26 15 ,3 ), x ) 7 x 3 , • 例2.3 假定 k (7 ,加密函数为 e k( ( y ) 15 ( y 3 ) 15 y 19 则相应的解密函数为 d ,其中所有的运算都 k ( e ( x )) d ( 7 x 3 ) 15 ( 7 x 3 ) 19 x 45 19 x 是在 Z 26 中。容易验证 d 。 k k k 加密明文hot。
第2章 古典密码学
2.1古典密码学体制
2.1.1定义和分类
– 一个密码系统(Cryptosystem)是一个五元组 (P,C,K,E,D)满足条件: (1)P是可能明文的有限集;(明文空间) (2)C是可能密文的有限集;(密文空间) (3)K是一切可能密钥构成的有限集;(密钥空间) (4)任意 ,有一个加密算法 和相应的解密 k,使得 K 算法 和 ek E 分别为加密、 e C dk D d P 。 解密函数,满足 k : P k :C
• 仿射密码
– 设PCZ ,且
26
( a ,b ) K K ( a , b ) Z Z : gcd( a , 26 ) 1 对 k ,定义 26 26
1 e ( x ) ax bmod 26 ( y ) a ( y b ) mod 26 且 d k
1
首先转化这三个字母分别为数字7,14和19。然后加密
3 7 0 A X(mod 7 14 3 23 26 ); 19 3 6 G
• 替换密码
26 ,密钥空间K由所有可能的26个 – 设 PCZ 符号0,1,…….,25的置换组成。对每一个 置换 ,定义
应用密码学2-古典密码
cryp togr aphy XI BK GLT I ZKSB 这就是一种替代密码。
例:n长的英文字母串上的置换。(共有n!种) 将crptography的第一位字母和最后一个字母对调,
将第二位字母和导数第二位字母对调,依次类推, 产生一个置换。
Ee (m) (e(m1)e(m2 )) (c1c2 ) c 单表替代是用一个固定的置换 e。 对 c 解密时,计算,d e1
Dd (c) (d (c1)d (c2 )) (m1m2 ) m
恺撒密码就是单表替代密码,如果我们用数字 0,1,2,……24,25
分别表示字母A,B,C,……Y,Z,则密文字母
设 S 是一个有限集合,置换p 是从 S 到 S 的一 个双射。
如果p是(1,2, … ,n)到(1,2, … ,n)的一个置换,
则记为
p
1 p(1)
2 p(2)
n p(n)
例: S=(1,2,3,4,5), 一个置换 p:S-> S 定义为: p(1)=3, p(2)=5, P(3)=4, p(4)=2, p(5)=1,
可用明文字母 表示为: 3 (mod 26)
例如明文字母为Y,即 24 ,则
24 3 27 1 (mod 26)
因此密文为B。这里密钥就是3。
因为置换限制为移位,所以这类密码又称为移位密码。 (s就是用一系列的不同置换替代明文中的字母 。 也就是在不同字母位置使用不同的替换规则。 A是含有 q 个符号的字母表 M是 A 上的长度为 n 的所有符号串的集合 密钥空间 K 包含所有有序的 n 个置换( p1, p2, pn ) 的集合, 每个置换都定义在A上。
密码学第2章 古典密码体制
2. 古典密码举例
➢ 古典密码的主要技术手段:代换(Substitution)和置 换(Permutation),相应的密码系统称为代换密码和 置换密码。
➢ 代换密码又分为单字母代换密码和多字母代换密码。 ➢ 单字母代换密码又分为单表代换密码和多表代换密码。 ➢ 字母怎样进行加解密操作?
ABCDE FGH I J K L M 0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U VWX Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
2.1 移位密码(Shift Cipher)
➢ 模运算 定义 2.2:假设 a 和 b 均为整数, m 是一正整数。若 m 整 除 b a 则可将其表示为 a b(modm) 。式 a b(modm) 读 作“ a 与 b 模 m 同余”,正整数 m 称为模数。
密码体制 2.1:移位密码(加法密码)
令 26 。对 0 K 25,任意 x, y Z26 ,定义
以及
eK (x) (x K ) mod 26
dK ( y) ( y K ) mod 26
➢ 密码体制 2.1 给出了移位密码。因为英文有 26 个字母, 故其一般定义在 26 上。很容易验证移位密码满足前面所 定 义 的 密 码 体 制 的 条 件 , 对 任 意 的 x 26 , 有 d K (eK (x)) x 。
(ab)c a(Biblioteka c)9、 1 是乘法单位元:对任意的 a m ,有 a 1 1 a a 10、乘法和加法之间存在分配律:对任意的 a,b, c m ,
有 (a b)c (ac) (bc) , a(b c) (ab) (ac)
应用密码学第2章古典密码体制参考答案
第2章 古典密码体制1.当k=5,b=3时,用仿射密码加密这些字符:WO SHI XUESHENG 解:加密公式:c=e(p)=5p+3(mod26)首先转化把这些字母转换成数字:22,14,18,7,8,23,20,4,18,7,4,13,6 然后加密;)26(mod 716231215232514171215219)26(mod 3333333333333613471842023871814225⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡+⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡H Q X M P X Z O R M P V G 所以,加密后为:GV PMR OZXPMXQH 。
2.使用Vigenere 方案,给出密文:ZICVTWQNGRZGVTW A VZHCQYGLMGJ ,找出对应下列明文的密钥:W earediscoveredsaveyourself 。
解:明文:W e a r e d i s c o v e r e d s a v e y o u r s e l f 密文:Z IC VTWQNGR ZGVTWAVZH CQ YGLMGJ 将字幕转化成数字,再计算。
结果密钥为:3 4 2 4 15 19 8 21 43.分析Vigenere 密码体制的安全性,并编程实现Vigenere 密码算法。
解:Vigenere 密码的强度在于对每个明文字母有多个密文字母对应,因此该字母的频率信息是模糊的。
实际上,维吉尼亚(Vigenere )密码是一种多表加密算法,在密文的不同位置出现的字符通常不是以同样的方式加密的,但它是一种周期密码,如果两个同样的字符出现的间隔固定,并且为密钥长度的倍数,则它们将以同样的方法进行加密。
第04讲-古典密码2
By
的重合指数与Biblioteka 然语言的重合指数近似相等。JX
Y
原 理:
多表代替密码分析
定义:设 x
= x1 x2 ...xn
是一个长度为n的英文字母
我们有:
其中 f i (i = 0,1,...25) 表示第i个英文字母在x 中出现 的次数。
2015/3/23
By
I c ( x) =
JX
∑ f (f
By
设明文为 m = (m1 , m2 ,...mn ) ,k = (k1 , k 2 ,...k n ) 为密钥,
加解密过程为 ci = mi ⊕ ki
mi = ci ⊕ ki
2015/3/23
JX
Y
c = (c1 , c2 , )
Vernam体制
密码分析
当密钥重复使用时,可以通过明密文的对应关系猜
2015/3/23
By
JX
Y
多表代替密码分析
以Vigenere密码为例
· Kasiski测试法 (估测) · 重合指数法(验证)
2015/3/23
By
2.确定密钥字
· 交互重合指数
JX
1.确定密钥字长度。
Y
多表代替密码分析
确定密钥字长度——Kasiski测试法
1. 两个相同的明文片段之间的距离如果是密钥 字长度的倍数,则它们所对应的密文片段一 2. 反之,若密文中出现两个相同的密文片段 (长度>3),则它们对应的明文片段极有可能 相同。
2015/3/23
JX
l, Y j
l
l
Y
表示 用 l 作为加法密码的
教材P22,表2.10
密码编码学与网络安全 向金海 02-古典密码算法.ppt
128
2128 = 3.4 1038 2127 µs = 5.4 1024 years
5.4 1018 years
168
2168 = 3.7 1050 2167 µs = 5.9 1036 years
5.9 1030 years
26 characters (permutation)
基于密钥的算法,按照密钥特点 对称密码算法(传统密码算法或单钥密码算法) 非对称算法(公开钥密码算法或双钥密码算法)
按照明文处理方式 分组密码 流密码
*
7
安全要求
加密算法必须足够强
最低要求:已知密文时不能破译该密文或由密文 推导出密钥;
加强形式:已知某些明、密文对,也不能由此破 译出新的密文或发现密钥。
32
232 = 4.3 109
56
256 = 7.2 1016
Time required at 1 decryption/µs
231 µs = 35.8 minutes
255 µs = 1142 years
Time required at 106 decryptions/µs
2.15 milliseconds
惟密文攻击,ciphertext only
only know algorithm & ciphertext, is statistical, know or can identify plaintext
已知明文攻击,known plaintext
know/suspect plaintext & ciphertext
加密算法必须是足够强的 a strong encryption algorithm
密码学第2章 古典密码体制共73页
4、 0 是加法单位元:对任意的 a Zm ,有 a 0 0 a a 5、 任何元素存在加法逆元: a 的逆元为 m a ,因为
a (m a) (m a) a 0
6、 对乘法运算封闭:对任意的 a,b Zm ,有 ab Zm 7、 乘法运算满足交换律:对任意的 a,b Zm ,有 ab ba 8、 乘 法 运 算 满 足 结 合 律 : 对 任 意 的 a,b, c Zm , 有
e(x) (ax b) mod 26
a,b Z26 。因为这样的函数被称为仿射函数,所以也 将这样的密码体制称为仿射密码。 可以看出当 a 1 时其对应的正是移位密码。当 b 0 是 称为乘积密码。
为了能对密文进行解密,必须保证所选用的仿射函数 是一单射(可逆)函数。
即对任意 y Z26 ,同余方程 ax b y(mod26) 有唯一 解x。
(ab)c a(bc)
9、 1 是乘法单位元:对任意的 a Zm ,有 a 1 1 a a 10、乘法和加法之间存在分配律:对任意的 a,b, c Zm ,
有 (a b)c (ac) (bc) , a(b c) (ab) (ac)
性质 1,3-5,说明 Zm 关于其上定义的加法运算构成一 个群;若再加上性质 2,则构成一个交换群(阿贝尔群)。
按照上表应有 e (a) X , e (b) N ,等等。
解密函数是相应的逆置换。由下表给出:
A B CD E F GH I J KLM d l r y v o h e z xwp t
N O P Q R S T U VWX Y Z b g f j q nmu s k a c i
