在著名的图灵传记电影《模仿游戏》中,描述了在第二次世界大战期间,德国纳粹使用一种名为“恩尼格玛”(Enigma)的加密机器进行通信。
电影里图灵和组员讨论恩尼格玛的关键结构:插线板
总所周知,古典密码是以置换字母表为主的加密方式,现在看来略显幼稚,但是在香农开创信息论学科之前,凯撒密码/栅栏密码存在了几千年,最终在二战期间达到顶峰,德军使用的恩尼格玛机,堪称古典密码设计的巅峰之作,下面分析一下恩尼格玛的加密方式,以及图灵怎么破解它的。
Enigma密码机的构造共由四个主要部件组成。分别是:
1.包含26个英文字母的键盘: 输入端,每次输入一个英文字母。
2.线路接线板: 将字母对连接,进行加密工作。
3.扰频组合: 由快速扰频器、中速扰频器、慢速扰频器组成,进行加密工作。
4.反射器: 保证加密后得到的字母与输入的字母一定不相同。
下面是具体加密方法:
接线板,就是一个插线板,如果什么也不插,就是a到a,b到b,如果把ab连起来,那么代表a与b进行置换,每次加密只需要随意连数个组合,就可以得到一个多置换表
通过插线连接需要置换的字母对
扰频器,也称作转子。单个转子的加密是一种单表置换。转子的左右两侧各有26个点,分别代表A-Z这26个英文字母。一端输入一端输出。为了达到加密的目的,将左右两侧的字母交叉连接,为了提高加密的安全性,每输入一个字母后,第一个转子就会自动转动一格。当第一个转子转动一圈后,第二个转子就转动一格。这样原来的单表置换经过旋转变为多表置换,使得安全性更高。
反射器的加密是一种固定的单表置换,加密方式是将最后一个转子的其中两个触点连接起来,并将电流沿一个不同的路倒回到线路接线板。这样的反射器导致加密后的字母与输入字母一定不相同,并且使得Enigma密码机的加密过程是自反的,这也是加解密一致的关键部件。同时还让Enigma机有了另一个性质,即:一个字母不会加密成自身。这也是破解的关键。
因为Enigma反射器和转子的设计,所以在Enigma机加密过程中,一个字母是不会被加密成自身的,根据Enigma的这个性质,在获知密文的位置之后,我们便可以将明文与密文联系起来,这种明密文组合被称作克利巴(Crib)。
“crib"的原意是指考试作弊时的夹带,在这里则表示一段未加密的文字或字符串,图灵称其为“对照文”。
在加密时,特殊的Crib内部能形成一个环路 ,如下图例子:
如图,T和W之间形成了循环
以上图为例,分析其加密过程如下:
我们注意到,出现了不随机的现象(不随机现象:L0进L0出),此时可以消除扰频器的影响,将Li直接相连,时只需穷举扰频器的起点,判断L0和L0'是否相等,如果相等(即环路亮灯),说明此时找到了一个可能起点K2,把所有的可能秘钥都记录下来,即可形成一个较小的可能秘钥空间。遍历所有存在的Cibe环,就可以进一步缩小密钥K2空间。
经过计算,图灵还发现,一份加密电文中只要含有30个字母的crib,就可以被破解。
那么该如何寻找crib呢?图灵也从一些军事规律导致的漏洞入手。
德军消息里经常出现:
无特殊情况(Keine besonderen Ereignisse)
希特勒万岁(Heil Hitler)……
天气(wetter)
比如wetter,这个词每天早上6点到6:05必然出现,而且大都出现在信息的开头,此外这个词里出现了两个t同时出现的情况。根据图灵发现的规则,图灵就可以拿着wetter这个字段当作原文,对照着密文一位一位的挪动,排除掉那些不符合刚刚两个规律的方案。
又因为wetter很高概率出现在信息最开头,所以只要试几次,就能发现wetter对应的密文到底是哪几个字母,进而就可以找到接线板的插法。后来图灵又专门设计制造了一台 “炸弹机”(Bombe),通过电子技术,运用上述的排除法来破译 “恩尼格玛”:
最后,推荐一个很小众的密码学小游戏,基本都是古典密码学的经典加密方式,游戏有六章,涵盖隐写,换位,置换等方式,很值得密码学爱好者当作入门游戏
#免责声明#
①本站部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
②若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
③如果本站有侵犯、不妥之处的资源,请联系我们。将会第一时间解决!
④本站部分内容均由互联网收集整理,仅供大家参考、学习,不存在任何商业目的与商业用途。
⑤本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与任何商业和非法行为,请于24小时之内删除!