Chapitre 1 : Arithmétique élémentaire

publicité
ARITHMÉTIQUE - LICENCE 1
ERIC HOFFBECK
Résumé. Ce premier chapitre, rédigé par Anne Quéguiner-Mathieu
qui faisait ce cours précédemment, est largement inspiré du début
du livre de Lauritzen dont le titre ’Concrete Abstract Algebra’
pourrait être traduit en français par ’Un point de vue concret sur
l’algèbre abstraite’. Il s’agit en effet d’algèbre, mais le sujet est
abordé de façon très concrète, à partir de l’étude des nombres entiers et à travers de nombreux exemples. Parmi les références utilisées pour préparer le cours, il nous faut aussi mentionner le livre
de Daniel Perrin ’Mathématiques d’école’ (éditions Cassini).
Chapitre 1 : Arithmétique élémentaire
Table des matières
Introduction : Un peu de cryptographie
I. Division euclidienne et congruences
I.1. Division euclidienne
I.2. Divisibilité
I.3. Définition de la relation de congruence (Rappel)
I.4. Congruences et opérations
I.5. Application : les carrés itérés
II. Plus grand commun diviseur
II.1. Définition
II.2. Algorithme d’Euclide
II.3. Théorèmes de Bézout
II.4. Applications
III. Le théorème d’Euler
III.1. Rappels et notations
III.2. Fonction indicatrice d’Euler
III.3. Le théorème d’Euler
IV. Le système RSA
IV.1. Préliminaires arithmétiques
IV.2. Les fonctions de cryptage et de décryptage
IV.3. Clé publique et clé secrète
IV.4. Sécurité du système RSA
1
2
3
3
5
7
8
10
11
11
12
14
15
18
18
20
22
24
24
26
27
29
2
ERIC HOFFBECK
Introduction : Un peu de cryptographie
Le mot cryptographie vient des mots grecs
– kruptos = caché
– graphein = écrire
La cryptographie est la science des messages secrets. Elle remonte à
l’antiquité puisque Jules César l’a employée pour coder ses messages
militaires. Il utilisait le système dit des alphabets décalés, d’un ou plusieurs crans. Par exemple, si on décale d’un cran, on remplace chaque
lettre par la lettre suivante dans l’alphabet. Ainsi peut-on penser qu’il
envoya au Sénat, après sa victoire sur Pharnace le message suivant :
Y HQL Y LGL Y LF L
Saurez-vous le déchiffrer ? De combien est le décalage ?
Il existe aujourd’hui des méthodes beaucoup plus sophistiquées, qui
reposent sur différents domaines des mathématiques. Ces méthodes
sont utilisées en permanence pour la transmission de données confidentielles, numéro de carte bleue pour un achat sur le web par exemple.
Une initiation à la cryptographie sera faite en TD, comme application
des résultats d’arithmétique que l’on va voir (ou revoir).
ARITHMÉTIQUE - LICENCE 1
3
I. Division euclidienne et congruences
On rappelle la proposition suivante, qui va être utile pour démontrer
le théorème de division euclidienne :
Proposition 1.
(1) Toute partie non vide de l’ensemble N des entiers naturels possède un plus petit élément.
(2) Toute partie non vide et majorée de N possède un plus grand
élément.
On utilisera aussi le raisonnement par récurrence, qui a été étudié
au premier semestre, et dont on rappelle l’énoncé :
Proposition 2. Etant donnée une proposition P(n), dépendant d’un
entier naturel n, si
(1) P(0) est vraie, et
(2) ∀n ∈ N, l’implication P(n) ⇒ P(n + 1) est vraie,
alors P(n) est vraie pour tout n ∈ N.
On utilisera également la récurrence forte, c’est-à-dire :
Proposition 3. Etant donnée une proposition P(n), dépendant d’un
entier naturel n, si
(1) P(0) est vraie, et
(2) ∀n ∈ N, si P(k) est vraie pour tout k ≤ n alors P(n + 1) est
vraie,
alors P(n) est vraie pour tout n ∈ N.
Autrement dit, quand on fait une démonstration par récurrence, dans
la partie hérédité de la preuve, pour montrer que la propriété étudiée
est vraie au rang n+1, on peut supposer qu’elle est vraie non seulement
au rang n, mais aussi pour tous les rangs qui précèdent.
I.1. Division euclidienne. Dans ce paragraphe et les suivants, les
lettres a, b, c... désignent des nombres entiers relatifs.
C’est le principe de la division euclidienne, dont voici l’énoncé :
Théorème 4. Soient a, b ∈ Z deux entiers relatifs, avec b 6= 0. Il existe
un unique couple (q, r) ∈ Z × N tel que
a = bq + r,
0 ≤ r < |b|.
4
ERIC HOFFBECK
(Le nombre bq est un multiple de b ; comme r ≥ 0, il est à gauche
de a = bq + r ; comme r < |b|, le multiple suivant, qui est bq + |b|, est
strictement à droite de a. Le nombre bq est donc le plus grand multiple
de b inférieur ou égal à a et r est le nombre de pas qui séparent l’entier
a du multiple de b qui se trouve immédiatement à sa gauche.)
Définition 5. Trouver q et r, c’est effectuer la division euclidienne de
a par b. Les nombres q et r sont respectivement appelés le quotient et
le reste de la division.
Exemple 6. 15 = 4 × 3 + 3 ; 16 = 4 × 4 + 0 ; −10 = −1 × 17 + 7.
Cette division est celle que l’on apprend à l’école primaire, quand on
effectue des divisions posées de nombre entiers, avec reste.
Notation 7. Dans ce cours, on notera souvent [a]b le reste de la division
euclidienne de a par b. Ainsi, [a]b ∈ {0, 1, . . . , b − 1}. De plus, il existe
un unique q ∈ Z tel que a = bq + [a]b .
Remarque 8. Attention ! Si on enlève la condition 0 ≤ r < |b|, alors
il existe une infinité de couples (q, r) tels que a = bq + r. A chaque fois
qu’on en a un, on peut en fabriquer un nouveau en remplaçant q par
q + 1 et r par r − b par exemple.
En revanche, du fait de l’unicité du quotient et du reste, dès qu’on
a une égalité a = bq + r avec 0 ≤ r < |b|, on peut affirmer que q et r
sont le quotient et le reste de la division euclidienne de a par b.
Démonstration du Théorème 4. Etant donnés a et b, avec b 6= 0, on
doit démontrer l’existence et l’unicité du couple (q, r). On commence
par l’unicité.
Pour cela, supposons que a = bq + r = bq 0 + r0 sont deux solutions
au problème. On a alors b(q − q 0 ) = r0 − r, de sorte que r0 − r est
un multiple de b. Or, vues les inégalités, on a −|b| < −r ≤ 0, et
on en déduit −|b| < r0 − r < |b|. Le seul multiple de b vérifiant cet
encadrement est 0. On en déduit que r = r0 , et il en découle que q = q 0 .
Il nous reste à montrer l’existence. On va procéder par disjonction
des cas.
– Supposons que a ≥ 0 et b > 0. Parmi les multiples de b qui sont
plus petits que a, on cherche le plus grand. Pour cela, considérons
l’ensemble A = {k ∈ N, kb ≤ a} ⊂ N. Comme 0 ∈ A, A est une
partie non vide de N. Soit k > a un entier naturel. Comme b > 0,
on a kb > ab. De plus, b ≥ 1, donc ab ≥ a. Ainsi, si k > a, alors
kb > a et k 6∈ A. Par contraposée, on en déduit que pour tout
k ∈ A, k ≤ a.
On vient de montrer que A est une partie non vide et majorée de
N. Par la proposition 1, elle admet un plus grand élément que l’on
ARITHMÉTIQUE - LICENCE 1
5
note q. Par définition du plus grand élément, q ∈ A et q + 1 6∈ A.
On a donc qb ≤ a < (q + 1)b, c’est-à-dire 0 ≤ a − bq < b. Posons
r = a − bq ; le couple (q, r) ainsi défini vérifie bien les conditions
requises.
– Supposons maintenant que a < 0 et b > 0. Par le cas précédent, il
existe un couple (q1 , r1 ) d’entiers naturels tels que −a = bq1 + r1 ,
avec 0 ≤ r1 < b. On a donc a = −bq1 − r1 = b × (−q1 ) + (−r1 ). Si
r1 = 0, alors le couple (q1 , r1 ) vérifie bien les conditions requises,
et on a terminé dans ce cas. Sinon, r1 est non nul, et il vérifie
−b < −r1 < 0 de sorte que 0 < b − r1 < b. On a donc a =
b × (−q1 ) − b + b − r1 = b × (−q1 − 1) + (b − r1 ). Ainsi, le couple
(q, r) défini par q = −q1 − 1 et r = b − r1 vérifie les conditions
requises.
– Supposons finalement que b < 0, et a de signe quelconque. Par les
deux cas qui précèdent, on peut effectuer la division euclidienne de
a par −b. Il existe donc un couple (q1 , r1 ) vérifiant les conditions
a = (−b) × q1 + r1 = b × (−q1 ) + r1 et 0 ≤ r1 < −b = |b|. Ainsi,
le couple (q, r) défini par q = −q1 et r = r1 vérifie les conditions
requises.
Comme on a traité successivement tous les cas possibles, on a donc bien
montré l’existence d’un couple (q, r) et ceci termine la démonstration.
I.2. Divisibilité. La relation de divisibilité des entiers naturels est
définie comme suit :
Définition 9. On dit que b divise a, ou encore que a est multiple de
b, si il existe q ∈ Z tel que a = bq.
Notation 10. "b divise a" se note b|a.
Exemple 11. Tout entier est divisible par 1 et par −1. Un entier est
divisible par 2 si et seulement si il est pair.
Remarque 12. Dans le cas particulier b = 0, on trouve que a = 0 est
le seul multiple de 0.
Proposition 13. La relation de divisibilité est une relation d’ordre sur
l’ensemble des entiers naturels.
Démonstration. Il découle directement de la définition que c’est une
relation réflexive et transitive. (Vérifiez-le !) Il nous reste à montrer
qu’elle est antisymétrique. Supposons donc que a|b et b|a. Si a = 0, et
que a|b, alors b = 0. Donc l’antisymétrie vaut dans ce cas. Supposons
maintenant que a 6= 0. Par hypothèse, il existe k, ` ∈ Z tels que a = bk
6
ERIC HOFFBECK
et b = `a. D’où a = ak`, et en divisant par a (ce qu’on peut toujours
faire, quitte à se placer dans Q), on obtient k` = 1. Comme k et ` sont
des entiers naturels, les seules solutions sont k = ` = 1 ou k = ` = −1.
Comme a et b sont des entiers naturels, donc tous deux positifs, on a
ici k = ` = 1, et a = b.
Remarque 14. La relation de divisibilité n’est pas une relation d’ordre
sur l’ensemble des entiers relatifs. Expliquez pourquoi.
Proposition 15. Soient a, b et c des entiers relatifs. Si c divise a
et b, alors c divise l’entier ka + `b quels que soient les entiers relatifs
k, ` ∈ Z.
Remarque 16. En particulier, c divise la somme a + b, la différence
a − b, tout multiple ka de a et tout multiple `b de b.
Démonstration. Par hypothèse, il existe des entiers relatifs a0 et b0 tels
que a = ca0 et b = cb0 . On a donc ka + `b = c(ka0 + `b0 ), ce qui prouve
que c divise ka + `b.
Le lemme qui suit explique le lien entre la relation de divisibilité et
la division euclidienne :
Lemme 17. Soient a et b deux entiers, avec b 6= 0 ; b divise a si et
seulement si le reste de la division euclidienne de a par b est nul.
Démonstration. Si b|a, il existe q ∈ Z tel que a = bq = bq + 0. Comme
de plus 0 ≤ 0 < |b|, par unicité du quotient et du reste de la division
euclidienne, on a alors [a]b = 0. Réciproquement, si [a]b = 0, alors
a = bq + [a]b = bq, et b|a.
Dans la suite du cours, on utilisera régulièrement le résultat suivant :
Lemme 18. Soient a et a0 deux entiers, qui diffèrent d’un multiple de
b. Alors b|a si et seulement si b|a0 .
Démonstration. Par hypothèse, il existe k ∈ Z tel que a0 = a + bk.
Supposons que b|a, c’est-à-dire qu’il existe ` ∈ Z tel que a = b`. Alors
a0 = a + kb = `b + kb = (` + k)b, donc b|a0 . Comme a = a0 − bk =
a0 + b × (−k), le même raisonnement montre que si b|a0 , alors b|a. ARITHMÉTIQUE - LICENCE 1
7
I.3. Définition de la relation de congruence (Rappel). Cette
notion a été introduite par le mathématicien allemand Gauss, et déjà
étudiée au premier semestre. Comme on va le rappeler, il s’agit d’organiser les entiers en fonction de leurs restes quand on divise par un
entier fixé. Dans toute cette partie, c désigne un entier naturel non nul.
Définition 19. Soient a et b deux entiers relatifs. On dit que a et b
sont congrus modulo c si c divise la différence a − b.
Notation 20. On note a ≡ b mod c, ou encore a ≡ b[c].
Proposition 21. La relation de congruence est une relation d’équivalence sur l’ensemble des entiers relatifs.
En effet, elle est réflexive, symétrique et transitive. Ceci a été vu au
premier semestre dans le cours ’Introduction aux structures mathématiques’.
Exemple 22. −2 ≡ 7 mod 3 car la distance qui les sépare est multiple
de 3.
Exemple 23. Soit n ∈ Z un entier relatif. On a
n est impair
⇔ il existe k ∈ Z tel que n = 2k + 1
⇔ il existe k ∈ Z tel que n − 1 = 2k
⇔ 2|n − 1
⇔ n ≡ 1 mod 2.
On montre de même que n est pair si et seulement si il est congru à
0 modulo 2.
Remarque 24. Les entiers pairs (respectivement impairs) sont les entiers congrus à 0 (respectivement 1) modulo 2. Tout entier naturel est
soit pair soit impair ; aucun entier n’est à la fois pair et impair. On
a ainsi formé une partition de l’ensemble des entiers naturels en deux
sous-ensembles, les pairs et les impairs.
Le lien entre les congruences et les divisions euclidiennes apparaît
clairement dans la proposition qui suit :
Proposition 25. Soit c un entier naturel non nul.
(1) Tout entier est congru modulo c au reste de sa division euclidienne par c.
(2) Deux entiers sont congrus modulo c si et seulement si ils ont le
même reste dans la division euclidienne par c.
8
ERIC HOFFBECK
Avec la notation [a]c et [b]c pour les restes des divisions euclidiennes
de a et b par c, cela donne
a ≡ [a]c
mod c,
et
a ≡ b mod c ⇔ [a]c = [b]c
Démonstration. (1) Effectuons la division euclidienne de a par c, a =
cq + [a]c . On a bien q|a − [a]c donc a ≡ [a]c mod c.
(2) Effectuons de même b = cq 0 +[b]c . On a a−b = c(q−q 0 )+[a]c −[b]c .
Par le lemme 18, on en déduit que c|a − b ⇔ c|[a]c − [b]c . Or comme
0 ≤ [a]c < c et 0 ≤ [b]c < c, la différence des restes vérifie
−c < [a]c − [b]c < c.
Le seul multiple de c vérifiant cette inégalité est 0. Donc c|[a]c − [b]c ⇔
[a]c = [b]c .
Exemple 26. 24 = 4 × 5 + 4 ; donc 24 ≡ 4 mod 5.
14 = 2 × 5 + 4 ; donc 14 ≡ 4 mod 5.
D’où 24 ≡ 14 mod 5.
On peut aussi le vérifier directement : 5|(24 − 14).
I.4. Congruences et opérations. La propriété qui suit est une propriété remarquable des congruences, très utile pour faire des calculs :
Proposition 27 (Opérations et congruences). Soient x1 , x2 , y1 et y2
des entiers relatifs. Si x1 ≡ y1 mod c et x2 ≡ y2 mod c, alors
(i) x1 + x2 ≡ y1 + y2 mod c
(ii) x1 − x2 ≡ y1 − y2 mod c
(iii) x1 x2 ≡ y1 y2 mod c
(iv) ∀k ∈ N, xk1 ≡ y1k mod c
Exemple 28. On a donc pour tout k ∈ N, 10k ≡ 1 mod 9 et
1 mod 11 si k est pair,
k
k
10 ≡ (−1) mod 11 ≡
−1 mod 11 si k est impair.
Démonstration. La preuve repose sur la proposition 15. Par hypothèse,
c|x1 − y1 et c|x2 − y2 . Par la proposition 15, on a donc
c|(x1 − y1 ) + (x2 − y2 ) = (x1 + x2 ) − (y1 + y2 ),
et c|(x1 − y1 ) − (x2 − y2 ) = (x1 − x2 ) − (y1 − y2 ).
Pour le produit, il suffit de remarquer que
x1 x2 − y1 y2 = x1 x2 − y1 x2 + y1 x2 − y1 y2 = (x1 − y1 )x2 + y1 (x2 − y2 )
ARITHMÉTIQUE - LICENCE 1
9
Or c divise x1 − y1 et x2 − y2 . Il divise donc également, toujours par la
proposition 15, (x1 − y1 )x2 + y1 (x2 − y2 ) = x1 y1 − x2 y2 .
Enfin, l’assertion (iv) se démontre par récurrence sur k ∈ N :
– Si k = 0, on a x01 = 1 = y10 , donc x01 ≡ y10 mod c.
– Supposons au rang k que xk1 ≡ y1k mod c. Comme on a aussi, par
hypothèse, x1 ≡ y1 mod c, la compatibilité des congruences et du
produit (propriété (iii)) donne xk+1
≡ y1k+1 mod c.
1
– Par récurrence, le résultat est donc vrai pour tout k ∈ N.
Remarque 29. Attention, la proposition précédente ne signifie pas
pour autant que l’on peut faire avec les congruences tout ce que l’on
fait habituellement avec l’égalité. Par exemple, un produit de deux
nombres (entiers ou même réels) est nul si et seulement si l’un des
facteurs est nul. Avec les congruences, on a en revanche
4×3≡0
mod 6, cependant 4 6≡ 0
mod 6 et 3 6≡ 0
mod 6.
Exemple 30. Que peut-on dire du produit et de la somme de deux
nombres pairs ou impairs ? Si n et m sont deux entiers pairs, ils vérifient
n + m ≡ 0 + 0 mod 2
nm ≡ 0 mod 2
Donc le produit et la somme de deux nombres pairs sont encore des
nombres pairs. Si maintenant n et m sont impairs, on a
n + m ≡ 1 + 1 mod 2
nm ≡ 1 mod 2
0r 2 ≡ 0 mod 2. La somme de deux nombres impairs est donc paire,
tandis que le produit est impair.
Exemple 31. Quel est le reste de la division euclidienne de 132016
par 4 ? Pour répondre à cette question, il suffit de trouver un entier
compris entre 0 et 3 auquel 132016 est congru modulo 4. Commençons
par calculer 13 mod 4. Comme 13 = 4 × 3 + 1, on a 13 ≡ 1 mod 4.
Donc
132016 ≡ 12016 mod 4
≡ 1 mod 4
Le nombre trouvé étant plus petit que 4, c’est bien le reste de la division
euclidienne de 132016 par 4 ; autrement dit [132016 ]4 = [1]4 = 1.
10
ERIC HOFFBECK
I.5. Application : les carrés itérés. En cryptographie (et notamment quand on utilise le système RSA, que l’on verra en TD), on a parfois besoin de calculer le reste de la division euclidienne d’une grande
puissance d’un nombre entier. On dispose pour cela d’une méthode très
efficace, appelée la méthode des carrés itérés.
Supposons par exemple que l’on souhaite calculer [1211 ]21 . On peut
procéder comme suit :
– Ecrire 11 en base 2. On a
11 = 2 × 5 + 1 = 2 × (2 × 2 + 1) + 1 = 23 + 2 + 1
11 = 1 × 23 + 0 × 22 + 1 × 2 + 1.
2
En écriture positionnelle, cela donne donc 11 = 1011 .
– Effectuer le calcul en utilisant les règles de la proposition 27 (Opérations et congruences) ci-dessus. On cherche la valeur modulo 21
3
3
du nombre 1211 = 122 +2+1 = 122 × 122 × 12 = 128 × 122 × 12.
On calcule donc les carrés successifs, modulo 21 :
122 = 144 = 21 × 6 + 18, donc 122 ≡ 18 mod 21.
124 = (122 )2 , donc 124 ≡ 182 mod 21. Comme 182 = 21×15+9,
124 ≡ 9 mod 21.
Enfin, 128 = (124 )2 . Donc 128 ≡ 92 mod 21. Comme 81 =
21 × 3 + 18, 124 = 18 mod 21.
Ainsi, 1211 ≡ 18 × 18 × 12 mod 21.
Là encore, on peut faire le calcul en deux temps : 18 × 18 ≡ 9
mod 21, et 9 × 12 ≡ 3 mod 21.
Ainsi, 1211 ≡ 3 mod 21. Comme 3 est compris entre 0 et 20,
c’est bien le reste de la division euclidienne de 1211 par 21 :
[1211 ]21 = 3.
Le procédé peut paraître fastidieux mais il est beaucoup moins coûteux en calculs que le calcul direct. On cherche le reste de la division
par 21 de 1211 = 743 008 370 688, et on s’est contenté de calculer ceux
de 144, 324 et 81.
Le procédé est basé sur le fait suivant :
n
n−1
[a2 ]N = [(a2
)2 ]N = [[a2
n−1
]2N ]N .
n−1
Or un reste modulo N est toujours plus petit que N ; le carré [a2 ]2N
est donc majoré par N 2 . Ainsi, quelle que soit la valeur de l’exposant
e, à partir de la décomposition de e en base 2, on peut calculer [ae ]N
en ne calculant que des restes de nombres majorés par N 2 . Quand e
est très grand, cette méthode se révèle très efficace.
ARITHMÉTIQUE - LICENCE 1
11
II. Plus grand commun diviseur
II.1. Définition. Soit n ∈ Z. On note div(n) = {d ∈ N, d|n}.
Exemple 32. div(0) = N ;
Pour tout n ∈ Z, 1 ∈ div(n) ;
div(−n) = div(n) ;
div(n) ⊂ {0, 1, . . . , |n|} ;
div(18) = {1, 2, 3, 6, 9, 18} ;
div(24) = {1, 2, 3, 4, 6, 8, 12, 24} ;
div(35) = {1, 5, 7, 35} ;
div(36) = {1, 2, 3, 4, 6, 9, 12, 18, 36}.
Comme div(n) = div(−n), on peut oublier le signe quand on étudie
l’ensemble des diviseurs d’un entier relatif.
Dans toute la suite, on suppose donc que a et b sont des entiers
naturels, et l’un des deux au moins est non nul.
Définition 33. On note div(a, b) l’ensemble des diviseurs communs à
a et à b, c’est-à-dire l’intersection
div(a, b) = div(a) ∩ div(b).
Cet ensemble est une partie de N, et elle est non vide car elle contient
au moins l’élément 1. De plus elle est majorée par a si a 6= 0 et par b
si b 6= 0. En effet, supposons par exemple que a 6= 0 ; alors div(a) et
majoré par a. Donc div(a, b) ⊂ div(a) est aussi majoré par a.
Ainsi, par la proposition 1, l’ensemble div(a, b) des diviseurs communs à a et b possède un plus grand élément. Ceci nous conduit à la
définition suivante :
Définition 34. On appelle pgcd de a et de b, et on note pgcd(a, b) ou
a ∧ b, le plus grand entier naturel d qui divise a et b.
Autrement dit, a ∧ b est le plus grand élément de div(a, b).
Définition 35. On peut étendre cette définition aux entiers relatifs
en posant pgcd(a, b) = pgcd(|a|, |b|). Les propriétés étudiées ci-dessous
seront démontrées pour les entiers naturels, mais s’étendent sans difficulté aux entiers relatifs.
T
ExempleT36. div(24) div(18) = {1, 2, 3, 6} ; donc 24 ∧ 18 = 6.
div(24) T div(36) = {1, 2, 3, 4, 6, 12}, donc 24 ∧ 36 = 12.
div(24) div(35) = {1}, donc 24 ∧ 35 = 1.
T
Remarque 37. En fait, on a div(24) div(36) = div(12). Autrement
dit, pour tout k ∈ N, on a
(k|24 et k|36) ⇔ k|(24 ∧ 36).
12
ERIC HOFFBECK
Il s’agit là d’une propriété générale fondamentale du pgcd, que l’on va
démontrer plus loin.
Définition 38. Les entiers a et b sont dits premiers entre eux si leur
pgcd vaut 1.
Remarque 39. Ainsi, les entiers a et b sont premiers entre eux si
leurs seuls diviseurs communs sont 1 et −1, ou encore, de manière
équivalente, si div(a, b) = {1}.
Exemple 40. Les entiers 24 et 35 sont premiers entre eux.
Proposition 41. On suppose que a 6= 0. Si a|b, alors a ∧ b = a. En
particulier, on a a ∧ 0 = a.
Démonstration. Comme a|b, pour tout entier naturel k, si k|a, alors
k|b, par transitivité de la relation de divisibilité. Donc div(a) ⊂ div(b).
Il en découle que l’ensemble des diviseurs communs est div(a, b) =
div(a) ∩ div(b) = div(a). Le pgcd est donc le plus grand élément de
div(a), à savoir a.
II.2. Algorithme d’Euclide. La méthode utilisée ci-dessus pour calculer le pgcd de 24 et 36 n’est pas très performante, puisqu’elle nécessite le calcul de tous les diviseurs de chacun des deux nombres. On va
maintenant rappeler l’algorithme d’Euclide, qui fournit une méthode
beaucoup plus efficace, basée sur la division euclidienne. On commence
par énoncer un lemme fondamental pour comprendre cet algorithme.
Lemme 42 (Lemme d’Euclide). Pour tout ` ∈ N, on a
div(a, b) = div(a − `b, b).
En particulier, pgcd(a, b) = pgcd(a − `b, b).
Démonstration. Pour montrer que les ensembles de diviseurs communs
div(a, b) et div(a − `b, b) sont égaux, on procède par double inclusion.
Soit k ∈ N. Si k est un diviseur commun à a et b, alors par la propriété 15, on a k|a−`b. Ainsi, k est un diviseur commun à a−`b et b. Réciproquement, si k divise a − `b et b, alors, toujours par la propriété 15,
k divise 1 × (a − `b) + `b = a. Ainsi, c’est un diviseur commun à a et b.
Ceci montre donc que div(a, b) = div(a−`b, b). En particulier, ils ont le
même plus grand élément ; on a donc pgcd(a, b) = pgcd(a − `b, b). Nous allons maintenant voir comment utiliser cet algorithme pour
effectuer un calcul de pgcd. Commençons par des exemples.
Exemple 43. Comme 36 = 24 + 12, par le lemme 42, on a 36 ∧ 24 =
24 ∧ 12. Comme 12|24, la proposition 41 donne 24 ∧ 12 = 12. D’où
36 ∧ 24 = 12.
ARITHMÉTIQUE - LICENCE 1
13
Exemple 44. Pour calculer 223 ∧ 141, on effectue des divisions euclidiennes, et on applique le lemme d’Euclide comme suit :
223 = 141 + 82, donc 223 ∧ 141 = 141 ∧ 82 ;
141 = 82 + 59, donc 141 ∧ 82 = 82 ∧ 59 ;
82 = 59 + 23, donc 82 ∧ 59 = 59 ∧ 23 ;
59 = 23 × 2 + 13, donc 59 ∧ 23 = 23 ∧ 13 ;
23 = 13 + 10, donc 23 ∧ 13 = 13 ∧ 10 ;
13 = 10 + 3, donc 13 ∧ 10 = 10 ∧ 3 ;
10 = 3 × 3 + 1, donc 10 ∧ 3 = 3 ∧ 1 = 1.
Ainsi, le plus grand diviseur commun à 223 et 141 est 1 ; autrement
dit, les seuls diviseurs communs à ces deux nombres sont 1 et −1.
Algorithme d’Euclide
Soient a et b deux entiers naturels non nuls. Pour calculer leur pgcd,
on procède de la manière suivante :
– On pose a = r0 et b = r1 .
– On effectue la division euclidienne de r0 par r1 , r0 = r1 q2 + r2 .
– Par le lemme d’Euclide, on a donc r0 ∧ r1 = r1 ∧ r2 .
– Deux cas peuvent alors se produire :
– Si r2 = 0, alors a ∧ b = r0 ∧ r1 = r1 ∧ r2 = r1 ∧ 0 = r1 = b ;
– Sinon, r2 6= 0 et on peut effectuer la division euclidienne de
b = r1 par r2 : on obtient r1 = r2 q3 +r3 . On a donc a∧b = r2 ∧r3
par le lemme d’Euclide.
– Tant que l’on obtient des restes non nuls, on renouvelle le procédé
ci-dessus. On construit ainsi des entiers naturels r0 , r1 , . . . , rk tels
que a ∧ b = r0 ∧ r1 = r1 ∧ r2 = · · · = rk−1 ∧ rk .
– Pour k ≥ 2, l’entier rk est le reste de la division euclidienne de
rk−2 par rk−1 ,
rk−2 = rk−1 qk + rk .
On a donc 0 ≤ rk < rk−1 < · · · < r1 . On obtient donc nécessairement un reste nul au bout d’au plus r1 itérations.
– Notons rn le dernier reste non nul. On a a∧b = rn ∧rn+1 = rn ∧0 =
rn . Ainsi, le pgcd de a et b est le dernier reste non nul dans cet
algorithme.
Cet algorithme est une méthode très efficace de calcul du pgcd de
deux entiers naturels. On verra dans la suite qu’il permet également de
démontrer des propriétés du pgcd.
14
ERIC HOFFBECK
II.3. Théorèmes de Bézout. Les deux théorèmes présentés dans ce
paragraphe sont tous deux connus sous le nom de théorème de Bézout.
Théorème 45. Soient a et b deux entiers naturels, dont l’un au moins
est non nul, et notons d = a ∧ b. Il existe des entiers relatifs u et v tels
que d = au + bv.
Définition 46. Trouver u et v dans Z tels que d = au + bv, c’est
trouver une écriture de Bézout du pgcd d = a ∧ b.
Exemple 47. On a vu au paragraphe précédent que 24 ∧ 36 = 12 ;
12 = 36 − 24 = 36 × 1 + 24 × (−1) est une écriture de Bézout.
Ce n’est pas la seule ! Par exemple, on a aussi 12 = 36+72−72−24 =
3 × 36 − 4 × 24. Pour obtenir une nouvelle écriture, il suffit d’ajouter
et de soustraire un multiple commun aux deux nombres 24 et 36.
On a vu aussi que 24 ∧ 35 = 1 ; 1 = (−16) × 24 + 11 × 35 est une
écriture de Bézout.
Démonstration. On peut démontrer ce théorème en s’appuyant sur l’algorithme d’Euclide. Supposons donc que l’on a calculé le pgcd d =
a ∧ b avec cet algorithme, et notons, comme au paragraphe précédent,
r1 , . . . , rn les restes successifs, où rn désigne le dernier reste non nul, et
rn+1 = 0. On va montrer par récurrence sur k, avec 0 ≤ k ≤ n, qu’il
existe uk , vk ∈ Z tels que rk = auk + bvk .
Pour k = 0 ou 1, on a r0 = a = a × 1 + b × 0 et r1 = b = a × 0 + b × 1.
Supposons que rk = auk + bvk pour tout k < k0 ≤ n. En particulier,
rk0 −1 = auk0 −1 + bvk0 −1 et rk0 −2 = auk0 −2 + bvk0 −2 . De plus, rk0 est
défini par rk0 = rk0 −2 − rk0 −1 qk0 . Il vérifie donc
rk0 = (auk0 −2 + bvk0 −2 ) − (auk0 −1 + bvk0 −1 )qk0
= a × (uk0 −2 − qk0 uk0 −1 ) + b × (vk0 −2 − qk0 vk0 −1 )
En itérant ce raisonnement, on obtient que ceci est vrai pour tout k
tel que 0 ≤ k ≤ n. En particulier, on a rn = a ∧ b = aun + bvn .
Remarque 48.
(1) Dans le raisonnement ci-dessus, pour montrer
que la propriété est vraie au rang k0 , on utilise la définition du
reste rk0 = rk0 −2 − rk0 −1 qk0 ; ceci n’est vrai que si 1 < k0 ≤ n.
C’est pourquoi le raisonnement ci-dessus montre la propriété
pour 0 ≤ k ≤ n et non pas pour tout entier naturel k.
(2) Comme annoncé, on n’a démontré ce théorème que si a et b sont
des entiers naturels, mais il est également vrai pour des entiers
relatifs. En effet, si d = a ∧ b = |a| ∧ |b|, alors il existe des entiers
relatifs u et v tels que d = |a|u + |b|v. Il suffit alors de remplacer
u par u0 défini par u0 = u si a > 0 et u0 = −u si a < 0 pour
ARITHMÉTIQUE - LICENCE 1
15
avoir |a|u = au0 . On procède de même avec le second membre,
et on obtient au0 + bv 0 = |a|u + |b|v = d.
Par le premier théorème de Bézout, Thm. 45, que l’on vient de voir,
pour des valeurs bien choisies des entiers relatifs u et v, le nombre
au + bv est égal au pgcd de a et b. En général, quelles que soient les
valeurs de u et v, le nombre au + bv est toujours un multiple du pgcd :
Lemme 49. Soient a et b deux entiers naturels, et u et v deux entiers
relatifs ; l’entier m = au + bv est un multiple du pgcd a ∧ b de a et b.
Démonstration. Notons d = a ∧ b ce pgcd. Par définition, d|a et d|b,
donc par la proposition 15, d divise au + bv quels que soient les entiers
relatifs u, v ∈ Z.
Théorème 50. Les entiers a et b sont premiers entre eux si et seulement si il existe des entiers relatifs u et v tels que au + bv = 1.
Démonstration. Pour montrer cette équivalence, on procède par double
implication.
Supposons tout d’abord que a et b sont premiers entre eux, c’est-àdire a ∧ b = 1. Alors par le théorème 45, il existe u ∈ Z et v ∈ Z tels
que au + bv = 1.
Supposons réciproquement qu’il existe u ∈ Z et v ∈ Z tels que
au + bv = 1. Alors par le lemme qui précède, 1 est un multiple de a ∧ b.
D’où a ∧ b = 1.
II.4. Applications. Le théorème de Bézout a de nombreuses conséquences, que nous allons maintenant étudier.
II.4.1. Propriété fondamentale du pgcd. Il s’agit du résultat suivant,
que nous avons déjà observé sur des exemples :
Théorème 51. Les diviseurs communs aux deux entiers a et b sont
exactement les diviseurs de leur pgcd.
Autrement dit, on a l’équivalence suivante
∀k ∈ N, (k|a ∧ b) ⇔ (k|a et k|b).
Démonstration. Par définition, le pgcd d = a ∧ b divise a et b. Par
transitivité de la relation de divisibilité, on en déduit que si k|d, alors
k|a et k|b. La réciproque se déduit du premier théorème de Bézout,
Thm 45, grâce à la proposition 15. En effet, on considère une écriture
de Bézout d = au + bv. Si k|a et k|b, alors k divise au + bv = d.
16
ERIC HOFFBECK
II.4.2. Propriétés des entiers premiers entre eux. Un entier premier à
deux entiers est également premier à leur produit, autrement dit :
Corollaire 52. Si a ∧ b = 1 et a ∧ c = 1, alors a ∧ bc = 1.
Démonstration. Par hypothèse, il existe des entiers relatifs u, v, w, x
tels que au + bv = 1 et aw + cx = 1. En multipliant ces deux égalités,
on obtient :
1 = (au + bv)(aw + cx) = a(auw + cux + bvw) + bc × vx, ce qui prouve
que a ∧ bc = 1.
II.4.3. Le lemme de Gauss. Le théorème qui suit, appelé le Lemme de
Gauss, est très utile en arithmétique.
Théorème 53 (Lemme de Gauss). Soient a, b, c ∈ Z.
a|bc
⇒ a|c.
a∧b=1
Démonstration. Par le théorème de Bézout, il existe u et v ∈ Z tels que
au+bv = 1. En multipliant cette égalité par c, on obtient auc+bvc = c.
Or, a|a et par hypothèse, a|bc. Donc a divise a × (uc) + bc × v = c. Corollaire 54. On suppose que a et b sont premiers entre eux. Si a|c
et b|c, alors ab|c.
Autrement dit, si deux entiers premiers entre eux divisent un même
nombre, alors leur produit divise également ce nombre.
Remarque 55. Attention, la propriété n’est plus vraie si a et b ne sont
pas premiers entre eux ! Par exemple, 4|36 et 6|36, mais 4 × 6 = 24 ne
divise pas 36.
Démonstration. Comme a|c, il existe a0 ∈ Z tel que c = aa0 . Comme
b|c et c = aa0 , on a b|aa0 . Or a ∧ b = 1. Donc, par le lemme de Gauss,
b|a0 , c’est-à-dire qu’il existe b0 ∈ Z tel que a0 = bb0 . On obtient ainsi
c = aa0 = abb0 , ce qui prouve que ab divise c.
Corollaire 56. Soient a et b deux entiers naturels premiers entre eux.
Les entiers relatifs n et m sont congrus modulo le produit ab si et
seulement si ils sont congrus modulo a et modulo b.
Autrement dit,
Si a ∧ b = 1, alors ∀m, n ∈ Z,
m ≡ n mod (ab) ⇔ (m ≡ n mod a et m ≡ n mod b).
ARITHMÉTIQUE - LICENCE 1
17
Démonstration. On procède par double implication. Par définition, les
entiers n et m sont congrus modulo le produit ab si et seulement si
ab|(n − m). Dans ce cas, par transitivité de la relation de divisibilité,
on a aussi a|(n − m) et b|(n − m). Donc n et m sont congrus modulo
a et modulo b.
Réciproquement, si n et m sont congrus modulo a et modulo b, alors
la différence n − m est divisible par a et par b. Or a et b sont premiers
entre eux. Donc, par le corollaire 54, ab|(n − m), ce qui prouve que
n ≡ m mod (ab).
Remarque 57.
(1) L’implication directe est vraie sans aucune hypothèse sur les entiers a et b :
m ≡ n mod (ab) ⇒ (m ≡ n mod a et m ≡ n mod b).
Pour s’en convaincre, il suffit de regarder la première partie de
la preuve : on n’utilise pas le fait que a et b sont premiers entre
eux.
(2) La réciproque, en revanche, n’est plus vraie si on ne suppose
pas que a et b sont premiers entre eux. Par exemple, les entiers
24 et 36 sont congrus modulo 4 et modulo 6, puisque 36 − 24 =
12 = 4 × 3 = 6 × 2. Mais ils ne sont pas congrus modulo 24.
18
ERIC HOFFBECK
III. Le théorème d’Euler
Dans ce paragraphe, nous allons énoncer et démontrer un théorème
dû à Euler. On verra que ce théorème joue un rôle important dans le
système de cryptographie RSA.
III.1. Rappels et notations.
III.1.1. Nombres premiers. Tout entier naturel n > 1 possède au moins
deux diviseurs positifs, à savoir 1 et lui-même.
Définition 58. Un entier naturel n > 1 est dit premier s’il n’a pas
d’autres diviseurs positifs que 1 et lui-même.
Ainsi, un entier naturel n > 1 est premier si et seulement si il ne
s’écrit pas comme produit de deux nombres entiers strictement plus
petits que n.
Exemple 59. Les entiers 2, 3, 5, 7, 11, 13, 17, 19, 23 . . . sont des nombres
premiers. En revanche, 4 = 2 × 2 et 6 = 2 × 3 ne sont pas premiers.
Parmi les nombres entiers, les nombres premiers sont donc ceux qui
ont le moins de diviseurs. Ceci rend les calculs de pgcd particulièrement
faciles :
Théorème 60. Soient k ∈ N et p un nombre premier.
(1) Si p|k, alors p ∧ k = p ;
(2) Sinon, p et k sont premiers entre eux.
Démonstration. La première affirmation est vraie même si l’entier p
n’est pas premier, et a déjà été démontrée : c’est la proposition 41.
Supposons maintenant que p ne divise pas k. Alors p 6∈ div(p, k).
Comme p est premier, le seul autre diviseur positif de p est 1. On
obtient donc p ∧ k = 1.
Rappelons également le théorème fondamental de l’arithmétique :
Théorème 61. Tout entier naturel n > 1 se décompose en un produit
de nombres premiers.
Démonstration. On démontre l’existence d’une décomposition par récurrence forte sur n > 1.
Initialisation : L’entier 2 est premier ; il admet donc bien une décomposition, avec un seul facteur 2 = 2.
Hérédité : Soit n > 2 un entier naturel. On suppose que tout entier
k vérifiant 1 < k < n admet une décomposition. Deux cas sont alors à
distinguer :
ARITHMÉTIQUE - LICENCE 1
19
– Si n est premier, alors n = n est une décomposition de n (avec un
seul facteur) ;
– Sinon, il existe a et b ∈ N, tous deux strictement compris entre 1
et n, et tels que n = ab. Par l’hypothèse de récurrence, a et b se
décomposent en un produit de nombres premiers, et ceci fournit
une décomposition pour n = ab.
Conclusion : Par récurrence forte, on en déduit qu’une décomposition
existe pour tout entier n > 2.
Remarque 62. On peut également démontrer que cette décomposition
est unique, à l’ordre des facteurs près. Ce résultat ne jouant pas un
rôle fondamental dans la suite du cours, on ne le démontre pas. Mais
il pourra être utilisé dans les exercices.
En s’appuyant sur ce théorème, on montre facilement :
Théorème 63. Il existe une infinité de nombres premiers.
Démonstration. On raisonne par l’absurde.
Supposons donc qu’il existe un nombre fini de nombres premiers. On
peut alors en dresser la liste, rangée par ordre croissant : p1 , p2 , . . . , pN .
Considérons l’entier naturel A = 1 + p1 p2 . . . pN . Comme A est strictement plus grand que pN , il ne peut pas être égal à l’un des pi ; donc A
n’est pas un nombre premier. Par le théorème fondamental de l’arithmétique, il admet une décomposition en un produit de nombres premiers. Soit k tel que pk est l’un des facteurs dans cette décomposition.
Comme, pk |A, on a la congruence A ≡ 0 mod pk . D’un autre côté,
A = 1 + p1 . . . pN montre que A ≡ 1 mod pk . On aboutit donc à une
contradiction.
Ainsi, l’hypothèse de départ du raisonnement est fausse, et il existe
une infinité de nombres premiers.
III.1.2. L’ensemble Za . Pour tout entier naturel non nul a, on note
Za = {k ∈ N, 0 ≤ k < a} = {0, 1, 2, . . . , a − 1}.
C’est un ensemble fini, dont le cardinal vaut a.
Pour tout n ∈ Z, il découle de la définition de la division euclidienne
que le reste de la division de n par a vérifie [n]a ∈ Za . De plus, par la
proposition 25,
∀k, ` ∈ Za , k ≡ `
mod a ⇔ k = `.
En particulier, un entier n est congru modulo a à un élément de Za et
un seul, à savoir [n]a .
20
ERIC HOFFBECK
III.1.3. Ensembles finis et applications bijectives. Dans cette partie,
on va également utiliser les résultats suivants concernant les ensembles
finis :
Théorème 64. Soient A et B deux ensembles finis.
(1) Si A et B ont le même cardinal, alors pour toute application
f : A → B, on a équivalence entre :
(a) f est injective ;
(b) f est surjective ;
(c) f est bijective.
(2) A et B ont le même cardinal si et seulement si il existe une
application bijective f : A → B.
III.2. Fonction indicatrice d’Euler. La fonction indicatrice d’Euler
est une fonction qui compte, parmi les entiers compris entre 0 et a − 1,
combien sont premiers à a.
Définition 65. Pour tout entier naturel non nul a, on note Za? ⊂ Za
l’ensemble des éléments de Za qui sont premiers à a, i.e.
Za? = {k ∈ Za , k ∧ a = 1} = {k ∈ N, 0 ≤ k < a et k ∧ a = 1}.
On appelle fonction indicatrice d’Euler l’application ϕ : N → N définie
par ϕ(0) = 0 et pour tout entier a ∈ N? , ϕ(a) = card(Za? ).
Exemple 66. Z1? = {0}, donc ϕ(1) = 1 ;
Z2? = {1}, donc ϕ(2) = 1 ;
Z3? = {1, 2}, donc ϕ(3) = 2 ;
Z4? = {1, 3}, donc ϕ(4) = 2 ;
Z7? = {1, 2, 3, 4, 5, 6}, donc ϕ(7) = 6 ;
Z8? = {1, 3, 5, 7}, donc ϕ(8) = 4 ;
Z9? = {1, 2, 4, 5, 7, 8}, donc ϕ(9) = 6.
Si p est un nombre premier, alors Zp? = {1, 2, . . . p − 1}, donc ϕ(p) =
p − 1.
Pour calculer des valeurs de ϕ, on peut aussi utiliser la proposition
suivante :
Proposition 67. Soient a et b deux entiers naturels non nuls. Si a et
b sont premiers entre eux, alors ϕ(ab) = ϕ(a)ϕ(b).
Exemple 68. Par cette proposition et les calculs de l’exemple précédent, on obtient par exemple ϕ(56) = 24. Remarquons cependant
que la formule est fausse si a et b ne sont pas premiers entre eux :
ϕ(8) = ϕ(4 × 2) 6= ϕ(4) × ϕ(2).
ARITHMÉTIQUE - LICENCE 1
21
Démonstration. Le produit ϕ(a)ϕ(b) vaut
ϕ(a)ϕ(b) = card(Za? ) × card(Zb? ) = card(Za? × Zb? ).
?
On souhaite donc montrer que les ensembles Zab
et Za? ×Zb? ont le même
cardinal. Pour cela, nous allons montrer qu’il existe une application
bijective
?
f : Zab
→ Za? × Zb? .
On commence par montrer le lemme suivant :
Lemme 69. L’application g : Zab → Za × Zb , qui à tout entier k ∈ Zab
associe le couple ([k]a , [k]b ) ∈ Za × Zb est bijective.
Démonstration. Montrons que l’application g est injective. Pour cela,
on considère k ∈ Zab et ` ∈ Zab , et on suppose que g(k) = g(`). Par
définition de g, cela signifie que [k]a = [`]a et [k]b = [`]b . Donc k ≡ `
mod a et k ≡ ` mod b. Comme a et b sont premiers entre eux, par le
corollaire 54, on en déduit que k ≡ ` mod ab, et comme k et ` sont
dans Zab , il en découle que k = `. Ceci prouve que l’application g est
injective.
Pour terminer la démonstration, on compare les cardinaux de l’ensemble de départ et l’ensemble d’arrivée :
card(Zab ) = ab = card(Za ) × card(Zb ) = card(Za × Zb ).
Donc, l’application g étant injective, et les deux ensembles ayant le
même cardinal, g est bijective.
On va maintenant utiliser ce lemme pour démontrer la proposition.
?
Soit k ∈ Zab
. Par définition, ceci signifie que k ∈ Zab et k ∧ ab = 1.
Son image par l’application g est g(k) = ([k]a , [k]b ) ∈ Za × Zb . On va
montrer que g(k) ∈ Za? × Zb? . On souhaite donc montrer que [k]a et a
sont premiers entre eux. Or par le lemme d’Euclide 42, pgcd([k]a , a) =
pgcd(k, a). Considérons donc un diviseur commun d aux deux entiers
k et a, c’est aussi un diviseur de ab. Comme k et ab sont premiers
entre eux, on a donc d ∈ {−1, 1} et ceci prouve que pgcd(k, a) = 1.
D’où [k]a ∈ Za? . Le même raisonnement montre que si k est premier au
produit ab, alors [k]b ∈ Zb? .
Ainsi, l’application g induit une application f :
?
f : Zab
→ Za? × Zb? ,
k 7→ ([k]a , [k]b ).
?
Comme g est injective, f l’est aussi. En effet, pour tous k ∈ Zab
⊂ Zab
?
et ` ∈ Zab
⊂ Zab , si f (k) = f (`), alors g(k) = g(`) et donc k = `.
Montrons maintenant que f est surjective. Considérons donc un
couple (p, q) ∈ Za? × Zb? ⊂ Za × Zb . Comme g est surjective, il existe
22
ERIC HOFFBECK
k ∈ Zab tel que f (k) = (p, q), i.e. [k]a = p et [k]b = q. De plus, par
hypothèse, on a [k]a ∧ a = 1 et [k]b ∧ b = 1. En appliquant à nouveau
le lemme d’Euclide, on en déduit que k ∧ a = 1 et k ∧ b = 1. Le corollaire 52 du théorème de Bézout montre alors que k ∧ ab = 1. Donc
?
k ∈ Zab
et f (k) = g(k) = (p, q). Ceci prouve que f est surjective.
L’application f est à la fois injective et surjective. Elle est donc
?
et Za? × Zb? ont le même
bijective. Ceci prouve que les ensembles Zab
cardinal, d’où ϕ(ab) = ϕ(a)ϕ(b).
La proposition 67 permet également de calculer la valeur de ϕ pour
tout entier naturel qui est le produit de deux nombres premiers distincts :
Corollaire 70. Soit n un entier naturel. On suppose que n = pq, où p
et q sont deux nombres premiers distincts. Alors ϕ(n) = (p − 1)(q − 1).
Démonstration. Comme p et q sont premiers, on a ϕ(p) = p − 1 et
ϕ(q) = q − 1. Comme de plus ils sont distincts, ils sont premiers entre
eux. En effet, div(p, q) = {1, p}∩{1, q} = {1}. Le résultat découle alors
de la proposition 67.
III.3. Le théorème d’Euler. Le théorème d’Euler, que l’on va maintenant démontrer, est le point de départ du système de cryptographie
RSA.
Théorème 71 (Euler). Soient a ∈ Z et n ∈ N∗ deux entiers. Si a et
n sont premiers entre eux, alors
aϕ(n) ≡ 1
mod n.
Dans le cas particulier où n est un nombre premier, ce résultat est
connu sous le nom de petit théorème de Fermat. Comme ϕ(p) = p − 1
pour tout nombre premier p, et que a est premier à p si et seulement
si il n’est pas multiple de p par le théorème 60, le résultat s’énonce
comme suit :
Corollaire 72 (Petit théorème de Fermat). Pour tout nombre premier
p, et tout entier naturel a non multiple de p, on a
ap−1 ≡ 1
mod p.
Démonstration du théorème d’Euler. Considérons les éléments de Zn? ⊂
Zn , rangés par ordre croissant. On les note r1 , . . . , rϕ(n) . Pour tout i,
on a donc 0 ≤ ri < n et ri ∧ n = 1.
ARITHMÉTIQUE - LICENCE 1
23
On considère maintenant les éléments suivants, qui sont les restes de
la division euclidienne par n des produits des entiers r1 , . . . , rϕ(n) par
a:
[ar1 ]n , . . . [ar2 ]n , . . . , [arϕ(n) ]n .
On va montrer que ce sont des éléments de Zn? , et qu’ils sont deux à
deux distincts.
– Par définition de la division euclidienne, on a [ari ]n ∈ Zn . De plus,
comme a ∧ n = 1 et ri ∧ n = 1, par le corollaire du théorème
de Bézout (Corollaire 52), ari ∧ n = 1. En appliquant le lemme
d’Euclide (Lemme 42), on en déduit que [ari ]n ∧ n = 1. Donc,
[ari ]n est bien un élément de Zn? .
– Supposons que [ari ]n = [arj ]n . Alors ari ≡ arj mod n. Autrement
dit, l’entier n divise la différence ari −arj = a(ri −rj ). Or n∧a = 1.
Donc par le lemme de Gauss, n|(ri −rj ). On a donc ri ≡ rj mod n.
Comme ri et rj sont des éléments de Zn , ceci implique ri = rj ,
c’est-à-dire i = j. Par contraposée, on en déduit que si i 6= j, alors
[ari ]n 6= [arj ]n .
Ainsi, les éléments [ar1 ]n , . . . , [arϕ(n) ]n sont ϕ(n) éléments deux à
deux distincts de Zn? . Autrement dit, on vient en fait de montrer l’égalité d’ensembles :
{[ar1 ]n , [ar2 ]n , . . . , [arϕ(n) ]n } = Zn? = {r1 , . . . , rϕ(n) }.
En faisant le produit de tous les éléments de cet ensemble, on obtient :
r1 . . . rϕ(n) = [ar1 ]n . . . [arϕ(n) ]n .
A fortiori, ces deux produits sont congrus modulo n :
r1 . . . rϕ(n) ≡ [ar1 ]n . . . [arϕ(n) ]n
mod n.
D’autre part, par compatibilité de la congruence et de la multiplication,
comme [ari ]n ≡ ari mod n pour tout i, on a
[ar1 ]n . . . [arϕ(n) ]n ≡ ar1 ar2 . . . arϕ(n)
mod n.
D’où finalement r1 . . . rϕ(n) ≡ aϕ(n) r1 . . . rϕ(n) mod n. L’entier n divise
donc la différence r1 . . . rϕ(n) − aϕ(n) r1 . . . rϕ(n) = (1 − aϕ(n) )r1 . . . rϕ(n) .
Comme il est premier à chacun des entiers r1 , . . . rϕ(n) , en appliquant
ϕ(n) fois le lemme de Gauss 53, on en déduit que n divise aϕ(n) − 1, ce
qui démontre le théorème.
24
ERIC HOFFBECK
IV. Le système RSA
Deux interlocuteurs, disons Alice et Bob, souhaitent échanger des
informations confidentielles. Pour commencer, ils conviennent de transformer ces informations en données chiffrées, par exemple en associant
à chaque lettre son rang dans l’alphabet, ou bien en utilisant le code
ASCII. Les informations à échanger sont donc maintenant des listes de
nombres. Pour éviter qu’un intermédiaire indiscret ne puisse lire leurs
communications, Bob et Alice vont crypter leurs messages, c’est-à dire
transformer cette liste de nombres. Ils disposent pour cela de différentes
méthodes.
L’une d’entre elles a été étudiée en TD. Il s’agit du chiffrement affine.
Outre les fragilités statistiques, également étudiées en TD, cette méthode nécessite l’échange au préalable d’une clé secrète. Toute personne
qui parviendrait, d’une façon ou d’une autre, à se procurer cette clé secrète, par exemple au moment où Bob la transmet à Alice, pourrait
ensuite déchiffrer tous les messages interceptés.
Le système RSA, qui tient son nom de ses concepteurs (Rivest, Shamir et Adleman), et que nous allons maintenant décrire, est un système
à clé publique. L’une de ses caractéristiques est qu’il ne nécessite pas
d’échange préalable d’information. Bob va choisir et diffuser une clé publique, qui permet à toute personne souhaitant lui envoyer un message,
en l’occurrence à Alice, de crypter ce message. Bob dispose également
d’une clé secrète qui va lui permettre de décoder le message. Mais cette
clé n’a pas besoin d’être transmise ; il sera donc beaucoup plus difficile
à un intermédiaire indiscret de se la procurer. De plus, elle ne peut pas
se calculer à partir de la clé publique. Donc, une personne interceptant le message ne pourra pas le décoder, même si elle connait la clé
publique.
IV.1. Préliminaires arithmétiques. Le système RSA repose sur le
résultat suivant, que l’on va maintenant démontrer :
Proposition 73. Soient p et q deux nombres premiers distincts, et
N = pq. Soit e > 0 un entier naturel premier à ϕ(N ) = (p − 1)(q − 1).
Alors
(1) Il existe un entier naturel d > 0 tel que ed ≡ 1 mod ϕ(N ).
(2) Pour tout x ∈ Z, on a xed ≡ x mod N .
Avant de démontrer ce résultat, mettons le en oeuvre dans deux cas
particuliers.
Exemple 74. On considère l’entier N = 10 = 2 × 5. On a ϕ(N ) =
1 × 4 = 4, et 3 ∧ 4 = 1. Posons e = 3. L’écriture de Bézout 1 = 4 − 3
ARITHMÉTIQUE - LICENCE 1
25
montre que (−1) × 3 ≡ 1 mod 4. Pour avoir un coefficient d > 0, il
suffit d’ajouter 4 à −1. En effet, −1 ≡ 3 mod 4, donc (−1) × 3 ≡ 3 × 3
mod 4, et on peut prendre d = 3. Le produit ed vaut alors 9, et le
théorème affirme que pour tout entier relatif x, x9 ≡ x mod 10. Grâce
à la compatibilité entre congruences et opérations, il suffit de le vérifier
pour x ∈ Z10 . Saurez-vous le faire à l’aide de votre calculatrice ?
Exemple 75. On considère maintenant N = 29 × 37 = 1073. On a
ϕ(N ) = 28 × 36 = 1008. Posons e = 5. L’algorithme d’Euclide conduit
à l’écriture de Bézout 2 × 1008 − 403 × 5 = 1. Donc
5 × (−403) ≡ 1
mod 1008.
Comme −403 + 1008 = 605 ≡ −403 mod 1008, on en déduit que
5 × 605 ≡ 1 mod 1008. Le théorème affirme donc que pour tout x ∈ Z,
x3025 ≡ x mod 1073.
Attention, les chiffres sont maintenant trop grands pour le vérifier
directement à la machine. Heureusement, on dispose de l’algorithme
des carrés itérés, qui permet justement de calculer la valeur modulo
1073 d’une grande puissance de x !
Démonstration de la proposition 73. (1) Comme e est premier à l’entier
ϕ(N ), par le théorème de Bézout, il existe des entiers relatifs u et v
tels que
eu + vϕ(N ) = 1.
On a donc eu ≡ 1 mod ϕ(N ). Posons d = [u]ϕ(N ) . On a u ≡ d
mod ϕ(N ). Donc, par compatibilité de la congruence et des opérations, ed ≡ 1 mod ϕ(N ). De plus, puisque d est le reste d’une division
euclidienne, d ≥ 0. Enfin, si d = 0, alors ed ≡ 0 mod ϕ(N ), ce qui est
impossible. Donc d > 0.
(2) Par (1), ed ≡ 1 mod ϕ(N ). Donc il existe k ∈ Z tel que ed =
1 + kϕ(N ) = 1 + k(p − 1)(q − 1). Comme p et q sont deux nombres
premiers distincts, ils sont premiers entre eux. Donc par le corollaire 56,
il suffit de vérifier que xk(p−1)(q−1)+1 est congru à x modulo p et modulo
q. Pour cela, on distingue deux cas.
– Supposons tout d’abord que p|x ; alors x ≡ 0 mod p. Donc par
compatibilité de la congruence et des puissances,
xk(p−1)(q−1)+1 ≡ 0
mod p,
d’où xk(p−1)(q−1)+1 ≡ x mod p.
– Supposons maintenant que p ne divise pas x. On a alors, par le
petit théorème de Fermat (Corollaire 72), la relation xp−1 ≡ 1
mod p. Toujours en utilisant la compatibilité de la congruence et
26
ERIC HOFFBECK
des opérations, on en déduit
xk(p−1)(q−1) ≡ 1
mod p,
et
xk(p−1)(q−1)+1 ≡ x mod p.
Le même raisonnement par disjonction des cas suivant si q divise ou ne
divise pas x permet de montrer que
xk(p−1)(q−1)+1 ≡ x mod q,
et la proposition en découle par le corollaire 56.
Remarque 76. Si x est premier à N , la congruence xed ≡ x mod N
découle du théorème d’Euler, puisque ed ≡ 1 mod ϕ(N ). Cette partie
de la proposition 73 est donc vraie sans aucune hypothèse sur l’entier
N . En revanche, la congruence xϕ(N )+1 ≡ x mod N n’est pas vraie en
général, pour x non premier à N . Par exemple, si N = 9 = 32 , alors
ϕ(N ) + 1 = 6 + 1 = 7, et 37 6≡ 3 mod 9. Il est donc nécessaire, dans
la proposition 73, de supposer que N est le produit de deux nombres
premiers distincts.
IV.2. Les fonctions de cryptage et de décryptage. Soit N =
pq un produit de deux nombres premiers distincts. On se donne deux
entiers naturels positifs e et d tels que ed ≡ 1 mod ϕ(N ). On sait que
de tels entiers existent grâce à la proposition 73.
On considère alors les fonctions suivantes :
f : ZN → ZN
x 7→ [xe ]N
g : ZN → ZN
x 7→ [xd ]N .
et
Lemme 77. Ces deux fonctions sont des bijections réciproques l’une
de l’autre.
Exemple 78. Si l’on prend p = 2 et q = 11, on a N = 2 × 11 = 22
et ϕ(N ) = 1 × 10 = 10. On peut donc choisir e = 3, et on vérifie que
f = 7 convient comme clé secrète puisque 3 × 7 = 21 ≡ 1 mod 10. On
obtient les tableaux de valeurs suivants pour les fonctions f (x) = [x3 ]22
et g(x) = [x7 ]22 , qui montrent bien que ces deux applications sont
bijectives et réciproques l’une de l’autre :
x
f (x)
0
0
1
1
2
8
x
g(x)
0
0
1
1
2
18
3
5
3
9
4
20
4
16
5
15
5
3
6
18
6
8
7
13
7
17
8
6
8
2
9
3
10
10
11
11
12
12
13
19
14
16
15
9
16
4
17
7
18
2
19
17
20
14
21
21
9
15
10
10
11
11
12
12
13
7
14
20
15
5
16
14
17
19
18
6
19
13
20
4
21
21
ARITHMÉTIQUE - LICENCE 1
27
Démonstration du lemme 77. Il suffit de montrer que les applications
composées f ◦ g et g ◦ f sont égales à l’application identité de ZN . Soit
donc x ∈ ZN . Par définition, f ◦ g(x) = f ([xd ]N ) = [([xd ]N )e ]N . Or
xd ≡ [xd ]N mod N . Donc, par compatibilité de la congruence et des
opérations, ([xd ]N )e ≡ xde mod N . Ces deux nombres étant congrus
modulo N , ils ont le même reste dans la division euclidienne par N .
Donc, f ◦ g(x) = [xde ]N . Or, par la proposition 73, xde ≡ x mod N .
Donc [xde ]N = [x]N ; de plus, comme x ∈ ZN , [x]N = x. On obtient
donc finalement f ◦ g(x) = x.
Le même argument permet de montrer que g ◦ f (x) = x
IV.3. Clé publique et clé secrète. Nous sommes maintenant en mesure de décrire le principe du système RSA. Bob, qui doit recevoir des
messages confidentiels, choisit deux nombres premiers distincts p et q.
Il pose N = pq, et calcule ϕ(N ) = (p − 1)(q − 1). Il choisit ensuite un
entier e premier à ϕ(N ), et à l’aide d’une écriture de Bézout, trouve
un entier d tel que ed ≡ 1 mod ϕ(N ), comme dans la proposition 73.
Une fois ces calculs faits, Bob diffuse le couple d’entier (N, e). C’est sa
clé publique. Ce couple détermine la fonction de cryptage du lemme 77,
et permet donc à Alice de coder son message, en lui appliquant f .
Quand il reçoit le message d’Alice, Bob n’a plus qu’à lui appliquer
la fonction de décryptage g pour décoder le message. En effet, comme
g ◦ f = IdZN , en appliquant g au caractère codé f (x) qu’il a reçu, Bob
obtient g ◦f (x) = x, qui est bien le caractère initial du message d’Alice.
Exemple 79. Etape 1 : les clés.
Supposons par exemple que Bob choisit les nombres premiers p = 29
et q = 37. On a donc N = 29 × 37 = 1073. Bob peut aussi calculer
ϕ(N ) = 28 × 36 = 1008. Il choisit e = 5, qui est clairement premier à
1008 ; les calculs faits dans l’exemple 75 montrent que d = 605 est la
clé secrète correspondant à ce choix.
Bob dispose donc de la clé publique (N = 1073, e = 5) qu’il envoie à
Alice, et de la clé secrète d = 605 qu’il garde pour lui.
Etape 2 : le codage.
Alice veut envoyer le message ’Bonjour’ à Bob. Supposons ici que
les lettres soient codées par leur rang dans l’alphabet, de 1 pour la
lettre A à 26 pour la lettre Z. Le message d’Alice correspond donc
à la suite de nombres (02, 15, 14, 10, 15, 21, 18), qui donne le nombre
02151410152118, qu’elle redécoupe en tranches (021, 514, 101, 521, 118).
Elle obtient une nouvelle liste de nombres qui sont bien dans Z1073 puisqu’ils n’ont que trois chiffres. Utilisant la clé publique fournie par Bob,
elle remplace alors chacun des nombres x de cette liste par [x5 ]1073 .
28
ERIC HOFFBECK
Remarquons que le premier nombre de la liste peut être calculé directement à la machine, tandis que pour les suivants, il faut utiliser un
tableur, ou bien l’algorithme des carrés itérés ! Elle obtient la nouvelle
liste
(263, 234, 48, 724, 786),
qu’elle transmet à Bob.
Etape 3 : le décodage.
Il ne reste plus à Bob qu’à remplacer chacun des nombres y du message reçu par [y 605 ]1073 . L’exposant est maintenant trop grand pour
utiliser directement la calculatrice. Mais on peut faire appel à l’algorithme des carrés itérés. Celui-ci peut-être mis en oeuvre par exemple
sur une feuille de calcul. On obtient le tableau suivant :
A B
k
1 0
0 1
1 2
1 3
1 4
0 5
1 6
0 7
0 8
1 9
C
263
497
219
749
895
567
662
460
219
749
D
1
263
263
728
188
872
872
1063
1063
1063
21
La première colonne donne les coefficients de l’écriture de 605 en base
2. En combinant avec la colonne suivante, on lit 605 = 1 + 22 + 23 +
k
24 + 26 + 29 . La colonne suivante calcule les valeurs de 2632 modulo
1073 par la méthode des carrés itérés. On initialise avec 263 en case
C2 , et on définit Ci+1 = mod (Ci2 ; 1073). Enfin, la dernière colonne
sert à calculer
2
3
4
6
9
263605 = 263 × 2632 × 2632 × 2632 × 2632 × 2632 .
Pour cela on utilise une instruction conditionnelle. On initialise D1 = 1.
Puis on pose Di+1 = Di ou mod (Di × Ci+1 ; 1073) suivant que la
puissance de 2 correspondant à cette ligne de calcul intervient ou non
dans l’écriture de 605.
La dernière case de la colonne D donne la valeur modulo 1073 de
265605 . On obtient bien le nombre 21 du message initial d’Alice !
ARITHMÉTIQUE - LICENCE 1
29
IV.4. Sécurité du système RSA. Imaginons qu’un intermédiaire indiscret capte le message codé d’Alice. Il connait aussi la clé publique
(N, e).
Si N est petit, il lui suffit d’écrire toutes les valeurs de la fonction
f pour avoir la fonction réciproque, comme on l’a fait précédemment
dans l’exemple 78. Mais dans la pratique, l’entier N est trop grand
pour que cette stratégie soit réalisable.
S’il veut maintenant utiliser la même méthode que Bob pour décrypter le message, il lui suffit de trouver un entier d > 0 tel que ed ≡ 1
mod ϕ(N ). Comme on l’a vu dans la démonstration de la proposition 73, ceci peut se faire très simplement à l’aide d’une écriture de
Bézout !
Mais pour cela, il est indispensable de connaître l’entier ϕ(N ) =
(p − 1)(q − 1). Bien entendu, si N = 1073, il est très facile de retrouver
les deux facteurs premiers p et q, et de calculer ϕ(N ). Mais pour un
N assez grand, ce n’est plus le cas. Le système RSA fonctionne donc
grâce aux faits suivants :
– On dispose d’algorithmes produisant des nombres premiers très
grands ;
– On ne dispose pas d’algorithme permettant de calculer ϕ(N ) sans
passer par la factorisation de N ;
– On ne dispose pas d’algorithme permettant de factoriser N en
temps fini si N est assez grand.
Les records en matière de factorisation de très grands nombres sont
assez impressionnants : on a déjà factorisé un nombre de 232 chiffres !
Mais cela nécessite le travail des meilleurs spécialistes mondiaux, ainsi
que l’utilisation d’un grand nombre d’ordinateurs pendant plusieurs
mois, voire plusieurs années...
Téléchargement