CubeHash

introduction

Une fonction de hachage cryptographique est un ensemble d'étapes qui transforment un bloc arbitraire de données en une séquence de longueur fixe. Toute modification des données d'entrée entraîne une modification de la valeur de la fonction. Les fonctions de hachage permettent de calculer les sommes de contrôle, lors de la génération d'une signature électronique, lors du stockage des mots de passe dans les systèmes de sécurité sous la forme d'un code de hachage, etc.





La famille de fonctions de hachage CubeHash a été proposée comme nouvelle norme SHA-3 lors du concours de hachage du National Institute of Standards and Technology (NIST) de 2009 .





Cet article décrit le principe de fonctionnement de cette famille, et aborde également la résistance de l'algorithme à diverses attaques.





Description de l'algorithme

Ce qui suit est un algorithme de travail selon la spécification [1].





Le fonctionnement de l'algorithme est déterminé par 3 paramètres:





  • - la taille de la séquence de sortie en bits,





  • - le nombre de tours,





  • - la taille des blocs du message d'entrée en octets,





L'idée de l'algorithme est de transformer séquentiellement l' état en fonction de la séquence d'entrée. L'algorithme se compose de 5 étapes:





  • initialisation de l'état interne





  • briser un message en blocs





  • transformation d'état itérative













.





32 - ( little-endian).





3 . . .





. . . .





. . .





1, .





.





F

, , , . 10 :









  1. ,





  2. ,





  3. ,





  4. ,





  5. 1





  6. ,





  7. ,





  8. 4





  9. ,









[2]:





-

:





  • : - .





  • : 2 .





-, , - , , , .





CubeHash

, . .. , , .





50% . . , 128 [3].





. . , . . , 64 [3].





.





[4] , , .





. ( ), . , , .





, , , . , , , [2]. , , , .





F

128- [2]. 15 :









AABBCCDD





EEFFGGHH





IIJJKKLL





MMNNOOPP









ABABCDCD





EFEFGHGH





IJIJKLKL





MNMNOPOP









ABBACDDC





EFFEGHHG





IJJIKLLK





MNNMOPPO









ABCDABCD





EFGHEFGH





IJKLIJKL





MNOPMNOP









ABCDBADC





EFGHFEHG





IJKLJILK





MNOPNMPO









ABCDCDAB





EFGHGHEF





IJKLKLIJ





MNOPOPMN









ABCDDCBA





EFGHHGFE





IJKLLKJI





MNOPPONM









ABCDEFGH





ABCDEFGH





IJKLMNOP





IJKLMNOP









ABCDEFGH





BADCFEHG





IJKLMNOP





JILKNMPO









ABCDEFGH





CDABGHEF





IJKLMNOP





KLIJOPMN









ABCDEFGH





DCBAHGFE





IJKLMNOP





LKJIPONM









ABCDEFGH





EFGHABCD





IJKLMNOP





MNOPIJKL









ABCDEFGH





FEHGBADC





IJKLMNOP





NMPOJILK









ABCDEFGH





GHEFCDAB





IJKLMNOP





OPMNKLIJ









ABCDEFGH





HGFEDCBA





IJKLMNOP





PONMLKJI









32- . . , , , . , .





.









  • ( )





  • ,





  • .





  • ,





, 2 ^ {501}. . 2 ^ {256}.





(cycle per byte cpb). , 1 .





SHA-256, SHA-512 CubeHash16/32 Intel Core 2Duo 6f6 (a) Intel Core 2 Duo E8400 1067a (b) [5]:





  • 11.47 cpb: CubeHash 16/32, (b), amd64 architecture.





  • 12.60 cpb: SHA-512, (b), amd64 architecture.





  • 12.60 cpb: SHA-512, (a), amd64 architecture.





  • 12.66 cpb: CubeHash 16/32, (a), amd64 architecture.





  • 12.74 cpb: CubeHash 16/32, (b), x86 architecture.





  • 14.07 cpb: CubeHash 16/32, (a), x86 architecture.





  • 15.43 cpb: SHA-256, (b) x86 architecture.





  • 15.53 cpb: SHA-256, (b), amd64 architecture.





  • 15.56 cpb: SHA-256, (a), amd64 architecture





  • 17.76 cpb: SHA-512, (b), x86 architecture.





  • 20.00 cpb: SHA-512, (a), x86 architecture





  • 22.76 cpb: SHA-256, (a), x86 architecture





CubeHash SHA-3 -, NIST. Cubehash , . , CubeHash , .





. , CubeHash 8 / 1-512 CubeHash 1 / 1-512, CubeHash 1 / 1-512 , CubeHash 1 / 2-512. - CubeHash 1/128- h.





: .





  1. DJ Bernstein. Spécification Cubehash (2.b.1)





  2. Vikash Jha. Cryptanalyse de Cubehash.





  3. Philip Doughty Jr. Une attaque générique sur CubeHash, un candidat SHA-3.





  4. Benjamin Bloom et Alan Kaminsky. Attaques par bloc unique et tests statistiques sur CubeHash.





  5. DJ Bernstein. Réglage des paramètres CubeHash: 16 fois plus rapide.












All Articles