- 碼書:編碼與解碼的戰爭
- (英)西蒙·辛格
- 3982字
- 2019-01-22 18:41:50
復興于西方
公元800至1200年之間,阿拉伯學者正在享受知識澎湃躍進的時光,歐洲卻仍深陷在黑暗時代。肯迪在講述密碼分析學的時候,歐洲人還在跟密碼學的基本原理奮斗。在歐洲,唯一還鼓勵研究秘密書寫技術的組織是修道院。修士在這里鉆研圣經,視圖找出隱藏在文字里面的意義——這種言外之意的魅力一直持續到現代(參閱附錄C)。
舊約圣經含有一些蓄意的、明顯的密碼應用例子,讓中世紀的修士深深著迷。例如,舊約圣經就有幾段以“atbash法”加密的文字。atbash是一種傳統的希伯來文替代式密碼法:要替換字母時,先記下它在字母集的順序編號,再取從字母集后頭倒數過來順序編號相同的字母來取代。以英文為例,第一個字母a,就以最后一個字母Z來代替,b則用Y代替,以此類推。事實上,atbash這個詞就暗示了它所描述的替代法。它包含了第一個希伯來文字母aleph,跟著是最后一個字母taw,再來是第二個字母beth,最后是倒數第二個字母shin。舊約耶利米書第25章26節和第51章41節就有atbash法的實例。在這兩處,Babel(巴別,及巴比倫)這個詞被替代為Sheshach(示沙克)。在希伯來文,“巴別”的第一個字母是beth,它是希伯來文的第二個字母,所以被替換成倒數第二個字母shin; “巴別”的第二個字母也是beth,因此仍替換成shin;第三個字母lamed是希伯來文的第12個字母,所以被換成第12個字母kaph。
atbash以及其他類似的圣經密碼可能不過是想增添一點神秘性,并沒有隱藏任何文意的用意,但也足以激發人們認真地研究密碼學。歐洲的修士們開始發掘古老的替代式密碼法,自己也發明了一些新的,在這過程中自然又把密碼學重新引介回西方文明里去。目前所知第一部介紹密碼術的歐洲書籍是13世紀的英國圣方濟修會的修士、也是精通多門學問的學者羅杰·培根(Roger Bacon)所寫的《論秘密工藝作品與無效的魔法》(Epistle on the Secret Works of Art and the Nullity of Magic)。書中介紹7種保護秘密的方法,并警告道:“失去理智的人才會不使用能避開俗人耳目的方法書寫秘密。”
到了14世紀,密碼術的用途愈來愈廣泛,煉金術士和科學家甚至用來隱匿他們的新發現。以文學成就聞名的杰弗里·喬叟(Geoffrey Chaucer)也是天文學家及密碼學家,歐洲早期幾件著名的加密案例,即有一件出自他手。喬叟在他的《星盤論》(Treatise on the Astrolabe)里加上一些題為“行星赤道”(The Equatorie of the Planetis)的附注,其中有幾個段落是以密碼寫成的。喬叟的加密法是用符號來取代明文字母,例如把b換成δ。不用字母,而用奇怪的符號所組成的密碼文,乍看之下似乎更為復雜。事實上,它跟傳統以字母替換字母的替代法沒什么兩樣。加密過程以及安全等級也完全相同。
到了15世紀,密碼術在歐洲成為一門新興行業。藝術、科學和人文學科在文藝復興時期的重生培養了研發密碼術的能力,頻繁的政治權謀運作也大幅激發秘密通訊的動機。尤其是意大利,可說是密碼術發展的最佳溫床。不僅因為它位于文藝復興的中樞位置,更因為它是由許多獨立的城邦所組成,每個城邦之間都攻于算計。此時,外交舉動頻繁,城邦之間都會互遣大使,往來于彼此的宮廷。大使會收到國君的信函,詳細指導他如何執行對外政策,而他也會把收集到的任何情報傳送回去。他們當然有強烈的動機將傳送的信息加密。因此,每個城邦都設有密碼部門,每位大使也都有密碼秘書。
就在密碼術演變成基本的外交工具之際,密碼分析學也正開始在西方崛起。外交家才剛熟悉建立安全通訊所需的技巧,就已經有人嘗試破壞它的安全性了。當時的密碼分析學,很有可能是歐洲自行發展出來的,但也有可能是從阿拉伯世界引進的。伊斯蘭在科學和數學上的發現對歐洲的科學復興有很大的影響,密碼分析學可能也在這些進口知識之列。
歐洲第一位偉大的密碼分析家,當推1506年被任命為威尼斯密碼秘書的喬瓦尼·索羅(Giovanni Soro)。索羅的聲譽響徹全意大利,某些友邦甚至會把截獲的信息送來威尼斯分析。連梵蒂岡,大概可謂第二活躍的密碼分析中心,也會把落入他們手中卻無法破解的信息送請索羅解譯。1526年教皇克萊門特七世(Pope Clement VII)交給他兩則加密信息,送回來時,兩則都成功分析出來了。有一次,教皇自己的加密信息被佛羅倫薩攔截到,于是他送了一則相同的信息給索羅,想確認信息的安全性。索羅宣稱,他無法破解教皇的密碼,意味佛羅倫薩人也破解不了。不過,這有可能是在哄騙梵蒂岡的密碼秘書,讓他們誤以為他們的系統很安全。索羅可能不愿指認出教廷密碼系統的弱點,以免梵蒂岡研發出更安全的密碼,屆時連索羅也可能破不了。
歐洲其他地方其他宮廷也開始任用干練的密碼分析家,例如法國國王弗朗西斯一世(Francis I)的密碼分析師菲利伯特·巴布(Philibert Babou)。巴布以驚人的毅力聞名;為了破解信息,他可以日以繼夜不眠不休地工作,長達數周之久。不幸的是,法國國王竟趁此大好機會與他的妻子建立一段長期的曖昧關系。16世紀末,弗朗索瓦·韋達(Francois Viete)出現,強化了法國人破解密碼的技能。韋達特別以破解西班牙的密碼為樂。西班牙的密碼專家,似乎比歐洲其他地方的對手天真。當他們發現法國人可以看透他們的信息時,竟不愿正視這件事實。西班牙國王菲利普二世(Philip II)甚至向梵蒂岡陳情,宣稱韋達之所以能破解西班牙密碼的唯一解釋是:他是“與撒旦結盟的魔王”。菲利普訴請樞機法庭審判韋達的惡魔勾當。教皇深知自己的密碼分析家多年來也一向能破解西班牙的密碼,于是駁回他的陳情。這則新聞很快就傳到各國專家的耳朵里,西班牙的密碼專家頓時成為全歐的笑柄。
西班牙的窘狀象征編碼者和譯碼者的戰局。這是一個過渡時期:編碼者還在依賴單套字母替代法,而譯碼者已開始使用頻率分析法破解它了。尚未察覺頻率分析法威力的編碼者,全然不知像索羅、巴布和韋達之輩的解碼者,可以輕易解開他們的信息,仍然一味信賴單套字母替代法。
有些國家警覺到單靠單套字母替代法的弱點,便急于研發更好的密碼系統,以防止敵方的專家破解他們的信息。他們想出一些簡易的方法來增強單套字母替代法的安全性,其中一種方法是引進“虛元”(mulls),亦即不代表任何字母、像空格一樣不具任何意義的字母或符號。例如我們可以在1到99之間任選26個數字來替代明文字母,剩余73個不代表任何字母的數字,則以不同的頻率隨意散置在密碼文之間。這些虛元不會對收信人造成任何困擾,因為他知道哪些數字可以略去不管。攔截到信息的敵人卻會很頭痛,因為這些虛元會干擾頻率分析法的應用。另一種簡易的方法是在信息加密前,故意拼錯字。Thys haz thi ifekkt off diztaughting thi ballans off frikwenseas(正確拼法是:This has the effect of distorting the balance of frequences,意即“這樣會有扭曲頻率分布的效果”),這也會讓譯碼者更難使用頻率分析法。知道鑰匙的收信人則可以先從容解譯這則信息,再來對付這些很糟,但不至于無法理解的拼字。
另一個扶助岌岌可危的單套字母替代法的辦法則是使用代碼單詞(codewords)。code(代碼)這個字在日常用語中有非常廣泛的含義,常被用來描述任何秘密通訊方法。然而,如在前言所提到的,它其實有特定的意義,專指某種形式的替代法。到目前為止,我們所討論的替代式密碼法只有一種,就是每一字母都只以另一個不同的字母、數字或符號來替換。其實我們也可以提高替代法的應用層面:讓整個單詞改由另一個單詞或符號替代(后者即稱為代碼)。例如:


圖7:秘密書寫及其分類
在技術上,代碼法(code)指的是單詞或詞組層面的替代法;密碼法(cipher)指的是字母層面的替代法。因此,密碼加密(encipher)指的是用密碼法改寫信息;代碼加密(encode)則是用代碼法改寫信息。同理,解譯密碼(decipher)是還原以密碼法加密的信息,解譯代碼(decode)則是還原以代碼法加密的信息。密碼加密(encipher)和解譯密碼(decipher)這兩個術語比較通用,泛指代碼或密碼的改寫或還原。請參考圖7的概括說明。基本上,我會遵循這些定義,不過有時候,不致造成誤解時,我可能會用code breaking(破解代碼)這個字來講述一個其實是cipher breaking(破解密碼)的過程——技術上而言,后者比較正確,可是前者的用法較普遍。
乍看起來,代碼法似乎比密碼法安全,因為單詞比較不怕頻率分析法的攻擊。解譯單一字母密碼法的時候,我們只需判讀26個字符的真正身份;要解譯代碼法所加密的信息時,我們卻得判讀數百個乃至數千個代碼的真實身份。不過,更仔細地檢視代碼法,我們會發現它有兩大缺點,而不如密碼法實用。第一,使用密碼法時,發信人和收信人只要協議好26個密碼字母(加密鑰匙),就可以據此加密任何信息,而使用代碼法時,若要達到同樣的彈性,必須先辛苦地定義好數千個可能會用到的明文單詞的代碼。這樣的一本代碼簿恐怕會有好幾百頁,猶如一本厚厚的字典。換句話說,代碼簿的編纂工作不會很輕松,而且帶著這樣一本書旅行也非常不方便。
再者,代碼簿被敵人截獲的后果會非常凄慘。頃刻之間,所有秘密通訊都變成完全透明。發信人和收信人必須再度辛苦地重新編纂一本全新的代碼簿,然后得再把這本大部頭的書籍安全無恙地送達通訊網絡的每一份子(很可能包括駐留各國的每一位大使)才算了事。相較之下,若被敵人截獲一把密碼鑰匙,只需重編一套包含26個字母的密碼字母集,既好記又易分送,顯然輕松便利多了。
即使在16世紀,密碼專家也未低估代碼法內在的弱點,而仍偏好密碼法,或偶爾改用命名法(Nomenclator)。命名法這種加密系統主要是以密碼字母集為主,再加進一些代碼。所以,命名法手冊的第一頁通常是密碼字母集,第二頁則是一個代碼表。盡管引進代碼,命名法的安全性并不會比單純的密碼法高,因為訊息主體仍可用頻率分析法來解譯,其余用代碼加密的單詞則可利用前后文推測出來。
除了對付命名法外,那些最厲害的解碼專家也有辦法應付故意拼錯詞的信息和虛元的干擾。簡言之,他們能破解絕大多數的加密信息。他們運用巧妙的技術揭露一則又一則的機密,影響他們主人的決策,乃至在關鍵時刻左右歐洲歷史的發展。
蘇格蘭瑪麗女王的案子,最戲劇性地彰顯出密碼分析學的影響力。這場審判的結果完全取決于她的編碼專家和伊麗莎白女王的解碼專家的戰局。瑪麗是16世紀最重要的人物之一,她既是蘇格蘭女王、法國王后,也是覬覷英格蘭王位的人。而一張紙條——紙上的信息,以及信息是否能被解譯——將決定她的命運。