Do you mean find a math realation between these numbers?
first x: c994b69768832bcbff5e9ab39ae8d1d3763bbf1e531bed98fe51de5ee84f50fb
second x: 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 private base x
third x: bcace2e99da01887ab0102b696902325872844067f15e98da7bba04400b88fcb
even y: 483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 small range y private key: 1
odd y: b7c52588d95c3b9aa25b0403f1eef75702e84bb7597aabe663b82f6f04ef2777 big range y private key: fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140
Like the a math realation bettewn first x and the second x?
It's called an endomorphism and the 3 X-points are all accessible by a cube (1/3) root, a 2/3 root, and the original X:
Now multiply 2*3 combos (endomorphisms) and you get a total of 6 endomorphisms: (x,y), (y,x) (y, n-x) and (x,n-y), (n-y, x), (n-y, n-x).
There's also python code in another thread I recently saw that computes those X's from a single Y (and vice versa):
script : x from y
## Input
y = 0x3199555CE45C38B856C9F64AC6DB27000AB6CEA10CAD76B2B6E246C9A020E707
## Field parameters
# Field modulus
p = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
# Cube root of 1
beta = 0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee
## Actual code
xcubed = (y*y - 7) % p
print ("xcubed = 0x%x" % xcubed)
x = pow(xcubed, (p + 2) / 9, p)
print ("x1 = 0x%x" % x)
print ("x2 = 0x%x" % (x * beta % p))
print ("x3 = 0x%x" % (x * beta * beta % p))
script: y from x
p = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
x = 0x33709eb11e0d4439a729f21c2c443dedb727528229713f0065721ba8fa46f00e
ysquared = ((x*x*x+7) % p)
print ("ysquared= %s ", hex(ysquared) )
y = pow(ysquared, (p+1)/4, p)
print ("y1 = ",hex(y))
print ("y2 = ", hex(y * -1 % p))
y1 = y
y2 = (y * -1) % p
print(" ")
print("value x = ",hex(x))
print("value x = ",x)
print(" ")
if Integer(y1) % 2 == 0:
print("value 02 to y = ",hex(y1))
print("value 02 to y =",y1)
print(" ")
print("value 03 to y = ",hex(y2))
print("value 03 to y =",y2)
if Integer(y2) % 2 == 0:
print("value 02 to y = ",hex(y2))
print("value 02 to y =",y2)
print(" ")
print("value 03 to y = ",hex(y1))
print("value 03 to y =",y1)
#test
print (hex((x**3 + 7 - y1**2) % p) )
print (hex((x**3 + 7 - y2**2) % p))
Recall that for X point from Y point, all you have to do is solve the y^2 = x^3 + 7 equation for X (you already know Y).
I know this is completely unrelated, but before I forget, let me explain why
x = pow(xcubed, (p + 2) / 9, p) actually works in the code - It's because x
p % p equals x (as is the case when you take any number to the power of the modulus), so that means:
x
p+1 % p equals x
2x
p+2 % p equals x
3x
p-1 % p equals 1/x
x
p-2 % p equals 1/x
2etc...
so once you have xcubed
p+2, this is actually the value of x
3*3=9, so to get back from xcubed to x you'd have to divide the power by 9, so that they cancel out like x
9/9 = x:
so in this case xcubed
(p+2)/9 would give us x.
Similarly:
square root: xsquared
(p+1)/44th root: x4th
(p+3)/165th root: x5th
(p+4)/25etc...
And then if you wanted to get 1/sqrt(x) for example, you'd take x
p-2, (
not x
p-1 which will be equal to 0 for all x), which is just x
1/(2*2)=1/4, and so to get 1/sqrt(x) you'd calculate x
(p-2)/41/x
3 you'd calculate x
(p-3)/9and so on...
I know it has nothing to do with your problem, just wanted to jot this down somewhere before it gets lost in space forever.
HI. And what heppen with privatekey in this calculation ?