web-dev-qa-db-fra.com

Qu'est-ce que SHA-3 et pourquoi l'avons-nous changé?

Le 2 octobre, le NIST a décidé que SHA-3 est le nouvel algorithme de hachage standard, cela signifie-t-il que nous devons cesser d'utiliser SHA-2 car il n'est pas sécurisé?

Qu'est-ce que c'est SHA-3 de toute façon?

60
Lucas Kauffman

La concurrence de hachage SHA- était un processus ouvert par lequel le NIST a défini une nouvelle fonction de hachage standard (standard pour les usages fédéraux américains, mais les choses sont telles que cela deviendra probablement un monde de facto standard). Le processus a été lancé en 2007. A cette époque, un certain nombre de faiblesses et d'attaques avaient été décelées sur les prédécesseurs des fonctions SHA-2 (SHA-256, SHA-512 ...), à savoir MD5 et SHA-1, donc on craignait que SHA-256 ne soit bientôt "cassé" ou du moins affaibli. Comme le choix et la spécification d'une primitive cryptographique prennent du temps, le NIST a commencé le processus SHA-3, avec l'intention tacite mais clairement comprise de trouver un remplacement pour SHA-2.

SHA-2 s'est avéré plus robuste que prévu. Nous ne savons pas vraiment pourquoi; il y a des arguments à moitié cuits (l'expansion du message est non linéaire, la fonction accumule deux fois plus d'opérations élémentaires que SHA-1 ...) mais il y a aussi un soupçon que SHA-256 est resté indemne parce que tous les chercheurs étaient occupés travailler sur les candidats SHA-3. Quoi qu'il en soit, avec SHA-2 Doom étant apparemment reporté indéfiniment, le NIST a changé ses objectifs, et au lieu de choisir un remplacement, ils ont défini un plan de sauvegarde: une fonction qui peut être conservé dans une armoire en verre, à utiliser en cas d'urgence. De même, performance a perdu l'essentiel de sa pertinence.

Cela met en évidence le choix de Keccak : parmi les finalistes du concours, c'était la fonction qui était la plus différente de SHA-2 et de l'AES; il a donc réduit le risque que tous les algorithmes cryptographiques standard soient brisés simultanément et que le NIST soit métaphoriquement pris avec leur kilt vers le bas.

Ne nous précipitons pas: non seulement SHA-2 est toujours bien (officiellement et scientifiquement), mais SHA-3 est juste annoncé: il faudra encore quelques mois avant que nous puissions obtenir une spécification (bien que nous puissions préparer des implémentations basées sur ce qui a été soumis pour le concours). Ce qui doit être fait maintenant (et aurait dû être fait il y a une décennie, vraiment) est de préparer des protocoles et des applications pour l'agilité des algorithmes , c'est-à-dire la possibilité de changer de fonction si le besoin s'en fait sentir (de la même manière que SSL/TLS dispose de "suites de chiffrement").

58
Thomas Pornin

Il y a au moins une utilisation pour laquelle SHA-2 est apparemment meilleure que SHA-3 et c'est étirement des touches .

SHA-3 a été conçu pour être très efficace en matériel mais est relativement lent en logiciel. SHA-3 prend environ le double du temps par rapport à SHA-2 pour fonctionner en logiciel et environ un quart du temps pour fonctionner en matériel.

Étant donné que SHA-3 prend deux fois plus de temps à s'exécuter dans un logiciel, si vous voulez le même temps de traitement des mots de passe sur votre serveur, vous devrez effectuer la moitié du nombre d'itérations. Mais les attaquants peuvent utiliser une implémentation matérielle pour le craquage de mot de passe. En raison de cela, les attaquants peuvent casser les mots de passe hachés SHA-3 huit fois plus vite que les mots de passe hachés SHA-2 - 2 fois plus vite car nous devons diviser par deux le nombre d'itérations de hachage et 4 fois plus rapide car le matériel SHA-3 est plus rapide que SHA-2 Matériel.

10
David Wachtfogel

Le 2 octobre 2012, le NIST a décidé quel algorithme allait être utilisé pour effectuer le hachage. C'était l'algorithme de Keccak.

L'algorithme Keccak est basé sur la stratégie d'éponge hermétique . C'est le nouvel algorithme standard. Nous utilisons des normes pour avoir une meilleure compatibilité.

Keccak a été conçu par Guido Bertoni, Joan Daemen (l'un des créateurs d'AES), Michaël Peeters et Gilles Van Assche. Ils l'ont construit sur la base de leur algorithme Radiogatùn .

Est-ce à dire que SHA-2 est dangereux? Aucun SHA-2 n'est toujours considéré comme sûr, nous savons seulement qu'à l'avenir, il ne sera plus sûr et nous avons besoin de l'assurance qu'il y aura une alternative disponible. Nous ne voulons pas non plus passer d'un jour à l'autre.Par conséquent, ils ont déjà normalisé un nouvel algorithme de hachage, afin que les gens aient le temps de changer et que nous sachions que nous avons un algorithme sécurisé à portée de main lorsque nous en avons besoin.

6
Lucas Kauffman

Un avantage que je vois de SHA-3 sur SHA-1 et SHA-2 est qu'il n'est pas sensible aux attaques d'extension. Cela signifie que les protocoles basés sur celui-ci (par exemple MAC) sont intrinsèquement plus robustes.