Bonsoir à tous et à toutes !
Voilà, je suis en train d'étudier le système AES mais je dois avouer que j'ai du mal à comprendre l'aspect mathématiques surtout au niveau des corps. J'ai besoin que vous me guidiez, m'orientiez parce que je commence à me perdre. Je précise que je ne suis qu'en première année post-bac donc mon niveau de mathématiques n'est pas encore suffisant pour avoir de bonnes bases mais je ferais de mon mieux !
Tout d'abord, je sais que l'élément de base de AES est l'octet et qu'on réalise une identification avec les éléments du corps fini GF(2^8).
D'après ce que j'ai lu, un corps est un ensemble regroupant plusieurs loi (associativité, commutativié, élément neutre) et dans lequel chaque élement non nul est inversible. Un peu abstrait mais je pense comprendre.
Dans le cas de l'AES, on parle de corps fini, ce qui veut dire que les éléments en jeu sont limités (en l'occurence 256 éléments).
Ai je déjà raison ?
Maintenant, d'après ce j'ai lu, il existe un polynôme particulier qui est caractéristique de l'AES:
x^8+x^4+x^3+x+1
Déjà je remarque que son degré est de 8 comme la puissance dans GF(2^8). (Est ce un hasard ?)
C'est un polynôme irréductible sur F2 et il sert de polynômes générateur.
Qu'est ce qu'un polynôme générateur ? Le corps F2 veut dire ici qu'il y aurait au maximum 2 élements, n'est ce pas ? Donc soit 0 ou 1 ?
Maintenant avec l'étape de la S-box, je sais que chaque octet que je nomme b de la matrice State est transformé suivant la formule:
b=A*(b^-1) XOR C avec A et C deux matrices.
Mon souci de compréhension vient au niveau de b^-1.
Pour cette étape, mon livre prend un exemple que je ne comprends pas.
Ex:
Soit L'octet b=(0,0,0,0,0,0,1,1) par la transformation inverse, ils obtiennent b^-1=(1,1,1,1,0,1,1,0)
Déjà, je sais que l'AES est caractérisé par une identification entre la valeur de l'octet et les coefficient du polynômes caractéristiques (celui de degré 8).
J'ai essayé de démontrer cette exemple mais je n'y arrive pas.
En polynômes, l'octet b devient: x+1 et ce que je cherche b^-1= x^7+x^6+x^5+x^4+x^2+x
Je pensais en fait qu'il suffisait de diviser le polynôme caractéristique de degré 8 par x+1 et que j'allais trouvé b^-1. Mais ce n'est pas le cas, cependant j'ai trouvé un résultat très proche ce qui me laisse à pense que ma technique dois être juste puisque je trouve ^b^1= x^7-x^6+x^5-x^4+2x^3-x^2+x-1
Où est mon erreur ? Sinon, quel est le rôle du polynôme caractéristique ?
Enfin ma dernière question concerne l'étape MixColumns. Elle me paraît un peu bizarre alors je vais vous expliquer ce que j'ai compris.
On considère les colonnes de State que l'on considère comme des polynômes de degré 3 (Hasard ?) et on fait subir une transformation à chaque octet de GF(2^8) selon cette formule:
Image en pièce jointe
Avec c : colonne de State
A: polynomes de degrés 3 à coefficients dans GF(2^8)
Do'ù vient ce mod(x^4+1) ?
Pouvez m'expliquer cette équivalence (surtout la matrice du milieu, je ne vois pas d'où elle vient). Pourquoi peut on la qualifier de cyclique ?
Voilà je tenais à vous remercie de votre aide précieuse. Je vous en serais très reconnaissant. Cela ne me dérange pas que vous abordez d'autres notions mathématiques plus difficiles (je veux justement comprendre).
Si vous n'avez pas compris une de mes questions, je reformulerais.
Merci d'avance et merci beaucoup !
-----