恩尼格玛密码机

描述

与其它转子机械相同的是，恩尼格玛密码机也结合了机械系统与电子系统。机械系统包括了一个包含字母与数字的键盘，依次排列在一个轴上的一系列名为“转子”的旋转圆盘，还有一个在每次按键后就使一个或几个转子旋转的装置。各种恩尼格玛密码机上的机械系统各不相同，它们之间最大的共同点是，每次按键后最右边的转子都会旋转，并且有时候与它相邻的转子也会旋转。转子持续的旋转会造成每次按键后得到的加密字母都不一样。

机械系统这样运行的原因，是要产生不同的电流通路，字母的加密由机器自动完成。当一个键被按下后，电流会流过通路，最终点亮其中一个灯，这个灯显示的就是加密后的字母。举例来说，如果想要发送一条以ANX开头的信息，操作员会先按下A键，这时灯Z就可能变亮，Z就是加密后的信息的第一个字母。操作员之后会按同样的步骤继续输入信息。
为了解释恩尼格玛密码机的工作原理，我们用左侧的图表进行说明。为了使读者更容易理解，在此只显示4个键及灯和其它元件。实际上，恩尼格玛密码机拥有显示灯、按键、插孔和线路各26个。电流首先从电池①流到双向开关②，再流到接线板③。接线板的作用是将键盘②与固定接口④连接起来。接下来，电流会流到固定接口④，然后流经3个（德国防卫军版）或4个（德国海军M4版和德国国防军情报局版）转子⑤，之后进入反射器⑥。反射器将电流从另一条线路向反方向导出，电流会再一次通过转子⑤和固定接口④，之后到达插孔S，又通过一条电线⑧流到插孔D，最后通过另一个双向开关⑨去点亮显示灯。
转子的转动造成的电流路径的持续变化使恩尼格玛密码机（在当时）具有了高度的保密性。

转动

为了避免产生简单（并且容易破译）的加密信息，有些转子在操作员连续按下同一个键时也会转动。这就保证了每次按键得到的结果都不一样，也就会产生很难破译的复式密码。
为了达到这个效果，最常见的布局就是使用一个防倒转齿和防倒转爪系统。每个转子都有26个防倒转齿，一组防倒转爪与这些齿相接。这些爪在每次按键后都会向前推，如果防倒转爪与防倒转齿相接的话，转子就会旋转一点。
在德国防卫军的恩尼格玛密码机中，每个转子都有一个可调节的带缺口的外环。5个最基本的转子（I-V）各有一个缺口，而附加的转子VI、VII和VIII各有两个缺口。在转子转动到某一点时，第二个转子的防倒转爪正好位于它的缺口之内，这就使第二个转子在下一次按键后也会转动。当防倒转爪位于缺口之外时，它就只会沿着另一个转子外环的光滑边缘滑动。在所有转子都只有一个缺口的系统中，第一个转子每转26次就会使第二个转子转动一次，同样的，第二个转子每转动26次就会使第三个转子转动一次。第三个转子转动的同时第二个转子也会转动。
这种两个转子同时转动的现象使它与计程器区别开来。这个现象出现于下述情况：第一个转子转动完之后带动了第二个转子转动一点，如果这时第三个转子的防倒转爪正好落入第二个转子外环的缺口内，那么在下一次按键时，第三个转子就会转动一点，同时它的防倒转爪也会推动第二个转子的外环，这样就使第二个转子连续两次转动。
当拥有三个转子，并且第一和第二个转子的外环各有一个缺口时，一台恩尼格玛密码机就会拥有26×25×26 = 16,900个组合（不是26 X 26 X 26，因为第二个转子会与第三个转子一起转动，参看参考资料中的一个PDF文件，它解释了这个现象）。在历史上，每条信息的长度都被限制在几百个字母以内，所以在同一条信息中输入同样的字母产生同样的密码的几率是很小的。
为了给1942年启用的海军用第四个转子腾出空间，反射器经过了改造变得非常薄，多出来的空间就可以放入第四个特殊的转子。转子系统的其余部分不做改变。因为整个系统中只有三个防倒转爪，所以第四个转子从来都不会自动转动，但是它的位置可以手动调节。
当按下一个键后，转子会在电路接通之前转动。

固定接口

固定接口，又称作定子，是将插销或键盘与显示灯连接起来的装置。尽管固定接口中的线路分布对于密码的安全性影响很小，但是这还是阻碍了波兰密码学家马里安·雷耶夫斯基对恩尼格玛密码机密码的破译过程。商业恩尼格玛密码机的键盘上，Q键代表A，W键代表B，E键代表C，依此类推，而军用恩尼格玛密码机的键对应的就是键上的字母。

反射器

除了早期的A型和B型之外，恩尼格玛密码机的最后一个转子之后都有一个反射器，反射器是恩尼格玛密码机与当时其它转子机械之间最显著的区别。它将最后一个转子的其中两个触点连接起来，并将电流沿一个不同的路线导回。这就使加密过程与解密过程变得一致。但是，反射器也使恩尼格玛密码机具有了如下性质：加密后得到的字母与输入的字母永远不会相同。这在概念上和密码学上都是一个严重的错误，这个错误最终被盟军解码人员利用。
在商业用恩尼格玛密码机（C型）中，反射器可以有两种不同的安装方式。在D型中它可以有26种方式。而在军用恩尼格玛密码机中，反射器可以像转子一样转动。
在德国陆军和空军版恩尼格玛密码机中，反射器是固定的，并且不会旋转；他们用的恩尼格玛密码机一共有4个版本。最初的版本被标记为A型，1937年11月1日它被B型取代。第三种型号，C型，在1940年被短暂地使用过，它最终被木屋6号破译。D型拥有一个可以重新接线的反射器，首次测试于1944年1月2日，这个版本允许操作员来调整接线方式。

接线板

接线板允许操作员设置各种不同的线路。它首先在1930年被用于德国陆军，很快地，德国海军也开始使用它。193连接线板极大地增强了恩尼格玛密码机的保密性，它的使用相当于多增加了不止一两个转子。没有接线板插口之间的恩尼格玛密码机可以被很容易地用人工方法破译，但是加上连接线板后，盟军的密码专家就需要使用特殊的机器了。
接线板上的每条线都会连接一对字母。这些线的作用就是在电流进入转子前改变它的方向。为了解释它的原理，我们把E插口和Q插口连接起来。当操作员按下E键时，电流就会先流到Q插口（相当于按下Q键）再流经转子。接线板上最多可以同时接13条线。
电流会从键盘流经接线板，之后进入转子。接线板上的每个插口内都有两个插孔，当将插头插入时，上插孔（连到键盘）与下插孔（连到转子）之间的连接就会被断开。另外一个插口内的上插孔会与此插口内的下插孔连接起来，而下插孔会与此插口内的上插孔连接起来，这样就完成了两个插口之间的连接。

附件

M4版恩尼格玛密码机配备的一个很有用的附件就是Schreibmax，这是一台小型打印机，它可以将字母打在一张纸条上。这就使德军不用再使用第二个操作员来记下显示板上的字母了。Schreibmax位于恩尼格玛密码机的顶部并与显示板连接。为了安装Schreibmax，显示板的盖子与里面的所有灯泡都需要被拆下。Schreibmax除了使用方便之外还可以提高保密性，因为它可以放置在离恩尼格玛密码机很远的地方，这样就不会有第三者看见未加密的原文了。
另外一个附件就是独立式显示板。如果恩尼格玛密码机配备了一个附加的显示板，那么装它的木盒就会更宽。安装独立式显示板也要求将显示板的盖子与里面的灯泡拆下。
1944年德国空军启用了Uhr（钟）系统。这是一个包含了一个旋钮的盒子，这个旋钮有40种位置。这个盒子的功能相当于接线板。

数学描述

恩尼格玛对每个字母的加密过程可以以数学的角度看作为一个组合过程。假设我们有一台德国陆军/空军版3转子恩尼格玛密码机，让P表示接线板的连线，U表示反射器，L、M、R表示左、中、右转子。那么加密后的信息就可以表示成

指示器

恩尼格玛密码机的大部分设置都会在一段时间（一般为一天）以后被更换。但是，转子的起始位置却是每发送一条信息就要更换的，因为如果一定数量的文件都按照相同的加密设置来加密的话，密码学家就会从中得到一些信息，并且有可能利用频率分析来破译这个密码。为了防止这种事情发生，转子的起始位置在每次发送信息之前都会被改变。这个方法被称作“指示器步骤”。
最早期的指示器步骤成为了波兰密码学家破译恩尼格玛密码机密码的突破口。在这个步骤中，操作员会先按照密码本中的记录来设置机器，我们假设这时的转子位置为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。比较长的信息会被分成几个部分来发送。

恩尼格玛的破译

1931年11月8日，法国情报人员与德军通讯部门长官鲁道夫·施密特（就是他下令德军使用恩尼格玛密码机的）的弟弟——汉斯-提罗·施密特，在比利时接头。在德国密码处工作的施密特很厌恶纳粹政权，于是他就向法国情报人员提供了两份有关恩尼格玛密码机的操作和转子内部线路的资料。但是法国还是无法破译它的密码，因为恩尼格玛密码机的设计要求之一就是要在机器被缴获后仍具有高度的保密性。当时的法军认为，由于凡尔赛条约限制了德军的发展，所以即使无法破译德军的密码，将来如果在战场上相见也不会吃多大亏，于是在得出德军密码“无法破译”的结论之后就再也没有用心地研究它了。
与法国不同，第一次世界大战中新独立的波兰的处境却很危险，西边的德国根据凡尔赛条约割让给了波兰大片领土，德国人对此怀恨在心，而东边的苏联也在垂涎着波兰的领土。所以波兰需要时刻了解这两个国家的内部信息。这种险峻的形势造就了波兰一大批优秀的密码学家。他们很容易就监控住了德军内部的通讯系统，但是1926年被德军启用的恩尼格玛密码机却给他们造成了很大困难。
1921年，波兰与法国签订了一个军事合作协议。在波兰的坚持之下，法国把从施密特那里得来的情报交给了波兰人。恩尼格玛的指示器步骤存在严重缺陷，波兰人正是以这个缺点为突破口破译了商业用恩尼格玛密码机。
1940年超级机密破译得德军情报表明德国人会在11月14日进行大规模空袭。地点为包括伦敦、考文垂在内的三个可能地点，最终英国人还是没有能确认地点，未能阻止考文垂大轰炸的发生。F. W. Winterbotham的书说丘吉尔已经确认了空袭地点但出于不暴露“超级机密”的考虑未采取预防措施，这一说法广泛流传以至于电视剧神探夏洛克还在引用它。 R V Jones,David Hunt爵士, Ralph Bennett和Peter Calvocoressi对它进行了大量全面的反驳。他们指出当时丘吉尔正在前往迪奇利公园的路上被告知伦敦将会被空袭，于是折回唐宁街十号准备在空防部顶楼亲眼观看空袭。
但1941年英国海军在Joe Baker-Cresswell舰长的斗牛犬号军舰捕获德国潜艇U-110才真正拿到德国海军用的密码机和密码本，并将此事保密只告诉美国罗斯福总统，英国国王乔治六世称赞此事件是整个二次大战海战中最重要的事件。这让原本连数学天才图灵也破译不出的德军密码机得到破译，盟军设计的专门用来破译恩尼格玛密码的“炸弹”机也大大提高了布莱切利园的工作效率。
在战争结束以后，英国人并没有对破译恩尼格玛一事大加宣扬，因为他们想让英国的殖民地用上这种机器。1967年，波兰出版了第一本有关恩尼格玛破译的书，1974年，曾在布莱切利园工作过的英国人F.W.温特伯坦姆写的《超级机密》（The Ultra Secret）一书出版，这使外界广泛地了解到了第二次世界大战中盟军密码学家的辛勤工作。但是书中的丘吉尔为保守秘密而不通知考文垂将被轰炸一段被认为是小说家言，并非史实。
2001年4月21日，以为破译恩尼格玛而做出了重大贡献的三位杰出的波兰密码学家马里安·雷耶夫斯基、杰尔兹·罗佐基和亨里克·佐加尔斯基命名的雷耶夫斯基、罗佐基和佐加尔斯基纪念基金在华沙设立，它在华沙和伦敦设置了这些波兰密码学家的纪念铭牌。2001年7月，基金会在布莱切利园安放了一块基石，上面刻着丘吉尔的名言“人类冲突史上从未有如此之少数，于如此短暂之时，挽救如此多众生。”

商业用恩尼格玛密码机

1918年2月23日，德国工程师阿瑟·谢尔比乌斯申请了他设计的一种使用转子的密码机的专利，并和理查德·里特组建了谢尔比乌斯和里特公司。他们向德国海军和外交部推销这种密码机，但是没有人对它感兴趣。他们随后将专利权移交给了Gewerkschaft Securitas，他在1923年7月9日组建了Chiffriermaschinen Aktien-Gesellschaft（意为“密码机股份公司”）；谢尔比乌斯和里特任董事。
该公司随后开始推销他们的“恩尼格玛A型”转子机，它从1923年到1924年都在万国邮政联盟大会展出。这台机器很笨重，它包含了一台打字机。它的体积为65×45×35立方厘米。重量大约为50公斤。之后，B型恩尼格玛密码机也被生产了出来，它在结构上与A型相似。尽管名字为“恩尼格玛”，但A和B两种型号和后来的型号之间有很大的差别，这两种型号在大小和形状上有所不同，并且没有反射器。
反射器这个主意是由谢尔比乌斯的同事威利·科恩想出来的，1926年的“恩尼格玛C型”首先安装了反射器。反射器是恩尼格玛密码机的一个显著特征。
C型比前几种型号更小且更易于携带。它没有配备打字机，而是由操作员来记下显示板上的信息，所以它又有了“亮着灯的恩尼格玛密码机”这样一个外号。恩尼格玛C型很快就被恩尼格玛D型（1927年开始生产）取代。D型得到了广泛的应用，它的样品被送到过瑞典、荷兰、英国、日本、意大利、西班牙、美国和波兰。

军用恩尼格玛密码机

德国海军是德国第一支使用恩尼格玛密码机的部队。海军型号从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转子恩尼格玛密码机，还有几台商业用恩尼格玛密码机。美国国家安全局的国家密码学博物馆有一台恩尼格玛密码机，来参观的客人可以用它来加密及解密信息。美国的计算机历史博物馆、英国的布莱切利园、澳大利亚堪培拉的澳大利亚战争纪念馆和德国、美国和英国一些地方也展出着恩尼格玛密码机。现在已经关闭了的圣迭戈计算机博物馆的展品中有一台恩尼格玛密码机，它在博物馆关闭后被送给了圣迭戈州立大学图书馆。一些恩尼格玛密码机也成为了私人收藏品。
恩尼格玛密码机有时也会被拍卖，20,000美元的竞拍价是并不稀奇的。
恩尼格玛密码机的复制品包括了一台德国海军M4型的复制品，一台电子系统经过了改进的恩尼格玛密码机（恩尼格玛E型），各种计算机模拟软件和纸制模型。
一台罕见的序号为G312的德国情报局版恩尼格玛密码机于2000年4月1日从布莱切利园被偷走。9月，一个自称“老大”的人放出消息说他要得到25,000英镑，否则就会将那台恩尼格玛密码机毁掉。2000年10月，布莱切利园的官员宣布他们会支付这笔钱，但是在钱付完之后敲诈者却没有回信。就在此后不久，它被匿名地送到了BBC的记者杰里米·帕克斯曼那里，但是三个转子却不见了。2000年11月，一个叫做丹尼斯·叶茨的古董交易家在给星期日泰晤士报打电话要交还那些遗失的转子后被拘捕。事后那台恩尼格玛密码机被送回了布莱切利园。2001年10月，叶茨在承认他就是偷了那台恩尼格玛密码机并对被布莱切利园董事基丝丁·拉吉（Christine Large）进行了敲诈的人后，被判了10个月的有期徒刑，但他坚持说自己只是为第三者服务的一个中间人。他在入狱三个月后被释放。

相关改编

休·怀特摩尔创作的戏剧“破译密码”的内容为艾伦·图灵的生活，艾伦·图灵是在二战中帮助英国破译恩尼格玛密码机的密码的最大功臣。
英国畅销书作家罗伯特·哈里斯于1996年出版的小说“恩尼格玛”讲述的是布莱切利园的密码学家们破译恩尼格玛的过程。2001年这本小说被拍成了电影“恩尼格玛”。
由乔纳森·莫斯托拍摄并于2000年上映的电影U-571讲的是一群美国潜艇兵为缴获一台恩尼格玛密码机而抢了一艘德国潜艇后的故事。电影中的恩尼格玛密码机是一个收藏家手里的真品。这部电影的情节并没有严格地按照历史发展，英国皇家海军在1941年击败德军潜艇U-110号最早获得德国海军密码机，也是猎杀U-571电影的真实版本，美国只是在1944年诺曼底登陆之前缴获了一艘U型潜艇。
2014年上映的电影《模仿游戏》讲述了艾伦·图灵等英国的数学家、逻辑学家协助军方破译恩尼格玛密码机的过程。
2019年由网易推出的非对称对抗悬疑手游【第五人格】里面求生者阵营需要破译五台密码机让大门通电输入密码逃生所需破译的五台密码机就是恩尼格玛密码机。