Vous êtes sur la page 1sur 183

Master-1 de mathmatiques (MAlg 1), 2004/2005

module MAlg 1 "Algbre" (Master-1, MAT 401i)


A. A. Pantchichkine

Institut Fourier, B.P.74, 38402 St.Martin dHres, FRANCE


e-mail : panchish@mozart.ujf-grenoble.fr, FAX : 33 (0) 4 76 51 44 78
Rsum
Mon cours porte sur les fondements algbriques necssaires pour la poursuite dtudes en M2P
"Cryptologie, Scurit et Codage dInformation" (mais aussi souhaitables pour M2R, dans
la gomtrie algbrique et la thorie des nombres).
Il sagit premirement des outils dalgbre commutative : anneaux, corps, polynmes utiliss en
thorie des codes-correcteurs derreurs
cryptologie clef publique.
Il existe une analogie profonde entre lensemble Z des nombres entiers et lensemble des polynmes
Q[x] coecients dans lensemble Q des nombres rationnels (ou lensemble des polynmes K[x]
coecients dans un corps K). En eet, tous les deux ensembles sont des anneaux avec une division
euclidienne (division avec reste).
Il est utile dtudier la divisibilit des polynmes de point de vue de divisibit des nombres, et
rciproquement, on expliquera dans le cours comment on peut voir les nombres comme un analogue
des fonctions. Dans le cours on dveloppe systematiquement cette analogie : le thorme chinois
des restes est analogue au thorme de linterpolation de Lagrange, ce que permet deectuer la
multiplication rapide des polynmes. Les polynmes irrductibles sont analogues des nombres premiers.
La thorie des corps nis est entirement base sur cette analogie.
Vers la n du cours on considre les systmes algbriques sur Z ou sur un corps ni vus comme
des varits algbriques.
Table des matires
I Arithmtique lmentaire 6
1 Les entiers 6
1.1 Divisibilit des entiers. Lien de larithmtique avec lalgbre et lanalyse. . . . . . . . . . . 6
1.2 Lien de larithmtique avec linformatique et lalgorithmique. . . . . . . . . . . . . . . . . 9
1.3 Application la multiplication rapide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 pgcd, ppcm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5 Congruences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2 Entiers modulo n 21
2.1 Relations dquivalence et ensembles quotients . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Arithmtique modulo n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Une procdure pour calcul de a
m
mod n en Maple . . . . . . . . . . . . . . . . . . . . . . 23
3 Rappels sur la notion de groupe, exemples 26
3.1 Structure de groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Exemple : lments inversibles mod n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 Sous-groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.4 Classes gauche, droite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.5 Sous-groupes distingus, groupes quotient . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.6 Ordre dun lment, thorme de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4 Rappels sur la notion danneau, exemples 36
4.1 Structure danneau et idaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2 Anneau quotient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3 Idaux premiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.4 Divisibilit dans les anneaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.5 Anneaux euclidiens et anneaux principaux . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.6 Dcomposition en facteurs premiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5 Thorme des restes chinois 44
5.1 Thorme des restes dans les anneaux principaux . . . . . . . . . . . . . . . . . . . . . . . 44
5.2 Application : lments inversibles mod n . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.3 Application la cryptographie : RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.4 Principaux protocoles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6 Primalit 52
6.1 Z/pZ est un corps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.2 Petit thorme de Fermat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.3 Nombres pseudopremiers de Fermat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
II Polynmes et corps nis 56
2
7 Polynmes 56
7.1 Anneau de polynmes, division euclidienne . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.2 Division euclidienne sur les anneaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.3 Valeurs et racines dun polynme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
7.4 Formule dinterpolation de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.5 Anneau de polynmes plusieurs variables . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8 Carrs dans Z/pZ 66
8.1 Racines primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.2 Symbole de Legendre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.3 Congruence dEuler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.4 Lois de rciprocit de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
8.5 Une dmonstration lmentaire de la loi de rciprocit . . . . . . . . . . . . . . . . . . . . 74
8.6 Une dmonstration de la loi de rciprocit utilisant sommes de Gauss . . . . . . . . . . . . 79
8.7 Nombres pseudopremiers dEuler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
8.8 Loi de rciprocit quadratique et tests de primalit. . . . . . . . . . . . . . . . . . . . . . . 83
9 Notions de corps et despace vectoriel, rappels et exemples 88
9.1 Corps des fractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
9.2 Caractristique dun corps, sous-corps premier . . . . . . . . . . . . . . . . . . . . . . . . . 89
9.3 Modules et espaces vectoriels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
9.4 Rappels sur les espaces vectoriels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
9.5 Matrices de changement de bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
9.6 Caractres dun groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
10 Extensions. 95
10.1 Polynmes irrductibles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
10.2 Extensions, degr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
10.3 Elments algbriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
10.4 Corps de rupture, corps de dcomposition . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
10.5 Sous-groupes nis dans K

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
11 Morphisme de Frobenius, structure des corps nis 103
11.1 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
11.2 Polynmes sur les corps nis. Nombre de polynmes irrductibles . . . . . . . . . . . . . . 104
11.3 Construction disomorphismes partir des polynmes irrductibles . . . . . . . . . . . . . 110
11.4 Thorme de la base normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
12 Algorithme de factorisation de Berlekamp dans F
q
[X] 114
III Equations algbriques et varits anes 116
13 Equations algbriques et varits anes 116
13.1 Systmes algbriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
13.2 Varits anes (prparation). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
13.3 Rsolution dun systme linaire dans un anneau euclidien . . . . . . . . . . . . . . . . . . 118
13.4 Systmes diophantiens linaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
13.5 Varits algbriques (exemples) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
3
13.6 Le principe de MinkowskiHasse pour les formes quadratiques . . . . . . . . . . . . . . . . 128
13.7 Espace projectif P
n
, varits algbriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
14 Courbes planes. 132
14.1 Courbes planes anes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
14.2 Courbes planes projectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
14.3 Points singuliers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
14.4 Equations cubiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
14.5 Points des courbes algbriques sur les corps nis (exemples) . . . . . . . . . . . . . . . . . 140
IV Complments et annexes 151
A Annexe : Postulat de Bertrand (C.Moser) 151
A.1 Construction dune table de nombres premiers. . . . . . . . . . . . . . . . . . . . . . . . . 154
B Annexe : Factorisation des Polynmes (F. Sergeraert) 157
B.1 Rappels sur les corps nis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
B.2 Bases de la mthode de Berlekamp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
B.3 Trouver les facteurs irrductibles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
B.4 Factorisation des polynmes coecients entiers. . . . . . . . . . . . . . . . . . . . . . . . 167
B.5 Lemme de Hensel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
C Annexe : Systmes linaires dans GF(p
d
)(F. Sergeraert) 178
D Exercices de prparation lexemen 180
D.1 EXAMEN du lundi 6 septembre 2004, 9h 12h, lInstitut Fourier . . . . . . . . . . . . 180
D.2 EXAMEN du 27 janvier 2004, de 14h 17h, lInstitut Fourier . . . . . . . . . . . . . . 181
4
Certicat "Algbre I" (MAT401i)
I. Arithmtique lmentaire
Divisibilit des entiers, pgcd, ppcm, congruences
Entiers modulo n, thorme des restes chinois
Z/pZ est un corps, petit thorme de Fermat
Carrs dans Z/pZ, Symboles de Legendre et Jacobi, loi de rciprocit de Gauss
Applications la primalit
II. Corps nis et polynmes
Rappels sur anneaux et corps, anneaux de polynmes
Division euclidienne dans K[x], racines dun polynme,
formule dinterpolation de Lagrange
Polynmes irrductibles, extensions, degr, corps de rupture
Sous-groupes nis dans K

Morphisme de Frobenius, structure des corps nis


Algorithme de factorisation de Berlekamp dans F
p
[x]
III. Equations algbriques et varits anes
Solution dun systme linaire sur les anneaux
Solution dun systme algbrique et homomorphismes danneaux
Varits anes (exemples). Courbes planes, points singuliers
Cubiques planes, lois de groupe, points rationnels sur des exemples
PRREQUIS : Le cours est accessible aux tudiants de Master 1 en Mathmatiques et en Informatique.
Tous les rsultats des cours dalgbre de L3 utiliss seront rviss. Le cours fournit en particulier le
bagage algbrique ncessaire pour la spcialit Cryptologie, Scurit et Codage dinformation du Master
2e anne.
Remarque : Nouveaux lments par rapport aux cours dalgbre de L3 :
aspects algorithmiques des oprations algbriques
bases algbriques pour :
cryptographie clef publique
thorie des codescorrecteurs derreurs
Analogies entre les nombres et les polynmes. Equations algbriques et varits anes.
5
Cours N

1. Mercredi le 29 septembre 2004


(disponible sur : http ://www-fourier.ujf-grenoble.fr/panchish).
Premire partie
Arithmtique lmentaire
1 Les entiers
1.1 Divisibilit des entiers. Lien de larithmtique avec lalgbre et lanalyse.
Notations. On notera Z lensemble des entiers relatifs, N lensemble des nombres naturels, Q lensemble
des nombres rationnels, R lensemble des nombres rels et C lensemble des nombres complexes.
Si X est un ensemble, on note #X son cardinal :
#X = Card(X) = [X[.
On crit [X[ < , si X est un ensemble ni. Si a est un nombre rel, on note [a[ = sup(a, a) sa valeur
absolue.
Donc,
N = 0, 1, 2, 3, 4, . . ., Z = . . . , 2, 1, 0, 1, 2, . . ..
La notation Z vient de lallemand (Zahlen) (depuis la 19 sicle).
Dfinition 1.1.1 Si a et b sont deux entiers relatifs , on dit que a divise b et on note a[b sil existe un
entier relatif c tel que b = ac. On dit galement que b est un multiple de a ou a un diviseur de b. On note
aZ linsemble des multiples de a, donc b aZ.
Un nombre entier positif p est dit premier sil est strictement suprieur 1 et si ses seuls diviseurs
positifs sont 1 et p.
On notera P lensemble de tous les nombres premiers.
Un nombre entier positif n est dit compos sil nest pas premier.
Par exemple, 2 [ 6 et 389 [ 97734562907 :
97734562907 = 389 251245663 = 41 193 389 31751.
Les nombres premiers sont
2, 3, 5, 7, 11, . . . , 41, . . . , 193 . . . , 389, . . . , 2003, . . . , 31751, . . . .
et les nombres composs sont
4, 6, 8, 9, 10, 12, . . . , 666 = 2 3
2
37, . . . , 2001 = 3 23 29, . . . .
(voir [Stein], Chap. 1).
6
Lexistence dune dcomposition en produit de nombres premiers.
Maintenant supposons que n est tout entier positif. Alors, de mme faon, n peut tre cris comme
un produit des nombres premiers :
Si n est premier, cest fait.
Si n est compos alors n = ab avec a, b < n.
En utilisant raisonnement par rcurrence, a, b sont tous les deux produits des nombres premiers,
donc n est aussi un produit des nombres premiers. Ce rsultat explique le terme nombre premier : tous
les autres entiers positifs sont construites commes leurs produits.
Deux rsultats de base de la thorie des nombres
(connues des cours de licence) disent :
(1) Lensemble P de tous les nombres premiers est inni ;
(2) Thorme fondamental de larithmtique :
Tout entier positif n se dcompose de faon unique sous la forme
m = p
k1
1
p
k2
2
. . .p
kt
t
avec p
i
P, p
1
< p
2
< < p
t
, k
i
N
Le premier rsultat se demontre par labsurde : si lon avait P = p
1
, p
2
, , p
n
, on considrera
q = 1 + p
1
p
2
. . .p
n
. Alors, q , P par lhypothse, mais aucun p
i
divise q, contradiction avec ce qui
prcde.
On rapellera une dmonstration du deuxime resultat plus tard, sous une forme plus gnrale (pour
tous les anneaux eucildiens).
Rappelons quelques proprits de base de la divisibilit :
Proposition 1.1.2 Si a, b, c sont des entiers relatifs, on a
(i) a[a
(ii) si a[b et b[c, alors a[c
(iii) si a[b et a[c, alors a[b +c
Dfinition 1.1.3 Si b et un entier relatif non nul,et si a et un entier relatif il existe une unique paire
(q, r) dentier relatifs tels que a = bq +r avec 0 r < [b[. Lentier q est appel le quotient de a par b, et
r le reste de la division, on le notera ici a%b (ou a mod b).
Exercice 1.1.4 Dmontrer en dtails Proposition 1.1.2
7
Lien de larithmtique avec lalgbre et lanalyse. Analogies entre nombres et fonctions.
Lexsemble Z est un anneau commutatif : il existe deux opratons suivantes : pour tous paires (a, b)
Z Z on a
+ : Z Z, (a, b) c = a +b Z (addition);
: Z Z, (a, b) d = a b = a b Z (multiplication);
avec les proprits des axioms danneaux ( commutativit et associativit de + et de , distributivit
a(b
1
+b
2
) = ab
1
+ ab
2
, lexistence de 0 et de 1, lexistence dun (unique) lmnt oppos a Z tout
a Z.
Lanneau des nombres entiers Z est un objet algbrique fondamental, aussi bien que lanneau R[X]
(C[X]) des polynmes coecients rels (complexes). Ces deux anneaux sont commutatifs, associatifs
unitaires sans diviseurs de zro. Il est commode dexprimer la notion de divisibilit dans un anneau R
cidessus laide de la notion didal :
rappellons quun idal I de R est une partie de R qui est ferme par rapport aux oprations : pour
tous a, b I)
laddition a + b I, passage loppos, a a, et la multiplication externe par tout lment x de
R : a ax.
Tout lment a R dnit lidal I = (a) = ax [ x R, et larmation a divise b est quivalent
b (a).
Un idal de type (a) est appel idal principal, et on rappelera que les anneaux R = Z, R[X], C[X]
sont principaux, cest dire, tous ces ideaux sont principaux.
La dmonstration de ce fait est la mme pour les nombres et pour les polynmes : pour un idal
I quelconque on eectue la division avec reste par un lment non nul de I avec la plus petite valeur
absolue (le plus petit degr respectivement), et la dnition didal implique que le reste doit tre zro.
On verra que le thorme de lexistence et de lunicit de dcomposition en facteurs irrductibles est
valable dans tout anneau principal.
Exemple 1.1.5 Lunicit dans la deuxime proprit nest pas toujours valable mme si lexistence dune
dcomposition en lments premiers a lieu. Un exemple connu est donn par lanneau Z[

5] dans lequel
il existe essentiellement direntes factorisations en lments premiers :
2 3 = (1 +

5) (1

5).
Exemple. Problme de Fermat. Pierre de Fermat (16011665) soulev son probme clbre (c.1637)
dans la marge dune traduction des "Arithmtiques" de Diophante :
"Dcomposer un cube en deux autre cubes, une quatrime puissance, et gnralement, une puissance
quelconque, en deux puissances de mme nom au-dessus de la second puissance, est une chose impossible
et jen ai assurment trouv ladmirable dmonstration. La marge trop exigu ne la contiendrait pas".
En langage moderne :
pour n > 2
_
x
n
+y
n
= z
n
x, y, z Z
= xyz = 0 (FLT(n))
8
("Fermats Last Theorem").
Le 11 mars 1847 G.Lam informait lAcadmie des Sciences de Paris dune dmonstration complte
la base de lidentit
x
p
+y
p
= (x +y)(x +y) (x +
p1
y), =
p
= exp(2i/p), p ,= 2
admettant la factorialit de lanneau Z[
p
] (cest dire, que la dcomposition en facteurs premiers dans
cet anneau soit unique).
Immdiatement J.Liouville dit : "Ny a-t-il pas l une lacune remplir ?" (et dans quelques mois A.Cauchy
publia une note sur la non-factorialit de Z[
23
]).
Lide de divisibilit dans les anneaux a beaucoup inuenc la thorie des nombres.
Nombres comme analogues des fonctions
Lopration de division avec reste permet de voir tout nombre entier a comme une fonction
f
a
: P N, p a%p = a mod p. (1.1)
Exemple 1.1.6
f
20
(3) = 2, f
20
(7) = 6, f
20
(2) = 0, f
20
(5) = 0, f
20
(257) = 20
f
1
(3) = 2, f
1
(7) = 6, f
1
(2) = 1, f
1
(5) = 4, f
1
(257) = 256
Ceci dit, les fonctions f
20
et f
1
prennent les mmes valeurs en p = 3 et p = 7. La fonction f
20
possde
"un zro double" en p = 2, car 20 = 2
2
5, tandis que la fonction f
1
na pas de zros.
Exercice 1.1.7 Montrer que si n est premier alors la fonction f
n
ne sannule quen un seul point . L
armation rciproque est-elle vraie ?
Exercice 1.1.8 Dssiner la fonction f
6
.
Exercice 1.1.9 Montrer que tout nombre entier a est dtermin par la fonction correspondente f
a
Cette ide a t gnralis par A.Grothendieck pour tout anneau commutatif.
1.2 Lien de larithmtique avec linformatique et lalgorithmique.
Ecriture en base m N.
Pour eectuer les oprations algbriques dans Z on utilise un systme de numration de la base
m N : la notation
d = (d
k1
, d
k2
, ..., d
1
, d
0
)
m
signie que d = d
k1
m
k1
+ ... + d
0
avec des chires d
i
0, 1, ..., m 1. Le nombre de chires d
i
utiliss pour cela est gale [log
m
n] + 1. Une mthode commode utilse par les ordinateurs correspond
m = 2, et on appelle le systme de numration binaire (de la base 2). Le chire (digit) binaire (cest
dire 0 ou 1) sappelle bit (en anglais bit est une abrviation de binary digit).
Lanalyse simple des algorithmes scolaires pour laddition et pour la multiplication montre que pour
laddition de deux nombres crits avec k et l bit, k l, on a besoin de k operations boolennes (bit
oprations) qui se rduisent laddition des chires correspondants, (avec mmorisation et transfert du
chire 1 la position prcdente dans le cas 1 + 1).
9
Exemple 1.2.1
1 1 1 1
1 1 1 1 0 0 0
(2)
+ 0 0 1 1 1 1 0
(2)
_ _ _ _ _ _ _
1 0 0 1 0 1 1 0
(2)
(120 + 30 = 150)
Dans cet exemple (1111000)
2
= 8 15 = 120, (0011110)
2
= 2 15 = 30.
On voit que pour la multiplication des nombres k et l chires on a besoin de 2kl bitoprations.
Exemple 1.2.2
1 1 0 1
(2)
1 1 1
(2)
_ _ _ _ _ _ _ _
1 1 0 1
1 1 0 1
+ 1 1 0 1
_ _ _ _ _ _ _ _
1 0 1 1 0 1 1
(2)
,
(13 7 = 91).
Le nombre de bitoprations ncessaires pour lexcution dun algorithme caractrise essentiellement le
temps dexcution.
Passage dun systme de numration un autre.
Le temps ncessaire pour passer de la forme binaire dun nombre n vers la forme de la base m est
facile estimer par O(k
2
l) car on a besoin pour cela de O(k) divisions avec reste, avec pour chaqune
division O(kl) bitopratons (division en colonne) o l est le nombre de bit dans lcriture de m, k est
le nombre de bit dans lcriture de n.
Ces mthodes daddition, de multiplication, de division avec reste, de passage dune forme dcriture
une autre donnent des exemples dalgorithmes. On va appeller algorithme une procdure de calcul
dcrite pas par pas. On appelle algorithme polynmial de calcul sur des nombres naturels n
1
, n
2
, ..., n
r
,
dcrits laide de k
1
, k
2
, ..., k
r
bit respectivement, un algorithme avec le temps dxcution infrieur o
gal O(k
d1
1
k
d2
2
... k
dr
r
) (pour des constantes d
1
, d
2
, ..., d
r
N).
Dans ce qui suit on va donner dautres exemples des algorithmes polynmiaux : exponentiation modulo
un nombre naturel x, algorithme dEuclide.
Factorisation des nombres.
Soit n = 1275, et remarquons que 17 [ 1275, alors n est certainement compos, n = 17 75. Puis, 75
est 5 15 = 5 5 3. Donc nalement, 1275 = 3 5 5 17.
Remarquer quon peut agir direment pour factoriser le nombre 1275, par exemple 1275 = 5 255.
On obtient 255 = 5 51 et 51 = 17 3, donc le rsultat nal est le mme. Le rsultat sur lunicit ci-dessus
dis que cest toujours le cas.
10
Cela ne signie en rien que la recherche des facteurs premiers dun nombre entier soit un travail
facile en gnral. La "preuve" en est que la cryptographie moderne rside essentiellement sur la dicult
technique de factorisation de grands nombres entiers en produit de nombres premiers.
Problme de Gauss : Existe-t-il un algorithme pour factorisation de tout nombre donn n qui
marche aussi rapide que son "temps dexecution" soit born par un polynme du nombre de chires
dcimales de n?
La plupart des mathematicians pensent que la rponse est ngative, mais personne ne la encore
prouv rigoureusement. Sil existait un tel algorithme, alors les cryptosystmes quon utilise pour les
transactions interbancaires peuvent tre facilement "casss".
Dicult comparative de la multiplication et de la factorisation de nombres entiers.
Considrons le dveloppement
(10
71
1)/9 =241573142393627673576957439049
45994811347886846310221728895223034301839.
Avec une certaine patience on peut multiplier les deux facteurs pendant quelques heures :
> 241573142393627673576957439049*45994811347886846310221728895223034301
> 839;
11111111111111111111111111111111111111111111111111111111111111111
111111
Cependant, pour trouver une telle factorisation par la mthode standard de la division successive
on aurait besoin de 10
10
ans de travail des ordinateurs qui font une division en 10
9
seconds. En eet,
on a russi trouver cette factorisation laide du superordinateur CRAY-I en utiisant certains algo-
rithmes trs ns qui rendent ce travail abordable. Lestimation des meilleurs algorithmes modernes de
factorisation dun nombre n N est exp
_
3
_
64
9
log n (log log n)
2
_
(cf. [Coh96]).
Dicult de la vrications de primalit.
Dautre part, il existe des mthodes assez rapides pour vrication de primalit des grand nombres.
Par exemple, un mathematicien canadien H.Willams a dmontr en 1988 que le nombre (10
1031
1)/9
est premier. Actuellement on peut vrer sur les ordinateurs la primalit dun nombre naturel avec 100
digits (cest dire, la proprit dtre premier) en quelques minutes.
Dans un travail rcent de Manindra Agrawal, Neeraj Kayal and Nitin Saxena un algorithme po-
lynmial a t trouv pour vrier la primalit dun nombre naturel (sans trouver un seul facteur).
Lalgorithme utilise une version polynmial du "petit thorme de Fermat", et son "temps dexecution"
est born par O(log n)
12
du nombre de chires dcimales de n (voir [Bor03] et le manuscrit "Primes is
in P" de 2002).
Comparer cet algorithme avec un algorithme ancien du crible dEratosthne (3e sicle avant notre
re) donnant la liste de tous les nombres premiers n. l fournit aussi le plus petit nombre premier qui
divise n et donc est un test de primalit (mais cette mthode est trs lente).
11
Un d (challenge) $10,000
Ds mois de fvrier 2002, si vous arrivez factoriser le nombre suivant de 174-chires dcimales,
connu sous le nm RSA-576, alors la companie RSA vous payera DIX MILLE DOLLARS !
1881988129206079638386972394616504398071635633794173827007
6335642298885971523466548531906060650474304531738801130339
6716199692321205734031879550656996221305168759307650257059
Ce nombre est appel RSA-576, car il possde 576 chires binaires. Voir [Stein], Chap. 1, et
http ://www.rsasecurity.com/rsalabs/challenges/factoring/index.html
pour les details (il y a mme un d $200,000).
1.3 Application la multiplication rapide.
Il est clair, que les oprations algbriques (laddition, la multiplication, lexponentiation) dans les
anneaux sont trs importantes ; cest pourquoi on va considrer des mthodes commodes pour eectuer
ces oprations.
Soit m un entier strictement positif. Alors on peut voir lcriture en base m dun entier positif
n = (c
k1
c
1
c
0
)
m
(i.e.
n =
k1

i=0
c
i
m
i
avec 0 c
i
m1)
comme un analogue dun polynme g
n
(x) =

r
i=0
c
i
x
i
parce que n = g(m). Pour multiplier deux nombres
n et n

r
i=0
c

i
x
i
on peut utiliser une multiplication rapide des polynmes : g
n
(x) =

r
i=0
c

i
x
i
,
n

= g
n
(m), alors
nn

= g
n
(m)g
n
(m) = (g
n
g
n
)(m).
Un exemple modle pour la multiplication rapide des nombres et des polynmes est donn par la rgle :
(ax +b)(cx +d) = ac(x
2
+x) + (b a)(c d)x +bd(x + 1) (1.2)
donc la multiplication des polynmes de degr 1 ncessite seulement 3 multiplications essentiels au
lieu de 4 multiplications par la mthode traditionnelle. On utilise cette rgle avec x = 2
l
.
Rapellons que lalgorithme traditionnel pour la multiplication de deux nombres de k chires binaires
(m = 2) ncessite k
2
oprations lmentaires (de type 1
2
+ 1
2
= 10
2
).
La rgle (1.2) amne un algorithme rapide de multiplication dont le temps dexecution est major
par O(k
log
2
3
).
12
Remarque. Rappelons que la mthode de Hrner permet de trouver facilement la valeur n =
r

i=0
c
i
m
i
.
On considre le polynme
f(x) = g
n
(x) =
r

i=0
c
i
x
i
, et x = m on calcule g
n
(m) de faon suivante : soient
f(x) = a
n
x
n
+a
n1
x
n1
+ +a
0
, a
n
,= 0
un polynme, et on cherche un autre polynme
q(x) = b
n1
x
n1
+b
n2
x
n2
+ +b
0
, b
n1
,= 0
tel que
f(x) = (x c)q(x) +r,
En comparant les coecients des puissances de x on obtient
a
n
= b
n1
, a
n2
= b
n2
cb
n1
, , a
1
= b
0
cb
1
, a
0
= r cb
0
, r = f(c)
=b
n1
= a
n
, b
nk
= cb
nk+1
+a
nk
(k = 2, , n)
Il est commode de faire le tableau suivant (le schma de Hrner)
a
n
a
n1
a
1
a
0
c b
n1
= a
n
b
n2
= cb
n1
+a
n1
b
0
= cb
1
+a
1
f(c) = cb
0
+a
0
En particulier, pour un nombre n =
r

i=0
c
i
m
i
on considre le polynme
f(x) = g
n
(x) =
r

i=0
c
i
x
i
, et x = m on obtient
c
r
c
r1
c
1
c
0
m b
r1
= c
r
b
r2
= mb
r1
+c
r1
b
0
= mb
1
+c
1
g
n
(m) = mb
0
+c
0
1.4 pgcd, ppcm
Dfinition 1.4.1 Soit I un ensemble et (a
i
)
iI
une famille dentiers.
(i) On dit que d N est un pgcd de la famille (a
i
)
iI
si
(i I, d[a
i
) et r Z, (i I, r[a
i
) r[d
13
(ii) On dit que m N est un ppcm de la famille (a
i
)
iI
si
(i I, a
i
[m) et r Z, (i I, a
i
[r) m[r
Notations. r = pgcd((a
i
)
iI
), m = ppcm((a
i
)
iI
).
Remarque.
Si I = , alors le pgcd vaut 0 et ppcm vaut 1. Si I = 0 et a
0
> 0, alors le pgcd et ppcm coincident
avec a
0
.
14
Cours N

2. Mercredi le 6 octobre 2004


Algorithme dEuclide pour le calcul de pgcd
Pour des entiers a, b on crit a[b si a divise b, cest dire, que b = ad pour un entier d. Si p est premier
et p

le plus grande puissance de p divisant n on crit p

|n et = ord
p
n. Le thorme de factorisation
peut tre facilement dduit de son cas particulier : si un nombre premier p divise ab alors soit p[a soit
p[b. Cette proprit dcoule de lalgorithme dEuclide.
Si lon connait les factorisations de a et b en produit de nombres premiers on voit directement lexistence et
la forme explicite du plus grand commun diviseur (notation : pgcd(a, b)) et du plus petit commun multiple
(notation ppcm(a, b)). Notamment, posons m
p
= min(ord
p
(a), ord
p
(b)), g
p
= max(ord
p
(a), ord
p
(b)).
Alors
pgcd(a, b) =

p
p
mp
, ppcm(a, b) =

p
p
gp
.
Un fait surprenant est quon peut calculer facilement le pgcd, par exemple pgcd(2261, 1275), sans
utiliser la factorisation. Plus prcisemment :
2261 = 1 1275 + 986.
On remarque que si un nombre d divise 2261 et 1275, alors d divise automatiquement leur dirence
986.
De mme faon, si un nombre divise les deux 1275 et 986, alors il divise aussi leur somme 2261. Donc
on progrsse :
pgcd(2261, 1275) = pgcd(1275, 986).
Essayons encore :
1275 = 1 986 + 289,
donc pgcd(1275, 986) = pgcd(986, 289) :
986 = 3 289 + 119
289 = 2 119 + 51
119 = 2 51 + 17.
Ceci dit, pgcd(2261, 1275) = = pgcd(51, 17), i.e. 17 car 17 [ 51, et
pgcd(2261, 1275) = 17.
Cette mthode est trs ecace et elle donne lalgorithme classique suivant :
Algorithme dEuclide :
On x a, b N avec a > b. En utilisant division avec reste (division euclidienne), on crit
a = bq +r, avec 0 r < b. (1.3)
Alors, comme ci-dessus,
pgcd(a, b) = pgcd(b, r).
15
On pose a
1
= b, b
1
= r, et on rpte jusqua r = 0. On calcule assez rapidement pgcd(a, b). Lalgorithme
dEuclide se compose donc du calcul dune suite
d
0
, d
1
, d
2
, . . .
o d
0
= a, d
1
= b et d
i+1
est le residu de d
i1
modulo d
i
:
d
i+1
= d
i1
td
i
.
On sarrte lorsque d
k
= 0 ; alors d
k1
= pgcd(a, b). On peut montrer (en exercice) que le nombre des
divisions est born par 5 log
10
max(a, b) (le thorme de Lam).
Thorme 1.4.2 Soit a, b N des entiers positifs. Alors il existe pgcd(a, b).
Preuve. On observe simplement que d = d
k1
= pgcd(a, b) satisfait les conditions de dnition 1.4.1.
Exemple. On pose a = 15 et b = 6.
15 = 6 2 + 3 pgcd(15, 6) = pgcd(6, 3)
6 = 3 2 + 0 pgcd(6, 3) = pgcd(3, 0) = 3
Exemple. Soit a = 150 et b = 60.
150 = 60 2 + 30 pgcd(150, 60) = pgcd(60, 30)
60 = 30 2 + 0 pgcd(60, 30) = pgcd(30, 0) = 30
Avec lalgorithme dEuclide on va prouver maintenant que si un nombre premier divise le produit de
deux nombres entiers, alors il divise lun deux. Ce rsultat est la cl pour prouver lunicit de factorisation.
Thorme 1.4.3 (Lemme dEuclide) Soit p un nombre premier et a, b N des entiers positifs. Si
p [ ab alors p [ a ou p [ b.
Preuve. Si p [ a, cest fait. Si p a alors pgcd(p, a) = 1, car seulement 1 et p divisent p. A partir de
lalgorithme dEuclide, on voit pgcd(pb, ab) = b. A chaque tape on multiplie lequation par b. Comme
p [ pb et, par lhypothse, p [ ab, on obtient que p [ pgcd(pb, ab) = b.
Corollaire 1.4.4 Soit p un nombre premier, s N, et a
1
, , a
s
N des entiers positifs. Si p [
a
1
. . .a
r
alors p divise lun des a
i
: p [ a
i
.
16
Unicit de dcomposition
dun entier positif n en produit de nombres premiers est directement implique par le Lemme dEuclide
1.4.3 (et son corollaire 1.4.4) : soient r, s N, p
1
, , p
r
et q
1
, , q
s
des nombres premiers tels que
n = p
1
. . .p
r
= q
1
. . .q
s
alors r = s et p
1
, , p
r
concident q
1
, , q
s
une permutation prs.
En eet, on peut supposer r s. On procde par rcurrence sur r. Si r=0, alors n=1, s = 0, et le
rsultat annonc est vrai. Supposons le rsultat montr pour r 1 avec r 1. On a
p
1
[q
1
. . .q
s
.
Donc p
1
divise lun des q
i
.
Quitte changer les q
i
, on peut supposer que p
1
[q
1
. Comme le nombre q
1
est premier, on obtient
p
1
= q = 1, do
p
2
. . .p
r
= q
2
. . .q
s
(aprs la simplication), et il reste appliquer lhypothse de rcurrence au produit p
2
. . .p
r
de r 1
nombres premiers.
Exercice 1.4.5 Montrer que si a
1
, a
2
> 0,
pgcd(a
1
, a
2
) ppcm(a
1
, a
2
) = a
1
a
2
Exercice 1.4.6 Algorithmes pour calculer le pgcd dune famille nie a
1
, , a
r
. Montrer par rcur-
rence que
pgcd(a
1
, , a
r
) = pgcd(pgcd(a
1
, , a
r1
), a
r
),
et que
ppcm(a
1
, , a
r
) = ppcm(ppcm(a
1
, , a
r1
), a
r
),
Programme pour trouver le pgcd (en Maple), disponible ladresse cache :
http ://www-fourier.ujf-grenoble.fr/panchish/04ma1-maple dans le fichier 4ma1-2pgcd.mws
(Tue Oct 05 20 :08 :13 2004) )
Pour travailler avec ce chier, on peut : 1) louvrir avec Netscape, 2) enregistrer sous... comme un
chier .mws, 3) taper "xmaple" pour louvrir avec Maple-7.
> restart;
> a:=691:
> b:=-1000:
> i:=0:
> print(i=i, a=a,b=b);
> if a<0 then a:=-a;
> else fi;
> if b<0 then b:=-b:
> else fi:
> while(b<>0) do
> r:=irem( a,b ):
> print(i=i, a=a,b=b, r=r):
> i:=i+1:
> a:=b:
> b:=r:
> od:
17
i = 0, a = 691, b = 1000
i = 0, a = 691, b = 1000, r = 691
i = 1, a = 1000, b = 691, r = 309
i = 2, a = 691, b = 309, r = 73
i = 3, a = 309, b = 73, r = 17
i = 4, a = 73, b = 17, r = 5
i = 5, a = 17, b = 5, r = 2
i = 6, a = 5, b = 2, r = 1
i = 7, a = 2, b = 1, r = 0
Une procedure pour trouver le pgcd (en Maple)
> pgcd:=proc(a::integer,b::integer)
> local r,d0,d1,i;
> i:=0;
> if a<0 then a:=-a;
> else fi;
> if b<0 then b:=-b;
> else fi;
> r:=b;
> d0:=a; d1:=b;
> r:=b;
> while(d1<>0) do
> i:=i+1;
> r:=irem( d0,d1 );
> d0:=d1;
> d1:= r;
> od;
> return d0;
> end proc:
Exemples
> pgcd(12,14);
2
> pgcd(91,65);
13
> pgcd(2261,1275);
17
18
1.5 Congruences
Dfinition 1.5.1 Si a, b sont deux entiers relatifs, on dit que a est congru b modulo m et on note
a b mod m
si et seulement si m divise a b.
Proposition 1.5.2 Si a, b, c, d, m et n sont des entiers relatifs,
(i) a a mod m,
(ii) si a b mod m, alors b a mod m,
(iii) si a b mod m et b c mod m, alors a c mod m,
(iv) si m est non nul et si b est le reste de la division euclidienne de a par m, alors on a a b mod m,
(v) si a b mod m et si n[m, alors on a a b mod n,
(vi) si a b mod m et c d mod m, alors a +c b +d mod m,
(vii) si a b mod m et c d mod m, alors ac bd mod m,
(viii) si a b mod m et si n est un entier positif, alors a
n
b
n
mod m.
Preuve. C est un exercice facile. Montrons (vii) titre dexemple : si a b mod m, et c d mod m,
alors il existe des entiers relatifs q
1
et q
2
tels que
a b = mq
1
et c d = mq
2
;
par consquant,
ac bd = (a b)c +b(c d) = m(q
1
+q
2
);
do lassertion.
Exemple 1.5.3
Si a est entier positif ou nul et a
r
a
r1
a
0
son criture en base 10 (i.e. a =

r
i=0
a
i
10
i
), alors
(i) a a
0
(mod10),
(ii) a

r
i=0
a
i
(mod9)
(iii) a

r
i=0
(1)
i
a
i
(mod11)
Rgles de divisibilit
Proposition 1.5.4 Un nombre n Z est divisible par 3 si et seulement si la somme des chires dci-
males de n est divisible par 3.
Preuve. On crit
n = a + 10b + 100c + .
Comme 101 (mod 3),
n = a + 10b + 100c + a +b +c + (mod 3),
do la proposition.
De mme faon, on trouve les rgles de divisibilit par 5, 2, 4, 9 et 11 (voir exemple 1.5.3).
19
Exercice 1.5.5 Proposer une rgle de divisibilit par 7, utilsant les faits 10 3(mod7), 100 2(mod
7), 1000 1(mod7).
Exercices
1.1 Proposer une rgle de divisibilit par 13, en utilisant 1001 = 7 11 13.
1.2 Calculer de tte le dernier chire de lcriture en base 10 des nombres suivants : 2309786
34657
, 8786652
35444619
et 654565198
3548217
.
1.3 alculer de tte le reste de la division par 9 des nombres suivants : 8
68498353
, 54648381
54648
et 354872846
21353
.pey12
1.4 Existe-t-il des nombres entiers x, y tels que x
2
+ y
2
= 2003 ?
1.5 Existe-t-il des nombres entiers x, y tels que x
2
+ 5y
2
= 2003 ?
1.6 Soit b un entier strictement positif, noncer et dmontrer lanalogue de lexemple 1.5.3 pour lcriture en
base b dun entier positif a (i.e. a =
P
r
i=0
aib
i
avec 0 ai b 1).
1.7 Trouver tous entiers n tels que la fonction fn (denite par lgalit(1.1)) ne sannule pas.
1.8 Dssiner la fonction f15.
1.9 La fonction fn est-elle croissante (decroissante) ?
1.10 Trouver tous entiers x, y, z tels que
x
3
+ 2y
3
+ 4z
3
= 0.
1.11 Combien de zros se trouvent la n de 20! ?
1.12 Montrer que si 2
p
1 est premier alors 2
p1
(2
p
1) est parfait, cest dire, quil est gal la somme de ses
diviseurs propres (e.g. 6 = 1+2+3, 28 = 1+2+4+7+14, 496 = 1+2+4+8+16+31+62+124+248)
(Euler a dmontr que tous les nombres pairs parfaits sont de ce type).
1.13 Trouver une formule explicite pour les nombres de Fibonacci a = u
k
, b = u
k1
o u0 = u1 = 1 et
ui+1 = ui + ui1 :
ui =
1

1 +

5
2

i+1

5
2

i+1
!
.
1.14 On denit le nombre dor comme la solution positive de la proportion dor
1
x
=
x
1 x
(le quotient de lunit par une partie est gale au quotient de cette partie par la partie complmentaire),
cest dire, que x =

51
2
. Montrer que
ui
ui+1

2
1 +

5
=

5 1
2
.
1.15 Soient a, k, l des nombres entiers positifs. Trouver
pgcd(a
k
1, a
l
1).
20
2 Entiers modulo n
2.1 Relations dquivalence et ensembles quotients
La congruence est une relation dquivalence. Rappellons ce dont il sagit.
Dfinition 2.1.1 Une relation binaire R sur un ensemble E est une partie
E
R
E E = (a, b) [ a, b E
on crit a
R
b si et seulement si (a, b) E
R
Dfinition 2.1.2 Une relation binaire R sur un ensemble E est une relation dquivalence si et seulement
si elle vrie les trois conditions suivantes :
Rexive. a E, a
R
a.
Symtrique. Si a et b appartiennent E et si a
R
b, alors b
R
a
Transitive. Si a, b et c appartiennent E et si a
R
b et b
R
c, alors a
R
c
Pour tout x de E on appelle classe dquivalence de x modulo R, note x, la partie
y E [ y
R
x
de E. On dit galement que x est un reprsentant de la classe dquivalence x.
Lensemble des classes dquivalence modulo R est appel ensemble-quotient de E par R. On le note
E/R.
Proposition 2.1.3 Lexsemble quotient E/R forme une partition de E autrement dit aucune classe
dquivalence nest vide et deux classes dquivalence sont soit disjointes soit identiques.
Dfinition 2.1.4 Lapplication
E E/R, x x
est surjective, on lappele la projection canonique.
2.2 Arithmtique modulo n
Proposition 2.2.1 Pour tout entier n la relation de congruence x y mod n est une relation dqui-
valence sur Z. On note Z/nZ lensemble quotient associ.
Preuve. Il sut dutiliser les proprits (i), (ii) et (iii) de Proposition 1.5.2. La proprit (iv) montre
que
Z = 0 1 n 1 = nZ (1 +nZ) (n 1 +nZ)
On suppose a, a

, b, b

Z et
aa

(mod n), bb

(mod n).
21
Alors
a +ba

+b

(mod n) (2.1)
a ba

(mod n) (2.2)
Ceci permet de denir une addition + et une multiplication (ou ) sur Z/nZ par les formules
a +b = a +b et a b = a b.
Ceci implique que si m > 0 la puissance m-me dun lment a de Z/nZ est donn par
a
m
= a
m
.
De point de vue pratique, ces calculs peuvent tre implments de la faon suivante : pour laddition
Algorithme 2.2.2
Entre :
Entier n de congruence.
Entiers a et b (entre 0 et n 1).
Sortie :
Reprsentant de a +b (entre 0 et n 1).
Algorithme :
Calculer c = a +b.
Calculer le reste r de la division de c par n.
Un algorithme analogue peut tre crit pour la multiplication.
Pour lexponentiation, il convient de minimiser le nombre de multiplications eectues. Lide pour
cela est de considerer lcriture en base 2 de la puissance cherche :
m =
r

i=0
m
i
2
i
avec m
i
= 0 ou 1.
On a la relation
a
m
=

0ir
m
i
=1
a
2
i
.
La formule
m = m
r
2
r
+ +m
0
= 2(2( 2(2m
r
+m
r1
) +. . . ) +m
1
) +m
0
montre que dans cet exemple
a
m
= a
2(2(2(2mr+mr1)+... )+m1)+m0
= ( ((a
mr
)
2
a
mr1
)
2
)
2
a
m0
22
Algorithme 2.2.3
Entre :
Entier n de congruence.
Puissance m.
Element a de Z/nZ
Sortie :
Valeur de a
m
dans Z/nZ.
Algorithme :
1. x := a, y = m;
2. z := 1 ;
3. Tant que y nest pas nul
3.1 si y est impaire, z := z x mod n
3.2 x := x x mod n
3.3 m := m/2
4. renvoyer z
2.3 Une procdure pour calcul de a
m
mod n en Maple
On peut simplement utiliser
> a &^ m mod n;
Sinon, on crit une procdure :
> Puismod:=
> proc(a::nonnegint, m::nonnegint, n::nonnegint)
> local x, y, z, mi;
> x:=a;
> y:=m;
> z:=1;
> while (y<>0) do
> mi:=y mod 2;
> if (mi=1) then z := z*x mod n;
> else fi;
> x:=x*x mod n;
> y:=floor(y/2);
> printf("mi=%d, x=%d, y=%d, z=%d\n",mi,x,y,z)
> od;
> return z;
> end proc;
23
Puismod := proc(a : :nonnegint, m : :nonnegint, n : :nonnegint)
local x, y, z, mi ;
x := a ;
y := m;
z := 1 ;
while y ,= 0 do
mi := y mod 2 ;
if mi = 1 thenz := z xmod nelse end if ;
x := x
2
mod n;
y := oor(1/2 y) ;
printf(mi=%d, x=%d, y=%d, z=%dn, mi, x, y, z)
end do;
return z
end proc
> Puismod(2,11,100);
mi=1, x=4, y=5, z=2
mi=1, x=16, y=2, z=8
mi=0, x=56, y=1, z=8
mi=1, x=36, y=0, z=48
48
vrication :
> 2^11;
2048
Simplication dans Z/nZ
Proposition 2.3.1 Si pgcd(c, n) = 1 et
acbc (mod n)
alors ab (mod n).
Preuve. Par dnition
n [ ac bc = (a b)c.
Comme pgcd(n, c) = 1, on a n [ a b, donc
ab (mod n),
do la proposition.
Corollaire 2.3.2 Si pgcd(c, n) = 1 alors lapplication x cx de Z/nZ dans Z/nZ est bijective, en
particulier, pour tout b dans Z/nZ il existe un seul x dans Z/nZ tel que
axb (mod n).
24
Exercices
2.1. Justier une version de lalgorithme dEuclide donne par la division avec reste de plus petite valeur absolue :
x0 = a0x1 + 1x2,
x1 = a1x2 + 2x3, . . . , 0 x
k
< x
k1
/2, i = ,

xn1 = an1xn.
2.2. Posons D0 = 0, D1 = 1, . . . , Dn = 2Dn1 +Dn2.
(la suite des nombres de Dupr). Dmontrer : Thorme (Athanase Dupr, 1846) Soient u, v > 0 des nombres
naturels tels que lalgorithme dEuclide marche pour n divisions (avec reste de plus petite valeur absolute), et u
est minimal avec cette proprit. Alors
u = Dn + Dn1, v = Dn,
2.3. En dduire : Pour (u, v), u > v > 0, lalgorithe dEuclide marche pour au plus
1, 14 log u 0, 79 + 0, 41u
1
divisions avec reste de plus petite valeur absolue.
Solution : voir [Knu81], p. 605. On utilise cidessus la formule
Dn =
1
2

(1 +

2)
n
(1

2)
n

.
25
Cours N

3. Mercredi le 13 octobre 2004


3 Rappels sur la notion de groupe, exemples
3.1 Structure de groupe
Dfinition 3.1.1 Un groupe est un ensemble G muni dune loi interne
GG G, (x, y) xy = x y
qui est associative
Gr1 x, y, z G, x(yz) = (xy)z,
admet un element neutre e :
Gr2 x G, xe = ex = x,
et tout lment x du groupe G admet un inverse (ou symtrique) y :
Gr3 x G, y G, xy = yx = e,
cet lment est alors unique, on le note x
1
.
En outre le groupe G est dit commutatif ou ablien sil vrie galement la condition suivante :
Comm. x, y G, xy = yx.
Remarque 3.1.2 On prend souvent une notation additive pour la loi dun groupe ablien, la loi scrira
alors (x, y) x +y, llment neutre sera not 0 et le symtrique (ou oppos) dun lment x sera not
x.
Exemple 3.1.3 Lensemble Z muni de laddition est un groupe commutatif. Il est de mme pour Q, R,
C muni de laddition. Laddition muni galement Z/nZ dune structure de groupe ablien.
Dfinition 3.1.4 Un groupe G est dit monogne, sil existe un lment g de G tel que g engendre G,
i.e. pour tout h G il existe un entier positif n tel que soit h = g
n
soit h = g
n
= (g
1
)
n
. On dit alors
que g est un gnrateur de G. Un groupe monogne ni est dit cyclique.
En particulier, le groupe additif Z/nZ est cyclique dordre n et de gnrateur 1 :
1 + 1 = 2, 1 + 1 + 1 = 3,
Le groupe additif Z est monogne de gnrateur 1 (ou de gnrateur 1).
Exercice 3.1.5 Trouver tous les gnrateurs du groupe Z/nZ. Montrer quune classe a = a mod n est
un gnrateur de Z/nZ si et seulement si pgcd(a, n) = 1.
(Utiliser le corollaire 2.3.2 pour montrer : pgcd(a, n) = 1 lapplication x ax de Z/nZ dans Z/nZ
est bijective, en particulier, pour tout b dans Z/nZ il existe un seul m dans Z/nZ tel que
amb (mod n),
26
cest dire, que a est un gnrateur du groupe additif Z/nZ).
Exemple 3.1.6 Si X est un ensemble, lensemble des bijections de X dans X, aussi appeles permuta-
tions de X, forment un groupe pour la loi de composition que lon note S
X
. On note S
n
pour le groupe
des permutatons de 1, , n. Si n 3, alors ce groupe nest pas ablien.
Dfinition 3.1.7
(a) Soient G et H deux groupes. Une application : G H est un morphisme de groupes si elle
vrie la condition
Mor x, y G, (xy) = (x)(y).
(b) Un isomorphisme de groupes est un morphisme de groupes qui est bijectif. Son inverse est alors
un isomorphisme de groupes.
(c) Un automorphisme dun groupe G est un isomorphisme de G dans G. Son inverse est alors un
automorphisme de G.
Exercice 3.1.8 Trouver tous les morphismes du groupe Z/10Z dans Z/12Z.
Exercice 3.1.9 Trouver tous les automorphismes des groupes Z/10Z et Z/12Z.
3.2 Exemple : lments inversibles mod n.
Rapellons que pour un lment a mod n Z/nZ lapplication x ax de Z/nZ dans Z/nZ est
bijective si et seulement si pgcd(a, n) = 1, en particulier, dans ce cas pour tout b dans Z/nZ il existe un
seul x dans Z/nZ tel que
axb (mod n).
(voir Corollaire 2.3.2).
Dfinition 3.2.1 On appelle groupe dlments inversibles mod n lensemble dlments a mod n
Z/nZ tels que pgcd(a, n) = 1, et on le note (Z/nZ)

. Llment neutre e de (Z/nZ)

est la classe
1 mod n = 1 +nZ, et llment symtrique de a mod n et la classe x mod n, o ax1 (mod n).
Pour trouver un lment x tel que axb (mod n), il sut de rsoudre lquation ax + ny = b en
entiers x, y, on utilisera une information supplmentaire sur le pgcd donne par
Proposition 3.2.2 On suppose a, b Z et pgcd(a, b) = d. Alors il existe x, y Z tels que
ax +by = d.
On donne dabord un exemple concret de calcul de solution dune quation comme ax 1 (mod n).
27
Exemple 3.2.3 Soit a = 5 et b = 7. Les tapes de lalgorithme dEclide sont :
7 = 1 5 + 2 donc 2 = 7 5
5 = 2 2 + 1 donc 1 = 5 2 2 = 3 5 2 7.
A droite, nous avons crit tout reste comme une combinaison linaire de a et de b. Finalement, on a
crit pgcd(a, b) comme une combinaison linaire a et b.
Cet exemple nt pas compliqu, et on pourrait aborder un exemple plus long.
Exemple 3.2.4 Soit a = 130 et b = 61. Nous avons
130 = 2 61 + 8 donc 8 = 130 2 61
61 = 7 8 + 5 donc 5 = 7 130 + 15 61
8 = 1 5 + 3 donc 3 = 8 130 17 61
5 = 1 3 + 2 donc 2 = 15 130 + 32 61
3 = 1 2 + 1 donc 1 = 23 130 49 61.
Alors x = 130 et y = 49.
Remarque 3.2.5 Il est sut pour nous de trouver une solution de ax + by = d. En eet, il existe
toujours une innit de solutions. Si x, y est une solution de
ax +by = d,
alors pour tous Z,
a
_
x +
b
d
_
+b
_
y
a
d
_
= d,
est aussi une solution, et toutes les solutions sont de cette forme pour un .
Identit de Bezout.
Lalgorithme dEuclide se compose du calcul dune suite
d
0
, d
1
, d
2
, . . .
o d
0
= a, d
1
= b et d
i+1
est le residu de d
i1
modulo d
i
:
d
i+1
= d
i1
td
i
.
On sarrte lorsque d
k
= 0 ; alors d
k1
= pgcd(a, b). On peut montrer que le nombre des divisions est
born par 5 log
10
max(a, b) (le thorme de Lam).
De lalgorithme dEuclide provient aussi une reprsentation
pgcd(a, b) = ua +vb (3.1)
o u, v sont des entiers. Pour les construire on calcule successivement les paires (u
i
, v
i
) tels que d
i
=
u
i
a +v
i
b. Posons u
0
= v
1
= 1, u
1
= v
0
= 0 et pour i 1
u
i+1
= u
i1
tu
i
, v
i+1
= v
i1
tv
i
o t est pris de la relation d
i+1
= d
i1
td
i
.
Comme pgcd(a, b) = d
k1
on peut prendre u = u
k1
, v = v
k1
.
28
Un programme pour calculer u et v (voir 4ma1-4bezout.mws)
> bezout:=proc(a::integer,b::integer)
> local u0,u1,u2,v0,v1,v2,d0,d1,r,t,i;
> if a<0 then a:=-a;
> else fi;
> if b<0 then b:=-b;
> else fi;
> u0:=1:v0:=0:
> u1:=0:v1:=1:
> d0:=a; d1:=b;
> r:=b;
> i:=0;
> while(d1<>0) do
> i:=i+1;
> t:=iquo( d0,d1 );
> r:=irem( d0,d1 );
> d0:=d1;
> d1:= r;
> u2:=u0-t*u1;
> v2:=v0-t*v1;
> u0:=u1;
> u1:= u2;
> v0:=v1;
> v1:= v2;
> printf("i=%d,%d*%d+%d*%d=%d\n"
> ,i,a,(u0) , b,v0, d0)
> od;
> printf("les valeurs de [d, u, v] sont :");
> return [d0,
> u0, v0]
> ;
> end proc:
> bezout(12,14);
i=1,12*0+14*1=14
i=2,12*1+14*0=12 i=3,12*-1+14*1=2 les valeurs de [d, u, v] sont :
[2, 1, 1]
> bezout(691,1000);
i=1,691*0+1000*1=1000 i=2,691*1+1000*0=691 i=3,691*-1+1000*1=309 i=4,691*3+1000*-2=73
i=5,691*-13+1000*9=17 i=6,691*55+1000*-38=5 i=7,691*-178+1000*123=2 i=8,691*411+1000*-284=1
les valeurs de [d, u, v] sont :
[1, 411, 284]
> bezout(17,61);
i=1,17*0+61*1=61 i=2,17*1+61*0=17 i=3,17*-3+61*1=10 i=4,17*4+61*-1=7 i=5,17*-7+61*2=3
i=6,17*18+61*-5=1 les valeurs de [d, u, v] sont :
[1, 18, 5]
Une autre possibilit : igcdex - un algorithme euclidien largi pour les entiers (une fonction
de Maple) :
Calling Sequence
igcdex(a, b, u, v)
Parameters
a,b - integers
u,v - (optional) names
29
Dscription
igcdex returns g = igcd(a, b), and optionally s and/or t such that g = u a + v b
Exemples
> igcdex(2,3,u,v);
1
> [u,v];
[1, 1]
> a:=2:b:=3:igcdex(2,3,u,v):w:=[u,v];
w := [1, 1]
Rsolution de lquation a*u+b*v=c
> restart;
> Bezout := proc(a::posint, b::posint,
> c::nonnegint
> )
> local u, v, gcd, w;
> gcd := igcdex(a, b, u, v) ;
> if c mod gcd <> 0 then ERROR(
> sprintf("lquation nest pas rsoluble sur Z"))
> fi ;
> w:=[
> c*u/gcd , c*v/gcd, gcd];
> printf("%a*u+%a*v=%a,
> a=%a, b=%a, u=%a, v=%a, gcd=%a,
> la solution gnrale sur Z est
> u=%a+%a*t, v=%a-%a*t,
> %a*(%a*(%a)/%a + t*%a/%a) + %a*(%a*(%a)/%a - t*%a/%a)=
> %a",
> a, b, c,
> a, b, c*u/gcd, c*v/gcd, gcd,
> c*u/gcd, b/gcd, c*v/gcd, a/gcd,
> a, c, u, gcd, b, gcd,b,c,v,gcd, a, gcd, c);
> evalb(a*(c*u/gcd+t*b/gcd)+b*(c*v/gcd-t*a/gcd)=c);
> RETURN(w)
> end :
> a:=6:b:=9:c:=15:W:=Bezout(a, b, c):
> U:=W[1]:V:=W[2]:d:=W[3]:
> print([U,V,d]=W, a*(U+t*b/d)+b*(V-t*a/d)=c);
> #for t from 1 to 10 do
> #print(a*(U+t*b/d)+b*(V-t*a/d)=c);od;
> evalb(a*(U+t*b/d)+b*(V-t*a/d)=c);
6*u+9*v=15, a=6, b=9, u=-5, v=5, gcd=3,
la solution gnrale sur Z est u=-5+3*t, v=5-2*t, 6*(15*(-1)/3 + t*9/3) + 9*(15*(1)/3 - t*6/3)=
15
[U, V, d] = [5, 5, 3], a (U +
t b
d
) +b (V
t a
d
) = c
true
Exercices
Exercice 3.2.6 Montrer que 2 mod 61 et 17 mod 61 sont des gnrateurs du groupe cyclique (Z/61Z)

.
30
Exercice 3.2.7 Trouver le nombre total des gnrateurs de ce groupe.
3.3 Sous-groupes
Dfinition 3.3.1 Si G est un groupe, un sous-groupe de G est une partie H de G vriant les trois
conditions suivantes :
SG1 e H,
SG2 x, y H, xy H,
SG3 x H, x
1
H.
H est alors un groupe pour la loi induite
H H H, (h
1
, h
2
) h
1
h
2
Exemple 3.3.2 Si G est un groupe, G et e sont des sous-groupes de G.
Exemple 3.3.3 Si (H
i
)
iI
est une famille des sous-groupes dun groupe G, alors lintersection
iI
H
i
est un sous-groupe de G. En particulier, si X est une partie de G, lintersection des sous-groupes de G
contenant X, est un sous-groupe de G. Cest le plus petit sous-groupe de G contenant X, on lappelle le
sous-groupe de G engendr par X. On notera X) le sous-groupe engendr par X.
Exemple 3.3.4 Si : G H un morphisme de groupes, alors pour tout sous-groupe H

de H, son
image inverse dans G,
1
(H

) G est un sous groupe de G, et pour tout sous-groupe G

de G, son
image (G

) H est un sous groupe de H. En particulier, lensemble


Ker() =
1
(e) G = x G [ (x) = e
est un sous-groupe de G appel le noyau de . Limage de , note Im(), est un sous-groupe de H.
Thorme 3.3.5 Si G est un groupe, et g est un lment de G alors il existe un seul morphisme
: Z G dtermin par la formule
k g
k
pour k Z.
Limage de , note Im(), est le sous-groupe H = g) de G, engendr par g.
Preuve. Il sut de remarquer que g
k
est dnie de la faon suivante
g
0
= e, k N, g
k+1
= g
k
g, et g
k
= (g
k
)
1
,
donc on a un morphisme dtermin par la formule
: k g
k
pour k Z car (k +l) = g
k+l
= g
k
g
l
= (k)(l).
Thorme 3.3.6 Soit I un sous-groupe du groupe additif Z. Alors tout sous-groupe de Z est de la forme
nZ, pour un lment n de Z.
Preuve. Si I est distinct du sous-groupe 0, alors I contient un lment non-nul et, contenant aussi
son oppos, un lment strictement positif. Soit n le plus petit lment strictement positif de I. Soit
i un lment quelconque de I. La division euclidienne de i par n scrit i = nq + r avec 0 r < n.
Mais r = i nq appartient galement I. Par consquance, par minimalit de n, on a r = 0. Donc
i nZ. Rciproquement, tout lment de nZ est dans I. En notant que 0 = 0Z, on obtient que tout
sous-groupe de Z est de la forme nZ, pour un lment n de Z.
31
Corollaire 3.3.7 Soit G = g) un groupe cyclique dordre N. Alors tout sous-groupe H de G est
cyclique.
Preuve. On utilise le morphisme : Z G dtermin par la formule
k g
k
pour k Z.
Alors est surjectif parce que G est engendr par g. On considre limage inverse du sous-groupe H G :

1
(H)
1
(G) = Z.
Selon thorme 3.3.6, tout sous-groupe de Z est de la forme nZ, pour un lment n de Z. Ceci implique
que H = (I) = g
n
).
3.4 Classes gauche, droite
Dfinition 3.4.1 Soit G groupe et H un sous-groupe de G. Si g G, lensemble
gH = gh [ h H (resp. Hg = hg [ h H)
est appel classe gauche (resp. droite) de g pour H. On note G/H (resp. HG) lensemble des classes
gauche (resp. droite) de G pour H.
Notons que si a et b sont des lments de G, alors on a une bijection
aH bH
g ba
1
g
De mme faon on a une bijection
aH Ha
1
g g
1
En particulier, toutes les classes ont le mme cardinal, savoir, le cardinal du sous-groupe H. En outre
cela dni une bijection
G/H HG
aH Ha
1
Dfinition 3.4.2 Soit G groupe et H un sous-groupe de G. Si lensemble G/H ou HG des classes
gauche (resp. droite) est ni, alors tous ces deus ensembles sont nis et de mme cardinal, quon apple
indice de H dans G. On le note (G : H).
Nous avons montr la proprit suivante :
Proposition 3.4.3 Si G est un groupe ni et H est un sous-groupe de G, alors
#G = #H (G : H).
En particulier, le cardinal du sous-groupe divise le cardinal de G.
32
3.5 Sous-groupes distingus, groupes quotient
Soit : G H un morphisme de groupes, alors pour tout x de Ker() et tout g de G on a
(gxg
1
) = (g)(x)(g
1
) = (g)(g
1
) = e.
Par consquant, gxg
1
appartient galement au noyau de . Ceci amne la dnition suivante :
Dfinition 3.5.1 Soit G groupe et H un sous-groupe de G. On dit que H est distingu dans G, et on
note H G si et seulement si
g G, h H, ghg
1
H.
Nous venons de voir que si est un morphisme, son noyau est distingu. Montrons quinversement tout
sous-groupe distingu est le noyau dun morphisme.
Dfinition 3.5.2 Si H est un sous-groupe distingu de G, alors il existe sur G/H une unique loi de
groupe de sorte que la projection canonique
: G G/H, g gH
soit un morphisme de groupes. On dit alors que G/H est le groupe-quotient de G par H.
Exemple 3.5.3 Si G est un groupe ablien, alors tout sous-groupe H de G est distingu. En particulier,
le gous-groupe nZ est distingu dans Z. On retrouve ainsi une addition dans Z/nZ.
Exemple 3.5.4 Si : G H est un morphisme de groupes et H

un sous-groupe distingu de H, alors

1
(H

) est un sous-groupe distingu de G.


Preuve : en exercice obligatoire.
33
Cours N

4. Mercredi le 20 octobre 2004


Thorme 3.5.5 (Sur lisomorphime) Si : G H est un morphisme de groupes, et K = Ker()
son noyau, KG, alors il existe un unique isomorphisme de groupes : G/K

Im() tel que concide
avec la compose
G

G/K

Im()
j
H
o dsigne la projection canonique, et j linjection canonique.
Thorme 3.5.6 (Sur lisomorphime des groupes monognes) Si G = g) est un groupe mono-
gne, alors seulement deux cas sont possibles
(i) G est inni et isomorphe Z;
(ii) G est ni dordre N et isomorphe Z/NZ.
Preuve. On considre le morphisme de groupe : Z G, qui est surjectif par lhypothse. Soit
I = Ker() Z son noyau, alors selon thorme 3.5.5, il existe un isomorphisme de groupes : Z/I

Im() = G. Alors tout sous-groupe de Z est de la forme NZ, pour un lment N de Z.


Si N = 0, G est inni et isomorphe Z;
Si N ,= 0, G est ni dordre N et isomorphe Z/NZ.
3.6 Ordre dun lment, thorme de Lagrange
Dfinition 3.6.1 Soit g un lment dun groupe G. Sil existe un entier strictement positif n tel que
g
n
= e, alors on peut choisir n minimal avec cette proprit. On dit alors que g est un lment dordre
n, et on le note n = ord(g).
Sil nexiste pas dentier strictement positif n tel que g
n
= e, on dit que g est un lment dordre
inni.
Proposition 3.6.2 Soit g est un lment dordre N dun groupe G, N = ord(g).
Alors N = ord(g) concide avec lordre du sous-groupe g) engendr par g.
Preuve. Selon le thorme 3.5.6 sur les groupes monognes, il existe un isomorphisme : Z/NZ

g) = Im(), o Ker = NZ et N est le plus petit nombre positif tel que N Ker, i.e. g
N
= e. On voit
donc que N concide avec lordre dlment g, CQFD.
Thorme 3.6.3 (Lagrange) (voir Proposition 3.4.3)
Si H un sous-groupe dun groupe ni G, alors [H[ divise [G[.
De plus, [G[ = [H[ [G/H[.
Corollaire 3.6.4 Soit g est un lment dordre n dun groupe ni G, alors ord(g) divise [G[.
De plus, [G[ = [G/g)[ ord(g)
Exercice 3.6.5 Montrer que pour tout diviseur d dun nombre entier positif N, il existe un lment
dordre d dans le groupe cyclique Z/NZ.
Exercice 3.6.6 Trouver tous les ordres dlments dans le groupe multiplicatif (Z/61Z)

34
Exercice 3.6.7 Trouver lordre des lments 17, 2 et 3 du groupe multiplicatif (Z/61Z)

> 17&^ 20 mod 61;


13
> 17&^ 30 mod 61;
60
> 17&^ 12 mod 61;
20
> 2&^ 20 mod 61;
47
> 2&^ 30 mod 61;
60
> 2&^ 12 mod 61;
9
> 3&^ 20 mod 61;
1
> 3&^ 10 mod 61;
1
> 3&^ 5 mod 61;
60
> 3&^ 2 mod 61;
9
Rponse : ord(17) = 60, ord(2) = 60 et ord(3) = 10.
Exercices
3.1 Trouver pour tout diviseur d dun nombre entier positif N, tous les lments dordre d dans le groupe
cyclique Z/NZ.
3.2 Trouver tous les lments dordre maximal dans le groupe multiplicatif (Z/61Z)

3.3 Les groupes multiplicatifs (Z/8Z)

et (Z/18Z)

sont-ils cycliques ?
3.4 Trouver lordre des lments 5 et 7 du groupe multiplicatif (Z/61Z)

3.5 Trouver tous les lments dordre maximal dans les groupes de permutations S3 et S4.
35
4 Rappels sur la notion danneau, exemples
4.1 Structure danneau et idaux
Dfinition 4.1.1 Un anneau est un groupe ablien A muni dune loi interne
AA A, (x, y) xy = x y
appel produit ou multiplication, qui est associative
An1 x, y, z A, x(yz) = (xy)z,
et distributive droit et gauche par rapport laddition :
An2 x, y, z A, x(y +z) = xy +xz,
An3 x, y, z A, (y +z)x = yx +zx,
On prendra galement la convention que tout anneau est unifre, cest dire que la multiplication est
munie dun lment neutre 1 :
An3 x A, 1x = x1 = x.
Lanneau est dit commutatif si la loi de multiplication est commutative :
Comm. x, y A, xy = yx.
Dfinition 4.1.2 Un morphisme danneau : A B est une application telle que
MorAn x, y, z A, (xy +z) = (x)(y) +(z) A, (1
A
) = 1
B
SAn Une partie A B est dit un sous-anneau, si linclusion A B est un morphisme danneau.
Exemple. On pose B = ZZ = (x
1
, x
2
) [ x
1
, x
2
Z, alors A = 0 Z est un anneau, mais non un
sous-anneau de B.
Dfinition 4.1.3 Soit A un anneau commutatif. Une partie I A est dit un idal si cest un sous-
groupe additif pour laddition, stable par la multiplication externe (par un lment quelconque y A
Idal x I, a A, ax I.
Oprations sur les idaux
Dfinition 4.1.4 (a) Soient I, J deux idaux de de A. Leur somme
I +J = x +y [ x I, y J
est le plus petit idal de A contenant I et J.
La somme dune famille didaux (I

est forme par toutes les sommes nies

=
_

, x

_
o x

= 0 sauf un nombre ni de .
36
(b) Lintersection ensembliste

dune famille didaux (I

est toujours un idal de A.


(c) Soit X une partie dun anneau A. Lintersection de tous les idaux de A, contenants X, est dit
lidal engendr par X
(d) Le produit
I
1
I
2
. . .I
n
dun nombre ni didaux est lidal engendr par
x
1
x
2
. . .x
n
[ x
1
I
1
, x
2
I
1
, , x
n
I
n

En particulier, lidal I
n
est engendr par
x
1
x
2
. . .x
n
[ x
1
, x
2
I
1
, , x
n
I
Exemple.
a) Si A = Z, I = (m), J = (n), alors
I +J = (pgcd(m, n)), I J = (ppcm(m, n)), I J = (mn).
Remarque.
Lidal, engendr par une famille x

, concide avec la somme

(x

)
de tous les idaux principaux (x

) = x

A.
Remarque. Montrer en exercice que lunion dune famille didaux (I

nest pas un idal en gnral,


mais cest le cas si les idaux I

sont totalement ordonns par linclusion :


, , soit I

, soit I

.
4.2 Anneau quotient
Dfinition 4.2.1 Soit A un anneau commutatif, I A un idal de A. Alors il existe sur le groupe
quotient additif A/I une unique structure danneau telle que la projection canonique : A A/I est un
morphisme danneaux.
Proposition 4.2.2 (a) Soit A un anneau commutatif, I A un idal de A. Alors il existe une bijection
entre lensemble
J A [ J I
37
didaux contenants I, et lensemble
_
J A/I
_
didaux de A/I, donne par J =
1
(J), o : A A/I est la projection canonique.
(b) Soit : A B un morphisme danneaux, alors I = Ker :=
1
(0) est un idal de A, (A) = C
est un sous-anneau de B, et il y a un isomorphisme danneaux
: A/I

C.
Notations.
On crit
x y mod I x y I.
Diviseurs de zro, lments nilpotents et units
Dfinition 4.2.3
(a) Un x A0 est dit diviseur de zro, sil existe un y A0 tel que xy = 0. Un anneau A ,= 0
sans diviseurs de zro est dit intgre.
(b) Un lment x A0 est dit nilpotent, si x
n
= 0 pour un n 1.
(c) Un lment x A esi dit inversible (ou une unit) de A sil existe y A, xy = 1. On notera
x A

.
Dfinition 4.2.4 Un corps est un anneau commutatif A, non rduit 0 dans lequel tout lment
non-nul est inversible :
Corps x A, x ,= 0, y A, xy = 1
Proposition 4.2.5 (a) Soit A un corps, alors A est un anneau intgre.
(b) Soit A un corps, I un idal de A. Alors soit I = 0 soit I = A.
4.3 Idaux premiers
Dfinition 4.3.1
(a) Un idal I ,= A est dit premier, si
x, y A, x y I x I ou y I,
i.e. lanneau quotient A/I est intgre.
(b) Un idal I ,= A est dit maximal, si
idal J A, I J I = J, ou J = A
Proposition 4.3.2
(a) Un idal I ,= A est dit maximal, si et seulement si A/I est un corps
(b) Tout idal maximal est premier.
Preuve (a) On suppose I maximal. Si x , I, on considre lidal (x, I) engendr par x et I. Alors
(x, I) ,= I donc (x, I) = A; ceci dit, il existe a A et b I tels que ax + b = 1 ; ceci dit, ax = 1 dans
A/I.
38
Rciproquement, si A/I est un corps, les seuls idaux de A/I sont 0 et A/I. Par la proposition
4.2.2, a), il existe une bijection entre lensemble
J A [ J I
didaux contenants I, et lensemble
_
J A/I
_
didaux de A/I. Donc il ny a pas didaux stricts intermdiaires entre I et A, i.e. I est maximal.
(b) Un corps est toujours un anneau intgre, donc I est premier.
Exemple.
Dans lanneau A = C[X, Y ] lidal I = (X, Y ) est maxmal, A/I

C.
Lidal J = (X) nest pas maxmal, mais premier :A/J

C[Y ].
Exercice. ( faire en TD) Montrer que tous les idaux maximaux M de lanneau A = Z[X] sont de la
forme : M = (p, f), o f Z[X] est un polynme tel que f mod p F
p
[X] est irrductible. Ici F
p
= Z/pZ
est le corps de p lments.
Lidal J = (p) nest pas maxmal, mais premier :A/J

F
p
[X].
4.4 Divisibilit dans les anneaux
Dfinition 4.4.1 Soit A un anneau commutatif.
(a) Si a et b A , on dit que a divise b et on note a[b sil existe un c A tel que b = ac. On dit
galement que b est un multiple de a ou a un diviseur de b. On note (a) = aA linsemble des multiples de
a. Cest un idal de A engendr par a.
(b) Soit A un anneau intgre. Deux lments a et b A sont dits associs si et seulement sils vrient
une des conditions quivanentes suivantes :
(i) u A

, b = ua
(ii) a[b et b[a
(iii) (a) = (b)
On notera dans ce paragraphe a b (cest une relation dquivalence).
Dfinition 4.4.2 Un lment a A est dit irrductible, si et seulement si il vrie les deux conditions
suivantes :
Irr1. a , A

Irr2. Si a = bc avec a, b A alors a A

ou b A

.
Exemple. Les lments irrductibles de Z sont les lments de la forme p ou p avec p un nombre
premier parce que Z

= 1.
Proposition 4.4.3 Soit p A0. Si (p) est premier alors p est irrductible. La rciproque est fausse
en gnrale.
39
Dfinition 4.4.4 Soit A un anneau commutatif intgre, I un ensemble et (a
i
)
iI
une famille dlments
de A.
(i) On dit que d A est un pgcd de la famille (a
i
)
iI
, d = pgcd(a
i
)
iI
, si
i I, d[a
i
et r A, i I, r[a
i
r[d
(ii) On dit que m A est un ppcm de la famille (a
i
)
iI
, m = ppcm(a
i
)
iI
, si
i I, a
i
[m et r A, i I, a
i
[r m[r
Exemple 4.4.5 Le pgcd et ppcm nexiste pas toujours dans un anneau commutatif. Un exemple connu
est donn par lanneau Z[

5] dans lequel il existe essentiellement direntes factorisations en lments


premiers :
2 3 = (1 +

5) (1

5).
On pose a = 6 et b = 2(1 +

5). Montrer que pgcd(a, b) et ppcm(a, b) nexiste pas dans A.


Remarque. Si d = pgcd(a
i
)
iI
et m = ppcm(a
i
)
iI
existent, il ne sont en fait pas uniques. Seules leurs
classes dquivalence dans A/ le sont.
4.5 Anneaux euclidiens et anneaux principaux
La notion de division sur les polynmes et les entiers conduit la notion danneau euclidien.
Dfinition 4.5.1 Un anneau intgre A est dit euclidien sil existe une application : A N appele
stathme telle que
a A0b A, (q, r) A
2
, b = aq +r avec r = 0 ou (r) < (a)
Exemple. Lanneau des entiers Z est euclidien pour la valeur absolue.
Exercice. Montrer que les anneaux Z[i] et Z[j] sont euclidiens pour le carr de la valeur absolue
complexe.
Dfinition 4.5.2 Un anneau intgre A est dit principal si tout idal I de A est princapal, cest dire,
il existe un a A, tel que I = (a).
Thorme 4.5.3 Tout anneau A euclidien est principal.
Preuve. Soit A un anneau euclidien et I un idal de A. Si I ,= 0, il existe un lment non nul dans
I. On choisit un lment x de I tel que (x) soit minimal. Alors I = (x). En eet, pour tout y I, on
crit y = xq + r avec r = 0 ou (r) < (x). Comme r = y xq, r I et par minimalit de (x), r = 0.
Donc y (x), CQFD
40
Proposition 4.5.4 Soit A un anneau principal. Les assertions suivantes sont quivalentes :
(i) a est un idal maximal non nul de A;
(ii) a est un idal premier non nul de A;
(iii) il existe un lment p irrductible de A tel que a = (p).
Preuve. (i)(ii) Puisquun idal maximal est premier.
(ii)(iii) Comme A est principal, il existe p tel que a = (p) mais comme (p) est premier, p est
irrductible.
(iii)(i) Soit p irrductible et a = (p). Par lhypothse, p , A

, donc a ,= A. Soit b tel que a b.


Comme A est principal, b = (q). Donc q[p, si a ,= b, alors q et p ne sont pas associs. Donc q A

, et
b = A.
Corollaire 4.5.5 (Lemme dEuclide) Soit A un anneau principal, p un lment irrductible dans A.
Alors
p[ab (p[a ou p[b).
Proposition 4.5.6 Soit A un anneau principal, alors toute famille (a
i
)
iI
dlments de A admet un
pgcd et ppcm.
Preuve. Le pgcd est donn comme un gnrateur de lidal

iI
(a
i
) et le ppcm comme gnrateur de
lidal

iI
(a
i
).
Proposition 4.5.7 (Bezout) Si A est un anneau principal et a
1
, , a
n
A, alors il existe b
1
, , b
n

A tels que
a
1
b
1
+ +a
n
b
n
= pgcd(a
1
, , a
n
)
Preuve. Le pgcd est un gnrateur de lidal (a
1
, , a
n
), donc il existe b
1
, , b
n
A tels que
a
1
b
1
+ +a
n
b
n
= pgcd(a
1
, , a
n
).
Dfinition 4.5.8 Si A est un anneau principal et a
1
, , a
n
A, Si pgcd(a
1
, , a
n
) = 1 alors on dit
que a
1
, , a
n
sont premiers entre eux. Dans ce cas il existe b
1
, , b
n
A tels que
a
1
b
1
+ +a
n
b
n
= 1
Proposition 4.5.9 (Lemme de Gauss) Soit A est un anneau principal et b, c A deux lments pre-
miers entre eux. Si c[ab, alors c[a.
Preuve. Par le thorme de Bezout, il existe u, v tels que bu +cv = 1. Comme c[ab par lhypothse,
c[a(bu +cv) = abu +acv = a,
ceci implique que c[a.
41
4.6 Dcomposition en facteurs premiers
Dfinition 4.6.1 Un anneau intgre A est dit factoriel si et seulement si il vrie les conditions sui-
vantes :
Existence. Pour tout lment non nul a de A il existe un lment inversible u A

et des lments
irrductibles p
1
, , p
m
de A tels que
a = up
1
. . .p
m
(il ce peut que m = 0, dans ce cas a A

).
Unicit. Soient m, n, p
1
, , p
m
et q
1
, , q
m
des lments irrductibles de A et u, v A

des lments
inversibles de A tels que
up
1
. . .p
m
= vq
1
. . .q
n
,
alors m = n et il existe une permutation S
n
telle que q
i
p
(i)
pour i = 1, n.
Thorme 4.6.2 Tout anneau A principal est factoriel.
Preuve. Existence. On raisonne par labsurde : soit a
0
un lment de A0, non-inversible, qui ne scrit
pas comme produit dlments irrductibles. En particulier, a
0
nest pas irrductible et on peut crire :
a
0
= a
1
a

1
avec a
1
et a

1
non inversibles. Si ces deux lments sont produit dirrductibles, alors il en est
de mme de a
0
. Quitte changer a
1
et a

1
, on peut supposer que a
1
nest pas produit dirrductibles.
En itrant, on obtient une suite innie a
0
, a
1
, , a
n
dlmnts tels que
(a
0
) (a
1
) (a
n
)
La runion I =

n=0
est un idal de A. En eet 0 I et si b
1
et b
2
appartiennent I, il existe n
1
et
n
2
tels que b
1
a
n1
et b
2
a
n2
. Soit n = sup(n
1
, n
2
), alors b
1
b
2
(a
n
) donc I est un sous groupe de
A et si b appartient I et a A il existe n tel que b (a
n
) et ab (a
n
) I. Comme A est principal,
I = (a) pour un a A. Mais comme a I, il existe n tel que a (a
n
) donc
(a
n
) (a
n+1
) (a
n
) I = (a) (a
n
),
ce que est absurde.
Unicit. Si on a une galit de la forme
up
1
. . .p
m
= vq
1
. . .q
n
,
avec p
1
, , p
m
et q
1
, , q
m
des lments irrductibles, et u, v A

des lments inversibles de A, on


peut supposer que m n. On procde alors par rcurrence sur m. Si m = 0, alors n = 0 et le rsultat
annonc est vrai. Mais, par le lemme dEuclide (Corollaire 4.5.5, p
1
divise v ou lun des q
i
. Comme v est
inversible, si p
1
[v alors p
1
est inversible ce que contredi le fait que p
1
soit irrductible. On a
p
1
[q
1
. . .q
s
.
Donc p
1
divise lun des q
i
.
Quitte changer les q
i
, on peut supposer que p
1
[q
1
. Comme le nombre q
1
est premier, on obtient
p
1
= wq
1
avec w A

, do
p
2
. . .p
m
= (vw)q
2
. . .q
n
(aprs la simplication), et il reste appliquer lhypothse de rcurrence au produit p
2
. . .p
m
de m1
facteurs irrductibles.
42
Exercices
4.1 Le pgcd et ppcm nexiste pas toujours dans un anneau commutatif. Un exemple connu est donn par
lanneau Z[

5] dans lequel il existe essentiellement direntes factorisations en lments premiers :


2 3 = (1 +

5) (1

5).
On pose a = 6 et b = 2(1 +

5). Montrer que pgcd(a, b) et ppcm(a, b) nexiste pas dans A.


4.2 Trouver tous les diviseurs de zro dans les anneaux
Z/100Z, Z/72Z, Z/p
n
Z.
4.3 Trouver tous les lments nilpotents dans les anneaux
Z/100Z, Z/72Z, Z/p
n
Z.
4.4 Trouver tous les lments inversibles dans les anneau
Z/100Z, Z/72Z, Z/p
n
Z.
4.5 Montrer quun anneau ni A est intgre si et seulement sil est un corps.
4.6 Montrer que les anneaux Z[i] et Z[j] sont euclidiens pour le carr de la valeur absolue complexe.
4.7 Trouver tous les lments inversibles dans les anneau Z[i] et Z[j].
4.8 Dcrire tous les lments irrductibles dans les anneau Z[i] et Z[j].
4.9 Montrer que lanneau des nombres dcimaux
O =
n
a
b

a, b Z, b = 10
k
, k N
o
est un anneau euclidien.
4.10 Montrer que tout corps est un anneau euclidien.
43
Cours N

5. Mercredi le 3 novembre 2004


(disponible sur : http ://www-fourier.ujf-grenoble.fr/panchish).
5 Thorme des restes chinois
5.1 Thorme des restes dans les anneaux principaux
Commenons par noncer un rsultat prliminaire :
Proposition 5.1.1 Si A est un anneau principal et a
1
, , a
n
des lments premiers entre eux deux--
deux, alors
ppcm(a
1
, , a
n
) =
n

i=1
a
i
.
Lemme 5.1.2 Soit A un anneau principal. Si b est premier avec chacun des a
1
, , a
n
, alors b est
premier avec a
1
. . .a
n
.
Preuve du lemme. On procde par rcurrence. Lnonc est vrai si n = 1. Montrons le pour n = 2. Par
le thorme de Bezout, comme b est premier avec a
1
et a
2
, il existe des lments x
1
, x
2
, y
1
, y
2
de A tels
que
1 = x
1
b +y
1
a
1
, et 1 = x
2
b +y
2
a
2
.
Par consquant,
1 = (x
1
b +y
1
a
1
)(x
2
b + y
2
a
2
) = (x
1
x
2
b +y
1
a
1
x
2
+x
1
y
2
a
2
)b +y
1
y
2
a
1
a
2
,
ce que implique le rsultat dans ce cas. Si le rsultat est vrai pour n 1 par hypothse de rcurrence, b
est premier avec a
1
. . .a
n1
et a
n
. Donc, en utilisant n = 2, on obtient que b est premier avec le produit
a
1
. . .a
n
.
Preuve de la proposition. On montre la proposition par rcurrence. Elle est vraie pour n = 1. Si n = 2,
comme
a
1
[
ppcm(a
1
, a
2
)
a
2
a
2
,
en appliquant le lemme de Gauss (Proposition 4.5.9), a
1
divise
ppcm(a
1
, a
2
)
a
2
et donc a
1
a
2
[ppcm(a
1
, a
2
).
Enn pour la rcurrence on utilise lassertion qui prcde et lgalit
ppcm(a
1
, , a
n
) = ppcm(ppcm(a
1
, , a
n1
, a
n
).
Thorme 5.1.3 (Thorme des restes) Si A est un anneau principal et a
1
, , a
n
des lments
premiers entre eux deux--deux, alors
A/(a
1
. . .a
n
)

i=1
A/(a
i
).
44
Preuve du thorme. On considre lapplication
A
n

i=1
A/(a
i
),
produit des projections canoniques. Son noyau est

n
i=1
(a
i
) qui par la proposition prcdente concide
avec

n
i=1
(a
i
). On obtient donc un morphisme injectif
A/(a
1
. . .a
n
)
n

i=1
A/(a
i
).
Il reste donc montrer que cette application est surjective. Cela revient donc montrer que, sous les
hypothses du thorme, pour toute famille (x
1
, , x
n
) de A
n
, il existe x dans A tel que a
i
[x x
i
pour
tout i entre 1 et n. L encore, nous allons procder par rcurrence. Pour n = 1, le rsultat est vrai. Pour
n = 2, en utilisant Bezout, on peur crire 1 = a
1
b
1
+ a
2
b
2
, avec b
1
et b
2
des lments de A. On pose
x = a
1
b
1
x
2
+a
2
b
2
x
1
. On obtient
x x
1
= a
1
b
1
(x
2
x
1
) et x x
2
= a
2
b
2
(x
1
x
2
).
Donc x convient.
Si le rsultat est vrai pour n 1, il existe y tel que a
i
[(y x
i
) pour 1 i n 1, et en utilisant le
cas n = 2, il existe un lment x de A tel que
n1

i=1
a
i
[(x y) et a
n
[(x
n
y).
Par consquant a
i
[(y x
i
) pour 1 i n, CQFD.
(Voir aussi des exemples, disponibles ladresse cache :
http ://www-fourier.ujf-grenoble.fr/panchish/04ma1-maple dans le chier
4ma1-7chrem.mws)
Remarque 5.1.4 (Thorme de Bezout : une forme explicite) Si A est un anneau principal et
a
1
, , a
n
des lments premiers entre eux deux--deux, alors on peut explicitement donner un x A
tel que pour toute collection de classes x
i
mod a
i
= x
i
+(a
i
), x x
i
mod a
i
. On pose A
i
=
n

j=1
j=i
a
j
. Alors
on a pgcd(A
1
, , A
n
) = 1 puisque a
1
, , a
n
sont des lments premiers entre eux deux--deux. Cici
dit, par lidentit de Bezout, quil existe u
i
A tels que
A
1
u
1
+ +A
n
u
n
= 1
Il vient que
A
i
u
i

_
0 mod a
j
, si j ,= i
1 mod a
i
Ceci implique quon peut dnir x comme
x = x
1
A
1
u
1
+ +x
n
A
n
u
n
.
En eet, la congruence prcdente montre que
i = 1, , n, x = x
1
A
1
u
1
+ +x
n
A
n
u
n
x
i
mod a
i
.
45
5.2 Application : lments inversibles mod n
Proposition 5.2.1 Soit m un entier strictement positif et a un entier relatif. Les conditions suivantes
sont quivalentes
(i) a est un gnrateur du groupe Z/mZ,
(ii) a est inversible dans lanneau Z/mZ,
(iii) a est premier m.
On note (m) le cardinal de (Z/mZ)

. La fonction (m) est appele la fonction indicatrice dEuler.


On a la relation suivante :
(m) = m

pP

p|m
_
1
1
p
_
=
r

i=1
p
mi1
i
(p
i
1).
Preuve de i) et ii) est dj fait dans la Proposition 2.3.1 (sur la simplication dans Z/nZ) : si
pgcd(a, n) = 1 et
axay (mod n)
alors xy (mod n).
On va dduire iii) de lisomorphisme danneaux
Z/mZ = Z/(p
m1
1
. . .p
mr
r
)

i=1
Z/(p
mi
i
).
En considrant les lments inversibles, on obtient un isomorphisme de groupes
(Z/mZ)

i=1
(Z/(p
mi
i
))

.
Par consquant
(m) =
r

i=1
(p
mi
i
).
Mais si p est premier, a est premier p si et seulement sil nest pas divisible par p.
Donc
(p
n
) = p
n
p
n1
= p
n1
(p 1),
(p
n1
1
. . .p
nr
r
) = p
n11
1
(p
1
1). . .p
nr1
r
(p
r
1).
Exemple.
(4) = 2, (25) = 20, (100) = 40, (1000) = 4 100 = 400.
Exercice. Trouver la factorisation en produit des nombres premiers de (8!).
Remarque. Le problme de calcule de (n) est dicile pour les grands nombres entiers n, puisque il
dpend de la factorisation de n.
46
Corollaire 5.2.2 (Thorme de Fermat-Euler) Pour tout entier strictement positif n et tout l-
ment a de (Z/nZ)

, on a
a
(n)
= 1.
Preuve. Cela rsulte du thorme de Lagrange (thorme 3.6.3), appliqu au groupe (Z/nZ)

.
Exemple.
> 3&^400 mod 100000;
88001
5.3 Application la cryptographie : RSA
La cryptographie thorique est une science qui tudie les systmes dchange dinformation protg.
On considre un systme dutilisateurs U
1
, U
2
,U
3
. . . . De temps en temps chaque couple dutilisateurs
aurait pu besoin dchanger de messages que doivent rester secret pour les autres utilisateurs ou pour
toute autre person non autorise.
Dans les systmes classiques de cryptographie, ils doivent changer dabord les cls et aprs les garder
secret. La cryptographie clef publique vite la dernire restriction : les communications secretes deux-
-deux devienent possible en utilisant seulement une information ouverte pour tout le monde. Un tel
systme peut tre ralis de faon suivante : Pour lensemble U
i
dutilisateurs et un ensemble ni M
des "messages" , et on associe tout U
j
deux applications
E
j
: MM, et D
j
: MM,
de telle faon que D
j
est secret, E
j
est publique (ouverte), et
E
j
D
j
= id = D
j
E
j
: MM.
(donc le savoir de E
j
ne donne pas D
j
= E
1
j
.
Cryptographie asymtrique.
Les mthodes anciennes utilises pour cryptage et pour dcryptage ont t symtriques : les applica-
tions
E
ij
: MM, et D
ij
: MM,
ont t connu pour U
i
et U
j
, mais secrets pour tout autre utilisateur U
k
, avec k ,= i, j.
Par exemple, on a utilis souvent le cryptage par permutation E
ij
, ou cryptage par addition avec un
grand nombre alatoire dans M= Z/NZ.
En 1976, des nouveaux systmes de cryptographie asymtriques ont t dcouverts par Die, Hellman,
Rivest, Shamir, Adleman la base de la dicult du problme dinversion.
47
Fonctions sens unique trappe.
Soient E et F deux ensembles nis, par exemple E = F = M. Une fonction bijective de E dans F est
dite une fonction sens unique (FSU) si tant donn y F tel quil existe x E avec (x) = y, la seule
donne de et de y ne permet pas de calculer x; cest le problme dinversion, cest--dire calculer la
fonction inverse
1
de . La fonction est dite fonction sens unique trappe (FSUT) si cest une FSU
telle que il existe une information supplmentaire, la cl secrte K, qui permet de rsoudre le problme
dinversion.
Utilisations des fonctions sens unique trappe.
Soit une FSUT de E dans F avec la cl secrte K. Les messages possibles sont les lments de E et
les messages crypts sont les lments de F. An de recevoir des messages crypts, Alice (un utilisateur)
rend publique la fonction (fonction de cryptage), elle garde secret nanmoins la cl K. Pour transmettre
un message x E Alice, Bob calcule y = (x) et envoie y. An de dcoder le message y, il faut pouvoir
calculer x =
1
(y), or seule Alice, qui possde K, arrive calculer
1
(fonction de dcryptage). Ainsi,
tout le monde peut coder un message, mais seule Alice peut le dcoder.
5.4 Principaux protocoles.
Les principaux protocoles existants utilisant des FSU ou des FSUT sont le protocole RSA, et les
protocoles de type ElGamal bass sur le problme du logarithme discret : dans le groupe des lments
inversibles dun corps ni ou dans le groupe des points dune courbe elliptique sur un corps ni.
Le protocole RSA (comme Rivest, Shamir, Adleman), voir [RSA]
Soient p et q deux nombres premiers de grande taille, on pose n = p q. Lensemble E et lensemble F
sont le mme ensemble : lensemble M = 0, . . . , n 1 des nombres entiers entre 0 et n 1. Soit e un
nombre entier premier avec (p 1)(q 1). La fonction est la fonction
(x) = x
e
mod n,
la clef secrte K est un entier d tel que
e d 1 (mod (p 1)(q 1)),
alors on a

1
(x) = x
d
(mod n).
Cette assertion est vraie pour tous les x mod pq.
Si pgcd(x, pq) = 1, on utilise le thorme 5.2.2 dEuler-Fermat :
x
ed
x mod pq.
48
Si, par exemple p[x, mais q x, on a donc
ed = 1 + (p 1)(q 1)t x
ed
= (x)
1+(p1)(q1)t
= x(x
(p1)t
)
q1
x mod pq
x
ed
=
_
x((x)
(p1)
)
q1
x 1 mod q,
0 x mod p
x
ed
x mod pq.
La scurit du protocole RSA
rside sur le fait que pour calculer lentier d, il faut connatre les nombres p et q, et donc tre mme
de factoriser lentier n.
Pour raliser ce schma on utilise la dicult technique de factorisation de grands nombres entiers
en produit de nombres premiers.
Systme RSA pour plusieurs utilisateurs
a) Chaque utilisateur U
i
choisit deux grand nombres premiers p
i
, q
i
, et deux classes e
i
, d
i
mod n
i
o
n
i
= p
i
q
i
telles que e
i
d
i
1 mod (n
i
) o (n
i
) = (p
i
1)(q
i
1) dsignes la fonction de Euler.
b) Les nombres (e
i
, n
i
) sont publiques pour tous les utilisateurs (ils sont publis dans une sorte de
"pages blanches").
On suppose quil nest pas possible de calculer d
i
partir de (e
i
, n
i
), donc d
i
peut tre consider
comme une clef secrte de dcryptage connue seulement U
i
. En eet, on montrera quun algorithme
ecace pour calculer d
i
trouve aussi la factorisation de n
i
(ceci dit, un tel algorithme est quivalente
la rsolution dun problme suppos dicile). Supposons quon connait d
i
. Alors on connait que (n
i
)
divise e
i
d
i
1. Si lon avait connu (n
i
) on aurait pu trouver facilement p
i
, q
i
car
(n
i
) = (p
i
1)(q
i
1) = p
i
q
i
(p
i
+q
i
) + 1
p
i
+q
i
= n
i
+ 1 (n
i
) et p
i
q
i
=
_
(p
i
+q
i
)
2
4n
i
.
On peut montrer mme que si lon connait seulement un multiple de (n
i
) on puisse trouver p
i
, q
i
.
c) Supposons quun utilisateur U
i
souhaite transmettre U
j
un message secret repsent comme un
suite de bits. Tout dabord, il dcompose cette suite en blocs de longueur [log
2
n
j
], alors il considre tout
bloc comme une classe des rsidue m mod n
j
et nalement il crypte le message par la classe m
ej
mod n
j
.
Ceci dit, (n
j
, e
j
) sers comme une clef de cryptage de j-e utilisateur.
d) Ayant reu le message crypt, U
j
le dcrypte bloc-par-bloc b mod n
j
par calcule de b
dj
mod n
j
(rapellons quil connait seulement sa clef de dcryptage d
j
). Ceci est impliqu immdiatement par le
thorme dEuler-Fermat (corollaire 5.2.2).
Exemple de cryptage avec RSA (disponible ladresse cache :
http ://www-fourier.ujf-grenoble.fr/panchish/04ma1-maple dans le chier
4ma1-6rsa.mws)
On suppose quon travaille avec un alphabet de N symboles, alors on utilise une base dcriture = N.
Soient k < l deux entiers strictement positifs tel que N
k
< n
j
< N
l
, par exemple k = [log
N
n
j
]. Alors
49
les blocs de k lettres correspondent aux nombres
0 m < n
j
. Tout message est prsent comme une suite de tel blocs, et on crypte par blocs M =
m mod n
j
. Soit f(M) = E
j
(M), f : Z/n
j
Z Z/n
j
Z. Limage f(M) peut tre prsente comme un bloc
de l lettres car n
j
< N
l
mais pas tous les blocs de l lettres paraissent de telle faon.
Exemple. Soit N = 26 (lalphabet de 26 lettres), p
j
= 281, q
j
= 167, n
j
= 46927, e
j
= 39423,
d
j
= 26767, k = 3, l = 4, N
3
= 17576 < 46927 < N
4
= 456976.
Le mot "YES" correspond 24 N
2
+ 4 N + 18 = 16346 = m mod n
j
.
16346
39423
mod 46927 = 21166 = 1 26
3
+ 5 26
2
+ 8 26 + 2 = "BFIC" = modn
j
Pour dcrypter le message, lutilisateur U
j
applique
b b
dj
mod n
j
, 21166
26767
mod 46927 = 16346.
Signatures lctroniques
Bien videmmement, on peut varier les dtails de ce schma ad innitum. Par exemple, on peut
construire une procdure dauthentication (electronic signature) qui utilise une forme sign dun mes-
sage secret de U
i
U
j
permettant U
j
de convaincre une troisime personne (un juge) que lauteur
du message est bien U
i
donc ce message nt pas falci par U
j
lui-mme. Ceci peut tre crucial pour
certaines transactions interbancaires.
On considre lapplication E
i
de cryptage pour les messages adresss U
i
et soit D
i
lapplication de
dcryptage de U
i
. Alors on a vu que E
i
est publique tandis que D
i
est priv (la proprit de U
i
). Pour
tout message M on a D
i
(E
i
(M)) = M et E
i
(D
i
(M)) = M. Lutilisateur U
i
en envoiant U
j
son message
M utilise comme sa signature S = D
i
(M) et il transmet U
j
sa version crypte E
j
(S). A son tour, U
j
dabord calcule S = D
j
(E
j
(S)) et ensuite M = E
i
(S) en utilisant la clef publique E
i
. Le rcpteur peut
convaincre un juge que M vient de U
i
parce que seulement avec lapplication E
i
on peut transformer S
en un message sens M.
De plus, le rcpteur de S = D
i
(M) ne peut pas le falcier car il ne connait pas D
i
.
Maintenant on discutra plutt des aspects arithmtiques que les aspects informatiques de la thorie
des cryptosystms clef publique. On montrera que les rsultats classiques de larithmique peuvent tre
appliqus dans ce domaine.
Problme 1. Comment produire des grands nombres premiers ?
On a besoin dune mthode vraiment ecace pour organiser une production en masse des grands
nombres premiers "susemment alatoirs" pour permettre un utulisateur calculer ( laide dun
ordinateur) son couple customis (p
i
, q
i
) et dtre sr quaucun autre utilisateur ne prendra cette paire.
Problme 2. Comment factoriser grands nombres entiers ?
Ce problme est cl pour la troisime partie qui souhaite casser le cryptosystme mais aussi, bien-sr,
pour les dveloppeurs essayant assurer la aibilit dun tel systme.
50
Cours N

6. Mercredi le 10 novembre 2004


(disponible sur : http ://www-fourier.ujf-grenoble.fr/panchish).
Le protocole ElGamal
Ce protocole sapplique ds que lon a un groupe cyclique ni G. On xe g un gnrateur de G et
on note M lordre du groupe G. Lensemble E est gal G et lensemble F est une partie du produit
G G, cest--dire lensemble form des couples de deux lment de G. Alice choisit, au hasard, un
lment a dans 0, . . . , M 1 et calcule g
a
. Puis elle rend publique G, g et g
a
. La cl secrte K est
lentier a. Pour crypter un message x G, Bob choisit un entier k au hasard dans 0, . . . , M 1 et
calcule y
1
= g
k
, puis y
2
= x (g
a
)
k
(ce qui est possible puisque g
a
est publique). Le message crypt est
le couple (y
1
, y
2
) GG.
La fonction de cryptage FSUT ("Fonction sens unique trappe")
En dautres termes, la fonction de cryptage FSUT est donne par
(x) =
_
g
k
, x (g
a
)
k
_
avec k un entier choisi au hasard dans 0, . . . , M 1 et dirent chaque fois. Pour dcrypter un tel
message (y
1
, y
2
), Alice calcule y
a
1
et obtient
y
a
1
y
2
= g
ak
x g
ak
= g
akak
x = x.
La scurit du protocole ElGamal
Ainsi la fonction de dcryptage

1
(y
1
, y
2
) = y
a
1
y
2
nest calculable que si on connat la cl secrte K.
La scurit de ce protocole repose sur la dicult de rsoudre le problme du logarithme discret. Plus
prcisment, le problme de retrouver lentier a tant donns g et g
a
. Cest un problme dicile dans la
plupart des cas si lordre du G groupe est divisible par un grand nombre premier.
Exercices
5.1. On considre lquation
X
2
X = 0
Trouver toutes ses solutions dans les anneaux
Z/100Z, Z/72Z, Z/p
n
Z.
5.2. Soit p, q deux nombres premiers. Combien lquation
X
3
X = 0
a-t-elle de solutions dans les anneaux
Z/pqZ, Z/72Z, Z/p
n
Z.
51
6 Primalit
On considre maintenant la question suivante : le nombre naturel donn estil premier o compos ?
Une mthode trs ancienne du crible dEratosthne (3e sicle avant notre re) donne la liste de tous
les nombres premiers n. Il fournit aussi le plus petit nombre premier qui divise n et donc est un test
de primalit, voir ci-desus Construction dune table de nombres premiers.
Cependant elle nest pas trs ecace car elle utilise plus de n divisions, et dpend exponentiellement
de la longuer de lcriture de n.
La dmonstration dEuclide du fait que lensemble des nombres premiers est inni utilise la rduction
ad absurdum. Une dmonstration plus moderne est due Euler : le produit tendu sur tous les nombres
premiers

p
_
1
1
p
_
1
=

p
_
1 +
1
p
+
1
p
2
+. . .
_
(6.1)
devrait tre ni si lon suppose que lensemble des nombres premiers est ni. Cependant, la partie droite
de (6.2.1) se rduit une srie divergente

n=1
n
1
par le thorme de factorisation unique.
Voici un programme en TEX pour construire une table des nombres premiers (disponible sur :
http ://www-fourier.ujf-grenoble.fr/panchish) :
\newif\ifprime\newif\ifunknown
\newcount\n \newcount\p \newcount\d \newcount\a
\def\primes#1{2,~3% assume that #1 is at least 3
\n=#1 \advance\n by -2
\p=5
\loop\ifnum\n>0 \printifprime\advance\p by2 \repeat}
\def\printp{,
\ifnum\n=1 et~\fi
\number\p \advance\n by -1 }
\def\printifprime{\testprimality \ifprime\printp\fi}
\def\testprimality{{\d=3 \global\primetrue
\loop\trialdivision \ifunknown\advance\d by 2 \repeat}}
\def\trialdivision{\a=\p \divide\a by\d
\ifnum\a>\d \unknowntrue\else\unknownfalse\fi
\multiply\a by\d
\ifnum\a=\p \global\primefalse\unknownfalse\fi}
Par exemple, les quatre cent premiers nombres premiers sont
\primes{400}
Par exemple, les quatre cent premiers nombres premiers 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, 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,
52
991, 997, 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097,
1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229,
1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361,
1367, 1373, 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483,
1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601,
1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723,
1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871,
1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, 1999,
2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129,
2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, 2269,
2273, 2281, 2287, 2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, 2381, 2383,
2389, 2393, 2399, 2411, 2417, 2423, 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539,
2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663, 2671, 2677,
2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, et 2741
Fibonacci a sugger (en 1202) un test plus rapide de primalit en remarquant que le plus petit diviseur
nontrivial de n est [

n] donc il sut dessayer seulement de tels nombres.


Rapellons une proprit importante des nombres premiers.
6.1 Z/pZ est un corps
Thorme 6.1.1 Soit n 2 un entier. Alors lanneau Z/nZ est un corps si et seulement si n est un
nombre premier.
Preuve. On raisonne par labsurde : si n ntait pas premier, on aurait une dcomposition n = ab
avec a, b < n et strictement positifs. Dans ce cas les classes a = a mod n et b = b mod n sont non nuls
donc inversibles dans le corps Z/nZ , ce que contrdit lgalit ab = 0.
Si n est premier, et a = a mod n un lment non-nul, alors n ne divise pas a, donc n et a sont
premiers entre eux. Par lidentit de Bezout, il existe u, v Z tels que au + nv = 1, donc au = 1 dans
lanneau Z/nZ, ceci dit , Z/nZ est un corps.
6.2 Petit thorme de Fermat
La contribution essentielle suivante dans le problme de vrication de primalit est lie au petit
thorme de Fermat (dixseptime sicle). Ce rsultat donne une condition ncessaire de primalit
Thorme 6.2.1 (Petit thorme de Fermat) Soit n un nombre premier et a premier n. Alors
a
n1
1 mod n. (6.2)
6.3 Nombres pseudopremiers de Fermat
La condition (6.2) (avec a xe) est ncessaire mais nest pas susante en gnral pour que n soit
premier. Mais si elle nest pas satisfaite pour n, alors srement n est compos (mais en gnral on ne
connat aucun de ses diviseurs). On appelle n pseudopremier par rapport a si PGCD(a, n) = 1 et la
condition (6.2 ) est satisfaite.
53
Exemple 6.3.1 Soit p = 323. Est-ce que p est premier ? On calcule 2
322
modulo 323. On organise les
calcules dans une table :
i m m
i
2
2
i
mod 323
0 322 0 2
1 161 1 4
2 80 0 16
3 40 0 256
4 20 0 290
5 10 0 120
6 5 1 188
7 2 0 137
8 1 1 35
Alors
2
322
4 188 35 157 (mod 323),
donc 323 nest pas premier. En eet, 323 = 17 19.
Les nombres composs n = 561 = 3 11 17,1105 = 5 13 17, 1729 = 7 13 19 sont pseudopremiers
par rapport tout a (premier n). On appelle un tel nombre nombre de Carmichael.
En 1994 il a t dmontr par Alford, Granville et Pomerance que lensemble des nombres de Car-
michael est inni (voir [AGP94]). Par exemple, un nombre n sans diviseurs carrs est un nombre de
Carmichael si et seulement si pour tout diviseur premier p de n, p 1 divise n 1.
De la condition (6.2) provient un test rapide probabiliste de vrication de primalit. Il est bas sur
lobservation que les grandes puissances a
m
mod n peuvent tre calcules assez rapidement.
Fermat luimme a decouvert ce thorme en tudiant les nombres F
n
= 2
2
n
+ 1. Il a cru quils taient
tous premiers, mais il na pu vrier cela que pour n 4. Plus tard Euler a trouv une factorisation non
triviale de F
5
= 4294967297 = 641 6700417. Aucun nouvau nombre premier de Fermat na t trouv,
et beaucoup de mathmaticiens croient quil ny a pas plus de tels nombres premiers.
Voici quelques calculs de la factorisation de F
5
, F
6
, F
7
, F
8
, avec le logiciel PARI
PARI/GP is free software, covered by the GNU General Public License, and
comes WITHOUT ANY WARRANTY WHATSOEVER.
Type ? for help, \q to quit.
Type ?12 for how to get moral (and possibly technical) support.
realprecision = 28 significant digits
seriesprecision = 16 significant terms
format = g0.28
parisize = 4000000, primelimit = 500000
? factor(2^32+1)
%1 =
[641 1]
54
[6700417 1]
? factor(2^64+1)
%2 =
[274177 1]
[67280421310721 1]
? factor(2^128+1)
%3 =
[59649589127497217 1]
[5704689200685129054721 1]
? factor(2^256+1)
%4 =
[1238926361552897 1]
[93461639715357977769163558199606896584051237541638188580280321 1]
(Le dernier calcul a pris quelques seconds sur mon ordinateur)
55
Deuxime partie
Polynmes et corps nis
7 Polynmes
7.1 Anneau de polynmes, division euclidienne
Sur un corps ni, il convient de distinguer les polynmes et les fonctions polynmes. Nous revenons
donc sur la dnition des polynmes.
Dfinition 7.1.1 Si A un anneau commutatif, lanneau des polynmes une variable X sur A est
lanneau A[X] form des suites (a
i
)
iN
dlment de A telles que a
i
= 0 sauf un nombre ni dentiers i.
Cet ensemble est muni de la somme
(a
i
)
iN
+ (b
i
)
iN
= (a
i
+b
i
)
iN
et du produit
(a
i
)
iN
(b
i
)
iN
=
_
_

i=j+k
a
j
b
k
_
_
iN
On a une application injective A A[X] qui envoie a sur (a, 0, ), et on identie A avec son image.
Tout lment de A[X] scrit de faon unique

iN
a
i
X
i
, o on note par X la suite :
(0, 1, 0, 0, ).
Soit A un anneau. Il est commode de voir un polynme f(X) coecients dans A une expression
formelle du type
f(X) = a
n
X
n
+a
n1
X
n1
+ +a
0
qui est donne par la suite de ces coecients a
0
, a
1
, . . . , a
n
A, n N telle que presque tous a
n
(sauf
un nombre ni) sont nuls.
Si tous les coecients a
i
sont nul on appelle f(X) polynme nul : f = 0. Si f(X) est non-nul soit
a
n
,= 0.
Dfinition 7.1.2 Le plus grand indice n avec cette proprit est appele le degr de f(X) et il est not
deg f. Le degr du polynme nul nest pas dni, mais parfois on pose deg 0 = .
Lanneau A[X] est dni comme lensemble des expressions f(X) ci-dessus avec des oprations don-
nes par les rgles suivants : si
f(X) = a
n
X
n
+a
n1
X
n1
+ +a
0
, a
n
,= 0
g(X) = b
s
X
s
+b
s1
X
s1
+ +b
0
, b
s
,= 0
deux polynmes et si par exemple n s, on appelle leur somme le polynme
(f +g)(X) = f(X) +g(X) = c
n
X
n
+c
n1
X
n1
+ +c
0
,
dont les coecients sont obtenus par laddition des coecients correspondents de X dans f et dans g,
cest dire c
i
= a
i
+b
i
, i = 0, 1, . . . , n, o pour i > s les coecients b
i
sont considrs comme zros.
56
Le produit des polynmes f(X) et g(X) est le polynme
(fg)(X) = f(X) g(X) = d
n+s
X
n+s
+d
n+s1
X
n+s1
+ +d
0
,
o
d
i
=

k+l=i
a
k
b
l
,
et les coecients a
i
, b
j
sont considrs comme zros pour i > n, et j > s, d
0
= a
0
b
0
, d
1
= a
0
b
1
+ a
1
b
0
,
. . . , d
n+s
= a
n
b
s
.
Thorme 7.1.3 Si lanneau A na pas diviseurs de zro, lanneau des polynmes A[X] aussi na pas
de diviseurs de zro. Le degr du produit des polynmes non nuls est gal la somme de ces degrs.
Dmonstration est directement entran des formules ci-dessus, en particulire de d
n+s
= a
n
b
s
, o
n = deg f, s = deg g.
Lanneau A peut tre sidenti avec un sous-anneau de A[X] form par des constantes (polynmes
de degr nul et le polynme nul). Ceci implique que la multiplication des lmets a A par f(X) A[X]
est aussi dnit. En particulier, si A = K est un corps, lanneau K[X] est aussi un space vectoriel.
Du point de vu de la structure algbrique lanneau K[X] devient un algbre de dimension inni sur K,
cest dire, un anneau et un espace vectoriel en mme temps dans lequel la multiplication dlments
commute avec multiplication par des constantes.
7.2 Division euclidienne sur les anneaux
Division des polynmes avec reste
Proposition 7.2.1 Soit A un anneau commutatif intgre. On se donne un polynme
P(X) =
d

i=0
a
i
X
i
coecients dans A tel que a
d
soit un lment inversible de A. Alors pour tout polynme f(X) de A[X]
il existe une unique paire (Q, R) A[X]
2
telle que
f = PQ+R avec R = 0 ou deg R < deg P
Preuve. Existence. Nous allons procd par rcurrence sur le degr de f. Si deg f < d, alors (0, f)
convient. Sinon on crit
f =
n

i=0
b
i
X
i
avec b
n
,= 0 et n d.
Alors
f b
n
a
1
d
X
nd
P = PQ
1
+R
1
avec R
1
= 0 ou deg R
1
< d.
La paire (Q
1
+b
n
a
1
d
X
nd
, R
1
) convient.
Unicit. Si
PQ
0
+R
0
= PQ
1
+R
1
avec deg R
0
< deg P et deg R
1
< deg P alors P(Q
0
Q
1
) = (R
1
R
0
). Comme le coecient dominant
de P est inversible, on a deg(P(Q
0
Q
1
)) = deg P +deg(Q
0
Q
1
) mais ce degr est strictement infrieur
celui de P si et seulement si Q
0
Q
1
= 0, cest dire, Q
0
= Q
1
, ce qui entrane que R
0
= R
1
.
57
Exemple. Illustrons sur un exemple la faon deectuer une telle division dans Z[X] :
3X
4
+ 7X
3
7X
2
+ 16X 5
3X
4
9X
3
+ 6X
2
X
2
+ 3X 2
3X
2
2X + 5
2X
3
X
2
+ 16X 5
2X
3
+ 6X
2
4X
5X
2
+ 12X 5
5X
2
15X + 10
3X + 5
Division euclidienne dans K[x] sur un corps K
Thorme 7.2.2 Pour tous polynmes f(X) et P(X) tels que P(X) soit non nul coecients dans un
corps K il existe une unique paire (Q, R) A[X]
2
telle que
f = PQ+R avec R = 0 ou deg R < deg P
Les polynmes Q(X) et R(X) sont uniquement dtermins par cette condition.
Dfinition 7.2.3 Le polynme Q(X) est appell le quotient de la division f(X) par Q(X), et R(X) le
reste.
Divisibilit des polynmes
Soit K un corps. Soient f(X), (X) K[X]. Si le reste de la division de f(X) par (X) est nul, on
dit que f(X) est divisible par (X) o de mme que (X) divise f(X), la notation : [ f. La condition
[ f est quivalente au fait quil existe un polynme (X) tel que f(X) = (X) (X).
La dnition implique directement les proprits suivantes de la divisibilit :
1) Si f est divisible par g, est g est divisible par h, f est divisible par h.
2) Si f et g sont divisibles par , leur somme et leur dirence sont divisibles par .
3) Tout polynme est divisible par nimporte quel polynme de degr zro.
4) f(X) divise g(X) et g(X) divise f(X) en mme temps si et seulement si g(X) = cf(X), o c K

est un lment inversible.


5) Les ensembles de diviseurs de f(X) et cf(X) concident.
On appelle le pgcd (le plus grand diviseur commun) de f(X) et g(X) le polynme d(X) tel que d
divise f et g, et d est divisible par tout autre diviseur commun de ces polynmes.
Thorme 7.2.4 Pour tous polynmes f et g dans K[X] sur un corps K il existe leur pgcd que est
uniquement dtermin constante multiplicative prs.
Cest une proprit gnrale dans les anneaux euclidiens.
7.3 Valeurs et racines dun polynme
Proposition 7.3.1 Soit A un anneau commutatif. On se donne un polynme
f(X) =
n

i=0
a
i
X
i
58
coecients dans A, et soit c un lment de A. Alors la valeur de f en c est dnie comme f(c) =
a
n
c
n
+a
n1
c
n1
+ +a
0
A.
(a) Lapplication

c
: A[X] A, f f(c) =
n

i=0
a
i
c
i
A
est un seul morphisme danneaux tel que la rstriction de
c
sur le sous-anneau A A[X] soit triviale,
et que
c
(X) = c.
(b) Rciproquement, pour tout morphisme danneaux : A[X] A tel que la rstriction de sur le
sous-anneau A A[X] soit triviale, il existe un seul c A tel que =
c
.
Preuve de la proposition 7.3.1 dcoule de la dnition 4.1.2 de morphisme danneaux.
Fonctions polynmes.
Dfinition 7.3.2 (a) Lapplication
f : A A, c f(c)
note par la mme lettre f, est dit la fonction polynme.
(b) Si f(c) = 0 (cest dire f sannule en c), on appelle c racine de f.
Remarque. La fonction polynme en gnral ne dni pas le polynme de manire unique. Par exemple,
sur un corps ni K, il convient de distinguer les polynmes et les fonctions polynmes.
Soit par exemple A = K = F
2
= 0, 1 (le corps de deux lments). Considrons le polynme
f(X) = X
2
+X + 1, alors f(0) = 1 et f(1) = 1 cest dire f denie une fonction constante sur K mais
f(X) nest pas une constante (polynme de degr zro) comme polynme.
Thorme 7.3.3 Soit A = K un corps. Si f(X) K[X], le reste de la division de f(X) par (X c)
est gal f(c). En particulier, c est une racine de f(X) si et seulement si f(X) est divisible par X c.
Dmonstration est implique par lunicit de la division avec reste :
f(X) = q(X)(X c) +r,
o r = f(c).
Corollaire 7.3.4 Si f(X) K[X], le nombre des racines c K est major par le degr deg(f).
Dmonstration est implique par lunicit de dcomposition en facteurs irrductibles dans un anneau
euclidien.
59
Mthode dHrner
permet de trouver facilement le quotient q(X) de la division par X c
f(X) = q(X)(X c) +r,
et la valeur r = f(c).
On considre le polynme
f(X) =
n

i=0
a
i
X
i
, et sa valeur en X = c ; on calcule f(c) de faon suivante : soient
f(X) = a
n
X
n
+ a
n1
X
n1
+ + a
0
, a
n
,= 0 un polynme, et on cherche un autre polynme
q(X) = b
n1
X
n1
+b
n2
X
n2
+ +b
0
, b
n1
,= 0 tel que
f(X) = (X c)q(X) +r,
En comparant les coecients des puissances de X on obtient
a
n
= b
n1
, a
n1
= b
n2
cb
n1
, ,
a
1
= b
0
cb
1
, a
0
= r cb
0
, r = f(c).
Ceci implique
b
n1
= a
n
, b
nk
= cb
nk+1
+a
nk
(k = 2, , n)
Il est commode de faire le tableau suivant (le schma de Hrner)
a
n
a
n1
a
1
a
0
c b
n1
= a
n
b
n2
= cb
n1
+a
n1
b
0
= cb
1
+a
1
f(c) = cb
0
+a
0
La formule de Taylor
Soit K un corps. On se donne un polynme
f(X) =
n

i=0
a
i
X
i
coecients dans K, et soit c un lment de K. Alors il existe b
1
, , b
n
K tels que
f(X) = f(c) +b
1
(X c) +b
2
(X c)
2
+ +b
n
(X c)
n
,
avec la proprit
k!b
k
= f
(k)
(c), k = 1, , n, (7.1)
o
60
f

(X) = na
n
X
n1
+ (n 1)a
n1
X
n2
+ +a
1
est la drive formelle de f(X).
Preuve. Lexistence des b
1
, , b
n
K dcoule de la division euclidienne dans K[X], par rcurrence
partir de
f(X) = (X c)q(X) +f(c).
Ensuite, on deduit la formule (7.1) par rcurrence partir de lidentit :
f(X) = f(c) +b
1
(X c) +b
2
(X c)
2
+ +b
n
(X c)
n
,
en utilisant lgalit formelle ((X c)
k
)

= k(X c)
k1
.
7.4 Formule dinterpolation de Lagrange
La formule dinterpolation de Lagrange donne un polynme sur un corps K de degr infrieure ou
gale n qui prend pour les valeurs distinctes de la variable X en
0
,
1
, . . . ,
n
K, les valeurs
0
,

1
, . . . ,
n
K. La solution est donne par le polynme de Lagrange
f(X) =
n

i=0

i
(X
0
) . . . (X
i1
)(X
i+1
) . . . (X
n
)
(
i

0
) . . . (
i

i1
)(
i

i+1
) . . . (
i

n
)
(7.2)
En eet son degr et inferieure ou gale n, et f(
i
) =
i
(i = 0, 1, . . . , n).
Proposition 7.4.1 Le polynome de Lagrange (7.2) est lunique polynme
f(X) = a
n
X
n
+a
n1
X
n1
+ +a
0
K[X]
de degr n tel que f(
i
) =
i
(i = 0, 1, . . . , n) pour arbitraires distincts lments
i
(i = 0, 1, . . . , n)
du corps K et pour arbitraires
i
K (i = 0, 1, . . . , n).
En eet si lon considre les coecients a
j
(j = 0, 1, . . . , n) comme des inconnues on obtiendrait le
systme des quations linaires suivant :
_

_
f(
0
) = a
n

n
0
+a
n1

n1
0
+ +a
0
=
0
f(
1
) = a
n

n
1
+a
n1

n1
1
+ +a
0
=
1
. . . . . . . . . . . . . . .
f(
n
) = a
n

n
n
+a
n1

n1
n
+ +a
0
=
n
Le dterminant de ce systme carre concide ( signe prs) avec le dterminant de Vandermonde

1 1 . . . 1

0

1
. . .
n

2
0

2
1
. . .
2
n
. . . . . . . . . . . .
. . . . . . . . . . . .

n
0

n
1
. . .
n
n

0i<jn
(
j

i
)
qui est non-nul, do lexistence et lunicit des coecients cherchs a
j
(j = 0, 1, . . . , n) du polynme
f(X) (dans le corps K).
61
Proposition 7.4.2 Soit K un corps inni. Alors un polynme f(X) est uniquement dtermin par la
fonction polynme correspondente c f(c) : K K.
Remarque. Au contraire, sur un corps ni K toute fonction f : K K est polynmiale, mais le
polynme correspondent f nest pas uniquement dtermin par cette fonction, car il existe des polynmes
non-nuls reprsentant la fonction identiquement nulle. Par exemple, le polynme non-nulle de degr p
f(X) = X
p
X =

aFp
(X a)
sannule en tous les points du corps K = Z/pZ.
7.5 Anneau de polynmes plusieurs variables
Dfinition 7.5.1 Soit A un anneau commutatif. Lanneau des polynmes n variables peut tre dni
par rcurrence comme
A[X
1
, , X
n
] = A[X
1
, , X
n1
][X
n
].
Si = (
1
, ,
n
) appartient N
n
, on note X

pour le produit

n
i=1
X
i
i
. Tout polynme scrit alors
de manire unique
P =

N
n
a

avec (a

)
N
n une famille de A
N
n
telle que a

= 0 sauf pour un nombre ni dlments N


n
.
Pour un lment = (
1
, ,
n
) N
n
, on note [[ =

n
i=1

i
. On dni alors le degr total dun
polynme non nul P =

N
n
a

comme
deg(P) = sup[[ [ a

,= 0
Proposition 7.5.2 Soit A un anneau commutatif. Pour tous polynmes non nuls
P, Q A[X
1
, , X
n
],
on a
(i) si P +Q ,= 0, alors deg(P +Q) sup(deg P, deg Q)
avec lgalit si deg P ,= deg Q;
(ii) deg(PQ) deg P + deg Q)
avec lgalit si A est intgre.
Dfinition 7.5.3 Soit A un anneau commutatif. Un polynme non nul
P A[X
1
, , X
n
],
est dit homogne de degr d si et seulement si
N
n
, [[ , = d a

= 0.
62
Proposition 7.5.4 Soient A et B deux anneaux commutatifs, : A B un morphisme danneaux, et
b
1
, . . . b
n
des lments de B, il existe un unique morphisme danneaux
: A[X
1
, , X
n
] B,
P =

N
n
a

P(b
1
, . . . b
n
) =

N
n
a

b
1
1
. . .b
n
n
,
tel que la rstriction de sur le sous-anneau A A[X
1
, , X
n
] concide avec .
Exemples de calculs avec polynmes de plusieurs variables (disponible ladresse cache :
http ://www-fourier.ujf-grenoble.fr/panchish/04ma1-maple
dans le chier 4ma1-8poly.mws)
> restart;
Exemple. On considre lanneau Z[X
1
, X
2
, X
3
, X
4
]. On pose
> Q:=mul(X[1]-i*X[2]-i*(X[3]+X[4]+1)+1,
> i=0..2) ;
Q := (X
1
+ 1) (X
1
X
2
X
3
X
4
) (X
1
2 X
2
2 X
3
2 X
4
1)
Pour dvelopper Q en monmes, on utilise :
> expand(Q);
2 X
1
X
2
2 X
1
X
3
2 X
1
X
4
3 X
1
2
X
2
3 X
1
2
X
3
3 X
1
2
X
4
+ 2 X
1
X
2
2
+ 2 X
1
X
3
2
+ 2 X
1
X
4
2
+ 2 X
2
2
+ 4 X
2
X
3
+ 4 X
2
X
4
+ 2 X
3
2
+ 4 X
3
X
4
+ 2 X
4
2
X
1
+X
2
+X
3
+ X
4
+ 4 X
1
X
2
X
3
+ 4 X
1
X
2
X
4
+ 4 X
1
X
3
X
4
+X
1
3
Pour dvelopper Q en monmes dans lordre lexicographique, on utilise :
> sort(expand(Q),[X[1],X[2],X[3],X[4]], plex);
X
1
3
3 X
1
2
X
2
3 X
1
2
X
3
3 X
1
2
X
4
+ 2 X
1
X
2
2
+ 4 X
1
X
2
X
3
+ 4 X
1
X
2
X
4
2 X
1
X
2
+ 2 X
1
X
3
2
+ 4 X
1
X
3
X
4
2 X
1
X
3
+ 2 X
1
X
4
2
2 X
1
X
4
X
1
+ 2 X
2
2
+ 4 X
2
X
3
+ 4 X
2
X
4
+X
2
+ 2 X
3
2
+ 4 X
3
X
4
+X
3
+ 2 X
4
2
+X
4
>
Pour dvelopper Q suivant les puissances X
1
, on utilise :
> collect(%,X[1]);
X
1
3
+ (3 X
3
3 X
4
3 X
2
) X
1
2
+
(1 2 X
3
+ 2 X
4
2
2 X
4
+ 2 X
2
2
+ 4 X
2
X
3
+ 4 X
2
X
4
2 X
2
+ 2 X
3
2
+ 4 X
3
X
4
) X
1
+X
2
+ 2 X
2
2
+ 4 X
2
X
3
+ 4 X
2
X
4
+ 2 X
4
2
+ 2 X
3
2
+ 4 X
3
X
4
+X
3
+X
4
Pour rduire Q modulo 3, on utilise :
> Expand(Q) mod 3 ;
63
X
1
3
+ 2 X
1
X
2
2
+X
1
X
2
X
3
+X
1
X
2
X
4
+X
1
X
2
+ 2 X
1
X
3
2
+X
1
X
3
X
4
+X
1
X
3
+ 2 X
1
X
4
2
+X
1
X
4
+ 2 X
1
+ 2 X
2
2
+X
2
X
3
+X
2
X
4
+X
2
+ 2 X
3
2
+X
3
X
4
+X
3
+ 2 X
4
2
+X
4
Pour dvelopper Q suivant les puissances de X
2
:
> collect(expand(Q),X[2]);
(2 X
1
+ 2) X
2
2
+ (1 + 4 X
3
+ 4 X
4
3 X
1
2
+ 4 X
1
X
3
+ 4 X
1
X
4
2 X
1
) X
2
+X
1
3
+ 2 X
3
2
3 X
1
2
X
3
3 X
1
2
X
4
+ 2 X
1
X
3
2
+ 4 X
1
X
3
X
4
+ 4 X
3
X
4
+X
3
2 X
1
X
4
X
1
2 X
1
X
3
+ 2 X
1
X
4
2
+ 2 X
4
2
+X
4
>
Pour calculer le degr total de Q, on utilise :
> degree(Q,[X[1],X[2],X[3],X[4]]);
3
> degree(Q,X[4]);
2
> degree(Q,X[1]);
3
> degree(Q,[X[1],X[4]]);
3
Pour trouver le quotient de la division euclidienne de Q par un polynme de terme dominant
inversible (par exemple X
2
1
+X
1
X
2
+X
3
) par rapport la variable X
1
, on utilise :
> quo(Q,X[1]^2+X[1]*X[2]+X[3], X[1]);
X
1
3 X
3
3 X
4
4 X
2
Pour trouver le reste de la division euclidienne de Q par le polynme de terme dominant inversible
X
2
1
+X
1
X
2
+X
3
par rapport la variable X
1
, on utilise :
> rem(Q,X[1]^2+X[1]*X[2]+X[3], X[1]);
(1 3 X
3
+ 2 X
4
2
2 X
4
+ 6 X
2
2
+ 7 X
2
X
3
+ 7 X
2
X
4
2 X
2
+ 2 X
3
2
+ 4 X
3
X
4
) X
1
+X
2
+ 2 X
2
2
+ 8 X
2
X
3
+ 4 X
2
X
4
+ 2 X
4
2
+ 5 X
3
2
+ 7 X
3
X
4
+X
3
+X
4
Vrication :
> (X[1]^2+X[1]*X[2]+X[3])*(X[1]-3*X[3]-3*X[4]-4*X[2])+(-1-3*X[3]+2*X[4]
> ^2-2*X[4]+6*X[2]^2+7*X[2]*X[3]+7*X[2]*X[4]-2*X[2]+2*X[3]^2+4*X[3]*X[4]
> )*X[1]+X[2]+2*X[2]^2+8*X[2]*X[3]+4*X[2]*X[4]+2*X[4]^2+5*X[3]^2+7*X[3]*
> X[4]+X[3]+X[4];
(X
1
2
+X
1
X
2
+X
3
) (X
1
3 X
3
3 X
4
4 X
2
)+
(1 3 X
3
+ 2 X
4
2
2 X
4
+ 6 X
2
2
+ 7 X
2
X
3
+ 7 X
2
X
4
2 X
2
+ 2 X
3
2
+ 4 X
3
X
4
) X
1
+X
2
+ 2 X
2
2
+ 8 X
2
X
3
+ 4 X
2
X
4
+ 2 X
4
2
+ 5 X
3
2
+ 7 X
3
X
4
+X
3
+X
4
> %-Q;
64
(X
1
2
+X
1
X
2
+X
3
) (X
1
3 X
3
3 X
4
4 X
2
)+
(1 3 X
3
+ 2 X
4
2
2 X
4
+ 6 X
2
2
+ 7 X
2
X
3
+ 7 X
2
X
4
2 X
2
+ 2 X
3
2
+ 4 X
3
X
4
) X
1
+X
2
+ 2 X
2
2
+ 8 X
2
X
3
+ 4 X
2
X
4
+ 2 X
4
2
+ 5 X
3
2
+ 7 X
3
X
4
+X
3
+ X
4
(X
1
+ 1) (X
1
X
2
X
3
X
4
) (X
1
2 X
2
2 X
3
2 X
4
1)
> expand(%);
0
Exercices
7.1 Soit P un polynme dans A[X], A anneau commutatif. Montrer que P(P(X))X est divisible par P(X)X
7.2 Soit P un polynme dans R[X] tel que P(1) = 1 et P(2) = 4. On pose B(X) = X
2
3X + 2. Dterminer
le reste de la division de P par B.
7.3 Soit P un polynme dans Q[X] tel que P(X) = (Xa)
2
(Xb) o a, b C. En considrant P

(X), montrer
que a, b Q.
7.4 Soit
f(X) = anX
n
+ an1X
n1
+ + a0 Z[X],
et p/q fraction irrductible telle que P(p/q) = 0. Montrer que q divise an, p divise a0, et pour tout m,
p mq divise P(m).
7.5 Dans R[X] montrer quil existe un unique polynme P de degr 7 tel que P +1 soit divisible par (X1)
4
,
et P 1 soit divisible par (X + 1)
4
. Dterminer P
7.6 Soit a Z, n un entier 2 tel que pgcd(a, n) = 1 Montrer que n est premier si et seulement si les polynmes
(X +a)
n
, et X
n
+ a sont congrus modulo n.
65
Cours N

7. Mercredi le 17 novembre 2004


8 Carrs dans Z/pZ
8.1 Racines primitives
Lide cl : Il existe un lment de (Z/pZ) dordre p 1.
Polynmes sur Z/pZ
Proposition 8.1.1 Soit f (Z/pZ)[x] un polynme non nul sur le corps Z/pZ. Alors il existe au plus
deg(f) lments Z/pZ tels que f() = 0.
Preuve (comparer avec Corollaire 7.3.4). On procde par rcurrence sur deg(f). Les cas deg(f) = 0, 1
sont clairs. On crit f = a
n
x
n
+ +a
1
x +a
0
. Si f() = 0 alors
f(x) = f(x) f() = a
n
(x
n

n
) + +a
1
(x ) +a
0
(1 1)
= (x )(a
n
(x
n1
+ +
n1
) + + a
1
) = (x )g(x),
pour un polynme g(x) (Z/pZ)[x]. Ensuite, on suppose que f() = 0 avec ,= . Alors ()g() = 0,
donc, puisque ,= 0 (et pgcd( , p) = 1, on a g() = 0.
Par lhypothse de rcurrence, g possde au plus n 1 racines, donc il y a au plus n 1 possibilits
pour . Il vient que f a au plus n racines.
Exemple 8.1.2 Trouver les racines de
f = x
4
x
3
+x
2
+x + 1 (Z/3Z)[x].
Solution : f(0) = 1, f(1) = 0, f(2) = 0, donc les racines sont {1, 2}. De plus,
f = (x + 1)(x + 2)(x
2
+ 2x + 2).
Bien-sr, on peut factoriser rapidement ce polynme mod 3 en Maple :
> Factor(x^4 - x^3 + x^2 +x +1)mod 3;
(x
2
+ 2 x + 2) (x + 2) (x + 1)
Proposition 8.1.3 Soit p un nombre premier, et soit d un diviseur de p 1. Alors f(x) = x
d
1
(Z/pZ)[x] possde exactement d racines.
Preuve. Soit e tel que de = p 1. On a
x
p1
1 = (x
d
)
e
1
= (x
d
1)((x
d
)
e1
+ (x
d
)
e2
+ + 1)
= (x
d
1)g(x),
66
o deg(g(x)) = p 1 d. Rapellons que le petit thorme de Fermat implique : x
p1
1 possde
exactement p 1 racines dans Z/pZ. Par proposition 8.1.1, g(x) possde au plus p 1 d racines et
x
d
1 a au plus d racines, donc g(x) possde exactement p 1 racines et x
d
1 possde exactement d
racines, CQFD.
Attention : Lanalogue de ce thorme est faux pour un f (Z/nZ)[x] avec n compos. Par exemple,
si n = n
1
n
2
avec n
1
, n
2
,= 1, alors f = n
1
x possde au moins deux zros distincts, notamment 0 et
n
2
,= 0.
Un autre exemple : x
2
1 Z/8Z[X] possde 4 racines : x = 1, x = 3, x = 5, x = 7.
La structure de (Z/pZ)

= 1, 2, . . . , p 1
Dans cette section on montrera que le groupe (Z/pZ)

est cyclique.
Dfinition 8.1.4 Une racine primitive modulo p est un lment de (Z/pZ)

dordre p 1.
Lemme 8.1.5 On suppose que a, b (Z/nZ)

sont dordre r et s, respectivement, et que pgcd(r, s) = 1.


Alors ab est dordre rs.
Cest un fait gnral sur les lments dun groupe, qui commutent entre eux.
Preuve. Lorsque (ab)
rs
= a
rs
b
rs
= 1, lordre de ab est un diviseur r
1
s
1
de rs, o r
1
[ r et s
1
[ s. Donc
a
r1s1
b
r1s1
= (ab)
r1s1
= 1.
On lve les deux parties en la puissance r
2
, o r
1
r
2
= r. Alors
a
r1r2s1
b
r1r2s1
= 1,
donc, puisque a
r1r2s1
= (a
r1r2
)
s1
= 1,
b
r1r2s1
= 1.
Ceci implique que s [ r
1
r
2
s
1
, et, car pgcd(s, r
1
r
2
) = 1, il vient que s = s
1
. Un argument similaire montre
que r = r
1
, donc lordre de ab est rs.
Thorme 8.1.6 Pour tout nombre premier p il existe une racine primitive mod p. Autrement dit, le
groupe (Z/pZ)

est cyclique dordre p 1.


Preuve. On crit
p 1 = q
n1
1
q
n2
2
q
nr
r
comme un produit de nombres premiers distincts q
i
.
Par la proposition 8.1.3, le polynme x
q
n
i
i
1 a exactement q
ni
i
racines, et le polynme x
q
n
i
1
i
1 a
exactement q
ni1
i
racines. Alors il existe un a
i
Z/pZ tel que a
q
n
i
i
i
= 1 mais a
q
n
i
1
i
i
,= 1. Un tel a
i
est
dordre q
ni
i
. Pour tout i = 1, . . . , r, on chosit un tel a
i
. Lorsqueon applique le lemme 8.1.5 plusieures
fois, on voit que
a = a
1
a
2
a
r
est dordre q
n1
1
q
nr
r
= p 1, donc a est une racine primitive.
Remarque. Il existe (p 1) racines primitives modulo p, puisque il y a q
ni
i
q
ni1
i
faons de choisir
a
i
. Pour le voir, on peut simplement utiliser le fait que le groupe cyclique (Z/pZ)

= Z/(p1)Z contient
67
(p 1) gnrateurs (voir le proposition 5.2.1). Sinon, on vrie que deux choix dirents de suites
a
1
, . . . , a
r
dnissent deux racines primitives direntes. On suppose que
a
1
a
2
a
r
= a

1
a

2
a

r
,
avec a
i
, a

i
dordre q
ni
i
, pour i = 1, . . . , r. Lorsquon lve les deux parties de lgalit en la puissance
s = q
n2
2
q
nr
r
, on voit que a
s
1
= a
s
1
. Puisque pgcd(s, q
n1
1
) = 1, il existe un t tel que st 1 (mod q
n1
1
). Il
vient que
a
1
= (a
s
1
)
t
= (a
s
1
)
t
= a

1
.
Par la simplication de a
1
dans les deux parties, on voit que a
2
a
r
= a

2
a

r
; on rpte cet argument
si ncessaire, et on montre que a
i
= a

i
pour tout i. Donc les choix direntes de a
i
amnent aux choix
dirents de racines primitives ; autrement dit, si les racines primitives sont les mmes, alors les a
i
concident.
Le nombre total des racines primitives est donc gale
(q
n1
1
q
n11
1
). . .(q
nr
r
q
nr1
r
) = (p 1)
puisque
p 1 = q
n1
1
q
n2
2
. . .q
nr
r
.
Exemples de racines primitives mod 17 (disponible ladresse cache :
http ://www-fourier.ujf-grenoble.fr/panchish/04ma1-maple
dans le chier 4ma1-09primr.mws)
Il existe (16) = 2
4
2
3
= 8 racines primitives mod 17 :
> with(numtheory):d:=17;i:=1;for n from 1 to d-1 do
> if (order(n,d)=d-1) then
> printf("i=%d,n=%d mod %d\n"
> ,i,n,d);
> i:=i+1;
> fi;
> od;
i=1,n=3 mod 17
i=2,n=5 mod 17
i=3,n=6 mod 17
i=4,n=7 mod 17
i=5,n=10 mod 17
i=6,n=11 mod 17
i=7,n=12 mod 17
i=8,n=14 mod 17
Exemple 8.1.7 Dans cet exemple, on donne une illustration pour la preuve du thorme 8.1.6 dans le
cas p = 13. On a
p 1 = 12 = 2
2
3.
68
Le polynme x
4
1 a les racines 1, 5, 8, 12 et x
2
1 a les racines 1, 12, donc on prend a
1
= 5. Le
polynme x
3
1 a les racines 1, 3, 9, donc on pose a
2
= 3. Finalement, a = 5 3 = 15 2 mod 13. On
remarque que les puissances successives de 2 sont
2, 4, 8, 3, 6, 12, 11, 9, 5, 10, 7, 1,
donc 2 est en ralit dordre 12.
Exemple 8.1.8 Le rsultat est faux si, par exemple p est remplac par une grande puissance de 2. Les
lments de (Z/8Z)

tous sont dordre divisant 2, mais (8) = 4.


Thorme 8.1.9 Soit p
n
une puissance dun nombre premier impaire. Alors il existe un lmnt de
(Z/p
n
Z)

dordre (p
n
), cest dire, (Z/p
n
Z)

est cyclique.
(en exercice).
Exemples de calcul du logarithme discret dans le groupe (Z/nZ)

(disponible ladresse
cache : http ://www-fourier.ujf-grenoble.fr/panchish/04ma1-maple
dans le chier 4ma1-10dislog.mws)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%
LOGARITHME DISCRET
> restart;with(numtheory);
Warning, the protected name order has been redefined and unprotected
[GIgcd, bigomega, cfrac, cfracpol , cyclotomic, divisors, factorEQ, factorset , fermat ,
imagunit , index, integral _basis, invcfrac, invphi , issqrfree, jacobi , kronecker, ,
legendre, mcombine, mersenne, minkowski , mipolys, mlog, mobius, mroot , msqrt,
nearestp, nthconver, nthdenom, nthnumer, nthpow, order, pdexpand, , ,
pprimroot , primroot , quadres, rootsunity, safeprime, , sq2factor , sum2sqr, ,
thue]
Examples
> with(numtheory):
> order(13,100);
20
> order(5,8);
2
> order(8,12);
FAIL
> primroot(20,239);
21
> order (%,239);
238
> phi (239);
238
69
> dislog:=proc(x::integer,g::integer,p::integer)
> local s, t, n,d;
> s:=g;t:=order(g,p);
> for n from 1 to t do
> if x=s then d:=n;
> fi;
> s:= s*g mod p; od;
> return (d);
> end proc;
dislog := proc(x : :integer, g : :integer, p : :integer)
local s, t, n, d;
s := g ;
t := order(g, p) ;
for ntot do if x = s thend := nend if ; s := s g mod p end do;
return d
end proc
> dislog(18,5,23);
12
> primroot(9048610007);
5
> dislog(7320,2,9587);
389
> 5^678 mod 9048610007;
3757843958
> nextprime(1000);
1009
> dislog(15625,5,9048610007);
Warning, computation interrupted
> primroot(1009);
11
> 11^345 mod 1009;
23
> dislog(23,11,1009);
345
GP/PARI CALCULATOR Version 2.1.1 (released) i686 running cygwin (ix86 kernel) 32-bit version
(readline v4.0 enabled, extended help not available)
Copyright (C) 2000 The PARI Group
PARI/GP is free software, covered by the GNU General Public License, and
comes WITHOUT ANY WARRANTY WHATSOEVER.
70
? znprimroot(9048610007)
%1 = Mod(5, 9048610007)
? znlog(15625,%1)
%2 = 6
? znlog(3757843958,%1)
%3 = 678
8.2 Symbole de Legendre.
Soit p, q des nombres premiers impairs distincts. La partie principale de la loi de rciprocit quadratique
dmontre par Gauss dit que pour p q 3 mod 4 la rsolubilit dune des congruences x
2
p mod q
et x
2
q mod p implique la nonrsolubilit de lautre ; sinon elles sont simultanement rsolubles ou
nonrsolubles. Gauss a utilis ce fait pour des calculs des grandes tables de nombres premiers.
Pour cela il a suggr une modication plus ne de la condition ncessaire de primalit base sur la
congruence de Fermat (6.2). Notamment on dnit le symbole de Legendre
_
a
n
_
pour un nombre premier
n = p par
_
a
n
_
=
_

_
0 si a 0 mod n,
1 si a b
2
mod n, pour un certain b, n b,
1 sinon.
(8.1)
Proposition 8.2.1 Soit n = p un nombre premier impair. Lapplication
: a
_
a
n
_
, (Z/nZ)

1
dnie un morphisme : (Z/nZ)

1 de groupes cycliques. Son noyau Ker() concide avec le


sousgroupe multiplicatif (Z/nZ)
2
des carrs dans (Z/nZ)

, avec
Card((Z/nZ)
2
) = (n 1)/2.
Exemples de calcul du symbole de Legendre (disponible ladresse cache :
http ://www-fourier.ujf-grenoble.fr/panchish/04ma1-maple dans le chier 4ma1-12legen.mws)
> with(numtheory):
Warning, the protected name order has been redefined and
unprotected
> legendre(74,101);
1
> legendre(3,73);
1
> legendre(22,11);
0
71
> legendre(5,2);
1
> legendre(-2342, 1901);
1
8.3 Congruence dEuler
Proposition 8.3.1 Soit n un nombre premier impair. Alors
a
(n1)/2

_
a
n
_
mod n. (8.2)
Preuve est impliqu par la cyclicit du groupe (Z/nZ)

. En eet, les deux parties de lgalit (8.2)


sont les morphismes non-triviales du groupe cyclique (Z/nZ)

dans le groupe 1. Si n nest pas


ncessairement premier, la congruence (8.2) peut tre utilise comme un test de primalit (une condition
ncessaire et susante) si lon dnit le symbole de Jacobi droite par multiplicativit : pour un nombre
impair positif n = p
1
p
2
. . . p
k
, o p
i
sont premiers (non ncessairement dierents) posons
_
a
n
_
=
_
a
p
1
_
. . .
_
a
p
k
_
(8.3)
Cependant, on montrera que le symbole de Jacobi peut tre calcul sans connaissance de la factorisation
de n en produit des nombres premiers.
Remarque. Si n est compos, il se peut que
_
a
n
_
= 1 mais a nest pas un carr mod n. Par exemple, si
n = pq, il sut dutiliser le thorme chinois des restes pour construire un a mod pq tel que
_
a
p
_
= 1
et
_
a
q
_
= 1. Alors
_
a
n
_
= 1 mais a nest pas un carr mod n. Au contraire, si a est pas un carr
mod n, alors
_
a
n
_
= 1 par multiplicativit.
En eet, le symbole de Jacobi peut tre tendu sur toutes les valeurs du numrateur et du d-
nominateur et il peut tre calcul sans connaissance de la factorisation de n en produit de nombres
premiers.
Pour cela on utilise la loi de rciprocit quadratique tendue
_
Q
P
__
P
Q
_
= (1)
(P1)
2
(Q1)
2
(8.4)
pour P, Q positifs impairs, et on a les deux complments suivants de cette loi
_
2
P
_
= (1)
(P
2
1)/8
,
_
1
P
_
= (1)
(P1)/2
, (8.5)
aussi bien que la multiplicativit du symbole par rapport au numrateur et au dnominateur. Le calcul
suit la mme procedure que celle suivie pour lalgorithme dEuclide et il utilise moins de 5 log max(P, Q)
divisions avec reste.
72
8.4 Lois de rciprocit de Gauss
(voir [Stein]). Le symbol
_
a
p
_
ne dpends que de la classe rsiduelle de a modulo p. Ensuite, on xe a et
on commence par faire une tableau suivante :
p
_
5
p
_
p mod 5
7 1 2
11 1 1
13 1 3
17 1 2
19 1 4
23 1 3
29 1 4
31 1 1
37 1 2
41 1 1
43 1 3
Cette table fait deviner que
_
5
p
_
ne dpends que de la classe de p modulo 5 ; plus prcisemment,
_
5
p
_
= 1
si et seulement si p 1, 4 (mod 5), i.e., p est un carr modulo 5. Cependant, on ne peut pas voir
directement de la valeur
5
(p1)/2
(mod p),
que p 1, 4 (mod 5) permet dvaluer cette expression.
A la base de tels calculs, plusieurs mathmaticiens ont trouv une explication conjecturale de ce
mystre de 18 sicle. Finalement, Gauss a prouv cette conjecture en 1801.
Thorme 8.4.1 (La loi de rciprocit quadratique ) Soit p, q des nombres premiers impairs
distincts. Alors
_
p
q
_
= (1)
p1
2

q1
2
_
q
p
_
, (8.6)
cest dire que pour p q 3 mod 4 la rsolubilit dune des congruences x
2
p mod q et x
2
q mod p
implique la nonrsolubilit de lautre ; sinon elles sont simultanement rsolubles ou nonrsolubles.
On donnera une dmonstration trs lmentaire de ce rsultat, bas sur le critre de Euler (8.2).
Remarque 8.4.2 Dans lexemple considr plus haut, on obtient
_
5
p
_
= (1)
2
p1
2
_
p
5
_
=
_
p
5
_
=
_
+1 if p 1, 4 (mod 5)
1 if p 2, 3 (mod 5).
Ceci dit, la loi de rciprocit quadratique explique pourqoi la connaissance de p modulo 5 permet
de calculer 5
p1
2
(mod p).
Il existe environ 200 dmonstration du thorme 8.4.1, voir
http://www.rzuser.uni-heidelberg.de/~hb3/rchrono.html
73
Thorme 8.4.3 (La loi de rciprocit quadratique tendue)
_
Q
P
__
P
Q
_
= (1)
(P1)
2
(Q1)
2
(8.7)
pour P, Q positifs impairs, et on a les deux complments suivants de cette loi
_
1
P
_
= (1)
(P1)/2
= (P),
_
2
P
_
= (1)
(P
2
1)/8
= (P), (8.8)
o on utilise les fonctions multiplicatives : (Z/4Z)

1 et : (Z/8Z)

1, donnes par :
(a) = (1)
a1
2
, =
_
1, si a 1 (mod 4)
1, si a 3 (mod 4)
, et (a) = (1)
a
2
1
8
=
_
1, si a 1 (mod 8)
1, si a 3 (mod 8)
.
Preuve dcoule du thorme 8.4.1 et des dnitions (8.20) : si, par exemple, P = p
1
. . .p
k
, Q = q
1
. . .q
l
,
alors
_
Q
P
_
=
_
q
1
. . .q
l
p
1
. . .p
k
_
=
_
Q
p
1
_
. . .
_
Q
p
k
_
=
k

i=1
l

j=1
_
q
j
p
i
_
,
_
P
Q
_
=
_
p
1
. . .p
k
q
1
. . .q
l
_
=
k

i=1
l

j=1
_
p
i
q
j
_
,
donc on obtient par multiplicativit :
_
Q
P
__
P
Q
_
=
k

i=1
l

j=1
_
p
i
q
j
__
q
j
p
i
_
=
k

i=1
l

j=1
(1)
p
i
1
2

q
j
1
2
= (1)
P1
2

Q1
2
,
puisque la fonction
a (a) = (1)
a1
2
, (Z/4Z)

1
est multiplicative (ab) = (a)(b). Ensuite, le calcul du symbole de Jacobi suit alors la mme procedure
que celle suivie pour lalgorithme dEuclide puisque
_
P
Q
_
ne dpend que de P modulo Q, et il utilise
moins de 5 log max(P, Q) divisions avec reste.
8.5 Une dmonstration lmentaire de la loi de rciprocit
Un lemme de Gauss
La preuve donne dans cette section est base sur le lemme de Gauss suivant :
Lemme 8.5.1 Soit p un nombre primier impair, et soit a un entier , 0 (mod p). On considre les
nombres,
a, 2a, 3a, . . . ,
p 1
2
a
74
et on les reduit modulo p de telle faon que le rsultat se trouve dans le sgment (
p
2
,
p
2
). Soit le
nombre total de nombres ngatifs obtenus de cette manire. Alors
_
a
p
_
= (1)

.
Preuve. Pour dnir , on exprime tout nombre
S =
_
a, 2a, . . . ,
p 1
2
a
_
comme un nombre congru au nombre de lensemble
_
1, 1, 2, 2, . . . ,
p 1
2
,
p 1
2
_
.
Chaque nombre 1, 2, . . .
p1
2
apparat une seule fois, avec un des deux choix de signe, sinon on obtiendrait
deux lments de S qui sont congrus modulo p, ou deux lments de S dont la somme soit congru 0
modulo p, ce que est impossible. Alors lensemble obtenu doit tre de la forme
T =
_

1
1,
2
2, . . . ,
(p1)/2

p 1
2
_
,
ou tout
i
est +1 ou1. En multipliant les lments de S et de T, on voit que
(1a) (2a) (3a)
_
p 1
2
a
_
(
1
1) (
2
2)
_

(p1)/2

p 1
2
_
(mod p),
donc
a
(p1)/2

1

2

(p1)/2
(mod p).
Le lemme donc dcoule de proposition 8.3.1.
Conjecture dEuler
Tout dabord, on fait une observation lmentaire :
Lemme 8.5.2 Soit a, b Q. Alors pour tout n Z,
#((a, b) Z) #((a, b + 2n) Z) #((a + 2n, b) Z) (mod 2).
Preuve. Si n > 0, alors
(a, b + 2n) = (a, b) [b, b + 2n),
o lunion est disjointe. Soit [x] note la partie entire de x, [x] x. Il y a exactement 2n entiers dans
linterval [b, b + 2n) :
_
b, b + 1, , b + 2n 1, si b Z
[b] + 1, [b] + 2, , [b] + 2n, si b , Z
donc lassertion du lemme est vraie dans ce cas. On a aussi
(a, b 2n) = (a, b)[b 2n, b)
75
et [b 2n, b) aussi contient exactement 2n entiers, donc le lemme est vrai aussi pour n ngatif. Lar-
mation sur #((a + 2n, b) Z) est dduit de manire similaire.
La proposition suivante a t conjectur par Euler, la base des nombreux calculs. La loi de rciprocit
quadratique sera facilement dduit de cette proposition.
Proposition 8.5.3 (Conjecture dEuler) Soit p un nombre premier impair et a N un nombre
entier positif tel que p a.
1. Le symbol
_
a
p
_
ne dpend que de p modulo 4a.
2. Si q est un nombre premier tel que q p (mod 4a), alors
_
a
p
_
=
_
a
q
_
.
Preuve. Pour pouvoir appliquer le lemme de Gauss ci-dessus, on a besoin de calculer la parit du
cardinal #(S I) de lintersection des ensembles
S =
_
a, 2a, 3a, . . . ,
p 1
2
a
_
et
I =
_
1
2
p, p
_

_
3
2
p, 2p
_

__
b
1
2
_
p, bp
_
,
o soit b =
1
2
a soit
1
2
(a 1), on choisit un entier parmi les deux nombres rationnels. En eet, on vrie
que tout lment de S qui se rduit un nombre dans l interval (
p
2
, 0), appartient I :
ka = pl +r, avec k = 1, 2, . . . ,
p 1
2
, r (
p
2
, 0) Z
ka
_
1
2
p, p
_

_
3
2
p, 2p
_

__
b
1
2
_
p, bp
_
.
Ceci est clair si b =
1
2
a <
p1
2
a (lextrmit droite bp de I se trouve gache de lextrmit droite de S).
Si b =
1
2
(a1), alors lextrmit suivant ( droite de I) bp+
p
2
=
1
2
(a1)p+
p
2
>
p1
2
a, donc ((b
1
2
)p, bp)
est le dernier intervale qui peut contenir un tel lment de S qui se rduit (
p
2
, 0).) Remarquer aussi
que les extrmits entires de I nappartiennent pas S, puisque ces extrmits entires sont divisibles
par p, mais aucun lment de S est divisible par p.
En divisant I par a, on voit que
#(S I) = #
_
Z
1
a
I
_
, o
1
a
I =
_
_
p
2a
,
p
a
_

_
3p
2a
,
2p
a
_

_
(2b 1)p
2a
,
bp
a
__
.
On pose p = 4ac +r, et soit
J =
_
_
r
2a
,
r
a
_

_
3r
2a
,
2r
a
_

_
(2b 1)r
2a
,
br
a
__
.
On observe que la seule dirence entre I et J est que les extrmits des intervals sont changs par
laddition dun entier pair. En appliquant le lemme 8.5.2, on a
= #
_
Z
1
a
I
_
#(Z J) (mod 2).
Alors
_
a
p
_
= (1)

ne dpend que de r, i.e., ne dpend que de p modulo 4a.


76
Si q p (mod 4a), alors le seul changement dans le calcul ci-dessus est que r est remplac par
4a r. Ceci remplace lensemble
1
a
I pour lensemble
K =
_
_
2
r
2a
, 4
r
a
_

_
6
3r
2a
, 8
2r
a
_

_
4b 2
(2b 1)r
2a
, 4b
br
a
__
.
Alors K est le mme que
1
a
I, lexception de laddition des entiers pairs aux extrmits. De nouveau,
le lemma 8.5.2 implique
#(K Z) #
__
1
a
I
_
Z
_
(mod 2),
donc
_
a
p
_
=
_
a
q
_
, CQFD.
Lanalyse suivante plus ne dans le cas spcial o a = 2 donne aussi une illustration de la dmons-
tration prcdente du lemme, et ce rsultat est souvent utilis dans les calculs.
Proposition 8.5.4 Soit p un nombre premier impair. Alors
_
2
p
_
=
_
1 si p 1 (mod 8)
1 si p 3 (mod 8)
. (8.9)
Remarque. La fonction
a (a) = (1)
a
2
1
8
=
_
1 si a 1 (mod 8)
1 si a 3 (mod 8)
, : (Z/8Z)

1 (8.10)
est multiplicative (ab) = (a)(b).
Preuve. Si a = 2, lensemble S = a, 2a, . . . , 2
p1
2
est
2, 4, 6, . . . , p 1.
Nous pouvons compter la parit des nombres dlments de S qui appartiennent linterval I = (
p
2
, p).
On pose p = 8c +r, alors
#(I S) = #
_
1
2
I Z
_
= #
__
p
4
,
p
2
_
Z
_
= #
__
2c +
r
4
, 4c +
r
2
_
Z
_
#
__
r
4
,
r
2
_
Z
_
(mod 2),
o lgalit dernire vient du Lemme 8.5.2. Les possibilitis pour r sont 1, 3, 5, 7. Si r = 1, le cardinal
est 0, si r = 3, 5 il est 1, et si r = 7 il est 2 : Z
_
7
4
,
7
2
_
= 2, 3.
77
Cours N

8, Mardi le 23 novembre 2004


(Salle 017, 10h15-12h15 (exceptionnellement))
Rappel de la loi de rciprocit quadratique de Gauss, Thorme 8.4.3 :
Pour les nombres premiers positifs impairs p, q on a
_
p
q
__
q
p
_
= (1)
(p1)
2
(q1)
2
,
et on a les deux complments suivants de cette loi :
_
2
p
_
= (1)
(p
2
1)/8
,
_
1
p
_
= (1)
(p1)/2
,
Rappel de la Conjecture dEuler, Proposition 8.5.3 :
Soit p un nombre premier impair et a N un nombre entier positif tel que p a.
1. Le symbol
_
a
p
_
ne dpend que de p modulo 4a.
2. Si q est un nombre premier tel que q p (mod 4a), alors
_
a
p
_
=
_
a
q
_
.
Fin de la dmonstration de la loi de rciprocit quadratique
Avec le lemme on dduit directement la loi de rciprocit quadratique (thorme 8.4.1 de Gauss) :
Soit p, q des nombres premiers impairs distincts. Alors
_
p
q
_
= (1)
p1
2

q1
2
_
q
p
_
.
Preuve. On suppose dabord que p q (mod 4). Quite changer p et q on peut supposer p > q, et on
pose p q = 4a. Puisque p = 4a +q,
_
p
q
_
=
_
4a +q
q
_
=
_
4a
q
_
=
_
a
q
_
,
on a
_
q
p
_
=
_
p 4a
p
_
=
_
4a
p
_
=
_
1
p
_

_
a
p
_
.
Proposition 8.5.3 (Conjecture dEuler) implique que
_
a
q
_
=
_
a
p
_
, puisque p q (mod 4a). Alors
_
p
q
_

_
q
p
_
=
_
1
p
__
a
p
__
a
q
_
=
_
1
p
_
= (1)
p1
2
= (1)
p1
2

q1
2
,
o la dernire galit vient du fait que dans ce cas
p1
2
est pair si et seulement si
q1
2
est pair.
Ensuite, on suppose que p , q (mod 4), alors p q (mod 4). On crit p +q = 4a. On a
_
p
q
_
=
_
4a q
q
_
=
_
a
q
_
, and
_
q
p
_
=
_
4a p
p
_
=
_
a
p
_
.
Puisque p q (mod 4a), Proposition 8.5.3 implique que
_
p
q
_
=
_
q
p
_
. Mais dans ce cas (1)
p1
2

q1
2
= 1,
do la preuve.
78
Exemples de racines carres (disponible ladresse cache :
http ://www-fourier.ujf-grenoble.fr/panchish/04ma1-maple
dans le chier 4ma1-11sq.mws)
Exemple 8.5.5 Est-ce que 6 est un carr modulo 389 ? On a
_
6
389
_
=
_
2 3
389
_
=
_
2
389
_

_
3
389
_
= (1) (1) = 1.
Ici on a trouv que
_
2
389
_
= 1 en utilisant Proposition 8.5.4 et le fait que 389 5 (mod 8). On a trouv
_
3
389
_
de manire suivante :
_
3
389
_
=
_
389
3
_
=
_
2
3
_
= 1.
Alors 6 est un carr modulo 389.
Cependant, on connait pas de x tel que x
2
6 (mod 389), mais on peut le trouver
> restart;for a from 1 to 388 do
> if a^2 mod 389 = 6 then
> print(a); fi; od;
28
361
8.6 Une dmonstration de la loi de rciprocit utilisant sommes de Gauss
On utilise le morphisme de groupes multiplicatifs : (Z/qZ)

1, donn par le symbole de


Legendre a
_
a
q
_
= (a), o q est un nombre premier, et on utilise le morphisme x
x
=
exp(2ix/q) du groupe additif Z/qZ dans C

, ( = exp(2i/q)).
Nous allons considrer les sommes de Gauss comme un analogue discret de la fonction gamma (s)
qui pour Re(s) > 0 est dnie par lintgrale
(s) =
_

0
e
y
y
s
dy
y
. (8.11)
Ici la fonction intgre est le produit dun caractre additif de R (lhomomorphisme y e
y
, cest
dire, un morphisme de groupes R C), et dun caractre multiplicatif y y
s
de R

+
, cest dire, un
morphisme R

+
C). Lintgration est eectue par rapport la mesure invariante multiplicative
dy
y
.
Pour dnir la somme de Gauss, on remplace ici R par Z/NZ avec un N > 1, e
y
par un caractre
additif
Z/NZ C

: y
y
N
,
N
= exp
_
2i
N
_
,
(cest dire, un morphisme de groupes Z/NZ C), et on remplace y
s
par un caractre multiplicatif
: (Z/NZ)

(cest dire, un morphisme de groupes (Z/NZ)

C). Le caractre de Dirichlet


: Z C correspondant (dsign aussi par ) est dni par (a) = (a mod N) pour (a, N) = 1 et
par (a) = 0 pour (a, N) > 1. La somme de Gauss G() est dnie par
G() =
N1

x=1
(x)
x
N
. (8.12)
79
Pour a Z, on utilise souvent la notation suivante :
G
a
() =
N1

x=1
(x)
ax
N
.
Remarquons aussi que la fonction a G
a
() concide avec la "transformation de Fourier discrte" du
caractre .
La similitude entre (8.11) et (8.12) implique que leurs proprits sont similaires. Pour les dcrire on
introduit tout dabord la notion importante de caractre de Dirichlet primitif. Un caractre est dit
primitif modulo N sil ne sest pas rduit un autre caractre

: Z/MZ C

dnie modulo un nombre


M plus petit qui est un diviseur propre de N (par la compose avec la projection Z/NZ Z/MZ). De
mme, la restriction de sur un tout sousgroupe H
M
= ((1 +MZ)/(1 +NZ))

ne soit pas triviale. Par


exemple, tout caractre non-triviale modulo un nombre premier q, est primitif, y compris le symbole de
Legendre a
_
a
q
_
.
Proposition 8.6.1 Si est primitif, on a
G
a
() = (a)G() (a Z), (8.13)
G() = (1)G(), (8.14)
[G()[
2
= N. (8.15)
Remarque 8.6.2 La proprit (8.13) correspond la formule
_

0
e
ay
y
s
dy
y
= a
s
(s) (Re(s) > 0),
et (8.15), rcrite sous la forme G()G(
1
) = (1)N, correspond lquation fonctionnelle de la
fonction gamma
(s)(s) =

s sins
_
ou (s)(1 s) =

sins
_
Preuve des galits (8.13)(8.15) (en exercice) est implique par des changement dindice de sommation.
Par exemple, si (a, N) = 1, G
a
() =
N1

x=1
(x)
ax
N
=
N1

x=1
(a)(ax)
ax
N
= (a)

y(Z/NZ)

(ax)
ax
N
. Si
(a, N) = t > 1, on utilise le fait que
ax
N
ne dpend que de x mod N/t, et que la somme

b mod N
bc mod M
(b)
sannule pour tout caractre primitif , et pour tout propre diviseur M de N, donc G
a
() = 0 = (a)G()
dans ce cas, do (8.13). En particuler, pour a = 1 on a (8.14), car
G
1
() =
N1

x=1
(x)
x
N
= (1)G(), et
[G()[
2
= G()G() = (1)G()G() =

x mod N
(x)G()
x
N
=

x mod N
G
x
()
x
N
=

x,z mod N
(z)
x+xz
N
=

z mod N
(z)

x mod N

x(1+z)
N
= N
puisque la seule somme non-nulle sur x correspond z = 1, et (1) = 1, do (8.15).
80
Les proprits (8.13)(8.15) impliquent la loi de rciprocit quadratique.
Dmontrons la formule principale (8.6) :
_
p
q
__
q
p
_
= (1)
p1
2
.
q1
2
, (8.16)
o p, q sont des nombres premiers distincts. Remarquons premirement que le symbole quadratique
(a) =
_
a
q
_
est un caractre de Dirichlet primitif modulo q. La somme de Gauss correspondante G()
est un lment de lanneau R = Z[
q
]. Dans un anneau commutatif on a toujours la congruence (a+b)
p

a
p
+ b
p
mod pR grce la divisibilit des coecients binomiaux C
i
p
par p pour 1 i p 1. Comme

p
(a) = (a) = 1, on a
G()
p
G
p
(
p
) mod pR, G
p
(
p
) = (p)G(), donc
G()
p1

_
p
q
_
mod pR. (8.17)
De lautre ct, = , et lgalit (8.15) implique
G()
2
= (1)q = (1)
q1
2
q. (8.18)
Si lon reprsente la partie gauche de (8.17) comme G()
2
p1
2
on obtient
(1)
q1
2
.
p1
2
q
p1
2

_
p
q
_
mod pR. (8.19)
Finalement, (8.19) et la congruence dEuler assurent
q
p1
2

_
q
p
_
mod p
do (8.6).
De faon plus facile on montre lgalit (8.9) laide de lanneau S = Z[], o = exp(2i/8). On pose
b = +
1
, et on observe que b
2
= (+
1
)
2
= 2. Ensuite (+
1
)
p
+
1
mod pS si p 1 mod 8,
et ( +
1
)
p
( +
1
) mod pS si p 3 mod 8. De plus,

b
2
2 mod pS implique que

b = b mod pS
est inversible dans lanneau quotient S/pS (car p ,= 2), et
4
= 1,
5
= ,
6
=
2
,
7
=
3
. Donc
( +
1
)
p
+
1
mod pS implique b
p
b mod pS, do b
p1
1 mod pS, et
b
2
2 mod p 2
(p1)/2
(b
2
)
(p1)/2
b
p1
1 mod pS 2
(p1)/2
1 mod p.
Si b
p
b mod pS, alors b
p1
1 mod pS, et
b
2
2 mod p 2
(p1)/2
(b
2
)
(p1)/2
b
p1
1 mod pS 2
(p1)/2
1 mod p.
8.7 Nombres pseudopremiers dEuler
Rappels : Congruence dEuler
Proposition 8.3.1 Soit n un nombre premier impair. Alors on a la congruence (8.2) :
a
(n1)/2

_
a
n
_
mod n. (8.2)
81
Dfinition 8.7.1 Un nombre naturel n est appell un nombre pseudopremier de Euler par rapport a si
pgcd(a, n) = 1 et (8.2) soit satisfaite.
Si n nest pas ncessairement premier, la congruence (8.2) peut tre utilise comme une condition de
primalit si lon dnit le symbole de Jacobi droite par la multiplicativit : pour un nombre impair
positif n = p
1
p
2
. . . p
k
, o p
i
sont premiers (non ncessairement dirents) posons
_
a
n
_
=
_
a
p
1
_
. . .
_
a
p
k
_
(8.20)
En eet, le symbole de Jacobi peut tre tendu sur toutes les valeurs du numrateur et du dnomina-
teur et il peut tre calcul sans connaissance de la factorisation en produit des nombres premires de
n.
Maintenant on va dmontrer, en utilisant le thorme chinois (voir thorme 8.7.2), que si n est un
nombre pseudopremier dEuler par rapport tout a (Z/nZ)

alors n est premier. Cest dire, il ny


a pas danalogues eulriens des nombres de Carmichael.
Thorme 8.7.2 (Soloway-Strassen) Un nombre impair n est premier si et seulement si pour tout
a avec pgcd(a, n) = 1,
a
(n1)/2

_
a
n
_
mod n. (8.21)
Preuve (voir [Dem], p. 125).
Cas I) On suppose quil existe un nombre premier p impair tel que p
2
[n, et on utilise le morphisme
surjectif de groupes multiplicatifs
(Z/nZ)

(Z/p
2
Z)

, (8.22)
o le groupe (Z/p
2
Z)

est cyclique dordre p(p1). Ceci implique (par la surjectivit) quil existe a mod n
tel que
p(p 1) divise ord(a) p divise ord(a)
(n1)/2
=
ord(a)
pgcd((n 1)/2, ord(a))
(a)
(n1)/2
, 1 mod n.
(ou bien : n = p
2
m; a = 1+mp a
n1
,= 1, car a
p
= 1. En eet, (1+mp)
p
= 1+p mp+ 1 mod n
implique a
n1
= a
n
a
1
= a
1
,= 1).
Cas II) Soit n = p
1
. . .p
r
distincts, et r 2,
(Z/nZ)

i=1
(Z/(p
i
))

.
Supposons quil existe un a tel que
a
(n1)/2
1 mod n.
Lexistence dun tel a est ncessaire pour la congruence (8.21) puisque le thorme chinois permet de
trouver, pour un choix arbitraire de
i
= 1, un a avec
_
a
p
i
_
=
i
, (8.23)
82
donc on choisit

r
i=1

i
= 1, puisque
_
a
n
_
=
_
a
p
1
_
. . .
_
a
p
r
_
Notons a
i
la classe de a modulo p
i
. On a dune part,
_
a
n
_
=
_
a
p
1
_
. . .
_
a
p
r
_
=
_
a
1
p
1
_
. . .
_
a
r
p
r
_
Dautre part, rduisant modulo p
1
lgalit initiale, on obtient
_
a
1
p
1
_
. . .
_
a
r
p
r
_
a
(n1)/2
1
mod p
1
.
Daprs le thorme chinois, on peut choisir les direntes a
i
indpendamment. Mais le second membre
ne dpend que de a
1
, tandis quon peut changer le signe du premier sans modier a
1
, par exemple en
modient a
r
. Cela est absurde et contrdit lhypothse r 2.
8.8 Loi de rciprocit quadratique et tests de primalit.
Dans des tests modernes de primalit (Soloway-Strassen, Miller-Rabin...) on utilise la congruence
(8.2) et le thorme 8.7.2. Ces tests de primalit, marchent beaucoup plus rapidement que toutes les
mthodes connues de factorisation des grands nombres premiers alatoires.
Test de primalit de Soloway-Strassen
Cest un test probabiliste. Selon Emile Borel, "Un phnomne dont la probabilit est 10
50
, ne se
produira donc jamais ou du moins ne sera jamais observ ("La probabilit et la vie").
Rappelons quun nombre naturel n est appell un nombre pseudopremier de Euler par rapport a si
pgcd(a, n) = 1 et (8.2) soit satisfaite. Si (8.2) nest pas satisfaite pour un a avec pgcd(a, n) = 1 , alors
n nest pas premier, et on appelle a un tmoin dEuler de non-primalit de n. Selon le thorme 8.7.2, il
existe toujours un tmoin dEuler de non-primalit dun nombre compos impair n, mais la question qui
reste est quil est le plus petit valeur de a, ou qui est la proportion de tels temoins.
Le test de primalit de Soloway-Strassen est bas sur lobservation suivante :
Remarque 8.8.1 Soit n un nombre imaire. Si (8.2) nest pas satisfaite pour un a avec pgcd(a, n) = 1 ,
alors elle nest pas satisfaite pour au moins de 50 % de a.
En eet, soit H = a
1
, a
2
, , a
j
, lensemble de tous les a = a
j
pour lesquels (8.2) est satisfaite :
a
(n1)/2
j

_
a
j
n
_
mod n. (8.2)
Alors H est un sous-groupe de (Z/nZ)

donc a , H aH H = , ceci dit, la condition (8.2) nest


pas satisfaite pour au moins de 50 % de a.
Description dalgorithme. Soit n impair. On choisit au hasard k nombres b, 0 < b < n. Pour tout b
on calcul les deux parties de la congruence dEuler (8.2), b
(n1)/2
mod n et
_
b
n
_
.
83
Le calcul de b
(n1)/2
mod n cote O(log
3
n) opration boulennes par la mthode de carrs successifs.
Le calcul de
_
b
n
_
cote O(log
3
n) opration boulennes laide de la loi de rciprocit quadratique en
utilsant divisions euclidiennes.
Si (8.2) est valable pour k choix au hasard de b, alors la probabilit du fait que n est compos en
dpit davoir pass k tests avec succs, est infrieure ou gale 1/2
k
, donc pour k 167 on obtient une
probabilit susante (selon E.Borel) :
2
167
10
50
1.870722095783555735300716588.
Test conditionnel de primalit de Miller
Ce test utilise le fait dexistence dun tmoin dEuler relativement petit.
Cependant, pour le montrer, on a besoin de lHypothse de Riemann gnralise.
Soit : (Z/NZ)

un caractre de Dirichlet (cest dire, un morphisme de groupes (Z/NZ)

C), et on pose pour a Z, (a) = (a mod N) pour (a, N) = 1 et (a) = 0 pour (a, N) > 1. On considre
la fonction L de Dirichlet
L(s, ) =

n=1
(n)n
s
qui converge absoluement et ne sannule pas pour Re(s) > 1. Elle admte un prolongement analytique
sur tout le plan complexe.
Hypothse de Riemann gnralise. Pour toute fonction L de Dirichlet L(s, ) on a
L(s, ) = 0, Re(s) > 0 Re(s) =
1
2
.
Thorme 8.8.2 (G.Miller) Supposons que pour tout b < 2 log
2
n la condition (8.2) soit satisfaite, et
que lHypothse de Riemann gnralise soit valable.
Alors n est premier.
Description de lalgorithme de Miller
On vrie la condition de la congruence dEuler (8.2),
b
(n1)/2

_
b
n
_
mod n
pour tout b < 2 log
2
n. Si n passe tous ces tests, il est premier (conditionnel). Lanalyse simple de cot
T de cet algorithme montre que T = O(log
5
n).
Remarque. On a observ rcemment des "preuves" numriques que pour n compos il existe un tmoine
a 2 log nlog log n tel que n pour que n soit un nombre pseudopremier dEuler par rapport a.
Pseudopremiers forts et le test de primalit de Miller-Rabin
On peut encore amliorer la condition de la congruence dEuler (8.2),
b
(n1)/2

_
b
n
_
mod n
qui est valable pour un nombre premier n. On remarque que dans le groupe cyclique (Z/nZ)

les seules
racines carrs de 1 sont 1. Cette condition, qui nest pas susante pour la primalit dun nombre
impaire n, peut tre utilise comme une condition ecace probabiliste de primalit.
84
Dfinition 8.8.3 Un nombre naturel n est appell un nombre pseudopremier fort par rapport b si
pgcd(b, n) = 1 et (8.2), et pour la prsentation n1 = 2
s
t avec t impair, il existe un r, 0 r < s tel que
b
2
r
t
1 mod n.
Thorme 8.8.4 (Miller-Rabin)
(a) Soit n un nombre impaire compos, alors n nest pas un nombre pseudopremier fort par rapport
b au moins de 75 % de b.
(b) Tout pseudopremier fort par rapport b est un pseudopremier dEuler par rapport b.
Preuve (voir [Kob87], p.117, V.1.6, V.1.7).
Description de lalgorithme de Miller-Rabin On choisit au hasard k nombres b, 0 < b < n. Pour
tout b on vrie les condition que n est un nombre pseudopremier fort par rapport b : on calcule
b
2
r
t
mod n, 0 r < s
jusquon obtient 1 mod n.
Le calcul cote O(log
3
n) opration boulennes seulement par la mthode de carrs successifs.
Si n est pass ces k tests pour k choix au hasard de b, alors la probabilit du fait que n est compos
en dpit davoir pass k tests avec succs, est infrieure ou gale 1/4
k
.
Remarque. On peut vrier que n = 3215031751 est le seul nombre compos n 2.5 10
10
qui est
pseudopremier fort pour b = 2, 3, 5, 7
? factor(3215031751)
%1 =
[151 1]
[751 1]
[28351 1]
Test polynmial dterministe de primalit de Agrawal, Kayal et Saxena ("PRIMES is in
P", 2002)
Ce test utilise une version polynmiale de la condition ncessaire du petit thorme de Fermat, et
il arrive quune telle version et susante et quelle amne un algorithme trs cace polynmial de
primalit, voir une jolie exposition dans [Bor03], F.Bornemann, PRIMES is in P, une avance accessible
"lhomme ordinaire" ", Gazette des mathmaticiens, SMF, No 98, octobre 2003, pp. 1430.
Exercices
85
8.1 Si p est un nombre premier, et p mod4, montrer que
1

p 1
2

2
mod p.
[Indication : En considrant X
p1
1 dans (Z/pZ)[X] montrer dabord que (p 1)! + 1 0 mod p].
8.2 713 est-il un carr modulo p = 1009 ?
8.3 (a) Soit p = 2
2
n
+ 1 un nombre de Fermat premier, avec n 2. Montrer que a est une racine primitive
modulo p si et seulement si

a
p

= 1. Motrer que 3, 5 et 7 sont racines primitives modulo p.


(b) Montrer le critre de Ppin :
p = 2
2
n
+ 1 est un nombre premier 3
(p1)/2
1 mod p.
8.4 Montrer que 2 est racine primitive modulo les premiers de la forme 4q + 1 ou 2q + 1 avec q premier,
q 1 mod 4. Et si p = 2q + 1 avec q premier, q 3 mod 4 ?
8.5 Calculer de tte les symbols :

3
97

5
389

2003
11

, et

5!
7

.
8.6 Montrer que pour un nombre premier p 5 on a

3
p

=
(
1 si p 1, 11 (mod 12),
1 si p 5, 7 (mod 12).
8.7 Montrer quil ny a pas de racines primitives modulo 2
n
pour tout n 3.
8.8 Montrer que si p est un nombre premier, alors il existe une racine primitive modulo p
2
. [Indication : Ecrire
un lment de (Z/p
2
Z)

sous la forme du produit de deux lment. Rappeler que si a, b sont dordres n, m,


avec pgcd(n, m) = 1, alors ab est dordre nm.]
8.9 En utilsant le fait que (Z/pZ)

est cyclique montrer directement que

3
p

= 1 pour p 1 (mod 3).


[Indication : Il existe un lment c (Z/pZ)

dordre 3. Montrer que (2c + 1)


2
= 3.]
8.10 Si p 1 (mod 5), montrer directement que

5
p

= 1 par la mthode dexercice 9. [Indication : Soit


c (Z/pZ)

un lment dordre 5. Montrer que (c + c


4
)
2
+ (c + c
4
) 1 = 0, etc.]
8.11 Pour quels nombres premiers p on a
p1
X
a=1

a
p

= 0 ?
8.12 Combien de nombres naturels x < 2
13
satisont lquation
x
2
5 (mod 2
13
1)?
(On peut utiliser le fait que 2
13
1 est premier.)
8.13 Trouver un nombre naturel x < 97 tel que x 4
48
(mod 97).
8.14 Soit n = p1. . .pr distincts, et r 2, et soit a tel que
a
(n1)/2
1 mod n.
Posons n 1 = 2
s
t avec t impaire,et soit p|n, p 1 = 2
s

avec t

impaire.
Montrer que
s

s, et

a
pi

= i =
(
1, si s = s

1, si s < s

, (8.24)
Solution : On suppose, par labsurde, s

< s, alors
a
(n1)/2
= a
2
s1
t
1 mod n
86
a
2
s1
t
(a
2
s1
t
)
t

a
2
s1
t

1 mod n a
2
s1
t

1 mod p,
puisque t et t

sont impaires. Ensuite, lhypothse s

< s implique
a
2
s

1 mod p a
2
s1
t

1 mod p,
et on a une contradiction avec la congruence prcdente a
2
s1
t

1 mod p.
Cas s

= s :

a
p

= a
(p1)/2
= a
2
s

1
t

1
puisque (a
2
s

1
t
)
t

1 mod p.
Cas s

> s :

a
p

= a
(p1)/2
= a
2
s

1
t

(a
2
s

1
t

)
2
s

1
1 mod p.
8.15 Sur lanneau Z/NZ, il existe aussi un analogue de la fonction bta :
B(s, t) =
Z
1
0
x
s1
(1 x)
t1
dx =
Z
R

+
y
s
(1 + y)
s+t
dy
y
(Re(s), Re(t) > 0).
Il est appell somme de Jacobi de deux caractres de Dirichlet , mod N. Par la dnition
J(, ) =
X
x mod N
(x)(1 x) =
X
y mod N
(y)()(1 + y).) (8.25)
En utilisant le changement de variables y(1 x) x, x(1 + y) y), dmontrer lgalit entre les deux
expressions
8.16 En supposant , , et tous primitifs modulo N, montrer que
J(, ) = G()G()/G() = J(, ) (8.26)
correspondant lidentit classique B(s, t) = (s)(t)/(s +t).
Solution : si lon calcule le produit
G()G() =
X
x mod N
(x)
x
N
G() =
X
x mod N
(x)
x
N
(x)G(). (8.27)
En appliquant (8.13), on obtient
(x)G() = Gx() =
X
y mod N

xy
N
(y)
et (8.27) se transforme en
X
x,y mod N
()(x)(y)
x(1+y)
N
=
X
y mod N
(y)G1+y() =
X
y mod N
(y)()(1 + y)G() = J(, )G(). (8.28)
87
Cours N

9. Mercredi le 24 novembre 2004


9 Notions de corps et despace vectoriel, rappels et exemples
Nous avons dj vu dans la section 4, partie I, la dnition suivante :
Dfinition 4.2.4
Un corps est un anneau commutatif A, non rduit 0 dans lequel tout lment non-nul est inver-
sible :
Corps x A, x ,= 0, y A, xy = 1
Proposition 4.2.5
(a) Soit A un corps, alors A est un anneau intgre.
(b) Soit A un corps, I un idal de A. Alors soit I = 0 soit I = A.
Exemple.
On note par Z lanneau des entiers relatifs,
Q le corps des nombres rationnels,
R le corps des nombres rels et
C le corps des nombres complexes.
9.1 Corps des fractions
Proposition 9.1.1 Si A est un anneau intgre, alors il existe un corps K appel corps des fractions de
A et not Frac(A) tel que
(i) A K ;
(ii) Pour tout corps L et tout morphisme danneaux injectif : A L, il existe un unique morphisme
de corps : K L tel que [
A
= .
Preuve. Construction. On dnit sur A (A0) la relation R par
(a, b)R(c, d) ad = bc.
On vrie en utilisant lintgrit de A que R est une relation dquivalence. On note K lensemble
quotient A A0/R, et
a
b
limage de (a, b) dans ce quotient. Lapplication de A dans K qui envoie a
sur (a, 1) =
a
1
est injective, et on identie A avec son image. On muni alors K des lois
+ : K K K, (
a
b
,
c
d
)
ad +bc
bd
K (addition);
: K K K, (
a
b
,
c
d
)
ac
bd
K (multiplication);
On vrie que ces lois sont bien dnies et munissent K dune structure de corps, llment neutre pour
laddition tant 0/1, llment neutre pour la multiplication tant 1/1, et linverse dun lment non nul
a
b
tant
b
a
.
Propriet universelle. Soient L un corps et : A L un morphisme danneaux injectif il existe un
unique morphisme de corps : K L tel que [
A
= . Lapplication
A A(0) L, (a, b)
(a)
(b)
L
88
passe au quotient (a, b)
a
b
et dnit un morphisme de corps K L qui convient.
Dautre part, si est un tel morphisme de corps, alors on a (a/b) =
(a)
(b)
, ce qui montre lunicit
de .
9.2 Caractristique dun corps, sous-corps premier
Dfinition 9.2.1 Si A est un anneau commutatif, il existe un unique morphisme danneaux : Z A,
donn par (n) = n 1. Son noyau, Ker, est un sous-groupe de Z. Le gnrateur positif de ce sous-groupe
est appel la caractristique de A et est not car(A).
Proposition 9.2.2 La caractristique dun corps K est nul ou un nombre premier p = car(K). Si la
caractristique du corps est nulle, celui-ci contient un sous-corps, isomorphe Q. Sinon, il contient un
sous-corps, isomorphe F
p
= Z/pZ, o p est sa caractristique. Le corps ainsi obtenu est le plus petit
corps contenu dans K, on lappelle sous-corps premier de K.
Preuve. Daprs le thorme disomorphisme, on a Z/Ker Im, ce quotient est donc un anneau
intgre, cest dire Ker est un idal premier de Z, 0 ou pZ, p premier. Si cest 0, la proprit
9.1.1(ii) montre que Q est isomorphe un sous-corps K

de K ; K

est alors le sous-corps engendr par


1 donc le plus petit sous-corps de K. Si Ker = pZ, alors le sous-anneau Im de K engendr par 1 est
isomorphe Z/pZ, donc cest un corps et le plus petit sous-corps de K.
9.3 Modules et espaces vectoriels
Dfinition 9.3.1 Si A est un anneau commutatif. Un A-module est la donne dun groupe ablien M,
muni dune loi externe
: A M M, (a, m) am M (multiplication externe)
satisfaisant les proprits suivantes :
Mo1 a A, x, y M, a(x +y) = ax +ay,
Mo2 a, b A, x M, (a +b)x = ax +bx,
Mo3 a, b A, x M, a(bx) = (ab)x.
Si K est un corps, un espace vectoriel sur K est un K-module.
Exemple. La notion de Z-module concide avec celle de groupe ablien :
: Z M M, (a, m) am M
Exemple 9.3.2 Si A est un anneau commutatif, et n N, A
n
est un A-module pour la lois externe
: AA
n
A
n
, (a, (a
1
, , a
n
)) (aa
1
, , aa
n
) A
n
89
Exemple 9.3.3 Soit A un anneau commutatif, et soit M un A-module. Si X est un ensemble, alors
pour tout a A et pour toute application f : X M on pose
x X, (af)(x) = a(f(x)) M.
Lensemble M
X
de toutes les applications f : X M est un A-module avec la loi externe
: A M
X
M
X
, (a, f) af M
X
Dfinition 9.3.4 Soit A un anneau commutatif, et soient M, N deux A-modules. Une application
: M N est dit un morphisme de A-modules (ou une application A-linaire) si cest un morphisme
de groupe abliens, et si elle vrie la condition suivante :
Mor. A, m M, (m) = (m)
Un isomorphisme de A-modules est un morphisme A-modules qui est bijectif. Son inverse est alors
un morphisme A-modules.
Sous-A-modules, sous-espaces vectoriels
Dfinition 9.3.5 Soit A un anneau commutatif, et soit M un A-module. Un sous-groupe ablien N M
est dit un sous-A-module si il vrie la condition suivante :
Sous module A, x N, x N.
Si K est un corps, un sous-K-module dun espace vectoriel sur K est dit un sous-espace vectoriel sur
K.
Exemple 9.3.6 Soit A un anneau commutatif, et soient M, N deux A-modules. Lensemble L(M, N)
des applications A-linaires : M N est un sous-A-module du module N
M
de toutes les applications
de M vers N. En particulier, si K est un corps, et E un K-espace vectoriel, le dual de E, not E

est
lespace vectoriel L(E, K).
9.4 Rappels sur les espaces vectoriels
Dfinition 9.4.1 Soit K un corps. Une famille (a
i
)
iI
dlments de K est dite prsque nulle si et
seulement si lensemble
i I [ a
i
,= 0
est ni.
Soient E un espace vectoriel sur K et e = (e
i
)
iI
une famille dlments de E. La famille e est
90
une famille gnratrice si et seulement si pour tout x de E, il existe une famille prsque nulle (a
i
)
iI
dlments de K tels que
x =

iI
a
i
e
i
une famille libre si et seulement si pour toute famille prsque nulle (a
i
)
iI
dlments de K, on a

iI
a
i
e
i
= 0 i I, a
i
= 0
On dit alors que les lments de (e
i
)
iI
sont linairement indpndants
une base de E si elle est la fois libre et gnratrice. Pour tout x de E, il existe alors une seule
famille prsque nulle (a
i
)
iI
dlments de K tels que
x =

iI
a
i
e
i
.
On dit que (a
i
)
iI
sont les coordonnes de x dans la base e.
Thorme 9.4.2 (sur lexistence dune base) Si E est un espace vectoriel sur K, alors il existe
une base de E. Toutes les bases ont le mme cardinal appel dimension de E et not dimE.
On ne donne pas de dmonstration ici, mais on remarque :
Proposition 9.4.3 Soit K un corps. Soient E un espace vectoriel sur K et e = (e
i
)
iI
une famille
dlments de E. Les conditions suivantes sont quivalentes :
(i) la famille e est une base de E,
(ii) la famille e est une famille gnratrice et toute sous-famille propre de e nest pas gnratrice
(iii) la famille e est une famille libre et toute famille contenant e distincte de e nest pas libre
Dfinition 9.4.4 Un espace vectoriel E sur K est dit de dimension nie, si et seulement sil admet une
famille gnratrice nie
Thorme 9.4.5 Si E est un espace vectoriel sur K de dimension nie, toutes les bases de E ont le
mme cardinal appel dimension de E et not dimE. En outre :
(i) une famille gnratrice a au moins dimE lments, et cest une base si elle en a exactement
dimE,
(ii) une famille libre a au plus dimE lments, et est une base si elle en a exactement dimE.
Exemple 9.4.6 Si E est un espace vectoriel sur K de dimension nie, et si (e
1
, , e
n
) une base de E,
alors E

est un espace vectoriel de dimension nie, une base tant donne par (e

1
, , e

n
) o e

i
est
dnie par
(a
1
, , a
n
) K
n
, e

i
(a
1
e
1
+ +a
n
e
n
) = a
i
K.
Cette base (e

1
, , e

n
) est appele la base duale de (e
1
, , e
n
).
91
9.5 Matrices de changement de bases
Dfinition 9.5.1 Soit E est un K-espace vectoriel de dimension nie et soient e = (e
1
, , e
n
), e

=
(e

1
, , e

n
) deux bases de E.
La matrice
P = P
e

e
= (p
ij
), p
ij
= e

i
(e

j
) K
qui a pour j-me colonne les coordonnes de e

j
dans la base (e
1
, , e
n
), est appele matrice de changement
de base de e e

.
Proposition 9.5.2
(i) Soit x un lment dun K-espace vectoriel E de dimension nie et soient e = (e
1
, , e
n
),
e

= (e

1
, , e

n
) deux bases de E.
On pose
x = x
1
e
1
+ +x
n
e
n
, x = x

1
e

1
+ +x

n
e

n
,
Alors
_
_
_
x
1
.
.
.
x
n
_
_
_ = P
e

e
_
_
_
x

1
.
.
.
x

n
_
_
_
o P
e

e
est matrice de changement de bases.
(ii) On a les relations
P
e

e
P
e

e
= P
e

e
et P
e

e
1
= P
e
e
.
Dfinition 9.5.3 Soit : E E une application linaire dun K-espace vectoriel E de dimension nie
vers E, et soit e = (e
1
, , e
n
) une bases de E.
La matrice
A = A
,e
= (a
ij
), p
ij
= e

i
((e
j
)) K
qui a pour j-me colonne les coordonnes de (e
j
) dans la base (e
1
, , e
n
), est appele matrice de
lapplication linaire dans la base donne.
Proposition 9.5.4
(i) Soit : E E une application linaire dun K-espace vectoriel E de dimension nie vers E, et
soient e = (e
1
, , e
n
), e

= (e

1
, , e

n
) deux bases de E.
On pose
x = x
1
e
1
+ +x
n
e
n
, x = x

1
e

1
+ +x

n
e

n
,
(x) = y
1
e
1
+ +y
n
e
n
, (x) = y

1
e

1
+ +y

n
e

n
,
Alors
_
_
_
y
1
.
.
.
y
n
_
_
_ = A
,e
_
_
_
x
1
.
.
.
x
n
_
_
_
o A
,e
est matrice de lapplication linaire dans la base e.
92
(ii) On a les relations
A
,e
= P
e

e
1
A
,e
P
e

e
.
9.6 Caractres dun groupe
Dfinition 9.6.1 Etant donn un groupe G et on corps K, on appelle caractre de G dans K tout
mophisme de groupes de G dans K

.
Si G est ablien, on note X

(G) = Hom(G, C

) le groupe des caractres de G dans C avec la lois


(
1

2
)(g) =
1
(g)
2
(g).
Exemple 9.6.2 Si G = Z/nZ un morphisme de G dans C

est dtermin par limage de 1 qui vrie


(1)
n
= (n1) = (0) = 1.
Cest donc une racine n-ime de lunit dans C

.
Inversement si est une racine n-ime de lunit, lapplication
Z/nZ C

, x
x
est un caractre de Z/nZ; on a ainsi obtenu une bijection du groupe
n
(C) sur X

(Z/nZ). Notons en
outre que lexponentuelle complexe fournit un isomorphisme de groupes
Z/nZ
n
(C), x exp(
2ix
n
)
Thorme 9.6.3 (dindpendance linaire de caractres) Soient
1
, ,
n
Hom(G, K

) n
caractres distincts dun groupe G dans un corps K. Alors ce sont n lments linairement indpendants
du K-espace vectoriel des applications de G dans K.
Preuve : On raisonne par rcurrence sur lentier n. Un caractre ntait jamais nul, lassertion est vraie
pour n = 1.
Pour n 2, supposons lassertion vraie pour tout i < n, et choisissons dans K des lments a
i
(1 i n) tels que pour tout x G on ait lgalit
e(x) = a
1

1
(x) + +a
n

n
(x) = 0
Si appartient G, on a aussi pour tout x de G
e(x)
n
()e(x) = 0,
93
soit
a
1
(
1
()
n
())
1
(x) + +a
n1
(
n1
()
n
())
n1
(x) = 0.
Comme les
i
sont distincts, il existe un dans G tel que
1
()
n
() soit non nul ; et daprs
lhypothse de rcurrence, les caractres
1
, ,
n1
sont linairement indpendants, donc on a
a
1
(
1
()
n
()) = 0 = a
n1
(
n1
()
n
())
do a
1
= 0. On utilise de nouveau lhypothse de rcurrence avec les caractres
2
, ,
n
, do a
2
=
= a
n
, ce qui prouve que
1
, ,
n
sont linairement indpendants.
Corollaire 9.6.4 Soient E et E

deux corps, et
1
, ,
n
Hom(E, E

) n morphismes distincts de
E dans E

. Alors ce sont n lments linairement indpendants du E

-espace vectoriel des applications


de E dans E

.
Preuve : il sut de poser G = E

, K = E

, et dutiliser le thorme 9.6.3.


Notations. Si X est un ensemle ni, on considre la forme
C
X
C
X
C, (f, g) f, g) =
1
X

xX
f(x)g(x).
Proposition 9.6.5 Si G est un groupe ni et ,

deux caractres de G, dans C, alors


,

) =
_
1, si =

0, sinon.
Corollaire 9.6.6 Si G est un groupe ni, la famille ()
X

(G)
est une famille libre du C-espace
vectoriel C
G
94
10 Extensions.
10.1 Polynmes irrductibles.
Rappelons que si K est un corps lanneau de polynmes K[X] est euclidien, donc principal et factoriel,
en particulier tout polynme non nul scrit de manire unique comme produit de son coecient dominant
et de polynmes irrductibles unitaires.
Et on obtient la dnition suivante pour les lments irrductibles de K[X] :
Dfinition 10.1.1 Soit K un corps. Un polynme P K[X] est dit irrductible, sil vrie les deux
conditions suivantes :
Irr1. P , K
Irr2. Si P = QR avec Q, R K[X] alors Q K

ou R K

.
Exemples 10.1.2 Soit K un corps.
(i) Un polynme P K[X] de degr un est irrductible.
(ii) Un polynme P K[X] de degr 2 ou 3 est irrductible si et seulement sil nadmet pas de racine
dans K.
(iii) Tout polynme irrductible sur C est de degr un.
(iv) Tout polynme irrductible sur R est de degr 2.
Proposition 10.1.3 Soit K un corps. Un polynme f K[X] est irrductible si et seulement si lanneau
quotient K[X]/(f) est un corps.
10.2 Extensions, degr.
Dfinition 10.2.1
(i) Soit K un corps et L un autre corps, contenant K. On dit que L est une extension de K. Cest
un espace vectoriel sur K.
(ii) Soit L une extension dun corps K. On appelle degr de L sur K la dimension dim
K
L de L
considr comme espace vectoriel sur K. On le note [L : K], le degr est ventuellement inni. Si le
degr [L : K] est ni on dit que L est une extension nie de K.
(iii) Si L est une extension de K et A = (
i
)
iI
une partie de L, on appelle extension de K engendre
par A le sous-corps minimal K(A) de L contenant K et A. Les
i
sappellent les gnrateurs de K(A)
sur K. Tout lment de K(A) scrit comme une fraction rationnelle coecients dans K dlment
i
.
Par exemple, C est une extension nie de R de degr 2.
De plus C = R(i)
Thorme 10.2.2 Si K, L et E sont trois corps embots tels que K L E, alors
[E : K] = [E : L] [L : K]
Preuve : On note (a
i
)
iI
une base de E sur L, et (b
j
)
jJ
une base de L sur K.
Pour tout x E, il existe une famille nie (
i
)
iI1
, I
1
I, dlments de L tels que x =

iI1

i
a
i
.
Mais chaque
i
est combinaison linaire coecients dans K dlments b
j
:
i
=

jJ1

i,j
b
j
, pour une
95
famille nie
i,j
K. Ceci implique que x =

(i,j)I1J1

i,j
a
i
b
j
, et donc la famille (a
i
b
j
)
iI,jJ
est
gnratrice pour le K-espace vectoriel E.
Cest une famille libre : si (
i,j
)
(i,j)X
, X I
1
J
1
I J est une famille nie dlments de K
telle que

(i,j)X

i,j
a
i
b
j
= 0, alors les images I
1
et J
1
de X par projection sur I et J sont nies et on a :

(i,j)X

i,j
a
i
b
j
=

iI1
_
_

jJ1

i,j
b
j
_
_
a
i
= 0
et comme pour tout i

jJ1

i,j
b
j
appartiennent L, on trouve

jJ1

i,j
b
j
= 0 pour tout i I
1
, puis

i,j
= 0 pour tout (i, j) X.
Corollaire 10.2.3 Pour n corps embots
K K
1
K
n
,
on a lgalit
[K
n
: K] = [K
1
: K] [K
2
: K
1
]. . .[K
n
: K
n1
].
Exemple 10.2.4 On considre le sous-corps K = Q(
3

2, i) de C, il contient Q(
3

2), et K = Q(
3

2)(i),
donc
[K : Q] = [Q(
3

2)(i) : Q(
3

2)] [Q(
3

2) : Q].
Le polynme X
3
2 est irrductible dans Q[X] et le polynme X
2
+ 1 lest dans Q(
3

2)[X]. Donc,
[Q(
3

2)(i) : Q(
3

2)] = 2, [Q(
3

2) : Q] = 3, et [K : Q] = 6.
10.3 Elments algbriques
Soit E une extenstion dun corps K.
Dfinition 10.3.1
(i) Un lment de E est dit algbrique sur K sil existe un polynme non nul P de K[X] tel que
P() = 0.
(ii) Une extension E de K est dite algbrique si tout lment de E est algbrique sur K.
(iii) Si E est un lment algbrique sur K lensemble des polynmes P K[X] tels que P() = 0,
forme un idal de K[X], non rduit (0). Cet idal est principal, et son gnrateur unitaire sappelle le
polynme minimal de sur K.
Proposition 10.3.2 Soit E une extenstion dun corps K, et soit un lment de E algbrique sur K
de polynme minimal P.
i) Si Q K[X] admet comme racine, alors P divise Q dans K[X].
(ii) Le polynme P est irrductible dans K[X].
(iii) Le sous-anneau K[] de E est un corps K() et on a [K() : K] = deg P. La famille (1, , ,
n1
),
o n = deg P, est une base de K() sur K.
96
Preuve : Lassertion (i) traduit que P engendre lidal des lments de K[X], ayant comme racine.
(ii) Si P se factorise en QR dans K[X], alors on a P() = Q()R() = 0 dans le corps E, donc
Q() = 0 ou R() = 0, et P divise Q ou R.
(iii) Le sous-anneau K[] est limage de lhomomorphisme dvaluation Q Q() de K[X] dans
E, dont le noyau est lidal (P), maximal daprs (ii) (voir 4.5.4). Par le thorme disomorphisme,
lanneau K[] est donc isomorphe au quotient K[X]/(P), qui est un corps. Si n = deg P, la famille
(1, , ,
n1
) est libre sur K car P est le polynme non nul de plus petit degr qui annule . Elle est
gnratrice car pour tout Q K[X] on a Q() = R(), o R est le reste de la division euclidienne de Q
par P, et donc R() =

n1
i=0
r
i

i
, r
i
K. La famille est donc une base de K() sur K. En particulier
on a [K() : K] = n = deg P.
Proposition 10.3.3 Soit E une extenstion nie dun corps K ([E : K] = n N), alors E est algbrique
sur K.
Preuve. Soit un lment de E. Si n = [E : K], la famille de n + 1 lments (1, , ,
n
) nest pas
libre, donc il existe P(X) =

n
i=0
a
i
X
i
non nul dans K[X] tel que

n
i=0
a
i

i
= P() = 0.
Remarque. Lassertion rciproque est fausse : lextension E = Q C de Q, forme par tous les nombres
complexes algbriques sur Q (E est bien un corps, exercice), est algbrique par dnition, mais [E : Q]
nest pas nie. En eet, on vrie quil existe des polynmes irrductibles sur Q de tout degr n 1, par
exemple X
n
2 (exercice).
10.4 Corps de rupture, corps de dcomposition
Remarquons que pour un corps arbitraire K et pour tout polynme P non constant de K[X] on peut
construire une extension L de K dans laquelle P possde une racine : quitte factoriser P on peut le
supposer irrductible, auquel cas on a vu que lanneau quotient K[X]/(P) est un corps. La classe X+(P)
est alors une racine de P dans K[X]/(P).
Thorme 10.4.1 (sur lisomorphisme) Soient L une extension de K et L une racine dun
polynme irrductible P de K[X]. Alors lanneau K[] est un corps isomorphe K[X]/(P).
Cest clair daprs le paragraphe prcdent, proposition 10.3.2 et sa preuve, puisque P est un facteur
constant prs le polynme minimal de sur K.
Dfinition 10.4.2 Soit K un corps, et P un polynme irrductible. On dit quun corps L contenant K
est un corps de rupture de P sur K sil existe un L tel que L = K() et P() = 0.
Remarque 10.4.3 Avec les notations de la proposition, on peut donner une construction matricielle de
lanneau K[X]/(P), corps de rupture de P sur K.
97
En eet, on crit P =

n
j=0
a
j
X
j
, et on suppose que a
n
= 1, alors dans la base
(1, X, , X
n1
) mod (P)
de K[X]/(P) la multiplication : Q XQ mod (P) a pour matrice
A =
_
_
_
_
_
_
0 0 . . . 0 a
0
1 0 . . . 0 a
1
0 1 . . . 0 a
2
. . . . . . . . . . . . . . .
0 0 . . . 1 a
n1
_
_
_
_
_
_
,
dont le polynme minimal est P. Il vient que K[A] K[X]/Ker() est isomorphe K[X]/(P).
En itrant la construction de corps de rupture cidessus (on choisit chaque tape un facteur ir-
rductible de P de degr > 1 sur le corps obtenu), on peut construire pour tout polynme P K[X]
une extension nie L

de K dans laquelle P scrit comme produit de facteurs du premier degr. La


construction implique que L

peut tre choisi de telle faon que [L

:K] n!.
98
Cours N

10. Mercredi le 8 decembre 2004


Rappel :
Thorme sur lisomorphisme 10.4.1 Soient L une extension de K et L une racine dun polynme
irrductible P de K[X]. Alors lanneau K[] est un corps isomorphe K[X]/(P).
Dfinition 10.4.4 On considre un polynme P de K[X] de degr suprieur ou gal 1, et une exten-
sion E de K, dans laquelle P scrit P(X) = (X
1
). . .(X
n
). Alors le corps L = K(
1
, ,
n
)
sappelle corps de dcomposition de P dans E. Cest lextension minimale de K dans E, dans laquelle P
se dcompose en produit de facteurs linaires.
On va vrier que ce corps est uniquement dtermin isomorphisme prs :
Thorme 10.4.5 (sur un prolongement disomorphisme) On considre un isomorphisme de corps
: K K

, et un polynme irrductible P(X) =

n
j=0
a
j
X
j
K[X]. On note P

n
j=0
(a
j
)X
j

[X]. On choisit une extension de K contenant une racine de P, et une extension de K

, contenant
une racine

de P

(X). Alors il existe un isomorphisme de corps


: K() K

),
qui prolonge et tel que () =

.
Preuve. Comme est un isomorphisme de corps de K dans K

, lapplication
: K[X] K

[X], Q(X) =
n

j=0
b
j
X
j
Q

(X) =
n

j=0
(b
j
)X
j
est un isomorphisme danneaux. On en dduit
: K() K

)

: K[X]/(P) K

[X]/(P

),
Q+ (P) Q

+ (P

)
Cela montre la fois que P

est un lment irrductible de K

[X] (par le thorme sur lisomorphisme


10.4.1, K

[X]/(P

) est un corps), et que si = Q() K(), son image par est bien dnie par
lgalit () = Q

).
Thorme 10.4.6 (de lunicit) Soient : K

K

un isomorphisme de corps, P(X) =

n
j=0
a
j
X
j
un polynme de K[X], et notons P

n
j=0
(a
j
)X
j
K

[X].
A P, on associe une extension E de K, dans laquelle il se factorise en produit de termes du premier
degr, P(X) = a(X
1
). . .(X
n
), et on note B = K(
1
, ,
n
) le corps de dcomposition de P
dans E.
On dnit de mme E

et B

pour le polynme P

. Il existe alors un isomorphisme de corps


: B

B

,
dont la restriction K est gale .
99
Preuve. Le polynme P scrit P(X) = a(X
1
). . .(X
n
), les
i
tant des lments de E.
Raisonnons par rcurrence sur le nombre N dlments
i
, qui nappartiennent pas K.
Si N = 0, tous les
i
appartiennent K, donc B = K est isomorphe B

= K

, et = .
Pour N 1, supposons que
1
nappartienne pas K.
Cest un lment algbrique sur K, de polynme minimal S, et il existe Q K[X] tel que P = SQ.
Dans E

[X], on a les galits


P

= S

= a

(X

1
). . .(X

n
).
Si est une racine de S

dans une extension de E

, il vient
P

() = 0 = a

1
). . .(

n
),
donc il existe un indice i, quon peut supposer gal 1, tel que =

1
E

. On utilise le thorme
10.4.5 pour le polynme irrductible S : il existe un isomorphisme de corps
: K(
1
)

K

1
),
qui prolonge .
On considre maintenant P comme un polynme coecients dans L = K(
1
).
Le nombre de racines de P qui nappartiennent pas L est strictement infrieur N, et lhypothse
de rcurrence nous donne lexistence dun prolongement de ,
: L(
2
, ,
n
)

L

2
, ,

n
),
avec L

= K

1
). On termine en remarquant que L(
2
, ,
n
) = K(
1
,
2
, ,
n
), et que L

2
, ,

n
) =
K

1
,

2
, ,

n
).
Corollaire 10.4.7 (de lunicit) Soient K un corps, P un polynme de K[X], et L, L

deux corps
de dcomposition de P sur K. Alors il existe un isomorphisme de corps de L sur L

dont la restriction
K est lidentit.
En eet, il sut dutiliser le rsultat prcdent pour = id : K K.
10.5 Sous-groupes nis dans K

Exposant dun groupe ablien ni


Soit G un groupe ablien ni. On note (G), et on appelle exposant de G le ppcm des ordres des
lments de G. Cest le plus petit entier strictement positif tel que x
(G)
= e pour tout lment x G.
Alors par dnition du ppcm, et par le thorme de Lagrange, (G) divise [G[.
Soient K un corps, et Gun sous-groupe ni de K

. Alors tout x G est racine du polynme X


(G)
1,
et ce polynme a au plus (G) racines dans le corps K. Par suite (G) [G[, donc (G) = [G[.
Lemme 8.1.5. Soit G un groupe. On suppose que a, b G sont deux lments tels que ab = ba, et qui
sont dordre r et s, respectivement, o r et s sont premiers entre eux. Alors ab est dordre rs.
Cest un fait gnral sur les lments dun groupe qui commutent entre eux.
100
Preuve (rappel). Puisque (ab)
rs
= a
rs
b
rs
= 1, lordre de ab est un diviseur r
1
s
1
de rs, o r
1
[ r et
s
1
[ s. Donc
a
r1s1
b
r1s1
= (ab)
r1s1
= 1.
On lve les deux parties en la puissance r
2
, o r
1
r
2
= r. Alors
a
r1r2s1
b
r1r2s1
= 1,
donc, puisque a
r1r2s1
= (a
r1r2
)
s1
= 1,
b
r1r2s1
= 1.
Ceci implique que s [ r
1
r
2
s
1
, et, car pgcd(s, r
1
r
2
) = 1, il vient que s = s
1
. Un argument similaire montre
que r = r
1
, donc lordre de ab est rs.
Proposition 10.5.1 Dans un groupe commutatif, lensemble des ordres des lments est stable par
ppcm.
Preuve. Soient en eet x un lment dordre r et y un lment dordre s. Il sagit de construire un
lment dordre ppcm(r, s), soit m. Or on peut crire m = r

, o r

divise r, s

divise s, et les deux


entiers sont premiers entre eux, puisque ppcm(r, s)pgcd(r, s)=rs. Par exemple, si
r =
k

i=1
p
i
i
, s =
k

i=1
p
i
i
, on pose r

=
k

i=1

i
>
i
p
i
i
, s

=
k

i=1

i
p
i
i
.
(voir la remarque ci-dessous pour une autre construction). De l on a x
r/r

dordre r

, et y
s/s

dordre
s

, on peut donc appliquer le lemme 8.1.5 et conclure.


Exemple.
r = 120 = 2
3
3 5, s = 180 = 2
2
3
2
5, r

= 8 = 2
3
, s = 45 = 3
2
5.
Remarque. Voici une autre construction pour la proposition 10.5.1 : (disponible ladresse cache :
http ://www-fourier.ujf-grenoble.fr /panchish/04ma1-maple
dans le chier 4ma1-13ppcm.mws) Notons d = pgcd(r, s).
Il sagit de construire un diviseur s

de s qui soit premier r/d, et tel que


r

:= ppcm(r, s)/s

divise r. Pour ce faire, on part de s

= s et on rcrit s

en s

/pgcd(s

, r/d) tant que


ce pgcd ,= 1 :
> restart;r:=120; s:=180;sprime:=s;
> i:=0;d:=gcd (r,s);
> while (gcd(sprime, r/d)<>1) do
> gcd(sprime, d);
> sprime:=(sprime/gcd(sprime, r/d));
> printf("i=%d,lcm=%d,sprime=%d, rprime=%d\n"
> ,i,
> lcm(r,s),sprime, lcm(r,s)/sprime);
> i:=i+1;od;
i := 0
sprime := 90
i=0,lcm=360,sprime=90, rprime=4
101
i := 1
sprime := 45
i=1,lcm=360,sprime=45, rprime=8
i := 2
Autrement dit, pour r = 120, s = 180, d = pgcd(120, 180) = 60, r/d = 2,
ppcm(120, 180) = 360 = 2 180 = 4 90 = 8 45.
Application : x
r/r

est dordre r

, et y
s/s

est dordre s

, donc on peut utiliser le lemme 8.1.5.


Cyclicit des sousgroupes nies de K

Thorme 10.5.2 Soit K un corps. Tout sous-groupe ni G de K

est cyclique.
Preuve. Par dnition du ppcm, et par le thorme de Lagrange, lexposant (G) divise [G[, et tous
les x G sont solution de x
(G)
= 1, mais le polynme X
(G)
1 possde au plus (G) racines dans le
corps K. Donc, (G) = [G[, et on conclut avec la proposition 10.5.1.
Exercices
10.1 Soit K E une extension de corps. Montrer que KE = {x E, x est algbrique sur K} est un sous-corps
de E.
10.2 Montrer quil existe des polynmes irrductibles sur Q de tout degr n 1, par exemple X
n
p, o p est
un nombre premier.
10.3 Soit K un corps. En considrant lordre des lment dun groupe cyclique, montrer que n =
P
d|n
(d). En
dduire une autre preuve que tout sous-groupe dordre n de K

est cyclique.
10.4 Soit K un corps q lments, q 4. Montrer que
P
xK
x
2
= 0. Plus gnralement, calculer, pour s 1,
la somme
P
xK
x
s
.
10.5 Si H est un sous-groupe de C

tel que C

/H est ni, monter que H = C

.
10.6 Montrer quil existe des polynmes irrductibles sur Q de degr arbitraire n, par exemple X
n
p, p un
nombre premier.
102
11 Morphisme de Frobenius, structure des corps nis
Pour un plus large dveloppement sur les corps nis le lecteur est renvoy aux textes dE. Peyre [Pey],
ainsi que Lidl-Niederreiter, [Li-Ni].
Jusquici nous avons rencontr lexemple fondamental des corps nis Z/pZ (p premier), quotients de
Z par un idal maximal. Il sagit maintenant de dcrire tous les corps nis.
11.1 Structure
Proposition-Dfinition 11.1.1 Soit A un anneau commutatif de caractristique p un nombre premier.
Lapplication
Fr
p
: x x
p
, x A
est un morphisme danneau appel morphisme de Frobenius. Plus gnralement, si A est un anneau
commutatif de caractristique p premier et si q est une puissance de p, on note Fr
q
: x x
q
.
Preuve. Le point montrer est ladditivit. Or si x, y A on dveloppe (x + y)
p
par la formule du
binme, et on conclut par le fait que si 1 i p 1, p divise lentier C
i
p
.
Thorme 11.1.2 : Soit K un corps ni. Alors K est de caractristique p un nombre premier, K est de
cardinal q = p
d
, avec d = [K : Z/pZ], et Fr
p
est un automorphisme du corps K.
Inversement, si p est premier et d est un entier strictement positif, il existe isomorphisme prs un
unique corps q = p
d
lments, qui est le corps de dcomposition de X
q
X sur Z/pZ. On note ce
corps F
q
. De plus, le groupe (F
q
, +) est isomorphe au groupe ((Z/pZ)
d
, +) et le groupe multiplicatif F

q
est isomorphe Z/(q 1)Z (groupe cyclique dordre q 1).
Preuve. Vrions ensuite quun corps K q lments est un corps de dcomposition pour le polynme
X
q
X. Comme K a q lments, K

est un groupe dordre q 1. Par consquent,


x K

, x
q1
= 1.
Autrement dit les q lments de K sont racines de X
q
X. Du fait du degr, on obtient
X
q
X =

K
(X ).
En particulier, K est un corps de dcomposition pour le polynme X
q
X.
Soit inversement K un corps de dcomposition pour le polynme X
q
X sur Z/pZ, o p est premier
et q est une puissance de p. Comme Fr
q
est un morphisme de corps de K, lensemble de ses points xes
les racines de X
q
X est un sous-corps de K. Comme K est engendr par ces racines sur F
p
, K est
lensemble des racines de P(X) = X
q
X. Comme P

= 1, toutes les racines de P sont simples (par


les proprits de la driv formelle P

dun polynme), P a donc ses q racines distinctes dans K et K a


exactement q lments. Daprs 10.4.7 ceci tablit lassertion dexistence et unicit isomorphisme prs
du corps F
q
.
Enn la cyclicit du groupe F

q
est un cas particulier du thorme 10.5.2.
103
Thorme 11.1.3 : Soit q = p
n
o p est premier. Tout sous-corps du corps F
q
est de cardinal p
m
, o
m est un diviseur de n. Et pour tout diviseur m de n, F
q
possde un unique sous-corps de cardinal p
m
,
qui est lensemble des racines du polynme X
p
m
X dans F
q
.
Preuve. Si K est un sous-corps de F
q
, alors il contient le sous-corps premier F
p
, donc cen est une
extension nie et F
q
est une extension nie de K. De l K a pour cardinal p
m
, et le cardinal de F
q
est
une puissance de (p
m
)
d
de celui de K. Ainsi n = md. Inversement, si m divise n, alors p
m
1 divise
p
n
1, donc le polynme X
p
m
1
1 divise le polynme X
p
n
1
1, donc le polynme X
p
m
X divise
X
p
n
X, ce qui entrane que X
p
m
X a p
m
racines distinctes dans F
q
. Ces racines forment lunique
sous-corps de cardinal p
m
de F
q
.
Dans la pratique, pour pouvoir faire les calculs, le corps F
p
n (n > 1) sera construit comme anneau
quotient de type F
p
[X]/(Q), en choisissant un polynme irrductible Q de degr n. (voir le thorme
11.2.1).
11.2 Polynmes sur les corps nis. Nombre de polynmes irrductibles
Thorme 11.2.1 Soient p un nombre premier et q une puissance de p. Pour tout entier m 1, il
existe F
q
m tel que F
q
m = F
q
[] et il existe P polynme irrductible de degr m sur F
q
.
Preuve. Soient un gnrateur du groupe cyclique F

q
m, et P son polynme minimal sur F
q
. Alors on
a F
q
m = F
q
[] et P est un polynme irrductible sur F
q
dont F
q
m est un corps de rupture. Autrement
dit, on a un isomorphisme
F
q
[X]/(P)

F
q
m
qui envoie la classe de X sur . En particulier, on a deg P = dim
Fq
(F
q
m) = m.
Remarque 11.2.2 Si on a un tel polynme et une racine de P dans F
q
n, la famille 1, , ,
n1

est une base du F


q
-espace vectoriel F
q
n.
Proposition 11.2.3 Soient P un polynme irrductible sur F
q
et une racine de P dans une extension
de F
q
. Alors, pour tout polynme Q sur F
q
, Q() = 0 si et seulement si P divise Q.
En eet, P est alors le polynme minimal de sur F
q
, voir la proposition 10.3.2.
Lemme 11.2.4 Soit P un polynme irrductible de degr m sur F
q
. Alors P divise X
q
n
X si et seulement
si m divise n.
Preuve. Le corps de rupture de P sur F
q
est de cardinal q
m
, donc tout lment y vrie x
q
m
= x, donc
aussi en itrant si m divise n, x
q
n
= x. On conclut que P divise X
q
n
X en appliquant la proposition
prcdente avec Q = X
q
n
X. Inversement si P divise X
q
n
X alors le corps F
q
n contient un corps de
rupture de P, de cardinal q
m
, donc par le thorme 11.1.3 m divise n.
Thorme 11.2.5 Soit P un polynme irrductible sur F
q
de degr m. Alors P est scind sur le corps
F
q
m et a toutes ses racines simples. Si est lune delles, ces m racines sont ,
q
, ,
q
m1
. En
particulier si P ,= X toutes les racines de P ont le mme ordre multiplicatif dans F

q
m.
104
Preuve. On a vu que le corps de rupture de P, F
q
[X]/(P), de cardinal q
m
, est form de lensemble des
racines du polynme X
q
m
X. Par suite X
q
m
X sannule en une racine de P, donc par la proposition
il est divisible par P sur F
q
et fortiori sur F
q
m. Ainsi puisque X
q
m
X est scind racines simples sur
F
q
m, il en est de mme pour P.
Ensuite, on crit P =

m
i=0
a
i
X
i
avec a
i
F
q
. Si est une racine de P, alors
Fr
q
(P()) =
m

i=0
Fr
q
(a
i
)Fr
q
()
i
= P(Fr
q
()) = 0
o lavant-dernire galit vient du fait que Fr
q
(x) = x pour tout x F
q
. Par consquent ,
q
, ,
q
m1
sont des racines de P. Montrons par labsurde que ces m racines sont distinctes. En eet, dans le cas
contraire, il existe i, j avec 0 i < j m1 tels que
q
i
=
q
j
et donc
q
j
q
i
= 1. Par consquent
ord()[q
j
q
i
= q
i
(q
ji
1).
Mais comme F

q
m, lordre de est premier q donc, par le lemme de Gauss, ord()[q
ij
1, et

q
ji
= , donc appartient au corps F
q
ji , ce qui est en contradiction avec le fait que [F
q
() : F
q
] =
deg P = m. Ainsi on a
P(X) = (X )(X
q
). . .(X
q
m1
).
La dernire assertion rsulte de ce que Fr
q
est un automorphisme du corps F
q
m, donc il conserve lordre
multiplicatif des lments.
Corollaire 11.2.6 Le corps de dcomposition de tout polynme de degr m irrductible sur F
q
est F
q
m.
Tout lment t F
q
n est racine dun unique polynme irrductible unitaire P = P
t
de F
q
[X] de degr
d divisant n, ainsi
X
q
n
X =

d|n

P unitaire
irrductible sur Fq
deg P=d
P(X)
(dans cette formule comme dans la suite du paragraphe, on convient que la notation d[n signie que d
est un diviseur positif de n).
Preuve. Puisque F
q
[X] est factoriel, on applique le lemme 11.2.4 en utilisant que X
q
n
X est premier
avec sa drive, donc sa factorisation est sans multiplicit.
Soit
n
(q) le nombre de polynmes unitaires irrductibles de degr n sur F
q
. Alors lidentit cidessus
montre que
q
n
=

d|n
d
d
(q),
et pour rcuprer
d
(q) de cette formule on utilise la formule dinversion de Mbius.
105
Formule dinversion de Mbius
Dfinition 11.2.7 On appelle fonction de Mbius la fonction dnie sur N par :
(n) =
_
_
_
1 si n = 1,
(1)
k
si n est le produit de k nombres premiers distincts,
0 si n est divisible par le carr dun nombre premier.
On voit que (nm) = (n)(m), si m et n sont premiers entre eux.
Remarque. On peut aussi dnir la fonction de Mbius (n) par lgalit formelle

n=1
(n)n
s
=

p premier
(1 p
s
) = (s)
1
.
Proposition 11.2.8 (Formule dinversion) Soient (a
n
), (b
n
) (n 1) deux suites dentiers lies par
b
n
=

d|n
a
d
(n 1).
Alors on a
a
n
=

d|n
(n/d)b
d
(n 1).
En eet on a

d|n
(n/d)b
d
=

d|n
(n/d)

|d
a
d
=

|n
a
d

|(n/d

)
(),
o = n/d divise n/d

. Pour m > 1, si s dsigne le nombre de diviseurs premiers distincts positifs de m,


on a

|m
() =
s

t=0
C
s
t
(1)
t
= (1 1)
s
= 0.
Remarque. La formule dinversion a
n
=

d|n
(n/d)b
d
rsulte aussi facilement de lidentit formelle

n=1
b
n
n
s
=

n=1
a
n
n
s
(s), (s) =

n=1
n
s
cest dire

n=1
a
n
n
s
=

n=1
b
n
n
s
(s)
1
.
Une application directe de la formule dinversion nous permet dnoncer :
Thorme 11.2.9 Pour tout corps ni F
q
et tout entier n 1 on a :
(i) X
q
n
X =

d|n

P unitaire
irrductible sur Fq
deg P=d
P(X),
(ii) q
n
=

d|n
d
d
(q).
106
(iii) Le nombre de polynmes irrductibles unitaires de degr n sur F
q
est

n
(q) =
1
n

d|n
(n/d)q
d
.
Remarque. On voit facilement par labsurde que lexpression droite est non nulle, car il y a unicit
de lcriture (ventuelle) dun entier comme somme de puissances direntes de q. Comme
n
0, on
obtient
n
> 0 ; on a ainsi une nouvelle preuve du fait quil existe un polynme irrductible de degr n
sur F
q
(thorme 11.2.1).
Exemple. Soit q = 3, n = 2, alors
2
(3) =
1
2
(3
2
3) = 3.
> Factor(T^9-T) mod 3;
T (T + 2) (T
2
+T + 2) (T
2
+ 2 T + 2) (T + 1) (T
2
+ 1)
Ordre dun polynme, polynmes primitifs
La notion dordre est prsente ici comme complment, les dmonstrations sont laisses en exercice
(voir [Li-Ni]).
Dfinition 11.2.10 Soit P un polynme non nul sur F
q
. Si P(0) ,= 0, lordre de P est le plus petit
entier strictement positif e tel que P divise X
e
1. Si P(0)=0, alors il existe Q dans F
q
[X] non nul en
0 et h entier positif tels que P = X
h
Q, et dans ce cas on pose ord(P) = ord(Q).
Exercice. Montrer lexistence dun tel nombre e, avec e q
m
1 si m = deg P 1 [Indication :
raisonner dans lanneau ni F
q
[X]/(P)].
Remarque 11.2.11 Si P est irrductible de degr m sur F
q
, alors lordre e de P divise q
m
1. De plus
daprs le lemme 11.2.4 si e > 1 (donc P(X) ,= X), m est minimal > 0 pour cette proprit, donc le
degr m de P est lordre multiplicatif de q modulo e.
Thorme 11.2.12 Soient m 1 et e > 1. Le nombre de polynmes irrductibles unitaires sur F
q
de
degr m et dordre e est
N
q,m,e
=
_
(e)/m , si m est lordre multiplicatif de q mod e
0 , sinon,
o (e) est lindicateur dEuler de e.
Preuve (en exercice).
On considre le groupe cyclique F

2
11
dordre 2
11
1 = 23 89. Soit F

2
11
un lment dordre 23.
La factorisation de X
23
1 en irrductibles sur F
2
est :
X
23
1 = X
23
+ 1 = (X + 1)P
0
(X)P
1
(X) =
(X + 1) (X
11
+X
10
+X
6
+X
5
+X
4
+X
2
+ 1) (X
11
+X
9
+X
7
+X
6
+X
5
+X + 1)
o
P
0
(X) = X
11
+X
10
+X
6
+X
5
+X
4
+X
2
+ 1 =

iI
(X
i
), I = 1, 2, 3, 4, 6, 8, 9, 12, 13, 16, 18
P
1
(X) = X
11
+X
9
+X
7
+X
6
+X
5
+X + 1 =

jJ
(X
j
), J = 5, 7, 10, 11, 14, 15, 17, 19, 20, 21, 22.
107
(Notons que toute racine ,= 1 de X
23
1 est dordre 23. Pour crire les racines de P
0
et P
1
ci-dessus, on
a not une racine de P
0
et appliqu le thorme 11.2.5.)
Pour e = 23 et q = 2, on a bien ord(2 mod 23) = 11 : les polynmes irrductibles dordre 23 sur F
2
sont de degr 11, il y en a (23)/11 = 2.
Remarque. Lensemble
I = 1, 2, 3, 4, 6, 8, 9, 12, 13, 16, 18
concide avec lensemble des rsidus quadratiques modulo 23, et lensemble complmentaire
J = 5, 7, 10, 11, 14, 15, 17, 19, 20, 21, 22
concide avec lensemble des non-rsidus quadratiques modulo 23.
Le morphisme de Frobenius
k

2k
laisse bien sr les ensembles dexposants I et J stables, et en
eet on a
_
2
23
_
= 1 (voir la loi complmentaire de la loi de rciprocit quadratique 8.5.4). Lapplication

k

k
change les ensembles I et J puisque
_
1
23
_
= 1 par le critre dEuler 8.3.1 ; en particulier
P
1
est le polynme minimal de
1
sur F
2
.
Remarque 11.2.13 : Le degr de P irrductible sur F
q
dordre e est lordre multiplicatif de q modulo e.
En eet, on a e[q
m
1, avec un m minimal. Par exemple, si e = 23, q = 2, alors ord(2) mod 23 = 11.
Dfinition 11.2.14 Un polynme P de degr m sur F
q
est dit primitif sur F
q
sil est le polynme minimal
sur F
q
dune racine primitive de F
q
m (un gnrateur du groupe cyclique F

q
m).
Une tude de lordre des produits de polynmes fournit la caractrisation suivante, o on voit qu
degr m x ce sont les polynmes primitifs qui atteignent lordre maximum q
m
1 (voir lexercice
11.2.10) :
Thorme 11.2.15 Un polynme P de degr m est primitif sur F
q
si et seulement si P est unitaire,
non nul en 0 et dordre q
m
1.
Rsum des proprits des polynmes irrductibles sur F
q
Thorme 11.2.16 Soit un lment de F
q
m, une extension de F
q
. Soient d le degr, et P le polynme
minimal de sur F
q
. Alors,
(i) P est irrductible sur F
q
et son degr d divise m.
(ii) un polynme Q sur F
q
sannule si et seulement si P divise Q.
(iii) tout polynme irrductible unitaire sur F
q
nul en est gal P.
(iv) P divise X
q
d
X et X
q
m
X.
(v) Les racines de P sont ,
q
, ,
q
d1
et P est le polynme minimal sur F
q
de toutes ces racines.
Si de plus ,= 0, on a :
(vi) lordre de P est gal celui de dans le groupe multiplicatif F

q
m.
(vii) P est un polynme primitif sur F
q
si et seulement si est dordre q
d
1 dans F

q
m.
Exercices
11.1 Ecrire les tables daddition et de multiplication des corps F4, F8 et F9.
11.2 Ecrire la factorisation de T
9
T (resp. T
8
T) en irrductibles sur F3 (resp. sur F2). Quels sont les facteurs
primitifs ?
11.3 Soit p premier. Calculer "directement" le nombre de polynmes irrductibles de degr 5 sur Fp.
108
11.4 Soit P Fq
m[X]. Montrer P Fq[X] si et seulement si P(X)
q
= P(X
q
).
11.5 Ecrire tous les polynmes irrductibles unitaires de degr 4 sur F2 et trouver leur ordre.
11.6 Montrer que X
4
+ 2 est irrductible sur F5 et trouver son ordre.
11.7 Un polynme P de degr m sur Fq est dit primitif sur Fq sil est le polynme minimal sur Fq dun racinie
primitif de Fq
m (un gnrateur du groupe cyclique F

q
m). Trouver le nombre des polynmes primitifs de
degr m sur Fq.
11.8 Soit p premier impair. Montrer que F
p
2 est un corps de rupture de X
4
+ 1 sur Fp. Si
4
+ 1 = 0 dans
F
p
2 , montrer que y = +
1
vrie y
2
= 2. En dduire que 2 est un carr dans Fp si et seulement si
p 1 mod 8.
109
Cours N

11. Mercredi le 15 decembre 2004


11.3 Construction disomorphismes partir des polynmes irrductibles
Les calculs dans un corps ni dordre non premier q = p
d
passent par le choix dun polynme
irrductible P sur F
p
de sorte que F
q
= F
p
[T]/(P). Il est important de savoir transposer ces calculs
dans le corps construit en choisissant un autre polynme irrductible Q. Il sagit donc dexpliciter un
isomorphisme de corps entre F
p
[T]/(P) et F
p
[T]/(Q).
Rappel :
Thorme sur lisomorphisme 10.4.1 Soient L une extension de K et L une racine dun polynme
irrductible P de K[X]. Alors lanneau K[] est un corps isomorphe K[X]/(P).
Pour construire un isomorphisme : F
p
[T]/(Q)

F
p
[T]/(P), on cherche une racine de Q dans
F
p
[T]/(P) = F
p
[], et on pose (T mod Q) = F
p
[]. Ici = T mod P.
Un exemple de calcul en Maple (disponible ladresse cache :
http ://www-fourier.ujf-grenoble.fr /panchish/04ma1-maple
dans le chier 4ma1-14irr.mws)
> Factor(T^27-T) mod 3;
T (T + 2) (T + 1) (T
3
+ 2 T + 2) (T
3
+T
2
+ 2 T + 1) (T
3
+T
2
+T + 2) (T
3
+ 2 T + 1)
(T
3
+T
2
+ 2) (T
3
+ 2 T
2
+ 1) (T
3
+ 2 T
2
+T + 1) (T
3
+ 2 T
2
+ 2 T + 2)
> P:=T^3+2*T^2+T+1;
P := T
3
+ 2 T
2
+T + 1
> alias(alpha = RootOf(P)) ;

> Q:=T^3+T^2+2*T+1;
Q := T
3
+T
2
+ 2 T + 1
> Factor(Q, alpha) mod 3;
(T + 2
2
+ 1) (T + + 2) (T +
2
+ 2 + 1)
> Factor(T^27-T, alpha) mod 3;
T (T + 2
2
+ 1) (T + 2
2
) (T +
2
+ 2) (T + 2
2
+) (T + 2) (T +
2
) (T + 1)
(T +
2
+ 2 + 2) (T + 2
2
+ 2) (T + 2 ) (T +
2
+ 2 ) (T + 2 + 1) (T +)
(T + 2
2
+ 2 + 2) (T + + 2) (T +
2
+ + 1) (T + 2
2
+ + 2)
(T +
2
+ 2 + 1) (T + 2 + 2) (T +
2
+) (T + + 1) (T +
2
+ 1)
(T + 2
2
+ 2 ) (T + 2
2
+ 2 + 1) (T + 2
2
+ + 1) (T +
2
+ + 2)
Les polynmes P(T) = T
3
+ 2T
2
+T + 1 et Q(T) = T
3
+T
2
+ 2T + 1 sont irrductibles sur F
3
, car
sans racines.
Exemple 11.3.1 Construire un isomorphisme entre les corps F
3
[T]/(P) et F
3
[T]/(Q).
Soit = T mod P, cest une racine de P dans F
3
[T]/(P).
On utilise le fait que Q a aussi une racine dans F
3
[T]/(P), par exemple =
2
1 (voir le calcul
en Maple ci-dessus). On obtient un isomorphisme : F
3
[T]/(Q)

F
3
[T]/(P) en posant (T mod Q) =
=
2
1.
110
Pour trouver " la main", on peut le chercher sous la forme c
0
+ c
1
+ c
2

2
avec c
0
, c
1
, c
2
F
3
(faire lexercice).
11.4 Thorme de la base normale
Exemple 11.4.1 Considrons le polynme P(X) = X
4
+X +1. Il est primitif sur F
2
et toute racine
de P dans son corps de dcomposition F
16
est un lment primitif de F
16
:

4
= 1 +,
5
= +
2
,
6
=
2
+
3
,
7
= 1 + +
3
,
8
= 1 +
2
,

9
= +
3
,
10
= 1 + +
2
,
11
= +
2
+
3
,
12
= 1 + +
2
+
3
,

13
= 1 +
2
+
3
,
14
= 1 +
3
,
15
= 1.
On a une base 1, ,
2
,
3
de F
16
sur F
2
. Les lments
, Fr
2
() =
2
, Fr
2
2
() =
4
= 1 +, Fr
3
2
() =
8
= 1 +
2
sont toutes les racines de P(X) = X
4
+X+1. On observe que ces lments sont linairement dpendants :
,
2
,
4
,
8
nest pas une base de F
16
sur F
2
.
On a cependant le rsultat suivant :
Thorme 11.4.2 (de la base normale) Soient p un nombre premier et q = p
d
. Alors il existe un
lment de F
q
pour lequel (, Fr
p
(), , Fr
p
d1 ()) est une base de F
q
sur F
p
.
Preuve. On considre le morphisme danneaux
: F
p
[T] End
Fp
(F
q
),
n

i=0
a
i
T
i

i=0
a
i
Fr
i
p
et on pose pour tout P de F
p
[T] et tout x de F
q
, P x = (P)(x). En particulier, T x = Fr
p
(x) = x
p
.
On note a le noyau de . Comme tout x de F
q
est solution de X
q
X = 0, on a que Fr
q
= Id
Fq
, et donc
T
d
1 appartient au noyau a. Inversement, si P(T) =

m
i=0
a
i
T
i
appartient ce noyau avec m < d, on
a la relation
m

i=0
a
i
Fr
i
p
= 0,
donc le polynme

m
i=0
a
i
X
p
i
sannule sur tout F
q
. Or son degr est strictement infrieur p
d
, donc
cest le polynme nul, et on a P = 0. Ceci prouve que a = (T
d
1) (autrement dit T
d
1 est le polynme
minimal de Fr
p
sur F
q
).
La factorisation de (T) = T
d
1 en polynmes irrductibles de F
p
[T] donne une dcomposition de
lespace F
q
en somme directe de F
p
-sous-espaces stables par Fr
p
:
=
s

i=1
P
ri
i
et F
q
=
s

i=1
Ker(P
i
(Fr
p
)
ri
).
111
Chaque E
i
= Ker(P
i
(Fr
p
)
ri
) est un F
p
-sous-espace stable par Fr
p
, et par lindpendance linaire des Fr
i
p
tablie ci-dessus, il contient un lment
i
tel que
_

P
i
_
(Fr
p
)(
i
) soit non nul. Pour un tel
i
, on pose

i
=
_

P
ri
i
_
(Fr
p
)(
i
) ; alors la famille

i
, P
i
(Fr
p
)(
i
), , P
ri1
i
(Fr
p
)(
i
),
est libre, en eet, pour tous a
0
, a
1
, , a
ri1
dans F
p
on a
a
0

i
+a
1
P
i
(Fr
p
)(
i
) + +a
ri1
P
ri1
i
(Fr
p
)(
i
) = 0
donc a
0
P
ri1
i
(Fr
p
)(
i
) +a
1
P
ri
i
(Fr
p
)(
i
) + +a
ri1
P
2ri1
i
(Fr
p
)(
i
) = 0.
De l a
0
= 0 puis a
1
= 0 puis a
ri1
= 0,
puisque P
ri
i
(Fr
p
)(
i
) = (Fr
p
)(
i
) = 0. Ceci dit que lensemble des polynmes Q de F
p
[T] tels que
Q(Fr
p
)(
i
) = 0, est lidal de F
p
[T] engendr par P
ri
i
.
Considrons llment =
1
+ +
s
de F
q
. Si des lments (a
k
) de F
p
vrient

d1
k=0
a
k
Fr
k
p
() = 0,
alors le polynme

d1
k=0
a
k
T
k
F
p
[T] est divisible par P
ri
i
pour tout i tel que 1 i s, donc par , et
donc les a
k
sont tous nuls. Cela signie que llment engendre bien une base normale de F
q
sur F
p
.
Remarque 11.4.3 Pour les corps nis de caractristique 2, les bases normales permettent de calculer
les carrs et donc les puissances. En eet, si (,
2
, ,
2
d1
) est une base de F
2
d sur F
2
, alors pour
tout (a
0
, a
1
, , a
d1
) F
d
2
on a
(a
0
+a
1

2
+ +a
d1

2
d1
)
2
=a
2
0

2
+a
2
1

4
+ +a
2
d1

2
d
=
a
d1
+a
0

2
+ +a
d2

2
d1
,
o la dernire galit est obtenue en notant que
2
d
= .
Autrement dit le carr sobtient par permutation circulaire des coordonnes. Pour un corps ni arbi-
traire, on a une expression similaire pour le calcul du Frobenius.
Un exemple de calcul en Maple dune base normale est disponible ladresse cache :
http ://www-fourier.ujf-grenoble.fr /panchish/04ma1-maple
dans le chier 4ma1-16base-n.mws
Exercices
11.1 Dterminer lexposant des groupes abliens (Z/60Z)

, (Z/100Z)

, (Z/187Z)

. Trouver pour chacun un l-


ment dordre lexposant.
11.2 En considrant lordre des lments dans le groupe cyclique Z/nZ, montrer que n =
P
d|n
(d). En dduire
une autre preuve du fait que tout sous-groupe dordre n de K

, o K est un corps, est cyclique.


11.3 Soit K un corps q lments, q 4. Montrer que
P
xK
x
2
= 0. Plus gnralement, calculer, pour s 1,
la somme
P
xK
x
s
.
112
11.4 Soit G lensemble de toutes les racines de lunit dans C. Montrer que G est un sous-groupe inni de C

,
non monogne. Pour tout n 1, montrer que G possde un unique sous-groupe cyclique dordre n.
11.5 Soit P Fq
m[X]. Montrer que P Fq[X] si et seulement si P(X)
q
= P(X
q
).
11.6 Donner une construction puis crire les tables daddition et de multiplication des corps F4, F8 et F9.
11.7 Ecrire la factorisation de X
9
X (resp. X
8
X) en irrductibles sur F3 (resp. sur F2). Quels en sont les
facteurs primitifs ?
11.8 Soit p premier. Calculer "directement" le nombre de polynmes irrductibles de degr 5 sur Fp.
11.9 Soit P polynme de degr m sur le corps Fq. Dmontrer que P est irrductible si et seulement si les deux
conditions suivantes sont vries :
(i) P divise X
q
m
X,
(ii) pour tout diviseur premier l de m, P est premier avec X
q
m/l
X.
11.10 Montrer lexistence de lordre e dun polynme P = 0 sur Fq, et que e q
m
1 si m = deg P 1 et
P(0) = 0 [Indication : raisonner dans lanneau ni Fq[X]/(P)].
11.11 Ecrire tous les polynmes irrductibles unitaires de degr 4 sur F2 et trouver leur ordre.
11.12 Montrer que X
4
+ 2 est irrductible sur F5 et trouver son ordre.
11.13 Soit p premier impair. Montrer que le polynme X
4
+ 1 admet une racine dans F
p
2. Montrer que
y = +
1
vrie y
2
= 2. En dduire que 2 est un carr dans Fp si et seulement si p 1 mod 8.
11.14 Soit m 1. (a) Trouver le nombre de polynmes primitifs de degr m sur Fq.
(b) Montrer quun polynme P de degr m est primitif sur Fq si et seulement si P est unitaire, non nul en
0 et dordre q
m
1 [Indication : pour la condition susante, on montrera que P est sans facteur multiple,
et nest pas produit de polynmes non constants premiers entre eux].
113
12 Algorithme de factorisation de Berlekamp dans F
q
[X]
On va prsenter une mthode classique de factorisation dun polynme P F
q
[X] non constant (la
mthode de Berlekamp). On suppose que P na pas de facteurs multiples (cest dire pgcd(P, P

) = 1 ;
dans le cas contraire, on vrie en exercice que soit pgcdP, P

) est un diviseur propre D de P et le


polynme P/D est sans facteurs multiples, soit P est la puissance p-ime dun polynme quon factorise
son tour). Soit donc P = P
1
. . .P
s
une factorisation inconnue de P en produit dirrductibles non
associs. Soit A = F
q
[X], et considrons lanneau quotient
A/(P) A/(P
1
) A/(P
s
),
o chaque A/(P
i
) est un corps ni q
di
lments, d
i
= deg P
i
, lisomorphisme rsultant du thorme
chinois. Lanneau A/(P) est en particulier un espace vectoriel sur F
q
, de dimension d = deg P, et
lendomorphisme de Frobenius Fr
q
: x x
q
y opre F
q
linairement. Par lisomorphisme cette opration
se traduit en une action linaire diagonale de Fr
q
sur la somme directe des espaces A/(P
i
). Soit K le
corps de dcomposition de P sur F
q
, alors chaque corps A/(P
i
) est isomorphe un sous-corps K
i
de K
tel que K
i
F
q
, [K
i
: F
q
] = d
i
.
De plus A/(P
i
) K
i
F
q
d
i
est donn par la condition :
K
i
= x K [ x
q
d
i
= x F
q
d
i
,
et son souscorps des constantes (les points xes sous Fr
q
) est F
q
= x A/(P
i
) [ x
q
= x. Alors
Ker(Fr
q
Id)
|A/(P)
Ker(Fr
q
Id)
|A/(P1)
Ker(Fr
q
Id)
|A/(Ps)
F
q
s
,
o s est le nombre des facteurs irrductibles P
i
.
On obtient ainsi un critre dirrductibilit de P :
Thorme 12.0.1 (Critre dirrductibilit) Soit P un polynme de degr d sur F
q
, premier avec
sa drive. Alors P est irrductible si et seulement si le rang r de lendomorphisme Fr
q
Id du F
q
-espace
vectoriel A/(P)est gal d 1.
En pratique on crit la matrice de Fr
q
Id dans une base de A/(P), par exemple dans la base
1 + (P), X + (P), X
2
+ (P), . . . , X
d1
+ (P).
Supposons maintenant r < d 1 ; pour trouver les facteurs P
i
inconnus on cherche tout dabord un
polynme Q tel que
Q+ (P) Ker(Fr
q
Id) A/(P)
et Q+ (P) nest pas une constante mod(P). Cela est possible grce au fait que
dim(Im(Fr
q
Id)) = rg(Fr
q
Id) = d s < d 1 dim(Ker(Fr
q
Id)) = d rg(Fr
q
Id) 2.
114
Alors P[Q
q
Q puisque Q+ (P) Ker(Fr
q
Id) A/(P), on a
Q
q
Q =

Fq
(Q),
mais Q , 0 mod (P). Ceci implique que
P = pgcd(P, Q
q
Q) =

Fq
pgcd(P, Q),
o la deuxime galit vient de ce que les facteurs Q sont deux deux premiers entre eux ; de plus
la factorisation droite nest pas triviale car tous les pgcd(P, Q) sont distincts de P.
En pratique on cherche Q (un polynme dcomposant) sous la forme Q(X) = a
1
X +a
2
X
2
+ +
a
d1
X
d1
, et on trouve les coecients a
i
comme une solution non triviale du systme des d quations
linaires qui traduisent que (Fr
q
Id)(Q) = 0 dans A/(P).
Exemples de calcul en Maple avec lalgorithme de Berlekamp sont disponibles ladresse
cache : http ://www-fourier.ujf-grenoble.fr /panchish/04ma1-maple
dans le chier 4ma1-15berl.mws
Exercices
12.1 Dans lalgorithme ci-dessus, expliquer prcisment o on a utilis que P na pas de facteurs multiples.
Donner un contre-exemple au thorme 12.0.1 lorsque cette hypothse est en dfaut [on pourra montrer
plus prcisement que le rang de lendomorphisme Frq Id de lanneau quotient est d s, o s dsigne le
nombre des facteurs irrductibles unitaires distincts de P].
12.2 Soit P Fq[X] un polynme ayant des facteurs multiples. Montrer que, soit pgcd(P, P

) est un diviseur
propre D de P et le polynme P/D est sans facteurs multiples, soit P est la puissance p-ime dun polynme
Q Fq[X].
115
Cours N

12. Mercredi le 22 decembre 2004


Troisime partie
Equations algbriques et varits anes
13 Equations algbriques et varits anes
13.1 Systmes algbriques
Soit K un anneau commutatif. On considre un systme algbrique sur K :
X : F
i
(T
1
, , T
n
) = 0 (i I) o F
i
(T
1
, , T
n
) K[T
1
, , T
n
].
Lensemble des solutions de X dans K est
X(K) = (x
1
, , x
n
) K
n
[ i, F
i
(x
1
, , x
n
) = 0,
Il se peut que X(K) = , cest dire, que le systme na pas de solutions dans K, mais il existe des
solutions dans un autre anneau.
Soit L une K algbre commutative , cest dire, un anneau muni de morphisme de structure
: K L. Alors on obtient une multiplication externe dlments x L par a K, donne par la
formule : a x = (a)x L. Par exemple, C est une R-algbre, et tout anneau B est une Z-algbre.
Alors pour tout (x
1
, , x
n
) L
n
on dnie la valeur du polynme F
i
(x
1
, , x
n
) L, et on pose
X(L) = (x
1
, , x
n
) L
n
[ i, F
i
(x
1
, , x
n
) = 0,
lensemble des solutions de X dans L.
En particulier, tout anneau B est une Z-algbre, donc X(B) est dni pour tout systme algbrique
sur Z.
Proposition 13.1.1 Soit (P
X
) lidal de K[T
1
, , T
n
], engendr par les polynmes
F
i
(T
1
, , T
n
) K[T
1
, , T
n
](i I),
et on considre lanneau quotient A
X
= K[T
1
, , T
n
]/(P
X
).
(a) Il existe une bijection
X(L) Hom
Kalg
(A
X
, L) tel que x = (x
1
, , x
n
) L
n
(s
x
: T
j
x
j
).
(b) Pour tout morphisme f : L
1
L
2
de K-algbres, il existe une application canonique densembles
des solutions
f
X
: X(L
1
) X(L
2
) tel que f
X
((x
1
, , x
n
)) = (f(x
1
), , f(x
n
))
Preuve. (a) On vrie que
s
x
: K[T
1
, , T
n
] L, s
x
: T
j
x
j
),
est bien dni sur lanneau quotient A
X
= K[T
1
, , T
n
]/(P
X
).
(b) On vrie que la formule f
X
((x
1
, , x
n
)) = (f(x
1
), , f(x
n
)) dtrmine f
X
de faon unique.
116
Exemple 13.1.2 Pour voir que N = 4m+ 3 nest pas une somme de deux carrs : prenons
L
1
= Z, L
2
= Z/4Z, X : T
2
1
+T
2
2
N = 0,
alors
X(L
2
) = X(L
1
) = .
13.2 Varits anes (prparation).
Soit K un corps algbiquement clos. Dans ce cas un systme algbique X sur K est essentiellement
dtermin par lensemble des solutions X(K) K
n
, selon un rsultat important de lalgbre commuta-
tive :
Thorme 13.2.1 ("Nullstellensatz") (le thorme des zros de Hilbert,
sans dmonstration) Soit K un corps algbiquement clos. Soit (P
X
) = (F
i
)
iI
lidal de K[T
1
, , T
n
],
engendr par les polynmes
F
i
(T
1
, , T
n
) K[T
1
, , T
n
] (i I),
et on considre lanneau quotient A
X
= K[T
1
, , T
n
]/(P
X
). Alors
F K[T
1
, , T
n
] sannulle sur X(K) N, F
N
P
X
= (F
i
)
iI
Remarque 13.2.2 Soit (P
X
) = (F
i
)
iI
lidal de K[T
1
, , T
n
], engendr par les polynmes
F
i
(T
1
, , T
n
) K[T
1
, , T
n
] (i I).
Alors la condition
N, F
N
P
X
= (F
i
)
iI
signie quon a F
N
= 0 dans lanneau quotient A
X
= K[T
1
, , T
n
]/(P
X
), o F = F mod P
X
Dfinition 13.2.3 (varit affine sur un corps) Soit K un corps (suppos souvent algbiquement
clos). Alors lensemble des solutions X(K) K
n
dun systme algbrique sur K,
X : F
i
(T
1
, , T
n
) = 0 (i I) o F
i
(T
1
, , T
n
) K[T
1
, , T
n
],
est dit une varit ane sur K
On peut supposer que lanneau quotient A
X
= K[T
1
, , T
n
]/(P
X
) na pas dlments nilpotents, o
(P
X
) = (F
i
)
iI
lidal de K[T
1
, , T
n
], engendr par les polynmes
F
i
(T
1
, , T
n
) K[T
1
, , T
n
] (i I).
117
13.3 Rsolution dun systme linaire dans un anneau euclidien
On considre un systme linaire sur un anneau euclidien A :
Ax = b, o A =
_
_
_
_
a
11
a
1n


a
m1
a
mn
_
_
_
_
M
mn
(A),
x =
_
_
_
_
x
1


x
n
_
_
_
_
M
n1
(A), b =
_
_
_
_
b
1


b
m
_
_
_
_
M
m1
(A).
Pour rsoudre un tel systme on a besoin de la thorie des diviseurs lmentaires. Rappellons quune
transformation lmentaire de lignes dune matrice sur un anneau commutatif A cest laddition une ligne
dune autre, multiplie par un lment de A. De faon similaire on dnit les transformations lmentaires
entires de colonnes. Une transformation lmentaire de lignes (resp. de colonnes) est quivalente
la multiplication gauche (respectivement, droite) de la matrice initiale par une matrice de type
E
ij
= E + e
ij
(avec i ,= j) dans le groupe SL
m
(A) (resp. SL
n
(A)). Si lon fait plusieures telles
transformations la suite, on remplace la matrice A par UAV o U GL
m
(A), V GL
n
(A) sont des
matrices coecients entiers inversibles sur A, cest dire, telles que det U, det V A

.
Dfinition 13.3.1 On dnit des matrices lmentaires U GL
m
(A) et V GL
n
(A) comme les
matrices obtenues partir des matrices units I
m
et I
n
par une transformation lmntaire des lignes
(colonnes) sur A.
Remarque 13.3.2 On vrie que la matrice UAV est obtenue en appliquant aux lignes (colonnes) de
A les mmes transformations lmentaires qui ont t utilis dans la dnition de U et V ci-dessus.
Proposition 13.3.3 Pour toute matrice
A =
_
_
_
_
a
11
a
1n


a
m1
a
mn
_
_
_
_
M
mn
(A),
on peut choisir des produits U = U
1
U
2
U
k
et V = V
1
V
2
V
l
des matrices lmentaires de
telle faon que UAV = D, avec
D =
_
_
_
_
_
_
_
_
d
1
0 0
0 d
2
0 0
0 0
0 d
r
0
0 0 0
0 0
_
_
_
_
_
_
_
_
M
mn
(A),
o r est le rang de A,
et d
1
, , d
r
,= 0
avec d
1
[d
2
[d
r
.
Corollaire 13.3.4 On en dduit que
Ax = b UAV V
1
x = Ub Dy = c, o c = Ub, y = V
1
x, x = V y,
118
et sil existe une solutions, alors la solution gnrale sur A est donne par les formules
d
i
y
i
= c
i
, pour i r, y
i
A pour i > r,
_
_
_
_
_
_
x
1



x
n
_
_
_
_
_
_
= V
_
_
_
_
_
_
c
1
/d
1

c
r
/d
r
y
r+1
y
n
_
_
_
_
_
_
.
Calculs avec les matrices largies
Pour trouver U et V on utilise les matrices largies
_
A b
I
n
0
_
Montrer que par les transformations lmentaires de lignes et de colonnes la matrice largie se transforme
en
_
A b
I
n
0
_

_
UAV Ub
V 0
_
Exemple 13.3.5 Rsoudre les systme linaires sur Z :
(a)
5x
1
+ 6x
2
+ 7x
3
= 4.
(b)
_
_
_
x
1
+x
2
+x
3
= 2
4x
1
+x
2
+ 4x
3
= 5
x
1
2x
2
+x
3
= 1.
Solution. (a) Ecrivons les matrices correspondantes :
_
_
_
_
5 6 7 4
1 0 0 0
0 1 0 0
0 0 1 0
_
_
_
_

_
_
_
_
5 1 2 4
1 1 1 0
0 1 0 0
0 0 1 0
_
_
_
_

_
_
_
_
1 0 0 4
1 6 1 0
1 5 2 0
0 0 1 0
_
_
_
_
,
do
V =
_
_
1 6 1
1 5 2
0 0 1
_
_
,
_
_
x
1
x
2
x
3
_
_
=
_
_
1 6 1
1 5 2
0 0 1
_
_
_
_
4
y
2
y
3
_
_
,
avec y
2
, y
3
Z.
Solution. (b) Ecrivons les matrices correspondantes :
_
_
_
_
_
_
_
_
1 1 1 2
4 1 4 5
1 2 1 1
1 0 0 0
0 1 0 0
0 0 1 0
_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_
1 1 1 2
0 3 0 3
0 3 0 3
1 0 0 0
0 1 0 0
0 0 1 0
_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_
1 0 0 2
0 3 0 3
0 0 0 0
1 1 1 0
0 1 0 0
0 0 1 0
_
_
_
_
_
_
_
_
,
119
do
V =
_
_
1 1 1
0 1 0
0 0 1
_
_
,
_
_
x
1
x
2
x
3
_
_
=
_
_
1 1 1
0 1 0
0 0 1
_
_
_
_
2
1
y
3
_
_
,
avec y
3
Z.
13.4 Systmes diophantiens linaires.
Lalgorithme dEuclide nous permet dtudier un systme diophantien linaire (comme un cas parti-
culier de section 13.3) :
Ax = b, (13.1)
o
A =
_
_
_
a
11
a
12
a
1n

.
.
.
a
m1
a
m2
a
mn
_
_
_ M
m,n
(Z), x =
_
_
x
1

x
n
_
_
, b =
_
_
b
1

b
m
_
_
.
De lautre cot, le systme
UAV y = Ub (13.2)
est quivalent (13.1) car ses solutions correspondent bijectivement aux solutions de (13.1) par : x = V y.
On utilise cette observation pour remplacer A par une matrice plus simple A

= UAV. En eet, si lon


utilise lalgorithme dEuclide et une version de la procdure dlimination de Gauss sans divisions, on
trouve A

de la forme
D =
_
_
_
_
_
_
_
d
1
0 0 . . . 0
0 d
2
0 . . . 0

.
.
. . . . 0
0 0 . . . d
r
. . .
0 0 0
_
_
_
_
_
_
_
= UAV (r = rkA). (13.3)
Alors on voit que soit notre systme est nonrsoluble mme sur Q, soit on obtient toutes les solutions
des quations d
i
y
i
= c
i
, c = Ub pour i r, 0y
i
= 0 pour i > r. Il est donc clair que lensemble des
solutions entires est nonvide si et seulement si d
i
divise c
i
pour i r et il est paramtr de faon
vidente. Le nombre d
1
. . .d
i
concide avec le pgcd de tous les mineurs dordre i de A donc on peut
supposer que d
i
[d
i+1
. Ils sont appells les diviseurs lmentaires de A.
Pour trouver la matrice V GL
n
(Z) il est commode dutiliser la matrice largie
_
A b
E
n
0
_
, et si lon
applique les transformations lmentaires de n premires colonnes et m premires lignes cidessus, on
obtient
_
A

V 0
_
=
_
UAV Ub
V 0
_
.
120
Proposition 13.4.1 (a) Un systme linaire
_
_
_
a
11
x
1
+ +a
1n
x
n
= b
1

a
m1
x
1
+ + a
mn
x
n
= b
m
.
(13.4)
sur Z est rsoluble si et seulement si il est rsoluble mod N pour tout nombre naturel positif N.
(b) Un systme linaire
_
_
_
a
11
x
1
+ +a
1n
x
n
= b
1

a
m1
x
1
+ + a
mn
x
n
= b
m
.
sur Z est rsoluble si et seulement si pour tout nombre naturel positif k m, n le PGCD de tous les
mineurs dordre k de la matrice A est gal au PGCD de tous les mineurs dordre k de la matrice largie
(A[b).
En eet, cette mthode montre que (13.4) est rsoluble si et seulement si ses diviseurs lmentaires
concident avec ceux de la matrice tendue (avec la colonne b ajoute). Cest quivalent la rsolubilit
de toutes les congruences
Ax b(modN)
o N un entier (on le voit sous la forme diagonale). Cette condition peut tre tendue pour un systme
gnral diophantien. Il est clair, quune telle condition est ncessaire pour lexistence dune solution. Notre
tude montre que cette condition est aussi susante pour un systme linaire. Quand cest vrai pour une
classe dquations diophantiennes, on dit que pour cette classe le principe de MinkowskiHasse est vri.
Le problme de validit du principe de MinkowskiHasse pour les classes dquations diophantiennes est
un des problmes centraux en thorie des nombres.
Groupes abliens
(a) Soit F un groupe ablien libre (additif) de base e
1
, , e
n
, F

= Z
n
, et soit H son sous-groupe
engendr par des lmnts
f
j
=
n

j=1
a
ij
e
i
(i = 1, , n).
Montrer que le groupe quotient F/H est ni si et seulement si det(a
ij
) ,= 0 et dans ce cas Card(F/H) =
[ det(a
ij
)[.
(b) Dcomposer en somme directe de groupes cycliques le groupe quotient F/H dun groupe ablien
ni F de base (e
1
, e
2
, e
3
), F

= Z
3
, par son sous-groupe H engendr par des lmnts f
1
, f
2
, f
3
, avec
_
_
_
f
1
= 7e
1
+ 2e
2
+ 3e
3
f
2
= 21e
1
+ 8e
2
+ 9e
3
f
3
= 5e
1
4e
2
+ 3e
3
.
(c) Dcomposer en somme directe de groupes cycliques le groupe quotient F/H dun groupe ablien
ni F dune base (e
1
, e
2
, e
3
), F

= Z
3
, par son sous-groupe H engendr par des lmnts f
1
, f
2
, f
3
, avec
_
_
_
f
1
= 2e
1
+ 3e
2
+ 4e
3
f
2
= 5e
1
+ 5e
2
+ 6e
3
f
3
= 2e
1
+ 6e
2
+ 9e
3
.
121
(d) Mme question pour les lmnts f
1
, f
2
, f
3
, avec
_
_
_
f
1
= 4e
1
+ 7e
2
+ 3e
3
f
2
= 2e
1
+ 3e
2
+ 2e
3
f
3
= 6e
1
+ 10e
2
+ 5e
3
.
122
Cours N

13. Mercredi le 5 janvier 2005


13.5 Varits algbriques (exemples)
Dfinition 13.2.3 (Rappel : varit affine sur un corps) Soit K un corps. Alors lensemble des
solutions X(K) K
n
dun systme algbrique sur K,
X : F
i
(T
1
, , T
n
) = 0 (i I) o F
i
(T
1
, , T
n
) K[T
1
, , T
n
],
est dit une varit ane sur K
Equations sur les corps nis : solution dune quation ane sur F
q
Soit K = F
p
l . On considre une quation ane F(X, Y ) = 0 sur F
p
l , par exemple X
3
+ Y
3
= 1 sur
F
8
(p = 2, l = 3). On reprsent les lments de K = F
p
l sous la forme des nombres n vriant 0 n < p
l
.
En eet, tant donn un tel nombre n, on le transforme en un lment de K en utilisant lcriture de n
en base p : il existe des entiers uniques ("Chires" de n en base p) m
0
, . . . , m
l1
vriant 0 m
i
< p et
tels que n = m
0
+m
1
p +m
2
p
2
+ +m
l1
p
l1
, ce qui permet dassocier de manire unique lentier
n, llment = m
0
+m
1
T + +m
l1
T
l1
de K, = T = T mod f.
Exemples de calcul en Maple avec les systmes anes (disponibles ladresse cache :
http ://www-fourier.ujf-grenoble.fr /panchish/04ma1-maple
dans les chiers 4ma1-18a.mws, 4ma1-17sys-a.mws)
> restart;
> F:=(X,Y)->X^3+Y^3-1;
> p:=2;l:=3;
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> (la procedure gf engendre un gnrateur alpha dun corps ni F_{p^l})
> gf:= proc(p::nonnegint,l::nonnegint)
> local u,i,m, v;
> if ((p-2)^2+(l-2)^2=0) then
> alias(alpha = RootOf(x^2+x+1) mod 2);
> fi;
> if l=1 then
> alpha=1;
> else fi;
> u:=op(1, select(has, Factor(z^(p^l)-z) mod p, z^l)) ;
> alias(alpha = RootOf(u) mod p);
> return alpha,u;
> end proc:
F := (X, Y ) X
3
+Y
3
1
p := 2
l := 3
123
> Chiffres:= proc( d::nonnegint,l::nonnegint,n::nonnegint )
> local i,m, v;
> v:=vector(l);
> m:=n;
> for i from 0 to l-1 do
> v[l-i]:=modp(m,d);m:=floor(m/d); od;
> return v;
> #gf(p,l):
> end proc:
> gf(p,l):
> g:= proc( p::nonnegint,l::nonnegint,n::nonnegint )
> local h, v, i;
> v:=vector(l);
> for i from 1 to l do
> v:=evalm(Chiffres(p,l,n));h:=add(alpha^(l-j)*v[j],j=1..l);return h;
> od;end proc:
> gf(p,l):
> points:= proc( p::nonnegint,l::nonnegint,F::polynom )
> local n1,n2,n3, L,c,v,f1, f2;
> c:=0:
> L:=NULL:
> for n1 from 0 to p^l-1 do
> for n2 from 0 to p^l-1 do
> if Eval(F(X,Y,Z),{X=g(p,l,n1),Y=g(p,l,n2)}) mod p =0 then c:=c+1;
> L:= L,( c=c,[g(p,l,n1),g(p,l,n2)]);fi; od; od;
> return( L=L):end:
> points(p,l,F);
L = ( c = 1, [0, 1], c = 2, [1, 0], c = 3, [, 1 +
2
+], c = 4, [1 +,
2
], c = 5,
[
2
, 1 +], c = 6, [
2
+ 1,
2
+], c = 7, [
2
+,
2
+ 1], c = 8, [1 +
2
+, ])
Equations sur les corps nis : solution dun systme ane sur F
q
Soit K = F
p
l . On considre un systme dquations anes
_
F
1
(X, Y, Z) = 0
F
2
(X, Y, Z) = 0
sur F
p
l , par exemple
_
X
3
+Y
3
+Z
5
= 0
X +Y + 1 = 0
sur F
8
(p = 2, l = 3). On reprsent les lments de K = F
p
l sous la forme des nombres n vriant
0 n < p
l
. En eet, tant donn un tel nombre n, on le transforme en un lment de K en utilisant
lcriture de n en base p : il existe des entiers uniques ("Chires" de n en base p) m
0
, . . . , m
l1
vriant
0 m
i
< p et tels que
n = m
0
+m
1
p +m
2
p
2
+ +m
l1
p
l1
,
ce qui permet dassocier de manire unique lentier n, llment
= m
0
+m
1
T + +m
l1
T
l1
124
de K, = T = T mod f.
> restart;
> F1:=(X,Y,Z)->X^3+Y^3+Z^5;
> F2:=(X,Y,Z)->X+Y+1;
> p:=2;l:=3;
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%
(la procedure gf engendre un gnrateur alpha dun corps ni F_{p^l})
> gf:= proc(p::nonnegint,l::nonnegint)
> local u,i,m, v;
> if ((p-2)^2+(l-2)^2=0) then
> alias(alpha = RootOf(x^2+x+1) mod 2);
> fi;
> if l=1 then
> alpha=1;
> else fi;
> u:=op(1, select(has, Factor(z^(p^l)-z) mod p, z^l)) ;
> alias(alpha = RootOf(u) mod p);
> return alpha,u;
> end proc:
F1 := (X, Y, Z) X
3
+Y
3
+Z
5
F2 := (X, Y, Z) X +Y + 1
p := 2
l := 3
> Chiffres:= proc( d::nonnegint,l::nonnegint,n::nonnegint )
> local i,m, v;
> v:=vector(l);
> m:=n;
> for i from 0 to l-1 do
> v[l-i]:=modp(m,d);m:=floor(m/d); od;
> return v;
> #gf(p,l):
> end proc:
> gf(p,l):
> g:= proc( p::nonnegint,l::nonnegint,n::nonnegint )
> local h, v, i, n3;
> v:=vector(l);
> for i from 1 to l do
> v:=evalm(Chiffres(p,l,n));h:=add(alpha^(l-j)*v[j],j=1..l);return h;
> #gf(p,l):
> od;end proc:
> gf(p,l):
125
> points:= proc( p::nonnegint,l::nonnegint,F::polynom )
> local n1,n2,n3, L,c,v,f1, f2;
> c:=0:
> L:=NULL:
> for n1 from 0 to p^l-1 do
> for n2 from 0 to p^l-1 do
> for n3 from 0 to p^l-1 do
> if (Eval(F1(X,Y,Y),{X=g(p,l,n1),Y=g(p,l,n2),Z=g(p,l,n3)}) mod p=0
> and Eval(F2(X,Y,Z),{X=g(p,l,n1),Y=g(p,l,n2),Z=g(p,l,n3)}) mod p=0)
> then c:=c+1;
> L:= L,( c=c,[g(p,l,n1),g(p,l,n2),g(p,l,n3)]);fi; od; od;
> od;return(gf(p,l), L=L):end:
> points(p,l,F);
, z
3
+z + 1, L = ( c = 1, [0, 1, 0], c = 2, [0, 1, 1], c = 3, [0, 1, ], c = 4, [0, 1, 1 +],
c = 5, [0, 1,
2
], c = 6, [0, 1, 1 +
2
], c = 7, [0, 1,
2
+], c = 8, [0, 1, 1],
c = 9, [1 +, , 0], c = 10, [1 +, , 1], c = 11, [1 +, , ], c = 12,
[1 +, , 1 +], c = 13, [1 +, ,
2
], c = 14, [1 +, , 1 +
2
], c = 15,
[1 +, ,
2
+], c = 16, [1 +, , 1], c = 17, [1 +
2
,
2
, 0], c = 18,
[1 +
2
,
2
, 1], c = 19, [1 +
2
,
2
, ], c = 20, [1 +
2
,
2
, 1 +], c = 21,
[1 +
2
,
2
,
2
], c = 22, [1 +
2
,
2
, 1 +
2
], c = 23, [1 +
2
,
2
,
2
+], c = 24,
[1 +
2
,
2
, 1], c = 25, [1,
2
+, 0], c = 26, [1,
2
+, 1], c = 27,
[1,
2
+, ], c = 28, [1,
2
+, 1 +], c = 29, [1,
2
+,
2
], c = 30,
[1,
2
+, 1 +
2
], c = 31, [1,
2
+,
2
+], c = 32, [1,
2
+, 1])
1 := 1 +
2
+
Equations de degr deux
On considre lquation diophantienne suivante aux coecients entiers :
f(x
1
, x
2
, . . . , x
n
) =
n

i,j
a
ij
x
i
x
j
+
n

i=1
b
i
x
i
+c = 0. (13.5)
Ici on commence par trouver lensemble de toutes les solutions en nombres rationnels. Ce problme est
plus facile que ce de trouver les solutions en nombres entiers, mais il nest pas trivial.
Un exemple classique est donn par la parametrisation rationnelle du cercle x
2
+y
2
= 1 :
x =
2t
1 +t
2
, y =
1 t
2
1 +t
2
, (x = cos , y = sin , t = tan
_

2
_
), (13.6)
( lexception du point (0, 1)). (13.7)
Cette parametrisation nous permet de dcrire toutes les triples primitifs de Pythagore (X, Y, Z), cest
dire, les solutions en entiers naturels de lquation X
2
+Y
2
= Z
2
avec pgcd( X, Y, Z ) = 1. La rponse
126
est : X = 2uv, Y = u
2
v
2
, Z = u
2
+ v
2
, o u > v > 0 sont des entiers premiers entre eux. Pour le
prouver, il sut de poser t = u/v dans (13.6).
De faon similaire, trouver les solutions rationnelles de (13.5) est equivalent trouver les solutions
rationnelles de lquation homogne
F(X
0
, X
1
, , X
n
) =
n

i,j=0
f
ij
X
i
X
j
=
n

i,j=1
f
ij
X
i
X
j
+ 2
n

i,j=1
f
i0
X
i
X
0
+f
00
X
2
0
(13.8)
o f
ij
= f
ji
= a
ij
/2 pour 1 i < j n et f
0i
= f
i0
= b
i
/2 pour i = 1, 2, . . . , n, f
00
= c. Les coordonnes
nonhomognes x
1
, , x
n
sont relies aux coordonnes homognes X
0
, . . . , X
n
par X
i
= x
i
X
0
(i =
1, 2, . . . , n). La forme quadratique F(X) peut tre crit de faon commode sous la forme
F(X) = X
t
A
F
X, X
t
= (X
0
, X
1
, . . . , X
n
),
o A
F
= (f
ij
) est la matrice des coecients. Sil existe une solution rationnelle nontriviale de F(X) = 0,
on dit que la forme F reprsente zro sur Z.
Cette quation dnie une conique Q
F
(cest dire, une hypersurface de CP
n
de degr deux). Ses
points sont toutes les solutions ( lexception de la solution triviale) considres comme points de lespace
projectif complexe CP
n
:
Q
F
= (z
0
: z
1
: . . . : z
n
) CP
n
[ F(z
0
, z
1
, . . . , z
n
) = 0.
Toute solution nontriviale de F(X) = 0 donne un point sur cette conique. Sil on connait une solution X
0
alors on peut trouver toutes les autres en considrant les intersections deQ
F
avec les droites (projectifs)
denes sur Q et contenants X
0
. Algbriqument, une droite passant par X
0
et Y
0
est forme par tous les
points de la forme uX
0
+vY
0
. Lquation F(uX
0
+vY
0
) = 0 se rduit alors
uv
n

i=1
F
X
i
(X
0
)Y
0
i
+v
2
F(Y
0
) = 0.
En gnral, toutes les drives partielles
F
X
i
ne sannulent pas ncessarement. Dans ce cas, pour tout
Y
0
on peut trouver un point dintersection de Q
F
avec notre droite :
v = u
n

i=1
F
X
i
(X
0
)Y
0
i
/F(Y
0
). (13.9)
(Si, par hasard, F(Y
0
) = 0 alors Y
0
se trouve dj sur Q
F
). De nouveau, ce point nest pas unique en
gnral. Les cas limits peut tre bien compris en termes gomtriques : si toutes les drives partielles
sannulent en X
0
alors notre conique est un cne de sommet X
0
, et le problme se rduit ce de trouver
tous les points rationnels sur la base dun cne, cette base tant une conique de dimension infrieure ; sil
arrive quils tous se trouvent entirement sur Q
F
alors tous ces points rationnels doivent tre considrs
etc.
Cette mthode de la projection stereographique, applique x
2
+ y
2
= 1 et au point (0,-1) donne
exactement (13.6) sil on note t la pente de la droite passant par (0,-1) et (x, y) : y + 1 = tx.
127
Concernant lquation
F(X
0
, X
1
, . . . , X
n
) = 0 (13.10)
(avec F comme dans (13.8)) sur les nombres rationnels, on peut commencer par la diagonalisation de A
F
avec une substitution linaire nondgnre X = CY o C M
n+1
(Q). La matrice C peut tre trove
eectivement par le mthode classique de lextraction successive des carres.
Pour les quations homognes comme (13.10) les problmes de trouver toutes les solutions dans Q
et dans Z sont essentiellement quivalents. Lorsque on peut trouver toutes les solutions partir dune
seule, la question-cl est donc de dcider, sil existe une solution. La rponse est donne par le rsuiltat
suivante.
13.6 Le principe de MinkowskiHasse pour les formes quadratiques
Dfinition 13.6.1 Une solution (x
1
, x
2
, . . . , x
n
) Z
n
dune equation F(x
1
, x
2
, . . . , x
n
) = 0 en nombres
entiers est dit primitive modulo N, si pgcd(N, x
1
, x
2
, . . . , x
n
) = 1 .
Thorme 13.6.2 Une forme quadratique F(x
1
, x
2
, . . . , x
n
) de rang n de coecients entiers reprsente
un zro sur les nombres rationnels si et seulement si pour tout N, la congruence F(x
1
, . . . , x
n
) 0 ( mod
N) admet une solution primitive, et de plus F reprsents un zro sur les nombres rels, cest dire, elle
est indnie.
Pour une preuve gnrale, voire [BS85]. Bien-sr, la ncessit de cette condition est clair.
On donne ici une jolie dmonstration de la susance de cette condition dans le cas n = 3 de
Legendre ([BS85]). Soit
F = a
1
x
2
1
+a
2
x
2
2
+a
3
x
2
3
(a
1
a
2
a
3
,= 0).
Puisque F est indnie, on peut supposer que les deux premiers coecients soient positifs, tandis
que le troisime soit ngatif. De plus, on peut les supposer sans facteurs carrs et premiers entre eux :
on obtient ceci par des changements de variables et en divisant la forme par le pgcd de ses coecients.
On va noter une forme avec telles proprits par
ax
2
+by
2
cz
2
. (13.11)
Considrons un nombre premier p divisant c. Puisque F 0(mod p) admet une solution primitive, on
peut trouver une solution non-primitive (x
0
, y
0
) de la congruence ax
2
+by
2
0(mod p). Alors
ax
2
+by
2
ay
2
0
(xy
0
+yx
0
)(xy
0
yx
0
) (mod p).
128
Dans le cas p = 2 on a bien sr
ax
2
+by
2
cz
2
(ax +by cz)
2
(mod 2).
Donc pour tout p[2abc on peut trouver des formes linaires L
(p)
, M
(p)
en x, y, z de coecients entiers
telles que F L
(p)
M
(p)
( mod p). En utilisant le thorme chinois , on trouve L (resp. M) de coecients
entiers congrue L
(p)
(resp. M
(p)
) (mod p) pour tout p[abc. On obtient donc
ax
2
+by
2
cz
2
L(x, y, z)M(x, y, z) (mod abc). (13.12)
Considrons maintenant les points entiers dans la bote suivante :
0 x <

bc, 0 y <

ac, 0 z <

ab. (13.13)
Si lon exclut le cas trivial a = b = c = 1, on constate que les racines carres dans les ingalits (13.13) ne
sont pas toutes de nombres entiers, donc le nombre total des points entiers sera strictement plus grand
que le volume de cette bote, i.e. abc. Ceci implique quil existe deux points dirents pour lesquels L
prends la mme valeur mod abc. En considrant leurs dirence, on trouve
L(x
0
, y
0
, z
0
) 0 (mod abc) (13.14)
pour un point [x
0
[

bc, [y
0
[

ac, [z
0
[

ab. Donc
ax
2
0
+by
2
0
cz
2
0
0 (mod abc) (13.15)
et
abc < ax
2
0
+by
2
0
cz
2
0
< 2abc.
Il vient que soit
ax
2
0
+by
2
0
cz
2
0
= 0 (13.16)
soit
ax
2
0
+by
2
0
cz
2
0
= abc. (13.17)
Dans le premier cas le thorme est dmontr. Dans le second cas on obtient explicitement la solution
suivante :
a(x
0
z
0
+by
0
)
2
+b(y
0
z
0
ax
0
)
2
c(z
2
0
+ab)
2
= 0.
Lnonc originale de Legendre a t que ax
2
+ by
2
cz
2
= 0 est rsoluble si et seulement si toutes
les classes rsiduelles bc(mod a), ac(mod b), ab(mod c) sont des carrs. Exemple. x
2
+ y
2
3z
2
ne reprsente pas de zro sur Z, mais 2x
2
+ 3y
2
5z
2
le reprsente, et
_
6
5
_
=
_
15
2
_
=
_
10
3
_
= 1.
On peut dmontrer quune forme quadratique indenite de rang 5 reprsente toujours un zro sur
les rationnels, voire [BS85].
129
Cours N

14. Mercredi le 12 janvier 2005


13.7 Espace projectif P
n
, varits algbriques
Soit K un corps et n 1 un entier. On considre lespace projectif de dimension n sur K et on note
P
n
K
ou simplement P
n
lensemble des classes dquivalence de (n + 1)-uplets
(x
0
, , x
n
) K
n+1
(0, , 0),
sous la relation (x
0
, , x
n
) (x
0
, , x
n
) pour tout K

. Une classe dquivalence x, note


(x
0
: : x
n
) est dit un point de P
n
.
Soit K[T] = K[T
0
, , T
n
]. On interprte les lments de K[T] comme des fonctions rgulires de
lespace ane A
n+1
, et on interprte les lments de
K
_
T
1
T
0
,
T
2
T
0
, ,
T
n
T
0
_
,
comme des fonctions rationnelles de P
n
.
Remarque. Soit x = (x
0
: : x
n
) P
n
, et soit F = F
0
+ F
1
+ +F
m
K[T
0
, , T
n
] un polynme
avec des composantes homognes F
i
de degr i, alors
F(x
0
, , x
n
) = F
0
(x
0
, , x
n
) +F
1
(x
0
, , x
n
) + +
m
F
m
(x
0
, , x
n
).
Il vient que pour un polynme homogne F, la condition F(x) = 0 ne dpend que de la classe x = (x
0
:
: x
n
) P
n
.
Dfinition 13.7.3 Une partie X P
n
est dit une varit algbrique projective irrductible si
X = V (P) = x P
n
[ F P, F(x) = 0
o P est un idal premier homogne de K[T
0
, , T
n
], cest dire, un idal premier engendr par des
polynmes homognes.
Il y a une grande dirence entre les fonctions rationnelles des coordonnes anes et des coordonnes
projectives : une fraction
f(T
0
, , T
n
) =
R(T
0
, , T
n
)
S(T
0
, , T
n
)
ne dnie pas une fonction dun point x = (x
0
: : x
n
) P
n
, mme si S(x
0
, , x
n
) ,= 0, car sa valeur
dpend de choix des coordonnes homognes de x.
Cependant, pour les polynmes homognes R et S de mme degr, tels que S(x
0
, , x
n
) ,= 0, la
valeur
f(x
0
, , x
n
) =
R(x
0
, , x
n
)
S(x
0
, , x
n
)
est bien dnie.
130
Dfinition 13.7.4 Soit X une varit projective. Lidal de X est lensemble
I(X) = F F[T
0
, , T
n
][F(x) = 0, x X.
Pour dnir le corps des fonctions dune varit projective irrductible K(X) on considre dabord le
sous-anneau suivant de K (T
0
, T
1
, , T
n
).
O
X
=
_
f(T
0
, , T
n
) =
F(T
0
, , T
n
)
G(T
0
, , T
n
)

F, G F[T
0
, , T
n
] sont des polynmes homognes de mme degr, tels que G , I(X)
_
.
Alors lidal
M
X
=
_
f(T
0
, , T
n
) =
F(T
0
, , T
n
)
G(T
0
, , T
n
)

F, G F[T
0
, , T
n
], F I(X), G , I(X)
_
est un seul idal maximal de lanneau O
X
, et lanneau quotient O
X
/M
X
est un corps, dit le corps des
fractions sur X.
Dfinition 13.7.5
(a) Soit U une partie dune varit projective X. On dit que U est un voisinage ouvert contenant un
point x X, sil existe un polynme homogne G(T
0
, , T
n
) K[T
0
, , T
n
] tel que
U = X x = (X
0
, , X
n
) P
n
[ G(X
0
, , X
n
) ,= 0.
(b) Une application f : U K est dite une fonction rgulire au point x sils existe F, G K[T
0
, , T
n
]
des polynmes homognes de mme degr tels que G(x) ,= 0 et f = F/G dans un voisinage de x; f est
rgulire sur U si elle est rgulire en tout x de U.
Exemple. On considre la varite projective X P
2
sur K = C, donn par lquation homogne
irrductible u
3
= v
3
w
3
. Alors la fonction rationnelle
u
v w
=
u(v
2
+vw +w
2
)
(v w)(v
2
+vw +w
2
)
=
v
2
+vw +w
2
u
2
est rgulire si v ,= w, mme si u = 0, par exemple en (0 : 1 : j) et en (0 : 1 : j
2
).
Remarque 13.7.6 Si K est algbriquement clos, et X une varit projective irrductible, alors on peut
dmontrer que toute fonction rationnelle est rgilre partout sur X, doit tre constante.
131
14 Courbes planes.
14.1 Courbes planes anes.
Une courbe algbrique plane sur un corps K est forme par les points
C :
_
(x, y) K
2
[ f(x, y) = 0
_
pour un polynme non-constant f(x, y) dans lanneaux factoriel K[x, y], donc f = f
k1
1
. . .f
kr
r
, o f
i
sont
irrductibles non-proportionnels. Ceci implique que
C =
r
_
i=1
C
i
,
o C
i
: f
i
= 0 est une courbe dite irrductible.
Remarque 14.1.1
(a) Si K est algbriquement clos, alors C = C(K) est innie
(en eet, il sut dcrire f(x, y) sous la forme a
m
(y)x
m
+ +a
0
).
(b) Si K est algbriquement clos, alors un polynme g de K[x, y] sannule sur toute la courbe irr-
ductible C
i
(K) si et seulement si f
i
[g
(en eet, le thorme 13.2.1 (des zros de Hilbert) implique que f
i
[g
r
pour un r 1, donc f
i
[g par la
factorialit de lanneau K[x, y]).
Exercice. Trouver le cardinal de lensemble ni P
n
Fq
.
14.2 Courbes planes projectives.
Rappelons quun point P du plan projectif P
2
= P
2
K
est donne comme la classe dquivalence, note
(X : Y : Z), dun triplet non-nul (X, Y, Z) K
3
(0, 0, 0), de telle faon que (X, Y, Z) (X

, Y

, Z

) =
(X, Y, Z) ( K

).
On a linclusion
A
2
P
2
, (x, y) (x, y, 1),
qui donne tous les points de P
2
avec Z ,= 0.
On a les relations suivantes entre les coordonnes anes (x, y) est les coordonnes projrctives (X :
Y : Z) :
X = xZ, Y = yZ, x =
X
Z
, y =
Y
Z
132
Cartes anes
On a les trois parties suivantes de P
2
:
A
2
1
, A
2
2
, A
2
3
P
2
, telles que A
2
1
: X ,= 0, A
2
2
: Y ,= 0, A
2
3
: Z ,= 0.
isomorphes a K
2
, et on a les coordonnes
sur A
2
1
: X = xZ, Y = yZ, x =
X
Z
, y =
Y
Z
sur A
2
2
: X = x

Y, Z = y

Y, x

=
X
Y
, y

=
Z
Y
sur A
2
3
: Y = x

X, Z = y

X, x

=
Y
X
, y

=
Z
X
Exercice. Rcrire lquation de la courbe de Fermat X
n
+ Y
n
= Z
n
en coordonnes (x

, y

) et en
(x

, y

).
14.3 Points singuliers.
Soit K un corps. Rappelons quune courbe projective plane C sur K est dnit par une quation de
type F(X : Y : Z) = 0, o F(X : Y : Z) K[X, Y, Z] est une forme homogne des variables projectives
X, Y , Z.
Lquation de la tangente dans les coordonnes anes a la forme
f

x
(P)(x ) +f

y
(P)(y ) = 0.
Par la construction,
f(x, y) = F(x, y, 1), o F(X, Y, Z) = 0 lquation homogne de la courbe.
Ceci implique : f

x
= F

x
, f

y
= F

y
, et selon le thorme connu de Euler (sur les fonctions homognes) on
a
XF

X
+Y F

Y
+ZF

Z
= nF o n est le degr de F
Lorsque P = ( : : 1) se trouve sur la courbe alors
F

X
(P) +F

Y
(P) +F

Z
(P) = nF,
donc lquation de la tangente se transforme vers
xF

X
(P) +yF

Y
(P) +F

Z
(P) = 0 XF

X
+Y F

Y
+ZF

Z
= 0.
(cest la forme projective de la droite tangente).
Dfinition 14.3.1
(a) Un point singulier sur une courbe projective plane C sur K est toute solution du systme
F = F

X
= F

Y
= F

Z
= 0
dans une extension de K.
(b) On dit quune courbe projective plane C sur K est lisse si le systme
F = F

X
= F

Y
= F

Z
= 0
na pas de solutions nontriviales dans toute extension de K.
133
Exemple.
(a) Soit Q(X, Y, Z) une forme quadratique de matrice A
Q
, sur un corps K de caractristique Car(K) ,=
0. Montrer que la conique Q(X, Y, Z) = 0 est non-singulire si et seulement si A
Q
est inversible.
(b) Soit Car(K) ,= 2, 3, et soit C donne par lquation homogne correspondante
Y
2
Z = X
3
+aXZ
2
+bZ
3
, O = (0 : 1 : 0).
On vrie que cette courbe est lisse si et seulement si le polynme cubique x
3
+ax +b na pas de racines
multiplies (directement par la dniton des points singuliers comme des solutions de lquation F = F

X
=
F

Y
= F

Z
= 0 dans le cas gnral F(X, Y, Z) = Y
2
+a
1
XY Z +a
3
Y Z
2
X
3
a
2
X
2
Z a
4
XZ
2
a
6
Z
3
).
(c) Soit K = F
2
, et soit C une courbe sur K donne par lquation ane
y
2
+y = x
3
+ax +b, a, b F
2
Montrer que cette courbe est toujours lisse (on na plus besoin dexclure ici le cas des racines multiples).
(d) Soit K = F
3
, et soit C une courbe sur K donne par lquation ane :
y
2
= x
3
+ax
2
+bx +c, a, b, c F
3
Montrer que cette courbe est lisse si et seulement si le polynme cubique droite na pas de racines
multiples.
14.4 Equations cubiques
Le problme de lexistence dune solution.
Pour les formes cubiques F(X, Y, Z) en trois variables de coecients entiers, on ne connait pas
dalgorithme qui decide en gnrale si lquation F = 0 possde une solution non-triviale en nombres
entiers. Grandes classes de telles equations ont ts tudies de point de vue thorique et numerique ;
par exemple Selmer E.S. en 19511954 a tudi en detail les quations de type
aX
3
+bY
3
+cZ
3
= 0.
Il arrive que mme pour des quations simple comme 3X
3
+ 4Y
3
+ 5Z
3
= 0 le principe de Minkowski
Hasse nest pas valable : on peut montrer que cette quation na pas de solutions en nombres entiers,
quoiquil existe des solutions relles et des solution primitives modulo tout N > 1.
Addition de points sur une cubique plane
Toute forme cubique non-nulle F(X,Y,Z) coecients entiers denie une courbe cubique C dans
lespace projectif P
2
(sur Q et sur C) :
C = (X : Y : Z) [ F(X, Y, Z) = 0. (14.1)
Si C est non-singulire et si F = 0 possde au moins une solution rationnelle, alors on peut trouver un
changement de variables inversible coecients rationnelles qui rduit F la forme normale de Weierstrass
Y
2
Z X
3
aXZ
2
bZ
3
(a, b Q). (14.2)
134
On peut aussi supposer que la solution rationnelle de depart devient la solution vidente (0 : 1 : 0)
de lquation ainsi obtenue (14.2). La condition de non-singularit de (14.2) est quivalente la non-
annulation du discriminant 4a
3
+27b
2
. Une courbe cubique plane non-singulire est dite elliptique, selle
possde un point rationnel. En utilisant les coordonnes anes x = X/Z, y = Y/Z on rduit F = 0 la
forme suivante :
y
2
= x
3
+ax +b, (14.3)
o le polynme cubique dans la partie droite na pas de racines multiples. Sous cette forme ane, la
solution rationnelle ci-dessus devient le point linnie O. Il existe une jolie description gomtrique de la
loi de composition sur lensemble des points rationnels de C qui devient un groupe ablien avec le point
linnie O comme llment neutre. Cette loi est donne par la "mthode de scantes et tangentes" de
Poincar. Notamment, pour une pair de points P, Q C(Q), on construit dabord une droite passant par
P, Q. Une telle droite intersecte aussi C en un troisime point bien dnie P

. Ensuite, on construit de
nouveau une droite passant par P

et O. Enn, son troisme point d intersection avec C est dit la somme


P +Q. Si P = Q, la premire droite construire doit bien-sr tre tangente C en P.
Un calcul simple en coordonnes anes P = (x
1
, y
1
), Q = (x
2
, y
2
) montre que P +Q = (x
3
, y
3
) o
x
3
= x
1
x
2
+
_
y
1
y
2
x
1
x
2
_
2
,
y
3
=
y
1
y
2
x
1
x
2
(x
1
x
3
) y
1
. (14.4)
Dans le cas limite P = Q on remarque que 2y

x
y = 3x
2
+a, et on obtient
x
3
= 2x
1
+
_
3x
2
1
+a
2y
1
_
2
, y
3
=
3x
2
1
+a
2y
1
(x
1
x
3
) y
1
. (14.5)
Si x
1
= x
2
et y
1
= y
2
alors P + Q = O, est le point linnie, qui est llment neutre pour la loi de
groupe.
Cette mthode nous permet de construir de nouveaux points rationnels partir des points connues.
Tels points forment un sous-groupe engendr par des points de dpart, par exemple, mP, m Z, partir
juste un seul point P.
135
Pour les courbes cubiques singulires cette construction ne marche pas. Par exemple, on considre la
courbe
C : y
2
= x
2
+x
3
, (14.6)
Fig. 8
qui est reprsente par Fig. 8. Toute droite passant par (0, 0) na quun seul autre point dintersection
avec C : sur y = tx il est donn par lquation x
2
(t
2
x 1) = 0. A part de la solution triviale x = 0,
on obtient x = t
2
1 et y = t(t
2
1) donc nous avons trouv tous les points sur C laide dune
parametrisation rationnelle. Dans le cas non-singulier il nexiste pas de telle parametrisation.
Une courbe admettant une parametrisation rationnelle est dite une courbe rationnelle. Rapellons quun
autre exemple dune courbe rationnelle est donn par une conique plane et sa projection strographique.
La structure de groupe des points rationnels sur une cubique plane
Une proprit trs remarquable de la "mthode de scantes et tangentes" de Poincar est que cette
mthode nous permet de construir tous les points rationnels partir dun nombre ni des points ration-
nels. De point de vue de la thorie des groupes, cela signie, que le rsultat suivant a lieu :
Thorme 14.4.1 (Mordell, 1922) Le groupe ablien C(Q) est de gnration nie.
On obtient alors du thorme de structure des groupes abliens que
C(Q)

= Z
r
o est le sous-groupe ni form par les points de torsion, et Z
r
est le produit de r copies du groupe
cyclique inni. Le nombre r est dit le rang de C sur Q. Il est connu que le groupe de torsion peut tre
dtermine explicitement. Par exemple, Nagell et Lutz (Lutz E. (1937)) ont dmontr que les points de
torsion dune courbe y
2
= x
3
+ ax + b avec a et b des nombres entiers, ont les coordonnes entiers x, y.
De plus, lordonne y dun point de torsion soit nulle soit divise le nombre entier D = 4a
3
27b
2
.
B.Mazur a dmontr en 1976 que le sous-groupe de torsion sur Q est isomorphe a lun des quinze
groupes suivants :
Z/mZ (m 10, m = 12), Z/2Z Z/2nZ (n 4), (14.7)
et toutes ces possibilites se ralisent.
136
Une question ouverte importante est si r peut tre inniement grand. En 1982 J.-L. Mestre a construit
des exemples de courbes de rang au moins 14. Il a donn aussi un exemple relativement simple dune
courbe de rang 9 : y
2
+ 9767y = x
3
+ 3576x
2
+ 425x 2412.
En 2000 Martin Mcmillen ont trouv une courbe elliptique de rang 24 :
y
2
+xy +y = x
3
120039822036992245303534619191166796374x
+504224992484910670010801799168082726759443756222911415116
(voir http ://www.math.hr/duje/tors/rankhist.html pour dautres exemples).
Exemples.
1. Soit C donne par lquation
y
2
+y = x
3
x.
dont les solutions en nombre entiers donnent la liste des cas o le produit de deux entiers consecutifs
est gale au produit de trois entiers consecutifs. Alors le groupe est trivial et C(Q) est cyclique
de gnrateur P = (0, 0).
Fig. 9
2. Les points mP (numrots par m) sont montrs dans le Fig. 9.
3. Soit C donne par lquation
y
2
+y = x
3
7x + 6.
Alors C(Q)

= Z
3
, et les points (1,0), (6,0), (0,2) forment une base de ce groupe.
4. Considrons la courbe y
2
= x
3
+px, p = 877. Un gnrateur modulo torsion du groupe des points
rationnels de cette courbe a labscisse x
x =
375494528127162193105504069942092792346201
6215987776871505425463220780697238044100
.
Cet exemple montre que les mthodes naives de recherche des ponts rationnels deviennent rapide-
ment inecace.
137
Congruences cubiques modulo un nombre premier p
Soit p un nombre premier et soit F(X
0
, X
1
, X
2
) une forme cubique coecients entiers. La rduction
de F modulo p, donne une forme cubique sur le corps ni F
p
. Cette reduction est dit non-singulre selle
na pas de zros communs avec ces drives partielles dans toute extension de F
p
. On peut montrer que la
plupart des rsultats de la gomtrie algbrique complexe restent valable sur les corps de caractristique
positive. Cependant, les formes normales dune courbe elliptique sont lgrement plus compliques. En
utilisant un changement de variables inversible des coordonnes projectives, on peut toujours rduire
lquation F = 0 en coordonnes anes pour p ,= 2, 3 la forme lun des types suivantes(Koblitz N.
(1987)) :
y
2
= x
3
+ax +b (4a
3
+ 27b
2
,= 0), a, b F
p
. (14.8)
(on interdit le cas des racines multiples).
La courbe projective ainsi dni possde toujours le point O = (0 : 1 : 0), rationnel sur F
p
(rappelons
que lensemble C(F
p
) des points rationnels sur F
p
dune courbe projective C : F(X, Y, Z) = 0 est le
sous-ensemble de P
2
Fp
des points
_
(X : Y : Z) P
2
Fp
[ F(X, Y, Z) = 0
_
Combien de points sur F
p
, cest dire, combien de solutions projectives de la congruence F 0 mod p,
peut-on avoir ? Bien evidemment, le nombre total est au plus 2p + 1 (on compt O), puisque sous la
forme ane tout point ni x donne au plus deux valeurs de y. Dun autre cot, seulement une moiti des
classes rsiduelles sont les carrs (pour p impaire). Donc on peut esprer que x
3
+ ax + b est un carr
pour environ une moiti des x.
Plus prcisemment, soit (x) =
_
x
p
_
le symbole de Legendre (8.1). Alors on a par la dnition, que
le nombre de solutions de y
2
= u dans F
p
est 1 +(u). Ceci implique,
Card C(F
p
) = 1 +

xFp
(1 +(x
3
+ax +b))
= p + 1 +

xFp
_
x
3
+ax + b
p
_
.
N. Koblitz (1987) compare la dernire somme avec un rsultat sur les marches alatoires sur une droite.
Aprs p marches on peut esprer dtre distance environ

p de zro. En fait, on peut dmontrer le
thorme suivant remarquable :
Thorme 14.4.2 (H.Hasse (1937)) Soit N
p
= Card C(F
p
). Alors
[N
p
(p + 1)[ 2

p.
Un preuve lmentaire a t donn par Yu.I.Manin (1956).
Remarque. Les courbes elliptiques sur les corps nis trouvent beaucoup dapplications. En particulier,
les cas o un tel groupe est cyclique de grand taille amnent au cryptosystmes ECDLP ("Elliptic curve
discrete logarithm problem"), voir [Kob87].
138
Exercices
14.1 On considre la courbe ane sur Q donne par lquation
C : 2x
2
+ 3y
2
= 5.
(a) Montrer quil existe un point rationnel (x0, y0) C(Q).
(b) Soit t Q. Trouver tous les points dintersection de la droite
y y0 = t(x x0)
avec la courbe C(Q).
(c) En dduire une parametrisation rationnelle de la courbe C.
(d) Trouver tous les points rationnels de la courbe projective, donne par lquation homogne 2X
2
+3Y
2

5Z
2
= 0.
14.2 On considre la courbe ane sur F49, donne par lquation
C : 2x
2
+ 3y
2
= 5.
(a) Montrer quil existe un point rationnel (x0, y0) C(F49).
(b) Soit t F49. Trouver tous les points dintersection de la droite
y y0 = t(x x0)
avec la courbe C(F49).
(c) En dduire une parametrisation rationnelle sur F49 de la courbe C.
(d) Trouver tous les points rationnels sur F49 de la courbe projective donne par lquation homogne
2X
2
+ 3Y
2
5Z
2
= 0.
14.3 On considre la courbe cubique plane E P
2
sur Q, donne sous la forme ane suivante y
2
= x(x+9)(x
16).
(a) Trouver lequation de E en coordonnes projectives.
(b) Montrer que la courbe E est lisse.
(c) Montrer que lensemble
G = {(, ), (0, 0), (0, 9), (0, 16), (4, 20), (4, 20), (36, 180), (36, 180)} P
2
est un sous-groupe de E(Q).
(d) Le groupe G est-il cyclique ?
14.4 On considre une courbe cubique plane F P
2
sur F4, donne sous la forme ane suivante y
2
+y = x
3
+x+1.
(a) Montrer que la courbe F est lisse.
(b) Trouver lordre du groupe H = F(F4).
(c) Le groupe H est-il cyclique ?
139
14.5 Points des courbes algbriques sur les corps nis (exemples)
COURBE de FERMAT sur GF(4)
x
3
+y
3
+z
3
= 0
> restart ;
> with(linalg) :
Warning, the protected names norm and trace have been redefined and
unprotected
> g:=x^2+x+1 mod 2;
g := x
2
+x + 1
> alias(alpha = RootOf(g)) ;

> f:=(x,y,z)->x^3+y^3+z^3;
f := (x, y, z) x
3
+y
3
+z
3
> h:=(i,j)->x[i-1,j-1]: X:=Matrix(3,2,h);
X :=
_
_
x
0, 0
x
0, 1
x
1, 0
x
1, 1
x
2, 0
x
2, 1
_
_
> u:=(i,j)-> alpha^(i-1):U:=Matrix(2,1,u);
U :=
_
1

_
> with(LinearAlgebra):
> Y:= Multiply(X, U);
Y :=
_
_
x
0, 0
+x
0, 1

x
1, 0
+x
1, 1

x
2, 0
+x
2, 1

_
_
> v[1]:=f(0, 1, x[2]);
v
1
:= 1 +x
2
3
> v[2]:=f(1, x[1], x[2]);
v
2
:= 1 +x
1
3
+x
2
3
> vv[1]:=subs(x[0]=Y[1,1],x[1]=Y[2,1], x[2]=Y[3,1],v[1]) ;
vv
1
:= 1 + (x
2, 0
+x
2, 1
)
3
> vv[2]:= subs(x[0]=Y[1,1],x[1]=Y[2,1], x[2]=Y[3,1],v[2]) ;
vv
2
:= 1 + (x
1, 0
+x
1, 1
)
3
+ (x
2, 0
+x
2, 1
)
3
140
> c:=0;
> if f(0,0,1) mod 2 =0 then c:=c+1;
> print (c, [0, 0, 1]) fi;
> for i from 0 to 1 do
> for j from 0 to 1 do
> if Eval(vv[1],{x[2,0]=i,x[2,1]=j}) mod 2 =0 then c:=c+1;
> print (c,[0, 1, i+j*alpha]) fi ;od ;od;
> for i2 from 0 to 1 do
> for j2 from 0 to 1 do
> for i1 from 0 to 1 do
> for j1 from 0 to 1 do
> if Eval(vv[2],{x[2,0]=i2,x[2,1]=j2, x[1,0]=i1,x[1,1]=j1}) mod 2
> =0 then c:=c+1;
> print (c,[1, (i1+j1*alpha)mod 2,
> (i2+j2*alpha)mod 2]) fi od; od ;od ;od;
c := 0
1, [0, 1, ]
2, [0, 1, 1]
3, [0, 1, 1 +]
4, [1, , 0]
5, [1, 1, 0]
6, [1, 1 +, 0]
7, [1, 0, ]
8, [1, 0, 1]
9, [1, 0, 1 +]
COURBE de FERMAT sur GF(16)
x
3
+y
3
+z
3
= 0
> restart ;
> with(linalg) :
Warning, the protected names norm and trace have been redefined and
unprotected
> g:=x^4+x+1 mod 2;
g := x
4
+x + 1
> alias(alpha = RootOf(g)) ;

> f:=(x,y,z)->x^3+y^3+z^3;
f := (x, y, z) x
3
+y
3
+z
3
> h:=(i,j)->x[i-1,j-1]: X:=Matrix(3,4,h);
X :=
_
_
x
0, 0
x
0, 1
x
0, 2
x
0, 3
x
1, 0
x
1, 1
x
1, 2
x
1, 3
x
2, 0
x
2, 1
x
2, 2
x
2, 3
_
_
> u:=(i,j)-> alpha^(i-1):U:=Matrix(4,1,u);
141
U :=
_

_
1

3
_

_
> with(LinearAlgebra):
> Y:= Multiply(X, U);
Warning, the assigned name GramSchmidt now has a global binding
Y :=
_
_
x
0, 0
+x
0, 1
+x
0, 2

2
+x
0, 3

3
x
1, 0
+x
1, 1
+x
1, 2

2
+x
1, 3

3
x
2, 0
+x
2, 1
+x
2, 2

2
+x
2, 3

3
_
_
> v[1]:=f(0, 1, x[2]);
v
1
:= 1 +x
2
3
> v[2]:=f(1, x[1], x[2]);
v
2
:= 1 +x
1
3
+x
2
3
> vv[1]:=subs(x[0]=Y[1,1],x[1]=Y[2,1], x[2]=Y[3,1],v[1]) ;
vv
1
:= 1 + (x
2, 0
+x
2, 1
+x
2, 2

2
+x
2, 3

3
)
3
> vv[2]:= subs(x[0]=Y[1,1],x[1]=Y[2,1], x[2]=Y[3,1],v[2]) ;
vv
2
:= 1 + (x
1, 0
+x
1, 1
+x
1, 2

2
+x
1, 3

3
)
3
+ (x
2, 0
+x
2, 1
+x
2, 2

2
+x
2, 3

3
)
3
> c:=0;
> if f(0,0,1) mod 2 =0 then c:=c+1;
> print (c, [0, 0, 1]) fi;
> for i from 0 to 1 do
> for j from 0 to 1 do
> for k from 0 to 1 do
> for l from 0 to 1 do
> if Eval(vv[1],{x[2,0]=i,x[2,1]=j,x[2,2]=k,x[2,3]=l}) mod 2 =0
> then c:=c+1;
> print (c,[0, 1,
> i+j*alpha+k*alpha^2+l*alpha^3]) fi; od; od ;od ;od;
> for i2 from 0 to 1 do
> for j2 from 0 to 1 do
> for k2 from 0 to 1 do
> for l2 from 0 to 1 do
> for i1 from 0 to 1 do
> for j1 from 0 to 1 do
> for k1 from 0 to 1 do
> for l1 from 0 to 1 do
> if Eval(vv[2],{x[2,0]=i2,x[2,1]=j2,x[2,2]=k2,x[2,3]=l2,
> x[1,0]=i1,x[1,1]=j1,x[1,2]=k1,x[1,3]=l1}) mod 2 =0 then c:=c+1;
> print (c,[1,
> i1+j1*alpha+k1*alpha^2+l1*alpha^3, i2+j2*alpha+k2*alpha^2+l2*alpha^3])
> fi; od; od ;od ;od;od;od;od; od;
c := 0
1, [0, 1, +
2
]
2, [0, 1, 1]
142
3, [0, 1, 1 + +
2
]
4, [1, +
2
, 0]
5, [1, 1, 0]
6, [1, +
2
+ 1, 0]
7, [1, 0,
2
+]
8, [1, 0, 1]
9, [1, 0, + 1 +
2
]
COURBE de KLEIN sur GF(16)
x
3
y +y
3
z +z
3
x = 0
> fk:=(x,y,z)->x^3*y+y^3*z+z^3*x;
fk := (x, y, z) x
3
y +y
3
z +z
3
x
> vk[1]:=fk(0, 1, x[2]);
vk
1
:= x
2
> vk[2]:=fk(1, x[1], x[2]);
vk
2
:= x
1
+x
1
3
x
2
+x
2
3
> vvk[1]:=subs(x[0]=Y[1,1],x[1]=Y[2,1], x[2]=Y[3,1],vk[1]) ;
vvk
1
:= x
2, 0
+x
2, 1
+x
2, 2

2
+x
2, 3

3
> vvk[2]:= subs(x[0]=Y[1,1],x[1]=Y[2,1], x[2]=Y[3,1],vk[2]) ;
vvk
2
:= x
1, 0
+x
1, 1
+x
1, 2

2
+x
1, 3

3
+ (x
1, 0
+x
1, 1
+x
1, 2

2
+x
1, 3

3
)
3
(x
2, 0
+x
2, 1
+x
2, 2

2
+x
2, 3

3
)
+ (x
2, 0
+x
2, 1
+x
2, 2

2
+x
2, 3

3
)
3
143
> c:=0;
> if fk(0,0,1) mod 2 =0 then c:=c+1;
> print (c, [0, 0, 1]) fi;
> for i from 0 to 1 do
> for j from 0 to 1 do
> for k from 0 to 1 do
> for l from 0 to 1 do
> if Eval(vvk[1],{x[2,0]=i,x[2,1]=j,x[2,2]=k,x[2,3]=l}) mod 2 =0
> then c:=c+1;
> print (c,[0, 1,
> i+j*alpha+k*alpha^2+l*alpha^3]) fi; od; od ;od ;od;
> for i2 from 0 to 1 do
> for j2 from 0 to 1 do
> for k2 from 0 to 1 do
> for l2 from 0 to 1 do
> for i1 from 0 to 1 do
> for j1 from 0 to 1 do
> for k1 from 0 to 1 do
> for l1 from 0 to 1 do
> if Eval(vvk[2],{x[2,0]=i2,x[2,1]=j2,x[2,2]=k2,x[2,3]=l2,
> x[1,0]=i1,x[1,1]=j1,x[1,2]=k1,x[1,3]=l1}) mod 2 =0 then c:=c+1;
> print (c,[1,
> i1+j1*alpha+k1*alpha^2+l1*alpha^3, i2+j2*alpha+k2*alpha^2+l2*alpha^3])
> fi; od; od ;od ;od;od;od;od; od;
c := 0
c := 1
1, [0, 0, 1]
2, [0, 1, 0]
3, [1, 0, 0]
4, [1, 1 +
2
,
3
]
5, [1, ,
3
+
2
]
6, [1, + 1, +
3
]
7, [1,
3
, +
2
]
8, [1, 1 +
2
+, +
2
]
9, [1, 1 + +
2
+
3
, +
2
]
10, [1, +
2
,
3
+ +
2
]
11, [1,
2
+,
3
+ 1]
12, [1, 1 + +
2
,
3
+ 1 +
2
]
13, [1, +
2
+ 1, 1 +
3
+ ]
14, [1,
3
+
2
, +
2
+ 1]
15, [1, +
3
, +
2
+ 1]
16, [1, +
2
, +
2
+ 1]
17, [1,
2
, 1 + +
2
+
3
]
144
COURBE de KLEIN sur GF(8)
x
3
y +y
3
z +z
3
x = 0
> restart ;
> with(linalg) :
Warning, the protected names norm and trace have been redefined and
unprotected
> g:=x^3+x+1 mod 2;
g := x
3
+x + 1
> alias(alpha = RootOf(g)) ;

> fk:=(x,y,z)->x^3*y+y^3*z+z^3*x;
fk := (x, y, z) x
3
y +y
3
z +z
3
x
> h:=(i,j)->x[i-1,j-1]: X:=Matrix(3,3,h);
X :=
_
_
x
0, 0
x
0, 1
x
0, 2
x
1, 0
x
1, 1
x
1, 2
x
2, 0
x
2, 1
x
2, 2
_
_
> u:=(i,j)-> alpha^(i-1):U:=Matrix(3,1,u);
U :=
_
_
1

2
_
_
> with(LinearAlgebra):
> Y:= Multiply(X, U);
Warning, the assigned name GramSchmidt now has a global binding
Y :=
_
_
x
0, 0
+x
0, 1
+ x
0, 2

2
x
1, 0
+x
1, 1
+ x
1, 2

2
x
2, 0
+x
2, 1
+ x
2, 2

2
_
_
> vk[1]:=fk(0, 1, x[2]);
vk
1
:= x
2
> vk[2]:=fk(1, x[1], x[2]);
vk
2
:= x
1
+x
1
3
x
2
+x
2
3
> vvk[1]:=subs(x[0]=Y[1,1],x[1]=Y[2,1], x[2]=Y[3,1],vk[1]) ;
vvk
1
:= x
2, 0
+x
2, 1
+x
2, 2

2
> vvk[2]:= subs(x[0]=Y[1,1],x[1]=Y[2,1], x[2]=Y[3,1],vk[2]) ;
vvk
2
:= x
1, 0
+x
1, 1
+x
1, 2

2
+ (x
1, 0
+x
1, 1
+x
1, 2

2
)
3
(x
2, 0
+x
2, 1
+x
2, 2

2
)
+ (x
2, 0
+x
2, 1
+x
2, 2

2
)
3
145
> c:=0;
> if fk(0,0,1) mod 2 = 0 then c:=c+1;
> print (c, [0, 0, 1]) fi;
> for i from 0 to 1 do
> for j from 0 to 1 do
> for k from 0 to 1 do
> if Eval(vvk[1],{x[2,0]=i,x[2,1]=j,x[2,2]=k}) mod 2 =0 then
> c:=c+1;
> print (c, [0, 1, i+j*alpha+k*alpha^2])
> fi; od; od ;od ;
> for i2 from 0 to 1 do
> for j2 from 0 to 1 do
> for k2 from 0 to 1 do
> for i1 from 0 to 1 do
> for j1 from 0 to 1 do
> for k1 from 0 to 1 do
> if Eval(vvk[2],{x[2,0]=i2,x[2,1]=j2,x[2,2]=k2,
> x[1,0]=i1,x[1,1]=j1,x[1,2]=k1}) mod 2 =0 then c:=c+1;
> print (c, [1, i1+j1*alpha+k1*alpha^2,
> i2+j2*alpha+k2*alpha^2]) fi; od; od ;od ;od;od;od;
c := 0
c := 1
1, [0, 0, 1]
2, [0, 1, 0]
3, [1, 0, 0]
4, [1, ,
2
]
5, [1, 1,
2
]
6, [1, 1 +,
2
]
7, [1,
2
+, ]
8, [1, 1, ]
9, [1, 1 + +
2
, ]
10, [1,
2
,
2
+]
11, [1, 1,
2
+ ]
12, [1, 1 +
2
,
2
+]
13, [1,
2
, 1]
14, [1, , 1]
15, [1,
2
+, 1]
16, [1, , 1 +
2
]
17, [1, 1 +
2
, 1 +
2
]
18, [1, 1 + +
2
, 1 +
2
]
19, [1,
2
+, 1 +]
20, [1, 1 +
2
, 1 +]
21, [1, 1 +, 1 +]
146
22, [1,
2
, 1 + +
2
]
23, [1, 1 +, 1 + +
2
]
24, [1, 1 + +
2
, 1 + +
2
]
COURBE de FERMAT sur GF(8)
> restart ;
> with(linalg) :
Warning, the protected names norm and trace have been redefined and
unprotected
> g:=x^3+x+1 mod 2;
g := x
3
+x + 1
> alias(alpha = RootOf(g)) ;

> f:=(x,y,z)->x^3+y^3+z^3;
f := (x, y, z) x
3
+y
3
+z
3
> h:=(i,j)->x[i-1,j-1]: X:=Matrix(3,3,h);
X :=
_
_
x
0, 0
x
0, 1
x
0, 2
x
1, 0
x
1, 1
x
1, 2
x
2, 0
x
2, 1
x
2, 2
_
_
> u:=(i,j)-> alpha^(i-1):U:=Matrix(3,1,u);
U :=
_
_
1

2
_
_
> with(LinearAlgebra):
> Y:= Multiply(X, U);
Warning, the assigned name GramSchmidt now has a global binding
Y :=
_
_
x
0, 0
+x
0, 1
+ x
0, 2

2
x
1, 0
+x
1, 1
+ x
1, 2

2
x
2, 0
+x
2, 1
+ x
2, 2

2
_
_
> v[1]:=f(0, 1, x[2]);
v
1
:= 1 +x
2
3
> v[2]:=f(1, x[1], x[2]);
v
2
:= 1 +x
1
3
+x
2
3
> vv[1]:=subs(x[0]=Y[1,1],x[1]=Y[2,1], x[2]=Y[3,1],v[1]) ;
vv
1
:= 1 + (x
2, 0
+x
2, 1
+x
2, 2

2
)
3
> vv[2]:= subs(x[0]=Y[1,1],x[1]=Y[2,1], x[2]=Y[3,1],v[2]) ;
vv
2
:= 1 + (x
1, 0
+ x
1, 1
+x
1, 2

2
)
3
+ (x
2, 0
+x
2, 1
+x
2, 2

2
)
3
147
> c:=0;
> for i from 0 to 1 do
> for j from 0 to 1 do
> for k from 0 to 1 do
> if Eval(vv[1],{x[2,0]=i,x[2,1]=j,x[2,2]=k}) mod 2 =0 then
> c:=c+1;
> print (c,[0, 1, i+j*alpha+k*alpha^2])
> fi; od; od ;od ;
> for i from 0 to 1 do
> for j from 0 to 1 do
> for k from 0 to 1 do
> for i1 from 0 to 1 do
> for j1 from 0 to 1 do
> for k1 from 0 to 1 do
> if Eval(vv[2],{x[2,0]=i,x[2,1]=j,x[2,2]=k,
> x[1,0]=i1,x[1,1]=j1,x[1,2]=k1}) mod 2 =0 then c:=c+1;
> print (c,[1, (i1+j1*alpha+k1*alpha^2)
> mod 2 ,(i+j*alpha+k*alpha^2) mod 2]) fi; od; od ;od ;od;od;od;
c := 0
1, [0, 1, 1]
2, [1, 1, 0]
3, [1, 1 +,
2
]
4, [1,
2
+ + 1, ]
5, [1,
2
+ 1, +
2
]
6, [1, 0, 1]
7, [1, +
2
, 1 +
2
]
8, [1,
2
, + 1]
9, [1, , 1 + +
2
]
COURBE de FERMAT sur GF(9)
x
4
+y
4
+z
4
= 0
> restart ;
> with(linalg) :
> g:=x^2+1 mod 3;
Warning, the protected names norm and trace have been redefined and
unprotected
g := x
2
+ 1
> alias(alpha = RootOf(g)) ;

> f:=(x,y,z)->x^4+y^4+z^4;
f := (x, y, z) x
4
+y
4
+z
4
148
> h:=(i,j)->x[i-1,j-1]: X:=Matrix(3,2,h);
X :=
_
_
x
0, 0
x
0, 1
x
1, 0
x
1, 1
x
2, 0
x
2, 1
_
_
> u:=(i,j)-> alpha^(i-1):U:=Matrix(2,1,u);
U :=
_
1

_
> with(LinearAlgebra):
> Y:= Multiply(X, U);
Warning, the assigned name GramSchmidt now has a global binding
Y :=
_
_
x
0, 0
+x
0, 1

x
1, 0
+x
1, 1

x
2, 0
+x
2, 1

_
_
> v[1]:=f(0, 1, x[2]);
v
1
:= 1 +x
2
4
> v[2]:=f(1, x[1], x[2]);
v
2
:= 1 +x
1
4
+x
2
4
> vv[1]:=subs(x[0]=Y[1,1],x[1]=Y[2,1], x[2]=Y[3,1],v[1]) ;
vv
1
:= 1 + (x
2, 0
+x
2, 1
)
4
> vv[2]:= subs(x[0]=Y[1,1],x[1]=Y[2,1], x[2]=Y[3,1],v[2]) ;
vv
2
:= 1 + (x
1, 0
+x
1, 1
)
4
+ (x
2, 0
+x
2, 1
)
4
> c:=0;
> for i from 0 to 2 do
> for j from 0 to 2 do
> if Eval(vv[1],{x[2,0]=i,x[2,1]=j}) mod 3 =0 then c:=c+1;
> print (c,[0, 1, i+j*alpha]) fi; od; od
> ;for i2 from 0 to 2 do
> for j2 from 0 to 2 do
> for i1 from 0 to 2 do
> for j1 from 0 to 2 do
> if Eval(vv[2],{x[2,0]=i2,x[2,1]=j2,x[1,0]=i1,x[1,1]=j1})
> mod 3 =0 then c:=c+1;
> print (c,[1, (i1+j1*alpha)mod 3
> ,(i2+j2*alpha) mod 3]) fi; od; od ;od ;od;
c := 0
1, [0, 1, 1 +]
2, [0, 1, 1 + 2 ]
3, [0, 1, 2 +]
4, [0, 1, 2 + 2 ]
5, [1, 1 +, 0]
6, [1, 1 + 2 , 0]
7, [1, 2 +, 0]
8, [1, 2 + 2 , 0]
149
9, [1, , ]
10, [1, 2 , ]
11, [1, 1, ]
12, [1, 2, ]
13, [1, , 2 ]
14, [1, 2 , 2 ]
15, [1, 1, 2 ]
16, [1, 2, 2 ]
17, [1, , 1]
18, [1, 2 , 1]
19, [1, 1, 1]
20, [1, 2, 1]
21, [1, 0, 1 +]
22, [1, 0, 1 + 2 ]
23, [1, , 2]
24, [1, 2 , 2]
25, [1, 1, 2]
26, [1, 2, 2]
27, [1, 0, 2 +]
28, [1, 0, 2 + 2 ]
150
Quatrime partie
Complments et annexes
A Annexe : Postulat de Bertrand (C.Moser)
Un des problmes de larithmtique est celui de la "rpartition" des nombres premiers, en quelque
sorte de leur essaimage parmi les nombres entiers. On tudie ci-dessous quelques proprits de cette
rpartition.
Proposition A.0.1 Pour tout entier n 2 il existe une squence de longueur n dentiers conscutifs
dont aucun terme nest premier.
On considre la squence f : 1, . . . , n N dnie par f(k) = (n + 2)! + k + 1. Pour tout k 1, . . . , n le
nombre f(k) est divisible par k + 1 avec un quotient suprieur (n + 1)!.
Thorme A.0.2 Pour tout entier n 753 on a
3
5

n
log(n)
<
13 log(4)
30

n
log(n)
< (2n) (n) < log(4)
n
log(n)
7
5

n
log(n)
.
En particulier pour tout n 2 il existe un nombre premier entre n et 2n. La dernire assertion est
connue comme tant le postulat de Bertrand.
La dmonstration sappuie sur une suite de lemmes donnant les proprits de divisibilit des coe-
cients du binme
_
2n
n
_
.
Lemme A.0.3 Pour tout entier n 2 on a lencadrement
4
n
2

n
<
_
2n
n
_
< 4
n
.
La proprit est videment vraie pour n = 2. La seconde ingalit rsulte directement de la formule du
binme car on a raisonnant par rcurrence sur n, on obtient les ingalits :
_
2n + 2
n + 1
_
>
(2n + 2)(2n + 1)
(n + 1)
2
4
n
2

n
=
4
n+1
2

n + 1

(n + 1/2)
_
n(n + 1)
>
4
n+1
2

n + 1
.
qui permettent de conclure.
Lemme A.0.4 Pour tout entier n 2 et pour tout nombre premier p, lexposant de p dans la dcompo-
sition primaire de n! est la somme nie

a=1
_
n
p
a
_
.
Parmi les facteurs naturels de n!, le nombre de ceux qui sont divisibles par p est le quotient de n par
p, ce qui fournit un exposant 1 pour chacun deux. Le nombre de ceux qui sont divisibles par p
2
est le
quotient de n par p
2
, ce qui fournit un exposant 1 supplmentaire pour chacun deux, et ainsi de suite
jusquau plus grand exposant a tel que p
a
= n.
151
Lemme A.0.5 Pour tout n 2, soit p un nombre premier divisant
_
2n
n
_
et strictement suprieur

2n.
Alors p divise exactement
_
2n
n
_
.
On applique le lemme prcdent en remarquant que lexposant de p dans
_
2n
n
_
est la somme

a=1
__
2n
p
a
_
2
_
n
p
a
__
.
Si p est strictement suprieur

2n, cette somme se rduit son premier terme qui est compris entre 0
et 1 et qui est gal 1 si p divise
_
2n
n
_
.
Lemme A.0.6 Pour tout n 2 tout nombre premier p et tout entier r, si p
r
divise
_
2n
n
_
alors p
r
est
strictement infrieur 2n.
Pour tout entier n > 2, tout nombre premier p et tout entier r, on a
0
_
2n
p
a
_
2
_
n
p
a
_
1.
Dans la somme donnant lexposant b de p dans
_
2n
n
_
, le nombre de sommants est infrieur ou gal au plus
grand entier a tel que p
a
< 2n. On a donc p
b
= p
a
< 2n.
Lemme A.0.7 Pour tout n > 2, tout nombre premier p infrieur n et strictement suprieur 2n/3 ne
divise pas
_
2n
n
_
.
On a simplement [2n/p] = 2 [n/p] = 2. Le mme raisonnement montre que pour tout ]0, 1/2[ on peut
remplacer 2/3 par + 1/2.
Lemme A.0.8 Pour tout entier n 2 le produit des nombres premiers strictement infrieurs n est
strictement infrieur 4n.
Comme dans le Lemme A.0.3, on montre que pour tout entier k on a . De plus, si p est un nombre
premier compris entre k + 1 et 2k + 1, lapplication directe du Lemme A.0.4 montre que p divise
_
2k+1
k+1
_
avec lexposant 1. On a donc la majoration

k+1p2k+1
p

_
2k + 1
k + 1
_
et

k+1p2k+1
p < 4
k
. On conclut laide dun raisonnement par rcurrence sur n partir de n 3.
Proposition A.0.9 - Pour tout entier n > 2 soit R(n) le produit des nombres premiers strictement
compris entre n et 2n. On a une dcomposition
_
2n
n
_
= R(n)Q(n) qui a les proprits :
Les nombres R(n) et Q(n) sont premiers entre eux ;
Pour tout > 0 le nombre Q(n) est strictement infrieur 4
(n+)/2
(2n)

n/2
.
Pour tout > 0 on a
4
(n)/2
2

n(2n)

n/2
< R(n) < (2n)
(2n)(n)
.
152
Il est clair que R(n) divise
_
2n
n
_
car tout nombre premier strictement suprieur n et strictement
infrieur 2n divise (2n)! et est premier avec n!. Ceci prouve lexistence dune telle dcomposition. Si p
est un nombre premier divisant
_
2n
n
_
et compris entre n et 2n, il divise
_
2n
n
_
avec un exposant 1 daprs
le Lemme A.0.5, ce qui prouve que R(n) et Q(n) sont premiers entre eux et en particulier que tout les
diviseurs premiers de Q(n) sont infrieur n. Ceux qui sont suprieurs

2n sont infrieurs (n+)/2
et y gurent avec lexposant 1 ; les facteurs premiers p qui sont infrieurs

2n y gurent avec un
exposant r tel que p
r
soit strictement infrieur 2n. Tout nombre premier tant 2 ou 3 ou de la forme
6s 1, leur nombre est major par 2 +

2n/3.
La seconde assertion rsulte directement de cette considration et du Lemme A.0.8. La majoration de
R(n) est vidente. Par ailleurs on a daprs ce qui prcde et le Lemme A.0.3, en passant la limite sur
:
R(n) =
_
2n
n
_
Q(n)

4
n
2

n

1
4
n/2
(2n)
2+

n/2/3
=
4
n/2
2

n(2n)
2+

n/2/3
.
Dmonstration du Thorme A.0.2. La majoration de (2n) (n) rsulte directement de la mino-
ration de R(n) donne dans la Proposition A.0.9. En ce qui concerne la minoration on a brutalement
(2n) (n)
nlog(4)
2 log(2n)

log(2)
log(2n)

log(n)
2 log(2n)
2

2n
3
Dans lexpression ci-dessus, on voit sans peine que pour n assez grand, la fonction
n
13 log(4)
30

n
log(n)
est infrieure la fonction de droite de lexpression ci-dessus. Pour dterminer le n seuil qui est 753,
on considre une petite session MAPLE rsume ci-dessous. On termine " la main" pour dmontrer le
postulat de Bertrand.
> f := x 2*x/15 ;
g :=x (x*(ln(4)/2)ln(2)ln(x)2sqrt(2*x)/3)/ln(2*x) (xf(x))*ln(4)/(2*ln(x)) ;
evalf(g(752)) ;evalf(g(753)) ;
Thorme A.0.10 Soit n p(n) la suite des nombres premiers. La srie de terme gnral 1/p(n) est
divergente.
Bien entendu ce thorme est plus riche que celui qui dit que lensemble des nombres premiers est inni.
La premire dmonstration de ce rsultat est semble-t-il due Leonard Euler. Ce thorme repose sur
le lemme lmentaire
Lemme A.0.11 Pour tout rel strictement positif x, et pour tout entier n, soit N(j, x) le cardinal de
lensemble
N(j, x) = n [ n N (0 < n x) (p premier et p divise n p p(j)) ,
ensemble des entiers naturels non nuls infrieurs x dont tous les diviseurs premiers sont infrieurs ou
gaux p(j). Alors on a N(j, x) 2
j+1

x.
153
Tout entier naturel non nul n peut se dcomposer de faon unique sous la forme q(n)
2
m(n) o m(n)
est produit de nombres premiers tous dirents (on dit que m(n) est la partie sans facteur carre ou
"quadratfrei" de n). Le nombre des entiers quadratfrei appartenant N(j, x) est au plus gal 2j + 1.
Le nombre des entiers carrs infrieurs x est infrieur

x. Do le rsultat, " la louche".
Raisonnons par labsurde et supposons que la dite srie soit convergente. Il existerait un entier j tel que
le reste de cette srie

k=j+1
1
p(k)
soit infrieur 1/2. Soit alors x un rel strictement suprieur 2
2j+4
.
Le nombre des entiers infrieurs x dont tous les diviseurs premiers sont infrieurs ou gaux p(j) est
N(j, x). Le nombre des entiers infrieurs x dont au moins un diviseur premier est p(k) avec k = j + 1
est au plus x/p(k). Dans ces conditions on a
x N(j, x) +x

k=j+1
1
p(k)
N(j, x) +
x
2
Ceci implique N(j, x) = x/2 > 2
2j+3
> 2j +
1
x
et une contradiction avec le lemme. On en conclut que la
srie est divergente.
Un autre sujet dexcitation sur la rpartition des nombres premiers est le Thorme des nombres
premiers :
Thorme A.0.12 Pour tout rel positif x, soit (x) le nombre des nombres premiers strictement in-
frieurs x. Lorsque x tend vers linni, (x) est quivalent x/ln(x). Plus prcisment, il existe une
constante c telle que
(x) =

p<x
1 =
_
x
2
du
log u
+ (xexp(c
_
log(x)))
La premire dmonstration de ce thorme est due De La Valle Poussin en 1896. La dicult dans
ce genre de thorme est la dtermination du "terme derreur", voir [Tenenbaum G., Mendes-France, Les
nombres premiers, Collection Que Sais-Je, PUF, 1997]
A.1 Construction dune table de nombres premiers.
Pour construire une (petite) table de nombre premiers, on peut utiliser de proche en proche les
nombres premiers dj dtermins. Dans la procdure suivante, on construit un tableau des M premiers
nombres premiers et on dtermine la liste complte de nombres premiers infrieurs au carr du M
i
me
nombre premier. On gardera pour le texte le cas M = 400. On part du fait que tout nombre premier
dirent de 2 et de 3 est de la forme 6s 1.
program tabprim;
const M0 =401 ; M1=400 ;
type indice =0..M1 ;
table = tableau[indice] de entier ;
liste = liste de entier ;
154
var j : indice ;
m,n,n2,x : entier ;
prim : table ;
prim_1 : liste ;
debut adjoindre prim_1 les nombres 2 et 3 ; prim[0] :=5 ;
j :=0 ; x :=2 ; n := 5 ; n2 := 2 ; tant que j < M0 faire
debut k :=0 ; tant que n mod prim[k] ,= 0 et prim[k] n2 faire k := k+1 ;
si n mod prim[k] > 0 alors
debut j := j+1 ; prim[j] :=n ; adjoindre n prim
1
n ;
n :=n+x ; x := 6-x ; m := n2*n2 ;
tant que m < n faire debut m :=m + 2*n2 + 1 ; n2 := n2 + 1 n
n ; ce stade on a M0 nombres premiers en tableau
tant que n2 = prim[M1] faire
debut k :=0 ; tant que n mod prim[k] ,= 0 et prim[k] = n2 faire k := k+1 ;
si n mod prim[k] > 0 alors adjoindre n prim_1 ;
n :=n+x ; x := 6-x ; m := n2*n2 ;
tant que m < n faire debut m :=m + 2*n2 + 1 ; n2 := n2 + 1 n
n
sortir (prim_1)
n.
Voici un programme en TEX pour construire une table des nombres premiers :
\newif\ifprime\newif\ifunknown
\newcount\n \newcount\p \newcount\d \newcount\a
\def\primes#1{2,~3% assume that #1 is at least 3
\n=#1 \advance\n by -2
\p=5
\loop\ifnum\n>0 \printifprime\advance\p by2 \repeat}
\def\printp{,
\ifnum\n=1 et~\fi
\number\p \advance\n by -1 }
\def\printifprime{\testprimality \ifprime\printp\fi}
\def\testprimality{{\d=3 \global\primetrue
\loop\trialdivision \ifunknown\advance\d by 2 \repeat}}
\def\trialdivision{\a=\p \divide\a by\d
\ifnum\a>\d \unknowntrue\else\unknownfalse\fi
\multiply\a by\d
\ifnum\a=\p \global\primefalse\unknownfalse\fi}
Par exemple, les quatre cent premiers nombres premiers sont
\primes{400}
Par exemple, les quatre cent premiers nombres premiers 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, 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,
155
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, 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097,
1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229,
1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361,
1367, 1373, 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483,
1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601,
1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723,
1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871,
1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, 1999,
2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129,
2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, 2269,
2273, 2281, 2287, 2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, 2381, 2383,
2389, 2393, 2399, 2411, 2417, 2423, 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539,
2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663, 2671, 2677,
2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, et 2741
156
B Annexe : Factorisation des Polynmes
(F. Sergeraert)
Rfrence : Don Knuth, The Art of Computer Programming, vol. 2, pp.
381-398.
> restart ;
> with(linalg) :
Warning, the protected names norm and trace have been redefined and
unprotected
La factorisation des polynmes nest pas un sujet vraiment facile, pas plus que la factorisation
des entiers ! On prsente ici le principal outil, la mthode de Berlekamp, qui concerne en fait la
factorisation dans le cas du corps de base ni, puis on explique dans les cas les plus simples comment
elle peut tre utillise pour obtenir la factorisation des polynmes coecients rationnels.
B.1 Rappels sur les corps nis.
On rappelle que p est premier si et seulement si tous les coecients du binme C(p, k) sont divisibles
par p pour 0 < k < p :
> seq(evalb(binomial(13,k) mod 13 = 0), k = 0..13) ;
> seq(evalb(binomial(9,k) mod 9 = 0), k = 0..9) ;
false, true, true, true, true, true, true, true, true, true, true, true, true, false
false, true, true, false, true, true, false, true, true, false
Il en rsulte que si on travaille dans Z/ p, la formule (a +b)
p
= a
p
+b
p
est valide, en particulier
(a + 1)
p
= a
p
+ 1 et il en rsulte par rcurrence, partant de 1
p
= 1, que a
p
= a dans Z/ p.
Un corps K ni est de caractristique bien dnie p : cest le plus petit entier positif vriant p x
1 = (df.) 1 + 1 + ... + 1 ( p fois) = 0. Ncessairement, p est premier, sinon on aurait dans K
des diviseurs de 0. Le corps K contient donc en particulier le sous-corps {0, 1, 2, ..., p 1} = Z/
p quon notera simplement Z
p
et K est donc un espace vectoriel sur Z
p
de dimension d ; il a alors
p
d
lments. La formule dmontrant que le morphisme de Frobenius a a
p
est Z-linaire (et donc
aussi Z
p
-linaire) : (a +b)
p
= a
p
+b
p
reste valable, mais il est maintenant faux, sauf si d=1, que
a
p
= a pour tout a de K. En eet, puisque X
p
X est de degr p, il ne peut avoir que p racines
dans K, savoir les lments de Z
p
dans K. On verra que cette remarque est la cl de la mthode
de Berlekamp pour factoriser un polynme coecients dans Z
p
.
Le groupe multiplicatif des lments non nuls de K a pour cardinal p
d
1, et il en rsulte que
pour tous ces lments, la relation a
(p
d
1)
= 1 est satisfaite ; le polynme X
(p
d
)
X a donc pour
racines tous ces lments, et de plus llment nul. Les lments de K sont donc tous racines de ce
polynme,et il en rsulte que X
(p
d
)
X =

a
(X a) o a parcourt exactement tous les lments
de K. Donc K est un (donc le) corps de dcomposition de ce polynme et il en rsulte quil nexiste
quun seul corps de cardinal p
d
.
157
Soit P dans Z
p
[ X] un polynme irrductible de degr d. Alors le quotient Z
p
[ X]/ P est un corps
p
d
lments. Il rsulte de ce qui prcde que la classe disomorphisme de ce corps est indpendante
de P. Le polynme P divise ncessairement le polynme X
(p
d
)
- X ; en eet, si x est la classe de X
dans Z
p
[ X]/ P, le polynme minimal de x ne peut tre que P, mais daprs ce qui est dit ci-dessus,
x est aussi racine de X
(p
d
)
- X et donc ce dernier polynme est divisble par P. Il en rsulte aussi
que P est entirement scind dans K, donc une seule extension sut toujours pour obtenir le corps
de dcomposition dun polynme irrductible : toute extension de Z
p
est galoisienne.
Illustration.
> rnd := rand(0..2) :
Contrairement au cas des coecients entiers banals, il faut ttonner un peu pour trouver un
polynme irrductible coecients dans Z
3
.
> _seed := 1639 :
> P := sort(X^3 + add(rnd()*X^i, i=0..2)) ;
P := X
3
+ 2 X
2
+ 1
> Irreduc(P) mod 3 ;
true
Il en rsulte que le mme polynme est Q-irrductible :
> irreduc(P) ;
true
Mais la rciproque est fausse : il arrive souvent quun polynme soit Q-irrductible, mais pas
Z
p
-irrductible ; il arrive mme que ceci se produise quel que soit p pour le mme polynme Q-
irrductible, cest le cas de X
4
+ 1.
> irreduc(X^4+1) ;
true
> Irreduc(X^4+1) mod 67 ;
false
> Factor(X^4+1) mod 67 ;
(X
2
+ 47 X + 66) (X
2
+ 20 X + 66)
> Factor(X^4+1) mod nextprime(10^6) ;
(X
2
+ 410588 X + 1000002) (X
2
+ 589415 X + 1000002)
Pour travailler sous Maple dans des extensions de Z
p
, on procde comme pour les extensions de
Q, mais il ny a aucune dirence dans lusage initial de RootOf, cest seulement en n de calcul
quon prcise quon veut travailler dans Z
p
et ses extensions, en suxant par mod p.
> alias(alpha = RootOf(P)) ;

Le quotient Z
3
[ X]/ P est un espace vectoriel de degr 3 sur Z
3
, dont les lments sont tous de la
forme i +j +k
2
pour i, j et k parcourant Z
3
.
Calcul du polynme ayant exactement tous les lments de Z
3
[ X]/ P comme racine
158
> mul(mul(mul(X-i-j*alpha-k*alpha^2,
> k=0..2),
> j=0..2),
> i=0..2) ;
X (X
2
) (X 2
2
) (X ) (X
2
) (X 2
2
) (X 2 ) (X 2
2
)
(X 2 2
2
) (X 1) (X 1
2
) (X 1 2
2
) (X 1 ) (X 1
2
)
(X 1 2
2
) (X 1 2 ) (X 1 2
2
) (X 1 2 2
2
) (X 2)
(X 2
2
) (X 2 2
2
) (X 2 ) (X 2
2
) (X 2 2
2
)
(X 2 2 ) (X 2 2
2
) (X 2 2 2
2
)
Dveloppement du produit.
> Expand(%) mod 3 ;
2 X +X
27
... autrement dit X
27
X. A comparer avec :
> collect(evala(expand(%%)), [X, alpha]) :
Vrication de la proprit de divisibilit.
> Divide(X^27-X, P) mod 3 ;
true
Et pour cause :
> Factor(P, alpha) mod 3 ;
(X +
2
+ + 1) (X + 2
2
+ 1) (X + 2 )
Car, comme expliqu plus haut, une seule extension sut toujours dcomposer compltement le
polynme initial. Proprit en gnral fausse dans le cas rationnel :
> factor(P, alpha) ;
(X ) (X
2
+ 2 X +X + 2 +
2
)
B.2 Bases de la mthode de Berlekamp
On travaille dans lanneau de polynmes Z
p
[ X], pour un premier p, et sauf indication contraire,
Z
7
[ X] dans les exemples
Soit P dans Z
p
[ X] et P = P
1
... P
r
sa dcomposition en facteurs irrductibles. On suppose dabord
que P est sans facteur multiple, sinon ceci est dtect facilement par le PGCD du polynme et du
polynme driv. Construisons un exemple de cette sorte.
> rnd := rand(0..6) :
> rndP := proc(n)
> RETURN(sort(X^n + add(rnd()*X^i, i=0..(n-1))))
> end :
> _seed := 1730 :
> P1, P2 := rndP(3), rndP(3) ;
159
P1, P2 := X
3
+X
2
+ 2 X + 4, X
3
+ 4 X
2
+ 4 X + 2
Le polynme qui suit va certainement avoir un facteur multiple, mais on fait semblant de ne rien
savoir ce propos.
> P := sort(Expand(P1^2 * P2) mod 7) ;
P := X
9
+ 6 X
8
+ 3 X
7
+ 3 X
4
+ 5 X
3
+ 5 X
2
+ 5 X + 4
On dtecte un facteur multiple ventuel par lexamen du PGCD entre le polynme et son driv.
> Gcd(P, diff(P, X) mod 7) mod 7 ;
X
3
+X
2
+ 2 X + 4
Et on commencerait par factoriser X
3
+X
2
+ 2 X + 4. Presque toujours (pas toujours, pourquoi ?)
le polynme initial est divisible par le carr de ce terme.
> Rem(P, %^2, X) mod 7 ;
0
> Quo(P, %%^2, X) mod 7 ;
X
3
+ 4 X
2
+ 4 X + 2
ce qui redonne comme par hasard nos polynmes initiaux.
On suppose donc dsormais quil ny a aucun facteur multiple dans P.
Si P = P
1
... P
r
est la dcomposition de P en facteurs irrductibles, le thorme du reste chinois
donne un isomorphisme canonique :
Z
p
[ X]/ P = Z
p
[ X]/ P
1
+ ... Z
p
[ X]/ P
r
. Les facteurs du second membre sont tous des corps, le
premier membre nest un corps que si P est irrductible, autrement dit si r = 1.
Il en rsulte, cest lastuce de Berlekamp, un test permettant, sans connatre r, de deviner sa
valeur. Considrons en eet lquation o linconnue V est un lment de Z
p
[ X]/ P :
V
P
V = 0
Si on traduit cette quation vers le second membre (quon ne connat pas !), linconnue V devient un
r-uplet ( V
1
, ..., V
r
), et comme lisomorphisme utilis est un isomorphisme danneaux, lquation
se transforme en r quations V
i
p
= V
i
. Comme linconnue V
i
est cette fois dans le corps Z
p
[
X]/ P
i
, on sait quil y a exactement les p racines 0, ..., p 1 dans Z
p
[ X]/ P
i
. On en dduit que
le cardinal des solutions est exactement p
r
. Ainsi le cardinal de lensemble des solutions va nous
donner le nombre fatidique r. Dune faon trs approximative, on peut dire que Berlekamp observe
que plus P est rductible, moins Z
p
[ X]/ P est un corps, et plus lensemble des solutions de
notre quation va tre vaste.
Le deuxime lment cl de la mthode de Berlekamp consiste remarquer que puisque lapplication
V V
p
est linaire, lquation V
p
V = 0 est, malgr les apparences, une quation linaire, et on
dispose donc de tous les outils linaires classiques pour la traiter.
160
Exemple. Soit tudier si notre polynme P1 est irrductible dans Z
7
. Il faut construire la
matrice de lapplication linaire V V
p
V dans Z
p
[ X]/ P
1
. On prend la base canonique 1, X,
X
2
(ou plus prcisment leurs classes modulo P
1
). Limage de X
j
est donc la classe de X
(p j)
X
j
,
et les lments de colonne correspondants sont les coecients appropris. On construit part la
procdure BerlTerm permettant le calcul du terme dindices ( i, j) de la matrice de Berlekamp
du polynme P par rapport Z
p
.
> BerlTerm := proc(p::posint, P::polynom(integer, X),
> i::posint, j::posint)
> RETURN(coeff(Rem(X^(p*(j-1))-X^(j-1), P, X) mod p,
> X, i-1))
> end :
> BerlMatrix1 := matrix(3, 3, (i,j) -> BerlTerm(7, P1, i,j)) ;
BerlMatrix1 :=
_
_
0 0 1
0 3 0
0 6 1
_
_
La dimension du noyau nous donne la dimension de lespace des solutions, cest--dire le nombre des
facteurs irrductibles. On voit que le rang est 2, lespace des solutions est donc de dimension 1, ce
ne peut tre que Z
7
, solutions invitables, et notre polynme est donc irrductible. Pour obtenir
le rang de cette matrice dans le cas gnral, il faut utiliser la procdure Nullspace combine avec
mod.
> Nullspace(BerlMatrix1) mod 7 ;
[1, 0, 0]
Vrication.
> Irreduc(P1) mod 7 ;
true
Mme travail avec P
2
.
> BerlMatrix2 := matrix(3, 3, (i,j) -> BerlTerm(7, P2, i,j)) ;
BerlMatrix2 :=
_
_
0 4 0
0 5 0
0 1 0
_
_
> Nullspace(BerlMatrix2) mod 7 ;
[1, 0, 0], [0, 0, 1]
> Irreduc(P2) mod 7 ;
false
On voit quici notre quation V
p
V a 49 solutions, 49 = 7
2
, et notre polynme a donc deux
facteurs irrductibles. Il reste les dterminer. Dans un cas si simple, cest trs facile, il sut de
chercher llment a de Z
7
ncessairement racine de P
2
et le quotient par X a donnera lautre
facteur irrductible. Mais on veut expliquer comment il faut procder dans le cas gnral. Cest le
sujet de la section suivante.
> for i from 0 to 6 do
> if Eval(P2, X=i) mod 7 = 0 then print(i) fi
> od ;
161
3
> Quo(P2, X-3, X) mod 7 ;
X
2
+ 4
> Irreduc(%) mod 7 ;
true
> Factor(P2) mod 7 ;
(X
2
+ 4) (X + 4)
B.3 Trouver les facteurs irrductibles.
Les solutions de lquation V
p
V = 0 ne donnent pas seulement le nombre de facteurs irrduc-
tibles, chaque solution donne aussi une dcomposition, en gnral partielle, mais toujours non
triviale, du polynme propos en facteurs de degrs plus petits. Ceci est d au fait que dans Z
p
,
nous avons la dcomposition :
V
p
V = V (V 1)
... ( V p 1).
Dire que V est une solution de V
p
V dans Z
p
[ X]/ P revient dire que P divise V
p
V , mais
la factorisation ci-dessus de V
p
V va justement nous permettre de dcouper en tranches le
polynme P.
Dabord si P est irrductible, les seules solutions de V
p
V = 0 sont les lments de Z
p
, auquel cas
le polynme V
p
V est non seulement divisible par P, il est mme nul ! et aucune information
ne peut tre obtenue, heureusement.
Par contre si P est factorisable, on va avoir des solutions direntes. Ces solutions vont tre
de vrais polynmes (non constants), et un tel polynme V va tre de degr forcment <
d = degree(P). On a alors le rsultat suivant :
P =

p1
i=0
PGCD(P, V i)
.
En eet V
p
V est divisible par P, et donc tout facteur irrductible de P va diviser V
p
V et
se retrouver dans lun des PGCD. Donc P divise le produit. Inversement, comme les V i sont
premiers deux deux (pourquoi ?), le mme facteur de P ne peut pas se retrouver deux fois
droite. Compte tenu par ailleurs du fait que degree(V i) < d, on voit donc quon a ainsi, quel
que soit V solution non constante de V
p
V = 0, une factorisation non triviale de P.
Essayons ce mcanisme avec notre polynme P
2
. Un V non trivial est trouver dans le noyau de
la matrice de Berlekamp :
> eval(BerlMatrix2) ;
_
_
0 4 0
0 5 0
0 1 0
_
_
> Nullspace(BerlMatrix2) mod 7 ;
[1, 0, 0], [0, 0, 1]
162
Le gnrateur [1,0,0] du noyau correspond aux solutions triviales de V
p
V = 0, mais lautre,
[0,0,1], expression dans notre base du polynme X
2
, est une solution non triviale.
> Divide(X^14-X^2, P2) mod 7 ;
true
> seq(Gcd(P2, X^2-i) mod 7, i=0..6) ;
1, 1, X + 4, X
2
+ 4, 1, 1, 1
Et on a bien notre dcomposition.
> evalb(P2 = Expand(mul(gcdi, gcdi=[%])) mod 7) ;
true
Dans le cas gnral, il ny a pas de raison que la dcomposition complte de P soit ainsi obtenue
laide dune seule solution non triviale V . Cest forcment ce qui arrive si le nombre de facteurs de
P est plus grand que p. Construisons P de sorte quil ait au moins 8 facteurs.
> _seed := 1054 :
> for i from 1 to 8 do
> P||i := rndP(2)
> end do ;
P1 := X
2
+ 4 X + 2
P2 := X
2
+ 2 X + 3
P3 := X
2
+ 3 X + 2
P4 := X
2
+ 2 X
P5 := X
2
+ 5 X + 5
P6 := X
2
+ 2 X + 5
P7 := X
2
+ 6 X
P8 := X
2
+ 5 X + 1
> P := sort(Expand(mul(P||i, i=1..8)) mod 7) ;
P := X
16
+X
15
+ 6 X
14
+ 4 X
13
+ 3 X
12
+ 6 X
11
+ 6 X
10
+ 5 X
9
+ 3 X
8
+ 3 X
7
+ 5 X
6
+X
5
+ 2 X
4
+X
3
+ 2 X
2
Mais on peut avoir des facteurs multiples, quil faut liminer pour que notre exemple soit correct.
> Gcd(P, diff(P,X) mod 7) mod 7 ;
X
5
+ 6 X
4
+ 4 X
3
+ 5 X
2
+ 5 X
> P := Quo(P, %, X) mod 7 ;
P := X
11
+ 2 X
10
+ 4 X
9
+ 2 X
8
+ 2 X
7
+ 5 X
6
+X
5
+X
4
+ 4 X
2
+ 6 X
> Gcd(P, diff(P,X) mod 7) mod 7 ;
1
Donc plus de facteurs multiples.
> BerlMatrix := matrix(11,11, (i,j) -> BerlTerm(7,P,i,j)) :
> Kernel := Nullspace(%) mod 7 ;
163
Kernel := [0, 5, 3, 5, 0, 0, 1, 0, 0, 0, 0], [0, 5, 2, 5, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0],
[0, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0], [0, 1, 0, 3, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 4, 6, 4, 1, 0, 0, 0, 0, 0, 0]
Les lments du noyau sont des vecteurs, ce qui est techniquement dsagrable pour la suite, on les
transforme tous en listes.
> Kernel := map(convert, Kernel, list) ;
Kernel := [0, 5, 3, 5, 0, 0, 1, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 5, 2, 5, 0, 0, 0, 0, 0, 0, 1], [0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0],
[0, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0], [0, 1, 0, 3, 0, 1, 0, 0, 0, 0, 0],
[0, 4, 6, 4, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
> r := nops(Kernel) ;
r := 8
Donc 8 facteurs irrductibles. On retire llment de noyau correspondant aux solutions triviales.
> Kernel := Kernel minus {[1, 0$10]} ;
Kernel := [0, 5, 3, 5, 0, 0, 1, 0, 0, 0, 0], [0, 5, 2, 5, 0, 0, 0, 0, 0, 0, 1],
[0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0], [0, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0],
[0, 1, 0, 3, 0, 1, 0, 0, 0, 0, 0], [0, 4, 6, 4, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
> Vvector1 := Kernel[1] ;
Vvector1 := [0, 5, 3, 5, 0, 0, 1, 0, 0, 0, 0]
> V1 := sort(add(Vvector1[i]*X^(i-1), i=1..11)) ;
V1 := X
6
+ 5 X
3
+ 3 X
2
+ 5 X
> factors1 := {seq(Gcd(V1-i, P) mod 7, i=0..6)} minus{1} ;
factors1 := X
2
+ 2 X + 5, X
2
+ 5 X + 5, X + 1, X
3
+ 4 X
2
+ 6, X
3
+ 4 X
2
+ 2 X
> nops(factors1) ;
5
> evalb(P = Expand(mul(gcdi, gcdi=factors1)) mod 7) ;
true
On voit quune dcomposition non triviale de P est bien obtenue, mais ce nest videmment pas
l la dcomposition complte en facteurs irrductibles, puisquon a construit P comme un produit
de facteurs de degr 2. Comme seulement 7 cases sont disponibles dans le rsultat, certainement
certains facteurs ainsi obtenus sont encore rductibles.
Le point suivant consiste dire quen essayant au besoin les autres lments non triviaux du
noyau de la matrice de Berlekamp, on va russir, en recoupant les rsultats, obtenir la factorisation
complte. Expliquons ce quil faut entendre par recouper.
Prenons un autre vecteur de notre noyau.
164
> Vvector2 := Kernel[2] ;
Vvector2 := [0, 5, 2, 5, 0, 0, 0, 0, 0, 0, 1]
> V2 := sort(add(Vvector2[i]*X^(i-1), i=1..11)) ;
V2 := X
10
+ 5 X
3
+ 2 X
2
+ 5 X
> factors2 := {seq(Gcd(V2-i, P) mod 7, i=0..6)} minus {1} ;
factors2 := X
2
+X, X + 2, X + 5, X
4
+ 4 X
3
+ 5 X
2
+ 2 X + 1, X
3
+ 4 X
2
+ 2
> nops(factors2) ;
5
On voit que la factorisation nest pas la mme que celle prcdemment obtenue. On va dmontrer
juste aprs que cest toujours le cas. On obtient donc une meilleure factorisation en prenant
lintersection, coups de PGCD, des deux factorisations.
> factors12 := {seq(seq(Gcd(f1,f2) mod 7,
> f2 = factors2),
> f1 = factors1)}
> minus {1} ;
factors12 := X
2
+ 2 X + 3, X
2
+ 2 X + 5, X
2
+ 5 X + 5, X, X + 1, X + 2, X + 5, X + 6
> nops(factors12) ;
8
La factorisation est donc complte. Dautres fois, il faut encore continuer.
Expliquons pourquoi la mthode des recoupements aboutit. Pour mieux faire comprendre, on se
contente du cas r = 3. Donc P = P
1
P
2
P
3
et :
K [X]
/ P = K [X]/ P
1
+ K [X]/ P
2
+ K [X]/ P
3
.
Toute solution de notre quation V
p
V = 0 a deux interprtations. Du ct gauche, cest
un polynme modulo P ; mais du ct droit, comme pour chaque facteur les seules solutions
sont les polynmes constants, ces solutions sont essentiellement des triplets (
1
,
2
,
3
) den-
tiers modulo p. La correspondance de la droite vers la gauche nest rien dautre que le tho-
rme des restes chinois. Le relvement de (1,0,0) est le produit B
1
P
2
P
3
de la relation de Bezout
A
1
P
1
+B
1
P
2
P
3
= 1, car il sagit davoir un polynme divisible par P
2
et P
3
, mais gal 1 mo-
dulo P
1
. De la mme faon, le relvement de (0,1,0) (resp. (0,0,1)) est le produit B
2
P
1
P
3
(resp.
B
3
P
1
P
2
) avec des interprtations analogues. Une solution triviale est de la forme ( , , ).
Donc une solution non triviale vrie par exemple
1
<>
2
. Soit V linterprtation polynme
de cette solution. Alors V
1
= (
2

1
) B
2
P
1
P
3
+ (
3

1
) B
3
P
1
P
2
, alors que V
2
=
(
1

2
) B
1
P
2
P
3
+ (
3

2
) B
3
P
1
P
2
. Il en rsulte que V
1
est divisible par P
1
et V
2
est
divisible par P
2
. Donc le traitement de V va forcment sparer les facteurs P
1
et P
2
. Main-
tenant lensemble des solutions gauche correspond lensemble des solutions droite, et il y a
donc forcment une solution gauche correspondant (sans quon le voie) un cas o
1
<>
2
.
Il en est forcment de mme pour lun des vecteurs de la base du noyau, sinon on aurait
1
=
2
pour tous les lments du noyau, ce qui est exclu. Le mme travail peut tre fait en gnral pour
toutes les paires dindices, do le fait que les lments de la base du noyau susent compltement
factoriser. CQFD.
165
On est prt maintenant pour une procdure gnrale de factorisation. Elle va utiliser notre procdure
BerlTerm dj construite.
> Berl := proc(p::posint, P::polynom(integer, X))
> local d, r, i,
> BerlMatrix, Kernel,
> Vvector, V,
> result, new_factors ;
> d := degree(P, X) ;
> # Erreur si facteur multiple.
> if Gcd(P, diff(P, X)) mod p <> 1 then
> ERROR(The polynom is not squarefree.)
> fi ;
> BerlMatrix := matrix(d,d, (i,j) -> BerlTerm(p,P,i,j)) ;
> Kernel := Nullspace(BerlMatrix) mod p ;
> # r = nombre de facteurs irrductibles.
> r := nops(Kernel) ;
> # Si r = 1, le polynme est irrductible.
> if r = 1 then RETURN([P]) fi ;
> Kernel := map(convert, Kernel, list) ;
> # Suppression de la solution triviale.
> Kernel := Kernel minus {[1, 0$(d-1)]} ;
> # Pour signaler le dbut de lalgorithme.
> result := {} ;
> # Il faut parcourir les solutions non triviales et # arrter quand le nombre de facteurs requis est
atteint.
> for Vvector in Kernel while nops(result) < r do
> # Expression polynmiale du nouveau vecteur solution considr.
> V := add(Vvector[i]*X^(i-1), i=1..d) ;
> # Dcoupage en tranches.
> new_factors := {seq(Gcd(P, V-i) mod p, i=0..(p-1))}
> minus {1} ;
> # Recoupement (ventuel) avec ce qui a t prcdemment fait.
> if nops(result) > 1 then
> result := {seq(seq(Gcd(f1,f2) mod p,
> f2 = new_factors),
> f1 = result)}
> minus {1}
> else result := new_factors
> fi
> od ;
> result := convert(result, list) ;
> result := map(sort, result) ;
> result := sort(result,
> (P1,P2)->evalb(degree(P1)<degree(P2))) ;
> RETURN(map(sort,result))
> end :
> fs := Berl(7, P) ;
fs := [X + 6, X + 5, X + 2, X + 1, X, X
2
+ 5 X + 5, X
2
+ 2 X + 5, X
2
+ 2 X + 3]
> nops(fs) ;
8
> P - Expand(mul(f, f=fs)) mod 7 ;
0
> Berl(73, X^4+1) ;
166
[X + 51, X + 10, X + 63, X + 22]
Des polynmes complexes peuvent ainsi tre factoriss.
> _seed := 1535 :
> P := rndP(50) ;
P := X
50
+ 2 X
49
+ 5 X
48
+ 6 X
47
+ 3 X
46
+ 2 X
45
+X
43
+X
42
+ 4 X
41
+ 2 X
40
+ 5 X
39
+ 5 X
38
+ 6 X
37
+ 3 X
36
+ 3 X
35
+ 3 X
31
+ 4 X
29
+ 2 X
28
+ 3 X
27
+ 4 X
26
+ 3 X
25
+X
23
+ 3 X
22
+ 6 X
20
+X
19
+X
18
+ 4 X
17
+ 3 X
16
+ 5 X
15
+ 6 X
13
+ X
12
+ 6 X
11
+ 3 X
10
+ 3 X
9
+ 6 X
8
+X
7
+ 3 X
6
+ 5 X
5
+ 3 X
4
+ 2 X
3
+ 5 X + 6
> fs := Berl(7, P) :
> map(print, fs) :
X
2
+ 5 X + 2
X
11
+X
10
+X
9
+ 6 X
7
+ 6 X
6
+ 5 X
5
+ 5 X
4
+ 4 X
3
+ 2 X
2
+ 4 X + 4
X
37
+ 3 X
36
+ 3 X
34
+ 5 X
33
+X
31
+ 5 X
30
+ 5 X
28
+ 3 X
27
+ 3 X
26
+ 5 X
25
+ 3 X
24
+ 2 X
23
+ 3 X
22
+ 3 X
21
+ 3 X
20
+X
19
+ 6 X
17
+ 3 X
16
+ 6 X
15
+ 6 X
14
+ 6 X
13
+ 4 X
12
+ 3 X
10
+ 6 X
9
+X
8
+ 6 X
7
+X
6
+ 3 X
5
+ 2 X
4
+ 3 X
3
+ 5 X + 6
> nops(fs) ;
3
> map(item -> Irreduc(item) mod 7, fs) ;
[true, true, true]
> P - Expand(mul(item, item=fs)) mod 7 ;
0
Un cas irrductible.
> Berl(7, fs[1]) ;
[X
2
+ 5 X + 2]
B.4 Factorisation des polynmes coecients entiers.
Les mthodes ecaces de factorisation des polynmes coecients entiers commencent toutes
par Z
p
-factoriser pour un p premier, ou puissance dun nombre premier, avec p assez grand. Par
examen de la taille des coecients pour une Z-factorisation ventuelle, on nit par en dduire la
Z-factorisation cherche. Le point cl dans cette direction consiste majorer les racines (en gnral
complexes) du polynme factoriser.
Soit donc P = X
n
+ a
n1
X
(n1)
+ ... + a
0
un polynme unitaire coecients complexes. Alors
toute racine de P est strictement majore par : A = 2 max([a
i
[
(
1
ni
)
, i = 0..n1). En eet on peut
crire P = X
n
_
1 +
_
n
i=1
ani
X
i
__
o [a
ni
[ (
A
2
)
i
. La somme de la dernire expression devient
une progression gomtrique strictement majore par
A
2 X
1
1
A
2 X
=
A
2 XA
1 si A [X[. Donc
la dernire ingalit implique P(X) non nul. Le raisonnement est en dfaut si A = 0, mais ce cas
est sans intrt, car alors toutes les racines sont nulles. Procdure consquente.
167
> RootsSup := proc(P::polynom(rational, X))
> local dgr ;
> dgr := degree(P, X) ;
> if coeff(P, X, dgr) <> 1 then
> ERROR(sprintf("Polynme %a non unitaire.", P))
> fi ;
> RETURN(2 * max(seq(evalf(abs(coeff(P, X, i))^(1/(dgr-i))),
> i=0..(dgr-1))))
> end :
Soit donc P un Z-polynme unitaire (il est facile de se ramener ce cas par changement de
variable) o les coecients sont majors par A. Il est lmentaire den dduire que les racines
(complexes) sont aussi strictement majores en module par A+ 1 ; il existe des ingalits sensible-
ment plus nes ce sujet, mais pour simplier, on se contentera ici de celle-ci. Puisquun facteur
potentiel de P est un produit de ( X ) o parcourt certaines racines de P, on en dduit
des majorations pour les coecients dune Z-factorisation ventuelle. On peut alors conclure en
examinant la Z
p
-factorisation de P pour p assez grand.
Examinons par exemple le cas de X
4
+ 1. Ici A = 2 mais on sait bien que les quatre racines sont
de module 1. Tentons la Z
3
-factorisation.
> RootsSup(X^4+1) ;
> Berl(3, X^4+1) ;
2.
[X
2
+ 2 X + 2, X
2
+X + 2]
Il en rsulte quune Z-factorisation a au plus deux facteurs de degr 2, o les termes constants sont
de la forme 3 n + 2, mais ce pourrait tre -1, et on ne peut conclure. On augmente p.
> Berl(5, X^4+1) ;
[X
2
+ 3, X
2
+ 2]
Cette fois on a gagn, parce que lun des facteurs a un terme constant de la forme 5 n + 2, incompa-
tible avec les modules connus des racines de X
4
+ 1. Donc X
4
+ 1 est Z-irrductible et donc (voir
la dmonstration du thorme de Gauss sur la factorialit de Z[ X]) Q-irrductible.
> irreduc(X^4+1) ;
true
Avec un polynme moins trivial.
> _seed := 921 :
> P := rndP(10) ;
> RootsSup(P) ;
P := X
10
+ 2 X
9
+ 3 X
8
+ 5 X
7
+ 2 X
6
+ 4 X
5
+ 4 X
4
+ 2 X
3
+ 5 X
2
+X + 6
4.
Toute racine est majore par 4, et si une factorisation non triviale est possible, elle aura un facteur
de degr au plus 5 o le coecient du terme aprs le terme de plus haut degr sera donc major
par 20 do lide dutiliser 41.
> Berl(41,P) ;
168
[X
10
+ 2 X
9
+ 3 X
8
+ 5 X
7
+ 2 X
6
+ 4 X
5
+ 4 X
4
+ 2 X
3
+ 5 X
2
+X + 6]
On est chanceux, le polynme est donc irrductible.
> _seed := 1529 :
> P := rndP(10) ;
> RootsSup(P) ;
P := X
10
+ 6 X
9
+ 3 X
8
+ 6 X
7
+X
6
+ 6 X
5
+ 2 X
4
+ 2 X
3
+ 5 X
2
+ 2 X + 3
12.
On essaie un nombre premier > 10 . 12 = 120, par exemple 127
> Berl(127, P) ;
[X + 45, X + 6, X
3
+ 86 X
2
+ 108 X + 28, X
5
+ 123 X
4
+ 105 X
3
+ 51 X
2
+ 13 X + 19]
Le facteur X + 45 seul ne peut pas provenir dune Z-factorisation, ni le facteur de degr 3. Dans
une telle situation il faut essayer si -6 est racine :
> subs(X=-6, P) ;
3361563
Le produit (X + 6) (X + 45) va commencer par X
2
+ 51 X et est aussi exclu. Essayons un autre
nombre premier, pour voir.
> Berl(131, P) ;
[X
2
+ 104 X + 55, X
8
+ 33 X
7
+ 53 X
6
+ 15 X
5
+ 111 X
4
+ 82 X
3
+ 41 X
2
+ 5 X + 112]
Mais le facteur de degr 2 est impossible et le polynme P est donc Q-irrductible. Vrication.
> irreduc(P) ;
true
Il se trouve quon aurait pu essayer dans ce cas un entier un peu plus... petit. Ce polynme est en
eet dj irrductible modulo 5 !
> Berl(5,P) ;
[X
10
+ 6 X
9
+ 3 X
8
+ 6 X
7
+X
6
+ 6 X
5
+ 2 X
4
+ 2 X
3
+ 5 X
2
+ 2 X + 3]
Un polynme alatoire est presque toujours irrductible. Forons le choix dun polynme exercice
certainement rductible.
> _seed := 940 :
> P1, P2 := rndP(4), rndP(6) :
> P := sort(expand(P1 * P2)) ;
P := X
10
+ 4 X
9
+ 7 X
8
+ 16 X
7
+ 30 X
6
+ 34 X
5
+ 49 X
4
+ 51 X
3
+ 28 X
2
+ 30 X + 20
> RootsSup(P) ;
8.
> nextprime(2*5*8) ;
83
> Berl(83, P) ;
[X + 9, X + 74, X + 68, X + 2, X + 1, X
2
+ 37 X + 64, X
3
+ 62 X
2
+ 40 X + 67]
169
On doit donc examiner si -1 et -2 sont racines.
> eval(P, X=-1) ;
0
> eval(P, X=-2) ;
0
Le reste est un peu confus. Divisons et rexaminons la question.
> P2 := quo(P, (X+1)*(X+2), X) ;
P2 := X
8
+X
7
+ 2 X
6
+ 8 X
5
+ 2 X
4
+ 12 X
3
+ 9 X
2
+ 10
> RootsSup(P2) ;
4.000000000
> Berl(37, P2) ;
[X
2
+ 2, X
6
+X
5
+ 6 X
3
+ 2 X
2
+ 5]
Essai.
> rem(P2, X^2+2, X) ;
0
Do la Q-factorisation dnitive. Vrication.
> factor(P) ;
(X + 1) (X + 2) (X
6
+X
5
+ 6 X
3
+ 2 X
2
+ 5) (X
2
+ 2)
En bricolant de la sorte, on arrive en gnral factoriser les polynmes pas trop compliqus, mais
programmer une mthode gnrale est autrement complexe. Il serait confortable de savoir faire la
factorisation modulo un grand nombre premier, mais la mthode de Berlekamp, telle quelle a t
programme prcdemment, choue alors, parce que lquation de Berlekamp V
p
V = 0 devient
trop dicile rsoudre, cause de la taille de p.
> # Ne pas effectuer sous Maple 6.
> # Berl(nextprime(10^6), P) ;
Beaucoup damliorations peuvent tre intgres la procdure Berl, mais elle nira jamais trs
loin pour une factorisation par rapport de grands nombres premiers. Le corps ni Z
p
est bien
trop grand pour mener les calculs bien loin. Penser en particulier la factorisation quil faut utiliser
V
p
V = V (V 1) ... V p 1, o le nombre de facteurs est justement p ! ! Une autre solution
devient alors beaucoup plus intressante, base sur le lemme de Hensel.
B.5 Lemme de Hensel.
Le lemme de Hensel est une mthode largement utilise en algbre commutative consistant
rsoudre un problme dabord approximativement modulo un idal m puis aner en travaillant
modulo les puissances de cet idal, puissances de plus en plus petites. Le problme de la factorisation
des polynmes est justement un cadre parfait pour comprendre le mcanisme.
170
Loutil essentiel pour dmontrer le lemme de Hensel consiste utiliser judicieusement une relation
la Bezout pour exprimer un lment quelconque, et pas seulement 1, en fonction de deux lments
u et v premiers entre eux dans un anneau principal.
Commenons pour comprendre le principe par le cas entier.
Proposition B.5.1 Si u et v sont deux entiers positifs premiers entre eux, alors tout entier x
[0, uv[ sexprime dune faon et dune seule sous la forme :
x = u + v mod (u v)
avec [0, v[ et [0, u[.
Dmonstration. Soit 1 = a u +b v une relation de Bezout entre u et v. Par multiplication par
x, on obtient x = xa u +xb v, mais xa et xb sont en gnral trop grands ; on les divise donc
respectivement par v et u, pour obtenir x = u + v + u v o on peut choisir et dans
les intervalles requis. Si un autre choix tait possible, on trouverait par dirences une relation
u + v = 0 mod ( u v) avec non nul et de module < v ; mais ceci contredit la divisibilit de
par v.
Programme consquent.
> Bezout2 := proc(x::nonnegint, u::posint, v::posint)
> local a, b, gcd ;
> gcd := igcdex(u, v, a, b) ;
> if gcd <> 1 then ERROR(
> sprintf("les nombres %a et %a
> ne sont pas premiers entre eux.",
> u, v))
> fi ;
> RETURN(x*a mod v, x*b mod u)
> end :
> Bezout2(4, 6, 15) ;
Error, (in Bezout2) les nombres 6 et 15
ne sont pas premiers entre eux.
> Bezout2(4, 3, 5) ;
3, 2
> evalb(4 = 3 * 3 + 2 * 5 mod (3*5)) ;
true
Le mme rsultat est valide pour les polynmes coecients dans un corps, sous une forme encore
plus confortable.
Proposition B.5.2 Si U et V sont deux polynmes de degrs respectifs m et n, premiers entre
eux, alors pour tout polynme P de degr < m+n, il existe un unique polynme A (resp. B) de
degr < n (resp. < m) tel que P = AU +BV .
La dmonstration est la mme mais un examen de degrs montre quon peut mme se dispenser de
limprcision modulo U V . Le programme consquent suit.
171
> Bezout3 := proc(P::polynom(rational, X),
> U::polynom(rational, X),
> V::polynom(rational, X))
> local gcd, A, B ;
> gcd := gcdex(U, V, X, A, B) ;
> if gcd <> 1 then ERROR(
> sprintf("les polynmes %a et %a
> ne sont pas premiers entre eux.",
> U, V))
> fi ;
> RETURN(rem(P*A, V, X), rem(P*B, U, X))
> end :
> _seed := 1925 :
> P, U, V := rndP(5), rndP(3), rndP(3) ;
P, U, V := X
5
+ 5 X
4
+ 6 X
3
+ 2 X
2
+ 6 X + 2, X
3
+X
2
+X + 6, X
3
+ 2 X
2
+ 3
> A, B := Bezout3(P, U, V) ;
A, B :=
1
6

7
18
X
2

2
3
X,
25
18
X
2
+
59
18
X +
1
3
> expand(P - A*U - B*V) ;
0
Ceci est valable quel que soit le corps, par exemple Z
7
, mais il faut adapter la procdure.
> type/Z7 := proc(obj::anything)
> RETURN(type(obj, And(integer, Range(-1, 7))))
> end :
> type(3, Z7), type(-3, Z7) ;
true, false
> Bezout4 := proc(P::polynom(Z7, X),
> U::polynom(Z7, X),
> V::polynom(Z7, X))
> local gcd, A, B ;
> gcd := Gcdex(U, V, X, A, B) mod 7 ;
> if gcd <> 1 then ERROR(
> ### WARNING: %x or %X format should be %y or %Y if used with
> floating point arguments
> ### WARNING: incomplete string; use " to end the string
> sprintf("les polynmes %a et %a
> ne sont pas premiers entre eux.",
> U, V))
> fi ;
> RETURN(Rem(P*A, V, X) mod 7, Rem(P*B, U, X) mod 7)
> end :
On prend les mmes polynmes, mais linterprtation est dirente.
> A, B := Bezout4(P, U, V) ;
A, B := 4 X + 6, X
2
+ 6 X + 5
> Expand(P - A*U - B*V) mod 7 ;
0
172
Un nonc quivalent est obtenu pour des polynmes coecients entiers, condition de faire
intervenir une galit modulo p pour un premier p. Cet nonc va pouvoir tre gnralis au cas
p
k
o le quotient Z/ p
k
nest plus un corps.
Proposition B.5.3 : soient U et V des polynmes unitaires coecients entiers dans [0, p[, p-
premiers entre eux, de degrs respectifs m et n > 0. Alors pour tout polynme P de degr < m +n,
il existe des polynmes uniques A et B , coecients entiers dans [0, p[, de degrs respectifs < n
et < m, et un polynme R de degr < m+n, tels que P = AU +BV +p R.
Il sut en eet dappliquer le rsultat prcdent, mais quand on nit le calcul, il nest exact que
modulo p. Il ny a rien changer la procdure Bezout4, seule la n de la vrication est dirente.
> R := expand(P - A*U - B*V) / 7 ;
R := X
4
3 X
3
3 X
2
6 X 7
On nonce maintenant un rsultat analogue modulo p
k
. Cette fois lanneau des polynmes coef-
cients modulo p
k
nest plus principal, car il nest mme pas intgre. On se place donc dans une
situation o on suppose donne une relation de Bezout entre U et V .
Proposition B.5.4 Soient U et V deux polynmes unitaires coecients entiers dans [0, p
k
[,
de degrs respectifs m et n. On suppose donne une relation de Bezout : 1 = AU +BV +p
k
C
o le degr de A (resp. B, C) est < n (resp. < m, < m +n). Alors, pour tout polynme P
coecients entiers de degr < m+n, il existe des polynmes uniques E (resp. F, G), de degr <
n (resp. < m, < m +n), coecients entiers dans [0, p
k
[, (resp. dans [0, p
k
[, entiers), tels que
P = E U +F V +p
k
G.
Dmonstration. Analogue avec les adaptations videntes. Prendre E = P A et F = P B est ten-
tant, mais les degrs sont trop grands. Comme V est unitaire, on peut diviser P A par V pour obtenir
un reste coecients entiers E quon rduit modulo p
k
: P A = QV +E +p
k
R, et de mme on di-
vise P B par U pour obtenir P B = S U +F +p
k
T. En reportant dans P = P AU +P BV +p
k
P C,
il vient P = E U +F V + (Q+S) U V +p
k
(P C +RU +T V ). La rduction modulo p
k
de tous
les termes laisse un polynme U V unitaire de degr m+n. Comme P EU F V est de de-
gr < m+n, il en rsulte que le polynme Q+S est nul modulo p
k
; on peut donc glisser le
terme (Q+S) U V dans le facteur de p
k
et nalement le degr rsultant est ncessairement <
m +n. Si on avait deux solutions direntes, on dduirait une relation EU +F V = p
k
R; en
multipliant par A, il vient E AU +F AV = p
k
AR ou, compte tenu de la relation presque-Bezout,
E E BV +F AV = p
k
(AR +E C). Mais si on rduit modulo p
k
, E devient divisible par V , ce
qui est incompatible avec V unitaire et degr de E < degr de V , moins que E soit nul. CQFD.
> Bezout5 := proc
> (p::posint, k::posint, P::polynom(integer, X),
> U::polynom(integer, X), V::polynom(integer, X),
> A::polynom(integer, X), B::polynom(integer, X))
> RETURN(Rem(P*A, V, X) mod p^k, Rem(P*B, U, X) mod p^k)
> end :
On rednit rndP pour que lentier modulaire soit libre.
> rndP := proc(p::posint, d::posint)
> local rnd ;
> rnd := rand(0..(p-1)) ;
> RETURN(sort(X^d + add(rnd()*X^i, i=0..(d-1))))
> end :
> _seed := 2210 :
> p, k := 7,2 ; U,V := seq(rndP(49,3), i=1..2) ;
p, k := 7, 2
173
U, V := X
3
+ 43 X
2
+ 28 X + 48, X
3
+ 18 X
2
+ 12 X + 24
> Gcdex(U, V, X, A, B) mod 49 ;
1
> sort(expand(1-A*U-B*V)/49) ;
X
5
38 X
4
63 X
3
85 X
2
56 X 23
> P := rndP(49, 5) ;
P := X
5
+ 22 X
4
+ 26 X
3
+ 11 X
2
+ 39 X + 4
> E, F := Bezout5(7, 2, P, U, V, A, B) ;
E, F := 43 X
2
+ 22 X + 19, 7 X
2
+ 34 X + 3
> expand(P-E*U-F*V)/49 ;
X
5
41 X
4
58 X
3
84 X
2
49 X 20
Nous pouvons maintenant noncer le lemme de Hensel pour les polynmes modulo une puissance
de nombre premier.
Proposition B.5.5 (lemme de Hensel) : On suppose quon dispose de deux relations :
P = U V +p
k
R; 1 = AU +BV +p
k
S;
o les degrs de U (resp. V , P, R, A, B, S) sont m (resp. n, m +n, < m +n, < n, < m, <
m +n). Par ailleurs P, U et V sont supposs unitaires, et les coecients de A, U, B et V sont des
entiers dans [0, p
k
[. Alors il existe U
0
, V
0
, R
0
, A
0
, U
0
, B
0
, V
0
et S
0
vriant les mmes conditions
ceci prs que p
k
doit tre remplac par p
(2 k)
. De plus U
0
, V
0
, A
0
et B
0
sont uniques. Il en rsulte
la mme proprit pour R
0
et S
0
.
Dmonstration. On pose U
0
= U +p
k
U
1
et de mme pour V , A et B. En reportant dans les
quations satisfaire et en rduisant modulo p
(2 k)
, il vient les quations suivantes.
R = (V
1
U +U
1
V ) mod p
k
;
S AU
1
BV
1
= (A
1
U +B
1
V ) mod p
k
. On va donc trouver les correctifs dindice 1 par application de Bezout5. CQFD.
> Hensel := proc
> (p::posint, k::posint, P::polynom(integer, X),
> U::polynom(integer, X), V::polynom(integer, X),
> A::polynom(integer, X), B::polynom(integer, X))
> local R, S, U1, V1, A1, B1 ;
> R := expand(P - U*V)/p^k ;
> S := expand(1 - A*U - B*V)/p^k ;
> if not type(R, polynom(integer, X)) then
> ERROR("P, U, V not coherent for Hensel.")
> fi ;
> if not type(S, polynom(integer, X)) then
> ERROR("A, U, B, V not coherent for Hensel.")
> fi ;
> V1, U1 := Bezout5(p, k, R, U, V, A, B) ;
> A1, B1 := Bezout5(p, k, S-A*U1-B*V1, U, V, A, B) ;
> RETURN(p, 2*k, P, sort(U+p^k*U1), sort(V+p^k*V1),
> sort(A+p^k*A1), sort(B+p^k*B1))
> end :
174
On a maintenant loutil ad hoc pour augmenter trs vite lentier modulaire par rapport auquel
on eectue une factorisation de polynmes coecients entiers. On trouve ainsi assez vite une
factorisation ventuelle pour un polynme coecients entiers, ou au contraire son irrductibilit.
> _seed := 1713 ;
> P := rndP(10, 10) ;
> RootsSup(P) ;
_seed := 1713
P := X
10
+ 4 X
9
+ 8 X
8
+ 2 X
7
+ 9 X
6
+ 3 X
5
+ 4 X
4
+ X
3
+ 9 X
2
+ 5
8.
> fs := Berl(11, P) ;
fs := [X
2
+ 4 X + 2, X
8
+ 6 X
6
+ 8 X
4
+ 4 X
3
+ 5 X
2
+ 6 X + 8]
Deux facteurs, cest la situation idale pour Hensel. Il faut prparer les donnes.
> U, V := op(fs) ;
U, V := X
2
+ 4 X + 2, X
8
+ 6 X
6
+ 8 X
4
+ 4 X
3
+ 5 X
2
+ 6 X + 8
> Gcdex(U, V, X, A, B) mod 11 ;
1
> p,k,P,U,V,A,B := Hensel(11,1,P,U,V,A,B) : U ; V ;
X
2
+ 92 X + 68
X
8
+ 33 X
7
+ 50 X
6
+ 55 X
5
+ 19 X
4
+ 81 X
3
+ 93 X
2
+ 94 X + 41
Le facteur de degr 2 nest pas possible, car il devrait tre X
2
29 X + ... mais ceci est incompatible
avec la majoration par 8 des racines. Vrication.
> irreduc(P) ;
true
Considrons comme plus haut un cas certainement factorisable.
> _seed := 16 :
> P := sort(expand(rndP(5,4)*rndP(5,6))) ;
> RootsSup(P) ;
P := X
10
+ 2 X
8
+ 4 X
7
+ 2 X
6
+ 12 X
5
+ 4 X
4
+ 16 X
3
+ 8 X
2
+ 8 X + 8
3.287503660
> fs := Berl(11, P) ;
fs := [X + 4, X
4
+ 2 X
2
+ 2, X
5
+ 7 X
4
+ 5 X
3
+ 6 X
2
+ 9 X + 1]
Une racine est majore par 3.3 et X + 4 ne peut pas venir dun Z-facteur. Regroupons les deux
premiers facteurs.
> U := Expand(fs[1]*fs[2]) mod 11 ; V := fs[3] ;
U := X
5
+ 2 X
3
+ 2 X + 4 X
4
+ 8 X
2
+ 8
V := X
5
+ 7 X
4
+ 5 X
3
+ 6 X
2
+ 9 X + 1
> Gcdex(U, V, X, A, B) mod 11;
1
175
> p,k,P,U,V,A,B := Hensel(11,1,P,U,V,A,B) : U ; V ;
X
5
+ 70 X
4
+ 2 X
3
+ 19 X
2
+ 2 X + 19
X
5
+ 51 X
4
+ 60 X
3
+ 39 X
2
+ 53 X + 45
Mais les coecients de X
4
sont impossibles. On essaie lautre combinaison.
> U := Expand(fs[1]*fs[3]) mod 11 ; V := fs[2] ;
U := X
6
+ 4 X
3
+ 4 X + 4
V := X
4
+ 2 X
2
+ 2
> Gcdex(U, V, X, A, B) mod 11;
1
> p,k,P,U,V,A,B := Hensel(11,1,P,U,V,A,B) : U ; V ;
X
6
+ 4 X
3
+ 4 X + 4
X
4
+ 2 X
2
+ 2
Cette fois les facteurs potentiels restent curieusement constants. Continuons.
> p,k,P,U,V,A,B := Hensel(11,2,P,U,V,A,B) : U ; V ;
X
6
+ 4 X
3
+ 4 X + 4
X
4
+ 2 X
2
+ 2
> p,k,P,U,V,A,B := Hensel(11,4,P,U,V,A,B) : U ; V ;
X
6
+ 4 X
3
+ 4 X + 4
X
4
+ 2 X
2
+ 2
Cette fois il sagit dune factorisation certaine modulo :
> 11^8 ;
214358881
On est donc certain davoir une vraie factorisation entire, quon aurait pu essayer plus vite. Vri-
cation.
> factor(P) ;
(X
4
+ 2 X
2
+ 2) (X
6
+ 4 X
3
+ 4 X + 4)
Jouons trouver ainsi des factorisations leves de X
4
+ 1 ;
> P := X^4+1 ;
P := X
4
+ 1
> Berl(3, P) ;
[X
2
+ 2 X + 2, X
2
+X + 2]
> U,V := op(%) ;
> Gcdex(U,V,X,A,B) mod 3 ;
> p,k := 3, 1 ;
U, V := X
2
+ 2 X + 2, X
2
+X + 2
1
176
p, k := 3, 1
> for i from 1 to 6 do
> p,k,P,U,V,A,B := Hensel(p,k,P,U,V,A,B)
> od :
> k, p^k ; U ; V ;
64, 3433683820292512484657849089281
X
2
+ 1352955588233944339554610415792 X+ 3433683820292512484657849089280
X
2
+ 2080728232058568145103238673489 X+ 3433683820292512484657849089280
177
C Annexe : Systmes linaires dans GF(p
d
)
(F. Sergeraert)
> restart :
Exemple dans GF( 3
4
).
On prend un polynme irrductible de degr 4 dans F
3
, aect irr34.
> irr34 := op(1, select(has, Factor(x^81-x) mod 3, 4)) ;
irr34 := x
4
+ 2 x
3
+ 2 x
2
+x + 2
Le polynme irrductible obtenu par ce procd nest pas forcment le mme dune session lautre.
On aliasse une racine de ce polynme dans une extension de F
3
, de sorte que GF(3
4
) = F
3
[ ].
> alias(alpha = RootOf(irr34) mod 3) ;

La procdure rnd3 gnre un entier modulo 3 pseudo-alatoire.


> rnd3 := rand(0..2) :
> seq(rnd3(), i = 1..5) ;
0, 2, 0, 2, 1
La procdure rnd34 gnre un lment pseudo-alatoire de GF( 3
4
).
> rnd34 := () -> add(rnd3()*alpha^i, i=0..3) :
> seq(rnd34(), i = 1..5) ;
2 + 2 + 2
2
+
3
, 1 +, 2 + 2 +
2
, 2
2
,
2
La matrice A est une matrice 3x3 pseudo-alatoire coecients dans GF( 3
4
).
> A := matrix(3, 3, rnd34) ;
A :=
_
_
1 + 2
2
+ 2
3
2 + 2 + 2
3
2 + 2
2
+ 2
3
2
2
2 + +
2
1 +
3
2 + 2 +
3
1 +
2
+ 2
2
_
_
Idem pour un vecteur second membre.
> b := vector(3, rnd34) ;
b :=
_

3
,
3
, 2 + 2
2

Linsolve(...) mod 3 permet de rsoudre dans GF( 3


4
).
> x := Linsolve(A,b) mod 3 ;
x :=
_

3
+ 2
2
+ 2, +
2
, 2

Vrication. Calcul de Ax b.
> zerov := evalm(A &* x - b) ;
178
zerov :=
_
(1 + 2
2
+ 2
3
) (
3
+ 2
2
+ 2) + (2 + 2 + 2
3
) ( +
2
) + 4 + 4
2
+ 3
3
,
2
2
(
3
+ 2
2
+ 2) + (2 + +
2
) ( +
2
) +
3
+ 2,
(2 + 2 +
3
) (
3
+ 2
2
+ 2) + (1 +
2
) ( +
2
) + 2 + 2
2
2
_
Les termes du vecteur obtenu ne sont pas rduits leur forme canonique dans GF(3
4
) = F
3
[
]. Pour obtenir la rduction.
> map(item -> Expand(item) mod 3, zerov) ;
[0, 0, 0]
179
D Exercices de prparation lexemen
D.1 EXAMEN du lundi 6 septembre 2004, 9h 12h, lInstitut Fourier
I) On considre lanneau quotient A = Z[X]/(X
2
5, 19).
(a) Montrer que A est isomorphe lanneau quotient B = F
19
[X]/(X
2
5).
(b) Trouver tous les idaux premiers de A.
(c) Trouver tous les diviseurs de zro de A.
(d) Trouver le nombre dlments inversibles de lanneau A.
II) Soit le polynme P(X) = X
6
+ X
3
+ 1 de F
2
[X].
(a) Montrer que P(X) est irrductible. Quel est son corps de rupture F ?
(b) On note une racine de P dans F, et =
4
+
5
. Dterminer lordre de dans le groupe F

et calculer
7
.
(c) Montrer que le plus petit sous-corps de F contenant
3
est F
4
.
(d) Dterminer les autres sous-corps de F, et donner la liste de leurs lments en fonction de ou .
III) On considre le corps ni F
71
.
(a) Montrer que 7 est un gnrateur de F

71
.
(b) Calculer 7
1
et 7
100
dans le corps F
71
.
(c) Combien lquation x
2
+x + 20 = 0 a-t-elle de solutions dans F
71
?
IV) On considre lentier n = pq o p et q sont premiers distincts, on note d = pgcd(p 1, q 1). Pour
tout entier b 1, lentier n est dit pseudopremier de base b si n est premier avec b et b
n1
1 mod n.
Montrer que n est pseudopremier de base b si et seulement si on a b
d
1 mod n.
b) Parmi les entiers b premiers n compris entre 1 et n, quelle est la proportion des bases pour
lesquelles n
c) Calculer cette proportion pour le nombre n = 341.
180
D.2 EXAMEN du 27 janvier 2004, de 14h 17h, lInstitut Fourier
I) Soit p un nombre premier impair.
(a) Dans Z/pZ, on pose 1 = 1 mod p. Montrer que 1 est de la forme x
4
(x Z/pZ), si et
seulement si p 1 mod 8.
(b) On suppose p 3 mod 8. Dterminer le symbole de Legendre
_
2
p
_
.
(c) Factoriser le polynme X
4
+ 1 de (Z/11Z)[X] en irrductibles.
II) (a) Soit Z[i] le sous-anneau a +bi [ a, b Z de C. Montrer que Z[i] est euclidien.
(b) Rsoudre le systme linaire suivant sur Z[i] :
_
_
_
(4 +i)x
1
+ (1 +i)x
2
+ (4 +i)x
3
= 5 + 2i
4x
1
+x
2
+ 4x
3
= 5
x
1
2x
2
+x
3
= 1.
III) (a) Construire un corps F
9
de 9 lments.
(b) Dterminer tous les lments dordre donn dans le groupe multiplicatif F

9
.
(c) Trouver tous les points rationnels sur F
9
de la conique projective
C : X
2
+ 2XY + 2Y
2
+Z
2
= 0
(d) Montrer que la courbe C est rationnelle, et donner une paramtrisation de la courbe en coordonnes
anes x, y telles que X = xZ, Y = yZ.
(e) La courbe C est-elle lisse ?
IV) Soit le polynme P(X) = X
4
+X
2
1 de F
3
[X].
(a) Montrer que P(X) est irrductible et quil existe une racine de P dans F
81
.
(b) Soit =
2
. Montrer que F
9
est un gnrateur du groupe F

9
.
(c) Trouver lordre du polynme P.
(d) Est-ce que +
2
engendre une base normale de F
81
?
V) On considre avec les notations usuelles, une clef publique RSA :
(n, e) = (55, 3),
et soit E : x x
e
mod n lapplication de cryptage de lensemble Z/nZ dans Z/nZ.
(a) Calculer la clef secrte d correspondente, telle que lapplication D : y y
d
mod n soit rciproque
de E.
(b) On considre le message m = 7. Dterminer le message C obtenu en cryptant m avec la clef
publique RSA(n, e).
(c) Dcrypter le message C avec la clef secrte d.
181
Rfrences
Livres de base :
[AF] Jean-Marie Arnaudis et Henri Fraysse Algbre, Dunod, Paris, 1987. xi+691 pp.
[Dem] Michel Demazure, Cours dalgbre. Primalit. Divisibilit. Codes., Nouvelle Bibliothque
Mathmatique, 1. Cassini, Paris, 1997. xviii+302 pp.
[God] Roger Godement, Cours dalgbre., Hermann, Paris, 1969
[La] Serge Lang , Algebra. Reading, Mass. : AddisonWesley (1965).
[Se70] J. P. Serre, Cours darithmtique. Paris, Press Univ. France, 1970.
[VdW71] B.L. van der Waerden, Algebra I,II, New York : Springer Verlag, 1971, 1967.
Livres supplmentaires :
[BS85] Borevich, Z.I., Shafarevich, I.R. Number Theory. Traduction anglaise. : New
York/London : Academic Press, 1966.
[Coh96] Cohen, H. A course in computational algebraic number theory. Graduate Texts in Mathema-
tics, 138. Springer-Verlag, Berlin, 1996. xii+534 pp. Third printing
[Kob87] Neal Koblitz, A course of number theory and cryptography, Graduate texts in mathematics
114, New York : Springer Verlag, 1987.
[Knu81] D.E. Knuth The art of computer programming. Vol 2. Seminumerical algorithms. 2nd edition.
AddisonWesley, Reading (1981).
[Li-Ni] Rudolf Lidl et Harald Niederreiter, Introduction to nite elds and their applications.
AddisonWesley : Reading, 1983
[Ma-Pa] Yu.I. Manin et A.A.Panchishkin, Number Theory I : Introduction to Number Theory,
Encyclopaedia of Mathematical Sciences, vol. 49, Springer-Verlag, 1995, 303 p.
[Mon88] D. Monasse, Mathmatique et Informatique. Classes prparatoires. Vuibert, 1988
[Se70] J. P. Serre, Cours darithmtique. Paris : Presses Univ. France, 1970.
[Ste] S. A. Stepanov, Codes on algebraic curves. Kluwer Academic Publishers. vii, 350 p., 1999
[T-MF] Tenenbaum G., Mendes-France, Les nombres premiers, Collection Que Sais-Je, Paris,
Press Univ. France, 1997
Articles et autres sources :
[AGP94] Alford W.-R. Granville A. Pomerance C. There are innitely many Carmichael num-
bers. Ann. Math. 139, 703722 (1994).
[Bor03] Bornemann, F. Primes is in P, une avance accessible lhomme ordinaire. Gazette des
Mathmaticiens No 98, pp.14-30, Octobre 2003.
[Le1] H.W.Lenstra, Jr., Factoring integers with elliptic curves, Ann. Math., 126, no. 3 (1987),
649-673
[Pey] Emmanuel Peyre, Corps nis et courbes elliptiques. DESS Cryptologie, scurit et codage
dinformation, Modules A1A et A1B, Grenoble, 2002, pp. 1-128
[RSA] R. L. Rivest, A. Shamir et L. M. Adleman, A Method for Obtaining Digital Signatures
and Public-Key Cryptosystems, CACM, 21,1978, 120126
182
[Stein] William Stein, An Explicit Approach to Number Theory ( paratre, voir page
internet : http ://modular.fas.harvard.edu/edu/Fall2001/124/lectures).
183