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