ヒル暗号を実装したいのですが、アルゴリズム自体の理解に問題があると思います。
使用するキーは 2X2 マトリックスで、毎回 2 文字をエンコードします。キー マトリックスを 2 文字のマトリックスで乗算し、その結果を次の式のように 26 でモジュラスします。
C = E(K, P) = KP mod 26
where: K:key
P:plain text
私はこのようにしていますが、何か問題があります。本の例を使用してアルゴリズムをテストします。プレーンテキストがfriday
あり、キーが次のとおりであるため: int key[][] = {{5, 8}, {17, 3}}
; 結果は になりますPQCFKU
。
最初の文字についてはf
、、、、r
のf= 5
アルファベットr=17
順の暗号化f
は(5*5 + 17*8)%26 =5 => f
、P
私が犯したエラーはどこにありますか?