Cryptanalysis

如何破解 Quagmire 3 密碼?

  • January 3, 2019

什麼是攻擊 Quagmire 3 密碼的好方法?

我知道它是多字母的,帶有一個鍵和一個指標。我從獲取密文開始,獲取每個第 n 個字母並將其放入一個字元串中,計算我得到的 n 個字元串的重合索引,然後取平均值。我會假設任何 n 值對應於最接近的英語重合平均指數 (0.066) 將是字母的數量,即指標的長度。

我從那裡去哪裡?還是我的方法不正確?

所有 Quagmire 密碼(參見此處的定義)都是Vigenère 移位密碼和基於關鍵字的簡單替換密碼的組合,其中替換密碼用於在 Vigenère 加密之前和/或之後對字母表進行加擾。

特別是,Quagmire III 密碼實際上在進行正常的Vigènere加密之前對明文字母表進行了加擾(使用從“指示符”派生的密鑰,通過同樣的方式加擾其字母表),然後對結果的字母表進行解擾密文。等效地,我們可以將其視為維吉尼亞密碼,但使用從字母到數字的非標準(通常是秘密)映射,而不是通常的 A=0、B=1、C=2 等。

這有幾個顯著的後果:

此外,該 $ k $ 不同的替換字母對應於 $ k $ 不同的指示字母以特定的方式相關:在數學上,它們都是字母表的相同循環排列(嚴格意義上;不允許固定點)的冪。(這也適用於基本的 Vigenère 密碼;在這種情況下,基本循環只是單字母移位 A → B → C → … → X → Y → Z → A。)因此,一旦你設法解決其中一個 $ k $ 替換密碼,其餘的應該容易得多(您還可以比較解決方案以確保它們是正確的)。

此外,循環排列的冪的循環結構本身也受到一定限制:它不能有固定點(除非它是恆等排列),並且它的所有循環必須具有相同的長度來劃分字母表的大小。特別是,對於 26 個字母的字母表,循環置換的冪總是由一個 26 循環(使其也循環)、兩個 13 循環、13 個二循環或 26 個不動點組成(在這種情況下,它是身份)。其中,前兩種可能性(一個 26 週期或兩個 13 週期)是最有可能的,所以如果你看到其他任何東西(特別是如果它不是上面剩餘的可能性之一),你就會知道你在某處犯了錯誤。

給定足夠的密文,通過上述方法破解這個密碼應該不是特別困難。確實,使用符合索引法確定密鑰長度甚至不需要那麼多密文;我在Kryptos K1 和 K2 密文上進行了嘗試(使用Wilson 分數區間校正來減少大密鑰長度的採樣雜訊),它非常清楚地將 K1(63 個字母)的密鑰長度辨識為 5、10 或 20 個字母(實際關鍵字: PALIMPSEST, 10 個字母)和 K2 的密鑰長度(369 個字母)最有可能是 8 個字母(實際關鍵字:ABSCISSA)。但是,由於密文數量有限且密鑰較長,解決單個替換可能需要大量的反複試驗。

此外,值得注意的是,此方法不會自動生成用於加密文本的關鍵字。事實上,它不能,因為 Quagmire 密碼有許多等效的密鑰。然而,簡單地考慮替換字母表和移位量的所有可能解決方案可能會出現由一對特別自然的關鍵字產生的解決方案。

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