|
La cryptographie à clé publique - Principe de fonctionnement
Dans les années 1970, la cryptographie n'est plus seulement l'apanage des militaires. Les banques, pour la sécurité de leurs transactions, sont devenues de grandes consommatrices de messages codés. Les chiffrements disponibles alors, comme le célèbre DES, sont sûres, eu égard aux possibilités d'attaque contemporaines. Le problème essentiel est alors la distribution des clés, ce secret que l'envoyeur et le destinataire doivent partager pour pouvoir respectivement chiffrer et déchiffrer. Les armées et les états ont recours aux valises diplomatiques pour ces échanges, mais ceci n'est pas accessible aux civils...
En 1976, Whitfield Diffie et Martin Hellman propose une nouvelle façon de chiffrer, qui contourne cet écueil. Commençons par expliquer leur procédé de façon imagée. Un ami doit vous faire parvenir un message très important par la poste, mais vous n'avez pas confiance en votre facteur que vous soupçonnez d'ouvrir vos lettres. Comment être sûr de recevoir ce message sans qu'il soit lu? Vous commencez par envoyer à votre ami un cadenas sans sa clé, mais en position ouverte. Celui-ci glisse alors le message dans une boite qu'il ferme à l'aide du cadenas, puis il vous envoie cette boite. Le facteur ne peut pas ouvrir cette boite, puisque vous qui possédez la clé pouvez le faire.
La cryptographie à clé publique repose exactement sur ce principe. On dispose d'une fonction P sur les entiers, qui possède un inverse S. On suppose qu'on peut fabriquer un tel couple (P,S), mais que connaissant uniquement P, il est impossible (ou au moins très difficile) de retrouver S.
- P est la clé publique, que vous pouvez révéler à quiconque. Si Louis veut vous envoyer un message, il vous transmet P(message).
- S est la clé secrète, elle reste en votre seul possession. Vous décodez le message en calculant S(P(message))=message.
- La connaissance de P par un tiers ne compormet pas la sécurité de l'envoi des messages codés, puisqu'elle ne permet pas de retrouver S. Il est possible de donner librement P, qui mérite bien son nom de clé publique.
Bien sûr, il reste une difficulté : comment trouver de telles fonctions P et S. Diffie et Hellman n'ont pas eux-même proposé de fonctions satisfaisantes, mais dès 1977, D.Rivest, A.Shamir et L.Adleman trouvent une solution possible, la meilleure et la plus utilisée à ce jour, la cryptographie RSA. Le RSA repose sur la dichotomie suivante :
- il est facile de fabriquer de grands nombres premiers p et q (pour fixer les idées, 100 chiffres).
- étant donné un nombre entier n=pq produit de 2 grands nombres premiers, il est très difficile de retrouver les facteurs p et q.
La donnée de n est la clé publique : elle suffit pour chiffrer. Pour décrypter, il faut connaitre p et q, qui constituent la clé privée.
Les algorithmes à clé publique (on parle aussi de chiffrement asymétrique) ont pourtant un grave défaut : ils sont lents, beaucoup plus lents que leurs homologues symétriques. Pour des applications où il faut échanger de nombreuses données, ils sont inutilisables en pratique. On a alors recours à des cryptosystèmes hybrides. On échange des clés pour un chiffrement symétrique grâce à la cryptographie à clé publique, ce qui permet de sécuriser la communication de la clé. On utilise ensuite un algorithme de chiffrement symétrique. Le célèbre PGP, notamment utilisé pour chiffrer le courrier électronique, fonctionne sur ce principe.
Et encore, dans la cryptographie expliquée...
|