Public Key Arithmetic Operations #136
Replies: 11 comments 42 replies
-
Hello, I think we need a property what you find then you divede big private keys, remember you in your video devide a 800000000000000/2 and get exact 50% from 800000000000000, so I think we need addd to our pubkeys any numpber what bigger the our pubkey and after divide this to 2, so, if we have pubkey 120 we need add to them 140 and after we need devide (140+120)/2 and we get "70,1" bitrange... |
Beta Was this translation helpful? Give feedback.
-
Hi @albertobsd I don’t understand why when we divide by 8 we just reduced 3 bit and not 8? |
Beta Was this translation helpful? Give feedback.
-
@albertobsd and it can be used like I video origin pubkey, than - 1 all devise by 2 to reduce one bit and then repeat again…and again… for example if I would like to reduced 5 bit range… |
Beta Was this translation helpful? Give feedback.
-
@albertobsd question: if I know that price key is EVEN may I divide by 5 bit at once? |
Beta Was this translation helpful? Give feedback.
-
Hi @albertobsd! as i understand we can do any math operation with pubkey? can you add , if its possible х² and √ |
Beta Was this translation helpful? Give feedback.
-
And if we add to last 256 bit +2, we start all 256 bit range again, and it’s possible to come back by /? And which range will be if we multiple 256 bit last key? |
Beta Was this translation helpful? Give feedback.
-
wind. Thanks for your work. she is gorgeous! 0000000000000000000000000000000000000000000000000000000000000001 # private key HEX We subtract 1 (- 1) and get: And if we subtract 2 (- 2), we get: How to understand that you have jumped to an unknown destination? |
Beta Was this translation helpful? Give feedback.
-
@albertobsd can you explaine more about division? |
Beta Was this translation helpful? Give feedback.
-
А можно немного поточнен |
Beta Was this translation helpful? Give feedback.
-
Well public key division or subtraction has some interest because we can make some new public keys in a reduced or lower range.
But how this work?
Lets to think in public keys ( P(k) ) as a hidden-number, the hidden number is the private key ( k ) we can do simple arithmetic operations over the public key as any other number.
Subtraction or Addition
To perform this operations both elements in the operation need to be a public key.
P(9) + P(3) = P(12)
Real values compressed
Using keymath in ecctools
Note that the
3
is a number, the program internally transform that value to a public key to make the operations in a Eliptic Cuve way.With the previous examples you can always back one number to another using the reverse opeations in this case subtraction
P(12) - P(3) = P(9)
Multiplication or Division
To perform this operations one element in the operation need to be a public key and the other one need to be a Scalar value
Keep doing this with our previous examples P(9) , P(3)
P(3) * 3 = P(9)
P(3) * 4 = P(12)
In the previous 2 examples our scalar values were 3 and 4 respectively.
using keymath to do the same:
To do the division is the same we can always back to P(3) if we divide the P(12) by 4 and the P(9) by 4
P(12) / 4 = P(3)
P(9) / 3 = P(3)
Using keymath to do the same:
Divisions are tricky
The main problem with division is that if we have P(k) where we don't know what the K value is, then we don't know what value to use as divisor.
The easy way is divide by the number
2
but since we don't know what is the k value, we don't know if it is EVEN or ODD so we need to perform 2 divisions.P(k) / 2 = ?
( P(k) - P(1) ) / 2 = ?
With P(k) and (P(k) - P(1)) we ensure that almost one of those values is EVEN and the division is going to be exact, because inexact divisions also produce valid points in the Curve but in a distinct Bit Range also that range is unknow.
Downgrade 3 bits to the P(k)
This is other method that don't use subtract 1 and divide by two. to do this we need to do 7 subtraction to the P(k) one by one
P(k) / 8 = ?
( P(k) - P(1) ) / 8 = ?
( P(k) - P(2) ) / 8 = ?
( P(k) - P(3) ) / 8 = ?
( P(k) - P(4) ) / 8 = ?
( P(k) - P(5) ) / 8 = ?
( P(k) - P(6) ) / 8 = ?
( P(k) - P(7) ) / 8 = ?
Doing this way, we ensure that almost one the subtracted values is divisible by 8 and the result will be exact, the other 7 values will end in other bit range but one of the results will be 3 bits down of the original publickey.
Beta Was this translation helpful? Give feedback.
All reactions