Corps finis

publicité
TP4 Option C
Polynômes et corps finis
♣ QQ[x], PolynomialRing(QQ) ♣
♠ FF = FiniteField(p), FF[x] ♠
On rappelle qu’il y a deux constructions possibles des anneaux de polynômes :
PQ.<x> = PolynomialRing(QQ)
PQ.<x> = QQ[x].
La fonction GF, pour Galois field, est équivalente à FiniteField.
1. Déterminer les polynômes cyclotomiques d’ordre 1, 3, 5 et 15 dans Q[x].
2. Déterminer la factorisation de x15 − 1 dans Q[x] et F2 [x].
3. Expliquer pourquoi le polynôme cyclotomique Φ15 (x) est le produit de polynômes de
degré 4 dans F2 [x].
4. Déterminer tous les polynômes irreductibles de degré un à cinq dans F2 [x].
5. Déterminer tous les polynômes irreductibles de degré un à trois dans F3 [x].
6. Construire le corps fini F4 (FF.<a> = GF(4)). Quel est polynôme minimal du générateur ?
7. Construire F8 de deux manières (= F2 [x]/(f (x)) avec des polynômes irreductibles f
différents) et déterminer un isomorphisme entre eux.
8. Déterminer les ordres des éléments de F9 (a.multiplicative_order()).
Décomposition des polynômes dans Fp [x]
♣ f.mod(g), f//g, f.quorem(g), f.gcd(g), power_mod(f,e,g) ♣
La factorisation des polynômes dans Fp [x] se réduit à trois étapes.
Décomposition
sans facteur carré. Étant donné un polynôme fQ
(x) = g(x)h(x)p , où
Q
g(x) = i gi (x)ei avec ei mod p 6= 0, déterminer le facteur réduit i gi (x) sans facteur
carré (et le facteur h(x)).
Décomposition en produit de degrés égaux.QÉtant donné un polynôme f (x) sans
facteur carré, déterminer sa décomposition f (x) = d fi (x) en produit de polynômes fd (x)
n’ayant que des facteurs irreductibles de degrés d.
Factorisation en irreductibles. Étant donné un polynôme f (x) sans facteur carré et
n’ayant
que des facteurs irreductibles de degré d, trouver sa factorisation complète f (x) =
Q
i gi (x) en produit de polynômes irreductibles.
1
Décomposition sans facteur carré.
9. Si f (x) = g(x)h(x)p , montrer que f 0 (x) = g 0 (x)h(x)p , et en déduire que
pgcd f (x), f 0 (x) = pgcd g(x), g 0 (x) h(x)p .
Conclure que
Y
f (x)
=
gi (x),
pgcd f (x), f 0 (x)
i
où g(x) =
Y
gi (x)ei , avec gi les facteurs irréductibles de g et ei mod p 6= 0.
i
10. Détailler comment calculer h(x)p , étant donnée f (x) et
h(x) (en utilisant h(x)p = h(xp )).
Q
i
gi (x), et puis retrouver
11. À l’aide des deux questions précédentes, construire un algorithme qui étant donné un
polynôme f (x) renvoie la décomposition sans facteur carré de f (x) sous forme d’un
polynôme. Tester cet algorithme dans F5 avec f (x) = x(x+1)3 (x+2)25 (x+3)8 (x+4)5 .
12. Décrire un algorithme pour la décomposition de f (x) en produit des puissances
égales :
!
t
t
Y
Y
Y
e
ei
f (x) =
fe (x) =
gi (x)
.
e=1
e=1
Y
L’algorithme renvera la liste des couples
ei =e
gi (x),e
ei =e
Décomposition en produit de degrés egaux.
On suppose maintenant que f est sans facteur carré.
13. Décrire la forme des polynômes fd (x) = pgcd(f (x), xp
pgcd(f (x), xp
Si p est impair, xp
d −1
s −1
d −1
− 1), en supposant que
− 1) = 1 pour tout s < d.
− 1 = (xm − 1)(xm + 1) pour m = (pd − 1)/2. Montrer que
pgcd(f (x), xp
d −1
− 1) = pgcd(f (x), xm − 1)pgcd(f (x), xm + 1),
et caracteriser les facteurs pgcd(f (x), xm ± 1).
14. Écrire la décomposition en produit d’irréductibles de degré égaux pour les polynômes
x15 + 1 et x63 + 1 sur F2 [x] et pour x26 − 1 et x80 − 1 sur F3 [x].
15. Pour pd grand, le calcul de pgcd(f, xp
d −1
(a) Si x ne divise pas f , on a pgcd(f, x
2
− 1) se fait en utilisant des astuces :
pd −1
d
− 1) = pgcd(f, xp − x)
d
d
(b) On a pgcd(f, xp − x) = pgcd(f, (xp mod f ) − x), et la suite
2
d
a1 = xp mod f, a2 = xp mod f, . . . , ad = xp mod f
se calcule par ak+1 mod f = (ak mod p)p mod f , en utilisant l’exponentiation
rapide (log2 (p) multiplications modulo f ).
d
d
(c) Si g est un diviseur de f , on a xp mod g = (xp mod f ) mod g, alors on peut
utiliser la suite ak modulo une suite de diviseurs de f de plus en plus petits.
Utiliser ces astuces pour écrire un algorithme pour la décomposition en produit d’irreductibles de degrés egaux.
16. Vérifier que la complexité de l’algorithme est raisonable (polynôme en log(p)), en
factorisant f = (x − 7)(x2 − 2x + 3) sur Fp pour des p de plus en plus grands (e.g. p
donné par next_prime(10ˆk) pour k = 16, 17, 18, . . . ).
Factorisation en irreductibles.
Ce problème sera le sujet du TP suivant.
3
Téléchargement