next up previous contents
suivant: Chiffrement monter: Préliminaires Mathématiques précédent: Les opérations dans   Table des matières


Les polynômes à coefficients dans $GF(2^8)$

Tout comme un octet peut être représenté par un polynôme de degré 7, un mot de 32 bits (4 octets) peut l'être par un polynôme de degré 3 à coefficients dans $\frac{\mathbb{Z}_2[X]}{m(X)\mathbb{Z}_2[X]}$, chaque coefficient représentant un octet du mot.
\begin{displaymath}
\begin{array}{rl}
& \mathtt{Ox5b\;Ox99\;0xb3\;0xe7} \\
\...
...\\
\Leftrightarrow & a_1X^3+a_2X^2+a_1X+a_0=a(X)
\end{array}\end{displaymath} (1.11)

L'addition de deux mots est alors égale à l'addition des polynômes les représentants, soit un ou-exclusif entre les coefficients de même degré.
\begin{displaymath}
a(X)+ b(X) = (a_3 \oplus b_3)X^3+(a_2 \oplus b_2)X^2+(a_1 \oplus b_1)X+(a_0 \oplus b_0)
\end{displaymath} (1.12)

La multiplication de deux mots donne un polynôme de degré $3+3$ dont on peut calculer les coefficients par la définition précédente et la définition générale du produit de polynômes.
\begin{displaymath}
a(X)\times b(X) = c(X) = c_6X^6+c_5X^5+c_4X^4+c_3X^3+c_2X^2+c_1X+c_0
\end{displaymath} (1.13)


\begin{displaymath}
\begin{array}{rcl}
c_0 & = & a_0 \otimes b_0 \\
c_1 & = ...
...a_2 \otimes b_3 \\
c_6 & = & a_3 \otimes b_3 \\
\end{array}\end{displaymath} (1.14)

Afin de rester dans l'espace des mots de 32 bits, on considères les polynômes $c(X)$ $modulo$ un polynôme de degré 4 qui vaut pour l'AES $X^4+1$, formant un groupe que l'on pourrait écrire
\begin{displaymath}
\mathcal{A}=\frac{GF(2^8)[X]}{(X^4+1)GF(2^8)[X]}
\end{displaymath} (1.15)


\begin{displaymath}
\begin{array}{rl}
& a(X) \otimes b(X) \\
= & c(X)\;modul...
...4+1) \\
= & d(X) \\
= & d_3X^3+d_2X^2+d_1X+d_0
\end{array}\end{displaymath} (1.16)

on obtient par calcul1.2 les coefficients $d_i$
\begin{displaymath}
\begin{array}{rcl}
d_0 & = & a_0 \otimes b_0 \oplus a_3\ot...
..._1 \oplus a_1\otimes b_2 \oplus a_0\otimes b_3 \\
\end{array}\end{displaymath} (1.17)

Ces opérations peuvent être mises sous forme matricielle.
\begin{displaymath}
\begin{array}{ccrl}
\left( \begin{array}{c} d_0\ d_1\ d_...
...rray}{c} b_0\ b_1\ b_2\ b_3 \end{array} \right)
\end{array}\end{displaymath} (1.18)

Comme $X^4+1$ n'est pas un polynôme irréductible, $\mathcal{A}$ n'est pas un corps et ses éléments ne sont pas forcément inversibles, l'AES utilise alors pour ses calculs sur les mots le polynôme $a(X)$ inversible dans $\mathcal{A}$.
\begin{displaymath}
\begin{array}{rcl}
a(X) & = & \mathtt{(0x03)}X^3+\mathtt{(...
...athtt{(0x0d)}X^2+\mathtt{(0x09)}X+\mathtt{(0x0e)}
\end{array}\end{displaymath} (1.19)


next up previous contents
suivant: Chiffrement monter: Préliminaires Mathématiques précédent: Les opérations dans   Table des matières
vincent@@@juneeflorentine.net