ELLIPTIC CURVE DIGITAL SIGNATURE
ECSearch is a procedure that searches for a point on a given elliptic curve with first coordinate between "lowerbound" and "upperbound". The lowerbound and the upperbound are positive random numbers.
ECAdd is a procedure that computes the sum of two points on a given elliptic curve using the elliptic curve operation.
ECDouble is a procedure that computes P+P where P is a point on a given elliptic curve group G.
ECInverse is a procedure that finds an inverse of a group element P on an elliptic curve group G.
ECTimes is a procedure that adds a point k-times (scalar) to itself for a given elliptic curve using the elliptic curve operation.
findptOrder is a procedure that computes order of a group element (point) in an eliptic curve group E. The command for computing order of an elliptic curve group E in sage is E.order( ) or E.cardinality( ).
The elliptic curve group is
G= [453247983724987324739287983275982375923, 0, 48756928743475984375947598473598437598473597439857498375948375984375984375983551]
The order of the elliptic curve group is 48756928743475984375947598473598437598473597439857498375948375984375984375983552
The base point is g= [78657644, 16991537913472596716592338071192242226000171060940316650383793820397326594624617]
24378464371737992187973799236799218799236798719928749187974187992187992187991776
EXAMPLE 1. The following example illustrates how to generate a signature on the plaintext "Today" using the Elliptic Curve Digital Signature Schema (EC DSA). The signature is generated using the ASCII padded version of the plaintext and the EC DSA.
The elliptic curve group is
G= [453247983724987324739287983275982375923, 0, 48756928743475984375947598473598437598473597439857498375948375984375984375983551]
The order of the elliptic curve group is 48756928743475984375947598473598437598473597439857498375948375984375984375983552
The base point is g= [78657644, 16991537913472596716592338071192242226000171060940316650383793820397326594624617]
The order of the base point g is 24378464371737992187973799236799218799236798719928749187974187992187992187991776
The private key is x= 3267452870001
The public elliptic curve point is
b= [17566544735431983712026375755888836036365834903701605548573320082144981869265965, 23848130856677747270630665750802737393249426947106690074248083069291730803714563]
EXAMPLE 2. The following example illustrates how to generate a signature on the plaintext "Today" using the Elliptic Curve Digital Signature Schema (EC DSA). The signature is generated using the ASCII padded version of the plaintext and the EC DSA and the key from Example 1.
The elliptic curve signature is the pair
Y= 9724134493832687712733750210292829353053460158844222041596059403416761384520382
S= 5473315643055236073462204269053253014519496239893926482579871838753145354487923
EXAMPLE 3. The following example illustrates how to verify the signature on the plaintext "Today" using the Elliptic Curve Digital Signature Schema (EC DSA).
Valid Signature