質問

説明されている 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 でなければならず、したがって可逆的ではなく非線形である必要があります。

私の理解は間違っていたでしょうか?私は数学が苦手で、それを論理に変換するには何をすべきかを理解しようとしています。

役に立ちましたか?

解決

MixColumns はおそらく AES にとって最も難しい部分ですが、計算を行って数値がどこから来たのかを実際に確認するのは私にとって興奮しました。私のブログ投稿でその計算を詳しく説明しました。」Advanced Encryption Standard (AES) のスティック図ガイド」。具体的には、第 4 幕第 16 場をご覧ください。次のシーン(17)でも、その裏側をベビーベッドのシーツの上に置きました。さらにご質問がございましたら、お気軽にその投稿またはここにコメントを残してください。

他のヒント

MixColumns の乗算は確かに可逆的であり、256 を法とするものではありません。 samiam.org/mix-column.html MixColumns ステップの詳しい説明があり、 samiam.org/galois.html AES の有限体で算術演算を行う方法をうまく説明しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top