Aller au contenu principal

5.1.4 Point Addition

5.1.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 homogènes étendues (X, Y, Z, T), avec x = X/Z, y = Y/Z, x * y = T/Z.

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

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

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

Pour le doublement de point (x3,y3) = (x1,y1)+(x1,y1), on pourrait simplement substituer le même point dans les formules ci-dessus (grâce à la complétude, une telle substitution est valide) et observer que quatre multiplications deviennent des carrés. Cependant, les formules décrites à la section 3.2 de [Edwards-revisited] et dans [EFD-TWISTED-DBL] économisent quelques opérations plus petites.

                A = X1^2
B = Y1^2
C = 2*Z1^2
H = A+B
E = H-(X1+Y1)^2
G = A-B
F = C+G
X3 = E*F
Y3 = G*H
T3 = E*H
Z3 = F*G