-1
$\begingroup$

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: enter image description here

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.

$\endgroup$
1
  • 1
    $\begingroup$ At first glance, this is just the standard binary point multiplication algorithm. I'm not sure if there's anything here... $\endgroup$
    – poncho
    Commented Mar 29, 2017 at 9:18

1 Answer 1

1
$\begingroup$

I don't believe that this algorithm is really worth a lot of study; the authors are obviously new to the field, and managed to reinvent a well-known method (and used rather hard to follow terminology to describe it).

The base algorithm is essentially the same as exp_by_squaring_iterative from this page (except the algorithm on the page uses multiplicative notation, not additive; essentially, replace every '*' on the page with a '+', and you're there).

Yes, it appears that the algorithm they have listed does a redundant add at the end (and hence gives the wrong answer); that should be easy to fix, but you're still left with an algorithm that's not as good.

$\endgroup$
1
  • $\begingroup$ Thanks for helping me understand this algorithm and your advice! $\endgroup$
    – Mr2uang
    Commented Apr 1, 2017 at 18:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.