李中志/美國伊利諾州立大學電腦科學教授
艾倫‧ 涂靈(Alan Turing, 1912~1954)這位二十世紀最重要的科學家之一,電影《模仿遊戲》在國內上映後引發國人的興趣,對於不少偏離史實的電影情節也多有指正。相對於之前國人對這位近代科學史上的巨擘近乎無知,這是值得鼓舞的現象。可惜涂靈的貢獻是建立在相當枯燥且抽象的計算理論上,缺乏自然主義可直觀描述的實體,不像宇宙、黑洞、時間等,這些科普最愛的主題,經過適當的引導,就算是無背景知識的大眾,也能對近代物理做出正確的想像。但涂靈的計算理論是純符號的產物,很難窺其堂奧,即便是電腦科系的師生,不少人也是懵懵懂懂,不容易以三言兩語解釋涂靈對現代計算理論革命性的衝擊,只能人云亦云地推崇他為「電腦之父」。涂靈得此頭銜固然當之無愧,但何以致此?伴隨《模仿遊戲》出現的許多影評顯然力有未逮。
電影《模仿遊戲》以涂靈破解德軍密碼機為主軸,全劇不斷穿插涂靈在科學與哲學上更重要的兩個貢獻,「電腦的發明」與「人工智慧」。基於娛樂效果,電影裡營造的氣氛有些言過其實,有些則是涂靈不可取代的貢獻,但礙於過度專業無法深入,只能點到為止,顯然是銀幕上無法處理的科學史大問題,而這正是科普作者看完電影後必須承接的任務。
當代最成功的密碼機
先從電影的主軸,破解德國的恩尼格碼(Enigma)密碼機談起。第一台恩尼格碼造於第一次大戰末期,由德國工程師謝爾比烏斯(Aruth Scherbius)設計,之後與里特(Richard Ritter)合作共同取得專利,成立公司量產,估計先後有近十萬台的恩尼格碼被製造出來。恩尼格碼問世後立刻成為當代最成功的密碼機,縱橫二十餘年,之間被逐漸改良。恩尼格碼原本大量用於加密商業電文,德軍加強其複雜度後於1928 年全面用於軍事通訊,直到希特勒第三帝國瓦解為止。
日本結盟為軸心國後自德國引進恩尼格碼,改良為「九七式印字機」,負責加密與德國之間的外交電文。美軍的解密員稱之為「紫」機(Purple),有別於「紅」、「藍」加密機。紅藍兩機由日本軍部自行研發,也曾讓美軍傷透腦筋,但後來亦遭盟軍破解。與歐洲戰場一樣,密碼戰也是太平洋戰爭中極精彩且關鍵的一章。日本海軍元帥山本五十六化身孔雀東南飛,親上戰機視察前線,被美軍成功狙擊,便是日本軍部最高軍事機密的電文被譯破的慘痛代價。
不可否認,恩尼格碼的確是精巧的產品,展現德國人在二戰前精密工業的技術已達顛峰的境界,但放在科技史上,恩尼格碼實在稱不上是革命性的密碼機。它的數學模式相當簡單,算是傳統機械式加碼機的末代產物,完全沒用到數論、代數理論、複雜度理論等,這些近代加碼技術的基本理論。不管它的設計多精巧複雜,每個字母的變化看似撩亂,但每個分開的字母都是一個獨立的置換加密,在竊聽者擁有大量密文的情況下,用傳統密碼分析就可以直接破解。
恩尼格碼機的破解
德國人當然知道恩尼格碼的破綻,於是以一連串的標準流程來設定機器的初始狀態,試圖避開漏洞,雖有初步的成功,但最後仍遭破解。有趣的是,它的致命傷之一正是這一連串的標準流程。此外,恩尼格碼加密與解密呈對稱狀態,即加密與解密的運算與設定相同,加上其他已知的條件,導致了有效破解的捷徑。但這破解恩尼格碼的方法不是涂靈發現的,而是波蘭的密碼局在二戰前即擁有的祕密。波蘭這個民族優秀的科學家與數學家輩出,但國家多苦難,兩次大戰間夾在野心勃勃的東西兩強之間,朝不保夕。東有蘇聯共產國際的進逼,西有德國法西斯的擴張。基於國安需要,1920 年代晚期即成立密碼局,延請專業數學家研究密碼學。其中雷艾夫思基(Marian Rejewski),茲格阿爾思基(Henryk Zygalski),羅茲伊特思基(Jery Ró ycki),是破解恩尼格碼的主要三位數學家,其中又以雷艾夫思基的貢獻為最,這段史實要到1973 年才解密。
波蘭的密碼局在戰前就擁有關於恩尼格碼的完整知識,包括擷取長達十幾年的密文與例行設定機器的情資。雷艾夫思基花數年的時間檢視看似無意義的密文,尋找規則,有如哥白尼與都普勒觀察變化無常的行星運動,最後終於寫下搜尋初始設定的限制方程式,並以擄獲的恩尼格碼加以驗證。1939 年波蘭淪陷,波蘭密碼局驚險地保住了多年的研究成果,逃出淪陷區後交給向德國宣戰的英國,由英國軍情局的布萊切利園(Bletchley Park)團隊接手。同年剛結束在美國普林斯敦大學博士論文寫作的涂靈加入團隊,帶領最後的破解工作。
涂靈在布萊切利園建造的機器取名為Bombe,源自波蘭密碼局的Bamba,有「密碼炸彈」之意。波蘭密碼局的「密碼炸彈」在德軍加強恩尼格碼後已力有未逮,但只是速度上的問題,破解的基本理論未變。另一方面,德國不是不清楚恩尼格碼機的原理已被掌握,但過度自信,認為只要簡單加大初始設定的組合數,世上不可能有足夠的運算能力,在一定的時間內找到初始設定。這才是德國致命的錯誤假設,也成就了涂靈的重大貢獻。
涂靈重要貢獻
雖然涂靈並不是破解恩尼格碼機的原創者,但他的Bombe則與波蘭密碼局Bamba 的計算原理完全不同。涂靈引進大量的電子零件與更有效的演算法,讓Bombe 以當代無法想像的速度運轉,光是這點,譽涂靈為當代最頂尖的工程師已當之無愧。涂靈更利用統計原理,大量移除不必要的搜尋空間,至今仍是破解密碼的重要技巧。但涂靈也不是隻手達成任務,除了波蘭密碼局累積的知識,還靠布萊切利園同事的共同智慧,對Bombe 不斷改良,如威契曼(Gordon Welchman)的對角線板(diagonal board)便是加速Bombe 的重要改進。到戰爭後期Bombe 能在20 分鐘內完成計算,讓解密員得以在一兩個小時內確定德軍每天更換的初始設定。至戰爭結束為止,總共有約200台的Bombes 加入工作,也就是說,戰爭後期德軍的行動完全被盟軍掌握,焉能不敗?
值得一提的是,在1941 年底,德軍開始懷疑盟軍有聽取恩尼格碼機密文的能力,於是為恩尼格碼機多加一轉盤,初始值的搜尋空間因此呈指數增加。此舉困擾盟軍解密員多時,失聰達九個月之久,德軍潛艇神出鬼沒,造成1942 年盟軍船艦的重大損失。直到十月底英國海軍在埃及北面的地中海,擊沉編號U–559 著名的U–boat 潛艇。德軍在搶救無望後棄艇,三位英勇的英國水兵卻冒死奮力登上即將沉沒的U–559,企圖搶奪上面的一台新型恩尼格碼機。但機器被釘死固定一時無法取下,於是兩位進入內艙的水兵轉而搶救恩尼格碼機的檔案資料與密碼簿,拼命向外拋出,由第三名水兵在外接應救起文件。這兩名進入內艙的水兵最後來不及逃出,與U–559 同葬海底。這些文件堪稱二戰期間盟軍搶奪到最重要的文件,讓布萊切利園團隊一窺第四轉輪的奧秘,重新取得監聽德軍的耳朵。
二戰破解密碼的這一頁歷史,其實是比任何電影情節還要精彩的諜報戰,絕不是幾個天才關在屋子裡憑空想出來的,它是全面戰爭的動員,依賴大量的情報工作,慘烈的軍事爭奪,戰士與情報人員英勇犧牲性命所換來的。
影響電腦發展
就電腦發展史來看,涂靈在布萊切利園設計的機器,的確累積了許多電子電路的知識,或許對後來的電腦設計提供工程上的經驗,但並無理論上的關係。最主要的差別在Bombe 不是一台全功能的通用計算機器,而只是負責單一用途的機器,由電子線路與機械組合而成。應該比較像巴貝奇(Charles Babbage) 機械計算機的電子版。巴貝奇是早涂靈一百多年的劍橋學長,終生設計了兩台在他有生之年無法完成的複雜計算機,「差分機」與「分析引擎」,他的企圖也被不少人視為計算機的先驅。這些機器精巧複雜,但也和日後的電腦原理無關。
終戰後涂靈致力於設計真正的電腦,命名為Automatic Computing Engine,比同時在美國由馮紐曼(John von Neumann)設計的「馮紐曼機」與稍後的ENIAC(EDVAC的前身)還要先進許多,世界從此進入電腦的新紀元。
資料來源:
- David, K., Seizing the Enigma: The Race to Break the German U–Boats Codes, Houghton Mifflin (T), 1991.
- Robert, C., Codes and Ciphers, Julius Caesar, the Enigma, and the Internet. Cambridge University Press, 2002.
- Alenander, S., Introduction to Cryptography with Mathematical Foundations and Computer Implementations, A Chapman & Hall Book, 2011.
延伸閱讀:
由淡入濃—如是我觀涂靈形象
數位影像密碼學
什麼?!你還不知道《科學月刊》,我們47歲囉!
入不惑之年還是可以當個科青