Une personne A cherche à recevoir des messages de manière sécurisée et une personne B cherche à lui en envoyer.
Les messages sont numérisés et transformés en une suite d'entiers. L'objectif est donc de transmettre des entiers sans que quiconque, autre que la personne A, puisse les décrypter.
Pour cela, la personne A choisit deux nombres premiers
p et
q puis calcule les produits
\mathrm{N}=pq et
n=(p-1)(q-1).
Elle choisit également un entier naturel
c premier avec
n. La personne A publie le couple
(\mathrm{N} ; c), appelé
clé publique, permettant à quiconque de lui envoyer un nombre crypté.
- Pour crypter un entier a compris entre 0 et \mathrm{N}-1, la personne B calcule le reste b dans la division euclidienne de a^c par \mathrm{N}. Le nombre crypté qu'elle envoie à la personne A est b.
- Pour décrypter le message, la personne A commence par calculer l'unique entier d compris entre 0 et n-1 tel que c d \equiv 1[n]. Il est alors possible de montrer que cet entier d vérifie b^{d} \equiv a[\mathrm{N}], ce qui permet donc à la personne A de retrouver le nombre a.
Question préliminaire :
Pourquoi la personne A est‑elle, en pratique, la seule capable de calculer l'entier d et de déchiffrer les messages ?