Zum Hauptinhalt springen

5.1.4 Point Addition (Punktaddition)

5.1.4 Point Addition (Punktaddition)

Für die Punktaddition wird folgende Methode empfohlen. Ein Punkt (x,y) wird in erweiterten homogenen Koordinaten (X, Y, Z, T) dargestellt, mit x = X/Z, y = Y/Z, x * y = T/Z.

Der neutrale Punkt ist (0,1), bzw. äquivalent in erweiterten homogenen Koordinaten (0, Z, Z, 0) für beliebiges von null verschiedenes Z.

Die folgenden Formeln zum Addieren zweier Punkte (x3,y3) = (x1,y1)+(x2,y2) auf twisted-Edwards-Kurven mit a=-1, quadratischem a und nicht-quadratischem d sind in Abschnitt 3.1 von [Edwards-revisited] und in [EFD-TWISTED-ADD] beschrieben. Sie sind vollständig (complete), d.h. sie funktionieren für jedes Paar gültiger Eingabepunkte.

                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

Für Punktverdopplung (x3,y3) = (x1,y1)+(x1,y1) könnte man dieselben Punkte in die obigen Formeln einsetzen (wegen der Vollständigkeit ist das zulässig); vier Multiplikationen werden dabei zu Quadraten. Die in Abschnitt 3.2 von [Edwards-revisited] und in [EFD-TWISTED-DBL] beschriebenen Formeln sparen jedoch einige kleinere Operationen.

                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