Modular-Arithmetic

希爾密碼明文攻擊:處理矩陣逆的非唯一性?

  • August 13, 2019

我跟著我的書。以下是來自它的明文攻擊範例:

已知:

plaintext = ‘friday’

ciphertext= ‘pqcfku’

$ m $ = 2

我們將使用它來形成以下矩陣方程:

$$ C = PK $$ $$ \pmatrix{5 & 16 \ 2 & 5} = \pmatrix{5 & 17 \ 8 & 3} K $$

在哪裡 $ K $ 是關鍵矩陣。注意 $ K = P^{-1} C $ . 要找到那個產品,我們必須先找到 $ P^{-1} $ .

現在這是我不明白這本書的地方。書上說:

$$ P^{-1} = \pmatrix{9 & 1 \ 2 & 15} $$

首先,我嘗試在 Mathematica 中驗證這一點。該命令Inverse[{{15, 17}, {8, 3}}, Modulus -> 26]產生一個錯誤,說沒有這樣的逆……奇怪。然後我找到了這個線上計算器,它會返回結果: $$ P^{-1} = \pmatrix{13 & 5 \ 10 & 23} $$

快速檢查告訴我們,這兩個矩陣都是模 26 的正確逆矩陣。但是,只有本書提供的逆矩陣才能正確計算密鑰,從而能夠破解密碼。

那麼……我怎樣才能以這種方式進行明文攻擊呢?似乎有多個反轉。我怎麼知道哪一個是“正確的”?如果我必須蠻力,我怎麼能找到所有可能的逆?

更標準的是,我們將一列與純文字向量相乘以得到密文向量,因此已知的純文字方程(前兩對)產生

$$ KP=C = K\begin{bmatrix}5 & 8\17 & 3\end{bmatrix} = \begin{bmatrix}15 & 2\16 & 5\end{bmatrix} $$所以我得到 $ P=\begin{bmatrix}5 & 8\17 & 3\end{bmatrix} $ 這是可逆的 $ \det(P) = 15 - 8 \cdot 17 = 9 $ 和 $ 9 $ 是可逆的模 $ 26 $ , 逆 $ 3 $ 作為 $ 3 \times 9 \equiv 1 \pmod{26} $ .

倒數很容易計算(對於所有 $ 2\times 2 $ 矩陣)通過

$$ P^{-1} = 3 \cdot \begin{bmatrix}3 & -8\-17 & 5\end{bmatrix} = \begin{bmatrix}9 & 2\1 & 15\end{bmatrix} $$

這很容易被檢查為倒數。請注意,文本中的矩陣使用轉置(因為它左乘以 $ 1 \times 2 $ 取而代之的是矩陣,因此所有方程都轉置),而線上計算器中的方程根本不是逆矩陣(如果我們進行完整的矩陣乘法,這一點變得很明顯;只有第一行看起來不錯)。所以線上計算是錯誤的,Mathematica 很困惑(你打錯了:我認為15應該是)。5

反正知道 $ P^{-1} $ ,$$ K = CP^{-1} = \begin{bmatrix}7 & 8\19 & 3\end{bmatrix} $$(您的文本可能給出了它的轉置),這確實檢查為$$ \begin{bmatrix}7 & 8\19 & 3\end{bmatrix} \begin{bmatrix}0 \ 24\end{bmatrix}=\begin{bmatrix} 10 \ 20\end{bmatrix} $$

所以它將plain映射ay到ciphertext KU。解密矩陣為$$ K^{-1}=\begin{bmatrix}23 & 8\19 & 19\end{bmatrix} $$如果您想解密其餘部分(或者如果從左側按行工作,則將其轉置,如前所述)。

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