Contents - Student subdomain for University of Bath
Contents - Student subdomain for University of Bath
Contents - Student subdomain for University of Bath
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
152 CHAPTER 5. P -ADIC METHODS<br />
Figure 5.2: Algorithm23: Distinct Degree Factorization<br />
Algorithm 23 (Distinct Degree Factorization)<br />
Input: f(x) a square-free polynomial modulo p, not divisible by x; a prime p<br />
Output: A decomposition f = ∏ f i , where each f i is the product <strong>of</strong> irreducibles<br />
<strong>of</strong> degree i<br />
i:=1<br />
while 2i ≤ deg(f)<br />
g := x pi −1<br />
(mod f) (*)<br />
f i := gcd(g − 1, f)<br />
f := f/f i<br />
i := i + 1<br />
if f ≠ 1<br />
then f deg(f) := f<br />
Note that the computation in line (*) should be done by the repeated squaring<br />
method, reducing modulo f at each stage. We can save time in practice by<br />
re-using the previous g.<br />
Corollary 15 Half <strong>of</strong> the irreducible polynomials <strong>of</strong> degree d (except <strong>for</strong> x itself<br />
in the case d = 1) with coefficients modulo p divide (x − a) (pd −1)/2 − 1, <strong>for</strong> any<br />
a (but a different 50%,depending on a).<br />
If f i has degree i, then it is clearly irreducible: otherwise we have to split<br />
it. This is the purpose <strong>of</strong> Algorithm 24, which relies on a generalization <strong>of</strong><br />
Corollary 15.<br />
Proposition 50 ([CZ81, p. 589]) Let f be a product <strong>of</strong> r > 1 irreducible<br />
polynomials <strong>of</strong> degree d modulo p, and g a random (non-constant) polynomial<br />
<strong>of</strong> degree < d. Then the probability that gcd(g (pd −1)/2 − 1, f) is either 1 or f is<br />
at most 2 1−r .<br />
Proposition 51 The running time <strong>of</strong> the Cantor–Zassenhaus Algorithm (i.e.<br />
Algorithm 23 followed by Algorithm 24) is O(d 3 log p), where d is the degree <strong>of</strong><br />
the polynomial being factored.<br />
We do O(d) operations on polynomials <strong>of</strong> degree d, and the factor log p comes<br />
from the x pi (mod p) computations.<br />
5.4 From Z p to Z?<br />
Now that we know that factoring over the integers modulo p is possible, the<br />
obvious strategy <strong>for</strong> factoring polynomials over the integers would seem to be<br />
to follow one <strong>of</strong> algorithms 13 or 14. This would depend on having ‘good’<br />
reduction, which one would naturally define as follows.