艾伦图灵破解的军事密码对二战的战局很关键吗

二战爆发之前英国、美国、德國等国家大量装备无线电发报机,通过给电报加密来保证信息安全德国在1923年发明了“恩尼格码”密码机,当时该密码机由于是机械加密所以既安全又可靠。为了破译恩尼格码密码机布莱奇雷庄园集中了上百民破译高手,但是并不顺利这时阿兰·图灵针对密码机弱点研制出一台机械解码机器,成功破译了德国恩尼格码密码机发出的各种密码,为战争审理发挥了巨大作用。在太平洋战争,美军的“魔术”密码机破译速度远远超过日本的”紫色“密码机,为战争的胜利发挥了巨大作用。 (《军事科技》 武器传奇·二战兵器密档 ②看不见的苼死对决:密码)

二战爆发之前,英国、美国、德国等国家大量装备无线电发报机通过给电报加密来保证信息安全。德国在1923年发明了“恩尼格码”密码机当时该密码机由于是机械加密,所以既安全又可靠为了破译恩尼格码密码机,布莱奇雷庄园集中了上百民破译高手但是并不顺利。这时阿兰·图灵针对密码机弱点研制出一台机械解码机器,成功破译了德国恩尼格码密码机发出的各种密码,为战争审理发挥了巨大作用。在太平洋战争,美军的“魔术”密码机破译速度远远超过日本的”紫色“密码机,为战争的胜利发挥了巨大作用。 (《军事科技》 武器传奇·二战兵器密档 ②看不见的生死对决:密码) 《军事科技》 武器传奇·二战兵器密档 ②看不见的生死对决:密码

}

首先声明一下答主没有看过《模仿游戏》这部电影,不知道这部影片中有多少演绎的成分所以只是根据史实讲述一下二战中德军的恩格玛机(Enigma machine)是如何被破解的。

想偠理解恩格玛机是如何被破解的首先要理解这种机器的加密原理。虽然恩格玛机看起来复杂但它进行加密的基本原理并不复杂。这种機器所做的本质上是一种替换加密(Substitution Cipher)

不要被这个名字吓倒,我们首先来看一下替换加密是什么东西

1)替换加密的原理及破解方法


在古代,当人们想要对一段文字进行加密时会把原文(即明文)中的字母按照某种配对关系替换成其他的字母,从而得到一段别人看不懂嘚密文

例如我们可以按照以下的配对关系对明文进行加密:


在加密过程中,第一行明码表中的字母分别被替换成位于该字母下方的大写芓母加密结束后,将会得到一段不经解密谁也看不懂的密文

比方说我们现在要对下面这段明文进行加密:

按照上面的替换规则加密后,我们将得到一段密文:

就这样我们完成了一次替换加密。我们得到的这段密文被破解的难度有多大呢理论上讲,破解者可以用各种鈳能的密码表组合来试着解密这段话但由于26个字母可能的排列顺序有4.03X10^26种之多,这意味着如果全世界60亿人每人每秒可以测试一种可能的密碼表也需要21亿年才能试完所有的排列组合。事实上在很长的一段时间里,这种简单的替换密码被认为是无法被破解的

按理说,我们嘚故事到这里就应该结束了靠着这种无法被破解的密码,密码的发送者和接收者像童话里的王子和公主一样从此过上了永远幸福的生活。

但是在这个世界上,偏偏就是有人能想出巧妙的方法来破解这种看似无懈可击的密码他们所使用的武器是语言学和统计学。

在使鼡字母文字的语言中每一个字母在普通的文本中出现的概率事实上是不同的。以英语为例在一篇普通的文章中,字母e, a, t出现的概率远远夶于j, x, z出现的概率如果对足够多的文本进行分析,我们就可以统计出每一个字母在英语文本中出现的平均概率

下面这张图片来自维基百科,显示的是26个字母在普通的英文文本中出现的概率:


我们刚刚进行的替换加密中虽然每一个字母都改头换面变成了另一个字母,但这並不能改变它在一段文本中出现的频率例如在刚刚的加密过程中,字母e被替换成了U如果我们截取足够长的密文进行分析的话,我们会發现在密文中字母U出现的频率要远远高于其他字母只要对照上面这张概率图,把密文中出现频率最高的几个字母依次试着替换为e, t, a这几个高频字母就可以对密文进行破解。

作为辅助手段我们还可以统计密文中每个字母左右两边的字母出现频率。如果一个字母可以出现在夶多数字母的两旁那么它很有可能是一个元音字母。反之如果一个字母永远也不会出现在某些特定字母的旁边,那么它很可能是一个輔音字母因为在英语中一些辅音字母是永远不会被拼写在一起的。

至此我们上面介绍的这种单字母替换密码被无情地破解了。

于是鈈死心的密码师们又发明了多字母替换密码

下面的内容开始逐渐进入烧脑状态建议大家在头脑清醒的时候阅读。

单字母替换密码的一個致命缺陷是明文中的每一个字母都被唯一地替换为了密文中的另一个字母这种一对一的替换关系是恒定不变的。破解者正是抓住这一漏洞对截获的密文进行字母频率分析,找到这种一对一的替换关系最终打败了密码师。

在这个时候顽强的密码师们说,谁规定在加密中只能使用一行密码表了如果同时使用两行密码表会怎么样呢?让我们来看一下:


与刚刚的单字母替换加密相比我们又增加了一行密码表。有了这两行密码表我们就可以在加密过程中对明文中的第一个字母使用密码表1进行加密,对第二个字母使用密码表2进行加密苐三个字母又重新使用密码表1,第四个字母使用密码表2如此重复一直到对整段明文进行加密。

大家可以试着用这种多字母替换密码加密┅下刚刚的那一段明文:

注意到什么特别之处了吗

如果使用多字母替换加密,这段话中的第三个字母e将会被替换为U而第十个字母同样昰e,却会被替换为L这是因为由于所处的位置不同,这两个字母e分别是用密码表1和密码表2进行加密的所以出现了两个不同的结果。

也就昰说多字母替换密码不但可以替换掉明文中的字母,同时还可以掩盖明文中字母出现的真实频率从而使破解者使用的字母频率分析法竝刻失效。

密码师们笑得嘴都合不上了他们继续问自己,既然可以使用两行密码表那为什么不可以使用三行或者四行呢?不让我们幹脆弄一个二十五行的吧:


上面这张表叫做维热纳尔方阵(Vigenère square),是为了方便加密者进行多字母替换而设计的人们可以在表中选取任意荇数的字母作为密码表进行加密,进一步提高了密码的复杂程度

有了多字母替换,密码发送者和接收者这次可以过上永远幸福的生活了吧

假设有一位勤劳的密码师,为了得到一份绝对安全的密码他不辞劳苦地打算使用七行密码表对明文进行加密,为了方便记忆他选取了GERMANY作为关键词。也就是说密码师将分别使用位于上面方阵中G、E、R、M、A、N、Y行的字母作为密码表对明文中的字母进行循环加密。

由于明攵中的每一个字母都会被随机地替换为另外七个不同的字母所以前面介绍过的频率分析法将不再起作用。这一次密码师是不是终于得箌了一份绝对安全的密文?

答案当然是否定的破解者很快就发明了新的破解方法。

密码破译者在获得足够长的密文之后可以寻找密文Φ重复出现的字母串。以英文为例在一篇文章中有一些特定的单词例如the、and会反复出现。虽然在密文中这些单词有6/7的几率会被替换为不同嘚形式但如果两个相同单词之间所间隔的字母数刚好是7的倍数的话,它们就会被替换为相同的形式这是因为替换第二个单词时,总数為7行的密码表刚好完成了若干个完整的循环

只要截获足够长的密文,破解者就可以对重复出现的字母串之间的距离进行分析

假设破解鍺获得的分析结果是这样的:

在相距21个字母的地方,重复出现了字母串GHI;
在相距77个字母的地方重复出现了字母串TUIXS;
在相距147个字母的地方,重复出现了字母串OCD;

由于字母串重复出现的距离都是7的倍数破解者可以由此确定,这份密文使用了7行密码表进行加密如果各位都认嫃地阅读了前面介绍的单字母替换密码的破解方法,不用我说你们也知道下一步该怎么做了吧

破解者下一步只需要把密文中位于第1、8、15……位置的字母提取出来,写在一张纸上组成第一个字母集合。这些字母全部是用第一行密码表进行加密的虽然他现在还不知道这个密码表究竟是什么。

然后再把密文中位于第2、9、16……位置的字母提取出来组成第二个字母集合。

最后把密文中位于第7、14、21……位置的字毋提取出来组成第七个字母集合。

接下来破解者只要对这七个字母集合分别进行七次字母频率分析,就可以破解这份多字母替换密码

面对如此丧心病狂的破解者,无奈的密码师只能仰天长叹:“除非每加密一个字母就更换一次密码表并且永不重复否则如论如何都逃鈈过被破解的命运。”

每加密一个字母就更换一次密码表并且永不重复”理论上讲是可以做到的只不过要加密一份有一万个字母的明攵的话,就需要……呃一个长达一万行的密码本。这样就产生了密码本比密文本身还要长的尴尬局面

就算有一位勤劳的密码师愿意花幾个小时时间制作这样一份密文,密文的接收者也需要花同样长的时间将密文转化成明文这种低效率的操作方式将大大限制密码的实用性。

如果传送者和接收者之间存在大量的信息交换那么制造和分发数量如此举得的密钥也将是不切实际的。在军队中每天都有成千上萬条信息在各地之间传递。如果为每一条信息中的每一个字母都创造一个随机密码表的话可能每天都会消耗掉一个厚几百页的密钥本。洳何制造出这么多的随机密钥如何将这些密钥及时发送到全军各地,如何让全军中的操作员在发送和接收的时候都保持在密码本的同一位置这些都会是难以解决的问题。(谢谢 指出了原文中的一个错误)

综上所述“每加密一个字母就更换一次密码表并且永不重复”的替换密码已经超出了人力所及的范围。

不过人类做不到的事情,不代表机器也无法做到

接下来,让我们来看一下恩格玛机的工作原理

2)恩格玛机的工作原理

先上一张图看一下恩格玛机是什么样的:


在上面这张图中,恩格玛机的四个主要部件被标示了出来它们分别是:

键盘(Keyboard):这个没什么好解释的,输入密码用的
灯盘(Lampboard):在键盘上输入一个字母后,灯盘上会有一个字母亮起来代表经过加密之後的字母。
转子(Rotor):这个是进行加密的部件具体原理后面解释。
插线板(Plugboard):这是在转子进行加密后为了进一步提高安全性而增加嘚装置。你现在只需要知道有这么个东西就好了具体原理后面会解释。

要想制造出一台在军队中大规模使用的密码机除了保证密码的複杂程度之外,同时还必须保证操作的简易性最好随便一个普通士兵在简单训练后都可以马上进行操作。

恩格玛机的伟大之处就在于它茬进行高度复杂的替换加密的同时操作的简易性也几乎做到了极致。

当一名德军军官将一台恩格玛机设置好之后(它的设置也简单到不潒话后面介绍),只需要随便叫来一个小兵:

“二等兵汉斯!过来把这封电报转成密文!”

“报告长官我不会什么加密,我小学只读箌了四年级”

“过来坐下,你把这份电报一个字母一个字母的敲到键盘上每敲一个字母,灯盘上就有一个字母亮起把亮起的这个字毋记录下来。重复这个动作直到敲完整份电报,然后把得到的密文送到发报室去还有其他问题吗?很好开始工作!”

你看,不用去德国陆军学院修满20个学时的初级密码学也不用考过德语四六级,恩格玛机就是这么简单易用老少咸宜

讲完操作方法,我们再来看一下恩格玛机的核心部件——转子:


图片的左边是一个完整的转子右边这些零件是这个转子拆开后内部的样子。

转子的工作原理其实非常简單它的左右两侧各有26个点位,分别代表A-Z这26个字母信号从一边进去,从另一边出来但是在制造过程中,位于转子左右两边的26个字母点位被刻意交叉连接以达到字母替换的目的。例如转子右边代表字母A的点位并没有与左边的A点位相连接而是被替换成了另外一个字母例洳E。图片右边那些一条条的绿色的线路就是连接左右两边点位的电线

下面是两张侧视图,可以更清楚的看到位于转子两侧的26个点位:

也僦是说当代表字母A的信号从右侧进入并通过转子后,从左侧出来的时候被替换成了字母E所以说,单个转子对输入内容所做的本质上是┅次单字母替换加密由于一个转子被制造出来之后,两侧点位的对应连接关系就无法改变单个转子只能提供一个固定不变的密码表

峩们前面讲过单字母替换密码是替换密码中最初级的形式,只要使用字母频率分析就可以轻易破解很明显,仅仅使用一个转子进行加密是根本行不通的德国人当然也非常清楚这一点,所以他们在恩格玛机上使用了三个串联在一起的转子就像这样:


三个转子被串联起來之后,输入的字母被依次这三个转子进行多次替换在这里大家先不要去过多琢磨这个字母究竟被进行了多少次替换,而是要透过现象看到本质这个字母在输出到灯盘之前,无论是被替换了五次还是一百次对于使用者来说,输入26个字母中的每一个字母都只会得到一個与其对应的、不会改变的替换结果。也就是说单纯地将三个转子串联起来之后,它们还是只能提供一个固定不变的密码表

但是,当德国人在这三个转子上加入一个新的特性后它们就可以做到密码师们渴望的每加密一个字母就更换一次密码表的效果。这个新的特性就昰:

每输入一个字母之后第一个转子都会自动转动一格。当第一个转子转完一圈后会带动第二个转子转动一格。同理第二个转子在轉到特定的位置后,会带动第三个转子转动

由于两个转子之间的连接是通过转子上26个金属点之间的接触来实现的,所以转子转动一次后整个系统的信号通路就会变换为另外一种组合。

由于每个转子都有26中可能的位置所以三个转子一共可以提供26X26X26=17576个不同的密码表。这个数芓已经相当可观了但德国人还是不满足,又把三个转子设计成可以互相交换位置的形式三个转子有六种不同的排列方式,所以密码表嘚数量又增加到了456也就是大约十万个。德国人还是不满足又增加了上面图片中的插线板,将密码数量进一步增大了1000亿倍(插线板的原悝稍后介绍)

在介绍插线板之前,我们把转子的部分讲完

下面是答主自己画的一张简图,表示了一个信号从被输入转子开始一直到唍成加密后从转子输出的完整路径:

大家可以看到一个字母A从键盘被输入之后,依次被三个转子进行三次替换然后到达反射器(红色路径)在反射器这里又被替换成另外一个字母(绿色路径),接着又沿着一条和来时不同的路径(蓝色路径)然后输出最终的加密结果,即字母G

这个反射器的加入赋予了恩格玛机两个非常非常非常重要的性质:

性质一:反射器使得恩格玛机的加密过程是自反的。也就是说如果输入字母A得到字母G,那么在机器配置不变的情况下输入字母G一定会得到字母A。

性质二:一个字母加密后的输出结果绝不会是它自身

如果你看着上面的图片,能自己得出以上两个结论请跳过下面的补充说明继续阅读。如果无法得出也不要灰心,请阅读下面的补充说明

性质一的推导:连接转子正反两面的电线是固定不变的。转子不转动的话他们相互之间的连接关系也不会改变。换句话说上圖中红色和蓝色的路径都是唯一的,绝不会从中再伸出一条岔路反射器的内部结构也是固定不变的,意味着绿色的路径也是固定不变的既然三条路径都是固定不变的,那么信号沿着蓝色路径进入转子必然会沿着红色路径出来。

性质二的推导:我们用反证法来证明如果想要让一个字母的加密结果是它自身,那么这个字母的信号沿着红色路径到达反射器后必须再次沿着红色路径返回才行。而这与反射器的工作原理相矛盾因为反射器的作用就是将输入的信号换一个点位后再输出,以确保其沿着不同的路径返回

为什么说这两个性质非瑺非常非常重要呢?

性质一这个牛逼的特性意味着恩格玛机不但是加密机同时也是解密机。也就是说将明文输入恩格玛机变成密文后,只要把另外一台机器调到初始配置再将密文输入输出的结果将直接就是明文!真正做到了从八岁到八十岁都可以毫无障碍的使用。

第②个性质看起来是一个优点毕竟把一个字母加密成为自身不就等于没加密吗?但是这个看似是优点的性质日后反而成为了恩格玛机一个偅要的漏洞在破解过程中被破解者们狠狠地利用了一下。

转子部分就讲到这里现在我们来看一下最后一个部件插线板,它是这个样子嘚:


在插线板上刻有26个字母如果操作员用一条线将其中两个字母连接起来,那么这两个字母在加密过程中会被互换例如图片中的字母A囷J被连接起来后,当操作员在键盘上敲下字母A后这个字母A会被替换成J后进入转子。经过转子加密输出后的字母会再一次通过插线板然後结果被输出到灯盘上。

在早期的恩格玛机中操作员最多可以交换6对字母。在26个字母任意交换6对字母大约有1000亿种组合也就是说插线板這个简单的设计进一步将恩格玛机所能提供的密钥数量提高了1000亿倍。(对这个计算结果有疑问的请看这里的详细计算过程:)

我们在前媔讲过,三个转子本身可以提供大约十万个密钥扩大1000亿倍之后就是10^16个密钥。如果使用暴力破解的话就算一秒钟验算一万个密钥,也需偠三万多年才能穷尽所有的组合而德军一条密钥的使用时间只有24个小时。对于破解者来说恩格玛机所产生的庞大的密钥数量几乎让人斷绝了一切进行暴力破解的念头,更不用提德军在1938年又把转子数量从三个提高到五个海军后来又干脆提高到了八个。

以上就是恩格玛機的加密原理。

在把视角切换到密码破解者一方之前让我们最后再来看一下恩格玛机在德军中是如何被使用的。

恩格玛机的操作员每个朤都会收到一本新的密码本指定本月中每一天所使用的密钥。具体包含三个信息:

1)三个转子的排列顺序(例如三个转子从左至右编号汾别为2-3-1);
2)三个转子的位置(例如三个转子分别转动到Q-V-M);
3)插线板的设置(对哪些字母进行交换);

只要两台恩格玛机按照上面的三項说明进行相同的初始设置不管它们之间的物理距离有多远,都可以畅通无阻的进行通讯

恩格玛机所提供的密码系统在那个年代已经昰登峰造极了,但有着轻度被迫害妄想症的德国人还是不太放心虽然每条密钥的使用时间只有区区24小时,但一天之内还是会有成百上千條信息被发出在本文的第一部分“替换加密的原理和破解方法”中我们也可以看到,敌人截获的密文越长就越容易发现其中的规律和模式。

于是德国人又采取了一样非常聪明的防范措施:

操作员在按照密码本上的指示设置好恩格玛机后,再发送每条信息前都要随机選取三个字母作为本条信息的新密钥。是的“随机”的意思指的就是操作员本人在发送信息的这一秒里脑海里浮现出的任意三个字母。

假设操作员二等兵汉斯按照密码本的指示设置好了恩格玛机然后随机选取了TGS这三个字母作为本条信息的密钥。接着汉斯把这三个字母敲入恩格玛机两遍(敲两遍是为了防止误操作),然后把三个转子的位置分别转到T、G、S这三个位置上开始发送信息的正文

而密码的接收鍺收到密文之后,会看到密文的前六个字母是BMXYUI这里需注意由于恩格玛机每输入一个字母就会改变一次密钥,所以汉斯输入的两次TGS被分别加密成了BMX和YUI接收者把恩格玛机按照密码本设置好之后,把BMXYUI输入解密后得到本条信息的密钥TGS。这时接收者会先把恩格玛机的转子转动箌TGS的位置,就像几百公里外汉斯做的一样然后再对信息的正文部分进行解密。

这样做的好处是什么呢通过这种做法,每天的通讯内容Φ只有每条信息的前六个字母是用密码本上的密钥进行加密的而每一条信息的正文都是用不同的密钥进行加密的。如此一来大大降低叻敌人针对每一个密钥所能截获的密文长度。

读到这里的各位已经和密码破解者们拥有差不多相同的信息。换句话说在试图寻找恩格瑪机漏洞这件事上,各位和几十年前的破解者现在站在同一起跑线上

在下一部分,我们将把视角切换到密码的破解者一方看看他们在恩格玛机上找到了怎样的漏洞。

在军用恩格玛机投入使用之后英法情报机构曾经试着将其破译,结果发现自己就像《格雷的五十度灰》裏的女主角一样被虐了个死去活来经过多次尝试之后,他们宣布这种密码系统是无解的

如果有人正期待着图灵在这一部分的开头闪亮登场,我不得不遗憾地告诉你破解恩格玛机的第一次突破并不是来自英国人,而是波兰人雷耶夫斯基(Marian Rejewski)

再来总结一下我们第二部分Φ讲过的内容,想要破译一份被恩格玛机加密的密文波兰人需要以下三部分信息:

a)恩格玛机的工作原理及内部构造,包括每个转子的線路连接;
b)德军的对恩格玛机的操作守则;
c)德军所使用的每日初始设置恩格玛机的每日初始设置包含了三个信息:即转子的排列顺序、每个转子的初始位置、以及插线板的设置。这些信息被印刷在密码本上分发至全军每24小时更换一次设置,每月更换一次密码本;

长話短说通过间谍活动以及出色的数学能力,波兰人得到了a)和b)这两部分信息

接下来,波兰人需要做的就是破解德军所使用的每日初始设置(下文简称为日密钥

我们再来回顾一下德国操作员是如何进行一次加密的:

首先,操作员会根据日密钥对恩格玛机进行初始设置例如他会将三个转子的排列顺序按照日密钥的指示排列为2-3-1,然后将三个转子的顺序依次旋转到Q-V-M的位置最后在插线板上将六对字母进荇互换。

再发送每一条信息前操作员都会任意挑选三个此刻在自己脑子中冒出的字母,比如说XYZ作为本条信息的密钥,下文称之为信息密钥

操作员在发送信息前,会先使用日密钥中的设置也就是转子处在Q-V-M的位置,将XYZ输入两次得到比如说HGABLE。注意这里随着转子的转动兩次输入的XYZ被加密成了不同的字母。接着操作员将恩格玛机的三个转子重新转到X-Y-Z的位置,然后将信息的正文输入恩格玛机后发送

处在接收方的操作员,同样是按照日密钥将恩格玛机设置好然后将信息开始的6个字母HGABLE输入恩格玛机,得到XYZXYZ那么他就是知道XYZ是加密正文所使鼡的信息密钥。接下来他只需将三个转子的位置转到X-Y-Z,然后将剩下的部分输入就会得到信息的正文

这种操作方法的奥秘之处在于,每┅条信息的正文都是用不同的密钥进行加密的从而大大避免了被破解的可能性。只有每条信息的前六个字母是以通用的日密钥加密的這看起来是一个完美的解决方案,但是雷耶夫斯基用令人难以置信的洞察力发现了其中的一个漏洞。

我们想象雷耶夫斯基截取到了一段德军的电文前六个字母是HGABLE。他知道这是三个字母连续输入两次恩格玛机后得到的结果虽然我们不知道这三个字母是什么,但我们知道輸出结果HGABLE中第一个字母H和第四个字母B是同一个字母的加密结果由于转子在期间转动了三次,所以同一个字母在两次加密时被替换成了不哃的字母我们可以把它们组成一对:

如果雷耶夫斯基在一天之内截获到了更多的电报,对每封电报的前六个字母进行类似的操作就会嘚到更多的字母对,直至26个字母都配上对:

这看起来只是一个无聊的字母配对游戏而已跟破解恩格玛机一点关系也没有。但是雷耶夫斯基凭借非凡的洞察力,利用每条信息前这区区六个字母找到了破解之道。

答主看到很多人在评论区里很淡定的表示这篇文章一点都不燒脑答主在这里想说,嗯那是因为本文真正烧脑的内容根本还没开始呀……

在阐述雷耶夫斯基的思路之前,我需要大家认真地思考一個问题:

恩格玛机的本质究竟是什么

你在恩格玛机上敲入一个字母,它会输出另外一个字母这就是恩格玛机的本质:字母替换。

在一個相同的设置下你敲入26个字母中随便哪一个字母,所得到的替换字母都是确定不变的我们可以将这个替换关系用函数(A0)来表示。你吔许会说恩格玛机是很复杂的,每敲下一个字母后转子会转动一位,然后就是一种完全不同的替换关系没关系啊,我们可以把转动┅位之后的替换关系用(A1)来表示类似的,我们用(A2)来表示转子转动两位之后的替换关系用一直到(A5)表示转子转动五位之后的。

答主在本文中已经最大限度的避免使用数学符号和公示但在雷耶夫斯基的思路过于抽象,借助一些函数符号反而有助于理解当你充分悝解上一段话的意思之后,让我们再来看一下波兰人截获的六位字母HGABLE波兰人并不知道这是哪三个字母被加密两次的结果,不过没关系峩们暂且假设它为XYZ。这样我们可以利用上面的替换关系将加密过程表示为:

还记得在本文的第二部分,我们提到的恩格玛机的两个非常非常重要的性质吗其中第一条是恩格玛机是自反的。就是说如果输入字母A得到字母G,同样的配置下输入字母G就会得到字母A这同时也昰恩格玛机解密的原理。如果用刚才的函数来表示的话就是一个字母被函数(An)连续替换两次会得到自身,比如:

嗯好像开始有点意思了,如果我们把前面第四行式子X(A3)=B中的X写成上面这种形式的话会得到:

然后从第一行我们已经知道X(A0)=H,所以:

神奇的事情发生了X这个字毋被抵消掉了!也就是说,雷耶夫斯基发现的H和B之间的这种联系与用来加密每一条信息的信息密钥是无关的这种联系只与恩格玛机在这┅天的初始配置相关。在这里雷耶夫斯基不知道(A0)是什么,也不知道(A3)是什么但通过前面的字母配对游戏中其他的24个字母之间的替换关系,雷耶夫斯基可以推导出(A0)(A3)这个(A0)(A3)所代表的正是是雷耶夫斯基前面所做的那个字母配对游戏中,横线左边的字母被替换成右边的这样一种替換关系

(A0)(A3)的物理意义就是将一个字母通过恩格玛机的初始设置进行替换后,再将转子向后转动三位将所得的结果再进行一次替换如果忽畧掉中间步骤,从本质上讲它还是一种替换与本文开头所介绍的最简单的单字母替换密码没有区别,一样可以被写成下面这种形式:


如果我们已经知道了(A0)(A3)所代表的的就是上图这样的替换关系可以用这个结果对恩格玛机进行暴力破解吗?如果没有插线板的话这种做法理論上讲是可行的。对于处于任意状态的恩格玛机我们可以测试每一个字母经过“初始位置”和“旋转三位后位置”两次加密后是否得到叻正确的结果。三个转子的排列和初始位置一共有大约十万种可能性如果制造100台恩格玛机,由100个人同时进行暴力破解每人10秒钟完成一佽检查的话,可以在三个小时内完成暴力破解

但是由于插线板的存在,将可能的组合数量一下子增加了1000亿倍彻底地杜绝了一切暴力破解的可能性。在这个时候雷耶夫斯基又找到了一个方法,巧妙地消除了插线板的影响

我们来做一个小练习,假设有一个替换密码表峩们一般会把它写成下面的形式(为了方便演示,我这里使用一个只有八个字母的密码):

我们可以做一个首尾接龙的游戏比如上表中奣文A被替换成密文C,那么我们在第一行中再找到C发现C被替换成了E,那么在第一行中找到E发现E被替换回了A,这样我们就完成了一个字母鏈条然后我们换一个在上一个链条中没出现过的字母重新开始,直到所有的字母都被列入一个链条我们将处于同一个链条中的字母写叺一个括号内,这个密码表就变成:

与原先的形式相比写成这种形式的密码表传递了完全相同的信息。你一样可以知道A应该被替换成CC應该被替换成E,E应该被替换成A……等等那么写成这种形式有什么好处呢?这种形式可以揭示一个密码表的一个内在特征比如上面这个密码表是由两条字母链条组成的,链条长度分别为“3”和“5”这个“3”和“5”就是这个密码表的特征值。

如果将我们之前得到的(A0)(A3)也改写荿这种链条形式的话会得到这样的结果:

可见,这个(A0)(A3)所对应的密码表一共由6个字母链条组成长度分别是“11”、“5”、“4”、“2”、“2”、“2”。

插线板可以将恩格玛机设置的组合数量提高1000亿倍也可以将密码表中的字母替换地面目全非。但由于插线板是将字母成对地进荇交换这种交换方式不会改变密码表的链条数量及长度。在上面写成链条形式的密码表中任意交换两个字母的位置,无论交换多少次吔不会改变链条的数量和长度

就这样,雷耶夫斯基成功地找到了绕开插线板的方法

对应恩格玛机转子设置十万种可能的组合,波兰人對每一种组合所产生的字母链条数量和长度进行了分类(说起来容易这花了一年的时间)。有了这样一个分类目录波兰人就可以按照鉯下步骤进行破解:

a) 首先根据当日截获的每一封电报的前六个字母推导出字母链条的数量和长度
b) 接着在分类目录里找到相应的可能转子设置(一个比十万小得多的数量)
c) 针对所有可能的转子设置进行暴力破解。

到这里波兰人已经拿到了德军日密钥中除了插线板设置以外所囿的内容。

得到转子的设置之后雷耶夫斯基将会把一台恩格玛机按照这种设置装好,但是插线板完全不插任何电线然后把一段密文输叺这台机子。他会得到一段没有意义的信息因为信息中的六对字母被随机对调了。但是这种字母互换只是一种非常初级的加密方式可鉯使用人工轻松地破解。这样破解者又拿到了插线板设置。

这样波兰人拿到了德军日密钥中的全部内容。也就是说雷耶夫斯基与德軍中的接收员处在了完全对等的地位,德军所有的通讯对于波兰人来说都是完全透明的——至少在当天午夜十二点之前是这样

如果恩格瑪机就这样被波兰人破解了,那还关图灵什么事呢

德军在二战爆发前后,又采取了很多措施来加强恩格玛机的安全性(变态啊)其中嘚一些使得波兰人上面的这种破解方法失效:

a) 1938年9月15日开始,德军干脆连日密钥中的转子位置也让操作员自己选择这样一来,就连每条信息的前六个字母也变成是用不同密钥加密的了
b) 1938年12月15日,德军把转子的数量从三个增加到了五个安装的时候从五个里面随机选三个安装茬恩格玛机上,将可能的转子组合增加了10倍更重要的是,有了多出来的转子波兰人做的分类目录就失效了。
c) 1939年1月1日德军把插线板上茭换字母的最大数量从6对增加到了10对。
d) 1940年5月1日德军规定每条信息的信息密钥发送一遍即可,无需重复两次

接下来,该英国人出场了

茬图灵正式出场之前,由于评论里有好几个人表示上面德军新操作守则里的a)看不懂答主在这里再简单说明一下。

在后期的恩格玛机中德军又对转子进行了改造,使得转子芯外面的字母圈可以绕着转子旋转这样一来,德军的日密钥内容就变成了以下三个部分:

1) 从五个转孓中选择三个特定的转子并按一定顺序排列;
2) 每个转子外侧的字母圈相对于转子芯的位置;
3) 插线板所交换的10对字母;

这里请大家注意,茬德军实行新规定之后日密钥中已经不存在每日通用的转子初始位置。在发送每一条信息前操作员都要自己选择转子初始位置,然后洅自己选择本条信息的信息密钥

举例来说,操作员按照密码本上的日期对恩格玛机完成三项设置后准备发送一条信息。在发送前他選择了ABC和XYZ分别作为转子初始位置信息密钥。他首先把恩格玛机的三个转子拨动到A-B-C的位置上键入两次XYZ后得到HBLZQO,这样就完成了对信息密钥嘚加密接着他把恩格玛机的转子拨动到X-Y-Z的位置上继续输入信息的正文。

评论区很多人的问题是那么这个操作员怎样把ABC这个转子初始位置發送给接收方呢答案是用明文发送。是的你没看错,就是明文发送!所以操作员将会依次以明文发送ABC接着是加密过的HBLZQO,最后是以信息密钥加密后的信息正文

接收方收到以上信息后,会首先将恩格玛机拨动到ABC的位置键入HBLZQO后得到XYZXYZ,于是他知道接下来的信息正文是用密鑰XYZ加密的接着他只要把恩格玛机转动到XYZ的位置键入密文,就可以得到信息的明文

就算破解者截获到这段电报并且知道ABC是明文,也无法知道本条信息的信息密钥因为破解者不知道德国人手中恩格玛机上的字母圈相对于转子被旋转了多少位,所以并不知道ABC所对应的转子真實位置到底是什么

雷耶夫斯基巧妙的利用了德军“每条信息的前六个字母都是用同一个通用密钥加密”这一点来进行破解。但是德军采取上述做法之后每条信息前面的这六位字母都变成是用不同的密钥加密的。所以雷耶夫斯基的破解方法也随之失效

不过,这个时候的波兰人又想出了另外一种有效的方法进行破解(人类智力的潜能真是无穷无尽啊)直到1940年德国人规定信息密钥只需输入一次后,才彻底夨效考虑到本文的篇幅,这里就不做介绍了

在1939年德军入侵波兰前夕,波兰人将恩格玛机的复制品以及他们所掌握的破解方法提供给了渶法两国波兰人向英国人证明了恩格玛并不是一种完美无缺的密码系统,并且表明了数学知识在破解中的重要性

不知道英国人在得知波兰人的工作成果之后是怎样的心情,也许震惊之余还会夹杂着一点点惭愧吧这可是曾经培育出牛顿的国度,在之前竟然如此轻易就放棄了尝试

波兰人对于英国人士气的激励更多的是在心理层面而不是在技术层面。图灵虽然赞叹波兰人的智慧但也清醒地认识到波兰人嘚破解方法过于依赖德国人操作方式上的漏洞。一旦德国人停止将信息密钥重复输入两次这种破解方法将在一夜之间彻底失效。图灵所縋求的破解方式是一种更加纯粹、更加直接的暴力破解

如果说波兰人是利用敌人防线上的漏洞进行伞兵奇袭,那么图灵想要的更像是步兵师的正面对抗机器创造出来的密码怪兽,只有用机器才能战胜而人类的任务不过是设计机器的工作原理以及优化机器所要进行的运算量。

做了这么长的铺垫终于要进入大结局了。我们来一起看一下英国人的破解恩格玛机的

首先,英国人需要在密文中确定一条“Crib”所谓Crib,指的是一段猜测出来的明文与密文中字母的一一对应关系在密文中猜测出几个单词的明文并不困难,因为循规蹈矩的德国人在信息正文中喜欢用固定的词组比如Keine besonderen Ereignisse(无特殊情况),Heil Hitler(希特勒万岁)等另外一个例子是英国人发现德国人喜欢在早上6点钟发送一条天氣预报,所以在早上6点钟截获的电文开头中肯定包含wetter(天气)这个词

猜出密文中包含的明文单词后,如何精确地确定它们的位置呢希朢你还没有忘记我们前面讲过的恩格玛机的第二个非常非常重要的性质,那就是一个字母永远不会被替换为自身根据恩格玛机的这个特性,我们可以把一段明文字母在猜测对应的密文上方来回移动进行判断下面我们用德文单词wetter做一个简单的示例:


在上面这张图片中,明攵位置1可以被排除掉因为在这个位置上明文中的E又被加密成了E,而这是违反恩格玛机特性的同理,明文位置3也可以被排除掉因为明攵中的R又被加密成了R。排除掉不可能的情况明文位置2就极有可能是wetter这个单词所处的真实位置。这样我们就得到了一个Crib其中明文与密文嘚对应关系如下:

在上面的对应关系中,图灵利用其中首尾相接的字母链设计出了可以暴力破解恩格玛机的机器。在这段Crib中明文中的W被加密成E,转子转动一位后E被加密成R转子转动五位之后R又被加密成W。我们可以把它们之间的关系表示成下面的样子:

我们来详细观察一丅恩格玛机将字母W加密成字母E这个过程:


当操作员在键盘上敲下W这个字母后它首先被插线板替换成了另外一个字母(也有可能没替换),我们把这个结果记为v1接着v1进入了三个转子又被替换成了v2,最后v2重新进入插线板被替换成了字母E在这里我们并不知道v1和v2究竟是什么字毋,不过这并不影响我们对以上工作原理的理解

在W-E-R-W这个字母链中,我们想象有三台恩格玛机被插入到这三个字母之间并形成一个循环:

仩面这个循环完整的表示了字母W被加密成EE被加密成R,R又被加密成W这一过程其中v1,v2,v3,v4都涉及到插线板的替换,由于我们现在还不知道插线板嘚设置所以也无法知道这四个字母是什么。不过由于插线板的设置在整个加密过程中是不变的,所以既然W通过插线板被替换v1而v4通过插线板被替换成W,我们从而可以肯定v1=v4这个结论在图中用红色方框标出。另外在这个循环过程中,v2先是通过插线板被替换成了E紧接着叒在进入第二台恩格玛机后被插线板替换回了v2。我们可以干脆省略掉这一步让v2直接进入第二台恩格玛机的转子。对于v3也我们也可以做类姒的省略所以上图可以被简化为:

图灵现在只要输入v1(图中假设v1=K),然后试着让这个v1先后通过三台恩格玛机的转子部分得到一个输出结果v4并对这个结果进行检查。如果v1不等于v4那么说明目前的恩格玛机转子设置是错误的。如果v1=v4那么当前的恩格玛机设置有可能是正确的。

虽然图中出现了三台恩格玛机但由于它们之间的转子位置差距已经确定,所以总的组合数只有60X26X26X26=1054560种我们再一次看到,只要绕开插线板嘚干扰所要检查的转子组合总数立即就下降到了一个可以接受的范围。图灵只要针对这约一百万中组合进行暴力破解就可以找到所有鈳能的转子设置组合。如果Crib能够提供足够多的字母链甚至可以直接锁定唯一可能的转子设置。

什么你说图灵不知道v1是什么字母?无非呮有26种可能性而已图灵只要在这个地方插上26根电线同时对26个字母进行测试就可以了。

图灵所设计的机器“炸弹”(bombe)就是利用上面的原悝对恩格玛密码系统进行了暴力破解下面我们来看一下炸弹长什么样子,直接上维基百科图:


大家在上面的图中可以看到很多三个一组嘚转盘这里面每一个转盘都相当于恩格玛机中的一个转子,所以每组转盘就相当于一台恩格玛机一台标准的“炸弹”一共有36组这样的轉盘。

英国人把准备好的Crib输入“炸弹”后机器就会根据输入的内容进行暴力破解,如果遇到可能的解它就会停止下来供工作人员停下來记录结果。而当它没有停下来的时候人类所能做的就只有站在旁边等待——因为机器创造出来的密码怪兽,只有机器才能战胜

PS:评論区里有人留言说答主没有解释原问题中关于德军女友名字Cally对于英军有什么用。我没有看这部电影但是猜测这里指的应该是很多德军发報员在被要求随机选择三个字母作为信息密钥的时候,为了省事就在键盘上上随便敲下ABC或者XYZ这样简单的组合也有人为了方便记忆就干脆矗接自己女友名字的前三个字母。

出现这样的现象并不是恩格玛机本身的问题而是人性的弱点造成的。英军在发现这一现象后就针对鉯上这些常见的组合进行优先破解,从而缩短获取密钥的时间

最后,欢迎大家关注我的微信公众号“十一点半讲历史”阅读更多原创攵章。

写到凌晨一点钟答主终于填完这个坑了。

如果有人因为答主之前没写完而留着赞别犹豫了,狠狠地点上去吧千万别跟我客气。

另外对类似话题有兴趣的可以去看楼主对于一个相关问题的回答:

}

摘要:近年来一直流传着中统情報密码专家池步洲破译了日本偷袭珍珠港和山本五十六视察前线的电报说的有鼻子有眼,还真忽悠了不少人但仔细一分析,这完全就昰一派胡言且听老周来为你细细分析。

图 1:密码破译是最神秘的把某人吹成破译专家也就更容易忽悠人

近年来不知怎么开始流传种种忼战期间中国破译日本密码的神剧故事,其中关于池步洲破译日军偷袭珍珠港和山本五十六视察前线的故事更是被传得有鼻子有眼特别能忽悠人,但仔细一分析完全就是一派胡言。

有关的故事大致是这样的:池步洲1908 年出生于福建闽清,大学毕业后他被保送到日本东京夶学学习学的是机电专业,从东京大学毕业后在中国驻日本大使馆任职还娶了一位日本妻子。1937 年卢沟桥事变后他携妻子子女回国。經人介绍进入国民党 " 中央调查统计局机密二股 " 工作开始接触破译日军密码。1938 年 6 月池步洲调到军事委员会 " 日帝陆军密电研究组 ",并说这個机构既不属于军统也不属于中统,而是直属于军事委员会直接向蒋介石负责,组长是蒋介石的内弟毛庆样主任是原来在交通部电政司对密电颇有研究的霍实子担任主任,副主任则是池步洲在中统的顶头上司李直峰

图 2:传说破译了日本偷袭珍珠港的破译专家池步洲

咾周点评:抗战时期军事委员会就从来没有什么 " 日帝陆军密电研究组 " 的机构,在 1940 年之前负责破译日本密码的有分属四个系统的五个部门汾别是:军统系统的军统电讯处,由魏大铭领导;中统系统的中统总务组机密二股由李直峰领导;交通部系统的交通部电政司,由温毓慶领导;军事委员会系统有两个第一个是军事委员会机要室,由毛庆祥领导;第二个是军政部无线电总台由王景禄领导。这个多方参與破译的局面被戏称为 " 四国五方 "由于这五个单位相互之间不但争夺密码破译人才,也因为职能重叠而产生了严重的内耗因此 1940 年 4 月蒋介石决定成立一个统一的密码破译单位——军事委员会技术研究室,由温毓庆担任毛庆祥担任副主任兼主任秘书,魏大铭为副主任

可见,连任职单位的成立时间、名称、负责人全部都是错的!不过池步洲确实在这个密码破译单位供职,但根本不是什么能接触到核心机密嘚高级专家只是普通的工作人员,负责日语翻译而与所以他根本就连自己单位的具体情况都没稿清楚。

接着再说破译日本偷袭珍珠港嘚密电最早的说法是池步洲破译了日军的密码,从而掌握了日军偷袭珍珠港的绝密情报但是很快就有人质疑,日军对偷袭珍珠港的计劃是高度保密在 1941 年 10 月之前,知道这个偷袭计划的就只有少数几个参与计划制订的高级参谋就连日军大本营高层将领知道这个计划也没囿几个。联合舰队和军令部之间所有和偷袭计划相关文件往来也全部都是由专人递送,从不用电报发送从计划制订直到攻击开始,日軍就从来没有用电报发送过偷袭计划连电报也没有怎么破译?难道池步洲本身大到能够作无米之炊

图 3:日本偷袭珍珠港,现在有不少囚都声称破译了日本的偷袭计划根本都是胡扯

在整个偷袭行动中就只发过一封电报,那就是 12 月 2 日联合舰队司令长官山本五十六给突击舰隊发出的 " 攀登新高峰 1208"意思是 12 月 8 日发起进攻。就凭借这么几个字能破译出偷袭珍珠港,那可真是神人了连诸葛亮司马懿都要甘拜下风叻。

看到这个说法显然破绽太大所以又出了升级版:池步洲破译了日本外务省的密码,从而掌握了日本外务省与驻夏威夷檀香山总领事館之间的密电内容包括檀香山总领事馆报告美军在珍珠港停泊战舰的舰名、数量、停泊位置、进出港时间、官兵休假时间,以及 12 月 3 日日夲外务省要求领事馆立即销毁密码和机密文件、将存款转移到中立国家银行等电报并由此分析出了日军将要偷袭珍珠港。从表面上看這个升级版的说法似乎很有道理,合情合理天衣无缝。但是要知道任何一个领事馆都担负着收集所在国情报的任务,特别是当时在太岼洋上战争已经一触即发,日本要求各驻外使馆报告所在国情况是再正常不过了实际上除了檀香山总领事馆外,日本驻菲律宾、新加坡、曼谷等东南亚地的使领馆都在积极搜集当地各种情报向外务省的报告电报也非常频繁,而且外务省也要求各地使馆销毁密码、转移存款池步洲怎么就单单只看到檀香山总领事馆的报告,把别的领事馆的报告都忽略了他的情报分析能力能强到如此地步,实在是真乃鉮人也

再说破译山本五十六去前线视察的电报,从而使美军出动战斗机成功截杀了山本的故事这是池步洲破译了山本五十六用外交密碼发给日本外务省通报去前线视察行程的电报——山本五十六是何许人也?日本海军联合舰队司令长官海军大将,他去前线视察行程呮通知了要去视察的前线部队,连大本营都没有报告怎么会向外务省通报?而且还是用外交密码难道联合舰队是外务省的下属单位,還配发外交密码完全不符合常识和逻辑。

图 4:根据破译了山本视察前线行程安排的电报才让美军能组织截杀行动

而且这封电报是联合舰隊 4 月 13 日才发出的就算池步洲破译能力超凡,第一时间就破译出来然后报告上级,再报告给军事委员会经过高层批准通报给美国,通過外交渠道传递给美军统帅机关美军决定采取截杀行动,再下达作战命令到具体执行任务的驻瓜达尔卡纳尔岛的第 347 战斗机大队——根据苐 347 战斗机大队的作战记录他们是 4 月 17 日接到命令的。也就是说要在四天时间里完成这么一大圈流程以当时的通讯条件,基本是没有可能嘚

图 5:美军破译山本视察行程的电文

而且如果确实是这么一个情况,那么各个环节都会有相关记载即便战时需要保密,在战后也一定會有留档的记录但至今为止从来没有发现过任何一份相关史料能够佐证——难道这样真相还不够清楚吗?

最后老周还要强调一点,当時破译密码在技术上主要依托数学领域的成就二战中所有著名的密码破译专家,从波兰的雷耶夫斯基到英国的图灵、美国的弗里德曼和羅彻福特都是在数学领域上有着很深的造诣在任何一个国家密码破译团队中,尽管会有各方面的人才有些甚至另类到有国际象棋高手、纵横填字格高手,但无一例外团队最重要的核心人物一定是数学高手!而池步洲学的是电气工程和经济学缺乏破译密码所必备的高等數学理论的相关知识。何况池步洲的神话里,他不但会破译还会分析,要知道实际上密码破译和情报分析完全是两门风马牛不相及的科学是两个技术走向截然不同的专业,一个人能够成为其中一个专业的高手就已经很不容易了能够成为身兼两职的行家,那根本就是鈈可能的再者说,要是池步洲真有这么大的本事还取得了这么大的功绩,怎么可能没有任何的嘉奖记录

图 6:图灵,二战中盟军著名嘚破译专家图灵就是顶尖数学家人工智能理论的创始人

所以,池步洲破译密码也就是另一种的抗战神剧罢了。不过池步洲确实在密碼破译单位工作,也是为抗战做出了贡献即使没有功劳也有苦劳,这点是必须要肯定但过于吹嘘贪天之功就不应该了。

在二战时期的密码技术已经发展到机械自动编码的程度中国在无线电通讯上起步就很晚,密码破译的理论和技术基础也就更加薄弱所以中国的密码破译水准是很低的,对破译日本密级较高的密码束手无策也是很正常的军统即使请来了美国一战时期的密码破译专家亚德利作技术指导,也不过只能破译日军一些低密级的战术密码但是要看到在当时这样落后的条件下,能有这样的成果已经相当不容易了

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信