5

ここで説明するMixColumnsステップの理解に問題があります。

私は拡散について知っていますが、各列が多項式として扱われ、GF(2 ^ 8)を法として乗算されるという点ですべてが理にかなっています。

しかし..GF(2 ^ 8)で乗算します。ドメインはまだ同じですが、modのために元に戻すことはできません。それが全体のポイントであるため、元に戻す必要があります。

最初のビットに関しては、私のアプローチは、A、B、C、およびDを列の4バイトとして、A1、A2、...、A8をビットとして、E、F、G、およびHを出力として使用することです。バイト。設定するつもりでした

E = A1,B2,C3,D4,A5,B6,C7,D8
F = D1,A2,B3,C4,D5,A6,B7,C8
G = C1,D2,A3,B4,C5,D6,A7,B8
H = B1,C2,D3,A4,B5,C6,D7,A8

したがって、それは可逆的で、1対1で、線形で分配的です。

後で、行列の乗算と見なすことができると述べていますが、行列の要素はバイトであり、バイトとして出力される必要があるため、行列の各要素はモジュロ256である必要があり、したがって可逆で非線形ではありません。

私はこれを間違って理解しましたか?私は数学に苦労していて、それを論理に変換できるようにするために何をする必要があるかを理解しようとしています。

4

2 に答える 2

6

MixColumns はおそらく AES にとって最も難しい部分ですが、数学を計算して実際に数字がどこから来たのかを確認するのはエキサイティングでした。ブログ記事「A Stick Figure Guide to the Advanced Encryption Standard (AES)」で詳細に計算しました。具体的には、第4幕第16場を見てください。次のシーン(17)のベビーシートにもその裏を貼りました。さらに質問がある場合は、その投稿またはここにコメントを残してください。

于 2009-09-25T14:44:19.080 に答える
4

MixColumns での乗算は確かに可逆であり、モジュロ 256 ではありません。samiam.org/mix-column.htmlには MixColumns の手順が適切に説明されており、samiam.org /galois.htmlではその方法が非常によく説明されています。 AES の有限体での演算。

于 2009-06-17T03:45:28.940 に答える