AES est l'algorithme de cryptage qui remplace le WEP, qui était encore utilisé
par le WPA. Il est à noter que ce changement implique aussi que la partie
matérielle soit changée au profit de quelque chose de plus puissant. Cela veut
dire que le matériel actuel (802.11{a,b,g}) ne peut pas (sauf exception
spécifique) évoluer vers 802.11i, même par un changement du logiciel. En effet,
les circuits assurant le cryptage ne sont pas assez puissants pour AES : le WEP
nécessitait une puissance de calcul de l'ordre d'un i486 et l'AES nécessite
quant-à lui la puissance de calcul d'un Pentium 150... on comprend alors mieux
la nécessité de changement radical de matériel.
AES se sert pour le chiffrement de la clé de session PTK (k sur le schéma
FIG.
) de façon rértoactive .
Le calcul de la PPK qui était effectué dans WPA
(cf. FIG.
) n'est plus
nécessaire car AES fonctionne par chiffrements de blocs en gardant la même
clé tout au long de la session. Le chiffrement par AES se fait en suivant une
séquence de n opérations à partir de la PTK. La valeur de n sera le
nombre de blocs à chiffrer.
Le processus de chiffrement consistera donc à chiffrer indépendemment chaque bloc
de 128 bits de données en clair. Pour chaque bloc, la fonction AES (dont on
suppose sur le schéma FIG.
que la clé k
est connue) va prendre en entrée un bloc de 128 bits donnés par la fonction de
préchargement.
Ce bloc subira tout d'abord un XOR avec la clé fournie
(cf. FIG.
).
Le résultat obtenu sera crypté en 10 étapes (tours) car la clé fait 128 bits
(D'après la spécification de AES[32] on aurait eu 12 tours pour une clé
de 192 bits et 14 pour une clé de 256 bits).
Lors de chaque tour, le bloc passera successivement par une fonction de
substitution d'octets, une fonction de décalage et une fonction de permutation
avant de subir enfin un XOR avec une clé dérivée de celle fournie. Le résultat
sera alors prêt pour le tour suivant (ou éventuellement la sortie).
Le bloc de 128 bits obtenu en sortie de AES subira un XOR avec le bloc de 128
bits de données à chiffrer. Le résultat sera ainsi le bloc de données chiffré.
Cela se fera tant qu'il y aura des données à chiffrer.
Pour la détection d'erreur, on utilise CCM6.4.
CBC-MAC6.5 est utilisé pour calculer le MIC sur l'en-tête du
texte clair, le préfixe
de longueur du texte clair et le champ de données. CCMP utilise CCM pour
encrypter les données et protéger les champs choisis de l'en-tête contre toute
modification.
Le MIC utilise toujours AEC CBC-MAC, initialisé par l'E-IV (de 48 bits) sur la
totalité de la trame en se servant de la même clé que pour le chiffrement. Les
64 bits issus du calcul du MIC sont concaténés aux données; le tout est alors
chiffré par AES (cf. FIG.
). Ainsi, le
dernier bloc chiffré sera le MIC.
2004-08-25