希爾密碼明文攻擊:處理矩陣逆的非唯一性?
我跟著我的書。以下是來自它的明文攻擊範例:
已知:
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
到ciphertextKU
。解密矩陣為$$ K^{-1}=\begin{bmatrix}23 & 8\19 & 19\end{bmatrix} $$如果您想解密其餘部分(或者如果從左側按行工作,則將其轉置,如前所述)。