ARITHMETIQUE MODULAIRE

publicité
ARITHMETIQUE MODULAIRE
Pr BELKHIR Abdelkader
USTHB
En cryptographie on fait un usage intensif de l’arithmétique modulo n. Celle-ci permet de
restreindre la taille de tous les résultats intermédiaires et de la valeur finale. C’est
indispensable, par exemple, pour le calcul de logarithmes discrets ou de racines carrées qui
sont des opérations très coûteuses en ressources de calcul.
1 Diviseurs
Soient a, b et m N. b( 0) divise a si a = mb
On dit que b est un diviseur de a.
Exemple : les diviseurs de 24 sont 1,2,3,4,6,8,12,24.
1.1 Propriétés :
– Si a|1 alors a = ±1
– Si a|b et b|a alors a = ±b
– Tout b différent de 0 divise 0
– Si b|g et b|h alors b|(mg + nh) pour m et n arbitraires
– Si a = 0 mod n alors n|a
1.2 Quelques critères de divisibilité :
– n est divisible par 2 s’il se termine par 0,2,4,6,8.
– n est divisible par 3 si la somme de ses chiffres est divisible par 3.
– n est divisible par 4 si ses deux derniers chiffres forment un multiple de 4 (ex : 256628).
– n est divisible par 5 s’il se termine par 0 ou 5.
– n est divisible par 8 si ses 3 derniers chiffres forment un multiple de 8 (ex : 176072).
– n est divisible par 9 si la somme de ses chiffres est un multiple de 9 (ex :
37521=3+7+5+2+1=18=2*9).
– n est divisible par 11 si la différence (1erchiffre + 3ièmechiffre + 5ièmechiffre + ...) (2ièmechiffre
+ 4ièmechiffre + 6ièmechiffre + ...) est divisible par 11. Par exemple, 1485 est divisible par
11, car (1+8)-(4+5)=0 est divisible par 11.
2 Congruence
Soit n, un entier non nul (dans Z), et a, b des entiers. a et b sont dits congruents modulo n si :
(a mod n) = (b mod n)
ce qui s’écrit a = b mod n.
Exemples : 73 = 4 mod 23, 21 = 1 mod 10
Deux entiers a et b sont égaux (ou congrus) modulo n si n|a − b.
2.1 Propriétés :
1. a = b mod n ssi n|a − b
2. a = b mod n ←→ ca = cb mod (cn)
3. a = b mod n ←→ ac = bc mod n
4. a = b mod m ←→ b = a mod m
5. a = b mod netb = c mod n → a = c mod n
6. ((a mod n) + (b mod n)) mod n = (a + b) mod n
7. ((a mod n) − (b mod n)) mod n = (a − b) mod n
8. ((a mod n) * (b mod n)) mod n = (a * b) mod n
Propriété 1 :
23 = 8(mod5) car 23 − 8 = 15 = 5 * 3
−11 = 5(mod8) car − 11 − 5 = −16 = 8 * (−2)
Propriété 6 :
[(11 mod 8) + (15 mod 8)] mod 8 = (3 + 7) mod 8 = 2
(11 + 15) mod 8 = 26 mod 8 = 2
Propriété 7 :
[(11 mod 8) − (15 mod 8)] mod 8 = (−4) mod 8 = 4
(11 − 15) mod 8 = (−4) mod 8 = 4
Propriété 8 :
[(11 mod 8) * (15 mod 8)] mod 8 = (3 * 7) mod 8 = 5
(11 * 15) mod 8 = 165 mod 8 = 5
Il existe une autre technique pour la propriété n°8 : la décomposition par facteurs plus
simples.
Exemple : Pour trouver 117 mod 13, on peut procéder comme suit
112 = 121 = 4 mod 13
114 = (112)2 = 42 = 3 mod 13
117 = 11 * 114 * 112 = (11 * 3 * 4) = 132 = 2 mod 13
3 L’ensemble Zn
Soit Zn l’ensemble des entiers, Zn = {0, 1, ..., (n − 1)}. Zn représente l’ensemble des résidus ou
classes de résidu modulo n (chaque entier dans Zn est une classe de résidu). On peut écrire ces
classes [0], [1], ..., [n − 1] où [r] = {a : a  Z et a = r mod n}
Exemple :
Classes de résidu modulo 4 :
0 = {..., -8, -4,0,4,8,...}
1 = {...,-7,-3,1,5,9,...}
2 = {...,-6,-2,2,6,10,...}
3 = {...,-5,-1,3,7,11,...}
De tous les nombres entiers dans une classe de résidu, le plus petit nombre entier non négatif
est celui habituellement utilisé pour représenter la classe de résidu. Trouver le plus petit
nombre entier non négatif pour lequel k est congruent modulo n s’appelle la réduction de k
modulo n.
4. Le PGCD
Il s’agit du Plus Grand Commun Diviseur (c) de a et b et tel que c est un diviseur de a et de b.
Par cette définition, il vient que tout diviseur de a et b sera un diviseur de c.
– gcd(a, b) = max[k : k|a et k|b]
– gcd(a, b) = gcd(|a|, |b|)
– gcd(a, 0) = |a|
5 Nombres premiers
Théorème 1 (Nombres premiers) Tout nombre naturel n ≥ 1 peut s’écrire comme un produit
de nombres premiers, et cette représentation est unique, à part l’ordre dans lequel les facteurs
premiers sont disposés.
On dit qu’un nombre est premier si les deux seuls diviseurs positifs qu’il admet sont 1 et luimême. Deux entiers sont relativement premiers si leur unique facteur commun positif est 1.
On note lorsque a et c sont relativement premiers :
(a, c) = 1 ou gcd(a, c) = 1
6. Autres propriétés de Zn
6.1 Propriété de l’addition
(a + b) = (a + c) mod n→ b = c mod n
Exemple : (5 + 23) = (5 + 7) mod 8 → 23 = 7 mod 8
6.2 Propriété de la multiplication
Si (a, n) = 1 alors (a * b) = (a * c) mod nb = c mod n
La condition doit absolument être vérifiée. En effet, si par exemple (a = 6, n = 8) 6= 1 → 6 *
3= 2 mod 8 et 6 * 7 = 2 mod 8 or 3  7 mod 8.
Explications : Avec a = 6 et n = 8, on obtient le résultat de la figure 1.2.
Z8
0
1
2
3
4 5
6
Multiplié par 6 0
6
12 18 24 30 36
résidu
0
6
4
6
0 6
4
Fig. 1.2 – Ensemble incomplet de résidus
7
42
2
7. Algorithme d’Euclide
7.1 Algorithme d’Euclide simple
L’objectif est de permettre de déterminer le PGCD de deux nombres entiers positifs sans avoir
besoin de faire leur décomposition en facteurs premiers.
Théorème (Principe d’Euclide) Si a et b  N et a ≥ b, si b > 0, a = r mod b, alors gcd(a, b)
= gcd(b, r).
Tout repose ici sur le fait que si a et b  N, a ≥ 0 et b > 0, alors gcd(a, b) = gcd(b, a mod b)
Exemple : gcd(55, 22) = gcd(22, 55 mod 22) = gcd(22, 11) = 11.
Exemple :
Soit le calcul de pgcd(1970,1066). Il vient
1970 = 1 * 1066 + 904 gcd(1066, 904)
1066 = 1 * 904 + 162 gcd(904, 162)
904 = 5 * 162 + 94 gcd(162, 94)
162 = 1 * 94 + 68 gcd(94, 68)
94 = 1 * 68 + 26 gcd(68, 26)
68 = 2 * 26 + 16 gcd(26, 16)
26 = 1 * 16 + 10 gcd(16, 10)
10 = 1 * 6 + 4 gcd(6, 4)
6 = 1 * 4 + 2 gcd(4, 2)
4 = 2 * 2 + 0 gcd(2, 0)
7.2 Algorithme d’Euclide étendu
Remarques
–   représente le nombre directement inférieur ou égal au nombre entre crochets
– Si la condition du point 3 est remplie, alors b n’a pas d’inverse modulo m
– Si la condition du point 4 est remplie, alors le pgcd vaut 1 et b−1 mod m = B2
Exemple d’exécution de l’algorithme :
Soit gcd(550, 1759) = 1, l’inverse multiplicatif de 550 est 355. En effet, (550 * 355) = 1 mod
1759
Exemple d’exécution manuelle :
Soit le problème suivant : trouver (43)−1 mod 26[= (17)−1 mod 26]. Il vient
9 = 26 − 1 * 17
8 = 17 − 1 * 9 → 17 − 1 * (26 − 1 * 17) = 2 * 17 − 1 * 26
1 = 9 − 1 * 8 → 26 − 1 * 17 − 1 * (2 * 17 − 1 *∗ 26) = 2 * 26 − 3 * 17
Donc, (−3) mod 26 = 23 mod 26 : l’inverse modulo 26 de 43 est 23.
Téléchargement