40
Algorithmes pour l’arithmétique II Cours 5 Julien Lavauzelle Université Paris 8 Master 2 ACC et CSSD – Algorithmes pour l’arithmétique 05/01/2020

Algorithmes pour l'arithmétique II Cours 5

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algorithmes pour l'arithmétique II Cours 5

Algorithmes pour l’arithmétique IICours 5

Julien LavauzelleUniversité Paris 8

Master 2 ACC et CSSD – Algorithmes pour l’arithmétique

05/01/2020

Page 2: Algorithmes pour l'arithmétique II Cours 5

Motivation

Lors de la séance précédente :

Factorisation de polynômes sur les corps finis.

Aujourd’hui :

Factorisation de polynômes sur les rationnels et les entiers.

Références utiles :

[LN] Introduction to Finite Fields and their Applications, 2nd ed.. Lidl, Niederreiter. CambridgeUniversity Press. 1994.

[AECF] Algorithmes Efficaces en Calcul Formel. Bostan, Chyzak, Giusti, Lebreton, Lecerf, Salvy,Schost. auto-édition, disponible en ligne sur https://hal.archives-ouvertes.fr/AECF. 2017.

[GG] Modern Computer Algebra, 3rd ed.. Gathen, Gerhard. Cambridge University Press. 2003.

1/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 3: Algorithmes pour l'arithmétique II Cours 5

Plan

1. Quelques rappels

2. Factorisation dans Q[X] et Z[X]Définition du problèmeÉlimination des facteurs carrésRéduction à la factorisation dans Fp[X]Amélioration : lemme de HenselDernière étape : regroupement des facteurs

3. Exercices

1/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 4: Algorithmes pour l'arithmétique II Cours 5

Stratégies de factorisation dans Fp[X]

Soit P(X) = P1(X)m1 . . . Pk(X)mk ∈ Fp[X] à factoriser.

I Élimination des facteurs carrés :

P(X) → P1(X) · · ·Pk(X) = P∗(X) .

I Factorisation sans carré

P∗(X) = P1(X) · · ·Pk(X) → (P1(X), . . . , Pk(X)) .

I Factorisation en produit de même degré

P∗(X) → (Q1(X), . . . , Qr(X)) où Qd = ∏j | deg Pj=d

Pj(X) .

I Factorisation à degré égal

Qd(X) →(Pj(X)

)j | deg Pj=d

2/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 5: Algorithmes pour l'arithmétique II Cours 5

Algorithmes

ALGORITHME DE BERLEKAMP EN PETITE CARDINALITÉ

Entrée : un polynôme P = ∏ki=1 Pi sans facteur carré

Sortie : un diviseur propre Q de P

1. Calculer la matrice M de φ dans la base polynomiale (1, α, . . . , αn−1).

2. Calculer un élément (b0 = 0, . . . , bn−1) du noyau de M tel que bj 6= 0 pour au moins un j ≥ 1.

3. Construire B(X) = ∑n−1j=0 bjXj

4. Faire :

– Choisir un nouveau λ ∈ Fq — déterministe (énumération) ou probabiliste.– Calculer Q(X) = pgcd(P(X), B(X)− λ).

tant que Q(X) = 1.

5. Retourner Q.

3/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 6: Algorithmes pour l'arithmétique II Cours 5

Algorithmes

ALGORITHME DE FACTORISATION EN DEGRÉ DISTINCTS

Entrée : P ∈ Fq[X]Sortie : la factorisation P = Q1Q2 . . . Qs où Qr est le produit de tous les diviseurs de Pirréductibles et de degré r

1. Poser Q← P, S← X, et i← 12. Tant que Q 6= 1

2.1 Calculer S← Sq mod P2.2 Calculer Qi ← pgcd(Q, S−X)2.3 Calculer Q← Q/Qi2.4 Incrémenter i

3. Retourner Q1, . . . , Qi−1.

4/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 7: Algorithmes pour l'arithmétique II Cours 5

Algorithmes

ALGORITHME DE CANTOR-ZASSENHAUS : FACTORISATION À DEGRÉ ÉGAL

Entrée : Q ∈ Fq[X] un polynôme de degré n = sr, formé de s polynômes irréductiblesP1, . . . , Ps, distincts de degré rSortie : des diviseurs propres de Q

1. Faire :1.1 Tirer uniformément A(X) un polynôme non-nul de degré ≤ n− 1.1.2 Calculer D0 = pgcd(A, Q).1.3 Calculer S = A(qr−1)/2 mod Q.1.4 Calculer D1 = pgcd(A− 1, Q).

tant que D0 ou D1 n’est pas un diviseur propre de Q.

2. Retourner les diviseurs propres obtenus parmi Q/D0, D0, Q/D1, D1

5/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 8: Algorithmes pour l'arithmétique II Cours 5

Plan

1. Quelques rappels

2. Factorisation dans Q[X] et Z[X]Définition du problèmeÉlimination des facteurs carrésRéduction à la factorisation dans Fp[X]Amélioration : lemme de HenselDernière étape : regroupement des facteurs

3. Exercices

5/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 9: Algorithmes pour l'arithmétique II Cours 5

Plan

1. Quelques rappels

2. Factorisation dans Q[X] et Z[X]Définition du problèmeÉlimination des facteurs carrésRéduction à la factorisation dans Fp[X]Amélioration : lemme de HenselDernière étape : regroupement des facteurs

3. Exercices

5/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 10: Algorithmes pour l'arithmétique II Cours 5

Notre objectif

Objectifs. Factoriser dans Q[X] et/ou dans Z[X].

Rappel. Factorisation = décomposition en irréductibles, à une unité près.

Exemple. Pour f = 60X2 + 10X− 10 :

– Les décompositions 10(2X + 1)(3X− 1) et 60(X + 12 )(X−

13 ) sont des factorisations

dans Q[X].

– Ce ne sont pas des factorisations dans Z[X].

– La décomposition 2 · 5 · (2X + 1) · (3X− 1) en est une.

6/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 11: Algorithmes pour l'arithmétique II Cours 5

Définitions, lemme de Gauss

Soit A un anneau factoriel (ex : A = Z) et K son corps des fractions (ex : K = Q).

Définitions. Soit f = ∑i fiXi ∈ A[X].

– Le contenu cont(f ) ∈ A est le pgcd des coefficients de f .

– Le polynôme f est primitif si cont(f ) = 1. La partie primitive de f est f /cont(f ).

– Le coefficient de tête est lc(f ) et, si f ∈ Z[X], ‖f‖∞ = max{|fi|}

Exemple. Si f = 6X2 + 15 :

– son contenu est cont(f ) = 3

– et sa partie primitive est f ∗ = 2X2 + 5.

Lemme (de Gauss). Soit f ∈ A[X]. Alors, f est irréductible dans A[X] si et seulement sif est primitif et f est irréductible dans K[X].

Corollaire. L’anneau A[X] est aussi factoriel. Les irréductibles de A[X] sont

1. les irréductibles de A,

2. les éléments de A[X], irréductibles dans K[X] et primitifs.

Exemple : le polynôme f = 6X2 + 15 est irréductible dans Q[X] mais pas dans Z[X].

7/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 12: Algorithmes pour l'arithmétique II Cours 5

Réduction des factorisations dans Q[X] et Z[X]

Objectifs. Factoriser dans Q[X] et/ou dans Z[X].

Question. Deux problèmes calculatoirement équivalents?

Exemple 1. Si f = 60X2 + 10X− 10.

– La factorisation 2 · 5 · (2X + 1) · (3X− 1) dans Z[X] donne aussi une factorisationdans Q[X] (on peut multiplier les termes constants).

– Même à partir de 60(X + 12 )(X−

13 ) ∈ Q[X], on peut obtenir une factorisation dans

Z[X] en multipliant/divisant par le ppcm des dénominateurs :

60(X + 12 )(X−

13 ) → 10(2X + 1)(3X− 1)→ 2 · 5 · (2X + 1) · (3X− 1)

Exemple 2. Si g = 2417851639291930512195989X + 2417851639291930512195989.

– Dans Q[X], on peut obtenir la factorisation 2417851639291930512195989(X + 1).

– Pour obtenir une factorisation dans Z[X], il faut également factoriser le contenu :

2417851639291930512195989 = 1099511627791× 2199023255579

ce qui n’est pas immédiat.

8/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 13: Algorithmes pour l'arithmétique II Cours 5

Réduction des factorisations dans Q[X] et Z[X]

I (Z[X] =⇒ Q[X] + Z) Une factorisation dans Z[X]

f = α1 · · · αr f1 · · · fs,

où αi ∈ Z est irréductible dans Z et fj ∈ Z[X] est primitif et irréductible dans Q[X],donne immédiatement

– une factorisation de f dans Q[X] (le produit α1 · · · αr étant une unité dans Q[X])– ainsi qu’une factorisation du contenu cont(f ) = α1 · · · αr ∈ Z.

I (Q[X] + Z =⇒ Z[X]) Réciproquement, si

f = f ∗1 · · · f ∗s et cont(f ) = α1 · · · αr

sont des factorisations de f dans Q[X] et de cont(f ) dans Z, alors on peut calculer

λj = ppcm{ dénominateurs des coefficients de f ∗j }.

On a ensuiteλjf ∗j = cont(λjf ∗j ) fj ∈ Z[X]

où fj ∈ Z[X] est primitif et irréductible dans Q[X]. Puis,

f = f ∗1 · · · f ∗s =( 1

λ1 · · · λs· cont(λ1f ∗1 ) · · · cont(λsf ∗s )

)︸ ︷︷ ︸

=cont(λ1 ···λsf∗1 ···f

∗s )

λ1 ···λs= cont(f ) = α1 ···αr

f1 · · · fs

9/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 14: Algorithmes pour l'arithmétique II Cours 5

Réduction des factorisations dans Q[X] et Z[X]

Conséquence.

factoriser dans Z[X] ⇐⇒ factoriser dans Q[X] + factoriser dans Z

Il s’avère que :

1. On ne connaît pas d’algorithme polynomial pour factoriser dans Z, même si certainssont sous-exponentiels (cf. cours suivants).

2. Il existe un algorithme polynomial (qu’on va aborder dans ce cours) pour factoriserdes polynômes de Q[X], ou encore des polynômes primitifs de Z[X] .

Nouvel objectif. Étant donné f ∈ Z[X] primitif, factoriser f .

10/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 15: Algorithmes pour l'arithmétique II Cours 5

Stratégie

Stratégie de factorisation lorsque f ∈ Z[X] est primitif.

1. On élimine les facteurs carrés dans f , en calculant pgcd(f , f ′).2. On choisit un « grand » nombre premier p, respectant certaines

conditions de divisibilité.3. On calcule g = f mod p, puis une factorisation de g dans Fp[X].4. On regroupe les facteurs obtenus pour obtenir la factorisation

dans Z[X].

11/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 16: Algorithmes pour l'arithmétique II Cours 5

Plan

1. Quelques rappels

2. Factorisation dans Q[X] et Z[X]Définition du problèmeÉlimination des facteurs carrésRéduction à la factorisation dans Fp[X]Amélioration : lemme de HenselDernière étape : regroupement des facteurs

3. Exercices

11/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 17: Algorithmes pour l'arithmétique II Cours 5

Première étape

1. On élimine les facteurs carrés dans f , en calculant pgcd(f , f ′).

C’est identique au cas des corps finis, et sans le problème de la « séparabilité ».

Si f = f m11 · · · f

mss , alors

f ′ =s

∑i=1

mif ′iffi

.

Puis,pgcd(f , f ′) = f m1−1

1 · · · f ms−1s

etf

pgcd(f , f ′)= f1 · · · fs

est la partie sans carré de f .

Complexité. On peut faire les opérations dans Z ou dans Q. On doit effectuer un nombrelogarithmique O∼(deg f ) d’opérations dans Z ou Q.

rappel : O∼(u) = ∪d O(u logd u)

Remarque. La taille des coefficients peut grossir exponentiellement. Certaines techniquespour résoudre ce problème (pgcd modulaire par exemple).

12/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 18: Algorithmes pour l'arithmétique II Cours 5

Plan

1. Quelques rappels

2. Factorisation dans Q[X] et Z[X]Définition du problèmeÉlimination des facteurs carrésRéduction à la factorisation dans Fp[X]Amélioration : lemme de HenselDernière étape : regroupement des facteurs

3. Exercices

12/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 19: Algorithmes pour l'arithmétique II Cours 5

Suite de l’algorithme

2. On choisit un « grand » nombre premier p, respectant certaines conditions de divi-sibilité.3. On calcule g = f mod p, puis une factorisation de g dans Fp[X].4. On regroupe les facteurs obtenus pour obtenir la factorisation dans Z[X].

Question (1). Pourquoi 4. mentionne un regroupement de facteurs?

Question (2). Quel nombre premier p choisir ?

Concernant la taille de p :

– Si p est grand, l’algorithme de factorisation dans Fp[X] va être coûteux ;

– si p est petit, réussit-on à retrouver le bon résultat ?

Concernant la forme de p : tous les p donnent-ils la même (bonne) factorisation?

13/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 20: Algorithmes pour l'arithmétique II Cours 5

Nécessité du regroupement de facteurs

Question (1). Pourquoi 4. mentionne un regroupement de facteurs?

Reformulation. Si f = f1 . . . fk ∈ Z[X], la factorisation de (f mod p) dans Fp[X] est-elle

(f1 mod p)× · · · × (fk mod p) ?

Soit f ∈ Z[X] irréductible.

1. Le polynôme f reste-t-il irréductible dans tout Fp[X] ?Non. Contre-exemple? f = X2 + 1.

Pour p = 2. Aussi pour tout p ≡ 1 mod 4, car il existe des racines carrées de −1 :

l’élément ωp−1

4 où ω est primitif dans Fp, et son opposé.

2. Existe-t-il toujours p tel que le polynôme f est irréductible dans Fp[X] ?Non. Contre-exemple? f = X4 + 1.

Exercice. Soit f = X4 + 1. Pour tout premier p, le polynôme f admet un facteurpropre dans Fp[X].

14/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 21: Algorithmes pour l'arithmétique II Cours 5

Nécessité du regroupement de facteurs

Exercice. Soit f = X4 + 1. Pour tout premier p, le polynôme f admet un facteur propredans Fp[X].

Solution. Pour p = 2 c’est clair : X4 + 1 = (X + 1)4.Sinon... idée : on raisonne « comme dans C » : on cherche à factoriser f dans Fp2 [X].Question : f admet-il une racine dans Fp2 ? Oui. Comme p est impair, p2 − 1 est divisiblepar 8, donc il existe un élément α d’ordre 8 dans F×p2 . Autrement dit, α est une racine

4-ème de −1, donc X− α divise f dans Fp2 [X].

La racine α admet un élément conjugué X− α, et ici α = αp. De plus, X− α divise aussi fcar α4 = α4p = (−1)p = −1.On a alors

(X− α)(X− αp) = X2 − (α + αp)︸ ︷︷ ︸Tr(α)∈Fp

X + αp+1︸︷︷︸N(α)∈Fp

∈ Fp[X]

qui divise f dans Fp[X].

Conséquence. L’étape 4. de regroupement de facteurs obtenus dans Fp[X] est nécessaire(dans le pire cas).

15/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 22: Algorithmes pour l'arithmétique II Cours 5

Quelle taille pour p ? Exemples.

Question (2). Quel nombre premier p choisir ?

Exemple : f = X3 − 6X2 + 11X− 6.

I Si l’on essaie avec p ≤ 11, les coefficients de f modulo p changent, ce qui compliqueles choses pour retrouver la factorisation de f ...

I On essaie avec p = 13.– Dans Fp[X], l’algorithme de factorisation retourne les facteurs propres

X− 1 mod 13, X− 2 mod 13, X− 3 mod 13 .

– On a bien (X− 1)(X− 2)(X− 3) = f

I Mais... l’algorithme aurait pu retourner

X− 1 mod 13, X− 2 mod 13, X + 10 mod 13

ce qui aurait donné le produit X3 + 7X2 − 28X + 20 6= f .

Conséquence : lorsqu’on injecte Fp[X]→ Z[X], on choisit de prendre les coefficients entre−p/2 et p/2.

Question. Choisir p > 2 ‖f‖∞ suffit-il ?

16/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 23: Algorithmes pour l'arithmétique II Cours 5

Quelle taille pour p ? Exemples.

Exemple désagréable. Pour f = X105 − 1, on a le facteur premier suivant :

g = X48 + X47 + X46 −X43 −X42 − 2X41 −X40 −X39

+ X36 + X35 + X34 + X33 + X32 + X31 −X28 −X26

−X24 −X22 −X20 + X17 + X16 + X15 + X14 + X13

+ X12 −X9 −X8−2X7 −X6 −X5 + X2 + X + 1

On a donc un facteur premier g de f dans Z[X], tel que ‖g‖∞ = 2 > ‖f‖∞ = 1.

On veut donc choisir p de sorte que p/2 soit plus grand que le plus grand coefficient d’unfacteur propre quelconque de f .

Question. Peut-on majorer ‖g‖∞ en fonctions de ‖f‖∞ ?

17/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 24: Algorithmes pour l'arithmétique II Cours 5

Borne de Landau-Mignotte

Théorème [borne de Landau-Mignotte]. Soient A, B deux polynômes de Z[X] tels queB divise A. Si B = ∑n

i=0 biXi a degré n, alors

‖B‖∞ := max{|bi|, i ∈ {0, . . . , n}} ≤(

nbn/2c

)‖A‖2

où ‖A‖2 :=√

∑mi=0 |ai|2.

Preuve. Voir [GG Chap 6.6] ou [AECF Chap 21]. Fait intervenir la transformée de Fourierde fonction polynomiales dans C.

Remarques.

– Si n = 1, on obtient une borne sur les racines de A dans Z.

– La borne se relâche en l’expression plus simple ‖B‖∞ ≤ 2n√m + 1 ‖A‖∞ oùm = deg A.

18/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 25: Algorithmes pour l'arithmétique II Cours 5

Choix de p

Revenons à notre algorithme.

1. On élimine les facteurs carrés dans f , en calculant pgcd(f , f ′).

2. On choisit un « grand » nombre premier p, respectant certaines conditions de divisibilité.

3. On calcule g = f mod p, puis une factorisation de g dans Z/pZ.

4. On regroupe les facteurs obtenus pour obtenir la factorisation dans Z[X].

Conséquence. À l’étape 2., on choisit p/2 > B := 2n√n + 1 ‖f‖∞.

D’autres contraintes pour p :

– p ne doit pas diviser le coefficient dominant de f ,

– p doit laisser (f mod p) sans carré.

Lemme. Soit f ∈ Z[X] sans carré. Alors f mod p est sans carré si et seulement si p nedivise pas le discriminant disc(f ) := res(f , f ′).

On peut montrer qu’entre B et 2B, il existe un premier p qui satisfait cette propriété, et ilexiste des algorithmes efficaces pour en trouver.

19/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 26: Algorithmes pour l'arithmétique II Cours 5

Plan

1. Quelques rappels

2. Factorisation dans Q[X] et Z[X]Définition du problèmeÉlimination des facteurs carrésRéduction à la factorisation dans Fp[X]Amélioration : lemme de HenselDernière étape : regroupement des facteurs

3. Exercices

19/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 27: Algorithmes pour l'arithmétique II Cours 5

Taille de p

Problème. Les algorithmes de factorisation dans Fp[X] restent coûteux lorsque p suit laborne de Landau-Mignotte.

Idée. On factorise avec p plus petit, puis on essaie de remonter la factorisation dans(Z/pkZ)[X], où pk satisfait la borne de Landau-Mignotte.

Remarque. Le raisonnement est similaire à la recherche de racine carrées dans(Z/piZ)[X] (voir cours 3).

20/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 28: Algorithmes pour l'arithmétique II Cours 5

Lemme de Hensel

Lemme de Hensel (reformulé). Soit P ∈ Z[X] et p ∈ Z un nombre premier qui nedivise pas le coefficient dominant de P. Soit

P ≡ λ1A1B1 mod p

une factorisation de P dans (Z/pZ)[X], où A1, B1 ∈ (Z/pZ)[X] sont unitaires et pre-miers entre eux.

Alors, pour tout i ≥ 1, il existe un unique couple de polynômes unitaires et premiersentre eux Ai, Bi ∈ (Z/piZ)[X] tels que

P ≡ λiAiBi mod pi

Ai ≡ A1 mod pBi ≡ B1 mod p

Par ailleurs, pour tout i ≥ 1, λi est le coefficient dominant de P modulo pi.

Remarque. La preuve de ce résultat est constructive. Étant donnée une relation de BezoutU1A1 + V1B1 = 1 modulo p, on construit effectivement et successivement les relationsUiAi + ViBi modulo pi.

21/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 29: Algorithmes pour l'arithmétique II Cours 5

Preuve

Éléments de preuve du lemme de Hensel.Par hypothèse, P = A1B1 dans Z/pZ[X], avec pgcd(A1, B1) = 1. Donc on peut calculerU, V ∈ Z/pZ[X] tels que

UA1 + VB1 = 1 .

Supposons que l’on ait le resultat à l’étape i, c’est-à-dire Ai et Bi ont été construits modulo pi. Alors, onpeut calculer S ∈ Z/pZ tel que

P− λiAiBi = piS mod pi+1 .

Cherchons maintenant des candidats pour Ai+1 et Bi+1. On doit avoir

Ai+1 ≡ Ai + piQA mod pi+1 et Bi+1 ≡ Bi + piQB mod pi+1

Puis,Ai+1Bi+1 ≡ AiBi + pi(QABi + QBAi) ≡ AiBi + pi(QAB1 + QBA1) mod pi+1

Il résulte que QAB1 + QBA1 ≡ S mod p. Autrement dit,

B1QA ≡ S mod (p, A1) =⇒ QA ≡ (VB1)QA ≡ VS mod (p, A1)

Conclusion partielle (unicité si existence). Nécessairement, Ai+1 = Ai + piQA où QA est le reste VSmod A1 dans Fp[X]. De même, Bi+1 = Bi + piQB où QB est le reste US mod B1 dans Fp[X].

Pour terminer la preuve, il reste à vérifier que ces choix de Ai+1 et Bi+1 conviennent (laissé en exercice —raisonner sur les degrés).

22/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 30: Algorithmes pour l'arithmétique II Cours 5

Plan

1. Quelques rappels

2. Factorisation dans Q[X] et Z[X]Définition du problèmeÉlimination des facteurs carrésRéduction à la factorisation dans Fp[X]Amélioration : lemme de HenselDernière étape : regroupement des facteurs

3. Exercices

22/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 31: Algorithmes pour l'arithmétique II Cours 5

Regroupement des facteurs

Résumé : on a effectué

f = f1 × · · · × fk → f mod p → (g1 mod p)× · · · × (gs mod p)

But. Combiner les gj pour retrouver les fi.

g1 g2 g3 g4 g5 g6 g7

f1 f2 f3

Méthode simple : Calculer des produits entre gi jusqu’à obtenir un polynôme irréductibledans Z[X] (test efficace).

Mais le nombre d’appariements possibles est exponentiel en s, qui peut être linéaire enle degré de f .

On peut raffiner avec les conditions sur le degré, mais cela reste exponentiel en pire cas.

Important. Pour rendre l’algorithme polynomial, il faut utiliser d’autres méthodes àbase de réduction de réseaux euclidiens (algorithme LLL). Voir par exemple [GG Chap16.4 et 16.5] ou [AECF Chap 21.4].

23/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 32: Algorithmes pour l'arithmétique II Cours 5

Exemple final

But : factoriser P = X5 + 5X4 + 19X3 + 86X2 + 39X + 2 dans Z[X] avec la remontée deHensel.

1. On a P′ = 5X4 + 20X3 + 57X2 + 172X + 39 et on vérifie que pgcd(P, P′) = 1.

2. On choisit p = 5 et on calcule P modulo p pour obtenir Q = X5 + 4X4 + X3 + 4X2 + 2.

3. L’algorithme de Berlekamp avec p = 5 retourne la factorisation

A1 · B1 = (X3 + 2X + 1) · (X2 + 2X + 2)

4. On détermine le pk minimal pour lequel on doit remonter le résultat modulo pk. Laborne de Landau-Mignotte donne ‖P‖2 ' 88.54 puis k = 6.

4.1 La première étape de la remontée de Hensel donne

A2 = X2 − 20X + 2 et B2 = X3 + 17X + 1 mod 25

puis A2B2 = X5 − 20X4 + 19X3 − 339X2 + 14X + 2 6= P.4.2 La seconde étape de la remontée de Hensel donne

A3 = X2 + 5X + 2 et B3 = X3 + 17X + 1 mod 125

puis A3B3 = X5 + 5X4 + 19X3 + 86X2 + 39X + 2 = P.4.3 Les étapes suivantes donnent le même résultat (modulo 625, 3125, ...).

On obtient bien la factorisation voulue dans Z[X] :

X5 + 5X4 + 19X3 + 86X2 + 39X + 2 = (X2 + 5X + 2)(X3 + 17X + 1)

24/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 33: Algorithmes pour l'arithmétique II Cours 5

Plan

1. Quelques rappels

2. Factorisation dans Q[X] et Z[X]Définition du problèmeÉlimination des facteurs carrésRéduction à la factorisation dans Fp[X]Amélioration : lemme de HenselDernière étape : regroupement des facteurs

3. Exercices

24/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 34: Algorithmes pour l'arithmétique II Cours 5

Exercice 1

Exercice [extrait de [LN 4.18]. Soit Fq un corps fini et ` un nombre premier divisantq− 1. Soit également a ∈ F∗q . On souhaite montrer, à l’aide de l’algèbre de Berlekamp,que l’on a

X` − a est irréductible dans Fq[X] ⇐⇒ a(q−1)/` 6= 1 .

Question 1. Soit 0 ≤ i < `. Calculer Xiq mod (X` − a).

Question 2. En déduire que l’algèbre de Berlekamp peut être décrite comme

B = ker φ ={ `−1

∑i=0

biXi | bi(ai(q−1)/` − 1) = 0}

.

Question 3. À l’aide des questions précédentes, démontrer le résultat souhaité.

25/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 35: Algorithmes pour l'arithmétique II Cours 5

Exercice 1

Exercice [extrait de [LN 4.18]. Soit Fq un corps fini et ` un nombre premier divisantq− 1. Soit également a ∈ F∗q .Question 1. Soit 0 ≤ i < `. Calculer Xiq mod (X` − a).

Question 2. En déduire que l’algèbre de Berlekamp peut être décrite comme

B = ker φ ={ `−1

∑i=0

biXi | bi(ai(q−1)/` − 1) = 0}

.

Q1. On a

Xiq = Xi(q−1)Xi = (X`)i(q−1)/`Xi ≡ ai(q−1)/`Xi =(

a(q−1)/`X)i

mod (X` − a) .

Q2. Rappelons que l’algèbre de Berlekamp B est le noyau de φ : B 7→ Bq − B dansFq[X]/(X` − a). Pour B ∈ Fq[X]/(X` − a), on calcule Bq mod (X` − a) :

Bq =( d

∑i=0

biXi)q

=d

∑i=0

bqi Xiq ≡

d

∑i=0

biai(q−1)/`Xi mod (X` − a) .

Donc

B ∈ ker φ ⇐⇒ Bq−B ≡ 0 mod (X`− a) ⇐⇒d

∑i=0

bi(ai(q−1)/`− 1)Xi ≡ 0 mod (X`− a) .

Comme (1, . . . , X`−1) est une base de Fq[X]/(X` − a), on obtient

B ∈ ker φ ⇐⇒ ∀i ∈ {0, . . . , `− 1}, bi(ai(q−1)/` − 1) = 0 .

26/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 36: Algorithmes pour l'arithmétique II Cours 5

Exercice 1

Exercice [extrait de [LN 4.18]. Soit Fq un corps fini et ` un nombre premier divisantq− 1. Soit également a ∈ F∗q .

Question 3. À l’aide des questions précédentes, démontrer

X` − a est irréductible dans Fq[X] ⇐⇒ a(q−1)/` 6= 1 .

Q3. On a vu dans le cours l’équivalence

X` − a irréductible ⇐⇒ algèbre de Berlekamp B = Fq

D’après Q2., B ={

∑`−1i=0 biXi | bi(ai(q−1)/` − 1) = 0

}, donc

X` − a irréductible ⇐⇒ ∀i ∈ {1, . . . , `− 1}, ai(q−1)/` − 1 6= 0 .

Remarquons enfin que, pour i ∈ {1, . . . , `− 1} fixé, on a

ai(q−1)/` 6= 1 ⇐⇒ a(q−1)/` 6= 1,

car l’ordre de a(q−1)/` doit être un diviseur de `, qui est premier. Ceci conclut la preuve.

27/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 37: Algorithmes pour l'arithmétique II Cours 5

Exercice 2

But : traiter le cas où q = 2k dans les algorithmes de Berlekamp et Cantor-Zassenhaus.

Rappel : dans le cas q impair, on a utilisé le fait qu’exactement la moitité des élémentsnon-nuls sont des carrés dans Fq′ .

Exercice [extrait de GG 14.16]. Soit q = 2k et, pour m ∈N quelconque et

Tm : x 7→ x2m−1+ x2m−2

+ · · ·+ x2 + x .

Question 1. Démontrer que pour tout u ∈ Fq[X], on a u2m+ u = Tm(u) · (Tm(u) + 1).

Question 2. Démontrer que si α ∈ F2m , alors Tm(α) ∈ F2. En déduire que si α est choisiuniformément dans F2m , alors Tm(α) est uniforme dans F2.

Soit P est un polynôme de Fq[X] sans facteur carré, donc les facteurs premiers sontP1, . . . , Pr. On note χi(F) = F mod Pi.

Question 3. [Berlekamp] Démontrer que pour tout B dans l’algèbre de Berlekamp B,on a χi(Tk(B)) ∈ F2. En déduire que si B est tiré uniformément dans B, alors Tk(B) ∈ F2avec probabilité 21−r.

Question 4. [Cantor-Zassenhaus] On suppose que les Pi ont même degré d. Démon-trer que pour tout A ∈ Fq[X]/(P), on a χi(Tkd(A)) ∈ F2. En déduire que si A est tiréuniformément dans Fq[X]/(P), alors Tkd(A) ∈ F2 avec probabilité 21−r.

28/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 38: Algorithmes pour l'arithmétique II Cours 5

Exercice 2

Exercice [extrait de GG 14.16]. Soit q = 2k et, pour m ∈N quelconque et

Tm : x 7→ x2m−1+ x2m−2

+ · · ·+ x2 + x .

Question 1. Démontrer que pour tout u ∈ Fq[X], on a u2m+ u = Tm(u) · (Tm(u) + 1).

Question 2. Démontrer que si α ∈ F2m , alors Tm(α) ∈ F2. En déduire que si α est choisiuniformément dans F2m , alors Tm(α) est uniforme dans F2.

Q1.Tm(u)2 = (u2m−1

+ u2m−2+ · · ·+ u2 + u)2 = u2m

+ u2m−1+ · · ·+ u4 + u2.

DoncTm(u)(Tm(u) + 1) = Tm(u)2 + Tm(u) = u2m

+ u

Q2. Si α ∈ F2m , alors α2m+ α = 0, donc Tm(α)2 = Tm(α). Cela signifie que Tm(α) ∈ F2.

Par ailleurs, Tm : F2m → F2m est F2-linéaire, donc

|{α ∈ F2m , Tm(α) = 0}| = | ker Tm| = 2dim ker φ = 2m−rkφ = 2m−1 .

Si α est tiré uniformément dans F2m , alors Tm(α) = 0 avec probabilité 2m−1/2m = 1/2.

29/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 39: Algorithmes pour l'arithmétique II Cours 5

Exercice 2

Soit P est un polynôme de Fq[X] sans facteur carré, donc les facteurs premiers sontP1, . . . , Pr. On note χi(F) = F mod Pi.

Question 3. [Berlekamp] Démontrer que pour tout B dans l’algèbre de Berlekamp B,on a χi(Tk(B)) ∈ F2. En déduire que si B est tiré uniformément dans B, alors Tk(B) ∈ F2avec probabilité 21−r.

Q3. Soit B ∈ B. On rappelle que, par définition de l’algèbre de Berlekamp, pour tout i on a

χi(B) = B mod Pi ∈ F2k .

Comme les opérateurs Tk et χi commutent, il résulte que χi(Tk(B)) = Tk(χi(B)) ∈ F2.

D’après le théorème des reste chinois, on a Tk(B) = 0 si χi(Tk(B)) = 0 pour tout i, etTk(B) = 1 si χi(Tk(B)) = 1 pour tout i. Autrement dit, Tk(B) ∈ F2 si (et seulement si) lesχi(Tk(B)) sont tous égaux.

Par ailleurs, les variables {χi(Tk(B))} sont indépendantes, donc lorsque B est tiréuniformément, on a d’après la Q2. :

P[χ1(Tk(B)) = · · · = χr(Tk(B))

]= 2× 1

2r = 21−r .

Remarque. L’algorithme de Berlekamp en grande cardinalité échoue quand Tk(B) ∈ F2.On a montré que cette probabilité est ≤ 1/2.

30/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –

Page 40: Algorithmes pour l'arithmétique II Cours 5

Exercice 2

Question 4. [Cantor-Zassenhaus] On suppose que les Pi ont même degré d. Démon-trer que pour tout A ∈ Fq[X]/(P), on a χi(Tkd(A)) ∈ F2. En déduire que si A est tiréuniformément dans Fq[X]/(P), alors Tkd(A) ∈ F2 avec probabilité 21−r.

Q4. Comme les Pi ont degré d, on sait que Fq[X]/(Pi) est isomorphe à Fqd = F2kd .En utilisant la Q2. avec m = kd, on obtient χi(Tkd(A)) = Tkd((χi(A)) ∈ F2.

Puis, on répète le raisonnement de la Q3.. D’après le théorème des reste chinois,Tkd(A) ∈ F2 si (et seulement si) les χi(Tk(A)) sont tous égaux.

Par ailleurs, les variables {χi(Tk(A))} sont indépendantes, donc lorsque A est tiréuniformément, on a d’après la Q2.

P[χ1(Tkd(A)) = · · · = χr(Tkd(B))

]= 2× 1

2r = 21−r .

Remarque. L’algorithme de Cantor-Zassenhaus échoue quand Tkd(B) ∈ F2. On a montréque cette probabilité est ≤ 1/2.

31/31 J. Lavauzelle M2 – Algorithmes pour l’arithmétique– AA-5 –