• # Fonctions de hachage

    Posté par . En réponse au message Fonction de hachage (cryptographique). Évalué à 2.

    CRC32 ne resiste pas une seconde à une modification volontaire (commes tous les CRC d'ailleurs).

    Le problème d'une empreinte de taille faible c'est que sa proprieté de résistance aux collisions (il est difficile de trouver x et y tel que h(x) = h(y)) va être très rapidement mise à mal. Exemple, pour une empreinte de 32 bits, on a une très forte probabilité de trouver des collisions à partir de 2^(32/2) = 2^16 = 65536 opérations (attaque des anniversaires). En gros tu calcul les empreintes de 65536 fichiers et tu as une probabilité importante de trouver deux empreintes identiques dans le lot.

    Alors c'est vrai pour la proprieté de résistance aux collisions mais là un attaquant aurait plutôt besoin de casser la proprieté de résistance à la seconde pré-image (étant donné x, il est difficile de trouver x' != x tel que h(x) = h(x'), donc en gros de trouver un fichier dont l'empreinte est égale à celle d'un fichier donné, et encode faut-il que ce fichier ai un sens, ce qui n'est pas gagné). Cette proprieté est plus robuste (en général) que celle de collision mais il faut quand même faire attention.

    Si tu as vraiment besoin de faire des empreintes de faible tailles (mais je recommande fortement quand même des empreintes de 128 bits ou plus), il faudrait mieux prendre un algo de hachage standard (SHA-1 de préférence à MD5) et tronquer sa sortie à la taille que tu as besoin, c'est pas génial mais c'est incomparablement mieux que CRC...

    Cependant, ne t'étonne pas que quelqu'un vienne te voir avec deux fichiers qui ont la même empreinte en quelques secondes...