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