next up previous contents
suivant: Déchiffrement monter: Chiffrement précédent: La transformation AddRoundKey()   Table des matières

Gestion de la clé KeyExpansion()

La routine d'expansion de la clé (voir le pseudo-code 1.7) fournit les Nb $\times$ (Nr + 1) blocs de clés de tour nécessaires au chiffrement à partir de la clé secrète K (rappelons qu'un ou-exclusif est effectué entre le clair et la clé avant d'entrer dans les rondes de chiffrement).


\begin{fig1}
% latex2html id marker 1772\caption{pseudo-code - KeyExpansion} ...
...r tmp
i = i + 1
fin tant que
fin\end{boxedverbatim}
}
\end{center}\end{fig1}

La routine SubWord() prend en entrée un mot de 4 octets et substitue à chaque octet sa valeur correspondante de la table S, la routine RotWord() prend aussi en entrée un mot de 4 octets [ $a_0, a_1, a_2, a_3$] et lui applique la permutation circulaire [ $a_1, a_2, a_3, a_0$], le tableau Rcon[] est construit ainsi (voir l'exponentiation dans GF($2^8$) section 1.1):

\begin{displaymath}
\texttt{Rcon[i] = [X}^{i-1}\texttt{, 0x00, 0x00, 0x00]}\quad 1 \geq i\quad (X\equiv \texttt{0x02})
\end{displaymath} (2.8)

Notons que la clé K forme les Nk premiers blocs de la clé étendue et que la routine est légèrement différente lorsque la taille de la clé K est de 256 bits (Nk = 8), dans ce cas si i - 4 est un multiple de Nk, SubWord() est appliquée avant le ou-exclusif avec w[i-Nk] .
next up previous contents
suivant: Déchiffrement monter: Chiffrement précédent: La transformation AddRoundKey()   Table des matières
vincent@@@juneeflorentine.net