Maths●●●●●Difficulty 4 of 5

Comment RSA fait-il de deux nombres premiers un cadenas que tout le monde peut fermer, mais que toi seul peux ouvrir ?

Multiplie deux nombres premiers et publie le résultat : tout Internet peut verrouiller des messages pour toi, et seuls les deux nombres les déverrouillent.

▶ Lancer l'histoire

RSA fonctionne parce que certains calculs sont faciles dans un sens et terriblement durs dans l'autre. Ta clé privée est une paire de grands nombres premiers tirés au hasard et gardés secrets. Ta clé publique est construite à partir de leur produit. Multiplier deux nombres premiers ne prend aucun temps à un ordinateur, mais les retrouver à partir du produit, c'est le « problème de la factorisation », et la sécurité de RSA est liée à sa difficulté.

Le cadenas lui-même, c'est l'arithmétique de l'horloge. Sur une horloge de 12 heures, 8 heures après 7 heures, il est 3 heures, pas 15 : les nombres font le tour. RSA fait pareil avec une horloge géante de taille n, le produit des deux nombres premiers. Pour verrouiller un message, on le transforme en nombre et on l'élève à une puissance publique e, en ne gardant que le reste sur l'horloge. Pour le déverrouiller, on élève le résultat à une puissance secrète d, et le nombre de départ revient. Tout le monde peut faire la première étape. Sans d, la défaire est impraticable.

Un cadran d'horloge numéroté de 0 à 11, avec des flèches montrant qu'en comptant au-delà de 11 on revient à 0.
L'arithmétique de l'horloge : les nombres font le tour. RSA verrouille et déverrouille sur une horloge dont la taille est le produit de deux nombres premiers.Photo: Spindled, Wikipédia en anglais · CC BY-SA 3.0

Et d ne se calcule facilement que si l'on connaît les deux nombres premiers. Dans un exemple de manuel, les nombres 61 et 53 donnent n = 3233, la puissance publique vaut 17 et la secrète 413. Le message 65 se verrouille en 2790, et 2790 se déverrouille en 65. Avec des nombres aussi petits, n'importe qui pourrait factoriser 3233 et voler la clé. Les vraies clés utilisent des nombres de plusieurs centaines de chiffres : factoriser un nombre RSA de 250 chiffres a demandé, en 2020, environ 2 700 années de calcul processeur.

L'idée a été rendue publique en 1977 par Ron Rivest, Adi Shamir et Leonard Adleman, après une nuit blanche au cours de laquelle Rivest a rédigé une bonne partie de l'article avant l'aube. La garantie repose sur un pari : on ne connaît aucun moyen rapide de factoriser de grands nombres, mais personne n'a prouvé qu'il n'en existe pas.

RSA avec des nombres jouets
  1. Étape 1: Choisir deux nombres premiers

    61 et 53, gardés secrets.

  2. Étape 2: Les multiplier

    n = 3233 : la taille de l'horloge, rendue publique.

  3. Étape 3: Choisir les puissances

    e = 17 publique, d = 413 secrète, qui l'annule.

  4. Étape 4: Verrouiller

    65 puissance 17 sur l'horloge donne 2790.

  5. Étape 5: Déverrouiller

    2790 puissance 413 redonne 65.

Quiz

0/3

  1. 1.Pourquoi peut-on publier sans risque une clé publique RSA ?
  2. 2.Dans l'exemple jouet avec n = 3233, pourquoi élever 65 à la puissance 17, puis le résultat à la puissance 413, redonne-t-il 65 ?
  3. 3.Qu'est-ce qui pourrait casser RSA à l'avenir ?

Récap

Facile à multiplier, dur à factoriser : la clé publique, c'est le produit ; la clé privée, c'est connaître les nombres premiers.

Le fait surprenant · Factoriser un seul nombre RSA de 250 chiffres a demandé, en 2020, environ 2 700 années de calcul processeur.

Sources (5)

Pas de source, pas d'affirmation. Chacun des 29 faits de cette leçon renvoie à au moins une de ces sources.

  1. [1]RSA cryptosystem · Wikipedia
  2. [2]Modular arithmetic · Wikipedia
  3. [3]Fermat's little theorem · Wikipedia
  4. [4]RSA Factoring Challenge · Wikipedia
  5. [5]Integer factorization · Wikipedia
D'autres leçons · ➗ Maths (3) Toutes les leçons « Maths » →

Une lumière de plus sur ta carte.

Reçois une leçon comme celle-ci chaque jour, sur les sujets que tu aimes. Gratuit, en deux ou cinq minutes.

Récupère la carte à partager de cette leçon ↗