10.12.2012 Views

Prime Numbers

Prime Numbers

Prime Numbers

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

298 Chapter 6 SUBEXPONENTIAL FACTORING ALGORITHMS<br />

If S has 2k elements, and φ(γ) ≡ v (mod n), ψ(δ) ≡ w (mod n), then<br />

C k Gx(Cm,C)v 2 ≡ c k Fx(cm, c)w 2 (mod n),<br />

and so we may attempt to factor n via gcd(CkGx(Cm,C)u−ck Fx(cm, c)v, n).<br />

One may wonder why it is advantageous to use two polynomials of degree<br />

higher than 1. The answer is a bit subtle. Though the first-order desirable<br />

quality for the numbers that we sieve for smooth values is their size, there is<br />

a second-order quality that also has some significance. If a number near x is<br />

giventousasaproductoftwonumbersnearx1/2 ,thenitismorelikelyto<br />

be smooth than if it is a random number near x that is not necessarily such a<br />

product. If it is y-smoothness we are interested in and u =lnx/ ln y, then this<br />

second-order effect may be quantified as about 2u . That is, a number near x<br />

given as a product of two random numbers near x1/2 is about 2u timesaslikely<br />

to be y-smooth than is a random number near x. If we have two polynomials in<br />

the number field sieve with the same degree and with coefficients of the same<br />

magnitude, then their respective homogeneous forms have values that are of<br />

the same magnitude. It is the product of the two homogeneous forms that we<br />

are sieving for smooth values, so this 2u philosophy seems to be relevant.<br />

However, in the “ordinary” NFS as described in Algorithm 6.2.5, we<br />

are also looking for the product of two numbers to be smooth: One is the<br />

homogeneous form F (a, b), and the other is the linear form a − bm. Theydo<br />

not have roughly equal magnitude. In fact, using the parameters suggested,<br />

F (a, b) isaboutthe3/4 power of the product, and a − bm is about the 1/4<br />

power of the product. Such numbers also have an enhanced probability of<br />

being y-smooth, namely, 4/33/4u .<br />

So, using two polynomials of the same degree d ≈ 1<br />

2 (3 ln n/ ln ln n)1/3 ,and<br />

with coefficients bounded by about n1/2d , we get an increased probability of<br />

smoothness over the choices in Algorithm 6.2.5 of about 33/4 /2 u<br />

.Now,uis about 2(3 ln n/ ln ln n) 1/3 , so that using the two polynomials of degree d saves<br />

a factor of about (1.46)<br />

(ln n/ ln ln n)1/3<br />

. While not altering the basic complexity,<br />

such a speedup represents significant savings.<br />

The trouble, though, with using dual polynomials is finding them. Other<br />

than an exhaustive search, perhaps augmented with fast lattice techniques, no<br />

one has suggested a good way of finding such polynomials. For example, take<br />

the case of d = 3. We do not know any good method when given a large integer<br />

n of coming up with two distinct, irreducible, degree 3 polynomials f(x),g(x),<br />

with coefficients bounded by n 1/6 , say, and an integer m, perhaps very large,<br />

such that f(m) ≡ g(m) ≡ 0(modn). A counting argument suggests that<br />

such polynomials should exist with coefficients even somewhat smaller, say<br />

bounded by about n 1/8 .<br />

Special number field sieve (SNFS)<br />

Counting arguments show that for most numbers n, we cannot do very<br />

much better in finding polynomials than the simple-minded strategy of<br />

Algorithm 6.2.5. However, there are many numbers for which much better

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

Saved successfully!

Ooh no, something went wrong!