Fonctions de hachage : SHA-256 et au-delà
Explorez les propriétés des fonctions de hachage cryptographiques : résistance aux collisions, résistance à la préimage et applications.
Fonctions de hachage : SHA-256 et au-delà est une leçon Cyber Security Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cyber Security Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cyber Security Academy comprend 4 leçons au total.
Qu'est-ce qu'une fonction de hachage cryptographique ?
Une fonction de hachage cryptographique prend une entrée de longueur arbitraire et produit une sortie de longueur fixe (empreinte). Elle doit être déterministe, rapide à calculer, résistante aux attaques par préimage (impossible à inverser), résistante aux collisions (impossible de trouver deux entrées ayant la même empreinte) et sensible à l'effet avalanche (une petite modification produit une empreinte complètement différente).
Famille SHA-2
La famille SHA-2 (conçue par NSA et normalisée par NIST) comprend :
- SHA-256 — sortie de 256 bits, largement utilisée
- SHA-384 — sortie de 384 bits
- SHA-512 — sortie de 512 bits, plus rapide sur les processeurs 64 bits
SHA-256 est utilisé dans Bitcoin, les certificats TLS et les identifiants de validation Git.
Famille SHA-3
SHA-3 utilise une conception complètement différente de celle de SHA-2 (la construction éponge Keccak). Il a été normalisé comme solution de secours au cas où des faiblesses seraient découvertes dans SHA-2. SHA-3 n'est pas largement déployé, mais il est utilisé dans certains protocoles et matériels cryptographiques.
MD5 et SHA-1 : compromis
N'utilisez jamais MD5 ou SHA-1 à des fins de sécurité :
- MD5 : une collision peut être trouvée en quelques secondes avec du matériel courant
- SHA-1 : première collision pratique démontrée en 2017 (SHAttered)
Ils restent utiles pour les sommes de contrôle sans enjeu de sécurité (déduplication de fichiers), mais pas pour garantir l'intégrité.
Utilisations du hachage : intégrité des fichiers
Vérification des téléchargements :
sha256sum ubuntu-24.04.iso
# Compare with the hash published on the official site
# If hashes match, file is unmodifiedUtilisations du hachage : signatures numériques
Lors de la signature de documents, nous ne chiffrons pas le document entier avec la clé privée (trop lent). À la place, nous :
- Hachons le document (rapide)
- Chiffrons l'empreinte avec la clé privée (petite et rapide)
- Le destinataire déchiffre l'empreinte avec la clé publique et la compare à celle qu'il a calculée lui-même
Hachage avec clé pour l'intégrité
HMAC (code d'authentification de message fondé sur un hachage) combine une fonction de hachage avec une clé secrète pour produire une balise d'authentification. Il permet de vérifier à la fois l'intégrité et l'authenticité des données. Il est utilisé dans les JWT, l'authentification des interfaces de programmation et TLS.
import hmac, hashlib
mac = hmac.new(key, message, hashlib.sha256).hexdigest()Attaques par extension de longueur du hachage
SHA-2 (construction de Merkle-Damgård) est vulnérable aux attaques par extension de longueur : si vous connaissez H(secret+message), vous pouvez calculer H(secret+message+extension) sans connaître le secret. HMAC empêche cela. SHA-3 n'est pas vulnérable.
Tables arc-en-ciel et salage
Une table arc-en-ciel précalcule les correspondances entre les empreintes et les entrées pour permettre une recherche rapide. Le salage empêche cela : l'ajout d'une valeur aléatoire unique à chaque entrée rend chaque empreinte unique, ce qui impose une attaque par force brute complète pour chaque entrée plutôt qu'une simple recherche.
Arbres de Merkle
Un arbre de Merkle est un arbre d'empreintes dans lequel chaque nœud parent contient l'empreinte de ses enfants. Il est utilisé dans la chaîne de blocs Bitcoin, Git et les journaux de transparence des certificats pour vérifier efficacement de grands ensembles de données sans tout télécharger.
Choisir la bonne fonction de hachage
Guide de sélection :
- Intégrité générale/sommes de contrôle : SHA-256
- Stockage des mots de passe : Argon2id, bcrypt (NOT directement SHA-256)
- Authentification des messages : HMAC-SHA-256
- Signatures numériques : SHA-256 ou SHA-384 comme fonction de hachage sous-jacente
- À éviter : MD5, SHA-1 pour les applications de sécurité
Vérification rapide : fonctions de hachage
Quelle construction empêche les attaques par extension de longueur tout en nécessitant également une clé secrète ?
Récapitulatif de la leçon
Les fonctions de hachage produisent des empreintes de longueur fixe à partir d'une entrée arbitraire. SHA-256 et SHA-512 sont les normes actuelles. MD5 et SHA-1 sont compromis pour les usages de sécurité. HMAC ajoute une clé secrète pour assurer une intégrité authentifiée. Utilisez Argon2/bcrypt pour les mots de passe. Les arbres de Merkle étendent le hachage afin de vérifier efficacement de grands ensembles de données.
Questions Fréquemment Posées
La leçon « Fonctions de hachage : SHA-256 et au-delà » est-elle gratuite ?
Oui — le texte complet de « Fonctions de hachage : SHA-256 et au-delà » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cyber Security Academy, passe à CoddyKit PRO. Le cours Cyber Security Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fonctions de hachage : SHA-256 et au-delà » ?
Explorez les propriétés des fonctions de hachage cryptographiques : résistance aux collisions, résistance à la préimage et applications. Tu pratiques Cyber Security Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cyber Security Academy ?
Aucune expérience préalable n'est requise. Cyber Security Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Fonctions de hachage : SHA-256 et au-delà » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cyber Security Academy ?
Oui. Chaque leçon Cyber Security Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Chiffrement symétrique : AES et chiffrements par flux
- Chiffrement asymétrique : RSA et courbes elliptiques
- Fonctions de hachage : SHA-256 et au-delà
- Signatures numériques et certificats