Hachage, qu’est-ce donc ? Découvrez ce qu’est une fonction de Hachage !

Il y a deux semaines, nous avons pu lire dans différents journaux que Google a démontré la faiblesse du protocole de hachage : SHA-1. Mais qu’est-ce que SHA-1 ? A quoi sert une fonction de hachage ? Nous tenterons de répondre à toutes ces questions au fil de cet article.

Cet article est une présentation générale du principe de fonctionnement des fonctions de hachage. Nous ne rentrerons pas dans les détails techniques de leurs fonctionnements.

 

Vous avez dit fonction de hachage ?

 

Les fonctions de hachage sont utilisées en informatique et en cryptographie. Une fonction de hachage est une fonction qui à partir d’une donnée fournie en entrée, calcule une empreinte servant à identifier rapidement la donnée initiale. Cette empreinte est de taille fixe et est différente selon la fonction utilisée et la donnée d’entrée. Ainsi différentes données donneront toutes des empreintes différentes. Une empreinte ne contient pas assez d’informations pour permettre la restitution du message originale, c’est pour cela que l’on parle de fonction à sens unique.

Pour résumer, une fonction de hachage permet de convertir un objet de taille arbitraire (texte, fichier, vidéo, …) en une chaine de taille fixe. Généralement cette taille s’étend sur 128, 160, 256 ou 512 bits.

hachage_principe

Principe d’une fonction de Hachage

Pourquoi hacher ?

 

L’un des buts d’une empreinte est de représenter des données de façon certaine tout en réduisant la taille utile qui sera réellement chiffrée. Cela permet d’éviter d’utiliser de grandes masses de données.

L’autre utilité de l’empreinte est d’assurer à un destinataire que le fichier qu’il reçoit de votre part est bien le vôtre et que celui-ci n’a pas été modifié entre temps. En effet, une modification à l’intérieur du document, même minime, provoque un changement de l’empreinte. L’utilisateur se rend compte immédiatement de la modification. Ainsi, vous rassurez le destinataire sur la provenance du fichier et sur son contenu.

 

Un exemple, pour mieux comprendre

 

Voici un exemple clair est simple pour faciliter la compréhension et comprendre dans un cas réel l’utilité d’une fonction de hachage.

Prenons une première personne, nous l’appellerons Alice. Alice souhaite télécharger le dernier logiciel de la société X. Ce logiciel est disponible gratuitement en ligne, le problème : de nombreux site propose le téléchargement de ce logiciel. Alice se rend donc sur le premier site et télécharge le logiciel. Alice va se renseigner sur le site officiel de la société X, sur son site, la société indique que le hash correspondant au logiciel est le suivant :

« 56ebd58645210e7a2a0f52fcf1a50f02e395c9dc »

Le téléchargement fini, avant d’exécuter sur son ordinateur le programme Alice calcule le hash du logiciel. Voici le résultat d’Alice :

« d414e327ff25088ae00e2a4137bdf80d35a69ea9 »

Alice, remarque facilement, qu’il n’y a aucune correspondance entre les deux chaînes de caractères. Le logiciel qu’Alice à télécharger ne correspond pas à celui proposé par la société X.

Conclusion : le logiciel proposé par le site a été modifié. Il faut donc faire attention, la modification peut être due à un ajout de fonctionnalité faîte par un utilisateur lambda pour améliorer le logiciel, mais elle peut être aussi due à la présence de virus ajouté dans le logiciel par exemple.

 

Les différentes fonctions de hachage :

 

  • MD5 (Message Digest 5), MD5 crée une empreinte sur 128 bits ? C’était un très bon algorithme mais il est aujourd’hui déconseillé de l’utilisé pour des informations sensibles. Son utilisation est de moins en moins sûr.

 

  • SHA-1 (Secure Hash Algorithm) : SHA-1 crée des empreintes de 160 bits ? Il est considéré plus fiable que MD5 mais comme nous le disions au début de cet article, Google a démontré qu’il était possible de produire des collisions. Il est donc en phase de dépréciation.

 

  • SHA-256/ SHA-512, beaucoup plus sûr mais encore moins rependus, ils créent respectivement des empreintes de 256 et 512 bits. Il est aujourd’hui fortement conseillé d’évoluer sur ces fonctions de hachage.

 

Comment calculer soit même un hash ?

 

Il existe différentes manières de calculer soi-même l’empreinte d’un objet afin de vérifier celle-ci avec l’empreinte officielle.

La première manière est d’écrire soi-même son propre algorithme, en se basant sur les différentes fonctions utilisées de nos jours sur Internet. Cette méthode vous demandera de bonnes connaissances en mathématiques et en informatique.

Une deuxième méthode est d’utilisé un logiciel qui vous calcul le hash d’un objet passé en paramètre.

Il est par exemple possible d’utiliser : HashTab (disponible sur Mac et Windows) ou encore File Checksum Utility. HashTab étant gratuit seulement pour une utilisation personnelle ainsi que pour les étudiants.

Une fois installer, pour utiliser HashTab, il suffit de faire un clic droit sur un fichier et de sélectionner l’option : « Hachages » et ensuite de choisir l’algorithme que vous souhaitez utiliser. Vous obtiendrez ensuite l’empreinte :

hachage_avec_hashtab_exemple

Exemple de Hash avec Hashtab

 

Ainsi cet article touche à sa fin, si vous souhaitez réagir, poser une questionnement, ou simplement laisser votre commentaire, n’hésitez pas, nous vous ferons une joie de vous répondre 😊

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.