密碼學系列之:明文攻擊和Bletchley Park

語言: CN / TW / HK

簡介

明文攻擊就是指已經知道了部分明文和它對應的加密後的欄位,從而可以推測出使用的加密手段或者密碼本。明文攻擊這個故事還要從二戰時候說起。

crib和明文攻擊

談到明文攻擊,就不能不講到一個詞crib和它的發源地布萊奇利公園(Bletchley Park)。

布萊奇利公園(Bletchley Park)是位於米爾頓凱恩斯(Buckinghamshire)的英國鄉村房屋和莊園,它是由金融家和政治家赫伯特·萊昂爵士在1883年建造的, 在第二次世界大戰期間成為同盟國密碼破解的主要中心。

在第二次世界大戰期間,該莊園內設有專門進行密碼破譯的研究所,該研究所主要負責破譯軸心國的祕密通訊,其中最重要的是德國的Enigma和Lorenz密碼。在其早期人員中,密碼破譯團隊擁有很多著名的人物,包括Alan Turing,Gordon Welchman,Hugh Alexander,Bill Tutte和Stuart Milner-Barry。直到戰後多年,那裡的工作才被公佈於世。

正因為這個密碼破譯團隊的傑出成效,破譯了很多軸心國的密碼,據說直接導致二戰提前四年結束,如果沒有它,二戰的結果還是未知之數。

為了更加有效的破譯密碼,Bletchley Park的團隊開始藉助機械的力量來進行密碼破解,最終發展了世界上第一臺可程式設計數位電子計算機Colossus。Bletchley Park的密碼破解活動於1946年結束,並於1970年代中期才對外公開。

crib這個詞源自於一句關於抄襲的諺語:“I cribbed my answer from your test paper”。

那麼crib在明文攻擊中到底意味著什麼呢?

比如同盟軍截獲到了軸心國發送的一個電報,那麼應該怎麼來進行破解呢?

當然,前提是那時候的加密手段還比較粗淺,基本上是一個字元或者單詞被轉換成了其他的字元或者單詞。

同盟軍已經拿到了電報了,比如是一封完全看不懂的郵件。那麼如何來進行破解呢?

常見的做法就是從點到面,如果我們能夠破解其中的一部分單詞或者句子,那麼對於我們理解整個密文肯定是有好處的,即使不能瞭解當前的密文,那麼如果後面截獲了其他的密文,也是可以對破解有所幫助的。

為了猜測密文對應的明文資訊,Bletchley Park團隊根據傳送訊息的時間和識別一些常規操作訊息來猜測一些純文字。例如,德國人每天在同一時間傳送每日天氣預報。因為軍事報告的格式是非常統一的,所以在每封郵件的同一位置都應包含Wetter(德語為“天氣”)一詞。 當然,在訊息末尾出現的“ Heil Hitler”也是非常容易猜測到的明文。

知道這些簡單的明文往往是不夠的,盟軍需要知道更多更加關鍵的明文資訊。為此有時候甚至會故意洩露一些訊息給軸心國,比如某時某刻準備用空軍轟炸某個地方,那麼馬上就會監控到的訊息中很有可能就會包含轟炸和要轟炸的地方,這樣就會為最終密碼的破解提供了線索。

布萊奇利公園(Bletchley Park)

從1919到1942年間,Bletchley Park的最高指揮官是阿拉斯泰爾·丹尼斯頓(Alastair Denniston)。最初的人員是從海軍部40室(NID25)和戰爭辦公室的MI1b組成的。

當然還有一些其他的密碼學家,那時候的密碼學家主要是語言學家和國際象棋冠軍,並且還招募了一些謎題填字遊戲的頂級求解者,因為這些人具有較強的橫向思維能力。

少不了的還有正規軍也就是各大高校的教授和數學家,特別是劍橋和牛津大學的人。牛津大學的彼得·特溫(Peter Twinn)於1939年2月加入,]劍橋大學的艾倫·圖靈和戈登·韋爾奇曼於1938年開始訓練,並在宣戰後的第二天與約翰·傑弗里斯一起向布萊奇利彙報。

後來招聘的密碼分析家包括數學家Derek Taunt,Jack Good,Bill Tutte 和Max Newman。歷史學家哈里·辛斯利(Harry Hinsley)以及國際象棋冠軍休·亞歷山大(Hugh Alexander)和斯圖爾特·米爾納·巴里(Stuart Milner-Barry)。還有受聘為密碼分析員的女性瓊·克拉克(Joan Clarke)。

1945年1月,在程式碼破解工作的頂峰時期,有近10,000名人員在布萊奇利及其分站工作。其中約四分之三是婦女。許多婦女來自中產階級背景,並在數學,物理學和工程學領域擁有學位,可以說婦女能頂半邊天。

美國加入第二次世界大戰後,許多美國密碼學家也被被派往Bletchley Park,從1943年5月開始,英美情報部門之間進行了密切合作。相反,蘇聯從未被正式告知布萊奇利公園及其活動-這反映了即使在納粹威脅實施的美英蘇同盟期間,丘吉爾也不信任蘇聯。

本文已收錄於 http://www.flydean.com/known-plaintext-attack/

最通俗的解讀,最深刻的乾貨,最簡潔的教程,眾多你不知道的小技巧等你來發現!

歡迎關注我的公眾號:「程式那些事」,懂技術,更懂你!