私はいくつかの暗号に取り組んでいます(単なる理論、まだコーディング)。現在私は丘暗号をしています、そして、私はそれをうまく使うことができます。しかし、私は私を困惑させている問題に出くわしました。たとえば、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になりますが、乗じることはできません。助言がありますか?
回答:
回答№1は2はい。 16 % 26 = 16
そして 260 % 26 = 0.
ポイントはあなたの暗号化マトリックスがヒル暗号の暗号化/復号化キーとして使用できないということです。 その理由は、暗号化マトリックスが inverse matrix
(モジュロ 26
)言い換えれば、 determinant
行列の nonzero
で除算されていない 2
または 13
。実際には、 の determinant
あなたの行列の 24 mod 26
これはヒル暗号のこの要件を満たすことができません。これがあなたが奇妙な結果を得たそして復号化が失敗する理由です。
それで、必要な特性を持っている別の暗号化マトリックスを生成しようとしてください。例えば、
3 5
1 2
暗号化マトリックスとして使用できます。