1940年5月25日,英法聯(lián)軍被德國(guó)機(jī)械化部隊(duì)的鋼鐵洪流打得崩潰。40萬(wàn)大軍被逼至法國(guó)北部狹小的敦刻爾克,一場(chǎng)史上最大規(guī)模的撤退行動(dòng)即將上演。
雖然在正面戰(zhàn)場(chǎng),盟軍被打得節(jié)節(jié)敗退,可在另一片智力戰(zhàn)場(chǎng)上,盟軍卻拿下了另一場(chǎng)大戰(zhàn)的勝利:那場(chǎng)曠世密碼戰(zhàn)。
曾經(jīng)德國(guó)人就依靠自己發(fā)明的一套牢不可破的加密技術(shù),搞得對(duì)手們焦頭爛額。這套加密技術(shù)被德國(guó)人稱(chēng)作“恩尼格瑪”,譯作“像謎一樣”。圍繞著恩尼格瑪密碼機(jī),最殘酷、最高級(jí)的人類(lèi)智力較量拉開(kāi)帷幕,波蘭、法國(guó)、英國(guó)等國(guó)家的頂尖智慧群體,也包括那位傳奇天才圖靈,都陸續(xù)被卷入了這場(chǎng)曠日持久的密碼戰(zhàn)。
恩尼格瑪機(jī)最初由德國(guó)發(fā)明家亞瑟·謝爾比烏斯于1918年發(fā)明。按照他的設(shè)想,密碼機(jī)主要出售給大型企業(yè)用于商業(yè)通信,不料市場(chǎng)反應(yīng)非常冷淡。雖然在民用上沒(méi)有市場(chǎng),但恩尼格瑪卻引起了德國(guó)軍方的興趣。
那時(shí)正值第一次世界大戰(zhàn)后,英國(guó)政府公布了一戰(zhàn)的官方報(bào)告。報(bào)告中談到一戰(zhàn)期間英國(guó)因破譯了德軍的無(wú)線電密碼而取得了決定性的優(yōu)勢(shì)。這份報(bào)告同樣引起了德軍的思考,恩尼格瑪出現(xiàn)得正是時(shí)候,德軍馬上對(duì)其進(jìn)行了安全性和可靠性試驗(yàn)。
檢查結(jié)果讓德軍非常滿(mǎn)意。恩尼格瑪并不難理解,其加密的原理本質(zhì)上是一種替換加密。古時(shí)候,人們希望加密一段文字時(shí),會(huì)將原文(即明文)的字母按照某種一對(duì)一配對(duì)關(guān)系替換成另一個(gè)字母。這種做法優(yōu)點(diǎn)是非常方便,而且密碼強(qiáng)度也很不錯(cuò)。理論上,如果破譯者想用窮舉法來(lái)進(jìn)行暴力破解,那么他就要嘗試26個(gè)字母可能的排列順序。因此在很長(zhǎng)一段時(shí)間內(nèi),這種簡(jiǎn)單的替換法也被認(rèn)為是十分安全的。
然而,語(yǔ)言學(xué)和統(tǒng)計(jì)學(xué)教會(huì)人們破解這個(gè)難題。事實(shí)上在字母文字的語(yǔ)言使用中,每個(gè)字母的使用頻率是不一樣的。例如一張英語(yǔ)報(bào)紙中“e”“t”的出現(xiàn)次數(shù)就要大于“j”“z”這些字母。即使通過(guò)替換,各字母在文章中出現(xiàn)的概率還是不變的。所以通過(guò)統(tǒng)計(jì)一段足夠長(zhǎng)的密文中各字母出現(xiàn)的概率,破譯者就能猜出它們代表的真正字母了,這也是全文采用同一種替換加密方式的缺點(diǎn)。
理解了普通版本的替換加密,再思考恩尼格瑪就容易多了。這種方法的目的是實(shí)現(xiàn)每加密一個(gè)字母,就更換一種加密方式。如此,每個(gè)字母的加密方式都不一樣,在概率上就沒(méi)有規(guī)律可循了。
那么恩尼格瑪如何實(shí)現(xiàn)這種方案?從構(gòu)造來(lái)看,一臺(tái)恩尼格瑪主要由轉(zhuǎn)子、燈盤(pán)、鍵盤(pán)和插線板組成。鍵盤(pán)用來(lái)輸入密碼;對(duì)應(yīng)的燈盤(pán)則會(huì)在輸入后亮起,顯示經(jīng)過(guò)替換后的字母;而轉(zhuǎn)子和插線板則是恩尼格瑪提高加密性的關(guān)鍵部件。
舉一個(gè)簡(jiǎn)單的例子,當(dāng)我們?cè)阪I盤(pán)輸入字母“S”時(shí),燈盤(pán)上會(huì)亮起加密后對(duì)應(yīng)的字母,與此同時(shí)轉(zhuǎn)子會(huì)向前轉(zhuǎn)動(dòng)1/26圈,機(jī)器的加密方式也因此發(fā)生改變。跟之前提到的字母一一對(duì)應(yīng)的替換法類(lèi)似,此時(shí)連續(xù)輸入“SSS”,得出來(lái)的加密字母可能會(huì)是“YJG”。
最巧妙的是,第一個(gè)轉(zhuǎn)子轉(zhuǎn)動(dòng)一圈后會(huì)帶動(dòng)第二個(gè)轉(zhuǎn)子轉(zhuǎn)動(dòng)一格。同理第二個(gè)轉(zhuǎn)子轉(zhuǎn)動(dòng)到某個(gè)位置就會(huì)使第三個(gè)轉(zhuǎn)子往前轉(zhuǎn)動(dòng)。而每次轉(zhuǎn)子的轉(zhuǎn)動(dòng),都會(huì)讓恩尼格瑪?shù)募用芊绞疆a(chǎn)生變化,在26×26×26=17576個(gè)字母后才完成一次循環(huán)。因此恩尼格瑪基本達(dá)到了每個(gè)字母都用上不同的加密方式的要求。
嚴(yán)謹(jǐn)?shù)牡聡?guó)人對(duì)加密效果還不滿(mǎn)意,他們進(jìn)一步將轉(zhuǎn)子設(shè)計(jì)成可拆卸替換位置的形式,三個(gè)轉(zhuǎn)子共有6種排列方式。此時(shí)加密方式已達(dá)到了10萬(wàn)種(17576×6=105456)可能性。而恩尼格瑪?shù)牟寰€板設(shè)計(jì)才是真正讓破譯人員望而生畏的主要結(jié)構(gòu)。德國(guó)人為恩尼格瑪增加了額外的插線板,將恩尼格瑪?shù)拿艽a設(shè)置增加到15900億億種。
在接下來(lái)的10年中,德國(guó)軍隊(duì)大約裝備了3萬(wàn)臺(tái)恩尼格瑪,德國(guó)人對(duì)這種機(jī)器的信任完全到了有恃無(wú)恐的地步。事實(shí)上,自從1926年德軍陸續(xù)開(kāi)始裝備恩尼格瑪以來(lái),周邊各國(guó)對(duì)德情報(bào)的破譯率就一直在下降。
在一戰(zhàn)后,波蘭與德國(guó)就領(lǐng)土劃分出現(xiàn)了不少矛盾,同時(shí)在波蘭東邊的蘇聯(lián)也是虎視眈眈。夾在兩股力量中的波蘭必須要掌握他們的情報(bào),才能在潛在的威脅中占據(jù)主動(dòng)。
多次嘗試破譯德軍情報(bào)接連失敗后,波蘭人意識(shí)到單靠語(yǔ)言學(xué)家是無(wú)法成功的。他們?cè)诰硟?nèi)靠近德國(guó)的波茲南大學(xué)中招募了一批數(shù)學(xué)系學(xué)生,其中的馬里安·雷耶夫斯基成為后來(lái)破譯的關(guān)鍵人物。
通過(guò)盟友法國(guó)的情報(bào),馬里安得知德國(guó)人在發(fā)報(bào)時(shí),會(huì)先用當(dāng)日的通用密碼將代表轉(zhuǎn)子初始位置的三個(gè)字母連續(xù)加密兩次作為電報(bào)開(kāi)頭。然后他們會(huì)將轉(zhuǎn)子調(diào)整到對(duì)應(yīng)的位置,并開(kāi)始加密后續(xù)的正文。收?qǐng)?bào)方獲取電報(bào)后,同樣使用當(dāng)日的通用密碼解密電報(bào)前六位字母。比如“BKFHIA”解密得到“ABCABC”,那么就可確認(rèn)轉(zhuǎn)子初始位置是“ABC”。于是操作員調(diào)整轉(zhuǎn)子位置,然后繼續(xù)解密后續(xù)的正文內(nèi)容。
但是這種格式有一個(gè)破綻,第一個(gè)字母與第四個(gè)字母雖然采用了不同的加密方式,但都對(duì)應(yīng)了同一個(gè)明文字母。同理第二與第五、第三與第六個(gè)字母也是如此。馬里安敏銳地抓住了這一點(diǎn),并開(kāi)展了研究。
通過(guò)數(shù)學(xué)上的嚴(yán)謹(jǐn)推理,他找到了密文與通用密碼的聯(lián)系,且巧妙地消除了插線板對(duì)加密結(jié)果的影響,加密方式頓時(shí)降到了10萬(wàn)種可能性。這意味著如果使用100臺(tái)仿制的恩尼格瑪進(jìn)行暴力破解,每10秒鐘完成一次檢查的話,就能在3個(gè)小時(shí)內(nèi)完成暴力破解。
1938年他們發(fā)明了名為“炸彈”(Bombe)的機(jī)器,完全破解了當(dāng)時(shí)那個(gè)版本的恩尼格瑪。這臺(tái)機(jī)器裝有許多機(jī)電轉(zhuǎn)鼓,轉(zhuǎn)起來(lái)震耳欲聾,不斷復(fù)制著恩尼格瑪可能的密碼設(shè)置。馬里安的研究工作讓波蘭始終掌握著德國(guó)無(wú)線電通信的絕大部分內(nèi)容。
然而歐洲日益緊張的局勢(shì)沒(méi)有讓波蘭當(dāng)局高興太久。1939年3月,希特勒占領(lǐng)了波西米亞和摩拉維亞的余下地區(qū),下一步入侵波蘭的意圖不言自明。情況危急之下,波蘭人決定把有關(guān)恩尼格瑪?shù)难芯砍晒D(zhuǎn)交給英法兩國(guó),并且成功說(shuō)服了他們聘用數(shù)學(xué)家參與破譯而非語(yǔ)言學(xué)家。
不久后,希特勒對(duì)波蘭宣戰(zhàn),第二次世界大戰(zhàn)爆發(fā)。德國(guó)采用閃擊戰(zhàn),僅27天就占領(lǐng)波蘭全境。首個(gè)破解恩尼格瑪?shù)膰?guó)家被占領(lǐng),德國(guó)更是在戰(zhàn)后及時(shí)為恩尼格瑪追加了很多措施來(lái)提高安全性。他們不僅更換了前6個(gè)字母的加密方式,還將轉(zhuǎn)子數(shù)量增至5個(gè)。而新的插線板甚至支持交換10對(duì)字母,波蘭人鉆研出來(lái)的破譯方法已經(jīng)不再適用。
馬里安利用了德軍加密操作上的漏洞來(lái)破譯情報(bào),一旦德國(guó)人改進(jìn)操作,破譯方法就會(huì)徹底失效。而獲得了波蘭研究成果的英國(guó)人則希望掌握一種更加靈活的暴力破解方法。他們?cè)诓既R切利園中召集了一群數(shù)學(xué)家與密碼學(xué)家,其中就包括了著名的艾倫·圖靈。
圖靈與他的研究小組首先將目光投向了德國(guó)人每天早上發(fā)出的電報(bào)。原來(lái),德國(guó)人偏愛(ài)在早晨6點(diǎn)左右發(fā)送一條天氣預(yù)報(bào),因此早上6點(diǎn)鐘截獲的電報(bào)中肯定包含德語(yǔ)“wetter”(天氣)這個(gè)詞。另外德國(guó)人在電報(bào)中也喜歡用一些固定的詞組,就如最常見(jiàn)的“Heil Hitler”(希特勒萬(wàn)歲)。因此破譯人員每天可以方便地從電報(bào)密文中猜測(cè)出個(gè)別對(duì)應(yīng)的明文詞組。
根據(jù)猜測(cè)出來(lái)的詞組,圖靈也摸索出了密碼與轉(zhuǎn)子的對(duì)應(yīng)關(guān)系。這種方法同樣避開(kāi)了插線板的干擾,將轉(zhuǎn)子可能的組合總數(shù)降到100萬(wàn)種。于是圖靈著手改進(jìn)了波蘭人破解密碼的機(jī)器,并且保留了它響亮的名號(hào)——“Bombe”。
圖靈為機(jī)器引進(jìn)了大量的電子零件與更有效的算法,使“Bombe”的運(yùn)轉(zhuǎn)速度超出了當(dāng)時(shí)人們的常識(shí)。為了進(jìn)一步提高效率,圖靈還利用統(tǒng)計(jì)原理,幫助機(jī)器移除了大量不必要的搜尋任務(wù)。一般情況下,“Bombe”可以在不超過(guò)11分鐘的時(shí)間里找到正確的解。
當(dāng)這些機(jī)器全速運(yùn)作時(shí),布萊切利園中就會(huì)響起像很多織布機(jī)同時(shí)工作一樣的聲音。在二戰(zhàn)期間,共有約200臺(tái)“Bombe”加入工作。這些機(jī)器每天能夠破譯3000多條德軍密電,使英國(guó)軍方能夠提前知曉希特勒的行動(dòng)計(jì)劃??梢哉f(shuō)“Bombe”對(duì)盡早結(jié)束戰(zhàn)爭(zhēng)起到了不可取代的作用。
德國(guó)人設(shè)計(jì)制造的恩尼格瑪,可稱(chēng)得上是當(dāng)時(shí)世界最先進(jìn)的通信加密系統(tǒng)?;趯?duì)其安全性的信賴(lài),上至德軍統(tǒng)帥部,下至海陸空三軍都將恩尼格瑪作為密碼機(jī)廣泛使用。但德軍不時(shí)暴露出的漏洞成了密碼戰(zhàn)失利的最大原因。
以恩尼格瑪為代表的密碼戰(zhàn)也不過(guò)是戰(zhàn)爭(zhēng)的另一種形式,究其本質(zhì)依舊是人與人的對(duì)弈。只是除去了真實(shí)戰(zhàn)場(chǎng)的血腥與殘酷,密碼戰(zhàn)這場(chǎng)策略戰(zhàn)爭(zhēng)被人為地蒙上了神秘感。
(晨煙摘自中國(guó)友誼出版公司《說(shuō)出來(lái)你可能不信》)