密码学科普小说 · 第 4 章

转轮转晕了欧洲:恩尼格玛与图灵

某天清晨,Alice 和 Bob 在磨坊后面的老井边打水,水面忽然泛起一圈奇怪的蓝光。两人对视一眼,还没来得及说话,熟悉的电线烧焦味又冲进鼻子——

再睁眼,是一间英国乡下庄园的木板房,门口牌子上写着 Hut 8。墙上的日历:1940 年。桌上堆满了写着乱码的纸条,空气里是烟斗和冷茶的味道。

一个瘦瘦的、头发乱糟糟的年轻人正趴在一张图纸上,抬头看了他们一眼,好像对两个突然出现的陌生人毫不意外:“你们是新来的数学系实习生?正好,来帮我数数。”

Bob 后来才敢确定:那是艾伦·图灵。

恩尼格玛:每按一个键,转轮转一格 QEV同一个字母 A,连按五次可能得到 P、X、M、B、Q:频率分析失灵了 致命弱点:一个字母永远不会被加密成它自己 + 操作员的偷懒习惯
恩尼格玛机:键盘、转轮、灯板。按下 A,灯板亮起另一个字母,同时转轮转动一格。

图灵给他们讲德军的恩尼格玛机:外观像台打字机,里面装着三个(后来是四个)可以转动的转轮,每个转轮内部都是一套乱序的字母连线。按一个键,电流穿过三个转轮、碰到反射器再折回来,灯板上亮起一个字母;与此同时,最右边的转轮转一格,转满一圈再带动中间的转轮……

Alice:“所以它其实是‘每个字母换一张乱序字母表’?”

图灵:“正是。同样一个 A,第一次可能变成 P,第二次变成 X,第三次变成 M。你那位书吏朋友的频率分析,在这里就失灵了。再加上前面的插线板,每天的初始设置组合,数量级大约是 10 的 20 次方。”

Bob 吸了一口凉气:“这比单表替换难太多了。那您是怎么破的?”

图灵笑了,掰着手指头给他们讲了三个“漏洞”:

第一个,是机器设计上的小缺陷:因为有反射器,任何字母都永远不会被加密成它自己。听着不起眼,却能帮破译员排除掉一大堆可能性。

第二个,是“可能的明文”(英国人管它叫 crib):德军气象站每天早上发的天气报告,开头几乎都有“WETTER”(天气)这个词;很多电报结尾都有固定的口号。知道一段明文大概长什么样,就能反过来对着密文去试机器设置。

第三个,也是最致命的:人。有的操作员懒,每天的报文钥匙都设成“AAA”或者自己女朋友名字的缩写;有的电报因为发错,原样重发了一遍,等于把同一段明文用两种设置各加密了一次。

📌 课堂小结:最弱的一环往往是人

恩尼格玛的数学结构在当时非常强,但它被破译,很大程度上是因为设计上的一个小缺陷(字母不会映射到自己)、可预测的明文和操作员的坏习惯。
今天也一样:大多数“币被盗”不是因为椭圆曲线被攻破,而是因为助记词拍照存在手机相册、私钥发进了聊天群、密码设成了生日。

他们跟着图灵去看了“炸弹机”(Bombe)——一台衣柜大小、哒哒作响的机电装置,里面并排转着几十组模拟恩尼格玛的转轮,按照 crib 推出的约束条件,飞快地排除不可能的设置。

Alice:“所以它不是在‘猜密码’,是在‘排除不可能’?”

图灵:“说得好。破译常常就是这样:先用逻辑把几亿种可能砍到几十种,再用人工一个个验证。”

那天夜里,图灵站在庄园的草坪上抽烟,说了一句让 Bob 记了很多年的话:“我总在想,能不能有一种通用的机器,你给它不同的指令,它就去做不同的事——今天破密码,明天算弹道,后天下棋。”

Bob 心里一震。他知道,图灵早在 1936 年就在论文里写下了这种机器的数学模型,后人叫它“图灵机”。而把这个想法真正装进铁皮和电线里的,是另一个人。

井水的蓝光又一次亮起。

📌 思考题

1. 为什么“字母永远不会加密成自己”这一个小特性,就能帮助破译?(提示:拿一段已知明文去和密文对齐。)
2. 列举你身边三个“人是最弱一环”的例子。