>The following polynomial is used to create a "Galois field" GF(2^8) >which is specified in the Advanced Encryption Standard (AES): p(x) = >x^8 + x^4 + x^3 + x + 1. > >However, I checked the polynomial (quickly using Matlab) whether it is >primitive. It turns out not to be primitive, but still irreducible (I >haven't yet confirm this for myself, though).
Yes, I just checked it, and it's not primitive, and it does not generate GF 256.
>According to my knowledge, you need a primitive polynomial in order to >construct a "proper" Galois field (or extended Galois field).
>Why can we use an irreducible polynomial for AES, would it not cause >problems (not every element will have an inverse, similar as when we >construct a ring mod x, where x is a composite)?
Depends how they used it. I do not know where it is in the AES algorithm. If it's part of just generating a keystream or hash function, nobody cares if it isn't primitive. But you could not use it for coding however.
In any case you're right this poly does not generate the field.