Encodage, Cryptage, Hashage, tout ça quoi !

La cryptographie informatique présente plusieurs notions. Afin d'appréhender les différentes techniques, nous allons essayer de comprendre un peu ce qu'est l'encodage, le cryptage et le hashage.

Encodage et décodage informatique


L’encodage et le décodage ne sont qu’une question de représentation des données sous un format binaire capable d’être sauvegardé sur un support de stockage informatique. On dit encodage lorsqu'on traduit une donnée compréhensible par l’homme (un texte, une image par exemple) en une donnée de format numérique et le terme décoder pour l'opération inverse. Lorsqu’il s’agit des données de même nature, il est donc possible de choisir une norme ou une autre afin de les sauvegarder. Chaque norme possède ses propres caractéristiques : par exemple, lorsqu’on parle d’une vidéo, il est possible de l’encoder selon différents formats : Divx, MPEG-2 ou AVI, les formats BITMAP ou JPEG sont des formats images, les formats UTF-8 ou Latin-1 sont des formats textes.

Le cryptage ou chiffrement :

Le cryptage consiste à rendre un message incompréhensible, et ce, en le faisant passer dans une sorte de moulinette qui fonctionne grâce à une clé qu’on appelle clé de cryptage ou clé de chiffrement. Cette moulinette se nomme « Algorithme de cryptage ou algorithme de chiffrement » et qui en sortie ressort un autre message totalement incohérent et incompréhensible.

Ce procédé est réversible et le seul prérequis est d’avoir la clé pour le déchiffrer. Ce procédé est utile lorsque deux individus veulent communiquer en privé et que seules les deux parties peuvent connaître le contenu du message. C’est en quelque sorte une version moderne et évoluée du message caché.

Par exemple, lorsque Alice veut envoyer un message à Bob, mais que Charlie risque de les entendre, alors Alice et Bob s’échangent leurs clés et à partir de ce moment, ils n’ont qu’as chiffrer leurs messages. Charlie ne pourra rien comprendre du machin qu’ils se transmettent puisqu'il ne possède pas la clé pour déchiffrer le message.

De manière générale, un algorithme de chiffrement doit respecter les conditions suivantes :

  • il faut qu’il soit impossible de décrypter les données sans la clé.
  • il faut que les données déchiffrées soient bien identiques à celles qui ont été cryptées.
  • les deux parties doivent utiliser les mêmes algorithmes de chiffrement.
  • les clés permettent de chiffrer et de déchiffrer les données.

Exemple de chiffrement avec l’algorithme RSA :

Message :

salut c'est Samir GLT

Clé public (512 bits):

MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALOX+aZ++Q8zxElQ5kXYea+XQJEu9KrCDg9Q4FMTzDmTJNQX+qZqNU/ykDlhskxi0rJa9hBIMXUXO9ebFfaoEkUCAwEAAQ==

Texte Crypté avec RSA - sortie: Base64

OKnumjPXTEi82/AM4GobPbCX3M6D4uO0uCKbHkrP7c3H49+VbODQEqq1kjbXlsYIW6y6qoMImC0xxvxzOz4Ngw==

Il faut savoir qu’il existe deux manières de faire du chiffrement :

  1. le chiffrement symétrique est un mode de chiffrement qui offre la possibilité de cryptage et de décryptage par une seule et unique clé. Cette dernière peut donc servir à faire tourner l’algorithme dans les deux sens. Bien que ce mode soit séduisant, car il y a moins de clés à se partager, elle présente plusieurs défauts et faiblesses au niveau sécuritaire.
    Par exemple comme Alice et Bob ont la même clé alors Bob peut facilement se faire passer pour Alice pour envoyer un message à Charlie. Je vous invite à vous approfondir [REF]
  2. Le chiffrement asymétrique consiste à séparer ce qui relève du privé, ce qu'Alice doit savoir pour qu’elle puisse décrypter un message, et ce qui est public, ce que Bob doit savoir pour chiffrer le message qu'il souhaite envoyer à Alice. De cette manière comme Bob a la clé publique d’Alice, il pourra chiffrer de nouveaux messages, mais comme il n’y a qu'Alice qui possède sa clé privée, Charlie ne sera plus en mesure de déchiffrer les messages que Bob envoie à Alice.

Nous parlerons prochainement des algorithmes de cryptage nettement du RSA ( Nommé par les initiales de ses trois inventeurs Ronald Rivest (2015), Adi Shamir (2013). Leonard Adleman (2010). ) et le principe des clés publiques et privées.

Le Hashage :

Le hashage présente d’autres caractéristiques qui peuvent servir dans d'autres domaines. Il consiste à faire passer un message dans une sorte de moulinette qui produit un autre message unique, généralement de longueur fixe peu importe la taille du message et qui sert d’une empreinte. Cette méthode n’est pas réversible et il n’y a aucune manière de revenir au message d’origine. Cette empreinte est utilisée pour vérifier la fiabilité du message (des données en général) et il existe plusieurs algorithmes de hashage (MD5, MD4, SHA256, SHA512, GOST, WHIRLPOOL etc.)

Par exemple, lorsque vous vous enregistrez sur un site web, il est tout à fait possible d’enregistrer votre mot de passe en clair dans la base de données du site web. Si mon nom d’utilisateur est samir et mon mot de passe est samirglt123 alors si jamais l’administrateur du site ou bien à hacker malveillant accède à la base de données, il peut facilement récupérer mon mot de passe et se faire passer pour moi-même afin de faire ce qu’il a en tête. Or, si on utilise un algorithme de hashage alors le mot de passe ne sera pas stocké dans la base de données telle quelle, mais ce sera son empreinte qui sera stocké ici en l’occurrence samirglt123 devient:

e4973ddfe60018737c3596e4d9375dccc7a5367159ff888919c0ad67ee4dd262 

sous l’algorithme de hashage: sha256 (256 bits) .

Aucune personne ne pourra plus récupérer mon mot de passe et à chaque connexion lorsque je saisis mon mot de passe, ce sera son empreinte qui sera envoyée vers le serveur et le serveur compare les empreint : si elles sont identiques alors le mot de passe est valide sinon le mot de passe n’est pas correct. Nous parlerons du hachage de manière approfondie lorsque nous parlerons d’internet et du transfère des données en matière de fiabilité.

152
5.0(0 votes)

Article précédentArticle suivant