Note 4/20/17: Due to circumstances I have had to move my web pages here.

Choose one of the two following elliptic curves:
 Curve over GF(p) Given a prime p, the elliptic curves modulo p that we use are of the form: y2 = x3 + ax + b. The curve and key information used for this page is: Curve over GF(2m) Given a field GF(2m) and a irreducable polynomial, the curve is of the form: y2 + xy = x3 + ax2 + b. The curve and key information used for this page is:
A common use for elliptic curve systems (and public-key systems in general) is to sign documents so that others can verify the identity of the author and that the document has not been modified.

Use the following steps to sign a document:

• Calculate e equal to the hash of the document using a secure hash function (such as SHA-1).
• Select a random value k
• Calculate (x,y) = k*G and then r = x mod n, where G is the generator point for the curve and n is the order for the curve
• If r=0, go back and try a different value for k
• Calculate s = k-1(e + rd) using the private value d
• If s=0, go back and try a different value for k
• The signature is the pair (r, s)

Checking a signature:

• Verify that r and s are in the range 1..(n-1). If not, the signature is invalid
• Calculate the document hash e using the same algorithm as the signature
• Calculate w = s-1 (mod n)
• Calculate U1 = e*w (mod n) and U2 = r*w (mod n)
• Calculate (x,y) = U1 + U2
• The signature is valid if r = x (mod n), invalid otherwise

Hash:

r = , s=

Details: