y^2=x^3+a*x+b
Modified Jacobian coordinates [database entry] represent x y as X Y Z T satisfying the following equations:
x=X/Z^2 y=Y/Z^3 T=a*Z^4
Operation | Assumptions | Cost | Readdition cost |
---|---|---|---|
addition | Z1=1 and Z2=1 | 3M + 4S + 1*a | 3M + 4S + 1*a |
addition | Z2=1 | 7M + 6S + 1*a | 7M + 6S + 1*a |
addition | 11M + 7S + 1*a | 10M + 6S + 1*a | |
addition | 12M + 6S + 1*a | 11M + 5S + 1*a | |
doubling | Z1=1 | 2M + 5S | |
doubling | 3M + 5S | ||
doubling | 4M + 4S |
H = X2-X1 HH = H^2 HHHH = HH^2 Z3 = 2*H ZZ3 = 4*HH J = 2*((H+HH)^2-HH-HHHH) r = 2*(Y2-Y1) V = X1*ZZ3 X3 = r^2-J-2*V Y3 = r*(V-X3)-2*Y1*J T3 = 16*a*HHHH
ZZ1 = Z1^2 H = X2*ZZ1-X1 HH = H^2 I = 4*HH J = H*I r = 2*(Y2*Z1*ZZ1-Y1) V = X1*I X3 = r^2-J-2*V Y3 = r*(V-X3)-2*Y1*J Z3 = (Z1+H)^2-ZZ1-HH ZZ3 = Z3^2 T3 = a*ZZ3^2
ZZ1 = Z1^2 ZZ2 = Z2^2 U1 = X1*ZZ2 U2 = X2*ZZ1 S1 = Y1*Z2*ZZ2 S2 = Y2*Z1*ZZ1 H = U2-U1 I = (2*H)^2 J = H*I r = 2*(S2-S1) V = U1*I X3 = r^2-J-2*V Y3 = r*(V-X3)-2*S1*J Z3 = ((Z1+Z2)^2-ZZ1-ZZ2)*H ZZ3 = Z3^2 T3 = a*ZZ3^2
ZZ1 = Z1^2 ZZ2 = Z2^2 U1 = X1*ZZ2 U2 = X2*ZZ1 S1 = Y1*Z2*ZZ2 S2 = Y2*Z1*ZZ1 H = U2-U1 HH = H^2 HHH = H*HH r = S2-S1 V = U1*HH X3 = r^2-HHH-2*V Y3 = r*(V-X3)-S1*HHH Z3 = Z1*Z2*H ZZ3 = Z3^2 T3 = a*ZZ3^2
XX = X1^2 A = 2*Y1^2 AA = A^2 U = 2*AA S = (X1+A)^2-XX-AA M = 3*XX+T1 X3 = M^2-2*S Y3 = M*(S-X3)-U Z3 = 2*Y1 T3 = 2*U*T1
XX = X1^2 A = 2*Y1^2 AA = A^2 U = 2*AA S = (X1+A)^2-XX-AA M = 3*XX+T1 X3 = M^2-2*S Y3 = M*(S-X3)-U Z3 = 2*Y1*Z1 T3 = 2*U*T1
XX = X1^2 YY = Y1^2 U = 8*YY^2 S = 4*X1*YY M = 3*XX+T1 X3 = M^2-2*S Y3 = M*(S-X3)-U Z3 = 2*Y1*Z1 T3 = 2*U*T1