Une fonction de hash transforme une donnée en une empreinte de taille déterminée. Modifier la donnée, même légèrement, produit normalement une empreinte différente. Cette propriété rend les hashes utiles pour l’intégrité et la comparaison, mais un hash n’est pas du chiffrement.
Hash et chiffrement répondent à des objectifs différents
Le chiffrement est conçu pour rendre une donnée illisible sans la clé permettant de la déchiffrer. Un hash est une transformation à sens unique utilisée pour produire une empreinte. On ne « déchiffre » donc pas un hash pour retrouver le fichier original.
Le générateur de hash permet de calculer localement des empreintes pour différents usages techniques.
Comparer deux empreintes
Si deux fichiers attendus produisent la même empreinte avec le même algorithme, cela fournit un moyen pratique de vérifier qu’ils correspondent. Le comparateur de hash évite les erreurs de comparaison manuelle de longues chaînes.
La confiance dépend cependant de l’origine de l’empreinte de référence. Comparer un fichier compromis avec une empreinte fournie par le même canal compromis ne crée pas magiquement une source de confiance.
Tous les algorithmes n’ont pas le même usage
Des algorithmes anciens peuvent rester rencontrés pour des contrôles non adversariaux ou de compatibilité, mais ils ne doivent pas être choisis automatiquement pour des usages de sécurité modernes. L’objectif et le modèle de menace déterminent le choix.
Hash de fichier et mot de passe : ne pas confondre
Les mots de passe nécessitent des fonctions de dérivation volontairement coûteuses et des sels adaptés. Un hash rapide générique est conçu pour être rapide, ce qui est justement indésirable face aux essais massifs de mots de passe.
Pour les ressources Web externes, Subresource Integrity applique le principe d’empreinte directement dans le navigateur afin de vérifier un fichier attendu.
Propriétés recherchées d’une fonction de hash cryptographique
Une fonction moderne vise notamment à rendre difficile la recherche d’une entrée produisant une empreinte donnée et la création volontaire de deux entrées distinctes ayant la même empreinte. Une collision reste mathématiquement possible puisque l’espace des entrées est plus grand que celui des sorties ; la sécurité repose sur le fait qu’elle soit impraticable à construire dans le contexte visé.
C’est pourquoi la longueur d’une empreinte ne doit pas être interprétée comme une garantie absolue. Le choix de l’algorithme dépend de l’usage et de l’état des connaissances cryptographiques.