Hi Guys , last article we spoke about addition , one of the most important “invented” operations on eliptic curve arithmetic . There’s been great feedback highlihghting that the rule “if a line crosses two points , it will cross a third point” might not be absolute.
That’s is true , there’s a few exceptions and today I will try to explain one , what would happen if point P and Q share the same position (x and y wise):
P and Q sharing position
So how do you add two points (P and Q ) that share the same location? , well this is called “Point Doubling” also referred as adding a point to itself.
This is nothing more than another invented operation and as we saw in EC addition it is represented by another mathematical identity , as well as a different “Slope” equation.
Point Doubling Slope:
To calculate the slope when P == Q we apply the following equation:
s = (3 * Px ** 2 +a ) / (2 * Py)
Slope in point doubling
That will give you the value of the slope , remember that the slope plus some other domain parameters are curcial to then caculate addition or in this case point doubling.
Point doubling or “adding a point to itself” follows a very simple equation , and of course it requires the slope and the domain parameters that we’ve seen in previous articles.
But basically it goes like this:
Point Doubling in action
RX = S ** 2 - 2 * PX RY = -1 * (PY + S * ( RX - PX))
And again the same catch , R becomes the negative reflection of R , so it looks something like:
Reflection of R
So point doubing is the second invented arithmetic operation we’ve talked about when it comes to Elliptic Curves , and some of the same rules apply than with addition:
- by knowing X you know Y
- R is the reflection of -R over the X axis
Some gisted code so you can have a play: