But don’t worry, I won’t bore you with all the technical jargon. Instead, let me break it down for you in a way that even my grandma could understand.
So, what is ECC? Well, imagine you have two points on an elliptic curve (don’t ask me why they call it that) and you want to find the third point by multiplying them together. Sounds easy enough, right? But here’s where things get interesting instead of using regular coordinates like x and y, we use a fancy technique called mixed coordinates.
Now, I know what you’re thinking “Why would anyone want to do that?” Well, bro, there are several reasons. First, it makes the calculations faster (which is important in cryptography). Secondly, it reduces the amount of memory needed for storing points on an elliptic curve (also important in cryptography). And finally, it’s just plain cool!
So how does mixed coordinates work? Well, instead of using regular x and y values to represent a point on an elliptic curve, we use something called “projective coordinates”. These are essentially homogeneous coordinates that allow us to perform calculations in a more efficient way. And the best part is they’re easy to convert back and forth between mixed and regular coordinates!
Now, I know what you’re thinking again “But how do we actually use these projective coordinates?” Well, let me show you an example:
Let’s say we have two points on our elliptic curve (let’s call them P1 and P2) with the following mixed coordinates:
P1 = [x1 : y1 : z1]
P2 = [x2 : y2 : z2]
To find their product, we first convert these points to regular coordinates using a simple formula. Then, we perform the multiplication as usual (using the “point doubling” algorithm). And finally, we convert the result back to mixed coordinates using another formula.
Now, I know what you’re thinking again “But how do we actually implement this in code?” Well, bro, that’s where things get a little more complicated. But don’t worry, there are plenty of resources out there (like the paper by Hankerson et al.) to help you get started.