Les algorithmes de Hachage : typologie, sécurité et fonctionnement

-
4
 m de lecture
-

Le hachage est un mécanisme de chiffrage essentiel, qui peut prendre n’importe quel document en entrée, et produire en sortie un hash (brouillage indéchiffrable) d’une taille précise. Avec un atout : il est impossible depuis ce hash de remonter à l’original. Mais si tel est le cas, quoi cela peut-il bien servir ?

De tous temps, la préoccupation a existé de pouvoir brouiller des informations, de les rendre secrètes et indéchiffrables. Le hashing (en français « hachage ») été développé à cette fin. Cette méthode de chiffrement est particulière: elle produit un brouillage des des informations précis et ultra complexe.

Ainsi, la phrase : « Je vais au marché », soumise à un hachage selon l’algorithme SHA-256 va produire un « hash » (code ) de 256 bits précis :

C14420DF69534899A564F138FB68E5FEC7C500DE24D0A0F3438F8544A33B1C74

En entrée du hachage, nous pourrons avoir une phrase telle que celle-ci, mais aussi un simple mot comme « CHAT », ou encore un document aussi vaste que l’Encyclopedia Britannica. A l’arrivée, nous aurons toujours un hash de 256 bits, immuable et unique.

Le point particulier, c’est qu’il sera impossible, à partir du hash d’un document de revenir à l’original. En d’autres termes, il ne sera pas envisageable de reconstituer la phrase « Je vais au marché », et encore moins l’Encyclopedia Britannica. Si tel est le cas, quel peut bien être l’intérêt du hachage ?

De l’intérêt du hachage

Le hachage fournit un niveau très élevé de protection de divers systèmes car il empêche un intrus de pirater des données essentielles. Voici quelques cas pratiques dans lesquels son usage est inestimable.

Mots de passe

Lorsque vous vous inscrivez sur un site Web, il vous est demandé de créer un mot de passe. Et bien, ce que le site en question va stocker n’est pas votre mot de passe lui-même mais un hash dudit mot de passe issu d’un algorithme tel que SHA-256 (et habituellement le site va même combiner ce hachage à une chaîne de caractères aléatoires appelée le « sel »). Bref, le site ne stocke pas votre mot de passe mais un hash qui rend impossible de remonter jusqu’à votre mot de passe (sauf si ledit sésame était ultra simple, du genre 123456). Lorsque vous vous connectez plus tard sur le site, le hachage est à nouveau calculé. S’il correspond au hachage stocké sur le site, vous pouvez y entrer.

Ainsi donc, un hacker qui déroberait cette base de données de hash serait dans l’incapacité de reconstituer les mots de passe correspondants !

Intégrité des informations

Assez souvent, vous devez télécharger d’énormes quantités de données. Comment savoir si vous avez bien reçu un duplicata parfait de l’original ? Tout simplement en calculant un hachage de chaque côté. Si les deux codes sont identiques, c’est la preuve que le fichier a été transmis tel quel.

Signature numérique

Dans des applications telles que la cryptomonnaie, le hachage aide à produire, depuis une clé privée secrète qui identifie le propriétaire d’un portefeuille, une clé publique unique qui peut circuler sur le réseau et grâce à laquelle des transactions peuvent être menées.

Indexation et recherche

Le hachage permet le calcul d’un emplacement précis pour le stockage de données. Cet emplacement sera toujours le  même et donc, à partir d’une table de hachage, il pourra être repéré instantanément.

Détection de doublons

Étant donné que l’algorithme de hachage produit toujours le même code d’une certaine taille, quelle que la soit la taille du fichier d’origine, la détection de doublons est facilitée.

Caractéristiques des algorithmes de hachage

Les algorithmes de hachage répondent à plusieurs caractéristiques précises :

Un algorithme strict

La suite d’opérations effectuées par l’algorithme est régie par des règles strictes. Celles-ci ne peuvent aucunement être modifiées.

Une valeur et une longueur finale uniques

Quel que soit le nombre de caractères du texte soumis en entrée, les données générées en sortie seront toujours les mêmes et auront une longueur prédéterminée.

Pas de collision possible

Idéalement, un bon algorithme de hachage ne doit pas permettre à deux documents différents de produire le même hash. Si cela se produit, on parle de « collision ».

Illisibilité

Une fois les données converties par l’algorithme de hachage, il est virtuellement impossible de reconstituer les données d’origine.

Quels sont les principaux algorithmes de hachage ?

MD-5

Conçu en 1991 par  RSA Data Security, MD-5 a longtemps été mis à contribution pour sécuriser des données car il avait l’avantage d’être extrêmement rapide. Toutefois, la montée en puissance des processeurs a aidé à repérer certaines faiblesses. Dès 2008, des chercheurs ont montré qu’il était possible  à partir de cet algorithme, de créer des collisions et donc à partir de là, de fausses certifications SSL. Par ailleurs, étant donné qu’un hachage produit toujours le même résultat exact, des dictionnaires de hash MD-5 sont même apparus. De ce fait, les experts du domaine sont enclins à penser qu’il est préférable de l’abandonner.

SHA

SHA est l’abréviation de secure hash algorithm. Ces algorithmes figurent parmi les plus utilisés de façon courante.

SHA 1 est apparu en 1993. Il produit un hash de 160 bits. Pourtant, à partir de 2005, quelques vulnérabilités ont été découvertes.

SHA-2 est plus résistant et peut produire des codes de différentes tailles précises. Il est largement utilisé par de nombreuses applications sécurisées, et à ce jour, aucune attaque réussie n’a pu être menée  à son égard.

SHA-256 produit un code de 256 bits. C’est l’algorithme qui a été adopté dans de nombreuses applications impliquant des blockchains. C’est aussi SHA-256 que l’on trouve à la base de SSL, la norme qui sécurise les accès aux sites Web sécurisés (ceux dont l’adresse commence par https://)

SHA-3 est le petit dernier de la famille. Standardisé en 2015, il offre un niveau de protection supérieur grâce à des mécanismes de brouillage très avancés.

RIPEMD-160

Cet algorithme développé en Belgique vers le milieu des années 90 produit un code de 160 bits, particulièrement efficace face aux attaques. À ce jour, personne ne serait parvenu à le craquer. De ce fait, il est prisé par certaines applications telles que les transactions en Bitcoin.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?