0

私はいくつかの暗号に取り組んでいます(理論だけで、まだコーディングはしていません)。現在、私はヒル暗号を行っており、問題なく使用できます。しかし、私を困惑させる問題に遭遇しました。たとえば、文字 A と I Aを暗号化している0としI 8ます。ここで、暗号化ボックスを次のようにします。

 K= 18 2
    23 0

これはすべて順調です。私はそのように暗号化できます:

A = 18*0 = 0 2 *8 = 16

問題は、これらの結果を加算すると 16 になることです。16 % 26 は 16 にすぎませんか? これは暗号化に使用する番号ですか? 結果が 260 % 26 になる暗号化を使用すると、同様の問題が発生します。これは 10 になりますか、それとも 0 になりますか? 260 を 26 で割ると 10 になります。モジュロ演算を完了するには、任意の整数を取り去り、余りに 26 を掛けます。もちろん、この場合にそうすると 0 になり、掛けることはできません。助言がありますか?

4

1 に答える 1

2

はい。16 % 26 = 16260 % 26 = 0.

ポイントは、暗号化マトリックスをヒル暗号の暗号化/復号化キーとして使用できないことです。その理由は、暗号化マトリックスにinverse matrix(モジュロ26) が必要だからです。つまり、determinant行列の は でなければならず、またはnonzeroで割ってはなりません。実際、行列の はであり、ヒル暗号のこの要件を満たすことはできません。これが、奇妙な結果が得られ、復号化が失敗する理由です。213determinant24 mod 26

したがって、必要なプロパティを持つ別の暗号化マトリックスを生成してみてください。たとえば
3 5
1 2、暗号化マトリックスとして使用できます。

于 2013-05-21T11:47:02.637 に答える