Passer au contenu principal
ArithmétiqueNotion · Glossaire

code RSA

RSA est un algorithme cryptographique asymétrique fondé sur l’arithmétique modulo le produit de deux grands nombres premiers. Une clé publique est diffusée et une clé privée reste secrète : selon l’usage, elles permettent de chiffrer et déchiffrer, ou de signer et vérifier. Sa sécurité pratique suppose notamment que la factorisation du module reste hors de portée et que les clés, les messages et le schéma de remplissage respectent les conditions prévues.
Parcours numérique de l'exemple RSA Les nombres premiers 61 et 53 donnent le module 3233, utilisé par les clés publique et privée pour transformer 65 en 2790 puis retrouver 65. p = 61 q = 53 module n = 3233 clé publique (3233, 17) clé privée (3233, 2753) message 65 chiffré 2790 message retrouvé 65 exposant 17 exposant 2753
Le même module 3233 relie la clé publique, le chiffrement de 65 en 2790 et le retour exact avec la clé privée.
Sommaire

Ce que vous allez apprendre

  • Relier la paire de clés au produit de deux nombres premiers.
  • Suivre un chiffrement RSA numérique puis contrôler le déchiffrement.
  • Distinguer chiffrement, signature numérique et chiffrement symétrique.
  • Identifier les limites d'un exemple à petit module.

En clair

Imaginez une boîte aux lettres dont chacun peut refermer la trappe, mais dont seul le destinataire possède la clé d'ouverture. RSA transpose cette dissymétrie au calcul : une clé publique circule, tandis qu'une clé privée reste secrète.
Le verrou vient de deux grands nombres premiers. Les multiplier est direct ; retrouver ces facteurs à partir de leur produit est le problème difficile sur lequel repose la sécurité annoncée. Le même couple de clés intervient aussi dans la signature numérique, avec un rôle différent du chiffrement.

Définition

RSA est un algorithme asymétrique à clé publique, conçu en 1977 par Ron Rivest, Adi Shamir et Leonard Adleman au Massachusetts Institute of Technology. Il utilise deux clés mathématiquement liées. La clé publique peut être diffusée ; la clé privée doit rester secrète. Pour chiffrer, un message est d'abord représenté par un entier compatible avec le module choisi.
Deux nombres premiers distincts, notés p et q, donnent le module n. n=pqn=pq La clé publique contient ce module et un exposant public e. L'exposant privé d est choisi pour inverser l'action de e dans l'arithmétique modulaire appropriée. Pour un entier-message m, le chiffrement produit un entier c, puis le déchiffrement retrouve m : cme(modn)c\equiv m^e\pmod n et mcd(modn)m\equiv c^d\pmod n.
La difficulté de retrouver les deux facteurs premiers à partir d'un grand module fonde la sécurité décrite par la source : aucun algorithme efficace en temps polynomial n'est connu pour ce problème dans le cadre classique. RSA sert au chiffrement et à la signature numérique. Ces deux usages ne se réduisent pas à échanger mécaniquement les rôles « chiffrer » et « déchiffrer » : leur objectif et leurs opérations de contrôle diffèrent.

Un exemple, pas à pas

Voici un exemple volontairement minuscule, destiné au calcul et non à la sécurité. Les données sont les nombres premiers p = 61 et q = 53, l'exposant public e = 17 et l'entier-message m = 65.
1. Multipliez les deux nombres premiers pour obtenir le module n : n=pq=61×53=3233n=pq=61\times53=3233.
2. Calculez le nombre d'entiers inversibles utilisé ici : φ(n)=(p1)(q1)=60×52=3120\varphi(n)=(p-1)(q-1)=60\times52=3120. Le nombre 17 est premier avec 3120.
3. Choisissez l'exposant privé d comme inverse de 17 modulo 3120. La valeur d = 2753 convient, car 17×2753=46801=15×3120+117\times2753=46801=15\times3120+1.
4. Chiffrez l'entier-message 65 avec la clé publique formée de 3233 et 17 : c65172790(mod3233)c\equiv65^{17}\equiv2790\pmod{3233}. L'entier chiffré est donc c = 2790.
5. Déchiffrez 2790 avec l'exposant privé 2753 : 2790275365(mod3233)2790^{2753}\equiv65\pmod{3233}. Le contrôle est refaisable : le résultat final est exactement l'entier-message 65, compris entre 0 et 3232.

En pratique

Pour envoyer une information confidentielle, l'expéditeur utilise la clé publique du destinataire. Le destinataire conserve la clé privée nécessaire au déchiffrement. Le critère visible est le besoin de secret pendant le transport.
Pour une signature numérique, le but change : il s'agit de permettre un contrôle public lié au détenteur de la clé privée, et non de cacher le contenu. Le critère est donc l'authentification et l'intégrité recherchées plutôt que la confidentialité.
Dans les deux cas, la clé publique peut circuler, tandis que la clé privée ne doit pas être transmise. Si deux personnes doivent partager le même secret de calcul, on se trouve dans un cadre symétrique, différent du principe RSA.

À ne pas confondre

RSA et chiffrement symétrique. RSA emploie une paire de clés aux rôles distincts ; un chiffrement symétrique repose sur un secret partagé. Si l'émetteur et le destinataire utilisent le même secret, ce n'est pas le mécanisme asymétrique de RSA.
Chiffrement et signature numérique. Le chiffrement vise à rendre un message illisible sans la clé ou le secret de déchiffrement approprié. La signature vise à fournir un contrôle public lié au signataire. Un contenu que tout le monde peut lire mais dont l'origine doit être contrôlée relève de la signature, pas du chiffrement confidentiel.
Multiplication et factorisation. Construire le module à partir de deux facteurs premiers est une multiplication. Retrouver ces deux facteurs à partir du seul module est une factorisation. Dans l'exemple, 61 × 53 donne 3233 ; le problème inverse part de 3233.

Limites et pièges

Un petit module ne protège rien. Dans l'exemple, 3233 se factorise en 61 × 53 avec des moyens élémentaires. Le symptôme est précisément la petitesse des facteurs. Il faut lire ces valeurs comme une démonstration arithmétique, jamais comme des paramètres de sécurité.
Le message doit appartenir au domaine du calcul. L'entier-message est pris entre 0 et n − 1. Avec n = 3233, la valeur charnière 3233 n'est pas un nouveau représentant : elle vaut 0 modulo 3233. Il faut encoder le message dans le domaine prévu avant l'opération RSA.
La difficulté n'est pas une impossibilité démontrée. La source affirme qu'aucun algorithme efficace connu ne factorise en temps polynomial un grand produit de deux nombres premiers. Elle n'affirme pas qu'un tel algorithme ne pourra jamais exister. Il faut conserver cette formulation conditionnelle.
La clé privée ne « chiffre » pas simplement une signature. Cette formule rapide masque la différence d'objectif entre confidentialité et authentification. Il faut raisonner selon l'usage — chiffrer ou signer — et vérifier l'opération attendue, plutôt que permuter deux verbes.

Pour aller plus loin

Le glossaire nombre premier précise la nature des deux facteurs qui servent à construire le module RSA.
La fiche Factorisation approfondit l'opération inverse dont la difficulté soutient le principe de sécurité présenté ici.
La fiche chiffrement replace RSA dans le problème général qui consiste à rendre une information illisible sans l'accès prévu.
Continuez avec Tangente

Explorez les mathématiques autrement

Retrouvez nos magazines, podcasts et jeux pour explorer les mathématiques autrement.

Découvrir les offres