目录
1 密码机通信模型
2 Enigma密码机构造
3 Enigma密码机加解密过程
3.1 加密过程
3.2 解密过程
4 Enigma密码机的安全性
5 Enigma密码机破解
5.1 波兰雷耶夫斯基破解
5.2 图灵破解
近代密码一般指20世纪初~20世纪70年代期间的密码技术。20世纪初电报的出现第一次使远距离快速传递信息成为可能, 它实现了远距离通讯的即时传输,但是也带来了新的安全问题,为保证每条信息的安全,需要给每条信息加密,随着一战的爆发,也进一步促进了密码技术的发展。近代密码利用电子和计算机技术设计出更加复杂的密码体系,虽然技术上有了很大进步,但并未形成理论体系,该阶段基本加密原理仍然和古典加密原理类似,仍然是替代及置换的基本原理,但是因为应用到了机电技术,近代密码体制的替代/置换方式从古典密码的单表代换转变为多表代换,这使得人工破译密码的成本变得极高。
这里介绍以恩尼格玛(enigma)密码机为代表的转轮密码机,Enigma密码机1918年由德国人亚瑟·谢尔比乌斯发明,随后被应用于军事,最终被英国人破译,Enigma密码机的发明是密码学发展史上的一次飞跃,密码学就此进入机械密码时代。
1 密码机通信模型
发送者和接收者各自拥有一台enigma。发送者用enigma将明文加密,将生成的密文通过无线电发送给接收者。接收者将接收到的密文用自己的enigma解密,得到明文。发送者和接收者会事先收到一份叫国防军密码本的册子,它记录了发送者和接收者所使用的每日密钥,发送者和接收者需要分别按册子的指示来设置enigma。
2 Enigma密码机构造
Enigma密码机是一个装满复杂精密元件的盒子,主要包括键盘(26个)、转轮(3个)、显示灯(标注了同样字母的26个小灯)和接线板,如下图所示。
本章节开始我们讲到了轮转密码机的加密原理其实也是置换,即通过一定的置换方式将明文置换为密文,下图显示了当按下键盘的A键时,使灯盘D亮的电流示意图,即将A置换为D的过程。
电流从电池(1)通过双向键盘开关(2)进入插板(3)。接下来,它穿过三个/四个已安装的转子(5)的布线,并进入反射器(6)。反射器通过完全不同的路径将电流返回,通过转子(5)和进入轮(4),流经连接有电缆(8)的插头“ S”(7)和插头“ D”,再通过另一个双向开关(9)点亮相应的灯。
如果转子的作用仅仅是把一个字母简单的换成另一个字母,那么在一千多年前就能通过字频法破译,Enigma密码机的巧妙之处在于其核心部件——转子,其构造如下图所示。
通过键盘键入一个字母时,第一个转子会转动1格,所以当连续键入26个字母时,第一个转子正好转动26格(即1圈),此时第二个转子转动1格,当连续键入26*26个字母时,第一个转子转动26圈,第二个转子转动1圈,当连续键入26*26*26个字母时,第一个转子转动26*26圈,第二个转子转动26圈,第三个转子转动1圈。这种机制利用不同齿轮的传动比原理,类似于秒针、分针和时针的转动。通过第一章维吉尼亚密码的学习我们知道这种三转子的组合密钥长度为26*26*26,理论上只要信息长度低于密钥长度时,便无法破解。
接下来讲下为什么输入信号A,经过转子和反射器后会输出信号H,每个转子两侧都有26个引脚和26个触点,上一个转子的触电与下一个转子的引脚与下一个转子的触点连接,如下图所示。
如果输入信号A,转子内部电流信号流转如下图所示。
再次输入信号A时,Right Rotor转动一格,剩下的两个转子不动,其内部电流信号流转如下图所示。
Enigma最左侧的设备是一个“反射器”, 它将最后一个转子的其中两个触点连接起来,并将电流沿一个不同的路线导回。这就使加密过程与解密过程变得一致,因此,使用两台配置相同的机器,一台可以用于加密信息,另一台用于解密信息,而无需使用庞大的机制在加密和解密模式之间进行切换。但是,反射器也使恩尼格玛具有了如下性质:加密后得到的字母与输入的字母永远不会相同。这在概念上和密码学上都是一个严重的错误,这个错误最终被盟军解码人员利用。
B站上有enigma密码机演示视频,感兴趣的可以b站上搜索观看,能够更直观的了解enigma密码机的工作原理。
3 Enigma密码机加解密过程
3.1 加密过程
发信人首先按照约定好的规则插好接线板并设置好转子初始位置,也就是设置好enigma密码机密钥。接着依次通过键盘键入明文,并把灯泡亮的字母记录下来便得到了密文,最后将密文发通过电报方式送出去。
3.2 解密过程
当收信人接收到密文后,使用相同的enigma密码机并设置好发信人相同密钥。接着依次通过键盘键入密文,并把灯泡亮的字母记录下来便得到了明文。
4 Enigma密码机的安全性
Enigma密码机的本质是一种多表替换,我们之前学习过的凯撒密码和维吉尼亚密码也是替换密码,但后两种密码我们知道会有字母频率的漏洞,主要因为他们的加密都是使用的同一张密码表,而Enigma密码机每加密一个字母,就会转动一下,相当于换了一张密码表,基本可以做到加密一个字母就更换一次密码表并且不重复,所以无法通过高阶字频分析来破解Enigma密码机,只能通过枚举来破解了。我们可以通过数学概率的计算方法来计算enigma具有的所有字母映射的可能性,从而评估其安全性。
若密码机由三个转子组成,则三个转子的初始位置,一共有 P1= 26*26*26=17576种组合;
三个转子不同相对位置有P2=6种组合;
插线板由26个孔位,最多可以插13根线,以插10根线来举例计算,那么共有
所以总的密钥空间P=P1 *P2 *P3≈1.5*1019,密钥一般每次或者每日根据密码本来更新,信息发送方每使用Enigma密码机加密一条信息时,都要按照密钥来初始化密码机,同理信息接收方每次也要使用相同的密钥来解密信息。
5 Enigma密码机破解
Enigma加密机可以称得上是古典密码阶段的巅峰,由于其巨大的密钥空间,使用完全依靠人工枚举破解几乎不可能。虽然enigma加密算法非常强大,但是其本质也是一种较为复杂的密码替换,与凯撒密码及维吉尼亚密码本质上没有差异,其安全性是依赖于巨大的密钥空间,与Enigma密码机同时期的计算机械破解Enigma密码的难度极高。
5.1 波兰雷耶夫斯基破解
Enigma密码机早期被认为是无法破解的存在,英法等国一开始便放弃了enigma密码机的破解,而波兰由于地理位置处于德国和苏联之间,与两国关系都不好,且德国与苏联也互相虎视眈眈,处于中间的波兰具有非常严重的危机感,波兰当局表示enigma密码机无论如何都得破解,在语言学家表示对enigma密码机无从下手时,波兰当局请到了数学家参与enigma密码机的破解工作,数学家雷耶夫斯基、罗佐基和佐加尔斯基就承担起早期enigma密码机破译工作。
早期德国人为了增加密码机的安全性,设置了双重加密,即当日密钥+信息密钥组合形成最终密钥,如当日密钥为ABC,信息发送方先将转子拨到ABC,然后随机想三个字母(假设为DEF,DEF被称为信息密钥),加密DEF后得到密文(假设为MCL),接下来将转子拨到DEF,开始正式写信,具体过程如下图所示。
所以真正加密信件内容的其实是信息密钥(DEF),所以收件人需要知道信息密钥(EDF)后才能解密。问题是信息密钥是发送者每天拍脑袋想出来的,接收者是如何知道信息密钥的呢?这就需要双方约定好将信息密钥加密后的密文MCL写在每封信的开头。由于enigma是对称加密的,所以接收者只需用每日密钥(ABC)将信件开头的MCL解密便得到发送者拍脑袋想出来的信息密钥(DEF),接下来用信息密钥进行解密即可,具体过程如下图所示。
如此一来,每日密钥虽然只有一个,但是信息密钥每次确是不一样的,所以即使一天发送100封信,就对应100个信息密钥,这大大增加了人工破译难度。
但是德国人有个习惯,就是将重要的事情说两遍,所以每封密信的开头6个字母中,是由2个信息密钥组成的,如下所示。
明文的D被加密为M/H、E被加密为C/A、F被加密为L/Q,也就是说密文的第1个和第3个字母是由同一个明文字母加密得到的、第2个和第4个字母是由同一个明文字母加密得到的、第3个和第6个字母是由同一个明文字母加密得到的,雷耶夫斯基正是根据这一线索发现了Enigma置换群方程,设计出了用来收集数据的“炸弹机”(Bomba),这也是人类首次将严格的数学化方法应用到密码破译领域,炸弹机可以在数个小时内破解出密钥,具体的分析步骤本文不再赘述,感兴趣的可以关注b站UP主“Ele实验室”,讲解和动画演示都非常深刻且易理解。
5.2 图灵破解
由于雷耶夫斯基利用社会工程学的方法,破解了enigma密码机,但是这种方法也十分脆弱,一旦德国人修补上这个漏洞或者升级密码机,雷耶夫斯基的破解方法就难以适用。在绝对的军事实力面前,德国闪击波兰,一个月后波兰沦陷,雷耶夫斯基等“波兰密码三杰”也被迫逃亡,战后雷耶夫斯基几经流转后回到波兰一所中学任教,鲁日茨基和佐加尔斯基则在逃亡途中不幸遇难,令人唏嘘。1980年雷耶夫斯基在华沙去世,安葬在波兰的Powazki公墓,2000年,波兰政府向“波兰密码三杰” 追授波兰最高勋章。
波兰沦陷后,破解enigma密码机的任务交到了英国人手里,在德国人改掉重要事情说两遍并且使用多五转子enigma加密机后,雷耶夫斯基的破解方法就变得极其被动,图灵受雷耶夫斯基的启发,图灵破解Enigma密码破译思想是利用Enigma密码机自反特性,若某一位从来没有该字母,那么明文该位困可能就是该字母,再结合德军发送报文的特点猜测报文首句明文(如早上6.05分发送天气预报,猜测首句明文有wetter,也被称为已知明文攻击),由此构造明文密文对应关系和字母循环圈,图灵团队甚至造出一台bomb machine来专门破解恩尼格码密码,bomb machine如下图所示。bomb machine从原理上不受限德国人重要事情说两遍的限制,且得到丘吉尔的大力支持,英国提供给图灵的人力和物力资源都不是波兰提供给雷耶夫斯基的资源能比的。图灵设计制造的bomb machine原理这里也不再赘述,感兴趣的可以看b站Ele实验室。
Enigma曾被誉为不可破解的密码,尽管现在看来Enigma密码机的破译方法很多,但其光辉不可磨灭,它所代表的着加密的理念对于加密算法有着深远的影响。
从公元前404年到20世纪70年代,从滚筒密码到enigma密码机,从单表替换到多表替换,从凯撒到维吉尼亚,再到雷耶夫斯基和图灵。人类使用密码的历史几乎与使用文字的时间一样长,人类已在加密与解密之间相互纠缠了数千年,未来亦是如此,基于共钥密码学的现代加密技术正熠熠生辉,而以区块链和量子加密等加密技术也悄然来临。