配色: 字号:
古典密码学
2017-03-29 | 阅:  转:  |  分享 
  
课程主要内容第1章密码学概述 第2章古典密码技术 第3章分组密码第4章公钥密码体制第5章散列函数与消息鉴别
第6章数字签名技术第7章密钥管理技术第8章身份鉴别技术第9章序列密码第10章密码技术应用第2
章古典密码技术本章主要内容替代密码置换密码周期置换密码列置换密码转轮机密码古典密码的统计分析
单表替代密码分析多表替代密码分析 对Hill密码的已知明文分析 第2章古典密码技术2.1替
代密码替代是古典密码中用到的最基本的处理技巧之一;替代密码是指先建立一个替换表,加密时将需要加密的明文依次通过查表,替换为
相应的字符,明文字符被逐个替换后,生成无任何意义的字符串,即密文,替代密码的密钥就是其替换表;根据密码算法加解密时使用替换表多
少的不同,替代密码又可分为单表替代密码和多表替代密码。单表替代密码的密码算法加解密时使用一个固定的替换表;多表替代密码的密码
算法加解密时使用多个替换表。第2章古典密码技术2.1.1单表替代密码单表替代密码对明文中的所有字母都使用
一个固定的映射(明文字母表到密文字母表)。设A={a0,a1,…,an-1}为包含了n个字母的明文字母表;
B={b0,b1,…,bn-1}为包含n个字母的密文字母表,单表替代密码使用了A到B的映射关系:
f:A→B,f(ai)=bj一般情况下,f是一一映射,以保
证加密的可逆性。加密变换过程就是将明文中的每一个字母替换为密文字母表的一个字母。而单表替代密码的密钥就是映射f或密文字母表。
经常密文字母表与明文字母表的字符集是相同的,这时的密钥就是映射f。下面给出几种典型的单表替代密码。第2章古典密码技术一
般单表替代密码一般单表替代密码的原理是以26个英文字母集合上的一个置换π为密钥,对明文消息中的每个字母依次进行变
换。可描述为:明文空间M和密文空间C都是26个英文字母的集合,密钥空间K={π:Z26→Z26|π是置换},是所有可能
置换的集合。对任意π∈K,定义:加密变换:eπ(m)=π(m)=c
解密变换:dπ(c)=π-1(c)=m,π-1是π的逆置换。【例2.1】设置换
π的对应关系如下:abcdefghijklmnopqrstuvwx
yzqwertyuiopasdfghjklzxcvbnm
试用单表替代密码以π为密钥对明文消息message加密,然后写出逆置换,并对密文解密。解:以π为密钥用单表替代密
码对明文消息message加密,所得密文消息为:π(m)π(e)π(s)π(s)π(a)π(g)π(e)=d
tllqut第2章古典密码技术一般单表替代密码算法特点:密钥空间K很大
,|K|=26!=4×1026,破译者穷举搜索计算不可行,1微秒试一个密钥,遍历全部密钥需要1013年。移位密码体制是替换密
码体制的一个特例,它仅含26个置换做为密钥空间。密钥π不便记忆。针对一般替换密码密钥π不便记忆的问题,又衍生出了各种形式
单表替代密码。移位密码明文空间M、密文空间C都是和密钥空间K满足即把26个英文
字母与整数0,1,2,…,25一一对应,如表2.1所示。第2章古典密
码技术加密变换,E={E:Z26→Z26,Ek(m)=m+k(mod26)|m∈M,k∈K}解密变换,D=
{D:Z26→Z26,Dk(c)=c-k(mod26)|c∈C,k∈K}
解密后再把Z26中的元素转换英文字母。显然,移位密码
是前面一般单表替代密码的一个特例。当移位密码的密钥k=3时,就是历史上著名的凯撒密码(Caesar)。根据其加密函数特点,移位
密码也称为加法密码。仿射密码仿射密码也是一般单表替代密码的一个特例,是一种线性变换。仿射密码的明文空间和
密文空间与移位密码相同,但密钥空间为K={(k1,k2)|k1,k2∈Z26,gcd(k1,26)=1}对任意m∈M,c∈
C,k=(k1,k2)∈K,定义加密变换为c=Ek
(m)=k1m+k2(mod26)相应解密变换为:m=Dk(c)=k1-1(c-k2)(mod26
)第2章古典密码技术显然由加密置换可求出逆置换,=(361524),根据密文和逆置换
即可直接明文。必须要指出的是,置
换密码在实质上是Hill密码的特例,下面给出分析。给定一个集合{1,2,...,n}的置换π,写出置换矩阵为:
这时,置换矩阵是每一行和每一列都刚好有一个“1”,而其余元素为“0”的稀疏矩阵。如例2.7的加解密置换π=(3
51642),=(361524),对应的置换矩阵为:第2章古典密码技术
加密变换:解密变换:
=所以,置换密码实质上是输入分组的一个线性变换。
第2章古典密码技术这种密码的加密方法就是将明文按行填写到一个列宽固定(设
为m)的表格或矩阵中;然后按(1,2,…,m)的一个置换?交换列的位置次序,再按列读出即得密文。解密时,将密文按
列填写到一个行数固定(也为m)的表格或矩阵中,按置换?的逆置换交换列的位置次序,然后按行读出即得到明文。置换?可看
成是算法的密钥。例2.8略,参见课本,请读者思考,在例2.8列置换密码中,如果明文字母的长度不是列宽m的整倍
数,加解密时会有什么问题,应如何处理?由于置换密码只需打乱原明文字符的排列顺序形成乱码来实现加密变换,因此,置换的方法还
有很多,例如,图形置换密码就是先按一定的方向把明文输入到某种预先规定的图形中,再按另一种方向输出密文字符,不足部分填入随机字符
,这里就不一一列举了。第2章古典密码技术2.4.1单表替代密码分析(续)第2章古典密码技术表2.
426个英文字母出现频率统计表第2章古典密码技术通过对26个英文字母出现频率的分析,可以有以下结果:(1)e
出现的频率最大,约为0.13;(2)t,a,o,i,n,s,h,r出现的频率约在0.06~0.1之间;(3)d,l出
现的频率在0.04附近;(4)c,u,m,w,f,g,y,p,b出现的频率约在0.015~0.029之间;(5)v,
k,j,x,q,z出现的频率小于0.01。在密码分析中,除了考虑单字母统计特性外,掌握双字母、三字母的统计特性以及字母
之间的连缀关系等信息也是很有用的。出现频率最高的30个双字母组合依次是:th he in er an re
ed on es st en at to nt ha 第2章古典密码技术nd ou ea ng as or ti
is et it ar te se hi of出现频率最高的20个三字母组合依次是:特别的,the出现的频率
几乎是ing的3倍,这在密码分析中很有用。此外,统计资料还表明:英文单词以e,s,d,t字母结尾的超过一半。英文单词以t,a,s,
w为起始字母的约占一半。以上这些统计数据是通过非专业性文献中的字母进行统计得到的。对于密码分析者来说,这些都是十分有用的信息。除
此之外,密码分析者对明文相关知识的掌握对破译密码也是十分重要的。第2章古典密码技术字母和字母组的统计数据对于密码分析者是十
分重要的。因为它们可以提供有关密钥的许多信息。对于字母e比其它字母的频率都高得多,如果是单表替代密码,可以预计大多数密文都将
包含一个频率比其它字母都高的字母。当出现这种情况时,猜测这个字母所对应的明文字母为e,进一步比较密文和明文的各种统计数据及其分
布,便可确定出密钥,从而破译单表替代密码。下面通过一个具体实例来说明如何借助于英文语言的统计规律来破译单表替代密码。该例
子取自参考文献[1]。【例2.9】设某一段明文经单表替代密码加密后的密文如下,YIFQFMZRWQFYVECFM
DZPCVMRZWNMDZVEJBTXCDDUMJNDIFEFMDZCDMQZKCEYFCJMYR
NCWJCSZREXCHZUNMXZNZUCDRJXYYSMRTMEYIFZWDYVZVYFZUMRZ
CRWNZDZJJXZWGCHSMRNMDHNCMFQCHZJMXJZWIEJYUCFWDJNZDIR
试分析出对应密文。为了表述更加清楚,本例的密文用大写字母,明文用小写字母。第2章古典密码技术解:将加密变换记为
Ek,解密变换记为Dk,密文中共有168个字母。第一步:统计密文中各个字母的出现次数和频率,如表2.5所示。
表2.5例2.9中各个密文字母的出现次数和频率第2章古典密码技术
第二步:从出现频率最高的几个字母及双字母组合、三字母组合开始,并假定它们是英语言中出现频率较高的字母及字母组合对应的
密文,逐步推测各密文字母对应的明文字母。从表2.5可以看出,密文字母Z出现的次数高于任何其他密文字母,出现频率约为0
.12。因此,可以猜测:,除Z外,出现至少10次的密文字母为C,D,F,J,M,R,Y,它们的出现频率约在0.06
~0.095之间。因此,可以猜测密文字母{C,D,F,J,M,R,Y}可能对应于明文字母集合{t,a,o,i,n,s,h,r}
中的字母,但不能肯定是哪一个。因为已经假设密文Z解密成e,现在考虑密文中形如-Z和Z-的双字母的出现情况,Z的双字母
情况如表2.6所示。第2章古典密码技术表2.6例2.9密文中包含字母Z的双字母出现次数
从表2.6可以发现,DZ和ZW出现4次;NZ和ZU出现3次;RZ,HZ,XZ,FZ,ZR,Z
V,ZC,ZD和ZJ出现2次。由于ZW出现4次而WZ一次也为出现,同时W出现的频率为0.048,故可猜测 第2章
古典密码技术又因为DZ出现4次,ZD出现2次,故可猜测但具体是哪一个还不太清楚。在
和的假设前提下,继续观察密文会注意到密文开始部分出现的ZRW和RZW,并且在后面还出现了RW,因为
R在密文中频繁出现,而nd是一个明文中常见的双字母组,因此可以猜测到目前为止,已经得到了3个密文字母可能对应的明文字
母,下面列出明文与密文的部分对应关系:第2章古典密码技术第2章古典密码技术由于NZ是密文中出现较多的双字母组,而
ZN不出现,所以可以猜测。如果这个猜测是正确的,则根据明文片段ne-ndhe又可以猜测。结合这
个假设,明文与密文的部分对应关系进一步又有:第2章古典密码技术现在再考虑出现次数排在第二的密文字母M,由前面分析,
已密文段RNM对应的明文为nh-,这说明h-可能是一个明文单词的首字母,所以M可能代表明文中的一个元音字母。因为前面猜测已经使
用了和所以猜测。因为明文双字母ai比ao的出现次数更多,所以可以先猜测
,这样明文与密文的部分对应关系进一步又有:第2章古典密码技术第2章古典密码技术下面再来确定明文o对应
的密文。因为o是一个常见的明文字母,所以可以猜测相应的密文字母是D、F、J、Y中的一个。Y的可能性最大,否则由密文片段CFM或
CJM将得到长串的元音字母aoi,这在英文中是不太可能的。因此,可以猜测剩下密文字母中三个出现次数较高的字
母是D、F、J,可以猜测它们,密文中三字母NMD出现了两次,故可猜测
,这样,密文NMD对应的明文三字母组为his,这与前面假设是一致的。对于密文片段HNCMF,可猜测它
对应的明文可能是chair,由此又有,。这样,通过排除法有。第2章古典密码技
术第2章古典密码技术第三步:利用与上述分析类似的方法,可以很容易地确定其余密文字母和明文字母的对应关系,最后,将得
到的明文加上标点符号,得到完整的明文如下:OurfriendfromParisexaminedhisempty
glasswithsurprise,asifevaporationhadtakenplacewhilehe
wasn’tlooking.Ipouredsomemorewineandhesettledbackinh
ischair,facetilteduptowardsthesun.以上讨论的是破解一般单表替代密码的统计分
析方法,如果已知所用的密码体制(例如,对于位移密码、加法密码、乘法密码和仿射密码等),则相内的分析工作会更简单一些。第2章
古典密码技术从该例子可以看出,破译单表替代密码的大致过程是:首先,统计密文的各种统计特征,如果密文量比较
多,则完成这步后便可确定出大部分密文字母;然后,分析双字母、三字母密文组,以区分元音和辅音字母;最后,分析字
母较多的密文,在这一过程中大胆使用猜测的方法,如果猜对一个或几个词,就会大大加快破译过程。第2章古典密码技术多表替代密码
从一定程度上隐藏了明文消息的一些统计特征,破译相对较为困难;在多表替代密码的分析中,首先要确定密钥的长度,也就是要确定所使用的加
密表的个数,然后再分析确定具体的密钥;确定密钥长度的常用方法两种,即Kasiski测试法(Kasiskitest)和重合指数
法(indexofcoincidence)。下面以维吉尼亚密码为例来说明多表替代密码的分析方法。Kasiski测试
Kasiski测试的基本思想是:用给定的n个字母表周期性地对明文字母加密,则当两个相同的明文段在明文序列中间隔的字母数为n
的整数倍时,将加密成相同的密文段;如果有两个相同的密文段,对应的明文段不一定相同,但相同的可能性大。将密文中相同的字母组找出来,
并对其相同字母组的距离综合分析,找出它们相同字母组距离的最大公因子,就有可能提取出密钥的长度n。第2章古典密码技术考虑
下面一个维吉尼亚密码的简单例子:明文:requestsadditionaltest密钥:TEL
EXTELEXTELEXTEL
EXTE密文:CAVKTBLTEUQWSW
JGEALTBL明文包含字母序列est两次,而这两次又碰巧被同样的密
钥片段加密,因而对应的密文都是TBL。出现这种情况反映了如下事实:序列est位于密钥长度(或周期)的整倍数处。显然,相同
字母组的距离反映了密钥长度n的相关信息。Kasiski的测试过程如下:搜索长度至少为2的相邻的一对对相同的密文段,记下它
们之间的距离。而密钥长度n可能就是这些距离的最大公因子。第2章古典密码技术表2.7重复字
母组及距离示例第2章古典密码技术2.重合指数法如果考虑来自26个字母表的完全随机文本,则每个字母都以
相同的概率1/26出现,假定另一个随机文本放在第一个的下面,在上下位置出现相同字母a的概率为,在两个随机文本的上下位
置找到任意两个相同字母总的概率为。但实际上,由于英文字母出现的概率是不同的(见表2.4),
设字母a,b,c,…,z出现的概率分别为这样找到两个相同字母的概率为。
这个值比随机文本的概率大得多,称为重合指数。定义设一个语言由n个字母构成,每个字母出现的概率,则
重合指数是指其中两个随机元素相同的概率,记为这样对于一个完全随机的文本CI=0.0385,与一个有意义的英语文本C
I=0.065,差异是比较明显的。第2章古典密码技术实际分析中,重合指数的利用体现在几个方面。如果密文的重合指数较低,那
么就可能是多表替代密码。维吉尼亚密码将密文分行,每行是单表替代密码。在单表替代时,明文的字母被其它字母代替,但不影响文本的统
计属性,即加密后密文的重合指数仍不变,CI(明文)=CI(密文),由此可以判断文本是用单表还是用多表替代加密的。如果密钥长度
(即密文分行的列数)正确,同一行密文有相同字母的概率接近0.065;如果密钥长度不对,则概率将大大小于0.065,显得更随机,由此
得到密钥长度(可与Kasiski测试的结果对比)。重合指数的估算能用于分析两个不同密文,比如接收到两段文本C1,C2,如果它们
用同样的方式加密,则。实际密文长度有限,从密文中计算的重合指数值总是不同于理论值,所以通常用
CI的估计值CI’,以字母出现的频度近似表示概率,则第2章古典密码技术其中L代表密文长,是密文出现的频度(数
目)。可以证明,CI’是CI的无偏估计值。在古典密码的分析中,除了Kasiski测试和使用重合指数确定密钥长度外,测
试可用来确定是否采用了相同或不同的替代,也能用来简化多表替代为单表替代。测试(?-test)提供了一个比较两个频
率分布的直接方式。计算下面的和:其中,表示符号在第一个分布发生的概率,表示符号在第二个分布中发生的概率。
当两个频率分布类似时,?的值相对较高。假定收到两个密文,,它们都是位移密码加密的结果。设第一个替代表是通过源字母表移动
个字母得到,第二个替代表是源字母表移动个字母得到的。如果,说明,是由同样位移替代密码加密的,这时?值较
大,因为的统计特性与类似。反之,,?值将要小一些。第2章古典密码技术?除了用来确定是否采用相同
或不同的替代外,也能用来简化多表替代为单表替代。【例2.10】一个密钥为RADIO,用Vigenere密码加密的明密文如
下:明文:executethesecommands密钥:RADIORA
DIORADIORADIO密文:V
XHKIKEWPSJEFWAD
AQLG为了还原密文到明文,用下面的矩阵表示(列数等于密钥长度):R
ADIOVXHK
IK E W P SJ
E F W AD A Q L G第
2章古典密码技术可以看出,矩阵的第一行为密钥,第一列R下的密文字母通过“减”R解密。第二列A下的密文字母通过“减”A
解密,等等。密文的第一列和第二列是两个不同的移位密码加密的结果。考虑密钥中每个字母和第一个字母R在字母表中的相对距离如
下:现在,把第二列所有字母提前9个位置,第三列所有字母提前12个位置,其它类似,可获得下面的文本块:V
O V T LK V K Y VJ V T F DD R E U J
第2章古典密码技术这样,用密钥RADIO加密的文字,就转化为只用R加密的密文,即把基于多表替代密码的
解密问题转化为基于单表替代密码的解密问题。尽管密码分析者可能没有密钥字母的相对距离这个信息,然而,Chi测试提供了发现这个
距离的线索。在该例中,密文列被移位使得它们都用同一个替代密码解密。如果两列是用同样单表替代加密的,则两列的?值将相同,而且
是最大值。分析者通过尝试距离值,直到得到这一列和第一列的?最大值出现,然后就可用和第一列同样的方式解密。第2章古典密码技术
【例2.11】在很短的时间内收到两段密文:密文C1:KOOMMACOMOQEGLXX
MQCCKUEYFCURYLYLIGZSXCXVBCKMYOPN
POGDGIAZTXDDIAKNVOMXHIEMRDEZVXB
MZRNLZAYQIQXGKKKPNEVHOVVBKKTCSSE
PKGDHXYVJMRDKBCJUEFMAKNTDRXBIE
MRDPRRJBXFQNEMXDRLBCJHPZTVVIXYET
NIIAWDRGNOMRZRREIKIOXRUSXCRETV
密文C2:ZAOZYGYUKNDWPIOUORIYRHHBZXRC
EAYVXUVTXKCMAXSTXSEPBRXCSLRUKVBX
TGZUGGDWHXMXCSBIKTNSLRJZHBXMSPU
NGZRGKUDXNAUFCMRZXJRYWYMI第2章古典密码技术
由于这两段密文相隔时间很短,很有可能是用同样方式加密的。这个猜想可以通过计算两个文本的CI’值来证实(计算过程从略):
这两个值近似相等,所以可假定这两段文本是用同样方式加密的。考虑到CI’值处在随机文本和有意义的英语文本的CI’值之
间,因此可猜想是用多表替代加密的。采用Kasiski测试,首先找到重复的字母序列及它们之间的距离;分解这些距离值为素因
子的乘积,数字7出现最频繁,周期可能为7,现在把密文写成是7列的矩阵形式(见表2.8)。第2章古典密码技术
表2.8密文的矩阵表示第2章古典密码技术然后计算每列的重合指数,有:
CI’(列1)=0.0522CI’(列2)=0.0801 CI’(列3)=0.0734CI’(列4)=0
.0744 CI’(列5)=0.0705 CI’(列6)=0.0717CI’(列7)=0.0606但观察每一
列的重合指数,似乎每一列都是用一个单表替代密码加密的。现在试图将多表替代的密文转化为某个单表替代加密的密文。首先,重复移动各列
字母,移动的距离分别是1~25,并分别计算相对于第一列的?值,并把最大值用下划线标识出来。列1和2:0.03880.048
70.03170.03260.02740.03400.04210.0402 0.03210.03500.04
250.04110.06620.03500.03170.0359 0.04910.03310.02360.0
3780.03450.02880.05670.0525 0.0302第2章古典密码技术列1和3:0.0378
0.02740.03310.03310.02500.05810.04910.0458 0.02840.0383
0.05290.04910.03070.02500.03120.0444 0.03920.03590.039
20.03540.04210.06570.04160.02690.0232列1和4:0.03170
.03690.03640.03120.04540.03830.05580.0302 0.03880.0345
0.05200.02500.03590.03360.04770.0260 0.04350.05200.0406
0.03690.04680.04680.03260.0307 0.0326列1和5:0.04300.0586
0.02790.02740.03310.04730.02980.0359 0.03360.03540.0302
0.04910.05480.02650.03590.0406 0.05060.03120.03450.033
60.04400.03540.05060.0411 0.0321第2章古典密码技术列1和6:0.03820.
02710.05020.04490.02950.03190.04400.0522 0.03720.03720
.03430.03960.03910.03910.02800.0324 0.04540.04300.0614
0.03620.03240.03430.04980.0338 0.0275列1和7:0.02850.04440
.03620.03820.03570.03530.03430.0415 0.03770.04830.0333
0.03960.04250.03000.05650.0348 0.03290.03480.04540.0304
0.03770.03240.04490.0295 0.0444根据以上结果推知,各列相对于第一列的距离分别
是:列2:13列3:22 列4:7 列5:2 列6:19列7:15
第2章古典密码技术用这些值来转化密文C1,C2到下列文本:KBKTOTRO
ZKXGZAXKIXEVZURUMENGYYUSKZOS
KYGXURKZUVRGEOTZNKTOTKZ
KKTZNIKTZAXEZNKGSKXOIGTGAZNU
XKJMGXGRRGTVUKCXUZKGYZUXEKT
ZOZRKJZNKMURJHAMOTZNGZYZU
XCZNKRKGJOTMSGTMKZYNURJULGVO
KIKULVGXINSKTZCOZNGTKTI
XEVZKJSKYYGMKZNKGAZNUXJKYIXO
HKYKRGHUXGZKRENUCZNKRKGJOTMS
GTZGIQRKYZNKJKIXEVZOUTCK
YAMMKYZZUXKGJZNKYZUXEOLEUACG
TZZUQTUCNUCZNGZCGYJUTK第2章古典密码技术
Hill密码能较好地抵抗字母频率的统计分析,采用惟密文攻击是较难攻破,但采用已知明文攻击就容易破译。假定密码分
析者知道加密分组长度n值,且有至少N(N>n)个不同的明文/密文分组对,M1/C1,M2/C2,……,MN/C
N满足:C1=KM1(mod26),C2=KM1(mod26),...,CN=K
MN(mod26)记为:(C1C2C3…CN)=(M1M2M3…MN)·K(mo
d26)其中Mi、Ci(i=1,2,…,N)均为n维列向量,K为未知密钥方阵。利用n个已知的明文/密文分组对定
义两个n×n方阵:M=(M1M2M3…Mn),C=(C1C2C3…Cn
)有矩阵方程:C=KM(mod26)若提供的矩阵M是可逆的,则能计算出K=CM-1(mod26),从而破
译该密码体制。若方阵M关于模26不可逆,攻击者可通过尝试其它明文/密文对来产生新的方阵M,直到找到一个可逆的明文矩阵M
就可破译Hill密码。第2章古典密码技术【例2.12】假设明文worker利用n=2的Hill密码加密,得到密文qihryb
,求密钥K。解:将明文、密文划分为三组:(w,o)、(r,k)、(e,r)和(q,I)、(h,r)、(y
,b),即(22,14)、(17,10)、(4,17)和(16,8)、(7,17)、(24,1),分别满足:
利用前两个明文-密文对,构造矩阵方程:计算明文方阵行列式,由于(-18,26)≠1,即该矩阵没有
逆元,于是考虑第二、第三组明文-密文对,得到矩阵方程:第2章古典密码技术∵∴显然,
通过对比第一个明文—密文对很容易验证该密钥。如果密码分析者不知道加密分组长度l的值,那么可以通过逐一尝试不同的l值来得到密
钥。Hill密码体制的重要性在于它无可辩驳地表明数学方法在密码学中的地位是不容置疑的。?第2章古典密码技术本
章主要介绍了古典密码技术,包括替代密码,置换密码以及转轮机密码,重点阐述了古典密码的统计分析,包括:单表替代密码分析多表替
代密码分析对Hill密码的已知明文分析密码系统的安全性2.4.2多表替代密码分析(续)2.4.3对Hill密码的已
知明文分析2.4.3对Hill密码的已知明文分析(续)2.4.3对Hill密码的已知明文分析(续)本章小结
本质上,密文字母表是明文字母表的一种排列。但企图使用计算机穷举一切密钥来破译密钥词组替代密码也是计算不可行的。
穷举不是攻击密码的惟一方法,密码分析者便可利用语言的统计特性进行分析。如果明文语言的这种统计特性在明文中有所反映,密码分析者
便可通过分析明文和密文的统计规律而破译密码。通过对大量英文语言的研究可以发现,每个字母出现的频率不一样,e出现的频率最高。
如果所统计的文献足够长,便可发现各字母出现的频率比较稳定。如表2.4所示(表中字母出现频率为字母出现次数除以文本字母总数)。2.
4.1单表替代密码分析(续)0.0008z0.0249m0.0199y0.0339l0.0017x0.0
042k0.0149w0.0013j0.0092v0.0627i0.0249u0.0528h0.104
5t0.0199g0.0607s0.0289f0.0677r0.1304e0.0012q0.0378
d0.0199p0.0279c0.0797o0.0139b0.0707n0.0856a出现频率字母出
现频率字母2.4.1单表替代密码分析(续)2.4.1单表替代密码分析(续)the i
ng and her ere ent tha nth waseth
for dth hat she ion int his sth ersve
r2.4.1单表替代密码分析(续)2.4.1单表替代密码分析(续)2.4.1单表替代密码分析(续)2.4.1
单表替代密码分析(续)2.4.1单表替代密码分析(续)2.4.1单表替代密码分析(续)2.4.1单表替代密码
分析(续)2.4.1单表替代密码分析(续)2.4.1单表替代密码分析(续)2.4.1单表替代密码分析(续)2.
4.1单表替代密码分析(续)2.4.1单表替代密码分析(续)2.4.1单表替代密码分析(续)2.4.2多表替
代密码分析2.4.2多表替代密码分析(续)2.4.2多表替代密码分析(续)2.4.2多表替代密码分析(续)2.
4.2多表替代密码分析(续)2.4.2多表替代密码分析(续)2.4.2多表替代密码分析(续)2.4.2多表替
代密码分析(续)2.4.2多表替代密码分析(续)2.4.2多表替代密码分析(续)2.4.2多表替代密码分析(续)
2.4.2多表替代密码分析(续)2.4.2多表替代密码分析(续)2.4.2多表替代密码分析(续)2.4.2
多表替代密码分析(续)2.1.1单表替代密码(续)2.1.1单表替代密码(续)表2.1字母数字映射表2
.1.1单表替代密码(续)第2章古典密码技术相应解密变换为:其中,。很明显,k1=1时即为移位
密码,而k2=1则称为乘法密码。【例2.3】设明文消息为china,密钥试用仿射密码对其进行
加密,然后再进行解密。解:利用扩展的欧几里德算法(参见附录A.1.2)可计算出加密变换为:解密变换为:明文消息对
应的数字依次为2,7,8,13,0,用仿射密码对明文进行加密如下:2.1.1单表替代密码(续)第2章古典密码
技术密文消息为unwpc。而解密过程如下:

即恢复明文消息为china。仿射密码
要求(k1,26)=1,否则就会有多个明文字母对应一个密文字母的情况。由于与26互素的整数有12个,故仿射密码密钥空间大小为
|K|=12×26=312。若将仿射密码的加密函数换为多项式函数时,即为多项式密码。密钥短语密码选用一个
英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中的其它字母依次写于此字母串后,就可构造出一
个字母替代表。如密钥为key时,替代表如表2.2所示。2.1.1单表替代密码(续)第2章古典密码技术
表2.2密钥为key的单表替代密码当选择上面的密钥进行加密时,若明文为“china”
,则密文为“yfgmk”。显然,不同的密钥可以得到不同的替换表,对于明文为英文单词或短语的情况时,密钥短语密码最多可能有
26!=4×1026个不同的替换表。2.1.2多表替代密码单表替代密码表现出明文中单字母出现的频率分布与密文中相同,
多表替代密码使用从明文字母到密文字母的多个映射来隐藏单字母出现的频率分布,每个映射是简单替代密码中的一对一映射多表替
代密码将明文字母划分为长度相同的消息单元,称为明文分组,对明文成组地进行替代,同一个字母有不同的密文,改变了单
表替代密码中密文的唯一性,使密码分析更加困难。第2章古典密码技术多表替代密码的特点是使用了两个或两个以
上的替代表。著名的维吉尼亚密码和Hill密码等均是多表替代密码。1.维吉尼亚密码维吉尼亚密码是最古老而且最著名的多表替
代密码体制之一,与位移密码体制相似,但维吉尼亚密码的密钥是动态周期变化的。该密码体制有一个参数n。在加解密时,同样把英文
字母映射为0-25的数字再进行运算,并按n个字母一组进行变换。明文空间、密文空间及密钥空间都是长度为n的英文字母串的集合,因此可表
示加密变换定义如下:设密钥k=(k1,k2,…,kn),明文m=(m1,m2,…,mn),加密变换为:
Ek(m)=(c1,c2,…,cn),其中ci=(mi+
ki)(mod26),i=1,2,…,n对密文c=(c1,c2,…,cn),解密变换为:
Dk(c)=(m1,m2,…,mn),其中mi=(ci-ki)(mod26),i=1,2,…,n2.1.2多表
替代密码(续)第2章古典密码技术【例2.4】设密钥k=cipher,明文消息appliedcryptosystem,试
用维吉尼亚密码对其进行加密,然后再进行解密。解:由密钥k=cipher,得n=6,密钥对应的数字序列为(2,8,15,7,4,
17)。然后将明文按每6个字母进行分组,并转换这些明文字母为相应的数字,再用模26加上对应密钥数字,其加密过程如表2.3所示。
表2.3密钥为cipher的维吉尼亚密码加密过程密文为:cxtsmvfkg
ftkqanzxvo。解密使用相同的密钥,但用模26的减法代替模26加法,这里不再赘述。2.1.2多表替代密码(续)
2.希尔(Hill)密码Hill密码算法的基本思想是将n个明文字母通过线性变换,将它们转换为n个密文字母。解密只需做
一次逆变换即可。算法的密钥K=﹛上的可逆矩阵﹜,明文M与密文C均为n维向量,记为其中,
或写成解密变换则为:第2章古典密码技术2.1.2多表替代密码(续)第2章古典密码技
术其中,K–1为K在模26上的逆矩阵,满足:KK–1=K–1K=I(mod26)这里I为
单位矩阵。定理2.1:假设A=(ai,j)为一个定义在Z26上的n×n矩阵,若A在模26上可逆,则有:A–1=
(detA)–1A(mod26);这里A为矩阵A的伴随矩阵在n=2的情况下,有下列推论:假设
A=,是一个Z26上的2×2矩阵,它的行列式:
是可逆的,那么:例如,2.1.2
多表替代密码(续)第2章古典密码技术这时,所以K的逆矩阵为:【例2.5】设明文消
息为good,试用n=2,密钥的Hill密码对其进行加密,然后再进行解密。解:将明文划分为两组:(g,o
)和(o,d),即(6,14)和(14,3)。加密过程如下:因此,good的加密结果是wmwl。显然,明文
不同位置的字母“o”加密成的密文字母不同。为了解密,由前面计算有,可由密文解密计算出明文:2.1.2
多表替代密码(续)第2章古典密码技术因此,解密得到正确的明文“good”。Hil
l密码特点:可以较好地抑制自然语言的统计特性,不再有单字母替换的一一对应关系,对抗“惟密文攻击”有较高安全强度
。密钥空间较大,在忽略密钥矩阵K可逆限制条件下,|K|=26n×n易受已知明文攻击及选择明文攻击(详见2
.3节相关分析)。3.一次一密密码(OneTimePad)若替代码的密钥是一个随机且不重复的字符序列,这种密码则称
为一次一密密码,因为它的密钥只使用一次。该密码体制是美国电话电报公司的JosephMauborgne在191
7年为电报通信设计的一种密码,所以又称为Vernam密码。Vernam密码在对明文加密前首先将明文编码为(0,1)序列,然后再
进行加密变换。2.1.2多表替代密码(续)第2章古典密码技术设m=(m1m2m3…mi…)为明文,k=(k
1k2k3…ki…)为密钥,其中mi,ki∈(0,1),i≥1,则加密变换为:c=(c1c2c3…
ci…),其中ci=mi?ki,i≥1,2.1.2多表替代密码(续)m=(m1m2m3
…mi…),其中mi=ci?ki,i≥1,这里为模2加法(或异或运算)解密变换为:在
应用Vernam密码时,如果对不同的明文使用不同的随机密钥,这时Vernam密码为一次一密密码。由于每一密钥序列都是
等概率随机产生的,敌手没有任何信息用来对密文进行密码分析。香农(ClaudeShannon)从信息论的角度证明了这种密码体制在理
论上是不可破译的。但如果重复使用同一个密钥加密不同的明文,则这时的Vernam密码就较为容易破译。若敌手获得了一个密文c=(c1
c2c3…ci…)和对应明文m=(m1m2m3…mi…)时,就很容易得出密钥k=(k1k2k3…
ki…),其中ki=ci?mi,i≥1。故若重复使用密钥,该密码体制就很不安全。第2章古典密码技术实
际上Vernam密码属于序列密码,加密解密方法都使用模2加,这使软硬件实现都非常简单。但是,这种密码体制虽然理论上是不可破译的,
然而在实际应用中,真正的一次一密系统却受到很大的限制,其主要原因在于该密码体制要求:①密钥是
真正的随机序列;②密钥长度大于等于明文长度;③每个密钥只用一次(一次一密)。
这样,分发和存储这样的随机密钥序列,并确保密钥的安全都是很因难的;另外,如何生成真正的随机序列也是一个现实问题。因此,人们
转而寻求实际上不对攻破的密码系统。4.Playfair密码Playfair密码是一种著名的双字母单表替代密码,实际
上Playfair密码属于一种多字母替代密码,它将明文中的双字母作为一个单元对待,并将这些单元转换为密文字母组合。2.1.
2多表替代密码(续)第2章古典密码技术替代时基于一个5×5的字母矩阵。字母矩阵构造方法同密钥短语密码类似,即选
用一个英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中剩下的字母依次从左到右、从上往下
填入矩阵中,字母I,j占同一个位置。例如,密钥K=playfairisadigramcipher,去除重复字
母后,K=playfirsdgmche,可得字母矩阵如图2.1。
图2.1Playfair密码字母矩阵示例2.1.2多表替代密码(续)第
2章古典密码技术对每一明文字母对P1、P2的加密方法如下:(1)若P1、P2在同一行,密文C1、C2分别是紧靠P1、
P2右端的字母;(2)若P1、P2在同一列,密文C1、C2分别是紧靠P1、P2下方的字母;(3)若P1、P2不在同一行,也不在
同一列,则C1、C2是由P1、P2确定的矩形其它两角的字母,且C1和P1在同一行,C2和P2在同一行;(4)若P1=P2,则两个
字母间插入一个预先约定的字母,如x,并用前述方法处理;如balloon,则以balxloon来加密
。(5)若明文字母数为奇数,则在明文尾填充约定字母。算法还约定字母矩阵中第一列看做最后一列的右边一列,表中第一行看做最后
一行的下一行。2.1.2多表替代密码(续)第2章古典密码技术置换密码又称为换位密码;置换密码通过改变明文消息
各元素的相对位置,但明文消息元素本身的取值或内容形式不变;在前面的替代密码中,则可以认为是保持明文的符号顺序,但是将它们用其它符
号来替代;这种密码是把明文中各字符的位置次序重新排列来得到密文的一种密码体制。实现的方法多种多样。直接把明文顺序倒过来,然后排成
固定长度的字母组作为密文就是一种最简单的置换密码。下面再给出几种典型的置换密码算法。2.2.1周期置换密码
周期置换密码是将明文字符按一定长度n分组,把每组中的字符按1,2,…,n的一个置换π重排位置次序来得到密文的一种加密方法
。其中的密钥就是置换π,在π的描述中包含了分组长度的信息。解密时,对密文字符按长度n分组,并按π的逆置换把每组字符重排位置
次序来得到明文。周期置换密码可描述为:2.2置换密码(PermutationCipher)第2章古典密码
技术2.2.1周期置换密码(续)设n为固定的正整数,P=C=(Z26)n,K是由{1,2,…,n}
的所有置换构成。对一个密钥π∈K,定义:加密变换:E?(m1,m2,..,mn)=(m?(1),...,m?
(n))=(c1,c2,..,cn)解密变换:
;这里π-1为π的逆置换注意,这里的加密与解密变换仅仅用了置换,无代数运算。=(351
642)的置换密码对其进行加密,然后再对密文进行解密。解:密钥长度是6,所以按周期长度6对明文分组,对每组字母用密钥
π进行重排得到对应的加密结果。明文分组为:crypto|graphy,再利用置换密钥π进行加密变换,得:E?(crypt
o)=(ytcopr);E?(graphy)=(ahgypr)即密文消息为ytcoprahgy
pr。【例2.7】给定明文为cryptography,试用密钥π=2.2.1周期置换密码(续);表示仅第i行中第?(
i)个元素为1,其余为零。2.2.1周期置换密码(续)2.2.2列置换密码第2章古典密码技术2.3转轮机密
码转轮机的基本结构由一个键盘、若干灯泡和一系列转轮组成,如图1.4(a)所示。键盘一共有26个键,键盘上方就是标示了字母的
26个小灯泡,当键盘上的某个键被按下时,与这个字母被加密后的密文字母所对应的小灯泡就亮了起来。在显示器的上方是几个转轮,每个转
轮是26个字母的任意组合。如图2.2是一个三转轮的原理示意图,图中3个矩形框代表3个转轮,从左到右分别称为慢转子、中转子和快转
子。每个转轮有26个输入引脚和26个输出引脚,其内部连线将每个输入引脚连接到一个对应的输出引脚,这样每个转轮内部相当于一个单表
替代。当按下某一键时,电信号从慢转子的输入引脚进入,通过内部连线经过每个转轮,最后从快转子的输出引脚信号输出对应密文字母(点亮
)。例如,在图2.2(a)中,如果按下字母B,则相应电信号被加到慢转子的输入引脚25,并通过内部连线连接到慢转子的输出引脚25,
经过中转子的输入引脚22和输出引脚22,连接到快转子的输入引脚13,最后从快转子的输出引脚13输出密文字母(I)。第2
章古典密码技术如果转轮密码机始终保持图2.2(a)的连接状态,则按下字母键B,输出的密文字母始终是I(按下字母键A,输出
的密文字母则始终是B,等等),转轮密码机为了能够实现复杂的多表替代密码,打破明文与密文之间固定的替代关系,在每次击键输出密文字
母后,快转子都要转动一个位置,以改变中转子与快转子之间的对应关系。例如,在图2.2(a)的初始状态下,如果按下任意一个键(如B
键)后,转轮密码机输出密文字母(B键对应密文字母为I),然后快转子转动一个位置,即快转子的所有引脚向下循环移动一个位置,此时转轮
密码机的状态如图2.2(b)所示。显然,这时若再按下B键,最后从快转子输出的密文变为字母Q,而不是上一次的字母I。转轮密码机的每个转子都有可能转动,当快转子转动26次后,中转子就转动一个位置;当中转子转动26次后,慢转子就转动一个位置。因此,在加密(或解密)26×26×26=17576个字母后,所有转轮就会恢复到初始状态。也就是说,有n个转轮的转轮密码机是一个周期长度为的多表替代密码。实际上,转轮密码机还利用了键盘和第一个转子之间的连接板实现的简单替换,以增加输出的可能性来对抗穷举破译法,其详细过程这里就不再赘述。ABCDEFGHIJKLMNOPQRSTUVWXYZ242526010203040506070809101112131415161718192021222321031501191014262008160722041105170912231802250624132601020304050607080910111213141516171819202122232425200106041503141223051602221911182524130710082109261726010203040506070809101112131415161718192021222324251408182617202210031311042305240912251619061521020701ABCDEFGHIJKLMNOPQRSTUVWXYZ慢中快在一次击键后的设置ABCDEFGHIJKLMNOPQRSTUVWXYZ242526010203040506070809101112131415161718192021222321031501191014262008160722041105170912231802250624132601020304050607080910111213141516171819202122232425200106041503141223051602221911182524130710082109261701020304050607080910111213141516171819202122232425260818261720221003131104230524091225161906152102070114ABCDEFGHIJKLMNOPQRSTUVWXYZ慢中快初始设置A→BB→IC→E……A→EB→QC→T……第2章古典密码技术使用转轮密码机通信时,发送方首先要调节各个转轮的位置(这个转轮的初始位置就是密钥),然后依次键入明文,并把显示器上灯泡闪亮的字母依次记下来,最后把记录下的闪亮字母按照顺序用正常的电报方式发送出去;接收方收到电文后,只要也使用同样一台转轮机,并按照原来的约定,把转轮的位置调整到和发送方相同的初始位置上,然后依次键入收到的密文,显示器上自动闪亮的字母就是明文了。第2章古典密码技术2.4古典密码的统计分析在对密码进行安全分析时,一般假设密码分析者知道密码体制,这就是Kerckhoffs假设,密码分析重点在获取密钥。移位密码、仿射密码、维吉尼亚密码、置换密码等对己知明文攻击都是非常脆弱的。即使用惟密文攻击,大多数古典密码体制都容易被攻破。大多数古典密码体制都不能很好隐藏明文消息的统汁特征。下面就针对单表替代密码、多表替代密码和Hill密码来介绍利用英文语言的统计特征和密码特点,运用惟密文攻击或已知明文攻击等方式破译古典密码的基本方法。2.4.1单表替代密码分析对于单表替代密码,加法密码和乘法密码的密钥量比较小,可利用穷举密钥的方法进行破译。仿射密码、多项式密码的密钥量也只有成百上千,古代密码分析者企图用穷举全部密钥的方法破译密码可能会有一定困难,然而计算机出现后这就很容易了。
献花(0)
+1
(本文系pengxq书斋首藏)