花卷
經(jīng)過(guò)艱苦卓絕的努力,波蘭數(shù)學(xué)家雷耶夫斯基和他的同事們終于成功地設(shè)計(jì)出了一套破譯Enigma每日密鑰的方法,波蘭人也因此在情報(bào)方面勝了德國(guó)人一招。但同時(shí),德國(guó)人也在不斷調(diào)整和完善Enigma的規(guī)格和運(yùn)用,這給波蘭人的破譯工作制造了很大的困難。面對(duì)一次又—次的挑戰(zhàn),雷耶夫斯基和他的同事們也創(chuàng)造出了循環(huán)測(cè)定機(jī)、穿孔紙片等裝置和方法來(lái)加以應(yīng)對(duì)。
我們之前提到過(guò),1938年,德國(guó)人對(duì)指標(biāo)組的加密方式來(lái)了一個(gè)徹底大換血,這讓小雷之前搞的循環(huán)測(cè)定機(jī)變成了一堆廢鐵。還好,小雷的同事小齊(齊加爾斯基)特別靠譜,他發(fā)明的穿孔紙片法拯救了波蘭人于水火。不過(guò)小雷在這個(gè)時(shí)候也并沒(méi)有閑著,他覺(jué)得小齊這個(gè)穿孔紙片的原理挺棒的,就是用起來(lái)比較麻煩,要是能把這個(gè)過(guò)程自動(dòng)化,用機(jī)器代替人工來(lái)完成那多好呀。
這個(gè)主意真的是太妙了,說(shuō)干就干。于是,小雷設(shè)計(jì)了一臺(tái)大機(jī)器,這臺(tái)大機(jī)器上有6組Enigma的轉(zhuǎn)輪,每組轉(zhuǎn)輪都可以模擬真正Enigma轉(zhuǎn)輪的步進(jìn)旋轉(zhuǎn)——簡(jiǎn)單來(lái)說(shuō),這臺(tái)機(jī)器就相當(dāng)于同時(shí)控制6臺(tái)Enigma,測(cè)試轉(zhuǎn)輪位置的不同組合。這臺(tái)機(jī)器的原理和小齊的穿孔紙片本質(zhì)上是一樣的,都是利用“samiczki”——也就是加密后的指標(biāo)組中1/4、2/5、3/6位置上出現(xiàn)相同字母的情況——來(lái)尋找滿足條件的轉(zhuǎn)輪位置組合。不同的是,小雷這臺(tái)機(jī)器是全自動(dòng)的,而且是6組轉(zhuǎn)輪一起找,那效率當(dāng)然就高多了。
我們知道,Enigma有3個(gè)轉(zhuǎn)輪,每個(gè)轉(zhuǎn)輪有26種位置,那么3個(gè)轉(zhuǎn)輪就一共有26x26x26=17 576種位置。小雷的機(jī)器上面有6組轉(zhuǎn)輪一起找,假設(shè)每秒可以嘗試一種轉(zhuǎn)輪位置,那么只需要17 576/6≈3 000秒就可以嘗試所有的可能性了,還不到一個(gè)小時(shí)(根據(jù)小雷的說(shuō)法,實(shí)際需要的時(shí)間差不多是兩個(gè)小時(shí),這可能包括了尋找和收集“samiczki”所需要的時(shí)間)!當(dāng)然了,轉(zhuǎn)輪本身還有6種排列順序,而且到了1938年,這個(gè)排列順序還是每天換的,這可咋辦呢?波蘭人用了個(gè)簡(jiǎn)單粗暴的辦法,既然轉(zhuǎn)輪有6種排列順序,那我就造6臺(tái)機(jī)器唄! 波蘭人給小雷設(shè)計(jì)的這臺(tái)機(jī)器起名叫“炸彈機(jī)(bomba,就是波蘭語(yǔ)中的bomb -詞)”。這個(gè)名字聽起來(lái)特別出戲也特別搞笑,關(guān)于為啥要叫“炸彈”,也有幾種不同的說(shuō)法。有人說(shuō)這個(gè)名字是波蘭三杰中最年輕的魯日茨基給起的,意思是一種冰激凌的名字。這個(gè)說(shuō)法聽起來(lái)實(shí)在是有點(diǎn)扯,冰激凌跟破譯密碼怎么看都沒(méi)有半毛錢關(guān)系啊。那么,設(shè)計(jì)這臺(tái)機(jī)器的小雷本人又怎么說(shuō)呢?也是奇了怪了,小雷對(duì)這個(gè)名字的來(lái)歷好像諱莫如深,他在1981年的那篇文章中說(shuō):“我們管它叫炸彈機(jī),是因?yàn)閷?shí)在起不出什么更好的名字了。”
小雷給出的這個(gè)理由也真的是太不負(fù)責(zé)任了。不過(guò)我們可以確定的是, “炸彈”這個(gè)名字肯定是密碼局工作人員叫的一種“外號(hào)”,后來(lái)因?yàn)椤捌鸩怀鍪裁锤玫拿帧?,大家就把這個(gè)外號(hào)當(dāng)成正式的名字了。那么這個(gè)外號(hào)又是怎么來(lái)的呢?答案據(jù)說(shuō)很簡(jiǎn)單粗暴——是因?yàn)檫@玩意兒工作起來(lái)實(shí)在是太!吵!了!對(duì),就跟個(gè)大炸彈似的,轟隆隆,轟隆隆,相當(dāng)擾民。據(jù)說(shuō),還有些工作人員給它起名叫“洗衣機(jī)”,想想就特別有畫面感是不是?
小雷的炸彈機(jī)大約是1938年10月左右鼓搗出來(lái)的,有了這種神器,哪怕德國(guó)人每天都換轉(zhuǎn)輪順序,波蘭人也可以在兩個(gè)小時(shí)之內(nèi)破譯當(dāng)天的每日密鑰,然后就可以大張旗鼓地解密這一天的所有電文了,這簡(jiǎn)直是爽翻了。波蘭人本以為可以高枕無(wú)憂一段時(shí)間了,沒(méi)想到德國(guó)人實(shí)在太“雞血”,新的挑戰(zhàn)很快就降臨了。
1938年12月,也就是炸彈機(jī)搞出來(lái)短短兩個(gè)月之后,德國(guó)人使出了一個(gè)超級(jí)必殺技——原本Enigma上只有3個(gè)轉(zhuǎn)輪換來(lái)?yè)Q去,現(xiàn)在德國(guó)人又給加了兩個(gè),變成了5個(gè)轉(zhuǎn)輪!當(dāng)然,Enigma機(jī)器上依然還是有3個(gè)槽位,機(jī)器本身的結(jié)構(gòu)沒(méi)有變,但是現(xiàn)在可以從5個(gè)轉(zhuǎn)輪里面選出3個(gè),再排列成不同的順序,利用我們數(shù)學(xué)課上學(xué)習(xí)的排列組合知識(shí),可以計(jì)算出轉(zhuǎn)輪的排列方式總共有5x4x3=60種,從原來(lái)的6種足足增加到了它的10倍!
現(xiàn)在擺在小雷面前的問(wèn)題非常棘手。首先,這兩個(gè)新轉(zhuǎn)輪的接線方式完全是未知的;其次,即便知道了新轉(zhuǎn)輪的接線方式,密碼局也必須再造出54臺(tái)炸彈機(jī)才能覆蓋所有可能的轉(zhuǎn)輪排列順序。要知道,造一臺(tái)炸彈機(jī)很貴的,波蘭也不是什么有錢的國(guó)家,這預(yù)算妥妥地申請(qǐng)不下來(lái)??!但如果不解決這個(gè)問(wèn)題,波蘭人就只能碰運(yùn)氣了——假設(shè)某一天德國(guó)人的每日密鑰恰好沒(méi)有使用這兩個(gè)新轉(zhuǎn)輪,那原來(lái)的炸彈機(jī)還能搞定。但這樣的好運(yùn)氣太難碰到了,大部分日子里,波蘭人都只能望機(jī)興嘆。
這可怎么辦呢?作為一個(gè)數(shù)學(xué)家,小雷還是很腳踏實(shí)地的,他的想法是,無(wú)論能不能造出那么多炸彈機(jī),如果能夠破解兩個(gè)新轉(zhuǎn)輪的接線方式,那將來(lái)總歸是可以派上用場(chǎng)的。然而,就是這件事也并沒(méi)有那么容易。未知的轉(zhuǎn)輪只有兩個(gè),而且Enigma機(jī)器本身的結(jié)構(gòu)沒(méi)有變化,但是別忘了,德國(guó)人已經(jīng)全面改變了指標(biāo)組的加密方式,小雷之前發(fā)現(xiàn)的那個(gè)循環(huán)模式已經(jīng)沒(méi)用了,那要怎么樣才能計(jì)算出這兩個(gè)新轉(zhuǎn)輪的接線方式呢?
1938年底到1939年初的這段時(shí)間,德國(guó)人在Enigma上的動(dòng)靜上為什么這么大呢?正所謂司馬昭之心路人皆知,德國(guó)人肯定是要搞事情了唄。我們之前講過(guò),波蘭是德國(guó)與蘇聯(lián)之間的一塊重要的緩沖地帶,因此讓波蘭保持獨(dú)立是牽制德國(guó)的一個(gè)重要砝碼。1939年,英國(guó)和法國(guó)宣布與波蘭結(jié)盟,并放出話來(lái)說(shuō)只要德國(guó)威脅到波蘭獨(dú)立,英法決不會(huì)坐視不管。希特勒聽說(shuō)之后一拍大腿,好哇,你們跟波蘭拜了把子,莫不是要把我德國(guó)給包圍起來(lái)嗎?這種事情我可忍不了。
德國(guó)原本跟波蘭是簽過(guò)一個(gè)互不侵犯條約的,但是一聽說(shuō)波蘭又轉(zhuǎn)過(guò)頭跟英法結(jié)了盟,希特勒一怒之下把這個(gè)條約給撕了。這件事傳到波蘭,可把波蘭人給嚇尿了,你說(shuō)英國(guó)和法國(guó)離得那么遠(yuǎn),萬(wàn)一德國(guó)真打過(guò)來(lái),根本扛不了多久就得被干趴下,他們就算想幫我也來(lái)不及??!眼看戰(zhàn)爭(zhēng)一觸即發(fā),小雷他們也挺焦慮的——畢竟這些研究成果耗費(fèi)了他們數(shù)年的心血,一旦落在德國(guó)人手里,那他們一定會(huì)迅速部署新的密碼裝置,破譯Enigma的這些努力也就前功盡棄了。
面對(duì)如此嚴(yán)峻的形勢(shì),不得不說(shuō)波蘭人做了一個(gè)十分英明的決定——既然這些東西不能落在德國(guó)人手里,那交給英國(guó)和法國(guó)恐怕是最好的選擇了——因?yàn)橛⒎ê筒ㄌm是盟友,而且在“一戰(zhàn)”時(shí)他們就是對(duì)抗德國(guó)的老功臣,這濃眉大眼的怎么都不會(huì)叛變的是吧。另一個(gè)原因,就是英法在密碼學(xué)研究方面都還算有兩把刷子,盡管在Enigma這件事上他們沒(méi)有波蘭人走得遠(yuǎn),但既然現(xiàn)在波蘭人給鋪好了路,相信他們一定有能力把這條路繼續(xù)走下去。
1939年7月25日和26日,波蘭密碼局長(zhǎng)格維多-蘭杰上校召集了英國(guó)和法國(guó)情報(bào)部門的代表在華沙開了兩天的會(huì)。作為情報(bào)同盟,他們?nèi)齻€(gè)國(guó)家其實(shí)是經(jīng)常在一起開會(huì)的,但這次開會(huì)的意義可以說(shuō)是空前重大。作為破譯Enigma的核心人物,小雷當(dāng)然也去開會(huì)了。原本波蘭人的打算是,眼看要打仗了,在破譯Enigma這個(gè)問(wèn)題上,大家互通一下有無(wú),分享一下各自的成果。但出乎意料的是,英國(guó)和法國(guó)直接兩手一攤,說(shuō)我們真沒(méi)什么成果,Enigma那玩意兒太妖了,我們?cè)趺炊颊幻靼装。?/p>
小雷一聽,行吧,反正波蘭朝不保夕,我就給你們看看這幾年我們都干了啥。首先,小雷拿出5個(gè)Enigma轉(zhuǎn)輪,你看,這些都是我們根據(jù)電文計(jì)算出來(lái)的,跟真機(jī)的轉(zhuǎn)輪一模一樣哦。接下來(lái),小雷拿出兩臺(tái)波蘭復(fù)刻版的Enigma密碼機(jī),你看,這兩臺(tái)機(jī)器是我們自己造的,真機(jī)什么樣我們沒(méi)見過(guò),但差不多就這么回事吧。除此之外,還有齊加爾斯基發(fā)明的這個(gè)穿孔紙片,再加上這幾臺(tái)炸彈機(jī),這些東西你們帶回去研究一下先。
來(lái)開會(huì)的法國(guó)代表是我們的老朋友古斯塔夫·貝特蘭上尉,大家應(yīng)該還記得他買通德奸偷資料給波蘭的故事。貝特蘭看見這些玩意兒之后眼珠子差點(diǎn)掉出來(lái),心想當(dāng)初給你們那些資料的時(shí)候根本沒(méi)想到你們能搞到這種程度啊,波蘭還真是臥虎藏龍,轉(zhuǎn)眼瞥了一下英國(guó)人,嘖嘖,看來(lái)你們也沒(méi)波蘭人厲害嘛。蘭杰跟貝特蘭說(shuō),這兩臺(tái)復(fù)刻版的Enigma機(jī)器你都帶走吧,其中一臺(tái)還要拜托你想辦法送到英吉利海峽另一邊的英國(guó)去。貝特蘭說(shuō)放心,這件事就包在我身上了。
除了給法國(guó)人布置了任務(wù)之外,小雷還給英國(guó)人留了個(gè)作業(yè)?,F(xiàn)在德國(guó)人有5個(gè)轉(zhuǎn)輪,一其60種排列順序,你看造60臺(tái)炸彈機(jī)不太現(xiàn)實(shí),但是做60套穿孔紙片好像還問(wèn)題不大——畢竟只要有足夠的人手就搞定了。聽說(shuō)你們英國(guó)的密碼部門兵精糧足,要不這個(gè)任務(wù)就交給你們了吧。
接下來(lái)的事情大家在歷史課本上應(yīng)該都學(xué)過(guò)了。1939年9月1日,德國(guó)對(duì)波蘭發(fā)動(dòng)了閃電戰(zhàn),第二次世界大戰(zhàn)正式爆發(fā)。英國(guó)和法國(guó)說(shuō)好了要保護(hù)波蘭,但是正如波蘭人一開始所預(yù)料的那樣,英法能給予的支援對(duì)德國(guó)來(lái)說(shuō)簡(jiǎn)直就是撓癢癢。更可氣的是,開戰(zhàn)之前,德國(guó)還跟蘇聯(lián)秘密簽訂了一個(gè)所謂的“互不侵犯”條約,里面說(shuō)如果德國(guó)打波蘭,蘇聯(lián)就也可以對(duì)波蘭出兵——這不是明擺著狼狽為奸要把波蘭給瓜分了嘛。果不其然,9月17日,蘇聯(lián)軍隊(duì)就浩浩蕩蕩地開進(jìn)波蘭了。
德國(guó)跟蘇聯(lián)一起上,波蘭立馬就撐不住了,但是波蘭人非常有骨氣,面對(duì)如此糟糕的局面,波蘭政府自始至終也沒(méi)有宣布投降,而是搞起了游擊戰(zhàn)。眼看德國(guó)人就要打過(guò)來(lái)了,密碼局也開始張羅著跑路,但是在跑路之前,為了不讓德國(guó)人發(fā)現(xiàn)他們已經(jīng)破譯了Enigma,他們銷毀了相關(guān)的所有資料和設(shè)備。在貝特蘭上尉的安排下,15名密碼局成員,包括小雷和他的兩位同事,連夜撤離到了法國(guó)巴黎附近的一座城堡里。但由于所有的設(shè)備和資料都已經(jīng)銷毀了,因此他們也沒(méi)能夠繼續(xù)進(jìn)行Enigma的破譯工作。也就是說(shuō),從那次會(huì)議開始,破譯Enigma的接力棒就已經(jīng)交到了英國(guó)和法國(guó)手上,波蘭人則功成名就,退居幕后去了。
至于小雷他們后來(lái)的境況,只能說(shuō)是跌宕起伏。法國(guó)淪陷之后,他們被迫輾轉(zhuǎn)逃亡英國(guó),但在途中蘭杰被德國(guó)人抓走,魯日茨基則死于沉船,只有小雷和小齊兩個(gè)人成功逃到了英國(guó),并加入了一個(gè)波蘭軍事組織?!岸?zhàn)”結(jié)束后,小雷回到波蘭與親人團(tuán)聚。到了20世紀(jì)70年代,一些作者開始出版講述Enigma破譯過(guò)程的書,小雷也看了幾本,發(fā)現(xiàn)這里面很多東西都是瞎扯淡,特別是對(duì)波蘭人的貢獻(xiàn),要么輕描淡寫,要么寫得驢唇不對(duì)馬嘴。
于是,小雷寫了好幾篇文章,詳細(xì)回憶了他和他的兩位同事為破譯Enigma所做的工作,這才還原了歷史的真相。他還對(duì)一些不太靠譜的說(shuō)法進(jìn)行了辟謠,比如一位英國(guó)的密碼學(xué)家在他的書里說(shuō)波蘭人之所以把成果分享給英國(guó)和法國(guó)是因?yàn)樗麄兣錾狭烁悴欢ǖ碾y題而進(jìn)行不下去了。小雷對(duì)此大為惱火,心想你們英國(guó)人啥都沒(méi)搞出來(lái)居然還倒打一耙,我們當(dāng)時(shí)這樣做純粹是因?yàn)閼?zhàn)爭(zhēng)一觸即發(fā),不想讓之前的工作白白浪費(fèi),而所謂的困難是不存在的,因?yàn)榈聡?guó)人加了兩個(gè)轉(zhuǎn)輪,這也只是“量變”而不是“質(zhì)變”,我們只不過(guò)是沒(méi)時(shí)間了。
1980年2月13日,雷耶夫斯基因心臟病去世,享年74歲。2000年,雷耶夫斯基和齊加爾斯基被授予波蘭大十字復(fù)興勛章,這也是波蘭平民所能獲得的第二高級(jí)別的榮譽(yù)。2014年,電氣和電子工程師協(xié)會(huì)(IEEE)授予雷耶夫斯基、齊加爾斯基和魯日茨基“IEEE里程碑獎(jiǎng)”,這一獎(jiǎng)項(xiàng)用來(lái)表彰那些曾經(jīng)改變世界的偉大成就。