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