Chiffrement asymétrique
Imagine un cadenas que tu poses ouvert sur une table. Tout le monde qui passe peut y glisser quelque chose et le refermer d'un clic. Mais l'ouvrir ? Ça, toi seul peux le faire, avec une clé que tu ne sors jamais de ta poche. Un tel cadenas n'existe pas en métal. En mathématiques, si — et ça a résolu en 1976 le problème auquel César était déjà confronté.
Les mots dont tu as besoin
- Paire de clés
- Deux clés qui vont mathématiquement ensemble et sont créées en même temps. Ce que l'une ferme, seule l'autre l'ouvre.
- Clé publique
- Le cadenas ouvert. Tout le monde peut l'avoir — tu peux tranquillement la mettre sur ton profil. Qui veut t'envoyer quelque chose de secret s'en sert pour chiffrer.
- Clé privée
- La clé dans ta poche. Elle reste chez toi, toujours. Elle seule rouvre le cadenas.
- Asymétrique
- Deux clés différentes pour fermer et ouvrir. Le contraire de symétrique, où c'est la même clé.
- RSA
- Le premier système capable de faire ça, datant de 1977, nommé d'après ses trois inventeurs Rivest, Shamir et Adleman. Il utilise des nombres premiers longs de plusieurs centaines de chiffres.
Le tour de magie avec de la peinture
Comment deux personnes qui ne se sont jamais vues peuvent-elles se mettre d'accord sur un secret, alors que tout le monde écoute ? Voici l'image avec laquelle les inventeurs, Whitfield Diffie et Martin Hellman, l'ont eux-mêmes expliqué :
- Toi et ton amie choisissez ensemble, à voix haute, une couleur : jaune. Tout le monde l'entend.
- Chacun de vous choisit en secret sa propre couleur. Toi, rouge ; elle, bleu. Vous ne le dites à personne.
- Chacun mélange sa couleur secrète avec le jaune, et envoie le mélange à l'autre. Tout le monde voit passer de l'orange et du vert.
- Toi, tu mélanges le vert que tu as reçu avec ton rouge. Elle mélange ton orange avec son bleu. Vous arrivez tous les deux à exactement la même couleur brune.
L'espion a vu du jaune, de l'orange et du vert. Mais démélanger de la peinture, c'est impossible — il ne peut pas en extraire votre rouge et votre bleu secrets. Vous avez un secret partagé, et personne d'autre ne l'a. Dans le monde réel, « mélanger de la peinture » est un calcul facile à faire en avant et impossible à refaire en arrière.
Comment ça inverse les rôles
| Symétrique (chapitre précédent) | Asymétrique (ce chapitre) | |
|---|---|---|
| Clés | une seule, et il faut la partager | deux, et l'une peut être vue par tout le monde |
| Se mettre d'accord au préalable | oui, via un canal sûr | rien |
| Vitesse | ultra-rapide | lent |
| Taille maximale du message ? | illimitée | toute petite — plus petite que la clé |
Essaie toi-même
La paire de clés est créée dans ton navigateur et disparaît dès que tu fermes cet onglet.
- Clique sur Crée une paire de clés. Tu vois ta clé publique — ce long bloc de texte, tu peux le donner à tout le monde. La privée reste invisible dans ton navigateur.
- Clique sur Chiffrer avec la clé publique. Le texte chiffré fait toujours exactement 256 octets, même si ton message est court.
- Clique sur Déchiffrer avec la clé privée. Ton message revient.
- Colle maintenant un texte long dans le champ du message — quelques paragraphes — et chiffre. Ça ne marche pas. Lis pourquoi.
Pourquoi tu t'es heurté à un mur
RSA avec une clé de 2048 bits ne peut chiffrer que 190 octets. Ce n'est pas un réglage qu'on peut augmenter : le message doit rester plus petit que le nombre avec lequel on calcule. Une clé plus grande n'aide presque pas et rend tout plus lent. Le chiffrement asymétrique n'est donc pas fait pour transporter des messages.
Pour quoi alors ? Pour deux choses que le symétrique ne peut pas faire : remettre une clé secrète en toute sécurité à quelqu'un que tu n'as jamais rencontré (le tour de la peinture), et signer. Ce deuxième point fait l'objet du chapitre sept. La façon dont les deux mondes collaborent, c'est le chapitre huit.
Mais d'abord, quelque chose de plus beau. RSA calcule avec des nombres premiers de 600 chiffres. Il existe une manière plus élégante d'obtenir le même résultat avec des nombres bien plus petits : calculer avec des points sur une ligne courbe. Elle se trouve dans ta carte d'identité, dans ton navigateur, et dans Bitcoin. Le chapitre suivant te fait cliquer dessus.
Voici les maths : les nombres premiers comme trappe à sens unique
13 × 17 = 221. Ça, tu le calcules de tête. Mais si on te donne 221 et la question « quels sont ces deux nombres premiers ? », il faut essayer : 3 ? 7 ? 11 ? 13 ! Avec des nombres de trois chiffres, c'est l'affaire d'une minute. Avec des nombres de 300 chiffres, aucun ordinateur au monde n'y arrive — alors que la multiplication, elle, se fait toujours en une fraction de seconde. Ce rapport déséquilibré entre l'aller et le retour s'appelle une fonction à trappe, et RSA est entièrement construit dessus. La théorie des nombres, cette matière qu'on a longtemps qualifiée d'« inutile mais belle », s'avère être la colonne vertébrale d'internet.