Elliptic curve point halving over a GF(P) field with the TGFPEllipticCurve.GetHalves
method of the fnx.BigInts.GFPECurves unit.
Random BPSW-prime
-----------------
M = 4177328748913403798045979871308724267619447059106862088739
Curve coefficients
------------------
A4 = 1331215735015814655703613406870516500040870385755436456831
A6 = 2802138062646782279473444975387442930258170758029637706598
Curve type = Ordinary
Halving a point different from IDENTITY
ooooooooooooooooooooooooooooooooooooooo
Random point P
--------------
X = 2821491600173465702621725450750858895869345869297552047926
Y = 1612569401993695190724100801111380325624008203323872141200
Z = 1
P has 4 halves
H0
--
X = 2191707132530568913443418054667590078656099746301914629423
Y = 323109321816731876321601491726409557181243143465484418591
Z = 1
H1
--
X = 1311059273968282227917725602748190684123512211801192056520
Y = 1191617697569336641716520410146520622947018978351450799454
Z = 1
H2
--
X = 343530362661586843386771634461394487455187469196024452908
Y = 462509865171819987236438754212215280465529003850238830871
Z = 1
H3
--
X = 3262340882620021027693006639817536065623136990784214964114
Y = 2568660833564865424426286010188448609159380382710078903206
Z = 1
Check (H0*2 = P) : OK
Check (H1*2 = P) : OK
Check (H2*2 = P) : OK
Check (H3*2 = P) : OK
Halving the IDENTITY point
oooooooooooooooooooooooooo
IDENTITY has 4 halves
H0
--
IDENTITY
H1
--
X = 1683432381205036044177556059453619566689559054030184875986
Y = 0
Z = 1
H2
--
X = 1900301682996023806916153797061160771251629166330305483089
Y = 0
Z = 1
H3
--
X = 593594684712343946952270014793943929678258838746371729664
Y = 0
Z = 1
Check (H1*2 = IDENTITY) ......... : OK
Check (H2*2 = IDENTITY) ......... : OK
Check (H3*2 = IDENTITY) ......... : OK
Check ((H1 + H2) = H3) .......... : OK
Check ((H1 + H3) = H2) .......... : OK
Check ((H2 + H3) = H1) .......... : OK
Check ((H1 + H2 + H3) = IDENTITY) : OK
Running times (milliseconds)
----------------------------
Creating prime ........ : 1.741
Finding random curve .. : 0.073
Computing curve type .. : 6.108
Finding random point .. : 0.380
Halving ............... : 27.853
Halving IDENTITY ...... : 15.348
Sorry, this part cannot be displayed on small screens!