MixColumns combines each state column with finite-field byte arithmetic. The grid is recomputed from ShiftRows.
highlighted = computed this step
Why columns mix
MixColumns treats each column as a small finite-field vector. The output grid is recomputed with GF arithmetic over bytes.
mix each column
Pin two GF products
For this round, 0xd4 times 2 is 0xb3, and 0xbf times 3 is 0xda.
0xd4⋅2=0xb3,0xbf⋅3=0xda
Read the MixColumns state
The recomputed state is 0x046681e5e0cb199a48f8d37a2806264c. This is the same carryless arithmetic family introduced in CRC.
0x046681e5e0cb199a48f8d37a2806264c
Summary
MixColumns diffuses each column through GF byte arithmetic. NOTE: no-padding; no-side-channel; no-production; never-roll-your-own. Exact byte transforms of ONE AES round over GF(2^8); real AES with 128 runs 10 rounds with a key schedule inside a reviewed mode such as CBC or GCM.