Why is the multiplication in MixColumn Transformation particularly by 2,3,1,1 cyclically? Why not some other numbers?
1 Answers
Because:
These numbers in the matrix form a Maximum Distance Separable matrix; that is, one where, if you change some bytes of the input, then the total number of bytes of input changed PLUS the total number of bytes of output changed will always be at least 5 (e.g. if you change 2 bytes of input, then you'll always change at least 3 bytes of the output). This property is crucial for the security proof against differential and linear cryptanalysis.
These numbers make the encryption direction cheap; to compute the transform of the column $(A, B, C, D)$, you compute $2 \times A, 2 \times B, 2 \times C, 2 \times D)$, and then do a bunch of byte-wise xor's.
These numbers make the decryption direction moderately cheap, to compute the inverse transform of the column $(A, B, C, D)$, you compute $2 \times A, 4 \times A, 8 \times A, 2 \times B,$ $4 \times B, ..., 8 \times D$ (doable with 12 doublings), and then do a bunch of byte-wise xor's.
- 154,064
- 12
- 239
- 382