恩尼格玛密码机示例和教程

通过涵盖转子机制、双步进异常、插板配置和二战历史消息的逐步示例了解恩尼格玛密码机的工作原理。

逐步解析:加密字母「A」

使用默认配置(转子 I-II-III,反射板 UKW-B,位置 A-A-A,无插线板):

1
转子步进:信号进入前,右侧转子向前步进一个位置(A→B)。
2
插线板(输入):字母 A 通过插线板。未设置任何配对时,A 保持不变。
3
右侧转子(正向):信号从右侧进入转子 III,沿接点 A 的连线穿过置乱后的字母表。
4
中间转子(正向):信号继续通过转子 II,被进一步置乱。
5
左侧转子(正向):信号通过转子 I,即第三个也是最后一个转子。
6
反射板:反射板(UKW-B)通过不同路径将信号反向通过转子。关键在于没有字母映射到自身。
7
转子(反向):信号以相反顺序(I → II → III)反向通过所有三个转子,在每个阶段使用逆向连线。
8
插线板(输出):信号最后一次通过插线板。
9
输出:灯亮起,显示加密字母 B。字母 A 永远不能加密为自身。

输入:A → 输出:B

自行验证:使用默认设置,输入 AAAA 会产生 BDZG。

双重步进异常

恩尼格玛密码机最迷人的机械特性。当中间转子到达其缺口位置时,它会在下一次按键时再次步进——连续步进两次。这种「双重步进」是一种机械副产品,缩短了机器的理论周期。

常见问题

恩尼格玛密码机的转子步进如何工作?

右侧转子在每次按键前步进。当右侧转子到达其缺口位置时,中间转子步进。当中间转子到达其缺口位置时,左侧转子步进。这产生了双重步进异常,即中间转子可以在连续两次按键中都前进。

什么是双重步进异常?

当中间转子处于其缺口位置时发生双重步进。机械棘爪接合并导致中间转子在左侧转子前进时再次步进,使其在连续两次按键中移动而非一次。这略微缩短了密码的周期。

为什么恩尼格玛上的字母不能加密为自身?

反射板将所有 26 个字母两两配对,并将信号反向通过转子。由于反射板将每个字母连接到不同的字母,信号总是作为不同字母返回。Alan Turing 的 Bombe 机器利用了这一特性来排除不可能的配置。

恩尼格玛破译中的「已知词」是什么?

已知词是已知或猜测的明文片段。布莱切利庄园的密码破译者知道德国消息通常包含可预测的短语,如「WETTERBERICHT」(天气报告)或「KEINEBESONDERENEREIGNISSE」(无特别事项报告)。这些已知词被用于测试可能的恩尼格玛设置。

恩尼格玛密码机示例——逐步学习

通过涵盖转子机制、插接板配置和历史消息的全面分步示例,掌握恩尼格玛密码机。这些示例从基本概念逐步深入到真实的二战操作规程。所有示例均可使用我们的恩尼格玛密码机模拟器进行验证。

示例 1:无插接板的基础加密

这个基础示例演示恩尼格玛如何通过转子组件加密单个字母,不使用任何插接板连接。

配置

  • 转子:I、II、III(从左到右)
  • 位置:A、A、A
  • 环设置:1、1、1(默认)
  • 反射器:UKW-B
  • 插接板:无连接

加密"A"

第一步: 按任意键前,右侧转子(III)从 A 步进到 B。

第二步: "A"的信号经过以下路径:

  • 入口轮:A(位置 0)
  • 右侧转子(III 位于位置 B):通过转子 III 连线进行替换
  • 中间转子(II 位于位置 A):通过转子 II 连线进行替换
  • 左侧转子(I 位于位置 A):通过转子 I 连线进行替换
  • 反射器 UKW-B:配对字母并反射信号
  • 左侧转子(I)反向:逆向替换
  • 中间转子(II)反向:逆向替换
  • 右侧转子(III)反向:逆向替换
  • 输出灯亮起

关键点: 由于右侧转子在加密前步进,第一个字母以 AAB 位置(而非 AAA)加密。这对于重现历史结果非常重要。

示例 2:互反特性

恩尼格玛的反射器确保加密和解密是同一种操作。本示例演示这一关键特性。

配置

  • 转子:II、IV、V
  • 位置:B、L、A
  • 环设置:2、21、12
  • 反射器:UKW-B
  • 插接板:AV、BS、CG、DL、FU、HZ、IN、KM、OW、RX

演示

  1. 用上述设置加密"HELLO"。结果:一个 5 字母密文(在模拟器中试试)。
  2. 将转子位置重置回 B、L、A。
  3. 输入第 1 步的密文。输出结果为"HELLO"。

这一互反特性既是一个优点(操作员只需一套操作规程),也是一个漏洞(它限制了密码的数学结构)。

示例 3:双重步进实例

当中间转子处于其缺口位置时,会发生双重步进异常,导致它在连续两次按键中都步进。

配置

  • 转子:I、II、III
  • 反射器:UKW-B
  • 插接板:无

观察双重步进的设置

将位置设为 A、D、U(左、中、右)。转子 III 的缺口在 V,转子 II 的缺口在 E。

观察按键时的转子位置变化:

按键次数步进前位置步进后位置备注
第 1 次A, D, UA, D, V右侧转子正常步进
第 2 次A, D, VA, E, W右侧转子到达缺口(V),中间转子也步进
第 3 次A, E, WB, F, X中间转子到达缺口(E),双重步进!中间和左侧同时步进
第 4 次B, F, XB, F, Y恢复正常步进

第 3 次按键的双重步进是异常所在:中间转子在连续两次按键(第 2 次和第 3 次)中都步进。这缩短了机器的理论周期。

示例 4:历史背景——巴巴罗萨行动

在德国入侵苏联期间(巴巴罗萨行动,1941 年 6 月),恩尼格玛加密消息协调了大规模三路进攻。以下是一条典型军事消息的结构示例:

典型消息格式

德国军队恩尼格玛消息遵循严格格式:

  1. 消息密钥:操作员选择三个随机字母,用当天的设置加密后在消息开头发送
  2. 消息正文:实际内容,用消息密钥加密
  3. 标准短语:消息通常以可预测的短语开头,破译者将其作为"已知词"加以利用

布莱切利庄园使用的常见已知词

  • WETTERBERICHT("天气报告")— 定时发送的天气消息
  • KEINEBESONDERENEREIGNISSE("无特别事项报告")— 例行状态消息
  • ANXX("致"后接收件人)— 消息地址格式
  • OBERKOMMANDODERWEHRMACHT — 最高统帅部署名

这些可预测的模式对于炸弹机器缩小每日设置的可能范围至关重要。

示例 5:预设配置

模拟器包含几种预设配置,演示不同的操作场景:

默认国防军配置

常用转子选择和插接板对的标准军用起始点。这代表了密码本中分发的典型每日设置。

潜艇配置

德国海军(Kriegsmarine)使用了更复杂的变体,配备额外转子。海军恩尼格玛尤为重要,因为破解它帮助盟军赢得了大西洋海战。

非洲军团配置

隆美尔部队在北非使用的野战配置。沙漠作战需要跨越广阔距离进行可靠通信。

在模拟器中尝试每种预设,观察不同配置如何从相同明文产生完全不同的密文。