Courbes elliptiques : les maths dans ta poche

Voici l'équation y2 = x3 − x + 1. Si tu la traces, tu obtiens une ligne courbée — une courbe elliptique. Ça ressemble à quelque chose sorti d'un livre de maths auquel tu ne penses plus jamais. Mais c'est exactement ce genre de ligne qui se trouve dans la puce de ta carte d'identité, derrière le petit cadenas de ton navigateur, et sous Bitcoin. Dans ce chapitre, tu vas cliquer dessus et voir pourquoi.

Les mots dont tu as besoin

Courbe
Simplement une ligne courbée dans un graphique : tous les points (x, y) pour lesquels une équation est vraie. Une parabole est une courbe. Celle-ci est un peu plus intéressante.
Additionner des points
Voici l'idée bizarre. Sur cette courbe, tu peux « additionner » deux points et obtenir un troisième point sur la même courbe. Pas en additionnant les coordonnées, mais avec une règle de tracé : tire une ligne par les deux points, regarde où elle coupe la courbe une troisième fois, et reflète ce point par rapport à l'axe des x. Voilà : c'est P + Q.
Doubler
P + P. Tu n'as qu'un seul point, donc tu prends la tangente — la ligne qui touche la courbe en P exactement — et tu fais le même tour.
Arithmétique modulaire (modulo)
Calculer uniquement avec des nombres entiers de 0 jusqu'à une limite, en recommençant à 0 après cette limite. Tu connais ça du chapitre précédent. Ici, tu vois ce que ça fait à un graphique.

Clique sur la courbe

Tout se passe dans ton navigateur. Rien n'est envoyé au serveur.

  1. Clique quelque part sur la ligne. C'est P. Clique une deuxième fois pour Q. La démo trace la ligne, trouve le troisième point d'intersection, le reflète, et montre P + Q.
  2. Clique sur Effacer, choisis un point et appuie sur Doubler. Continue ensuite à cliquer sur Additionner P encore une fois : 3·P, 4·P, 5·P… Les points bondissent sur toute la courbe.
  3. Fais glisser a et b. La forme change — parfois la ligne se scinde en deux morceaux. Cherche la position où elle forme un pli : elle est inutilisable, et la démo dit pourquoi.
  4. Appuie sur Arithmétique modulaire (modulo 97). Même équation, seulement avec des nombres entiers. Regarde ce qu'il reste de la ligne. Choisis un point et additionne à nouveau.

Ce que tu viens de voir

Sur la ligne lisse, tu pouvais encore un peu « sentir » où tu te trouvais. Après trois additions, tu es à peu près là, après quatre, à peu près là. Mais dès que tu es passé à l'arithmétique modulaire, la ligne s'est effondrée en un nuage de points sans aucun motif. Et l'addition fonctionnait toujours — mêmes formules, mêmes règles — sauf que le résultat saute maintenant dans tous les sens sur le plan.

Maintenant, tout le secret. Suppose que je choisisse un point P et que je l'additionne à lui-même 1 000 000 de fois. Un ordinateur peut faire ça à toute vitesse — il existe une astuce qui ne demande qu'une trentaine d'étapes. Je te donne P et le point final. Peux-tu deviner que c'était 1 000 000 de fois ? Sur le nuage de points de 97, encore oui : tu essaies simplement tout. Mais la courbe dans ta carte d'identité a environ 2384 points. Ce nombre a 116 chiffres. Personne n'essaie tout, même pas un superordinateur, même pas en un milliard d'années.

C'est ça, la clé privée : le nombre de fois. La clé publique est le point final. Tout le monde peut voir le point final ; personne ne peut remonter en arrière. Exactement le cadenas ouvert du chapitre précédent — mais avec un graphique au lieu de nombres premiers.

Pourquoi des courbes et pas simplement RSA

RSA (nombres premiers)Courbes elliptiques
Aussi sûr avecune clé de 3072 bitsune clé de 256 bits
Ça faitun nombre de 925 chiffresun nombre de 78 chiffres
Tient sur une carte à puce ?tout justelargement
Inventé en19771985, par Neal Koblitz et Victor Miller, indépendamment l'un de l'autre

Des clés douze fois plus courtes pour la même sécurité. C'est pourquoi le monde bascule : les cartes d'identité belges les plus récentes utilisent une courbe (nommée P-384), les cartes plus anciennes utilisent encore RSA. Le petit cadenas de ton navigateur convient de la clé avec une courbe. Les adresses Bitcoin sont des points sur une courbe.

La règle pour a et b. En faisant glisser les curseurs, tu as vu que certaines positions donnent un pli ou une boucle. Mathématiquement : si 4a3 + 27b2 = 0, la courbe est « dégénérée » et l'addition ne fonctionne plus partout. Les cryptographes choisissent donc a et b avec soin — et ils les publient, pour que tout le monde puisse vérifier qu'aucune faiblesse secrète n'y est cachée. Cette méfiance est un métier en soi.

Voici les maths : un groupe

Ce que tu viens de faire — « additionner » des points avec une règle de tracé — a toutes les propriétés d'une addition ordinaire. C'est associatif : (P + Q) + R = P + (Q + R), même si tu ne le vois pas tout de suite. Il y a un « zéro » (le point à l'infini, que tu as rencontré quand la ligne devenait verticale). Chaque point a un opposé (son image miroir). Les mathématiciens appellent un tel ensemble muni d'une telle opération un groupe. C'est le premier chapitre de l'algèbre abstraite, la matière dans laquelle tu apprends que les nombres, les rotations d'un cube et les points sur une courbe jouent tous, au fond, au même jeu. C'est au programme de la première année de tout cursus universitaire en mathématiques — et c'est exactement ce jeu-là qui protège ta carte d'identité.