1

ヒル暗号を実装したいのですが、アルゴリズム自体の理解に問題があると思います。

使用するキーは 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、、、、rf= 5 アルファベットr=17順の暗号化f(5*5 + 17*8)%26 =5 => fP

私が犯したエラーはどこにありますか?

4

1 に答える 1

2

これがhttp://slidefinder.net/c/chapter_classical_encryption_techniques_jen/11206531/p2である場合、行列 [[5, 8] [17, 3]] は暗号化キーではありません... 入力行列です。5 = F、17 = R、8 = I、3 = D。K は暗号化キーで、スライドには示されていません。K を取得するには、線形代数方程式を解く必要があります。

本の例でまだ問題がある場合は、 http: //www.cs.uri.edu/cryptography/classicalhill.htm で、暗号化と復号化の両方を備えた単純な 2x2 キーの例を試してください。

于 2010-10-22T14:59:56.067 に答える