CyberChef Enigma(恩尼格玛密码机)

分类:加密 / 编码(Encryption/Encoding) 操作:Enigma
Enigma 二战 密码机 密码学 历史

什么是 Enigma 密码机?

Enigma 是二战期间纳粹德国广泛使用的机电式 cipher 设备,用于加密军事通信。德方曾认为其不可破译,但波兰、法国与英国(含布莱切利园 Bletchley Park)的密码分析人员最终持续破译该体制,对盟军胜利贡献巨大。

Enigma 通过一组旋转机械轮(rotors)连接键盘与灯盘;按键后电流经转子网络,在灯盘上点亮另一字母,形成代换密文。每按一键转子步进,构成当时极为复杂的 polyalphabetic cipher。

历史影响:据估计破译 Enigma 使二战缩短约 2–4 年并挽救大量生命。布莱切利园的工作(含 Alan Turing 等数学家)为现代计算机科学与密码分析奠定基础。

Enigma 如何工作

理解下列组件有助于正确使用 CyberChef 的 Enigma 操作:

Rotors(Walzen,转子)
三至五片旋转圆盘,内部接线对每个字母做代换;每片 26 位,通常每输入一字步进。
Reflector(Umkehrwalze,反射板)
固定转子,将电信号折返再次穿过转子网络,使加解密在同一套机器设置下对称进行。
Plugboard(Steckerbrett,接线板)
前面板可将若干字母对在进出转子前互换,极大扩展密钥空间。
Ring settings(环设置)
转子外环可调,使内部接线相对字母环偏移,再增一层复杂度。
关键性质:Enigma 为互易(reciprocal)结构:若同一设置下按 A 得密文对应 X,则按 X 得 A。加解密共用设置,但也带来著名弱点:任意字母不能加密成自身

Enigma 型号

德军不同军种曾使用多种 Enigma 变体:

型号 使用方 主要特征
Enigma I 德国陆军与空军 5 取 3 转子;plugboard 10 对
Enigma M3 德国海军(Kriegsmarine) 8 取 3 转子;反射板选项更多
Enigma M4 U 艇 4 转子;1942 年引入,强度更高
Commercial Enigma 民用商业 无 plugboard,结构较简

设置与配置

加解密前须配置多项参数,通常由密码本下发并每日更换

当日密钥(Daily key)

  1. Rotor order:选用哪些转子及左右顺序(如 II-V-III)
  2. Ring settings:各转子环偏移(如 01-15-23)
  3. Plugboard pairs:接线板交换的字母对(如 AB CD EF…)
  4. Initial positions:各转子起始窗格字母(如 AAZ)
示例当日设置:
Rotor Order: III-I-IV Ring Settings: 16-09-24 Plugboard: AV BS CG DL FU HZ IN KM OW RX Initial Position: WXC

在 CyberChef 中使用 Enigma

CyberChef 的 Enigma 操作模拟历史密码机,可在一致设置下加密或解密;支持多种型号与配置。

基本步骤

  1. 打开 CyberChef,搜索并添加 Enigma
  2. 选择型号(M3、M4 等)
  3. 配置 rotor order(如 I-II-III)
  4. 设置各转子 ring settings
  5. 若有,配置 plugboard
  6. 设置初始转子位置(initial positions)
  7. 输入报文(通常去空格、大写)
  8. 查看密文或明文输出
注意:加密与解密使用完全相同的机器设置;收发两端须逐字一致,任一参数错误即得到乱码。

示例:加密一条消息

Enigma 加密示例

转子与反射板(示意)

Rotor 1
II
Rotor 2
IV
Rotor 3
V
Reflector
B
完整配置:
  • Rotor order:II-IV-V
  • Ring settings:01-01-01
  • Initial position:AAA
  • Plugboard:无(简化)
  • Reflector:B
加密过程:
Plaintext: ATTACK AT DAWN Normalized: ATTACKATDAWN Ciphertext: IGQACFBXHLGF

每按一键转子步进,故同一明文字母在不同位置会得到不同密文;例如 "ATTACK" 中两个 A 分别对应 I 与 C。

历史年表

1918

Arthur Scherbius 在德国发明 Enigma,最初面向商用。

1926

德国海军将 Enigma 用于军事通信。

1932

波兰密码局(Marian Rejewski 等)首次系统性破译 Enigma。

1939

二战爆发前,波兰向英法移交方法与资料。

1940

Alan Turing 等在布莱切利园发展 Bombe,自动化搜索 Enigma 设置。

1941

HMS Bulldog 俘获 U-110,缴获完整 Enigma 与密码本。

1942

德军 U 艇启用四转子 Enigma M4,盟军破译一度受阻。

1943-1945

盟军持续破译大部分 Enigma 流量,为诺曼底登陆等行动提供情报支撑。

Enigma 为何终被破译

尽管数学结构复杂,以下因素共同导致其可破性:

设计层弱点

操作层失误

数学与工程突破

在 CyberChef 中的典型用途

1. 历史复现

用史料记载的 Enigma 设置复现二战电文,理解实际运用方式。

2. 教学演示

展示机械密码复杂度及破译 Enigma 的历史意义。

3. CTF / 密码挑战

许多 capture-the-flag 题目基于 Enigma,需在部分或完整设置下解密。

4. 安全分析

理解设计缺陷与操作失误如何拖垮复杂密码,对现代密码工程仍有借鉴。

CyberChef 配方思路

与 Enigma 相关的 recipe 示例:

使用提示

对现代密码学的启示

Enigma 案例的教训包括:

现今视角:以现代算力破 Enigma 已属 trivial,但其历史地位与「如何被系统性击败」的原理,仍与当代密码分析与安全设计相关。
← 返回操作指南