next up previous
suivant: Rijndael monter: aes-slide précédent: ``AES, un algorithme de

Le corps $GF(2^8)$

Un octet $b$, composé des 8 bits $b_7$, $b_6$, $b_5$, $b_4$, $b_3$, $b_2$, $b_1$, $b_0$, peut être vu comme un polynôme de degré $\le 7$ avec des coefficients dans $\{ 0,1\}$:


\begin{displaymath}b_7x^7 + b_6x^6 + b_5x^5 + b_4x^4 +b_3x^3 + b_2x^2 + b_1x + b_0\end{displaymath}

L'addition de deux de ces polynômes revient à additionner les coefficients de chacun, modulo 2 ($1+1=0$). Cette addition correspond au XOR ($\oplus$) au niveau des bits.

Pour la multiplication de deux polynômes, c'est la multiplication usuelle (double distributivité), suivie d'une réduction modulo un polynôme binaire irréductible de degré 8. Dans Rijndael, ce polynôme est $m(x)=x^8+x^4+x^3+x+1$. Le résultat sera à nouveau un polynôme de degré $\le 7$. Contrairement à l'addition, cette opération ne correspond à aucune opération simple au niveau des octets.

Pour tout polynôme binaire de degré $\le 8$, l'algorithme d'Euclide étendu permet de calculer $b(x)$ tel que $a(x)b(x) \bmod m(x)$, autrement dit, de calculer l'inverse de $a(x)$, $a^{-1}(x)$.

On peut voir que l'ensemble des 256 bits possibles, avec l'addition et la multiplication ci-dessus, ont la structure du corps fini $GF(2^8)$.





Frederic Schutz 2000-11-08