Isomorphism for optimization of GF256 implementation in AES S-Box using intermediary finite fields I've questions about the implementation of The S-Box in the AES cipher.
In this cipher, the Finite Field GF256 is implemented as a quotient $\mathbb{F}_2[X]/(X^8+X^4+X^3+X+1$).
The operations can be done by representing its elements as 8 bits vectors.
But depending on the basis one choses, computation could be easier.
Indeed, if one chooses a normal basis, some interesting stuff happens...
Now my questions are:
1)How do we construct all the isomorphisms $\delta$ which would make a basis change when seeing $\mathbb{F}_{256}$ as an 8 dimensional vector space over $\mathbb{F}_2$?
2)How many different basis are there?
3)How to obtain the matrices of these isomorphisms?
Here's an example of such a matrix found in the reference given below:
$$
\begin{pmatrix}
0&0&0&1&0&0&1&0\\
1&1&1&0&1&0&1&1\\
1&1&1&0&1&1&0&1\\
0&1&0&0&0&0&1&0\\
0&1&1&1&1&1&1&0\\
1&0&1&1&0&0&1&0\\
0&0&1&0&0&0&1&0\\
0&0&0&0&0&1&0&0\\
\end{pmatrix}
$$
REF:A Very Compact S-Box for AES by D. Canright (google David Canright publications)
Thank you all !

As far as I can tell the question doesn't actually have anything to do with $GF(256)$ or AES or the S-Box; you're just asking about the automorphisms of $\mathbb F_2^8$.
There are $2^8-1$ different non-zero vectors that you can map the first basis vector to. Then there are $2^8-2$ different vectors that are linearly independent of that vector that you can map the second basis vector to, and so on: In step $k$, $2^{k-1}$ vectors are linear combinations of the basis vectors you already have, so $2^8-2^{k-1}$ aren't, so the total number of different automorphisms is $\prod_{k=1}^8(2^8-2^{k-1})=5348063769211699200$.
The method of counting also suggests how to construct all these automorphisms. (I'm not sure what the difference between your questions 1) and 3) is – how would you represent the automorphisms if not using their bases?) 
