椭圆曲线算术运算

很多椭圆曲线数学看起来很像我们在学校学到的整数算术。具体而言,我们可以定义一个加法运算符,而不是添加数字就是在曲线上添加点。一旦我们有了加法运算符,我们也可以定义一个点和一个整数的乘法,等于重复加法。

A lot of elliptic curve math looks and works very much like the integer arithmetic we learned at school. Specifically, we can define an addition operator, which instead of adding numbers is adding points on the curve. Once we have the addition operator, we can also define multiplication of a point and a whole number, such that it is equivalent to repeated addition.

加法定义为给定椭圆曲线上的两个点 P1 and P2 , 第三个点 P3 = P1 + P2, 也在椭圆曲线上。

在几何上,这个第三点 P3 是通过在 P1 和 P2 之间画一条直线来计算的。这条线将在另外一个地方与椭圆曲线相交。称此点为 P3’ = (x, y)。然后在x轴上反射得到 P3 = (x, –y)。

在椭圆曲线数学中,有一个叫做“无穷点”的点,它大致对应于零点的作用。在计算机上,它有时用 x = y = 0表示(它不满足椭圆曲线方程,但它是一个容易区分的情况,可以检查)。有几个特殊情况解释了“无穷点”的需要。

如果 P1 和 P2 是同一点,P1 and P2 之间的直线应该延伸到曲线上 P1 的切线。 该切线恰好与曲线在一个新点相交。你可以使用微积分技术来确定切线的斜率。我们将我们的兴趣局限在具有两个整数坐标的曲线上,这些技巧令人好奇地工作!

在某些情况下(即,如果 P1 和 P2 具有相同的x值但不同的y值),切线将精确地垂直,在这种情况下P3 =“无穷点”。

如果 P1 是“无穷点”,那么 P1 + P2 = P2。 类似地, 如果 P2 是“无穷点”,P1 + P2 = P1。这显示了无穷点如何扮演零在“正常”算术中扮演的角色。

+ 是可结合的, (A + B) + C = A + (B + C). 这表示 A + B + C 不加括号也没有歧义。

现在我们已经定义了加法,我们可以用扩展加法的标准方式来定义乘法。对于椭圆曲线上的点P,如果k是整数,则 k * P = P + P + P + …​ + P (k 次)。请注意,在这种情况下,k有时会被混淆地称为“指数”。