Skip to main content
1 of 3
user220201
  • 871
  • 4
  • 9
  • 14

Understanding multiplication in the AES specification

I am reading through the AES specification and am not able to wrap my head around the multiplication definition (section 4.2). Sorry to refer to a spec but AES is the holy grail in crypto so I hope its not too much to ask.

Here are my questions -

  1. In section 4.2 why is the modulo chosen as {01}{1b} which is 283 and not 255? The irreducible polynomial is m(x)=x8 +x4 +x3 +x+1 (where the number is a power). Is there a significance to this seemingly random choice? Later on in the explanation it also says the modulo operation produces values that can be represented in a single byte. How is that possible if the modulo is performed over 283?

  2. Later on the same section in the example {57} • {83} is computed to be x13 +x11 +x9 +x8 +x6 +x5 +x4 +x3 +1 - which is 11129. Using a calculator it appears this is wrong. Its coming out to be 11397. What am I missing?

  3. In section 4.2.1 (multiplication by x) it says - It follows that multiplication by x (i.e., {00000010} or {02}) can be implemented at the byte level as a left shift and a subsequent conditional bitwise XOR with {1b}.

Here again I don't get it. By my understanding it should be a left shift followed by modulo with {01}{1b}.

Can someone please explain this to me?

user220201
  • 871
  • 4
  • 9
  • 14