在第二次世界大戰中,關於密碼的破譯和反破譯一直是隱秘戰線上的一個重要戰場。圍繞著通訊密碼,德國和英國就曾展開了殊死的較量。可以說,德國人的恩尼格瑪密碼機一度都是個非常麻煩的存在,英國方面花了好多功夫都破解不了這個密碼,而能否破解恩尼格瑪密碼機就成為了英國方面掌握戰爭主動權的關鍵。我們的故事,也就從這麼一臺恩尼格瑪密碼機和一個疏忽大意的潛艇艇長說起。
恩尼格瑪密碼機在當時是個非常複雜的東西,想要破解這個密碼機,就必須了解它的構造。這個名字繞口的密碼機有一個非常有趣的小裝置,叫做'轉子'。在你按下鍵盤的A鍵時,上面的燈泡B卻可能亮起來。這就是'轉子'的作用,它會把一個字母在明文裡的位置,能用不同的字母代替,反過來也是一樣。這種複雜的加密方式,在密碼學上就被稱之為'複式替換密碼'。
如果只是這麼一個'轉子'在工作的話,那麼可能事情還沒有那麼麻煩。因為破譯方可以通過收集大量電文累積之後,摸索出這個轉子的規律。所以德國人又加上了額外的兩個'轉子'。這樣就有三個'轉子'同時工作,導致它的轉動帶來的密鑰複雜度以幾何級增加。這種複雜程度會有多高呢?26×26×26=17576個密鑰。
何況,這恩尼格瑪密碼機裡還有一些非常可惡的小玩意。比如說有個叫'反射器'的東西。這個可惡的小東西會讓設備裡面的解碼過程再現為編碼過程,電流在裡面來回反射,讓轉子的轉動方式更加複雜了。再加上一個叫做'接線板''的小裝置,它會讓你按動按鍵時,電流信號進一步的發生變化,相當於又加進去兩個轉子。這些東西又讓破譯難度又一次增加了。這些都加起來那密鑰數量就不止26×26×26=17576了,而是至少17576×6=105456
這麼一來,恩尼格瑪密碼機就是個無字天書,想要破解它談何容易?如果你想靠人力去計算的話,差不多可以把人累到暴斃身亡。而英國方面倒是有賴于波蘭人的幫助,成功在早期破解了德國陸空軍的密碼,至少可以大部分破解。這是因為波蘭情報部門曾經悄悄拆解了德國大使館的恩尼格瑪密碼機,在摸清了恩尼格瑪密碼機的結構和規律後,就針對性的做了個'炸彈'出來。所謂'炸彈'是一種二戰時期的密碼破譯機器,專門用來對付恩尼格瑪密碼機。
不過,波蘭人的努力最後全部木大了,因為1939年9月波蘭戰役爆發前,德國人突然對恩尼格瑪密碼機做了調整,裡面加了兩個'轉子',並且把連線加到16根,這下波蘭人的炸彈失效了,對付不了德國人的恩尼格瑪密碼機了。好在波蘭情報機構在波蘭滅亡前,悄悄地就把炸彈的圖紙,以及破解恩尼格瑪密碼機的心得都給了英國人。這麼一來,英國仍舊能夠利用這些數據和'炸彈'作為基礎,設計他們自己的'炸彈'來對付可惡的恩尼格瑪密碼機。
而負責這件事的,就是當時英國情報機構的密碼破譯中心,日後大名鼎鼎的布萊切利莊園。有鑑於該部門匯聚了許多英國的數學家和密碼破譯專家,所以在波蘭人的饋贈幫助下,恩尼格瑪密碼機的加密體系開始被他們迅速的瓦解。尤其是數學天才圖靈採用了統計法之後,創立了一個統計詞庫,英國人破解恩尼格瑪密碼機發出的電文的速度就更快了。在1941年初的時候,德國陸軍和德國空軍的恩尼格瑪密碼機已經不是什麼秘密了,截獲的德國電文也不再是一封天書。
可光這樣是遠遠不夠的,因為德國海軍的恩尼格瑪密碼機沒能被破解。原因在於,德國海軍使用的恩尼格瑪密碼機構造特殊,裡面的'轉子'多達8個之多。圖靈的統計法和布萊切利莊園引以為豪的'炸彈'都沒了用。英國人只能眼睜睜看著德國的U型潛艇在大西洋上四處把他們的商船打沉到海底裡去。雖然英國情報部門一天催個三四次,可圖靈也只能雙手一攤,表示除非能弄到德國海軍的恩尼格瑪密碼機,否則他沒任何辦法去破解德國海軍的恩尼格瑪密碼機。
這話差點沒把英國情報部門就地噎死,因為如果他能弄到這東西的概率實在是不高。老實說,除非上帝保佑,否則他們絕對是拿不到德國海軍的恩尼格瑪密碼機的。於是,所有人都只能大眼看小眼,心說這不就是無能為力的僵局了嗎?但英國情報部門,甚至是圖靈本人可能都沒想到的是,上帝真的顯靈了。在圖靈這個每天神神叨叨的傢伙念叨下,上帝還真的給了他們一個弄到恩尼格瑪密碼機的機會。
事情是這樣的,1941年5月8日傍晚時分,德國U-110號潛艇接到了一個命令,命令要求他們去攻擊英國OB-318號運輸船隊。艇長弗裡茨·尤裡烏斯·倫普二話不說,直接命令U-110號潛艇前往指定位置攻擊英國船隊。在5月9號,U-110號潛艇追上了OB-318號運輸船隊。倫普見狀大喜過望,心說只要擊沉了這些商船,他回去就是大功一件啊。得說,倫普和他的水兵們還是很有本事的,幾枚魚雷就讓OB-318號運輸船隊損失慘重。
奈何此時倫普突然腦袋抽風,竟然命令U-110號潛艇上浮,美其名曰:"我要看看英國人是怎麼沉到大海裡去的!"他這一個命令不打緊,但OB-318號運輸船隊裡的英國驅潛快艇南亭霽號卻找到機會殺了過來,就地扔下了幾枚深水炸彈,炸的U-110號潛艇只能完全上浮出來。而倫普還沒能反應過來怎麼回事呢。那邊英國的鬥牛犬號和百老匯號驅逐艦也殺了過來,抄起艦炮對著U-110號潛艇就是一頓猛轟,擺明了就是要U-110號潛艇的命。
倫普是個混人,以前在攻擊挪威商船的時候,就在上浮開炮時,忘了U-110號潛艇的105毫米火炮沒打開防水艙蓋而導致炸膛。如今形勢真是萬分危急,倫普的腦迴路又有點不夠用了,他眼看U-110號潛艇要完蛋,竟然直接命令水兵們放棄潛艇快快逃生去了。發電員出於善意還問了一句,咱是不是應該按照操典毀掉恩尼格瑪密碼機和密碼本,最不濟咱也得自沉潛艇吧?結果倫普表示你管它那麼多呢?反正過一會兒潛艇就會被英國人打沉到海裡,而英國人也撈不出那些東西來。
於是倫普帶人坐上救生艇火速逃之夭夭,可他沒想到的是自己的U-110號潛艇吃了那麼多發炮彈之後,竟然沒有沉進大海裡,反而是如同一個鐵皮棺材一樣漂在海面上了。對面英國人的百老匯號驅逐艦和鬥牛犬號驅逐艦也頗為奇怪,這怎麼回事呢?怎麼德國潛艇沒有自沉呢?驅逐艦上的英國水兵們想了半天也沒想出來,最後還是決定放棄思考,直接帶人上去看看就知道了。然後一群膽大包天的英國水兵抄起船上的槍械和錘子扳手,組織了一個敢死隊就登上了U-110號潛艇。
英國水兵們上去的時候生怕遇到不要命的德國水兵要和他們拼命,也擔心誰有沒死的德國人把潛艇自沉並拉他們陪葬。結果他們轉了一圈之後,愣是沒看到半個德國人的影子。這些英國水兵們可就放心了,接著就開始搜刮潛艇上一切有用的東西,從德國香腸到巧克力,在潛艇兵為了對付汗臭味攜帶的古龍香水,全都給拿跑了。等到大家回去清理戰利品的時候才發現,不知道誰把潛艇上的恩尼格瑪密碼機給帶回來了,而且捎帶腳還把密碼本帶回來了。
等到水兵們把恩尼格瑪密碼機和密碼本帶回去之後,英國情報部門與布萊切利莊園的圖靈差點沒幸福地暈過去。這可真是想睡覺天下就掉下個枕頭,你看想什麼來什麼不是?於是圖靈趕緊帶人研究密碼本,拆解恩尼格瑪密碼機,在一番研究之後,圖靈確認這就是他夢寐以求的德國海軍版恩尼格瑪密碼機。有了這個做參考之後,圖靈就可以摸清這種特製恩尼格瑪密碼機的加密方式,並可對'炸彈'做出改良,從而破解德國海軍的密碼。
結語
事實上,那位叫做倫普的艇長可能做夢都想不到,他這一個疏忽大意直接害了整個德國海軍。從這之後,德國海軍的潛艇部隊就在大西洋上屢屢遭受重創,連鄧尼茨的小兒子都在海上指揮潛艇時,因為密碼被破譯而被英國皇家海軍連人帶潛艇一起給弄死了。而鄧尼茨也是直到這個時候才反應過來,原來密碼早已被英國人破解,無奈只能下令潛艇部隊放棄破交戰。可以說,就是這麼一個小小的疏忽,德國的海狼們就再也不能於海上興風作浪了。
至於那位粗心大意的潛艇艇長倫普?據說他在意識到自己犯了大錯之後,就直接跳海自殺了。畢竟犯了這麼一個錯誤回去,多半是要被槍斃的啊。
參考文獻:《超級機密》
《密碼故事》
《二戰時期密碼決戰中的數學故事