ここで説明する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である必要があり、したがって可逆で非線形ではありません。
私はこれを間違って理解しましたか?私は数学に苦労していて、それを論理に変換できるようにするために何をする必要があるかを理解しようとしています。