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 -
In section 4.2 why is the modulo chosen as
{01}{1b}
which is $283$ and not $255$? The irreducible polynomial is $m(x)=x^8 +x^4 +x^3 +x+1$. 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$?Later on the same section in the example
{57} • {83}
is computed to be $x^{13} +x^{11} +x^9 +x^8 +x^6 +x^5 +x^4 +x^3 +1$ - which is $11129$. Using a calculator it appears this is wrong. Its coming out to be $11397$. What am I missing?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?