19.07.2014 Views

Contents - Student subdomain for University of Bath

Contents - Student subdomain for University of Bath

Contents - Student subdomain for University of Bath

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!