歐陽(yáng)江南
古代的實(shí)例
密碼術(shù)被廣泛應(yīng)用之前,人們先是用隱文術(shù)為秘密信息加密。
隱文術(shù),就是把文字隱藏起來(lái)的方法。古希臘時(shí),一位流亡的希臘人聽(tīng)說(shuō)波斯暴君薛西斯要進(jìn)攻希臘,就將消息刻在一塊木板上,再在上面涂一層蠟蓋住刻痕。木板傳到希臘,希臘人得知將受到攻擊,提前整頓武備,挫敗了波斯的進(jìn)攻。
近代隱文術(shù)中比較有趣的例子,是在一張紙的不同位置上挖一些小窟窿,用這張紙蒙上一篇布滿文字的公開(kāi)文獻(xiàn),比如一張報(bào)紙,透過(guò)小窟窿露出來(lái)的字就是發(fā)信者想傳遞的原文。電影《火燒圓明園》《美麗心靈》中都有類似的情節(jié)。隱文術(shù)發(fā)展到現(xiàn)代,已經(jīng)與密寫(xiě)藥水和縮微膠卷等技術(shù)聯(lián)系在一起。
隱文術(shù)的缺點(diǎn)是它過(guò)分依賴物質(zhì)介質(zhì)。如果用密碼術(shù)的術(shù)語(yǔ)形容,它的加密法和密鑰太容易引起人們的注意,那是一把看得見(jiàn)的鑰匙,而不是一種碼。
易位與替換
密碼術(shù)主要有兩種:易位法和替換法。
易位法在公元前5世紀(jì)就被斯巴達(dá)人用于加密軍事信息。所謂易位,就是原文和密文的文字(或字母)不變,只是按照一定的規(guī)則改變它們的位置或前后順序。舉例來(lái)說(shuō)——
原文“我的密碼你永遠(yuǎn)不懂”。
可以按照如下加密法加密:
我密你遠(yuǎn)懂的碼永不
最后得出偽文“我 密 你 遠(yuǎn) 懂 的 碼 永 不”。
要想讓接收者看懂,你只需將密鑰“懂后回行,間隔鑲?cè)搿蓖ㄖ邮照呔涂梢粤?。?dāng)然,這是最簡(jiǎn)單的易位。
如果把一個(gè)句子拆成三層、四層,破解的難度就會(huì)增加。
替換法,是將原文文字或字母按照規(guī)則用其他文字或字母替換。比如原文“我的密碼你永遠(yuǎn)不懂”。密鑰是:流氓兔=我.表情=密碼.你=恐龍。利用替換術(shù)制訂的著名密碼,早期可以舉愷撒密碼為例。愷撒密碼的規(guī)則是,原文的每一個(gè)字母被替換成字母表中排在此字母后三位的字母。如原文為“Attack”(進(jìn)攻),按照愷撒密碼的加密規(guī)則:A—D,t—w、c—f、k—n,就被加密成“Dwwdfn”。接收者收到密文后,按加密規(guī)則進(jìn)行逆推,即可得出原文。愷撒密碼在幾個(gè)世紀(jì)內(nèi)一直被廣泛使用,被認(rèn)為是非常安全的。直到公元9世紀(jì),阿拉伯科學(xué)家阿爾·金迪提出的字母頻率分析法終結(jié)了愷撒密碼無(wú)法破譯的神話。
16世紀(jì),法國(guó)外交官維熱納爾設(shè)計(jì)了一種更復(fù)雜的字母替換規(guī)則。運(yùn)用這種規(guī)則先要排列一個(gè)字母方陣,然后規(guī)定一個(gè)單詞作為密鑰,對(duì)照原文在方陣中找出密文。維熱納爾替換法能夠掩蓋密文中字母出現(xiàn)的頻率。但是到19世紀(jì),維熱納爾替換法還是被一位普魯士人找到了破譯規(guī)律。
愷撒密碼和維熱納爾替換法只是人工加密法中比較著名的例子。約從19世紀(jì)初開(kāi)始,人們已經(jīng)研制出機(jī)器加密裝置。計(jì)算機(jī)發(fā)明之前的密碼機(jī),以第二次世界大戰(zhàn)中大出風(fēng)頭的恩尼格瑪密碼機(jī)最為著名。
發(fā)明和破譯密碼的代價(jià)
兩次世界大戰(zhàn)期間,無(wú)數(shù)天才的大腦在不斷地發(fā)明和破譯著一堆堆信息。
1917年,德國(guó)決定實(shí)行無(wú)限制潛艇戰(zhàn),以封鎖英國(guó)的海上運(yùn)輸,作戰(zhàn)對(duì)象包括尚保持中立的美國(guó)。為避免美國(guó)宣戰(zhàn),德國(guó)決定先下手,并制訂了一個(gè)絕密計(jì)劃:策動(dòng)墨西哥與日本對(duì)美國(guó)宣戰(zhàn),使美國(guó)腹背受敵,自顧不暇。這一絕密方案的電報(bào)被英國(guó)截獲了,英國(guó)的密碼學(xué)家破譯了密文。消息傳出,美國(guó)舉國(guó)嘩然,4月16日,美國(guó)向德國(guó)宣戰(zhàn)。9個(gè)月后,德國(guó)投降。
1919年,德國(guó)謝爾比斯發(fā)明了一種新的密碼編碼裝置——恩尼格瑪(Enigma)密碼機(jī),它成為歷史上最難破解的加密系統(tǒng),被德國(guó)軍方大量采用。隨著二戰(zhàn)的爆發(fā),破譯恩尼格瑪?shù)闹匾耘c日俱增。為此,英國(guó)薈萃全國(guó)最好的數(shù)學(xué)家、密碼學(xué)家來(lái)完成這一任務(wù)。最終,由于德國(guó)報(bào)務(wù)員的失誤,英國(guó)破譯了恩尼格瑪?shù)拿孛?,開(kāi)始源源不斷地接收并破譯德軍的電報(bào)。
1940年11月12日,德國(guó)下達(dá)了“月光奏鳴曲”計(jì)劃,決定在14日摧毀英國(guó)考文垂市,被破譯的德軍的進(jìn)攻命令送到英國(guó)首相丘吉爾的手上。如果此時(shí)通知考文垂市的居民撤退,雖然能減少考文垂市的損失,但會(huì)使德國(guó)懷疑恩尼格瑪已被破譯,從而改用其他密碼,使英國(guó)斷了絕密情報(bào)的來(lái)源。為了麻痹德軍,丘吉爾決定犧牲考文垂市,不采取任何防范措施。最后,德國(guó)飛機(jī)準(zhǔn)時(shí)到來(lái)并狂轟濫炸,將全城夷為平地,居民傷亡慘重。沉重的代價(jià)換來(lái)的收獲是,德國(guó)始終堅(jiān)信恩尼格瑪沒(méi)被破譯,一直使用到大戰(zhàn)結(jié)束。英軍則在北非戰(zhàn)場(chǎng)的對(duì)德作戰(zhàn)中,在諾曼底登陸戰(zhàn)役中,都靠恩尼格瑪取得了重要情報(bào)。
現(xiàn)代密碼學(xué)的開(kāi)始:非對(duì)稱加密體系
1976年12月,美國(guó)政府正式啟用IBM公司研制的新型密碼系統(tǒng)——數(shù)據(jù)編碼標(biāo)準(zhǔn),簡(jiǎn)稱DES。DES的采用,解決了密碼系統(tǒng)標(biāo)準(zhǔn)化的問(wèn)題,至今仍是美國(guó)官方認(rèn)定的加密標(biāo)準(zhǔn)。
雖然統(tǒng)一了數(shù)據(jù)編碼標(biāo)準(zhǔn),人們還是經(jīng)常在信息保密方面遇到難題。其中最突出的一個(gè)難題是,傳統(tǒng)的加密技術(shù)都采用單密鑰方法,信息發(fā)送者使用密鑰將原文加密。接收者使用同一密鑰解密。沒(méi)有密鑰,就無(wú)法譯回原文。長(zhǎng)期以來(lái),一直有一個(gè)根本問(wèn)題困擾著密碼學(xué)家,就是如何將密鑰安全傳遞到接收者手中。這種方法費(fèi)時(shí)費(fèi)力不說(shuō),也不安全。
解決這個(gè)難題的是笛福和赫爾曼,他們的解決方案是“雙重加鎖方案”。用雙密鑰方法加密原文,發(fā)文方和收文方無(wú)需傳遞密鑰。舉一個(gè)例子:
流氓兔要和恐龍秘密通信,他們各有一把自己掌管鑰匙的鎖。流氓兔將原文放在一個(gè)盒子中,掛上自己的鎖,送給恐龍??铸?jiān)诤凶由霞訏焐献约旱逆i,將盒子回送給流氓兔。流氓兔取下自己的鎖,再把盒子送到恐龍手中。這時(shí),盒子上只掛著恐龍的鎖,恐龍就可以用自己掌管的鑰匙開(kāi)鎖取出原文了。
在雙重加鎖方案的基礎(chǔ)上,笛福經(jīng)過(guò)進(jìn)一步研究,發(fā)明了“非對(duì)稱加密”密碼體系。傳統(tǒng)的加密系統(tǒng)中,用于加密的密鑰與解密的密鑰完全相同,解密過(guò)程只是加密過(guò)程的反演,被稱為“對(duì)稱加密”。非對(duì)稱加密系統(tǒng)中,加密密鑰不同于解密密鑰,加密密鑰公之于眾,稱為公開(kāi)密鑰,供所有人加密發(fā)送原文。解密密鑰是私人密鑰,只有收件人自己掌握,可用來(lái)解密別人發(fā)給自己的原文。
“非對(duì)稱加密”已經(jīng)完美地解決了密鑰分發(fā)的問(wèn)題。但是要將“雙重加鎖方案”和“非對(duì)稱加密”體系應(yīng)用到計(jì)算機(jī)和互聯(lián)網(wǎng)中,還需要設(shè)計(jì)一套簡(jiǎn)便的算法。麻省理工大學(xué)計(jì)算機(jī)科學(xué)實(shí)驗(yàn)室的三位研究員最后成功地完成了這一任務(wù),他們創(chuàng)建了RSA“非對(duì)稱加密”體系,是現(xiàn)代密碼學(xué)中最有影響的密碼系統(tǒng)。endprint