Post
Topic
Board Development & Technical Discussion
Re: Why point by point multiplication is undefined in ECDSA?
by
garlonicon
on 02/08/2023, 04:25:59 UTC
Quote
I wonder if there is a way to find the result private key?
Only if you know all of them upfront, or you know all relations between all of your public keys. In other cases, not really, because your private key is always relative to your base point. Let's assume you have some (x,y) point, and you start changing your base point. What could happen?
Code:
1*1=1 //if you use the same point as a base point
2*2=4 //if you use half of that point as a base point
And then, if you have only (x,y) coordinates, then without a base point, you don't know if after multiplication by itself, you should get the same point, or some different point. That means, if you want to write any point-by-point multiplication, this is not enough:
Code:
Point multiply(Point first,Point second);
What you need, is something like that:
Code:
Point multiply(Point first,Point second,Point base);

Quote
after posting this I went out to find out G * G is what?
In general, if you multiply one by one, you should get one. That means, squaring base point should not change anything, and return the same point. That also means point addition is different than point multiplication, because if you add two points, then you don't have to know the base point.

Quote
I hope by multiplying point by point, you meant public keys by public keys?
Yes, of course. If you have private keys, it is perfectly defined operation. The same is true if you combine some public key with some private key.