Le coin du cryptologue : 1 – Le calcul d’empreinte

La cryptologie expliquée à mon voisin qui n'y connait rien mais qui voudrait savoir.
Comme dans tous mes articles "Le coin du cryptologue", un conseil pratique se trouve à la fin. Dans le cadre de cette lettre mensuelle de Forum ATENA, j’ouvre une nouvelle rubrique : « Le coin du cryptologue » dans laquelle j’explorerai chaque mois un point précis de la cryptologie ou de la cryptanalyse et de ses applications, avec une suite logique qui vous permettra de progresser. Devenez accros, même si vous n’avez aucune notion aujourd’hui de la science des messages cachés. Dans quelques mois, l’ensemble vous semblera limpide. Je commence ici par le principe du calcul d’empreinte, ou fonction dite « à sens unique », ou du moins très difficilement réversible. Allez, accrochez-vous, on se lance ! :

Les fonctions à sens unique sont à la base de la preuve d’intégrité d’un message, à la base de la signature électronique, à la base de la blockchain. C’est sur une blockchain que reposent les bitcoins et d’autres crypto monnaies, il en sera question dans quelques lettres.

L’idée est, à partir d’algorithmes (programmes mathématiques), de créer en partant d’un texte de longueur quelconque, une chaîne de caractères de longueur fixe qui caractérise le texte. Jusque-là, ça va ?

Prenons un exemple :

Si le texte « Adhérez à l’association Forum ATENA » donne, après passage par la fonction à sens unique, la chaîne de caractères de longueur fixe « f62eb0a3ed778c839fa8e13e6051ae57 », si l’on change ne serait-ce qu’un élément dans le texte initial, par exemple « Adhérez à l’association Forum ATHENA », le passage de ce dernier texte, par la même fonction à sens unique, donnera une chaîne de caractères toujours de la même longueur, mais complètement différente, par exemple « 222f47a2983a56556f2292b5e1e08c2d ». La chaîne de caractères est donc caractéristique du contenu du texte.

Quel que soit le nombre de caractères du texte, le passage par la fonction à sens unique donnera une chaîne de caractères toujours de la même longueur. Par exemple le texte « Adhérez à l’association Forum ATENA, car vous pourrez assister à la soirée networking le mercredi 11 mai 2016 à partir de 19h00, au Sénat, autour de Benjamin Loveluckauteur du livre "Réseaux, liberté et contrôle, une généalogie politique d'Internet"» après passage par la fonction à sens unique donnera la chaîne de caractères, toujours de longueur fixe : « c15ec61479957eebcd92dec2dec2d035 ».

Tout cela est finalement très simple.

Explicitons quelques mots de vocabulaire maintenant :

La fonction à sens unique s’appelle « une fonction de hachage ». Citons parmi les algorithmes les plus utilisés qui implémentent les fonctions de hachage, le MD5, le SHA1, le SHA2 (SHA256 ou SHA512), le SHA3 très moderne. Ne compliquons pas, ce sera approfondi plus tard.

La chaîne de caractères fixe s’appelle un « hash » en langage anglo saxon, une « empreinte » en français courant et un « condensat » en bon français, mais on laisse tomber ce dernier mot qui est moins connu. Nous parlerons donc dans ce qui suit d’empreinte.

Donc un texte de longueur quelconque donne, après passage par une fonction de hachage, une empreinte de longueur fixe qui caractérise le texte.

Pourquoi la fonction de hachage est-elle dite « fonction à sens unique » ? Parce qu’à partir de la chaîne de caractères de longueur fixe, il n’est pas possible, ou du moins il est très difficile, de retrouver le texte de longueur quelconque, et d’ailleurs ce n’est pas le but recherché. Une fonction de hachage n’est pas une fonction de chiffrement.

Mais alors quel est son but ???

J’y viens. L’un des buts est de prouver, par exemple, l’intégrité d’un texte.

Suivez-moi, c’est presque fini pour ce mois-ci : J’ai un texte, je calcule son empreinte par une fonction de hachage, mettons le SHA256. Je vous envoie mon texte et son empreinte.

Vous avez reçu mon texte et l’empreinte qui l’accompagne. Vous recalculez l’empreinte du texte reçu par la même fonction de hachage. Si l’empreinte recalculée est la même que l’empreinte reçue, il est prouvé que le texte que je vous ai envoyé, et que vous avez reçu avec son empreinte, n’a pas été modifié. Nous avons donc établi l’intégrité de ce texte.

Vous êtes d’accord ?

Et bien vous avez tort, nous n’avons rien prouvé du tout. Si quelqu’un intercepte mon message, le modifie, recalcule l’empreinte et vous envoie le tout, le message que vous recevrez sera différent du message que je vous aurai envoyé, bien que l’empreinte que vous aurez reçue avec le texte est la même que l’empreinte que vous aurez recalculée à partir du texte reçu. Donc l’intégrité du message n’est pas du tout prouvée. Ce qui est prouvé, c’est juste que le texte n’a pas été modifié depuis sa dernière modification avec recalcul de l'empreinte. Ce calcul a pu être fait par un pirate.

Mais alors, à quoi ça… ???

Attendez, pour vous expliquer le grand jeu de la signature électronique, qui sera la réponse, il faut que je vous explique d’abord le mécanisme du chiffrement à clé publique (dit encore asymétrique), mais ce sera pour une lettre d’un des mois prochains.

Le conseil crypto du mois :

Utilisez des mots de passe solides d'au moins 8 caractères, avec lettres minuscules (certaines accentuées), majuscules, chiffres et caractères spéciaux. Pourquoi ? Bien sûr, les mots de passe ne sont pas stockés sur votre disque, pour des raisons évidentes de sécurité, mais leurs empreintes le sont. Chaque fois que vous entrez votre mot de passe, son empreinte est calculée et comparée à l’empreinte stockée. L’empreinte stockée n’est pas un secret, elle sert à la comparaison entre une empreint recalculée et elle-même. Si les deux empreintes correspondent, vous avez accès à votre compte ou à votre ressource que votre mot de passe protège. Par force brute, en essayant toutes les combinaisons, si votre mot de passe est de six lettres minuscules, non accentuées, en essayant au plus 26x26x26x26x26x26 combinaisons possibles de mots de passe et en comparant leurs empreintes calculées aux empreintes stockées, avec un PC du commerce, on trouve la combinaison gagnante en 3 secondes. Avec un mot de passe de 8 caractères et conçu comme je vous l’ai dit au début du conseil, il faudra 3 mois. Si vous changez votre mot de passe de temps en temps, c’est plus sécurisé. Mais comment retenir de multiples mots de passe qui sont en plus de temps en temps à changer ? Mettez-les dans un « coffre-fort électronique » comme Keepass (logiciel libre et gratuit).

C’est tout pour ce mois-ci.

 

 

 

 

< Revenir à la newsletter

Auteur: 
Gérard Peliks - Président de l’atelier sécurité et VP de Forum ATENA - gerard.peliks (at) forumatena.org

Ajouter un commentaire

Full HTML

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Vous pouvez utiliser du code PHP. Vous devrez inclure les tags <?php ?>.
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Filtered HTML

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.