google à annoncé avoir trouvé une collision
Je me trompe surement (je suis pas très fort en hash), mais si on essaye d'obtenir tous les sha-1 (donc des nombres de 160 bits) de toutes les valeurs possibles de 168 bits, il y aura obligatoirement des valeurs avec les mêmes signature non ?
La "force" d'un algo de hash n'est-il pas l'impossibilité de calculer une valeur possible à partir d'un hash ?
En fait, il y a une très bonne probabilité d'obtenir une collision avec 2^80 hashes environ (et en général avec 2^(N/2) pour un espace de 2^N). C'est un compromis temps-mémoire, l'inconvénient par rapport au brute-force est qu'il faut aussi stocker environ 2^80 hashes en mémoire. Voir "attaque des anniversaires".
Ce qui est intéressant, c'est la comparaison entre l'efficacité de l'attaque et celle des anniversaires, qui fonctionne avec n'importe quelle fonction. SHAttered utilise 2^63 calculs de sha1, soit "seulement" 2^17 fois moins que l'attaque théorique. Si la puissance globale des ordinateurs continue d'augmenter, il se peut en effet que l'attaque des anniversaires devienne praticable pour sha1 (raison pour laquelle les fonctions plus récentes ont un espace plus grand).
La nécessité d'avoir une fonction de hachage résistante aux collisions dépend du cadre dans lequel on l'utilise. Quand il s'agit d'authentifier des données, c'est très important. Cf.
https://fr.wikipedia.org/wiki/R%C3%A9sistance_aux_collisions , notamment:
dans certains systèmes de signature numérique, une autorité atteste de l'authenticité d'un document en publiant une signature à clé publique sur une valeur de hachage du document ; s'il est possible de produire deux documents avec la même valeur de hachage, un attaquant pourrait obtenir d'une autorité une attestation d'authenticité sur un document, et ensuite prétendre que l'autorité a attesté de l'authenticité d'un autre document
Certaines attaques informatiques requièrent une collision. On fait authentifier un "bon" document, puis on utilise un document malicieux avec la même signature en le faisant passer pour le premier (c'est ce qu'explique Erylanor).