奇謎與炸彈、鋸鰩與巨像——可程式化數位電腦的誕生

上一篇〈比圖靈更早破解奇謎機的人〉寫到,最先破解奇謎機的其實是波蘭數學家瑞耶夫斯基,而不是圖靈。不僅如此,由於納粹後來又變更加密方式,結果圖靈設計的炸彈解密機用不到兩年就失去作用,最後破解密碼的是另外由別人設計的「巨像」(Colossus) 電腦,而這也成為史上第一台可程式化的數位電腦。 萬一波蘭人的炸彈機不管用 1939 年七月,英國應邀前往波蘭密碼局,得知三位波蘭數學家已經破解奇謎機後,隨即招募語言學家與數學家進駐布萊切利莊園,秘密展開破譯德軍密電的工作。 其實奇謎機的複雜程度的確難以破解,只因德軍將訊息密鑰重覆加密兩次,產生某種規律,才讓波蘭人發現可以忽略接線板的變化,只要檢測轉輪的十萬種排列組合,就能找出正確設定及密鑰。他們發明炸彈機來進行檢測,六台同時運作,每台測 17,576 種,兩個小時就能破解密鑰。只不過後來德軍將轉輪改為五選三,排列組合增加為十倍,變成一百萬種(註1),資源有限的波蘭密碼局才向英、法求援。 英國當然有能力造出 60 台炸彈機來應付,但萬一哪天德軍發現漏洞,不再重覆加密兩次訊息密鑰,炸彈機就不管用了。因此當布萊切利莊園的「政府代碼與密碼學院」(Government Code and Cypher School,簡稱 GC&CS) 於九月成軍後,便基於這個前提展開研究。 圖靈的炸彈機 根據波蘭密碼局過去幾年所破譯的德軍密電,內文中常會出現特定字詞,例如每天清晨的電報總會提到天氣,而「希特勒萬歲」也常出現在電報結尾。雖然德軍後來變更加密方式,但這些字詞的模式卻依然沒變,成為布萊切利莊園解密的破口。 當然,由於同樣字母每次的加密結果都不一樣,就算在密電中找到這幾個字詞,也無法直接據以破譯整篇內容。然而圖靈在比較它們加密前後的字母後,卻發現了類似瑞耶夫斯基所發現的循環特徵,例如某則電報中,hitler 的密文是 TMRJSH,那麼 h -> T、t -> R、r -> H 便形成一個循環,而這就可以用來檢測密鑰,也就是奇謎機的設定。 在圖靈眼中,這樣的循環就像是遞迴函數,而若以電路的角度,又相當於構成電流迴路。他結合這兩項洞見,於 1940 年初設計出模擬奇謎機的機器,可以自動逐一比對出符合的設定。這台機器高、寬各約兩米,也叫「炸彈機」(Bombe),但原理與構造與波蘭的炸彈機完全不同,共有 108 個轉輪,每 3 個一組模擬一台奇謎機,相當於 36 台不同設定的奇謎機同時運作。 問題是,倘若訊息密鑰的破綻不復存在,接線板互換字母的影響就無法排除,所要面對的可能性將多達…