何映宇
密碼學(xué)是一門(mén)既古老又新興的學(xué)科。從古代希臘戰(zhàn)爭(zhēng)中的密碼到中國(guó)古代的虎符,密碼的應(yīng)用在古代人類(lèi)歷史上發(fā)揮了重要的作用。密碼學(xué)作為一門(mén)科學(xué),是怎樣發(fā)展的?
密碼為什么叫密碼?
密碼之所以叫密碼,流傳著這么一個(gè)故事。
公元前405年,伯羅奔尼撒戰(zhàn)爭(zhēng)已接近尾聲,雅典和斯巴達(dá)打了多年兩敗俱傷。此時(shí),一直覬覦希臘這塊肥肉的波斯帝國(guó)正蠢蠢欲動(dòng)。斯巴達(dá)急需摸清波斯帝國(guó)的具體行動(dòng)計(jì)劃,以便采取新的戰(zhàn)略方針。剛巧,斯巴達(dá)軍隊(duì)捕獲了一名從波斯帝國(guó)回雅典送信的雅典信使。斯巴達(dá)士兵仔細(xì)搜查,并未在信使身上發(fā)現(xiàn)什么書(shū)信,只有在他的腰帶上發(fā)現(xiàn)了一些仿佛天書(shū)一般雜亂無(wú)章的希臘字母。這是個(gè)啥東東?怎么每個(gè)字母都認(rèn)識(shí),可是合起來(lái)卻不知道它在說(shuō)啥?
斯巴達(dá)軍隊(duì)統(tǒng)帥萊山德絞盡腦汁,幾乎把這些字母的排列組合都想了個(gè)遍,也沒(méi)把這句句子給捋順。當(dāng)時(shí)他就抓狂了,敵軍的秘密就在自己手上,可是自己就是解不開(kāi)這個(gè)謎。這什么感受?就好像一頭活羊就落在一只饑腸轆轆的斑斕猛虎面前,可是猛虎剛掉了牙齒,無(wú)福消受。怎一種酸爽的感覺(jué)了得?
幸好,萊山德運(yùn)氣還不壞,就在他把腰帶呈螺旋形纏繞在手中的劍鞘上把玩時(shí),奇跡出現(xiàn)了。腰帶上那些雜亂無(wú)章的字母,竟組成了一段文字,說(shuō)的是波斯軍隊(duì)準(zhǔn)備在斯巴達(dá)軍隊(duì)發(fā)起最后攻擊時(shí),突然對(duì)斯巴達(dá)軍隊(duì)進(jìn)行襲擊。
世界上第一份密碼信就這樣給運(yùn)氣好到爆的萊山德給破了。此時(shí)萊山德知己知彼百戰(zhàn)不殆,斯巴達(dá)軍隊(duì)根據(jù)這份情報(bào)馬上改變了作戰(zhàn)計(jì)劃,先是大破不可一世的波斯軍隊(duì),繼而揮師雅典,取得了著名的伯羅奔尼撒戰(zhàn)爭(zhēng)的勝利。
這個(gè)故事很出名很有市場(chǎng),但是它是真的還是假的呢?我們認(rèn)為八成是假的。為什么?因?yàn)槭聦?shí)上,和波斯結(jié)成聯(lián)盟的不是雅典,而正是斯巴達(dá)!
雅典雖然在小亞細(xì)亞沿岸及黑海海峽附近的海戰(zhàn)中數(shù)度取勝,但斯巴達(dá)卻得到波斯資助再建海軍。公元前405年斯巴達(dá)將雅典180艘艦船誘入赫勒斯滂海峽,突然襲擊,這一戰(zhàn),雅典艦隊(duì)全軍覆沒(méi),標(biāo)志著雅典海上霸權(quán)喪失殆盡。雅典方面怎么可能派人給波斯送這樣一份密信呢?而且波斯人又不懂希臘語(yǔ)。
連年征戰(zhàn)讓繁榮富強(qiáng)的希臘從此一蹶不振。波斯帝國(guó)得以插手希臘各邦的事務(wù),勝利者斯巴達(dá)成為希臘的霸權(quán)國(guó)。公元前408年后,波斯王子居魯士出任小亞總督,斯巴達(dá)任命萊山德?lián)魏\娊y(tǒng)帥。萊山德親赴薩爾迪,面見(jiàn)居魯士,討得他的歡心,得到了1萬(wàn)大流克的資助。萊山德就用居魯士的錢(qián),提高服役水手的薪金,把許多水手從雅典人的艦隊(duì)拉到了自己這邊來(lái),最終擊敗雅典。只是斯巴達(dá)的霸權(quán)沒(méi)有維持多久,最終被希臘北部的馬其頓王國(guó)征服。
所以,傳說(shuō)只是個(gè)傳說(shuō),不過(guò),密碼學(xué)(Cryptography)這個(gè)詞實(shí)際上是希臘文Kruptos(hidden)和graphein(towrite)合在一起的組合,現(xiàn)代準(zhǔn)確的術(shù)語(yǔ)為“密碼編制學(xué)”,簡(jiǎn)稱(chēng)“編密學(xué)”,與之相對(duì)的專(zhuān)門(mén)研究如何破解密碼的學(xué)問(wèn)稱(chēng)之為“密碼分析學(xué)”。密碼的英文cryptogram,是希臘文Kruptos和詞根gram(同樣是towrite的意思)的組合,這是不是萊山德密碼故事的一個(gè)源頭呢?
最重要的密碼
密碼最開(kāi)始的用處自然就是克敵制勝,到二戰(zhàn)時(shí)期,登峰造極,密碼扮演了舉足輕重的角色,許多人認(rèn)為同盟國(guó)之所以能打贏這場(chǎng)戰(zhàn)爭(zhēng)完全要?dú)w功于二次大戰(zhàn)時(shí)所發(fā)明的破譯密文數(shù)位式計(jì)算機(jī)破解了德日密碼。
1918年,在德國(guó),密碼大神亞瑟·謝爾比烏斯制造了第一臺(tái)非手工編碼的密碼機(jī)——ENIGMA密碼機(jī)(恩尼格瑪編碼機(jī))?!癊NIGMA”,意為“謎”,這臺(tái)機(jī)器,又稱(chēng)“獅身人面”。直到第一次世界大戰(zhàn)結(jié)束為止,所有密碼都是使用手工來(lái)編碼的。而ENIGMA密碼機(jī)的出現(xiàn)改變了這種狀況,ENIGMA看起來(lái)是一個(gè)裝滿了復(fù)雜而精致的組件的盒子。不過(guò)要是我們把它打開(kāi)來(lái),就可以看到它可以被分解成相當(dāng)簡(jiǎn)單的三部分:鍵盤(pán)、轉(zhuǎn)子和顯示器。
鍵盤(pán)一共26個(gè)鍵,鍵盤(pán)排列接近我們現(xiàn)在使用的計(jì)算機(jī)鍵盤(pán),但沒(méi)有標(biāo)點(diǎn)符號(hào)。鍵盤(pán)上方就是顯示器,它由標(biāo)示了同樣字母的26個(gè)小燈組成,當(dāng)鍵盤(pán)上的某個(gè)鍵被按下時(shí),和此字母被加密后的密文相對(duì)應(yīng)的小燈就在顯示器上亮起來(lái)……
使用“ENIGMA”通信時(shí),發(fā)信人首先要調(diào)節(jié)三個(gè)轉(zhuǎn)子的方向(而這個(gè)轉(zhuǎn)子的初始方向就是密鑰,是收發(fā)雙方必須預(yù)先約定好的),然后依次鍵入明文,并把顯示器上燈泡閃亮的字母依次記下來(lái),最后把記錄下的閃亮字母按照順序用正常的電報(bào)方式發(fā)送出去。收信方收到電文后,只要也使用一臺(tái)“ENIGMA”,按照原來(lái)的約定,把轉(zhuǎn)子的方向調(diào)整到和發(fā)信方相同的初始方向上,然后依次鍵入收到的密文,顯示器上自動(dòng)閃亮的字母就是明文了。加密和解密的過(guò)程完全一樣,這就是反射器的作用,同時(shí)反射器的一個(gè)副作用就是一個(gè)字母永遠(yuǎn)也不會(huì)被加密成它自己,因?yàn)榉瓷淦髦幸粋€(gè)字母總是被連接到另一個(gè)不同的字母。
“ENIGMA”型機(jī)能產(chǎn)生220億種不同的密鑰組合,假如一個(gè)人日夜不停地工作,每分鐘測(cè)試一種密鑰的話,需要約4.2萬(wàn)年才能將所有的密鑰可能組合試完,反正就是老復(fù)雜了。
對(duì)于潛艇作戰(zhàn)尤其是德國(guó)海軍的“狼群”戰(zhàn)術(shù)來(lái)說(shuō),無(wú)線電通信是潛艇在海上活動(dòng)獲取信息通報(bào)情況的最重要的手段,而“ENIGMA”密碼機(jī)則是關(guān)乎整個(gè)無(wú)線電通信安全的設(shè)備,其重要性可想而知。
耗資6200萬(wàn)的美法合拍超級(jí)大片《獵殺U-571》講的就是美國(guó)海軍派出本國(guó)潛艇偽裝成德軍維修艦去搶奪因戰(zhàn)斗受損上浮的德國(guó)潛艇U-571上的通信密碼解碼機(jī),以期破解德軍的密碼通信的故事。美國(guó)大片的講述當(dāng)然要為美國(guó)人臉上添光,事實(shí)上,是法國(guó)人而不是美國(guó)人第一次接近“ENIGMA”編碼機(jī)。
美國(guó)前情報(bào)人員歐內(nèi)斯特·弗克曼在他的《間諜圖文史:世界情報(bào)戰(zhàn)5000年》中寫(xiě):在比利時(shí)的一個(gè)小村莊,德軍最高統(tǒng)帥部的密碼員提羅·施密德第一次與法國(guó)人秘密會(huì)面,這時(shí)他拿出了恩尼格瑪編碼機(jī)的使用說(shuō)明書(shū),還有編碼機(jī)加密系統(tǒng)的一些技術(shù)文件。法國(guó)情報(bào)人員看得目瞪口呆,施密德想要的是錢(qián),法國(guó)人為此支付了首付款1萬(wàn)美元(約合現(xiàn)在的20萬(wàn)美元)現(xiàn)金。
與法國(guó)并肩作戰(zhàn)的還有波蘭、美國(guó)和英國(guó)。英國(guó)的代號(hào)為ULTRA的行動(dòng),被溫斯頓·丘吉爾稱(chēng)為“下金蛋的鵝”。1940 年,ULTRA 行動(dòng)組開(kāi)始破譯出由恩尼格瑪編碼機(jī)發(fā)報(bào)的高級(jí)別信息。從理論上說(shuō),一臺(tái)恩尼格瑪編碼機(jī)能夠生成的可能排列數(shù)量是3×10114,這是一個(gè)令人頭暈?zāi)垦5臄?shù)字。但是不管這個(gè)數(shù)字有多大,它總是有限的。
為了破解德國(guó)人的密碼,他們制造了一臺(tái)解密機(jī),這是個(gè)龐然大物,它有7 英尺(約2.1 米)長(zhǎng),6英尺(約1.8 米)高,重量超過(guò)1噸。機(jī)器啟動(dòng)時(shí),它那數(shù)以千計(jì)的真空管、滑輪和電磁傳動(dòng)裝置,就開(kāi)始“嘩啦啦”地工作,響聲就像是科學(xué)小說(shuō)里描寫(xiě)的科學(xué)怪物。沒(méi)錯(cuò),這就是世界上第一臺(tái)計(jì)算機(jī)!
有了計(jì)算機(jī)這樣的神器你覺(jué)得德國(guó)人還有打贏的可能性嗎?太平洋戰(zhàn)爭(zhēng)中,美軍成功破譯了日本海軍的密碼機(jī),讀懂了日本艦隊(duì)司令官山本五十六發(fā)給各指揮官的命令,在中途島徹底擊潰了日本海軍,擊斃了山本五十六,導(dǎo)致了太平洋戰(zhàn)爭(zhēng)的決定性轉(zhuǎn)折。
“ENIGMA”到最后還是沒(méi)能挽救納粹德國(guó)的命運(yùn),這說(shuō)明什么?邪不勝正!這才是放之四海而皆準(zhǔn)的宇宙真理。
中國(guó)古代的密碼
中國(guó)古代也有密碼?!胺弊直玖x是指古代朝廷下命令的憑證;“竹”字偏旁表明最早的“符”是用竹子做的;“符”一般來(lái)講使用時(shí)一分為二,驗(yàn)證時(shí)合二為一;這就是我們常用的詞語(yǔ)“符合”的來(lái)歷。
西周的兵書(shū)《六韜》中陰符和陰書(shū)是中國(guó)早期系統(tǒng)闡述密碼學(xué)的著作?!瓣帯敝浮皺C(jī)密”,“符”指“符號(hào)”,也有編碼的意思,“書(shū)”指“信件”或“文件”。所以,字面上的意思,“陰符”和“陰書(shū)”就是“密碼”或“密文”。其中“陰書(shū)”的加密方法是整體加密,只有獲得全部文字信息才能看懂其中的內(nèi)容。
《龍韜·陰符》開(kāi)篇就記述了陰符的種類(lèi)。當(dāng)武王向太公請(qǐng)教,遇到戰(zhàn)事緊急情況軍隊(duì)要保持保持密切的聯(lián)系應(yīng)該怎么辦時(shí),太公就回答說(shuō)要用陰符。
陰符共分八種,每一種之間差一寸。
一種長(zhǎng)一尺,表示大獲全勝,摧毀敵人;一種長(zhǎng)九寸,表示攻破敵軍,殺敵主將;一種長(zhǎng)八寸,表示守城的敵人已投降,我軍已占領(lǐng)該城;一種長(zhǎng)七寸,表示敵軍已敗退,遠(yuǎn)傳捷報(bào);一種長(zhǎng)六寸,表示我軍將誓死堅(jiān)守城邑;一種長(zhǎng)五寸,表示請(qǐng)撥運(yùn)軍糧,增派援軍;一種長(zhǎng)四寸,表示軍隊(duì)?wèi)?zhàn)敗,主將陣亡;一種長(zhǎng)三寸,表示戰(zhàn)事失利,全軍傷亡慘重。如奉命傳遞陰符的使者延誤傳遞,則處死;如陰符的秘密被泄露,則無(wú)論無(wú)意泄密者或有意傳告者也處死。只有國(guó)君和主將知道這八種陰符的秘密。這就是不會(huì)泄露朝廷與軍隊(duì)之間相互聯(lián)系內(nèi)容的秘密通信語(yǔ)言。敵人再聰明也不能識(shí)破它。
我們熟悉的虎符就是陰符的一種?;⒎怯们嚆~或者黃金做成伏虎形狀的令牌,劈為兩半,其中一半交給將帥,另一半由元帥或大將保存,只有兩個(gè)虎符同時(shí)使用,才可以調(diào)兵遣將,為中國(guó)古代帝王授予臣屬兵權(quán)和調(diào)發(fā)軍隊(duì)的信物?;⒎钤绯霈F(xiàn)于春秋戰(zhàn)國(guó)時(shí)期,盛行于戰(zhàn)國(guó),秦、漢時(shí)期傳世的有秦新郭虎符等。陜西歷史博物館藏有一枚從西安西郊發(fā)現(xiàn)的虎符,據(jù)考證是公元前475至公元前221年的戰(zhàn)國(guó)文物,稱(chēng)為秦代錯(cuò)金“杜”字锏虎符,高4厘米、作猛虎疾奔狀,象征軍威和進(jìn)軍神速?;⒎纳砩峡逃星督疸懳?0字,記述調(diào)兵對(duì)象和范圍,制作極為精巧。
民間使用的密碼
密碼是個(gè)奇特的存在,不僅可以用于軍事,民用領(lǐng)域也用處多多。
1844年,薩米爾·莫爾斯發(fā)明了莫爾斯電碼:用一系列的電子點(diǎn)劃來(lái)進(jìn)行電報(bào)通信。電報(bào)的出現(xiàn)第一次使遠(yuǎn)距離快速傳遞信息成為可能。20世紀(jì)初,意大利物理學(xué)家奎里亞摩·馬可尼發(fā)明了無(wú)線電報(bào),讓無(wú)線電波成為新的通信手段,它實(shí)現(xiàn)了遠(yuǎn)距離通信的即時(shí)傳輸。
1949年仙農(nóng)的《保密系統(tǒng)的通信理論》成為近代密碼學(xué)建立了理論基礎(chǔ)。密碼學(xué)曾經(jīng)長(zhǎng)期是軍隊(duì)獨(dú)家專(zhuān)有的領(lǐng)域。美國(guó)國(guó)家安全局以及蘇聯(lián)、英國(guó)、法國(guó)、以色列及其他國(guó)家的安全機(jī)構(gòu)已將大量的財(cái)力投入到加密自己的通信,同時(shí)又千方百計(jì)地去破譯別人的通信的殘酷游戲之中,面對(duì)政府,個(gè)人既無(wú)專(zhuān)門(mén)知識(shí)又無(wú)足夠財(cái)力保護(hù)自己的秘密。
1976年,當(dāng)時(shí)在美國(guó)斯坦福大學(xué)的迪菲和赫爾曼兩人提出了公開(kāi)密鑰密碼的新思想,不僅加密算法本身可以公開(kāi),甚至加密用的密鑰也可以公開(kāi)。但這并不意味著保密程度的降低。因?yàn)槿绻用苊荑€和解密密鑰不一樣,將解密密鑰保密就可以了。這就是著名的公鑰密碼體制,也就是俗稱(chēng)的不對(duì)稱(chēng)加密方式。在這里,鑰匙被分為兩個(gè)部分:
一把私有的鑰匙,僅有用戶(hù)才擁有。
一把公開(kāi)的鑰匙,可公開(kāi)發(fā)行配送,只要有要求即取得。
公鑰,就是給大家用的,你可以通過(guò)電子郵件發(fā)布,可以通過(guò)網(wǎng)站讓別人下載,用來(lái)加密/驗(yàn)章。私鑰,則是自己的,必須非常小心保存,最好加上密碼,私鑰用來(lái)解密/簽章。公鑰與私鑰的作用是:用公鑰加密的內(nèi)容只能用私鑰解密,用私鑰加密的內(nèi)容只能用公鑰解密,這實(shí)際上就使得加密的程度更高。
密碼現(xiàn)在已經(jīng)成了普通公民自我保護(hù)的一種工具,可是很多人似乎并不在意。以色列安全公司Imperva發(fā)布研究報(bào)告稱(chēng),盡管安全專(zhuān)家反復(fù)提醒,但仍有近五分之一的網(wǎng)絡(luò)用戶(hù)使用諸如“abc123”、“iloveyou”或是“password”之類(lèi)的簡(jiǎn)單密碼保護(hù)數(shù)據(jù)。在所有用戶(hù)使用的簡(jiǎn)單密碼當(dāng)中,“123456”是最常用的密碼。Imperva首席技術(shù)官阿米亥·舒爾曼說(shuō):“我猜這可能是人類(lèi)中的一個(gè)基因漏洞。早在上世紀(jì)90年代,我們就已對(duì)同樣的課題進(jìn)行追蹤?!蹦阏f(shuō),設(shè)個(gè)“12345”做密碼,和公開(kāi)說(shuō)“來(lái)黑我”有什么區(qū)別?
(摘自《新民周刊》)