1、1,古典密码学,现代密码学第二讲,上讲内容回顾,密码学分类 密码学与信息安全的关系,本章主要内容,代换密码 置换密码 Hill密码 转轮密码 古典密码的惟密文攻击方法,密码分类,代换密码( substitution ):代换是古典密码中用到的最基本的处理技巧。所谓代换,就是将明文中的一个字母由其它字母、数字或符号替代的一种方法。 凯撒密码 仿射密码 单表代换 多表代换 置换密码(permutation):将明文字符按照某种规律重新排列而形成密文的过程。 Hill密码 转轮密码,凯撒密码(caesar cipher),已知最早的代换密码,又称移位密码 代换表(密钥): a b c d e f g
2、 h i j k l m n o p q r s t u v w x y z D E F G H I J K L M N O P Q R S T U V W X Y Z A B C 数学描述: 用数字表示每个字母: a b c d e f g h i j k l m n o p q r s t u v w x y Z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25c = E(p) = (p + k) mod (26) p = D(c) = (c k) mod (26)明文p Z26,密文c Z26 ,密钥k
3、取1,25,只有25个,凯撒密码,例:使用其后的第三个字母代换该字母 明文:meet me after the toga party 密文:PHHW PH DIWHU WKH WRJD SDUWB,恺撒密码的攻击,已知明文和密文、加密和解密算法,需要解同余方程,可以恢复密钥k = (c- p) mod (26); 穷举攻击:已知密文,且明文为有意义字符,至多尝试25次,可以恢复明文.,仿射密码(Affine Cipher),移位密码的扩展 明文p Z26,密文c Z26 , 密钥k=(a,b) Z26 Z26, 且gcd(a,26)=1.加密: c = E(p) = (a p + b) mod
4、 26 解密: p = D(c) = (c b) a-1mod 26,例:令密钥k=(7,3), 且gcd(7,26)=1.明文hot=(7,14,19) 加密: (7 7 + 3) mod 26 = 0 (7 14 + 3) mod 26 =23 (7 19 + 3) mod 26 =6 密文为(0,23,6)=(a,x,g) 解密:7-1=15=-11 mod 26 (0- 3) 15 mod 26 = 7 (23- 3) 15 mod 26 =14 (6- 3) 15 mod 26 =19 明文为(7,14,19)=(h, o,t),仿射密码,仿射密码,练习:令密钥k=(9,3), 且g
5、cd(5,26)=1.明文hot=(7,14,19),求加解密过程。,已知两对明文和密文(p1,c1)和(p2,c2)、加密和解密算法,需要解2元同余方程组,可以恢复密钥k=(a,b); c1 = (a p1 + b) mod 26 c2 = (a p2 + b) mod 26 穷举攻击:已知密文,明文为有意义字符,至多尝试26*(26)个,可以恢复明文.,仿射密码,单表代换密码 ( Monoalphabetic Cipher ),代换表是26个字母的任意置换 例:,加密函数:,解密函数:,明文: if we wish to replace letters 密文: WI RF RWAJ UH
6、YFTSDVF SFUUFYA,单表代换密码,练习: 明文: nice work,求密文。,单表代换密码,已知明文和密文,可以恢复部分加密函数(解密函数); 穷举攻击:已知密文,明文为有意义字符,至多尝试26! = 4 x 1026 个,可以恢复明文,代换表的个数为26!,多表代换密码 (Polyalphabetic Ciphers),加密明文消息时采用不同的单表代换,由密钥具体决定采用哪个表代换消息,密钥通常是一个词的重复。简化的多表代换密码 -维吉尼亚密码( Vigenre Cipher ):由26个类似 caesar密码的代换表组成,多表代换密码,维吉尼亚密码:在长为m的密码中,任何一个
7、字母可被影射为26个字母中的一个明文p (Z26)m,密文c (Z26)m ,密钥k (Z26)m 加密c= (p1+k1 ,p2+k2 , , pm+km) mod 26;解密 p = (c1-k1 ,c2-k2 , , cm-km) mod 26.,多表代换密码,例,多表代换密码,练习: 明文: nice work,密钥:hot,求密文。,多表代换密码,已知m个连续的明文和密文,可以恢复维吉尼亚密码的单表移位量(即密钥); 穷举攻击:已知密文,明文为有意义字符,至多尝试26m 个,可以恢复明文,密钥空间大小是26m,置换密码,加密变换使得信息元素只有位置变化而形态不变,如此可以打破消息中的
8、某些固定模式(结构)明文p (Z26)m,密文c (Z26)m ,密钥k |定义在1,2,m上的置换加密c= (p (1) ,p ( 2) , , p ( m) mod 26;解密 p = (c -1(1) ,c -1(2) , , c -1(m) mod 26.,置换密码,例 密钥,明文:she sells sea shells by the sea shore 分组:shesel lsseas hellsb ythese ashore 置换:ELSEHS SSLASE LBHSEL HEYSTE HEARSO,置换密码,练习: 明文: nice work求密文。,置换密码,已知多对明文和密
9、文,可以推导置换表(即密钥); 穷举攻击:已知密文,明文为有意义字符,至多尝试m! 个,可以恢复明文,分组为m,至多有m!个置换,希尔密码(Hill cipher),1929年,LesterS. Hill提出明文p (Z26)m,密文c (Z26)m ,密钥K 定义在Z26上m*m的可逆矩阵加密c = p * K mod 26解密p = c * K-1 mod 26,扩散,希尔密码,例,希尔密码,置换密码可以看做是希尔密码的特例。 练习:设hill密码的密钥如下,求对应置换密码的置换表。,希尔密码,已知m组明文和密文、加密和解密算法,需要解m元同余方程组,可以恢复密钥;穷举攻击:已知密文,明文
10、为有意义字符,至多尝试26m*m个,可以恢复明文,转轮密码(Rotor Machine),19世纪20年代,开始出现机械加解密设备,最典型的是转轮密码机 1918年Arthur Scherbius发明的EIGMA,瑞典Haglin发明的Haglin,和日军发明的“紫密”和“兰密”都属于转轮密码机。,转轮密码,Enigma密码机,转轮密码,惟密文攻击,在攻击者可以截获(足够)明密文的条件下,易于恢复用户的密钥; 当攻击者只能窃听到密文时,若明文是有意义的(一段话等具有可读性)字符时,利用穷举搜索,可以通过密文解密出对应明文,继而恢复密钥。(穷举搜索的复杂度取决于密钥空间的大小,古典密码体制的密钥
11、空间通常比较小。),当攻击者只能窃听到密文时,是否有其它更有效攻击方法? 若明文是无意义的随机字符时,攻击者是否可以获得明文或密钥的相关信息?,惟密文攻击,人类的语言存在冗余,以英文文档为例 字母 e 是使用频率最高的 其次是 T,R,N,I,O,A,S Z,J,K,Q,X 很少使用 A、I、U很少用在词尾,E、N、R常出现在词尾。E、S、D作为字母结尾字母的单词超过一半,T、A、S、W为起始字母的单词约占一半。,惟密文攻击,惟密文攻击,对于双字母组合, 三字母组合,惟密文攻击,统计攻击(频率攻击) 假设:根据分析假设某些结论。 推断:在假设的前提下,推断出一些结论。 双频 字母跟随关系 构词
12、规则 词义 验证发展:填上破译出的字母,根据词义、构词规则不断发展,惟密文攻击,移位密码、仿射密码和单表代换密码都没有破坏明文的频率统计规律,可以直接用统计分析法 例: 截取一段仿射密码的密文 c=ap+b mod 26,惟密文攻击,统计得到R(8),D(7),E,H,K(5),S,F,V(4),密文出现字母频率统计,惟密文攻击,令R=E(e),D=E(t),得到方程组 a b c d e f g h i j k l m n o p q r s t u v w x y Z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
13、 24 25解得a=6 , b= 19 ; 其中gcd(6,26)=21,故猜测错误。,惟密文攻击,1、 令R=E(e),E=E(t)?a=13 2、R=E(e),H=E(t)? a=8 3、R=E(e),K=E(t), a=3,b=5,第3组解有效,则解密函数p=(c-5)*3-1=9c-19 解密得明文:algorithms are quite general definitions of arithmetic processes.,惟密文攻击,练习:已知用户用移位密码加密,密文为“KHOOR,HYHUB RQH”,用统计法求密钥和对应明文 a b c d e f g h i j k l
14、m n o p q r s t u v w x y Z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25H(4), O,R(2), K(1), Q(1), Y(1), U(1), B(1)H-e, 也就是e+x=h得4+x=7,密钥为3 解密:hello,every one,惟密文攻击,维吉尼亚密码由m个移位密码构成,移位密码不改变字符的分布,故若能确定m,则可以找到每个移位密码的位移量k 克思斯基测试(Kasiski ) 若用给定的m个密钥表周期地对明文字母加密,则当明文中有两个相同字母组(长度大于3)在明
15、文序列中间隔的字母数为m的倍数时,这两个明文字母组对应的密文字母组必相同。 但反过来,若密文中出现两个相同的字母组,它们所对应的明文字母组未必相同,但相同的可能性很大。 将密文中相同的字母组找出来,并对其相同字母数综合研究,找出它们的相同字母数的最大公因子,就有可能提取出有关密钥字的长度m的信息。,惟密文攻击,例,CHR出现5个位置:1,166,236,276,286 距离差:165,235,275,285,gcd(165,235,275,285)=5猜测 m=5,惟密文攻击,重合指数法(Coincidence Index)完全随机的文本CI=0.0385,一个有意义的英文文本CI=0.065
16、,惟密文攻击,实际使用CI的估计值CI: L:密文长。 fi:密文符号i发生的数目。 作用: 区分单表代换密码和多表代换密码 确定两段文本是否是同一种方法进行加密 确定维吉尼亚密码的m值,惟密文攻击,例 CI (C1)=0.0412CI (C2)=0.0445,同一加密方法,惟密文攻击,1, 对于不同的m,重新对密文m分组2,对不同的分组,分别求取重合指数,当m为5时,重合指数平均接近于0.065,惟密文攻击,拟重合指数法,惟密文攻击,对于一个移位密码,惟密文攻击,惟密文攻击,CHREE VOAHM AERAT BIAXX WTNXB EEOPH BSBQM QEQER BWRVX UOAKX
17、 AOSXX WEAHB WGJMM QMNKG RFVGX,WTRZX WIAKL XFPSK AUTEM NDCMG TSXMX BTUIA DNGMG PSREL XNJEL XVRVP RTULH DNQWT WDTYG BPHXT,FALJH ASVBF XNGLL CHRZB WELEK MSJIK NBHWR JGNMG JSGLX FEYPH AGNRB IEQJT AMRVL CRREM NDGLX,RRIMG NSNRW CHRQH AEYEV TAQEB BIPEE WEVKA KOEWA DREMX MTBHH CHRTK DNVRZ CHRCL QOHPW QAIIW
18、,XNRMG WOIIF KEE,密文子串的拟重合指数,密文子串的交互重合指数(续),明文,The almond tree was in tentative blossom. The days were longer, often ending with magnificent evenings of corrugated pink skies. The hunting season was over,with hounds and guns put away for six months. The vineyards were busy again as the well-organized
19、 farmers treated their vines and the more lackadaisical neighbors hurried to do the pruning they should have done in November.,惟密文攻击,移位密码、仿射密码和单表代换密码都没有破坏明文的频率统计规律,可以直接用统计分析法 维吉尼亚密码 Kasiski测试和重合指数确定密钥长度m 密文按m分组后,利用频率分析或拟重合指数分析得到每个单表的密钥 利用单表密钥恢复明文,主要知识点小结,代换密码 置换密码 Hill密码 转轮密码 古典密码的惟密文攻击方法,作业,P43页 第4题(2)(4)(6),57,THE END!,