A la fin de cette première étape, on a décomposé Psous la forme :
P=Rpk1
1. . . Rpkl
l,
où les Ri∈Fq[X]sont sans facteurs multiples.
1.1.2 Seconde étape
On est ainsi ramené à factoriser des polynômes sans facteur multiple, les Ri. On suppose donc
maintenant que Pn’a que des facteurs simples. Son degré est noté N. L’idée est de chercher un
polynôme non constant Hde degré < N tel que Pdivise Hq−H.
Pour tout 0≤j≤N−1, on calcule le reste de la division euclidienne de (Xqj )par P. On le
note
N−1
X
i=0
bi,jXi. Ces coefficients sont regroupés dans une matrice B= (bi,j)0≤i,j≤N−1∈MN(Fq).
Le résultat suivant permet de déterminer un polynôme Hconvenable :
Proposition 1 Soit H=
N−1
X
i=0
hiXi∈Fq[X], de degré < N. Alors Pdivise Hq−Hsi, et
seulement si :
(B−IN)
h0
.
.
.
hN−1
= 0,
ce qui revient à dire que le vecteur colonne des coefficients hiest dans le noyau de B−IN.
Par suite, une résolution d’un système linéaire permet de déterminer un Hconvenable. On
utilise ensuite le résultat suivant :
Proposition 2 Soit P∈Fq[X], unitaire, et soit H∈Fq[X], tel que Pdivise Hq−H. Alors :
P=Y
λ∈Fq
P∧(H−λ),
L’algorithme de Berlekamp procède alors de la manière suivante : si B−INest de rang N−1,
alors Pest irréductible . Sinon, on choisit un polynôme Hnon constant tel que Pdivise Hn−H
grâce au calcul du noyau de B−INet la proposition précédente donne une factorisation de Pen
facteurs non tous triviaux (ils sont tous de degré strictement inférieur au degré de pmais il est
possible que certains soient constants). En réitérant l’algorithme de Berlekamp sur les facteurs
trouvés, on finit par obtenir une décomposition en facteurs irréductibles de P.
Nous allons aussi montrer le résultat suivant :
Proposition 3 Si Pn’a pas de facteurs carrés, le nombre de facteurs irréductibles de Pest
N−rang(B−IN).
Cette dernière proposition n’a pas d’intérêt lorsque l’on souhaite programmer Berlekamp,
mais servira souvent en pratique !
Remarques.
1. Lorsque k=N−rang(B−IN)≥3, on peut appliquer la proposition 3 avec k−1poly-
nômes non constants et linéairement indépendants plutôt que de réappliquer l’algorithme
immédiatement aux facteurs trouvés. Ceci augmente les chances de trouver tous les facteurs
irréductibles en le minimum de calculs.
2. L’algorithme nécessite (entre autre) le calcul de qPGCD. Il n’est donc performant que
lorsque le cardinal du corps de base est petit.
3