1 / 24

GPU Implementation of the Keccak Hash Function Family

GPU Implementation of the Keccak Hash Function Family. Romain GRANJON Mourad HADADI Codage d’erreur FI2 – Telecom Saint Etienne. Sommaire. Introduction Fonction de hachage Présentation des constructions éponges Famille de fonction de hachage Keccak Implantation sur GPU

baba
Download Presentation

GPU Implementation of the Keccak Hash Function Family

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GPU Implementation of the Keccak Hash FunctionFamily Romain GRANJON Mourad HADADI Codage d’erreur FI2 – Telecom Saint Etienne

  2. Sommaire Introduction Fonction de hachage Présentation des constructions éponges Famille de fonction de hachage Keccak Implantation sur GPU Modes de fonctionnement sur GPU Résultats expérimentaux Améliorations Conclusion

  3. Introduction de l’article • Article publié en 2011 • Ecrit par Pierre-Louis Cayrel, Gerhard Hoffmann et Michael Schneider • Implémentation d’une famille de fonction de hachage sur GPU

  4. Introduction du contexte • Importance des fonctions de hachage en cryptographie moderne • 2007 : Lancement d’une compétition de fonctions de hachage ouverte pour trouver de nouveaux standards Applications

  5. Fonction de hachage • m : message à signer, on calcule h(m) • h : fonction de hachage • h doit : • Résister à la collision • Résister à la préimage • Résister à la seconde préimage

  6. Amélioration des fonctions de hachage Tour 1 : 64 candidats • NIST (US National Institute of Standards and Technology) • SHA-3 proposé pour remplacer les fonctions SHA-1 et SHA-2 • Facteurs déterminants : sécurité et performance Tour 2: 14 candidats Tour 3: 5 candidats : BLAKE, Grøstl, Skein, JH et Keccak

  7. Keccak : SHA-3 • Vainqueur du concours • Schéma basé sur la construction éponge • Un des plus rapides des 5 finalistes du concours

  8. Les constructions éponge • 2 phases : absorption(absorbing) et essorage(squeezing) • Sortie de longueur variable • Phase absorption : entrée décomposée en plusieurs blocs puis permutation • Phase essorage : on retourne les bits de sortie ; nombre d’itérations variable et donc chaîne de sortie variable

  9. Fonction de hachage Keccak Plus r est grand, plus on améliore la vitesse => PERFORMANCE Plus c est grand, plus on améliore la sécurité => SECURITY r : bit rate c: capacity f : fonction de permutation pi : blocs d’entrée zi : blocs de sortie

  10. Paramètres de Keccak • 7 fonctions possibles de hachage de la famille Keccak-f[b] • b => taille de la permutation (en bits) • Nombre de rounds recommandés pour Keccak-f[1600] : 24 Choix de ces valeurs car une voie de Keccak-f[1600] correspond exactement à un mot CPU d’un processeur 64 bits

  11. Attaque par recherche de collisions • Avec Keccak-f[r=1024, c=576] • 2288 opérations binaires pour trouver une collision • Avec 1 milliard d’ordinateurs et 1 milliards d’opérations par seconde • => 1.61061 années (plus que l’âge de l’univers !)

  12. Hachage pour la signature basée sur les codes • Trouver e de poids t telque h(m) = He (McEliece, Niederreiter) • Trouver un haché tel qu’il soit décodable • Calcul du haché à partir de la phase d’absorption du message et d’une composante aléatoire

  13. Hachage pour la signature basée sur les codes Algorithme i <- 0 Tant que h(M|i) n’est pas décodable Faire i <- i + 1 Calculer e = γ(h(M|i )) Fin Tant que Signataire envoie {e,i} tel que h(M|i ) = He

  14. Utilisation du GPU • Signature électronique très lente (trouver un haché décodable) • Utilisation de la carte graphique pour accélérer les calculs • Traitements effectués en parallèle • Gain de performances non négligeable

  15. Comparaison des puissances de calculs

  16. Accélération des calculs via GPU

  17. CUDA • ComputeUnifiedDevice Architecture • Architecture développée par Nvidia • Accès à la puissance de calcul du GPU • Programmation en C, C++

  18. Modes de fonctionnement sur GPU • Batch mode : Hachage de fichiers par lots (hachage de messages en parallèle) • Tree mode : Séparation du fichier en plusieurs blocs : des feuilles et des nœuds. Hachage indépendant des feuilles puis des parents

  19. Résultats expérimentaux

  20. Accélération de la signature basée sur les codes • Calcul des hachés en parallèle avec l’ajout d’une composante aléatoire • Vérification du décodage en parallèle h1 h2 h3 h4 h5 h6 h7 h8 h9 • Signataire envoie {e,5} tel que h(m|5) = He

  21. Limites à l’utilisation du GPU • Keccak n’est pas complètement parallélisable • La plateforme CUDA impose 32 threads au minimum (Warp) • Problème d’accès mémoire concurrentiel

  22. Améliorations • Utilisation d’un matériel dédié • Meilleures performances mais l’implantation sur GPU est suffisamment performante • CUDA pose des limitations à cause du matériel • Utilisation d’une carte graphique plus récente

  23. Conclusion

  24. Questions ?

More Related