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.

7.5 Counting points on elliptic curves 347<br />

difficulties of a problem before having solved it.” The paper [Brent et al. 2000]<br />

indicates other test values for recent factors of other Fermat numbers. Such<br />

data are extremely useful for algorithm debugging. In fact, one can effect a<br />

very rapid program check by taking the explicit factorization of a known curve<br />

order, starting with a point P , and just multiplying in the handful of primes,<br />

expecting a successful factor to indicate that the program is good.<br />

As we have discussed, ECM is especially suitable when the hidden prime<br />

factor is not too large, even if n itself is very large. In practice, factors<br />

discovered via ECM are fairly rare in the 30-decimal-digit region, yet more<br />

rare in the 40-digit region, and so far have a vanishing population at say 60<br />

digits.<br />

7.5 Counting points on elliptic curves<br />

We have seen in Section 7.3 that the number of points on an elliptic<br />

curve defined over a prime finite field Fp is an integer in the interval<br />

( √ p − 1) 2 , ( √ p +1) 2 . In this section we shall discuss how one may go about<br />

actually finding this integer.<br />

7.5.1 Shanks–Mestre method<br />

For small primes p, less than 1000, say, one can simply carry out the explicit<br />

sum (7.8) for #Ea,b(Fp). But this involves, without any special enhancements<br />

(such as fast algorithms for computing successive polynomial evaluations),<br />

O(p ln p) field operations for the O(p) instances of (p − 1)/2-th powers. One<br />

can do asymptotically better by choosing a point P on E, and finding all<br />

multiples [n]P for n ∈ (p +1− 2 √ p, p +1+2 √ p), looking for an occurrence<br />

[n]P = O. (Note that this finds only a multiple of the order of P —it is the<br />

actual order if it occurs that the order of P has a unique multiple in the<br />

interval (p +1− 2 √ p, p +1+2 √ p), an event that is not unlikely.) But this<br />

approach involves O( √ p ln p) field operations (with a fairly large implied big-O<br />

constant due to the elliptic arithmetic), and for large p, say greater than 10 10 ,<br />

√p<br />

<br />

k<br />

this becomes a cumbersome method. There are faster O ln p algorithms<br />

that do not involve explicit elliptic algebra (see Exercise 7.26), but these, too,<br />

are currently useless for primes of modern interest in the present context,<br />

say p ≈ 10 50 and beyond, this rough threshold being driven in large part by<br />

practical cryptography. All is not lost, however, for there are sophisticated<br />

modern algorithms, and enhancements to same, that press the limit on point<br />

counting to more acceptable heights.<br />

There is an elegant, often useful, O(p 1/4+ɛ ) algorithm for assessing curve<br />

order. We have already visited the basic idea in Algorithm 5.3.1, the babysteps,<br />

giant-steps method of Shanks (for discrete logarithms). In essence this<br />

algorithm exploits a marvelous answer to the following question: If we have two<br />

length-N lists of numbers, say A = {A0,...,AN−1} and B = {B0,...,BN−1},<br />

how many operations (comparisons) are required to determine whether A ∩ B

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

Saved successfully!

Ooh no, something went wrong!