跳到主要内容

5.1.4 Point Addition (点加)

5.1.4 Point Addition (点加)

点加建议采用下述方法. 点 (x,y) 用 extended homogeneous coordinates (扩展齐次坐标) (X, Y, Z, T) 表示, 满足 x = X/Z, y = Y/Z, x * y = T/Z.

neutral point (中性点) 为 (0,1), 或在扩展齐次坐标中等价为 (0, Z, Z, 0) (Z 为任意非零值).

对 a=-1, a 为平方且 d 为非平方的 twisted Edwards curves (扭曲爱德华兹曲线) 上两点相加 (x3,y3) = (x1,y1)+(x2,y2) 的公式见 [Edwards-revisited] 第 3.1 节与 [EFD-TWISTED-ADD]. 它们是 complete (完备的), 即对任意一对合法输入点都成立.

                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

点倍点 (x3,y3) = (x1,y1)+(x1,y1) 时, 也可将相同点代入上式 (由完备性, 这种代入合法) 并注意到四次乘法可化为平方. 但使用 [Edwards-revisited] 第 3.2 节与 [EFD-TWISTED-DBL] 中的公式可省去一些较小运算.

                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