Professional Documents
Culture Documents
1
1 Entiers et oprations sur les entiers
1.1 Taille d'un entier
Il existe plusieurs notations possibles pour les nombres entiers. En particulier, dans la numration de
position, les entiers peuvent tre reprsents par des mots nis sur un alphabet dont les symboles sont
usuellement appels chires. Ainsi le nombre entier qui donne la valeur (arrondie l'entier infrieur) de
cent euros en francs franais se note 657 en base 10. Ce mot de trois lettres (ou chires) qui dnote l'entier
657 signie que cet entier est gal
657 = 6 102 + 5 101 + 7 100 ,
c'est dire une somme de puissances de 10 conscutives coecientes par des nombres compris entre 0
et 9 = 10 1.
On comprend alors que par le mme procd, on peut crire cet entier dans d'autres bases B au moins
gales 2. Par exemple en base 2, puisque l'on a
657 = 1 29 + 0 28 + 1 27 + 0 26 + 0 25 + 1 24 + 0 23 + 0 22 + 0 21 + 1 20 ,
le nombre 657 peut s'crire en base 2 avec le mot de dix chires binaires 1010010001.
Nous voyons donc que selon la base de numration choisie le mot dnotant 657 peut tre plus ou moins
long. Et mme pour une base xe la longueur n'est pas unique, puisque on peut toujours prxer un
mot dnotant un entier par un mot de la forme 0k . Par exemple en base 10, les mots 657, 0657, 00657,
. . . dnotent tous le mme entier. Lorsque l'criture ne comprend pas de 0 en tte, on parle d'criture
standard.
Nous donnons donc la dnition suivante de la taille d'un entier.
Dnition 1.1. La taille d'un entier n > 0 en base B 2, note |n|B , est la longueur du plus petit mot
le dnotant dans cette base. Autrement dit, c'est le nombre de chires ncessaires pour l'criture standard
de l'entier n en base B , c'est--dire sans zros superus gauche.
Par exemple, |657|10 = 3 et |657|2 = 10.
Une expression de la taille d'un entier est donne par le throrme qui suit.
Thorme 1.1.
|n|B = blogB nc + 1.
Dans ce thorme, la notation bxc dsigna la partie entire du rel x, c'estdire le plus grand
nombre entier infrieur ou gal x, et la notation logB x dsigne le logarithme en base B de x, c'est
dire logB x = ln B.
ln x
La formule exacte de l'expression de la taille d'un entier donne par le thorme 1.1 peut se simplier
par l'approximation
|n|B logB n,
approximation d'autant plus valable que l'entier n est grand.
La taille d'un entier crot donc logarithmiquement en fonction de sa valeur, et comme la croissance des
fonctions logarithmiques est assez lente, cela explique la capacit de la numration de position dnoter
de trs grands nombres entiers.
Corollaire 1.1.
|n|B ln B 0
= logB B 0 .
|n|B 0 ln B
Ainsi pour de trs grands entiers, le rapport des tailles dans deux bases direntes est approximati-
vement constant. Dans le cas des bases B = 10 et B 0 = 2 ce rapport est
log10 2 0.3010299957,
autrement dit la taille de l'criture en base 10 d'un entier est approximativement gale 30% de celle en
base 2.
2
1.2 Les entiers dans l'ordinateur
Il faut distinguer entre les entiers machine qui sont ceux reprsentables dans un registre du processeur,
et les autres qui ne le sont pas, souvent nomms entiers multiprcision.
Les registres des processeurs ont une taille xe (couramment 32 ou 64 bits sur les PC actuels). Les
entiers machine sont donc les entiers reprsentables par des mots binaires d'une taille xe n, c'estdire
les entiers de l'intervalle [[0, 2n 1]] dans leur version non signe, ou les entiers de [[2n1 , 2n1 1]] dans
leur version signe.
est reprsent par le signe s et l'entier N ainsi qu'un tableau des entiers machine a0 , a1 ,. . . aN .
Bien videmment, pour les entiers multiprcision, il faut programmer les oprations arithmtiques de
base (addition, multiplication, . . . ), et c'est ce que fait la bibliothque GMP.
Les oprations d'addition et de soustraction apparaissant aux lignes 3 et 5 de l'algorithme 1 sont des
oprations sur les entiers machine.
Le nombre d'oprations sur les entiers machine requis dans l'addition de deux entiers multiprcision
de taille N par l'algorithme 1 est en O(N ). Cet algorithme est donc linaire en la taille des entiers ajouts.
P On peut facilement adapter l'algorithme 1 en un algorithme d'addition de deux polynmes A(X) =
0iN ai X et B(X) = 0iN bi X . L'algorithme est alors plus simple car il est inutile de grer les
i i
P
retenues comme dans le cas des entiers.
L'addition de la ligne 2 de l'algorithme 2 peut tre une addition de deux entiers, deux rationnels, deux
rels, deux complexes selon l'espace des coecients des polynmes considrs.
1. GNU Multiple Precision, http://gmplib.org/
3
Algorithme 2 Addition de deux polynmes
Entre: A(X) =P 0iN ai X i et B(X) = 0iN bi X i deux polynmes de degr N
P P
2: ci ai + bi
3: n pour
retourner ci X i
P
4:
0iN
1.3.2 La multiplication
2: ci 0
3: pour j = 0 . . . M faire
4: p ai bj . p s'crit p = p1 B + p0 avec 0 pi < B
5: ci ci + p0 B i+j + p1 B i+j+1
6: n pour
7: n pour
retourner (1)s+t ci B i .
P
8:
0iN
Le nombre d'oprations (additions et multiplications) sur les entiers machines dans le calcul du produit
de deux entiers de taille N et M est en O(N M ). Cet algorithme est donc quadratique en la taille des
entiers multiplis.
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 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173 179 181 191 193 197
199 211 223 227 229 233 239 241 251 257 263 269 271 277 281
283 293 307 311 313 317 331 337 347 349 353 359 367 373 379
383 389 397 401 409 419 421 431 433 439 443 449 457 461 463
467 479 487 491 499 503 509 521 523 541 547 557 563 569 571
577 587 593 599 601 607 613 617 619 631 641 643 647 653 659
661 673 677 683 691 701 709 719 727 733 739 743 751 757 761
769 773 787 797 809 811 821 823 827 829 839 853 857 859 863
877 881 883 887 907 911 919 929 937 941 947 953 967 971 977
983 991 997
Table 2 Liste des nombres premiers infrieurs 1000.
Z des entiers relatifs, et ce sont alors les nombres ayant exactement 4 diviseurs.
4
2. Le nombre (n) de nombres premiers infrieurs ou gaux n est une fonction croissante avec n
quivalente l'inni
n
(n)
ln n
(Hadamard, de la Valle Poussin, n XIXme).
3. Plus prcisment, on a pour tout entier n 59
n 1 n 3
1+ < (n) < 1+ .
ln(n) 2 ln(n) ln(n) 2 ln(n)
4. Lorsque t est un entier au moins gal 3, le nombre t de nombres premiers de taille t bits est
minor par
2t2
t = (2t ) (2t1 ) > .
(t 1) ln(2)
entier de taille t bits : O(2t/2 ) divisions. Soit un algorithme exponentiel en la taille de l'entier tester.
Un thorme d Miller
Thorme 1.4. Thorme de Miller
Soit n > 1 un entier impair. On pose n 1 = 2s u avec u impair. S'il existe un entier 1 < a < n
tel que au 6= 1 (mod n) et a2 u 6= 1 (mod n) pour i [[0, s 1]], alors n est compos, et l'entier a est
i
5
Algorithme 5 Test de non primalit de Miller-Rabin
Entre: n un entier impair au moins gal 3.
Sortie: dterminer si n est premier.
1: choisir au hasard a [[2, n 2]]
2: calculer g = pgcd(a, n)
3: si g > 1 alors
4: retourner NON
5: n si
6: calculer u et s tels que n 1 = 2s u avec u impair
7: b0 au (mod n)
8: si b0 = 1 alors
9: retourner (probablement) OUI
10: n si
11: pour 1 i s faire
12: bi b2i1 (mod n)
13: n pour
14: si bs = 1 alors
15: j min{0 i | bi+1 = 1}
16: sinon
17: retourner NON
18: n si
19: g pgcd(bj + 1, n)
20: si g = 1 ou g = n alors
21: retourner (probablement) OUI
22: sinon
23: retourner NON
24: n si
2 Groupes
2.1 Structure de groupe
Dnition 2.1. Un groupe est un ensemble G muni d'une opration interne, note ci-dessous ?, tel que
les proprits suivantes sont satisfaites :
associativit l'opration ? est associative
a, b, c G (a ? b) ? c = a ? (b ? c) ;
Le groupe est dit commutatif ou ablien si en plus, l'opration ? est commutative, c'est--dire si
a, b G a ? b = b ? a.
Exemples
1. Les ensembles usuels de nombres signs entiers Z, rationnels Q, rels R, complexes C munis de
l'opration d'addition usuelle (+) sont des groupes commutatifs innis.
2. Les ensembles de nombres entiers modulaires (Z/nZ) muni de l'addition modulo n sont des groupes
commutatifs nis.
3. Si on enlve 0, les ensembles K \ {0}, avec K = Q, ou R, ou C sont des groupes commutatifs innis
pour la multiplication usuelle ().
4. Les ensembles R[X] des polynmes coecients dans R, R tant un anneau (cf la section 3), par
exemple l'un des ensembles de nombres cits ci-dessus, muni de l'addition usuelle des polynmes
sont des groupes commutatifs innis.
6
5. L'ensemble Sn des permutations des entiers de 1 n, muni de l'opration () de composition est
un groupe ni non commutatif.
Contre-exemples
1. L'ensemble N des entiers naturels muni de l'addition usuelle n'est pas un groupe : hormis 0, lment
neutre pour l'addition, aucun entier ne possde d'inverse pour l'addition (il manque les nombres
ngatifs).
2. De mme, l'ensemble A des mots sur un alphabet A, muni de l'opration de concatnation n'est
pas un groupe : hormis le mot vide, lment neutre pour la concatnation, aucun mot ne possde
d'inverse pour la concatnation.
3. Les ensembles de nombres signs munis de l'opration de multiplication usuelle () ne sont pas
des groupes : le nombre 0 interdit l'existence d'un lment neutre. Mme si on enlve le nombre 0
de ces ensembles la structure n'est pas toujours celle d'un groupe. Par exemple, Z \ {0} n'est pas
un groupe puisque en dehors de 1 et 1 aucun entier n'admet d'inverse pour la multiplication. En
revanche, Q \ {0}, R \ {0} et C \ {0} sont des groupes multiplicatifs (innis et commutatifs).
4. Les ensembles Z/nZ\{0} munis de la multiplication modulo n ne sont pas des groupes. En revanche
les ensembles Z/nZ des lments inversibles pour la multiplication modulo n sont des groupes nis
ayant (n) lments, o dsigne la fonction indicatrice d'Euler dnie pour n 2 par
Y 1
(n) = n (1 )
p
p|n
p parcourant les nombres premiers divisant n. Une autre Q expression possible pour s'obtient
partir de la dcomposition en facteurs premiers de n = ri=1 psi i par
r
! r
Y Y
psi i = (psi i psi i 1 ).
i=1 i=1
Remarque Lorqu'un ensemble est muni d'une opration interne qui ne satisfait que les deux premires
proprits (associativit et existence d'un lment neutre), la structure algbrique qui en rsulte est
nomme monode. L'ensemble des entiers naturels munis de l'addition, et l'ensemble des mots sur un
alphabet muni de la concatnation sont des monodes.
7
et
da : G G
x 7 xa
sont des bijections.
Une consquence de ce thorme est que si l'opration de groupe est reprsente par un tableau deux
entres x et y , lments du groupe, donnant l'lment x y , alors toutes les lignes de ce tableau, ainsi que
toutes les colonnes contiennent chaque lment du groupe une et une seule fois. Autrement dit, ce tableau
est un carr latin. Les deux tableaux prsents en 4 montrent deux carrs latins d'ordre 4 reprsentants
le groupe additif des entiers modulo 4 et le groupe multiplicatif des entiers non nuls modulo 5.
+ 0 1 2 3 1 2 3 4
0 0 1 2 3 1 1 2 3 4
1 1 2 3 0 2 2 4 1 3
2 2 3 0 1 3 3 1 4 2
3 3 0 1 2 4 4 3 2 1
a b c d
b a d c
c d a b
d c b a
a b c d e a b c d e
b c d e a b d a e c
c d e a b c e d b a
d e a b c d a e c b
e a b c d e c b a d
8
Thorme 2.2. (Lagrange) Soit G un groupe ni d'ordre n, d'lment neutre 1. Alors quelque soit
l'lment a G, il existe un entier m > 0 tel que
am = 1.
De plus, le plus petit entier non nul m satisfaisant cette relation divise n.
Dnition 2.2. Pour un lment a d'un groupe ni, le plus petit entier m satisfaisant am = 1 est appel
ordre de cet lment.
Corollaire 2.1. Pour tout lment a d'un groupe ni d'ordre n, on a
an = 1.
Corollaire 2.2. L'inverse d'un lment a d'un groupe ni d'ordre n est gal
a1 = an1 .
Remarque : Deux cas particuliers du corollaire 2.1 sont le (petit) thorme de Fermat et le thorme
d'Euler rappels ci-dessous.
Thorme 2.3. (Fermat) Soit n un nombre premier. Alors pour tout entier a non divisible par n on a
an1 (mod n) = 1.
Thorme 2.4. (Euler) Soit n 2 un entier. Pour tout entier a premier avec n on a
a(n) (mod n) = 1.
Exemples :
1. Les groupes additifs Z/nZ sont cycliques d'ordre n, et tout entier premier avec n est un gnrateur.
2. Lorsque n est un nombre premier, Z/nZ \ {0} est un groupe cyclique d'ordre n 1.
Tous les groupes nis ne sont pas cycliques. En eet, il existe des groupes nis non commutatifs
(cf 2.1), et les groupes cycliques sont tous commutatifs. Mais il existe aussi des groupes nis commutatifs
non cycliques, comme par exemple le groupe d'ordre 4 (Z/2Z Z/2Z, +) que nous avons vu dans la
partie 2.2 et dont tous les lments non nuls sont d'ordre 2.
Dans un groupe cyclique, une fois x un gnrateur a, l'opration de ce groupe revient une addition
modulo l'ordre du groupe. En eet, pour deux lments quelconques du groupe x = ai et y = aj , on a
x y = ai aj = a(i+j) (mod m)
.
Du point de vue de l'informaticien, il est donc toujours possible de reprsenter les lments d'un
groupe cyclique d'ordre m par les entiers compris entre 0 et m 1 et d'implanter l'opration de ce groupe
par une addition modulo m.
tant donn un groupe cyclique G d'ordre n, il est possible de trouver un gnrateur par une mthode
probabiliste, si on dispose d'un gnrateur alatoire d'lments de G. Le principe consiste tirer un
lment au hasard dans G, et de vrier qu'il est bien gnrateur de G. Pour cette vrication, il sut
de s'assurer que pour aucun diviseur de n, l'lement choisi au hasard n'a pour ordre ce diviseur. Ceci est
facilement faisable ds lors que l'on connat la dcomposition en facteurs premiers de n. L'algorithme 6
suit ce principe.
Les calculs de puissances faire la ligne 2 peuvent tre ecacement eectus grce l'algorithme
d'exponentiation rapide 7 dcrit page 10.
9
Algorithme 6 Trouver un gnrateur d'un groupe cyclique
Entre: G un groupe cyclique d'ordre n, et n = ki=1 pei .
Q i
Sortie: g un gnrateur de G.
1: choisir un lment g G au hasard
2: pour chaque facteur premier pi de n, vrier que g n/pi 6= 1.
3: si c'est le cas alors
4: retourner g
5: sinon
6: revenir en [1]
7: n si
L'algorithme 6 est ecace puisque pour chaque lment g choisi au hasard dans G, la probabilit qu'il
soit un gnrateur est gale (n)
n , et comme pour tout entier n 5, on a
n
(n) > ,
ln ln n
cette probabilit est suprieure ln ln
1
n , ce qui signie qu'en moyenne, ln ln n tirages alatoires d'lments
de G susent pour trouver un gnrateur.
2.5 Exponentiation
L'exponentiation dans un groupe multiplicatif (ou la multiplication par un entier dans un groupe
additif) est une opration frquente en arithmtique, et en cryptographie (cf protocole d'change de
cls de Die-Hellman, cryptosystme RSA, cryptosystme de El Gamal,. . . ). Il est donc utile qu'on s'y
attarde un peu.
Le problme de l'exponentiation est celui du calcul eectif et ecace de am lorsque a est un lment
d'un groupe (ou d'un monode), et m un entier relatif quelconque.
Bien entendu il est toujours possible de calculer am en suivant la dnition am = a . . . a, c'est--dire
en eectuant m 1 multiplications d'lments de G. Cependant, cette mthode devient impensable en
pratique ds lors que m devient grand, ce qui est souvent le cas en cryptographie.
Il nous faut donc un algorithme d'exponentiation plus rapide. L'algorithme 7 rpond ecacement
notre problme. Sa description suppose donns la reprsentation des lments du groupe, et en particulier
de son lment neutre 1, ainsi que l'implantation des oprations de multiplication et d'lvation au carr
dans ce groupe (cette dernire opration pouvant toujours tre ralise grce la premire).
10
En fait, si on n'utilise que des exposants positifs (m > 0), cet algorithme ne s'applique pas uniquement
au calcul de la puissance d'un lment d'un groupe, puisque qu'alors on n'a pas besoin de calculer d'inverse
de a (ligne 6). En particulier, on peut l'appliquer pour le calcul de am lorsque a est dans (Z, ) ou dans
(Z/nZ).
Le tableau 7 montre les direntes tapes de cet algorithme appliqu a = 2 N et m = 13 (la colonne
i indique les numros des tapes de la boucle tantque, et dans la colonne de la variable k l'criture binaire
est inscrite entre parenthses).
i r s k
1 2 13 (1101)
1 2 4 6 (110)
2 2 16 3 (11)
3 32 256 1 ( 1)
8192
213 = 8192.
Remarque Dans un groupe ni d'ordre n, le calcul de l'inverse (ligne 6 de l'algorithme 7) d'un lment
a peut toujours se faire par le calcul de an1 . Ainsi le calcul de l'inverse se ramne un calcul d'expo-
nentiation. Toutefois, dans certaines structures il existe d'autres mthodes de calcul d'un inverse (cf le
calcul d'inverse dans la section 3.2.4 par exemple).
3 Anneaux
3.1 Structure d'anneau
Dnition 3.1. Un anneau est un ensemble A muni de deux oprations internes, notes usuellement +
et (ou ), tel que les proprits suivantes soient satisfaites :
groupe additif A muni de l'opration + est un groupe commutatif ;
mutiplication associative l'opration est associative
a, b, c A (a b) c = a (b c) ;
11
Exemples
1. Z muni de l'addition et de la multiplication usuelle des entiers est un anneau commutatif.
2. De mme pour Q, R et C.
3. Z/nZ muni de l'addition et de la multiplication modulo n des entiers est un anneau commutatif.
4. L'ensemble R[X] des polynmes coecients dans un anneau R, muni de l'addition et de la
multiplication usuelle des polynmes est un anneau commutatif.
5. L'ensemble Mn (R) des matrices carres d'ordre n coecients dans un anneau R muni de l'addition
et de la multiplication usuelle est un anneau non commutatif.
Le tableau 8 montre les direntes tapes de l'excution de l'algorithme 8 sur les entiers a = 651 et
b = 69.
i q r a1 b1
651 69
1 9 30 69 30
2 2 9 30 9
3 3 3 9 3
4 3 0 3 0
pgcd(651,69) = 3
12
Algorithme 9 Algorithme binaire de calcul du pgcd
Entre: a et b deux entiers positifs
Sortie: d = pgcd(a, b)
1: Soient a1 a, b1 b et p 1
2: tant que a1 et b1 sont tous deux pairs faire
3: a1 a1 2, b1 b1 2 et p 2p
4: n tant que
5: tant que a1 6= 0 faire
6: tant que a1 pair faire
7: a1 a1 2
8: n tant que
9: tant que b1 pair faire
10: b1 b1 2
11: n tant que
12: si a1 b1 alors
13: a1 (a1 b1 ) 2
14: sinon
15: t (b1 a1 ) 2
16: b1 a1
17: a1 t
18: n si
19: n tant que
20: retourner p b1
a1 b1 p
1200 1152 1
600 576 2
300 288 4
150 144 8
75 72 16
33 9 16
12 9 16
3 3 16
0 3 16
pgcd(1200,1152) = 48
On peut adapter l'algorithme d'Euclide de calcul du pgcd pour calculer les coecients de Bezout
d'un couple d'entiers. L'algorithme d'Euclide tendu 10 calcule ces coecients pour un couple d'entiers
positifs.
Le tableau 10 montre une trace de l'excution de l'algorithme 10 sur les entiers a = 651 et b = 69.
Remarque : Les coecients de Bezout ne sont pas uniques. Par exemple, on a pu voir que
pgcd(651, 69) = 651 30 69 283
= 651 7 69 66.
13
Algorithme 10 Algorithme d'Euclide tendu
Entre: a, b deux entiers positifs
Sortie: d = pgcd(a, b) et u, v coecients de Bezout tels que d = au + bv
1: a1 a, b1 b
2: u1 0, u2 1, v1 1, v2 0
3: tant que b1 6= 0 faire
4: Calculer q, r tels que a1 = b1 q + r avec 0 r < b1
5: x u2 qu1 , y v2 qv1
6: a 1 b1 , b1 r
7: u2 u1 , u1 x
8: v 2 v1 , v1 x
9: n tant que
10: retourner d = a1 , u = u2 , v = v2
i q r u1 u2 v1 v2 a b
0 0 1 1 0 651 69
1 9 30 1 0 -9 1 69 30
2 2 9 -2 1 19 -9 30 9
3 3 3 7 -2 -66 19 9 3
4 3 0 -23 7 217 -66 3 0
3 = 651 7 + 69 66
ce qui revient dire que la rduction modulo n du coecient v est l'inverse de a dans l'anneau Z/nZ,
a1 (mod n) = v (mod n).
Pour calculer l'inverse modulo n d'un entier a premier avec n, il sut de calculer le coecient de a
dans une relation de Bezout et rduire ce coecient modulo n. C'est ce que fait l'algorithme 11.
Le tableau 11 montre une trace de l'excution de l'algorithme 10 sur les entiers a = 217 et n = 23.
14
i q r v1 v2 a1 b1
0 1 0 23 217
1 0 23 0 1 217 23
2 9 10 1 0 23 10
3 2 3 -2 1 10 3
4 3 1 7 -2 3 1
5 3 0 -23 7 1 0
a1 mod 23 = 7 mod 23 = 7.
k 0 1 2 3 4 5 6 7 8 9 10
k (mod 11) 0 1 4 9 5 3 3 5 9 4 1
k 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
k (mod 11) 0 1 4 9 1 10 6 4 4 6 10 1 9 4 1
Table 12 Carrs modulo 11 et modulo 15
3.3 Racines carres modulo n
Observons les carrs modulo 11 et modulo 15 (cf tables 12).
Nous constatons que modulo 11, seuls les nombres 0, 1, 3, 4, 5 et 9 sont des carrs parfaits, et qu'hormis
0, les autres sont carrs de deux nombres. Et modulo 15, seuls 0, 1, 4, 6, 9 et 10 sont des carrs parfaits
et que 0 est le carr d'un seul nombre, 6, 9 et 10 sont carrs de deux nombres, et 1 et 4 sont carrs de
quatre nombres.
Donc une quation du type
x2 = a (mod n), (1)
dans laquelle n est un entier naturel x, a un entier compris entre 0 et n 1 et x l'inconnue, peut
avoir 0, 1 ou plusieurs solutions.
Les questions qui se posent au sujet de l'quation 1 sont
1. comment connatre l'existence d'une solution ?
2. si elle admet des solutions combien en admet-elle ?
3. comment les calculer ?
Nous allons rpondre ces questions d'abord dans le cas o n est un nombre premier, puis ensuite
dans le cas particulier o n est le produit de deux nombres premiers impairs.
Nombre de solutions : Comme l'ensemble Z/pZ des entiers modulo p est un corps lorsque p est un
nombre premier (cf section 4), le nombre de solutions que peut avoir une telle quation ne peut pas
dpasser deux.
En fait seul dans le cas a = 0 l'quation (1) admet une seule solution. En eet lorsque a 6= 0, si on
vrie facilement que si l'quation admet une solution r, alors elle admet aussi n r pour solution, et
comme p est impair, r et p r sont de parits direntes et donc dirents.
Donc l'quation 1 avec a 6= 0 possde 0 ou 2 solutions.
Lorsqu'elle en possde deux, on dit que l'entier a est un rsidu quadratique modulo p.
15
Algorithme 12 Algorithme de dcision d'existence d'une racine carre modulo un nombre premier
Entre: p un nombre premier, a un entier compris entre 1 et p 1.
Sortie: Vrai si a est un rsidu quadratique modulo p, Faux dans le cas contraire.
p1
s a 2 (mod p)
si s = 1 alors
retourner Vrai
sinon
retourner Faux
n si
Calcul des solutions : Nous allons limiter le calcul des solutions dans le cas o p (mod 4) = 3 3 .
On suppose que a est un rsidu quadratique modulo p. Dans ce cas, on peut vrier que le nombre r
dni par
p+1
r=a 4 (mod p)
est une racine carre de a. En eet
p+1 p1
r2 = a 2 =aa 2 = a.
Exemples
1. Q, R et C munis de l'addition et la multiplication usuelles sont des corps innis commutatifs.
2. Si p est un nombre premier Z/pZ muni de l'addition et de la multiplication modulo p est un corps ni
commutatif. On note Fp le corps des entiers modulo p. Ces corps sont appels corps nis premiers.
3. Il existe des mthodes de calcul des solutions dans les autres cas un peu plus complexe, mais qui ne nous intressent
pas.
16
4.2 Proprits des corps
1. L'lment neutre de l'addition est un lment absorbant pour la multiplication, c'estdire
a K a 0 = 0 a = 0.
2. Dans un corps, on a
a a0 = 0 a = 0 ou a0 = 0.
Autrement dit, il n'existe pas de diviseurs de 0.
+ 0 1 a b
0 0 1 a b
1 1 0 b a
a a b 0 1
b b a 1 0
0 1 a 1+a
0 0 0 0 0
1 0 1 a 1+a
a 0 a 1+a 1
1+a 0 1+a 1 a
17
Nous avons donc obtenu un corps quatre lments F4 = {0, 1, a, 1 + a}.
On peut remarquer que a2 = 1 + a ou encore a2 a 1 = a2 + a + 1 = 0 (souvenons nous qu'en
caractristique deux, 1 = 1). Autrement dit dans le corps F4 , a est une racine du polynme P (X) =
X 2 + X + 1 F2 [X] (qui n'en a pas dans F2 ).
Si on observe bien les lments de F4 et l'arithmtique obtenue, on peut voir F4 comme l'ensemble des
polynmes coecients dans F2 de degr au plus 1. L'addition dans ce corps n'est alors rien d'autre que
l'addition usuelle des polynmes et la multiplication dans ce corps rien d'autre que la multiplication des
polynmes modulo le polynme P (X) = X 2 + X + 1, la rduction modulo P (X) revenant considrer
que X 2 = X + 1.
Remarques : Cette situation est tout fait analogue celle utilise pour dnir le corps C des nombres
complexes, dans lequel on exprime souvent les nombres complexes sous forme algbrique z = a + ib, avec
a, b R, forme qui exprime les nombres complexes sous forme polynomiale de degr au plus 1 en i. La
forme algbrique de la somme de deux nombres complexes est dnie comme la somme des polynmes
en i les reprsentants, et celle du produit par multiplication polynomiale rduite modulo le polynme
i2 + 1 = 0 (i2 ).
Choix du polynme : Pour dnir le corps F4 , aurait-on pu choisir un autre polynme ? Pour l'ad-
dition peu importe le choix du polynme. En revanche, le polynme inue sur la multiplication. Par
exemple, aurait-on pu choisir Q(X) = X 2 + X ?
La rponse est ngative, parce qu'alors on aurait
a(1 + a) = a + a2 = 0,
et on aurait deux lments non nuls de K dont le produit est nul, ce qui est impossible dans un corps.
L'existence de diviseurs de zro provient du fait que le polynme Q(X) = X(1 + X) n'est pas irrductible
dans F2 [X].
Exemples :
1. P (X) = X 2 + 1 est irrductible dans R[X].
2. En revanche, P (X) = X 2 + 1 n'est pas irrductible dans F2 [X].
3. Les polynmes de degr 3 irrductibles dans F2 [X] sont X 3 + X 2 + 1 et X 3 + X + 1.
4. De manire gnrale, tout polynme de degr 1 est irrductible dans K[X] et ceci quelque soit le
corps, ni ou non.
Quels sont les polynmes irrductibles ? Combien y en a-t-il ? Comment les reconnatre ? La rponse
est facile pour les corps des rels et des complexes.
1. Dans R[X] les polynmes irrductibles sont tous les polynmes de degr 1 et les polynmes de degr
2 dont le discriminant (le fameux = b2 4ac) est ngatif.
2. Dans C[X] les polynmes irrductibles sont tous les polynmes de degr 1 et eux seulement.
Dans le cas des corps nis, on admettra le thorme suivant qui donne l'existence de polynmes
irrductibles de tout degr.
Thorme 4.1. Soit p un nombre premier. Pour tout entier n 1 il existe un polynme irrductible
coecients dans Fp de degr n.
Le thorme suivant donne une condition ncessaire et susante pour qu'un polynme coecient
dans un corps ni soit irrductible.
18
Thorme 4.2. Soit Fq un corps q Un polynme P Fq [X] de degr n 1 est irrductible si et
seulement si
1. P divise le polynme X q X ,
n
Ds lors que l'on connat les diviseurs premiers du degr n (ce qui est quivalent connatre la
factorisation de n) ce thorme donne un algorithme de dcision d'irrductibilit d'un polynme. C'est
l'algorithme 14.
19