Post
Topic
Board Development & Technical Discussion
Topic OP
Relationship between public key and private key
by
sss555
on 17/11/2015, 09:05:18 UTC
p = fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f

n = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364140

cryptography point multiplication

private key 14

base point 1

x = 79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798
y = 483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8

Note : point multiplication
       private key is even only point doubling operation,
       If private key is odd point addition with before doubled point or initial point
       then double the point ( before doubled point )
       when the privatekey is less then 1 operation ended

step 1 : private key is even (14) so point addition is none         
         and just double base point x,y , 1 * 2 = 2
         x=c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5
         y=1ae168fea63dc339a3c58419466ceaeef7f632653266d0e1236431a950cfe52a
         and private key divided by 2 get 7 , 14 / 2 = 7

step 2 : now private key is odd (7) so process addition function. step 1 addition value plus doubled point so the addition point is 0(none) + 2 = 2
         x = c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5
         y = 1ae168fea63dc339a3c58419466ceaeef7f632653266d0e1236431a950cfe52a
         Now double the doubled point to get point 2 * 2 = 4
         x = e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13
         y = 51ed993ea0d455b75642e2098ea51448d967ae33bfbdfe40cfe97bdc47739922
         and private key divided by 2 get 3 , 7 / 2 = 3

step 3 : now private key is odd (3) so process addition function. step 2 addition value plus doubled point so the addition point is 2 + 4 = 6
         x = fff97bd5755eeea420453a14355235d382f6472f8568a18b2f057a1460297556
         y = ae12777aacfbb620f3be96017f45c560de80f0f6518fe4a03c870c36b075f297
         Now double the doubled point to get point 4 * 2 = 8
         x = 2f01e5e15cca351daff3843fb70f3c2f0a1bdd05e5af888a67784ef3e10a2a01
         y = 5c4da8a741539949293d082a132d13b4c2e213d6ba5b7617b5da2cb76cbde904
         and privatekey divided by 2 get 3 , 3 / 2 = 1

step 4 : now private key is odd (1) so process addition function. step 3 addition value plus doubled point so the addition point is 6 + 8 = 14
         x = 499fdf9e895e719cfd64e67f07d38e3226aa7b63678949e6e49b241a60e823e4
         y = cac2f6c4b54e855190f044e4a7b3d464464279c27a3f95bcc65f40d403a13f5b
         Now double the doubled point to get point 8 * 2 = 16
         x = e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a
         y = f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821
         and privatekey divided by 2 get 1 , 1 / 2 = 0.5
         operation ended

at last the output x , y

private key 14 public keys are

x = 499fdf9e895e719cfd64e67f07d38e3226aa7b63678949e6e49b241a60e823e4
y = cac2f6c4b54e855190f044e4a7b3d464464279c27a3f95bcc65f40d403a13f5b

==================================================================
Even
same point multiplication, public key to private key here some operation

points are 8 public key ( half of all public key are even )

x = 2f01e5e15cca351daff3843fb70f3c2f0a1bdd05e5af888a67784ef3e10a2a01
y = 5c4da8a741539949293d082a132d13b4c2e213d6ba5b7617b5da2cb76cbde904

step 1 : half of 8 public keys to get 4 public keys
         x = e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13
         y = 51ed993ea0d455b75642e2098ea51448d967ae33bfbdfe40cfe97bdc47739922
         and public keys is even ( 8 ) so just double, 1 * 2 = 2

step 2 : half of 4 public keys to get 2 public keys
         x = c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5
         y = 1ae168fea63dc339a3c58419466ceaeef7f632653266d0e1236431a950cfe52a
         and public keys is even (4) so just double, 2 * 2 = 4

step 3 : half of 2 public keys to get 1 public keys
         x = 79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798
         y = 483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8
         and public keys is even (2) so just double, 4 * 2 = 8

step 3 : public key is 1 so end the operation

at last the output 8

so the private key 8

--------------------------------------------------------------------------------------------------------------
Odd
points are 14 public key ( half of all public key even and odd public key entered ),
here we need to identify which public-key is odd and which is even

x = 499fdf9e895e719cfd64e67f07d38e3226aa7b63678949e6e49b241a60e823e4
y = cac2f6c4b54e855190f044e4a7b3d464464279c27a3f95bcc65f40d403a13f5b

step 1 : half of 14 public keys to get 7 public keys
         x =  5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc
         y =  6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da
         and public keys is even (14) so just double, 1 * 2 = 2

step 2 : half of 7 public key to get 7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a4 public key
         x =  592152c398d6c719636a03a6dad64246a5a6814aa62c156b0ce5332f6759b031
         y =  72dd2e1d26c233337760c49122a1df67d0aa792b453f97bd29765c83b47ba01d
         you can double above public key to get 7 public key x,y But we expect public key of 3 then only we     get private key back,
         so identify which public key is odd and which is even

---------------------------------------------------------------------------------------------------------------

here some analyse 7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a4 + 1 public key are

x =  66954eca0543426304036fc70fc0fe3381f5195e88433bc32c5a8a60341e2859
y =  f274e4ebbf160edc0c6379a70629b18201bf8e0f52578615bd114528b2c80733

double the above public key to get 9 public key

x =  acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe
y =  cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37

---------------------------------------------------------------------------------------------------------------

7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a4 - 1 public keys are

x =  5699b93fc6e1bd29e09a328d657a607b4155b61a6b5fcbedd7c12df7c67df8f5
y =  3eb81178ebcdab6894d1acb3196fd8b7d5a3cc237988cd5af7cc70f98cc978a7

double the above public key to get 5 public key

x =  2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4
y =  d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6

---------------------------------------------------------------------------------------------------------------

Note: n = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364140

n / 2 = 7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0

7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 + 5 == public key == half of 9 public key

7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 + 4 == public key == half of 7 public key

7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 + 3 == public key == half of 5 public key

7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 + 2 == public key == half of 3 public key

7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 + 1 == public key == - half of n public key

---------------------------------------------------------------------------------------------------------------

Note:

7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 --> <= this private key public keys are (+ half public key)

x =  3b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63
y =  3f3979bf72ae8202983dc989aec7f2ff2ed91bdd69ce02fc0700ca100e59ddf3


7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a1  --> >= this private key public keys are (- half public key)

x =  3b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63
y =  c0c686408d517dfd67c2367651380d00d126e4229631fd03f8ff35eef1a61e3c

---------------------------------------------------------------------------------------------------------------

my analyse half of even public key point goes down, but odd public key half goes higher >=  - half

Example:

8 public key half is 4 public key, but 7 public key half is 7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 + 4

even public key half example

x = 2f01e5e15cca351daff3843fb70f3c2f0a1bdd05e5af888a67784ef3e10a2a01   ----->  8 public key
y = 5c4da8a741539949293d082a132d13b4c2e213d6ba5b7617b5da2cb76cbde904

8 public key half below get 4 public key

x = e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13
y = 51ed993ea0d455b75642e2098ea51448d967ae33bfbdfe40cfe97bdc47739922

odd public key half example

x =  5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc  ----->  7 public key
y =  6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da

7 public key half below get 7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 + 4 public key

x =  592152c398d6c719636a03a6dad64246a5a6814aa62c156b0ce5332f6759b031
y =  72dd2e1d26c233337760c49122a1df67d0aa792b453f97bd29765c83b47ba01d

-------------------------------------------------------------------------------------------------------------------

another analyse 7th half and 9th half public key make them further half to get different answer

7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 + 5 == public key == half of 9 public key

7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 + 4 == public key == half of 7 public key

now divide n into 4 half n/4 get 0x3fffffffffffffffffffffffffffffffaeabb739abd2280eeff497a3340d9050L


3fffffffffffffffffffffffffffffffaeabb739abd2280eeff497a3340d9050 --> below this, public keys are 1st half public keys

3fffffffffffffffffffffffffffffffaeabb739abd2280eeff497a3340d9050 --> above this, and 7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 --> below this public keys are 2nd half public keys

7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 --> above this, and bfffffffffffffffffffffffffffffff0c0325ad0376782ccfddc6e99c28b0f1 --> below this public keys are 3rds half public keys

bfffffffffffffffffffffffffffffff0c0325ad0376782ccfddc6e99c28b0f1 --> above this, public keys are 4th half public keys

-----------------------------------------------------------------------------------------------------------------

7 public key half below get 7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 + 4 public key

x =  592152c398d6c719636a03a6dad64246a5a6814aa62c156b0ce5332f6759b031
y =  72dd2e1d26c233337760c49122a1df67d0aa792b453f97bd29765c83b47ba01d

half of above 7 publickey half to get 3fffffffffffffffffffffffffffffffaeabb739abd2280eeff497a3340d9052 public key it goes 2 nd half

x =  13780453c56d0cc911a106e74dbf49e743e46396dc09e42dba4aeaff970bacef
y =  8888029b003fb198c81ecabd9f7992df7a73d33734c0a71ca4ba0f4a7f607be6

-----------------------------------------------------------------------------------------------------------------

9 public key half below get 7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 + 5 public key

x =  66954eca0543426304036fc70fc0fe3381f5195e88433bc32c5a8a60341e2859
y =  f274e4ebbf160edc0c6379a70629b18201bf8e0f52578615bd114528b2c80733

half of above 9 public key half to get bfffffffffffffffffffffffffffffff0c0325ad0376782ccfddc6e99c28b0f3 public key it goes 4 th half

x =  a09125a449d92c03a1c677a0a276cf157cb3fc0ad313b2526aca7d6c9808363
y =  5bd9757b686012ee83b1546139bbb4f73b2ad4e0af198cdfdf7e649266b2a8c

------------------------------------------------------------------------------------------------------------------
Below picture to understand clear

Even public key

http://virtacoin.do.am/images/1.png

Odd public key 7

http://virtacoin.do.am/images/2.png

Odd public key 9

http://virtacoin.do.am/images/3.png