Introduction `
a la Cryptologie
Chapitre 9 : Anneaux de polynˆ
omes
Michael Eisermann (Institut Fourier, UJF Grenoble)
Ann´
ee 2008-2009
IF / IMAG, Master 1, S1-S2
document mis `
a jour le 7 juillet 2009
FOURIER
INSTITUT
f
i
www-fourier.ujf-grenoble.fr/~eiserm/cours # crypto
1/32
Objectifs de ce chapitre
Les polynˆ
omes sont un outil omnipr´
esent en alg`
ebre
et dans ses nombreuses applications comme la cryptologie.
D´
eveloppement math´
ematique :
Division euclidienne S=P Q +Rtelle que deg R < deg P.
Sur un anneau int`
egre un polynˆ
ome de degr´
ena au plus nracines.
Sous-groupes multiplicatifs finis G⊂K×d’un anneau int`
egre K.
D´
eveloppement algorithmique :
Arithm ´
etique des polynˆ
omes, notamment la division euclidienne.
Application aux anneaux quotients : repr´
esentants et algorithmes.
Recherche d’une racine primitive de K×dans un corps fini.
2/32
Sommaire
1L’anneau des polynˆ
omes
D´
efinition et construction de l’anneau des polyn ˆ
omes
Algorithmes pour l’addition et la multiplication
Propri ´
et´
e universelle et fonctions polynomiales
2La division euclidienne
Propri ´
et´
es du degr´
e
La division euclidienne de polynˆ
omes
Application aux anneaux quotients
3Racines
Racines d’un polynˆ
ome
Racines multiples et d´
eriv ´
ee
Sous-groupes multiplicatifs finis d’un anneau int`
egre
3/32
L’anneau des polynˆ
omes
Th´
eor`
eme
Pour tout anneau commutatif Kil existe un anneau commutatif K[X]tel que :
L’anneau K[X]contient Kcomme sous-anneau et Xcomme ´
el´
ement.
Tout ´
el´
ement P∈K[X]∗s’´
ecrit de mani `
ere unique comme
P=a0+a1X1+· · · +anXno`
un∈N, a0, a1,...,an∈K, an6= 0.
D´
efinition
Dans ce cas on dit que K[X]est l’anneau des polyn ˆ
omes sur l’anneau des
coefficients Ken la variable X. On appelle Pun polyn ˆ
ome sur Ken X.
On d´
efinit le degr´
edeg P:= net le coefficient dominant dom P:= an.
Le polynˆ
ome nul est particulier : on pose deg 0 := −∞ et dom 0 := 0.
Tout polyn ˆ
ome P∈K[X]peut ˆ
etre ´
ecrit de mani `
ere unique comme
P=
∞
X
k=0
akXk
sous-entendant que seul un nombre fini de coefficients aksont non nuls.
Ainsi deg P= sup{k∈N|ak6= 0}avec la convention sup ∅=−∞.
§1.1 4/32
L’anneau des polynˆ
omes : op´
erations
Ce qui compte est la suite des coefficients dans K:
∞
X
k=0
akXk=
∞
X
k=0
bkXk⇐⇒ ak=bkpour tout k∈N.
Pour l’impl´
ementation il suffit donc de stocker les coefficients :
Pour un polynˆ
ome «dense »on stocke toute la suite initiale
(a0, a1, a2,...,an)telle que an6= 0 et ak= 0 pour k > n.
Pour un polynˆ
ome «creux »on ne stocke que les monˆ
omes non nuls.
L’addition et la multiplication des polynˆ
omes sont donn´
ees par
„∞
X
k=0
akXk«+„∞
X
k=0
bkXk«=
∞
X
k=0
(ak+bk)Xk
„∞
X
i=0
aiXi«·„∞
X
j=0
bjXj«=
∞
X
s=0„X
i+j=s
aibj«Xs
Ces formules se traduisent imm´
ediatement en algorithmes.
Si l’on sait impl´
ementer K, alors on sait impl´
ementer K[X].
§1.1 5/32
L’anneau des polynˆ
omes : preuve d’existence par construction
Pour la construction on consid`
ere les suites dans K`
a support fini,
K(N):= (ak)k∈N˛
˛
˛
On a ak∈Kpour tout k∈Net il existe
n∈Ntel que ak= 0 pour tout k > n. ff
Sur K(N)on d´
efinit une addition et une multiplication par
`ak´k∈N+`bk´k∈N:= `ak+bk´k∈Net
`ai´i∈N·`bj´j∈N:= “X
i+j=s
aibj”s∈N.
Lemme (exercice long mais b´
en´
efique)
(K(N),+,·)est un anneau commutatif.
On identifie tout ´
el´
ement a∈Kavec (a, 0,0,0, . . . )∈K(N).
Ainsi l’anneau Kdevient un sous-anneau de l’anneau K(N).
On pose X:= (0,1,0,0, . . . ), ce qui entraˆ
ıne X2= (0,0,1,0, . . . ), etc.
Tout P∈K(N)non nul est de la forme P= (a0, a1,...,an,0, . . . )o`
u
a0, a1,...,an∈Ket an6= 0 : il s’´
ecrit donc de mani `
ere unique comme
P=a0+a1X1+· · · +anXn.
Ceci prouve que K(N)est l’anneau des polynˆ
omes sur Ken la variable X.
§1.1 6/32
L’anneau des polynˆ
omes : v´
erification des axiomes
Pour prouver que (K(N),+,·)est un anneau il faut v´
erifier les axiomes.
L’associativit´
e de (K(N),+) d´
ecoule de celle de (K,+) :
ˆ(ak)k+ (bk)k˜+ (ck)k= (ak+bk)k+ (ck)k= [(ak+bk) + ck]k
= [ak+ (bk+ck)]k= (ak)k+ (bk+ck)k= (ak)k+ˆ(bk)k+ (ck)k˜
La commutativit´
e de (K(N),+) d´
ecoule de celle de (K,+) :
(ak)k+ (bk)k= (ak+bk)k= (bk+ak)k= (bk)k+ (ak)k
L’´
el´
ement neutre de (K(N),+) est le polynˆ
ome nul :
(0)k+ (ak)k= (0 + ak)k= (ak)k.
Dans (K(N),+) l’´
el´
ement oppos´
e de (ak)kest (−ak)k:
(ak)k+ (−ak)k= (ak+ (−ak))k= (0)k.
§1.1 7/32
L’anneau des polynˆ
omes : v´
erification des axiomes
L’associativit´
e de (K(N),·)repose sur celle de (K,·):
ˆ(ai)i·(bj)j˜·(ck)k=“X
i+j=s
aibj”s·(ck)k=“X
i+j+k=t
(aibj)ck”t
=“X
i+j+k=t
ai(bjck)”t= (ai)i·“X
j+k=s
bjck”s= (ai)i·ˆ(bj)j·(ck)k˜
La commutativit´
e de (K(N),·)repose sur de celle de (K,·):
(ai)i·(bj)j=“X
i+j=s
aibj”s=“X
j+i=s
bjai”s= (bj)j·(ai)i
L’´
el´
ement neutre est (1,0,0, . . . ) = (δi)io`
uδ0= 1 et δi= 0 pour i > 0:
(δi)i·(aj)j=“X
i+j=s
δiaj”s= (as)s
La distributivit´
e de (K(N),+,·)repose sur de celle de (K,+,·):
(ai)i·ˆ(bj)j+ (cj)j˜= (ai)i·(bj+cj)j=“X
i+j=s
ai(bj+cj)”s
=“X
i+j=s
aibj+aicj”s=“X
i+j=s
aibj”s+“X
i+j=s
aicj”s= (ai)i·(bj)j+(ai)i·(cj)j
§1.1 8/32
L’anneau des polynˆ
omes : algorithmes
Algorithme 9.1 addition de deux polynˆ
omes
Entr´
ee: les coefficients de A=Pn
k=0 akXket B=Pn
k=0 bkXksur K.
Sortie: les coefficients de la somme C=A+Bsous la forme C=Pn
k=0 ckXk
pour kde 0`
anfaire ck←ak+bkfin pour
retourner (c0,...,cn)
Algorithme 9.2 multiplication de deux polynˆ
omes
Entr´
ee: les coefficients de A=Pm
i=0 aiXiet B=Pn
j=0 bjXjsur K.
Sortie: les coefficients du produit C=A·Bsous la forme C=Pm+n
k=0 ckXk
pour kde 0`
am+nfaire ck←0fin pour
pour ide 0`
amfaire
pour jde 0`
anfaire
ci+j←ci+j+aibj
fin pour
fin pour
retourner (c0,...,cm+n)
!
Cette m´
ethode de multiplication est de complexit´
e quadratique :
elle effectue (m+ 1)(n+ 1) additions et multiplications dans K.
§1.2 9/32
Analogie formelle entre polynˆ
omes et entiers naturels
L’arithm ´
etique des polynˆ
omes et des entiers naturels sont tr`
es similaires.
L’analogie est la plus frappante quand on travaille en base p:
Tout entier naturel A∈N∗s’ ´
ecrit de mani `
ere unique comme
A=a0+a1p+a2p2+. . . anpnou 0≤ak< p, an6= 0.
Tout polyn ˆ
ome A∈Z/
p[X]∗s’´
ecrit de mani `
ere unique comme
A=a0+a1X+a2X2+. . . anXnou ak∈Z/
p, an6= 0.
L’addition et la multiplication dans Z/
p[X]sont tr`
es similaires `
a celles dans N.
Une seule diff´
erence est cruciale : dans le cas des entiers la propagation des
retenues fait que le calcul au rang kpeut avoir un effet au rang k+ 1.
Pour les polynˆ
omes il n’y pas de retenue : ainsi l’arithm´
etique des polynˆ
omes
est plus simple que l’arithm ´
etique des entiers !
On verra plus tard d’autres similarit´
es :
Les anneaux Zet Z/
p[X]sont tous les deux euclidiens.
Ils ont la mˆ
eme asymptotique des ´
el´
ements premiers.
§1.2 10/32
La propri ´
et´
e universelle de l’anneau des polynˆ
omes
Proposition
Soit ϕ:K→Lun morphisme d’anneaux. Soit K[X]l’anneau des polyn ˆ
omes.
Pour tout x∈Lil existe un unique morphisme d’anneaux ˜ϕ:K[X]→Ltel
que ˜ϕ|K=ϕet ˜ϕ(X) = x. Explicitement, ce morphisme est donn ´
e par
˜ϕ(a0+a1X1+· · · +anXn) = ϕ(a0) + ϕ(a1)x1+· · · +ϕ(an)xn.
D´
emonstration. Unicit´
e. — Tout morphisme d’anneaux ˜ϕ:K[X]→L
v´
erifiant ˜ϕ|K=ϕet ˜ϕ(X) = xest de la forme explicit´
ee dans l’´
enonc´
e.
Existence. — La formule d´
efinit une application ˜ϕ:K[X]→L.
Exercice : v´
erifier qu’il s’agit d’un morphisme d’anneaux.
(O`
u utilise-t-on les propri ´
et´
es de l’anneau des polynˆ
omes K[X]?)
Notation
Si K=Let ϕ:K→Lest l’identit´
e, ou si K⊂Let ϕ:K→Lest l’inclusion,
alors on ´
ecrit simplement P(x)pour ˜ϕ(P):
P=a0+a1X1+· · · +anXn=⇒P(x) = a0+a1x1+· · · +anxn.
Autrement dit, on substitue la variable Xpar l’´
el´
ement x.
§1.3 11/32
Polynˆ
omes vs fonctions polynomiales
Corollaire
Tout polyn ˆ
ome P∈K[X]d´
efinit une fonction fP:K→Kpar x7→ P(x).
Pour a∈Kla fonction fa=aest constante. Nous avons fX= idKet
fP+Q=fP+fQet fP·Q=fP·fQ.
Autrement dit, nous avons un morphisme d’anneaux K[X]→KK,X7→ idK.
!
Pour K=Rnous avons l’habitude d’identifier Pet fP.
On verra plus bas que c’est possible si l’anneau Kest int`
egre et infini.
En g´
en´
eral ce n’est pas possible car fP=fQne garantit pas que P=Q.
Exemple
Soit K=Z/
pou p∈Nest premier. Consid´
erons P=Xp−Xdans Z/
p[X].
Alors P6= 0 mais fP= 0 d’apr `
es le petit th´
eor`
eme de Fermat.
Remarque (Exercice)
Pour tout anneau Ket tout ensemble Ω, l’ensemble KΩdes fonctions
f: Ω →Kest un anneau pour l’addition et la multiplication «point par
point »:(f+g)(x) = f(x) + g(x)et (f·g)(x) = f(x)·g(x)pour tout x∈Ω.
En particulier ceci explique l’anneau KKdes fonctions K→Kci-dessus.
§1.3 12/32
´
Evaluation d’un polynˆ
ome d’apr`
es Horner
Soit P=a0+a1X+a2X2+· · · +anXnun polyn ˆ
ome sur K.
Comment calculer efficacement l’´
evaluation P(x)pour x∈K?
M´
ethode na¨ıve : On calcule akxk=akx· · · xen effectuant kmultiplications.
Impl´
ement´
e ainsi, le calcul de P(x) = a0+a1x+a2x2+· · · +anxn
n´
ecessite nadditions et 1 + 2 + · · · +n=n(n+1)
2multiplications.
M´
ethode de Horner : On ´
evalue P(x)par l’expression ´
equivalente suivante :
P(x) = ((· · · ((anx+an−1)x+an−2)· · · x+a2)x+a1)x+a0.
Ceci ne n´
ecessite que nadditions et nmultiplications !
Pour n= 100 on passe de 5050 `
a100 multiplications.
Pour n= 1000 on passe de 500500 `
a1000 multiplications.
Algorithme 9.3 ´
evaluation d’un polynˆ
ome selon Horner
Entr´
ee: des coefficients a0, a1, a2,...,an∈Ket un ´
el´
ement x∈K.
Sortie: la valeur y=a0+a1x+a2x2+···+anxn.
y←an,
pour kde n−1`
a0faire y←y·x+akfin pour
retourner y
§1.3 13/32
Propri ´
et´
es du degr´
e
Proposition
Par construction, tout anneau de polynˆ
omes K[X]sur un anneau K
vient avec une fonction deg : K[X]→N∪ {−∞}.
1deg(P+Q)≤sup{deg P, deg Q},
avec ´
egalit´
e ssi deg P6= deg Qou dom P+ dom Q6= 0.
2deg(P Q)≤deg P+ deg Q,
avec ´
egalit´
e ssi P= 0 ou Q= 0 ou dom P·dom Q6= 0.
Si dom P·dom Q6= 0, alors dom(P Q) = dom P·dom Q.
D´
emonstration. L’assertion (1) est claire.
L’assertion (2) est triviale si P= 0 ou Q= 0, suivant la convention
(−∞) + deg Q=−∞ et deg P+ (−∞) = −∞ dans ces deux cas.
Si P6= 0 et Q6= 0, il suffit d’expliciter le produit : Supposons que
P=a0+a1X1+· · · +anXno`
uan6= 0,
Q=b0+b1X1+· · · +bmXmo`
ubm6= 0.
Alors P Q =a0b0+ (a0b1+a1b0)X1+· · · + (anbm)Xm+n.
Si anbm6= 0, alors deg(P Q) = n+met dom(P Q) = dom P·dom Q.
§2.1 14/32
Anneaux int`
egres
Corollaire
Pour tout anneau Kles conditions suivantes sont ´
equivalentes :
1L’anneau Kest int`
egre.
2On a deg(P Q) = deg P+ deg Qpour tout P, Q ∈K[X].
3L’anneau des polynˆ
omes K[X]sur Kest int`
egre.
D´
emonstration. (1) ⇒(2) : Clair pour P= 0 ou Q= 0. Si P, Q ∈K[X]∗,
alors dom P6= 0 et dom Q6= 0, donc dom P·dom Q6= 0 grˆ
ace `
a (1).
D’apr`
es la proposition on conclut que deg(P Q) = deg P+ deg Q.
(2) ⇒(3) : Si P6= 0 et Q6= 0, alors deg P≥0et deg Q≥0, et grˆ
ace `
a (2) on
obtient deg(P Q) = deg P+ deg Q≥0. En particulier P Q 6= 0.
(3) ⇒(1) : Dans un anneau int`
egre tout sous-anneau est int`
egre.
Exemple (Avertissement dans le cas d’un anneau non int`
egre)
Dans Z/
6[X]on consid`
ere P=¯
1 + ¯
2Xet Q=¯
1 + ¯
3X.
On a deg P+ deg Q= 2, mais pour le produit on trouve deg(P·Q) = 1 car
P·Q= (¯
1 + ¯
2X)·(¯
1 + ¯
3X) = ¯
1 + ¯
5X+¯
6X2=¯
1 + ¯
5X
§2.1 15/32
´
El´
ements inversibles
Corollaire
Pour tout anneau int`
egre Knous avons K[X]×=K×.
D´
emonstration. ´
Evidemment on a toujours K×⊂K[X]×.
Montrons K[X]×=K×si Kest int`
egre : Si P∈K[X]×, alors il existe
Q∈K[X]tel que P Q = 1. On a donc 0 = deg(P Q) = deg P+ deg Q.
Ceci implique deg P= deg Q= 0, donc P, Q ∈Ket ainsi P, Q ∈K×.
Exemple (Avertissement dans le cas d’un anneau non int`
egre)
Dans Z/
4[X]on consid`
ere P=¯
1 + ¯
2Xde degr´
e1. On trouve
P·P= (¯
1 + ¯
2X)·(¯
1 + ¯
2X) = ¯
1 + ¯
4X+¯
4X2=¯
1.
Exercice : expliciter le groupe Z/
4[X]×des ´
el´
ements inversibles dans Z/
4[X].
§2.1 16/32
Division euclidienne de polynˆ
omes
Proposition (Division euclidienne de polynˆ
omes)
Soit P∈K[X]un polynˆ
ome `
a coefficient dominant inversible, dom P∈K×.
Alors pour tout S∈K[X]il existe une unique paire Q, R ∈K[X]telle que
S=P Q +Ret deg R < deg P.
Dans cette situation on appelle Squo P:= Qle quotient et
Srem P:= Rle reste de la division euclidienne de Spar P.
D´
emonstration. Unicit´
e. — Si P Q +R=P Q0+R0et deg R, deg R0<deg P,
alors P(Q−Q0) = R0−R. Puisque dom P∈K×, nous avons
deg P+ deg(Q−Q0) = deg[P(Q−Q0)] = deg(R−R0)<deg P.
Ceci n’est possible que pour deg(Q−Q0)<0, c’est-`
a-dire Q−Q0= 0.
On conclut que Q=Q0puis R=R0.
Existence. — Si deg S < deg Palors Q= 0 et R=Sconviennent.
Pour deg S≥deg Pon proc`
ede par r´
ecurrence sur n= deg S.
On suppose le r´
esultat vrai pour tout polynˆ
ome ˜
Savec deg ˜
S < n.
On pose M= dom(P)−1dom(S)·Xdeg S−deg Pet ˜
S=S−P M .
On voit que deg(P M ) = deg Set dom(P M) = dom S, donc deg ˜
S < deg S.
Par hypoth`
ese il existe ˜
Q, R ∈K[X]tels que ˜
S=P˜
Q+Ret deg R < deg P.
Ainsi S=˜
S+P M =P Q +Ren posant Q=˜
Q+M.
§2.2 17/32
La division euclidienne : algorithme
Algorithme 9.4 division euclidienne de deux polynˆ
omes
Entr´
ee: deux polynˆ
omes S, P ∈K[X]tel que dom P∈K×.
Sortie: les polyn ˆ
omes Q, R ∈K[X]v´
erifiant S=P Q +Ret deg R < deg P.
Q←0;R←S
tant que deg R≥deg Pfaire
M←dom(P)−1dom(R)·Xdeg R−deg P
Q←Q+M;R←R−P M
fin tant que
retourner (Q, R)
Proposition
L’algorithme 9.4 ci-dessus est correct.
D´
emonstration. Terminaison. — Le monˆ
ome Mest choisi tel que Ret P M
aient le mˆ
eme degr´
e et coefficient dominant. Ainsi deg(R−P M )<deg R.
L’algorithme se termine apr `
es au plus 1 + deg S−deg Pit ´
erations.
Validit´
e. — L’initialisation Q←0,R←Sassure que S=P Q +R.
Chaque it´
eration Q←Q+M,R←R−P M conserve cette ´
egalit´
e.
`
A la fin nous avons S=P Q +Ret deg R < deg P, comme souhait ´
e.
§2.2 18/32
Application aux anneaux quotients
Corollaire
Soit P∈K[X]un polynˆ
ome tel que dom P∈K×. Alors l’anneau quotient
K[X]/(P)admet une description pratique : pour toute classe x∈K[X]/(P)il
existe un unique repr´
esentant R∈K[X]tel que deg R < deg P.
D´
emonstration. Existence. — On sait que x=cl(S)pour un S∈K[X].
Il existe Q, R ∈K[X]tels que S=P Q +Ret deg R < deg P.
On obtient ainsi x=cl(S) = cl(P Q +R) = cl(R)comme souhait´
e.
Unicit´
e. — Supposons que x=cl(R) = cl(R0)o`
udeg R, deg R0<deg P.
On a alors R−R0=P Q avec Q∈K[X]. Ainsi
deg P > deg(R−R0) = deg(P Q) = deg P+ deg Q.
On conclut que Q= 0, donc R=R0, comme ´
enonc´
e.
Remarque
Soulignons l’analogie entre Z/
met K[X]/(P): dans les deux cas on peut
choisir un repr´
esentant pr´
ef´
er´
epour chaque classe du quotient.
Z/
m={¯r|r∈N, r < m}={¯
0,¯
1, . . . , m −1}
K[X]/(P) = {¯
R|R∈K[X],deg R < deg P}
Ainsi calculer dans K[X]/(P)c’est calculer dans K[X]en ne retenant que le
reste modulo P(c’est-`
a-dire l’unique reste de la division euclidienne par P).
§2.3 19/32
Exercices
Exercice
Soit F4:= Z/
2[X]/(X2+X+ 1). On pose x:= ¯
X∈F4.
1Donner la liste des ´
el´
ements de F4.
2´
Ecrire les tables d’addition et de multiplication pour F4.
3Est-ce que F4est un corps ?
Exercice
Soit P∈Z/
m[X]un polynˆ
ome avec deg P=det dom P= 1.
1D´
eterminer le cardinal de l’anneau quotient Z/
m[X]/(P).
2Si Z/
m[X]/(P)est un corps, alors n ´
ecessairement mest premier et P
est irr´
eductible, c’est-`
a-dire P=QR implique Q∈Z/×
mou R∈Z/×
m.
(On verra plus bas que ces conditions sont aussi suffisantes.)
§2.3 20/32
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!