Académique Documents
Professionnel Documents
Culture Documents
Master 1 CYBERSECURITE
19 décembre 2022
Ce cours que l’on pourrait intituler "Mathématiques pour la cryptologie" porte sur les
fondaments algébriques essentiels à la poursuite d’études en cryptologie (cryptographie & cryp-
tanalyse). On y traite différents outils d’algèbre commutative : groupes, anneaux, corps, arith-
métique dans Z, anneaux de polynômes à coefficients dans un corps. On verra l’analogie entre
arithmétique dans Z et arithmétique dans les anneaux de polynômes à coefficients dans un corps.
On verra également comment certains problèmes mathématiques liés à ces concepts sont utilisés
dans certains protocoles cryptographiques.
2 Anneaux et Corps 26
2.1 Anneaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.1 Définition, Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.2 Morphismes d’anneaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.1.3 Idéal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.1.4 Anneau quotient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.1.5 Anneau Z/nZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2 Corps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3 Arithmétique dans Z 39
3.1 Divisibilité, Division euclidienne, PGCD, PPCM . . . . . . . . . . . . . . . . . . 39
3.2 Nombres premiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2.1 Définition, Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2.2 Premiers nombres premiers et Test de primalité . . . . . . . . . . . . . . . 48
3.2.3 Décomposition en produit de facteurs premiers . . . . . . . . . . . . . . . 50
3.3 Algorithme RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2
Chapitre 1
La notion de groupe mise sur pied par Evariste Galois (1811-1832) est l’une des principales
structures algébriques. Comme les autres structures, elle permet de formaliser les proporiétés de
certaines opérations sur les objets mathématiques et de classifier aussi divers objets (mathéma-
tiques). Les groupes sont très présents en cryptographie où leur compréhension est essentielle
pour comprendre le fonctionnement de certains protocoles.
1.1 Groupes
1.1.1 Définitions, Exemples classiques, Notations
Définitition 1
Exemple
0+0=1+1=0
0+1=1+0=1
ALors (F2 , +) est un groupe.
3
1.1. GROUPES CHAPITRE 1. THÉORIE DES GROUPES
Contre exemple
1. (N, +) n’est pas un groupe car 1 n’admet pas de syémtrique dans N par rapport
à l’addition.
2. (Mn (R), ×) n’est pas un groupe car il existe des matrices carrées d’odre n
n’ademttant pas de symétrique.
3. (R∗− , ×) n’est pas un groupe car si x, y ∈ R∗− alors xy ∈
/ R∗− .
Exercice 1
Correction
Pour être un groupe, (Z, ×) doit vérifier chacune des quatre conditions requises (Voir
définition). Donc, on fait les vérifictions une à une.
On sait que :
— pour tout m, n ∈ Z, on a : m × nZ ; donc, × est une opération interne à Z ;
— pour tout m, n, k ∈ Z, on a : m × (n × k) = (m × n) × k ; donc × est associative ;
— pour tout m ∈ Z, on a : m × 1 = 1 × m = m ; donc × admet 1 comme élément
nneutre ;
— il n’exsiste aucun n ∈ Z tel que 2n = 1 ; donc 2 n’admet pas de symétrique (c’est
le cas de tout entier différent de 1 et -1).
La dernière condition n’étant pas vérifiée, on déduit que (Z, ×) n’est pas un groupe.
En pratique, dès que l’on voit une condition non vérifiée, il n’est pas nécessaire de lister
celles qui sont satisfaites.
Remarque
(Z, +) est un groupe tandis que (Z, ×) ne l’est pas : un ensemble est un groupe ou
non en fonction de l’opération considérée. Cependant, s’il n’y a aucune ambiguité sur
l’opération, on peut dire G est un groupe en lieu et place de (G,?).
Proposition 1
x ? x̃ = e =⇒ ẍ ? (x ? x̃) = ẍ ? e
=⇒ (ẍ ? x) ? x̃ = ẍ
=⇒ e ? x̃ = ẍ
=⇒ x̃ = ẍ
Exemple
(Z, +), (R∗ , ×), (Mn (R), +) sont des groupes abéliens.
Contre exemple
Notations
Remarque
Dans toute la suite, sauf mention du contraire, les groupes considérés sont commutatifs.
Soit (G,?) et (G’,∗) deux groupes. Une appliation f : G −→ G’ est appelé homo-
morphisme si pour tout x, y ∈ G, on a : f (x?y) = f (x)∗f (y).
Exemple
L’application
f : (R, +) −→ (R∗+ , ×)
x 7−→ ex
f (x+y) = ex+y
= ex ×ey
= f (x)×f (y)
Proposition 2
x = x ? e =⇒ f (x) = f (x ? e)
= f (x) ∗ f (e)
=⇒ f (e) = e0
2.
x ? x̃ = e =⇒ f (x ? x̃) = f (e)
=⇒ f (x) ∗ f (x̃) = e0
...
=⇒ f (x̃) = f (x)
Im(f ) = {f (x), x ∈ G}
ker(f ) = {x ∈ G : f (x) = e0 }
Théorème 1
Exercice 2
Définitition 5
1.2 Sous-groupes
1.2.1 Définition, Caractérisation
Définitition 6 (Sous-groupe)
Soit (G,?) un groupe et H une partie non vide de G. On dit que H est un sous groupe
de G si :
1. pour tout x, y ∈ H, on a : x ? y ∈ H ;
2. pour tout x ∈ H, on a : x̃ ∈ H, où x̃ est le symétrique de x par rapport à ?.
Intuitivement, un sous-groupe H d’un groupe G n’est rien d’autre qu’un groupe avec la loi induite
par celle de G.
Remarque
Dans le cas d’un groupe additif (G,+), la définition précédente est équivalente à : Un
sous-ensemble non vide H de G est un sous-groupe de G si :
1. pour tout x, y ∈ H, on a : x + y ∈ H ;
2. pour tout x ∈ H, on a : −x ∈ H.
Dans le cas d’un groupe multiplicatif (G,×), la définition précédente est équivalente
à : Un sous-ensemble non vide H de G est un sous-groupe de G si :
1. pour tout x, y ∈ H, on a : xy ∈ H ;
2. pour tout x ∈ H, on a : x−1 ∈ H.
Exemple
Dans la pratique, on utilise plus le théorème suivant pour vérifier si un sous-ensemble donné d’un
groupe est un sous-groupe ou non.
Soit (G,?) un groupe et H une partie non vide de G. Alors H est un sous-groupe de
G si et seulement si pour tout x, y ∈H, on a : x ? ỹ ∈H, où ỹ est le symétrique de y
par rapport à ?.
Remarque
1. Dans le cas d’un groupe additif (G,+), la proposition précédente est équivalente
à : Un sous-ensemble non vide H de G est un sous-groupe de G si :
pour tout x, y ∈ H, on a : x − y ∈ H.
Dans le cas d’un groupe multiplicatif (G,×), la proposition précédente est équi-
valente à : Un sous-ensemble non vide H de G est un sous-groupe de G si :
2. pour tout x, y ∈ H, on a : xy −1 ∈ H.
Remarque
Définitition 7
Proposition 3
1.2.2 Sous-groupes de Z
Dans cette section, on étudie les sous-groupes du groupe additif Z.
Théorème 3 (Sous-groupes de Z)
Démonstration.
1. Soit n ∈ Z. Montrons que nZ est un sous-groupe de (Z, +).
nZ 6= ∅ car 0 = n × 0 ∈ nZ (i).
Soit x = kn, x0 = k 0 n ∈ nZ. Alors x − x0 = kn − k 0 n = (k − k 0 )n ∈ nZ (ii).
De (i) et (ii), on déduit que nZ est un sous-groupe de (Z, +).
2. Soit H un sous-groupe de (Z, +).
Si H = {0} alors H = 0Z s’écrit sous la forme recherchée.
Si H 6= {0} alors H contient au moins un élément strictement positif.
Notons n = min{h ∈ H, h > 0}.
n ∈ H ⇒ n + n + ... + n = kn ∈ H. Donc nZ ⊆ H (3i).
Soit h ∈ H. En faisant la division euclidienne de h par n, on a : h = kn + r, où 0 ≤ r < n.
Or H est un sous-groupe qui contient h et kn. Donc il contient r = h − kn.
Si r 6= 0 alors H contient un entier strictement positif plus petit que n ; ce qui est
impossible. Donc r = 0. Ainsi, h = kn ∈ nZ. Ceci implique que H ⊆ nZ (4i).
Les relations (3i) et (4i) impliquent H = nZ.
Exemple
2Z = {..., −6, −4, −2, 0, 2, 4, 6, ...}, −5Z = {..., −15, −10, −5, 0, 5, 10, 15, ...} sont des
sousgroupes de (Z, +).
Remarque
Proposition 5
Exercice 3
Exemple
Exercice 4
Correction
En résumé si (G,?) est un groupe et G l’ensemble des sous-groupes de (G,?) alors ∩ est une
opération interne à G tandis que ∪ ne l’est pas. Il en découle que tout sousensemble de de G
n’est pas nécessairement un sous-groupe de (G,?).
Ainsi, on définit la notion de sous-groupe engendré.
Théorème-Définition (Sous-groupe engendré)
Exemple
Proposition 6
Proposition 7
Soit Soit (G,?) un groupe fini et x ∈ G. Alors, l’ordre de x est le plus petit entier
naturel non nul n tel que :
1. xn = 1 si G est multiplicatif ;
2. nx = 0 si G est additif.
Démonstration. S
1. oit G un groupe multiplicatif fini et x ∈G d’ordre n.
Alors hxi = {xk , k ∈ Z} = {..., x−(n−1) , ...x−1 , 1, x, ..., xn−1 , ...}. Comme ord(x) = n,
alors l’écriture précédente de G comporte des redondances.
Montrons que pour tout 0 < p ≤ n − 1, on a : xp 6= 1.
Supposons qu’il existe 0 < p ≤ n − 1 tel que xp = 1.
xp = 1 =⇒ xp .x = xp+1 = x
=⇒ xp .x2 = xp+2 = x2
=⇒ xp .x3 = xp+3 = x3
.
.
.
=⇒ xp .xp−1 = xp−1
=⇒ xp .xp = xp = 1
Ainsi ord(x) ≤ p < n ; ce qui est absurde. Et donc pour tout 0 < p ≤ n − 1, on a : xp 6= 1.
De plus, s’il existe 1 < q < p ≤ n tel que xp = xq alors xp−q = 1. Or, on sait que
Exercice 5
Soit (G,?) un groupe fini d’odre 10. Justifier que (G,?) n’admet aucun sous-groupe
d’ordre 6.
Correction
Un groupe G est dit monogène s’il est engendré par un de ses éléments ; c’est à dire
s”il existe y ∈ G tel que tout x ∈ G s’exprime sous la forme :
1. x = y k , pour un k ∈ Z, si G est multiplicatif ;
2. x = ky, pour un k ∈ Z, si G est additif.
Dans ce cas, cet élément y est appelé générateur de G.
Exemple
1. Le groupe (Z, +) est monogène engendré par 1 car tout n ∈ Z s’écrit : n = n×1..
2. Le groupe (F2 , +) est monogène engendré par 1 car 0 = 1 + 1 = 2 × 1 et
1 = 1 + 1 + 1 = 3 × 1.
Contre exemple
Théorème 5
Exemple
Théorème 6
Théorème 7
Proposition 8
Soit n ≥ 2 un entier.
1. On appelle permutation de {1, 2, ..., n} une bijection de {1, 2, ..., n} dans lui-
même.
2. L’ensemble (Sn , ◦) des permutations de {1, 2, ..., n} muni de la composition des
applications est un groupe. Ce groupe est appelé groupe des permutations
ou groupe symétrique.
Notations
Décrire une permutation s de {1, 2, ..., n} consiste à donner l’image de chaque entier
1 ≤ i ≤ n. Cette description est généralement donnée sous la forme d’une matrice de
2 lignes et n colonnes. Dans la première ligne, on met dans l’ordre croissant les entiers
1, 2, ..., n, dans la deuxième, sous chaque entier 1 ≤ i ≤ n, on met son image s(i).
!
1 2 ··· n
s=
s(1) s(2) · · · s(n)
Exemple
On écrit : !
1 2 3 4 5 6
s=
2 5 3 1 6 4
2. Soit σ la permutation de S6 définie par :
σ(1) = 2
σ(2) = 3
σ(3) = 4
(1.2)
σ(4) = 5
σ(5) = 6
σ(6) = 1
On écrit : !
1 2 3 4 5 6
σ=
2 3 4 5 6 1
Remarque
Proposition 9
Exemple
Ainsi
1 2 3 4 5 6 !
1 2 3 4 5 6
2 6 4 3 5 1 =
s◦σ =
5 4 1 3 6 2
5 4 1 3 6 2
et
1 2 3 4 5 6 !
1 2 3 4 5 6
2 5 3 1 6 4 =
σ◦s=
6 5 4 2 1 3
6 5 4 2 1 3
Théorème 8
Exemple
Exemple
On donne !
1 2 3 4 5 6
s= ∈ S6
2 5 3 1 6 4
et !
1 2 3 4 5 6 7 8
σ= ∈ S8
1 8 3 5 2 6 7 4
s(3) = 3,
s(1) = 2, s2 (1) = s(2) = 5, s3 (1) = s(5) = 6, s4 (1) = s(6) = 4, s5 (1) = s(4) = 1
Donc s est un cycle. On note :
s= 1 2 5 6 4
Remarque
Pour déterminer l’inverse d’un cycle, il suffit de renverser les nombres : du denier au
premier (puis de réarranger si on le veut).
Par exemple
σ = 2 8 4 5 ⇐⇒ σ −1 = 5 4 8 2
= 2 5 4 8
Définitition 13
1. On appelle support d’un cycle l’ensemble des éléments non fixés par ce cycle.
2. Le cardinal du support est appelé longueur ou ordre.
3. Un cycle de longueur 2 est appelé transposition.
Il existe des permutations qui ne sont pas des cycles. C’est ce qu’on a dans l’exemple sui-
vant.
Exemple
!
1 2 3 4 5 6
La permutation σ = de S6 n’est pas un cycle car σ(1) = 2,
2 6 4 3 5 1
σ 2 (1) = σ(2) = 6, σ 3 (1) = σ(6) = 1. Ainsi, on est revenu au premier élément sans avoir
obtenu 4 et 3.
Proposition 11
Exemple
!
1 2 3 4 5 6
On donne σ = ∈ S6
2 6 4 3 5 1
Alors : σ(5) = 5
σ(1) = 2, σ 2 (1) = σ(2) = 6, σ 3 (1) = σ(6) = 1. On pose σ1 = 1 2 6
σ(3) = 4, σ 2 (3) = σ(4) = 3. On pose σ2 = 3 4
Alors σ = σ1 ◦ σ2 = σ2 ◦ σ1
1.4.4 Le groupe S3
Dans cette partie, on étudie en détail le groupe symétrique S3 .
g◦f id τ1 τ2 τ3 σ σ −1
id id τ1 τ2 τ3 σ σ −1
τ1 τ1 τ1 ◦ τ1 = id σ σ −1 τ2 τ3
τ2 τ2 σ −1 id σ τ3 τ2 ◦ σ −1 = τ1
τ3 τ3 σ τ3 ◦ τ2 = σ −1 id τ1 τ2
σ σ τ3 τ1 σ ◦ τ3 = τ2 σ −1 id
σ −1 σ −1 τ2 τ3 τ1 id σ
Exemple
Soit E un ensemble non vide et R est une relation binaire sur E. On dit que R est :
1. réflexive si pour tout x ∈ E on a : xRx ;
2. symétrique si pour tout (x, y) ∈ E 2 on a : xRy =⇒ yRx ;
3. transitive si pour tout (x, y, z) ∈ E 3 on a : xRy et yRz =⇒ xRz.
Soit E un ensemble non vide. On appelle relation d’équivalence sur E une relation
R binaire sur E qui est réflexive, symétrique et transitive.
Exemple
On définit sur R la relation R par xRy ⇐⇒ |x| = |y|. Alors R est une relation
d’équivalence sur R. En effet,
— pour tout x ∈ R, on a : xRx car |x| = |x| ;
— pour tout x, y ∈ R, si xRy alors yRx car |x| = |y| =⇒ |y| = |x| ;
— pour tout x, y, z ∈ R, si xRy et yRz alors xRz car si |x| = |y| et |y| = |z| alors
|x| = |z|.
Donc R est réflexive, symétrique et transitive.
x = {y ∈ E : xRy}
Exemple
Soit R la relation d’équivalence définie sur R par xRy ⇐⇒ |x| = |y|. Alors 2 = {2, −2},
√ √ √
3 = { 3, − 3}, 0 = {0}.
De façon générale, pour tout x ∈ R, x = {x, −x}
Proposition 12
Soit E un ensemble non vide et R une relation d’équivalence sur E. L’ensemble des
classes d’équivalence est appelé ensemble quotient. On note :
E/R = {x, x ∈ E}
Remarque
Il faut noter que dans l’ensemble quotient E/R = {x, x ∈ E}, chaque classe est repré-
sentée par un de ses éléments.
Exemple
Remarque
Il faut noter que le groupe quotient G/H l’élément neutre de G est le représentant des
éléments de H.
Exemple
On considère le groupe (D, +) des décimaux relatifs et son sous-groupe Z. Alors D/Z
est l’ensemble des parties décimales. En effet, tout décimal relatif x est la somme de sa
partie entière E(x) et de sa parie décimale d(x) qui est strictement comprise entre -1
et 1. Ainsi, ona :
x = E(x) + d(x)
= E(x) + d(x)
= 0 + d(x)
= d(x)
Pour tout n ∈ N,
Z/nZ = {0, 1, ..., n − 1}
m = nq + k
= nq + k
=0+k
=k
Or |k| ≤ n − 1 ⇐⇒ −(n − 1) ≤ k ≤ n − 1
Donc
Z/nZ = {−(n − 1), ..., −1, 0, 1, ..., n − 1}
−(n − 1) = n − (n − 1) = 1
−(n − 2) = n − (n − 2) = 2
.
.
.
−1 = n − 1
Il en résulte que :
Z/nZ = {0, 1, ..., n − 1}
Remarque
p = q ⇐⇒ p − q ∈ nZ
⇐⇒ p − q est un multiple de n
⇐⇒ ∃k ∈ Z : p − q = nk
⇐⇒ p = q + nk
4. Pour alléger, les pour tout entier k, on écrit k en lieu et place de k. Ainsi, on
écrit :
Z/nZ = {0, 1, ..., n − 1}
Exemple
1. Pour n = 6
Z/6Z = {0, 1, 2, 3, 4, 5}
3 + 5 = 8 = 2 mod (6)
4 + 2 = 6 = 0 mod (6)
1 + 4 = 5 = 5 mod (6)
2 − 5 = −3 = 3 mod (6)
3 × 5 = 15 = 3 mod (6)
3 × 4 = 12 = 0 mod (6)
2 × 2 = 4 = 4 mod (6)
2. Pour n = 2
Z/2Z = {0, 1}
Anneaux et Corps
2.1 Anneaux
2.1.1 Définition, Exemples
Définitition 19
Exemple
Définitition 20
Exemple
26
2.1. ANNEAUX CHAPITRE 2. ANNEAUX ET CORPS
Remarque
Dans toute la suite, sauf mention du contraire, les anneaux considérés sont commutatifs
et unitaires et pour tout x, y, on écrit xy en lieu et place de x × y.
Définitition 21
Exemple
Remarque
Pour tout anneau unitaire, l’unité est inversible et est égal à son propre inverse.
Proposition 13
Exemple
1. UZ = {−1, 1}
2. UR = R∗
Soit (A, +, ×) un anneau. S’il n’existe aucun n ∈ N∗ tel que n × 1 = 0, on dit que A
est de caractéristique 0. Sinon, le plus petit entier non nul vérifiant n × 1 = 0 est appelé
caractéristique de A. Dans les deux cas, le note par car(A).
Définitition 23 (Sous-anneau)
Exercice 6
Définitition 24
Exemple
Définitition 25
ab = 0 =⇒ a = 0, ou b = 0
Remarque
Un anneau non nul (A, +, ×) est intégre s’il n’admet aucun diviseur de 0 : le produit
de deux éléments non nuls est non nul.
Exemple
Définitition 26
Deux éléments x et y d’un anneau A sont dits associés s’il existe u ∈ UA tel que
x = uy.
Proposition 14
Définitition 27
Un anneau intégre (A, +, ×) est dit euclidien s’il existe une application
f : A − {0} −→ N
appelée stathme euclidien, telle que pour tout a, b ∈ A − {0}, il existe q, r ∈ A tels
que :
a = bq + r, avec r = 0 ou f (r) < f (b)
On dit alors qu’on a fait la division euclidienne de a par b. Les éléments q et r sont
alors appelés quotient et reste de cette division euclidienne.
Exemple
f : Z − {0} −→ N
x 7−→ |x|
Proposition 15
2.1.3 Idéal
Définitition 29
Exemple
1. 2Z est un idéal de Z.
(a) 2Z est un sous-groupe de (Z, +).
(b) Soit x ∈ 2Z et y ∈ Z.
x ∈ 2Z =⇒ ∃k ∈ Z : x = 2k
=⇒ xy = 2ky
=⇒ xy ∈ 2Z
Contre exemple
Z n’est pas un idéal de (R, +, ×) même si c’est un sous-groupe de (R, +). En effet,
3 3 3
2 ∈ Z, ∈ R mais 2 × = ∈ / Z.
4 4 2
Théorème 10
xy ∈ I =⇒ x ∈ I ou y ∈ I
Exercice 7
Correction
x, y impaires =⇒ ∃ k, k 0 ∈ Z : x = 2k + 1, y = 2k 0 + 1
=⇒ xy = (2k + 1)(2k 0 + 1) = 4kk 0 + 2k + 2k 0 + 1
= 2(2kk 0 + k + k 0 ) + 1
=⇒ xy est impaire
Par contraposée, si xy est paire alors x est paire ou y est paire. Autrement dit,
si xy ∈ 2Z alors x ∈ 2Z ou y ∈ 2Z. Donc 2Z est un idéal premier de (Z, +, ×).
2. On sit que 6Z est un idéal (Z, +, ×). 4 × 3 = 12 ∈ 6Z alors que 4 ∈
/ 6Z, 3 ∈
/ 6Z.
Donc 6Z n’est pas un idéal premier de (Z, +, ×).
Proposition 16
Un idéal propre I d’un anneau (A, +, ×) est maximal si les seuls idéaux le contenant
sont A et lui-même.
Exercice 8
Correction
I ideal de Z =⇒ ∃n ∈ N : I = nZ (i)
I ⊂ 2Z =⇒ 2 ∈ I = nZ (ii)
(i) et (ii) =⇒ ∃k ∈ Z : 2 = kn
=⇒ n|2
=⇒ n = 1 ou n = 2
=⇒ I = Z ou I = 2Z
I ideal de Z =⇒ ∃n ∈ N : I = nZ (i)
I ⊂ 6Z =⇒ 6 ∈ I = nZ (ii)
(i) et (ii) =⇒ ∃k ∈ Z : 6 = kn
=⇒ n|6
=⇒ n = 1, ou n = 2, ou n = 3, ou n = 6
=⇒ I = Z ou I = 2Z, ou I = 3Z, ou I = 6Z
Proposition 17
Théorème 11
Proposition 18
Soit I et J deux idéaux d’un anneau (A, +, ×). Alors les ensembles suivants :
1. I ∩ J
2. I + J = {x + y, x ∈ I, y ∈ J }
X
3. IJ = { xα yα , xα ∈ I, yα ∈ J }
α∈Γ
sont des idéaux.
De plus IJ ⊂ I ∩ J
Remarque
Théorème-Définition
Soit I un sous-ensemble d’un anneau (A, +, ×). L’intersection de tous les idéaux de A
contenant I est le plus petit idéal, au sens de l’inclusion contenant I. On l’appelle idéal
engendré par I. On le note hIi.
Un idéal I d’un anneau (A, +, ×) est dit de type fini s’il est engendré par un ensemble
fini {x1 , x2 , ..., xn } ⊂ A. Dans ce cas, I s’écrit :
I = hx1 , x2 , ..., xn i
= {x1 a1 + x2 a2 + ... + xn an , ai ∈ A}
Un idéal I est dit de principal s’il est engendré par un élément x. Dans ce cas, I
s’écrit :
I = hxi
= {xa, a ∈ A}
Exemple
Remarque
Autrement dit, l’idéal engendé par la réunion est la somme des idéaux principaux
engendré par les éléments.
Théorème 12
Un anneau (A, +, ×) est dit principal s’il est intégre et si tous ses idéaux sont princi-
paux.
Exemple
Théorème 13
Proposition 19
x+y =x+y
et
x×y =x×y
est un anneau commutatif appelé anneau quotient.
La classe d’équivalence x d’un élément x ∈ A est aussi notée x + I. Les opérations + et
× définies dans A/I sont respectivement appelées addition et multiplication modulo I
Théorème-Définition
π : A −→ A/I
x 7−→ x = x + I
Théorème 14
Proposition 20
Exemple
Définitition 35
ϕ :N −→ N
n 7−→ ϕ(n) = card(UZ/nZ )
Exemple
ϕ(9) = 6 et ϕ(5) = 4
Proposition 22
Proposition 23
Exemple
2.2 Corps
Définitition 36
Un corps est un anneau dans lequel tout élément non nul est inversible.
Exemple
Contre exemple
Proposition 24
Soit A un anneau intégre. A est un corps si et seulement si ses seuls idéaux sont A et
{0}.
Théorème 16
Définitition 37
Exemple
Théorème 17
Exemple
Les corps finis sont fréquemment utilisés en cryptographie. Donc comprendre leur construction
et les calculs qui s’y opérent est capital pour un étudiant en master de cybersécurité. Cela sera
traité dans le chapitre Anneaux de polynômes à coefficients dans un corps.
Arithmétique dans Z
L’arithmétique est une branche des mathématiques qui correspond à la science des nombres.
"L’arithmétique s’est au départ limitée à l’étude des propriétés des entiers naturels, des entiers
relatifs et des nombres rationnels (sous forme de fractions), et aux propriétés des opérations sur
ces nombres. Les opérations arithmétiques traditionnelles sont l’addition, la division, la multipli-
cation, et la soustraction. Cette discipline fut ensuite élargie par l’inclusion de l’étude d’autres
nombres comme les réels (sous forme de développement décimal illimité), ou même de concepts
plus avancés, comme l’exponentiation ou la racine carrée. Une arithmétique est une manière de
représenter formellement - autrement dit, « coder » - les nombres (sous la forme d’une liste de
chiffres, par exemple) ; et (grâce à cette représentation) définir les opérations de base : addition,
multiplication, etc." (Wikipedia)
Î Au fil du temps, beaucoup d’algorithmes de plus en plus sophistiqués ont été développés pour
réaliser certains calculs. Ces algorithmes sont implémentés dans certains logiciels mathématiques
tels que Maple, Mathematica, etc. Durant ce cours, on utilisera Maple et/ou Python pour faire
usage des fonctions prédéfinies mais aussi pour écrire de petits codes.
Soit a, b ∈ Z. On dit que b divise a et on note b|a s’il existe q ∈ Z tel que
a = bq
Exemple
39
3.1. DIVISIBILITÉ, DIVISION EUCLIDIENNE, PGCD,
CHAPITRE
PPCM
3. ARITHMÉTIQUE DANS Z
Proposition 25
Soit a, b, c ∈ Z. Alors :
1. a|0;
2. 1|a ;
3. Si a|1 alors a = ±1 ;
4. Si a|b et b|a alors a = ±b ;
5. Si a|b et b|c alors a|c ;
6. Si a|b et a|c alors a|b + c.
Démonstration. Soit a, b, c ∈ Z.
1. a|0 car 0 = a × 0
2. 1|a car a = 1 × a
3. a|1 et 1|a =⇒ a et1 sont associés. Donc, il existe u ∈ UZ = {1, −1} tel que a = u × 1.
D’où a = ±1
4. Même raisonnement qu’en 3).
5. a|b et b|c alors il existe q, q 0 ∈ Z tels que b = aq et c = bq 0 . Alors c = bq 0 = aqq 0 Donc a|c.
6. a|b et a|c alors il existe q, q 0 ∈ Z tels que b = aq et c = aq 0 . Alors b+c = aq+aq 0 = a(q+q 0 )
Donc a|b + c.
f : Z − {0} −→ N
x 7−→ |x|
Exemple
1. 151 = 4 × 37 + 3
2. 105 = 3 × 35
3. −75 = 7 × (−10) − 5
4. −80 = −7 × 11 − 3
Remarque
Définitition 40
Soit a et b deux entiers non tous nuls. Le plus grand entier qui divise à la fois a et b
est appelé plus grand commun diviseur de a et b. On le note P GCD(a, b).
Exemple
1. P GCD(60; 18) = 6
2. P GCD(1756; 1201) = 1
3. P GCD(22050; 175) = 175
On verra comment ces valeurs sont obtenues.
Remarque
Proposition 26
Exemple
1. P GCD(50; 10) = 10
2. P GCD(120; −20) = 20
Théorème 19
Ainsi, pour calculer P GCD(60; 18), on fait la division euclidienne de 60 par 18.
60 = 18 × 3 + 6. Donc P GCD(60; 18) = P GCD(18; 6). Or 18 = 3 × 6. Alors P GCD(18; 6) = 6
L’algorithme d’Euclide basé sur le théorme précédent résume et décrit le procédé utilisé dans le
calcul P GCD(60; 18). Il permet de calculer le P GCD de deux entiers par divisions euclidiennes
successives. Le PGCD des deux entiers considérés est le dernier reste non nul de cette série de
divisions.
a, b ∈ Z tel que |a| ≥ |b|. Pour calculer P GCD(a, b), on procéde comme suit :
X on fait la division euclidienne de a par b. On obtient a = bq1 + r1 . D’après le
théorème ... P GCD(a, b) = P GCD(b, r1 ). Si r1 = 0 alors P GCD(a, b) = b.
Sinon,
X b = r1 q2 + r2 =⇒ P GCD(a, b) = P GCD(r1 , r2 )
X r1 = r2 q3 + r3 =⇒ P GCD(a, b) = P GCD(r2 , r3 )
X ...
X rk−2 = rk−1 qk + rk =⇒ P GCD(a, b) = P GCD(rk−1 , rk−2 )
X rk−1 = rk qk+1 + 0 =⇒ P GCD(a, b) = P GCD(rk , 0) = rk
Exemple
1. P GCD(60; 18)
60 = 18 × 3 + 6
18 = 6 × 3 + 0
La fonction igcd de Maple calcule le P GCD de deux entiers fournis en entrée. Dans ce qui suit,
on propose une proédure Maple qui qui calcule le P GCD.
Algorithme 2 (Algorithme d’Euclide en Maple)
pgcd :=proc(a,b)
local x, y, r ;
x :=a ; y :=b ;
while y 6= 0 do
r :=rem(x,y) ;
x :=y ;
y :=r ;
od ;
x
end ;
Exemple
En remontant, on a :
45 = 180 − 135 × 1
= 180 − (495 − 180 × 2) × 1
= 180 + 2 × 180 − 495 × 1
= 180 × 3 + 495 × (−1)
= (5625 − 495 × 11) × 3 + 495 × (−1)
= 5625 × 3 − 495 × 33 + 495 × (−1)
= 5625 × 3 + 495 × (−34)
u = 3 et v = −34
2. P GCD(1756; 1201) = 1 =⇒ ∃ u, v ∈ Z : 1756u + 1201v = 1
Le calcul détaillé de P GCD(1756; 1201) par l’algorithme d’Euclide donne :
En remontant, ona :
1 = 91 − 9 × 10
= 91 − (555 − 91 × 6) × 10
= 91 + 91 × 60 − 555 × 10
= 91 × 61 + 555 × (−10)
= (1201 − 555 × 2) × 61 + 555 × (−10)
= 1201 × 61 − 555 × 122 + 555 × (−10)
= 1201 × 61 + 555 × (−132)
= 1201 × 61 + (1756 − 1201 × 1) × (−132)
= 1201 × 61 + 1756 × (−132) + 1201 × 132
= 1201 × 193 + 1756 × (−132)
u = −132 et v = 193
La fonction igcdex de Maple qui est une implémentation de l’algorithme d’Euclide étendu donne
les coefficents de Bezout en plus du P GCD.
Exercice 9
Ecrire une procédure Maple d’une part et un code Python d’autre part qui calcule le
P GCD et les coefficients de Bezout de deux entiers.
Définitition 41
Exemple
Proposition 27
Démonstration.
Théorème 21
Théorème 22
Si m et n sont deux entiers premiers entre eux alors mϕ(n) = 1 mod (n).
Théorème 23
Définitition 42 (PPCM)
Soit a, b ∈ Z. Le plus petit entier divisible à la fois par a et b est appelé plus petit
commun multiple de a et b. On le note P P CM (a, b).
Si a et b sont deux entiers non tous nuls. Alors P GCD(a, b) × P P CM (a, b) = |ab|.
Théorème 24
Un nombre premier est un entier p ≥ 2 dont les seuls diviseurs positifs sont 1 et p.
Exemple
Théorème 25
Exemple
On
√ vérifie si 89 et 189 sont des nombres premiers.
89 = 9, 433. On vérifie si 89 est divisible par un entier m ≤ 9. Il suffit de faire ce test
avec les nombres premiers p ≤ 9 ; c’est à dire : 2 ; 3 ; 5 et 7.
89 = 2 × 44 + 1
= 3 × 29 + 2
= 5 × 17 + 4
= 7 × 12 + 3
89
√ n’est divisible par aucun de ces nompbres. Donc il est premier.
189 = 13, 747. On vérifie si 189 est divisible par un premier p ≤ 13 Par calcul, on
obtient :
189 = 7 × 27
Remarque
Pour les grands nombres, la technique précédente s’avère encore inefficiente. En effet, il
faut d’abord déterminer les entiers premiers plus petits que la racine carrée du nombre
considéré ; cela demande encore de faire d’autres tests de primalité.
Maple dispose d’une fonction appelée isprime qui prend en entrée un entier et retourne
true s’il est premier et false sinon.
Exercice 10
Ecrire une procédure (récursive) en Maple et en Python qui permet de faire le test de
primalité.
Soit p un nombre premier. Alors xp = x mod p pour tout entier x premier avec p.
Soit n ≥ 2 un entier. Il existe des nombres premiers p1 < p2 < ... < pm et des entiers
a1 , a2 , ..., am tels que :
m = pa11 × pa22 × ... × pamm
Cette décomposition est unique à permutation près des facteurs.
Exemple
1. 6 = 2 × 3
2. 18 = 2 × 32
3. 121 = 112
4. 4023530875 = 53 × 72 × 134 × 23
Bien que tout entier n ≥ 2 se décompose en produit de facteurs premiers, factoriser un entier
est en général "difficile" à faire. Cette difficulté de la factorisation des nombres est à la base
du très populaire algorithme de chiffrement RSA. Un exemple qui illustre cette difficulté est
le challenge à 10000 dollars lancé par la compagnie RSA en 2002. La compagnie promet cette
somme à quiconque qui parviendrait à factoriser le nombre entier suivant :
Challenge RSA-576
1881988129206079638386972394616504398071635633794173827007
6335642298885971523466548531906060650474304531738801130339
6716199692321205734031879550656996221305168759307650257059.
Ce nombre à 176 chiffres est appelé "RSA-576" du fait qu’il posséde 576 binaires.
Algorithme 3 (RSA)
1. Génération des clés : Les clés sont constituées en tout de cinq nombres :
p, q, n, e et d.
— p et q sont deux grands nombres premiers distincts générés aléatoirement par
un algorithme probabiliste.
— n = pq
— e est un entier premier avec ϕ(n) = (p − 1)(q − 1).
— d est l’inverse de e modulo ϕ(n).
La clé pupblique est alors (n, e) et la clé privée, (n, d) mais p et q sont aussi
gardés secrets.
2. Chiffrement : Le chiffré d’un message M est C = Me mod n
3. Déchiffrement : Le chiffré reçu C est déchiffré en M = C d mod n
1. — On donne p = 5 et q = 13
— n = 5 × 7 = 65, ϕ(65) = ϕ(5) × ϕ(13) = 4 × 12 = 48
— e = 35 car P GCD(35, 48) = 1
— d = e−1 mod 48 = 11
2. Chiffrement : Un message M est un élément de Z/65Z = {0, 1, ..., 63, 64}.
On chiffre par exemple : M1 = 2, M2 = 10, M3 = 36, M4 = 61 et M5 = 48
M35
1 =2
35
mod 65 = 33 = C1
M35
2 = 10 35
mod 65 = 30 = C2
35 35
M3 = 36 mod 65 = 56 = C3
M35
4 = 61 35
mod 65 = 16 = C4
M35
5 = 48 35
mod 65 = 42 = C5
Dans la pratique, les entiers p et q sont très grands. Généralement, ils sont générés aléatoirement
par des algorithmes probabilistes. Dans ce qui suit, on donne une procédure Maple qui génére
des nombres premiers pour une taille t fixée.
PremiersTailleT :=proc(t)
local p ;
p :=nextprime(rand(2t ..2t+1 )()) ;
while p > 2t+1 do
p :=nextprime(rand(2t ..2t+1 )()) ;
end do ;
return p;
end proc :
Exemple
q = 1761352063357380945163051895153279288325596433388873451984779894315567365
98742821804948998048219140536936369671147032522955464528594302865711886978538
63212628129106306500157525006263959421779276612493231749583081282519164258949
007324553585390010557150219494791575052023889355018446077832312934504884833
L’algorithme précédent peut être étendu pour générer les clés d’un module RSA.
Algorithme 5
RSA_CLE := proc(t)
local p, q, n, phi_n, e, d ;
p := nextprime((rand(2t ..2t+1 ))()) ;
q := nextprime((rand(2t ..2t+1 ))()) ;
while p = q or p > 2t+1 or q > 2t+1 do
p := nextprime((rand(2t ..2t+1 ))()) ;
q := nextprime((rand(2t ..2t+1 ))()) ;
end do ;
n := p × q ;
phi_n := (p − 1) × (q − 1) ;
e := (rand(3..phi_n − 1))() ;
while igcd(e, phi_n) <> 1 do
e := (rand(3..phi_n − 1))() ;
end do ;
1
d := mod(phi_n) ;
e
return p, q, n, e, d ;
end proc :
RSA opérant dans un anneau du type Z/nZ, un message M à chiffrer doit être converti en
une liste d’entiers mi compris entre 0 et n − 1. Cela peut se faire avec le code ASCII qui fait
correspondre un entier à chacun des 256 caractères usuels.
En Maple, la commande convert("Chaîne de caractres",bytes) donne :
[67, 104, 97, 195, 174, 110, 101, 32, 100, 101, 32, 99, 97, 114, 97, 99, 116, 195, 168, 114, 101, 115]
en attribuant à chaque lettre son correspondant dans le code ASCII. Inversement, la commande
convert([67, 104, 97, 195, 174, 110, 101, 32, 100, 101, 32, 99, 97, 114, 97, 99, 116, 195, 168, 114,
101, 115],bytes) donne "Chaîne de caractres".
54