更新时间:2024-10-07 19:04
在密码学史中,恩尼格玛密码机(德语:Enigma,又译哑谜机,或“谜”式密码机)是一种用于加密与解密文件的密码机。确切地说,恩尼格玛是对二战时期纳粹德国使用的一系列相似的转子机械加解密机器的统称,它包括了许多不同的型号,为密码学对称加密算法的流加密。
键盘一共有26个键,键盘排列和广为使用的计算机键盘基本一样,只不过为了使通讯尽量地短和难以破译,空格、数字和标点符号都被取消,而只有字母键。键盘上方就是显示器,这可不是意义上的屏幕显示器,只不过是标示了同样字母的26个小灯泡,当键盘上的某个键被按下时,和这个字母被加密后的密文字母所对应的小灯泡就亮了起来,就是这样一种近乎原始的“显示”。在显示器的上方是三个直径6厘米的转子,它们的主要部分隐藏在面板下,转子才是“恩尼格玛”密码机最核心关键的部分。如果转子的作用仅仅是把一个字母换成另一个字母,那就是密码学中所说的“简单替换密码”,而在公元九世纪,阿拉伯的密码破译专家就已经能够娴熟地运用统计字母出现频率的方法来破译简单替换密码,柯南·道尔在他著名的福尔摩斯探案《跳舞的小人》里就非常详细地叙述了福尔摩斯使用频率统计法破译跳舞人形密码(也就是简单替换密码)的过程。——之所以叫“转子”,因为它会转!这就是关键!当按下键盘上的一个字母键,相应加密后的字母在显示器上通过灯泡闪亮来显示,而转子就自动地转动一个字母的位置。举例来说,当第一次键入A,灯泡B亮,转子转动一格,各字母所对应的密码就改变了。第二次再键入A时,它所对应的字母就可能变成了C;同样地,第三次键入A时,又可能是灯泡D亮了。——这就是“恩尼格玛”难以被破译的关键所在,这不是一种简单替换密码。同一个字母在明文的不同位置时,可以被不同的字母替换,而密文中不同位置的同一个字母,又可以代表明文中的不同字母,字母频率分析法在这里丝毫无用武之地了。这种加密方式在密码学上被称为“复式替换密码”。
但是如果连续键入26个字母,转子就会整整转一圈,回到原始的方向上,这时编码就和最初重复了。而在加密过程中,重复的现象就很是最大的破绽,因为这可以使破译密码的人从中发现规律。于是“恩尼格玛”又增加了一个转子,当第一个转子转动整整一圈以后,它上面有一个齿轮拨动第二个转子,使得它的方向转动一个字母的位置。假设第一个转子已经整整转了一圈,按A键时显示器上D灯泡亮;当放开A键时第一个转子上的齿轮也带动第二个转子同时转动一格,于是第二次键入A时,加密的字母可能为E;再次放开键A时,就只有第一个转子转动了,于是第三次键入A时,与之相对应的就是字母就可能是F了。
因此只有在26x26=676个字母后才会重复原来的编码。而事实上“恩尼格玛”有三个转子(二战后期德国海军使用的“恩尼格玛”甚至有四个转子!),那么重复的概率就达到26x26x26=17576个字母之后。在此基础上谢尔比乌斯十分巧妙地在三个转子的一端加上了一个反射器,把键盘和显示器中的相同字母用电线连在一起。反射器和转子一样,把某一个字母连在另一个字母上,但是它并不转动。乍一看这么一个固定的反射器好像没什么用处,它并不增加可以使用的编码数目,但是把它和解码联系起来就会看出这种设计的别具匠心了。当一个键被按下时,信号不是直接从键盘传到显示器,而是首先通过三个转子连成的一条线路,然后经过反射器再回到三个转子,通过另一条线路再到达显示器上,比如说A键被按下时,亮的是D灯泡。如果这时按的不是A键而是D键,那么信号恰好按照上面A键被按下时的相反方向通行,最后到达A灯泡。换句话说,在这种设计下,反射器虽然没有像转子那样增加不重复的方向,但是它可以使解码过程完全重现编码过程。
使用“恩尼格玛”通讯时,发信人首先要调节三个转子的方向(而这个转子的初始方向就是密匙,是收发双方必须预先约定好的),然后依次键入明文,并把显示器上灯泡闪亮的字母依次记下来,最后把记录下的闪亮字母按照顺序用正常的电报方式发送出去。收信方收到电文后,只要也使用一台“恩尼格玛”,按照原来的约定,把转子的方向调整到和发信方相同的初始方向上,然后依次键入收到的密文,显示器上自动闪亮的字母就是明文了。加密和解密的过程完全一样,这就是反射器的作用,同时反射器的一个副作用就是一个字母永远也不会被加密成它自己,因为反射器中一个字母总是被连接到另一个不同的字母。
“恩尼格玛”加密的关键就在于转子的初始方向。当然如果敌人收到了完整的密文,还是可以通过不断试验转动转子方向来找到这个密匙,特别是如果破译者同时使用许多台机器同时进行这项工作,那么所需要的时间就会大大缩短。对付这样“暴力破译法”(即一个一个尝试所有可能性的方法),可以通过增加转子的数量来对付,因为只要每增加一个转子,就能使试验的数量乘上26倍!不过由于增加转子就会增加机器的体积和成本,而密码机又是需要能够便于携带的,而不是一个带有几十个甚至上百个转子的庞然大物。那么方法也很简单,“恩尼格玛”密码机的三个转子是可以拆卸下来并互相交换位置,这样一来初始方向的可能性一下就增加了六倍。假设三个转子的编号为1、2、3,那么它们可以被放成123-132-213-231-312-321这六种不同位置,当然收发密文的双方除了要约定转子自身的初始方向,还要约好这六种排列中的一种。
而除了转子方向和排列位置,“恩尼格玛”还有一道保障安全的关卡,在键盘和第一个转子之间有块连接板。通过这块连接板可以用一根连线把某个字母和另一个字母连接起来,这样这个字母的信号在进入转子之前就会转变为另一个字母的信号。这种连线最多可以有六根(后期的“恩尼格玛”甚至达到十根连线),这样就可以使6对字母的信号两两互换,其他没有插上连线的字母则保持不变。当然连接板上的连线状况也是收发双方预先约定好的。
就这样转子的初始方向、转子之间的相互位置以及连接板的连线状况就组成了“恩尼格玛”三道牢不可破的保密防线,其中连接板是一个简单替换密码系统,而不停转动的转子,虽然数量不多,但却是点睛之笔,使整个系统变成了复式替换系统。连接板虽然只是简单替换却能使可能性数目大大增加,在转子的复式作用下进一步加强了保密性。让我们来算一算经过这样处理,要想通过“暴力破解法”还原明文,需要试验多少种可能性:
三个转子不同的方向组成了26x26x26=17576种可能性;
三个转子间不同的相对位置为6种可能性;
连接板上两两交换6对字母的可能性则是异常庞大,有100,391,791,500种;
于是一共有17576x6x100,391,791,500,其结果大约为10,000,000,000,000,000!即一亿亿种可能性!这样庞大的可能性,换言之,即便能动员大量的人力物力,要想靠“暴力破解法”来逐一试验可能性,那几乎是不可能的。而收发双方,则只要按照约定的转子方向、位置和连接板连线状况,就可以非常轻松简单地进行通讯了。这就是“恩尼格玛”密码机的保密原理。
美国大片《U-571》,告诉人们“恩尼格玛”密码机是战争中,同盟国费尽心机想要获得的尖端秘密,是战胜德国海军潜艇的关键所在。历史也确实如此,对于潜艇作战,尤其是德国海军的“狼群”战术来说,无线电通讯是潜艇在海上活动,获取信息通报情况的最重要的手段,而“恩尼格玛”密码机则是关乎整个无线电通讯安全的设备,其重要性可想而知。
自从无线电和摩尔斯电码问世后,军事通讯进入了一个崭新的时代,但是无线电通讯完全是一个开放的系统,在己方接受电文的同时,对方也可“一览无遗”,因此人类历史上伴随战争出现的密码,也就立即与无线电结合,出现了无线电密码。直到第一次世界大战结束,所有无线电密码都是使用手工编码。毫无疑问,手工编码效率极其低下,同时由于受到手工编码与解码效率的限制,使得许多复杂的保密性强的加密方法无法在实际中应用,而简单的加密方法又很容易被破译,因此在军事通讯领域,急需一种安全可靠,而又简便有效的方法。
1918年德国发明家亚瑟·谢尔比乌斯(Arthur Scherbius)和理查德·里特(Richard Ritter)创办了一家新技术应用公司,曾经学习过电气应用的谢尔比乌斯,想利用现代化的电气技术,来取代手工编码加密方法,发明一种能够自动编码的机器。谢尔比乌斯给自己所发明的电气编码机械取名“恩尼格玛”(ENIGMA,意为哑谜),乍看是个放满了复杂而精致的元件的盒子,粗看和打字机有几分相似。可以将其简单分为三个部分:键盘、转子和显示器。
操作步骤
德军的各支部队使用一些不同的通讯线路,每条线路中的恩尼格玛密码机都有不同的设置。为了使一条信息能够正确地被加密及解密,发送信息与接收信息的恩尼格玛密码机的设置必须相同;转子必须一模一样,而且它们的排列顺序,起始位置和接线板的连线也必须相同。所有这些设置都需要在使用之前确定下来,并且会被记录在密码本中。
恩尼格玛密码机的设置包含了以下几个方面:
转子:转子的结构及顺序。起始位置:由操作员决定,发送每条消息时都不一样。字母环:字母环与转子线路的相对位置。接线板:接线板的连线。在末期版本中还包括了反射器的线路。恩尼格玛密码机被设计成即使在转子的线路设置被敌人知道时仍然会很安全,尽管在实际使用中德军尽了全力来防止线路设置被泄露出去。如果线路设置为未知,那么最多需要尝试10种情况才可能推算出恩尼格玛密码机的密码;当线路和其它一些设置已知时,也最多需要尝试10次。恩尼格玛密码机的使用者对它的保密性很有信心,因为敌人不可能使用穷举法来找出密码。
指示器
恩尼格玛密码机的大部分设置都会在一段时间(一般为一天)以后被更换。但是,转子的起始位置却是每发送一条信息就要更换的,因为如果一定数量的文件都按照相同的加密设置来加密的话,密码学家就会从中得到一些信息,并且有可能利用频率分析来破译这个密码。为了防止这种事情发生,转子的起始位置在每次发送信息之前都会被改变。这个方法被称作“指示器步骤”。
最早期的指示器步骤成为了波兰密码学家破译恩尼格玛密码机密码的突破口。在这个步骤中,操作员会先按照密码本中的记录来设置机器,我们假设这时的转子位置为AOH,之后他会随意打三个字母,假设为EIN,接着为了保险起见,他会将这三个字母重新打一遍。这六个字母会被转换成其它六个字母,这里假设为XHTLOA。最后,操作员会将转子重新设置为EIN,即他一开始打的三个字母,之后输入密电原文。
在接收方将信息解密时,他会使用相反的步骤。首先,他也会将转子按照密码本中的记录设置好,然后他就会打入密文中的头六个字母,即XHTLOA,如果发送方操作正确的话,显示板上就会显示EINEIN。这时接收方就会将转子设置为EIN,之后他就可将密电打入而得到原文了。
这个步骤的保密性差主要有两个原因。首先,操作员将转子的设置打到了密电中,这就使第三方能够得知转子设置。第二,这个步骤中出现了重复输入,而这是一个严重的错误。这个弱点使波兰密码局早在1932年就破译了二战之前的德军恩尼格玛系统。但是从1940年开始,德国改变了这个步骤,它的安全性也就提高了。
这个步骤只被用于德国陆军和空军。德国海军发送信息的步骤要复杂的多。在被恩尼格玛密码机发送之前,信息会先被Kurzsignalheft密码本进行加密。这个密码本将一个句子替换为了四个字母。它转化的句子包括了补给、位置、港湾名称、国家、武器、天气、敌人位置、日期和时间等内容。
缩写与指导
德国陆军的恩尼格玛密码机的键盘上只有26个字母,标点符号由字母组合来代替,X相当于空格。在各军种的恩尼格玛密码机中,X都相当于句号。有一些标点符号在不同军种的密码系统中被不同的字母组合代替。陆军的系统使用ZZ来表示逗号,FRAGE或FRAQ则表示问号。但是德国海军用来表示逗号及问号的则分别为Y和UD。Acht(意为“八”)和Richtung(意为“方向”)中的字母组合CH则由Q来代替。CENTA、MILLE和MYRIA分别表示两个、三个和四个零。
德国陆军和空军将每条信息都翻译成5个字母的代码。使用四转子恩尼格玛密码机的德国海军则将信息翻译成4字母代码。经常用到的词语代码与原词语的差别越大越好。Minensuchboot(意为“扫雷艇”)这样的词语可以被表示为MINENSUCHBOOT、MINBOOT、MMMBOOT 或MMM354。比较长的信息会被分成几个部分来发送。
在第一次世界大战期间,英国的情报机关非常严密地监控了德国方面的通讯,丘吉尔的书和英国海军部的报告中透露的消息只不过是一鳞半爪。事实上,将美国引入一次大战的齐末曼(Arthur Zimmermann,1916年起任德国外交部长)电报就是由著名的英国40局破译的。在此电报中德国密谋墨西哥对美国发动攻击,这使得美国最终决定对德宣战。但是英国人的障眼法用得如此之好,使得德国人一直以为是墨西哥方面泄漏了秘密。
战后英国仍旧保持着对德国通讯的监听,并保持着很高的破译率。但是从1926年开始,他们开始收到一些不知所云的信息——ENIGMA开始投入使用。德国方面使用的ENIGMA越多,40局破解不了的电文就越多。美国人和法国人碰到的情况也一样,他们对ENIGMA一筹莫展。德国从此拥有了世界上最为可靠的通讯保密系统。
一次大战的战胜国很快就放弃了破译这种新型密码的努力。也许是出于自信,在他们看来,在凡尔赛条约约束下的德国已经造成不了什么危害。由于看不到破译德国密码的必要性,盟国的密码分析专家懒散下来,干这一行的头脑似乎也变得越来越平庸。在科学的其他领域,我们说失败乃成功之母;而在密码分析领域,我们则应该说恐惧乃成功之母。普法战争造就了法国一代优秀的密码分析专家,而一次大战中英国能够破译德国的通讯密码,对失败的极大恐惧产生的动力无疑起了巨大的作用。
历史又一次重演。因为在欧洲有一个国家对德国抱有这种极大的恐惧——这就是在一战灰烬中浴火重生的新独立的波兰。在她的西面,是对失去旧日领土耿耿于怀的德国,而在东面,则是要输出革命的苏维埃联盟。对于波兰来说,关于这两个强邻的情报是有关生死存亡的大事,波兰的密码分析专家不可能像他们的英美法同事那样爱干不干——他们必须知道这两个大国都在想什么。在此情况下波兰设立了自己的破译机构,波军总参二局密码处(Biuro Szyfrow)。密码处的高效率在1919-1920年波苏战争中明显地体现出来,军事上屡尝败绩的波兰在密码分析方面却一枝独秀。在苏军兵临华沙城下的情况下,1920年一年他们破译了大约400条苏军信息。在对西面德国的通讯的监控方面,波兰人也保持了同样的高效率——直到1926年ENIGMA登场。
波兰人想方设法搞到了一台商用的ENIGMA机器,大致弄清楚了它的工作原理。但是军用型的转子内部布线和商用型的完全不同,没有这个情报,想要破译德军的电报可谓难如登天。波兰人使出了浑身的解数,甚至病急乱投医,请了个据说有天眼通功能的“大师”来遥感德国人机器里转子的线路图——当然和所有的“大师”一样,一遇上这种硬碰硬的事情,神乎其神的天眼通也不灵了。
这时事情有了转机。
汉斯-提罗·施密特(Hans-Thilo Schimdt)于1888年出生在柏林的一个中产阶级家庭里,一次大战时当过兵打过仗。根据凡尔赛条约,战败后的德国进行了裁军,施密特就在被裁之列。退了伍后他开了个小肥皂厂,心想下海从商赚点钱。结果战后的经济萧条和通货膨胀让他破了产。此时他不名一文,却还有一个家要养。
和他潦倒的处境相反,他的大哥鲁道夫(Rudolph)在战后春风得意。和汉斯-提罗一样都是一次大战的老兵,可鲁道夫没有被裁减,相反却一路高升。到了二十年代,他当上了德国通讯部门的头头,就是他正式命令在军队中使用ENIGMA。和大哥的成功比起来,汉斯-提罗自然觉得脸上无光。
可是破产后汉斯-提罗不得不放下自尊心来去见大哥,求他在政府部门替自己谋个职位。鲁道夫给他的二弟在密码处(Chiffrierstelle)找了个位置。这是专门负责德国密码通讯的机构——ENIGMA的指挥中心,拥有大量绝密情报。汉斯-提罗把一家留在巴伐利亚,因为在那里生活费用相对较低,勉强可以度日。就这样他一个人孤零零地搬到了柏林,拿着可怜的薪水,对大哥又羡又妒,对抛弃他的社会深恶痛绝。
接下来的事情可想而知。如果把自己可以轻松搞到的绝密情报出卖给外国情报机构,一方面可以赚取不少自己紧缺的钱,一方面可以以此报复这个抛弃了他的国家。1931年11月8日,施密特化名为艾斯克(Asche)和法国情报人员在比利时接头,在旅馆里他向法国情报人员提供了两份珍贵的有关ENIGMA操作和转子内部线路的资料,得到一万马克。靠这两份资料,盟国就完全可以复制出一台军用的ENIGMA机。
不过事情并不像想象的那么简单。要破译ENIGMA密码,靠这些情报还远远不够。德军的一份对ENIGMA的评估写道:“即使敌人获取了一台同样的机器,它仍旧能够保证其加密系统的保密性。”就算有了一台ENIGMA,如果不知道密钥(就是转子自身的初始方向,转子之间的相互位置,以及连接板连线的状况)的话,想破译电文,就要尝试数以亿亿计的组合,这是不现实的。
“加密系统的保密性只应建立在对密钥的保密上,不应该取决于加密算法的保密。”这是密码学中的金科玉律。加密算法可以直接是某个抽象的数学算法,比如通用的DEA和RSA算法,也可以是实现某个算法的像ENIGMA这样的加密机械或专门用于加密的电子芯片等加密器件,还可以是经过编译的在计算机上可执行的加密程序,比如在互联网通信中被广泛使用的PGP(Pretty Good Privacy)。因为对加密算法的保密是困难的。对手可以用窃取、购买的方法来取得算法、加密器件或者程序。如果得到的是加密器件或者程序,可以对它们进行反向工程而最终获得加密算法。如果只是密钥失密,那么失密的只是和此密钥有关的情报,日后通讯的保密性可以通过更换密钥来补救;但如果是加密算法失密,而整个系统的保密性又建立在算法的秘密性上,那么所有由此算法加密的信息就会全部暴露。更糟糕是,为了使以后的通讯保持秘密,必须完全更换加密算法,这意味着更新加密器械或更换程序。比起简单地更换密钥,这要耗费大量财富和管理资源(大规模更换加密器械和程序会使对手更有机会乘虚而入!)。
正如前面所言,ENIGMA的设计使得搞到了它的秘密的法国人也一筹莫展。法国密码分析人员断定这种密码是不可破译的。他们甚至根本就懒得根据搞到的情报去复制一台ENIGMA。
在法国和波兰签订过一个军事合作协议。波兰方面一直坚持要取得所有关于ENIGMA的情报。既然看来自己拿着也没什么用,法国人就把从施密特那里买来的情报交给了波兰人。和法国人不同,破译ENIGMA对波兰来说至关重要,就算死马也要当作活马医。现在他们总算能迈出最初的一步了。
在施密特提供的关于ENIGMA的情报中,不仅有关于ENIGMA构造和转子内部连线的描述,还有德国人使用ENIGMA进行编码的具体规定。每个月每台ENIGMA机的操作员都会收到一本当月的新密钥,上面有此月每天使用的密钥。比如说,第一天的密钥可以是这个样子:1.连接板的连接:A/L-P/R-T/D-B/W-K/F-O/Y。2.转子的顺序:2,3,1;转子的初始方向:Q-C-W。
当操作员要发送某条消息时,他首先从密钥本中查到以上信息。然后按照上面的规定,首先用连线把连接板上的A字母和L字母,P字母和R字母……连接起来;然后把2号转子放在ENIGMA的第一个转子位置上,把3号转子放在第二个位置上,把1号转子放在第三个位置上;最后,他调整转子的方向(从照片上可以看到每个转子的边上都刻着一圈字母用来显示转子所处的方向),使得三个转子上的字母Q、C和W分别朝上。在接收信息的另一方,操作员也进行同样的准备(他也有一本同样的密钥本),就可以进行收信解码的工作了。
调整好ENIGMA,操作员可以开始对明文加密了。但是我们看到每天只有一个密钥,如果这一天的几百封电报都以这个密钥加密发送的话,暗中截听信号的敌方就会取得大量的以同一密钥加密的信息,这对保密工作来说不是个好兆头。我们记得在简单替换密码的情况下,如果密码分析专家能得到大量的密文,就可以使用统计方法将其破解。
尽管不知道对ENIGMA是否可以采用类似的统计方法,德国人还是留了个心眼。他们决定在按当日密钥调整好ENIGMA机后并不直接加密要发送的明文。相反地,首先发送的是一个新的密钥。连接板的连线顺序和转子的顺序并不改变,和当日通用的密钥相同;相反地,转子的初始方向将被改变。操作员首先按照上面所说的方法按当日密钥调整好ENIGMA,然后随机地选择三个字母,比如说PGH。他把PGH在键盘上连打两遍,加密为比如说KIVBJE(注意到两次PGH被加密为不同的形式,第一次KIV,第二次BJE,这正是ENIGMA的特点,它是一种复式替换密码)。然后他把KIVBJE记在电文的最前面。接着他重新调整三个转子的初始方向到PGH,然后才正式对明文加密。
用这种方法每一条电文都有属于自己的三个表示转子初始方向的密钥。把密钥输入两遍是为了防止偶然的发报或者接收错误,起着纠错的作用。收报一方在按当日密钥调整好ENIGMA机后,先输入密文的头六个字母KIVBJE,解密得到PGHPGH,于是确认没有错误。然后把三个转子的初始方向调整到PGH,接着就可以正式解密其余的密文了。
如果不使用对每条电文都不同的密钥,那么每天很可能总共会有几千条电文也就是几百万个字母的消息以同一个密钥加密。而采用每条电文都有自己的密钥这个方法后,当日密钥所加密的就是很少的几万个字母,而且这些字母都是随机选取,和有意义的电文性质不同,不可能用统计方法破译。
乍一看来这种方法无懈可击。可是波兰人铁了心,必须在这厚厚的护甲上撕出一个口子来。
在此以前,密码分析人员通常是语言天才,精通对语言方面特征的分析。但是既然ENIGMA是一种机械加密装置,波兰总参二局密码处就考虑到,是否一个具有科学头脑的人更适合于它的破译工作呢?
1929年1月,波兹南大学数学系主任兹德齐斯罗·克里格罗夫斯基(Zdzislaw Krygowski)教授开列了一张系里最优秀的数学家的名单,在这张名单上,有以后被称为密码研究“波兰三杰”的马里安·雷杰夫斯基(Marian Rejewski),杰尔兹·罗佐基(Jerzy Rozycki)和亨里克·佐加尔斯基(Henryk Zygalski)。波兹南大学并非当时波兰最有名的大学,但是它地处波兰南部,那里直到1918年还是德国领土,所以所有这些数学家都能讲流利的德语。
在三位被密码局招聘的数学家中,雷杰夫斯基的表现最为出色。当年他是个架着一副近视眼镜,脸上略带羞色的二十三岁小伙子。他的在大学里学的专业是统计学,打算以后去干保险业行当,也许在此之前他从未想到会在密码分析方面大展身手。在经过短期的密码分析训练后,他把所有的精力都投入到破解ENIGMA的工作中去。
雷杰夫斯基深知“重复乃密码大敌”。在ENIGMA密码中,最明显的重复莫过于每条电文最开始的那六个字母——它由三个字母的密钥重复两次加密而成。德国人没有想到这里会是看似固若金汤的ENIGMA防线的弱点。
德方每封密文最开始的六个字母,是此信密钥的三个字母重复两遍,由当日密钥加密而成。比如说这封信的密钥是ULJ(这是开始加密明文时由操作员临时随机选取的),那么操作员首先用当日通用的密钥加密ULJULJ,得到六个字母的加密后序列,比如说PEFNWZ,然后再用ULJ来作为密钥加密正文,最后把PEFNWZ放在加密后的正文前,一起用电报发给收信方。
雷杰夫斯基每天都会收到一大堆截获的德国电报,所以一天中可以得到许多这样的六个字母串,它们都由同一个当日密钥加密而成。比如说他收到四个电报,其中每封电报的开头的六个字母为:第一封电报:L O K R G M;第二封电报:M V T X Z E;第三封电报:J K T M P E;第四封电报:D V Y P Z X。对于每封电报来说,它的第一个字母和第四个字母都是由同一个字母加密而来,同样地第二和第五个字母以及第三和第六个字母也是分别由同一个字母加密而来。比如说在第一封电报中,字母L和R是由同一字母加密而来。这个字母之所以先被加密成L,然后又被加密成了R,是因为在此期间转子向前转动了三个字母的位置。
从L和R是由同一个字母加密而来这点,雷杰夫斯基就有了判断转子的初始位置的一条线索。当转子处于这个初始位置时,字母L和R在某种意义下具有紧密的联系。每天截获的大量电文能够给出许多这样的紧密联系,从而使雷杰夫斯基最终能够判断出转子的初始位置。在上面的第二、三、四封电报中,我们看见M和X,J和M,D和P都有这种联系:
第四个字母:___P_____M_RX_____________
如果雷杰夫斯基每天可以得到充分多的电报,他就可以把上面这个关系表补充完整:
第四个字母:FQHPLWOGBMVRXUYCZITNJEASDK
光凭这个对应表格,雷杰夫斯基还是没办法知道当天的通用密钥。可是他知道,这个表格是由当天的通用密钥决定的,而且只由它决定。如果密钥不同,那么这个表格也应该不同——那么,有没有一种办法可以从这个对应表来推断出当日的通用密钥呢?雷杰夫斯基对这样的表格进行了仔细观察。从字母A开始看,它被对应成F;而F在此表中又被对应成W,接下去它被对应成A,我们又回到了最先开始的字母,于是就有了一个循环的字母圈A→F→W→A。如果考虑所有的字母,雷杰夫斯基就能写出关于此对应表的所有的循环圈:A→F→W→A。
3个字母的循环圈B→Q→Z→K→V→E→L→R→I→B;9个字母的循环圈C→H→G→O→Y→D→P→C;7个字母的循环圈J→M→X→S→T→N→U→J。
7个字母的循环圈这里我们只是考虑了第一和第四个字母形成的对应表。同样地对第二和第五、第三和第六个字母形成的对应表,我们也可以写出类似的字母循环圈。由于每天的密钥都不同,雷杰夫斯基得到的循环圈也各不相同。
雷杰夫斯基观察到,这些循环圈长短不一。这使他有了一个重要的灵感:虽然这些循环圈是由当日密钥,也就是转子的位置,它们的初始方向以及连接板上字母置换造成的,但是每组循环圈的个数和每个循环圈的长度,却仅仅是由转子的位置和它们的初始方向决定的,和连接板上字母交换的情况无关!
假定在上面这个例子中,原来在接线板上字母S和G由一根连线相连。转子的位置和它们的初始方向保持不变,去掉这根连线而将字母T和K连在一起,那么第一和第四个字母的对应表就会变成:
第一个字母:ABCDEFGHIJKLMNOPQRSTUVWXYZ,第四个字母:FQHPLWKSBMNRXUYCZIOVJEAGDT(原来的G对应O,S对应T,去掉G和S的连线后,G就对应T,但是T被新的连线接到了K,所以G最终对应着K。其他受影响的字母还有H、K、S、T、X、Z)。而循环圈表就变成了:A→F→W→A。
3个字母的循环圈B→Q→Z→T→V→E→L→R→I→B;9个字母的循环圈C→H→S→O→Y→D→P→C;7个字母的循环圈J→M→X→G→K→N→U→J。
7个字母的循环圈某些循环圈中的字母变了,但是循环圈的数目仍旧是四个,每个循环圈的长度也没有改变。应用置换变换的理论,雷杰夫斯基可以从数学上严格证明这一点对于任何的连线变化都是成立的。
这是一个非常重大的进展。我们知道,如果要强行试遍所有的密钥来破解密文,那得要试一亿亿个密钥之多;但是ENIGMA的数量巨大的密钥主要是由连接板来提供的,如果只考虑转子的位置和它们的初始方向,只有105456种可能性。虽然这还是一个很大的数字,但是把所有的可能性都试验一遍,已经是一件可以做到的事情了。
波兰人按照汉斯-提罗·施密特提供的情报复制出了ENIGMA样机。到了1934年,他们有了十几台波兰造ENIGMA。雷杰夫斯基和他的同事们每天都在ENIGMA前工作,一个接一个地试验转子的不同位置和初始方向,然后产生相应的字母对应表并构造相应的字母循环圈,并把它们记录下来。比如说其中的一个记录可以是这样的: 第一和第四字母对应表中有4个循环圈,长度分别为3,9,7,7;
第二和第五字母对应表中有4个循环圈,长度分别为2,3,9,12;
第三和第六字母对应表中有5个循环圈,长度分别为5,5,5,3,8;
当对所有105456种转子位置和初始方向都编好记录以后,破译ENIGMA生成的密文就比较容易了。首先要取得足够的当日电文来构造字母对应表并且写出字母循环圈;然后根据循环圈的数目和它们的长度从记录表中检索出相对应的转子位置和初始方向:这就是当日的密钥(连接板的情况还未知)。循环圈的个数和长度可以看作是这个密钥的“指纹”——通过建立密钥“指纹”档案,雷杰夫斯基就能及时地把当天的密钥找出来。通过分离转子的状态和连接板的状态,雷杰夫斯基大大简化了破译ENIGMA的工作。建立这样一个档案花了整整一年时间,工作相当艰苦,有时工作人员的手指都被磨出血来。
必须指出的是,上面对雷杰夫斯基的工作的介绍是极其简单化的,只以举例的形式介绍了其中最重要的思路。雷杰夫斯基对于ENIGMA的分析是在密码分析史上最重要的成就之一,整个工作都是严格地数学化了的(求解关于置换矩阵的方程),决非上面所举例子可以包含。比如说,找到当日密钥中转子状态后,还需要找到连接板状态,才能真正译出密文。另外,ENIGMA中转子中的线路并非总是固定不变,雷杰夫斯基的理论允许从密文和密钥倒推出转子内部的连线状态。即便是施密特提供的情报也未明确指出转子内部的连线状态,雷杰夫斯基一项重要工作就是成功地判断出军用型ENIGMA的转子上字母以字母表顺序排列,而不是如商用型那样,字母以键盘上的顺序排列。另外还要指出的是,雷杰夫斯基的同事,尤其是另两位数学家罗佐基和佐加尔斯基在破译工作中也作出了很重要的贡献。佐加尔斯基还设计了用在纸上钻孔的方法来迅速查询对应于某类字母循环圈的转子状态的方法。
在雷杰夫斯基和他的同事的努力下,波兰情报部门在后来的几年里成功地掌握了大量德国方面的情报。据估计,在1933年1月到1939年9月这六年多的时间里,波兰方面一共破译了近十万条德方的消息,其中最重要的有德国在包括苏台德地区兵力重新部署的情报,这对波兰的安全是极大的威胁。对ENIGMA的破解即便在总参二局领导层内部也属最高机密,军官们会收到标有“维奇尔”(Wicher,破译ENIGMA行动的代号)的情报,他们被告知这些情报绝对可靠,但来源绝密。1934年,纳粹德国元帅赫尔曼·戈林访问华沙,他怎么也没有怀疑波兰人已经掌握了他的机密。当他和德国高级官员向位处波兰密码处附近的无名战士墓献花圈时,雷杰夫斯基正透过办公室的窗子望着他们,心中为自己能知道他们最机密的通讯而狂喜不已。
当德国人对ENIGMA转子连线作出一点改动以后,花了一年功夫建立起来的密钥“指纹”档案就变得毫无用处了。但是雷杰夫斯基和罗佐基有了一个更好的主意。他们在ENIGMA的基础上设计了一台能自动验证所有26*26*26=17576个转子方向的机器,为了同时试验三个转子的所有可能位置的排列,就需要6台同样的机器(这样就可以试遍所有的17576*6=105456种转子位置和初始方向)。所有这6台ENIGMA和为使它们协作的其他器材组成了一整个大约一米高的机器,能在两小时内找出当日密钥。罗佐基把它取名为“炸弹”(La Bomba),可能是因为它运转起来震耳欲聋的声响;不过也有人传说,制造这样一台机器的主意是雷杰夫斯基一次在饭店里吃叫做“炸弹”的冰淇淋时想到的。无论如何,“炸弹”实现了密码分析机械化,它是对ENIGMA机械加密的一种很自然的回应手段。
30年代的大部分日子里,雷杰夫斯基和他的同事们不断地从事着寻找密钥的工作,时不时地还要修复出了故障的“炸弹”。他们不知道的是,在密码处处长格维多·兰杰(Gwido Langer)少校的抽屉里,已经有了他们正在绞尽脑汁试图寻找的东西。
事实上,在提供了两份极其重要的关于ENIGMA的情报后,汉斯-提罗·施密特还在继续向法国情报机关提供关于德国通讯的情报。在1931年后的七年中,他和法国情报人员接头二十次,每次都提供若干德国通讯用密码本,上面记载着一个月中每天使用的当日密钥。汉斯-提罗·施密特总共提供了三十八个月的密码。兰杰少校通过法国密码处(“第二处”)负责人居斯塔夫·贝特朗(Guistav Bertrand)上尉得到了这些密码本。如果雷杰夫斯基能够预先知道这些密码,无疑可以节省大量的时间,从而进行其他的同样十分重要的破译工作。
但是兰杰少校觉得雷杰夫斯基的小组应该习惯于单独工作,以便在将来得不到密码本的时候,也能同样破译ENIGMA。我们的确不知道,如果自1931年来没有这样的压力,雷杰夫斯基是否能够有上面所述的重要工作。
波兰密码局的破译能力在1938年的十二月达到了极限,德国人加强了ENIGMA的加密能力。每台ENIGMA机增加了两个可供选择的转子。原来三个转子不同的排列方式有6种,从五个转子中选取三个装入机器中的方式达到了5*4*3=60种。这就意味着要达到原来的效率,“炸弹”中必须有60台机器同时运转,而不是原来的6台。建造这样一台“炸弹”的价格是密码处总预算的十五倍!在1939年一月,连接板上的连线又由六根增加到十根,这样就只剩6个字母不会被交换。密钥的总数达到了一万五千九百亿亿个,是原来的一万五千九百倍。
虽然波兰数学家们成功地推断出了第四和第五个转子中的连线状态,雷杰夫斯基也证明了ENIGMA并非像德国人或盟国密码分析专家想象的那样坚不可破,但是他的方法终于也不适用了。这时兰杰少校应该从他的抽屉里拿出施密特提供的密码本来——但是正是德国人增加转子个数的时候,施密特停止了和法国情报部门的接头。七年中施密特不断地提供给波兰人能靠自己的力量破译的密钥,波兰人急需这些密钥,他们却再也搞不到了。
这对波兰是一个致命的打击。因为ENIGMA不仅仅是德国秘密通讯的手段,更是希特勒“闪电战”(blitzkrieg)的关键。所谓的“闪电战”是一种大规模快速协同作战,各装甲部队之间,它们和步兵、炮兵之间必须能够快速而保密地进行联系。不仅如此,地面部队的进攻还必须由斯图卡轰炸机群掩护支援,它们之间也必须有可靠的联络手段。闪电战的力量在于:在快速的通讯保证下的快速进攻。
如果波兰不能知道德军的通讯,那么想要抵挡德国的入侵是毫无希望的,现在看来这在几个月里就会发生。1939年4月27日德国撕毁同波兰签订的互不侵犯条约,侵占了苏台德地区;在德国国内,反波兰的声浪不断高涨。在此情况下,兰杰少校决定把直到现在还对盟国保密的关于ENIGMA的破译方法告诉盟国同行,以便在波兰遭到入侵后,拥有更大人力物力财力的盟国还可以继续对雷杰夫斯基的方法进行研究。
兰杰少校致电他的英国和法国同行,邀请他们来华沙紧急讨论有关ENIGMA的事项。英法密码分析专家到达波兰密码处总部,全然不知波兰人葫芦里卖的什么药。具有讽刺意味的是,这次会面中用来交流使用的语言是……德语——这是唯一的在场三方所有人都懂的语言。兰杰少校将他们领到一间房间,在那里有一个被黑布蒙住的东西,当黑布被揭开时,英法的密码分析专家目瞪口呆。出现在他们眼前的是一台雷杰夫斯基的“炸弹”。当听到雷杰夫斯基破译ENIGMA的方法时,他们意识到波兰在密码分析方面比世界上任何国家先进至少十年。法国人尤其吃惊,他们以为他们得到的情报用处不大,所以很慷慨地把它们转给了波兰人,他们却让波兰人一直瞒着。英法密码分析专家对波兰同行的感激是无以言表的,直到那时,他们在破译德国密码的方面毫无进展。
两星期后的1939年9月1日,希特勒发动“闪电战”入侵波兰。9月17日,苏联入侵波兰。9月28日,德军占领华沙,波兰不复存在。
1918年谢尔比乌斯为“恩尼格玛”密码机申请了专利,并于1920年开发出了商用的基本型和带打印机的豪华型,但是高昂的价格(折算成今天的货币,约相当于3万美元)却使“恩尼格玛”密码机少人问津。就在谢尔比乌斯研制“恩尼格玛”密码机的同时,还有三个人也有了类似的发明。1919年荷兰人亚历山大·科赫(Alexander Koch)也注册了相似的发明专利“秘密写作机器”,但最终因无法商业化而于1927年转让了这个专利(因此也有说法称谢尔比乌斯是根据科赫的专利研制出了“恩尼格玛”密码机)。瑞典人阿维德·达姆(Arvid Damm)也获得了一个同样原理的专利,但是直到1927年他去世时还只是停留在纸面上。第三个人是美国人爱德华·赫本(Edward Hebern),而他的遭遇最为悲惨,他发明“狮身人面”密码机,并集资三十八万美元开办工厂进行生产销售,结果却只卖出十来台,收入还不到两千美元,1926年遭到股东起诉,被判有罪而入狱。
在1923年国际邮政协会大会上,公开亮相的“恩尼格玛”密码机仍旧是购者寥寥。眼看“恩尼格玛”也要无疾而终,却突然柳暗花明——1923年英国政府公布了一战的官方报告,谈到了一战期间英国通过破译德国无线电密码而取得了决定性的优势,这引起了德国的高度重视。随即德国开始大力加强无线电通讯安全性工作,并对“恩尼格玛”密码机进行了严格的安全性和可靠性试验,认为德国军队必须装备这种密码机来保证通讯安全——接到德国政府和军队的定单,谢尔比乌斯的工厂得以从1925年开始批量生产“恩尼格玛”,1926年德军海军开始正式装备,两年后德国陆军也开始装备。当然这些军用型“恩尼格玛”与原来已经卖出的少量商用型在最核心的转子结构上有所不同,因此即使拥有商用型也并不能知道军用型的具体情况。纳粹党掌握德国政权后也对“恩尼格玛”密码机的使用进行了评估,认为该密码机便于携带,使用简便,更重要的是安全性极高。对于敌方而言,即使拥有了密码机,如果不能同时掌握三道防线所组成的密钥,一样无法破译。德国最高统帅部通信总长埃里希·弗尔吉贝尔上校认为“恩尼格玛”将是为德国国防军闪击战服务的最完美的通信装置。因此上至德军统帅部,下至陆海空三军,都把“恩尼格玛”作为标准的制式密码机广为使用。——德国人完全有理由认为,他们已经掌握了当时世界最先进最安全的通讯加密系统,那是无法破译的密码系统。然而如此愚蠢地寄信心于机器,最终只会饱尝机器所带来的苦果。
而“恩尼格玛”之父谢尔比乌斯却未能看到“恩尼格玛”被广泛使用,并对第二次世界大战所产生的重大影响,他于1929年5月因骑马时发生意外,伤重而死。
休·怀特摩尔创作的戏剧“破译密码”的内容为艾伦·图灵的生活,艾伦·图灵是在二战中帮助英国破解恩尼格玛机的密码的最大功臣。
英国畅销书作家罗伯特·哈里斯于1996年出版的小说“恩尼格玛”讲述的是布莱切利园的密码学家们破解恩尼格玛的过程。2001年这本小说被拍成了电影“恩尼格玛”。
由乔纳森·莫斯托拍摄并于2000年上映的电影U-571讲的是一群美国潜艇兵为缴获一台恩尼格玛机而抢了一艘德国潜艇后的故事。电影中的恩尼格玛机是一个收藏家手里的真品。这部电影的情节并没有严格地按照历史发展,因为1932年波兰破解恩尼格玛是不需要一台恩尼格玛机的,而英国皇家海军在美国参战之前就已经缴获了几台恩尼格玛机和许多部件,美国只是在1944年诺曼底登陆之前缴获了一艘U型潜艇。
1931年11月8日,法国情报人员与德军通讯部门长官(就是他下令德军使用恩尼格玛密码机的)的弟弟,汉斯-提罗·施密特,在比利时接头。在德国密码处工作的施密特很厌恶德国,于是他就向法国情报人员提供了两份有关恩尼格玛密码机的操作和转子内部线路的资料。但是法国还是无法破译它的密码,因为恩尼格玛密码机的设计要求之一就是要在机器被缴获后仍具有高度的保密性。当时的法军认为,由于凡尔赛条约限制了德军的发展,所以即使无法破译德军的密码,将来如果在战场上相见也不会吃多大亏,于是在得出德军密码“无法破译”的结论之后就再也没有用心地研究它了。
与法国不同,第一次世界大战中新独立的波兰的处境却很危险,西边的德国根据凡尔赛条约割让给了波兰大片领土,德国人对此怀恨在心,而东边的苏联也在垂涎着波兰的领土。所以波兰需要时刻了解这两个国家的内部信息。这种险峻的形势造就了波兰一大批优秀的密码学家。他们很容易就监控住了德军内部的通讯系统,但是1926年被德军启用的恩尼格玛密码机却给他们造成了很大困难。
1921年,波兰与法国签订了一个军事合作协议。在波兰的坚持之下,法国把从施密特那里得来的情报交给了波兰人。在本文“操作步骤”一章的“指示器”一节中,我们提到了指示器步骤的严重缺点,波兰人正是以这个缺点为突破口破译了商业用恩尼格玛密码机。
但1941年英国海军在Joe Baker-Cresswell舰长的斗牛犬号军舰捕获德国潜艇U-110才真正拿到德国海军用的密码机和密码本,并将此事保密只告诉美国罗斯福总统,英国国王乔治六世称赞此事件是整个二次大战海战中最重要的事件。这让原本连数学天才图灵也破译不出的德军密码机得到破译,盟军设计的专门用来破译恩尼格玛密码的“炸弹”机也大大提高了布莱切利园的工作效率。
在战争结束以后,英国人并没有对破译恩尼格玛一事大加宣扬,因为他们想让英国的殖民地用上这种机器。1967年,波兰出版了第一本有关恩尼格玛破译的书,1974年,曾在布莱切利园工作过的英国人F.W.温特伯坦姆写的《超级机密》(The Ultra Secret)一书出版,这使外界广泛地了解到了第二次世界大战中盟军密码学家的辛勤工作。
2001年4月21日,以为破译恩尼格玛而做出了重大贡献的三位杰出的波兰密码学家马里安·雷耶夫斯基、杰尔兹·罗佐基和亨里克·佐加尔斯基命名的雷耶夫斯基、罗佐基和佐加尔斯基纪念基金在华沙设立,它在华沙和伦敦设置了这些波兰密码学家的纪念铭牌。2001年7月,基金会在布莱切利园安放了一块基石,上面刻着丘吉尔的名言“在人类历史上,从未有如此多的人对如此少的人欠得如此多。”
德国海军是德国第一支使用恩尼格玛密码机的部队。海军型号从1925年开始生产,于1926年开始使用。键盘和显示板包含了29个字母,即A-Z、Ä、Ö和Ü,它们在键盘上按顺序排列,而不是按一般的QWERTY式。每个转子有28个触点,字母X的线路不经过转子,也不被加密。操作员可以从一套5个转子之中选择三个,而反射器可以有四种安装位置,代号分别为α、β、γ和δ。1933年7月这种型号又经过了一些小改进。
到了1928年7月15日,德国陆军已经有了他们自己的恩尼格玛密码机,即“恩尼格玛G型”,它在1930年6月经过改进成为了“恩尼格玛I型”。恩尼格玛I型于二战之前与进行的时候在德国军方和其它一些政府组织那里得到了广泛的应用。恩尼格玛I型与商业用恩尼格玛密码机最显著的不同就是I型有一个接线板,这极大地提高了它的保密性。其余的一些不同点包括了固定的反射器,并且I型转子的V形刻痕移到了字母环上。这台机器体积为28×34×15立方厘米,重量约为12公斤。
1930年,德国陆军建议海军采用他们的恩尼格玛密码机,他们说(有接线板的)陆军版安全性更高,并且各军种之间的通信也会变得简单。海军最终同意了陆军的提议,并且在1934年启用了陆军用恩尼格玛密码机的海军改型,代号为“M3”。当陆军仍然在使用3转子恩尼格玛密码机时,海军为了提高安全性可能要开始使用5个转子了。
1938年12月,陆军又为每台恩尼格玛密码机配备了两个转子,这样操作员就可以从一套5个转子中随意选择三个使用。同样在1938年,德国海军也加了两个转子,1939年又加了一个,所以操作员可以从一套8个转子中选择三个使用。1935年8月,德国空军也开始使用恩尼格玛密码机。1942年2月1日,海军为U型潜艇配备了一种四转子恩尼格玛密码机,代号为“M4”(它的通信网络叫做“蝾螈”,而盟军叫它“鲨鱼”)。
人们还生产了一种大型八转子可打印型恩尼格玛密码机,叫做“恩尼格玛II型”。1933年,波兰密码学家发现它被用于德军高层之间的通讯,但是德军很快就弃用了它,因为它不可靠,并且经常出故障。
德国防卫军用的是“恩尼格玛G型”。这种型号有四个转子,没有接线板,并且在转子上有多个V形刻痕。这种恩尼格玛密码机还有一台会记录按键次数的计数器。
其它国家也使用了恩尼格玛密码机。意大利海军使用了商业用恩尼格玛密码机来作为“海军密码机D型”。西班牙也在内战中使用了商业用恩尼格玛密码机。英国密码学家成功地破译了它的密码,因为它没有接线板。瑞士使用了一种叫做“K型”或“瑞士K型”(军方与外交机构使用)的密码机,它与商业用恩尼格玛密码机D型非常相似。许多国家都破译了它的密码,这些国家包括了波兰、法国、英国和美国。日军使用了“恩尼格玛T型”。
恩尼格玛密码机并不是完美的,尤其是在盟军了解了它的原理之后。这就使盟军能够破译德军的通讯,而这在大西洋海战中是具有关键作用的。
人们估计一共有100,000台恩尼格玛密码机被建造出来。在二战结束以后,盟军认为这些机器仍然很安全,于是将他们缴获的恩尼格玛密码机卖给了发展中国家。
盟军破解恩尼格玛机的过程直到1970年才公开。从那以后,人们对恩尼格玛机产生了越来越多的兴趣,美国与欧洲的一些博物馆也开始展出了一些恩尼格玛机。慕尼黑的德国博物馆有一台3转子和一台4转子恩尼格玛机,还有几台商业用恩尼格玛机。美国国家安全局的国家密码学博物馆有一台恩尼格玛机,来参观的客人可以用它来加密及解密信息。美国的计算机历史博物馆,英国的布莱切利园,澳大利亚堪培拉的澳大利亚战争纪念馆和德国,美国和英国一些地方也展出着恩尼格玛机。已经关闭了的圣迭戈计算机博物馆的展品中有一台恩尼格玛机,它在博物馆关闭后被送给了圣迭戈州立大学图书馆。一些恩尼格玛机也成为了私人收藏品。
恩尼格玛机有时也会被拍卖,20000美元的竞拍价是并不稀奇的。
恩尼格玛机的复制品包括了一台德国海军M4型的复制品,一台电子系统经过了改进的恩尼格玛机(恩尼格玛E型),各种计算机模拟软件和纸制模型。
一台罕见的序号为G312的德国情报局版恩尼格玛机于2000年4月1日从布莱切利园被偷走。9月,一个自称“老大”的人放出消息说他要得到25000英镑,否则就会将那台恩尼格玛机毁掉。2000年10月,布莱切利园的官员宣布他们会支付这笔钱,但是在钱付完之后敲诈者却没有回信。就在此后不久,它被匿名地送到了BBC的记者杰里米·帕克斯曼那里,但是三个转子却不见了。2000年11月,一个叫做丹尼斯·叶茨的古董交易家在给星期日泰晤士报打电话要交还那些遗失的转子后被拘捕。事后那台恩尼格玛机被送回了布莱切利园。2001年10月,叶茨在承认他就是偷了那台恩尼格玛机并对被布莱切利园董事基丝丁·拉吉(Christine Large)进行了敲诈的人后被判了10个月的有期徒刑,但他坚持说自己只是为第三者服务的一个中间人。他在入狱三个月后被释放。
恩尼格玛机对密码机的设计是非常有影响的,有一些其它的转子机械就起源于它。英国的Typex机就起源于恩尼格玛机的专利设计,它甚至包含了真实的恩尼格玛机中并未应用的专利设计。为了保密,英国政府没有为应用这些专利设计付版税。日本使用了一种被美国密码学家称作GREEN的恩尼格玛机复制品。在这台并没有被大量使用到的机器中,四个转子是垂直排列的。美国密码学家威廉·弗雷德曼设计了M-325,这是一台与恩尼格玛机具有相似原理的机器,但它从没有被造出来过。
2002年,荷兰的塔吉雅娜·凡·瓦克(Tatjana van Vark)制造了一台独特的转子机器。这台机器也是起源于恩尼格玛机,但是它的转子有40个金属触点及管脚,这就使操作员可以输入字母,数字和一些标点;这台机器包含了509个部件。
1918年2月23日,德国工程师阿瑟·谢尔比乌斯申请了他设计的一种使用转子的密码机的专利,并和理查德·里特组建了谢尔比乌斯和里特公司。他们向德国海军和外交部推销这种密码机,但是没有人对它感兴趣。他们随后将专利权移交给了Gewerkschaft Securitas,他在1923年7月9日组建了Chiffriermaschinen Aktien-Gesellschaft(意为“密码机股份公司”);谢尔比乌斯和里特任董事。
该公司随后开始推销他们的“恩尼格玛A型”转子机,它从1923年到1924年都在万国邮政联盟大会展出。这台机器很笨重,它包含了一台打字机。它的体积为65×45×35立方厘米。重量大约为50公斤。之后,B型恩尼格玛机也被生产了出来,它在结构上与A型相似。[6]尽管名字为“恩尼格玛”,但A和B两种型号和后来的型号之间有很大的差别,这两种型号在大小和形状上有所不同,并且没有反射器。
反射器这个主意是由谢尔比乌斯的同事威利·科恩想出来的,1926年的“恩尼格玛C型”首先安装了反射器。反射器是恩尼格玛机的一个显著特征。
C型比前几种型号更小且更易于携带。它没有配备打字机,而是由操作员来记下显示板上的信息,所以它又有了“亮着灯的恩尼格玛机”这样一个外号。恩尼格玛C型很快就被恩尼格玛D型(1927年开始生产)取代。D型得到了广泛的应用,它的样品被送到过瑞典,荷兰,英国,日本,意大利,西班牙,美国和波兰。