Fonction de hachage

On nomme fonction de hachage, de l'anglais hash function (hash : pagaille, désordre, recouper et mélanger) par analogie avec la cuisine, une fonction particulière qui, à partir d'une donnée fournie en entrée, calcule une empreinte servant à identifier rapidement, bien qu'incomplètement, la donnée initiale. Les fonctions de hachage sont utilisées en informatique et en cryptographie.

Exemples de hachages de textes par la fonction md5[1]; (a) le texte utilisé est la version libre de "20.000 lieues sous les mers" du projet Gutenberg[2]; (b) la version modifiée est le même fichier texte, le 10ème caractère de la 1000ième ligne ayant été remplacé par le caractère "*"

Principe général

Exemple pédagogique du principe des fonctions de hachage appliqué à des images: on considère ici une fonction de hachage consistant à convertir une image haute résolution en une empreinte très basse résolution. L'empreinte est beaucoup plus légère en mémoire. Elle perd une grande partie de l'information mais elle reste suffisante pour distinguer rapidement deux images.

Une fonction de hachage est typiquement une fonction qui, pour un ensemble de très grande taille (théoriquement infini) et de nature très diversifiée, va renvoyer des résultats aux spécifications précises (en général des chaînes de caractère de taille limitée ou fixe) optimisées pour des applications particulières. Les chaînes permettent d'établir des relations (égalité, égalité probable, non-égalité, ordre...) entre les objets de départ sans accéder directement à ces derniers, en général soit pour des questions d'optimisation (la taille des objets de départ nuit aux performances), soit pour des questions de confidentialité.

En terme très concret, on peut voir une fonction de hachage (non cryptographique) comme un moyen de replier l'espace de données que l'on suppose potentiellement très grand et très peu rempli pour le faire entrer dans la mémoire de l'ordinateur. En revanche, une fonction de hachage cryptographique est ce que l'on appelle une fonction à sens unique, ce qui veut dire que le calcul de la fonction de hachage est facile et rapide tandis que le calcul de sa fonction inverse est infaisable par calcul et donc non calculable en pratique. Grâce à la valeur de hachage, on peut discriminer deux objets apparemment proches, ce qui peut être utilisé pour garantir l'intégrité des objets, autrement dit leur non modification par une erreur ou un acteur malveillant.

Other Languages
العربية: دالة تجزئة
български: Хеш-функция
català: Funció hash
Deutsch: Hashfunktion
English: Hash function
Esperanto: Haketfunkcio
español: Función hash
euskara: Hashing
Հայերեն: Հեշ ֆունկցիա
íslenska: Tætifall
italiano: Hash
қазақша: Араластыру
한국어: 해시 함수
lietuvių: Maišos funkcija
latviešu: Jaucējfunkcija
монгол: Хэш хүснэгт
Bahasa Melayu: Fungsi cincangan
Nederlands: Hashfunctie
português: Função hash
română: Funcție hash
srpskohrvatski / српскохрватски: Heš funkcija
Simple English: Hash function
slovenčina: Hašovacia funkcia
slovenščina: Zgoščevalna funkcija
српски / srpski: Heš funkcija
svenska: Hashfunktion
Türkçe: Hash fonksiyonu
українська: Хеш-функція
Tiếng Việt: Hàm băm
中文: 散列函數
Bân-lâm-gú: Lām-cha̍p koan-sò͘