你有秘密嗎?如果你有那么我希望你知道怎樣保護它們,因為秘密總是很吸引人。為了保護那脆弱的秘密,人們會使用密碼,密碼讓機密的內容不會被人偷看,防止秘密落入他人之手,而且也幫助過一代又一代的孩子在課堂上傳遞紙條。
密碼的世界籠罩著神秘,也充滿詭計、虛假情報和欺騙,那么,密碼是何時產生的呢?早在公元前1500年,一個古代的陶工用密碼隱藏他的上釉秘方,成為 了人們知道的最早的編碼人;1917年一封破譯的電報導致美國加入了一戰;1939-1945年,破譯恩尼格碼的儀器幫助盟軍贏得了二戰的勝利……如今, 密碼的使用更是頻繁,電腦和各種賬號密碼保證你的信息安全,政府和間諜繼續使用它們傳遞秘密情報。
代碼和密碼有何區別?
開始介紹密碼之前,我希望你最好能知道兩種碼:代碼和密碼。代碼是用別的詞或一組字母代替整個詞;密碼則是用符號代替單個字母或聲音,或者改變字母順序。
盡管代碼和密碼不同,卻經常廣義地用“密碼”這個詞來指定。代碼的工作原理非常簡單,它不過是使用了另外一種碼來隱藏最重要的詞,只要雙方約定了密碼 的意義就可以解碼了。代碼的使用十分廣泛,比如你現在正在閱讀的文字,如果有一天每個人都不知道這些文字的意義,那么它就成了不可破解的秘密了。不要覺得 這很扯,遙遠的過去那些象形文字就是最好的例子。
凱撒移位法
簡單的密碼有兩種:用別的符號、字母和數字代替其他字母的替代密碼;把字母用別的順序編寫的轉換密碼。替代密碼很簡單,比如我可以把這篇文章翻譯成英 語,用英語為這篇文章加密,不過因為英語被大家普遍掌握,使得這種加密方法顯得過于簡單。我們常用的密碼主要是轉換密碼,比較早的轉換密碼有凱撒移位法, 它的加密方式是將普通字母表向后移動幾位,如下:
這種方法可以提供25種可能,想要破解也只要嘗試25次即可。為了增加譯碼的難度,我們可以在凱撒移位密碼里加入關鍵詞。首先,將關鍵詞放在字母表的開頭,然后按照順序完成字母表中剩余部分,從關鍵詞的最后一個字母開始,省略用過的字母。
比如以“look”為關鍵詞,把它放在密碼的字母表開頭,因為要省略用過的字母,“look”只能寫為“lok”,并且后面的字母表中的“O”也要一并省去,即:
明碼表:ABCDEFGHIJKLMN
密碼表:LOKLMNPQRSTUVW
這種密碼提供了超過N種的可能性,這樣就不會被輕易試出密碼啦。如果你認為這樣一種密碼就可以很好地保護你的信息安全,那就圖樣圖森破啦。實際上,通過大量的統計人們發現,英 語中有幾種字母出現的頻率比其他字母要高很多,這就給譯碼人提供了一種強有力的武器—頻率分析法。凱撒移位法只是掩蓋了字母本身,并不能改變字母出現的 頻率,這樣的密碼正好讓頻率分析法大顯身手。
解密恩尼格瑪機
頻率分析一出現,編碼人就開始尋找破壞頻率分析的方法。15世紀一個叫利昂?巴提斯塔?艾伯提的人想出了使用兩個或者更多的字母表加密的方法,這就是 “多字母表替代體系”。這種替代體系雖然可以阻止譯碼人使用頻率分析法譯出密碼,但是在緊急情況下出錯的幾率也是非常高的。為了更好地使用這種編碼方法, 人們需要一種方便的編碼機器。二戰時期,讓盟軍譯碼人倍感頭疼的恩尼格碼機就是其中著名的代表。
恩尼格碼加密法是利用電機系統來實現多碼變換的,這種系統叫作回轉輪系統?;剞D輪是一個圓盤,它的兩面都有電子接點,每個接點代表字母表中的一個字 母?;剞D輪內部有連接各接點的電線,這種連接方式定義了簡單單碼替換方式。數個這樣的回轉輪和一個反射器組合起來就構成了強大的恩尼格碼加密機。然而要想 看到它的工作方法,你需要把一種名叫轉子的電動密碼轉盤連接在鍵盤、顯示屏和電池上。你在鍵盤上打出普通的字母,電流就沿著接觸點流動,流到轉子的另一個 觸點,顯示屏上相應的字母就亮燈。如果你把轉子轉到不同的位置,就改變了接觸點連接鍵盤的方式。這樣打入同一個字母,就可能產生不同的密碼字母。
這就是恩尼格碼機的工作原理,只不過現實中的恩尼格碼機遠沒有那么簡單。為了讓恩尼格碼變得無法破解,他們在恩尼格碼機上加入了一些其它元素:讓轉子 旋轉起來,可以互換的轉子,在機器前加入插接板,或者加入反射體等。旋轉的轉子、可以互換的轉子、機器前的插接板都是為了增加可供加密的字母表個數,那么 反射體是什么?與普通的恩尼格碼機不同的是,反射體的加入使穿過三個轉子之后的電流并不直接流向顯示屏,而是沿著另一條叫作反射體的線路流動,從轉子反方 向流回來。
這個體系設計得很精細,讓電流總是能沿著不同的線路流回來。這意味著恩尼格碼機給“a”加碼“U”后,又在完全相同的轉子位置給“u”加碼為“A”。 看起來非常聰明,但是這也是恩尼格碼機的致命弱點所在,加入反射體后的恩尼格碼機無法讓被加密的字母變成它本身。正是這個看似不起眼的弱點卻成了破解它的 關鍵。
如何破解恩尼格瑪密碼?
想要解開恩尼格碼,就必須要知道加密方的加密字母表,也就是轉子的設置。為了檢測那些可能出現的轉子位置,二戰時期盟軍設計了一種名叫“炸彈”的機 器。為了解密,他們首先需要找到一個突破口—一個他們確信在普通文本的信里出現的一個詞或者短語,然后找到它在密電中的對應詞或者短語。這并不容易,但 是恩尼格碼不能加密為本身的特性幫助了他們。譯碼人把作為突破口的普通詞放在密電上方,來看是否有任何字母相同。如果有,譯碼人就知道這里不是正確的位 置,于是試別的地方,如此反復直到試出正確位置。
關于對恩尼格碼機解碼的秘密,直到20世紀70年代才公之于眾。而那時,世界上到處都在使用計算機,計算機改變了密碼產生和使用的方式。
密碼學從最初的凱撒密碼至今,走過了一個漫長的歷程。計算機的超強計算能力,讓那些經典的加密方法都已失效。但是先哲的思想并未失效,密碼學也仍然在 飛速發展,眼下它正朝著量子系統前進。一旦進入這種新的世界,密碼學會發生什么變化,我們只能靠猜測了。但可以預見的是,這一定不是密碼學故事的結束,而 只是剛剛開始。