I am aware that MixColumns
is a mixing operation which operates on the columns of the state, combining the four bytes in each column. So we multiply our state with the special matrix. To multiply, we’re computing many dot products. And for each dot product, we’re multiplying bytes as Galois fields $\pmod 2$, then reducing the answers $\bmod$ the magic polynomial: $x^8+x^4+x^3+x^1+x^0$.
Thankfully, the entire task can be greatly sped up by using a few look-up tables. The multiplication matrix consists of Galois fields for $1,2,3$. So we can pre-compute the results of all 256 eight-bit Galois fields (the possible bytes in our state) multiplied by these values.
How will I implement the inverse MixColumns
for decryption process?