Classical-Cipher

第一次世界大戰中的程式碼是如何在不變得毫無意義的情況下被解密(以提高安全級別)的?

  • January 28, 2021

在第一次世界大戰中,德國人通過對他們的資訊進行編碼來保密他們的通信。這意味著消息的發送者將擁有一個密碼本,其中包含他可能使用的所有可能的單詞和片語,按字母順序列出。這些被附加到一個隨機數上。然後他會寫下與他的資訊相對應的數字。接收者將擁有同一本書,只是顛倒了。他會將所有數字從最小到最大列出,並且他將能夠通過為每個數字找到相應的單詞/片語來解碼消息。

到目前為止,一切都很好。現在,我一直在閱讀有關德國人如何添加一層加密以增強安全性的資訊。我只是不明白這與密碼本的概念有何矛盾。我有兩個不同的結果建議,它們都達不到要求:

  1. 假設發件人想要發送單詞“hi”。然後他會對此進行加密並得到,比如說,“xt”。然後他會查看他的密碼本,並沒有找到對應於“xt”的數字。
  2. 假設發件人想要發送單詞“hi”。然後他會找到“hi”對應的號碼。然後他會破譯那個數字並得到一個不同的數字。接收者然後會查找號碼並找到不存在的號碼或錯誤的單詞。以下是密碼學歷史文獻中的兩個範例,說明瞭如何添加額外的層:

破譯歷史中的第 66 頁

齊默爾曼電報被超級加密(使用德國外交密碼簿再次編碼,程式碼編號 13040)。”

在關於 Room 40 的 Wiki 頁面中的“VB codebook”下:

使用由作為消息的一部分傳輸的程式碼字和用德語寫的日期組成的密鑰來完成程式碼的重新加密。這些是按順序寫下來的,然後這個密鑰中的每個字母都根據它們的順序編號出現在字母表中。這現在產生了一組以明顯隨機順序編號的列。編碼的消息將寫在這些框的下方,從左上角開始,一旦填滿一行,就會在頁面下方繼續。最後的消息是由取出編號為'1’的列並向下讀取其內容,然後添加第二列的數字,依此類推。

這個概念稱為超級加密或多重加密,其工作原理如下:

  1. 原始消息 M 使用密碼本加密,產生加密消息 C1。
  2. 然後將 C1 視為明文,並使用另一種方​​法對其進行加密,從而產生新的密文 C2。
  3. 然後將 C2 發送到接收方
  4. 接收方在 C2 上使用第二種方法的解密算法,得到 C1。
  5. 然後接收方使用密碼本解密 C1 並得到消息 M。

創建一個範例:假設我要發送消息“預計水果供應量少。盡可能多地購買”。對於我的密碼本,我將使用ABC Universal Commercial Electric Telegraphic Code,第 4 版

第 1 步:在第 128 頁,我們有片語“Small supply of fruit expected.”,對應的程式碼為 06375。轉到第 45 頁,我們找到“Buy as much as you can”。程式碼為 02221。因此在本例中,C1 為“06375 02221”。

第 2 步:對於第二級加密,我將在每個程式碼數字上添加 13348(忽略任何超過 5 位的進位或借位)。所以要加密C1,我們計算06375+13348=19723和02221+13348=15569,得到C2為“19723 15569”。

第三步:消息C2(“19723 15569”)被發送給接收方。

第 4 步:接收方通過從每個程式碼編號中減去 13348 來解密 C2。所以接收方會計算 19723-13348=06375 和 15569-13348=02221。這導致消息 C1 等於“06375 02221”。

步驟 5:接收方然後使用密碼本解密“06375 02221”。由於我在這裡使用的是單部分程式碼,請再次轉到第 128 頁和第 45 頁以獲取原始消息“預計少量水果供應。盡可能多地購買”。

只要您保持“使用 A 加密,使用 B 加密,發送,使用 B 解密,使用 A 解密”的順序,只要發送方和接收方就算法和密鑰達成一致,就可以替換確切的加密步驟。

任何人都可能對此感到困惑,尤其是關於齊默爾曼電報的部分。

密碼本有三種形式:一份、兩份和混合。你描述了一個單部分的密碼本。這些有點容易被猜測,因為它們對於明文和密文都是按字母順序排列的。例如,使用英語,如果您知道 22667 代表維也納,那麼 24556 必須是以 W、X、Y 或 Z 開頭的東西。根據 Merriam-Webster 的說法,兩部分密碼本具有“列出明文段按字母和邏輯順序,每個段都有隨機分配的一個或多個程式碼組,解碼部分按字母或數字順序列出程式碼組及其純文字等價物。” 他們不太容易被猜測。

簡答

由於單部分密碼本在某種程度上容易受到密碼分析的影響,因此經常使用超級加密。在第一次世界大戰中,外交和野戰軍隊的通信在傳輸時通常使用替換錶或添加劑進行超級加密——這通常沒有什麼好處,尤其是對德國人而言。在 1967 年版(麥克米倫公司)的The Codebreakers的第 252 頁上,David Kahn 詳細介紹了超級加密是如何完成的:“……超級加密是一種替代形式;‘字母’是一種普通的數字比例。此方法在原始程式碼編號(稱為“普通程式碼”或“placode”)上添加了一個稱為“附加”的密鑰編號。總和構成了最終的密碼……”

長答案

第一次世界大戰期間,德國駐華盛頓大使館收到了所謂的齊默爾曼電報,該電報使用德國外交程式碼 0075 進行編碼。該密碼本相對較新,自 1916 年中期以來一直在使用。

$$ 1 $$他們將電報轉發給墨西哥城的德國使館,只需重新編碼他們剛剛從程式碼 0075 解析的明文。問題是他們選擇了一個舊的德國外交程式碼 13040 來重新編碼電報——就像英國人認為他們會(杜利,第 92 頁)。13040 自 1907 年以來一直存在。$$ 2 $$多年來,英國人已經打破了 13040,一種單件/兩件混合體,老式的方式:艱苦的努力。$$ 3 $$ 墨西哥城的德國人沒有 0075,但他們確實有弱得多的 13040。簡而言之,一個解碼的密文被另一個密碼本重新編碼,一個已經被破解的密碼本。神秘的是,沒有超級加密——這並不是說這會有所幫助,因為在傳輸之前使用添加劑並不會降低英國人的速度。在這種情況下,英國人已經有了足夠的明文來理解消息,尤其是關於對美國進行超限潛艇戰的驚人消息。$$ 4 $$Barbara Tuchman 在她備受推崇的關於齊默爾曼電報的書中寫道:

“一般來說,儘管並非總是如此,當德國人使用密碼時,他們會將密碼包裹在額外的密碼覆蓋層中;也就是說,他們對密碼進行加密。他們經常更換密碼的密鑰——隨著時間的推移,每 24 小時一次。但是,作為有秩序的德國人,他們根據一個有秩序的系統改變了它,一旦通過 40 室的密碼分析解決了,每次都可以通過按照恆定模式進行再次解決。由於某種原因仍然模糊,齊默爾曼電報,當它是被發送的,並沒有被放入加密程式碼中。”

$$ 5 $$$$ 6 $$

當消息從柏林發出時——1917 年 1 月 16 日——英國人只破壞了 0075 的一部分。但他們一直在努力工作。他們後來想出了一個浪漫的故事——一個來自伊朗的手提箱,裡面裝著密碼書 13040,出現在英國

$$ 7 $$——涵蓋他們的收集和密碼分析工作,這兩項工作都很激烈。事實上,他們一直在監視通過銅線發送的美國外交電報,這要歸功於他們在康沃爾的中繼站,在那裡他們截獲了齊默爾曼電報,並破解了足夠多的電報以了解其含義。德國人實際上是從美國駐柏林大使館發送電報進行轉發的。 英國人隨後賄賂了墨西哥相關電報站的一名工作人員,以獲取西聯匯款收到的 13040 加密密文的副本。之後,他們編造了一個封面故事,以隱藏他們針對美國的電報收集,並隱藏他們重要的密碼分析能力。然後他們撒謊說他們在墨西哥偷了破譯的電報。

David Kahn 還詳細介紹了第一次世界大戰之前和整個第一次世界大戰期間莫爾斯電報是如何進行超級加密的。他還提到了德國的超級加密是如何在 1914 年 10 月 13 日由查爾斯·羅特 (Charles Rotter) 首次由盟軍解決的。

$$ 8 $$超級加密最終變得相對不重要,因為它往往很弱,但密碼分析為自己贏得了名聲。 John F. Dooley 寫了一本專門介紹第一次世界大戰密碼學的書:密碼、密碼和間諜:第一次世界大戰中的軍事情報故事。他談到了德國人如何在 1917 年初從密碼轉向密碼,以及 Geheimklappe 如何加密和解密表用於對碼本流量進行超級加密。在第 66 頁,他詳細介紹了 1918 年初是如何完成的。他們將使用 Geheimklappe 替換每個三位數明文單詞的前兩位數字。流量看起來像這樣:

AN v X2 (Souilly 0040) 0025 CHI-13 845 422 373 792 240 245 068 652 781 等 (Dooley 2016, p.66)

關於第一次世界大戰,我們應該區分德國的外交交通和野戰軍隊的交通。ADFGX 和 ADFGVX 密碼在地面上使用,也以摩爾斯語傳輸,但通過水晶收音機而不是超級加密。雙方都使用低波和中波波段進行無線電報,因為在 1920 年之前,超過 2 MHz 的頻率被認為是無用的。

$$ 9 $$ ADFGX 於 1918 年 3 月 5 日問世,接近戰爭結束;後來,它於 1918 年 6 月 1 日成為 ADFGVX。

$$ 10 $$有趣的是,法國人在 26 小時內就攻破了 ADFGVX。(卡恩 1967 年,第 344-345 頁)。兩者都使用帶有混合字母的 Polybius Square 進行分餾(雙字),然後是單個柱狀轉置 - 沒有超級加密。但是其他無線電加密系統,例如美國海溝密碼,使用了被設計為超級加密的程式碼字——使用替換(Dooley 2018,第 97 頁)。 $$ 1 $$Dooley, John F. 2018。密碼學和密碼分析的歷史,p。90. $$ 2 $$加森,約阿希姆·馮·祖爾。2007. Zimmerman 電報:原稿。密碼學 31 (1): 2-37。https://doi.org/10.1080/01611190600921165 $$ 3 $$博格哈特,托馬斯。2012. 齊默爾曼電報:情報、外交和美國加入第一次世界大戰。安納波利斯:海軍學院出版社。第 84 頁。有趣的是,他不同意卡恩對電報的超級加密。見第 253. $$ 4 $$John Dooley 說:“英國人已經在 13040 年制定了大部分密碼組,以至於他們可以輕鬆地移除超級密碼並解碼舊密碼中的任何德國資訊……”,第 10 頁。90. $$ 5 $$塔奇曼,芭芭拉。2014.齊默爾曼電報。第 1 章。這本書非常好讀。 $$ 6 $$David Kahn 說 0075 消息可能被超級加密,但 13040 消息沒有。卡恩,大衛。1967. 密碼破解者。頁。293. $$ 7 $$ 他們的封面故事持續了數十年,這是 Zimmermann Telegram 令人困惑的原因之一。見弗里曼,彼得。2006. Zimmermann 電報重訪:主要來源的和解,在 Cryptologia 30 (2): 98–150。 $$ 8 $$卡恩,大衛。1967. 密碼破解者。頁。268. $$ 9 $$奧列格·戈洛文、阿吉拉爾·哈登、尼古拉·奇斯蒂亞科夫、沃爾夫岡·施瓦茨。無線電通訊。莫斯科。2012. 熱線 – 電信,p. 25-40。 $$ 10 $$Dooley, John F. 2016. 施普林格。密碼、密碼和間諜:第一次世界大戰中的軍事情報故事。第 83,87 頁。

引用自:https://crypto.stackexchange.com/questions/77951