Vous êtes sur la page 1sur 19

Univ.

Lille 1 - Master Info 2011-2012


Principes et Algorithmes de Cryptographie
Structures algbriques et algorithmes

Table des matires


1 Entiers et oprations sur les entiers 2 3.2.2 Algorithme binaire . . . . . . 12
1.1 Taille d'un entier . . . . . . . . . . . 2 3.2.3 Algorithme d'Euclide tendu 12
1.2 Les entiers dans l'ordinateur . . . . . 3 3.2.4 Inverse modulaire . . . . . . . 14
1.3 Arithmtique sur les entiers . . . . . 3 3.3 Racines carres modulo n . . . . . . 15
1.3.1 L'addition . . . . . . . . . . . 3 3.3.1 Cas n premier . . . . . . . . . 15
1.3.2 La multiplication . . . . . . . 4 3.3.2 Cas n produit de deux
1.4 Nombres premiers . . . . . . . . . . 4 nombres premiers . . . . . . 16
1.5 Nombre de nombres premiers . . . . 4
1.5.1 Tests de primalit . . . . . . 5 4 Corps 16
4.1 Structure de corps . . . . . . . . . . 16
2 Groupes 6 4.2 Proprits des corps . . . . . . . . . 16
2.1 Structure de groupe . . . . . . . . . 6
4.3 Corps nis . . . . . . . . . . . . . . . 16
2.2 Groupes nis et carrs latins . . . . 7
2.3 Thorme de Lagrange . . . . . . . . 8 4.4 Construction de corps nis . . . . . . 17
2.4 Groupes cycliques . . . . . . . . . . 9 4.4.1 Existence de corps nis non
2.5 Exponentiation . . . . . . . . . . . . 10 premiers . . . . . . . . . . . . 17
4.4.2 Corps 4 lments . . . . . . 17
3 Anneaux 11 4.5 Corps nis q = pn lments . . . . 18
3.1 Structure d'anneau . . . . . . . . . . 11 4.5.1 Polynmes irrductibles . . . 18
3.2 Algorithme d'Euclide . . . . . . . . . 12 4.5.2 Application la construction
3.2.1 Algorithme classique . . . . . 12 de corps nis . . . . . . . . . 18

Bibliographie Notes de cours tablies partir des ouvrages suivants


1. Cours d'algbre. Primalit, divisibilit, codes de Michel Demazure, Cassini, 1997.
2. The art of computer programming, vol 2, seminumerical algorithms de Donald E. Knuth, Addison
Wesley, 3me dition, 1998.
3. A course in computational algebraic number theory de Henri Cohen, Springer, 4me dition, 2000.
4. Modern Computer Algebra de Joachim von zur Gathen et Jrgen Gerhard, Cambridge university
press, 1999.
5. Handbook of applied cryptography de Alfred Menezes & al., CRC Press, 1996. Disponible par internet
l'adresse http://www.cacr.math.uwaterloo.ca/hac/.
NOTES DE COURS ENCORE INACHEVEES :
 Theorme chinois des restes

1
1 Entiers et oprations sur les entiers
1.1 Taille d'un entier
Il existe plusieurs notations possibles pour les nombres entiers. En particulier, dans la numration de
position, les entiers peuvent tre reprsents par des mots nis sur un alphabet dont les symboles sont
usuellement appels chires. Ainsi le nombre entier qui donne la valeur (arrondie l'entier infrieur) de
cent euros en francs franais se note 657 en base 10. Ce mot de trois lettres (ou chires) qui dnote l'entier
657 signie que cet entier est gal
657 = 6 102 + 5 101 + 7 100 ,

c'est dire une somme de puissances de 10 conscutives coecientes par des nombres compris entre 0
et 9 = 10 1.
On comprend alors que par le mme procd, on peut crire cet entier dans d'autres bases B au moins
gales 2. Par exemple en base 2, puisque l'on a
657 = 1 29 + 0 28 + 1 27 + 0 26 + 0 25 + 1 24 + 0 23 + 0 22 + 0 21 + 1 20 ,

le nombre 657 peut s'crire en base 2 avec le mot de dix chires binaires 1010010001.
Nous voyons donc que selon la base de numration choisie le mot dnotant 657 peut tre plus ou moins
long. Et mme pour une base xe la longueur n'est pas unique, puisque on peut toujours prxer un
mot dnotant un entier par un mot de la forme 0k . Par exemple en base 10, les mots 657, 0657, 00657,
. . . dnotent tous le mme entier. Lorsque l'criture ne comprend pas de 0 en tte, on parle d'criture
standard.
Nous donnons donc la dnition suivante de la taille d'un entier.
Dnition 1.1. La taille d'un entier n > 0 en base B 2, note |n|B , est la longueur du plus petit mot
le dnotant dans cette base. Autrement dit, c'est le nombre de chires ncessaires pour l'criture standard
de l'entier n en base B , c'est--dire sans zros superus gauche.
Par exemple, |657|10 = 3 et |657|2 = 10.
Une expression de la taille d'un entier est donne par le throrme qui suit.
Thorme 1.1.
|n|B = blogB nc + 1.
Dans ce thorme, la notation bxc dsigna la partie entire du rel x, c'estdire le plus grand
nombre entier infrieur ou gal x, et la notation logB x dsigne le logarithme en base B de x, c'est
dire logB x = ln B.
ln x

La formule exacte de l'expression de la taille d'un entier donne par le thorme 1.1 peut se simplier
par l'approximation
|n|B logB n,
approximation d'autant plus valable que l'entier n est grand.
La taille d'un entier crot donc logarithmiquement en fonction de sa valeur, et comme la croissance des
fonctions logarithmiques est assez lente, cela explique la capacit de la numration de position dnoter
de trs grands nombres entiers.
Corollaire 1.1.
|n|B ln B 0
= logB B 0 .
|n|B 0 ln B
Ainsi pour de trs grands entiers, le rapport des tailles dans deux bases direntes est approximati-
vement constant. Dans le cas des bases B = 10 et B 0 = 2 ce rapport est
log10 2 0.3010299957,

autrement dit la taille de l'criture en base 10 d'un entier est approximativement gale 30% de celle en
base 2.

2
1.2 Les entiers dans l'ordinateur
Il faut distinguer entre les entiers machine qui sont ceux reprsentables dans un registre du processeur,
et les autres qui ne le sont pas, souvent nomms entiers multiprcision.
Les registres des processeurs ont une taille xe (couramment 32 ou 64 bits sur les PC actuels). Les
entiers machine sont donc les entiers reprsentables par des mots binaires d'une taille xe n, c'estdire
les entiers de l'intervalle [[0, 2n 1]] dans leur version non signe, ou les entiers de [[2n1 , 2n1 1]] dans
leur version signe.

Non signs Signs


taille min max min max
n = 32 bits 0 232 1 4 109 231 2 109 231 1 2 109
n = 64 bits 0 264 1 18 1018 263 9 1018 263 1 9 1018

Table 1  Entiers machine


L'arithmtique sur les entiers machine est eectue par l'unit arithmtique et logique du processeur.
Si on souhaite travailler avec des entiers dpassant les limites des entiers machine, et c'est le plus sou-
vent le cas en cryptographique, il faut utiliser une reprsentation en multiprcision. Plusieurs ralisations
sont possibles.
Par exemple, la bibliothque GMP 1 de programmation de calculs en multiprcision, implmente les
entiers multiprcision sous forme de tableaux dynamiques de mots machines considrs comme des chires
de la base B = 2n (avec n = 32 ou 64), avec un champ supplmentaire pour indiquer le nombre N de
mots utiliss et le signe s de l'entier reprsent. Autrement dit l'entier
X
a = (1)s ai B i
0iN

est reprsent par le signe s et l'entier N ainsi qu'un tableau des entiers machine a0 , a1 ,. . . aN .
Bien videmment, pour les entiers multiprcision, il faut programmer les oprations arithmtiques de
base (addition, multiplication, . . . ), et c'est ce que fait la bibliothque GMP.

1.3 Arithmtique sur les entiers


1.3.1 L'addition

Algorithme 1 Addition de deux entiers multiprecision de mme signe


Entre: a = (1)sP 0iN ai B i et b = (1)s 0iN bi B i deux entiers de mme signe s.
P P

Sortie: c = (1)s 0iN +1 ci B i tel que c = a + b.


1: 0 0
2: pour i = 0 . . . N faire
3: ci ai + bi + i , i+1 0
4: si ci B alors
5: ci ci b, i+1 1
6: n si
7: n pour
8: cN +1 N +1
retourner (1)s 0iN +1 ci B i
P
9:

Les oprations d'addition et de soustraction apparaissant aux lignes 3 et 5 de l'algorithme 1 sont des
oprations sur les entiers machine.
Le nombre d'oprations sur les entiers machine requis dans l'addition de deux entiers multiprcision
de taille N par l'algorithme 1 est en O(N ). Cet algorithme est donc linaire en la taille des entiers ajouts.
P On peut facilement adapter l'algorithme 1 en un algorithme d'addition de deux polynmes A(X) =
0iN ai X et B(X) = 0iN bi X . L'algorithme est alors plus simple car il est inutile de grer les
i i
P
retenues comme dans le cas des entiers.
L'addition de la ligne 2 de l'algorithme 2 peut tre une addition de deux entiers, deux rationnels, deux
rels, deux complexes selon l'espace des coecients des polynmes considrs.
1. GNU Multiple Precision, http://gmplib.org/

3
Algorithme 2 Addition de deux polynmes
Entre: A(X) =P 0iN ai X i et B(X) = 0iN bi X i deux polynmes de degr N
P P

Sortie: C(X) = 0iN ci X i avec C = A + B .


pour i = 0 . . . N faire
1:

2: ci ai + bi
3: n pour
retourner ci X i
P
4:
0iN

1.3.2 La multiplication

Algorithme 3 Multiplication de deux entiers multiprcision


Entre: a = (1)s 0iN ai B i et b = (1)s 0iM bi B i deux entiers.
P P
Sortie: c = ab.
pour i = 0 . . . N faire
1:

2: ci 0
3: pour j = 0 . . . M faire
4: p ai bj . p s'crit p = p1 B + p0 avec 0 pi < B
5: ci ci + p0 B i+j + p1 B i+j+1
6: n pour
7: n pour
retourner (1)s+t ci B i .
P
8:
0iN

Le nombre d'oprations (additions et multiplications) sur les entiers machines dans le calcul du produit
de deux entiers de taille N et M est en O(N M ). Cet algorithme est donc quadratique en la taille des
entiers multiplis.

1.4 Nombres premiers


Les nombres premiers sont les nombres qui sont divisibles par exactement deux nombres : eux-mmes
et 1 2 .
L'intrt essentiel des nombres premiers rside dans le thorme fondamental de l'arithmtique.
Thorme 1.2. Thorme fondamental de l'arithmtique
Tout nombre entier non nul possde une unique dcomposition en facteurs premiers.

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
53 59 61 67 71 73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173 179 181 191 193 197
199 211 223 227 229 233 239 241 251 257 263 269 271 277 281
283 293 307 311 313 317 331 337 347 349 353 359 367 373 379
383 389 397 401 409 419 421 431 433 439 443 449 457 461 463
467 479 487 491 499 503 509 521 523 541 547 557 563 569 571
577 587 593 599 601 607 613 617 619 631 641 643 647 653 659
661 673 677 683 691 701 709 719 727 733 739 743 751 757 761
769 773 787 797 809 811 821 823 827 829 839 853 857 859 863
877 881 883 887 907 911 919 929 937 941 947 953 967 971 977
983 991 997
Table 2  Liste des nombres premiers infrieurs 1000.

1.5 Nombre de nombres premiers


Thorme 1.3. 1. Il existe une innit de nombres premiers (Euclide).
2. On se place ici dans l'ensemble N des entiers naturels. La notion de nombres premiers peut tre tendue l'ensemble

Z des entiers relatifs, et ce sont alors les nombres ayant exactement 4 diviseurs.

4
2. Le nombre (n) de nombres premiers infrieurs ou gaux n est une fonction croissante avec n
quivalente l'inni
n
(n)
ln n
(Hadamard, de la Valle Poussin, n XIXme).
3. Plus prcisment, on a pour tout entier n 59
   
n 1 n 3
1+ < (n) < 1+ .
ln(n) 2 ln(n) ln(n) 2 ln(n)

4. Lorsque t est un entier au moins gal 3, le nombre t de nombres premiers de taille t bits est
minor par
2t2
t = (2t ) (2t1 ) > .
(t 1) ln(2)

1.5.1 Tests de primalit


Il existe plusieurs algorithmes pour tester la primalit d'un nombre entier.
L'un des tests les plus simples est la recherche du plus petit diviseur de l'entier n
tester, en sachant
que n est premier si et seulement s'il n'admet aucun diviseur
compris entre 2 et n. L'algorithme 4
eectue Cot de l'algorithme 4 dans le pire des cas : O( n) divisions. Autrement dit, pour tester un

Algorithme 4 Test par recherche du plus petit diviseur


Entre: n un entier au moins gal 3.
Sortie: dterminer si n est premier.
1: k2
2: tant que k ne divise pas n et k n faire
3: k k+1
4: n tant que
5: si k divise n alors
6: retourner NON
7: sinon
8: retourner OUI
9: n si

entier de taille t bits : O(2t/2 ) divisions. Soit un algorithme exponentiel en la taille de l'entier tester.
Un thorme d Miller
Thorme 1.4. Thorme de Miller
Soit n > 1 un entier impair. On pose n 1 = 2s u avec u impair. S'il existe un entier 1 < a < n
tel que au 6= 1 (mod n) et a2 u 6= 1 (mod n) pour i [[0, s 1]], alors n est compos, et l'entier a est
i

appel tmoin de non primalit de n.


De plus, si n est un entier impair compos, au moins les trois quarts des entiers a compris entre 1 et
n sont des tmoins de non primalit de n.

Analyse du test de Miller-Rabin


1. Algorithme probabiliste
 toujours correct si rponse ngative ;
 possibilit d'erreur si rponse positive ;
 rponse toujours correcte si n est premier ;
 possibilit d'erreur si n est compos, mais probabilit d'erreur < 14 .
2. Complexit algorithmique (dans le pire des cas) :
 deux calculs de pgcd (cf algo 8 page 12) ;
 une exponentiation modulaire (cf algo 7 page 10 ;
 s lvations au carr.
Algorithme cubique en nombre d'oprations sur les bits.

5
Algorithme 5 Test de non primalit de Miller-Rabin
Entre: n un entier impair au moins gal 3.
Sortie: dterminer si n est premier.
1: choisir au hasard a [[2, n 2]]
2: calculer g = pgcd(a, n)
3: si g > 1 alors
4: retourner NON
5: n si
6: calculer u et s tels que n 1 = 2s u avec u impair
7: b0 au (mod n)
8: si b0 = 1 alors
9: retourner (probablement) OUI
10: n si
11: pour 1 i s faire
12: bi b2i1 (mod n)
13: n pour
14: si bs = 1 alors
15: j min{0 i | bi+1 = 1}
16: sinon
17: retourner NON
18: n si
19: g pgcd(bj + 1, n)
20: si g = 1 ou g = n alors
21: retourner (probablement) OUI
22: sinon
23: retourner NON
24: n si

2 Groupes
2.1 Structure de groupe
Dnition 2.1. Un groupe est un ensemble G muni d'une opration interne, note ci-dessous ?, tel que
les proprits suivantes sont satisfaites :
associativit l'opration ? est associative
a, b, c G (a ? b) ? c = a ? (b ? c) ;

lment neutre l'opration ? possde un lment neutre e


e G a G a ? e = e ? a = a ;

inverse tout lment possde un inverse ( gauche et droite)


a G b G a ? b = b ? a = e.

Le groupe est dit commutatif ou ablien si en plus, l'opration ? est commutative, c'est--dire si
a, b G a ? b = b ? a.

Exemples
1. Les ensembles usuels de nombres signs entiers Z, rationnels Q, rels R, complexes C munis de
l'opration d'addition usuelle (+) sont des groupes commutatifs innis.
2. Les ensembles de nombres entiers modulaires (Z/nZ) muni de l'addition modulo n sont des groupes
commutatifs nis.
3. Si on enlve 0, les ensembles K \ {0}, avec K = Q, ou R, ou C sont des groupes commutatifs innis
pour la multiplication usuelle ().
4. Les ensembles R[X] des polynmes coecients dans R, R tant un anneau (cf la section 3), par
exemple l'un des ensembles de nombres cits ci-dessus, muni de l'addition usuelle des polynmes
sont des groupes commutatifs innis.

6
5. L'ensemble Sn des permutations des entiers de 1 n, muni de l'opration () de composition est
un groupe ni non commutatif.

Contre-exemples
1. L'ensemble N des entiers naturels muni de l'addition usuelle n'est pas un groupe : hormis 0, lment
neutre pour l'addition, aucun entier ne possde d'inverse pour l'addition (il manque les nombres
ngatifs).
2. De mme, l'ensemble A des mots sur un alphabet A, muni de l'opration de concatnation n'est
pas un groupe : hormis le mot vide, lment neutre pour la concatnation, aucun mot ne possde
d'inverse pour la concatnation.
3. Les ensembles de nombres signs munis de l'opration de multiplication usuelle () ne sont pas
des groupes : le nombre 0 interdit l'existence d'un lment neutre. Mme si on enlve le nombre 0
de ces ensembles la structure n'est pas toujours celle d'un groupe. Par exemple, Z \ {0} n'est pas
un groupe puisque en dehors de 1 et 1 aucun entier n'admet d'inverse pour la multiplication. En
revanche, Q \ {0}, R \ {0} et C \ {0} sont des groupes multiplicatifs (innis et commutatifs).
4. Les ensembles Z/nZ\{0} munis de la multiplication modulo n ne sont pas des groupes. En revanche
les ensembles Z/nZ des lments inversibles pour la multiplication modulo n sont des groupes nis
ayant (n) lments, o dsigne la fonction indicatrice d'Euler dnie pour n 2 par
Y 1
(n) = n (1 )
p
p|n

p parcourant les nombres premiers divisant n. Une autre Q expression possible pour s'obtient
partir de la dcomposition en facteurs premiers de n = ri=1 psi i par
r
! r
Y Y
psi i = (psi i psi i 1 ).
i=1 i=1

Remarque Lorqu'un ensemble est muni d'une opration interne qui ne satisfait que les deux premires
proprits (associativit et existence d'un lment neutre), la structure algbrique qui en rsulte est
nomme monode. L'ensemble des entiers naturels munis de l'addition, et l'ensemble des mots sur un
alphabet muni de la concatnation sont des monodes.

Notation additive ou multiplicative ? Deux oprations courantes notes + (addition) et ou bien


(multiplication) apparaissent frquemment (sur les nombres, sur les polynmes, . . . ). Le tableau 3
compare les notations lorque l'opration est additive ou multiplicative.

Notation additive Notation multiplicative


Combinaison de deux lments a, b G a+b a b ou a b ou ab
Compose m-ime d'un lment a G (m N \ {0}) ma = a + . . . + a
| {z }
am = a
| .{z
. . a}
m fois a m fois a
lment neutre (m = 0) 0a = 0 a0 = 1
Inverse (m = 1) a a1
Compose m-ime d'un lment a G (m N) (m)a = m(a) a m
= (a1 )m
m, p Z, a G (m + p)a = ma + pa am+p
= am ap
m, p Z, a G (mp)a = m(pa) a = (am )p
mp

Table 3  Notations additives et multiplicatives


Dans toute la suite, pour dsigner l'opration interne d'un groupe nous utiliserons la notation multi-
plicative.

2.2 Groupes nis et carrs latins


Thorme 2.1. Soit G un groupe ni d'ordre n et a un lment de G. Les applications
ga : G G
x 7 ax

7
et
da : G G
x 7 xa
sont des bijections.
Une consquence de ce thorme est que si l'opration de groupe est reprsente par un tableau deux
entres x et y , lments du groupe, donnant l'lment x y , alors toutes les lignes de ce tableau, ainsi que
toutes les colonnes contiennent chaque lment du groupe une et une seule fois. Autrement dit, ce tableau
est un carr latin. Les deux tableaux prsents en 4 montrent deux carrs latins d'ordre 4 reprsentants
le groupe additif des entiers modulo 4 et le groupe multiplicatif des entiers non nuls modulo 5.

+ 0 1 2 3 1 2 3 4
0 0 1 2 3 1 1 2 3 4
1 1 2 3 0 2 2 4 1 3
2 2 3 0 1 3 3 1 4 2
3 3 0 1 2 4 4 3 2 1

Table 4  Tables des groupes (Z/4Z, +) et (Z/5Z \ {0}, )


Si on assure la correspondance 0 7 a, 1 7 b, 2 7 c et 3 7 d dans le premier tableau et la
correpsondance 1 7 a, 2 7 b, 3 7 d et 4 7 c dans le second, alors les deux tableaux de 4 sont identiques
aprs permutation des deux dernires lignes et des deux dernires colonnes de l'un ou l'autre des deux
tableaux. Les deux groupes (Z/4Z, +) et (Z/5Z \ {0}, ) sont isomorphes.
Il n'existe que deux carrs latins d'ordre 4 non identiques permutation prs des lignes et des colonnes,
et nommage prs des lments : celui des deux groupes prsents dans 4 et celui prsent dans 5. Ce
second carr latin est celui correspondant au groupe produit (Z/2Z Z/2Z, +) dans lequel les lments
sont des couples de deux entiers modulo 2 (autrement dit des mots de deux bits), et l'addition est
l'addition modulo 2 composante par composante (autrement dit le ou-exclusif bit bit).

a b c d
b a d c
c d a b
d c b a

Table 5  Second carr latin d'ordre 4


Une question naturelle qui se pose est celle de savoir si tout carr latin il correspond un groupe ni.
La rponse est positive pour les carr latins jusqu' l'ordre 4 : il existe un seul carr latin d'ordre 1, 2
et 3 qui donnent les tables des groupes additifs Z/1Z, Z/2Z et Z/3Z, et nous venons de voir qu'il existe
deux carr latins d'ordre 4 donnant chacun la table de groupes nis d'ordre 4. Il existe aussi deux carrs
latins d'ordre 5 que la table 6 montre. Le carr de gauche peut tre vu comme la table d'addition modulo
5 et correspond donc la table d'un groupe. En revanche celui de droite ne peut pas tre la table d'un
groupe ni, puisqu'alors l'opration ne serait pas associative. La rponse la question initiale est donc
ngative.

a b c d e a b c d e
b c d e a b d a e c
c d e a b c e d b a
d e a b c d a e c b
e a b c d e c b a d

Table 6  Les deux carrs latins d'ordre 5

2.3 Thorme de Lagrange


Lorsqu'un groupe est ni, le nombre de ses lments est appel ordre du groupe.

8
Thorme 2.2. (Lagrange) Soit G un groupe ni d'ordre n, d'lment neutre 1. Alors quelque soit
l'lment a G, il existe un entier m > 0 tel que
am = 1.

De plus, le plus petit entier non nul m satisfaisant cette relation divise n.
Dnition 2.2. Pour un lment a d'un groupe ni, le plus petit entier m satisfaisant am = 1 est appel
ordre de cet lment.
Corollaire 2.1. Pour tout lment a d'un groupe ni d'ordre n, on a
an = 1.

Corollaire 2.2. L'inverse d'un lment a d'un groupe ni d'ordre n est gal
a1 = an1 .

Remarque : Deux cas particuliers du corollaire 2.1 sont le (petit) thorme de Fermat et le thorme
d'Euler rappels ci-dessous.
Thorme 2.3. (Fermat) Soit n un nombre premier. Alors pour tout entier a non divisible par n on a
an1 (mod n) = 1.

Thorme 2.4. (Euler) Soit n 2 un entier. Pour tout entier a premier avec n on a
a(n) (mod n) = 1.

2.4 Groupes cycliques


Dnition 2.3. Un groupe cyclique est un groupe ni G dans lequel existe un lment a de mme ordre
que l'ordre n du groupe, c'est dire un groupe dont les lments sont de la forme ai avec a G et
0 i < n.
Un lment d'ordre n est appel gnrateur du groupe cyclique.
Thorme 2.5. Le nombre de gnrateurs d'un groupe cyclique d'ordre n est gal (n).

Exemples :
1. Les groupes additifs Z/nZ sont cycliques d'ordre n, et tout entier premier avec n est un gnrateur.
2. Lorsque n est un nombre premier, Z/nZ \ {0} est un groupe cyclique d'ordre n 1.
Tous les groupes nis ne sont pas cycliques. En eet, il existe des groupes nis non commutatifs
(cf 2.1), et les groupes cycliques sont tous commutatifs. Mais il existe aussi des groupes nis commutatifs
non cycliques, comme par exemple le groupe d'ordre 4 (Z/2Z Z/2Z, +) que nous avons vu dans la
partie 2.2 et dont tous les lments non nuls sont d'ordre 2.
Dans un groupe cyclique, une fois x un gnrateur a, l'opration de ce groupe revient une addition
modulo l'ordre du groupe. En eet, pour deux lments quelconques du groupe x = ai et y = aj , on a
x y = ai aj = a(i+j) (mod m)
.

Du point de vue de l'informaticien, il est donc toujours possible de reprsenter les lments d'un
groupe cyclique d'ordre m par les entiers compris entre 0 et m 1 et d'implanter l'opration de ce groupe
par une addition modulo m.
tant donn un groupe cyclique G d'ordre n, il est possible de trouver un gnrateur par une mthode
probabiliste, si on dispose d'un gnrateur alatoire d'lments de G. Le principe consiste tirer un
lment au hasard dans G, et de vrier qu'il est bien gnrateur de G. Pour cette vrication, il sut
de s'assurer que pour aucun diviseur de n, l'lement choisi au hasard n'a pour ordre ce diviseur. Ceci est
facilement faisable ds lors que l'on connat la dcomposition en facteurs premiers de n. L'algorithme 6
suit ce principe.
Les calculs de puissances faire la ligne 2 peuvent tre ecacement eectus grce l'algorithme
d'exponentiation rapide 7 dcrit page 10.

9
Algorithme 6 Trouver un gnrateur d'un groupe cyclique
Entre: G un groupe cyclique d'ordre n, et n = ki=1 pei .
Q i

Sortie: g un gnrateur de G.
1: choisir un lment g G au hasard
2: pour chaque facteur premier pi de n, vrier que g n/pi 6= 1.
3: si c'est le cas alors
4: retourner g
5: sinon
6: revenir en [1]
7: n si

L'algorithme 6 est ecace puisque pour chaque lment g choisi au hasard dans G, la probabilit qu'il
soit un gnrateur est gale (n)
n , et comme pour tout entier n 5, on a

n
(n) > ,
ln ln n
cette probabilit est suprieure ln ln
1
n , ce qui signie qu'en moyenne, ln ln n tirages alatoires d'lments
de G susent pour trouver un gnrateur.

2.5 Exponentiation
L'exponentiation dans un groupe multiplicatif (ou la multiplication par un entier dans un groupe
additif) est une opration frquente en arithmtique, et en cryptographie (cf protocole d'change de
cls de Die-Hellman, cryptosystme RSA, cryptosystme de El Gamal,. . . ). Il est donc utile qu'on s'y
attarde un peu.
Le problme de l'exponentiation est celui du calcul eectif et ecace de am lorsque a est un lment
d'un groupe (ou d'un monode), et m un entier relatif quelconque.
Bien entendu il est toujours possible de calculer am en suivant la dnition am = a . . . a, c'est--dire
en eectuant m 1 multiplications d'lments de G. Cependant, cette mthode devient impensable en
pratique ds lors que m devient grand, ce qui est souvent le cas en cryptographie.
Il nous faut donc un algorithme d'exponentiation plus rapide. L'algorithme 7 rpond ecacement
notre problme. Sa description suppose donns la reprsentation des lments du groupe, et en particulier
de son lment neutre 1, ainsi que l'implantation des oprations de multiplication et d'lvation au carr
dans ce groupe (cette dernire opration pouvant toujours tre ralise grce la premire).

Algorithme 7 Exponentiation dans un groupe


Entre: a G un lment d'un groupe d'ordre n dont l'lment neutre est not 1, m Z
Sortie: c = am
1: r1
2: si m = 0alors
3: retourner r
4: sinon
5: si m < 0 alors
6: s a1 , k m
7: sinon
8: s a, k m
9: n si
10: n si
11: tant que k > 1 faire
12: si k est impair alors
13: r rs
14: n si
15: s s2
16: k k2
17: n tant que
18: r rs
19: retourner r

10
En fait, si on n'utilise que des exposants positifs (m > 0), cet algorithme ne s'applique pas uniquement
au calcul de la puissance d'un lment d'un groupe, puisque qu'alors on n'a pas besoin de calculer d'inverse
de a (ligne 6). En particulier, on peut l'appliquer pour le calcul de am lorsque a est dans (Z, ) ou dans
(Z/nZ).
Le tableau 7 montre les direntes tapes de cet algorithme appliqu a = 2 N et m = 13 (la colonne
i indique les numros des tapes de la boucle tantque, et dans la colonne de la variable k l'criture binaire
est inscrite entre parenthses).

i r s k
1 2 13 (1101)
1 2 4 6 (110)
2 2 16 3 (11)
3 32 256 1 ( 1)
8192

213 = 8192.

Table 7  Calcul de 213 par l'algorithme 7


On peut vrier que ce calcul a ncessit trois lvations au carr (ligne 15) et trois multiplications
(lignes 13 et 18), soit six multiplications en tout si l'lvation au carr est accomplie par une multiplication.
De manire gnrale, le nombre d'oprations dans G eectues pour calculer am , m > 0, avec cet
algorithme est li la reprsentation binaire de l'entier m. En particulier il eectue |m|2 1 lvations
au carr auxquelles il faut ajouter une multiplication pour chaque bit de m valant 1. Par exemple, pour
m = 13 dont l'criture binaire est 1101, on retrouve les |m|2 1 = 3 lvations au carr et les trois
multiplications correspondant aux trois bits valant 1. Ainsi le nombre d'oprations dans G est compris
entre |m|2 et 2|m|2 1, et comme on a |m|2 = blog2 mc + 1, cet algorithme est en O(log m).

Remarque Dans un groupe ni d'ordre n, le calcul de l'inverse (ligne 6 de l'algorithme 7) d'un lment
a peut toujours se faire par le calcul de an1 . Ainsi le calcul de l'inverse se ramne un calcul d'expo-
nentiation. Toutefois, dans certaines structures il existe d'autres mthodes de calcul d'un inverse (cf le
calcul d'inverse dans la section 3.2.4 par exemple).

3 Anneaux
3.1 Structure d'anneau
Dnition 3.1. Un anneau est un ensemble A muni de deux oprations internes, notes usuellement +
et (ou ), tel que les proprits suivantes soient satisfaites :
groupe additif A muni de l'opration + est un groupe commutatif ;
mutiplication associative l'opration est associative
a, b, c A (a b) c = a (b c) ;

lment neutre multiplicatif l'opration possde un lment neutre


e A a A a e = e a = a ;

distributivit l'opration est distributive par rapport +


a, b, c A a (b + c) = a b + a c, et (b + c) a = b a + c a.
L'anneau est dit commutatif si en plus l'opration l'est.
On note usuellement 0 et 1 les lments neutres pour l'addition et pour la multiplication.

11
Exemples
1. Z muni de l'addition et de la multiplication usuelle des entiers est un anneau commutatif.
2. De mme pour Q, R et C.
3. Z/nZ muni de l'addition et de la multiplication modulo n des entiers est un anneau commutatif.
4. L'ensemble R[X] des polynmes coecients dans un anneau R, muni de l'addition et de la
multiplication usuelle des polynmes est un anneau commutatif.
5. L'ensemble Mn (R) des matrices carres d'ordre n coecients dans un anneau R muni de l'addition
et de la multiplication usuelle est un anneau non commutatif.

3.2 Algorithme d'Euclide


3.2.1 Algorithme classique
L'algorithme d'Euclide  classique  permet de calculer le pgcd de deux entiers, ou de deux polynmes.
Il consiste essentiellement eectuer des divisions euclidiennes jusqu' obtenir un reste nul.
L'algorithme 8 permet de calculer le pgcd de deux entiers positifs. Pour des entiers de signe quelconque,
il sut de remarquer que
pgcd(a, b) = pgcd(|a|, |b|).

Algorithme 8 Algorithme d'Euclide pour calculer le pgcd de deux entiers a et b


Entre: a et b deux entiers positifs
Sortie: d = pgcd(a, b)
1: Soient a1 a et b1 b
2: tant que b1 6= 0 faire
3: Calculer le quotient q et le reste r dans la division euclidienne de a1 par b1
4: a1 b1
5: b1 r
6: n tant que
7: retourner a1

Le tableau 8 montre les direntes tapes de l'excution de l'algorithme 8 sur les entiers a = 651 et
b = 69.

i q r a1 b1
651 69
1 9 30 69 30
2 2 9 30 9
3 3 3 9 3
4 3 0 3 0
pgcd(651,69) = 3

Table 8  Calcul de pgcd(651, 69) par l'algorithme 8

3.2.2 Algorithme binaire


L'algorithme binaire de calcul du pgcd est particulirement bien adapt lorsque les entiers sont repr-
sents en binaire, car aucune division n'est eectue, les seules divisions par deux tant ralises par de
simples dcalages droite.
Le tableau 9 montre une trace de l'excution de l'algorithme 9 sur les entiers a = 1200 et b = 1152.

3.2.3 Algorithme d'Euclide tendu


Le thorme de Bzout stipule que le pgcd de tout couple de nombres entiers peut toujours s'exprimer
comme une combinaison linaire coecients entiers de ces deux nombres.

12
Algorithme 9 Algorithme binaire de calcul du pgcd
Entre: a et b deux entiers positifs
Sortie: d = pgcd(a, b)
1: Soient a1 a, b1 b et p 1
2: tant que a1 et b1 sont tous deux pairs faire
3: a1 a1 2, b1 b1 2 et p 2p
4: n tant que
5: tant que a1 6= 0 faire
6: tant que a1 pair faire
7: a1 a1 2
8: n tant que
9: tant que b1 pair faire
10: b1 b1 2
11: n tant que
12: si a1 b1 alors
13: a1 (a1 b1 ) 2
14: sinon
15: t (b1 a1 ) 2
16: b1 a1
17: a1 t
18: n si
19: n tant que
20: retourner p b1

a1 b1 p
1200 1152 1
600 576 2
300 288 4
150 144 8
75 72 16
33 9 16
12 9 16
3 3 16
0 3 16
pgcd(1200,1152) = 48

Table 9  Calcul de pgcd(1200, 1152) par l'algorithme 9

Thorme 3.1. Bezout


Pour tout couple de nombres entiers a et b, il existe deux entiers u et v tels que
pgcd(a, b) = au + bv.

De tels entiers u et v sont appels coecients de Bezout.


Par exemple, pour le couple (a, b) = (651, 69), on peut prendre (u, v) = (30, 283). En eet, on a bien
pgcd(651, 69) = 3 = 651 30 69 283.

On peut adapter l'algorithme d'Euclide de calcul du pgcd pour calculer les coecients de Bezout
d'un couple d'entiers. L'algorithme d'Euclide tendu 10 calcule ces coecients pour un couple d'entiers
positifs.
Le tableau 10 montre une trace de l'excution de l'algorithme 10 sur les entiers a = 651 et b = 69.

Remarque : Les coecients de Bezout ne sont pas uniques. Par exemple, on a pu voir que
pgcd(651, 69) = 651 30 69 283
= 651 7 69 66.

13
Algorithme 10 Algorithme d'Euclide tendu
Entre: a, b deux entiers positifs
Sortie: d = pgcd(a, b) et u, v coecients de Bezout tels que d = au + bv
1: a1 a, b1 b
2: u1 0, u2 1, v1 1, v2 0
3: tant que b1 6= 0 faire
4: Calculer q, r tels que a1 = b1 q + r avec 0 r < b1
5: x u2 qu1 , y v2 qv1
6: a 1 b1 , b1 r
7: u2 u1 , u1 x
8: v 2 v1 , v1 x
9: n tant que
10: retourner d = a1 , u = u2 , v = v2

i q r u1 u2 v1 v2 a b
0 0 1 1 0 651 69
1 9 30 1 0 -9 1 69 30
2 2 9 -2 1 19 -9 30 9
3 3 3 7 -2 -66 19 9 3
4 3 0 -23 7 217 -66 3 0
3 = 651 7 + 69 66

Table 10  Calcul des coecients de Bezout de a = 651 et b = 69 par l'algorithme 10

3.2.4 Inverse modulaire


Un entier a est inversible modulo un entier n si est seulement si a et n sont premiers entre eux,
c'estdire si leur pgcd vaut 1.
Dans ce cas les coecients de Bezout u et v fournissent la relation
pgcd(a, n) = 1 = nu + av.

Si on la considre modulo n cette relation donne l'galit


1 = av (mod n),

ce qui revient dire que la rduction modulo n du coecient v est l'inverse de a dans l'anneau Z/nZ,
a1 (mod n) = v (mod n).

Pour calculer l'inverse modulo n d'un entier a premier avec n, il sut de calculer le coecient de a
dans une relation de Bezout et rduire ce coecient modulo n. C'est ce que fait l'algorithme 11.

Algorithme 11 Calcul de l'inverse d'un entier inversible modulo un autre


Entre: a 1, n 2 deux entiers premiers entre eux
Sortie: a1 (mod n) (entier compris entre 1 et n 1)
a1 a, b1 b
v1 1, v2 0
tant que b1 6= 0 faire
Calculer q, r tels que a1 = b1 q + r avec 0 r < b1
x u2 qu1 , y v2 qv1 a
a 1 b1 , b1 r
v 2 v2 , v1 x
n tant que
retourner v2 (mod n)

Le tableau 11 montre une trace de l'excution de l'algorithme 10 sur les entiers a = 217 et n = 23.

14
i q r v1 v2 a1 b1
0 1 0 23 217
1 0 23 0 1 217 23
2 9 10 1 0 23 10
3 2 3 -2 1 10 3
4 3 1 7 -2 3 1
5 3 0 -23 7 1 0

a1 mod 23 = 7 mod 23 = 7.

Table 11  Calcul de 2171 (mod 23) par l'algorithme 11

k 0 1 2 3 4 5 6 7 8 9 10
k (mod 11) 0 1 4 9 5 3 3 5 9 4 1
k 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
k (mod 11) 0 1 4 9 1 10 6 4 4 6 10 1 9 4 1
Table 12  Carrs modulo 11 et modulo 15
3.3 Racines carres modulo n
Observons les carrs modulo 11 et modulo 15 (cf tables 12).
Nous constatons que modulo 11, seuls les nombres 0, 1, 3, 4, 5 et 9 sont des carrs parfaits, et qu'hormis
0, les autres sont carrs de deux nombres. Et modulo 15, seuls 0, 1, 4, 6, 9 et 10 sont des carrs parfaits
et que 0 est le carr d'un seul nombre, 6, 9 et 10 sont carrs de deux nombres, et 1 et 4 sont carrs de
quatre nombres.
Donc une quation du type
x2 = a (mod n), (1)
dans laquelle n est un entier naturel x, a un entier compris entre 0 et n 1 et x l'inconnue, peut
avoir 0, 1 ou plusieurs solutions.
Les questions qui se posent au sujet de l'quation 1 sont
1. comment connatre l'existence d'une solution ?
2. si elle admet des solutions combien en admet-elle ?
3. comment les calculer ?
Nous allons rpondre ces questions d'abord dans le cas o n est un nombre premier, puis ensuite
dans le cas particulier o n est le produit de deux nombres premiers impairs.

3.3.1 Cas n=p premier


On considre ici l'quation (1) dans le cas o n est un nombre premier p qu'on supposera impair, le
cas p = 2 tant trivial.

Nombre de solutions : Comme l'ensemble Z/pZ des entiers modulo p est un corps lorsque p est un
nombre premier (cf section 4), le nombre de solutions que peut avoir une telle quation ne peut pas
dpasser deux.
En fait seul dans le cas a = 0 l'quation (1) admet une seule solution. En eet lorsque a 6= 0, si on
vrie facilement que si l'quation admet une solution r, alors elle admet aussi n r pour solution, et
comme p est impair, r et p r sont de parits direntes et donc dirents.
Donc l'quation 1 avec a 6= 0 possde 0 ou 2 solutions.
Lorsqu'elle en possde deux, on dit que l'entier a est un rsidu quadratique modulo p.

Dcision : Comment dcider si un entier a est un rsidu quadratique ?


Une consquence du thorme de Lagrange (cf 2.2) est qu'un entier a est un rsidu quadratique modulo
un nombre premier p si et seulement si on a
p1
a 2 (mod p) = 1.
Comme le calcul d'une exponentiation modulaire peut se faire ecacement grce l'algorithme 7, on en
dduit un algorithme de dcision (cf algo 12)

15
Algorithme 12 Algorithme de dcision d'existence d'une racine carre modulo un nombre premier
Entre: p un nombre premier, a un entier compris entre 1 et p 1.
Sortie: Vrai si a est un rsidu quadratique modulo p, Faux dans le cas contraire.
p1
s a 2 (mod p)
si s = 1 alors
retourner Vrai
sinon
retourner Faux
n si

Exemples : Prenons p = 11.


1. Pour a = 9, on a a5 (mod 11) = 1, et donc 9 est un rsidu quadratique modulo 11.
2. Pour a = 6, on a a5 (mod p) = 10, et donc 6 n'est pas un rsidu quadratique modulo 11.

Calcul des solutions : Nous allons limiter le calcul des solutions dans le cas o p (mod 4) = 3 3 .
On suppose que a est un rsidu quadratique modulo p. Dans ce cas, on peut vrier que le nombre r
dni par
p+1
r=a 4 (mod p)
est une racine carre de a. En eet
p+1 p1
r2 = a 2 =aa 2 = a.

On en dduit donc l'algorithme 13 de calcul des racines de l'quation (1).

Algorithme 13 Calcul de racines carres modulo un nombre premier


Entre: p un nombre premier congru 3 modulo 4, et a un rsidu quadratique modulo p
Sortie: les solutions de l'quation x2 = a (mod p)
p+1
ra 4 (mod p)
retourner r et p r

Exemple : Avec p = 11 qui est bien congru 3 modulo 4, et a = 9, on a


a3 (mod p) = 3,

et donc 3 et 11 3 = 8 sont les deux solutions de l'quation (1).

3.3.2 Cas n produit de deux nombres premiers


4 Corps
4.1 Structure de corps
Dnition 4.1. Un corps est un ensemble K muni de deux oprations internes notes + et tel que
1. (K, +, ) est un anneau ;
2. tout lment non nul de K possde un inverse pour la multiplication, autrement dit (K \ {0}, )
est un groupe.

Exemples
1. Q, R et C munis de l'addition et la multiplication usuelles sont des corps innis commutatifs.
2. Si p est un nombre premier Z/pZ muni de l'addition et de la multiplication modulo p est un corps ni
commutatif. On note Fp le corps des entiers modulo p. Ces corps sont appels corps nis premiers.
3. Il existe des mthodes de calcul des solutions dans les autres cas un peu plus complexe, mais qui ne nous intressent

pas.

16
4.2 Proprits des corps
1. L'lment neutre de l'addition est un lment absorbant pour la multiplication, c'estdire
a K a 0 = 0 a = 0.

2. Dans un corps, on a
a a0 = 0 a = 0 ou a0 = 0.
Autrement dit, il n'existe pas de diviseurs de 0.

4.3 Corps nis


Voici quelques proprits supplmentaires des corps nis.
1. L'ordre de l'lment neutre de la multiplication 1 dans le groupe additif (K, +) d'un corps ni K
est un nombre premier. Ce nombre est appel caractristique du corps.
2. Le groupe multiplicatif d'un corps ni est cyclique.

4.4 Construction de corps nis


4.4.1 Existence de corps nis non premiers
Les seuls corps nis que l'on connat ce stade sont les corps premiers Fp = Z/pZ avec p premier.
Existe-t-il d'autres corps nis dont le cardinal n'est pas premier ? Nous allons voir que oui mais pas
pour n'importe quel cardinal.

4.4.2 Corps 4 lments


Cherchons un corps quatre lments K = {0, 1, a, b}. Considrons l'ordre m de 1 dans le groupe
additif (K, +). Comme ce groupe est d'ordre 4, m divise ncessairement 4. Donc m = 1, ou 2, ou 4. De
plus, on sait que l'ordre de 1 est un nombre premier. Par consquent m = 2 et pour tout lment x K ,
x + x = 0. En se souvenant que la table d'addition forme un carr latin nous n'avons plus le choix et
nous obtenons celle reprsente par le tableau 13. Il ressort de cette table d'addition que b = 1 + a (et de

+ 0 1 a b
0 0 1 a b
1 1 0 b a
a a b 0 1
b b a 1 0

Table 13  Table d'addition du corps 4 lments


manire symtrique a = b + 1).
Voyons maintenant la multiplication. Comme 0 est un lment absorbant pour la multiplication, 1
est un lment neutre, et que l'ensemble des lments non nuls forme un groupe multiplicatif, c'est--dire
que la table de multiplication sans la ligne et colonne correspondant 0 est un carr latin 3 3, il n'y a
qu'une seule possibilit de remplir cette table (cf 14).

0 1 a 1+a
0 0 0 0 0
1 0 1 a 1+a
a 0 a 1+a 1
1+a 0 1+a 1 a

Table 14  Table de multiplication du corps 4 lments


Nous avons muni l'ensemble K d'une opration de groupe additif et d'une multiplication tel que les
lments non nuls de K forme aussi un groupe. Il reste vrier que la multiplication est distributive par
rapport l'addition, ce que nous laissons titre d'exercice.

17
Nous avons donc obtenu un corps quatre lments F4 = {0, 1, a, 1 + a}.
On peut remarquer que a2 = 1 + a ou encore a2 a 1 = a2 + a + 1 = 0 (souvenons nous qu'en
caractristique deux, 1 = 1). Autrement dit dans le corps F4 , a est une racine du polynme P (X) =
X 2 + X + 1 F2 [X] (qui n'en a pas dans F2 ).
Si on observe bien les lments de F4 et l'arithmtique obtenue, on peut voir F4 comme l'ensemble des
polynmes coecients dans F2 de degr au plus 1. L'addition dans ce corps n'est alors rien d'autre que
l'addition usuelle des polynmes et la multiplication dans ce corps rien d'autre que la multiplication des
polynmes modulo le polynme P (X) = X 2 + X + 1, la rduction modulo P (X) revenant considrer
que X 2 = X + 1.

Remarques : Cette situation est tout fait analogue celle utilise pour dnir le corps C des nombres
complexes, dans lequel on exprime souvent les nombres complexes sous forme algbrique z = a + ib, avec
a, b R, forme qui exprime les nombres complexes sous forme polynomiale de degr au plus 1 en i. La
forme algbrique de la somme de deux nombres complexes est dnie comme la somme des polynmes
en i les reprsentants, et celle du produit par multiplication polynomiale rduite modulo le polynme
i2 + 1 = 0 (i2 ).

Choix du polynme : Pour dnir le corps F4 , aurait-on pu choisir un autre polynme ? Pour l'ad-
dition peu importe le choix du polynme. En revanche, le polynme inue sur la multiplication. Par
exemple, aurait-on pu choisir Q(X) = X 2 + X ?
La rponse est ngative, parce qu'alors on aurait
a(1 + a) = a + a2 = 0,

et on aurait deux lments non nuls de K dont le produit est nul, ce qui est impossible dans un corps.
L'existence de diviseurs de zro provient du fait que le polynme Q(X) = X(1 + X) n'est pas irrductible
dans F2 [X].

4.5 Corps nis q = pn lments


4.5.1 Polynmes irrductibles
Dnition 4.2. Soit K un corps, et P (X) K[X] un polynme. Le polynme P est irrductible s'il ne
peut pas se mettre sous la forme d'un produit de deux polynmes de degr au moins gal 1.
Les polynmes irrductibles sont aux polynmes ce que sont les nombres premiers aux nombres entiers.
On peut en particulier montrer que tout polynme se dcompose de manire unique ( l'ordre prs des
facteurs et un coecient multiplicatif constant prs) en un produit de polynmes irrductibles.

Exemples :
1. P (X) = X 2 + 1 est irrductible dans R[X].
2. En revanche, P (X) = X 2 + 1 n'est pas irrductible dans F2 [X].
3. Les polynmes de degr 3 irrductibles dans F2 [X] sont X 3 + X 2 + 1 et X 3 + X + 1.
4. De manire gnrale, tout polynme de degr 1 est irrductible dans K[X] et ceci quelque soit le
corps, ni ou non.
Quels sont les polynmes irrductibles ? Combien y en a-t-il ? Comment les reconnatre ? La rponse
est facile pour les corps des rels et des complexes.
1. Dans R[X] les polynmes irrductibles sont tous les polynmes de degr 1 et les polynmes de degr
2 dont le discriminant (le fameux = b2 4ac) est ngatif.
2. Dans C[X] les polynmes irrductibles sont tous les polynmes de degr 1 et eux seulement.
Dans le cas des corps nis, on admettra le thorme suivant qui donne l'existence de polynmes
irrductibles de tout degr.
Thorme 4.1. Soit p un nombre premier. Pour tout entier n 1 il existe un polynme irrductible
coecients dans Fp de degr n.
Le thorme suivant donne une condition ncessaire et susante pour qu'un polynme coecient
dans un corps ni soit irrductible.

18
Thorme 4.2. Soit Fq un corps q Un polynme P Fq [X] de degr n 1 est irrductible si et
seulement si
1. P divise le polynme X q X ,
n

2. et pgcd(X q X, P ) = 1 pour tout diviseur premier t de n.


n/t

Ds lors que l'on connat les diviseurs premiers du degr n (ce qui est quivalent connatre la
factorisation de n) ce thorme donne un algorithme de dcision d'irrductibilit d'un polynme. C'est
l'algorithme 14.

Algorithme 14 Test d'irrductibilit d'un polynme


Entre: P (X) Fq [X] polynme de degr n 1.
Sortie: dcision sur l'irrductibilit de P .
n
1: A X q (mod P (X))
2: si A 6= X alors
3: conclure que P est rductible.
4: n si
5: pour chaque facteur premier t de n faire
si pgcd(xq x, P ) 6= 1 alors
n/t
6:

7: conclure que P est rductible.


8: n si
9: n pour
10: conclure que P est irrductible.

4.5.2 Application la construction de corps nis


Thorme 4.3. Soit n 1 un entier, p un nombre premier et P (X) un polynme de degr n irrductible
dans Fp [X]. Alors l'ensemble Fp [X]/(P (X)) des polynmes coecients dans Fp de degr strictement
plus petit que n, muni de l'addition usuelle et de la multiplication modulo P (X) est un coprs ni q = pn
lments.
Ce thorme est analogue au fait que les entiers considrs modulo un nombre premier forment un
corps.
Corollaire 4.1. Soit p un nombre premier. Pour tout entier n 1 il existe un corps ni qn lments.

Liste des algorithmes


1 Addition de deux entiers multiprecision de mme signe . . . . . . . . . . . . . . . . . . . . 3
2 Addition de deux polynmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Multiplication de deux entiers multiprcision . . . . . . . . . . . . . . . . . . . . . . . . . 4
4 Test par recherche du plus petit diviseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
5 Test de non primalit de Miller-Rabin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6 Trouver un gnrateur d'un groupe cyclique . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7 Exponentiation dans un groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
8 Algorithme d'Euclide pour calculer le pgcd de deux entiers a et b . . . . . . . . . . . . . . 12
9 Algorithme binaire de calcul du pgcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
10 Algorithme d'Euclide tendu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
11 Calcul de l'inverse d'un entier inversible modulo un autre . . . . . . . . . . . . . . . . . . 14
12 Algorithme de dcision d'existence d'une racine carre modulo un nombre premier . . . . 16
13 Calcul de racines carres modulo un nombre premier . . . . . . . . . . . . . . . . . . . . . 16
14 Test d'irrductibilit d'un polynme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

(version du 5 avril 2012.)

19