跳到正文
Cipherloom密码织机

CIPHER/POLYALPHABETIC/ENIGMA ROTOR MACHINE

恩尼格玛转轮机

发布 2026 年 9 月 17 日 · · 11 分钟阅读

恩尼格玛是那种纸面上无懈可击、实战中却输掉一场战争的密码。它的密钥空间达到 10 的 23 次方量级,而它被破不是因为暴力穷举,而是因为有人注意到:这台机器永远不会把某个字母加密成它自己——仅此一个事实,就瞬间排除了几乎所有错误密钥。

时代
近现代
类型
多表
密钥空间
158,962,555,217,826,360,000
难度
专精
密文栅格图版:恩尼格玛转轮机
图版 enigma-rotor · 多表

I现象

每次按键都把电流送过三个转子、一个反射器,再送回原来的三个转子。最右边的转子在每加密一个字母之前先前进一格。这就是同一条消息中每个位置替换都不同的原因。

本条目旁的实验台复刻了这套机械结构:转子 I、II、III,反射器 B,环设定在 A,无接线板。输入一个字母看它输出另一个字母;同一个字母输两次会得到两个不同输出,因为转子在两次之间已经转动。

部件选择对密钥空间的贡献
转子顺序从 5 个中取 3 个排列60
环设定26^317576
起始位置26^317576
接线板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)——用一支铅笔和一张方格表,拿到转轮机的一部分扩散性质。

+相关织线