SHA-256 / SHA-3 / BLAKE3
generalDéfinition
SHA-256, SHA-3 et BLAKE3 sont trois fonctions de hachage cryptographiques qui génèrent une empreinte numérique (digest) de taille fixe à partir de données d'entrée de taille arbitraire. Ces fonctions sont au cœur de la sécurité numérique moderne : signatures numériques, intégrité des données, dérivation de clés, chaînes de blocs, et authentification. SHA-256 (Secure Hash Algorithm 256 bits) est membre de la famille SHA-2, conçue par la NSA et standardisée par le NIST en 2001. Elle produit un digest de 256 bits (32 octets) et repose sur la construction de Merkle-Damgård avec une fonction de compression basée sur des opérations bitwise et des additions modulaires. SHA-256 est omniprésent : signatures RSA et ECDSA, certificats TLS (SHA-256WithRSAEncryption), Bitcoin (double SHA-256 pour le minage), HMAC-SHA256, et la plupart des protocoles cryptographiques modernes. SHA-3 (Keccak) est le gagnant du concours de hachage du NIST (2007-2012), standardisé en 2015. Contrairement à SHA-2, il utilise une construction en éponge (sponge construction) avec la permutation Keccak, structurellement différente de SHA-2 — une attaque cassant SHA-2 ne casserait pas nécessairement SHA-3. SHA-3-256 produit un digest de 256 bits compatible avec SHA-256 en termes de taille. SHA-3 est actuellement peu déployé en pratique (SHA-2 est encore sûr) mais recommandé quand une diversité algorithmique est souhaitée ou dans les nouveaux protocoles. BLAKE3 est une fonction de hachage moderne (2020) conçue pour la performance maximale sur les architectures modernes. Il est significativement plus rapide que SHA-256 (3-7x sur les CPUs modernes) et SHA-3 (10x) grâce à sa structure hautement parallélisable. BLAKE3 dérive de la famille BLAKE2, basée sur ChaCha. Sa rapidité le rend intéressant pour les usages où la performance est critique : hachage de fichiers de grande taille, intégrité dans les pipelines CI/CD, et les systèmes de fichiers (BLAKE3 est utilisé dans le gestionnaire de paquets Cargo de Rust et dans Bao pour le streaming vérifié). Le choix entre ces algorithmes dépend du contexte : SHA-256 pour la compatibilité maximale et les standards existants (TLS, FIPS 140-3), SHA-3 pour la diversité algorithmique ou les nouveaux protocoles post-quantiques, BLAKE3 pour les performances maximales dans les applications non soumises à FIPS.
Propriétés cryptographiques des fonctions de hachage
Les propriétés fondamentales d'une fonction de hachage cryptographique sont : (1) Résistance à la préimage — étant donné h, il est computationnellement infaisable de trouver m tel que H(m) = h ; (2) Résistance à la seconde préimage — étant donné m1, il est infaisable de trouver m2 ≠ m1 tel que H(m1) = H(m2) ; (3) Résistance aux collisions — il est infaisable de trouver m1 ≠ m2 tel que H(m1) = H(m2). SHA-256 satisfait ces trois propriétés avec 128 bits de sécurité effective (résistance aux collisions : 128 bits, préimage : 256 bits). MD5 et SHA-1 sont cassés pour la résistance aux collisions (des collisions pratiques ont été démontrées) et ne doivent plus être utilisés pour les signatures cryptographiques.
SHA-256 dans la blockchain Bitcoin
Bitcoin utilise SHA-256 de manière centrale. Le minage (Proof of Work) consiste à trouver un nonce tel que SHA-256(SHA-256(block_header)) produit un hash commençant par suffisamment de zéros (difficulté variable). Les adresses Bitcoin sont dérivées via SHA-256 puis RIPEMD-160 de la clé publique ECDSA. Le Merkle Tree des transactions dans chaque bloc utilise SHA-256. La conception double-SHA-256 (appliquer SHA-256 deux fois) protège contre certaines attaques par extension de longueur (length extension attack) auxquelles SHA-256 single est théoriquement vulnérable (mais non exploitée en pratique). Les ASICs Bitcoin (Antminer, Whatsminer) sont des circuits intégrés spécialisés capables de calculer des milliards de double-SHA-256 par seconde.
BLAKE3 — performances et adoption
BLAKE3 est conçu pour exploiter au maximum le parallélisme des CPUs modernes via un arbre de Merkle interne. Sur un Intel Core i9 avec AVX-512 : BLAKE3 atteint ~10 Go/s (monothread) vs ~1.5 Go/s pour SHA-256 sans SHA-NI et ~3 Go/s avec SHA-NI. Cette performance le rend particulièrement adapté pour les usages non cryptographiques mais nécessitant une haute intégrité : hash de déduplication dans les systèmes de sauvegarde, checksums dans les systèmes de fichiers distribués (IPFS envisage BLAKE3), signature de logiciels (Sigstore et la communauté Rust l'adoptent progressivement). BLAKE3 n'est pas encore approuvé FIPS — pour les environnements gouvernementaux US, SHA-2 et SHA-3 restent requis.
Ce terme vous interpelle ?
Nos experts interviennent sur toutes les thématiques de ce glossaire — pentest, conformité NIS 2 / ISO 27001, forensics, sécurité IA. Réponse sous 24h, devis gratuit et sans engagement.