密碼學——編製和破譯密碼的科學——日益成為那些能夠獲得最新計算機技術的數學家所從事的量性學科。今天在軍隊和私人企業中所使用的密碼與昨日的密碼截然不同,總的來說是變得更為難以破譯了。然而,儘管取得了這些進步,這種新型的數學密碼在許多場合也不管用,而對一些古老的密碼,最先進的破譯技術仍然無法解開。
密碼學一定有很長的歷史,因為早在公元前1世紀,據說凱撒大帝就曾用過極簡單的代換式密碼,在這種密碼中,每個字母都由其後的第三個字母(按字母順序)所代替。當凱撒說:「Hw we,Eu-xwh!」而不是「Et tu,Brute!」(「你這畜生!」)時,他的心腹會懂得他的意思的。值得注意的是,大約2,000年後,聯邦將軍A.S.約翰遜和皮埃爾·博雷加德在希洛戰鬥中再次使用過這種簡易密碼。
《舊約》中發現的一個密碼與這同樣簡單。在《耶利米書》第二十五章第二十六節和第五十一章第四十一節中,先知為通天塔寫了Sheshach。希伯來文第二個字母(b)被倒數第二個字母(sh)所取代。第十二個字母(l)被倒數第十二個字母(ch)代替。(這些母音次序錯亂,但在希伯來文中,母音不大重要。)這種密碼被稱為Ath-bash——一個由希伯來文第一個字母(a)、最後一個字母(th)、第二個字母(b)和倒數第二個字母(sh)組成的單詞。
最初代換式密碼的缺點是可以通過分析每個符號出現的頻率而輕易地被破譯。在每種語言中,冗長的文章中的字母表現出一種可對之進行分辨的頻率。例如,e是英語中最常用的字母,其出現頻率為八分之一。最好假定長長的密文中最常用的符號代表e。如果密碼分析者根據頻率數能破譯出9個最常用的字母e,t,a,o,n,i,r,s和h,一般來說他就可破譯70%的密碼。最現代的譯密技術也是以古老的頻率分析法為根據的。
頻率分析法還可以用來對單詞中的字母的位置及其組合進行分析。例如,全部英語單詞中有一半以上是似t,a,o,s或w開頭的。僅10個單詞(the,of,and,to,a,in,that,it,is和I)就構成標準英語文章四分之一以上的篇幅。
編成密碼的辭彙量越大,用頻率分析法譯密就越容易。在激戰方酣時,電文接連不斷地從戰場和司令部之間來回發送,其中少不了密電。第一次世界大戰時,德國人每月用無線電播送200萬編成密碼的文字。在第二次世界大戰時,盟軍最高統帥部常常一天就播發200萬字的編密文字。
在凱撒密碼(即Athbash)那種系統中,與明文相對應的密碼符號都是按照某種模式編製的,而這些模式又不難發現,所以人們不用費多少氣力就可以發現這種模式。例如,如果對凱撒密碼文進行頻率分析後表明:h代表e,w代表t及d代表a,那麼,密碼分析者就會懷疑,每個密碼字母代表著按a,b,c字母順序的前3個字母。然後他會核實他的懷疑是否正確。預感與猜測無疑是譯密的關鍵,因為易於使用這些方法並檢驗它們是否有效。
如果不是因為使用了頻率分析的話,蘇格蘭的瑪麗皇后是不會掉腦袋的。她那時常常用簡單的代換式密碼寫不忠實的信件,並以此賣弄自己比凱撒和耶利米更高明。她任意選用密碼符號,並用毫無意義的符號寫信。
然而,英國特工處的奠基人弗朗西斯·沃爾辛厄姆極力排除了那些無意義的符號,並計算剩下符號的頻率。結果,他破譯出瑪麗陰謀暗殺伊麗莎白女王並繼承她的皇位。正是根據這種密碼分析法,瑪麗被宣判犯了叛國罪而被處決。
如果瑪麗知道15世紀義大利建築師萊昂·巴蒂斯塔·阿爾貝蒂的做法的話,她也許會免遭殺頭。阿爾貝蒂為破壞頻率推演算法而提出了一個他稱之為「群王」的令人驚訝的方案。在這種方案中,明文中每一個字母都可由每個密碼符號來表示。實質上,它是用一個以上的密碼字母來對某個特定的密碼單位進行編密。這種密碼叫做多字母體系密碼;阿爾貝蒂的思想是現代密碼學的基礎。
阿爾貝蒂系統採用了下列表格。表的上面是大寫字母,即眾所周知的密鑰字母,它們是用於發現表中的密碼字母的。表的左邊是明文字母,也是大寫的。
在發出信息之前,通訊各方必須就一種被稱為密鑰詞的口令取得一致。要為某一段信息編密,就得在明文上面重複地寫密鑰詞。例如,密鑰詞是 LOVE(愛),明文信息為 SEND MORE MON-EY(送更多的錢來)。發送信息者則寫:
密鑰:LOVE LOVE LOVEL
明文: SEND MORE MONEY
在每個明文字母之上的密鑰詞字母指明表中那個密碼字母應用來給那個特定的明文字母編密。SEND中的S應由字母L代表(因為LOVE中的L正落在SEND中的S上面),於是在表中S橫欄和L豎欄的相交處發現了密碼文字母d。
同樣,字母O則代表SEND中的E,於是在E橫欄和O豎欄的相交處發現了其密碼文符號——S:
運用這種方法對全段信息進行處理,我們發現SENDMOREMONEY相應的密碼文為DSIHXCMIXCIIJ:
密鑰詞:LOVE LOVE LOVEL
明文:SEND MORE MONEY
密碼文:DSIH XCMIX CIIJ
譯密的過程與此類似:在密碼文上方反覆地寫上密鑰詞,明文就可從表中適當的字母中解出。這種系統的可愛之處在於即使偷聽者得到這種表,但他如沒有密鑰詞也不會知道很多。在戰時,由於要特別保密,密鑰詞經常變換。
但粗心大意地使用,最保密的密碼也會泄密,這使破譯密碼在實際中比在理論上要容易得多。外交和軍事通訊通常都以特有的詼諧語(「敬禮」和「謹上」等)開頭和結尾,它們是密碼分析者的線索。某些特有的名稱,尤其是那些特別長的名稱也會泄露天機。例如在第二次世界大戰時,德國通訊設備就用密碼說過Wehrmaachrich tenverbin dungen——德國國防軍通訊情報處。
通過對敵人進行引誘常常可以獲得信息。 1942年 5月,美國最高統帥部得知一支由11艘戰列艦、5艘航空母艦、16艘巡洋艦和49艘驅逐艦組成的龐大日本艦隊不久將要出擊,但不知道出擊地點。日本無線電播音員一次又一次地提到AF。AF是代表加利福尼亞、阿拉斯加、中途島還是其他什麼地方呢?為弄清這一問題,美國情報官員指示美國中途島駐軍用無線電向珍珠港播報淡水快用完的信息。中途島駐軍照辦了。此後不久,美國人截獲了日本人報告AF地區用水短缺的消息。當攻擊來臨時,美軍已嚴陣以待了。美軍在數量上處於劣勢的情況下擊退了日軍,從而取得了中途島大海戰的勝利。
即使密碼不會被泄露出去,它也會被破譯出來,因為它有著內在的弱點,這些弱點常常為發送者所忽視而被足智多謀、進行竊聽的密碼分析家所利用。阿爾貝蒂的多字母體系密碼在 300年中一直被認為是無懈可擊的,但是在19世紀60年代,一位昔日的普魯士步兵弗里德里希·W.卡希斯卡發現了幾個內在的弱點。例如,他發現,如果對一個不止一次出現的明碼字母每次都用同樣的密鑰字母進行加密,那麼就會出現同樣的密碼文。如在SENDMORE MONEY短句中,密鑰字母LO兩次把明文MO列加密成XC:
密 鑰:LOVE LOVE LOVEL
明 文: SEND MORE MONEY
密碼文:DSIH XCMI XCIIJ
重複的密碼文XC表明了密鑰詞的長度。一般來說,在重複文字中從一例到另一例之間的密碼文字母數是密鑰詞字母的倍數。
如果密碼文數位經常重複的話,密碼分析家就能計算出密鑰詞的長度,並因此計算出所運用的密碼字母表的數目。這樣,要知哪個密碼文字母來自哪個密碼字母系列就只是一個分類問題了。而就每個密碼字母系列來說,頻率分析法將解出明文字母。
在阿爾貝蒂密碼中,只要密鑰保持秘密狀態,即使加密法——密碼字母系列表——為人所知也不會危及這種密碼的保密性。而正在利用創新的數字方法的現代密碼學者——如我們在上一章所見——把這一趨勢推向極端:可以在加密方法和密鑰都公開的情況下而不泄密。換句話說,給一段文字加密不像破譯它那麼困難。
在當今時代密碼術日益電腦化之時,技術上的故障可以造成嚴重的後果。如果說曾有過某種形勢,即需要運用一種現代數學提供的、而實際上又不可譯解的密碼的秘密通訊方式的話,那就是在1985年10月。某日凌晨,里根政府從情報人員處獲悉: