Author

Topic: Bitcoin public key integer arithmetics, help me (Read 116 times)

full member
Activity: 204
Merit: 437
There cannot be integer arithmetic for secp256k1 curve, since it has no solutions in integer or rational numbers. The integer solutions of any elliptic curve are limited number, usually quite low one. There is no upper bound of that number, since you could multiply the coordinates and d by very very large numbers, thus removing denominators.

There are isomorphic curves, in which you could go with rational numbers, curves in the form of y2 = x3 + d, which can be obtained by multiplying by t: (y*t3)2 = (x*t2)3 + 7*t6. The smallest positive integer d for curve of rank 1 is 12, the smallest in absolute value is -2. Of course the coordinates grow very very big, very very fast. As an exercise you could find out (x,y) mod p coordinates for d=12 by moving the point to (x*t2, y*t3), t=1806032470229063221237645096224748984265920240071041634471134158090974399836, one of the six possible values for sixthroot(12/7) mod p. Then the smallest x numerator of rational coordinate producing it has maximum number of bits ~2512, y numerator ~2768, and both have a denominator in the form of z2 for x, and z3 for y, z having max ~2256 bits.

If you use y2 = x3 + 12, with generator (-2,2) then you'd get the following coordinates:
1: (-2 2)
2: (13 -47)
3: (-74/225 11674/3375)
5: (14932678/8994001 109819305542/26973008999)
11: (261861850180472271248849532094782118/4756672475309420795224474860473521
 -134005914121975045481665034854476269198005341316588858/328061202989677115836137338038693498061075340702569)
newbie
Activity: 1
Merit: 0
private key 3 (x = f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9 y = 388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672) divide 2 may output a private key 1? (x = 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 y = 483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8)

private key 5 (x = 2F8BDE4D1A07209355B4A7250A5C5128E88B84BDDC619AB7CBA8D569B240EFE4 y = D8AC222636E5E3D6D4DBA9DDA6C9C426F788271BAB0D6840DCA87D3AA6AC62D6) divide 2 may output a private key 2? (x = C6047F9441ED7D6D3045406E95C07CD85C778E4B8CEF3CA7ABAC09B95C709EE5 y = 1AE168FEA63DC339A3C58419466CEAEEF7F632653266D0E1236431A950CFE52A)

private key 11 (x = 774AE7F858A9411E5EF4246B70C65AAC5649980BE5C17891BBEC17895DA008CB y = D984A032EB6B5E190243DD56D7B7B365372DB1E2DFF9D6A8301D74C9C953C61B) divide 10 may output a private key 1? (x = 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 y = 483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8)

Can integer arithmetics be used? Not modular arithmetics.
Jump to: