1939 - Bletchley Park 與 Turing 炸彈機#
案件摘要#
1939 年二戰爆發,英國在 Bletchley Park 集結數學家、密碼學家、國際象棋冠軍與填字遊戲高手,破解德國 Enigma。1940 年,Turing 設計的「炸彈機(Bombe)」——基於已知明文攻擊(crib)+ 邏輯矛盾排除法——實現工業化破譯。Ultra 情報讓盟軍讀懂德國海空軍命令,歷史學家估計縮短二戰約兩年。這裡也誕生了 Colossus——第一台電子數位電腦。密碼戰是計算機與資訊時代的搖籃。
前因 -- 為什麼會有這個案子#
波蘭 1939 年移交的成果(見 1932-Rejewski破譯Enigma.md)與 1938 年德軍的改進(訊息金鑰不再連打兩次、海軍 Enigma 增加轉子):循環指標法失效,bomba 過時。英國的問題:德軍改進後的 Enigma,如何工業化破譯? Turing 的洞察:已知明文(crib)+ 矛盾排除。
線索與推理 -- 數學式、程式、理論#
線索:crib(已知明文)#
德國軍情的可預測片段: - 天氣報告:每晨 6 點,必有 WETTER(天氣) - 無線電靜默結束:指揮官的 AN DIE GRUPPE、KEINE BESONDEREN EREIGNISSE(無特別事件) - 例行格式:HEIL HITLER 結尾
推理:若知道明文片段(crib)在密文中的位置,就得到明文-密文字母對:
Turing 的邏輯鏈(loop)#
加密函數 \(c = E(x)\) 展開為接線板 \(S\) 與轉子的組合。Turing 的觀察:
若 crib 中有字母循環(如位置 1 的字母 = 位置 4 的字母),沿鏈推導得到自洽性條件:
矛盾排除法:假設某字母的接線板配對(如 A→Z),沿邏輯鏈推導——若推導出「A→A」(自配對,不可能,因 S 是對合且由接線板規則不配自己)或「A→兩個不同字母」(矛盾),則假設錯誤。
炸彈機:36 台 Enigma 等價機器串聯,機械化執行矛盾排除——每個假設配對電路連動,燈亮 = 矛盾。Welchman 的 diagonal board 改進利用 \(S\) 的對合性加倍排除效率。窮舉 \(26^3\) 轉子位置 × 26 配對假設,機器數小時內找出轉子組態。
程式碼:矛盾排除的概念#
import random
def bombe_elimination(crib, cipher, rotor_perms):
"""概念:假設配對 -> 邏輯鏈 -> 矛盾排除"""
pairs = {} # 已確定的接線板配對
for x, c in zip(crib, cipher):
# 若 x 的配對已知,沿鏈傳播
contradiction = False
if x in pairs and pairs[x] == x: contradiction = True # 自配對
if x in pairs and c in pairs and pairs[x] != pairs[c]:
contradiction = True # 一字兩配
if contradiction:
return False # 此假設錯誤
pairs[x], pairs[c] = pairs[c], x
return True
random.seed(42)
# 概念示範:E(x) != x 的排除法
plug = {0: 25, 1: 24, 2: 3, 3: 2}
# 炸彈機的推理:假設 A↔Z,推導中若出現 A↔A(自配)即矛盾
print("炸彈機:36 台 Enigma 串聯,機械化矛盾排除")
print("Welchman 的 diagonal board:利用 S 對合性加倍排除")
Colossus:第一台電子電腦(1943)#
德國高層通訊用Lorenz 密碼機(12 轉子 teleprinter 密碼)。Max Newman 與 Tommy Flowers 建造 Colossus:1500 個真空管,機械化執行統計相關性分析(找 Lorenz 輪盤的設定)——第一台電子數位可程式化電腦(1943 年運作,比 ENIAC 早兩年)。
Turing 的圖靈機(1936,見 ../計算理論/1936-Turing機與停機問題.md)的理論在此變成工程現實:可程式化的機器——炸彈機、Colossus 都是圖靈機的先行工程實現,直接催生戰後的 ACE、Manchester 機。
超越:Ultra 情報的運用#
- 大西洋海戰:破譯 U-boat 通訊,護航船隊避開狼群——1941 年 5 月起船損大減
- 北非:Rommel 的補給線被斷
- 諾曼第:D-Day 前的德軍調動全被監視
- 歷史估計:Ultra 縮短戰爭約兩年(Hinsley)
保密的鐵律:破譯成果絕不直接使用(否則德國察覺),只「恰好」派偵察機確認——情報的運用本身也是密碼戰的一部分。
結案 -- 後果與影響#
- 二戰勝利:Ultra 情報縮短戰爭、改變戰局——密碼學第一次決定世界史。
- 計算機的誕生:Colossus(1943)、bomba 的工程經驗直接催生戰後電腦(Turing 的 ACE、Manchester Baby 1948)。
- 密碼分析的工業化:矛盾排除法、統計分析、機械化窮舉——現代密碼分析(差分、線性分析)的祖先。
- Turing 的兩面:1936 年的圖靈機(理論)與 1940 年的炸彈機(工程)——理論與工程的閉環。
- 保密文化:Bletchley Park 的工作保密至 1974 年(《Ultra Secret》出版)——Turing 的戰時功績在他死後 20 年才公開。
關鍵人物與文獻#
- Alan Turing(1912–1954):炸彈機設計(1940);1952 年因同性戀定罪,1954 年逝世,2013 年王室赦免
- Gordon Welchman:diagonal board
- Tommy Flowers(1905–1998):Colossus
- Max Newman:Colossus 概念
- F. H. Hinsley:British Intelligence in the Second World War——「縮短兩年」的估計
- Harry Hinsley / Winterbotham:The Ultra Secret (1974)——解密揭露
- 交叉參照:
1932-Rejewski破譯Enigma.md、1918-Enigma機.md、../計算理論/1936-Turing機與停機問題.md