Uploaded by talebbechir123

poly1

advertisement
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Arithmétique et Cryptographie
20 octobre 2022
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Modalités
8 CM : 20/10, 27/10, 10/11, 17/11, 24/11, 01/12, 8/12 (x2).
4 TD : semaines du 14/11, 21/11, 28/11, 05/12
1re épreuve écrite : 24/11 (30’), coeff 2.
2e épreuve écrite : 15/12 (1h30), coeff 3.
≪
projet
≫
et autres : coeff 1.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Contenu
1
Base d’arithmétique : divisibilité, Bézout, algorithme
d’Euclide, nombres premiers.
2
Arithmétique modulaire : anneaux Z/nZ, indicatrice d’Euler,
théorèmes de Fermat et d’Euler, exponentiation modulaire.
3
Théorème des restes chinois.
4
Cryptosystème à clé publique : RSA.
5
Echange de clé : Diffie-Hellman et ElGamal.
6
Cryptosystème à clé privée : AES.
7
Hashage cryptographique : SHA256.
8
Si on a le temps : cryptomonnaies ?
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Plan
1
Arithmétique des entiers
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
2
PGCD
3
Calcul pratique : algorithmes d’Euclide
4
Nombres premiers entre eux
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Divisibilité
Définition 1. Soient a et b deux entiers ; on dit que a divise b
(ou que b est un multiple de a), et on note a b, s’il existe un
entier k tel que ak = b.
Exemples.
2 divise 6 ; 0 divise 0 ;
1 divise tous les entiers ; tous les entiers divisent 0 ;
Pour tout entier n, n et −n divisent n ;
Si a
b et c
d, alors ac
Pour tout c 6= 0, ac
bd.
bc ssi a
b.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Divisibilité
Propriétés :
(Réflexivité) ∀n ∈ Z, n
n.
(Transitivité)∀a, b, c ∈ Z, si a
Antisymétrie : ∀a, b ∈ Z : si a
b et b
c alors a
b et b
a, alors a = b ?
Arithmétique et Cryptographie
c.
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Divisibilité
Propriétés :
(Réflexivité) ∀n ∈ Z, n
n.
(Transitivité)∀a, b, c ∈ Z, si a
b et b
Antisymétrie : ∀a, b ∈ Z : si a
b et b
c alors a
c.
a, alors a = b ?
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Divisibilité
Propriétés :
(Réflexivité) ∀n ∈ Z, n
n.
(Transitivité)∀a, b, c ∈ Z, si a
b et b
Antisymétrie : ∀a, b ∈ Z : si a
b et b
c alors a
c.
a, alors a = b ?
(Antisymétrie, sur N) ∀a, b ∈ N : si a b et b
a, alors a = b.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Divisibilité
Propriétés :
(Réflexivité) ∀n ∈ Z, n
n.
(Transitivité)∀a, b, c ∈ Z, si a
b et b
Antisymétrie : ∀a, b ∈ Z : si a
b et b
c alors a
c.
a, alors a = b ?
(Antisymétrie, sur N) ∀a, b ∈ N : si a b et b
a, alors a = b.
sur N, la divisibilité est un ordre
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Diagramme de Hasse de l’ordre de divisibilité
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Divisibilité
Autres propriétés :
1
si x
2
a et x
b, alors x
au + bv pour tous u, v .
L’ensemble des multiples d’un entier a est noté aZ :
aZ = {au | u ∈ Z}
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Nombres premiers
Définition 2. Un entier naturel est premier s’il admet
exactement 2 diviseurs.
P = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,
53, 59, 61, 67, 71, 73, 79, 83, 89, 97...}
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Nombres premiers
Propriétés :
Tout entier différent de 1 admet un facteur premier.
Plus précisément, tout nombre > 1 admet une unique
décomposition en facteurs premiers.
Exemples : 15 = 3 · 5, 16 = 24 , 17=17, 18 = 2 · 32
(Euclide) L’ensemble des nombres premiers est infini.
Beaucoup de problèmes importants encore ouverts
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Spirale d’Ulam
(Source : wikipédia)
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Quatre problèmes concernant P
1
Dresser la liste des premiers nombres premiers.
2
Décider si un entier n est premier.
3
Construire un grand nombre premier.
4
Déterminer un facteur d’un entier n non premier.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Principe du Crible
Soit p1 < p2 < p3 < . . . la liste ordonnée des nombres premiers.
Pour tout i , les multiples kpi de pi avec k > 2 ne sont pas
premiers.
Réciproquement, si un nombre n n’est pas premier, alors en
appelant pi son plus petit facteur premier, n s’écrit kpi pour
un certain k > pi .
Le premier entier supérieur à pi , et non multiple de p1 , p2 , . . .
pi , est pi +1 .
Exemple : Le premier nombre supérieur à 7 et non multiple de
2,3,5,7 est 11, qui est bien le premier suivant 7.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Crible d’Ératosthène
def crible(n) :
"Rend une liste L verifiant L[i]=True si i premier, False sinon."
L=[True]*(n+1)
L[0]=False
L[1]=False
p=2
while p*p<=n :
for m in range(p*p,n+1,p): #les multiples de p
L[m]=False
#sont non premiers
p+=1
#recherche du nombre
while not(L[p]) : p+=1
#premier suivant
return L
Une animation
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Déterminer si un entier est premier
C’est le problème de la primarité (ou primalité) ; il est facile.
Agrawal, Kayal et Saxena (2002) : algorithme polynomial
Algorithme naı̈f : Pour tester si n est premier, tenter de diviser n
√
par 2, 3, 4, 5, . . . , ⌊ n⌋. Alors n est premier ssi on n’a pas trouvé de
diviseur. Complexité ?
Algorithme plus efficace : l’algorithme ECPP (Elliptic Curve
Primality Proving) a permis de prouver en 2004 que
p = 44052638 + 26384405 (15 071 chiffres décimaux) est premier
Dans ce cours : on étudiera le test de Miller-Rabin.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Trouver un grand nombre premier
Algorithme :
1
Choisir au hasard un entier n
2
tester si n est premier ; si non, recommencer au point
précédent.
Problème : combien d’essais avant de tomber sur un nombre
premier ?
Théorème 3. (des nombres premiers) La probabilité pour qu’un
nombre n soit premier est de l’ordre de 1/ ln n, autrement dit
autour de n, un nombre sur ln n est premier.
Exemple pour des nombres premiers de l’ordre de 300 chiffres
décimaux (utilisés pour produire
une clé RSA de 2048 bits), il
300
faudra en moyenne ln 10
= 300 ln(10) ≈ 700 essais avant
d’obtenir un nombre premier.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Trouver un facteur d’un entier non-premier n
Problème très ancien, pas d’algorithme efficace connu.
Record actuel : problème RSA-250 :
2140324650240744961264423072839333563008614715144755017797754920881418023447
1401366433455190958046796109928518724709145876873962619215573630474547705208
0511905649310668769159001975940569345745223058932597669747168173806936489469
9871578494975937497937
=
6413528947707158027879019017057738908482501474294344720811685963202453234463
0238623598752668347708737661925585694639798853367
×
3337202759497815655622601060535511422794076034476755466678452098702384172921
0037080257448673296881877565718986258036932062711
Factorisation trouvée essentiellement par une équipe du INRIA de
Nancy en février 2020. 2700 année-cœur
RSA Challenge
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Division euclidienne
Théorème 4. Soit a ∈ Z et b ∈ N∗ . Il existe un unique couple
(q, r ) tel que a = b · q + r et 0 6 r < b.
L’écriture a = b · q + r est la division euclidienne de a par b ; q est
le quotient et r est le reste.
Exemple.
25 = 3 × 7 + 4 est la division euclidienne de 25 par 7, mais
pas de 25 par 3.
(division de n par n ou par 1) : n = n × 1 + 0
−2 par 5 : −2 = 5 × (−1) + 3
Reste : noté a mod b ou a%b.
b divise a ssi a%b = 0.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Divisibilité
Nombres premiers
Problèmes algorithmiques
Division euclidienne
Démonstration
Démonstration
Unicité : si a = bq1 + r1 = bq2 + r2 , alors
b(q1 − q2 ) = r2 − r1 ,
r2 − r1
q1 − q2 =
,
b
or r1 , r2 ∈ [0, b[ donc r2 − r1 ∈] − b; b[,
r2 − r1
donc q1 − q2 =
∈] − 1; 1[, or q1 − q2 ∈ Z,
b
donc q1 − q2 = 0, donc q1 = q2 , puis r1 = r2 .
Existence : cf TD 1
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
Plan
1
Arithmétique des entiers
2
PGCD
Introduction
Définition
3
Calcul pratique : algorithmes d’Euclide
4
Nombres premiers entre eux
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
PGCD : introduction
On considère les entiers de la forme 10u + 16v où u et v
parcourent Z.
Notation : {10u + 16v | u, v ∈ Z} = 10Z + 16Z.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
16Z + 10Z
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
52
36
20
4
-12
-28
-44
-60
-76
-92
-108
-124
-140
-156
-172
62
46
30
14
-2
-18
-34
-50
-66
-82
-98
-114
-130
-146
-162
72
56
40
24
8
-8
-24
-40
-56
-72
-88
-104
-120
-136
-152
82
66
50
34
18
2
-14
-30
-46
-62
-78
-94
-110
-126
-142
92
76
60
44
28
12
-4
-20
-36
-52
-68
-84
-100
-116
-132
102
86
70
54
38
22
6
-10
-26
-42
-58
-74
-90
-106
-122
112
96
80
64
48
32
16
0
-16
-32
-48
-64
-80
-96
-112
122
106
90
74
58
42
26
10
-6
-22
-38
-54
-70
-86
-102
132
116
100
84
68
52
36
20
4
-12
-28
-44
-60
-76
-92
142
126
110
94
78
62
46
30
14
-2
-18
-34
-50
-66
-82
152
136
120
104
88
72
56
40
24
8
-8
-24
-40
-56
-72
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
16Z + 10Z
Liste des éléments du tableau : . . . , −6, −4, −2, 0, 2, 4, 6, 8, . . ..
Il semble que 16Z + 10Z = 2Z.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
18Z + 33Z
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-5
-4
-3
-2
-1
0
1
2
3
-39
-57
-75
-93
-111
-129
-147
-165
-183
-201
-219
-237
-255
-273
-291
-6
-24
-42
-60
-78
-96
-114
-132
-150
-168
-186
-204
-222
-240
-258
27
9
-9
-27
-45
-63
-81
-99
-117
-135
-153
-171
-189
-207
-225
60
42
24
6
-12
-30
-48
-66
-84
-102
-120
-138
-156
-174
-192
93
75
57
39
21
3
-15
-33
-51
-69
-87
-105
-123
-141
-159
126
108
90
72
54
36
18
0
-18
-36
-54
-72
-90
-108
-126
159
141
123
105
87
69
51
33
15
-3
-21
-39
-57
-75
-93
192
174
156
138
120
102
84
66
48
30
12
-6
-24
-42
-60
225
207
189
171
153
135
117
99
81
63
45
27
9
-9
-27
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
18Z + 33Z
Liste des éléments du tableau : . . . , −9, −6, −3, 0, 3, 6, 9, 12, . . ..
Il semble que 18Z + 33Z = 3Z.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
Théorème 5. Soient a, b ∈ Z. Il existe un unique c ∈ N tel que
aZ + bZ = cZ.
Démonstration
Unicité : facile.
Existence :
Si a = b = 0, on prend c = 0.
Sinon : posons c = min((aZ + bZ) ∩ N∗ ). On a donc c > 0 et
c = au0 + bv0 pour un certain couple (u0 , v0 ) ∈ Z2 .
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
cZ ⊂ aZ + bZ : en effet,
kc = k(au0 + bv0 ) = a(ku0 ) + b(kv0 ) ∈ aZ + bZ pour tout k.
aZ + bZ ⊂ cZ :
soit au + bv quelconque dans aZ + bZ, on divise au + bv par
c = au0 + bv0 :
au + bv = qc + r = q(au0 + bv0 ) + r avec 0 6 r < c.
Donc r = a(u − qu0 ) + b(v − qv0 ) ∈ aZ + bZ.
si r 6= 0, alors r ∈ (aZ + bZ) ∩ N∗ et r < c, ce qui contredit
la minimalité de c.
Donc r = 0 et au + bv = cq ∈ cZ.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
Définition du PGCD
Définition 6. Soient a, b ∈ Z, l’entier c ∈ N tel que
aZ + bZ = cZ est le pgcd de a et b, noté pgcd(a, b)
Propriété 7. pgcd(a, b) est le plus grand (au sens de la
divisibilité) diviseur commun de a et b ; autrement dit, c’est un
diviseur commun, et tout diviseur commun de a et b divise
pgcd(a, b).
Démonstration
a ∈ aZ + bZ = cZ, donc a multiple de c. Idem pour b.
si d divise a et b, il divise tous les au + bv , donc en particulier
il divise au0 + bv0 = c.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
Théorème 8. (Bachet-Bézout, ou identité de Bézout) Soit a et b
deux entiers, il existe x et y tels que ax + by = pgcd(a, b).
Démonstration : conséquence directe de la définition.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
Illustration du théorème de Bachet-Bézout
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
16Z + 10Z
16
12 20 28 30
8
4
6
10
...
14
...
2
1
Diviseurs communs de
16 et 10
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
Petits exercices sur le pgcd
On a : 640 × 753 − 1492 × 323 = 4, qu’en déduit-on sur le
pgcd de 753 et 323 ?
On a 17 × 5 − 12 × 7 = 1, qu’en déduit-on sur le pgcd de 17
et 12 ?
L’équation 18x + 39y = 5 admet-elle des solutions ?
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
Petits exercices sur le pgcd
On a : 640 × 753 − 1492 × 323 = 4, qu’en déduit-on sur le
pgcd de 753 et 323 ?
On en déduit que pgcd(753,323) divise 4 : c’est donc 1,2 ou 4.
On a 17 × 5 − 12 × 7 = 1, qu’en déduit-on sur le pgcd de 17
et 12 ?
L’équation 18x + 39y = 5 admet-elle des solutions ?
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
Petits exercices sur le pgcd
On a : 640 × 753 − 1492 × 323 = 4, qu’en déduit-on sur le
pgcd de 753 et 323 ?
On en déduit que pgcd(753,323) divise 4 : c’est donc 1,2 ou 4.
On a 17 × 5 − 12 × 7 = 1, qu’en déduit-on sur le pgcd de 17
et 12 ?
On en déduit que pgcd(17,12) divise 1, donc il vaut 1. On dit
que 17 et 12 sont premiers entre eux.
L’équation 18x + 39y = 5 admet-elle des solutions ?
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
Petits exercices sur le pgcd
On a : 640 × 753 − 1492 × 323 = 4, qu’en déduit-on sur le
pgcd de 753 et 323 ?
On en déduit que pgcd(753,323) divise 4 : c’est donc 1,2 ou 4.
On a 17 × 5 − 12 × 7 = 1, qu’en déduit-on sur le pgcd de 17
et 12 ?
On en déduit que pgcd(17,12) divise 1, donc il vaut 1. On dit
que 17 et 12 sont premiers entre eux.
L’équation 18x + 39y = 5 admet-elle des solutions ?
pgcd(18, 39) = 3, donc pour tout x, y on a 3 18x + 39y ,
donc 18x + 39y 6= 5.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
Petits exercices sur le pgcd
Soit k ∈ N. Que vaut pgcd(ka, kb) en fonction de pgcd(a, b) ?
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
Petits exercices sur le pgcd
Soit k ∈ N. Que vaut pgcd(ka, kb) en fonction de pgcd(a, b) ?
On montre que k pgcd(a, b) est un diviseur commun de ka, kb
et qu’il s’écrit sous la forme kau + kbv .
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Introduction
Définition
Petits exercices sur le pgcd
Soit k ∈ N. Que vaut pgcd(ka, kb) en fonction de pgcd(a, b) ?
On montre que k pgcd(a, b) est un diviseur commun de ka, kb
et qu’il s’écrit sous la forme kau + kbv .
pgcd(a, b) a, donc k pgcd(a, b) ka ; symétriquement
k pgcd(a, b) divise kb. Donc k pgcd(a, b) est un diviseur
commun de ka et kb, donc k pgcd(a, b) pgcd(ka, kb).
∃u, v tels que pgcd(a, b) = au + bv , donc
k pgcd(a, b) = kau + kbv , or pgcd(ka, kb) kau + kbv , donc
pgcd(ka, kb) k pgcd(a, b).
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Plan
1
Arithmétique des entiers
2
PGCD
3
Calcul pratique : algorithmes d’Euclide
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
4
Nombres premiers entre eux
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Trois propriétés
pgcd(a, b) = pgcd(b, a)
pgcd(a, 0) = a
Lemme 9. (Euclide) Pour tous a, b, p ∈ Z,
pgcd(a, b) = pgcd(a + bp, b)
Démonstration : (a, b) et (a + bp, b) ont les mêmes diviseurs
communs, donc ils ont le même plus grand diviseur commun.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Algorithme d’Euclide
def pgcd(a,b): #calcul iteratif du pgcd de a et b
while b != 0 :
a , b = b, a % b
return a
def pgcd(a,b): #calcul recursif du pgcd de a et b
if b==0 : return a
return pgcd(b,a%b)
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Pgcd de 1154 et 816
1154 = 816 × 1 + 338
816 = 338 × 2 + 140
338 = 140 × 2 + 58
140 = 58 × 2 + 24
58 = 24 × 2 + 10
24 = 10 × 2 + 4
10 = 4 × 2 + 2
4 =2×2+0
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Euclide étendu : illustration
Problème : trouver les coordonnées du pgcd(a, b) dans le tableau
des au + bv , c’est-à-dire déterminer u, v tels que
au + bv = pgcd(a, b).
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-5
-4
-3
-2
-1
0
1
2
3
4
-26
-36
-46
-56
-66
-76
-86
-96
-106
-116
-126
-136
-146
-10
-20
-30
-40
-50
-60
-70
-80
-90
-100
-110
-120
-130
6
-4
-14
-24
-34
-44
-54
-64
-74
-84
-94
-104
-114
22
12
2
-8
-18
-28
-38
-48
-58
-68
-78
-88
-98
38
28
18
8
-2
-12
-22
-32
-42
-52
-62
-72
-82
54
44
34
24
14
4
-6
-16
-26
-36
-46
-56
-66
70
60
50
40
30
20
10
0
-10
-20
-30
-40
-50
86
76
66
56
46
36
26
16
6
-4
-14
-24
-34
102
92
82
72
62
52
42
32
22
12
2
-8
-18
118
108
98
88
78
68
58
48
38
28
18
8
-2
134
124
114
104
94
84
74
64
54
44
34
24
14
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Un morphisme
On pose ϕ : coordonnées (u, v ) −
7 → contenu de la cellule (u, v ),
i.e.
Z2
−→
Z
ϕ:
(u, v ) 7−→ au + bv
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Un morphisme
On pose ϕ : coordonnées (u, v ) −
7 → contenu de la cellule (u, v ),
i.e.
Z2
−→
Z
ϕ:
(u, v ) 7−→ au + bv
ϕ est un morphisme :
ϕ((u, v ) + (u ′ , v ′ )) = ϕ(u, v ) + ϕ(u ′ , v ′ )
ϕ(λ(u, v )) = λϕ(u, v )
Ce qu’on peut résumer :
ϕ(α(u, v ) + β(u ′ , v ′ )) = αϕ(u, v ) + βϕ(u ′ , v ′ )
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Un morphisme
On pose ϕ : coordonnées (u, v ) −
7 → contenu de la cellule (u, v ),
i.e.
Z2
−→
Z
ϕ:
(u, v ) 7−→ au + bv
ϕ est un morphisme :
ϕ((u, v ) + (u ′ , v ′ )) = ϕ(u, v ) + ϕ(u ′ , v ′ )
ϕ(λ(u, v )) = λϕ(u, v )
Ce qu’on peut résumer :
ϕ(α(u, v ) + β(u ′ , v ′ )) = αϕ(u, v ) + βϕ(u ′ , v ′ )
Les opérations effectuées sur le contenu des cases du tableau se
transposent aux coordonnées de ces cases.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Euclide étendu : illustration
Division
q r u v
16 1 0
10 0 1
10
0
16
ϕ(1, 0) = 16 et ϕ(0, 1) = 10
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Euclide étendu : illustration
Division
q r u v
16 1 0
10 0 1
16=10x1+6 1 6
10
0
16
Division euclidienne de 16 par 10
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Euclide étendu : illustration
Division
q r
16
10
16=10x1+6 1 6
u
1
0
1
v
0
1
-1
10
0
16
6
On a 6 = 16 − 1 × 10 = ϕ(1, 0) − 1ϕ(0, 1) = ϕ((1, 0) − 1(0, 1)) =
ϕ(1, −1)
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Euclide étendu : illustration
Division
q r
16
10
16=10x1+6 1 6
u
1
0
1
v
0
1
-1
10
0
6
On recommence avec 10 et 6...
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Euclide étendu : illustration
Division
q r
16
10
16=10x1+6 1 6
10=6x1+4 1 4
u
1
0
1
v
0
1
-1
10
0
6
On recommence avec 10 et 6...
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Euclide étendu : illustration
Division
q r u v
16 1 0
10 0 1
16=10x1+6 1 6 1 -1
10=6x1+4 1 4 -1 2
4
10
0
6
On recommence avec 10 et 6...
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Euclide étendu : illustration
Division
q r u v
16 1 0
10 0 1
16=10x1+6 1 6 1 -1
10=6x1+4 1 4 -1 2
4
0
6
Puis avec avec 6 et 4...
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Euclide étendu : illustration
Division
q r u v
16 1 0
10 0 1
16=10x1+6 1 6 1 -1
10=6x1+4 1 4 -1 2
6=4x1+2
1 2
4
0
6
Puis avec avec 6 et 4...
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Euclide étendu : illustration
Division
q r u v
16 1 0
10 0 1
16=10x1+6 1 6 1 -1
10=6x1+4 1 4 -1 2
6=4x1+2
1 2 2 -3
4
0
6
2
Puis avec avec 6 et 4...
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Euclide étendu : illustration
Division
q r u v
16 1 0
10 0 1
16=10x1+6 1 6 1 -1
10=6x1+4 1 4 -1 2
6=4x1+2
1 2 2 -3
4
0
2
Puis avec avec 4 et 2...
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Euclide étendu : illustration
Division
q r u v
16 1 0
10 0 1
16=10x1+6 1 6 1 -1
10=6x1+4 1 4 -1 2
6=4x1+2
1 2 2 -3
4=2x2+0
2 0
4
0
2
Puis avec avec 4 et 2...
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Euclide étendu : illustration
0
Division
q r u v
16 1 0
10 0 1
16=10x1+6 1 6 1 -1
10=6x1+4 1 4 -1 2
6=4x1+2
1 2 2 -3
4=2x2+0
2 0 -5 8
4
0
2
On a obtenu 0 : l’algorithme se termine, on a ϕ(2, −3) = 2, donc
2 = 16 × 2 + 10 × (−3)
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Algorithme d’Euclide étendu
def euclide_etendu(a,b):
"rend r,u,v avec r=pgcd(a,b) et au+bv=r"
r0, u0, v0 = a, 1, 0
r1, u1, v1 = b, 0, 1
while r1!=0 :
q=r0//r1
r0, r1 = r1, r0-q*r1
u0, u1 = u1, u0-q*u1
v0, v1 = v1, v0-q*v1
return r0,u0,v0
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
disposition pratique
Pour trouver une solution à 21u + 8v = 1 :
n division euclidienne q rn
0
21
8
1
2
21 = 2 × 8 + 5
2 5
8 =1×5+3
1 3
3
4
5 =1×3+2
1 2
5
3 =1×2+1
1 1
2 =2×1+0
6
On obtient 21 · (−3) + 8 × 8 = 1.
un
1
0
1
−1
2
−3
vn
0
1
−2
3
−5
8
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Exercice
Déterminer (u, v ) tel que 17u + 13v = 1, puis (u, v ) tel que
17u + 13v = 3.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Algorithme d’Euclide simple
Algorithme d’Euclide étendu
Exercice
Déterminer (u, v ) tel que 17u + 13v = 1, puis (u, v ) tel que
17u + 13v = 3.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Plan
1
Arithmétique des entiers
2
PGCD
3
Calcul pratique : algorithmes d’Euclide
4
Nombres premiers entre eux
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Nombres premiers entre eux
Définition : a, b premiers entre eux lorsque pgcd(a, b) = 1.
Exemples :
3 et 10 sont premiers entre eux ;
12 et 14 ne le sont pas.
Si n est premier alors ∀a, a est premier avec n ou a est un
multiple de n.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Nombres premiers entre eux
Définition : a, b premiers entre eux lorsque pgcd(a, b) = 1.
Exemples :
3 et 10 sont premiers entre eux ;
12 et 14 ne le sont pas.
Si n est premier alors ∀a, a est premier avec n ou a est un
multiple de n.
Théorème de Bézout : a et b premiers entre eux ssi ∃u, v tels que
au + bv = 1.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Nombres premiers entre eux
Des caractérisations : a, b sont premiers entre eux ssi :
aZ + bZ = Z
Pour tout k, l’équation au + bv = k admet des solutions
(u, v ).
a
La fraction est irréductible.
b
a et b n’ont pas de facteur commun, à part 1.
a et b n’ont pas de facteur premier commun.
le ppcm de a et b est ab.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Nombres premiers entre eux
Théorème (Gauss) : si a et b premiers entre eux et a
a c.
Arithmétique et Cryptographie
bc, alors
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Nombres premiers entre eux
Théorème (Gauss) : si a et b premiers entre eux et a
a c.
bc, alors
Démonstration. a et b sont premiers entre eux, donc il existe u et
v tels que au + bv = 1.
En multipliant par c : auc + bvc = c, or a divise auc et a divise
bvc car il divise bc. Donc a divise c.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Nombres premiers entre eux
Théorème : a est premier avec b et c ssi il est premier avec bc.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Nombres premiers entre eux
Théorème : a est premier avec b et c ssi il est premier avec bc.
Démonstration.
Sens =⇒ : par Bézout, il existe u, v , u ′ , v ′ tels que au + bv = 1 et
au ′ + cv ′ = 1.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Nombres premiers entre eux
Théorème : a est premier avec b et c ssi il est premier avec bc.
Démonstration.
Sens =⇒ : par Bézout, il existe u, v , u ′ , v ′ tels que au + bv = 1 et
au ′ + cv ′ = 1.
On multiplie ces deux égalités :
aauu ′ + aucv ′ + au ′ bv + bcvv ′ = 1 × 1 = 1 donc
a(auu ′ + ucv ′ + u ′ bv ) + bc(vv ′ ) = 1, donc a et bc premiers entre
eux.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Nombres premiers entre eux
Théorème : a est premier avec b et c ssi il est premier avec bc.
Démonstration.
Sens =⇒ : par Bézout, il existe u, v , u ′ , v ′ tels que au + bv = 1 et
au ′ + cv ′ = 1.
On multiplie ces deux égalités :
aauu ′ + aucv ′ + au ′ bv + bcvv ′ = 1 × 1 = 1 donc
a(auu ′ + ucv ′ + u ′ bv ) + bc(vv ′ ) = 1, donc a et bc premiers entre
eux.
Sens ⇐= : par Bézout, il existe u, v tel que au + bcv = 1,
autrement dit au + b(cv ) = 1, donc a et b premiers entre eux, et
au + c(bv ) = 1, donc a et c premiers entre eux.
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Des entiers premiers entre eux
La case (i , j) est noire ssi i et j premiers entre eux.
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Des entiers premiers entre eux
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Des entiers premiers entre eux
Des arbres plantés au centre de chaque case, l’observateur au
centre de la case (0,0)
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Des entiers premiers entre eux
Quels arbres voit l’observateur ?
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Des entiers premiers entre eux
Quels arbres voit l’observateur ?
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Des entiers premiers entre eux
Quels arbres voit l’observateur ?
Arithmétique et Cryptographie
Arithmétique des entiers
PGCD
Calcul pratique : algorithmes d’Euclide
Nombres premiers entre eux
Exercices
1
2
3
Déterminer le pgcd de 17 × 193 × 23 et 13 × 192 × 234 .
Montrer que si a et b sont premiers entre eux, alors a2 et b 2
le sont aussi.
Montrer que réciproquement, si a2 et b 2 sont premiers entre
eux, alors a et b le sont aussi.
Arithmétique et Cryptographie
Download