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.

362 Chapter 7 ELLIPTIC CURVE ARITHMETIC<br />

how to compute a complete list for any prescribed value of h. The effective<br />

determination of such lists is an extremely interesting computational problem.<br />

To apply the Atkin–Morain method, we want to consider discriminants<br />

ordered, say, as above, i.e., lowest h(D) first. We shall seek curve orders based<br />

on specific representations<br />

4p = u 2 + |D|v 2 ,<br />

whence, as we see in the following algorithm exhibition, the resulting possible<br />

curve orders will be simple functions of p, u, v. Note that for D = −3, −4<br />

there are 6, 4 possible orders, respectively, while for other D there are two<br />

possible orders. Such representations of 4p are to be attempted via Algorithm<br />

2.3.13. If p is prime, the “probability” that 4p is so representable, given that<br />

<br />

D<br />

p<br />

=1,is1/h(D), as mentioned above. In the following algorithm, either it<br />

is assumed that our discriminant list is finite, or we agree to let the algorithm<br />

run for some prescribed amount of time.<br />

Algorithm 7.5.9 (CM method for generating curves and orders). We assume<br />

a list of fundamental discriminants {Dj < 0:j =1, 2, 3,...} ordered,<br />

say, by increasing class number h(D), and within the same class number by increasing<br />

|D|. We are given a prime p>3. The algorithm reports (optionally)<br />

possible curve orders or (also optionally) curve parameters for CM curves associated<br />

with the various Dj.<br />

1. [Calculate nonresidue]<br />

Find a random quadratic nonresidue g (mod p);<br />

if(p ≡ 1(mod3)and g (p−1)/3 ≡ 1(modp)) goto [Calculate nonresidue];<br />

// In case D = −3 is used, g must also be a noncube modulo p.<br />

j =0;<br />

2. [Discriminant loop]<br />

j = j +1;<br />

D = Dj;<br />

if( <br />

D<br />

p =1) goto [Discriminant loop];<br />

3. [Seek a quadratic form for 4p]<br />

Attempt to represent 4p = u2 + |D|v2 , via Algorithm 2.3.13, but if the<br />

attempt fails, goto [Discriminant loop];<br />

4. [Option: Curve orders]<br />

if(D == −4) report{p +1± u, p +1± 2v}; // 4 possible orders.<br />

if(D == −3) report{p +1± u, p +1± (u ± 3v)/2}; // 6 possible orders.<br />

if(D

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

Saved successfully!

Ooh no, something went wrong!