在布莱切利园中,德国海军的恩尼格玛密码一直被认为是最难以破解的。
德国海军历来极其重视无线通信的可靠性和保密性,就是他们率先使用了恩尼格玛机来加密。而且,德国海军还频繁地在结构和操作方式上对恩尼格玛机进行改进,以确保它无懈可击、牢不可破。
第二次世界大战前夕,德国陆军和空军将恩尼格玛机的转子从3个增加到了5个,而德国海军则是继续增加到了7个,最后更是丧心病狂的增加到了8个。
而且,德国海军还使用了与陆军及空军不一样的新操作规程,主要包括两个方面:
一、增加“密钥手册”,规定每天0点更新初始参数。
(a)选择8个转子中的3个并规定其基左中右位置;
(b)设定各转子的内外轮之间的相对位置;
(c)设定接线板上的10对接线;
(d)设定3个转子的初始位置。
二、采用“双字替换表”
(a)发报前,先从密钥手册中选3个字母,比如ABC,作为密钥,然后把恩尼格玛机的3个转子调到当天规定的初始位置,输入ABC,假设得到FTN,再把转子调到FTN的位置,开始加密正式电文;
(b)再从密钥手册中选另一组字母,比如XYZ,在XYZ的左边和密钥ABC的右边任意增加一个字母,比如P、Q,列成两行,上下对齐。
P X Y Z
A B C Q
(c)根据当天有效的“双字替换表”把各列的字母对PA、XB、YC、ZQ分别替换,比如替换成IS、OW、MD、UV;
(d)发送电报时,把这4对字母加在正式密文的首尾;
(e)对方接收到电报后,先对4对字母反向操作,得到3个字母ABC,再得到FTN,然后开始解密正文。
这样一来,原来重复加密3个字母密钥的操作就不存在了,以致雷杰夫斯基发明的破解方法完全失效。
在图灵来到布莱切利园之前,几乎所有人都认为德国海军的密码是无法破译的,因此没有人愿意为它浪费时间。图灵到来之后,发明了基于crib方法的“炸弹”机,理论上是可以对德国海军的密码进行破译的,但由于早期的“炸弹”机性能过低,所以破解的效率极为低下。
当时德国的U-潜艇正在严重威胁盟军的大西洋生命线,寻找有效的破解德国海军密码的方法变得刻不容缓。经过一段时间的摸索和研究,图灵终于发明了基于贝叶斯统计原理的“班布里方法”,能够有效破解德国海军的恩尼格玛机。
班布里方法基于语言学中的一个统计事实:把任意两段文字拿来排成行上下对齐进行比较,查看其中有多少对字母是相同的;当这两段文字属于同一编码系统时出现相同字母对的概率,明显高于当它们不属于同一编码系统时的相应概率。
基于这个原理,图灵找到了破解德国海军恩尼格玛机的途径。不过图灵所用的方法包含了大量数学理论,过程也相当繁琐,这里就不详细表述了,我们只说一下图灵的大致思路。
首先,通过对比分析大量的电文头尾的明文字母,部分甚至完全破解“双字替换表”,从而获得电文密钥;
其次,用班布里方法,确定右边转子是8个转子中的哪一个;
再次,重复使用班布里方法,进一步确定中间转子是哪一个;
最后,用“炸弹”机破解全部密文。
这个步骤被验证是行之有效的,图灵就这样搞定了最高级别的德国海军恩尼格玛机。
1940年5月8日,用班布里方法破解德国海军密码首次获得成功。以后的三年里,此方法结合“炸弹”机成为英国破解德国海军密码的主要手段,为盟军重创德国U-潜艇舰队、守住大西洋生命线做出了巨大贡献。
据不完全统计,破解之后,盟军全年被击沉船只的吨位下降了60%;而德军潜艇的损失率,从破译前的不到7%,猛增到50%。
更多文章:
密码那些事儿|(二十)破解恩尼格玛机的图灵方法
密码那些事儿|(十九)在人性与规则中找寻漏洞
密码那些事儿|(十八)跨越英吉利海峡的恩尼格玛机
密码那些事儿|(十七)年轻数学家首次破解恩尼格玛机
密码那些事儿|(十六)二战中大放异彩的“超级情报”
密码那些事儿|(十五)坚持就是胜利——初代恩尼格玛机
密码那些事儿|(十四)古典密码的巅峰——恩尼格玛机
密码那些事儿|(十三)尴尬的维吉尼亚3.0
密码那些事儿|(十二)短命的维吉尼亚2.0
密码那些事儿|(十一)南北战争时的维吉尼亚密码较量
密码那些事儿|(十)“钥匙”打开维吉尼亚的锁
本人是官方授权会员推广专员,点击 会员专属通道 成为会员,您将会获得钻奖励及诸多权益!
《钻奖励调整公告》
他身上更重要的特质是纯粹。图灵是个纯粹的人。他对待科学的态度对待计算机的态度也是纯粹的,他只是想找事物的规律,只做自己感兴趣的事情。
从小图灵就是一个矛盾体,他可以自己通过一本《快乐阅读》,用三周时间学会阅读,他还用更短的时间学会识数,在本子上抄写治疗荨麻疹的酸模合剂的成分,但是直到7岁的时候依然无法分辨左右,于是聪明的他在左手的拇指上画了一个红点,称为“识别点”,通过它,来判断哪边是左。
图灵的一生,看似传奇,又充满无奈,他孑然一身,在数学和机器的荆棘丛中穿行,他解读了世界上最难的密码,使得这场战争至少提前两年结束,也使得至少2000万人免于战火的袭击。可以说图灵对于二战的贡献是不可磨灭的。但他的生命却让这个世界永远无法解读。
密码主要用于军事,无论古今中外,概莫能外。据《六韬》所载,3000年前由姜子牙发明了“阴符”,这就是最初的密码。后被广泛运用于我国古代维护国家安全的军事活动和情报活动中。
相传姜太公带领的周军指挥大营被叛兵包围,情况危急。姜太公令信使突围,他怕信使遗忘机密,又怕周文王不认识信使,耽误军务大事。于是就将自己珍爱的鱼竿折成数节,每节长短不一,各代表一件军机,令信使牢记,不得外传。
信使回到朝中,文王令左右将几节鱼竿合在一起,亲自检验。他辨认出是姜太公的心爱之物,便亲率大军解了姜太公之危。事后,姜太公妙思如泉涌,他将鱼竿传信的办法加以改进,便发明了“阴符”。后来又演化成皇帝和大将各执一半的“虎符”,作为调兵遣将的凭证。
宋朝时,官方便将常用的40个军事短语,分别用40个字来代替,然后编出一首40个字的诗,作为破译的“密码本”。到了明朝,戚继光发明了反切码,他还专门编了两首诗歌,作为“密码本”。这两首诗歌是反切码全部秘密所在,它使用汉字注音方法中的“反切法”,取声母和韵母按照顺序进行编号,再进行读取。其原理与现代密电码的设计原理完全一样,但却比现代密码更难破译。
那么西方的情况又是如何呢?
在古希腊,人们用一条带子缠绕在一根木棍上,沿木棍纵轴方向写好明文,解下来的带子上就只有杂乱无章的密文字母。解密者只需找到相同直径的木棍,再把带子缠上去,沿木棍纵轴方向即可读出有意义的明文。
公元前1世纪,凯撒密码被用于高卢战争中,这是一种简单易行的单字母替代密码。战前凯撒设计了一种对重要的军事信息进行加密的方法,即使这些信息被截获,敌方也不一定能看懂。其实,凯撒密码字母移位的位数就是一种简单易行的单字母替代密码。密码轮是利用凯撒密码来应用的,通过把字母移动一定的位数来实现加密和解密。
计算机因解码而诞生
工业革命后,密码学也进入了机器时代、电子时代。上世纪20年代,人们发明了各种机械设备来自动进行加解密,于是就出现了密码机。因为大多数密码机使用连线接通各个机械转轮,实现密码代换,所以也称之为“转轮机时代”。
世界上最著名的密码机是德国在第一次世界大战时发明的“谜”。
“谜”是世界上第一部机械密码机,其工作原理奠定了当今计算机加密的基础。这种密码融数学、物理、语言、历史、国际象棋原理、纵横填字游戏等为一体,被希特勒称为“神都没办法破译的世界第一密码”。一份德国报告称:“谜”能产生220亿种不同的密钥组合,假如一个人日夜不停地工作,每分钟测试一种密钥的话,需要约4.2万年才能将所有的密钥可能组合试完。
二战期间,“谜”被德军大量用于铁路、企业当中,令德军保密通讯技术处于领先地位。
盟军在破译“谜”密码过程中,吸纳了大批语言学家、人文学家、数学家、科学家加入解码队伍。电脑之父图灵, 1912~1954)也在其列。在图灵的领导下,这支优秀的队伍设计了人类的第一部电脑来协助破解工作。1939年8月,解码队伍完成了一部针对“谜”型机的密码破译机,每秒钟可处理2000个字符,绰号叫“炸弹”。半年后,它几乎可以破译所有被截获的德国情报,这使得德国的许多重大军事行动对盟军都不成为秘密。
虽然计算机因破译密码而诞生,而计算机的发展速度远远超过人类的想象。上世纪70年代,三位科学家和电脑专家设计了一个世界上最难破解的密码锁,意图利用长长的数学密码,保护储存在电脑数据库里的绝密资料,例如可口可乐配方、核武器方程式等。他们宣称,人类要想解开他们的密码,需要4万亿年。
当然,编制密码锁的三位专家没有想到,科学会发展得这样快。仅仅过了17年,世界五大洲600位专家利用1600部电脑,并且借助电脑网络,埋头苦干8个月,终于攻克了这个号称千亿年难破的超级密码锁。结果发现,藏在密码锁下的,并非可口可乐配方、核武器方程式,而是这样一句话:“魔咒是神经质的秃鹰。”
密码的民用不到30年
你恐怕没有想到,这样一个密码算法竟让发明者接受了长达5年的审判。因为,那时的密码还由军方垄断。1991年,美国学者齐默尔曼设计出一种经济而有效的产品。当时,美国法律规定,密码算法属于军火,但齐默尔曼还是铤而走险免费发放了这些加密软件。齐默尔曼被美国海关当局起诉的罪名是:“非法出口军火,给敌对国家和恐怖分子提供进攻美国的工具。”
当时,执政者认为,密码算法的广泛应用给恐怖分子、贩毒集团以可乘之机。而支持加密公众化的公民和密码学家认为,人们亟须使用密码来保护个人隐私。
随着电子商务的发展,大的商业公司也加入进来,他们需要强大的密码算法使他们能在网络时代保证业务的安全。经过5年的斗争,克林顿政府被迫更改了法律,大陪审团也放弃了对齐默尔曼定罪的想法。
随着网络时代的到来,密码成了现代都市生活中最普遍运用的个人信息认证手段,它以最简单的数字组合方式,取代各种烦琐的个人认证方法。
1993年,银行业务实行电脑联网。其中,与个人关系最紧密的是活期存款,银行从那时开始让储户设置个人密码。为了方便记忆,身份证的后几位数、生日、电话号码、门牌号等,是那时候老百姓最常用的密码。1996年,全国银行系统普及了密码的使用和设备更新。1999年开始,银行存取款必须使用密码就变成了硬性规定。现在,多数银行只要输入密码,凭存折或储蓄卡,就能进行5万元以下的支取,无需身份证。
2000年前后,国内各大网站开始大规模开发电子邮箱,那时候网站对邮箱密码的要求并不太严格,规定只要三个字符以上即可,有许多人就用ABC、123等做密码。在收到了用户邮箱被盗的反馈后,网站将密码最少数位提升至6位。现在这些以数字和字母搭配的“软密码”也越来越不安全了。例如,前不久国内就有某大型网站被黑客侵入,泄露客户的大量隐私。
目前大多银行等涉及高隐私的部门都开发出针对自己安全系统的“硬密码”,即非要在客户端插上一个类似于U盘那样的“密码”,然后再输入相应的软密码才能登录相应的网站。
经过数千年的演化,我们又回到了“虎符”的年代,只不过现在的虎符是电子的了。