劉聲遠(yuǎn)
二戰(zhàn)中的場(chǎng)景。(效果圖)
第二次世界大戰(zhàn)(以下簡(jiǎn)稱二戰(zhàn))期間的1939年,德軍開始采用一種極具破壞力的新戰(zhàn)術(shù)——閃電戰(zhàn)。由德軍坦克和戰(zhàn)機(jī)執(zhí)行的閃電戰(zhàn),令整個(gè)歐洲臣服于德國(guó)膝下。閃電戰(zhàn)就是突襲,它需要快捷通信。因此,無線電通信對(duì)于德軍的突襲計(jì)劃來說至關(guān)重要。當(dāng)時(shí),天空中每天都布滿德軍的無線電信號(hào)。為了征服歐洲,德軍最高司令部訓(xùn)練了成千上萬名無線電報(bào)員。他們的任務(wù)是在任何狀況下解讀莫爾斯電報(bào)電碼。但這無疑存在一個(gè)問題:怎樣為這些電報(bào)信息保密?
為此,德軍采納了一種看似戰(zhàn)無不勝的加密機(jī)——恩尼格瑪機(jī)。恩尼格瑪機(jī)把電報(bào)信息中的字母一個(gè)一個(gè)亂排,最終形成的一串字母在敵方看來完全不知所云。但當(dāng)接收方的德軍電報(bào)員(簡(jiǎn)稱收?qǐng)?bào)員)把加密信息輸入自己的恩尼格瑪機(jī)后,真實(shí)信息就會(huì)顯露出來。以這種方式,德軍的戰(zhàn)爭(zhēng)計(jì)劃一直以來被徹底保密。德軍總部從未動(dòng)搖過自己對(duì)恩尼格瑪機(jī)保密性的信心。于是,他們把這種加密機(jī)部署到整個(gè)歐洲戰(zhàn)場(chǎng)的德軍部隊(duì)。
其實(shí),早在二戰(zhàn)開始之前,隨著希特勒準(zhǔn)備發(fā)動(dòng)侵略戰(zhàn),空中電波就充溢加密信息。破譯德軍密碼,成為一支英國(guó)特別情報(bào)部隊(duì)的首要任務(wù)。1938年,這支被稱為“政府密碼學(xué)?!钡牟筷?duì),搬進(jìn)了位于英國(guó)首都倫敦以北大約80千米處的一座豪華別墅——布萊切利園。從這座別墅的頂樓房間,無線電報(bào)員與遍布英國(guó)的竊聽站保持聯(lián)絡(luò),而這些竊聽站攔截的正是德軍的電報(bào)信息。布萊切利園在英軍中的代碼是“X站”,也是“政府密碼學(xué)?!钡拇Q。破譯恩尼格瑪機(jī)密碼無疑是一項(xiàng)巨大挑戰(zhàn),需要天才。于是,“政府密碼學(xué)?!遍_始招募這方面的高手。最終,人類學(xué)家、埃及學(xué)家、古生物學(xué)家、律師、數(shù)學(xué)家和猜謎愛好者等各種背景的人進(jìn)入了這所“學(xué)?!?。與英軍其他部門不同的是,在布萊切利園,軍事紀(jì)律、制服和官階都不重要,唯一重要的就是破解恩尼格瑪機(jī)密碼,越快越好。
二戰(zhàn)期間盟軍破譯恩尼格瑪機(jī)密碼的主要場(chǎng)所之一——布萊切利園。
數(shù)學(xué)家在破解恩尼格瑪機(jī)密碼的過程中起著很重要的作用,這是因?yàn)檫@種密碼的驚人復(fù)雜性。只有運(yùn)用一種全新的解密手段,才可能破解這種密碼。但要想保證布萊切利園解密工作的成功,絕對(duì)保密也是必須的。就算是這支特別情報(bào)部隊(duì)中的一些人,當(dāng)時(shí)也不知道自己的工作究竟是什么。其中一人回憶說,當(dāng)時(shí)英軍擊落了一架德軍戰(zhàn)機(jī),在機(jī)上發(fā)現(xiàn)的一本密碼冊(cè)被緊急送到布萊切利園。當(dāng)時(shí)沒有用塑料袋之類的東西來包裝這本密碼冊(cè),他拿到的這本密碼冊(cè)上有一大團(tuán)血跡,血跡中央還未干。此時(shí),他一下子意識(shí)到了自己的工作是什么。
德軍之所以對(duì)恩尼格碼機(jī)信心百倍,是因?yàn)楸M管它的基本原理很簡(jiǎn)單,它卻能把信息以幾乎無窮無盡的方式亂排(加密)。在恩尼格瑪機(jī)的打字鍵盤上按下一個(gè)字母鍵,電流從鍵盤字母發(fā)出,經(jīng)過插接板和一系列轉(zhuǎn)子,再經(jīng)過插接板轉(zhuǎn)化(干擾)后,在亮燈字母盤上點(diǎn)亮一個(gè)與原輸入字母完全不同的字母。正因?yàn)檫@種加密方式的信息組合數(shù)為天文數(shù)字,所以德軍堅(jiān)信恩尼格瑪機(jī)是絕對(duì)安全的。
事實(shí)上,恩尼格瑪機(jī)起初是作為一種商業(yè)加密裝置來研發(fā)的,并于20世紀(jì)20年代在英國(guó)倫敦注冊(cè)專利。德國(guó)銀行和鐵路是最早采用恩尼格瑪機(jī)的部門之一,但德軍很快就意識(shí)到了這種加密裝置的軍事價(jià)值。德軍戰(zhàn)地電報(bào)員每天都要從營(yíng)地接收一套新指令來設(shè)置恩尼格瑪機(jī)。他們必須對(duì)指令做3重設(shè)置,以確保發(fā)報(bào)機(jī)和收?qǐng)?bào)機(jī)能匹配。
第一重設(shè)置,是確定使用多個(gè)(通常為5個(gè))轉(zhuǎn)子中的哪3個(gè),以及確定這些轉(zhuǎn)子的使用順序。轉(zhuǎn)子是恩尼格瑪機(jī)最核心的加密部位之一,轉(zhuǎn)子內(nèi)部有交叉連線系統(tǒng)。每個(gè)鍵盤字母?jìng)鱽淼碾娏鹘?jīng)過每個(gè)轉(zhuǎn)子時(shí),信號(hào)都會(huì)被干擾(改變)。
第二重設(shè)置,是改變每個(gè)轉(zhuǎn)子的連線。每個(gè)轉(zhuǎn)子上有A~Z這26個(gè)字母的觸點(diǎn),收?qǐng)?bào)員要確定使用每個(gè)轉(zhuǎn)子上的哪一個(gè)觸點(diǎn)。
第三重設(shè)置是設(shè)置插接板。發(fā)報(bào)員使用這套當(dāng)日的秘密指令來設(shè)置恩尼格瑪機(jī),對(duì)電報(bào)信息進(jìn)行加密。插接板位于恩尼格瑪機(jī)鍵盤的前方,插接板上有26個(gè)插座,輸入鍵盤的字母被插接板轉(zhuǎn)換為另一個(gè)字母,這個(gè)字母與原輸入字母完全不同,而插接板轉(zhuǎn)換字母的組合總數(shù)也是天文數(shù)字。
當(dāng)恩尼格瑪機(jī)設(shè)置好之后,信息被一個(gè)字母接一個(gè)字母進(jìn)行轉(zhuǎn)換加密。加密后的信息通過莫爾斯電碼發(fā)給接收端的密碼員(收?qǐng)?bào)員)。德軍之所以對(duì)恩尼格瑪機(jī)的保密性篤信不疑,首先是因?yàn)榧词箶撤阶g碼員截獲了電報(bào),那也只是得到了完全不知所云的一連串字母,要想破解這樣的加密電文需要極大的耐性。事實(shí)上,在“政府密碼學(xué)?!苯⒑蟮膸讉€(gè)月里,新招的譯碼員對(duì)這些電文一籌莫展。
圖為一臺(tái)德軍用三轉(zhuǎn)子恩尼格瑪機(jī)的接線板、鍵盤、顯示板和轉(zhuǎn)子。
這幅恩尼格瑪機(jī)原理圖是示了按下A鍵后機(jī)器如何將它顯示成D鍵(燈D發(fā)亮),而按下D鍵的同時(shí)燈A也會(huì)發(fā)亮,但按下A鍵永遠(yuǎn)不會(huì)使燈A發(fā)亮。
恩尼格瑪機(jī)轉(zhuǎn)子工作原理圖。連續(xù)按兩次A鍵后,電流會(huì)流經(jīng)所有轉(zhuǎn)子,通過反射器后分別向反方向流到G燈和C燈。注意:轉(zhuǎn)子上的灰色線條代表了其他可能的線路。連續(xù)按兩次A鍵會(huì)得到不同的結(jié)果,第一次得到的是G,第二次是C。這是因?yàn)樵诘谝淮伟聪翧鍵后最右邊轉(zhuǎn)子會(huì)旋轉(zhuǎn)一點(diǎn)點(diǎn),這就將A鍵發(fā)出的電流送到了一個(gè)完全不同的路線中。
對(duì)恩尼格碼機(jī)密碼的破解嘗試,早在二戰(zhàn)前就已開始。從1931年起,連續(xù)7個(gè)年頭,一名手頭缺錢的德軍文職人員秘密獲取了超過300份文件,其中包括恩尼格瑪機(jī)的指令和設(shè)置。最終他把這些文件賣給了法國(guó)秘密情報(bào)局,但法國(guó)譯碼員對(duì)這些文件沒什么興趣。接著,這些偷來的文件被提供給了英國(guó)秘密情報(bào)局。當(dāng)時(shí),布萊切利園不太相信恩尼格瑪機(jī)密碼能被破譯,于是禮貌地拒絕了這些文件。最終,這些文件落入波蘭人手中。
由于德軍對(duì)波蘭的入侵迫在眉睫,波蘭人對(duì)這些文件的態(tài)度截然不同。包括雷耶夫斯基在內(nèi)的三位年輕的波蘭數(shù)學(xué)家,立即開始著手破解恩尼格瑪機(jī)。他們很快就意識(shí)到,必須首先搞清德國(guó)人怎樣連接恩尼格瑪機(jī)的打字鍵盤和第一個(gè)轉(zhuǎn)子。因?yàn)殒I盤上的任何字母鍵都可能與任何轉(zhuǎn)子連接,所以連線方式組合數(shù)難計(jì)其數(shù)。但如果波蘭人能破解這一連接,就有可能最終破解恩尼格瑪機(jī)密碼。
雷耶夫斯基在絞盡腦汁后靈光閃現(xiàn):雖然轉(zhuǎn)子的選擇及轉(zhuǎn)子使用順序組合多得不計(jì)其數(shù),但如果德國(guó)發(fā)電報(bào)密碼員(簡(jiǎn)稱發(fā)報(bào)員)嫌太麻煩,會(huì)不會(huì)干脆就把轉(zhuǎn)子選擇及使用順序簡(jiǎn)單設(shè)置成APED?他這么一試,果然成功了。就這樣,他一下就弄明白了恩尼格瑪機(jī)的內(nèi)部連接方式。然而,1939年,就在入侵波蘭的當(dāng)晚,德軍給恩尼格瑪機(jī)添加了更多轉(zhuǎn)子及轉(zhuǎn)子使用順序。這樣一來,波蘭人就不再能破譯德軍的任何密電。
絕望之下,波蘭邀請(qǐng)英國(guó)和法國(guó)官員參加在波蘭首都華沙附近森林里舉行的秘密會(huì)議。波蘭人介紹了自己之前是怎樣破解恩尼格瑪機(jī)的。英國(guó)人聞言目瞪口呆。這次會(huì)議舉行的幾周后,德軍占領(lǐng)了波蘭。波蘭譯碼員把自己仿制的恩尼格瑪機(jī)送給了布萊切利園。但因德國(guó)人增加了轉(zhuǎn)子數(shù),這就意味著英國(guó)譯碼員的工作難度也極大。
雷耶夫斯基及其破解的恩尼格瑪機(jī)。
隨著被截獲的德軍加密電報(bào)越來越多,英國(guó)譯碼員們終于開始找到一種把不可能化為可能的方法。這得從這些加密信息本身說起。英國(guó)軍方、郵局甚至倫敦警察局聯(lián)手,在全球多個(gè)地方建立了無線電竊聽站,統(tǒng)稱“Y站”。分布在全球各地的電報(bào)員全天候雷耶夫斯基及其破解的恩尼格瑪機(jī)不分晝夜,記下毫無意義的一組組加密字母。它們就是布萊切利園的原材料。
英國(guó)譯碼員破譯恩尼格瑪機(jī)密碼的途徑,始于波蘭人的另一項(xiàng)突破。德國(guó)人在設(shè)置恩尼格瑪機(jī)時(shí)遵循的特殊程序之一,被稱為“雙指示器”,而它正是恩尼格瑪機(jī)的軟肋。每天都有指令表,指示德軍電報(bào)員怎樣設(shè)置自己的恩尼格瑪機(jī)。這些指令包括轉(zhuǎn)子順序和每個(gè)轉(zhuǎn)子上的字母位置,以及怎樣連接插接板。同一網(wǎng)絡(luò)中的恩尼格瑪機(jī)必須設(shè)置相同,整個(gè)網(wǎng)絡(luò)才能運(yùn)作。如果敵人截獲了指令表,就能解讀任何加密信息。為防止這一點(diǎn),德軍采取了防范措施,那就是每條信息都有自己的秘密轉(zhuǎn)子設(shè)定,由電報(bào)員自己設(shè)置。首先,電報(bào)員必須隨機(jī)選擇3個(gè)字母,并且把它們非加密發(fā)給接收端的收?qǐng)?bào)員,讓收?qǐng)?bào)員同樣連接其恩尼格瑪機(jī)。接著,發(fā)報(bào)員必須把自己加密所用的真實(shí)信息設(shè)置條件告知收?qǐng)?bào)員,但不能讓攔截者讀懂這些設(shè)置條件。為此,德軍使用恩尼格瑪機(jī)自身來隱藏這些信息設(shè)置。
譯碼員在布萊切利園中工作。(1943年照片)
于是,發(fā)報(bào)員加密第二組3個(gè)字母,作為機(jī)密信息本身的設(shè)置。例如,發(fā)報(bào)員想到的字母是SWJ,當(dāng)其鍵入這3個(gè)字母時(shí),亮燈鍵盤上點(diǎn)亮的是ITV。由于德軍擔(dān)心無線電傳輸?shù)陌踩?,因此他們要求發(fā)報(bào)員鍵入信息設(shè)置兩次。這樣,發(fā)報(bào)員就鍵入SWJ SWJ,并記錄亮燈鍵盤上點(diǎn)亮的6個(gè)鍵。事實(shí)上,這是一個(gè)嚴(yán)重錯(cuò)誤——密碼學(xué)中很忌諱重復(fù)。信息設(shè)置的重復(fù),讓譯碼員得到了一條有助于破解密碼的線索。通過加密相同字母串兩次,德軍就在不經(jīng)意中間接暴露了恩尼格瑪機(jī)的轉(zhuǎn)子設(shè)置。
很快又有了第二條線索。波蘭人注意到了恩尼格瑪機(jī)轉(zhuǎn)子工作方式中的一個(gè)特點(diǎn)。在截獲密電中的大約1/8,恩尼格瑪機(jī)將信息設(shè)置中的一個(gè)字母兩次轉(zhuǎn)換成同樣的加密字母。兩次發(fā)送信息設(shè)置這一錯(cuò)誤,暴露了恩尼格瑪機(jī)的一個(gè)弱點(diǎn)。信息設(shè)置的目的是要產(chǎn)生隨機(jī)加密字母,但在一些特定條件下,恩尼格瑪機(jī)的加密遠(yuǎn)遠(yuǎn)沒有德軍所相信的那么隨機(jī)。其實(shí),像恩尼格瑪機(jī)這樣的確定型加密機(jī),不可能產(chǎn)生真正的隨機(jī)序列。
正是這個(gè)錯(cuò)誤讓恩尼格瑪機(jī)露出了馬腳。布萊切利園稱這些重復(fù)字母為“雌性”。恩尼格瑪機(jī)只在一定的設(shè)置條件下才能產(chǎn)生“雌性”。如果譯碼員從這些“雌性”突破,就能找到當(dāng)天的信息設(shè)置。譯碼員們制作了大量大卡片,卡片上以字母表格方式打出空洞,模擬能產(chǎn)生“雌性”的轉(zhuǎn)子位置。通過彼此重疊這些卡片,譯碼員就可能從轉(zhuǎn)子位置排列中找到恩尼格瑪機(jī)當(dāng)天的轉(zhuǎn)子設(shè)置。當(dāng)然,這樣的解碼工作非常繁重,常常需要多人通宵達(dá)旦合作。
到了1941年春,地中海海戰(zhàn)升級(jí)。希特勒當(dāng)時(shí)已經(jīng)與意大利法西斯主義頭目墨索里尼媾和。這兩大魔頭夢(mèng)想建立全球帝國(guó)。盟軍知道德國(guó)人把恩尼格瑪機(jī)給了意大利人。在嘗試破譯意大利密電的英國(guó)譯碼員中,有一位是19歲的列弗。有時(shí),他要花整夜時(shí)間來假定三只不同轉(zhuǎn)子上的字母排列順序。列弗最終破譯了一份意大利電文:“今天零下3度。”僅此而已。列弗等人由此得出意大利海軍將在3天后行動(dòng)。但意大利人為什么會(huì)用這樣的電文來傳遞這個(gè)信息?沒有答案。
當(dāng)時(shí),由康寧漢姆指揮的英軍艦隊(duì)駐扎在埃及的亞歷山大港。布萊切利園的列弗等人截獲的一份電報(bào),顯示了作戰(zhàn)命令、意大利巡洋艦和潛艇數(shù)量、艦艇前往方向等大量信息。意大利海軍艦隊(duì)當(dāng)時(shí)正在向希臘海岸的馬塔潘角集結(jié),計(jì)劃在午夜攻擊一支英國(guó)護(hù)航隊(duì)。埃及亞歷山大城是間諜窩子??祵帩h姆面臨的難題是:怎樣依據(jù)這份密電行事,但又不會(huì)暴露他的計(jì)劃?如果他率領(lǐng)英國(guó)艦隊(duì)前往馬塔潘角,意大利人立刻就會(huì)知道。為了欺騙間諜們,他竟然來到亞歷山大城打起了高爾夫球,假裝自己要度周末。但到了夜里,他悄然領(lǐng)導(dǎo)英軍艦隊(duì)出海,前往意大利軍艦集結(jié)地。意大利人猝不及防。那一夜,意大利海軍丟失了接近3000名海軍精英。布萊切利園這回立下了第一個(gè)大功勞。
英國(guó)海軍因?yàn)轳R塔潘戰(zhàn)役成為英雄,布萊切利園的名字卻從未被提起,這很正常。但康寧漢姆隨后來到布萊切利園,和譯碼員們共慶勝利。然而,德軍很快就下令不再兩次加密信息設(shè)置。這樣一來,布萊切利園的大卡片就報(bào)廢了。幾個(gè)月里,無情的轟炸變成英國(guó)人的家常便飯,閃電戰(zhàn)令英國(guó)人防不勝防。
英國(guó)海軍上將康寧漢姆。
馬塔潘戰(zhàn)役場(chǎng)景之一。
在那血腥、黑暗的幾個(gè)月中,布萊切利園依然是英國(guó)首相丘吉爾的希望之一。如果能破譯敵人的核心機(jī)密,無疑能影響戰(zhàn)爭(zhēng)勝負(fù)。譯碼員們?cè)俣纫挂岳^日拼命工作,試圖破解恩尼格瑪機(jī)。他們分組進(jìn)入布萊切利園不同房間,嘗試突破恩尼格瑪機(jī)的不同部分。其中,6號(hào)房集中精力破解德國(guó)納粹空軍的恩尼格瑪機(jī)。納粹空軍自詡技術(shù)先進(jìn),卻疏于保密。數(shù)月來,布萊切利園必須努力破解從德軍機(jī)場(chǎng)發(fā)給柏林空軍總部的密電。譯碼員們必須不分晝夜加緊干,因?yàn)橄L乩照郎?zhǔn)備入侵英國(guó)。
布萊切利園6號(hào)房。
譯碼員在6號(hào)房?jī)?nèi)工作。
英軍譯碼員赫里維把目光轉(zhuǎn)向了恩尼格瑪機(jī)發(fā)報(bào)員。畢竟,有固定程序來讓每臺(tái)恩尼格瑪機(jī)準(zhǔn)備好,以發(fā)送當(dāng)天的密電。轉(zhuǎn)子和轉(zhuǎn)子上字母串位置的設(shè)定很重要。如果秘密指令沒有被嚴(yán)格遵循,整個(gè)系統(tǒng)的安全都會(huì)陷于風(fēng)險(xiǎn)。當(dāng)發(fā)報(bào)員對(duì)恩尼格瑪機(jī)進(jìn)行設(shè)定時(shí),總是應(yīng)該轉(zhuǎn)動(dòng)轉(zhuǎn)子,讓轉(zhuǎn)子上的字母位置隨機(jī)化。發(fā)報(bào)員必須通過莫爾斯電碼,把3個(gè)隨機(jī)字母發(fā)給收?qǐng)?bào)員,從而讓兩臺(tái)恩尼格瑪機(jī)有相同的初始設(shè)置。而赫里維意識(shí)到,如果發(fā)報(bào)員沒有像應(yīng)該做的那樣轉(zhuǎn)動(dòng)轉(zhuǎn)子,那么非加密傳輸?shù)?個(gè)字母就是轉(zhuǎn)子位置的秘密設(shè)定。
Y站很快接到指令:密切關(guān)注每天攔截的最早一批密電,因?yàn)檫@是最可能出錯(cuò)的時(shí)候。一旦這些密電到達(dá),6號(hào)房立即調(diào)查它們的開頭字母串。有時(shí)候,德軍發(fā)報(bào)員在轉(zhuǎn)動(dòng)轉(zhuǎn)子時(shí)心不在焉,只會(huì)轉(zhuǎn)一兩下,于是LWZ變成LYB或LUX。當(dāng)譯碼員畫出每組字母后,他們就會(huì)開始尋找能揭示初始秘密設(shè)置的字母串。
赫里維的預(yù)感沒有錯(cuò)。最終,譯碼員們找到了破解納粹空軍密碼的方法。他們破譯的密電內(nèi)容,不會(huì)像“我們未來6個(gè)月會(huì)攻打……”這么直白。有一條看似只是隨機(jī)數(shù)字的電文,有譯碼員猜測(cè):這會(huì)不會(huì)是地圖上的坐標(biāo)?結(jié)果真的是機(jī)場(chǎng)坐標(biāo)——德國(guó)人正在集中軍力,準(zhǔn)備攻打英國(guó)機(jī)場(chǎng)。直到二戰(zhàn)最后一天,布萊切利園6號(hào)房每天都在破譯納粹空軍密電。他們不斷發(fā)現(xiàn)納粹空軍發(fā)報(bào)員犯下的各種類型的粗心錯(cuò)誤。
為避免電文被破譯,德軍不得不每天隱藏信息設(shè)定。他們自認(rèn)為找到了一種絕佳辦法:讓恩尼格瑪機(jī)自己隱藏設(shè)置。發(fā)報(bào)員此前已被告知要想出3個(gè)隨機(jī)字母作為轉(zhuǎn)子的初始設(shè)定,現(xiàn)在又被告知要再想出另外3個(gè)隨機(jī)字母鍵入恩尼格瑪機(jī)。對(duì)一條特定信息來說這是密鑰,由于密鑰也被加密,它們就能被完全保密地傳輸。從表面看,這真的是一個(gè)萬無一失的指示器,因?yàn)樾畔⒌恼嬲O(shè)定(密鑰)被隱藏。然而,該指示器的缺點(diǎn)在于:把3個(gè)隨機(jī)字母的選擇權(quán)交給發(fā)報(bào)員,而發(fā)報(bào)員是人——人的行為不可能是隨機(jī)的。
6號(hào)房譯碼員很快就看出,納粹密電電文中兩組本該隨機(jī)的字母之間存在種種聯(lián)系。一旦譯碼員們看出了前3個(gè)未加密字母,他們就可能猜到加密的第二組3個(gè)字母。一個(gè)名叫沃爾特(WALTER)的德軍發(fā)報(bào)員在布萊切利園出了名,因?yàn)樗刻於及艳D(zhuǎn)子設(shè)置為自己名字的前三個(gè)字母(WAL),接著把他的女朋友克拉拉(KLARA)的名字前三個(gè)字母(KLA)設(shè)置為第二個(gè)字母串。另外,有德軍發(fā)報(bào)員把第一個(gè)字母串設(shè)置為HIT,第二個(gè)字母串設(shè)定為L(zhǎng)ER,加起來就是HITLER(希特勒)。還有人這樣設(shè)定:LON DON(LONDON倫敦):MAD RID(MADRID馬德里);BERLIN(BERLIN柏林)。在戰(zhàn)斗最激烈期間,有發(fā)報(bào)員用臟話前三個(gè)字母和后三個(gè)字母設(shè)置前后字母串。
雖然布萊切利園在破譯納粹空軍密電方面屢屢成功,但在破譯納粹海軍密電方面卻止步不前。到了1941年春,納粹潛艇在大西洋戰(zhàn)役中大顯淫威。被德軍擊沉的每一艘商船,都讓英國(guó)失去一批戰(zhàn)時(shí)急需物資。行動(dòng)緩慢的商船隊(duì)頻繁往來于大西洋和美洲之間。美國(guó)當(dāng)時(shí)尚未參戰(zhàn),英國(guó)商船隊(duì)為英國(guó)提供一半的食品和所有燃油。盡管有護(hù)航隊(duì),英國(guó)商船卻依然很容易淪為德國(guó)潛艇的攻擊對(duì)象。希特勒命令鄧尼茨上將摧毀英國(guó)的生命線。
鄧尼茨在法國(guó)海岸構(gòu)建巨大的強(qiáng)化潛艇包圍圈。從這里,他的潛艇編隊(duì)能夠攻進(jìn)大西洋。為襲擊商船隊(duì),鄧尼茨把潛艇編隊(duì)組織成“狼群”,沿著特定巡邏線行動(dòng)。當(dāng)緩慢的商船隊(duì)穿越大西洋時(shí),由30艘以上的潛艇組成的“狼群”就撲向它們。鄧尼茨通過海軍恩尼格瑪機(jī)發(fā)送的加密電文,控制他的“狼群”。因此,破譯納粹海軍密電是布萊切利園面臨的最大挑戰(zhàn)。如果破譯工作失敗,英國(guó)在大西洋戰(zhàn)役以及整場(chǎng)戰(zhàn)爭(zhēng)中都可能面臨敗局。
鄧尼茨上將對(duì)破譯納粹密碼做出了重大貢獻(xiàn)
英國(guó)科學(xué)家圖靈對(duì)破譯納粹密碼做出了重大貢獻(xiàn)
在破譯納粹海軍密電方面,領(lǐng)軍人物頭銜屬于天才數(shù)學(xué)家圖靈。圖靈22歲就成為英國(guó)劍橋大學(xué)的研究員,此后不久他就發(fā)明了計(jì)算機(jī)的雛形。布萊切利園自然是他發(fā)揮專長(zhǎng)之地。在布萊切利園的一間閣樓屋里,圖靈開始研究納粹潛艇發(fā)出的密電。面對(duì)一堆亂七八糟的字母,圖靈推斷出了納粹海軍是怎樣隱藏其信息設(shè)置的。
與納粹空軍不同,納粹海軍在電文保密方面做得可謂滴水不漏。納粹海軍不是讓發(fā)報(bào)員自行隨機(jī)選擇設(shè)定信息的3個(gè)字母(密鑰)。雖然圖靈不知道納粹海軍密電程序,但他發(fā)現(xiàn)納粹海軍發(fā)報(bào)員每天從一套秘密表單中選擇當(dāng)天的密鑰。另外,這些表單不是采用單個(gè)字母替換,而是采用雙字母組替換。后來得知,這些密碼采用被水打濕后立即褪色的紙張印刷。納粹海軍得到命令:一旦有任何困難,立即把密碼紙丟入海中,或至少浸入水中。
故事到此遠(yuǎn)未結(jié)束。納粹密碼破譯之路依然漫長(zhǎng)而復(fù)雜,請(qǐng)期待本刊下期將刊出的《破譯納粹密碼(下)》
恩尼格瑪機(jī)在1919年首次被注冊(cè)專利。在經(jīng)過多次改進(jìn)后,這種密碼機(jī)被德國(guó)海軍(1926年)、德國(guó)陸軍(1928年)和德國(guó)空軍(1935年)采用。此外,它還被帝國(guó)反間諜機(jī)關(guān)、帝國(guó)保安部、德國(guó)鐵路局及德國(guó)其他政府部門采用。從被采用開始,一直到整個(gè)二戰(zhàn)期間甚至之后,它經(jīng)過了多次優(yōu)化。直到1945年,一直有恩尼格瑪機(jī)操作程序變化方面的詳細(xì)記載。本文對(duì)恩尼格瑪機(jī)的簡(jiǎn)介,只涵蓋它的最主要特點(diǎn),而且只涉及少數(shù)類型的恩尼格瑪機(jī)。
恩尼格瑪機(jī)看起來像一臺(tái)打字機(jī),但卻比普通打字機(jī)復(fù)雜許多,前者的轉(zhuǎn)子設(shè)置(對(duì)于60種轉(zhuǎn)子順序中的每一種來說)多達(dá)1.76萬種。而且,這還只不過是為了設(shè)置好恩尼格瑪機(jī)。以便于使用。
恩尼格瑪機(jī)只被用來加密和解密電文。恩尼格瑪機(jī)一般不能輸出電文,更不用說傳輸或接收電文。當(dāng)密碼操作員(發(fā)報(bào)員或收?qǐng)?bào)員)坐在恩尼格瑪機(jī)前面時(shí),離他/她最近的是一個(gè)26字母鍵盤(字母排列與標(biāo)準(zhǔn)打字機(jī)一樣),不帶數(shù)字鍵和符號(hào)鍵。在這個(gè)鍵盤前面是亮燈鍵盤,實(shí)際上是26個(gè)圓形小窗(它們的排列與標(biāo)準(zhǔn)打字機(jī)一樣),每個(gè)小窗中都有個(gè)字母,字母可以被下方的燈泡點(diǎn)亮,每次只亮一個(gè)燈。在不少介紹恩尼格瑪機(jī)的書中出現(xiàn)的帶A~Z鍵盤的恩尼格瑪機(jī),實(shí)際上是波蘭和法國(guó)的恩尼格瑪機(jī)仿制品,而非真正的恩尼格瑪機(jī)。
亮燈鍵盤后面是擾頻器單元,其左右兩端分別有一個(gè)固定輪,中間是3個(gè)轉(zhuǎn)子。右側(cè)固定輪是入口,這個(gè)輪子本身的左側(cè)是26個(gè)觸點(diǎn)(分別對(duì)應(yīng)26個(gè)字母)。右側(cè)固定輪最終與最前方標(biāo)準(zhǔn)鍵盤上的按鍵相連。擾頻器單元的左端是同樣有26個(gè)觸點(diǎn)的反轉(zhuǎn)輪,它會(huì)干擾自己接收的電流,經(jīng)由與電流進(jìn)入線路不同的線路,把電流發(fā)回去。
恩尼格瑪機(jī)擾頻器單元的3只轉(zhuǎn)子是從一盒共5只轉(zhuǎn)子(代號(hào)分別為1~5)中選擇的。每個(gè)月都要為每天的轉(zhuǎn)子選擇作規(guī)定,還要規(guī)定轉(zhuǎn)子的相對(duì)順序,例如5-1-3或2-4-1。每個(gè)轉(zhuǎn)子本身右側(cè)是豎直排列的一圈被彈簧頂住的26個(gè)接頭,左側(cè)是水平排列的一圈26個(gè)接頭。隨著轉(zhuǎn)子旋轉(zhuǎn),能產(chǎn)生持續(xù)和復(fù)雜變化的連接方式。每個(gè)轉(zhuǎn)子都包含不同的內(nèi)部連線。轉(zhuǎn)子內(nèi)圈的26個(gè)接頭對(duì)應(yīng)26個(gè)字母或數(shù)字01-26。轉(zhuǎn)子內(nèi)圈可旋轉(zhuǎn)和鎖定。轉(zhuǎn)子整體則在轉(zhuǎn)子窗狹縫內(nèi)轉(zhuǎn)動(dòng)。從窗口可看見字母A~Z。
這個(gè)簡(jiǎn)化的圖表,顯示的是德國(guó)陸軍使用的典型三轉(zhuǎn)子恩尼格瑪機(jī)結(jié)構(gòu)。為了簡(jiǎn)潔明了,圖中略去了插接板引線。
每天對(duì)轉(zhuǎn)子內(nèi)圈的設(shè)置規(guī)定被稱為“內(nèi)圈順序”。發(fā)報(bào)員每次鍵入一個(gè)字母,擾頻器單元右側(cè)轉(zhuǎn)子轉(zhuǎn)動(dòng)到26個(gè)觸點(diǎn)中的一個(gè)。在每26次轉(zhuǎn)動(dòng)中。右側(cè)轉(zhuǎn)子有一次會(huì)達(dá)到“翻轉(zhuǎn)位”,此時(shí)中間轉(zhuǎn)子移動(dòng)一格。當(dāng)下一個(gè)字母被鍵入,而中間轉(zhuǎn)手到達(dá)自己的翻轉(zhuǎn)位,則中間轉(zhuǎn)子和左側(cè)轉(zhuǎn)子都移動(dòng)。
后來,德國(guó)陸軍恩尼格瑪機(jī)的豎直面又添加了一個(gè)插接板。插接板上有26對(duì)插孔,按照標(biāo)準(zhǔn)26字母鍵盤排列。每對(duì)插孔可能被雙引線連接,例如C連接P,M連接Z。但有一些插孔(通常為6對(duì))并不連線。
如前所述,發(fā)報(bào)員每次鍵入一個(gè)字母,右側(cè)轉(zhuǎn)子就轉(zhuǎn)動(dòng)一格,而中間轉(zhuǎn)子和左側(cè)轉(zhuǎn)子隨之而動(dòng)。隨著每個(gè)新字母(例如P)的鍵入,電流(通常由一只4.5伏內(nèi)置電池提供,但有時(shí)候也采用外接電源)從按鍵下方的接頭流到插接板下方的插座(例如P),再經(jīng)過引線流到另一個(gè)插座(例如L)?;蛘撸绻懊娴谝粋€(gè)插座(P)未連線。電流就不會(huì)流出。無論怎樣,電流都進(jìn)入入口固定輪。固定輪不改變電流信號(hào),但電流在通過每一個(gè)轉(zhuǎn)子的接頭時(shí)都可能被改變。電流到達(dá)反轉(zhuǎn)輪后再度被改變,在從反轉(zhuǎn)輪返回過程中又被轉(zhuǎn)子改變,再經(jīng)過入口輪回到插接板。此后的電流線路取決于插座是否連線。無論怎樣,電流最終到達(dá)亮燈鍵盤,點(diǎn)亮一只燈泡(例如W)。對(duì)一臺(tái)標(biāo)準(zhǔn)的三轉(zhuǎn)子恩尼格瑪機(jī)來說,上述涉及可多次9次改變的轉(zhuǎn)碼過程看起來很麻煩,但這個(gè)過程的實(shí)際發(fā)生可以說是在瞬間完成的。必須注意,對(duì)于每一次新字母的鍵入來說,轉(zhuǎn)動(dòng)哪怕一個(gè)轉(zhuǎn)子,都會(huì)為每個(gè)新字母添加一整套新的電流回路。
恩尼格瑪機(jī)上的插接板。
請(qǐng)注意,如果在恩尼格瑪機(jī)E鍵入一個(gè)字母(例如B),任何其他字母(例如T)都可能被點(diǎn)亮。如果繼續(xù)鍵入B。亮燈鍵盤可能點(diǎn)亮P、F、O、J、C……但絕不會(huì)點(diǎn)亮B。亮燈序列在1.69萬(26×25×26)次鍵入后才會(huì)重復(fù),也就是在恩尼格瑪機(jī)內(nèi)部機(jī)械回到最初的位置時(shí)。為避免重復(fù),電文長(zhǎng)度被限制在250個(gè)字母。
在恩尼格瑪機(jī)的基本設(shè)置中,以5個(gè)轉(zhuǎn)子備選為例,轉(zhuǎn)子排序一共有60種(5×4×3)。對(duì)每一種轉(zhuǎn)子排序來說,內(nèi)圈設(shè)置有17576(26×26x26)種。如果有6個(gè)未連線插座,那么插座配對(duì)方式超過150萬億種。這樣一來,恩尼格瑪機(jī)每天的可能設(shè)置方式(密鑰)多得難以計(jì)數(shù)。但恩尼格瑪機(jī)并非完美,它實(shí)際上就是一種高級(jí)交換機(jī)。所有相同類型的恩尼格瑪機(jī)如果以相同方式設(shè)置,那么均產(chǎn)生相同的交換。在任何設(shè)置下,如果鍵入B而最終亮燈T,那么鍵入T一定會(huì)亮燈B。
被點(diǎn)亮的字母(圖中是Y),絕不會(huì)與在鍵盤上鍵入的字母相同。
盡管一個(gè)加密員自己就可能完成所有加密程序,但這個(gè)過程繁重而容易出錯(cuò)。通常情況下,加密需要兩人來完成。一號(hào)加密員查看信號(hào)文本,比如以P開頭。鍵入P可能會(huì)亮燈M,二號(hào)加密員則把這一轉(zhuǎn)換記錄下來。一直記錄到文本的最后一個(gè)字母。接著,由發(fā)報(bào)員傳輸生成的加密信號(hào)。然而,第一步是設(shè)置恩尼格瑪機(jī)。
每個(gè)月,恩尼格瑪機(jī)操作指令都會(huì)規(guī)定對(duì)每天或更加頻繁的多個(gè)變量的改變。一個(gè)典型的當(dāng)天“密鑰”給予加密員的指令,是加密程序的前三步:
(1)轉(zhuǎn)子順序:選擇將被使用的3只轉(zhuǎn)子及其排列順序。例如1-5-3:
(2)左中右轉(zhuǎn)子的內(nèi)圈設(shè)置,例如06-20-24(對(duì)應(yīng)字母FTX)。
(3)插接板交聯(lián)設(shè)置,例如U-A連接或P-F連接。
加密員照此設(shè)置他的恩尼格瑪機(jī)。在1940年4月末之前,加密員接著進(jìn)行以下步驟:
(1)轉(zhuǎn)動(dòng)3個(gè)轉(zhuǎn)子到隨機(jī)選擇的一個(gè)位置。這就是“指示器”代碼設(shè)置,例如JCM;
(2)兩次鍵入他自己隨機(jī)選擇的文本(訊息)設(shè)置代碼,例如BGZBGZ。加密后,得到“指示器”,例如TNUFDQ;
(3)他把轉(zhuǎn)子設(shè)定為BGZ,鍵入訊息(電文)明文,一個(gè)接一個(gè)字母得到加密電文。
發(fā)出的電文包括4個(gè)元素,如下:
(1)明文傳輸?shù)碾妶?bào)報(bào)頭,包括呼號(hào)、始點(diǎn)時(shí)間、電文字母數(shù),之后是密碼員自己選擇的指示器設(shè)置代碼,例如JCM:
(2)一個(gè)五字母串(包含兩個(gè)復(fù)雜字符),接著是三字母“判別式”,例如JEu,目的是區(qū)分不同類型的恩尼格瑪機(jī)通信量,并且顯示正在使用哪幾套密鑰(操作指令設(shè)置):
恩尼格瑪機(jī)上,供閱讀加密訊息字母的窗口。
(3)六字母指示器,例如TNUFDQ;
(4)經(jīng)過加密的信號(hào)電文,呈現(xiàn)為五字母串形式。
一旦信號(hào)電文被傳輸出去,電文交給接收端密碼員(其恩尼格瑪機(jī)的轉(zhuǎn)子已按照前述01-03步驟設(shè)置),他就會(huì)把轉(zhuǎn)子移動(dòng)到JCM位置,鍵入TNUFDQ,讀到加密結(jié)果BGZBGZ。他再把轉(zhuǎn)子設(shè)置為BGZ,鍵出解密后的明電文。他的助手會(huì)依次記下每一個(gè)字母。
1940年5月1日后,上述程序被改變。有可能德國(guó)密碼學(xué)權(quán)威終于意識(shí)到,訊息設(shè)置的雙加密所代表的泄密風(fēng)險(xiǎn)遠(yuǎn)遠(yuǎn)超過其好處。從那一天起,隨機(jī)選擇的訊息設(shè)置(例如BGZ)只被鍵入一次。得到加密字母TNU(而不是TNUFDQ)。
讀者朋友注意,前面的描述僅僅針對(duì)二戰(zhàn)期間德國(guó)陸軍和空軍所使用的標(biāo)準(zhǔn)的恩尼格瑪機(jī)。德國(guó)海軍在此基礎(chǔ)上,把備選轉(zhuǎn)子數(shù)量從5個(gè)增加到了8個(gè)。1942年2月1日,他們又在反轉(zhuǎn)輪旁邊添加了另一個(gè)可設(shè)置轉(zhuǎn)子,這就是四轉(zhuǎn)子恩尼格瑪機(jī)(下圖)o德國(guó)鐵路、警察和郵政部門繼續(xù)使用舊式恩尼格瑪機(jī)。德國(guó)反間諜機(jī)關(guān)使用更高版本、但沒有插接板的恩尼格瑪機(jī),加密程序與以往不同,尤其是每天指定轉(zhuǎn)子內(nèi)圈設(shè)置,而不再隨機(jī)選擇。某些恩尼格瑪機(jī)有28字母鍵盤和轉(zhuǎn)予設(shè)置。但傳說中的29轉(zhuǎn)子恩尼格瑪機(jī)是不存在的。
傳統(tǒng)型號(hào)恩尼格瑪機(jī)只有三個(gè)轉(zhuǎn)子。
后期的恩尼格瑪機(jī)出現(xiàn)四個(gè)轉(zhuǎn)子。