Définition
Une fonction de hachage cryptographique est un algorithme mathématique qui transforme n'importe quelles données d'entrée, quelle que soit leur taille, en un condensé de longueur fixe. Certaines versions modernes, appelées fonctions de sortie extensibles (XOF), peuvent produire des sorties de longueur personnalisable. Les fonctions de hachage possèdent plusieurs propriétés essentielles : elles sont déterministes, ce qui signifie qu'une même entrée produit toujours la même sortie ; elles sont résistantes aux préimages, rendant pratiquement impossible l'inversion d'un hachage pour retrouver l'entrée originale ; elles sont résistantes aux collisions, rendant pratiquement impossible la découverte de deux entrées différentes produisant le même hachage ; et elles présentent l'effet d'avalanche, où même une infime modification de l'entrée entraîne une sortie complètement différente. Bitcoin utilise SHA-256 pour le minage et le hachage des transactions, tandis que Ethereum utilise Keccak-256, une variante de SHA-3. Les fonctions de hachage sont à la base de sécurité blockchain—elles permettent tout, de la validation du travail dans le secteur minier à la création Arbre de Merkle preuves et signature des transactions.
Propriétés de la fonction de hachage illustrées
Exemples de hachage SHA-256 : Entrée : « Hello » Sortie : 185f8db32271fe25f561a6fc938b2e26…
Entrée : « hello » (en minuscules) Sortie : 2cf24dba5fb0a30e26e83b2ac5b9e29e… → Complètement différent (effet d’avalanche)
Entrée : fichier vidéo de 10 Mo. Sortie : toujours seulement 64 caractères hexadécimaux (256 bits) → Taille de sortie fixe quelle que soit la taille de l’entrée.
Démonstration de la résistance à la préimage : Objectif : Trouver une entrée produisant « 0000abc… » Seule méthode : Force brute (essais de milliards d’entrées). Minage de Bitcoin : Exactement cela : trouver le nonce produisant un hachage inférieur à la cible. À 500 exahash/seconde (réseau Bitcoin) : ~500 000 000 000 000 000 000 tentatives/seconde
Résistance aux collisions : Objectif : Trouver deux entrées différentes produisant le même hachage. SHA-256 : Aucune collision trouvée (2^128 opérations pour en trouver une). SHA-1 (obsolète) : Collisions trouvées (Google, 2017) → N'est plus considéré comme fiable.
Fonctions de hachage utilisées en cryptographie
| Fonction de hachage | Taille de sortie | Utilisé dans | Statut |
| SHA-256 | 256 | Bitcoin (minage, transactions) | Sécurisés |
| Keccak-256 | 256 | Ethereum (adresses, transactions) | Sécurisés |
| SHA-3-256 | 256 | Certains protocoles plus récents | Sécurisés |
| BLAKE2/BLAKE3 | Variable (en tant que XOF) | Zcash, certains protocoles | Sécurisé, plus rapide |
| SHA-1 | 160 | Version précédente (obsolète) | CASSÉ (collision constatée) |
| MD5 | 128 | Version précédente (obsolète) | CASSÉ (collision mineure) |
| MÛR MD-160 | 160 | Dérivation d'adresse Bitcoin | Sécurisé (avec SHA-256) |
QFP
Q : Pourquoi ne peut-on pas inverser un hachage pour trouver l'entrée ?
Les fonctions de hachage utilisent des opérations mathématiques non inversibles : elles suppriment délibérément des informations. On peut vérifier que le hachage de l'entrée est égal à la sortie, mais l'inverse (hash(output) → input) est impossible. La seule attaque générale connue est la force brute : tester de nombreuses entrées jusqu'à en trouver une qui corresponde au hachage cible. Pour des sorties de 256 bits, cela nécessite environ 2^256 tentatives, soit plus que le nombre d'atomes dans l'univers observable. Cette irréversibilité rend les fonctions de hachage utiles pour le stockage des mots de passe, les signatures numériques et la preuve de travail.
Q : Qu’est-ce que « l’effet avalanche » et pourquoi est-ce important ?
L'effet d'avalanche signifie que la modification d'un seul bit (un seul caractère) dans l'entrée produit un hachage de sortie complètement différent – généralement, environ la moitié des bits du hachage de sortie changent. Ceci est crucial pour la sécurité de la blockchain : si l'en-tête d'un bloc est modifié, même légèrement (pour changer un horodatage ou une transaction), le hachage change complètement et devient invalide, ce qui nécessite de refaire l'intégralité de la preuve de travail. Cela rend l'historique des transactions de la blockchain pratiquement immuable.
Q : Comment les fonctions de hachage sont-elles utilisées dans les signatures numériques ?
Au lieu de signer directement un document volumineux, vous le hachez d'abord (en produisant 256 bits, quelle que soit sa taille), puis vous signez le hachage avec votre clé privée. Cette méthode est efficace (signer un hachage de taille fixe est beaucoup plus rapide que de signer un fichier d'un gigaoctet) et garantit la sécurité (la signature prouve que vous avez signé ce document précis ; toute modification altère le hachage et invalide la signature). Toutes les signatures de transactions blockchain suivent ce modèle.










