‹ 返回工坊合集
九章格数学 PhiloMath · 数学游戏工坊

Enigma 转子实验室ROTOR · STECKER · BOMBE

一台可以真的转起来的 Enigma I:三个转子、一个反射器、十对插线,一手一按键地看见电流如何走完全程。 再把图灵与布莱奇利园的那把钥匙拆开——从一句猜出来的德文,到十七万五千个可能,再到一个唯一解。

① 机器 ② 图灵实验室 ③ 历史长廊 ④ 挑战关卡 ⑤ 机的细节

转子实验室 军械局 Enigma I · 1930 年代制式

按下键盘上的一个字母,电流先过插线板(把字母两两对调),再从右到左穿过三个转子, 在反射器处折返,原路从三个转子身上再过一遍,最后经过插线板点亮一盏灯。整个过程没有一处是随机的—— 它是一台纯粹的机械置换机,所以它可逆,所以它也必然可以被算出来。右边那条链子会随每一次按键逐格亮起,把一个字母的旅程完整走给你看。

A机器面板 转子放在哪、环设在哪、起始在哪

尚未按键
插线板 Steckerbrett点两个字母接成一对(再点已接字母可拆) 0 / 10
无接线

B电流的旅程 每一步都写着此时此处的字母

键入 → 插线板 → 转子三→二→一 → 反射器 → 一→二→三 → 插线板 → 灯(可横向滑动)
明文
等待输入…
密文
按下键盘上任意字母开始
以 A A A · 转子 I-II-III · 环 A A A 输入 AAAAA,历史标准答案是 BDZGO。

提示:键盘可以直接用电脑键盘打字(只认 A–Z)。密文与明文共用同一台机器——同一组设置下,把密文再敲一遍就还原成明文,这是反射器带来的对称性。

图灵实验室 把「不可能」变成「唯一」

1940 年 3 月 14 日,布莱奇利园六号小屋的第一台 Bombe 转了起来,代号 Victory。它不是更快的 Enigma, 而是一台反驳机器:它不猜答案,它负责成千上万次地证明「这个假设不可能」——剩下的那一个,就是答案。 下面这段密文是凭空造的,但攻击方法与 1940 年一模一样。

①截获 密文二十六字母 · 密钥表一张

转子顺序(左—中—右)III · I · IV
环设置 RingstellungQ · C · W
反射器UKW-B
插线板本段为空(教学简化)
起始位置 Grundstellung? 未知,26³ = 17,576 种

②猜测明文 crib 猜错也无妨——Bombe 会告诉你错了

德国气象站每天清晨向 KAIA(Kaya)发同一句开场白:WETTERVORHERSAGE——「天气预报」。这十六个字母,就是波兰人与英国人手里最锋利的一把刀。

③菜单 menu crib 与密文的字母对,画出来就是一张图

每一条边都是一个约束:「这个明文字母,在这个位置上,被机器变成了那个密文字母」。Bombe 的转鼓正是把这张图上的约束 串成回路去检验——回路越多,谎言死得越快。菜单里没有回路,Bombe 就无从下手(这也是当年选 crib 的经验:要挑字母重复多的句子)。

④二十六次假设 Bombe 的一个转鼓、一瞬间做的事

真实的密文还有十对插线板接线,我们并不知道。Bombe 的绝招是先把插线板假设掉: 随便挑菜单里的一个字母,假定它接到了 A、B、C……共 26 种,然后沿着菜单一条边一条边地推—— 每推一步,机器的置换就规定了下一条边上的接线必须是什么。推着推着,总有一处前后矛盾。矛盾,就淘汰。 下面是起点 XKM(正确答案)上的完整账目:二十六种假设,二十五种当场阵亡,只活下来一种。

假设 W 接到结果在哪条边上崩掉

幸存的那一种(W 接到 W)说明:W 在插线板上是空的,于是整条回路的接线被唯一确定下来。真实 Bombe 用 36 个转鼓 并排模拟 36 台 Enigma,一次把 26 种假设、多个起点同时试完——所以它每分钟做的,正是上面这张表的上万倍。

Banburismus 先缩小范围

海军 Enigma 有八个转子,选哪三个也未知。图灵用顺序统计做概率判决:把两段密文的字母频次叠在一张 Banbury 长纸上, 对齐打孔,用「同字母重合数」的对数优势(权重以 ban 计)判断两段是否同一密钥。它不破译,它只负责把 336 种转子组合砍到几种。

Bombe 再清算位置

Welchman 把图灵的「逻辑矛盾机」变成可制造的机电装置:转鼓模拟 Enigma 的串接,电流在回路里走,一遇矛盾即断开、 该假设作废、转鼓前进一步。它检验的是「不可能」,而不是「可能」——这是它比穷举快千万倍的原因。

Turingery 另一条战线

1942 年图灵转向更凶的 Lorenz(Tunny):不是 Enigma,是 12 个轮的在线加密打字机。他发明的统计破译法 (后称 Turingery)直接反推轮位;由此才有 1943 年的 Colossus——世界上第一台电子计算机,专破 Lorenz。

历史长廊 从一张专利到一台计算机

Enigma 的故事有三个主角:一个以为自己在卖保险的德国工程师,一个 27 岁的波兰数学家,和一个在乡间庄园里 被同事称作「教授」的英国人。三段时间,刚好接得上。

1918
2 月 23 日,柏林的专利

Arthur Scherbius 为「可旋转滚筒的密码机」申请专利。他原本想卖给商业客户保护电报,生意清淡;1923 年柏林国际邮政博览会上的展品, 后来成了德国军方的制式装备。到二战,德军各军种共用了十余年、数十万台改进型。

1926
军方接手

德国海军先采用,两年后陆军跟进。军用型加了插线板,把三个转子的机器硬生生撑出十万亿量级的额外密钥—— 这一步让所有靠「猜接线」的旧办法失效。

1932
波兰人先破门

12 月,波兹南数学系出身、在密码局工作的 Marian Rejewski(25 岁)用置换群理论解出了转子内部接线: 他不猜字母,他比较「置换的轮换结构」——这是纯代数,不是运气。他的两位同事 Różycki 与 Zygalski 随后补全了缺口与环设置的算法。

1938
bomba:波兰的机器

德军加强密钥流程,人力算不过来了。Rejewski 设计了一台由六个 Enigma 转子并联的机器,反复旋转直至找到一致解—— 波兰人管它叫 bomba(大约取「冰淇淋炸弹」的甜点名)。这个名字,后来被英国人借用。

1939
7 月 25 日,Pyry 森林

距战争爆发只剩五周,波兰密码局在华沙郊外的小楼里,把全部成果摊在英法代表面前:一台重建的 Enigma、完整的破译方法、穿孔目录。 英国代表 Dilly Knox 后来说,他们原本预计要再花一年才能走到这一步。9 月 1 日,德军入侵波兰。

1940
3 月 14 日,Victory

图灵与 Welchman 设计的首台 Bombe 在布莱奇利园六号小屋运转成功,代号 Victory。它一天能清算的假设, 超过此前所有人力之和。Alan Turing 时年 27 岁,两年前刚在普林斯顿拿到博士学位,论文题目是可计算数与判定问题。

1941
5 月 9 日,U-110

英国驱逐舰逼降德国潜艇 U-110,抢在沉没前取出 Enigma M3 与整套密钥表。八号小屋(海军)从此有了稳定供给, 大西洋护航线的转向开始跟着德军的狼群走。同年图灵向美方移交 Bombe 技术,美国随后造了一百多台。

1942
十个月的黑暗

2 月 1 日,德国海军换用四转子的 Triton(英方代号 Shark)。八号小屋整整十个月读不出潜艇电报, 大西洋战局随之恶化。12 月密码再度被破,转折点来自一次缴获与一次气象报的重复利用。

1943
Colossus:为另一台机器而生

图灵 1942 年转向 Lorenz(德军最高统帅部用的 12 轮打字机密码,英方代号 Tunny)。他给出的统计破译法, 催生了 1943 年 12 月的 Colossus——世界第一台可编程电子计算机。它不破 Enigma: 它破的是比 Enigma 更高级的另一种密码。

1944
6 月 6 日,诺曼底

Ultra 情报让盟军对德军在法国的部署、预备队位置与反应速度有近乎实时的掌握。战后评估普遍认为, 这类情报使战争缩短了大约两年——这个数字是估计,不是账目。

1945
胜利与沉默

欧洲战事结束时,布莱奇利园已有近九千人(多数是女性),英美两国的 Bombe 合计近四百台。 随后所有设备被拆散、文件被封存,参与者签下终身保密承诺——许多人连配偶都不知道自己战时做了什么。

1952
图灵的最后几年

因同性恋被英国法院定罪,被迫接受化学阉割,安全许可被撤销。1954 年 6 月 7 日,他死于氰化物中毒,41 岁。 他的工作在此时仍是机密,讣告里没有一句话提到 Enigma。

1974
Ultra 公开

前皇家空军军官 Frederick Winterbotham 出版《The Ultra Secret》,Ultra 第一次进入公众视野。 波兰人的贡献、图灵的具体角色,还要再等几十年才被完整承认。

2013
迟到六十年的承认

英国女王颁布皇家赦免;同年 GCHQ 解密一批战时文件,明确写下图灵对 Bombe 设计的决定性贡献。 2021 年,他的头像出现在 50 英镑纸币上——旁边是那句被反复引用的话的另一种表达:这只是一个开始。

机的细节 六个决定命运的零件

① 转子与缺口

每个转子是一圈 26 根线的置换。转子边缘有个缺口(notch):右转子转到缺口,中转子被推一格;中转子转到缺口,左转子被推一格。 缺口的字母位置固定(I 型是 Q),所以转子的进位周期是 26 而不是 26²——这是可被利用的规律性。

② 环设置

Ringstellung 把缺口与接线相对外壳转过若干格:它不改变接线,只改变「何时进位」。 所以环设置与起始位置在数学上高度纠缠,历史密钥表里两者常一起给出。

③ 双步进

中转子自己正卡在缺口上时,它的爪子既推动左转子,也把自己再推一格——于是出现连续两个字母中轮都在动。 这不是设计者的意图,是棘轮结构的副作用。它缩小了实际可能的转子状态,是破译者手里的一个额外约束。

④ 反射器

反射器把出口的 26 根线两两短接,让电流原路返回。好处:加密解密同一台机器。代价:任何字母都不可能加密成它自己。 这一条「绝不自映射」的禁忌,后来成了 crib 检验的第一道筛子,也是 Bombe 全部逻辑的落脚点。

⑤ 插线板

十对字母两两对调,把密钥空间乘上 150,738,274,937,250。但它是静态的:与转子位置无关。 图灵抓住了这一点——插线板可以在回路里被「假设掉」,而转子位置必须实打实地试。

⑥ 操作流程

每天一张密钥表定转子顺序、环设置与插线板;每份电报再随机选三个字母作报文密钥,加密后前置发送。 报务员的偷懒(用 AAA、用女友缩写、重复使用同一密钥)与固定的报文格式,是被破译的另一半原因——机器没有输给人,人输给了自己。

真值表 Enigma I 五个转子的接线与缺口 · 反射器 B/C

接线读法:转子在环设置 A、窗口 A 时,右端触点 A 接到左端 E,B 接到 K,依此类推。 这张表 1932 年被 Rejewski 用纯数学复原出来时,波兰人手里只有截获的密文与一份偷拍的说明书。

挑战关卡 六盏灯,全亮算毕业

前三关请你亲自当一次报务员与破译者,第四关交给 Bombe,第五关考的是眼力,第六关是史识。 每关都有解释,答错不扣分——但解释值得读。

已通过 0 / 6
第 1 关

先按五次 A

○

机器现在停在出厂设置:转子 I-II-III、环 A A A、起始 A A A、反射器 B、插线板空。请在机器上连按五个 A, 然后看密文栏出现了什么。(历史文献里这条测试向量被反复引用,它是检验任何一台 Enigma 模拟器是否算对的第一道门。)

第 2 关

双步进的陷阱

○

把机器设成:转子 I-II-III、环 A A A、起始位置 A E A(左 A、中 E、右 A),按一次键。三个窗口会显示什么?

第 3 关

读一份密电

○

缴获的密钥卡:转子 II · IV · I,环 B · L · Q,起始 H · U · N,反射器 B,插线板 AT BL CX DQ。 密文如下,请把它解出来(把密文敲进机器,灯上亮出的就是明文)。

CWMU WBJP KBUD NWDZ SPWQ
装载后把上面 20 个字母敲进机器,密文栏对应的就是明文。
第 4 关

让 Bombe 说话

○

回到第 ② 节,对那段二十六字母的密文跑一次 Bombe。它清算完 17,576 个起点后,报出的起始位置是哪三个字母?

第 5 关

哪一次猜测不可能

○

下面三段密文各配了一次 crib 放置。破译员上机前要先做一道小学问的检查:Enigma 绝不会把字母加密成它自己, 所以只要有任何一个位置「猜的明文」与「密文」同字母,这次放置直接作废。请问哪一行不可能是真的?

第 6 关

史识三连

○

三件不能记错的事。

这台机器在数学上只有一句话:它是一个已知的置换,而密钥只是这个置换的一个参数。 Enigma 的悲剧不在于它的转子不够多,而在于它的参数空间可以被「检验」——一旦你能高效地判定某个参数不可能,剩下的空间就会塌缩。 图灵做的不是魔法,是把「猜」换成了「否证」。

本实验室为教学用简化实现:转子接线、缺口位置、反射器与双步进均依 Enigma I 制式;为便于观察,界面保留完整的 26 路信号路径, 密文长度不受当时 250 字符限制。历史叙述中的数字(战争缩短年数、破译规模)为史学界通行估计,非精确账目。