Une fonction de hachage est un algorithme qui transforme des données d’entrée en un hash, ou empreinte. Avec le même algorithme et des octets d’entrée identiques, le résultat reste identique. Les fonctions courantes en blockchain produisent une empreinte de longueur fixe, même si la longueur des données varie.
La robustesse cryptographique
Une fonction de hachage cryptographique vise à rendre irréalisable en pratique la recherche d’une entrée à partir de son empreinte, ou de deux entrées différentes ayant la même empreinte. Les collisions restent mathématiquement possibles. La sécurité dépend de l’algorithme et des moyens d’attaque, pas d’une prétendue sortie unique pour chaque entrée.
Les usages dans les blockchains
Les hashes servent à identifier des transactions, relier des en-têtes de blocs et résumer des données dans des arbres de Merkle. SHA-256 produit 256 bits, généralement affichés sous forme de 64 caractères hexadécimaux. Une petite modification de l’entrée change généralement beaucoup l’empreinte, ce qui permet une comparaison avec une référence fiable.
Une empreinte ne cache pas tout
Le hachage n’est pas un chiffrement réversible et n’utilise aucune clé de déchiffrement. Des entrées prévisibles peuvent être devinées et testées en hachant des candidats. Une empreinte concordante établit un lien avec les données de référence, sans prouver leur véracité ni la fiabilité de leur auteur.