Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

As in 39628...

The modulus is also a big important part of the data, so i suppose the curve is the one displayed in:

http://www.secg.org/SEC2-Ver-1.0.pdf, page 24, label sect113r1 .

The answer is now

R.<T> = PolynomialRing( GF(2) )
F.<t> = GF( 2**113, modulus=X^113 + X^9 + 1 )

a = F.fetch_int( 0x003088250CA6E7C7FE649CE85820F7 )
b = F.fetch_int( 0x00E8BEE4D3E2260744188BE0E9C723 )

E = EllipticCurve( F, [ 1, a, 0, 0, b ] )

Comment:

We also have the order of the curve, from the reference, it is the value of the variable n below:

P = E.random_point()
n = 2*ZZ( 0x0100000000000000D9CCEC8A39E56F )
print n*P
print "Order: %s" % factor(n)

This gives (for "all random points"):

(0 : 1 : 0)
Order: 2 * 5192296858534827689835882578830703
sage: bool( (sqrt(q)-1)^2 < n )
True
sage: bool( n < (sqrt(q)+1)^2 )
True