Bonjour,
Quelqu'un a-t-il un source pour le decryptage AES? J'ai trouvé le cryptage :
http://islab.oregonstate.edu/koc/ece575 ... ajan-Park/
qui fonctionne très bien d'ailleurs...
Mais a pas decryptage sur le net Ou j'ai mal cherché...
Voila, j'ai réutilisé la base encrypt pour faire le decrypt puisque ce ne sont que des inversions mais je n'obtiens pas mon plaintext d'origine. Par contre, ma S-box inverse est bonne, j'en ai encore mal aux yeux à force de l'avoir vérifié
Merci d'avance
Vhdl - AES 128 bits
Modérateur : Modérateur
J'explique mon probleme en detail
Dans la routine Mix Column de mon algo, il y a des multiplications à effectuer sur des polynomes représentés par des vecteurs.
Je prend un vecteur pour exemple : V[7..0]
Multiplication du vecteur par 2 : equivalent à un decalage a gauche.
J'obtiens donc un vecteur d'un bit plus grand :
V[7..0] = 10110011 ==> RESULTAT[8..0] = 101100110
Multiplication du vecteur par 3 : equivalent à un decalage a gauche suivi d'un XOR avec le vecteur d'origine.
V[7..0] = 10110011 ==> TEMP[8..0] = 101100110
RESULTAT [8..0] = TEMP[8..0] XOR 010110011 ;
Comme vous pouvez constater, on ajoute un 0 en tete du vecteur d'origine pour respecter le format 9 bits.
Cet algo fonctionne très bien.
Alors, là où ça coince, c'est pour le decryptage :
Je dois effectuer des multiplications par 9, 11, 13 et 14...
Pour le 9, j'ai pensé à l'opération suivante :
- multiplication par 8 (decalage a gauche de 3 bits)
- XOR avec le vecteur d'origine
Mais j'ignore si c'est correct, je ne peux malheureusement pas faire des tests simples aussi profondement dans le code, je n'ai qu'un resultat final deterministe "brut de pomme" en sortie du système (j'ai le resultat théorique).
Pour les 11, 13 et 14, je sèche...
Mes questions :
Pourriez-vous m'éclairer sur le fonctionnement du XOR dans ce contexte?
Comment auriez-vous fait? (meme une idée vague est bienvenue)
Merci d'avance.
PS : Je peux vous fournir des codes détaillés si vous voulez; j'ai essayé d'élager un peu dans ce paragraphe. Pour toute précision supplémentaire, je reste dispo.
PS 2 : je vous donne des liens vers la doc que j'utilise:
http://islab.oregonstate.edu/koc/ece575 ... ajan-Park/
Module "mix_column.vhd"
http://www-id.imag.fr/~svarrett/enseign ... et_AES.pdf
Page 9
Je prend un vecteur pour exemple : V[7..0]
Multiplication du vecteur par 2 : equivalent à un decalage a gauche.
J'obtiens donc un vecteur d'un bit plus grand :
V[7..0] = 10110011 ==> RESULTAT[8..0] = 101100110
Multiplication du vecteur par 3 : equivalent à un decalage a gauche suivi d'un XOR avec le vecteur d'origine.
V[7..0] = 10110011 ==> TEMP[8..0] = 101100110
RESULTAT [8..0] = TEMP[8..0] XOR 010110011 ;
Comme vous pouvez constater, on ajoute un 0 en tete du vecteur d'origine pour respecter le format 9 bits.
Cet algo fonctionne très bien.
Alors, là où ça coince, c'est pour le decryptage :
Je dois effectuer des multiplications par 9, 11, 13 et 14...
Pour le 9, j'ai pensé à l'opération suivante :
- multiplication par 8 (decalage a gauche de 3 bits)
- XOR avec le vecteur d'origine
Mais j'ignore si c'est correct, je ne peux malheureusement pas faire des tests simples aussi profondement dans le code, je n'ai qu'un resultat final deterministe "brut de pomme" en sortie du système (j'ai le resultat théorique).
Pour les 11, 13 et 14, je sèche...
Mes questions :
Pourriez-vous m'éclairer sur le fonctionnement du XOR dans ce contexte?
Comment auriez-vous fait? (meme une idée vague est bienvenue)
Merci d'avance.
PS : Je peux vous fournir des codes détaillés si vous voulez; j'ai essayé d'élager un peu dans ce paragraphe. Pour toute précision supplémentaire, je reste dispo.
PS 2 : je vous donne des liens vers la doc que j'utilise:
http://islab.oregonstate.edu/koc/ece575 ... ajan-Park/
Module "mix_column.vhd"
http://www-id.imag.fr/~svarrett/enseign ... et_AES.pdf
Page 9