10.12.2012 Views

Prime Numbers

Prime Numbers

Prime Numbers

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

324 Chapter 7 ELLIPTIC CURVE ARITHMETIC<br />

Either square root of the residue may be returned, since (x, y) ∈ E(Fp) implies<br />

(x, −y) ∈ E(Fp). Though the algorithm is probabilistic, the method can be<br />

expected to require just a few iterations of the do-loop. There is another<br />

important issue here: For certain problems where the y-coordinate is not<br />

needed, one can always check that some point (x, ?) exists—i.e., that x is<br />

a valid x-coordinate—simply by checking whether the Jacobi symbol <br />

t<br />

p is<br />

not −1.<br />

These means of finding a point on a given curve are useful in primality<br />

proving and cryptography. But there is an interesting modified question: How<br />

can one find both a random curve and a point on said curve? This question<br />

is important in factorization. We defer this algorithm to Section 7.4, where<br />

“pseudocurves” with arithmetic modulo composite n are indicated.<br />

But given a point P , or some collection of points, on a curve E, howdo<br />

we add them pairwise, and most importantly, how do we calculate elliptic<br />

multiples [n]P ? For these operations, there are several ways to proceed:<br />

Option (1): Affine coordinates. Use the fundamental group operations of<br />

Definition 7.1.2 in a straightforward manner, this approach generally involving<br />

an inversion for a curve operation.<br />

Option (2): Projective coordinates. Use the group operations, but for<br />

projective coordinates [X, Y, Z] to avoid inversions. When Z = 0,[X, Y, Z]<br />

corresponds to the affine point (X/Z, Y/Z) on the curve. The point [0, 1, 0] is<br />

O, the point at infinity.<br />

Option (3): Modified projective coordinates. Use triples 〈X, Y, Z〉, whereif<br />

Z = 0, this corresponds to the affine point (X/Z 2 ,Y/Z 3 ) on the curve, plus<br />

the point 〈0, 1, 0〉 corresponding to O, the point at infinity. This system also<br />

avoids inversions, and has a lower operation count than projective coordinates.<br />

Option (4): X, Z coordinates, sometimes called Montgomery coordinates. Use<br />

coordinates [X : Z],whicharethesameastheprojectivecoordinates[X, Y, Z],<br />

but with “Y ” dropped. One can recover the x coordinate of the affine point<br />

when Z = 0asx = X/Z. There are generally two possibilities for y, and<br />

this is left ambiguous. This option tends to work well in elliptic multiplication<br />

and when y-coordinates are not needed at any stage, as sometimes happens<br />

in certain factorization and cryptography work, or when the elliptic algebra<br />

must be carried out in higher domains where coordinates themselves can be<br />

polynomials.<br />

Which of these algorithmic approaches is best depends on various side issues.<br />

For example, assuming an underlying field Fp, if one has a fast inverse (mod p),<br />

one might elect option (1) above. On the other hand, if one has already<br />

implemented option (1) and wishes to reduce the expensive time for a (slow)<br />

inverse, one might move to (2) or (3) with, as we shall see, minor changes in<br />

the algorithm flow. If one wishes to build an implementation from scratch,<br />

option (4) may be indicated, especially in factorization of very large numbers

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

Saved successfully!

Ooh no, something went wrong!