Chapitre XV Chapitre XV : Eléments d`arithmétique

publicité
Chapitre XV
Chapitre XV : Eléments d’arithmétique
Introduction
Les méthodes modernes de cryptographie font souvent appel à des
notions d’arithmétique, non seulement sur l’ensemble des nombres
entiers Z, mais aussi parfois sur des ensembles plus généraux.
Introduction
Pour une bonne introduction à la cryptographie :
J.A. Buchmann, "Introduction to Cryptography", Springer-Verlag,
2002.
Corps et anneaux
Remarque : on a très brièvement parlé de l’ensemble des nombres
entiers au Chapitre II. On avait remarqué que Z ne forme pas un
corps (lorsqu’on le munit de l’addition et la multiplication usuelles)
car certains éléments n’ont pas d’inverse dans Z. Par exemple,
/ Z.
2 ∈ Z mais 12 ∈
Corps et anneaux
En mathématiques, les ensembles munis de deux lois internes
(addition et multiplication) telles que toute les propriétés de corps
sont satisfaites (voir Chapitre II) sauf peut-être l’existence
d’inverses pour la multiplication et la commutativité de la
multiplication sont appelés anneaux.
Corps et anneaux
Donc, (A, +, .) est forme un anneau si
1
(A, +) forme un groupe commutatif,
2
il existe un élément neutre pour la multiplication 1 ∈ A,
3
a.(b + c) = a.b + a.c et (a + b).c = a.c + b.c pour tous
a, b, c ∈ A.
Corps et anneaux
Exemple 1
(Z, +, .) est un anneau.
Exemple 2
N’importe quel corps commutatif un anneau.
La notion d’anneau généralise donc celle de corps commutatif.
Corps et anneaux
Exemple 3
L’ensemble (Mat(n × n, R), +, .) des matrices à coefficients réels
forme un anneau pour l’addition de matrice + et la multiplication
matricielle ., ce n’est pas un corps car certaines matrices ne sont
pas inversibles.
On peut remplacer R par un autre corps : (Mat(n × n, K), +, .) est
toujours un anneau quel que soit le corps K.
Corps et anneaux
Remarque : on a vu dans les chapitres précédents que
Mat(n × n, R) forme un aussi espace vectoriel réel lorsqu’on
considère l’addition de matrices et la multiplication de matrices par
un scalaire.
Ceci n’est pas un problème : on peut munir Mat(n × n, R) de
plusieurs structures en fonction des questions qu’on cherche à
étudier. Si on considère l’addition de matrices et la multiplication
par un scalaire, on a un espace vectoriel. Si on considère plutôt
l’addition et la multiplication matricielle, on a un anneau.
Corps et anneaux
Exemple 4
L’ensemble (R[X ], +, .) des polynômes à coefficients réels muni de
l’addition et de la multiplication de polynômes est un anneau. Ce
n’est pas un corps car un polynôme non nul n’est pas inversible
dans R[X ].
A nouveau, ceci n’est pas spécifique à R : l’ensemble K[X ] des
polynômes à coefficients dans K forme toujours un anneau pour K
un corps quelconque.
Corps et anneaux
Exemple 5
On avait vu au Chapitre II que l’ensemble
Zm = {0, 1, . . . , m − 1}
muni de l’addition et de la multiplication modulo m forme un corps
uniquement si m est premier. Si m n’est pas premier, on a des
éléments non inversibles pour la multiplication. Dans tous les cas,
Zm forme un anneau.
L’anneau (Zm , +, .) est souvent utilisé en cryptographie, par
exemple comme alphabet pour coder un message (nous avons
donné un exemple concret lorsque m est premier dans le Chapitre
X).
Corps et anneaux
Rappel : pour effectuer un produit/une multiplication dans
Zm = {0, 1, . . . , m − 1}, on effectue le produit/la multiplication
dans Z et on prend le reste de la division par m.
Exemple 6
Dans l’anneau Z4 = {0, 1, 2, 3} des entiers modulo 4, on a
3.3 = 9 = 1
donc 3 admet un inverse : c’est 3 lui même. Par contre, 2 n’est pas
inversible car 2.2 = 0, 2.3 = 6 = 2.
Corps et anneaux
Utiliser l’anneau (Zm , +, .) comme alphabet permet d’appliquer
toutes les techniques et résultats de l’arithmétique aux mots du
message qu’on désire crypter. C’est bien pratique et on verra un
exemple d’application : le système RSA.
Corps, anneaux, groupes, espaces vectoriels
Il faut prendre garde à bien pouvoir distinguer les différentes
structures mathématiques vues jusqu’à présent :
1
Les corps,
2
Les groupes,
3
Les anneaux,
4
Les espaces vectoriels.
Voyez-vous bien la différence entre toutes ces structures ?
Arithmétique dans Z
Etudions plus en détails la structure de l’anneau (Z, +, .).
Arithmétique dans Z
Commençons par un rappel de l’école primaire : la division
euclidienne.
Soient a, b ∈ Z avec b 6= 0. Alors il existe des entiers uniques q et r
tels que
a = bq + r , 0 6 r < |b|.
On dit que q est le quotient de a par b tandis que r est le reste.
Arithmétique dans Z
Si le reste de la division euclidienne de a par b est nul, on dit que b
divise a, que b est un diviseur de a ou que a est un multiple de b.
Cela revient donc à dire que a = bq pour un certain entier q ∈ Z.
On note souvent a | b le fait que a divise b.
Arithmétique dans Z
Remarque : quel que soit b ∈ Z, on a b | 0 vu que 0 = b.0. De
même, 1 | b vu que b = b.1.
Arithmétique dans Z
Exemple 7
11 divise 341 vu que 341 = 11.31, mais 8 ne divise pas 341 car
341 = 8.42 + 5 = 336 + 5
donc le reste de la division de 341 par 8 vaut 5 6= 0.
Un nombre entier p > 1 qui n’est divisible que par 1 et par lui
même est dit premier.
Arithmétique dans Z
Les nombres premiers inférieurs à 100 sont :
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 dans Z
Les nombres premiers sont fort utilisés en cryptographie,
notamment dans le système RSA (Ronald Rivest, Adi Shamir et
Leonard Adleman) qui est un des systèmes les plus sûrs à l’heure
actuelle. Il vaut donc la peine de passer un peu de temps à les
étudier.
Arithmétique dans Z
Etant donné un nombrer entier positif quelconque n, peut-on
trouver un algorithme efficace pour déterminer si n est premier ?
Pour petit un nombre (comme n = 1231 par exemple), la réponse
semble immédiate : on essaye tous les nombres de 1 à n, si on en
trouve un qui divise n alors n n’est pas premier, sinon il est premier.
Arithmétique dans Z
Cet algorithme naïf est applicable pour des petits nombres. On
peut même optimiser un petit peu : il n’est nécessaire de chercher
√
un éventuel diviseur que jusqu’à n (vu que si n = pq alors
√
√
p 6 n ou bien q 6 n).
Mais même au moyen d’ordinateurs très puissants, cet algorithme
devient vite inutilisable pour des grands nombres (plus de 100
chiffres).
Arithmétique dans Z
"Pour un nombre quelconque de 100 chiffres, cet algorithme
nécessite environ 1050 essais dans les cas les plus longs à traiter.
Or, même à raison de dix-milliards d’essais par seconde, il faudrait
1040 secondes soit 3 × 1032 années pour terminer le test. Cette
valeur est manifestement déraisonnable : elle est bien supérieure à
l’age estimé de l’Univers (15 milliards d’années). D’ici à 2030, si les
progrès techniques ont continué à la vitesse extrêmement rapide
d’aujourd’hui, la durée du calcul sera descendue à 3 × 1026 années,
ce qui reste très supérieur à l’âge de l’univers."
Jean-Paul Delahaye, Merveilleux nombres premiers, Belin-Pour la
science, 2000.
Arithmétique dans Z
L’ouvrage de Jean-Paul Delahaye (professeur d’informatique à
l’université de Lille) continent énormément d’informations sur les
nombres premiers et leurs applications en cryptographie. Une
nouvelle version est parue en 2013 :
Jean-Paul Delahaye, Merveilleux nombres premiers, Belin-Pour la
science, 2013.
Arithmétique dans Z
De nombreux algorithmes permettant de déterminer si un nombre
est premier on été mis au point par des
informaticiens/mathématiciens : ce sont les tests de primalité.
Arithmétique dans Z
Fait : tout nombre n > 2 soit est premier, soit admet un diviseur
premier.
La démonstration de ce fait est immédiate si on procède par
récurrence sur n. Elle est en effet clairement vraie pour n = 2. Si
elle est vraie pour tout b < n alors elle est aussi vraie pour n vu
que, si n n’est pas premier, il existe b et c tels que
n = bc avec b < n, c < n.
Par l’hypothèse de récurrence, il existe alors un premier qui divise b
(et donc aussi n).
Arithmétique dans Z
Le résultat qu’on vient de prouver implique en particulier :
Théorème 8 (Théorème d’Euclide)
Il existe une infinité de nombres premiers.
Démonstration : Supposons qu’il n’existe qu’un nombre fini
p1 , . . . , pn de premiers. Considérons le nombre
M = p1 . . . pn + 1.
Alors M n’est pas premier (il est plus grand que chacun des pi ) et
donc il existe pi qui divise M. Mais alors pi divise aussi
1 = M − p1 . . . pn ce qui n’est pas possible car pi > 1. Il doit donc
exister un nombre premier qui n’est pas dans la liste p1 , . . . , pn . Arithmétique dans Z
On a démontré que tout entier est divisible par un nombre premier.
On a en fait un résultat beaucoup plus fort :
Théorème 9 (Théorème fondamental de l’arithmétique)
Soit n > 2 un nombre entier. Alors n s’écrit comme un produit de
nombres premiers. De plus, cette décomposition en produit de
premiers est unique à l’ordre des facteurs près.
Arithmétique dans Z
Exemple 10
La décomposition en facteurs premiers du nombre 42250 est
42250 = 2.53 .132
On peut éventuellement permuter l’ordre des nombres premiers qui
apparaissent dans le produit, mais hormis ceci, la décomposition est
unique par le théorème fondamental.
Arithmétique dans Z
L’existence de la décomposition est facile à prouver par récurrence.
Elle est clairement vraie pour n = 2. Pour n > 2, soit n est lui
même premier (auquel cas il n’y a rien à prouver) soit n est divisible
par un premier p et donc
n = p.c
avec c < n. Comme c est décomposable en produit de premiers par
l’hypothèse de récurrence, n aussi.
Arithmétique dans Z
L’unicité est un peu plus difficile, elle pourra se faire au moyen de
résultats sur le PGCD dont nous parlerons bientôt.
Arithmétique dans Z
Etant donné un nombrer entier positif quelconque n, peut-on
trouver un algorithme efficace pour déterminer la décomposition en
facteurs premiers de n ?
Pour petit un nombre (comme n = 1231 par exemple), la réponse
semble immédiate : on essaye de trouver tous les diviseurs à la main.
Arithmétique dans Z
Pour des nombres assez grands (plusieurs centaines de chiffres), on
ne connaît aucun algorithme de factorisation qui soit efficace dans
tous les cas.
C’est ce fait qui est à la base du fonctionnement de systèmes
comme le RSA.
PGCD
La notion de plus grand commun diviseur (PGCD) est
fondamentale dans beaucoup de questions d’arithmétique.
Soient a et b deux nombres entiers tels que a 6= 0 ou b 6= 0. Le
PGCD de a et de b est simplement le plus grand des diviseurs
communs à a et à b. Comme l’ensemble des diviseurs communs à a
et b est non vide (il y a au moins le nombre 1) et fini, il y en a
forcément un plus grand que tous les autres, c’est le PGCD.
PGCD
Remarque : Si a = b = 0 alors n’importe quel entier est un diviseur
commun à a et b. On ne peut donc à priori pas définir de PGCD.
Mais on pose par convention que PGCD(0,0) = 0.
PGCD
Exemple 11
Soient a = 12 et b = 8. Alors les diviseurs communs à a et b sont
{−4, −2, −1, 1, 2, 4}
de sorte que PGCD(12,8) = 4.
Remarque : si c divise a et c < 0 alors |c| = −c divise aussi a.
Donc pour calculer le PGCD, on peut se limiter à regarder les
diviseurs positifs de a et b. De plus, PGCD(a,b) > 0 avec égalité si
et seulement si a = b = 0.
PGCD
En fait, PGCD(a,b) = PGCD(|a|,|b|) de sorte qu’on peut toujours
supposer que a et b sont positifs lorsqu’on calcule un PGCD (quitte
à remplacer a par −a et/ou b par −b).
L’algorithme d’Euclide
Il existe un algorithme efficace pour calculer le PGCD des deux
entiers a > 0 et b > 0. Cet algorithme est basé sur la division
euclidienne et est appelé algoritme d’euclide. Il utilise le résultat
suivant :
Si r désigne le reste de la division de a par b, alors PGCD(a,b) =
PGCD(b, r ).
L’algorithme d’Euclide
Si r désigne le reste de la division de a par b, alors PGCD(a,b) =
PGCD(b, r ). Ceci est évident car
a = bq + r
donc si c divise a, b, alors c divise aussi r = a − bq. De même si c
divise b, r alors c divise aussi a = bq + r . Donc les ensembles de
diviseurs communs à a, b et à b, r sont identiques, et il suit que
PGCD(a,b) = PGCD(b, r ).
L’algorithme d’Euclide
Du coup, l’algorithme fonctionne ainsi pour calculer PGCD(a,b)
avec a > b > 0 :
1
Calculer le reste r de la division de a par b,
2
Si r = 0, alors PGCD(a,b) = PGCD(b, 0) = b,
3
Sinon, PGCD(a,b) = PGCD(b, r ) et on retourne au point 1
pour calculer PGCD(b, r ).
Comme à chaque étape, PGCD(a, b) est remplacé par PGCD(b, r )
avec 0 6 r < b, on est sûr de tomber sur r = 0 à un moment
donné. Donc l’algorithme terminera !
L’algorithme d’Euclide
Exemple 12
Soit a = 190 et b = 75. Alors
190 = 75.2 + 40
et
75 = 40.1 + 35
et
40 = 35.1 + 5
et
35 = 5.7 + 0
Donc PGCD(190, 75) = 5, le dernier reste non nul dans la suite des
divisions.
L’algorithme d’Euclide
Remarque : on peut déduire un résultat intéressant de l’algorithme
d’Euclide. On remarque que lors de la première étape de
l’algorithme, on remplace PGCD(a, b) par PGCD(b, a − bq). De
façon plus générale, pour passer d’une étape à la suivante dans
l’algorithme, on remplacera toujours le calcul de PGCD(u, v ) par le
calcul de PGCD(v , u − qv ) pour un certain entier q.
Ceci implique qu’à chaque étape, les entiers u et v sont des
combinaisons linéaires à coefficients entiers des entiers a et b de
départ.
L’algorithme d’euclide
Donc :
Théorème 13 (Identité de Bachet-Bézout)
Si a, b ∈ Z, alors il existe des nombres entiers x et y tels que
PGCD(a, b) = xa + yb.
Il est en fait possible de modifier un peu l’algorithme d’Euclide de
façon à ce que, en plus de calculer le PGCD, on détermine les
entiers x et y . C’est ce qu’on appelle l’algorithme d’Euclide
étendu (on ne rentre pas dans les détails ici).
PGCD
On a aussi :
Théorème 14
Deux entiers a, b ∈ Z ont un PGCD égal à 1 si et seulement si il
existe x, y ∈ Z tels que ax + by = 1.
Si PGCD(a, b) = 1, le résultat suit du théorème précédent.
Inversément si deux tels entiers x, y existent et si d | a, d | b alors
d | 1 ce qui implique d ∈ {−1, 1} donc PGCD(a,b) = 1.
PGCD
Si PGCD(a, b) = 1, on dit que les entiers a et b sont premiers
entre eux. Ceci n’implique évidemment pas que a et b sont
premiers.
Exemple 15
Les entiers 6 et 25 sont premiers entre eux.
Le lemme d’Euclide
Proposition 1 (Lemme d’Euclide)
Si p est premier et p | (ab) alors p | a ou p | b.
Si p ne divise pas a alors p et a sont premiers entre eux vu que p
n’admet que 1 et p comme diviseurs positifs. Donc il existe x et y
tels que
ax + py = 1
c’est-à-dire
abx + pby = b.
Mais comme p | ab il existe c tel que ab = pc et donc
p(cx + by ) = b
ce qui montre que p divise b.
Unicité dans le théorème fondamental
Le lemme d’Euclide permet de démontrer l’unicité dans le théorème
fondamental de l’arithmétique.
On procède à nouveau par récurrence sur n, le cas n = 2 étant
clair. Supposons n > 2 et soient
n = p1 . . . ps = q1 . . . qt
deux décompositions de n avec qi et pi des nombres premiers. On
veut montrer que s = t et que les pi sont égaux aux qi .
Unicité dans le théorème fondamental
On voit donc que p1 divise q1 . . . qt = q1 (q2 . . . qt ). Par le lemme
d’Euclide, soit p1 divise q1 (auquel cas p1 = q1 vu que p1 et q1
sont premiers) soit p1 divise q2 . . . qt . Si p1 = q1 on en déduit que
p2 . . . ps = q2 . . . qt =: m
et comme m < n, l’hypothèse de récurrence implique que s = t et
que tous les pi , qi sont égaux. Sinon p1 divise q2 . . . qt = m et par
l’hypothèse de récurrence à nouveau, p1 doit être égal à un des qi
(on peut supposer i = 2 sans perte de généralité). En simplifiant p1
et q2 on obtient par l’hypothèse de récurrence que les
décompositions
p2 . . . ps = q1 q3 . . . qt
sont égales dont s = t et les pi sont égaux aux qi . Ceci termine la
preuve.
Le théorème fondamental
On a donc démontré l’existence et l’unicité de la décompositions en
facteurs premiers d’un nombre entier ! On écrira souvent cette
décomposition sous la forme
αm
n = p1α1 p2α2 . . . pm
avec pi des nombres premiers distincts et αi des nombres entiers
positifs. Les pi sont donc uniques (à l’ordre près).
Le théorème fondamental
Comme son nom l’indique, le théorème fondamental est fort utilisé
dans les problèmes d’arithmétique sur les nombres entiers.
Remarquons que si a et b sont entiers, on peut toujours écrire
αm
a = p1α1 . . . pm
et
βm
b = p1β1 . . . pm
On peut supposer que les nombres premiers qui interviennent dans
la décomposition de a et b sont identiques quitte à poser αi = 0 si
pi n’apparaît pas dans a et βi = 0 si pi n’apparaît pas dans b.
Le théorème fondamental
On remarque aussi que le nombre
αm
a = p1α1 . . . pm
divise le nombre
βm
b = p1β1 . . . pm
si et seulement si αi 6 βi pour tout i = 1, . . . , m.
PGCD
Voici une des implications du théorème fondamental sur le calcul du
PGCD :
min (α1 ,β1 )
PGCD(a, b) = p1
min (αm ,βm )
. . . pm
.
PGCD
C’est évident car
min (α1 ,β1 )
p1
min (αm ,βm )
. . . pm
divise clairement à la fois a et b. De plus, si c est un diviseur
commun à a et à b alors le coefficient γi de pi intervenant dans la
décomposition de c est au plus αi et au plus βi . Donc
min (α1 ,β1 )
p1
min (αm ,βm )
. . . pm
est bien le plus grand diviseur commun à a et b !
Le théorème fondamental
Exemple 16
On a
16793868 = 22 .31 .50 .72 .110 .134 .170
et
13090 = 21 .30 .51 .71 .111 .130 .17
et donc
PGCD(16793868, 13090) = 21 .30 .50 .71 .110 .130 .170 = 14
Remarque : d’un point de vue algorithmique, il est beaucoup plus
efficace d’appliquer l’algorithme d’Euclide pour calculer le PGCD
que de de décomposer a et b en facteurs premiers et d’appliquer le
résultat dont on vient de parler.
Le système RSA
Expliquons à présent la façon dont fonctionne le RSA.
Un expéditeur (E) souhaite donc envoyer un message crypté à un
destinataire (D). Ils procéderont en plusieurs étapes.
Le système RSA
Première étape : D choisit deux nombres premiers p et q. Il choisit
de plus un nombre e tel que e est premier avec (p − 1)(q − 1).
Deuxième étape : D communique n = pq et e à E. Peu importe
qu’un utilisateur extérieur connaisse n et e, ces nombres ne seront
utilisés que pour crypter et pas pour décrypter. Donc D ne doit
prendre aucune précaution particulière en envoyant n et e à E.
Le système RSA
L’idée est que pour décrypter, on aura besoin de p et de q. Mais
comme D est le seul à les connaître (il ne doit donc les
communiquer à personne !) il sera le seul à pouvoir décrypter.
Si un utilisateur extérieur veut décrypter le message, il devra
factoriser le nombre n pour trouver p et q. Mais si on choisit p et q
très grands (plus de 100 chiffres), n = pq sera très grand aussi et
on ne connaît aucun algorithme efficace pour factoriser un si grand
nombre !
Le système RSA
Troisième étape : E code son message au moyen d’un élément
M ∈ Zn (éventuellement de plusieurs tels éléments si nécessaire).
Quatrième étape : E calcule M e dans l’anneau Zn (c’est-à-dire : il
fait le calcule modulo n). L’élément M e est le message crypté, il
l’envoie à D.
Le système RSA
Comment D fera-t-il pour décoder ? Il utilisera le théorème suivant :
Théorème 17
Soit n = pq avec p et q premier et e premier avec (p − 1)(q − 1). Il
existe alors d ∈ Z(p−1)(q−1) tel que ed = 1 dans l’anneau
Z(p−1)(q−1) . Pour cet élément d et pour M ∈ Zn on a :
(M e )d = M dans Zn .
Le système RSA
Et donc :
Cinquième étape : D calcule un élément d (comme dans le
théorème précédent) ainsi que (M e )d dans l’anneau Zn ce qui lui
permet de retrouver M.
Le système RSA
Remarque : D peut facilement trouver le nombre d nécessaire au
décryptage. En effet, comme e et (p − 1)(q − 1) sont premiers
entre eux, l’identité de Bachet-Bézout nous dit qu’il existe des
entiers x et y tels que
xe + y (p − 1)(q − 1) = 1.
Si on réduit cette égalité modulo (p − 1)(q − 1) on obtient bien
xe = 1
dans Z(p−1)(q−1) et D peut donc choisir d = x modulo
(p − 1)(q − 1). Le nombre x peut facilement être calculé par
l’algorithme d’Euclide étendu.
Le système RSA
Autre remarque : pour que le système RSA fonctionne en pratique,
il faut être capable de :
1
Déterminer rapidement de grands (plusieurs centaines de
chiffres) nombres premiers p et q,
2
Calculer rapidement les puissances M e , (M e )d ainsi que le
produit n = pq.
Le système RSA
Pour le calcul de puissances et de produit, on dispose d’algorithmes
d’exponentiation rapide et de multiplication rapide (on ne les
décrira pas ici). Le fait de devoir calculer des puissances et des
produits n’est donc pas un obstacle à l’application du RSA.
Le système RSA
Générer des nombres premiers de grande taille est un problème
beaucoup plus délicat.
En pratique, on peut générer un nombre donné au hasard et puis
tester si le nombre est bien premier en utilisant un test de primalité.
On ne donnera pas plus de détails ici.
Le système RSA
Est-on bien sûr que le système RSA est fiable ? D’après Jean-Paul
Delahaye :
"La confiance dans la sécurité du RSA n’est pas due à la
démonstration théorique que ce système est sûr, car une telle
démonstration n’existe pas. La confiance affichée provient de
l’échec répété, depuis plus de 20 ans, de toutes les tentatives pour
casser ce système ; ces tentatives n’ont conduit qu’à la formulation
de quelques précautions pour le choix des paramètres p, q, e, d ."
Jean-Paul Delahaye, Merveilleux nombres premiers, Belin-Pour la
science, 2000.
Arithmétique modulaire
Les applications (notamment le RSA) motivent l’étude de l’anneau
(Zm , +, .) des entiers modulo m. C’est le sujet de l’arithmétique
modulaire.
En particulier, on a vu que dans l’application du RSA, calculer
l’élément d revient à calculer un inverse multiplicatif de l’élément e
dans Z(p−1)(q−1) .
Arithmétique modulaire
Théorème 18
L’élément n ∈ Zm est inversible pour la multiplication si et
seulement si PGCD(n,m) = 1.
C’est évident car on a vu que PGCD(n,m) = 1 si et seulement si il
existe des entiers x et y tels que
nx + my = 1
et une telle égalité est satisfaite si et seulement si nx = 1 dans Zm
(et x sera alors l’inverse de n dans Zm ).
Arithmétique modulaire
En particulier, on obtient que :
Théorème 19
L’anneau (Zm , +, .) forme un corps si et seulement si m est premier.
Cela découle du théorème précédent vu que l’anneau sera un corps
si et seulement si tout élément non nul de Zm est inversible pour la
multiplication, c’est-à-dire si et seulement si PGCD(n,m) = 1 pour
tout n = 1, . . . , m − 1 (et ceci est bien équivalent à dire que m est
premier).
Arithmétique modulaire
On note
φ(m)
le nombre d’entiers compris entre 1 et m − 1 qui sont premiers avec
m. La fonction φ est appelée l’indicatrice d’Euler.
La fonction φ fournit donc le nombre d’éléments de Zm qui sont
inversibles.
Arithmétique modulaire
Exemple 20
On a φ(11) = 10 vu que 11 est premier (tous les nombres 1, . . . , 10
sont premiers avec 11). On a φ(15) = 8 vu que 15 = 3.5 et les
nombres 3, 6, 9, 12, 5, 10 ne sont pas premiers avec 15.
Arithmétique modulaire
La fonction φ est couramment utilisée en arithmétique, on peut
notamment montrer que :
Théorème 21
Si la décomposition de m en facteurs premiers est
m = p1α1 . . . pkαk
alors
1
1
φ(m) = m 1 −
... 1 −
.
p1
pk
Résumé des points importants du chapitre
1
La définition d’un anneau,
2
Les nombres premiers et le théorème fondamental de
l’arithmétique,
3
Le PGCD de deux nombres entiers, l’algorithme d’Euclide,
l’identité de Bachet-Bézout,
4
Le fonctionnement du RSA,
Résumé des points importants du chapitre
5
La caractérisation des éléments inversibles de l’anneau
(Zm , +, .),
6
La fonction φ d’Euler.
Téléchargement