Empreinte SHA-256

Une empreinte SHA-256 est une valeur de hachage de 256 bits (soit 64 caractères hexadécimaux) produite par la fonction de hachage cryptographique SHA-256 (Secure Hash Algorithm 256 bits). Elle sert à identifier de manière unique et à vérifier l’intégrité d’un fichier ou d’un message.

Elle possède trois propriétés fondamentales

  • Unicité : Le moindre changement dans les données d’entrée (même un seul bit) produit une empreinte complètement différente.
  • Irréversibilité : Il est impossible de reconstituer les données originales à partir de l’empreinte.
  • Déterminisme : Les mêmes données produisent toujours la même empreinte.

Par exemple, l’empreinte SHA-256 du mot « thèse » est 5d7df63d74998fqfd63b9ff79dae8cd3aaache9d41f73ef98b71916bf6226e04, tandis que celle du mot « thèses » est 5d44f3c27e1b0294955b478c77c22e0f0c1068a3a953486a4b7622593899e81a.

SHA-256 est vulnérable aux attaques par extension de longueur (length-extension) s’il est utilisé seul pour de l’authentification. La solution est simple : l’utiliser dans un HMAC (Hash-based Message Authentication Code), comme HMAC-SHA-256.

Nuances

Le terme « empreinte » est souvent utilisé comme synonyme de « hash » ou « digest », mais il existe des nuances importantes.

  • Hash
    • Usage typique : terme générique pour toute sortie d’une fonction de hachage.
    • Exemple d’algorithme : SHA-256, MurmurHash.
  • Digest
    • Usage typique : hash cryptographique utilisé pour vérifier l’intégrité des données.
    • Exemple d’algorithme : MD5, SHA-1, SHA-256.
  • Fingerprint
    • Usage typique : hash utilisé pour identifier de manière unique une donnée (clé SSH, certificat).
    • Exemple d’algorithme : SHA-256 tronqué.

Autres algorithmes d’empreintes

  • MD5 et SHA-1
    • Statut : Obsolètes.
    • Raison : Des attaques par collision permettent de générer deux contenus différents avec la même empreinte. Ils doivent être retirés de toute utilisation de sécurité.
  • SHA-3 et BLAKE2/BLAKE3
    • Statut : Modernes et recommandés.
    • Caractéristiques : Offrent des performances et une sécurité comparables, voire supérieures, à SHA-256. BLAKE3 est particulièrement rapide.
  • Empreintes perceptuelles (Perceptual Hashing)
    • Spécificité : Contrairement aux empreintes cryptographiques qui changent au moindre bit modifié, ces empreintes sont conçues pour être robustes aux modifications mineures d’un contenu (compression, redimensionnement).
    • Usage : Identification d’images ou de sons similaires, par exemple pour détecter des contenus protégés par le droit d’auteur.

À quoi ça sert ?

Les empreintes cryptographiques sont essentielles pour :

  • Vérifier l’intégrité : S’assurer qu’un fichier téléchargé n’a pas été altéré ou corrompu.
  • Sécuriser les signatures électroniques : On signe l’empreinte d’un document, pas le document entier, ce qui est plus rapide et plus sûr.
  • Identifier des données : Les empreintes de clés SSH ou de certificats permettent de les reconnaître de manière fiable.
  • Sécuriser la blockchain : Le minage et la validation des blocs reposent sur le calcul d’empreintes SHA-256 répondant à des critères précis.

Analogie

Imaginez que vous voulez vérifier qu’un fichier est authentique. L’empreinte est comme une empreinte digitale : elle est unique à ce fichier, impossible à deviner à partir d’une autre, et si le fichier est modifié, même d’un seul caractère, l’empreinte devient totalement différente. C’est une carte d’identité numérique pour vos données.

Les contenus de définition restent publics. Les ressources (outils, grilles, supports) liées à cette fiche sont disponibles dans l’espace membre.