
恩尼格瑪機(jī):密碼戰(zhàn)進(jìn)入機(jī)械電子時(shí)代Enigma: crypto warfare enters the age of mec
前三代密碼加密法——隱藏法、替代法和維吉尼亞加密法。著名的第四代加密法——恩尼格瑪密碼機(jī)(Enigma)。
這個(gè)名字翻譯版本挺多的,不論是叫英格瑪機(jī),或者是啞謎機(jī)器,還是奇謎機(jī),指的都是圖靈在二戰(zhàn)后期破譯的那種機(jī)器。就統(tǒng)一叫它“恩尼格瑪機(jī)”。
它使用的加密方式,本質(zhì)上還是第二代加密法——替代和移位,但因?yàn)榭梢郧袚Q無(wú)窮多種加密配套組合,所以在對(duì)抗頻率分析法上極其有效。
恩尼格瑪機(jī)是一種機(jī)械電子式的加密機(jī),由一堆齒輪、電線、燈泡、轉(zhuǎn)盤、搖桿組成。其實(shí)使用機(jī)器做繁瑣的加密工作在之前也有過(guò),只是因?yàn)樗鼈兌紱](méi)有量產(chǎn),所以也沒(méi)有流行。而恩尼格瑪機(jī),是第一個(gè)大規(guī)模量產(chǎn)的加密機(jī)。
也正是從它開(kāi)始,密碼學(xué)不再依賴紙和筆的運(yùn)算,使用機(jī)械和電子加密的時(shí)代正式到來(lái),所以它是第四代加密法。
第一臺(tái)恩尼格瑪機(jī),是一戰(zhàn)剛剛結(jié)束的時(shí)候由德國(guó)發(fā)明家雪畢伍斯(Arthur Scherbius)和里特(Richard Ritter)制造出的。
這臺(tái)機(jī)器分3部分,3部分之間由齒輪和電線相連:
第一部分,是敲原文用的鍵盤;
第二部分,是把原文加工成密文的編碼器;
第三部分,是密文的顯示板。
操作員只要做好設(shè)定,在鍵盤上敲入原文,經(jīng)過(guò)編碼器編碼,密文顯示板會(huì)按規(guī)則點(diǎn)亮密文字母,抄寫員把點(diǎn)亮的字母的順序記錄下來(lái),加密過(guò)程就完成了。
這其中重點(diǎn)就是編碼器,編碼器的工作原理有點(diǎn)復(fù)雜,詳細(xì)說(shuō)說(shuō):
編碼器由一堆可以手工設(shè)置的機(jī)械部件組成,任何地方的調(diào)整都會(huì)改變加密的結(jié)果。
其中最大的部件是齒輪式的字母盤,它前后通過(guò)導(dǎo)線與敲原文用的鍵盤,以及密文顯示板相連。鍵盤那邊敲一個(gè)字母,信號(hào)通過(guò)導(dǎo)線傳給齒輪上的觸點(diǎn),再通過(guò)導(dǎo)線傳到密文顯示板上,原文就這樣被加密成另一個(gè)字母了。
看起來(lái)好像沒(méi)什么,但恩尼格瑪機(jī)的真正高明之處在于 ——每敲一個(gè)字母,齒輪會(huì)往下轉(zhuǎn)一格,齒輪的轉(zhuǎn)動(dòng)導(dǎo)致線路連接的變化,而連接線一變,又直接導(dǎo)致加密結(jié)果的不同。
所以同一個(gè)字母敲入第二次、第三次,輸出到密文顯示板的結(jié)果也都不一樣??傊X輪能轉(zhuǎn)多少格,就意味著有幾套加密法等著輪替。
更高明的是,恩尼格瑪機(jī)的加密可能性,理論上是無(wú)限多的。最早齒輪一圈只有6格,也就是只有6套加密法。后來(lái)感覺(jué)這不夠用,齒輪就增加到了26個(gè)格。
再后來(lái),單套齒輪格數(shù)不再增加,而是增加了第2套齒輪,上面也有26個(gè)格。只有在第1套齒輪轉(zhuǎn)完一圈后,第2套齒輪才前進(jìn)一格。這樣一來(lái),有兩套齒輪的恩尼格瑪密碼機(jī),相當(dāng)于擁有26×26,也就是676套密碼。如果還覺(jué)得不穩(wěn)妥,可以繼續(xù)增加齒輪的套數(shù)。
恩尼格瑪機(jī),擁有三組齒輪的編碼器

一張?jiān)缙诘亩髂岣瘳敊C(jī)的照片,可以看出它有3套齒輪。后來(lái)這個(gè)規(guī)模的恩尼格瑪機(jī),主要用于商業(yè)領(lǐng)域。
它如果每個(gè)齒輪都有26格,那么使用的加密法有26^8套,也就是2000多億套,這是一個(gè)非常大的量。當(dāng)然,機(jī)器也很貴,最終只有德國(guó)海軍配備了。
機(jī)械加電子的方式讓加密解密錯(cuò)誤大大降低,效率也高了很多。但關(guān)鍵是設(shè)計(jì)規(guī)范,可以量產(chǎn)。

好,現(xiàn)在從密碼學(xué)細(xì)節(jié)上想想,恩尼格瑪機(jī)屬于哪一類加密呢?
沒(méi)錯(cuò),其實(shí)還是類似于維吉尼亞加密法。
它和維吉尼亞加密法1.0、2.0、3.0的最大區(qū)別就是鑰匙,而維吉尼亞加密法各種版本之間的區(qū)別,也在于鑰匙的設(shè)定上。
回憶一下前面講過(guò)的內(nèi)容:
1.0版,鑰匙是隨便想出來(lái)的一個(gè)詞,然后重復(fù)的用;
2.0版,鑰匙長(zhǎng)度增加了很多,但為了便于雙方協(xié)同使用,往往是一篇文章、一首詩(shī);
3.0版,鑰匙是純粹隨機(jī)字母,而真隨機(jī)很難制造,密碼簿又厚到不能用
所以3.0版只停留在理論上,實(shí)際幾乎沒(méi)人使用。
現(xiàn)在的恩尼格瑪機(jī),也仍然是在鑰匙簿上做改進(jìn)。
一方面,它比互相約定一首詩(shī)、一篇文章要沒(méi)有規(guī)律得多得多;另一方面,這種鑰匙肉眼看上去好像隨機(jī),但又不是真的隨機(jī)。它依賴于齒輪和電纜的機(jī)械和電結(jié)構(gòu),其實(shí)有內(nèi)在規(guī)律的。
而從密文中找出這種規(guī)律,就是破解恩尼格瑪機(jī)的核心任務(wù)。
恩尼格瑪機(jī)的方便之處在于,幾組齒輪的初始值是可以隨意設(shè)置的。
比如說(shuō)都封裝好了以后,每組齒輪在正上方都留一個(gè)小窗口,三組齒輪各自露出一個(gè)小窗口,收發(fā)雙方約定好,這3個(gè)窗口在初始時(shí)各顯示哪3個(gè)字母,然后他們按這個(gè)順序編碼信息、解碼信息,互相之間就可以通信了。
為了更安全,可以每天更換一次3組齒輪的初始設(shè)定,一個(gè)月里需要約定的初始設(shè)定也只有90個(gè)字母而已,非常方便。
那問(wèn)題來(lái)了,這種恩尼格瑪機(jī)能不能用在戰(zhàn)爭(zhēng)中呢?
我們就說(shuō)過(guò)戰(zhàn)時(shí)加密的原則,要假設(shè)敵方已經(jīng)擁有了和自己一樣的解密水平。以這樣的標(biāo)準(zhǔn)來(lái)看,恩尼格瑪機(jī)是很可靠的。
因?yàn)榧幢銛撤接辛艘荒R粯拥亩髂岣瘳敊C(jī),但只要不知道我們事先約定的鑰匙,也就是機(jī)器的初始設(shè)定是什么,有機(jī)器也白搭。
那這樣的機(jī)器是完全沒(méi)有方法破解嗎?
直接告訴你答案——不是的。
原因還是反復(fù)說(shuō)過(guò)的,恩尼格瑪機(jī)通過(guò)齒輪生成的鑰匙,只是看上去很隨機(jī),它內(nèi)在還是有規(guī)律可循的。這個(gè)規(guī)律就是它會(huì)按次序轉(zhuǎn)動(dòng),第一個(gè)齒輪轉(zhuǎn)一圈后,第二個(gè)齒輪動(dòng)一個(gè)格,第二個(gè)齒輪轉(zhuǎn)一圈后,第三個(gè)齒輪動(dòng)一格。光光就這個(gè)規(guī)律,就能給人提供破解機(jī)會(huì)了。我說(shuō)的機(jī)會(huì),就是用窮舉法去暴力破解。
既然三個(gè)輪子,每個(gè)提供26個(gè)字符,那鑰匙的初始值可以出現(xiàn)的最大組合就是26×26×26,也就是17576種。我就買回來(lái)100臺(tái)機(jī)器,每個(gè)人都發(fā)一份同樣的密文,挨個(gè)試,每臺(tái)機(jī)器負(fù)責(zé)嘗試其中的175種,說(shuō)不準(zhǔn)幾個(gè)小時(shí)就能把初始值碰對(duì)了。
設(shè)計(jì)者早就考慮到暴力破解的問(wèn)題了,所以他們?cè)阪I盤和編碼器之間又增加了一個(gè)叫“接線板”的結(jié)構(gòu),可以調(diào)換6對(duì)字母的線路。
比如你在鍵盤上按的是a,但電流信號(hào)卻是沿著b的線路輸出到編碼器上的。通過(guò)調(diào)換26個(gè)字母中隨意的6對(duì),組合一下就增多到了1000多億種,所以恩尼格瑪機(jī)是可以扛住暴力破解的。
實(shí)在不行,還可以添加更多組齒輪,就像德國(guó)海軍那樣,甚至用到了8組,這讓軍用恩尼格瑪機(jī)的安全性更有保障。
上面講的是原理,下面來(lái)說(shuō)說(shuō)這第一代恩尼格瑪機(jī)的命運(yùn)。
可能跟你想的非常不一樣,它第一代非常不順利。
雪畢伍斯對(duì)產(chǎn)品做了一個(gè)高低端的區(qū)分。高端型號(hào)的售價(jià)折算到今天,相當(dāng)于人民幣18萬(wàn)元一臺(tái),重量大約100斤。最初推廣給商業(yè)公司,宣傳的理由是商業(yè)機(jī)密泄露會(huì)是巨大的損失。可是老板普遍卻認(rèn)為,買這臺(tái)昂貴又不實(shí)用的機(jī)器造成的損失更大。
雪畢伍斯也試過(guò)找德國(guó)外交部門和軍方,但前面講過(guò)了,1918年的德國(guó)還沒(méi)認(rèn)識(shí)到自己的密碼學(xué)遠(yuǎn)遠(yuǎn)落后于西歐大部分國(guó)家,所以也完全不用。
雪畢伍斯并不是那個(gè)時(shí)代唯一做出這項(xiàng)發(fā)明的人,當(dāng)時(shí)荷蘭人、瑞典人、美國(guó)人都注冊(cè)過(guò)類似的專利,但沒(méi)有人賣得出去。
有的人破產(chǎn),有的人因欠款坐了牢。只有雪畢伍斯堅(jiān)持到了最后。這倒不是因?yàn)樗臋C(jī)器有多好,而是因?yàn)樗募业缀?。他原?lái)的工廠什么都生產(chǎn),恩尼格瑪機(jī)賣不出去,那就賣渦輪機(jī),賣賣枕頭,這些都可以賺錢,所以就靠這些東西強(qiáng)撐著。
到了1923年,英國(guó)報(bào)紙刊登的兩則消息,突然喚醒了德國(guó)情報(bào)部門。其中一條還是英國(guó)首相丘吉爾寫的,他講了1914年英國(guó)和俄國(guó)是怎么搞定德軍密碼的傳奇故事,另一條是英國(guó)軍方解密的關(guān)于一戰(zhàn)的歷史數(shù)據(jù),尤其夸耀了自己在密碼學(xué)上的優(yōu)勢(shì)。
結(jié)果德軍看了之后感覺(jué)像被打了臉,同時(shí)也嚇得不輕。從前他們以為自己在密碼學(xué)領(lǐng)域,和歐洲其他國(guó)家水平同齊?,F(xiàn)在突然發(fā)現(xiàn),第一次世界大戰(zhàn)那幾年,自己的軍事機(jī)密一直在被泄露,現(xiàn)狀太可怕了。
經(jīng)過(guò)仔細(xì)評(píng)估,德軍找來(lái)幾年前向他們推銷過(guò)恩尼格瑪機(jī)的雪畢伍斯,開(kāi)始大量訂貨。不但如此,后來(lái)德國(guó)的國(guó)企也開(kāi)始大量訂購(gòu)。
直到二戰(zhàn)結(jié)束,雪畢伍斯一共賣掉10萬(wàn)多臺(tái)恩尼格瑪機(jī)。這些機(jī)器在后來(lái)20多年里一直保障著德國(guó)的通訊安全,但沒(méi)想到就差最后一哆嗦。后來(lái)德國(guó)在二戰(zhàn)中的敗局,也正是因?yàn)閷?duì)恩尼格瑪機(jī)太過(guò)于依賴。這些后面會(huì)詳細(xì)講到。
二戰(zhàn)中的恩尼格瑪機(jī)影響到底如何?
其實(shí)雪畢伍斯自己根本不知道。因?yàn)樗跈C(jī)器剛剛大賣第5年的時(shí)候,就因?yàn)橐淮务R車失控,撞墻身亡。
回顧一下恩尼格瑪機(jī)的加密過(guò)程。
正是恩尼格瑪機(jī)的誕生,使密碼學(xué)徹底進(jìn)入了機(jī)械電子時(shí)代。
這個(gè)時(shí)代的加密,在原理上甚至還不如維吉尼亞加密法3.0堅(jiān)固,但它在加密成本和加密堅(jiān)固程度上達(dá)成了平衡。雖然在理論上依然是可以破解的,但這個(gè)弱點(diǎn)通過(guò)機(jī)械電子化彌補(bǔ)上了,彌補(bǔ)的方法就是無(wú)限增加破解的工作量。
也就是說(shuō),在1918年后,任何一個(gè)人通過(guò)肉身,通過(guò)紙和筆的運(yùn)算,都無(wú)法和那時(shí)候的加密法抗衡了。哪怕那種加密法是可破解的,也沒(méi)辦法。誰(shuí)想破解,也只能借助機(jī)械電子化的設(shè)備才可以。