9

From what I understood are these the coordinates of basepoint G of Secp256K1 on the Elliptic Curve, in hexadecimal and decimal format.

Hexadecimal

Gx = (79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798)

Gy = (483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8)

Decimal

Gx = (55066263022277343669578718895168534326250603453777594175500187360389116729240)

Gy = (32670510020758816978083085130507043184471273380659243275938904335757337482424)

What I don't understand is that if I enter these values in the corresponding equation (y² = x³ + 7) as below, it seems that point G isn't on the curve at all. But it should, right? So what do I wrong?


(32670510020758816978083085130507043184471273380659243275938904335757337482424)²

is not equal to

(55066263022277343669578718895168534326250603453777594175500187360389116729240)³ + 7

Harald1970
  • 99
  • 3

2 Answers2

11

The secp256k1 curve is defined over x and y coordinates that are members of the finite field GF(2^256 - 2^32 - 977), or in other words, their operations hold only when considered modulo 115792089237316195423570985008687907853269984665640564039457584007908834671663.

55066263022277343669578718895168534326250603453777594175500187360389116729240^3 - (32670510020758816978083085130507043184471273380659243275938904335757337482424^2 + 7) is exactly 1442042049659660869506300006036683750029629333882594701370927246876626245108435922902327776681700708714008192087431130951749952236093997894375239788520937 times 115792089237316195423570985008687907853269984665640564039457584007908834671663.

Pieter Wuille
  • 105,497
  • 9
  • 194
  • 308
-1

Finite field mathematics and elliptic curves don't use the "normal operations". For example adding two finite field elements a and b isn't as simple as a + b. its actually (a+b)%Prime where prime is the size of the finite field, this ensures the CLOSED property is meant. which says that if a is in the set and b is in the set than a + b is also in the set. Same goes with multiplication which is what we have here. ab=(ab)%Prime

so for gx and gy you can use this (gy^2) % (2^256 - 2^32 - 977) = ((gx^3) + 7) % (2^256 - 2^32 - 977). These are in fact are equal.