Fonction de hachage cryptographique
Une fonction de hachage est une fonction qui prend une entrée de longueur variable et produit une sortie de longueur fixe, aussi appelée empreinte (ou simplement « hachage »). Les fonctions de hachage doivent être rapides à calculer, et des entrées différentes doivent autant que possible produire des sorties différentes (c'est ce qu'on appelle la résistance aux collisions).
Les fonctions de hachage ont des usages à la fois cryptographiques et non cryptographiques. En dehors de la cryptographie, par exemple, les fonctions de hachage peuvent servir à générer les clés d'un tableau associatif comme une map ou un dictionnaire.
La fonction digest()
de l'interface SubtleCrypto
met différentes fonctions de hachage à disposition des applications web.
Fonctions de hachage cryptographiques
En cryptographie, les fonctions de hachage ont de nombreuses applications, notamment les signatures numériques et les codes d'authentification de message.
Toutes les fonctions de hachage ne conviennent pas à la cryptographie. Pour être utilisée en cryptographie, une fonction de hachage doit être :
- rapide à calculer
- à sens unique : connaissant la sortie, il doit être impossible ou irréaliste de retrouver l'entrée d'origine
- résistante à la falsification : toute modification de l'entrée conduit à une sortie différente
- résistante aux collisions : il doit être irréaliste de trouver deux entrées différentes produisant la même sortie
Les fonctions de hachage les plus couramment utilisées en cryptographie appartiennent à la famille SHA-2 (Secure Hash Algorithm 2), dont les noms sont "SHA-"
suivis de la longueur de l'empreinte en bits : par exemple, "SHA-256"
et "SHA-512"
.
SHA-2 est le successeur de l'algorithme SHA-1, qui n'est plus considéré comme sûr et ne doit plus être utilisé en cryptographie. Notez que l'algorithme MD5 est également considéré comme non sécurisé.
Voir aussi
SubtleCrypto.digest()
- Fonction de hachage (angl.) sur Wikipédia
- Fonction de hachage cryptographique (angl.) sur Wikipédia
- Termes du glossaire associés :