# Some ECC Types and Operations

2 min readApr 5, 2021

--

We have a number of possible types of elliptic curve methods. These have a field (the prime number used), the order (the number of elliptic curve points), an a value, a b value, and a generator point (G). For a Weierstrass curve the standard form is y²=x³+ax+b (such as secp256k1). With a twisted Edwards curve (such as Ed25519) we have the form of ax²+y²=1+dx²y². A Montgomery curve has the form of by²=x³+ax²+x.

With ECC, we typically take a base point (G) and multiply it with our private key (sk), and then generate our public key point (sk.G). A sample run for secp256k1 and for 1,000G is [here]:

`Curve: secp256k1====================G: (0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 , 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8)Bit size: 256Order: 115792089237316195423570985008687907852837564279074904382605163141518161494337Field: 115792089237316195423570985008687907853269984665640564039457584007908834671663a: 0b: 7====================1000G: (0x4a5169f673aa632f538aaa128b6348536db2b637fd89073d49b6a23879cdb3ad , 0xbaf1e702eb2a8badae14ba09a26a8ca7cb1127b64b2c39a1c7ba61f4a3c62601)Point add (add 1G on)1001G: (0x9d1abaec9f5715a15c7628244170951e0f85e87f68ca5393d3f9fc3fa23a69c8 , 0xf21ee70050dbb61c238c89e62942353871b010e798867bdd149ad28b3f28cadf)Point subtraction (take 1G off)1000G: (0x4a5169f673aa632f538aaa128b6348536db2b637fd89073d49b6a23879cdb3ad , 0xbaf1e702eb2a8badae14ba09a26a8ca7cb1127b64b2c39a1c7ba61f4a3c62601)The first 10 points ...(1,29896722852569046015560700294576055776214335159245303116488692907525646231534)(2,46580984542418694471253469931035885126779956971428003686700937153791839982430)(3,94471189679404635060807731153122836805497974241028285133722790318709222555876)(4,75283998438183369598817001785077409976464767920444208230223825605154713824156)(5,None)(6,19112057249303445409876026535760519114630369653212530612662492210011362204224)(7,None)(8,91736135629086734185706894124002126994554994840140056297753929940646699135966)(9,None)(10,None)`

The field is the prime number used, and the order is the number of points on the curve. We can see we have the form of y²=x³+7. The outline code is [here]: