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