1. 定义
椭圆曲线 (Elliptic Curve) 不是函数,而是一条平面曲线,其方程是定义如下:
y 2 = x 3 + a x + b y^2=x^3+ax+b y2=x3+ax+b
其中,判别式 Δ = − 16 ( 4 a 3 + 27 b 2 ) ≠ 0 \Delta =-16(4a^3+27b^2)\neq 0 Δ=−16(4a3+27b2)=0。判别式表示该方程需要满足无奇点的约束条件。无奇点在几何上意味着曲线没有尖点,自相交点,或孤立点。
举例而言,当 ( a , b ) = ( 0 , 0 ) (a,b)=(0,0) (a,b)=(0,0)时, Δ = 0 \Delta=0 Δ=0意味着曲线存在奇点,不满足无奇点的约束条件,此时曲线 y 2 = x 3 y^2=x^3 y2=x3不是椭圆曲线。
[图片参考自:https://www.desmos.com/calculator/fttnxuzryp?lang=zh-TW]
2. 椭圆曲线加法运算
2.1. 问题描述
给定椭圆曲线 y 2 = x 3 + 8 y^2=x^3+8 y2=x3+8,点 P = ( 0 , 2 2 ) P=(0, 2\sqrt{2}) P=(0,22), Q = ( − 2 , 0 ) Q=(-2, 0) Q=(−2,0),(注意,这里点P,Q是实数集上的例子,仅仅作示范使用,真实在有限域中,点P,Q的值均为整数),求椭圆曲线 y 2 = x 3 + 8 y^2=x^3+8 y2=x3+8中, P + Q P+Q P+Q的值?
2.2. 解决方案
步骤一:求直线PQ的方程式
直线PQ的斜率: y p − y q x p − x q = 2 2 − 0 0 − − 2 = 2 \frac{y_p-y_q}{x_p-x_q}=\frac{2\sqrt{2}-0}{0--2}=\sqrt{2} xp−xqyp−yq=0−−222−0=2
代入Q点,得到直线PQ的方程式: y = 2 + 2 2 y=\sqrt{2}+2\sqrt{2} y=2+22
步骤二:求直线PQ和椭圆曲线的第三个交点,取第三个交点的关于Y的对称点
并列直线PQ和椭圆曲线的方程 { y 2 = x 3 + 8 y = 2 x + 2 2 \begin{cases} y^2=x^3+8& \\ y=\sqrt{2}x+2\sqrt{2}& \end{cases} {y2=x3+8y=2x+22
得到第三个交点 R ′ = ( 4 , 6 2 ) R'=(4,6\sqrt{2}) R′=(4,62)
取第三个交点的关于Y的对称点 R = ( 4 , − 6 2 ) R=(4,-6\sqrt{2}) R=(4,−62)
因此,椭圆曲线 y 2 = x 3 + 8 y^2=x^3+8 y2=x3+8中, P + Q = R = ( 4 , − 6 2 ) P+Q=R=(4,-6\sqrt{2}) P+Q=R=(4,−62)。
参考资料
[1. 椭圆曲线] https://www.ruanx.net/elliptic-curve/
[2. 椭圆曲线判别式] https://zh.wikipedia.org/zh-hk/%E6%A4%AD%E5%9C%86%E6%9B%B2%E7%BA%BF