官术网_书友最值得收藏!

密碼術的圣杯

第一次世界大戰(zhàn)見識到密碼分析家一連串的勝利,并在齊瑪曼電報的破譯達到最高峰。自從維吉尼亞密碼法在19世紀被破解后,解碼專家便一路占上風。然而,就在大戰(zhàn)末期,編碼專家正感到極度絕望時,美國的科學家發(fā)展出驚人的突破。他們發(fā)現(xiàn),維吉尼亞密碼法可作為一種更強的新密碼法的基礎。事實上,這種新密碼法可以提供完美的保密安全。

維吉尼亞密碼法的弱點在于它的循環(huán)本質。假使鑰匙單詞是5個字母長,則每逢5個字母就會用到同一套密碼字母集。解碼專家一旦辨識出鑰匙單詞的長度,就能把密碼文視為5個單套字母密碼法的系列組合,再以頻率分析法逐一破解。然而,若使用更長的鑰匙單詞會怎么樣?

假設有一篇1000個字母的明文用維吉尼亞密碼法加密,然后我們要分析它加密后的密碼文。如果加密這篇明文的鑰匙單詞只有5個字母長,譯碼的最后一項步驟只需把頻率分析法應用到5套200個字母長的密碼文,這很簡單。可是假使鑰匙單詞是20個字母長,最后一項步驟就得對20套50個字母的密碼文做頻率分析,這可就難多了。再假設鑰匙單詞長達1000個字母,你就得對1000套1個字母的密碼文做頻率分析,這是完全不可能的。換句話說,如果鑰匙單詞(或鑰匙語)的長度跟信息相同,巴貝奇和卡西斯基所研發(fā)的密碼分析技術就派不上用場了。

沒人會反對使用一個跟信息等長的鑰匙單詞,只是編碼者就得編制一個冗長的鑰匙。這則信息若有數(shù)百個字母,加密鑰匙就也要有數(shù)百個字母。與其憑空編造一個冗長的鑰匙,不如用一首歌的歌詞之類的會輕松多了。或者,編碼者也可以挑出一本賞鳥書,再挑選一些鳥的名字,隨意串連起來當鑰匙。可是,這種偷懶取巧的鑰匙有根本性的缺點。

在下面的例子里,我用維吉尼亞密碼法和一個與信息等長的鑰匙語來產(chǎn)生一段密碼文。援用所有之前介紹過的密碼分析法來破解都會失敗。盡管如此,這則信息仍舊破解得了。

這套新的密碼分析系統(tǒng)先假設密碼文里含有一些常用的詞,例如the。再來,我們把the這個詞隨意置放在明文的幾個位置上,如下所示,然后再推測什么樣的鑰匙字母才能把the轉化成對應的密碼文。例如,我們假設the是明文的第一個單詞,那么這個鑰匙的前三個字母應該是什么?這個鑰匙的第一個字母會把t加密成V。我們去維吉尼亞方格查看以t開頭的直欄,往下找到V,再往左看得知這一行字母的第一個字母是C。重復這個程序,找出把h、e加密成H、R的鑰匙單詞字母,即可得出鑰匙的頭三個字母的候選者:CAN。這些都是根據(jù)the為明文第一個單詞的假設所得出來的。我們把the放到其他幾個位置去,再推測對應的鑰匙字母。(請參閱表9的維吉尼亞方格,查看每個明文字母和密碼文字母的關系。)

我們已經(jīng)把the隨意擺在明文的三個位置,而得出三個加密鑰匙片段元素的假設。現(xiàn)在,我們怎么知道有沒有哪一個the的位置是正確的?我們猜測,這把加密鑰匙是由有意義的單詞組成的,若是如此,這一點對我們很有利。位置錯誤的the很可能會衍生出一串隨機組合的鑰匙字母。然而如果放在正確的位置,可能就會衍生出一串有意義的鑰匙字字母。例如,第一個the衍生出鑰匙字母CAN,顯得很有希望,因為它是一個完全合理的英文音節(jié)。所以,這個the很可能是在正確的位置。第二個the則衍生出BSJ,一個非常怪異的輔音組合,表示第二個the很可能是錯誤的。第三個the衍生出YPT,一個不太尋常的音節(jié),但值得進一步推敲。如果YPT真的是鑰匙的一部分,那一定是在較長的單詞里。可能的候選單詞只有APOCALYPTIC、CRYPT、EGYPT,以及這幾個單詞的衍生單詞。怎么樣才能確定這類單詞是否是鑰匙的一部分呢?我們可以把這三個候選單詞輪流套進鑰匙里的適當位置,導出對應的明文:

如果這些候選單詞并非加密鑰匙的一部分,大概只會導出一段無意義的明文。可是,如果其中一個的確是鑰匙的一部分,它所導出的明文應該會有意義。APOCALYPTIC套進加密鑰匙里,只得出完全無意義的明文。套用CRYPT,則得出cithe,也不是能讀得出意義的明文片段。可是,套用EGYPT所得出的字母組合atthe就很有希望了,它可能代表at the(在……)兩個單詞。

現(xiàn)在,我們且暫時假設EGYPT真的是鑰匙的一部分。也許這把鑰匙是由國家名字組成的。若是如此,從第一個the所得出的鑰匙片段CAN,很可能是CANADA的一部分。要檢驗這個假設,就以CANADA和EGYPT這兩個假設當前提,求出更多明文字母:

看來,我們的假設蠻合理的。CANADA所導出的明文是themee,很可能是the meeting(會議)的一部分。既然我們又多推衍出一些明文字母——ting,我們也可以反推出它們對應的鑰匙部分:BRAZ。它們當然是BRAZIL的開頭部分啰。把CANADABRAZILEGYPT這串組合套進鑰匙里,即可得出下列的解譯結果:the meeting is at the ? ? ? ?(會議在?? ? ?舉行)。

為了找出明文的最后一個單詞——這場會議的地點,就得完成這只鑰匙。最好的策略是一一檢驗所有可能的國家名稱,看看會得出怎樣的明文。鑰匙的最后一段套進CUBA時,才能得出有意義的明文dock(碼頭):

所以,一把跟信息一樣長的鑰匙并不足以保證密碼的安全。上述例子不安全的緣由是,加密鑰匙是由有意義的單詞所組成的。我們先在明文里隨意插放幾個the,求出對應的鑰匙字母。然后,因為這些鑰匙字母看起來很像是有意義的單詞的一部分,我們就知道the放對地方了。接下來利用這些鑰匙碎片來推測完整的鑰匙單詞,得到更多信息碎片,再把這些信息碎片擴展成完整的單詞,如此循環(huán)下去。此種在信息和鑰匙之間來來回回的分析過程之所以能成功,全因為鑰匙本身有一定的結構,是由可辨識的單詞組成的。然而,在1918年,編碼專家開始實驗沒有結構的加密鑰匙。結果就是一種無法破解的密碼。

世界大戰(zhàn)接近尾聲時,美軍密碼研發(fā)部門的主管約瑟夫·茅博格少校(Major Joseph Mauborgne),引進隨機鑰匙的概念——鑰匙的組成元素不再是可辨識的單詞,而是隨機組合的字母。他主張采用這類隨機鑰匙,配合維吉尼亞密碼法,可提供空前的安全度。茅博格系統(tǒng)的第一步驟是編纂一本厚達數(shù)百頁的密碼鑰匙簿,每一頁都是一把好幾行隨機排列的字母所組成的獨特鑰匙。這種密碼鑰匙簿制成一式兩份,一份給發(fā)信人,一份給收信人。加密信息時,發(fā)信人就拿第一頁的鑰匙,套用維吉尼亞密碼法。圖30列示三頁密碼鑰匙(實際的鑰匙簿每一頁都會含有數(shù)百個字母),以及用第一頁隨機鑰匙加密的信息。收信人使用相同的鑰匙,逆向應用維吉尼亞密碼法,就能輕易地解譯這段密碼文。這則信息成功發(fā)送、接收、解譯后,發(fā)信人和收信人就把這一頁鑰匙銷毀,再也不用它。要加密下一則信息時,就套用鑰匙簿的下一頁隨機鑰匙,隨后亦將它銷毀。因為每把鑰匙都只使用一次,這套系統(tǒng)就被稱為單次鑰匙簿密碼法(one-time pad cipher)。

表9:維吉尼亞方格

單次鑰匙簿密碼法克服了之前的所有弱點。假設如圖30所示,加密好attack the valley at dawn(拂曉時進攻山谷)這則信息后,利用無線電傳送出去時被敵人攔截到,落在敵方密碼分析家手里。這位密碼分析家嘗試解譯它時會碰到的第一個障礙是,隨機鑰匙絕對沒有重復性,所以巴貝奇和卡西斯基的方法都無法破解這種單次鑰匙簿密碼法。接下來,他可能另尋其他途徑,嘗試在許多地方放進the這個試驗單詞,推測對應的鑰匙片段,就跟我們在嘗試解譯前一則信息時所做的一樣。他若試著把the放在信息的開頭,這個位置不對,他所推衍的對應鑰匙片段會是WXB,是一串沒有章法的字母。他若把the放在這則信息的第7個字母,剛好放對位置了,他所得出的對應鑰匙片段會是QKJ,仍是一串沒有章法的字母。換句話說,這位密碼分析家根本無法辨別,試驗的單詞到底有沒有放對地方。

在絕望之際,這位密碼分析家或許會考慮徹底搜查所有可能的鑰匙。這段密碼文有21個字母,因此他知道這把鑰匙也有21個字母。這表示說,他有大約500,000,000,000,000,000,000,000,000,000把鑰匙要測試。這根本超乎人力乃至機械能力的范圍。而且即使他能測試所有的鑰匙,還有一個更大的障礙在等著他。檢測過每把可能的鑰匙后,他當然會揭露正確的信息,然而在此同時,他也會得出所有錯誤的信息。例如,把下面這把鑰匙套到同一段密碼文后,可得出一則完全兩樣的信息:

圖30:三張,亦即三種單次鑰匙薄密碼法的可能性鑰匙。這則訊息是用第一張加密的。

若能測試所有不同的鑰匙,每一則意思上說得通的21個字母的信息也都會隨之出現(xiàn),這位譯碼者將無法分辨其中何者才是正確的。如果這把鑰匙是由一系列單詞或詞組所組成,他不會有這種難題,因為錯誤的信息勢必對應著無意義的鑰匙,正確的信息則會對應一把有意義的鑰匙。

單次鑰匙簿密碼法的安全性全歸功于鑰匙的隨機性。這種鑰匙把隨機性也注入密碼文里,密碼文既是隨機的,也就沒有特定模式、沒有結構、沒有密碼分析家可以攀住的東西。事實上,數(shù)學可以證明密碼分析家無法破解單次鑰匙簿密碼法所加密的信息。換句話說,單次鑰匙簿密碼法不單只是被視為無法破解——就像19世紀時人們對維吉尼亞密碼法的錯誤信心——而且它是真的絕對安全。單次鑰匙簿密碼法可以保證秘密書寫的絕對安全:它是密碼術的圣杯。

編碼專家終于找到一套無法破解的加密系統(tǒng)。然而,單次鑰匙簿密碼法的完美性并未終止保密法的追尋。事實上,它幾乎不曾被派上場。理論上它是很完美,實際使用上則有缺陷,因為它有兩項根本性的問題:第一,編造大量的隨機性鑰匙有實際困難。軍隊每天大概得收發(fā)數(shù)百則信息,每一則都有數(shù)千個字符,亦即無線電通訊員每天所需要的鑰匙量,相當于數(shù)百萬個隨機排定的字母。供應這么多隨機組合的字符串,是件不可低估的龐大工作。

早期有些編碼專家相信,他們可以在打字機上隨便亂打,以得出大量的隨機鑰匙。然而每當他們嘗試這么做時,打字者總是習慣左手按一個鍵、右手再按一個鍵,如此兩邊輪番打出字母。這種方法或能快速編造加密鑰匙,只是如此編造出來的字符串具有結構,而不再是隨機的——假使打字員打了位在鍵盤左方的字母D,我們可以預期他下一個字母大概會來自鍵盤右方。加密鑰匙若要有真正的隨機性,那么緊跟在一個位于鍵盤左方的字母后面的字母,來自鍵盤左方的概率應該跟來自右方的概率一樣高。

編碼專家意識到,編造隨機鑰匙需要大量的時間、功夫與金錢。利用自然的物理方法,例如有真正隨機特性的放射線,可以編造出最好的隨機鑰匙。編碼專家可以在工作臺上放一塊放射性物質,用蓋革計數(shù)器(Geiger counter,放射線測定器)偵測它的放射情況。放射線的發(fā)出,有時候是非常快速地一個緊接一個,有時候卻停頓很久——每一次放射的間歇時間都是隨機、無法預估的。在蓋革計數(shù)器上連接一個顯示器,字母集的字母以固定的速率在顯示器上快速輪番出現(xiàn),每偵測到放射線,就暫時凍結。凍結在顯示器上的字母,就取作隨機鑰匙的字母。顯示器繼續(xù)運轉,字母集的字母再次快速循環(huán),直到下一次隨機發(fā)出的放射線使它停止,凍結在顯示器上的字母又再被加進鑰匙里,如此不斷重復下去。這種裝置保證會編造出真正隨機的鑰匙,可是對日常的密碼應用而言,它很不實際。

就算能編造足夠的隨機鑰匙,還有第二個問題得解決:分送這些鑰匙。想象一下,戰(zhàn)場上有數(shù)百位無線電通訊員都是同一個通訊網(wǎng)絡的成員。首先,所有成員都必須有相同的單次鑰匙簿。再者,發(fā)送新鑰匙簿時,必須同時發(fā)給每一名成員。最后,每名成員必須保持同步狀態(tài),才能確保在正確時刻使用正確的鑰匙。真要廣泛使用單次鑰匙簿密碼法,整個戰(zhàn)場會到處都是信差和簿記員。此外,敵人只要截獲到一組鑰匙,就會危及整個通訊系統(tǒng)。

重復使用鑰匙簿以減少編造和發(fā)放鑰匙的困難,是誘人的建議,卻是密碼術的首惡。重復使用鑰匙簿會讓敵方的譯碼專家有機會解譯出信息。(破解兩則由同一把單次鑰匙簿鑰匙加密的密碼文的技巧詳述于附錄G。)總之,使用單次鑰匙簿密碼法不可抄捷徑。發(fā)信人和收信人一定得為每一則信息使用一把新的鑰匙。

單次鑰匙簿密碼法只能供那些需要絕對安全的通訊,且又負擔得起鑰匙的編造與發(fā)送成本的人使用。例如,美、俄總統(tǒng)之間的熱線就是利用單次鑰匙簿密碼法來防護的。

理論上很完美的單次鑰匙簿密碼法,卻因為實用上的缺點使得茅博格的構想永遠無法應用于戰(zhàn)場上。第一次世界大戰(zhàn)的余波與密碼通訊的失利,促使密碼專家繼續(xù)尋找可以在下一次沖突派上用場的實用系統(tǒng)。幸好對編碼者而言,他們沒等太久,就研發(fā)出一項突破,一種可以在戰(zhàn)場上重建安全通訊網(wǎng)的方法。為了加強密碼,編碼者被迫拋棄他們的紙筆作業(yè)方式,改為利用最新科技來加密信息。

主站蜘蛛池模板: 巢湖市| 文化| 江华| 唐山市| 南岸区| 普兰县| 谷城县| 司法| 浮梁县| 波密县| 乳源| 东光县| 渑池县| 乃东县| 星座| 郯城县| 永泰县| 全州县| 改则县| 泸定县| 华蓥市| 师宗县| 乐昌市| 通海县| 资中县| 德庆县| 句容市| 锡林浩特市| 蒙山县| 三明市| 环江| 太仓市| 新竹市| 陆丰市| 繁峙县| 神木县| 鄄城县| 遂川县| 南开区| 蓬溪县| 奇台县|