Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Hardware

Hardware Forum d'entraide sur l'achat et le dépannage de votre matériel. Avant de poster -> FAQ et Tutoriels Hardware

Réponse
 
Outils de la discussion
Vieux 23/07/2007, 15h19   #1 (permalink)
Invité de passage
 
Date d'inscription: juillet 2007
Messages: 8
Par défaut Vhdl - AES 128 bits

Bonjour,
J'espère que je suis sur le bon forum...
J'ai un soucis dans mon developpement VHDL.
Quelqu'un a-t-il un source pour le decryptage AES? J'ai trouvé le cryptage :
http://islab.oregonstate.edu/koc/ece...egarajan-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é



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/ece...egarajan-Park/
Module "mix_column.vhd"

http://www-id.imag.fr/~svarrett/ense...Projet_AES.pdf
Page 9
bibi-C-Moi est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/07/2007, 12h48   #2 (permalink)
Membre émérite
 
Date d'inscription: avril 2007
Localisation: Lyon
Messages: 889
Envoyer un message via ICQ à Mark Havel Envoyer un message via MSN à Mark Havel
Par défaut

Habituellement, toutes les techniques et algorithmes de cryptages sont fournies avec la méthode pour décrypter. Sinon, cela n'aurait pas beaucoup d'intérêt, du moins, pas dans le cadre de communications où à la fin, le destinataire est supposé pouvoir lire en clair le message.
Donc es-tu sûr que le lien que tu as trouvé ne propose pas quelque part une méthode de décryptage ?
Mark Havel est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/07/2007, 13h18   #3 (permalink)
Invité de passage
 
Date d'inscription: juillet 2007
Messages: 8
Par défaut

Le lien
http://islab.oregonstate.edu/koc/ece...egarajan-Park/
ne propose pas de decryptage, il le disent dans l'intro.
Finallement, le decryptage revient a faire les opérations inverses dans un ordre différent, c'est pourquoi ils n'ont pas jugé utile de le mettre en ligne, je pense...

En effet, il m'a fallu une dixaine de minutes pour modifier les opérations. (à part la matrice du subByte qui m'a pris pas mal de temps )

Le problème est que j'ai l'impression de bloquer sur un problème tout bête dans le mix_column...
Sinon, du nouveau : j'abandonne leur idée du xor bizarre. J'ai donc inclus des composants multiplicateurs. Ca prend plus de place sur le FPGA mais au moins c'est clair . Design in progress... Result soon
Merci d'avoir répondu.
bibi-C-Moi est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 31/07/2007, 08h25   #4 (permalink)
Invité de passage
 
Date d'inscription: juillet 2007
Messages: 8
Par défaut C fait, ca marche

AES_spec.pdf page 3 : 2.3 Multiplication by repeating shifts
Procedure sympa mais pas évident au premier coup d'oeil...
Bye
bibi-C-Moi est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Hardware



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 18h42.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2008 www.developpez.com - Legal informations