Fonction de hachage

On a besoin d'une fonction de hachage quand on veut faire entrer dans une table de taille relativement petite et fixe, un ensemble d'attributs d'éléments de tailles variables et non bornées. La fonction de hachage calcule donc pour chaque élément, un indice qui permettra de retrouver, dans la table, les attributs de l'élément en question. Autrement dit, une fonction de hachage est une fonction qui associe, à une donnée de taille non bornée (la donnée qu'il faut « hacher »), une donnée de taille fixe (l'indice calculé par « hachage », qui permettra l'accès aux attributs). Les valeurs renvoyées par une fonction de hachage sont appelées valeurs de hachage, codes de hachage, signatures ou simplement hachages. Les valeurs de hachage ainsi calculées deviennent les indices d'une table appelée table de hachage, où on retrouvera les attributs stockés pour les éléments « hachés ».

Des fonctions de hachage apparaissent dans des applications de stockage et d'indexation et permettent d'accéder rapidement aux attributs de données hétérogènes (de tailles variables et non bornées). De fait, l'accès aux attributs des données se fait en temps quasi-constant. Grâce au hachage, l'espace de stockage est à peine plus grand que l'espace requis pour les attributs des données, mis bout à bout, tout en proposant un accès très rapide. Ainsi, le hachage est un dispositif d'accès aux attributs des données, efficace en termes de calcul et d'espace.

Ce qui rend le hachage vraiment intéressant, ce sont ses excellentes propriétés statistiques. En effet, alors que son comportement dans le pire cas est mauvais, mais ne se manifeste qu'avec une probabilité extrêmement faible, voire négligeable, son comportement moyen est optimal.

Voici une liste de concepts avec lesquels les fonctions de hachage partagent des méthodes, mais avec lesquelles elles ne doivent pas être confondues ; ce sont les sommes de contrôle, les clés de contrôle, les empreintes numériques, la compression avec perte, les générateurs de nombres aléatoires, les codes correcteur et les chiffrements.


Developed by StudentB