二戰那場曠世密碼戰爭,比敦刻爾克大撤退還要精彩

二戰那場曠世密碼戰爭,比敦刻爾克大撤退還要精彩
 

  1940年5月25日,英法聯軍被德國機械化部隊的鋼鐵洪流打得崩潰。

 

  40萬大軍被逼至法國北部狹小的敦刻爾克,一場史上最大規模的撤退行動即將上演。

 

  在正麵戰場,盟軍被打得節節敗退,可在戰爭的智力戰場,盟軍卻取得了另一場大戰的勝利。

 

 

 
 

敦刻爾克大撤退

 

  信息與情報從來都是戰爭中不可忽視的一環,讓戰爭成為武力與智力的綜合較量。

 

  而智力戰場中最為耀眼的莫過於二戰的那場曠世密碼戰。

 

  如今談起密碼,大多數會想到在各種網站和APP登錄界麵裏必填的那串字符。

 

  但在大半個世紀前,密碼幾乎指的就是保證情報安全的加密手段,關乎戰役的勝敗。

 

  曾經德國人就沉醉於自己發明的一套牢不可破的加密方法,搞得對手們焦頭爛額。

 

 

 
 

  這種加密方法被德國人稱作“恩尼格瑪”,意思為像謎一樣。

 

  由於恩尼格瑪的複雜,也由於德國人的過於自信,人類智力最殘酷、最高級的較量才得以展開。

 

  波蘭、法國、英國等國家的頂尖智慧群體,陸續被卷入了這場曠日持久的密碼戰。加密、破譯,瘋狂升級,天才、叛徒,粉墨登場,也包括那位最著名的天才圖靈。

 

  然而,人們崇拜的圖靈實際上隻是這場密碼戰中貢獻突出的一員罷了,真正的曆史遠比電影來得精彩。

 

 

 
 

  恩尼格瑪最初由德國發明家亞瑟·謝爾比烏斯(Arthur Scherbius)於1918年發明。 *****

 

 

  按照他的設想,密碼機主要出售給大型企業用於商業通訊,可不料市場反應非常冷淡。

 

  雖然在民用上沒有市場,但恩尼格瑪卻引起了德國軍方的興趣。

 

 

 
 

恩尼格瑪的設計手稿

 

  那時正值第一次世界大戰後,英國政府公布了一戰的官方報告。

 

  報告中談到一戰期間英國因破譯了德軍的無線電密碼而取得了決定性的優勢。

 

  這引起了德軍的高度重視,他們隨即對恩格瑪進行了安全性和可靠性試驗。

 

 

 
 

一戰結束,德國接受停戰協定

 

  恩尼格瑪雖然看起來複雜,但其加密的原理本質上是一種替換加密(Substitution Cipher)。

 

  古時候,人們希望加密一段文字時,會將原文(即明文)字母按照某種配對關係替換成另一個字母。

 

 

 
 

  這種做法優點是非常方便,而且密碼強度也很不錯。

 

  理論上,如果破譯者想用窮舉法來進行暴力破解,那麽他就要嚐試26個字母一共4.03X10^26種可能的排列順序。

 

  因此在很長一段時間內,這種簡單的替換法也被認為是十分安全的。

 

 

 
 

  圖/夏洛克·福爾摩斯中的跳舞小人密碼就是一種替換加密

 

  然而,聰明的人們用語言學和統計學破解了這個難題。

 

  我們知道在使用字母文字的語言中,每個字母的使用概率是不一樣的。

 

  例如一張英語報紙中“e”“t”的出現次數就要大於“j”“z”這些字母。

 

 

 
 

字母出現的概率

 

  即使通過替換,各字母在文章中出現的概率還是不變的。

 

  所以通過統計一段足夠長的密文中各字母出現的概率,破譯者就能猜出它們代表的真正字母了,這也是全文采用同一種替換加密方式的缺點。

 

 

 
 

  恩尼格瑪之所以難以破譯,是因為它基本實現了每替換加密一個字母,就更換一種加密方式。

 

  如此一來,每個字母的加密方式都不一樣,在概率上就沒有規律可循了。

 

  我們來看看恩尼格瑪是怎麽來實現這個過程的。

 

 

 
 

  一台恩尼格瑪主要由轉子、燈盤、鍵盤和插線板組成。

 

  鍵盤用來輸入密碼,對應的燈盤則會在輸入後亮起,顯示經過替換後的字母。

 

  而轉子和插線板則是恩尼格瑪提高加密性的關鍵部件。

 

 

 
 

  當我們在鍵盤輸入字母S時,燈盤上會亮起加密後對應的字母。

 

  與此同時轉子會向前轉動1/26圈,機器的加密方式也因此改變。

 

  跟之前提到的字母一一對應的替換法不同,如果我們連續輸入SSS的話,得出來的加密字母可能就會是YJG。

 

 

 
 

隨鍵盤輸入而轉動的轉子

 

  最巧妙的是,第一個轉子轉動一圈後會帶動第二個轉子轉動一格。

 

  同理第二個轉子轉動到某個位置就會使第三個轉子往前轉動。

 

  而每次轉子的轉動,都會讓恩尼格瑪的加密方式產生變化,在26X26X26=17576個字母後才完成一次循環。

 

  因此恩尼格瑪基本達到了每個字母都用上不同的加密方式的要求。

 

 

 
 

  嚴謹的德國人對加密效果還不滿意,他們進一步將轉子設計成可拆卸替換位置的形式。

 

  三個轉子共有6種排列方式,此時加密方式已達到了10萬種(17576X6=105456)可能性。

 

 

 
 

  而真正讓破譯工作變得讓人望而生畏的是恩尼格瑪的插線板設計。

 

  德國人為英格瑪增加了額外的插線板,將英格瑪的密碼設置增加到159百億億種(實際上為158,962,555,217,826,360,000種)。

 

  若操作員用電線將插線板中的兩個字母連接起來,這兩個字母在加密時就會被互換。

 

  例如圖中S和O被連在一起,那麽操作員在鍵盤上輸入S時,字母S就會被替換成O進入機器進行加密,然後得出加密結果。

 

 

 
 

  如此一來,即使機器落入敵軍手中,隻要不知道轉子與插線板的具體排列,破譯人員就要麵對近乎無窮的可能性。

 

  在接下來的十年中,德國軍隊大約裝備了三萬台恩尼格瑪,可見德國人對這台機器的信任。

 

 

 
 

德陸軍名將古德裏安在指揮車上,左下方為恩尼格瑪

 

  自從1926年德軍陸續開始裝備恩尼格瑪以來,周邊各國對德情報的破譯率就一直在下降。

 

  英國人和法國人對這種新出現的加密方式一籌莫展,但他們心裏卻不怎麽著急。

 

  可能是出於自信,英法作為一戰戰勝國都認為德國不會形成很大的威脅,因此兩國的密碼學家也就懶惰了下來。

 

 

 
 

英國女兵在街頭慶祝一戰勝利

 

  與之對比,波蘭的內心是惶恐不安的。

 

  在一戰後波蘭與德國就領土劃分出現了不少矛盾,同時在波蘭東邊的蘇聯也是虎視眈眈。

 

  夾在兩股力量中的波蘭必須要掌握他們的情報,才能在潛在的威脅中占據主動。

 

 

 
 

  破譯德軍情報接連失敗後,波蘭人意識到單靠語言學家是無法成功的。

 

  於是他們在境內靠近德國的波茲南大學中招募了一批數學係學生,其中的馬裏安·雷耶夫斯基(Marian Rejewski)成為後來破譯的關鍵人物。

 

 

 
 

著名的“波蘭三傑”,左起為馬裏安·雷耶夫斯基、傑爾茲·羅佐基、亨裏克·佐加爾斯基

 

  通過盟友法國的情報,馬裏安得知德國人在發報時,會先用當日的通用密碼*將代表轉子初始位置的三個字母連續加密兩次作為電報開頭。

 

  然後他們會將轉子調整到對應的位置,並開始加密後續的正文。

 

  *注:德軍每月都會向全軍發放一個密碼本,其中詳細注明了每天密碼機的參數設置情況。每個發報員可以在當日密碼的基礎上,按自己喜好設置密文的轉子初始位置。

 

 

 
 

每月更換的密碼本

 

  收報方獲取電報後,同樣使用當日的通用密碼解密電報前六位字母。

 

  假如“BKFHIA”解密得到“ABCABC”,那麽就可確認轉子初始位置是“ABC”。

 

  於是操作員調整轉子位置,然後繼續解密後續的正文內容。

 

 

 
 

  但是這種格式有一個破綻,第一個字母與第四個字母雖然采用了不同的加密方式,但都對應了同一個明文字母。

 

  同理第二與第五、第三與第六個字母也是如此。

 

  馬裏安敏銳地抓住了這一點,並開展了研究。

 

  

 
 

  通過數學上的嚴謹推理,他找到了密文與通用密碼的聯係,且巧妙地消除了插線板對加密結果的影響,使加密方式降至10萬種可能性。

 

  這意味著如果使用100台仿製的恩尼格瑪進行暴力破解,每10秒鍾完成一次檢查的話,就能在三個小時內完成暴力破解。

 

  1938 年他們發明了“炸彈”機(bombes)完全破解了當時那個版本的英格瑪。

 

  炸彈上麵裝有許多機電轉鼓,轉起來震耳欲聾,不斷複製著英格瑪可能的密碼設置。

 

  馬裏安的研究使得波蘭一度掌握了德國無線電通訊的絕大部分內容。

 

 

 
 

暴力破譯密碼的“炸彈”

 

  然而歐洲日益緊張的局勢沒有讓波蘭當局高興太久。

 

  1939年3月,希特勒占領了波西米亞和摩拉維亞的餘下地區,下一步入侵波蘭的意圖不言自明。

 

  情況危急之下,波蘭人決定把有關恩尼格瑪的研究成果轉交給英法兩國,並且成功說服了他們聘用數學家參與破譯而非語言學家。

 

  不久後,希特勒對波蘭宣戰,第二次世界大戰爆發。

 

 

 
 

德國采用閃擊戰,僅27天就占領波蘭全境

 

  與此同時,德軍又追加了很多措施來提高恩尼格瑪的安全性。

 

  他們不僅更換了前六個字母的加密方式,還將轉子數量增至5個。

 

  而新的插線板甚至支持交換10對字母,波蘭人鑽研出來的破譯方法也因此失去了效果。

 

 

 
 

插線板上密密麻麻的電線

 

  馬裏安利用了德軍加密操作上的漏洞來破譯情報,因此一旦德國人改進操作,破譯方法就會徹底失效。

 

  而獲得了波蘭研究成果的英國人則希望實現一種更加直接的暴力破解。

 

  他們在布萊切利園(Bletchley Park)中召集了一群數學家與密碼學家,其中就包括了著名的艾倫·圖靈*(Alan Mathison Turing)。

 

  *注:英國計算機科學家、數學家、密碼學家,被視為計算機科學與人工智能之父。他同時也是一名男同性戀者,並因其性傾向遭到當時的英國政府迫害,職業生涯盡毀。

 

 

 
 

艾倫·圖靈

 

  圖靈與他的研究小組首先將目光投向了德國人每天早上發出的電報。

 

  原來德國人喜歡在早晨6點左右發送一條天氣預報,因此早上6點鍾截獲的電報中肯定包含德語wetter(天氣)這個詞。

 

  另外循規蹈矩的德國人在電報中也喜歡用固定的詞組,最常見的就如Heil Hitler(希特勒萬歲)。

 

  因此破譯人員每天可以方便地從電報密文中猜測出個別對應的明文詞組。

 

 

 
 

  根據猜測出來的詞組,圖靈也摸索出了密碼與轉子的對應關係。

 

  這種方法同樣避開了插線板的幹擾,將轉子可能的組合總數降到100萬種。

 

  於是圖靈著手改進了波蘭人破解密碼的機器,並且保留了它響亮的名號——Bombe(炸彈)。

 

 

 
 

Bombe內部結構

 

  Bombe包含許多三個一組的轉盤,每一個轉盤都相當於恩尼格瑪中的一個轉子。

 

  每組轉盤就相當於一台恩尼格瑪,它們被用來模擬加密的過程。

 

   *****

 

 

  操作員將之前猜測出來的詞組作為線索輸入Bombe後,機器就會自行進行暴力破解。

 

  當機器得到了可能的解後,它就會停下來給操作員記錄結果,人們再根據結果篩選出符合德語拚寫的唯一解。

 

 

 
 

機器上三個一組的轉盤

 

  圖靈為機器引進了大量的電子零件與更有效的算法,使Bombe的運轉速度超出了當時人們的認識。

 

  為了進一步提高效率,圖靈還利用統計原理,幫助機器移除了大量不必要的搜尋空間。

 

  一般情況下,Bombe可以在大約11分鍾裏找出正確的解。

 

  當這些機器全速運作時,布萊切利園中就會響起像很多織布機同時工作一樣的聲音。

 

 

 
 

布萊切利園內的工作情景

 

  在二戰期間,共有約200台Bombe加入工作。

 

  這些機器每天能夠破譯3000多條德軍密電,使英國軍方能夠提前知曉希特勒的行動計劃。

 

  可以說Bombe對盡早結束戰爭起到了不可取代的作用。

 

 

 
 

  德國人設計製造的恩尼格瑪,可稱得上是當時世界最先進的通訊加密係統。

 

  基於對其安全性的信賴,上至德軍統帥部,下至海陸空三軍都將恩尼格瑪作為密碼機廣泛使用。

 

  盲目的自信最終會招致慘痛的失敗。

 

 

 
 

出於安全考慮戰後大批Bombe被銷毀,如今僅存仿製品

 

  在信息產業高度發達的今天,加密方式早已推陳出新變得更加牢不可破。

 

  可信息安全問題卻仍層出不窮,並不是因為沒有完美的密碼,而是沒有不犯錯誤的人。

 

  以恩尼格瑪為代表的密碼戰也不過是戰爭的另一種形式,究其本質依舊是人與人的對弈。

 

  隻是刨去了真實戰場的血腥與殘酷,密碼戰這場策略遊戲被人為地蒙上了神秘感。

請您先登陸,再發跟帖!