Arithmetique Modulaire
Arithmetique Modulaire
Arithmetique Modulaire
applications à la cryptographie
Etant donné un entier n ≥ 2 , l’arithmétique modulo n consiste à faire des calculs
sur les restes dans la division euclidienne des entiers par n.
Exemples :
(1) Je me couche à 21 h et je dors pendant 10 h. Quelle heure est-il alors ?
Réponse : 7 h, puisque 21 + 10 = 31 ≡ 7 (mod 24) .
(2) Aujourd’hui on est mardi (2e jour de la semaine). Quel jour sera-t-on dans 30
jours ? Réponse : Jeudi, puisque : 2 + 30 = 32 ≡ 4 (mod 7) .
(3) La mesure d’un angle est définie à 360° près. Cela veut dire que la différence
entre deux mesures quelconques d’un angle est un multiple entier de 360°. Par
exemple : −750° ≡ −30° (mod 360°) .
Proposition 2.
a) Il existe un et un seul entier r dans {0,1, 2,..., n − 1} tel que a ≡ r (mod n ) . Cet
entier r est le reste dans la division euclidienne de a par n.
b) a ≡ b (mod n ) si et seulement si a et b ont le même reste dans la division
euclidienne par n.
Par conséquent :
1000a + 100b + 10c + d ≡ a + b + c + d (mod 9)
D’après la proposition 2, ces deux nombres ont le même reste dans la division
euclidienne par 9. En particulier, l’un est divisible par 9 si et seulement si
l’autre est divisible par 9.
(4) La preuve par 9 que l’on apprenait autrefois à l’école primaire est un test
permettant de détecter une erreur dans un calcul mental. Par exemple,
supposons qu’un élève souhaite vérifier que : 458 ⋅ 47 = 21'526 . Dans le schéma
en croix de la preuve, il place alors :
• en haut et en bas respectivement, les restes de 458 et
de 47 par 9, soit 8 et 2 ; 8
• à gauche, le reste du résultat 21’526 par 9, soit 7 ;
7 7
• à droite finalement, le reste de 8 ⋅ 2 = 16 par 9, donc 7.
Si les nombres à droite et à gauche dans la croix diffèrent, 2
2
L’algorithme d’Euclide permet de trouver rapidement le pgcd de deux entiers a et b.
Son fonctionnement est explicité dans la proposition suivante :
Identité de Bezout. Soient a et b sont des entiers non nuls et d leur pgcd. Il existe
deux entiers u et v tels que : au + bv = d .
3
b = r1q 2 + r2 , 0 ≤ r2 < r1
r1 = r2q 3 + r3 , 0 ≤ r3 < r2
…
rn −2 = rn −1qn + rn , 0 ≤ rn < rn −1
rn −1 = rnqn +1 + 0
On peut montrer par récurrence que tous les restes r1, r2 , r3 ,... s’écrivent sous la
forme ri = aui + bvi . Cela est vrai pour r1 et pour r2 :
r1 = a ⋅ 1 − b ⋅ q1
r2 = b − r1q 2 = b − (a − bq1 )q 2 = −aq 2 + b (1 + q1q 2 ) .
Théorème de Bezout. Soient a et b sont des entiers non nuls. a et b sont premiers
entre eux si et seulement si il existe deux entiers u et v tels que : au + bv = 1 .
4
Les deux résultats qui suivent sont élémentaires et intuitifs, mais se démontrent bien
à l’aide de l’identité de Bezout :
5
Propriétés de la fonction ϕ :
a) Si p est un nombre premier, alors ϕ ( p ) = p − 1 et plus généralement :
( )
ϕ pk = pk −1 ( p − 1) , k ∈ N
b) ϕ est une fonction multiplicative : Si m et n sont deux entiers premiers entre
eux, alors ϕ (mn ) = ϕ (m ) ϕ (n )
Démonstration. Le point a) est facile : parmi les entiers 1, 2,..., p k , seuls les
multiples de p ne sont pas premiers avec pk . Il y en a exactement pk −1 : 1 ⋅ p , 2 ⋅ p ,
( )
…, pk −1 ⋅ p . Donc ϕ pk = pk − p k −1 = pk −1 ( p − 1) . Nous admettons le point b) qui est
un peu plus difficile à prouver.
( ) ( )
ϕ (n ) = ϕ p1k1 ⋅ ϕ p2k2 ⋅ ... ⋅ ϕ pmkm ( )
=p 1
k1 −1
(p1
− 1) ⋅ p 2
k2 −1
(p
− 1) ⋅ ... ⋅ pm m ( pm − 1)
2
k −1
1 1 1
⋅ ... ⋅ pm m 1 − ⋅ 1 − ⋅ ... ⋅ 1 −
k k k
= p1 1 ⋅ p2 2
p 1
p
2
p m
1 1 1
= n 1 − ⋅ 1 − ⋅ ... ⋅ 1 −
p1 p2 pm
1
= n ∏ 1 −
pi premier
pi
et pi |n
Petit théorème de Fermat. Si p est un nombre premier, alors pour tout entier a
non divisible par p, on a : a p−1 ≡ 1 (mod p ) . 1
ka ≡ la (mod p )
⇒ (k − l )a ≡ 0 (mod p )
⇒ k − l ≡ 0 ou a ≡ 0 (mod p ) (lemme d'Euclide !)
1
On peut énoncer de manière équivalente : pour tout entier a : a ≡ a
p
(mod p )
6
⇒ k − l ≡ 0 (mod p )
⇒k ≡l (mod p )
⇒ k = l puisque 1 ≤ k , l ≤ p − 1
En résumé : Les nombres a, 2a , 3a , …, ( p − 1)a , divisés par p, donnent des restes
non nuls et distincts. Ces restes sont donc, à l'ordre près, les nombres de la suite
1,2,…, p − 1 . Par conséquent :
a ⋅ 2a ⋅ ... ⋅ ( p − 1) a ≡ 1 ⋅ 2 ⋅ ... ⋅ ( p − 1) (mod p )
⇔ a p−1 ( p − 1) ! ≡ ( p − 1) ! (mod p )
( )
⇔ a p−1 − 1 ( p − 1) ! ≡ 0 (mod p )
⇔a p −1
− 1 ≡ 0 (mod p ) (lemme d'Euclide !)
⇔a p −1
≡ 1 (mod p )
Le théorème suivant est une généralisation du petit théorème de Fermat :
Démonstration : Elle est très analogue à celle du petit théorème de Fermat. Au lieu
de prendre tous les multiples a, 2a , 3a , …, (n − 1)a , on prend seulement ceux de la
forme ka , où k est premier avec n. Il y en a ϕ (n ) . Ces multiples, divisés par n
donnent encore des restes non nuls et distincts (d’après le lemme de Gauss). De plus,
ces restes constituent de nouveau, à l’ordre près, les entiers k ∈ {1, 2, ..., n − 1} qui
sont premiers avec n (à démontrer). Par conséquent, en multipliant tous les multiples
de a considérés, on obtient l’égalité :
ϕ(n )
a ⋅ ∏ k≡ ∏ k (mod n )
1≤k ≤n 1≤k ≤n
pgcd(k ,n )=1 pgcd(k ,n )=1
7
Exercices.
(1) Démontrer les propositions 1, 2 et 3.
(2) Etablir les tables d’addition et de multiplications modulo 2, modulo 3, …,
modulo 8. Ecrire un programme en Delphi permettant d’afficher ces tables.
(3) Montrer que 236 + 518 est divisible par 41.
(4) Calculer le reste dans la division euclidienne
a) de 1’035’125 5642 par 11 ;
b) de 52010 par 13 ;
(5) Calculer 55'55555'555 modulo 7 .
(6) a) Montrer qu’un entier n est divisible par 7 si et seulement si le nombre obtenu
en retranchant le double de son chiffre des unités au nombre formé des autres
chiffres est divisible par 7.
b) Montrer qu’un entier n est divisible par 7 si et seulement si la somme
alternée de ses chiffres est divisible par 11.
c) Montrer qu’un entier n est divisible par 13 si et seulement si le nombre
obtenu en additionnant le quadruple de son chiffre des unités au nombre formé
des autres chiffres est divisible par 13.
(7) Soit n1 , n2 , … , nk des entiers deux à deux premiers entre eux. Le théorème
des restes chinois affirme alors que le système de congruences :
x ≡ a (mod n )
1 1
x ≡ a mod n
2 ( 2)
...
x ≡ ak (mod nk )
admet une solution unique modulo n1 ⋅ n 2 ⋅ ... ⋅ nk , quels que soient les entiers a1 ,
a2 , …, ak donnés. Le but de l’exercice n’est pas de démontrer le théorème en
général, mais de comprendre comment il fonctionne sur des exemples :
a) Quel est le reste de la division de x par 15 sachant que x ≡ 2 (mod 3) et
x ≡ 4 (mod 5) ?
b) Dans l'armée de Han Xing il y a entre 1000 et 1100 soldats. Combien cette
armée comporte-t-elle de soldats si, rangés par 3 colonnes, il reste 2 soldats,
rangés par 5 colonnes, il reste 3 soldats et, rangés par 7 colonnes, il reste 2
soldats ?
c) Une bande de 17 pirates possède un trésor constitué de pièces d'or d'égale
valeur. Ils projettent de se les partager également, et de donner le reste au
8
cuisinier chinois. Celui-ci recevrait alors 3 pièces. Mais les pirates se
querellent, et six d'entre eux sont tués. Un nouveau partage donnerait au
cuisinier 4 pièces. Dans un naufrage ultérieur, seuls le trésor, six pirates et le
cuisinier sont sauvés, et le partage donnerait alors 5 pièces d'or à ce dernier.
Quelle est la fortune minimale que peut espérer le cuisinier s'il décide
d'empoisonner le reste des pirates ?
(8) Appliquer « à la main » l'algorithme d'Euclide pour déterminer le pgcd des
nombres a et b :
a) a = 528 et b = 312
b) a = 4’725 et b = 3’792
c) a = 26 et b = 19
(9) a) Déteminer deux entiers x et y tels que 15x + 77y = 1 .
b) Quelles sont tous les couples d’entiers solutions de cette équation ?
c) Trouver une solution en entiers de l’équation 15x + 77y = 2 , puis toutes les
solutions de cette équation.
(10) Montrer que, pour tout entier n, les entiers 2n+1 et 9n+4 sont premiers entre
eux.
(11) Soient a, b et c sont des entiers non nuls. Montrer que l’équation ax + by = c
admet des solutions entières si et seulement si c est un multiple de
d = pgcd (a, b ) .
(12) Déterminer les valeurs de n, entier naturel pour que la fraction suivante soit
irréductible :
3n − 2 n2 + 6
a) b)
n +7 n +1
(13) Déterminer l’inverse de 12 modulo 47, de 13 modulo 24, et de 12 modulo 18.
(14) a) Montrer que 35 est inversible modulo 129.
b) Calculer l'inverse de 35 modulo 129 à l'aide de l'algorithme d'Euclide.
(15) Déterminer tous les entiers naturels n et p pour lesquels 15n − 21p est divisible
par 12.
(16) Montrer en utilisant le petit théorème de Fermat que, pour tout entier naturel
n, n 5 − n est divisible par 30.
(17) Montrer que si n ∈ N et p ∈ N ∗ , alors n p +4 et n p ont le même chiffre des
unités.
9
Application à la cryptographie :
méthode de codage RSA
L’algorithme de chiffrement « à clé publique » RSA a été développé en 1978 par
Ron Rivest, Adi Shamir et Len Adleman. Cet algorithme est fondé sur l'utilisation
d'une paire de clés :
• une clé publique pour chiffrer, accessible à n'importe quelle personne
souhaitant chiffrer des informations et
• une clé privée pour déchiffrer, réservée au receveur des messages chiffrés,
qui est en même temps le créateur de la paire de clés.
10
3e étape : Comme e est premier avec ϕ (n ) , e est inversible modulo ϕ (n ) , c.-à-d. il
(
existe un entier d tel que ed ≡ 1 mod ϕ (n ) . d est appelé exposant de )
déchiffrement.
Le couple (n, d ) est la clé privée.
d) Sécurité
On constate que pour chiffrer un message, il suffit de connaître e et n. En revanche,
pour déchiffrer, il faut connaître d et n. Or, pour déterminer d, on a besoin de
ϕ (n ) = ( p − 1)(q − 1) . Calculer l’entier très grand ϕ (n ) sans connaître p et q est un
problème de factorisation duquel les ordinateurs ne viennent pas à bout en un temps
raisonnable. Par sûreté, il est couramment recommandé que la taille des clés RSA soit
au moins de 2048 bits.
(Source : Wikipédia)
11