公元前1500年,陶工用密碼隱藏他的上釉秘方;二戰(zhàn)時(shí)期,恩尼格碼加密機(jī)讓盟軍譯碼人員倍感頭疼;如今,密碼學(xué)正朝著量子系統(tǒng)前進(jìn)
秘密總是很吸引人,為了保護(hù)那脆弱的秘密,人們常常會(huì)使用密碼——密碼使機(jī)密的內(nèi)容難以被人偷看,防止秘密落入他人之手。
密碼的世界籠罩著神秘,也充滿詭計(jì)、虛假情報(bào)和欺騙。那么,密碼究竟是何時(shí)產(chǎn)生的呢?
早在公元前1500年,一個(gè)陶工用密碼隱藏他的上釉秘方,他因此而成為人們已知的最早的編碼人。此后數(shù)千年,密碼越來越多地被用于戰(zhàn)爭(zhēng)之中。比如,古羅馬的凱撒大帝是威震世界的羅馬統(tǒng)帥,他為了避免軍令落入敵人手中而泄密,發(fā)明出一種密碼——?jiǎng)P撒碼。
第一次世界大戰(zhàn)時(shí),使用化學(xué)手段加密的做法開始流行,用醋酸在生雞蛋的蛋殼上寫字,等字跡干透之后,蛋殼上就什么也看不到了。然后,再將雞蛋煮熟,剝掉蛋殼,字跡就透過蛋殼印在蛋白上面了。
到了二戰(zhàn)時(shí)期,最早的密碼機(jī)——輪子密碼機(jī)正式到來。它是由美國(guó)第三任總統(tǒng)托馬斯杰斐遜發(fā)明的,所以也叫“杰斐遜密碼機(jī)”。
相對(duì)于手工編碼,杰斐遜密碼機(jī)有點(diǎn)兒復(fù)雜,它的原理有點(diǎn)像套圈游戲,前提是加密和解密的輪子密碼機(jī)是一模一樣的。它由一根鐵軸和36個(gè)穿在軸上的木質(zhì)輪子組成,每個(gè)輪子的表面都有26個(gè)字母,而且字母的順序都不同,再給鐵軸加上螺帽,密碼機(jī)就搞定了。
發(fā)展到今天,除了應(yīng)用于戰(zhàn)爭(zhēng)外,密碼的使用也更是廣泛和頻繁,電腦和各種賬號(hào)的密碼,保證了你的信息安全,政府和間諜則使用各種密碼傳遞秘密情報(bào)。
簡(jiǎn)單的密碼有兩種:一種是用別的符號(hào)、字母和數(shù)字代替其他字母的替代密碼;另一種是把字母用別的順序編寫的轉(zhuǎn)換密碼。我們常用的密碼主要是轉(zhuǎn)換密碼,比較早的轉(zhuǎn)換密碼有凱撒移位法,它的加密方式是將普通字母表向后移動(dòng)幾位。如圖01。
圖中的這種方法可以提供25種可能,想要破解也只要嘗試25次即可。為了增加譯碼的難度,可以在凱撒移位密碼里加入關(guān)鍵詞。首先,將關(guān)鍵詞放在字母表的開頭,然后按照順序完成字母表中剩余部分,從關(guān)鍵詞的最后一個(gè)字母開始,省略用過的字母。
比如以“l(fā)ook”為關(guān)鍵詞,把它放在密碼的字母表開頭,因?yàn)橐÷杂眠^的字母,“l(fā)ook”只能寫為“l(fā)ok”,并且后面的字母表中的“O”也要一并省去,即:
明碼表 ABCDEFGHIJKLMN密碼表 LOKLMNPQRSTUVW
這種密碼提供了超過N種的可能性,也許你會(huì)認(rèn)為這樣的一種密碼就可以很好地保護(hù)你的信息安全了。實(shí)際上,通過大量的統(tǒng)計(jì),人們發(fā)現(xiàn)英語(yǔ)中有幾種字母出現(xiàn)的頻率比其他字母要高很多,這就給譯碼人員提供了一種強(qiáng)有力的武器——頻率分析法。凱撒移位法只是掩蓋了字母本身,并不能改變字母出現(xiàn)的頻率,這樣的密碼正好讓頻率分析法大顯身手。
頻率分析一出現(xiàn),編碼人員就開始尋找破壞頻率分析的方法。15世紀(jì),一個(gè)叫利昂·巴提斯塔·艾伯提的人想出了使用兩個(gè)或更多字母表進(jìn)行加密的方法——多字母表替代體系。這種替代體系雖然可以阻止譯碼人員使用頻率分析法譯出密碼,但是在緊急情況下出錯(cuò)的幾率也非常高。為了更好地使用這種編碼方法,人們需要一種方便的編碼機(jī)器。二戰(zhàn)時(shí)期,讓盟軍譯碼人員倍感頭疼的恩尼格碼機(jī)就是其中的著名代表。
恩尼格碼加密法是利用電機(jī)系統(tǒng)來實(shí)現(xiàn)多碼變換的,這種系統(tǒng)叫作回轉(zhuǎn)輪系統(tǒng)?;剞D(zhuǎn)輪是一個(gè)圓盤,它的兩面都有電子接點(diǎn),每個(gè)接點(diǎn)代表字母表中的一個(gè)字母?;剞D(zhuǎn)輪內(nèi)部有連接各接點(diǎn)的電線,這種連接方式定義了簡(jiǎn)單單碼替換方式。數(shù)個(gè)這樣的回轉(zhuǎn)輪和一個(gè)反射器組合起來就構(gòu)成了強(qiáng)大的恩尼格碼加密機(jī)。
01 凱撒移位密碼。
02 恩尼格碼機(jī)核心部分示意圖,圖中按下鍵盤b,顯示器上的D字母對(duì)應(yīng)的燈亮。
為了讓恩尼格碼變得無(wú)法破解,人們?cè)诙髂岣翊a機(jī)上加入了一些其它元素:讓轉(zhuǎn)子旋轉(zhuǎn)起來,可以互換的轉(zhuǎn)子,在機(jī)器前加入插接板或加入反射體。反射體的加入,使穿過三個(gè)轉(zhuǎn)子之后的電流并不直接流向顯示屏,而是沿著另一條叫作反射體的線路流動(dòng),從轉(zhuǎn)子反方向流回來。
這個(gè)體系設(shè)計(jì)得很精細(xì),讓電流總是能沿著不同的線路流回來。但是,這加入反射體后的恩尼格碼機(jī)無(wú)法讓被加密的字母變成它本身,正是這個(gè)看似不起眼的弱點(diǎn)卻成了破解它的關(guān)鍵。
想要解開恩尼格碼,就必須知道加密方的加密字母表,也就是轉(zhuǎn)子的設(shè)置。為了檢測(cè)那些可能出現(xiàn)的轉(zhuǎn)子位置,二戰(zhàn)時(shí)期盟軍設(shè)計(jì)了一種名叫“炸彈”的機(jī)器。為了解密,他們首先需要找到一個(gè)突破口,這并不容易,但是恩尼格碼不能加密為本身的特性幫助了他們。譯碼人員把普通詞放在密電上方,觀察是否有任何字母相同。如果有,譯碼人就試別的地方,如此反復(fù)直到試出正確位置。
直到20世紀(jì)70年代,恩尼格碼機(jī)解碼的秘密才公之于眾。而那時(shí),世界各地都已開始使用計(jì)算機(jī),計(jì)算機(jī)的超強(qiáng)計(jì)算能力,讓那些經(jīng)典的加密方法全部失效。但是先哲的思想并未失效,而且密碼學(xué)也仍然在飛速發(fā)展,眼下它正朝著量子系統(tǒng)前進(jìn)。
一旦進(jìn)入這種新的世界,密碼學(xué)會(huì)發(fā)生什么變化,我們難以猜測(cè)。但可以預(yù)見的是,這一定不是密碼學(xué)故事的結(jié)束,而只是另一個(gè)新的開始。