恩尼格玛转轮机 — 实验台工具
发布 2026 年 9 月 17 日 ·
恩尼格玛是那种纸面上无懈可击、实战中却输掉一场战争的密码。它的密钥空间达到 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弱点提示
历史密码用于教学与娱乐,不适合保护真实信息。完整分析见对应条目。