恩尼格玛:1.59×10²⁰ 个密钥和一个缺陷
一台三转子的恩尼格玛,陈列于美国国家安全局的国家密码学博物馆。上部是转子,中间是灯板,下面是键盘,最前面是接线板。National Security Agency · Wikimedia Commons · 公有领域 恩尼格玛看上去像一台装在木箱里的打字机。操作员在键盘上按下一个字母,灯板上就亮起另一个字母。第二个操作员记下亮起的字母,这串字母再用摩尔斯电码通过无线电发出去。在另一端,一名操作员用一台同样设置的同型机器,敲入密文,就能在灯板上读出原文。
在键与灯之间,电流穿过一座迷宫:接线板、三个内部交叉布线的转子、一个把电流送回去的反射器,再经过三个转子,再经过接线板。而且每按一次键,第一个转子就转一格,整座迷宫随之改变。
数一数密钥 德国人信任恩尼格玛,是因为可能的设置数量庞大。我们用帕斯卡教给我们的组合数学,为 1939 年的陆军型号数一数。
转子。 从一盒 5 个转子中选出 3 个,顺序有关:
$$5\cdot4\cdot3=60.$$初始位置。 每个转子从 26 个字母中的某一个开始:
$$26^3=17\,576.$$接线板。 十根连线把字母两两相连,互相交换。用 26 个字母组成 10 对,有多少种方法?把 26 个字母排成一排,有 $26!$ 种排法,用前 20 个字母两两配对。最后 6 个不接线,它们的顺序无关紧要:除以 $6!$。10 对之间的顺序无关紧要:除以 $10!$。每对内部的顺序无关紧要:除以 $2^{10}$。结果是
$$\frac{26!}{6!\cdot10!\cdot2^{10}}=150\,738\,274\,937\,250.$$总数。 相乘:
$$60\cdot17\,576\cdot150\,738\,274\,937\,250\approx1.59\times10^{20}.$$大约 1.59×10²⁰ 个密钥,还没算转子的字母环。每秒试一百万个密钥,也要大约五百万年才能全部试完。
缺陷 反射器有一个实际的好处:同一种设置下,机器既能加密也能解密。但它也带来了一个先天缺陷:由于电流总是从不同的路径返回,没有一个字母能被加密成它自己。A 永远不会变成 A。
这看起来微不足道,却是决定性的。密码分析员知道,许多电报含有可以预料的词,他们称之为 crib,“提示词”:早上 6 点的天气预报以 WETTERVORHERSAGE 开头,许多报告写着 KEINE BESONDEREN EREIGNISSE,“无事可报”。要找出提示词在密文中的位置,只需把它沿着密文滑动,凡是某个字母与它下方密文字母相同的位置,统统排除。
Q F Z W R W I K T Y R E S X B F O G K U H Q W E T T E R V O R H E R S A G E ← S 对 S:不可能 W E T T E R V O R H E R S A G E ← 没有重合:可能 在第一个位置,提示词中的 S 会落在密文的 S 上,而恩尼格玛从不这样做:这个位置被排除。往后四格,没有字母重合,这个位置仍是候选。