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