On va reprendre nos deux camarades, Alice et Bob. La situation est toujours la même, Bob veut envoyer un message chiffré à Alice. Il va donc récupérer sa clé publique. Dans l'annuaire, il voit :
Annuaire RSA
| Personne | Clé publique |
|---|
| ... |
(N, C) |
| Jean |
(N = 187, C = 3) |
| Alice |
(N= 5141, C = 7) |
| Lucie |
(N= 4183, C = 19) |
| ... |
(N, C) |
Il prend la clé publique d'Alice : (N = 5141, C = 7).
(J'ai volontairement repris la même clé que dans le chapitre précédent afin que vous sachiez les valeurs de P Q et tout ce qui s'ensuit)
Etape 1 : remplacement des caractères par leurs valeurs ASCII
Bob veut envoyer le message "Bonjour !" à Alice. On a vu précédemment, qu'on devait travailler avec des nombres. On se réfère à la table
ASCII, et on effectue le remplacement.
Etape 2 : Premier calcul, la puissance
Ensuite, on va élever chaque sous-message (nombre) à la
puissance C (7, dans notre cas)
On a alors :
Etape 3 : Deuxième et dernier calcul : le modulo
Le modulo, c'est quoi ?
Le modulo, c'est le reste de la division euclidienne d'un nombre entier par un autre.
Un exemple de modulo :

Et oui, car dans 16, on peut placer 5 fois 3 (ce qui donne 15

) et il reste 16 - 15 = 1.
Ainsi on note

.
Nous avons effectué notre premier calcul, nous allons maintenant faire le deuxième calcul, à partir des résultats que l'on a obtenu précédemment.
On va calculer le modulo du résultat obtenu précédemment par N (le N de la clé publique)
Il est important d'utiliser le programme de calcul à partir de ce moment, sans quoi vous ne pourrez pas trouver la valeur finale...
On obtient (grâce au programme) :
Pour calculer ces valeurs avec le programme de calcul il suffit de taper et de valider par "entrée" pour voir le résultat :
Code : Console
On a fini
Voilà, plus de calculs à faire. Ainsi avec la clé publique d'Alice (N = 5141, C = 7), le message "Bonjour !" devient "386 1858 2127 2809 1858 1774 737 3675 244"
A partir du moment où le message est chiffré, on ne peut plus le déchiffrer sans l'aide de la clé privée. Même Bob, qui est l'auteur du message, ne peut le déchiffrer (même si en théorie, il connait le message

)
Effectuer le chiffrage grâce à une seule et unique fonction
On peut facilement ramener les deux opérations précédentes en une seule et unique fonction.
La voici :

. Dans cette fonction "x" représente la valeur ASCII du caractère à chiffrer.
Cette fonction élève x à la puissance C et calcule le reste de la division euclidienne de x
C par N.
Ainsi on a :
On utilisera cette fonction dans le programme que l'on réalisera dans la partie pratique du tutoriel.