ウィキペディアからヒル暗号暗号化アルゴリズムについて読んでいます。値のマトリックスを掛ける必要のあるマトリックスとしてのキーがあることがわかります。しかし、私が理解していないことが2つあります。
(mod 26)の意味がわかりません。26を法とするものであることは知っていますが、何が適用されているのかわかりません。
2番目の問題に関しては、マトリックス[15 14 7]がどこから来ているのか理解できませんか?
良い説明があれば大歓迎です。
ウィキペディアからヒル暗号暗号化アルゴリズムについて読んでいます。値のマトリックスを掛ける必要のあるマトリックスとしてのキーがあることがわかります。しかし、私が理解していないことが2つあります。
(mod 26)の意味がわかりません。26を法とするものであることは知っていますが、何が適用されているのかわかりません。
2番目の問題に関しては、マトリックス[15 14 7]がどこから来ているのか理解できませんか?
良い説明があれば大歓迎です。
26
は辞書の長さで、たまたま英語のアルファベットの長さ(AからZ)です。モジュロ演算子を使用すると、行列の乗算(暗号化)のすべての可能な出力をアルファベットの文字(C)にマップ834 = 2 (mod 26)
できます。これにより、暗号化されたメッセージを文字列の形式で格納できます。
[15 4 7]
マトリックスから来ました[67 222 319] (mod 26)
:
トリプル等号は、行列[67 222 319]
が[15 4 7]
モジュロ26に合同であることを意味します。左側の行列のすべての要素は、右側の行列の対応する要素にもモジュロ26に一致する必要があるため、モジュロ演算子をのすべての要素に適用します。左側の行列は、右側の行列のすべての要素を取得します。
したがって、両方の行列を乗算すると、暗号化された行列が得られます。次に、結果の行列のすべての値を26でモジュロします。
mod 26は、一般的に「この値はモジュロ26」を意味します。
こんにちは、これはいわゆるモジュラー算術です。アルファベットに26文字あります。0はA1はBです...25はZなので、27の文字は不明です。そのため、uはモジュロ演算子%またはmodeveryで数値をラップします。時間uが25より大きいか小さい数を取得する0uその点でmod26でラップアラウンド27はBbecoz27 mod 26=1行列[15147]は[67222319]から来ましたbecoz67mod 26 = 15 222 mod 26=14および319mod26 = 7 :)