Académique Documents
Professionnel Documents
Culture Documents
2010-11
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
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
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 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
3. Congruences modulo n
∀ (a,b) ∈ Z2 a R b ⇔ ∃ k ∈ Z | a − b = k 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.
3
Cryptographie Ann. Univ. 2010-11
Z
4. L’anneau ( , + ,.)
nZ
+ 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
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
5
Cryptographie Ann. Univ. 2010-11
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.
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 .
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.
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.
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
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
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
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
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
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.
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].
− − − − − − − − − − − − − − − − − − −−
14