4. Information: Composite fields are among the most efficient
ways to implement the S-box in
hardware (LUTs are good on FPGAs but composite fields are more
area-efficient on ASICs). As you
know, inversion in finite field GF(2?) is costly. Thus, it is
preferred to perform transformation
from binary field to tower fields in composite fields and after
computing the inverse, go back to
binary fields.
Inversion in GF(2?) can be done using a couple of multiplications
(below, you need to do a simple
one), a squaring, and one inversion in composite field denoted as
GF(2?)². This is the base for
composite fields: To transform, do the arithmetic less-costly
there, and go back to binary field.
You only need to do this simple calculation: Show that for
inputs a(x)=a3x³+a2x²+a1x+a0 and
b(x)=b3x³+b2x²+b1x+b0 and the multiplication result
q(x)=q3x³+q2x²+q1x+q0 in GF(2?) with the
irreducible polynomial p(x)=x?+x+1, we get the following for
a(x).b(x) mod p(x). Subexpression
sharing has been done to reduce the complexity as you see. Remember
that you do not need to know
details of composite fields for this calculation.
4. Information: Composite fields are among the most efficient ways to implement the S-box in hardware (LUTs are good on FPGAs but composite fields are more area-efficient on ASICS). As you know, inversion in finite field GF(28) is costly. Thus, it is preferred to perform transformation from binary field to tower fields in composite fields and after computing the inverse, go back to binary fields. Inversion in GF(28) can be done using a couple of multiplications (below, you need to do a simple one), a squaring, and one inversion in composite field denoted as GF(24)2. This is the base for composite fields: To transform, do the arithmetic less-costly there, and go back to binary field. You only need to do this simple calculation: Show that for inputs a(x)=a3?x3+a2?x2+a1?x+a0? and b(x)=b3?x3+b2?x2+b1?x+b0? and the multiplication result q(x)=q3?x3+q2?x2+q1?x+q0? in GF(24) with the irreducible polynomial p(x)=x4+x+1, we get the following for a(x)?b(x)modp(x). Subexpression sharing has been done to reduce the complexity as you see. Remember that you do not need to know details of composite fields for this calculation. q(x)=a(x)?b(x)=a(x)?b(x)modP(x),a(x),b(x),q(x)?GF(24)aA?=a0??a3?,aB?=a2??a3?q0?=a0?b0??a3?b1??a2?b2??a1?b3?q1?=a1?b0??aA?b1??aB?b2??(a1??a2?)b3?q2?=a2?b0??a1?b1??aA?b2??aB?b3?q3?=a3?b0??a2?b1??a1?b2??aA?b3?.??