Calcul formel Calcul modulo un polynôme - PolSys
Transcription
Calcul formel Calcul modulo un polynôme - PolSys
Calcul formel Calcul modulo un polynôme Guénaël Renault SALSA - LIP6/Université Paris 6 Part I Introduction - Motiviation UPMC - Master STL - Calcul Formel - 2006/07 2/38 Calcul modulo C’est le moyen de représenter les structures mathématiques en informatique et de faire du cacul exact : Calcul Formel ! ⇒ Résolution de problèmes géométriques (géo. - alg.) ⇒ Utilisation des groupes en combinatoire ⇒ Théorie algorithmique des nombres, cryptologie ⇒ ... UPMC - Master STL - Calcul Formel - 2006/07 3/38 Calcul modulo un polynôme en une variable ⇒ Il faut bien commencer par une variable ! Pourquoi ? Représentation symbolique de solutions Représentation de structures mathématiques (applications). Exemples importants : ⇒ Représentation des corps finis (théorie de l’information). ⇒ Représentation des solutions issues de la géométrie. ⇒ Représentation des corps de nombres et de fonctions. UPMC - Master STL - Calcul Formel - 2006/07 4/38 Part II Euclide et l’arithmétique UPMC - Master STL - Calcul Formel - 2006/07 5/38 Arithmétique : quelques définitions importantes Soit A un anneau (commutatif avec unité). L’arithmétique dans A c’est étudier la notion de divisibilité dans cet anneau. Définitions anneau intègre divisibilité idéal (exemple : a|b ⇒ aA ⊂ bA) élément inversible (éléments associés) élément irréductible élément premier a, b ∈ A, pgcd(a, b) UPMC - Master STL - Calcul Formel - 2006/07 6/38 Décomposition d’Euclide en général Un anneau A factoriel si A intègre ∀a ∈ A non nul et non inversible, on a une décomposition unique (association près) de la forme Y a= pvp (a) , p irréductibles i ⇒ Arithmétique de base possible ici ! ⇒ Le PGCD peut être défini. Exemple : Z, Z[X] UPMC - Master STL - Calcul Formel - 2006/07 7/38 Bézout et anneau principal Soient a,b et c trois éléments de A. Ils sont en relation de Bézout si cA = aA + bA et dans ce cas nous avons c = pgcd(a, b) Réciprocité ? les idéaux de type fini sont principaux suffit ! Anneau principal intègre tout idéal est principal (monogène) Contre-exemple important : Q[X, Y] n’est pas principal ! ⇒ A[X] principal ssi A est un corps. UPMC - Master STL - Calcul Formel - 2006/07 8/38 Anneaux euclidiens : où l’on commence à faire des calculs ! Comment calculer le pgcd et la relation de Bézout ? Anneau euclidien intègre Il existe une application φ : A −→ R+ tq pour tout a, b 6= 0 dans A on peut trouver q et r vérifiant a = bq + r division euclidienne avec φ(r) < φ(b) ⇒ Algorithme d’Euclide étendu. euclidien ⇒ principal ⇒ factoriel Comment faire des calculs si non euclidien ? ⇒ Bases de Gröbner, à suivre ! UPMC - Master STL - Calcul Formel - 2006/07 9/38 Euclide : le monde parfait ! A = Q[X] P irreductible K∗ (pgcd(a, b)) = (a) + (b) A = (1) = (X + 1) + (X + 5) UPMC - Master STL - Calcul Formel - 2006/07 ←→ A=Z p entier premier {1, −1} (pgcd(a, b)) = (a) + (b) A = (1) = (3) + (2) 10/38 Extensions de corps et espace vectoriel Définition-Propositions Soit L ⊃ K deux corps. L est appelé extension de K. Le degré de L sur K (noté [L : K]) correspond à la dimension de L en tant que K-ev. Si L et K sont finis |L| = K n où n = [L : K]. ⇒ Montrer que si M ⊃ L ⊃ K et {ei } est une base de M sur L et {fj } une base de L sur K alors {ei fj } est une base de M sur K. En déduire le degré de M sur K. UPMC - Master STL - Calcul Formel - 2006/07 11/38 Part III Racines d’un polynôme et rupture UPMC - Master STL - Calcul Formel - 2006/07 12/38 Polynômes : racines Définition Soit P ∈ A[X] un polynôme. Un élément α de A est une racine de P si P(α) = 0. Théorèmes Lorsque A est un corps on a Si α est une racine de P alors P = (X − α)Q(X). Si P est de degré n alors P a au plus n racines. ⇒on compte avec les multiplicités. UPMC - Master STL - Calcul Formel - 2006/07 13/38 Polynômes : racines Problème Comment calculer formellement avec les racines d’un polynôme irréductible de K[X] ? √ Exemple : X 2 − 3 ∈ Q[X] a pour racine α = √ 3. Comment un ordinateur peut-il manipuler α pour calculer ( 3 − 1)−1 par exemple ? ⇒Calcul formel. UPMC - Master STL - Calcul Formel - 2006/07 14/38 Polynômes : racines Rupture On construit le plus petit sur-corps K(α) de K contenant α : K(α) = {P(α) : P ∈ K[X]} Représentation On a la construction formelle (P irréductible) par isomorphisme : K(α) = K[X]/(P) α est représenté par la classe de X modulo P. ⇒On ne peut distinguer algébriquement les racines de P. ⇒Les éléments de K(α) sont de la forme k0 + k1 α + · · · + kn−1 αn−1 où n est le degré de P. √ ⇒Faire des calculs dans Q( 3) revient a calculer modulo X 2 − 3 dans Q[X] ! UPMC - Master STL - Calcul Formel - 2006/07 15/38 A retenir et point vue vectoriel Soit P un polynôme irréductible de K[X]. K[X] est principal P engendre un idéal maximal L = K[X]/(P) est un corps (extension de K). K[X]/(P) ' K[α] où α est une racine (indistinguable) de P. Du point de vue vectoriel L est engendré par 1, α, . . . , αd−1 où d est le degré de P. Exemple : C = R[X]/(X 2 + 1) UPMC - Master STL - Calcul Formel - 2006/07 16/38 Calcul formel √ Exemple : X 2 − 3 a pour racine α = 3. Comment un ordinateur peut-il √ manipuler α pour calculer ( 3 − 1)−1 par exemple ? UPMC - Master STL - Calcul Formel - 2006/07 17/38 Calcul formel √ Exemple : X 2 − 3 a pour racine α = 3. Comment un ordinateur peut-il √ manipuler α pour calculer ( 3 − 1)−1 par exemple ? √ A l’aide de la construction précédente, calculer ( 3 − 1)−1 revient à calculer l’inverse de X − 1 dans Q[X]/(X 2 − 3). Pour ça on utilise Euclide pour trouver une relation de Bézout : UPMC - Master STL - Calcul Formel - 2006/07 17/38 Calcul formel √ Exemple : X 2 − 3 a pour racine α = 3. Comment un ordinateur peut-il √ manipuler α pour calculer ( 3 − 1)−1 par exemple ? X 2 − 3 = X(X − 1) + X − 3 X − 1 = 1(X − 3) + 2 1 X − 3 = (X − 3)2 + 0 2 UPMC - Master STL - Calcul Formel - 2006/07 17/38 Calcul formel √ Exemple : X 2 − 3 a pour racine √ α =−1 3. Comment un ordinateur peut-il manipuler α pour calculer ( 3 − 1) par exemple ? X 2 − 3 − X(X − 1) = X − 3 X − 1 − 1(X − 3) = 2 2 = (X − 1) − (X 2 − 3) + X(X − 1) UPMC - Master STL - Calcul Formel - 2006/07 17/38 Calcul formel √ Exemple : X 2 − 3 a pour racine √ α =−1 3. Comment un ordinateur peut-il manipuler α pour calculer ( 3 − 1) par exemple ? 1 1 2 1 = (X + 1)(X − 1) − (X − 3) 2 2 √ 1 √ −1 ( 3 − 1) = ( 3 + 1) 2 UPMC - Master STL - Calcul Formel - 2006/07 17/38 Part IV Représentation régulière des nombres algébriques UPMC - Master STL - Calcul Formel - 2006/07 18/38 Matrice de multiplication ⇒Représentation des nombres algébriques à l’aide d’une matrice. Corps de nombres - Q-espace vectoriel Soit K = Q[X]/(P) un corps de rupture de degré n et α une racine de P (image de X dans le quotient). K est un Q-espace vectoriel de degré n Une base de K est donnee par {1, α, . . . , αn−1 }. Exemple : P(X) = X 2 − 2 √ α= 2 K = Q[α] = Q[X]/(P) √ K = Q − h1, 2i UPMC - Master STL - Calcul Formel - 2006/07 19/38 Matrice de multiplication ⇒Représentation des nombres algébriques à l’aide d’une matrice. ⇒K est un Q-ev de dimension n de base {e1 , . . . , en }. Proposition-Défintion Soit ω = Q-ev K. P ωi ei ∈ K, la multiplication par α est un endomorphisme du Mω : K → K a 7→ aω Sa représentation matricielle Mω = (ωi,j ) est donnée par : ωej = n X ai,j ei i=1 ou encore ω(e1 , . . . , en ) = (e1 , . . . , en )Mω UPMC - Master STL - Calcul Formel - 2006/07 20/38 Matrice de multiplication ⇒Représentation des nombres algébriques à l’aide d’une matrice. ⇒K est un Q-ev de dimension n de base {e1 , . . . , en }. Propriétés Mab = Ma Mb Ma dépend de la base choisie Une fois la base fixée on a un morphisme d’algèbre F : K → Mn a 7→ Ma ⇒Faire des calculs avec les nombres algébriques revient à faire de l’alèbre linéaire. UPMC - Master STL - Calcul Formel - 2006/07 21/38 Matrice de multiplication ⇒Représentation des nombres algébriques à l’aide d’une matrice. ⇒K est un Q-ev de dimension n de base {e1 , . . . , en }. Invariants Soit a ∈ K on définit La trace de a : Tr(a) := Tr(Ma ) La norme de a : N(a) := Det(Ma ) Pour b ∈ K et λ ∈ Q on a Tr(a + b) = Tr(a) + Tr(b) Tr(λa) = λTr(a) N(ab) = N(a)N(b) N(λa) = λn N(a) ⇒La trace est linéaire. ⇒La norme est multiplicative, homogène de degré n. UPMC - Master STL - Calcul Formel - 2006/07 22/38 Anneau des entiers Entier algébrique Soit a ∈ K. L’élément a est un entier algébrique s’il existe un polynôme unitaire à coefficients dans Z annulant a. Théorème Un élément a ∈ K est un entier algébrique ssi le polynôme charactéristique de Ma est unitaire à coefficients entiers. ⇒Le polynôme charactéristique de Ma : Pa (t) = det(tIn − Ma ) est annulateur de a (c’est aussi son polynôme charactérisque). ⇒Les matrices à coeffcients entiers sont stables par addition et multiplication : c’est bien un anneau ! UPMC - Master STL - Calcul Formel - 2006/07 23/38 √ Anneau des entiers de Q[ d] √ Exemple : on cherche l’anneau des entiers de Q[ d] pour d ∈ Z ⊂ {0, 1} un entier sans carré. UPMC - Master STL - Calcul Formel - 2006/07 24/38 Part V Corps finis UPMC - Master STL - Calcul Formel - 2006/07 25/38 Corps finis : définition A partir des corps premiers Fp = Z/pZ on veut pouvoir construire des corps de même caractéristique p mais de cardinal plus grand. On utilise la rupture ⇒ Définition Soit P un polynôme irréductible de degré n Fpn := Fp[X]/(P) UPMC - Master STL - Calcul Formel - 2006/07 26/38 Corps finis : résultats Théorèmes Fpn est de cardinal pn . Pour tout p premier et tout entier n > 0 il existe un polynôme irréductible de degré n dans Fp . Exemple : Fp = Z/2Z et P = X 2 + X + 1 F4 = F2 [X]/(X 2 + X + 1) Si on note ω une racine de P (image de X modulo P) on a : F4 = {0, 1, ω, ω + 1} UPMC - Master STL - Calcul Formel - 2006/07 27/38 Comment les représenter ? Il existe approximativement qk /k polynômes irréductibles de degré k sur Fq . Lemme(Gauss) Soit P un polynôme de degré d dans Fq et pi les premiers divisant d. P est irréductible ssi d/pi pgcd(P, X q P divise X qd − X) = 1 ∀i −X ⇒Choix des polynômes important pour arithmétique efficace ⇒Trinôme ou pentanôme unitaires irréductibles, problème ouvert en tout degré (ok pour d < 10000). UPMC - Master STL - Calcul Formel - 2006/07 28/38 Calculs dans Fq Addition et multiplication : on utilise les algos sur le l’anneau de base et on applique les réductions Division = Inversion : Euclide ! UPMC - Master STL - Calcul Formel - 2006/07 29/38 Calculs dans Fq Inversion en carac 2 de f modulo m de deg d (Brunner et al.). u := 1 ; v := 0 ; s := m ; δ := 0 f o r i := 1 to 2d do i f fd = 0 then f := Xf ; u := Xu mod m ; δ++ else i f sd = 1 then s := s − f ; v := v − u mod m end i f s := Xs i f δ = 0 then t := f ; f := s ; s := t t := u ; u := v ; v := t u := Xu mod m δ := 1 else u := u/X mod m ; δ−− end i f ; end i f ; o r- ;Calcul Formel - 2006/07 UPMCend - MasterfSTL 30/38 Part VI Corps finis - représentation par base normale - Syst. Lin. UPMC - Master STL - Calcul Formel - 2006/07 31/38 Base normale et multiplication Définitions k−1 Un élément α de Fpk est dit normal si α, αp , . . . , αp sont linéairement disjoints. k−1 {α, αp , . . . , αp } est une base de l’ev Fpk sur Fp dite normale. ⇒Facilite le calcul de β p (shift) dans cette représentation (notamment en caractéristique 2 pour l’exponentiation). ⇒Difficile de multiplier : utilisation d’une matrice de multiplication Matrice de multiplication T = (ti,h ) telle que pi pj α ×α = k−1 X h ti−j,h−j αp h=0 Si u et v sont représentés dans cette base alors w = uv est donné par wh = (uh , uh+1 , . . . , uh+k−1 )T(vh , vh+1 , . . . , vh+k−1 )t (indices mod k) Exemple : calcul d’une matrice de multiplication par réduction de Gauss. UPMC - Master STL - Calcul Formel - 2006/07 32/38 Multiplication et inversion pour un degré donné modéré a = a0 + a1 θ + a2 θ2 et b = b0 + b1 θ + b2 θ2 Multiplication : Karatsuba Inversion : pré-calcul par algèbre linéaire Exemple en degré 3. UPMC - Master STL - Calcul Formel - 2006/07 33/38 Part VII Application : NFS light UPMC - Master STL - Calcul Formel - 2006/07 34/38 Number Field Sieve : crible algébrique ⇒On utilise un nouveau concept dans QS, celui du calcul avec une racine d’un polynôme. Idée de base pour factoriser n en criblant: On considère f ∈ Z[X] et α une racine de f . On va cribler dans l’anneau Z[α] et dans Z/nZ simultanément. Lumière φ : Z[α] → Z/nZ a1 , . . . , ak ∈ Z[α] de produit un carré γ 2 ∈ Z[α] φ(a1 ), . . . , φ(ak ) ∈ Z/nZ de produit un carré v2 ∈ Z/nZ u2 := φ(γ)2 = φ(a1 · · · ak ) = φ(a1 ) · · · φ(ak ) = v2 mod n ⇒Comment trouver des carrés dans Z[α]. UPMC - Master STL - Calcul Formel - 2006/07 35/38 Number Field Sieve : crible algébrique ⇒Comment choisir f et φ ? Constantes d = 5 (heuristique) m = bn1/d On écrit n en base m, pour n suffisament grand on aura : n = md + cd−1 md−1 + · · · + c0 f = X d + cd−1 X d−1 + · · · + c0 φ : a = a0 +a1 α+· · ·+ad−1 αd−1 7→ t = a0 +a1 m+· · ·+ad−1 md−1 7→ t UPMC - Master STL - Calcul Formel - 2006/07 mod n 36/38 Number Field Sieve : crible algébrique ⇒Que cherche-t-on ? Les couples recherchés On considère les éléments a − bα ∈ Z[α]. On cherche un ensemble E de couples (a, b) d’entiers étrangers l’un de l’autre tels que Y (a − bα) = γ 2 , γ ∈ Z[α] (a,b)∈E Y (a − bm) = v2 , v∈Z (a,b)∈E En effet on aura alors φ(γ)2 = v2 UPMC - Master STL - Calcul Formel - 2006/07 mod n 37/38 Number Field Sieve : crible algébrique ⇒Crible ? Ce que l’on crible On considère la norme F(a, b) := N(a − bα) = bd f (a/b) et la fonction G(a, b) = a − bm On cherche des couples (a, b) tels que le produit F(a, b)G(a, b) soit B − smooth Par algèbre linéaire on reconstruit des carrés (on double la longueur des vecteurs, les premiers de F(a, b) d’un coté, ceux de G(a, b) de l’autre. ⇒Pas si simple que ca ! La condition sur la norme ne suffit pas a dire que l’on a un carré dans Z[α] mais on peut s’arranger !. UPMC - Master STL - Calcul Formel - 2006/07 38/38