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