以前讲过凯撒密码是一种移位加密,密钥就是平移的字母的个数。由于字母表只有26个字母,因此加密用的密钥只有0到25共26种(密钥为0相当于没有加密),因此凯撒密码可以通过暴力破解来破译。暴力破解是指将所有可能的密钥全部尝试一遍,又称为穷举搜索。
而简单替换密码很难通过暴力破解来破译。这是因为简单替换密码可以使用的密钥数量比凯撒密码要多得多。简单替换密码中,明文a可以对应A~Z这26个字母的任意一个,b可以对应除a对应的字母以外的剩余25个字母中的任意一个。以此类推,简单替换密码的密钥总数为:
26*25*24*23*…*1= 403291461126605635584000000
这么庞大的数字,如果用暴力破解,即使每秒能够遍历10亿个密钥,要遍历完也需要120亿年。
因为破译困难,从公元前开始,简单替换密码在几百年的时间里一直被用于秘密通信。然而在阿拉伯学者发明了频率分析法之后,这种密码就可以被破译了。频率分析法利用了明文中字母的出现频率与密文中字母出现的频率一致这一特性。有以下分析方法:
1、英语中出现频率最高的字母是e,假定密文中出现频率最高的字母是e
2、 英语中出现最多的单词是The
3、 英语文章中9个最常用的字母是e,t,a,o,n,i,r,s, h
4、英语单词中有一半以上是以t,a,o,s或w开头的
5、 仅10个单词(the,of,and,to,a,in,that,it,is和I)就构成标准英语文章四分之一以上的篇幅
6、 密文越长越容易破译。
【案例分析】
我们以小说《金甲虫》中藏宝图上的密码为例,使用频率分析法进行破译:
53§§+305))6*;4826)4§.)4§);806*;48+8β60))85;;]8*;:§*8+83(88)5*+;46(;88*96*?;8)*§(;485);5*+2:*§(;4956*2(5*-4)8β8*;4069285);)6+8)4§§;;1(§9;48081;8:8§1;48+85;4)485+528806*81(§9;48;(88;4(§?34;48)4§;161;:188;§?;
首先,我们统计一下这段密文中每个符号出现的频率,排出前几位的符号:
一般英语文章中出现频率最高的字母是e,该段密文中出现频率最高的符号是8,我们假设8-e,将密文中的8全部替换,替换后的密文如下:
53§§+305))6*;4e26)4§.)4§);e06*;4e+eβ60))e5;;]e*;:§*e+e3(ee)5*+;46(;ee*96*?;e)*§(;4e5);5*+2:*§(;4956*2(5*-4)eβe*;40692e5);)6+e)4§§;1(§9;4e0e1;e:e§1;4e+e5;4)4e5+52ee06*e1(§9;4e;(ee;4(§?34;4e)4§;161;:1ee;§?;
英语中出现最多的单词是the,我们寻找一下以e结尾的3个字符组合,发现;4e这3个字符的组合是最常出现的,很有可能就是the。于是我们假设;-t,4-h,而且;-t也符合t出现频率较高的规则:
53§§+305))6*the26)h§.)h§)te06*the+eβ60))e5tt]e*t:§*e+e3(ee)5*+th6(tee*96*?te)*§(the5)t5*+2:*§(th956*2(5*-h)eβe*th0692e5)t)6+e)h§§t1(§9the0e1te:e§1the+e5th)he5+52ee06*e1(§9thet(eeth(§?3hthe)h§t161t:1eet§?t
我们发现中间有一些词比较可疑:thet(ee可能是the tree吧,尝试(-r:
53§§+305))6*the26)h§.)h§)te06*the+eβ60))e5tt]e*t:§*e+e3ree)5*+th6rtee*96*?te)*§rthe5)t5*+2:*§rth956*2r5*-h)eβe*th0692e5)t)6+e)h§§t1r§9the0e1te:e§1the+e5th)he5+52ee06*e1r§9thetreethr§?3hthe)h§t161t:1eet§?t
th6rtee*很难不联想到thirteen,假设6-i,*-n:
53§§+305))inthe2i)h§.)h§)te0inthe+eβi0))e5tt]ent:§ne+e3ree)5n+thirteen9in?te)n§rthe5)t5n+2:n§rth95in2r5n-h)eβenth0i92e5)t)i+e)h§§t1r§9the0e1te:e§1the+e5th)he5+52ee0ine1r§9thetreethr§?3hthe)h§t1i1t:1eet§?t
thetreethr§?3hthe这个组合,可能是the tree through the,§-o,?-u,3-g:
5goo+g05))inthe2i)ho.)ho)te0inthe+eβi0))e5tt]ent:one+egree)5n+thirteen9inute)northe5)t5n+2:north95in2r5n-h)eβenth0i92e5)t)i+e)hoot1ro9the0e1te:eo1the+e5th)he5+52ee0ine1ro9thetreethroughthe)hot1i1t:1eetout
为了方便查看,对已识别的单词加入空格:
5goo+g05)) in the 2i)ho.)ho)te0 in the +eβi0))e5tt]ent:one+egree)5n+ thirteen 9inute)northe5)t5n+2:north95in2r5n-h)eβenth0i92e5)t)i+e)hoot1ro9the0e1te:eo1the+e5th)he5+52ee0ine1ro9the tree through the )hot1i1t:1eet out
9inute)可能是minutes,thirteen minutes也说得通,9-m,)-s
5goo+g05ssin the 2isho.shoste0 in the +eβi0sse5tt]ent:one+egrees5n+thirteen minutes northe5st5n+2:northm5in2r5n-hseβenth0im2e5stsi+eshoot1romthe0e1te:eo1the+e5thshe5+52ee0ine1romthe tree through the shot1i1t:1eet out
发现有一组是northe5st5nd,northe5st可能是northeast;5n+多次出现,可能是一个单词;而且高频字母中的a还没有找到对应的字符,5也在高频符号中,假设5-a,+-d:
A good g0assin the 2isho.shoste0 in the deβi0sseatt]ent:one degrees and thirteen minutes northeast and 2:northmain2ran-hseβenth0im2east side shoot 1rom the 0e1te:eo1 the deathsheada2ee0ine1romthe tree through the shot 1i1t:1eet out
g0ass可能是grass,glass,由于前面假设(-r,所以这里0-l:
a good glass in the 2isho.shostel in the deβilsseatt]ent:one degrees and thirteen minutes northeast and 2: north main 2ran-hseβenthlim2east side shoot 1rom the le1te:eo1 the deaths head a2eeline1romthe tree through the shot1i1t:1eet out
1rom可能是from,1-f:
A good glassin the 2isho.s hostel in the deβilsseatt]ent: one degreesand thirteen minutes northeast and 2: northmain 2ran-hseβenthlim2east side shoot from the left e:eofthe deathsheada2eeline from the tree through the shot fift:feet out
fift:feet可能是fiftyfeet,:-y:
A good glassin the 2isho.s hostel in the deβilsseatt]enty one degreesand thirteen minutes northeast and 2y north main 2ran-hseβenthlim2eastside shoot from the left eye of the deathsheada2eeline from the tree through theshot fifty feet out
2y应该是by,2-b:
A good glassin the bisho.s hostel in the deβilsseatt]enty one degreesand thirteen minutes northeast and by north main bran-hseβenthlimb east side shoot from the left eye of the death's head a beeline from the treethrough the shot fifty feet out
bisho.s应该是bishops;bran-h应该是branch,seβenth应该是seventh,所以.-p,- -c,β-v:
A good glassin the bishop's hostel in the devil's seat t]enty one degrees and thirteen minutesnortheast and by north main branch seventh limb east side shoot from the left eyeof the death's head a beeline from the tree through the shot fifty feet out
最后]对应到w:
A good glassin the bishop's hostel in the devil's seat twenty-one degrees and thirteen minutesnortheast and by north main branch seventh limb east side shoot from the left eyeof the death's head a beeline from the tree through the shot fifty feet out.
中文翻译如下:
一面好镜子在皮肖甫客店魔椅──二十一度十三分──东北偏北──最大树枝第七根桠枝东面──从骷髅头左眼射击──从树前引一直线距线通过子弹延伸五十英尺。
学号:16030140019
姓名: 莫益彰
【嵌牛导读】:凯撒密码是一种简单的加密方法,即将文本中的每一个字符都位移相同的位置。如选定位移3位:
原文:a b c
密文:d e f
由于出现了字母频度分析,凯撒密码变得很容易破解,因此人们在单一恺撒密码的基础上扩展出多表密码,称为“维吉尼亚”密码。
【嵌牛鼻子】密码学,计算机安全。
【嵌牛提问】维吉尼亚怎么破解,8位维吉尼亚是否可破?维吉尼亚算法的时间复杂度?
【嵌牛正文】
维吉尼亚密码的加密
维吉尼亚密码由凯撒密码扩展而来,引入了密钥的概念。即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:
TO BE OR NOT TO BE THAT IS THE QUESTION
当选定RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,依此类推,得出对应关系如下:
密钥:RE LA TI ONS RE LA TION SR ELA TIONSREL
明文:TO BE OR NOT TO BE THAT IS THE QUESTION
密文:KS ME HZ BBL KS ME MPOG AJ XSE JCSFLZSY
图解加密过程:
在维吉尼亚(Vigenère)的密码中,发件人和收件人必须使用同一个关键词(或者同一文字章节),这个关键词或文字章节中的字母告诉他们怎么样才能前后改变字母的位置来获得该段信息中的每个字母的正确对应位置。
维吉尼亚密码的破解
维吉尼亚密码分解后实则就是多个凯撒密码,只要知道密钥的长度,我们就可以将其分解。
如密文为:ABCDEFGHIJKLMN
如果我们知道密钥长度为3,就可将其分解为三组:
组1:A D G J N
组2:B E H K
组3:C F I M
分解后每组就是一个凯撒密码,即组内的位移量是一致的,对每一组即可用频度分析法来解密。
所以破解维吉尼亚密码的关键就是确定密钥的长度。
确定密钥长度
确定密钥长度主要有两种方法,Kasiski 测试法相对简单很多,但Friedman 测试法的效果明显优于Kasiski 测试法。
Kasiski 测试法
在英文中,一些常见的单词如the有几率被密钥的相同部分加密,即原文中的the可能在密文中呈现为相同的三个字母。
在这种情况下,相同片段的间距就是密文长度的倍数。
所以我们可以通过在密文中找到相同的片段,计算出这些相同片段之间的间距,而密钥长度理论上就是这些间距的公约数。
然后我们需要知道重合指数(IC, index of coincidence)的概念。
重合指数表示两个随机选出的字母是相同的的概率,即随机选出两个A的概率+随机选出两个B的概率+随机选出两个C的概率+……+随机选出两个Z的概率。
对英语而言,根据上述的频率表,我们可以计算出英语文本的重合指数为
P(A)^2 + P(B)^2+……+P(Z)^2 = 0.65
利用重合指数推测密钥长度的原理在于,对于一个由凯撒密码加密的序列,由于所有字母的位移程度相同,所以密文的重合指数应等于原文语言的重合指数。
据此,我们可以逐一计算不同密钥长度下的重合指数,当重合指数接近期望的0.65时,我们就可以推测这是我们所要找的密钥长度。
举例来说,对密文ABCDEABCDEABCDEABC
首先测试密钥长度=1,对密文ABCDEABCDEABCDEABC统计每个字符出现的次数:
A: 4 B: 4 C: 4 D:3 E:3
那么对于该序列的重合指数就为:(4/18)^2 + (4/18)^2 + (4/18)^2 +(3/18)^2 +(3/18)^2 != 0.65
然后测试密钥长度=2,将密文ABCDEABCDEABCDEABC分解为两组:
组1:A C E B D A C E B
组2:B D A C E B D A C
我们知道如果密钥长度真的是2,那么组1,组2都是一个凯撒密码。对组1组2分别计算重合指数。
如果组1的重合指数接近0.65,组2的重合指数也接近0.65,那么基本可以断定密钥长度为2。
在知道了密钥长度n以后,就可将密文分解为n组,每一组都是一个凯撒密码,然后对每一组用字母频度分析进行解密,和在一起就能成功解密凯撒密码。
上文已经说到,自然语言的字母频度是一定的。字母频度分析就是将密文的字母频度和自然语言的自然频度排序对比,从而找出可能的原文。
在说维吉尼亚加密法的破解方法之前,有必要来回顾一下它的加密原理。
维吉尼亚加密法是由26套密码组成的表,我们默认要用多套密码给原文加密的时候,具体操作中密文的每个字母由哪套密码来加密,是由钥匙规定的。钥匙最初都是一个正常的单词,原文很长,钥匙最初很短,为了让原文和钥匙一一对应,就反复使用钥匙。比如钥匙是boy,只有3个字母,我们可以boyboyboy这样一直循环下去,和原文中每个字母一一对应。
我们先来看一个例子,在这个例子里,原文是“the sun and the man in the moon”,钥匙是KING,用维吉尼亚加密法加密之后,密码文是一串看起来没什么规律的字母。我们把钥匙、原文和密文的内容依次记录下来。
原文的内容中,有3个定冠词the,变成密文后,the变成了两种样子,第一种是DPR,第二和第三种是BUK。第一个我们不管,关键点就在于——
第二个和第三个竟然加密成了相同的密文。
为什么会出现这种情况,这是巧合吗?
不是的。我们可以看钥匙单词KING,它由4个字母组成。我们再看密文中,后两个代表the的BUK,间隔了8个字母,间隔距离正好是钥匙长度的2倍。也就是说,正好在KING这个钥匙循环到整数倍的时候,如果也正好赶上出现了同样的原文,那巧合就出现了——原文就会被加密成相同的密文。
根据这个规律,我们就能确定钥匙的长度。
比如有这样一段密文:
DYDUXRMH TV NQD QN DYDUXRMH ARTJGW NQD
其中,两个 DYDUXRMH 的出现相隔了15个字母。因此,可以假定钥匙的长度是15的约数,即长度为15、5或3。而两个 NQD 则相距20个字母,意味着钥匙长度应为20、10、5、4或2。取两者的交集,则可以基本确定钥匙长度为5。
这一步,就是破解维吉尼亚加密法的关键一步。
接下来,我们已经知道钥匙的长度是5了,那就意味着在原文中第1、第6、第11、第16……,这些字母单独挑出来放在一组叫作A组。A组可是由维吉尼亚密码表中,同一行移位的字母加密得到的结果。我们再把第2、第7、第12、第17……,这些字母挑出来放在一起称作B组,它们又是用另一行移位字母加密得到的。
我们把这些按组别归纳起来:
A组:第1、第6、第11、第16……
B组:第2、第7、第12、第17……
C组:第3、第8、第13、第18……
D组:第4、第9、第14、第19……
F组:第5、第10、第15、第20……
这就相当于,将原来的密文分解成了五组新的密文,每一组都是由维尼尼亚加密法中的单独一行加密而成,也即单套密码加密。
单套密码加密怎么破解?我们之前介绍过的——频率分析法。
所以,我们来总结一下维吉尼亚加密法的步骤:
第一步,是从密文中找出拼写完全相同的字母串;
第二步,计算出钥匙的长度;
第三步,将密文分析成若干组(与钥匙长度对应);
第四步,分别对每组密文用频率分析法破解。
在20世纪之前,人们一直以为这套方法是普鲁士少校卡西斯基在1863年发明的,所以一直以来这套破解法叫作“卡西斯基试验法”。但是后来更多的资料公布,发现剑桥大学的英国科学家巴贝奇在9年前就已经写下了解法,这位巴贝奇也是后世认为的计算机创造者之一。
发明者受委屈,这既是密码学领域的特点,又是密码学研究者躲不过的委屈。
不论是剑桥大学的巴贝奇,还是普鲁士军官卡西斯基,虽然他们破解了维吉尼亚密码法,但他们在世的时候,始终都不知道自己其实已经在密码学上引起了一场革命。
往期文章:
密码那些事儿|(九)维吉尼亚登场
密码那些事儿|(八)玛丽女王被密码改变的人生
密码那些事儿|(七)以频率之矛,攻移位之盾
密码那些事儿|(六)中外古时候的移位加密
密码那些事儿|(五)换个位置,面目全非
密码那些事儿|(四)隐藏的消息
密码那些事儿|(三)“风语者”——从未被破解的密码
密码那些事儿|(二)密码学发展的七个阶段
密码那些事儿|(一)无所不在的密码
本人是官方授权会员推广专员,点击 会员专属通道 成为会员,您将会获得钻奖励及诸多权益!
《钻奖励调整公告》
1.Kerckhoff's principle:
加密方法不必要求是保密的,它肯定会很容易就落入敌人的手中。安全性仅仅依靠key的安全性。
支持上述principle的三个基本理论:
(1)无论对于哪一方来说,保持一个短的key的安全性比保持加密算法的安全性要简单得多。
(2)当信息被暴露时,改变一个key比替换一个加密模式要简单。
(3)用户们一起使用相同的加密算法好过用户自己使用它们自己的加密算法。
2.通过利用英文的统计模型,可以攻击单字母替换密码:(暴力攻击需要26次)
(1)如果e映射为D,则每个在明文中出现的e都会在密文中显示为D。
(2)每个英文字母出现的频率分布是已知的。
3.移位密码的改进版攻击方法:
(1)将26个字母与数字0~25一一对应,设pi为第i个字母出现的频率(确定的),0= pi =1。由Figure 1.3 给出以下式子:
(2)得到一些密文后,设qi为第i个字母在密文中出现的频率(第i个字母出现的次数除以密文长度)。
(3)设key为k,则pi=
,因为第i个字母被映射到第(i+k)个字母。
(4)设 j ∈{0,...,25} ,对于 j 可能取到的这26个值,分别计算下列式子:
(5)当找到Ik = 0.065,则可得到key的值k。
4.破解多字母移位密码(维吉尼亚密码): (当key长度为t时,暴力攻击需要 26t 次)
吉尼亚密码分解后实则就是多个凯撒密码,只要知道密钥的长度,我们就可以将其分解。
如密文为:ABCDEFGHIJKLMN
如果我们知道密钥长度为3,就可将其分解为三组:
组1:A D G J M (密文中第 0, 3,6,9,12 个字母)
组2:B E H K N (密文中第 1,4,7,10,13 个字母)
组3:C F I L (密文中第 2,5,8,11 个字母)
分解后每组就是一个凯撒密码,即组内的位移量是一致的,对每一组即可用频度分析法来解密。
所以破解维吉尼亚密码的关键就是确定密钥的长度。
当不知道key的长度时。
(1)设key的长度为t,以下字符有相同的位移量
(2)设qi为第i个字母在上面字符串中出现的频率(第i个字母出现的次数除以字符串长度)。
(3)设位移量为j,则
(4)设
(左边这个变量包含了我们要求的key的长度t ,我们从1开始试t的值)
由(1)我们可知
有相同的位移量。接着我们计算下列式子,找出符合式子的t值:
(5)当T不是key的长度t时,则我们期望每个qi的频率都是1/26
※ 维吉尼亚密码、单字母替换密码比对移位密码的攻击需要更长的密文。
5.如今,schemes(方案)被以一种更系统的方式发展和分析,并最终用来给出严格proof(证据)证明给出的construction(结构)是安全的。为了清晰表达这些proofs,我们首先要正式定义“安全”的含义,结果是,大多数密码证明依赖于目前未经证实的假设,这些假设关于某些数学问题的算法难度。
6.比起古典密码学,现代密码学更强调3个规则(principles):定义、假设和证明(definitions, assumptions, and proofs)。
(1)Formal definitions:给出两个准确的描述:在这个范围内威胁有哪些、什么样的安全保障是被需要的。这样,definitions能够帮助引导加密方案(cryptographic schemes)的设计。在合适的definition下,我们可以研究一个被推荐的方案去看它是否完成需求保障;某些情况下,我们还可以通过展示满足definition证明一个给出的结构的安全。
一个满足更弱定义的方案可能会比满足更强定义的方案更有效。
(2)一个安全定义有两个元素:一个安全保障(从攻击者的观点来看,什么对该方案(scheme)构成成功的攻击,即scheme旨在预防攻击者的行动);一个威胁的模型(描述敌手的能力)。
(3)威胁模型假定攻击者拥有的能力,但对敌手使用的策略没有限制,不用假定敌手是怎么使用它的能力的。
(4)威胁模型,按顺序,攻击者的能力增加:唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击。
(5)Precise Assumptions:安全证明(proofs)经常依赖于假设(assumptions)。
(6)如果被视为建筑块的基本假设,作为方案安全证明的部分是明确的,接着我们只需检查要求的假设是否被新弱点影响。
(7)Proofs and Security: 严格的证明:在某些特定的假设(assumption)下,一个构造(construction)满足给出的定义(definition)。
字母频率分析法对单表代换密码算法最有效。
通过分析每个符号出现的频率而轻易地破译代换式密码。在每种语言中,冗长的文章中的字母表现出一种可对之进行分辨的频率。例如,e是英语中最常用的字母,其出现频率为八分之一。最好假定长长的密文中最常用的符号代表e。如果密码分析者根据频率数能破译出9个最常用的字母e,t,a,o,n,i,r,s和h,一般来说他就可破译70%的密码。最现代的译密技术也是以古老的频率分析法为根据的。
频率分析法还可以用来对单词中的字母的位置及其组合进行分析。例如,全部英语单词中有一半以上是似t,a,o,s或w开头的。仅10个单词(the,of,and,to,a,in,that,it,is和I)就构成标准英语文章四分之一以上的篇幅。
编成密码的词汇量越大,用频率分析法译密就越容易。
密码的使用可以追朔到古埃及时期,在那时有一种现在被称为“棋盘密码”的加密方法。
其原理如下:
在通信双方,掌握着相同的m*n列矩阵,在该矩阵中保存着所要加密的字符组成的字符集,加密时找到相应的明文字符,然后记下行号与列号。
不断重复上述过程,直到查完所有明文字符,这样就可以得到以行号与列号组成的一个数字序列c。
接受方接受到该数字序列c,不断从该序列中取出行号与列号,然后在m*n列矩阵中查找出对应行、列的字符。
显然,由于双方拥有相同的矩阵,故能够保证接受者可以从密文中还原出明文。
在这种加密方法中,密钥显然就是那个矩阵。
对于这种加密方法,相必有许多读者已从一些小说中见到。
在计算机上又如何实现这种密码呢?我相信不用说,大家都已想到该怎么做了。
对,实质上就是重新映射计算机上的字符集。
而那个映射表就是密钥。
说到底,其实这种加密方法就是一个单表置换加密(在以后会讨论到这种加密方法的)。
对于单表置换加密可通过频率统计方法进行破译,因此,这是一种不安全的加密方法。
密码学作为保护信息的手段,经历了三个发展时期。
它最早应用在军事和外交领域,随着科技的发展而逐渐进入人们的生活中。
在手工阶段,人们只需通过纸和笔对字符进行加密。
密码学的历史源远流长,人类对密码的使用可以追溯到古巴比伦时代。
下图的Phaistos圆盘是一种直径约为160mm的粘土圆盘,它始于公元前17世纪,表面有明显字间空格的字母。
近年有研究学家认为它记录着某种古代天文历法,但真相仍是个迷。
随着工业革命的兴起,密码学也进入了机器时代、电子时代。
与人手操作相比电子密码机使用了更优秀复杂的加密手段,同时也拥有更高的加密解密效率。
其中最具有代表性的就是下图所示的ENIGMA。
ENIGMA是德国在1919年发明的一种加密电子器,它被证明是有史以来最可靠的加密系统之一。
二战期间它开始被德军大量用于铁路、企业当中,令德军保密通讯技术处于领先地位。
在这个时期虽然加密设备有了很大的进步,但是密码学的理论却没有多大的改变,加密的主要手段仍是--替代和换位。
计算机的出现使密码进行高度复杂的运算成为可能。
直到1976年,为了适应计算机网络通信和商业保密要求产生的公开密钥密码理论,密码学才在真正意义上取得了重大突破,进入近代密码学阶段。
近代密码学改变了古典密码学单一的加密手法,融入了大量的数论、几何、代数等丰富知识,使密码学得到更蓬勃的发展。
到了现在,世界各国仍然对密码的研究高度重视,已经发展到了现代密码学时期。
密码学已经成为结合物理、量子力学、电子学、语言学等多个专业的综合科学,出现了如“量子密码”、“混沌密码”等先进理论,在信息安全中起着十分重要的角色。
希腊斯巴达出现原始的密码器,用一条带子缠绕在一根木棍上,沿木棍纵轴方向写好明文,解下来的带子上就只有杂乱无章的密文字母。
解密者只需找到相同直径的木棍,再把带子缠上去,沿木棍纵轴方向即可读出有意义的明文。
这是最早的换位密码术。
公元前1世纪,著名的恺撒(Caesar)密码被用于高卢战争中,这是一种简单易行的单字母替代密码。
公元9世纪, *** 的密码学家阿尔·金迪(al' Kindi 也被称为伊沙克 Ishaq,(801?~873年),同时还是天文学家、哲学家、化学家和音乐理论家)提出解密的频度分析方法,通过分析计算密文字符出现的频率破译密码。
公元16世纪中期,意大利的数学家卡尔达诺(G.Cardano,1501—1576)发明了卡尔达诺漏格板,覆盖在密文上,可从漏格中读出明文,这是较早的一种分置式密码。
公元16世纪晚期,英国的菲利普斯(Philips)利用频度分析法成功破解苏格兰女王玛丽的密码信,信中策划暗杀英国女王伊丽莎白,这次解密将玛丽送上了断头台。
几乎在同一时期,法国外交官维热纳尔(或译为维琼内尔) Blaise de Vigenere(1523-1596)提出著名的维热纳尔方阵密表和维热纳尔密码(Vigenerecypher),这是一种多表加密的替代密码,可使阿尔—金迪和菲利普斯的频度分析法失效。
公元1863,普鲁士少校卡西斯基(Kasiski)首次从关键词的长度着手将它破解。
英国的巴贝奇(Charles Babbage)通过仔细分析编码字母的结构也将维热纳尔密码破解。
公元20世纪初,第一次世界大战进行到关键时刻,英国破译密码的专门机构“40号房间”利用缴获的德国密码本破译了著名的“齐默尔曼电报”,促使美国放弃中立参战,改变了战争进程。
大战快结束时,准确地说是1918年,美国数学家吉尔伯特·维那姆发明一次性便笺密码,它是一种理论上绝对无法破译的加密系统,被誉为密码编码学的圣杯。
但产生和分发大量随机密钥的困难使它的实际应用受到很大限制,从另一方面来说安全性也更加无法保证。
第二次世界大战中,在破译德国著名的“恩格玛(Enigma)”密码机密码过程中,原本是以语言学家和人文学者为主的解码团队中加入了数学家和科学家。
电脑之父亚伦·图灵(Alan Mathison Turing)就是在这个时候加入了解码队伍,发明了一套更高明的解码方法。
同时,这支优秀的队伍设计了人类的第一部电脑来协助破解工作。
显然,越来越普及的计算机也是军工转民用产品。
美国人破译了被称为“紫密”的日本“九七式”密码机密码。
靠前者,德国的许多重大军事行动对盟军都不成为秘密;靠后者,美军炸死了偷袭珍珠港的元凶日本舰队总司令山本五十六。
同样在二次世界大战中,印第安纳瓦霍土著语言被美军用作密码,从吴宇森导演的《风语者》Windtalkers中能窥其一二。
所谓风语者,是指美国二战时候特别征摹使用的印第安纳瓦约(Navajo)通信兵。
在二次世界大战日美的太平洋战场上,美国海军军部让北墨西哥和亚历桑那印第安纳瓦约族人使用约瓦纳语进行情报传递。
纳瓦约语的语法、音调及词汇都极为独特,不为世人所知道,当时纳瓦约族以外的美国人中,能听懂这种语言的也就一二十人。
这是密码学和语言学的成功结合,纳瓦霍语密码成为历史上从未被破译的密码。
1975年1月15日,对计算机系统和网络进行加密的DES(Data Encryption Standard数据加密标准)由美国国家标准局颁布为国家标准,这是密码术历史上一个具有里程碑意义的事件。
1976年,当时在美国斯坦福大学的迪菲(Diffie)和赫尔曼(Hellman)两人提出了公开密钥密码的新思想(论文"New Direction in Cryptography"),把密钥分为加密的公钥和解密的私钥,这是密码学的一场革命。
1977年,美国的里维斯特(Ronald Rivest)、沙米尔(Adi Shamir)和阿德勒曼(Len Adleman)提出第一个较完善的公钥密码体制——RSA体制,这是一种建立在大数因子分解基础上的算法。
1985年,英国牛津大学物理学家戴维·多伊奇(David Deutsch)提出量子计算机的初步设想,这种计算机一旦造出来,可在30秒钟内完成传统计算机要花上100亿年才能完成的大数因子分解,从而破解RSA运用这个大数产生公钥来加密的信息。
同一年,美国的贝内特(Ben)根据他关于量子密码术的协议,在实验室第一次实现了量子密码加密信息的通信。
尽管通信距离只有30厘米,但它证明了量子密码术的实用性。