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