椭圆曲线加法运算详解
椭圆曲线加法运算详解
椭圆曲线在密码学中扮演着重要角色,特别是在椭圆曲线密码学(ECC)中。它不仅提供了与传统密码学方法相当的安全性,而且在计算效率上更具优势。本文将从椭圆曲线的定义出发,通过一个具体的例子,详细介绍椭圆曲线上两点加法的计算过程。
1. 定义
椭圆曲线 (Elliptic Curve) 不是函数,而是一条平面曲线,其方程是定义如下:
y 2 = x 3 + a x + b y^2=x^3+ax+by2=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^3y2=x3不是椭圆曲线。
2. 椭圆曲线加法运算
2.1. 问题描述
给定椭圆曲线y 2 = x 3 + 8 y^2=x^3+8y2=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+8y2=x3+8中,P + Q P+QP+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 −xq yp −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=2 x+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+8y2=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