關於 Hill Cipher 嬰兒床拖拽技術的說明
— 這已被編輯,因為我意識到這個問題很愚蠢。替換為有用的資訊 —
我想確認以下幾點:
給定密文“AGHTDIX …
$$ cont. $$“ (C) 和嬰兒床(我知道明文中存在的一個詞)“WITH”(P)
我試圖通過每次將“WITH”向下移動一個位置來找到密鑰(K),如下所示:
A G H T D I X W I T H . . . . . . . . . . . . W I T H . . . . . . . .
並使用公式計算它(將密文矩陣乘以明文/嬰兒床的模逆 - 抱歉,我不知道如何在此處插入正確的公式):
[K] = [C] x [P]-1 (mod 26)
我的問題 - 是 -真的很愚蠢,因為我忘記了希爾密碼成對加密。然後,嬰兒床拖動應適應包括可能出現在已知明文之前或之後的字母。
A G H T D I X W I T H . . . [? W] [I T] [H ?] . . . W I T H . . . . . . . .
下面的答案更詳細地解釋了。謝謝 :)
我想(當你使用長度 $ 4 $ 嬰兒床)你的加密矩陣 $ C $ 是形式
$$ \begin{bmatrix} k_{11} & k_{12}\ k_{21} & k_{22}\ \end{bmatrix} $$ 所以假設的話 $ (w_1, w_2, w_3, w_4) $ 在某個位置 $ m $ 給出兩個方程組
$$ \begin{bmatrix} k_{11} & k_{12}\ k_{21} & k_{22}\ \end{bmatrix} \begin{bmatrix} w_1\ w_2\ \end{bmatrix} = \begin{bmatrix} c_m\ c_{m+1}\ \end{bmatrix} $$和 $$ \begin{bmatrix} k_{11} & k_{12}\ k_{21} & k_{22}\ \end{bmatrix} \begin{bmatrix} w_3\ w_4\ \end{bmatrix} = \begin{bmatrix} c_{m+2}\ c_{m+3}\ \end{bmatrix} $$ 這使 $ 4 $ 四個關鍵條目中的方程式,改寫為,例如
$$ \begin{bmatrix}w_1 & w_2 \ w_3 & w_4\ \end{bmatrix} \begin{bmatrix} k_{11} \ k_{12} \end{bmatrix} = \begin{bmatrix}c_m \ c_{m+2}\end{bmatrix} $$和 $$ \begin{bmatrix}w_1 & w_2 \ w_3 & w_4\ \end{bmatrix} \begin{bmatrix} k_{21} \ k_{22} \end{bmatrix} = \begin{bmatrix}c_{m+1} \ c_{m+3}\end{bmatrix} $$ 這允許我們將候選鍵條目計算為
$$ \begin{bmatrix}k_{11}\k_{12}\end{bmatrix} = {\begin{bmatrix}w_1 & w_2 \ w_3 & w_4\\end{bmatrix}}^{-1} \begin{bmatrix}c_m \ c_{m+2}\end{bmatrix} $$ 等等,我們只需要提前計算一次明文矩陣的逆矩陣。
然後在密文的另一部分測試這些候選者(在 WITH 說之後)並檢查合理的文本。如果我們找到它,我們有正確的 $ m $ . 如果嬰兒床 WITH 開始於它被加密為 (W,I) (T,H) 的位置,則上述情況成立,您應該首先嘗試這樣 $ m $ 甚至。)。如果它在另一個位置,我們會在另外 2 個未知數(嬰兒床前後兩個缺失的兩個明文字元)中得到更多的方程(6 對 3 對密文),並且必須解決這些(通過電腦很容易)。