图 15老机器馆
恩尼格玛密码机原理:转子、反射器与插线板
在设为 I-II-III、AAA 的恩尼格玛上按五次 A,灯会依次亮 B、D、Z、G、O。
这台设备无法显示 3D 模型。下面的讲解步骤可以直接阅读文字。
1 / 10 一条 1941 年的真实报文机器设为转子 II、IV、V,环 B U L,起始位置 B L A,十条插线。它正在打一条 1941 年 7 月 7 日发出的德国陆军报文,灯依次拼出德语明文:AUFKLXABTEILUNGXVONX...
拖动可旋转,滚轮或双指缩放。
按下一个键时发生了什么
恩尼格玛密码机原理是什么?每按一次键,电流就穿过插线板、三个转子和反射器,再原路经过转子和插线板返回,点亮一盏对应着另一个字母的灯。右边的转子每按一次键就转一步,接线随之改变,所以同一个字母每次出来的结果都不同。
1941 年,一名德国无线电员的桌上放着一只木箱,橡木机壳约 35 × 29 cm,深 16 cm,重约 12 kg。他按下一个键,字母窗口下的一只小灯泡亮起,另一名士兵把这个字母记下来。再按同一个键,亮的就是另一盏灯。这就是 Enigma I 的全部用户界面,上面的模型也是这样工作的。
本页按真实的转子 I 至 V 和反射器 B 的接线,从按键到灯,一个部件一个部件地追踪电流。模型里的密码是真的:按发送者的方式设好,它就能读出 1941 年 7 月 7 日从俄国前线发出的一条报文。
电流经过的部件
按下一个键会合上一个开关。机壳里一块 4.5 伏的电池推动电流穿过这条链:
- 键盘:26 个键,按德语 QWERTZ 排列。
- 插线板(Steckerbrett):前面板上的插孔。两个插孔之间接一条线,就互换这两个字母。
- 入口轮:固定的圆盘,把电流送到转子。在 Enigma I 上它是直通接线,A 对 A。
- 三个转子,从右到左。每个转子都会打乱字母表。
- 反射器:固定的半轮,把字母两两配对,让电流折回。
- 再过一遍三个转子,从左到右,走另一条路径。
- 再过入口轮和插线板,最后到 26 盏灯中的一盏。
电流一路上要穿过转子六次,三次去程,三次回程。如果机器到此为止,它就只是一张固定的替换表,小学生拿支铅笔数数字母频率就能解开。关键在于转子会转动。
为什么转子在灯亮之前转动
按键严格按顺序做两件事。行程最初的几毫米,推动一个棘爪顶住右转子的棘轮,让转子转 1/26 圈。只有行程到底时,键才接通电触点。所以字母总是在转子转到新位置后才被加密。
开启「透视内部」,打几个字母。每个转子里的红蓝导线,每按一次键都会跳到新的位置,即使你按的是同一个键,因为转子已经转了,固定触点前面现在是另一根内部导线。
转子内部:26 根乱序的导线
转子是一个厚厚的绝缘圆盘。右面有 26 根弹簧针,左面有 26 个平触点。里面 26 根绝缘导线把每根针连到一个触点。比如转子 I 把 A 送到 E,B 送到 K,C 送到 M;完整的对应是 EKMFL GDQVZ NTOWY HXUSP AIBRC J。模型使用了全部五个转子公开的接线:
| 转子 | 接线(A 到 Z 变成什么) | 缺口 | 服役时间 |
|---|---|---|---|
| I | EKMFL GDQVZ NTOWY HXUSP AIBRC J | Q | 1930 |
| II | AJDKS IRUXB LHWTM CQGZN PYFVO E | E | 1930 |
| III | BDFHJ LCPRT XVZNY EIWGA KMUSQ O | V | 1930 |
| IV | ESOVP ZJAYQ UIRHX LNFTG KDCMW B | J | 1938 年 12 月 |
| V | VZBRG ITYUP SDNHL XAWMJ QOFEC K | Z | 1938 年 12 月 |
边缘有一圈可转动的字母环,环上有一个缺口。字母环决定窗口里显示哪个字母,环设置(Ringstellung)决定字母相对接线错开多少。把环转一格,对接线的效果,与字母不动而把接线芯转一格相同。
反射器,以及为什么字母不会变成自己
反射器 B 把 26 个触点连成 13 对:A 与 Y,B 与 R,C 与 U,依此类推(YRUHQ SLDPX NGOKM IEBFZ CWVJA T)。到达 A 的电流从 Y 离开,再穿过三个转子返回。
这带来两个后果。对操作员有利的是:机器是它自己的逆。在某个设置下,如果 A 变成 B,那么在同一设置下 B 变成 A,所以同一台机器、同样的步骤就能解密报文。不利的是:字母永远不会变成它自己。回程不可能终止在去程开始的地方,因为反射器从不把一个触点连到它自己。在模型里你可以打 1000 个字母,永远看不到亮的灯与你按的键相同。破译员用这一点排除猜测明文(crib)的位置:如果猜测让某个字母正对着密文里相同的字母,这个位置就不可能。
步进、缺口与双步进
右转子每按一次键就转一步。它转过缺口位置(转子 III 是 V)时,会带动中转子前进一步。中转子转过自己的缺口时,会带动左转子。
这个机构有个怪癖。推动左转子的棘爪搭在中转子的缺口上,推的时候也会把中转子带着走。所以中转子会在连续两次按键中各转一步。导览第 5 步用转子 I、II、III 从 ADU 开始演示:
- ADU 变成 ADV(右转子在 V 到达缺口)
- ADV 变成 AEW(中转子被带到 E,它自己的缺口)
- AEW 变成 BFX(中转子再转一步,并带动左转子)
- BFX 变成 BFY
因为有双步进,中转子在一个周期里只有 25 个不同位置,而不是 26 个。机器在 26 × 25 × 26 = 16,900 次按键后重复。模型的代码跑完了整个周期,恰好在 16,900 步后回到起点。
从 A 到 B 的一个字母
把 I-II-III 设在 AAA,不接线,按 A。右转子先转一步,所以窗口读作 AAB。然后电流这样走:
| 经过 | 字母 |
|---|---|
| 按键 | A |
| 插线板 | A(没有插线) |
| 右转子(III 在 B) | C |
| 中转子(II 在 A) | D |
| 左转子(I 在 A) | F |
| 反射器 B | S |
| 左转子,回程 | S |
| 中转子,回程 | E |
| 右转子,回程 | B |
| 插线板和灯 | B |
再按四次 A,灯会显示 D、Z、G 和 O。AAAAA 变成 BDZGO 是检验 Enigma 模拟器的标准测试,模型通过了。如果把环设成 BBB,同样五个键给出 EWTYX,这是另一个公开的检验,模型的代码也通过了。
一共有多少种设置方式
陆军操作员要根据每日密钥表设定四样东西。下面的数字是算出来的,公式也列出,方便你核对。
- 转子顺序:从五个转子里按顺序选三个,5 × 4 × 3 = 60。
- 起始位置:26 × 26 × 26 = 17,576。
- 十条插线的插线板:从 26 个字母里选十对。数量是 26! / (6! × 10! × 2^10) = 150,738,274,937,250。6! 对应没插线的六个字母,10! 对应插线的顺序,2^10 对应每条线的两端。
相乘:60 × 17,576 × 150,738,274,937,250 = 158,962,555,217,826,360,000,约 1.6 × 10^20,或大约 2^67。中转子和右转子的环设置会改变进位发生的时刻,使总数最多再乘以 26 × 26 = 676,达到约 1.07 × 10^23。
这个数字主要来自插线板。十条线甚至不是最大值:十一条线会给出 205,552,193,096,250 种配对。1939 年 1 月之前,陆军只用六条线,对应 100,391,791,500。
密钥空间大,不等于密码强。看上去最巧妙的转子,只贡献 60 × 17,576 = 1,054,560 种设置。布莱切利园的破译机器攻击的正是这一部分,插线板则靠逻辑处理。
加密和解密是同一个动作
在 I-II-III、AAA、不接线时打出 HALLO,灯依次亮 IDBDA。按「回到开头」再打 IDBDA:灯拼出 HALLO。「把灯的字母打回去」按钮替你做这件事。因为有反射器,接收者不需要单独的解密模式。他设好同样的转子、环、插线和起始位置,打出密文即可。
战时使用中,每条电文的起始位置本身也要加密。操作员选三个字母(报文密钥),在当天的基本设置下加密它们,把结果发在电文开头,然后把转子转到自己的报文密钥。导览第一步里的 1941 年报文使用报文密钥 BLA、转子 II、IV、V、环 B U L 和十条插线(AV BS CG DL FU HZ IN KM OW RX)。它的开头读作 AUFKL XABTE ILUNG XVONX KURTI NOWA,其中 X 代表空格:一支侦察部队从塞别日附近的库尔季诺瓦发来的报告。
模型与真实机器有何不同
- 盖板、灯罩和盖板窗口都去掉了,好让你看到转子。
- 插线挂得比真的低,以免挡住插孔。真的插头有两根粗细不同的针,所以一条线就能在两个方向上互换。
- 红蓝电流路径画成一条直线。真实机器里,导线沿一束固定的线束穿过底座。
- 真实机器的键还会切换灯的电路,所以按下的键点不亮它自己的灯。模型在逻辑上做到了同样的事,但画面上没有体现。
- 机壳是 Enigma I 的。在实验室里选海军 M3 时,转子 VI 至 VIII 和反射器 C 的计算是精确的,但箱子不变。选 M4 时,第四轮和薄反射器会参与计算,并标在反射器标签上;画面仍然显示三个转子。
- 「跟随电流」里行进的亮点以步行的速度移动。真实的电流只需几纳秒就穿过整台机器。
恩尼格玛是如何被破译的
亚瑟·谢尔比乌斯于 1918 年 2 月 23 日为一种转子密码机申请了专利。德国海军 1926 年把这种机器投入使用,陆军在 1928 年加上了插线板。1932 年 12 月,波兰数学家马里安·雷耶夫斯基用置换理论推出了转子接线。他得到了帮助:柏林的间谍汉斯-蒂洛·施密特把德国的手册和每日密钥表卖给了法国情报机关。波兰人造出自己的复制机和一种叫循环计的装置,在整个 1930 年代读懂了大量德国电文。
1938 年 12 月 15 日,陆军增加了转子 IV 和 V,转子顺序从 6 种增加到 60 种,1939 年 1 月插线数量也从六条增加。1939 年 7 月 26 日和 27 日,在华沙附近的皮里,波兰密码局把自己的方法和复制的机器交给了法国和英国军官。在布莱切利园,艾伦·图灵和戈登·韦尔奇曼设计了炸弹机,一种用猜测明文检验转子位置的机电式机器。第一台名叫「胜利」,于 1940 年 3 月 18 日到达。第二台带有韦尔奇曼的对角线板,于 1940 年 8 月 8 日到来。
在实验室里亲自试试
控件下面有一个带六种工具的实验室。它们都不是单独的模拟:每一种都驱动与上面那台机器相同的密码代码,也就是用 1941 年报文核对过的那份代码。
设置机器。 选一个型号、三个转子、一个反射器、环设置和起始位置。插线板是一排 26 个插孔。从一个插孔拖到另一个插孔即可接上插线,或依次点两个。点已接的插孔可拔掉插线。你也可以点 3D 机器前面的黄铜插孔。每次改动都会清空纸带,因为密文只有连同它加密时的设置才有意义。
跟随电流。 打开它,再按一个键。转子先转动,然后一个小亮点离开按键,走到它的插孔,如果那里有插线就互换,进入入口轮,依次穿过右、中、左转子。在反射器里它掉头,沿另一条路径依次穿过左、中、右转子回来,到插线板,再上到灯。舞台顶部的条带会在亮点经过时点亮每一站。开启「透视内部」再试一次:转子外壳变透明,你可以看着亮点在触点之间跳跃。
双步进慢动作。 它把转子 I-II-III 设在 ADU,放慢转子的动作,并按 A 三次。下面的记录写下每次按键时哪些转子动了:ADU 到 ADV 只有右转子动,ADV 到 AEW 右转子和中转子动,AEW 到 BFX 三个都动。中转子在连续两次按键中都动了。
字母永远不会变成自己。 一个按钮会按 A 一万次,每次都换一组随机设置和十条随机插线,并画出每盏灯亮了多少次。A 的柱子永远是空的。其余 25 根柱子都在 400 左右,因为 10,000 / 25 = 400。在本页的一次运行中,它们的范围是 343 到 444。那根空柱子就是破译员利用的弱点。
加密和解密。 写一条报文,按「加密」。再按「解密结果」:同样的设置把密文变回你的报文,这一行会告诉你。「在机器上打出来」会把报文逐个字母送过 3D 模型。
一共有多少种设置。 一张表为每个型号把密钥的各部分相乘。你可以把插线数量从 0 滑到 13,看总数变化。所有数字都是精确的整数,同样的公式也用手算过。
海军机器:八个转子里选三个,后来是四个轮
德国海军对 Enigma 比陆军更谨慎。它的 M3 用同样的转子 I 至 V,并加了三个自己的转子 VI、VII 和 VIII。这些海军转子各有两个缺口,在 Z 和 M,所以下一个转子每转一圈进位两次,而不是一次。从八个转子里选三个,有 8 × 7 × 6 = 336 种转子顺序,而不是 60 种。海军除了 B 之外还用反射器 C。
把这些数字代入和前面相同的乘积(336 种转子顺序、2 个反射器、17,576 个起始位置、676 种环设置和十条插线),得到 1,203,537,298,065,206,936,832,000,约 1.2 × 10^24。
1942 年,潜艇用的机器又变了。机壳里没有地方放第四个转子,于是把反射器做薄,在它和左转子之间放一个薄轮,Beta 或 Gamma。这个第四轮可以手动设定,但从不步进。英国人把新的潜艇电文称为「鲨鱼」(Shark)。国际间谍博物馆展出了德国为日本造的一台四转子机,它指出鲨鱼电文再次被破译用了将近一年。
第四轮有一个隐藏的便利。把 Beta 设在 A,配薄反射器 B,M4 的加密结果就与使用旧反射器 B 的三转子机完全一样。Gamma 配薄反射器 C 也有同样的等价关系。这意味着潜艇仍能读使用三转子机的岸上电台发来的电文。第四轮有 26 个位置,又有两种轮可选,实验室里 M4 的数量上升到约 6.3 × 10^25。
猜测明文:猜出明文
猜测明文(crib)是你预料会出现在报文里的一段明文。天气报告每天都以相同的德语词开头。各部队按固定格式报告,有些部队夜复一夜地发同一句「无事报告」。
第一步是把猜测明文与密文对齐。这里反射器帮了破译员。因为没有字母会加密成它自己,猜测明文不能放在任何一个字母与下面的密文字母相同的位置。取本页 1941 年报文的前 96 个字母,以及它明文的真正开头 AUFKLXABTEILUNG,共 15 个字母。猜测明文可能从 82 个位置开始。其中 40 个位置至少有一个字母相撞,所以只剩 42 个,而位置 0,也就是正确的那个,就在其中。猜测明文越长,排除得越多。
对齐的猜测明文给出一些字母对:第 1 步明文 A 变成密文 E,第 2 步 U 变成 D,依此类推。这些字母对就是炸弹机的输入。
布莱切利园的炸弹机
1938 年波兰的 Bomba 靠发现每条电文开头打两遍的报文密钥来工作。当德国人不再重复密钥并增加了转子,这种方法就失效了。艾伦·图灵设计了一台新机器,改为从猜测明文入手。
一台炸弹机带有许多组复制 Enigma 转子的转鼓。对一种转子顺序,它会走遍全部 17,576 个起始位置。在每个位置,它检验猜测明文的字母对能否与某种插线板同时成立。大多数位置立刻导致矛盾,机器就继续往下。它停下时,操作员记下位置和一个插线猜测,再用 Typex 或 Enigma 复制机手工检查。
戈登·韦尔奇曼加了对角线板。它接入了插线互换是双向的这一事实:如果 A 与 V 相连,那么 V 也与 A 相连。这大大减少了虚假停机。据国家计算机博物馆介绍,第一台炸弹机「胜利」于 1940 年 3 月开始工作,第一台带对角线板的「上帝羔羊」于 1940 年 8 月开始工作,到战争结束时约有 1,676 名皇家海军女子勤务队员和 263 名皇家空军人员操作 211 台炸弹机。博物馆有一台能运行的复原机。
找到日密钥后,仍有成千上万条电文要解密。布莱切利园为这项工作使用了改成 Enigma 行为的英国 Typex 机。
其他转子机:Typex 和 SIGABA
英国在 1928 年买了两台商用 Enigma。随后航空部让电传打字机制造商 Creed & Company 造一台改进的复制机,第一批 Typex Mark I 在 1937 年初送到皇家空军。Typex 有五个转子,其中两个在打字时保持不动,并把文字打印在纸带上,而不是点亮灯。Mark 22 增加了插线板,所以能模仿 Enigma。帝国战争博物馆记载,德国人至少缴获了两台 Typex,但始终没有破译,它一直服役到 1960 年代初。
美国陆军的 SIGABA,美国海军称为 ECM,也使用有接线的转子。弗兰克·罗莱特给它设计了如此缠绕的步进,看上去就是随机的。美国国家安全局国家密码博物馆指出,它是战争中唯一从未被敌人破译的机器系统。从 1943 年 11 月起,改造过的 ECM 和 Typex 一起作为联合密码机工作,使英美舰船能够共享电文。
Enigma 的弱点不在于它用了转子,而在于规则的步进、反射器,以及操作员的习惯。实验室里的 50 条机器、人物和方法清单沿着这段历史展开,每条都附有出处。
为什么十三条插线的设置数比十一条少
把插线板的每个插孔都插满,看上去最安全。然而数量在十一条线之后下降。要弄清原因,把有 n 条线的排法数记作 P(n)。比较上面阶乘公式的两个相邻值,几乎全部抵消:
P(n + 1) / P(n) = (26 − 2n)(25 − 2n) / (2(n + 1))。
十条线时还剩六个空插孔。加第十一条线,比值是 6 × 5 / 22 = 15/11,所以数量从 150,738,274,937,250 增长到 205,552,193,096,250。十一条线时还剩四个空插孔。下一个比值是 4 × 3 / 24 = 1/2,所以十二条线给出 102,776,096,548,125 种排法。最后一个比值是 2 × 1 / 26 = 1/13:十三条线只剩 7,905,853,580,625 种排法。这些是完整插线板的可能数量,而不是在某一块特定插线板上再加一条线的方法数。
为什么要除以 n + 1?每块做好的插线板,都可以通过取下它 n + 1 条线中的任意一条再装回去得到。如果不做这次除法,把所有可能的添加都数一遍,同一块做好的插线板就会被数好几次。因子 2 避免把一条线的两个朝向分开计数。连接 A 和 B 的线,与连接 B 和 A 的线是同一个连接。
在设置计数器里,保持机器型号不变,把插线滑块从 10 移到 13。所有其他因子保持固定,所以总数遵循同样的先升后降。这检验的是一个计数假设,而不是破译一条电文需要的时间。十一条线使这个特定的搜索空间最大;仅凭这一点,不能证明十一条线给出实际上最强的密码。康奈尔大学的组合学讲义从选插孔和配对推导出了这个基本公式。
在炸弹机舞台上破译一条电文
打开炸弹机舞台,Enigma 让位给一台炸弹机模型。正面有 108 个转鼓,分三排。国家计算机博物馆这样描述这台机器:每组竖向的三个转鼓相当于一台 Enigma 的转子,所以正面共有 36 台 Enigma。模型的转鼓随搜索转动,侧面的转鼓显示正在检验的位置。
舞台上的电文是一份编造的潜艇天气报告,用页面直到最后才揭晓的日密钥加密。猜测是它含有 WETTERVORHERSAGE,即天气预报,博物馆称它是海军猜测明文中的典型词。第一块面板沿着密文滑动这个猜测明文。凡是猜测明文的字母正对着相同密文字母的地方,都会变红,该位置被排除,因为 Enigma 从不把字母加密成它自己。前 20 个位置里,有 12 个留下。真正的位置是 8。
按「在此处画菜单」,面板会画出菜单。猜测明文的每个字母与它下面的密文字母之间连一条线,线上标着它在电文中的位置。这个猜测明文给出 15 个字母、16 条线和 3 个闭合的环。连接最多的字母 E 成为输入字母。环最重要。关于 E 的插线搭档的一个猜测,可以沿着环追踪一圈,回来时必须与自己一致,所以每个环都是错误猜测可能通不过的又一道检验。
然后运行。对一种转子顺序,炸弹机走遍全部 17,576 个转鼓位置。在每个位置,它假设 E 与某个字母相连,把这个猜测沿菜单上的每个扰频器追踪下去,并用韦尔奇曼的对角线板(如果 E 与 w 相连,那么 W 与 e 相连)把它进一步扩展。错误的猜测很快就推出 E 同时与每个字母相连,这是不可能的,于是转鼓继续转动。炸弹机只在某个猜测存活的地方停下。模型完整地做同样的检验,所以它的停机是密码的真实结果,而不是预先写好的动画。每个停机再按检查机的方式检查:如果某个字母需要两个搭档,它就是虚假停机。用真正的顺序 II-V-III,运行只停一次,在 YIV,检查通过。面板上另外三种顺序一次停机都没有。
停机给出转鼓位置和菜单上每个字母的插线搭档。按「用这个停机解密」,大部分电文变得可读,只有几个字母是错的:ANUFDXXWETTERVORHERSAGE。这些错误出在三条插线上,它们的字母从未出现在菜单里。从读了一半的文字里找出它们是最后一步,也是实验室里的一个任务。
有两处做了简化。环设置固定在 A,因为炸弹机找的是转鼓位置,而环只是移动窗口里显示的字母。另外,模型的扰频器像 Enigma 一样步进,包括中转子,而不是复制炸弹机自己的转鼓齿轮传动。博物馆给出了真实机器的速度:顶部转鼓每分钟转 97.5 圈,所以没有停机的一次运行至少要 10.4 分钟。速度滑块让模型以这个速度运行,或最多快一千倍。
洛伦兹与 Colossus:另一种德国密码
德军陆军最高统帅部最重要的电文并不使用 Enigma。它用的是洛伦兹 SZ40 和 SZ42,这是给电传打字机电文加密的附件。布莱切利园把这个系统称为 Tunny。电传打字机把每个字符作为五个通断信号发送,洛伦兹则用十二个轮加上五位密钥。五个 Chi 轮分别有 41、31、29、26 和 23 个凸轮,每个字符都转动。五个 Psi 轮只有在两个电机轮允许时才转动。凸起的凸轮给出 1,落下的凸轮给出 0,密钥等于 Chi 加 Psi。
洛伦兹舞台显示十二个轮和全部 501 个凸轮。「一个字符」让它们前进一步。表格显示 Chi 位、Psi 位和它们组成的密钥位,以及 Psi 轮是否转动。模型上的凸轮图案是随机的,电机遵循简单的 SZ40 规则,没有后来的限制,所以请把它当作一张可运行的示意图,而不是某一台机器的复制品。
据 Crypto Museum 介绍,1941 年 8 月,一名操作员用同样的轮设置把一条长电文发了两遍,第二次打得略有不同。破译员从这一对电文中恢复出近 4000 个密钥字符,比尔·塔特在 1942 年 1 月前推出了这台机器的逻辑,而他从未见过实机。为了足够快地设定每条新电文的轮,汤米·弗劳尔斯造出了 Colossus,一台有 1700 多个电子管的电子机器,从纸带上读取密文。第一台于 1944 年 1 月到达布莱切利园。据国家计算机博物馆说,到战争结束时,十台 Colossus 和 550 人破译了 6300 万个字符。
五十台机器、人物与方法
实验室里的目录现在列出 50 条,每条都有出处,可以按类型搜索和筛选。机器条目会在 Enigma I 旁边打开一张对比卡。这张卡比较每台机器如何打乱字母、活动部件、触点或字母、服役年份,以及是否被破译。据美国国家安全局国家密码博物馆介绍,日本的 Purple 机用电话步进开关而不是转子,美国陆军的破译员在 1940 年没见过实机就把它重建了出来。M-209 是口袋大小的销轮机。德国人有时约四小时就能破译它的一条电文,对几小时内就失去价值的命令来说这是可以接受的,它在朝鲜战争中仍在使用。1952 年的 KL-7(用户包括韩国)和 1956 年的苏联 Fialka,用更多的转子和更复杂的步进,把转子的构想带进了冷战。
常见问题
恩尼格玛的字母会加密成它自己吗?
不会。反射器从不把一个触点连到它自己,所以回程总是终止在与你所按字母不同的字母上。这让猜测明文更容易对齐。
为什么同一台机器既能加密又能解密?
反射器让每种设置都成为 13 次互换。如果 A 变成 B,那么在该设置下 B 变成 A。用同样的起始设置打出密文,就得到明文。
什么是双步进?
中转子到达缺口时,转动左转子的棘爪也会推动中转子。中转子在连续两次按键中各转一步,就像 ADV、AEW、BFX 那样。
Enigma I 有多少种密钥?
五个转子、十条插线、每个转子 26 个起始位置,共 158,962,555,217,826,360,000 种设置,约 2^67。两个转子的环设置还会再乘上最多 676 的因子。
转子已经会打乱字母,为什么还要插线板?
转子在每台机器里都一样,可能被缴获或被推算出来。插线板每天更换,把设置数乘以大约 150 万亿。
转子位置多久重复一次?
对只有一个缺口的转子,是 26 × 25 × 26 = 16,900 次按键。25 来自双步进,它跳过了中转子的一个位置。
我能在这里解密一条真实的报文吗?
可以。在设置里选 1941 年的报文,或按「播放」。机器设为转子 II、IV、V,环 B U L,起始位置 BLA,灯会显示德语文字。
海军 M4 有什么变化?
薄反射器腾出位置,装下第四轮 Beta 或 Gamma,它靠手动设定,从不步进。把它设在 A 并配对应的薄反射器,它就像一台三转子机。
操作员为什么把报文密钥打两遍?
作为防止无线电错误的核对。1930 年代,陆军把三个字母的报文密钥连续加密两遍,所以每条电文的第 1 和第 4、第 2 和第 5、第 3 和第 6 个字母藏着同一个字母。雷耶夫斯基的攻击就建立在这个规律上。
Typex 或 SIGABA 被破译过吗?
没有已知的敌人破译过其中任何一种。美国国家安全局称 SIGABA 是战争中唯一从未被破译的机器系统,帝国战争博物馆则说德国人从未攻入 Typex。
把所有设置都试一遍要多久?
按每秒十亿种设置计算,十条插线的 Enigma I 有 1.07 × 10^23 种设置,需要约 340 万年。破译员从未试过全部。猜测明文和炸弹机把工作量缩减到 1,054,560 种转子顺序和位置,插线板则靠逻辑处理。
什么是炸弹机菜单?
猜测明文给出的字母对的图。每一对,即一个猜测明文字母和它下面的密文字母,由一条标着它在电文中位置的线连接。炸弹机按它接好线。带闭合环的菜单给出的虚假停机更少。
什么是虚假停机?
炸弹机在某个转鼓位置没有发现矛盾,但这个位置是错的。当某个字母需要两个插线搭档时,它就在检查机上被排除。在炸弹机舞台上,每次停机之后立刻进行检查。
一次炸弹机运行要多久?
国家计算机博物馆给出,在其复原机的齿轮传动下,没有停机地完整运行 17,576 个位置至少需要 10.4 分钟。1943 年初一次运行要 16 分钟,1943 年 3 月起的高速 Keen 机三轮运行一次只要一分半钟。
洛伦兹与 Enigma 有什么不同?
Enigma 用转子和反射器加密单个字母,由操作员记下灯的字母。洛伦兹把电传打字机字符作为五位来加密,加上十二个销轮的位,并在线路上自动工作。它是先用手工方法、后来用 Colossus 破译的,而不是用炸弹机。
术语
- 转子(Walze):有接线的圆盘,把一面的 26 个触点对应到另一面的 26 个触点。
- 环设置(Ringstellung):字母环与转子接线之间的偏移。
- 缺口:字环上的一道切口,让左边的下一个转子步进。
- 反射器(Umkehrwalze):固定的轮,把触点两两配对并让电流折回。
- 入口轮(Eintrittswalze):插线板与右转子之间的固定轮。
- 插线板(Steckerbrett):互换成对字母的插孔和插线。
- 报文密钥:一条电文开始时转子所在的三个字母。
- 猜测明文:猜出的一小段明文,比如例行用语,用来找出密钥。
- 炸弹机:布莱切利园用猜测明文检验转子位置的机电式机器。
- 薄反射器与第四轮(希腊轮):M4 的部件,在旧反射器的空间里加了一个不步进的轮,Beta 或 Gamma。
- 对角线板:韦尔奇曼给炸弹机加的部件,利用双向插线互换来排除虚假停机。
- 日密钥:密钥表上规定的设置,当天同一网络里每个操作员都用它。
参考资料
- Crypto Museum, Enigma I: battery, rotor orders, model history. https://www.cryptomuseum.com/crypto/enigma/i/index.htm (核对于 2026 年 10 月 15 日)
- Crypto Museum, Enigma wiring. https://www.cryptomuseum.com/crypto/enigma/wiring.htm (核对于 2026 年 10 月 15 日)
- Dirk Rijmenants, Cipher Machines and Cryptology, Enigma technical details. https://www.ciphermachinesandcryptology.com/en/enigmatech.htm (核对于 2026 年 10 月 15 日)
- Crypto Museum, Enigma History (Scherbius's patent application of 23 February 1918, the navy's machine of 1926, the army's plugboard of 1928, Rejewski in December 1932, the extra plug cables of January 1939, the Pyry meeting of July 1939). https://www.cryptomuseum.com/crypto/enigma/hist.htm (核对于 2026 年 10 月 17 日)
- Science Museum Group, Three-ring Enigma cypher machine in oak wood transit case, object 1980-1200 (closed 160 × 290 × 350 mm, 11.6 kg). https://collection.sciencemuseumgroup.org.uk/objects/co35752/three-ring-enigma-cypher-machine-in-oak-wood-transit-case (核对于 2026 年 10 月 17 日)
- Crypto Museum, Bombe (the first British Bombe, Victory, delivered to Bletchley Park on 18 March 1940; the second, with Welchman's diagonal board, installed on 8 August 1940). https://www.cryptomuseum.com/crypto/bombe/index.htm (核对于 2026 年 10 月 17 日)
- Cornell University, Math 135, Plugboard arrangements. https://pi.math.cornell.edu/~kozdron/Teaching/Cornell/135Summer06/Handouts/enigma.pdf (2026-10-23)
- Frode Weierud, CryptoCellar, Breaking German Army Ciphers. https://cryptocellar.org/bgac/ (核对于 2026 年 10 月 15 日)
- Bletchley Park Trust, Enigma. https://bletchleypark.org.uk/our-story/enigma/ (核对于 2026 年 10 月 15 日)
- 本页的计算:插线板数量 26! / ((26 − 2n)! × n! × 2^n);设置总数 60 × 26^3 × 插线板;周期长度 26 × 25 × 26。模型的密码已与已知结果对照:AAAAA → BDZGO,环 BBB → EWTYX,ADU 的双步进,以及完整的 1941 年报文。
- Crypto Museum, Typex: Typex Mark 22 used as an Enigma analogue at Bletchley Park. https://www.cryptomuseum.com/crypto/uk/typex/index.htm (核对于 2026 年 10 月 17 日)
- Imperial War Museums, TypeX Enciphering Machine, Mark 22 (the 1928 purchase of commercial Enigmas, five rotors, the CCM from November 1943, service into the 1960s). https://www.iwm.org.uk/collections/item/object/30005901 (核对于 2026 年 10 月 17 日)
- Science Museum Group, Typex Mk III cypher machine for field use, c. 1945, object 1980-1275. https://collection.sciencemuseumgroup.org.uk/objects/co35754/typex-mk-iii-cypher-machine-for-field-use-c-1945 (核对于 2026 年 10 月 17 日)
- National Security Agency, National Cryptologic Museum, SIGABA/ECM. https://www.nsa.gov/History/National-Cryptologic-Museum/Exhibits-Artifacts/Exhibit-View/Article/2719165/sigabaecm/ (核对于 2026 年 10 月 17 日)
- National Security Agency, NSA/CSS National Cryptologic Museum unveils new Polish Enigma exhibit (11 December 2007: Rejewski, Zygalski and Różycki, December 1932, the Bomba). https://www.nsa.gov/Press-Room/Press-Releases-Statements/Press-Release-View/Article/1632427/nsacss-national-cryptologic-museum-unveils-new-polish-enigma-exhibit (核对于 2026 年 10 月 17 日)
- Jennifer Wilcox, NSA Center for Cryptologic History, Solving the Enigma: History of the Cryptanalytic Bombe (Turing at OP-20-G, December 1942). https://www.nsa.gov/portals/75/documents/about/cryptologic-heritage/historical-figures-publications/publications/wwii/solving_enigma.pdf (核对于 2026 年 10 月 17 日)
- The National Museum of Computing, The Turing-Welchman Bombe (Victory in March 1940, Agnus Dei in August 1940, 211 bombes, 1,676 WRNS and 263 RAF personnel). https://www.tnmoc.org/bombe (核对于 2026 年 10 月 17 日)
- International Spy Museum, Four Rotor Enigma Machine (the 1942 fourth rotor, Shark, a machine built for Japan). https://www.spymuseum.org/exhibition-experiences/about-the-collection/collection-highlights/four-rotor-enigma-machine (核对于 2026 年 10 月 17 日)
- 本页的其他计算:转子 VI 至 VIII 和反射器 A、C、薄 B、薄 C 对照 Crypto Museum 接线表;M4 的 Beta 设在 A 加薄 B 等于反射器 B,Gamma 加薄 C 等于 C;80,000 个随机字母从不加密成自己且总能解回;插线板公式与 6 至 12 个字母上的暴力计数一致;M3 总数 336 × 2 × 26^3 × 26^2 × 插线板;猜测明文示例(AUFKLXABTEILUNG 在 82 个位置中留下 42 个)。
- The National Museum of Computing, Bombe History 1: Historical Background (after National Archives HW3/146: runs of 16 minutes in early 1943, Keen high-speed machines from March 1943, 211 machines, 36,002 jobs). https://www.tnmoc.org/bh-1-bombe-historical-background (核对于 2026 年 10 月 26 日)
- The National Museum of Computing, Bombe History 10: Bombe Description (three banks, 36 Enigmas of three drums, 17,576 positions, the diagonal board, reflector D). https://www.tnmoc.org/bh-10-bombe-description (核对于 2026 年 10 月 26 日)
- The National Museum of Computing, Bombe History 11: Bombe Speed (top drums at 97.5 revolutions a minute, 10.4 minutes a run). https://www.tnmoc.org/bh-11-bombe-speed (核对于 2026 年 10 月 26 日)
- The National Museum of Computing, Bombe History 16: Menus and Cribs (WETTER VORHERSAGE, stops, the checking machine, The Ultra Secret in 1974). https://www.tnmoc.org/bh-16-menus-and-cribs (核对于 2026 年 10 月 26 日)
- The National Museum of Computing, Colossus (Flowers's eleven months at Dollis Hill, ten Colossi, 550 people, 63 million characters). https://www.tnmoc.org/colossus (核对于 2026 年 10 月 26 日)
- Crypto Museum, Lorenz SZ-40/42 (Tunny, the August 1941 message, Tutte by January 1942). https://www.cryptomuseum.com/crypto/lorenz/sz40/index.htm (核对于 2026 年 10 月 26 日)
- Crypto Museum, Colossus (over 1,700 valves, delivered 18 January 1944, first message 5 February 1944, Mark II with 2,400 valves on 1 June 1944). https://www.cryptomuseum.com/crypto/colossus/index.htm (核对于 2026 年 10 月 26 日)
- Jack Copeland, Colossus: Breaking the German Tunny Code, The Rutherford Journal, University of Auckland (chi wheels of 41, 31, 29, 26 and 23 cams). https://museum.cs.auckland.ac.nz/rutherfordjournal/article030109.html (核对于 2026 年 10 月 26 日)
- National Security Agency, National Cryptologic Museum, The Magic of Purple (Purple from 1939, the sixes and twenties, Rosen's analogue, September 1940). https://www.nsa.gov/History/National-Cryptologic-Museum/Exhibits-Artifacts/Exhibit-View/Article/2718925/the-magic-of-purple (核对于 2026 年 10 月 26 日)
- Crypto Museum, M-209 (six pin wheels of 17 to 26 segments, about 140,000 made, breaks in about 4 hours, use in the Korean War). https://www.cryptomuseum.com/crypto/hagelin/m209/index.htm (核对于 2026 年 10 月 26 日)
- Crypto Museum, TSEC/KL-7 (1952, eight rotors of 36 contacts, users including South Korea). https://www.cryptomuseum.com/crypto/usa/kl7/index.htm (核对于 2026 年 10 月 26 日)
- Crypto Museum, M-125 Fialka (1956, ten rotors of 30 contacts). https://www.cryptomuseum.com/crypto/fialka/index.htm (核对于 2026 年 10 月 26 日)
- Crypto Museum, Enigma K, NEMA, Hagelin C-38, Kryha and M-94 (catalogue entries). https://www.cryptomuseum.com/crypto/enigma/k/index.htm (核对于 2026 年 10 月 26 日)
- 炸弹机部分的计算:炸弹机舞台的扰频器等于不接线的机器;猜测明文前 20 个位置中有 12 个留下;菜单有 15 个字母、16 对和 3 个环;对四种转子顺序完整运行给出一次停机,II-V-III 在 YIV,其插线对与密钥一致;菜单之外的三条插线是 BF、LP 和 XU;十二个洛伦兹轮有 501 个凸轮,起始位置数为 43 × 47 × 51 × 53 × 59 × 37 × 61 × 41 × 31 × 29 × 26 × 23;任务答案由密码计算得出。
解说文章与模拟采用 CC BY-NC-SA 4.0 许可,另有说明的除外。





