Chiffre de Rabin

Chapitre: XV. Cryptographie moderne Prérequis: Arithmétique modulo m,
algorithme d'Euclide étendu,
théorème des restes chinois

Le chiffre de Rabin offre une sécurité calculatoire équivalente au problème de la factorisation de n=pq. C'est un cryptosystème à clefs publiques.

Soit n le produit de deux nombres premiers distincts p et q tels que p et q soient congrus à 3 modulo 4 (nous verrons plus loin le pourquoi de cette condition). Soit le nombre B compris entre 0 et n-1. Le nombre chiffré y (compris entre 0 et n-1) s'obtient à partir du nombre clair x (compris entre 0 et n-1) par la formule:

Inversement, le nombre clair x s'obtient à partir du nombre chiffré y par la formule:

On notera que les opérations arithmétiques sont effectuées dans Zn, et que la division par 2 ou 4 est en fait la multiplication par 2-1 et 4-1 modulo n, respectivement.

Cette fonction de chiffrement n'est pas injective. Il existe en effet quatre nombres clairs qui peuvent se chiffrer en le même nombre chiffré. Le destinataire du message n'a aucun moyen pour distinguer le bon nombre parmi les quatre qu'il trouvera. On verra dans un exemple complet comment remédier à ce problème.

Exemple

Supposons que p = 7, q = 11 (clefs privées), n = pq = 77 et B = 9 (clefs publiques).
La formule de chiffrement est:
et la formule de déchiffrement est:

(en effet, d'après l'algorithme d'Euclide étendu, 4-1 mod 77 = 58 et 92·58 mod 77 = 1. De même, 2-1 mod 77 = 39 et 9·39 mod 77 = 43).

Calcul des quatre racines

Supposons que Bob (le destinataire) souhaite déchiffrer le message y = 22. Il faut donc trouver la racine carrée de 23 modulo 77, ce qui revient, comme le dit le théorème des restes chinois, au même que trouver la racine carrée de 23 modulo 7 et la racine carrée de 23 modulo 11. C'est ici qu'intervient le fait que p et q doivent être congrus à 3 modulo 4. En effet, dans ce cas, il existe une formule simple:

Si p mod 4 = 3, alors la solution de

C(1/2) mod p
est
±C(p+1)/4 mod p

On va donc calculer:

23(1/2) mod 7 = 23(7+1)/4 mod 7 = 232 mod 7 = (23 mod 7)2 mod 7 =22 mod 7 = 4
23(1/2) mod 11 = 23(11+1)/4 mod 11 = 233 mod 11 = (23 mod 11)3 mod 11 =13 mod 11 = 1

Il ne reste qu'à résoudre le système d'équations ci-dessous avec le théorème des restes chinois:

x mod 7 = 4
x mod 11 = 1
(*)
On calcule successivement:

M = 77, M1 = 11, M2 = 7,
y1 = 11-1 mod 7 = 2  et  y2 = 7-1 mod 11 = 8 (valeurs trouvées avec l'algorithme d'Euclide étendu)

donc x = 4·11·2 + 1·7·8 = 144 mod 77 = 67

67 est donc la première des 4 racines carrées de 23 modulo 77. Les trois autres racines carrées se trouvent en résolvant le système (*) avec respectivement a1 = -4 et a2 = 1, a1 = 4 et a2 = -1, et enfin a1 = -4 et a2 = -1. Vous pourrez vérifier en exercice qu'elles valent respectivement 45, 32 et 10.

Calcul des quatre nombres clairs

Finalement, les quatre nombres clairs possibles sont :

67 - 43 mod 77 = 24
45 - 43 mod 77 = 2
32 - 43 mod 77 = 66
10 - 43 mod 77 = 44

Vérifiez en exercice que ces quatre nombres se chiffrent en 22.

Vous trouverez sur la page suivant un exemple complet de chiffrement et déchiffrement.


Référence


Didier Müller, 1.11.01