x , y Koordinationsteilung

Python-Code

def inverse(x, p):

    return pow(x,p-2,p)

p = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f

#private key 2 -->(x , y) value

xx =  0xc6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5L
yy =  0x1ae168fea63dc339a3c58419466ceaeef7f632653266d0e1236431a950cfe52aL

#private key 4 -->(x , y) value

x  =  0xe493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13L
y  =  0x51ed993ea0d455b75642e2098ea51448d967ae33bfbdfe40cfe97bdc47739922L

a= (x*inverse(xx,p))%p

print "x = " + hex(a)

b= (y*inverse(yy,p))%p

print "y = " + hex(b)

Ausgang

x = 0x1d8a71dd4218a520a1f976b6a4f66ed600880baf69d401a73dd010dd60f859ffL
y = 0x8f73b0d00f8d9e262cc230b7a6bee35d44ac898986195e819d68ecafd6b7803bL

normale Mathematik 4/2 = 2

aber hier x,y-Wert des privaten Schlüssels 2 dividiert durch x,y-Wert des privaten Schlüssels 4, nicht korrekten Wert von x,y angeben

Bitcoin, Mathe lernen

Antworten (1)

In der Welt der ECC-Mathematik gibt es keine Multiplikation (oder Division) von zwei Punkten . Dies liegt daran, dass die Punkte auf einer elliptischen Kurve eher eine mathematische Gruppe als einen Ring bilden.

Daher sollten Sie nicht erwarten, dass die Koordinaten von 4 * G und 2 * G durch die von Ihnen beschriebene Methode in Beziehung stehen. Das Ergebnis von 2*G ist nicht dasselbe wie die Multiplikation der Koordinaten von G mit 2. Sie können das jedoch überprüfen

4*G - 2*G = 2*G

Die Subtraktion hier ist eigentlich eine Abkürzung für ein komplexes, aber formelhaftes Verfahren für zwei ECC-Punkte. Beachten Sie, dass die Subtraktion einfach die Addition der additiven Umkehrung in der ECC-Gruppe ist. Dies unterscheidet sich stark von der multiplikativen Umkehrung im modularen Feld, die Ihre Python-Methode definiert hat.