专栏名称: 哲学园
哲学是爱智慧, 爱智慧乃是对心灵的驯化。 这里是理念的在场、诗意的栖居地。 关注哲学园,认识你自己。
目录
51好读  ›  专栏  ›  哲学园

艺术品的解析:恩尼格码的破解 |《走进计算机文化史》之三

哲学园  · 公众号  · 哲学  · 2017-08-15 07:00

正文

本文经「原理」(微信公众号:principia1687)授权转载,禁止二次转载


题记:破解恩尼格码,先从给图灵提供肩膀的巨人—马里安.雷杰夫斯基讲起。


上一期我们介绍了恩尼格码机的原理及其在商业及军事方面的运用(阅读: 《硝烟中的艺术品——恩尼格码》 )。那么如此周密的加密系统最后是如何被科学家们破解的呢?本期我们先从1932年波兰人最开始尝试破解商用恩尼格码的时候讲起。


早在第二次世界大战开始之前,德国便在商业情报交换上使用了恩尼格码机。当时在德国密码处工作的施密特非常厌恶纳粹专制,便向法国情报人员提供了有关恩尼格码机的操作和设计的资料。但法国并没有重视这件事,毕竟当时德法两国国力还是存在相当的差距,法国人觉得即便是没有破解这种密码也不会对战争造成太大的影响,便在提出德军密码无法破解之后草草放弃对恩尼格玛机的研究。然而当时波兰的处境却远远比法国危险。由于凡尔赛条约将德国的大片领土划归给波兰,波兰便是德国发动战争的第一目标国家。这样险峻的形势促使了波兰密码学的大跃进。在波兰的要求下,法国把从施密特那里得来的情报交给了波兰人。波兰人通过恩尼格码设计和使用上的缺陷破译了商用恩尼格码机。


△ 恩尼格码机的转子。(图片来源:CC)


当时的商用恩尼格码机上只有三个转子。每封电文的密钥(转子起始位置)由电报发送方随机选取,并重复两次输入并由当日密钥加密后在电报最开始的地方发给接收方。例如发送方选取ABC作为该电文的密钥,操作人员会在恩尼格码机上连续输入两次ABC, 并由当日密钥加密成为六个字母。该六个字母便被放到了每封电文的最前面。接收方在接到电文之后由当日密钥解密最开始的六个字母,并按照解密后的信息将转子位置设为ABC, 并开始解密电文。


△ 马里安.雷杰夫斯基。(图片来源:Irena Jarosinska )


这种商用恩尼格玛机在设计和操作上存在着致命的缺点。在设计上,首先无论一个字母被加密多少次,都不会得到同样的字母。也就是说字母A无论被加密多少次都不可能得到字母A。其次,恩尼格玛机毕竟是机械产品,其转子总会有规律地周期循环。在操作上,每封电文最开始的六个字母也是由循环所得。基于这些缺陷,波兰数学家 马里安.雷杰夫斯基 在每天截获的大量电文中找出了判断转子初始位子的方法。现使用《The Mathematics of Encryption: An Elementary Introduction》一书中的一个例子来说明具体的判断方式。



假设波兰人截获四封电文,其中每封电文的开头六个字母分别为:



根据上述的操作方式,每封电文的第一个和第四个字母是同一字母加密而来,于是通过上面四封电文,我们可以得到第一个及第四个字母的联系如下:



如果每天可以得到足够多的电文,那么上面的关系表便可以补充完整如下:



仔细观察这个表格,我们不难发现字母关系中会有如下循环:



同样对第二和第五,第三和第六个字母我们也可以写出类似的循环。由于每天的当日密钥不同,我们所得到的循环也不会相同。由于当时商用的恩尼格码机还没有使用连接板,穷举法便是一件可以实施的方法了( 具体原因请参见上期内容 )。于是波兰人按照施密特提供的情报复制出了恩尼格码机,并一个接一个的实验转子的不同位置然后记录下他们所产生的字母循环。例如:


第一个和第四个字母对应表中有4个循环,长度分别为 3, 9, 7, 7

第二个和第五个字母对应表中有4个循环,长度分别为 2, 3, 9, 12

......


为了将穷举法自动化,雷杰夫斯基在恩尼格码的基础上设计了一台能同时验证所有转子位置的机器。并取名为 炸弹(La Bomba) 。当对所有转子位置所产生的循环及长度都记录下来之后(此称记录表),波兰人便从每日截获的大量电文中写出字母循环圈,然后根据循环圈的数目和长度从记录表中检索出相对应的转子位子,即是当日的密钥。得到当日密钥之后,波兰人便用其破解每封电文的前六个字母来获得电文的密钥,并用之破解了剩余的电文。







请到「今天看啥」查看全文