密碼文學(xué):從凡爾納到福爾摩斯
【編者按】
從古典密碼到量子密碼,再到當(dāng)前廣泛應(yīng)用的二維碼,密碼演變跨越了數(shù)千年。《破譯者:人類(lèi)密碼史》一書(shū)詳細(xì)記錄了世界密碼學(xué)發(fā)展歷程,鮮活刻畫(huà)人類(lèi)秘密通信的5000年,內(nèi)容涵蓋密碼源起史、軍事應(yīng)用史、機(jī)制沿革史、技術(shù)革命史、文化演進(jìn)史、大眾生活史等等方面。本文摘編自該書(shū),由澎湃新聞經(jīng)金城出版社授權(quán)發(fā)布。
密碼文學(xué)也要大大感謝愛(ài)倫·坡。自愛(ài)倫·坡指明道路以來(lái),其他作家紛紛將密寫(xiě)用于他們的故事;而且,在這些故事中,可被恰當(dāng)?shù)胤Q(chēng)為《金甲蟲(chóng)歸來(lái)》或《金甲蟲(chóng)之子》的作品亦不在少數(shù),因?yàn)樗鼈兌疾捎猛瑯拥牟貙氈黝}。(讀讀這些故事,再讀讀《金甲蟲(chóng)》,愛(ài)倫·坡的天分躍然而出。)但其他作品的密碼插曲通常寫(xiě)得不賴(lài),作家的水平也體現(xiàn)在處理密碼內(nèi)容的方式上。這些密碼可能更可信,它們的破譯闡述得更清楚,它們與情節(jié)的聯(lián)系更緊密,說(shuō)明它們?cè)谶@里不僅僅是個(gè)裝飾。它們一般都是簡(jiǎn)單密碼,因?yàn)閷?duì)一個(gè)復(fù)雜密碼的說(shuō)明或破譯會(huì)大大拖累敘事的節(jié)奏,所需解釋也會(huì)超過(guò)小說(shuō)讀者的忍受限度。當(dāng)然有時(shí),作者本人的知識(shí)亦不足以有效寫(xiě)作這個(gè)話(huà)題。
許多著名作家在他們的作品中提到密碼學(xué)。1852年,《名利場(chǎng)》作者、身高6英尺4英寸(約193厘米)的威廉·梅克皮斯·薩克雷在《亨利·埃斯蒙德的歷史》(The History of Henry Esmond)中用了一個(gè)卡爾達(dá)諾漏格板,這部小說(shuō)被稱(chēng)為他最優(yōu)美的作品,為此他曾在不列顛博物館研究了好幾個(gè)月。在他的書(shū)中,一段有關(guān)陰謀的描述談到密碼,陰謀者企圖把后來(lái)的詹姆斯三世推上英格蘭王位;就是在這場(chǎng)陰謀中,阿特伯里主教被判有罪,定罪的主要證據(jù)就是密碼分析。不過(guò)這里沒(méi)寫(xiě)到密碼分析,只提到一封密信的傳遞。
密寫(xiě)的神秘為儒勒·凡爾納的三本小說(shuō)增添了懸念。總的來(lái)說(shuō),他對(duì)密碼內(nèi)容的處理和其他技術(shù)內(nèi)容一樣出色。但由于一次在生理或心理上的描述不符合實(shí)際,他的兩個(gè)破譯被搞砸了。這些損害了他密碼分析的可信性,比技術(shù)上不現(xiàn)實(shí)對(duì)他科學(xué)幻想所造成的傷害還要大,因?yàn)樗鼈冞`背了不可改變的自然法則,而幻想只是超越了人類(lèi)當(dāng)時(shí)的科技能力。另一方面,就像他預(yù)見(jiàn)了潛艇、登月和快速環(huán)球旅行一樣,凡爾納也預(yù)見(jiàn)到一種密碼分析法。
他以一個(gè)三層密碼開(kāi)始了他第二本巨著《地心游記》的寫(xiě)作,這部作品奠定了他的聲譽(yù)。奧托·黎登布洛克教授剛買(mǎi)了一本古如尼文手稿,寫(xiě)在一片羊皮紙上的密碼從手稿里飄了出來(lái)。它也用如尼文寫(xiě)成,有21個(gè)六字母組。黎登布洛克把它轉(zhuǎn)換成羅馬字母,無(wú)任何意義。接著他以柵欄密碼形式重排字母,再轉(zhuǎn)抄,還是不走運(yùn)。后來(lái),他年輕的侄子阿克賽爾“無(wú)意識(shí)地”用轉(zhuǎn)抄了字的紙扇風(fēng),透過(guò)紙背看到文字,發(fā)現(xiàn)它只是一段倒寫(xiě)的拉丁文字。此處它的可信度在幾個(gè)方面打了折扣:透過(guò)紙讀字就這么容易嗎?阿克賽爾有能力領(lǐng)會(huì)倒寫(xiě)字母的意義嗎?也許沒(méi)有。但所有這些都在閱讀明文的激動(dòng)中被忘掉:“勇敢的探險(xiǎn)者,7月之前,當(dāng)斯卡爾塔里斯(山)的陰影落在斯奈費(fèi)爾火山口時(shí),你可以順著山口而下,抵達(dá)地心。我到過(guò)那里。阿爾納·薩克努賽姆(Arne Saknussemm)。”黎登布洛克和阿克賽爾按照破譯出的指示到達(dá)了地心。
在《亞馬孫漂流記》(La Jangada)中,雅里凱法官用普通單表替代方法未能解開(kāi)一封密信,確定它是一種格倫斯菲爾德系統(tǒng)(數(shù)字密鑰維熱納爾密碼),因?yàn)樗欢讶帜钢卮a。這個(gè)推斷十分牽強(qiáng),因?yàn)樵S多密碼能生成同樣的三字母重碼,由此該結(jié)論不成立。不管怎樣,按照格倫斯菲爾德密碼,雅里凱根據(jù)外部信息,嘗試以名字Ortega(奧泰加)作為信末簽名的可能詞,進(jìn)行破譯。他立即發(fā)現(xiàn),最后六個(gè)字母SUVJHD,在字母表中全部落在Ortega的字母后面,與他的假設(shè)相符。雅里凱用這個(gè)可能詞還原出密鑰432513,用它測(cè)試密信開(kāi)頭。密鑰以4開(kāi)頭的概率是六分之一,他幸運(yùn)地取得突破,當(dāng)場(chǎng)讀出明文。雖然這種淺顯的方法以前就很可能被人用過(guò),但凡爾納1881年的這段說(shuō)明卻是初次在出版物中出現(xiàn)。甚至可以看成是20年后,巴澤里埃斯出版同樣方法的前身,他用一個(gè)可能詞還原多表替代密鑰,吹噓說(shuō)它是“一種全新的破譯方法,卡西斯基、克爾克霍夫、若斯和瓦萊里奧都沒(méi)有描述過(guò)!”在《桑道夫伯爵》(Mathias Sandorff)中,凡爾納的最后一次密碼描寫(xiě)沒(méi)有提到破譯,因?yàn)樗_卡尼發(fā)現(xiàn)了信息加密漏格板。在這本1885年出版的書(shū)中,凡爾納引用了愛(ài)德華·弗萊斯納·馮·沃斯特羅韋茨(Eduard Fleissner von Wostrowitz)四年前出版、神化漏格板的《密碼學(xué)手冊(cè)》(Handbuch der Kryptographie)。凡爾納可能還讀過(guò)比《桑道夫伯爵》早兩年出版的克爾克霍夫《軍事密碼學(xué)》,因?yàn)榉矤柤{在討論優(yōu)秀密碼的要求時(shí),所用語(yǔ)言風(fēng)格像極了克爾克霍夫。但他學(xué)克爾克霍夫沒(méi)學(xué)到家,因?yàn)樗Q(chēng)漏格板和加密代碼是不可破的。
在描寫(xiě)夏洛克·福爾摩斯(Sherlock Holmes)的偵探小說(shuō)中,他不止一次而是三次碰到密碼(不包括一個(gè)簡(jiǎn)單的閃光信號(hào)系統(tǒng)和一個(gè)字謎)。《“格洛里亞斯科特”號(hào)》(The ‘Gloria Scott’)中,這個(gè)大偵探發(fā)現(xiàn),秘密信息由每三個(gè)單詞中的最后一個(gè)單詞組成,藏在一篇隱語(yǔ)文章里。《恐怖谷》(The Valley of Fear)中,福爾摩斯得到宿敵莫里亞蒂教授同伙的一封數(shù)字密信,不僅出色地推斷出它是個(gè)書(shū)本代碼,而且找到了那本書(shū)。這本書(shū)隨處可得,版本統(tǒng)一。因此《圣經(jīng)》被排除,因?yàn)樗m然無(wú)處不在,但頁(yè)碼標(biāo)準(zhǔn)不一;還因?yàn)椋耙牢铱矗飦喌僖换锶松磉厧缀醪粫?huì)攜帶《圣經(jīng)》”。唯一同時(shí)符合兩項(xiàng)要求的是《惠特克年鑒》(Whitaker’s Almanac)。最新版本譯出無(wú)意義的Mahratta Government pig’s bristles,但去年的版本給出了完整意義。就這樣,福爾摩斯都不必知道密碼分析,全憑他有名的推理能力,破譯了密信。
但他對(duì)密碼的掌握(他精通自己職業(yè)所涉及的所有知識(shí))在《跳舞小人》(Adventure of the Dancing Men)故事里顯現(xiàn)了出來(lái)。這些跳舞小人是手腳指向不同方向的人物線(xiàn)條畫(huà),它們共同構(gòu)成了密碼符號(hào)。美國(guó)暴徒阿貝·斯蘭尼是“芝加哥最危險(xiǎn)的惡棍”,他青梅竹馬的前戀人埃爾茜嫁給了一個(gè)英國(guó)鄉(xiāng)紳。斯蘭尼用小人密碼給埃爾茜寫(xiě)信。鄉(xiāng)紳抄下用粉筆寫(xiě)在窗臺(tái)和工具房的信息,帶給福爾摩斯。福爾摩斯破譯了信息,但未能阻止悲劇,斯蘭尼在一次交火中打死鄉(xiāng)紳,逃之夭夭。福爾摩斯從破譯的信息中知道了他住在哪里,于是用自己還原的密碼符號(hào)精心編寫(xiě)了一條信息,寄給他一張便條,催他Come here at once(速來(lái))。(福爾摩斯的計(jì)劃大概借自托馬斯·菲利普,1587年,后者為了詐出巴賓頓針對(duì)伊麗莎白陰謀中準(zhǔn)備行刺者的姓名,在一封給蘇格蘭瑪麗女王的信中偽造了一段密碼附言。)斯蘭尼天真地以為,只有埃爾茜和他的芝加哥匪幫同伙能讀懂這個(gè)密碼,因此這張便條肯定來(lái)自她。他回到鄉(xiāng)紳家,當(dāng)即被捕,并承認(rèn)了罪行。
福爾摩斯,按他自己的說(shuō)法:“精熟各種密寫(xiě)形式,本人就此寫(xiě)過(guò)一篇小專(zhuān)著,分析了160種不同密碼,但我承認(rèn),這個(gè)我從未見(jiàn)過(guò)。”當(dāng)然,他指的是用跳舞小人密碼,“讓人以為它們只是小孩的涂鴉”,將自己?jiǎn)伪硖娲奶卣麟[藏起來(lái)。他立即著手破譯,沒(méi)走任何彎路,這說(shuō)明他一眼就認(rèn)出了它們屬這一類(lèi)密碼。他的工作比其他分析虛構(gòu)密碼的分析家要難得多,因?yàn)樗奈淖謽O短,混亂,晦澀,滿(mǎn)是專(zhuān)有名詞。它前后由5條簡(jiǎn)短英文信息組成:(1)Am here Abe Slaney;(2)At Elriges;(3)Come Elsie;(4)Never;(5)Elsie prepare to meet thy God。但開(kāi)始時(shí),福爾摩斯只有第一條信息,他以此打開(kāi)突破口,直到增加了后來(lái)的三條信息,他才破開(kāi)密碼。它共有38個(gè)字母,其中8個(gè)只出現(xiàn)1次;9個(gè)單詞中4個(gè)是專(zhuān)名,其他5個(gè)均不位于最常用的10個(gè)英語(yǔ)單詞之列;這10個(gè)最常用單詞一般占到英語(yǔ)文章的四分之一。
如此艱難的破譯顯示出這個(gè)大偵探靈活強(qiáng)大的思維能力。福爾摩斯顯然更傾向于運(yùn)用他的嚴(yán)密推理(頻率分析)來(lái)破譯這封密信,他就是這樣開(kāi)始的。第一條信息包含15個(gè)跳舞小人,其中4個(gè)歡快地展開(kāi)四肢,3個(gè)左腿彎曲,福爾摩斯立即把4個(gè)展開(kāi)四肢的小人標(biāo)記為e。現(xiàn)在,不管是字母頻率還是其他統(tǒng)計(jì)現(xiàn)象,在這么小的樣本中都靠不住;很有可能3個(gè)彎腿小人,或者某種姿勢(shì)只出現(xiàn)一次的幾個(gè)小人之一代表e,甚至第一條信息里根本就沒(méi)有e。難以相信福爾摩斯不知道這一點(diǎn)。不管怎么說(shuō),他“較有把握地”把那個(gè)符號(hào)確定為e。當(dāng)然,他對(duì)了,但是為什么?福爾摩斯無(wú)疑認(rèn)出拿旗子的小人是詞尾標(biāo)記,注意到4個(gè)伸展四肢的小人里有2個(gè)拿著旗子,馬上聯(lián)系到一個(gè)眾所周知的事實(shí):e是英語(yǔ)中最常見(jiàn)的結(jié)尾字母。他敏捷的頭腦大概還觀察到與e相連的小人各不相同。但這些都是在不經(jīng)意間閃過(guò)他的超級(jí)大腦,這也許有助解釋他的推理為什么總是那么快,因此,他解釋給華生聽(tīng)時(shí)沒(méi)把它說(shuō)出來(lái),也許他只是不想拿所有這些細(xì)節(jié)增加后者的負(fù)擔(dān)。
但他確實(shí)認(rèn)識(shí)到,對(duì)于第一條信息,不管是頻率分析還是任何其他手段都不能再奏效,于是他選擇等待更多文字。隨著接下來(lái)三條信息的到達(dá),他看出頻率分析對(duì)這么短的文字沒(méi)用。當(dāng)鐘愛(ài)的推理手段行不通時(shí),他靈活地轉(zhuǎn)向歸納方法。他的表現(xiàn)十分出色。他首先猜測(cè),在一個(gè)擁有五字母的單詞中,第二和第四個(gè)字母為e,該單詞是never(不);他再推測(cè),Elsie(埃爾茜)的名字也許會(huì)出現(xiàn)在信息中,并且找到了它。憑借這些對(duì)應(yīng),他取得了很大進(jìn)展,再經(jīng)過(guò)更多艱苦努力,終于完成了破譯。
一些裝腔作勢(shì)的密碼學(xué)家譏笑福爾摩斯花了兩小時(shí)才破開(kāi)這些密信,在此過(guò)程中,“小人和字母”畫(huà)滿(mǎn)了“一張又一張紙”。但破解該密信所花的時(shí)間不僅可以理解,而且令人欽佩。若按字母順序排列,這些小人看上去就是在毫無(wú)規(guī)律地亂舞;如果按舞蹈動(dòng)作順序排下來(lái),字母又毫無(wú)規(guī)律可循。換句話(huà)說(shuō),跳舞小人密碼完全是隨意的。福爾摩斯迷俱樂(lè)部“貝克街雜牌軍”的一些成員,其中包括亞歷山大·伍爾科特、克里斯托弗·莫利和富蘭克林·羅斯福,曾為找到某種密碼小人結(jié)構(gòu)規(guī)律工作到深夜,純粹白費(fèi)力氣。福爾摩斯本人在他給斯蘭尼的“速來(lái)”信息里只用了已經(jīng)還原的字母。這個(gè)事實(shí)表明,他沒(méi)找到任何規(guī)律,使他在編寫(xiě)那條信息時(shí)哪怕多一點(diǎn)點(diǎn)自由度。而且如果有這么一個(gè)密鑰形式,福爾摩斯肯定會(huì)發(fā)現(xiàn)它。密碼發(fā)明人、埃爾茜的父親、“匪幫頭子”帕特里克的跳舞小人想法可能來(lái)自一個(gè)以人類(lèi)圖案為基礎(chǔ)的密碼,這個(gè)密碼出現(xiàn)在美國(guó)陸軍通信兵部隊(duì)創(chuàng)始人艾伯特·邁爾的半官方《通信手冊(cè)》中;或者來(lái)自稍晚一些,一個(gè)將小矮人用作密碼符號(hào)的美國(guó)專(zhuān)利發(fā)明人;或者來(lái)自無(wú)處不在的燒炭黨,他們的口令是雙手前伸合十,應(yīng)答則是兩拳一上一下按在胸前。福爾摩斯或許知道這些可能的來(lái)源。但即使帕特里克的想法確實(shí)來(lái)自其中之一,符號(hào)也已經(jīng)被他改得面目全非,因此密碼分析成為解決問(wèn)題的唯一方式。
在跳舞小人例子中,還有最后一點(diǎn)需要澄清,它解釋了所有出版物中出現(xiàn)的密碼錯(cuò)誤。在最早的《跳舞小人》版本中,密信用同樣的小人代表Never中的v和prepare中的p,用相同的小人表示Abe中的b和Never中的r,貝克街雜牌軍在這個(gè)問(wèn)題上花費(fèi)了大量精力。正是在尋找“正確”版本的過(guò)程中,他們錯(cuò)誤地假設(shè)密碼表具有某種規(guī)律,編制手和腿的位置表,推測(cè)未出現(xiàn)在密信中的八個(gè)字母(f、j、k、q、u、w、x、z)的密文符號(hào)。他們還試圖找到錯(cuò)誤的原因。但他們努力的唯一效果,就是表明為什么福爾摩斯是大師,而他們只能是學(xué)生。所有這些人只會(huì)閉門(mén)造車(chē),從不研究事實(shí)。有觀點(diǎn)認(rèn)為,這些錯(cuò)誤“存在于故事里惡棍的信息中,如果你愿意,可以歸因于這個(gè)可憐惡棍的困惑和絕望”,但沒(méi)人提到那個(gè)鄉(xiāng)紳在抄寫(xiě)這些信息帶給福爾摩斯時(shí)同樣可能發(fā)生的錯(cuò)誤。實(shí)際上,這些錯(cuò)誤既不是斯蘭尼的,也不是鄉(xiāng)紳的,因?yàn)樵诟柲λ蛊谱g密信時(shí),這些錯(cuò)誤并不存在。如果原件用同樣符號(hào)代替v和p,福爾摩斯在猜出Never后,就會(huì)部分還原出明文vrevare,而不是他顯示兩個(gè)p未知的?re?are。同理,如果r和b在原件中混淆了,他在猜出Never后會(huì)(把正確的Abe)顯示成部分破譯?re,但實(shí)際上,他顯示出一個(gè)部分破譯??e,b依然未知。因此,福爾摩斯自己的描述證明,錯(cuò)誤并不在原始信息中——幸虧不是,因?yàn)樗鼈兂霈F(xiàn)在分析的關(guān)鍵節(jié)點(diǎn)上,如果是那樣,再加上其他困難,即使是福爾摩斯,恐怕也讀不出這些密信。因此,錯(cuò)誤一定是華生醫(yī)生把真作傳遞給世界時(shí)發(fā)生的,后期版本加重了華生最初的錯(cuò)誤,但這些錯(cuò)誤已經(jīng)經(jīng)歷了在事實(shí)方面出名馬虎和靠不住的文學(xué)和新聞人物之手,不值一提。
https://imagecloud.thepaper.cn/thepaper/image/150/10/748.jpg