IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VHDL Discussion :

AES 128 bits


Sujet :

VHDL

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 8
    Points : 8
    Points
    8
    Par défaut 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 décryptage 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 polynômes représentés par des vecteurs.


    Je prend un vecteur pour exemple : V[7..0]
    Multiplication du vecteur par 2 : équivalent à un dessalage à gauche.
    J'obtiens donc un vecteur d'un bit plus grand :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    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 décryptage :
    Je dois effectuer des multiplications par 9, 11, 13 et 14...

    Pour le 9, j'ai pensé à l'opération suivante :
    - multiplication par 8 (dessalage 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 profondément dans le code, je n'ai qu'un résultat final déterministe "brut de pomme" en sortie du système (j'ai le résultat 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? (même 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’élaguer 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

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    868
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 868
    Points : 1 022
    Points
    1 022
    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 ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 8
    Points : 8
    Points
    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.

  4. #4
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 8
    Points : 8
    Points
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Déchiffrement AES 128 bits
    Par Happpy dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 05/03/2014, 00h27
  2. Generer Key AES 256 bit pour encrypter 128 zéros
    Par JacK_soN dans le forum Sécurité
    Réponses: 2
    Dernier message: 05/12/2008, 20h38
  3. AES 128 bits
    Par bibi-C-Moi dans le forum Composants
    Réponses: 3
    Dernier message: 31/07/2007, 08h25
  4. déclaration de variables de 16, 32 et 128 bits
    Par samipate dans le forum C++
    Réponses: 10
    Dernier message: 30/12/2004, 22h33
  5. Machine 32 bits - cryptage 128 bits
    Par free0pen dans le forum Assembleur
    Réponses: 6
    Dernier message: 02/04/2004, 20h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo