3.1 ENIGMA密码机
——机械密码的先驱
第一次世界大战结束前的1918年,德国人亚瑟·谢尔比乌斯(Arthur Scherbius)设计了一种密码机并向德国政府提出专利申请,随后与其他人共同创立公司,制造和出售这种密码机。亚瑟·谢尔比乌斯给这种密码机取名为ENIGMA,该词源于希腊文,意思是“谜,不可思议的东西”,足见他对于这项发明多么自豪。历史表明,亚瑟·谢尔比乌斯的自豪完全有理,因为他的这项发明的确是密码学发展史上的一次飞跃。因为ENIGMA,人类终于迈入机械密码时代(具有划时代的意义)。
ENIGMA是系列密码机,1925年开始系列化生产,次年德军开始装备某些型号,随后德国政府机关、国有企业、铁路部门等也陆续使用某些型号。ENIGMA在第二次世界大战初期“纳粹德国”的胜利中起到了重要作用,也在后来希特勒的灭亡中扮演了重要角色,因为该密码机最终被英国破译,参加破译该密码机的杰出人员很多,其中就有图灵机的提出者——阿兰·麦席森·图灵(Alan Mathison Turing),如图3.1所示。

图3.1 阿兰·麦席森·图灵
图灵于1912年生于英国伦敦,1954年死于英国曼彻斯特,计算机逻辑的奠基者,诸多人工智能的重要方法也源自这位伟大的科学家,被誉为“计算机科学之父”“人工智能之父”,提出了“图灵机”“图灵测试”等重要概念。人们为纪念他在计算机领域的卓越贡献而专门设立了“图灵奖”。
1946年,由于他在第二次世界大战中为破译德军密码做出的巨大贡献,获得了“不列颠帝国勋章”(也称为大英帝国勋章),这是英国皇室授予为国家和人民做出巨大贡献者的最高荣誉勋章。
图灵是一名男同性恋者,因为他的同性恋倾向而遭到的迫害使得他的职业生涯尽毁。1952年,他的同性伴侣协同一名同谋一起闯进图灵的家中盗窃,图灵为此报警,却又因此而扯出他的所谓同性恋身份。英国警方的调查结果使得他被控以“明显的猥亵和性颠倒行为”罪。
他没有申辩,并被定罪。在著名的公审后,他被给予了两个选择:坐牢和女性荷尔蒙(雌激素)注射疗法(当时政府力推以化学手段解决社会问题的所谓“化学阉割”)。为了能够继续进行科学研究,同时也能顾及面子,他最后选择了雌激素注射,并持续一年。在这段时间里,药物产生了包括乳房不断发育的副作用,也使原本热爱体育运动的图灵在身心上受到极大的伤害。在当时的英国,同性恋不仅是一种有伤风俗、不可容忍的法定罪行,而且在充斥着怀疑猜忌、间谍危机和勒索敲诈的“冷战”背景下,还会被当成一种对国家安全的威胁,进而失去清白的“安全记录”。
有人特别向法庭提及并做证,图灵曾获得过大英帝国勋章,是国宝级的科学家,是“当世最精深最纯粹的数学家之一”,但都无济于事,甚至反倒还使“丑闻”升级——当地一家报纸在头条位置报道此事时,用了这样一个标题:“大学教授被处缓刑必须接受化学阉割”。
1954年6月7日,图灵被发现死于家中的床上,床头还放着一个被咬了一口的苹果。警方调查后认为是氰化物中毒,调查结论为自杀。
苹果公司的标志一度被认为源于图灵自杀时咬下的半个苹果,如图3.2所示。但该图案的设计师和苹果公司都否认了这一说法。

图3.2 苹果公司标志
多年来,包括霍金在内的著名科学家,都在不断力促英国政府特赦这位“现代最杰出的数学家之一”。
1998年6月23日,伦敦市政府在图灵的出生地、他那所故居的迎面墙上镶嵌了一块象征人类智慧与科学的蔚蓝色铜匾,铸刻着计算机科学创始人的名字和出生年月,纪念这位计算机大师诞辰86周年,数万人参加了纪念仪式。
2004年6月7日,为纪念这位计算机科学与密码学的绝顶天才逝世50周年,来自世界各地的数千名学者、学生不约而同地来到曼彻斯特市,聚集在图灵离世前5年曾经居住的公寓前。曼彻斯特市政府在这所表面极其普通却因图灵而成为永久历史性建筑的墙上,又隆重镶嵌了一面纪念铜牌,还是蔚蓝色的,上面写着:1912—1954,计算机科学奠基人与密码学家、战争年代“谜”密码破译功臣阿兰·图灵,居于斯,逝于斯。
2009年9月11日晚,英国首相布朗代表英国政府向已经逝去55年的英国著名数学家、德国密码的破译者图灵做出了明确的道歉。布朗表示,图灵所受到的对待是“骇人听闻的”和“完全不公平的”,英国对这位杰出数学家的亏欠是巨大的。布朗说,他为做出正式的道歉感到自豪。“你没有得到更好的对待,我们深感抱歉”。由布朗签署的声明发布在唐宁街十号网站上。
2013年8月,英国女王正式宣告赦免图灵。2013年12月24日,英国女王伊丽莎白二世签署对图灵定性为“严重猥亵”的赦免,并立即生效。司法大臣克里斯·格雷林说图灵应被当之无愧地记住并认可他对战争无与伦比的贡献,而不是对他后来刑事定罪。
3.1.1 ENIGMA密码机的机械构造
ENIGMA密码机是一个装满复杂而精密元件的盒子,主要包括键盘、转轮、显示灯和反射器,其外观如图3.3所示。

图3.3 ENIGMA密码机外观
图3.3中,水平面板的下面部分是键盘,共有26个键,类似于现在计算机使用的键盘,为了使明文尽量简短和难以破译,键盘上的空格和标点符号全部省略。键盘上方是显示灯,由标注了同样字母的26个小灯组成。显示灯上方是3个转轮,它们的主要部分隐藏在面板之下。
3.1.2 ENIGMA密码机的加密/解密流程
发送方与接收方约定好ENIGMA密码机的转轮及其初始位置。
加密流程:
(1)发送方在自己的ENIGMA密码机键盘上逐个字母输入明文并依次记录下每次输入对应显示灯亮位置的字母。
(2)将依次记录的字母组成的密文发送至接收方。
解密流程:
(1)接收方在自己的ENIGMA密码机键盘上逐个字母地输入密文并依次记录下每次输入对应显示灯亮位置的字母。
(2)依次记录的字母组成的明文。
3.1.3 ENIGMA密码机的编码原理
ENIGMA密码机采用的是多表代替编码思想,是一个长周期的多表代替密码机,其多表代替密码原理主要依靠多个转轮实现。为了输入/输出方便,配备了键盘和显示灯。每一个转轮代表了26个字母任意一种组合,对应配置了26个接线端,可完成单表代替;每个转轮的输出端均连接到其下一个相邻转轮的输入端。当输入一个明文字母时,信号从第1个转轮的输入端进入,依次经过各个相邻的转轮;信号每经过一个转轮时,该转轮会转动一个位置,当转轮转动一个周期(26次)时,其下一个相邻转轮会转动一个位置,这样一直到最后一个转轮;信号经过最后一个转轮后,再通过反射器回来,即可得到密文。
ENIGMA密码机专利设计图如图3.4所示。

图3.4 ENIGMA密码机专利设计图
在ENIGMA密码机最原始的设计中,基本配置是3个转轮、1个键盘、1个显示灯。对于不同的密码机,3个转轮使用的26个字母组合不同,可以看成基本密钥(第1层密钥,一段时间不变,故称为基本密钥);对于同样的密码机,每次加密时重新设置3个转轮启动位置,可以看成报文密钥(第2层密钥,每报一变,故称为报文密钥)。因此,ENIGMA密码机的密钥空间很大,在当时还只能依靠手工进行求解计算的情况下,几乎是不可能穷尽破译的。
二战时期的德军在使用ENIGMA密码机期间,不断对其进行改进升级,增大密钥空间、增强密钥的不可预测性,具体方法有增加转轮个数、拆卸转轮、使用连接板等。