Aller au contenu principal

5.2.4 Point Addition (Addition de points)

5.2.4 Point Addition (Addition de points)​

Pour l'addition de points, la méthode suivante est recommandée. Un point (x,y) est représenté en coordonnées projectives (X, Y, Z), avec x = X/Z, y = Y/Z.

Le point neutre est (0,1), ou de façon équivalente en coordonnées projectives (0, Z, Z) pour tout Z non nul.

Les formules suivantes pour additionner deux points (x3,y3) = (x1,y1)+(x2,y2) sur une courbe d'Edwards non tordue (c.-à-d. a=1) avec d non carré sont décrites dans la section 4 de [Faster-ECC] et dans [EFD-ADD]. Elles sont complètes, c.-à-d. qu'elles fonctionnent pour toute paire de points d'entrée valides.

                A = Z1*Z2
B = A^2
C = X1*X2
D = Y1*Y2
E = d*C*D
F = B-E
G = B+E
H = (X1+Y1)*(X2+Y2)
X3 = A*F*(H-C-D)
Y3 = A*G*(D-C)
Z3 = F*G

Là encore, comme pour l'autre courbe, des formules de doublement s'obtiennent en substituant des points égaux, transformant quatre multiplications en carrés. Ce n'est toutefois pas du tout optimal ; les formules suivantes décrites dans la section 4 de [Faster-ECC] et dans [EFD-DBL] économisent plusieurs multiplications.

                B = (X1+Y1)^2
C = X1^2
D = Y1^2
E = C+D
H = Z1^2
J = E-2*H
X3 = (B-E)*J
Y3 = E*(C-D)
Z3 = E*J