# AES with different modulo operations?

I don't get the modulo 10001 operation in MixColumns so much.

If I have to take the byte computations mod 100011011 anyway what leads me to a result of 4 byte length, why do I need the mod 10001 operation? Where is my mistake in thinking?

Can you maybe give me an example where I'ld need it?

• I don't see any use of the constant 0b10001 = 0x11 in Rijndael's MixColumns. Maybe you could link to the relevant code sample? – yyyyyyy Mar 4 '15 at 13:50

I guess, you are referring to the mix columns operation from the point of view with polynomials over $GF(2^8)$.

A detailed explanation of this can be found at Wikipedia. It is a quite unusual structure, but it behaves just like you would consider any $GF$.

• The columns are first considered as polynomial, or better: as coefficients for a polynomial of degree 3.
• Then this polynomial is multiplied with a constant polynomial ($3x^3+x^2+x+2$)
• Addition in this field is done with the XOR operation
• Multiplication is quite complex, for details check out this.

As for your questions: There are two different modulo operations. One is considered on the $GF(2^8)$, which is $100011011$. But this is just the finite field for the coefficients, and in the overall structure you actually deal with polynomials modulo $x^4+1$. I guess you have an error in your actual number there, because if you just write the hexademcimal representation of the coefficients, that would be the coefficients $1,0,0,1$ (with coefficients from 0 to 255), or $1|00|00|01$ written in hexadecimal.

• Ah, yes, the all familiar off-by-zero mistake :) – Maarten - reinstate Monica Mar 4 '15 at 15:32
• Thank you very much!!!! Ok I guess this was one problem =) I anyway have to check now where this mod operation is used as I still don't really fully get it. – maria Mar 4 '15 at 16:49