密碼學簡史(一)--- 諜戰中的古典密碼學

密碼學數千年的發展史,加密與解密雙方一次次的對立搏殺,就是一場曠日持久,沒有終點的智力追逐,沒有永遠的勝者,也不存在終極解決方案。你的敵人永遠不會睡着,即便你現在佔盡優勢,他們也不會認輸,而是會暗中進化,直到變強的那一天再來擊敗你。在加密與解密的千年對抗中,無數天才投身其中,瞭解它就如同置身一場頂尖的智力追逐賽,數千年來,人類最頂尖的頭腦如何相互提防、彼此碰撞,又如何在擊敗眼前的敵人後,被身後的對手擊倒……

古典密碼學,在加密和解密的過程中,最小操作單位都是單個字符或者符號。現代密碼學,把研究對象用數來描述,再對數進行運算,不但突破了字母作爲最小變化單位的限制,還可以使用更高等的數學工具做運算,因此破譯就變得越來越困難。可以說,加密時所用的數學工具,決定了一個密碼能否被破譯。

把研究對象用數來描述,主要是伴隨着計算機出現的,計算機要想處理字符或符號信息,需要把所有字符或符號編碼爲二進制的0和1,才能使用更高等的數學工具對這些數進行運算處理。因此,可以把計算機出現之前的密碼學叫做古典密碼學,之後的叫做現代密碼學。

1. 隱藏法

最原始的第一代加密法說起來很簡單,就是把信息隱藏起來,因此稱爲隱藏法。從有文字出現,一直到現在都在用,破解方法就是認真搜找。

史上第一個加密法的記載,是古希臘歷史學家希羅多德記錄的一個加密術的故事,發生在他出生前三百多年。當時,強大的波斯帝國計劃入侵希臘,斯巴達曾經的老國王得知後,偷偷把這個消息寫在木板上又塗了一層蠟。這片木板成功躲過沿路衛兵的檢查,到達斯巴達,收信人刮開表面的那層蠟,就發現了下面的密報。公元前480年,波斯艦隊以爲對方毫無準備,結果自己一天之內200多艘戰艦被擊沉,五年多的準備毀於一旦。可以說,這次密報挽救了雅典和斯巴達,其實也等於挽救了現代文明(現代文明有兩個思想根源:一個是公元前5世紀巔峯時期的古希臘思想;另一個是後來的基督教思想)。

類似的隱藏法在希羅多德的記錄中還有更高級的形式,比如先把送信人的頭髮剃光,然後把保密消息寫在那人的頭皮上,等他頭髮長出來後,讓送信人出發,到了目的地再把頭髮剃光,保密消息就讀出來了。再比如在熟雞蛋殼上用一種藥水(明礬和醋)寫密文,之後蛋殼上不會有痕跡,只能剝了皮才能看到蛋白上有字。

這些隱藏法對付完全小白的人還可以,對付稍加提防的衛兵就不靈了,讓他們留意一下蠟板、頭髮顏色,見到熟雞蛋就剝皮檢查等,保密信息就全部暴露了。但自從有了文字後人們就一直在用,直到今天人們藏私房錢時用的還是這個套路。

2. 移位法與替代法

有很多家長愛翻孩子的日記,但假如孩子們使用移位法或替代法對文字進行簡單加密,就完全可以把日記本擺在桌上,任憑家長怎麼看也不知道寫了什麼。

移位與替代加密法是大約五千年前出現的,直到9世紀才被阿拉伯人發明的頻率分析法破解,中間隔了足足有四千年。在另一邊的歐洲,直到16世紀都沒掌握這種破解方法,由此可以感受到阿拉伯文明曾經的輝煌。

移位法很簡單,舉個例子,比如我的車牌號是1874,把每個數字都在數列中往後加1,那麼1874就變成了2985。因爲都是數字你可能覺得反差不大,但如果字母也這樣變化,看起來就很不一樣了。字母順序改變也是一樣,從a排列到z,比如我要對hello world加密,加密規則是每個字母都向後移動兩位,“hello world”就變成了“jgnnq yqtnf”,這就是移位加密法。

替代法也很好理解,就是把文中一部分字母用其它字母代替。比如“For man is man and master of his fate”,如果把其中的a都用z代替,o用y代替,e用w代替,i用x代替,就成了一段誰都看不出來的文字“Fyr mzn xs mzn znd mzstwr yf hxs fztw”。

大約在距今五千多年前,古埃及人就在文字中使用了移位和替代法,這個方法廣泛運用了接近四千年時間。在漫長的時間裏也出現了很多變種,比如順序倒着寫,奇數位與偶數位的變化不一樣,把奇數和偶數位的字母拆分後首位相連等。因爲這種加密法涉及的排列組合數量非常多,想用窮舉試錯法破解幾乎是不可能的,所以在這種加密法出現後的四千年內都沒有有效的破解方法。

第二代的移位法和替換法的安全性很好,也比較好用,但到了16世紀這個局面扭轉了,因爲概率論的出現,這兩種加密法可以破解了,破解方法叫做“頻率分析法”。它的原理很簡單,英文中字母出現的頻率是不一樣的,比如字母e是出現頻率最高的佔12.7%;其次是t佔9.1%;然後是a、o、i、n等,最少的是z只佔0.1%。
英文字母出現頻率圖
如果使用移位或替換法加密的字符總量足夠多,全部蒐集到一起統計哪個符號出現的比例最高,那個字符大概就是字母e。當然有些字母出現的頻率極爲接近,比如h、r、s分別是6.09%、5.98%、6.32%,但只要稍微留意字母前後的關聯,就可以區分出來。比如t幾乎不可能出現在b、d、g、j、k、m、q這些字母的旁邊,h和e經常連在一起,ee一起出現的頻率遠比aa一起出現高得多等等。

頻率分析法的實質,就是大幅度降低字母排列組合的可能性。從前我們假設每個符文都可能使26個字母的任意一個,有多少個替代符號出現,就有26的多少次方種可能。但頻率分析法把很多符號的可能性大大降低,有的降低爲只有1種可能,有的降低爲只有2-3種可能。這樣一來,即便第一步統計各種符號出現的頻率時並不完全確定,但只要再根據拼寫規律篩選一下,替代符號對應的真實字母就確定了。

解密方法公佈後,替代法就不再有效了,加密一方當然不甘落敗,很快就出現了另一種叫做“同音替代法”的方法。比如說字母a可以用11、23、41三個數字替代,這三個數字翻譯過來都是a,越常用的字母比如e,就用越多的符號替代它。這種想法的終極目標就是讓每個數字出現的頻率都大致相等,頻率特徵沒有了,密碼就不容易破解了。不過這種方法的解密法馬上也出現了,就是通過字母前後順序關係來猜,比如q後面出現的最大可能就是u,而q又是一個不常用的字母,有很大概率猜出來,有了突破口,其它字母猜出來也就沒那麼困難了。

3. 維吉尼亞加密法

前面介紹的移位法與替代法是在概率論出現之後被破解的,維吉尼亞加密法就是爲了對抗頻率分析法出現的,使用這套加密方法之後,字母的頻率特徵會消失。

爲了掩蓋字母使用中暴露的頻率特徵,解決方法就是用多套符號代替原來的文字。比如原文的字母是A,從前只把它替換成F,現在把它替換成F或G這兩個,那什麼時候用F什麼時候用G呢?可以自行規定,比如字母在奇數位時用F代替,在偶數位時用G代替。從前單套符號替代的時候,凡是文字中頻率爲7.63%的符號差不多就代表A了,但現在A由F和G混合在一起,7.63%的特徵不再出現,哪個符號代表A就沒人知道了,頻率分析法就暫時失效了。

而且,多套符號加密法並沒有滿足於2-3套,後來典型使用的是26套,這個用26套字符的加密方法就是第三代密碼—維吉尼亞加密法。它是一個表格,第一行代表原文的字母,下面每一橫行代表原文分別由哪些字母代替,每一豎列代表我們要用第幾套字符來替換原文,一共26個字母,一共26套代替法,所以這個表是一個26*26的表。
維吉尼亞密碼錶
怎麼用上面的維吉尼亞密碼錶進行加密呢?假設我要給“hello”加密,原文第一個字母用第8套密碼代替,第二個字母用第12套密碼代替,第三個字母用第5套密碼代替等等,具體每個字母移動多少位單獨指定也太麻煩太混亂了吧?

第三代維吉尼亞加密法在真實使用時,人們事先規定每個字母用了哪套移位法時,並不是毫無規律的瞎指定,而是要約定一個規則,這個規則就叫做“鑰匙”。比如鑰匙是yes,那怎麼加密呢?原文字母作爲上表的行號,密鑰字母作爲上表的列號,行列交叉的字母便是加密後的密文字符。鑰匙的長度不夠,可以按照規則不斷循環下去,原文“hello”使用密鑰“yes”加密後的密文如下:

原文 h e l l o
鑰匙 y e s y e s
密文 F I D J S

這樣的好處是,原文裏同一個字母會被加密成不同字符,hello中的兩個‘l’分別變成了D和J,而且密文中同樣的字符也可能代表不同的原文,誰和誰都不對應。

1586年,維吉尼亞把這個想法寫在了《密碼論》種發表,但它在出現後的兩百年裏,幾乎沒有人使用。原因很簡單,太複雜了,真正好用的密碼,是在安全性和效率上找到了平衡點。

直到1861年到1865年美國南北戰爭時期,維吉尼亞加密法才被廣泛使用。因爲1860年代,不但已經有了蒸汽機,也有了電動機,這種有規律的體力活機器是最擅長乾的,既不會抱怨累,也不太會出錯,加密與解密的工作正好可以由機器來完成。

3.1 維吉尼亞加密法的破解

維吉尼亞加密法看起來很強大,該怎麼破解呢?重點就是維吉尼亞加密法中新提出的“鑰匙”的概念,鑰匙規定了每個字母由哪套密碼來加密,通常原文很長鑰匙很短,爲了讓原文和鑰匙一一對應,就反覆使用鑰匙。假如鑰匙泄露或者被破解了,使用這個加密法加密的密文自然也就被破解了。

由於鑰匙反覆循環使用,鑰匙中的每個字母表示一套密碼,鑰匙中不同字母的個數表示使用的密碼套數。假如我們能把使用同一套密碼加密的密文區分開,就可以使用前面介紹的頻率分析法進行破解。使用同一套密碼加密也就對應鑰匙中的同一個字母,鑰匙反覆循環使用,使用鑰匙中的同一個字母加密的密文同樣很多。假如我們直到鑰匙的循環週期,也即鑰匙的長度,每間隔鑰匙長度個字符都會使用同一套密碼加密。所以,我們只要能獲知鑰匙長度,就可以把維吉尼亞加密法拆分爲第二代的移位替代法,可以直接使用頻率分析法破解。

怎麼獲知鑰匙長度呢?先來看一個例子,原文、鑰匙、密文分別如下:

原文 t h e s u n a n d t h e m a n i n t h e m o o n
鑰匙 K I N G K I N G K I N G K I N G K I N G K I N G
密文 D P R Y E V N Y N B U K W I A O X B U K W W B T

原文的內容中,有三個定冠詞the,變成密文後,the變成了兩種樣子,第二個和第三個the竟然加密成了相同的密文。也就是說,正好在KING這個鑰匙循環到整數倍的時候,如果也正好趕上出現了同樣的原文,那巧合就出現了,原文就會被加密成相同的密文。這一點,就是找到鑰匙長度的關鍵,也即破解維吉尼亞密碼的關鍵。

破解維吉尼亞加密法的方法就是:

  1. 從密文中找出拼寫完全相同的字母串,尤其是那些長度大於4的重複出現的密文,比如我們找到重複出現的字母串共4種分別叫做甲乙丙丁;
  2. 數一數,這些重複出現的字母串第一次出現到第二次出現,中間隔了多少個字母。比如甲字符串重複間隔了20個字母,那就代表這段密文對應的鑰匙,在這20個字母中正好反覆使用了若干次(鑰匙長度可能是2、4、5、10、20);
  3. 找到在所有重複出現的字符串甲乙丙丁中,鑰匙可能長度的交集,也即該長度k在所有重複出現的字符串中都是其中一種可能長度,該長度k就是鑰匙的實際長度。

猜中鑰匙長度就等於,把維吉尼亞加密法簡化爲N套最基礎的移位加密法了,使用頻率分析法即可破解。由此可見,維吉尼亞加密法的缺陷在於鑰匙的循環。

3.2 維吉尼亞加密法2.0版

怎樣才能補上維吉尼亞加密法鑰匙循環的缺陷呢?答案可能你已經想到了—增加鑰匙的長度。對於頻率分析法來說,要想把字母出現的頻率統計準確,有一個必要條件—字母足夠多才行。比如一篇包含1000個字母的文章,如果鑰匙的長度爲5,則每套加密法會勻到200個字母,可以使用頻率分析法分析,如果把鑰匙長度增加到50個,每套加密法勻到的字母只有20個,連26個字母都湊不齊自然不會表現出字母的頻率特徵。

這時候鑰匙應該怎麼設計呢?一般是用一首詩或者一篇其它文章當作鑰匙,這樣方便大家約定規則。這種加密法,可以把它稱作維吉尼亞加密法的2.0版本。

不過2.0版也是可以破解的,因爲鑰匙和原文等長時,爲了方便,人們往往會使用一首詩或者一篇文章當鑰匙,而一首詩或一篇文章都是有意義的單詞組成的,它們的字母排列一定是符合拼讀規律的,有規律可循,就可能被破解。

破解的方法是,先假設原文中一定會出現常用的單詞,比如定冠詞the、at、in這些總會用到的單詞,然後拿它去和密文對照,倒推鑰匙的單詞是什麼。如果倒推出的鑰匙部分符合單詞拼寫規律,很可能這部分鑰匙字段你猜對了,繼續倒推其餘的鑰匙部分,如果不符合單詞拼寫規律,就說明猜的不對。

這種破解方法完全避開使用頻率分析法,不需要有足夠大量的字母出現,就可以分析出原文,只是除了規定步驟外,還要有很好的猜字謎功底,總體來說屬於體力活。

3.3 維吉尼亞加密法3.0版

維吉尼亞加密法2.0版的漏洞是:鑰匙是一段完全符合拼寫規律的文字。如果鑰匙根本不是一首詩、一篇文章,而是一大段完全隨機的字母,那麼上面的方法就無能爲力了。這個加密法在第一次世界大戰後出現,後來被叫做”單次鑰匙簿密碼法“,也可以稱爲維吉尼亞加密法3.0版本。

有數學家證明了這種把鑰匙編成隨機字母的方法,在理論上是不可破解的。但這種加密法幾乎從沒在實戰中規範使用過,原因你可能也猜到了—它的效率異常的低,根本就無法用在需要大量通信的領域。

除了操作層面效率異常低,更大的門檻在於—產生隨機字母排序,是一件幾乎不可能的事,我們平時使用的隨機算法產生的都是僞隨機數。可以這樣說,凡是通過軟件製造的隨機都是僞隨機,只有在大自然中,一些已經被證明是隨機的量子物理過程,纔是真的隨機。比如一種半導體管叫齊納管,它被電流擊穿後產生的白噪音是真隨機;或者有些放射性原子衰變時,向外輻射出的alpha粒子的間隔時間是真隨機的。所以對於人來說,真隨機是一個很難獲得的東西。

所以,雖然理論上說單次鑰匙簿密碼法是不可破解的,安全性沒有破綻,但真的隨機是很難輕易獲得的,而獲得了以後又很難大規模使用,效率極爲低下。所以這種加密法,幾乎沒有在真正的戰場上使用過。

4. 恩尼格瑪密碼機(Enigma)

Enigma使用的加密方式本質上還是第二代加密法—移位和替代,但因爲可以切換無窮多種加密配套組合,所以在對抗頻率分析法上極其有效。

Enigma是一種機械電子式的加密機,由一堆齒輪、電線、燈泡、轉盤、搖桿組成,恩尼格瑪機是一個大規模量產的機械電子式加密機,也正是從它開始,密碼學不再依賴紙和筆的運算,使用機械和電子加密的時代正式到來,所以它是第四代加密法。改編自《艾倫–圖靈傳》的電影《模仿遊戲》主要講述了圖靈破解恩尼格瑪機的過程。

第一臺恩尼格瑪機是一戰剛結束時由德國發明家雪畢伍斯和裏特製造出來的,機器主要分3部分,3部分之間由齒輪和電線相連:

  • 第一部分,是敲原文的鍵盤;
  • 第二部分,是把原文加工成密文的編碼器;
  • 第三部分,是密文的顯示板。

操作員只要做好設定,在鍵盤上敲入原文,經過編碼器編碼,密文顯示板會按規則點亮密文字母,抄寫員把點亮的字母的順序記錄下來,加密過程就完成了。
恩尼格瑪機
這其中重點就是編碼器,編碼器的工作原理有點複雜,下面簡單介紹下:編碼器由一堆可以手工設置的機械部件組成,任何地方的調整都會改變加密的結果。其中最大的部件是齒輪式的字母盤,它前後通過導線與敲原文用的鍵盤,以及密文顯示板相連。鍵盤那邊敲一個字母,信號通過導線傳給齒輪上的觸點,再通過導線傳到密文顯示板上,原文就這樣被加密成另一個字母了。

聽起來好像沒什麼,但恩尼格瑪機的真正高明之處在於:每敲一個字母,齒輪會往下轉一格,齒輪的轉動導致線路連接的變化,而連接線一變,又直接導致加密結果的不同。所以同一個字母敲入第二次、第三次,輸出結果都是不一樣的,齒輪能轉多少格,就意味着有幾套加密法等着輪替。

更高明的是,恩尼格瑪機的加密可能性,理論上是無限多的。最早齒輪一圈只有6格,也就是6套加密法,後來感覺不夠用就增加到26個格。再後來,單套齒輪格數不再增加,而是增加第2套齒輪,上面也有26個格,只有在第一套齒輪轉完一圈後,第2套齒輪才前進一格,這樣一來,有兩套齒輪的恩尼格瑪機就相當於擁有26 * 26 = 676套密碼。如果覺得不妥,還可以繼續增加齒輪的套數,用於商業領域的恩尼格瑪機一般有3套齒輪(德軍在二戰中使用的最高水準加密機有8套齒輪):
擁有三套齒輪的恩尼格瑪機
機械加電子的方式讓加密解密錯誤大大降低,效率也高了很多,關鍵是設計規範,可以量產。恩尼格瑪機的方便之處還在於,幾組齒輪的初始值是可以隨意設置的,比如封裝好後三組齒輪各自露出一個小窗口,收發雙方約定好,這3個窗口在初始時各顯示哪3個字母,然後他們按照這個順序編碼信息、解碼信息,互相之間就可以通信了。爲了更安全,可以每天更換一次3組齒輪的初始設定,非常方便。

恩尼格瑪機通過齒輪生成的鑰匙,只是看上去很隨機,它內在還是有規律可循的,這個規律就是它會按次序轉動,只要敵方手裏有一臺一模一樣的密碼機,再獲知齒輪的初始設定就可以解密了。

既然有3個齒輪,每個提供26個字符,那鑰匙的初始值可以出現的最大組合就是26 * 26 * 26 = 17576種,多個人使用窮舉法說不準幾個小時就把初始鑰匙碰對了。設計者早就考慮到暴力破解的問題了,所以他們在鍵盤和編碼器之間又增加了一個叫”接線板“的結構,可以調換6對字母的線路。比如你在鍵盤上按的是a,但電流信號確實沿着b的線路輸出到編碼器上的,通過調換26個字母中隨意的6對,組合一下就增加到了1000多億種,所以恩尼格瑪機是可以扛住暴力破解的。

正是恩尼格瑪機的誕生,使密碼學徹底進入了機械電子時代。也就是說,在1918年後,任何一個人通過紙和筆的運算,都無法和那時候的加密法抗衡了,誰想破解,也只能藉助機械電子化的設備纔可以。

4.1 第一代恩尼格瑪機的破解

從前面的分析可以看出,破解恩尼格瑪機的關鍵是要知道每次加密前人工設定的初始狀態,這個初始狀態包括3部分:

  • 設置接線板,要從26個字母中任意挑出6對接好;
  • 設置編碼器中三組齒輪的前後順序;
  • 設置每個齒輪的第一個字母是什麼。

操作員每個月都會收到一本新的密碼簿,上面記錄着每天的初始設定。但德國人並不會整整一天所有信息都使用密碼簿上這一把鑰匙,因爲當信息量足夠多時,鑰匙很容易被猜中。爲了堵上這個漏洞,德國人其實是每發一條信息,都單獨使用一把鑰匙。你可能會問傳遞鑰匙的過程是怎麼實現的呢?

德國人當時是這樣做的:這個機器每天的初始狀態裏,需要設置的3個部分中,有兩個全天都是不變的,唯獨一個變的,就是這三個齒輪每個齒輪的第一個字母是什麼。假設那本密碼簿裏,當天對應的3個字母是QCW,這並不是說今天所有消息都用它當鑰匙,實際上當天每條消息都有一把小鑰匙,QCW只是用來給當天無數把小鑰匙加密的總鑰匙。

小鑰匙的產生與傳遞過程:發信息前,先把齒輪的初始狀態設爲QCW,然後腦子裏隨意想3個字母,比如說ABC,用設置成QCW狀態的機器給ABC加密,比如說加密後ABC變成了BMW,但一次還不夠,還要再加密一次,比如第二次ABC又變成了NBA,然後把兩次加密的結果並列寫一起,形成BMWNBA就是這條消息的小鑰匙,放到這條消息的前面,這段信息真正的消息主體從第七個字母纔開始。

收信方如果收到了以BMWNBA六個字母開頭的密文後,他先查一下當天的密碼簿,一看當天要設置成QCW,那他也這樣設置,用QCW去解碼剛纔這六個字母,就會發現是ABCABC,他就會知道對應這條消息的後面內容主體的小鑰匙是用ABC解密,然後再把ABC當做齒輪的初始值,去解碼後面消息的主體,就知道消息原文是什麼了。因爲任何失誤或干擾都會導致解碼後,信息的前六位不是兩次重複的樣子,所以只要收信方發現不是兩次重複的格式,就會丟棄掉這段,讓對方重新發送。

面對複雜的恩尼格瑪機,單純靠語言學家已經不行了,波蘭找來20位數學家,這是密碼學有史以來,第一次把數學提到這麼重要的位置,正式這些數學家找到了第一代恩尼格瑪機的破解方法。

第一代恩尼格瑪機的破解過程大概如下:因爲之前間諜透露的消息,數學家們知道每條消息的頭部都是6個字母,就是ABCXYZ樣式,這些就是破解的關鍵。數學家面臨的難題是:有一堆6個6個的字段,比如說ABCXYZ,現在我們知道A和X對應同一個原文,B和Y對應同一個原文,C和Z對應同一個原文,而ABC和XYZ又是由同一個鑰匙加密而來的,求這個鑰匙是什麼?

數學的方法很複雜,這裏直接說結果—把當天截獲的信息中,所有可以對應的字母都找出來。比如在ABCXYZ中,A和X是對應的,但是又在某些六位中,X還能跟F對應;可是在其它的對應中,又能找到F又對應回A,從A出發又繞回A,正好湊成一個環。這個環涉及了3個字母—AXF,所以在這個環上連接數就是3。而且A可不止有這一種方式可以繞回A,當天那麼多條消息中,A還有其它方式也能繞回A,但可能需要的連接數比較多,把它們都總結出來。

這樣,數學家就總結出鑰匙字段中第一個字母有幾種可能形成環,每個環上又涉及到幾個連接數。同樣的,第2個字母也能找出有多少條環,也能找出有多少個連接數。經過詳細統計後發現,機械電子結構和背後的數學描述精確的吻合,每個齒輪的動作都和環與連接數有邏輯關係。

每個字母分別會出現幾條環,每個環上有幾個連接數,直到把所有的規律和對應的初始值做成一本大字典,這個工作纔算結束。這個收集整理工作一共進行了一年多的時間,然後發現:環的數量、連接數的數量,是由恩尼格瑪機初始設定決定的

最後的破解任務就是查表—先截獲當天的密文,統計這6個字母一共形成了幾種環,每種環又有多少個連接數。這些特徵掌握之後,再去查前面整理的字典裏滿足這些環和連接數的條件的初始值對應的是哪個,就能知道敵人當天的初始值是怎麼設定的了。第一代恩尼格瑪機,就這樣被破解了。

4.2 第二代恩尼格瑪機的破解

在二戰開打的前一年,德國把恩尼格瑪機的編碼器齒輪增加到了5個,接線板的數量同時也增加了,破解難度自然大大提升。

第一代恩尼格瑪機的破解是由波蘭數學家完成的,德國撕毀和波蘭的互不侵犯條約後,波蘭把第一代恩尼格瑪機的結構和破解方法公佈給了盟友。英國對波蘭提供的方案很重視,爲了信息安全擴充了密碼隊伍,辦公地點換到了布萊切利園面積擴大幾十倍,工作人員擴增到近萬人,破解密碼的主力換成了數學家,這就到了《模仿遊戲》中圖靈的工作了。

圖靈破解恩尼格瑪機,是從一些軍事規律導致的漏洞入手的,比如德軍消息裏類似”無特殊情況“、”希特勒萬歲“這樣的詞語會經常出現,圖靈還分析出了一個更好用的詞”天氣(wetter)”,這個詞每天早上6點到6:05必然出現,而且大都出現在信息的開頭,此外這個詞裏出現了兩個t挨着的情況。圖靈拿着wetter這個字段當作原文,對照着密文一位一位的挪動,排除掉那些不符合規律的方案,又因爲wetter很高概率出現在信息最開頭,所以只要試幾次,就能發現wetter對應的密文是哪幾個字母了。

到這兒,只是成功的第一步,圖靈現在得到的題目是:已經知道了6個原文和它對應的6個密文,求出恩尼格瑪機的初始設定。軍用版恩尼格瑪機的初始值有1.6 * 1020那麼多種,所以不可能用暴力去嘗試。可用的方法只有一個—在手頭已有的少量原文和密文之間,想辦法建立它們對應的數學關係,來反映出恩尼格瑪機的內部結構。這個想法,和波蘭破解第一版軍用恩尼格瑪機有點像。

圖靈把原文寫一行,密文寫在下一行,排成兩排,他管這個叫做“對照文(Crib)”。然後也建立了環,環上也有連接數的概念,圖靈通過數學過程的轉換,軍用版恩尼格瑪機1.6 * 1020這麼多種可能性,一下被縮減到了105萬種,減少爲原來的百億分之一。

這個105萬的計算過程,肯定也不能由人來做,而是用一種機器來破解,這個破解機被起名叫“炸彈”。炸彈機體積挺大,有2米見方,炸彈機越多破解就越快,在之後2年裏,有50臺炸彈機投入使用,到1942年,破解德國陸軍恩尼格瑪機當天的鑰匙,大約只需要1小時的時間。
炸彈機
即便有了炸彈機,破譯也不輕鬆,德國加密水平最高的是海軍,他們甚至在通訊中都不使用格式化語言,所以就沒有固定的原文可以參考。但英軍也有辦法,就是在特定地點佈置水雷,這些水雷其實是信息誘餌。德軍發現水雷後,肯定會發送這樣的電報:在東經XXX,北緯XXX水域,發現大量水雷,這樣一來,原文中很多詞就可以確定了。利用這套破解裝置,也成功搞定了日本和意大利的密碼系統。

回頭看密碼學的發展,你會發現有一個東西的神祕感在逐漸褪去,那就是關於“如何加密”的操作過程。在隱藏法的年代,如何加密的細節絕對屬於核心機密;而在替代法和移位法中,大部分操作原理人們都知道,只是不知道具體移動了幾位;但到了機械電子加密時代,加密設備的工作原理,不論是理論還是技術細節,敵我雙方都瞭如指掌,密碼的安全性全部落在鑰匙上,而不再依賴於加密的操作細節,這個趨勢在之後還會更加明顯。

更多文章:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章