Integer roots over Z_p

So for awhile we've been talking about finding polynomial ladders. This is an interesting topic since a given ladder of degree k, has roots, and yet the polynomial itself can be calculated in only k multiplications (or k squaring). Unfortunately, it doesn't appear that polynomial ladders can be used to create any kind of fast Integer factoring algorithm (and this is really what inspired the original question in the Crandall/Pomerance book), since it is likely that we cannot find such polynomials for k larger than 4.

On the positive side though, it is worth noting that for the purpose of integer factoring, one doesn't necessarily need to have a polynomial with a large # of integer roots, but rather just has many roots over (where p could be the unknown prime factor we wish to find).

For example, consider the polynomial . This polynomial has only two roots, namely . On the other hand, over , this polynomial can have up to and including 60 roots.

For example, when , has exactly 60 roots over Z_61 by Fermat's test. As a result, if we wish to factor an integer like ( ), an obvious choice would be to use the polynomial .

Another advantage of working over Z_p, is that we can even use polynomials that have negative exponents. For example, we can calculate integer values of a polynomial like over .

Anyway, since were working at squaring ladders at the moment, the first question I'd like to pose is this; Find a polynomial squaring ladder with k = 5, such that this polynomial has exactly roots over the prime number .

I've been thinking about this problem somewhat. I realize its actually probably better to not consider using a polynomial ladder at all in this case (at least not if we wish to optimize the factoring algorithm). Generally, what we want is a polynomial (or map) function from to such that the range of is much smaller than its domain.

For example, if we use the function , then for large M, this will have a small range regardless of what is.

A factoring algorithm which is actually a combination of the Pollard Strassen Polynomial Evaluation Method (PSPEM) and the
P - 1 Method (both of these factoring algorithms can be found in chapter 5 of Pomerance book Prime Numbers: A Computational Perspective) can be done as follows:

Consider the polynomial map where and evaluate it for values of , where , for consecutive values of starting at 1.

The polynomial would take the same amount of time to compute as any other polynomial (and we'd use Horner's Scheme to evaluate it most likely). However the value of for which , maybe fairly small if (where p is the unknown factor of n) is such that is large, as would be much smaller.

There are of course other maps from to which have small range (for example, consider , however in general it is hard to find a function that has uniformly small ranges over arbitrary , that aren't also increasingly more time consuming to compute. If we could find a polynomial ladder for very large k, this would be good, since we would know that many values of x in the domain would go to 0.