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