你有秘密嗎?如果你有那么我希望你知道怎樣保護(hù)它們,因?yàn)槊孛芸偸呛芪恕榱吮Wo(hù)那脆弱的秘密,人們會(huì)使用密碼,密碼讓機(jī)密的內(nèi)容不會(huì)被人偷看,防止秘密落入他人之手,而且也幫助過一代又一代的孩子在課堂上傳遞紙條。
密碼的世界籠罩著神秘,也充滿詭計(jì)、虛假情報(bào)和欺騙,那么,密碼是何時(shí)產(chǎn)生的呢?早在公元前1500年,一個(gè)古代的陶工用密碼隱藏他的上釉秘方,成為 了人們知道的最早的編碼人;1917年一封破譯的電報(bào)導(dǎo)致美國(guó)加入了一戰(zhàn);1939-1945年,破譯恩尼格碼的儀器幫助盟軍贏得了二戰(zhàn)的勝利……如今, 密碼的使用更是頻繁,電腦和各種賬號(hào)密碼保證你的信息安全,政府和間諜繼續(xù)使用它們傳遞秘密情報(bào)。
代碼和密碼有何區(qū)別?
開始介紹密碼之前,我希望你最好能知道兩種碼:代碼和密碼。代碼是用別的詞或一組字母代替整個(gè)詞;密碼則是用符號(hào)代替單個(gè)字母或聲音,或者改變字母順序。
盡管代碼和密碼不同,卻經(jīng)常廣義地用“密碼”這個(gè)詞來指定。代碼的工作原理非常簡(jiǎn)單,它不過是使用了另外一種碼來隱藏最重要的詞,只要雙方約定了密碼 的意義就可以解碼了。代碼的使用十分廣泛,比如你現(xiàn)在正在閱讀的文字,如果有一天每個(gè)人都不知道這些文字的意義,那么它就成了不可破解的秘密了。不要覺得 這很扯,遙遠(yuǎn)的過去那些象形文字就是最好的例子。
凱撒移位法
簡(jiǎn)單的密碼有兩種:用別的符號(hào)、字母和數(shù)字代替其他字母的替代密碼;把字母用別的順序編寫的轉(zhuǎn)換密碼。替代密碼很簡(jiǎn)單,比如我可以把這篇文章翻譯成英 語,用英語為這篇文章加密,不過因?yàn)橛⒄Z被大家普遍掌握,使得這種加密方法顯得過于簡(jiǎn)單。我們常用的密碼主要是轉(zhuǎn)換密碼,比較早的轉(zhuǎn)換密碼有凱撒移位法, 它的加密方式是將普通字母表向后移動(dòng)幾位,如下:
這種方法可以提供25種可能,想要破解也只要嘗試25次即可。為了增加譯碼的難度,我們可以在凱撒移位密碼里加入關(guān)鍵詞。首先,將關(guān)鍵詞放在字母表的開頭,然后按照順序完成字母表中剩余部分,從關(guān)鍵詞的最后一個(gè)字母開始,省略用過的字母。
比如以“look”為關(guān)鍵詞,把它放在密碼的字母表開頭,因?yàn)橐÷杂眠^的字母,“look”只能寫為“lok”,并且后面的字母表中的“O”也要一并省去,即:
明碼表:ABCDEFGHIJKLMN
密碼表:LOKLMNPQRSTUVW
這種密碼提供了超過N種的可能性,這樣就不會(huì)被輕易試出密碼啦。如果你認(rèn)為這樣一種密碼就可以很好地保護(hù)你的信息安全,那就圖樣圖森破啦。實(shí)際上,通過大量的統(tǒng)計(jì)人們發(fā)現(xiàn),英 語中有幾種字母出現(xiàn)的頻率比其他字母要高很多,這就給譯碼人提供了一種強(qiáng)有力的武器—頻率分析法。凱撒移位法只是掩蓋了字母本身,并不能改變字母出現(xiàn)的 頻率,這樣的密碼正好讓頻率分析法大顯身手。
解密恩尼格瑪機(jī)
頻率分析一出現(xiàn),編碼人就開始尋找破壞頻率分析的方法。15世紀(jì)一個(gè)叫利昂?巴提斯塔?艾伯提的人想出了使用兩個(gè)或者更多的字母表加密的方法,這就是 “多字母表替代體系”。這種替代體系雖然可以阻止譯碼人使用頻率分析法譯出密碼,但是在緊急情況下出錯(cuò)的幾率也是非常高的。為了更好地使用這種編碼方法, 人們需要一種方便的編碼機(jī)器。二戰(zhàn)時(shí)期,讓盟軍譯碼人倍感頭疼的恩尼格碼機(jī)就是其中著名的代表。
恩尼格碼加密法是利用電機(jī)系統(tǒng)來實(shí)現(xiàn)多碼變換的,這種系統(tǒng)叫作回轉(zhuǎn)輪系統(tǒng)。回轉(zhuǎn)輪是一個(gè)圓盤,它的兩面都有電子接點(diǎn),每個(gè)接點(diǎn)代表字母表中的一個(gè)字 母。回轉(zhuǎn)輪內(nèi)部有連接各接點(diǎn)的電線,這種連接方式定義了簡(jiǎn)單單碼替換方式。數(shù)個(gè)這樣的回轉(zhuǎn)輪和一個(gè)反射器組合起來就構(gòu)成了強(qiáng)大的恩尼格碼加密機(jī)。然而要想 看到它的工作方法,你需要把一種名叫轉(zhuǎn)子的電動(dòng)密碼轉(zhuǎn)盤連接在鍵盤、顯示屏和電池上。你在鍵盤上打出普通的字母,電流就沿著接觸點(diǎn)流動(dòng),流到轉(zhuǎn)子的另一個(gè) 觸點(diǎn),顯示屏上相應(yīng)的字母就亮燈。如果你把轉(zhuǎn)子轉(zhuǎn)到不同的位置,就改變了接觸點(diǎn)連接鍵盤的方式。這樣打入同一個(gè)字母,就可能產(chǎn)生不同的密碼字母。
這就是恩尼格碼機(jī)的工作原理,只不過現(xiàn)實(shí)中的恩尼格碼機(jī)遠(yuǎn)沒有那么簡(jiǎn)單。為了讓恩尼格碼變得無法破解,他們?cè)诙髂岣翊a機(jī)上加入了一些其它元素:讓轉(zhuǎn)子 旋轉(zhuǎn)起來,可以互換的轉(zhuǎn)子,在機(jī)器前加入插接板,或者加入反射體等。旋轉(zhuǎn)的轉(zhuǎn)子、可以互換的轉(zhuǎn)子、機(jī)器前的插接板都是為了增加可供加密的字母表個(gè)數(shù),那么 反射體是什么?與普通的恩尼格碼機(jī)不同的是,反射體的加入使穿過三個(gè)轉(zhuǎn)子之后的電流并不直接流向顯示屏,而是沿著另一條叫作反射體的線路流動(dòng),從轉(zhuǎn)子反方 向流回來。
這個(gè)體系設(shè)計(jì)得很精細(xì),讓電流總是能沿著不同的線路流回來。這意味著恩尼格碼機(jī)給“a”加碼“U”后,又在完全相同的轉(zhuǎn)子位置給“u”加碼為“A”。 看起來非常聰明,但是這也是恩尼格碼機(jī)的致命弱點(diǎn)所在,加入反射體后的恩尼格碼機(jī)無法讓被加密的字母變成它本身。正是這個(gè)看似不起眼的弱點(diǎn)卻成了破解它的 關(guān)鍵。
如何破解恩尼格瑪密碼?
想要解開恩尼格碼,就必須要知道加密方的加密字母表,也就是轉(zhuǎn)子的設(shè)置。為了檢測(cè)那些可能出現(xiàn)的轉(zhuǎn)子位置,二戰(zhàn)時(shí)期盟軍設(shè)計(jì)了一種名叫“炸彈”的機(jī) 器。為了解密,他們首先需要找到一個(gè)突破口—一個(gè)他們確信在普通文本的信里出現(xiàn)的一個(gè)詞或者短語,然后找到它在密電中的對(duì)應(yīng)詞或者短語。這并不容易,但 是恩尼格碼不能加密為本身的特性幫助了他們。譯碼人把作為突破口的普通詞放在密電上方,來看是否有任何字母相同。如果有,譯碼人就知道這里不是正確的位 置,于是試別的地方,如此反復(fù)直到試出正確位置。
關(guān)于對(duì)恩尼格碼機(jī)解碼的秘密,直到20世紀(jì)70年代才公之于眾。而那時(shí),世界上到處都在使用計(jì)算機(jī),計(jì)算機(jī)改變了密碼產(chǎn)生和使用的方式。
密碼學(xué)從最初的凱撒密碼至今,走過了一個(gè)漫長(zhǎng)的歷程。計(jì)算機(jī)的超強(qiáng)計(jì)算能力,讓那些經(jīng)典的加密方法都已失效。但是先哲的思想并未失效,密碼學(xué)也仍然在 飛速發(fā)展,眼下它正朝著量子系統(tǒng)前進(jìn)。一旦進(jìn)入這種新的世界,密碼學(xué)會(huì)發(fā)生什么變化,我們只能靠猜測(cè)了。但可以預(yù)見的是,這一定不是密碼學(xué)故事的結(jié)束,而 只是剛剛開始。