Transition between field representation In a number of papers related to efficient implementation of the AES Sbox, people are computing stuff (the multiplicative inverse for instance) in GF(($2^4$)$^2$) instead of GF($2^8$). In some cases they complicate it further by going down to GF(((($2^2$)$^2$)$^2$)...
My question is how do we find the transformation from one representation to the other and back ?
Examples of such paper freely available on the net: 

*"COMBINATIONAL LOGIC DESIGN FOR AES SUBBYTE TRANSFORMATION ON MASKED DATA" by ELENA TRICHINA

*"A Very Compact S-box for AES" by D. Canright
The field GF($2^8$) is defined by the irreducible polynomial fixed in the AES standard:
m($x$) = $x^8$ + $x^4$ + $x^3$ + $x$ + 1
The irreducible polynomial for the subfield can be chosen freely, for example, for GF(($2^4$)$^2$), a popular choice is
n($x$) = $x^2$ + {1}$x$ + {e}
From that they deduce a map function such that $a_h x + a_l = map(a), a_h , a_l$ ∈ GF ($2^4$ ), a ∈ GF ($2^8$ ) and the inverse function $map^-1$, but I have no clue about how they do, and how to verify if the result is right or not.
For m($x$) and n($x$) given as example, the following equations are the expected result:
$a_A = a_1 ⊕ a_7$
$a_B = a_5 ⊕ a_7$
$a_C = a_4 ⊕ a_6$
$a_l0 = a_C ⊕ a_0 ⊕ a_5$
$a_h0 = a_C ⊕ a_5$
$a_l1 = a_1 ⊕ a_2$
$a_h1 = a_A ⊕ a_C$
$a_l2 = a_A$
$a_h2 = a_B ⊕ a_2 ⊕ a_3$
$a_l3 = a_2 ⊕ a4$
$a_h3 = a_B$
Any pointer on a book which covers this problem is very welcome too^^
 A: Late answer, but this answer may be useful for others that find this question.
The two links in the question mention the method of sub-byte transformation also known as sub-field mapping, composite field mapping, field reduction, ... , which has been used for Galois Field inversion (1/z) to reduce gate count in hardware implementations for Reed Solomon codes going back some time around 1990, perhaps prior to that. Link to a report from professor E J Weldon Jr to a tape company I worked for back then. The mapping in this report doesn't minimize gate count, but does reduce it compared to a hardware lookup table, and there was only one instance of an inverter, unlike an S box which could have 10 or more encoders + decoders in the same chip.
https://github.com/jeffareid/finite-field/blob/master/wldnrpt.pdf
In software, unless a field is very large, lookup tables can be used for inversion. For a software based GF(2^8), a 256 byte table could be used, index by z with values 1/z in each entry of the table.
Getting back to the mapping, all Galois (finite) fields of the same size are isomorphic, but require mapping of elements between fields in order for the fields to be isomorphic in addition and multiplication:  map(a + b) = map(a) + map(b) and map(a b) = map(a) map(b). Typically, to map from GF(2^8) to GF((2^4)^2) or to GF(((2^2)^2)^2), and 8 row by 8 bit matrix is used to multiply an element of GF(2^8) treated as an 8 row by 1 bit matrix. The inverse matrix is used to map back to GF(2^8).
I have yet to find an article that explains the derivation and how such a mapping matrix is created, so I explained this in the answer linked to below. Short version: the parameters (polynomials, primitive elements) for GF((2^4)^2) or GF(((2^2)^2)^2) are chosen to minimize gate count. Generally GF(2^8) polynomial is fixed, so the only variable is which of 128 possible primitive elements to use for the mapping. This is found by brute force trial and error search for a primitive element that will produce a isomorphic mapping matrix (there are ways to optimize this for larger fields, but with only 128 possible candidates, there is no point in optimizing a one time search). The matrix is based on the field polynomials and the primitive elements of the two fields. Link to a full explanation:
https://math.stackexchange.com/questions/3739707#3756361
