Bitcoin Forum

Other => Archival => Topic started by: digaran on September 22, 2023, 11:40:45 AM



Title: 🖤
Post by: digaran on September 22, 2023, 11:40:45 AM
🖤


Title: Re: Python point subtraction
Post by: vjudeu on September 22, 2023, 02:02:08 PM
Quote
Code:
# Perform pointwise subtraction
inverse_x2 = pow(x2, p-2, p)
x3 = (x1 + (p - x2)) % p
y3_squared = (pow(x3, 3, p) + 7) % p
y3 = pow(y3_squared, (p+1)//4, p)
x3_hex = hex(x3)[2:].zfill(64)
y3_hex = hex(y3)[2:].zfill(64)
This does not look like point subtraction. Not at all. Compare it with point addition, that garlonicon described some time ago, and note that point subtraction is just "a+(-b)", so if you swap between "02" and "03" in the second key, and use addition, you will reach subtraction.

Then, we add these two points:
Code:
modulo=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F
px=79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798
py=483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8
qx=C6047F9441ED7D6D3045406E95C07CD85C778E4B8CEF3CA7ABAC09B95C709EE5
qy=1AE168FEA63DC339A3C58419466CEAEEF7F632653266D0E1236431A950CFE52A
c=(qy-py)/(qx-px)
c=(1AE168FEA63DC339A3C58419466CEAEEF7F632653266D0E1236431A950CFE52A-483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8)/(C6047F9441ED7D6D3045406E95C07CD85C778E4B8CEF3CA7ABAC09B95C709EE5-79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798)
c=d2a68e877f99fed44620881d385be245fade7e1c8be17cc7871c611855bf0ca1/4c4619154810c1c0daa4ddd8c73971d159db91705f2113ce51b9885e4578874d
c=d2a68e877f99fed44620881d385be245fade7e1c8be17cc7871c611855bf0ca1*ac946f7cd9ccebb8d59803e73c7d12aa395b2eb7e59a8ba119742df442fc6604
c=342119815c0f816f31f431a9fe98a6c76d11425ecaeaecf2d0ef6def197c56b0
rx=c*c-px-qx
rx=342119815c0f816f31f431a9fe98a6c76d11425ecaeaecf2d0ef6def197c56b0^2-79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798-C6047F9441ED7D6D3045406E95C07CD85C778E4B8CEF3CA7ABAC09B95C709EE5
rx=38f37014ce22fc29cf19f28a5ce4da091445536c3e2cff318ba07c2a3048f518-79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798-C6047F9441ED7D6D3045406E95C07CD85C778E4B8CEF3CA7ABAC09B95C709EE5
rx=bf350995d446407d79798ff48e5dcf0211a95691105ed65831adface1950d9af-C6047F9441ED7D6D3045406E95C07CD85C778E4B8CEF3CA7ABAC09B95C709EE5
rx=f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9
ry=c*(px-rx)-py
ry=342119815c0f816f31f431a9fe98a6c76d11425ecaeaecf2d0ef6def197c56b0*(79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798-f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9)-483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8
ry=342119815c0f816f31f431a9fe98a6c76d11425ecaeaecf2d0ef6def197c56b0*808ddc7d6783f89c0c6c130fd5e9b8dd4d6a3495aa5e8f28d3f090465a17dcce-483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8
ry=80ca558689d1ac796d8833e23848fbff62185de1db4777350901ce057fc9bb2a-483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8
ry=388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672
As you can see, we have:
Code:
rx=f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9
ry=388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672
That matches 3*G:
Code:
04 F9308A019258C31049344F85F89D5229B531C845836F99B08601F113BCE036F9 388F7B0F632DE8140FE337E62A37F3566500A99934C2231B6CB9FD7584B8E672   3*G


Title: Re: Python point subtraction
Post by: WanderingPhilospher on October 25, 2023, 02:45:45 AM
I think I have such a script.

Did you finally get yours to work?


Title: Re: Python point subtraction
Post by: Eva1uy on October 25, 2023, 02:53:33 AM
Times are developing and technology is progressing! !


Title: Re: Python point subtraction
Post by: hexan123 on October 25, 2023, 05:06:24 AM
if I want to subtract points t=j-d

------------------------------------------------------------------------------------------------------------------------
def subpoint (xj, yj, xd, yd):
   xt = (((yj*yj+2*yd*yj+yd*yd)*modinv (xd*xd-2*xd*xj+xj*xj,N2))-xd-xj)%N2
   yt = ((((yj+yd)*(xt-xd))*modinv(xd-xj,N2))+yd)%N2
   return (xt, yt)
-------------------------------------------------------------------------------------------------------------------------
modinv  modulo division
N2  = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F


Title: Re: Python point subtraction
Post by: NotATether on October 26, 2023, 08:36:03 AM
Why aren't you using a module like fastecdsa to perform the point subtraction, if I may ask?