花卷
波蘭數(shù)學(xué)家馬里安·雷耶夫斯基通過群論等數(shù)學(xué)方法,利用Enigma指標(biāo)組重復(fù)兩次加密發(fā)送的線索,找到了其中所蘊含的數(shù)學(xué)規(guī)律,并根據(jù)這一數(shù)學(xué)規(guī)律匹配出了一部分使用像“AAA”“BBB”這種弱指標(biāo)組的電文。然而,僅憑這一信息,距離真正破譯Enigma的電文依然任重道遠(yuǎn),波蘭數(shù)學(xué)家們接下來又做出了哪些努力呢?
之前我們提到過小雷總結(jié)了Enigma的“三個秘密”——轉(zhuǎn)輪的接線、轉(zhuǎn)輪的初始位置(每日密鑰),以及每封電文的指標(biāo)組。盡管小雷用他超人的數(shù)學(xué)洞察力破解了指標(biāo)組里的秘密,但也并不意味著用這個方法就能直接破譯出所有的指標(biāo)組,更不意味著小雷他們就能直接破譯出電文的原文了——要實現(xiàn)這個終極目標(biāo),必須還得破解Enigma的另外兩個秘密才行。
幸運的是,破譯Enigma這件事,并不是只有波蘭人自己在忙活,所有覺得德國人要搞事的國家都在想辦法破譯Enigma,這里面當(dāng)然也包括英國和法國。我們知道英國和法國在密碼學(xué)這方面還都是有些底子的,“一戰(zhàn)”的時候英國“40號房間”破譯了德國外交密電,法國密碼局則破譯了德國的ADFGX和ADFGVX密碼,這兩個故事我們之前都已經(jīng)講過了。
不過,這兩種密碼都算是比較簡單的。德國的外交密碼用的是單純的密碼本,而且這個密碼本還被俄國人從一艘沉船上撈到之后送給了丘吉爾。而ADFGX密碼也很容易從表面上判斷出來它是一種方格置換密碼,稍微難一點的地方也就是行列換位的部分。說到底,手工密碼時代的密碼,即便再復(fù)雜,跟Enigma這種機械式密碼那都是完全沒法比的,就像馬車非要跟火車賽跑一樣,差距太大了。英國和法國也都早就注意到了德國人搞出了一種新的密碼,而且據(jù)說是一種機器,他們各自的密碼學(xué)大牛們也紛紛著手開始研究這種新密碼。但是這玩意兒實在是太妖了,研究來研究去都是一頭霧水,可以說是“毫無進展”。
既然強攻暫時攻不下來,那就只能玩玩曲線救國的招數(shù)了——也就是諜報戰(zhàn)。正巧,法國情報部門還真在德國密碼局有個線人,這個線人名叫漢斯-蒂洛·施密特(Hans-ThiloSchmidt),代號“灰燼(Asche)”。這個人是法國人安插到德國密碼局的間諜么?并不是,人家是徹頭徹尾、土生土長的德國人,早年在德國陸軍當(dāng)過軍官,“一戰(zhàn)”期間因為吸入了毒氣把身體搞垮了,不能繼續(xù)打仗只好退伍。不過以他這個身體狀況,退伍之后也找不著工作,總不能整天游手好閑,于是在他哥哥的幫助下走了個后門,在密碼局里面混到了一個小職位,算是勉強能養(yǎng)家糊口。到了密碼局上班之后,施密特發(fā)現(xiàn)這份工作可真不簡單,居然能摸到一臺叫作Enigma的新型密碼機。這玩意兒看起來很牛哇,說不定我可以靠這個發(fā)一筆橫財呢?
于是,財迷心竅的施密特聯(lián)系上了法國情報部門的古斯塔夫·貝特蘭(GustaveBertrand)上尉,跟他吹自己手上有多少多少Enigma的絕密資料,你們感不感興趣呀7貝特蘭一聽,這敢情好啊,我這兒正愁破譯不了德國密電呢,不過你可別瞎吹,拿點干貨出來看看唄?要真是貨真價實的Enigma絕密資料,錢我這里可是“大大滴有”。發(fā)財?shù)臋C會來了,施密特可一點兒不在意當(dāng)一把賣國賊,而且他手里也確實有點干貨,比如Enigma的操作手冊、使用規(guī)范等等,最關(guān)鍵的是,他居然搞到了一些每日密鑰的表格!要知道,每日密鑰可是Enigma三個秘密的其中一個,這可絕對是極有價值的資料!施密特把這些資料統(tǒng)統(tǒng)都賣給了法國人,從中撈了多少錢我們不知道,但肯定夠他風(fēng)光一陣子的了。
法國人從賣國賊施密特手里搞到這些資料,其實是在小雷他們波蘭人開始著手破譯Enigma之前的事兒??蓡栴}是,既然法國人這么早就搞到了這些東西,那他們?yōu)樯毒蜎]在破譯Enigma的大業(yè)上搞出點啥名堂來呢?其實不是法國人不想搞,只不過他們的密碼學(xué)家還停留在比較傳統(tǒng)的以語言學(xué)家為主的配置上,并沒有像波蘭人一樣充分意識到數(shù)學(xué)家的重要性,因此法國人不可能像小雷那樣,利用高級的數(shù)學(xué)理論去研究Enigma。
盡管拿著間諜偷來的小抄,法國人對Enigma的研究還是一籌莫展,這讓貝特蘭感到十分窩火。不過幸運的是,貝特蘭是個特別有大局觀的人,他似乎意識到德國今后將要變成全歐洲甚至全世界共同的敵人,在這個節(jié)骨眼上,應(yīng)該團結(jié)一切可以團結(jié)的力量。一開始,貝特蘭當(dāng)然是先照顧一下老朋友英國,不過英國人拿了資料之后也沒搞出什么動靜,這也許讓貝特蘭感覺心里平衡了一些:你看,英國人也不比我們強到哪里去嘛!
英國人不行,還能找誰呢?貝特蘭想到了波蘭,因為法國和波蘭之前簽署過一個情報交流協(xié)議,那么把這些資料跟波蘭分享一下也是沒毛病的。1931年12月,貝特蘭約了波蘭密碼局局長格維多·蘭杰(Gwido Langer)少校碰了個頭,把施密特搞來的那些資料拿給他看。蘭杰少校一看,嚯,厲害啊,這都能被你們搞到?不過這些東西我們還真挺需要的,不瞞你說,我們密碼局在波茲南大學(xué)物色了幾個數(shù)學(xué)大牛,說不定他們以后用得上。嗯,不過,你這個每日密鑰的表格,看起來是一個月印一張,后面你們要是還能拿到,別忘了再給我抄一份啊。
貝特蘭一聽,行啊,反正只要施密特能繼續(xù)搞到更多的密鑰表格,我就把這些東西都分享給你們唄。當(dāng)然了,貝特蘭覺得,法國和英國都研究不出來的東西,波蘭人有什么天大的本事能搞出成果來?1932年,貝特蘭又陸陸續(xù)續(xù)從施密特那里收到了新的密鑰表格,然后他把這些資料分幾次交給了蘭杰。1932年9月,小雷他們?nèi)トA沙的密碼局總部正式上班,然后小雷就開始研究Enigma了,當(dāng)他把他的研究成果,也就是用群論來分析Enigma的方法交上去之后,蘭杰一看,不錯,這孩子真的很牛??!看來是時候把我壓箱底的寶貝拿出來了。
其實,小雷利用群論不僅能夠識別出弱指標(biāo)組的電文,還能夠利用這些弱指標(biāo)組來推測Enigma轉(zhuǎn)輪的接線方式。這是因為,知道了指標(biāo)組的明文和密文,就相當(dāng)于知道了從相同起始位置開始連續(xù)6個步進的置換關(guān)系,換句話說,我們有6組一—對應(yīng)的明文和密文字母,而且還知道轉(zhuǎn)輪是連續(xù)步進了6個位置。
根據(jù)Enigma的結(jié)構(gòu),小雷發(fā)現(xiàn)Enigma的3個轉(zhuǎn)輪里面,只有最右側(cè)的轉(zhuǎn)輪是每按一下鍵盤就步進一格的,中間的轉(zhuǎn)輪要等右側(cè)轉(zhuǎn)輪轉(zhuǎn)過一圈之后才會步進一格,而最左側(cè)的轉(zhuǎn)輪則要等到中間的轉(zhuǎn)輪轉(zhuǎn)過一圈之后才會步進一格——這個關(guān)系類似于我們鐘表上的時針、分針和秒針。小雷認(rèn)為,在加密指標(biāo)組時,大多數(shù)情況下Enigma應(yīng)該只有最右側(cè)的轉(zhuǎn)輪在轉(zhuǎn),而中間和左側(cè)轉(zhuǎn)輪的位置是固定不動的。就好像你盯著鐘看秒針走6下,大多數(shù)情況下分針和時針都是不動的——除非你正好趕上從54秒之后開始,才能看到分針走了一格。
這個發(fā)現(xiàn)有啥用呢?這個發(fā)現(xiàn)相當(dāng)重要!因為如果只有一個轉(zhuǎn)輪在動,那么剩下兩個轉(zhuǎn)輪產(chǎn)生的變化就可以忽略了。換句話說,只要有足夠的弱指標(biāo)組電文,小雷就可以推測出最右側(cè)轉(zhuǎn)輪的接線方式。而且有趣的是,當(dāng)時德軍的使用規(guī)范中規(guī)定,每一個月,三個轉(zhuǎn)輪的位置就會輪換,原來在中間的轉(zhuǎn)輪可能就跑到右邊去了。那么,從理論上說,只要有三個月的時間,小雷就可以推測出Enigma全部三個轉(zhuǎn)輪的接線方式,Enigma轉(zhuǎn)輪的秘密就可以完全破解了!
不過,要實現(xiàn)這個目標(biāo),小雷發(fā)現(xiàn)他的方程式里還缺少兩個已知條件:一個是連接板的狀態(tài),另一個是鍵盤上的按鍵到第一個轉(zhuǎn)輪之間的接線順序。我們前面介紹過連接板的作用,它能夠把鍵盤上的字母按兩兩一組進行交換,這種交換能夠為Enigma增加數(shù)萬億種變化,也是破譯Enigma過程中一塊非常難啃的硬骨頭。這個問題怎么解決呢?答案當(dāng)然就是法國人從施密特那里搞到的每日密鑰表格啦!1932年12月,小雷從他的領(lǐng)導(dǎo)蘭杰少校那里拿到了幾份每日密鑰表格的復(fù)印件。他一看到這些資料簡直喜出望外,因為每日密鑰里面除了轉(zhuǎn)輪的初始位置之外,也包括連接板的連法。有了這個,整個方程式里面未知的部分就只剩下按鍵的接線順賻了。
說起這個按鍵的接線順序,還真是讓小雷頗費了一番周折。為了研究Enigma,波蘭密碼局曾經(jīng)從合法渠道買到了一臺商用版的Enigma密碼機。密碼局的工程師們早就把這臺密碼機拆了裝裝了拆好幾回了,他們發(fā)現(xiàn)這臺機器鍵盤的排列順序和接線順序是一樣的,都是按打字機鍵盤的QWERTZ(英語鍵盤是QWERTY,而德語鍵盤是QWERTZ,今天的電腦鍵盤也有這樣的差別)順序排列的。小雷一開始覺得,軍用版的Enigma總不會在這上面翻花樣吧,所以他先假設(shè)軍用版Enigma的鍵盤接線順序也是一樣的,但是算了半天結(jié)果總是對不上。
起初小雷以為是自己運氣不好,因為他的計算成立的前提是指標(biāo)組的6個字母只有最右側(cè)的轉(zhuǎn)輪轉(zhuǎn)動,其他兩個轉(zhuǎn)輪不動。但是我們也說過,在少數(shù)情況下,其他兩個轉(zhuǎn)輪還是有可能會動的??墒牵?dāng)小雷發(fā)現(xiàn)所有的電文都算不出結(jié)果的時候,他的數(shù)學(xué)素養(yǎng)告訴他,這完全不符合運氣不好的概率?。∫欢ㄊ瞧渌裁吹胤匠隽藛栴}!于是,他把目光轉(zhuǎn)向了鍵盤的接線順序,難道說,軍用版Enigma的接線順序和商用版是不一樣的?!
可是,如果接線順序真的不一樣,那就頭疼了,因為誰都搞不到軍用版Enigma的真機,如果靠猜的話,這可能性也太多了!小雷決定用他的直覺賭一把,他猜以德國人的個性不會太天馬行空,如果不是按QWERTZ鍵盤原本的順頁序接上去的,那莫非是按照ABCDEF的字母表順序接上去自勺?小雷按這個順序一試,果然對了!我估計他當(dāng)時一定想放聲大笑,笑德國人的心思太簡單,也要笑自己真是個天才一據(jù)說后來英國“40號房間”的密碼學(xué)家迪爾文·諾克斯(Dilwyn Knox)知道這個答案居然如此簡單,簡直氣得直跳腳:這明明是道送分題,我怎么都沒答對呢?
既然所有的條件都已經(jīng)具備,剩下的就是根據(jù)大量的歷史電文以及從法國人那里拿到的密鑰表格來解開小雷的神秘方程式了。由于德軍要求每月輪換轉(zhuǎn)輪的位置,小雷很快就通過前面幾個月的電文資料,成功解出了全部三個轉(zhuǎn)輪的接線方式。這真的是一個偉大的成就,想想看,在并沒有見過軍用版Enigma真機的情況下,僅靠有限的資料,用純數(shù)學(xué)方法就準(zhǔn)確還原了三個轉(zhuǎn)輪的內(nèi)部結(jié)構(gòu),小雷的這一工作堪稱是密碼學(xué)史上最重要的成就之一,這樣的評價應(yīng)該說一點都不夸張。不過,小雷在自己的文章中還是十分坦誠,他認(rèn)為法國朋友弄來的那些資料對于成功破解轉(zhuǎn)輪問題是“決定性的”。從這個角度來看,Enigma的不敗金身還是毀在了一位“德奸”手里。
破解了三個轉(zhuǎn)輪的秘密之后,波蘭密碼局技術(shù)處的工程師們把之前買來的那臺商用版Enigma密碼機進行了一番“魔改”——其實就是修改了鍵盤和三個轉(zhuǎn)輪的接線——讓它變身成了一臺軍用版Enigma密碼機。1933年初,波蘭密碼局批準(zhǔn)小雷的兩個小伙伴齊加爾斯基和魯日茨基也加入破譯Enigma的秘密任務(wù)。小雷終于不再孤軍奮戰(zhàn)啦,波蘭三杰也終于組成了一個強大的團隊。接下來,他們要共同完成一個更具有挑戰(zhàn)性的任務(wù),那就是破解Enigma的最后一個秘密——每日密鑰。
(小雷和他的同事們是如何破解Enigma每日密鑰的呢?“二戰(zhàn)”陰影籠罩下的波蘭又將面臨怎樣的命運呢?我們下期繼續(xù)講。)