I'm currently reading an article which deals with "Squeezing Polynomial Masking into Tower Fields " for performing an efficient multiplication of elements in $GF(2^8)$. Thereby it is explained that one first hast to do an affine transformation on the elements in $GF(2^8)$ and apply the actual multiplication in the tower field $GF(2^4)^2$. The paper defines an overall algorithm to perform the multiplication in the smaller field according to:

Multiplication: The multiplication $c = ab$ of two elements $a,b \in GF(2^8)$ can be computed in $GF(2^8)$ as:

\begin{equation*} \begin{cases} c_h = &(b_h + b_l) (a_h + a_l) + b_l a_l\\ c_l \ = &b_ha_h\gamma +b_l a_l \end{cases} \end{equation*}


  • $a \mapsto \phi(a_h, a_l)$,

  • $b \mapsto \phi(b_h, b_l)$,

  • $(c_h,c_l) \mapsto \phi^{-1}(c_h, c_l)$

and all operations defined in $GF(2^4)$. Apparently $\phi$ denotes the isomorphic mapping, which bijectively maps the elements from $GF(2^8)$ to $GF(2^4)^2$. In the follwoing it is also stated that the generator polynomial is given according to $\mathbb{F}_{2^4}[y]/(y^2 + y + \gamma)$.

Consequently, I started to tabulate the required multiplications in the smaller field which yield the following code

for(uint8_t i = 0; i <= 0xF; i++)
    for(uint8_t j = 0; j <= 0xF; j++)
        uint8_t result = gf_2_4_multiply(i, j);
        gf_2_4_table[i][j] = result;

Nevertheless, now I fail to understand how the decomposition into the smaller field has to be done. Thereby, I encountered a post from intuition-behind-mapping which I do not really understand. In particular I do not understand how the mapping matrix must be applied to perform the transformation into the smaller subfileds. Additional to that, I do not understand the meanig of $\gamma$ in this context. For that reason, I would be gradeful if anyone could give me a few hints or explain how the overall multiplication/mapping to the smaller field works.

Best regards



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.