I'm reading about new fast computation algorithm elliptic point in this paper Analyzing the Point Multiplication Operation of
Elliptic Curve Cryptosystem over Prime Field for
Parallel Processing. But I don't understand algorithm at page 324:
First it creates new SUM(0,0) and Return SUM = SUM(0,0) + P. I'm so confusing at this moment when I read to this part.
Algorithm 3: PointDoublingBinary(Point P)
// Point Doubling Operations of Binary of kP
Input :Point P, Quotient Q.
Output: QP is summation of P
1. Point Sum (0, 0);
2. Sum = QP
a. If (P (x, y) == Sum(0, 0)) then
Sum (x, y) = P (x, y);
b. Else if (P (x, y) == Sum (x, -y)) then
Sum (x, y) = P (x, 0);
c. Else if (P (x, y) == Sum (x, y)) then
Sum (x, y) = P (x, y) + Sum (x, y);
d. Else // (P (x, y)! = Sum (x, y))
Sum (x, y) = P (x, y) + Sum (x, y);
e. End if
3. Return Sum
And double skew look like the same at DoubleBinary
function
Algorithm 4: PointDoublingSkew(Point P)
// Point Doubling Operations of Skew of kP
Input: Point P, Reminder R
Output: RP is summation of P
1. Point Sum = (0, 0);
2. If (P (x, y) == Sum (0, 0)) then
Sum (x, y); = P (x, y);
3. Else if (P (x, y) == Sum (x, -y)) then
Sum (x, y) = P (x, 0);
4. Else if (P (x, y) == Sum (x, y)) then
Sum (x, y) = P (x, y) + Sum (x, y);
5. Else // (P (x, y)! = Sum (x, y))
Sum (x, y) = P (x, y) + Sum (x, y);
6. End if
7. Return SUM
Last return P1 + P2, but I think return P was enough for this function. When I run a test for this algorithm with number and recursive:
def new_algro(P, k):
R0 = R1 = 0
P1 = P
if k == 1:
R0 = P
if k > 1:
q = k/2
if q > 0:
R0 = new_algro(P, q)
P = R0 + R0
if k % 2:
R1 = P + P1
P = R1
return P
It work well but not fast as Double and add
or Montgo Ladder
and not working with big number.
Please help me understand this algorithm.