密码那些事儿|(二十一)再下一城,图灵破解最高级别恩尼格玛机
在布莱切利园中,德国海军的恩尼格玛密码一直被认为是最难以破解的。
德国海军历来极其重视无线通信的可靠性和保密性,就是他们率先使用了恩尼格玛机来加密。而且,德国海军还频繁地在结构和操作方式上对恩尼格玛机进行改进,以确保它无懈可击、牢不可破。
第二次世界大战前夕,德国陆军和空军将恩尼格玛机的转子从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
密码那些事儿|(十一)南北战争时的维吉尼亚密码较量
密码那些事儿|(十)“钥匙”打开维吉尼亚的锁
本人是官方授权会员推广专员,点击 会员专属通道 成为会员,您将会获得钻奖励及诸多权益!
《钻奖励调整公告》
恩尼格玛密码机的破译过程
1931年11月8日,法国情报人员与德军通讯部门长官(就是他下令德军使用恩尼格玛密码机的)的弟弟,汉斯-提罗·施密特,在比利时接头。在德国密码处工作的施密特很厌恶德国,于是他就向法国情报人员提供了两份有关恩尼格玛密码机的操作和转子内部线路的资料。但是法国还是无法破译它的密码,因为恩尼格玛密码机的设计要求之一就是要在机器被缴获后仍具有高度的保密性。当时的法军认为,由于凡尔赛条约限制了德军的发展,所以即使无法破译德军的密码,将来如果在战场上相见也不会吃多大亏,于是在得出德军密码“无法破译”的结论之后就再也没有用心地研究它了。
与法国不同,第一次世界大战中新独立的波兰的处境却很危险,西边的德国根据凡尔赛条约割让给了波兰大片领土,德国人对此怀恨在心,而东边的苏联也在垂涎着波兰的领土。所以波兰需要时刻了解这两个国家的内部信息。这种险峻的形势造就了波兰一大批优秀的密码学家。他们很容易就监控住了德军内部的通讯系统,但是1926年被德军启用的恩尼格玛密码机却给他们造成了很大困难。
1921年,波兰与法国签订了一个军事合作协议。在波兰的坚持之下,法国把从施密特那里得来的情报交给了波兰人。在本文“操作步骤”一章的“指示器”一节中,我们提到了指示器步骤的严重缺点,波兰人正是以这个缺点为突破口破译了商业用恩尼格玛密码机。
但1941年英国海军在Joe Baker-Cresswell舰长的斗牛犬号军舰捕获德国潜艇U-110才真正拿到德国海军用的密码机和密码本,并将此事保密只告诉美国罗斯福总统,英国国王乔治六世称赞此事件是整个二次大战海战中最重要的事件。这让原本连数学天才图灵也破译不出的德军密码机得到破译,盟军设计的专门用来破译恩尼格玛密码的“炸弹”机也大大提高了布莱切利园的工作效率。
在战争结束以后,英国人并没有对破译恩尼格玛一事大加宣扬,因为他们想让英国的殖民地用上这种机器。1967年,波兰出版了第一本有关恩尼格玛破译的书,1974年,曾在布莱切利园工作过的英国人F.W.温特伯坦姆写的《超级机密》(The Ultra Secret)一书出版,这使外界广泛地了解到了第二次世界大战中盟军密码学家的辛勤工作。
2001年4月21日,以为破译恩尼格玛而做出了重大贡献的三位杰出的波兰密码学家马里安·雷耶夫斯基、杰尔兹·罗佐基和亨里克·佐加尔斯基命名的雷耶夫斯基、罗佐基和佐加尔斯基纪念基金在华沙设立,它在华沙和伦敦设置了这些波兰密码学家的纪念铭牌。2001年7月,基金会在布莱切利园安放了一块基石,上面刻着丘吉尔的名言“在人类历史上,从未有如此多的人对如此少的人欠得如此多。”
密码那些事儿|(十七)年轻数学家首次破解恩尼格玛机
受影视文学作品影响,提到年轻数学家破解恩尼格玛机,人们的脑海中都会浮现出图灵的名字。不可否认,图灵为最终破解恩尼格玛机确实做出了巨大的贡献,但那是他站在了“巨人的肩膀上”。事实上,在图灵之前,首次破解恩尼格玛机要归功于三位年轻的数学家,他们全部来自波兰。
一战后世界处于暂时的停火状态,波兰位于德国和苏联之间,属于在两个大国的夹缝中求生存。东边经常被苏联渗透,西边的德国又谋划着收复失地,所以波兰的警惕性极高,总感觉随时会被两边的强敌攻陷,从没放松过密码学研究。这种威胁下的恐惧感给了他们破解恩尼格玛机的最大动力。
1929年1月,波兰波兹南大学数学系的一群20多岁的大学生和部分研究生被要求宣誓保密,然后开始学习一门密码学课程。他们每周上两个晚上的课,在几星期后就开始破解各种密码,无法完成破解功课的学生则会被淘汰。最终只剩下了三名优秀者,他们分别是雷杰夫斯基、齐加尔斯基和鲁日茨基。
正是这三位年轻的波兰数学家,破译了曾经被认为不可能被破译的初代恩尼格玛机,其中尤以雷杰夫斯基居功至伟——他建立了破解恩尼格玛机的数学方程。
在破解之前,波兰密码局通过情报渠道掌握了德国人使用恩尼格玛机的一些规定:
1.相互间进行通信的恩尼格玛机都有相同的初始设定,其中包括转子的排列和起始位置,初始设定每天变更一次,操作员每个月都会收到一本新的密码簿,上面记录着每天的初始设定;
2.发报员在每发一份电文前,先按密码簿上的当天设定,初始状态为QCW(假设),然后脑子里随意想3个字母,比如说ABC,用设置成QCW状态的机器给ABC加密,比如说加密后ABC变成了BMW。但一次还不够,还要再加密一次,比如第二次ABC又变成了FTN。然后把两次加密的结果并列写一起,形成BMWFTN;
3.收报员收到加密的电文后,先把自己密码机的转子调到当天规定的起始位置,然后输入密文的前6个字母BMWFTN,解密得到ABC,再把3个转子调到ABC的位置,开始解密正式的电文。
通过这些情报,雷杰夫斯基发现: 从数学的角度来看,密码机的作用就是对26个字母进行置换。
随后,他又根据19世纪法国天才数学家伽罗瓦(这位哥们也是密码学史上的重要人物)的“置换群”代数理论——n个元素的所有置换通过合成关系形成为一种代数结构,建立了恩尼格玛机的“置换群”方程。
比如:字母a被加密成x,字母b被加密成y,字母c被加密成z,就形成了三个置换方程:
T(a)=x,T(b)=y,T(c)=z。解出这个方程的解,也就找到了破解恩尼格玛机的关键。
但是这种置换群的结构仍然十分复杂,想求解也是十分困难。雷杰夫斯基又根据恩尼格玛机的特点,发现了两个限定条件:
第一个条件是由于反射器的作用,恩尼格玛机加密与解密的过程完全一致,也即是T(a)=x与T(x)=a是一致的;
第二个条件是操作规程中的前6个字母。比如,某一天密文的前6个加密字符是BMWFTN,那就可以假设加密前的明文为ABCABC,ABC这三个字母就是该电文的密钥,也就是加密电文时3个转子的初始位置参数。
那么把它用置换方程描述出来就是,T1(A)=B,T2(B)=M,T3(C)=W,T4(A)=F,T5(B)=T,T6(N)=N。
根据第一个条件,就可以转化为,T4(T1(A))=F,T5(T2(B))=T,T6(T3(C))=N。
雷杰夫斯基把这三个置换称为这一天密码的“特征集”,想知道T1、T2、T3、T4、T5、T6,只需要把特征集置换的所有对换总结出来就可以了。
具体的工作就是,把当天截获的信息中,所有可以对应的字母都找出来。
假设波兰人截获四封电文,其中每封电文的开头六个字母分别为:
根据上述的操作方式,每封电文的第一个和第四个字母是同一字母加密而来,于是通过上面四封电文,我们可以得到第一个及第四个字母的联系如下:
如果每天可以得到足够多的电文,那么上面的关系表便可以补充完整如下:
仔细观察这个表格,我们不难发现字母关系中会有如下循环:
同样对第二和第五,第三和第六个字母我们也可以写出类似的循环。
而且三位数学家还进一步发现,这种循环,也即由每天的密钥决定的特征集,当中所包含的环的长度和个数只与转子的排列和初始位置有关。
于是他们决定把所有的特征集按其所包含的环的长度和个数分类。为此雷杰夫斯基在恩尼格码的基础上设计了一台能同时验证所有转子位置的机器,取名为炸弹(La Bomba)。经过一年多的连续运行记录,终于收集到了全部数据。这样,波兰人便从每日截获的大量电文中写出字母循环圈,然后根据循环圈的数目和长度从记录表中检索出相对应的转子位子,即是当日的密钥。
至此,第一代恩尼格玛机被全部破解。以后几年,波兰密码局每天都能破译大量的德军情报。
上面对雷杰夫斯基的工作的介绍是极其简单化的,只以举例的形式介绍了其中最重要的思路。雷杰夫斯基对于ENIGMA的分析是在密码分析史上最重要的成就之一,整个工作都是严格地数学化了的(求解关于置换矩阵的方程),决非上面所举例子可以包含。比如说,找到当日密钥中转子状态后,还需要找到连接板状态,才能真正译出密文。
为了表彰雷杰夫斯基、齐加尔斯基和鲁日茨基的功勋,2000年时他们被追授了“波兰复兴大十字勋章”。在2005年雷杰夫斯基诞辰100周年时,他的家乡比得哥市还为他建立了一座铜像,以纪念他在破解恩尼格玛机中的丰功伟绩。
往期文章:
密码那些事儿|(十六)二战中大放异彩的“超级情报”
密码那些事儿|(十五)坚持就是胜利——初代恩尼格玛机
密码那些事儿|(十四)古典密码的巅峰——恩尼格玛机
密码那些事儿|(十三)尴尬的维吉尼亚3.0
密码那些事儿|(十二)短命的维吉尼亚2.0
密码那些事儿|(十一)南北战争时的维吉尼亚密码较量
密码那些事儿|(十)“钥匙”打开维吉尼亚的锁
密码那些事儿|(九)维吉尼亚登场
密码那些事儿|(八)玛丽女王被密码改变的人生
密码那些事儿|(七)以频率之矛,攻移位之盾
密码那些事儿|(六)中外古时候的移位加密
本人是官方授权会员推广专员,点击 会员专属通道 成为会员,您将会获得钻奖励及诸多权益!
《钻奖励调整公告》
西洋生命线,寻找有效的破解德国海军密码的方法变得刻不容缓。经过一段时间的摸索和研究,图灵终于发明了基于贝叶斯统计原理的“班布里方法”,能够有效破解德国海军的恩尼格玛机。 班布里方法基于语言学中的
所有置换通过合成关系形成为一种代数结构,建立了恩尼格玛机的“置换群”方程。 比如:字母a被加密成x,字母b被加密成y,字母c被加密成z,就形成了三个置换方程: T(
斯基在恩尼格码的基础上设计了一台能同时验证所有转子位置的机器,取名为炸弹(La Bomba)。经过一年多的连续运行记录,终于收集到了全部数据。这样,波兰人便从每日截获的大量电