恩尼格玛转轮机
发布 2026 年 9 月 17 日 · · 11 分钟阅读
恩尼格玛是那种纸面上无懈可击、实战中却输掉一场战争的密码。它的密钥空间达到 10 的 23 次方量级,而它被破不是因为暴力穷举,而是因为有人注意到:这台机器永远不会把某个字母加密成它自己——仅此一个事实,就瞬间排除了几乎所有错误密钥。
- 时代
- 近现代
- 类型
- 多表
- 密钥空间
- 158,962,555,217,826,360,000
- 难度
- 专精
I现象
每次按键都把电流送过三个转子、一个反射器,再送回原来的三个转子。最右边的转子在每加密一个字母之前先前进一格。这就是同一条消息中每个位置替换都不同的原因。
本条目旁的实验台复刻了这套机械结构:转子 I、II、III,反射器 B,环设定在 A,无接线板。输入一个字母看它输出另一个字母;同一个字母输两次会得到两个不同输出,因为转子在两次之间已经转动。
| 部件 | 选择 | 对密钥空间的贡献 |
|---|---|---|
| 转子顺序 | 从 5 个中取 3 个排列 | 60 |
| 环设定 | 26^3 | 17576 |
| 起始位置 | 26^3 | 17576 |
| 接线板 | 26 个字母上插 10 根线 | 150738274937250 |
有两个性质比这些算术更重要。第一,恩尼格玛是自逆的:同一组设置既能加密也能解密,因此不需要单独的脱密模式——而这种对称性恰恰是它可破的原因。第二,反射器保证任何字母都不会映射到自身,对有猜测短语的攻击者而言,这极大地压缩了有效密钥空间。
II密钥空间
每日密钥通过密码本分发,分三部分:当日的转子顺序与环设定、每条消息的起始位置,以及每隔几个月更换一次的接线板接线。
把上表相乘得到约 1.59 × 10^23。按 1930 年代任何标准,这都超出机械搜索能力,德方也正是这样推理的:转子顺序与接线板是按他们认为无法猜到的排程更换的。
破解并非来自压缩这个空间,而是来自找到一个性质——这个性质能在攻击者的猜测错误时立刻告诉他。
那个性质就是“没有字母会加密成自身”。在已知位置猜出一段明文——以 WETTERVORHERSAGE(天气预报)开头的报文、标准问候语——你就可以检查是否会出现某个字母必须加密成自身的情况。几乎所有错误的位置都会立刻通不过这项检验,而这正是艾伦·图灵的 Bombe 所自动化的检验。
III加密步骤
- 按每日密钥规定的顺序安放转子——本实验台使用从左到右 I、II、III。
- 按密钥表设定环设定与转子起始位置。
- 按密钥表插好接线板连线;本实验台留空接线板,以便机械过程可见。
- 对每个明文字母:右转子先步进。若右转子正处于其缺口字母,中转子随之步进;若中转子也处于缺口,左转子同样步进。
- 把字母依次送过右、中、左三个转子。
- 把结果送过反射器。
- 再依次送回左、中、右三个转子。
- 亮起的灯泡字母就是密文。记录下来,处理下一个明文字母。
IV解密步骤
- 完全按发报方的每日密钥表设置机器。
- 按报头附带的消息密钥设定转子起始位置。
- 逐个输入密文字母。转子的步进方式与加密时完全相同。
- 从灯泡读出明文。由于恩尼格玛自逆,不存在单独的脱密模式。
- 在实践中,困难从来不在这一步——而在于恢复每日密钥。转子顺序与环设定靠基于已知明文的 Bombe 搜索得出,接线板事后再手工剥离。
- 用固定密钥完整复现一遍以检验你的理解:把一条消息加密,再用同一组设置把结果加密,你会回到起点。
V弱点
没有字母加密成自身。 攻击者最想要的性质,而且它是结构性的,不是偶然的。
反射器使它自逆,也正因此“猜测明文”才能奏效。 由于加密与解密是同一操作,猜出的明文可以直接当作密文喂进机器,再把结果与截获的报文比对。
真正的漏洞是操作流程。 已知明文来自可预测的报文内容——天气预报、标准开头、报务员习惯在同一时刻发送同一段测试报文。恩尼格玛不是单靠数学被击败的,而是靠数学加对人日常习惯的观察。
反射器与接线板各有自己的特征。 反射器接线经波兰的“循环仪”和后来的英国“班伯里法”被复原;一旦转子设定已知,接线板就可以被逐层剥掉。
单个转子的缺陷会层层放大。 转子步进使得某些起始位置出现的概率远高于其他,波兰人利用早期流程中重复的密钥设定,把问题压缩成可处理的搜索量。
VI实战挑战
密文
PINOV NX
提示: 转子 I II III,环设定与起始位置全在 A,无接线板。注意右转子在第一个字母之前就已经步进。
展开答案
明文
LOOMKEY
·史料
阿图尔·舍尔比乌斯 1918 年为转轮机密申请专利,并在德军采用之前就已商业推销。最先破开它的是波兰密码局:马里安·雷耶夫斯基与耶日·鲁日茨基、亨里克·齐加尔斯基合作,于 1932 年用数学方法重建了机器内部接线,并造出“循环仪”加以利用。1939 年 7 月,波兰把方法与重建的机器交给了英国和法国。在布莱切利园,艾伦·图灵与戈登·韦尔奇曼设计了 Bombe,到 1943 年第八号小屋已能在数小时内读取德国海军通信。历史学界普遍认为,由此获得的情报(代号 Ultra)使欧洲战事缩短了约两年。
·继续读
恩尼格玛的教训不是“大数字没用”。它的教训是:密码的真实强度取决于攻击者所需的最小信息量,而一个确定的、可被发现的性质,可能比 23 个数量级的密钥空间更值钱。
Bombe 不是通用计算机,也无意成为通用计算机。它是一台极快地检验某一个性质的特种机器。同一种哲学催生了布莱切利园用于对抗洛伦兹密码的 Colossus,同一种哲学也运行着今天的专用密码分析设备。
下一台织机:双分密码(Bifid)——用一支铅笔和一张方格表,拿到转轮机的一部分扩散性质。