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