Explicit-Formulas Database
Ordinary genus-1 curves over binary fields
Binary Edwards curves EFD / Ordinary genus-1 binary / Projective coordinates for binary Edwards curves

Projective coordinates for binary Edwards curves

An elliptic curve in binary Edwards form [more information] has parameters d1 d2 and coordinates x y satisfying the following equations:
  d1*(x+y)+d2*(x2+y2)=(x+x2)*(y+y2)

Projective coordinates [database entry] represent x y as X Y Z satisfying the following equations:

  x=X/Z
  y=Y/Z

Best operation counts

Smallest multiplication counts assuming I=10M, S=0M, *param=0M, add=0M, *const=0M: Smallest multiplication counts assuming I=10M, S=0.2M, *param=0M, add=0M, *const=0M:

Summary of all explicit formulas

OperationAssumptionsCostReaddition cost
addition Z2=1 13M + 3S + 2*d1 + 1*d2 13M + 1S + 2*d1 + 1*d2
addition d2plusd1=d2+d1 and d1d1=d12 18M + 2S + 1*d1d1 + 3*d1 + 1*d2 + 2*d2plusd1 18M + 2S + 1*d1d1 + 3*d1 + 1*d2 + 2*d2plusd1
addition d2plusd1=d2+d1 and d1d1=d12 18M + 3S + 3*d1 + 1*d2 + 2*d2plusd1 18M + 3S + 3*d1 + 1*d2 + 2*d2plusd1
addition 21M + 1S + 3*d1 + 1*d2 20M + 1S + 2*d1
doubling d2d1=d2/d1 2M + 6S + 1*d1 + 1*d2 + 1*d2d1
scaling 1I + 2M

Explicit formulas for addition

The "madd-2008-blr" addition formulas [database entry; Sage verification script; Sage output; three-operand code]:

The "add-2008-blr-2" addition formulas [database entry; Sage verification script; Sage output; three-operand code]:

The "add-2008-blr-4" addition formulas [database entry; Sage verification script; Sage output; three-operand code]:

The "add-2008-blr-1" addition formulas [database entry; Sage verification script; Sage output; three-operand code]:

Explicit formulas for doubling

The "dbl-2008-blr" doubling formulas [database entry; Sage verification script; Sage output; three-operand code]:

Explicit formulas for tripling

Explicit formulas for differential addition

Explicit formulas for differential addition and doubling

Explicit formulas for scaling

The "scale" scaling formulas [database entry; Sage verification script; Sage output; three-operand code]: