首頁 | 搜尋

.原載於科學月刊第三十二卷第二期
.作者任職於中研院資訊所
 

碼書
編碼與解碼的戰爭

(The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Crytography, by Simon Singh)

張復
劉燕芬

 
 

實用的編碼技術必須滿足兩個需求。(一) 不容易破解;(二) 收訊者很容易將它轉換為正常的文字。

在未來的世界裡,你可以透過網路去查詢你的銀行帳戶,撥款給另一個機構 (如亞瑪遜網路書站) 購買你需要的東。 然而,如果你可以在網上做這些事情,別人自然就可以仿冒你的身分做同樣的事。 畢竟你只是使用一組數位資訊指示遠端電腦為你效勞,而這組資訊是透過網路系統傳遞出去的, 在它上面流通的資訊可以隨時被人攔截。一旦別人洞悉了你所傳送的資訊, 他就能使用同樣的方式把你的錢提出來,或者轉移到其他的帳戶去。 因此,如何使用一套他人不能破解的方法來編製資訊,將成為未來網路世界的一個重要課題。

在好幾個世紀以前,同樣的問題也困擾著那些準備密謀造反的王宮貴族們。 下面的故事是賽門•辛在《碼書》裡所敘述的一小段插曲。

當蘇格蘭的瑪麗女王被英格蘭的伊莉莎白女王監禁在牢獄裡,她仍然利用密碼編寫的書信與外界與聯絡, 陰謀勾結貴族來推翻伊莉莎白女王。很不幸的是,英格蘭的國務大臣華興翰早已掌握了破解這套密碼的技術, 便好整以暇地逮補了所有預謀的人,並且把瑪麗送上了斷頭臺。這是發生在16世紀的真實故事。

伊莉莎白女王時代的密碼相對於日後設計的密碼其實是小巫見大巫之比。 當時的密碼技術只是將每一個英文字母系統性地以不同的字母 (密碼字) 取代。 要破解這套密碼,你只需要去計算每一個密碼字所出現的頻率,然後與英文字母在日常書信中出現的頻率做比對。 然而,這樣比對的結果並不十分可靠,我們還可以進一步做下面的改進。 首先,將每個密碼的頻率與相鄰密碼的頻率表列出來,同時也將每個英文字母的頻率與相鄰字母的頻率表列出來, 然後將這些表列的數值以比較,我們就不然找出每個密碼字所對應的真正的英文字母。

當我在《碼書》裡看到上述的方法時,不禁拍案叫絕,因為這也是現今電腦從事模式辨識 (pattern recognition) 的方法。

以文字的辨識為例,電腦會先從文字的形狀上抽取一些特徵來(特徵在文字辨識上扮演了字母的角色) 。 然後,它會把下面相關的數值都儲存在記憶體裡:(A)每個字的特徵;(B)特徵與特徵之間關系的表列。 當電腦要去辨識外界的文字時,它會把待辨識的文字的 (A) 數值與 (B)數值都計算出來, 然後將它事先儲存的每一個文字的 (A) 數值與 (B) 數值加以比對。 比對最接近的那個文字就是待辨識文字所對應的文字。

上面的方法,在模式辨識的領域通稱為「鬆弛法」(relaxation method) 。事實上,在最近基因的研究上, 類似的方法也被使用來解決 DNA 序列串接 (sequencing) 的問題。

讓我們回到情報戰的主題上。實用的編碼技術必須滿足兩個需求。(一) 不容易破解;(二) 收訊者很容易將它轉換為正常的文字。 到了二次世界大戰時,德國發明了一種密碼機,稱做「奇謎」(Enigma)。 這部機器的特色是,你只要把正常的文字打進去,而收訊的一方也可以利用同型機器, 選擇相同的設定,把加密的文字經由同樣的程序還原為正常的文字。

「奇謎」的另一項優點是,它會不斷地更改「密碼-字母」的對應關係。 因此,每個密碼在不同的位置上對應了不同的字母。同一個密碼所出現的頻率就不再有任何意義可言。 你絕對無法使用計算頻率的方法來破解「奇謎」。

在使用「奇謎」的時候,為了讓收訊者能夠正確地翻譯密碼, 送訊者必須將自已的設定 (也就是「密碼-字母」對應的變化規則) 告知對方。 這種設定在密碼學通稱為「鑰匙」。為了確保安全,送訊者可以透過獨立的方式將鑰匙傳送給收訊者。 然而在戰場上,訊息傳遞的要求十分頻繁。因此,最簡單的方法就是將鑰匙 (也是由一串字母組成) 放置在訊息的前頭, 隨著後者一起加密,然後一起傳送給對方。

為了減少錯誤,同一組鑰匙還會重複出現一次 (它們在加密後的形式並不相同)。 這是當時德國約定的傳送鑰匙的方式,但也成了這套密碼的致命傷。 早期英國能夠洞悉德國海軍的活動,並且在關鍵海戰上予以致命痛擊, 依靠的就是掌握了破解「奇謎」密碼的技術。

英國的情報單位當然也了瞭解,只要德國改變鑰匙傳送的方式,他們所持有的破解技術無用武之地。 因此,英國也在尋求更高明的技術。電腦之父亞倫•圖靈 (Alan Mathison Turing) 就是在這個時機加入了破解密碼的隊伍, 發明了一套更高明的解碼方法。在同一個時期,這支優秀的隊伍還設計了人類的第一部電腦來協助破解工作。 這些秘密都是在數十年之後才公開出來的。

上面的故事是我在《碼書》裡所讀到的部分精彩內容。可惜走筆至此,我已經用光了編輯所允許的字數, 雖然介紹的還不及原書的十分之一。總之,這是一本絕頂好書,我從裡面學到了很多東西。 我強力鼓勵讀者購買此書,回去自已閱讀。

   

回頁首
 
(若有指正、疑問……,可以在此 留言寫信 給我們。)
EpisteMath

EpisteMath (c) 2000 中央研究院數學所、台大數學系
各網頁文章內容之著作權為原著作人所有


編輯:謝易達 / 校對:黃怡碧 最後修改日期:3/18/2003