Vous êtes sur la page 1sur 14

Université Hassan II-Mohammedia Ann. Univ.

2010-11

F.S.T. Mohammedia Filière Ingénieur ILIS


Département de Mathématiques Module : Cryptographie

PRELIMINAIRES MATHEMATIQUES

O. KHADIR, FSTM

La cryptographie moderne est basée sur des faits mathématiques bien établis qu’il est
indispensable de connaı̂tre. Nous avons choisi de rappeler quatorze notions très fréquentes
tout au long de ce module. On se référera aux livres de mathématiques de Deug et de
licence pour approfondir tel ou tel autre point particulier. On verra les points suivants:

1. Algorithme d’Euclide 8. Primalité


2. Algorithme étendu d’Euclide 9. Factorisatuion des entiers
Z
3. Congruences modulo n 10. Equations polynômiale dans
nZ
Z Z
4. L’anneau ( , + ,.) 11. Logarithme discret dans
nZ nZ
Z
5. La fonction d’Euler ϕ(n) 12. Racines primitives dans
nZ
6. Théorèmes de Fermat et d’Euler 13. Symboles de Legendre et de Jacobi
Z
7. Théorème chinois des restes 14. Racines carrées dans
nZ

1. Algorithme d’Euclide

Très utilisé en cryptographie, il sert au calcul du plus grand diviseur commun (pgcd)
entre deux entiers naturels a et b. Puisque pgcd(a,b) = pgcd(b,a), on peut supposer que
a ≥ b > 0 et que la division euclidienne de a par b est : a = bq + r où 0 ≤ r < b. L’algo-
rithme d’Euclide consiste à utiliser la relation de récurrence pgcd(a,b) = pgcd(b,r) jusqu’à
ce qu’on obtienne un reste r nul. Le dernier reste non nul est alors le pgcd de a et de b.
Exemple 1 : pgcd(120,80) = pgcd(80,40) = pgcd(40,0) = 40;
pgcd(810,100) = pgcd(100,10) = pgcd(10,0) = 10.
A retenir : Pour tout a,b,c ∈ N∗ , pgcd(a,0) = a et pgcd(c a,c b) = c pgcd(a,b)

1
Cryptographie Ann. Univ. 2010-11

L’algorithme d’Euclide est très rapide : contrairement à d’autres algorithmes en cryptogra-


phie, il ne pose aucun problème aux ordinateurs même si les nombres a et b sont composés
de plusieurs centaines de chiffres décimaux. On démontre que le nombre d’étapes exécutées
est toujours majoré par cinq fois le nombre de chiffres décimaux du plus petit des deux
nombres a et b (Théorème de Lamé, vers 1830).

Exemple 2 : Le pgcd(1234567890,1980) sera calculé en moins de 5 × 4 = 20 étapes.


Vérifions :
pgcd(1234567890,1980) = pgcd(1980,270) = pgcd(270,90) = pgcd(90,0) = 90.

Maple → igcd(a,b) (integer great commun divisor)

2. Algorithme étendu d’Euclide

Il permet de calculer des coefficients entiers u et v tels que au+bv = d où d est le pgcd des
deux entiers naturels a et b. En particulier lorsque les entiers naturels a et b sont premiers
entre eux.
Le reste de la division euclidienne de l’entier u par l’entier v est noté u mod v.
On commence par la liste (−,1,0,a,0,1,b,) et l’on poursuit, jusqu’à obtenir v3 = 0, avec les
affectations suivantes :
(q,u1 ,u2 ,u3 ,v1 ,v2 ,v3 ) ← (bu3 /v3 c,v1 ,v2 ,v3 ,u1 − qv1 ,u2 − qv2 ,u3 mod v3 )

Exemple 3 : Trouvons des entiers u et v tels que 110u + 21v = 1.


q u1 u 2 u3 v 1 v2 v3
− 1 0 110 0 1 21
5 0 1 21 1 -5 5
4 1 -5 5 -4 21 1
5 -4 21 1 - - 0
D’où u = −4, v = 21 et l’on vérifie que 121(−4) + 21(21) = 1

Exemple 4 : Déterminons le pgcd d de 1140 et de 360 ainsi que les entier u et v tels que
1140u + 360v = d.
q u1 u2 u3 v1 v2 v3
− 1 0 1140 0 1 360
3 0 1 360 1 -3 60
6 1 -3 60 - - 0

2
Cryptographie Ann. Univ. 2010-11

D’où d = 60, u = −3, v = 60 et l’on vérifie que 1140(1) + 360(−3) = 60


La complexité de l’algorithme d’Euclide étendu est la même que celle du calcul du pgcd
puisque la dernière colonne du tableau calcule ce pgcd.
Application : On se sert de l’algorithme étendu d’Euclide dans l’application du théorème
Z
chinois des restes et dans le calcul des inverses dans l’anneaux ( , + ,.).
nZ

Exercice 1 : Supposons que pgcd(a,b) = d. Soient u0 , v0 ∈ Z tels que au0 + bv0 = d.


Montrer que les autres solutions (u,v) ∈ Z2 telles que au + bv = d sont u = u0 + kb et
v = v0 − ka, k ∈ Z.

Maple → igcdex(a,b,u,v) (integer great commun divisor extended)

3. Congruences modulo n

Soit n ∈ N∗ un entier positif fixé. On définit la relation R dans Z par :

∀ (a,b) ∈ Z2 a R b ⇔ ∃ k ∈ Z | a − b = k n

Autrement dit, a et b sont en relation si et seulement si leur différence est un multiple


de n.
On peut vérifier que R est une relation d’équivalence (réflexive, symétrique, transitive)
compatible avec l’addition, la soustraction et la multiplication.
On écrira a ≡ b [n] au lieu de a R b.

Règle 1 : ∀ (a,b,c,d) ∈ Z2 a ≡ b [n] et c ≡ d [n] ⇒ a + c ≡ b + d [n] et a c ≡ b d [n].


On peut montrer que a ≡ b [n] ⇔ a mod n = b mod n.

Règle 2 : a et b sont congrus modulo n si et seulement s’ils ont le même reste dans leurs
divisions par n.

Exemple 5 : 35 ≡ 0 [7], 48 ≡ −1 [7]. Si a est pair alors a ≡ 0 [2] sinon a ≡ 1 [2].

Maple → a mod b ou irem(a,b) (integer remainder).

3
Cryptographie Ann. Univ. 2010-11

Z
4. L’anneau ( , + ,.)
nZ

Soit n ∈ N∗ et a ∈ {0,1,2,3, . . . ,n − 1} . On désigne par a la classe des éléments congrus


Z
à a modulo n. La classe a est toujours infinie. On pose aussi = {0,1,2,3, . . . ,n − 1}.
nZ
Z
On définit deux lois de composition internes dans . L’addition par :
nZ
a + b = a + b et la multiplication par : a.b = a.b.
Z
( , + ,.) admet alors une structure d’anneau commutatif unitaire.
nZ

Exemple 6 : Supposons que n = 6. Nous avons 6 classes :


0 = {. . . , − 18, − 12, − 6,0,6,12,18, . . .}, 1 = {. . . , − 17, − 11, − 5,1,7,13,19, . . .}
2 = {. . . , − 16, − 10, − 4,2,8,14,20, . . .}, 3 = {. . . , − 15, − 9, − 3,3,9,15,21, . . .}
4 = {. . . , − 14, − 8, − 2,4,10,16,22, . . .}, 5 = {. . . , − 13, − 7, − 1,5,11,17, . . .}
Z
= {0,1,2,3,4,5}
6Z
Z
Voici les tables d’addition et de multiplication de l’anneau ( , + ,.) :
6Z

+ 0 1 2 3 4 5 . 0 1 2 3 4 5
0 0 1 2 3 4 5 0 0 0 0 0 0 0
1 1 2 3 4 5 0 1 0 1 2 3 4 5
2 2 3 4 5 0 1 2 0 2 4 0 2 4
3 3 4 5 0 1 2 3 0 3 0 3 0 3
4 4 5 0 1 2 3 4 0 4 2 0 4 2
5 5 0 1 2 3 4 5 0 5 4 3 2 1

Z
Il est à noter que l’ordre classique dans Z n’est plus respecté dans .
nZ

5. La fonction d’Euler ϕ(n)

Z
Elle donne le nombre des éléments inversibles de l’anneaux ( , + ,.). C’est aussi le
nZ
nombre des entiers i ∈ {1,2, . . . ,n − 1} tels que pgcd(i,n) = 1. On montre que :
1- ϕ(p) = p − 1 et ϕ(pα ) = pα − pα−1 = pα−1 (p − 1), pour tout nombre premier p et tout
entier naturel α.

4
Cryptographie Ann. Univ. 2010-11

r
Y
2- Si la décomposition en facteurs premiers de l’entier naturel n est n = pαi i , alors
i=1

r
Y
ϕ(n) = ϕ(pαi i )
i=1

Il n’y a pas d’algorithme efficace pour le calcul par ordinateur du nombre ϕ(n) dans un
temps raisonnable.

Z Z
Exemple 7 : Le nombre des éléments inversibles des anneaux ( , + ,.), ( , + ,.)
100 Z 40 Z
Z
et ( , + ,.) sont respectivement ϕ(100) = 40, ϕ(40) = 16 et ϕ(150) = 40.
150 Z
Z Z
Exercice 2 : Déterminer tous les éléments inversibles des anneaux ( , + ,.), ( , + ,.)
8Z 12 Z
Z
et ( , + ,.)
25 Z

Remarque : On utilise aussi la fonction d’Euler pour calculer le nombre de racines primi-
Z
tives (générateurs) de l’anneaux ( , + ,.), p premier. On verra que c’est ϕ(p − 1).
pZ

Maple → with(numtheory); phi(n);

6. Théorèmes de Fermat et d’Euler

• Le théorème de Fermat date du 17ème siècle. On peut le résumer comme suit :


Pour tout nombre premier p et tout entier a :
(1) ap ≡ a [p]
(2) Si a 6≡ 0 [p] alors ap−1 ≡ 1 [p]
On en déduit que si a 6≡ 0 [p] alors l’inverse de a vérifie a−1 ≡ ap−2 [p]
Comme application, on trouve le théorème de Fermat dans tous les logiciels qui possèdent
des commandes pour tester si un nombre est premier ou non (voir le point sur la primalité).
• Le théorème d’Euler date du 19ème siècle. C’est une généralisation du théorème de
Fermat. On peut le résumer comme suit :
Quels que soient les entiers naturels a et n premiers entre eux on a : aϕ(n) ≡ 1 [n].
On en déduit que si a et n sont premiers entre eux, alors a−1 ≡ aϕ(n)−1 [n]
Comme application, on trouve ce théorème partout en cryptographie.

5
Cryptographie Ann. Univ. 2010-11

7. Théorème chinois des restes

On se pose la question
 de trouver les entiers x ∈ Z qui vérifient les k ≥ 1 équations

 x ≡ a1 [n1 ]
 x ≡ a2

[n2 ]
modulaires : (S) .. où les ai sont des constantes dans Z et les ni sont des


 .
 x≡a [nk ]
k
entiers naturels non nuls premiers deux à deux.
k
Y N
Posons N = ni , Ni = . Puisque pgcd(ni ,Ni ) = 1, il existe un couple (ui ,vi ) ∈ Z
i=1
ni
tel que ui ni + vi Ni = 1. (On se sert de l’algorithme étendu d’Euclide pour le calcul de
(ui ,vi )). On pose aussi : Xi = vi Ni pour i = 1,2 . . . ,k.
Les chinois ont montré qu’il existe une seule solutions 0 ≤ x0 < N au système (S) :
Xk
x0 = ai Xi mod N et que les autres solutions sont toutes congrues à x0 modulo N :
i=1
x = x0 + t N où t ∈ Z.
La démonstration du théorème chinois des restes est basée sur l’isomorphisme canonique
Z Z
entre l’anneau et le produit cartésion des anneaux .
NZ ni Z

x ≡ 2 [6]
Exercice 3 : Résoudre le système suivant : (S)
x ≡ 3 [25]
On trouve que les solutions sont x = 128 + 150 t où t ∈ Z.

 x ≡ 1 [2]
Exercice 4 : Résoudre le système suivant : (S) x ≡ 2 [5]
x ≡ 3 [9]

On trouve que les solutions sont x = 57 + 90 t où t ∈ Z.

 x ≡ 5 [7]
Exercice 5 : Vérifier que le système suivant : (S) x ≡ 3 [11] admet comme solution
x ≡ 10 [13]

x = 894 + 1001 k, k ∈ Z.

Exercise 6 : How many soldiers are there in Han Xings army? If you let them parade in
rows of 3 soldiers, two soldiers will be left. If you let them parade in rows of 5, 3 will be
left, and in rows of 7, 2 will be left.

Remarque pratique : Pour résoudre un système modulaire de k équations, on peut com-

6
Cryptographie Ann. Univ. 2010-11

mencer par résoudre le système formé d’abord des deux premières équations. Ensuite on
s’occupe du système formé du résultat précédent et de la troisème équation. Après, on
s’occupe du système formé du résultat précédent et de la quatrième équation. Et ainsi de
suite. Bref, il suffit de retenir comment résoudre un système modulaire à deux équations.

8. Primalité

La question de savoir si un nombre entier est premier ou non a, de tous les temps, fasciné les
mathématiciens. Un entier naturel est premier s’il est ≥ 2 et s’il admet exactement deux di-
viseurs 1 et lui-même. Les premiers nombres premiers sont : 2,3,5,7,11,13,17,19,23,29,31,37...
Tous les nombres premiers sont impairs sauf 2. Un nombre qui n’est pas premier est dit
composé.
Soit n un nombre composé. Donc il admet deux diviseurs d1 ,d2 6∈ {1,n} tels que n = d1 d2 .

Ces deux diviseurs ne peuvent être tous les deux strictement supérieurs à n car sinon

on aurait d1 d2 > n. D’où : tout nombre composé admet au moins un diviseur ≤ n.
Combien de temps faudrait-il à un ordinateur pour savoir si un nombre n est premier ou

composé? Il suffit de tester si n admet un diviseur ≤ n. Si de plus n est impair, il suffit

de tester les diviseurs impairs, au nombre de n/2.
Supposons qu’on dispose d’un ordinateur qui effectue les divisions en 10−9 seconde (1
milliardième de seconde) et que notre nombre n admet 30 chiffres. Soit T le temps du test
de n. Comme 1029 ≤ n < 1030 , on a, au pire des cas :
√ √
T ' 10−9 n/2 ' 10−9 1029/2 /2 ' 105 10/2 ' 1.58 103 /36 ' 1.8 heures
Si n comportait 60 chiffres on aurait trouvé T ≥ plusieurs siècles !
On ne connaı̂t pas d’algorithme efficace et pratique pour tester la primalité d’un entier.
On se contente de tests qui permettent de conclure avec une certaine probabilité.

Exemple 8 : La plupart des logiciels utilisent une combinaison des 3 tests suivants :
T1 : Tester si n admet un diviseur premier ≤ 104 .
T2 : S’il y succès dans T1, vérifier le théorème de Fermat avec une base a = 2 ou avec
plusieurs bases.
T3 : S’il y succès dans T1 et dans T2, appliquer le test de Miller-Rabin (1976-1980).

7
Cryptographie Ann. Univ. 2010-11

Remarque : Rien qu’avec le test T1, on est sûr d’avoir une réponse exacte pour tous les
entiers testés n jusqu’à n = 108 .

Exercice 7 : Se renseigner sur le crible d’Eratostène.

Maple → isprime(n); nextprime(a); prevprime(a); ithprime(k);

9. Factorisation des entiers

On rappelle le théorème fondamental de l’arithmétique :

Théorème 1 : Tout entier naturel non nul n peut se décomposer sous la forme :
r
Y
(1) n = pαi i
i=1

où pi sont des nombres premiers et les αi sont des entiers naturels positifs.

Exemple 9 : 120 = 23 × 3 × 5 et 1100 = 22 × 52 × 11

Chercher les facteurs premiers pi est une opération pour laquelle on ne connaı̂t pas de
méthode efficace. Plusieurs cryptosystèmes sont basés sur ce constat. La primalité est
considérée comme une tâche plus abordable puisque existent les tests probabilistes.

Exercice 8 : Factoriser le nombre n = 121393.

Maple → if actor(n);

Z
10. Equation polynômiale modulaire dans l’anneau
nZ
Il s’agit des équations de la forme

P (x) ≡ 0 [n]

où n est un entier naturel composé de grande taille, ayant plus de cent chiffres, et P (x)
est un polynôme de degré d ∈ N, de la forme P (x) = ad xd + ad−1 xd−1 + . . . + a1 x + a0 .

8
Cryptographie Ann. Univ. 2010-11

Les ai étant des entiers naturels.


On ne connaı̂t pas de méthode pour résoudre de telles équations, même pour le degré 2.
Voir plus loin le cryptosystème de Rabin.

Z
Exercice 9 : Résoudre les deux équations x2 + x − 3 ≡ 0 et x2 + x − 2 ≡ 0 dans .
12 Z

Z
11. Logarithme discret dans l’anneau ( , + ,.)
nZ

Il s’agit d’équations de la forme :


(1) ax ≡ b [n]
Z
où a, b ∈ et x est un entier naturel. On ne connaı̂t pas de méthodes pour résoudre
nZ
efficacement ces équations sauf dans des cas très particuliers et même si n est premier.
Plusieurs cryptosystèmes parmi ceux qu’on verra sont basés sur cette question.
Si on était dans R, l’équation ax = b aurait eu comme solution x = ln b/ ln a. C’est pour
cette raison qu’on l’appelle équation du logarithme discret. Noter que dans N il est facile
de la résoudre : par exemple par la technique de la dichotomie.

Exercice 10 : a) Résoudre les deux équations suivantes : 2x = 3 [31] et 5x = 7 [31].


b) Résoudre dans N : 12x = 6624737266949237011120128.

Z
12. Racines primitives dans l’anneau ( , + ,.)
nZ

Un groupe est dit cyclique si on peut retrouver tous ses éléments à partir d’un seul appelé
racine primitive ou élément primitif ou générateur. Cet élément est donc très important
puisqu’il suffit de le retenir pour avoir tous les autres éléments du groupe. C’est une sorte
d’ADN de la structure.
Z
Le groupe additif ( ,+) est toujours cyclique dont un élément primitif ou générateur
nZ
Z ∗
est a = 1. Par contre le groupe multiplicatif (( ) ,.), n ∈ N, n’est jamais cyclique sauf
nZ
si n ∈ {2,4,p ,2 p } où p est un nombre premier ≥ 3 et r ∈ N∗ . En particulier on montre
r r

Z ∗
que le nombre des éléments primitifs de (( ) ,.), p premier, est donné à l’aide de la
pZ

9
Cryptographie Ann. Univ. 2010-11

fonction d’Euler par ϕ(p − 1).


Z ∗
Il n’y a pas de méthode rapide pour trouver les racines primitives de (( ) ,.). Cependant,
pZ
pour de petites valeurs de p, on a les deux théorèmes suivants :

Théorème 2 : L’élément a est une racine primitive si et seulement si a(p−1)/q 6≡ 1 pour tout
entier q premier divisant p − 1.

Théorème 3 : Si a0 est déjà une racine primitive alors a = ai0 est une racine primitive si
et seulement si pgcd(i,p − 1) = 1; i ∈ {1,2,3, . . . ,p − 1}.

Z ∗
Exemple 10 : Les racines primitives de (( ) ,.) sont : 3, 5, 6, 7, 10, 11, 12, 14. On vérifie
17 Z
que ϕ(17 − 1) = 8.

Pour les nombres premiers p inférieurs à 100, le tableau suivant donne les racines primitives
modulo p.

10
Cryptographie Ann. Univ. 2010-11

p ϕ(p − 1) Les racines primitives modulo p


2 1 1
3 1 2
5 2 2, 3
7 2 3, 5
11 4 2, 6, 7, 8
13 4 2, 6, 7, 11
17 8 3, 5, 6, 7, 10, 11, 12, 14
19 6 2, 3, 10, 13, 14, 15
23 10 5, 7, 10, 11, 14, 15, 17, 19, 20, 21
29 12 2, 3, 8, 10, 11, 14, 15, 18, 19, 21, 26, 27
31 8 3, 11, 12, 13, 17, 21, 22, 24
37 12 2, 5, 13, 15, 17, 18, 19, 20, 22, 24, 32, 35
41 16 6, 7, 11, 12, 13, 15, 17, 19, 22, 24, 26, 28, 29, 30, 34, 35
43 12 3, 5, 12, 18, 19, 20, 26, 28, 29, 30, 33, 34
47 22 5, 10, 11, 13, 15, 19, 20, 22, 23, 26, 29, 30, 31, 33, 35, 38, 39, 40, 41, 43, 44, 45
53 24 2,3,5,8,12,14, 18,19,20,21,22,26, 27,31,32,33,34,35, 39,41,45,48,50,51
59 28 2,6,8,10,11,13,14,18,23,24,30,31,32,33,34,37,38,39,40,42,43,44,47,50,52,54,55,56
61 16 2,6,7,10, 17,18,26,30, 31,35,43,44, 51,54,55,59
67 20 2,7,11,12,13,18,20,28,31,32,34,41,44,46,48,50,51,57,61,63
71 24 7,11,13,21,22,28, 31,33,35,42,44,47, 52,53,55,56,59,61, 62,63,65,67,68,69
73 24 5,11,13,14,15,20, 26,28,29,31,33,34, 39,40,42,44,45,47, 53,58,59,60,62,68
79 24 3,6,7,28,29,30,34,35,37,39,43,47,48,53,54,59,60,63,66,68,70,74,75,77
83 40 2,5,6,8,13,14,15,18,19,20,22,24,32,34,35,39,42,43,45,46,
47,50,52,53,54,55,56,57,58,60,62,66,67,71,72,73,74,76,79,80
89 40 3,6,7,13,14,15,19,23,24,26,27,28,29,30,31,33,35,38,41,43,46,48,51,54,56,58,59,60,
61,62,63,65,66,70,74,75,76,82,83,86
97 32 5,7,10,13,14,15,17,21,23,26,29,37,38,39,40,41,56,57,58,59,60,
68,71,74,76,80,82,83,84,87,90,92

D’après ce tableau on s’aperçoit que :


Il y a toujours une racine primitive a ≤ 5 modulo p pour tout nombre premier p ≤ 100
sauf pour p = 41 (a = 6) et p = 71 (α = 6). On a aussi les résultats suivants :
p ≤ 104 =⇒ a ≤ 31; p ≤ 105 =⇒ a ≤ 44;
p ≤ 5.105 =⇒ a ≤ 69; p ≤ 106 =⇒ a ≤ 73;

Exercice 11 : Montrer que, si p est premier, alors a est une racine primitive modulo p si
et seulement si (1/a) mod p est une racine primitive modulo p.

11
Cryptographie Ann. Univ. 2010-11

Maple → with(numtheory); primroot(p); donne la première racine primitive modulo p


et primroot(a,p); calcule la première racine primitive modulo p supérieure à a.

13. Symboles de Legendre et de Jacobi


Z
• Symbole de Legendre : Il sert à caractériser les éléments a de , p premier, qui sont
pZ
Z
des carrés, c’est-à-dire qui vérifient a = x2 [p] où x ∈ . On dira que a est un résidu
pZ
a a
quadratique modulo p. Le symbole de Legendre est noté ( ). Si p|a, alors on pose ( ) = 0,
p p
a a
sinon si a est un résidu quadratique modulo p, on pose ( ) = 1, sinon ( ) = −1. Donc, on
p p
a
a toujours : ( ) ∈ {−1,0,1}. Puisqu’on travaille modulo p, on peut aussi s’arranger pour
p
avoir a < p, en remplaçant a par a mod p.

Proposition 1 : Soient un nombre premier p > 2 et deux entiers a et b. On a :


1
1. ( ) = 1
p
a
2. ( ) ≡ a(p−1)/2 [p]
p
ab a b
3. ( ) = ( ) ( ) (Le symbole est multiplicatif lorsque p est fixé)
p p p
2 2
4. ( ) = (−1)(p −1)/8
p
Théorème 4 (Loi de réciprocité quadratique) : Soient deux nombres premiers p, q > 2.
On a :
p q
( ) = (−1)(p−1)(q−1)/4 ( )
q p
La proposition 1 et le théorème 4 sont suffisants pour le calcul du symbole de Legendre.

Exemple 11 :
2 Z
1- ( ) = (−1)6 = 1 =⇒ 2 est un résidu quadratique dans . En effet on 2 ≡ 32 ≡ 42 [7]
7 7Z
3 3 7 7 mod 3 1
2- ( ) = (−1) ( ) = −( ) = −( ) = −1 =⇒ 3 n’est pas un résidu quadratique
7 3 3 3
Z
dans .
7Z
3 11 11 mod 3 2
3- ( ) = (−1)20/4 ( ) = −( ) = −( ) = −(−1) = 1 =⇒ 3 est un résidu
11 3 3 3
Z 2 2
quadratique dans . En effet on 3 ≡ 5 ≡ 6 [11]
11 Z

12
Cryptographie Ann. Univ. 2010-11

Exercice 12 :
a) Vérifier que les deux nombres p = 6547 et q = 8731 sont premiers.
p
b) Montrer que ( ) = −1
q

• Symbole de Jacobi :
r
Y
Soient a ∈ Z et n = pαi i un entier naturel décomposé en facteurs premiers. Le symbole
i=1
a a a a
de Jacobi est par définition : [ ] = ( ) ( ) . . . ( ).
n p1 p2 pr
Il ne caractérise pas le fait que a est un résidu quadratique modulo n ou non, mais il vérifie
des propriétés semblables à celles du symbole de Legendre. Les deux symboles coincident
lorsque n est premier.

Proposition 2 : Soient a,b,n,m, ∈ N∗ . On a :


ab a b
1. [ ] = [ ] [ ] (Le symbole est multiplicatif pour le numérateur)
n n n
a a a
2. [ ] = [ ] [ ] (Le symbole est multiplicatif pour le dénominateur)
nm n m
a
3. Si pgcd(a,n) 6= 1 alors [ ] = 0.
n
Si n est trop grand pour être décomposé en facteurs premiers, on utilise les propriétés
suivantes pour le calcul du symbole de Jacobi.

Proposition 3 : Si n est impair, alors :


−1
1. [ ] = (−1)(n−1)/2
n
2 2
2. [ ] = (−1)(n −1)/8
n
Théorème 5 (Loi de réciprocité quadratique) : Soient deux entiers impairs n,m > 2. On a :
n m
[ ] = (−1)(n−1)(m−1)/4 [ ]
m n

Exemple 12 :
2 2 2 2
[ ]=[ ] = [ ] [ ] = (−1)1 (−1)3 = 1, et pourtant 2 n’est pas un résidu quadratique
15 3×5 3 5
Z
dans .
15 Z
Remarque :
a
1- Si a est un résidu modulo n alors [ ] = 1 mais la réciproque est fausse.
n

13
Cryptographie Ann. Univ. 2010-11

2- Savoir si a est un résidu modulo n pour n composé et de grande taille est considéré
comme un problème difficile équivalent à la factorisation des entiers.
3- Si a ≡ x2 [n] alors on a aussi a ≡ (−x)2 ≡ (n − x)2 [n]

Z
14. Racines carrées d’un élément de l’anneau ( , + ,.)
nZ

Z
On ne connaı̂t pas de méthode pour calculer les racines carrées d’un élément de ,
nZ
quand n est composé et de grande taille. Par contre une solution existe si n = p est un
nombre premier. Dans la suite on suppose que p est premier > 2.
Z
• Critère d’Euler : a ∈ est résidu quadratique ⇐⇒ a(p−1)/2 ≡ 1 [p]
pZ

• Comment calculer a ?
Supposons que a est résidu quadratique modulo p et posons a = b2 [p]. On remarque que
si on prend x ≡ a(p+1)/4 [p], on a :
x2 ≡ a(p+1)/2 ≡ b(p+1) ≡ bp .b ≡ b2 ≡ a [p], d’après le théorème de Fermat. Donc une racine
carrée de a est x ≡ a(p+1)/4 [p] et l’autre étant −x ou p − x.
Ne pas oublier que (p + 1)/4 doit être entier, c’est-à-dire que p ≡ −1 [4].

Exemple 13 : Le nombre 8 est-il résidu quadratique modulo 23?


Apliquons le critère d’Euler : On a (p − 1)/2 = 11 et l’on vérifie par l’exponentiation
rapide que 811 ≡ 1 [23]. D’où 8 admet des racines carrées. Calculons les.

(p + 1)/4 = 6 =⇒ x ≡ a6 ≡ 86 ≡ 13 [23]. On en conclut que 8 ≡ 13 [23] et l’autre racine

carrée est −x ≡ −13 ≡ 10 [23]. Finalement 8 ∈ {13,10} [23]

− − − − − − − − − − − − − − − − − − −−

14

Vous aimerez peut-être aussi