数据加密技术.ppt
一、古典密码,许多古典密码是很不安全的,或者说是极易破译的。但是我们不能忘记古典密码在历史上发挥的巨大作用。另外,编制古典密码的基本方法对于编制近代密码仍然有效。,一、古典密码,C.D.Shannon(1945):采用混淆、扩散和乘积的方法来设计密码混淆:使密文和明文、密钥之间的关系复杂化“混淆”可以隐藏明文、密文和密钥之间的任何关系。好的“混乱”可使复杂甚至强有力的密码分析工具不得奏效。最容易的方法是“代替(Substitution)”法。,一、古典密码,扩散:将每一位明文和密钥的影响扩大到尽可能多的密文位中。“扩散”是一种将明文冗余度分散到密文中的方法,即将单个明文或密钥位的影响尽可能扩大到更多的密文中去,不仅将统计关系隐藏起来,也使密码分析者寻求明文冗余矿度增加了难度。最简单的“扩散”方法是“置换(Permutation)”法。,一、古典密码,乘积和迭代:多种加密方法混合使用 对一个加密函数多次迭代古典密码编码方法:置换,代替,加法,1、置换密码把明文中的字母重新排列,字母本身不变,但其位置改变了,这样编成的密码称为置换密码。最简单的置换密码是把明文中的字母顺序倒过来,然后截成固定长度的字母组作为密文。明文:明晨5点发动反攻。MING CHEN WU DIAN FA DONG FAN GONG密文:GNOGN AFGNO DAFNA IDUWN EHCGN IM,一、古典密码,例如明文:MING CHEN WU DIAN FA DONG FAN GONG矩阵:MINGCH 选出顺序:按列 ENWUDI ANFADO 改变矩阵大小和取出序列 NGFANG 可得到不同的密码 ONG密文:MEANO INNGN NWFFG GUAA CDDN HIOG,把明文按某一顺序排成一个矩阵,然后按另一顺序选出矩阵中的字母以形成密文,最后截成固定长度的字母组作为密文。,一、古典密码,2、代替密码 首先构造一个或多个密文字母表,然后用密文字母表中的字母或字母组来代替明文字母或字母组,各字母或字母组的相对位置不变,但其本身改变了。这样编成的密码称为代替密码。单表代替密码 多表代替密码 多名代替密码,一、古典密码,单表代替密码 只使用一个密文字母表,并且用密文字母表中的一个字母来代替明文字母表中的一个字母。明文字母表:A a0,a1,.,an-1 密文字母表:B b0,b1,.,bn-1 定义一个由A到 B的映射:f:AB f(ai)=bi 设明文:M=(m0,m1,.,mn-1),则密文:C=(f(m0),f(m1),.,f(mn-1)。简单代替密码的密钥就是映射函数f或密文字母表 B。,一、古典密码,单表代替密码、加法密码A和B是有 n个字母的字母表。定义一个由A到B的映射:f:AB f(ai)=bi=aj j=i+k mod n加法密码是用明文字母在字母表中后面第 k个字母来代替。K=3 时是著名的凯撒密码。,一、古典密码,恺撒密码历史上第一个密码技术“恺撒密码”是古罗马恺撒大帝在营救西塞罗战役时用来保护重要军情的加密系统(高卢战记)。明文:attack gaul 密文:DWWDFN KDXO,一、古典密码,单表代替密码、乘法密码A和B是有n个字母的字母表。定义一个由A到B的映射:f:AB f(ai)=bi=aj j=ik mod n 其中,(n,k)=1。注意:只有(n,k)=1,才能正确解密。,一、古典密码,单表代替密码密钥词组代替密码:随机选一个词语,去掉其中的重复字母,写到矩阵的第一行,从明文字母表中去掉这第一行的字母,其余字母顺序写入矩阵。然后按列取出字母构成密文字母表。,一、古典密码,举例:密钥:HONG YE 矩阵:HONGYE 选出顺序:按列 ABCDFI JKLMPQ 改变密钥、矩阵大小 RSTUVW 和取出序列,得到不同的 XZ 密文字母表。密文字母表:B=HAJRXOBKSZNCLTGDMUYFPVEIQW,一、古典密码,、多表代替密码单表代替密码的安全性不高,一个原因是一个明文字母只由一个密文字母代替。构造多个密文字母表,在密钥的控制下用相应密文字母表中的一个字母来代替明文字母表中的一个字母。一个明文字母有多种代替。Vigenere密码:著名的多表代替密码,一、古典密码,明 文 字 母 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 A 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 ZB 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 AC C D E F G H I J K L M N O P Q R S T U V W X Y Z A BH H I J K L M N O P Q R S T U V W X Y Z A B C D E F GX X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z Z 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,Vigenre方阵,密文字母,一、古典密码,Vigenre密码的代替规则是用明文字母在Vigenre方阵中的列和密钥字母在Vigenre方阵中的行的交点处的字母来代替该明文字母。例如,设明文字母为P,密钥字母为Y,则用字母N来代替明文字母P。明文:MING CHEN WU DIAN FA DONG FAN GONG密钥:XING CHUI PING YE KUO YUE YONG DA JIANG LIU密文:JQAME OYVLC QOYRP URMHK DOAMR NP 解密就是利用Vigenre方阵进行反代替。,一、古典密码,3、代数密码:Vernam密码 明文、密文、密钥都表示为二进制位:M=m1,m2,mn K=k1,k2,kn C=c1,c2,cn 加密:c1=mi ki,i=1,2,n 解密:m1=ci ki,i=1,2,n因为加解密算法是模2加,所以称为代数密码。对合运算:f=f-1,模 2加运算是对合运算。密码算法是对合运算,则加密算法解密算法,工程实现工作量减半。Vernam密码经不起已知明文攻击。,一、古典密码,如果密钥序列有重复,则Vernam密码是不安全的。一种极端情况:一次一密 密钥是随机序列。密钥至少和明文一样长。一个密钥只用一次。一次一密是绝对不可破译的,但它是不实用的。一次一密给密码设计指出一个方向,人们用序列密码逼近一次一密。,一、古典密码,二、古典密码的穷举分析,1、单表代替密码分析加法密码因为f(ai)=bi=aj j=i+k mod n所以k=1,2,.,n-1,共n-1种可能,密钥空间太小。以英文为例,只有25种密钥。经不起穷举攻击。,二、古典密码的穷举分析,1、单表代替密码分析乘法密码因为f(ai)=bi=aj j=ik mod n,且(k,n)=1。所以k共有(n)种可能,密钥空间更小。对于英文字母表,n=26,k=1,3,5,7,9,11,15,17,19,21,23,25 取掉1,共11种,比加法密码更弱。经不起穷举攻击。,二、古典密码的穷举分析,1、单表代替密码分析密钥词语代替密码因为密钥词语的选取是随机的,所以密文字母表完全可能穷尽明文字母表的全排列。以英文字母表为例,n=26,所以共有26!种可能的密文字母表。26!41026用计算机也不可能穷举攻击。注意:穷举不是攻击密钥词语代替密码的唯一方法。,三、古典密码的统计分析,2、密钥词组单表代替密码的统计分析 任何自然语言都有自己的统计规律。如果密文中保留了明文的统计特征,就可用统计方法攻击密码。由于单表代替密码只使用一个密文字母表,一个明文字母固定的用一个密文字母来代替,所以密文的统计规律与明文相同。因此,单表代替密码可用统计分析攻破。,三、古典密码的统计分析,英语的统计规律 每个单字母出现的频率稳定。最高频率字母(1类)E(12%)次高频率字母(2类)T A O I N S H R(8%)中高频率字母(3类)D L(4%)低频率字母(4类)U M W F G Y P B(2%)最低频率字母(5类)V K J X Q Z(1%),三、古典密码的统计分析,英语的统计规律 频率最高的双字母组:TH HE IN ER AN RE ED ON ES ST EN AT TO NT HA ND OU EA NG AS OR TI IS ET IT AR TE SE HI OF,三、古典密码的统计分析,英语的统计规律 频率最高的三字母组:THE ING AND HER ERE ENT THA WAS ETH FOR DHT HAT SHE ION HIS ERS VER 其中THE的频率是ING的3倍!,三、古典密码的统计分析,英语的统计规律 英文单词以E,S,D,T为结尾的超过一半。英文单词以T,A,S,W为起始字母的约占一半。还有其它统计规律!,三、古典密码的统计分析,经得起统计分析是对近代密码的基本要求!,三、古典密码的统计分析,例:给定密文为 UZ QSO VUOHXMOPV GPOZPEVSG ZWSZ OPFPESXUDBMETSX AIZ VUEPHZ HMDZSHZO WSFP APPDTSVP QUZW YMXUZUHSX EPYEPOPDZSZUFPO MBZWP FUPZ HMDJ UD TMOHMQ排出字母频率: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 Z2 2 0 6 6 4 2 7 1 1 0 0 8 0 9 16 3 0 10 3 10 5 4 5 2 14,三、古典密码的统计分析,高频字母有:H M O P S U Z 7 8 9 16 10 10 14这几个字母估计是1、2类的字母。P,Z之一可能为明文字母e,另一个为t。观察密文,Z经常出现在头和尾,而P只出现在尾,故猜Z为t,P为e。,三、古典密码的统计分析,低频字母Q和T都是两个词的首字母,故很可能是低频但经常作为词头的c,w,p,b,f中的一个。,三、古典密码的统计分析,再利用二、三字母组和元音辅音拼写知识,猜MB中必有一个元音字母,一个辅音字母,而M的频度高,故M更有可能为元音。对于 UZ和UD,要么U为元音,Z和D为辅音,要么相反。考虑后者,那么相应的明文可能为me,my或be,by,而U的频度高,与m、b都不对应。因而前者概率大。,三、古典密码的统计分析,UZ QSO VUOHXMOPV GPOZPEVSG ZWSZ.t.a.e.e.te.a.that OPFPESX UDBMETSX AIZ VUEPHZ HMDZSHZO.eve.a.n.a.b.t.e.t.nta.t.WSFP APPD TSVP QUZW YMXUZUHSX have been.a.e.th.t.a.EPYEPOPDZSZUFPO MB ZWP FUPZ HMDJ UD.e.e.e.tat.ve.the.et.n.n TMOHMQ.,三、古典密码的统计分析,UZ QSO VUOHXMOPV GPOZPEVSG ZWSZ.t.a.e.e.te.a.that 所以,UZ可能为at或it,而S-a,故U为i.QUZW.th可能为with,即Q-w因而QSO为was,即O-s,三、古典密码的统计分析,如Z是辅音,则ZWP将暗示W或P为元音。由P和Z的频度看,ZWP中的P可能为元音。假定选U为元音,Z为辅音,观察ZWSZ很像that,则ZWP可能为定冠词the.由此有:W S F P A P P Dh.e.e e.可能是have 和been,复习题,已知置换如下:明文642135,密文?密文214365,明文?使加法密码算法称为对合运算的密钥k称为对合密钥,以英文为例求出其对合密钥。,1 2 3 4 5 6 3 5 1 6 4 2,P=,复习题,已知一个加法密码的密文如下:BEEAKFYDJXUQYHYJIQRYHTYJIQFBQDUYJIIKFUHCQD 用穷举法求出明文。以英文为例,用加法密码,取密钥常数 k=7,对明文 INFORMATION SECURITY,进行加密,求出密文。证明,在置换密码中,置换p是对合的,当且仅当对任意的i和j(i,j=1,2,3,n),若p(i)=j,则必有p(j)=i。编程实现Vigenre密码。分析仿射密码的安全性。,谢 谢!,