Pendant des milliers d’années, si vous vouliez envoyer un message secret, il y avait essentiellement une façon de le faire. Vous faites en sorte que le message en utilisant une règle spéciale, connu uniquement de vous et de votre public prévu. Cette règle a agi comme la clé d’un verrou. Si vous aviez la clé, vous pourriez décrocher le message; Sinon, vous devrez choisir la serrure. Certaines serrures sont si efficaces qu’elles ne peuvent jamais être choisies, même avec du temps et des ressources infinis. Mais même ces régimes souffrent du même talon d’Achille qui afflige tous ces systèmes de chiffrement: comment obtenir cette clé entre les bonnes mains, tout en le gardant hors des mauvais?
La solution contre-intuitive, connue sous le nom de cryptographie de clé publique, ne repose pas sur le gardée d’un secret clé, mais plutôt sur le rendre largement disponible. L’astuce consiste également à utiliser une deuxième clé que vous ne partagez jamais avec personne, même la personne avec laquelle vous communiquez. Ce n’est qu’en utilisant cette combinaison de deux clés – un public, un privé – que quelqu’un peut à la fois brouiller et décrocher un message.
Pour comprendre comment cela fonctionne, il est plus facile de penser aux «clés» non pas comme des objets qui s’intègrent dans une serrure, mais comme deux ingrédients complémentaires dans une encre invisible. Le premier ingrédient fait disparaître les messages et le second les fait réapparaître. Si un espion nommé Boris veut envoyer à son homologue Natasha un message secret, il écrit un message puis utilise le premier ingrédient pour le rendre invisible sur la page. (Cela lui est facile de faire: Natasha a publié une formule facile et bien connue pour la disparition de l’encre.) Lorsque Natasha reçoit le papier par la poste, elle applique le deuxième ingrédient qui fait réapparaître le message de Boris.
Dans ce schéma, n’importe qui peut rendre les messages invisibles, mais seul Natasha peut les rendre visibles à nouveau. Et parce qu’elle ne partage jamais la formule du deuxième ingrédient avec personne – pas même Boris – elle peut être sûre que le message n’a pas été déchiffré en cours de route. Lorsque Boris veut recevoir des messages secrets, il adopte simplement la même procédure: il publie une recette facile pour faire disparaître les messages (que Natasha ou quiconque peut utiliser), tout en gardant un autre pour lui-même qui les fait réapparaître.
Dans la cryptographie de la clé publique, les clés « publiques » et « privées » fonctionnent comme les premier et deuxième ingrédients de cette encre invisible spéciale: l’une crypte les messages, l’autre les décrypte. Mais au lieu d’utiliser des produits chimiques, la cryptographie par clé publique utilise des puzzles mathématiques appelés fonctions trapdoor. Ces fonctions sont faciles à calculer dans une direction et extrêmement difficiles à inverser. Mais ils contiennent également des «trappes», des informations qui, si elles sont connues, rendent les fonctions trivialement faciles à calculer dans les deux sens.
Une fonction de trappe courante consiste à multiplier deux grands nombres premiers, une opération facile à effectuer. Mais l’inversion – c’est-à-dire à commencer par le produit et à trouver chaque facteur principal – est impraticable. Pour faire une clé publique, commencez par deux grands nombres premiers. Ce sont vos trappes. Multipliez les deux nombres ensemble, puis effectuez des opérations mathématiques supplémentaires. Cette clé publique peut désormais chiffrer les messages. Pour les décrypter, vous aurez besoin de la clé privée correspondante, qui contient les facteurs premiers – les trappes nécessaires. Avec ces chiffres, il est facile de décrypter le message. Gardez ces deux facteurs premiers secrètes et le message restera secret.
Les fondements de la cryptographie par clé publique ont été découverts pour la première fois entre 1970 et 1974 par des mathématiciens britanniques travaillant pour le siège du Royaume-Uni Communications, la même agence gouvernementale qui a craqué le code nazi Enigma pendant la Seconde Guerre mondiale. Leur travail (qui est resté classé jusqu’en 1997) a été partagé avec l’Agence américaine de sécurité nationale, mais en raison de la capacité informatique limitée et coûteuse, aucun gouvernement n’a mis en œuvre le système. En 1976, les chercheurs américains Whitfield Diffie et Martin Hellman ont découvert le premier schéma de cryptographie clé public connu, influencé par le cryptographe Ralph Merkle. Un an plus tard, l’algorithme RSA, du nom de ses inventeurs Ron Rivest, Adi Shamir et Leonard Adleman, a établi une façon pratique d’utiliser la cryptographie clé de la clé. Il est toujours largement utilisé aujourd’hui, un élément de construction fondamental de l’Internet moderne, permettant tout, des achats aux e-mails Web.
Ce système à deux touches rend également les «signatures numériques» – preuve mathématique qu’un message a été généré par le titulaire d’une clé privée. Cela fonctionne parce que les clés privées peuvent également être utilisées pour crypter les messages, pas seulement les décrypter. Bien sûr, cela est inutile pour garder les messages secrètes: si vous avez utilisé votre clé privée pour brouiller un message, tout le monde pourrait simplement utiliser la clé publique correspondante pour la décrocher. Mais cela prouve que vous, et seulement vous, avez créé le message, car en tant que titulaire de la clé privée, vous n’auriez pas pu crypter le message. Les crypto-monnaies comme le bitcoin ne pourraient pas exister sans cette idée.
Si deux clés cryptographiques au lieu d’une est si efficace, pourquoi a-t-il fallu des millénaires à découvrir? Selon Russell Impagliazzo, un informaticien et théoricien de la cryptographie à l’Université de Californie à San Diego, le concept d’une fonction de trappe n’était tout simplement pas assez utile avant l’invention des ordinateurs.
« C’est une question de technologie », a-t-il déclaré. « Une personne au 19e siècle a pensé que le cryptage était entre des agents individuels avec des renseignements militaires sur le terrain – littéralement, dans un domaine avec des armes à feu. Donc, si votre premier pas est » choisissez deux nombres premiers à 100 chiffres pour se multiplier ensemble « , la bataille va être finie avant de faire cela. » Si vous réduisez le problème à quelque chose qu’un humain peut faire rapidement, il ne sera pas terriblement en sécurité.
Histoire originale réimprimée avec la permission de Magazine Quantaune publication éditoriale indépendante soutenue par le Simonsfoundation.