Known-Plaintext-Attack

Hill Cipher 已知明文攻擊

  • October 18, 2012

我知道一個明文 - 長度為 6 的密文對用於山密碼,其密鑰是

$$ 3x3 $$矩陣。 根據我的閱讀和學習,攻擊和破解密鑰

$$ n x n $$,如果我們知道一個明文 - 密文二重奏的長度 $ n^2 $ 然後我們有我們的n個方程組和n個變數,這通常是可解的。但是在我的情況下,只有長度 $ 6 $ 代替 $ n^2 = 9 $ . 我的問題是,我將如何解決這個問題並找到關鍵?或者,既然這是一個明顯的家庭作業問題,我的思維方式應該是什麼?除了矩陣乘法和逆矩陣,我想不出其他任何東西,但它們對我一點幫助都沒有。

好吧,我去用蠻力和Maple解決了這個難題。我不會破壞實際的答案,但這裡有一些技巧可以讓這個過程更快一點。

  • 求解模 2 的線性系統可以得到未知明文的第二個和第三個字母的奇偶性。請注意,英語字母表中的所有元音都使用標準希爾密碼編碼映射到偶數!
  • 相反,求解系統模 13 會告訴您未知明文的第四個字母(直到 rot13)。這與 mod 2 解決方案一起,應該可以幫助您猜測第二個和第三個字母可能是什麼。
  • 即使正確猜出第二個和第三個字母,並排除了任何不可逆的解碼矩陣,模 2 解仍然不能完全確定。因此,將需要一些蠻力和/或猜測來解碼剩餘的字母。然而,希望其中一種可能的明文明顯比其他明文更可信。

附言。另一個提示:007。

你的推理是正確的。

但是,仍有一些資訊需要利用:如您所知,用於加密的矩陣(密鑰)需要可逆才能允許解密。由於您基本上從明文/密文中知道(例如)密鑰的第一列和第二列,因此您從矩陣的可逆性中得出,第三列不能與任何(線性)組合共線前兩個。

您也可以採取以下觀點。讓我們假設您要查找解密矩陣:

$$ M=\pmatrix{A_0 & b_0 & c_0 \ A_1 & b_1 & c_1 \ A_2 & b_2 & c_2 \} . $$ 根據您對明文/密文對的了解,您可以重寫它: $$ M=\pmatrix{ A_0 & \alpha_0 A_0 + \beta_0 & \gamma_0 A_0 + \delta_0 \ A_1 & \alpha_1 A_1 + \beta_1 & \gamma_1 A_1 + \delta_1 \ A_2 & \alpha_2 A_2 + \beta_2 & \gamma_2 A_2 + \delta_2 \ } $$ 在哪裡 $ \alpha_i $ , $ \beta_i $ , $ \gamma_i $ , 和 $ \delta_i $ 是已知的。現在是密文 $ z $ 您嘗試解密,可能是這樣的情況 $ M\times z $ 表現出一些奇怪的性質。例如,它可能是 $ M\times z $ 不依賴於部分或全部 $ A_i $ , 那是: $$ z_0+\alpha_i z_1 + \gamma_i z_2 = 0\pmod{26}. $$

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