椭圆曲线加法原理计算

公式定理

这里我们仅考虑素域 F p ( p > 3 ) F_p(p>3) Fp(p>3)上的椭圆曲线,因为素域 F p F_p Fp的特征不为2,3,所以素域 F p F_p Fp上的椭圆曲线E的 W e i e r s t r a s s Weierstrass Weierstrass方程可设为
E : y 2 = x 3 + a 4 x + a 6 E: y^2 = x^3 + a_4x + a_6 E:y2=x3+a4x+a6

其判别式 Δ = − 16 ( 4 a 4 3 + 27 a 6 2 ) ≠ 0 \Delta=-16(4a_4^3+27a_6^2)\neq0 Δ=16(4a43+27a62)=0,其在 F p F_p Fp上的运算规则如下:

P 1 = ( x 1 , y 1 ) P_1 = (x_1, y_1) P1=(x1,y1) P 2 = ( x 2 , y 2 ) P_2 = (x_2, y_2) P2=(x2,y2),是曲线E上的两个点,O为无穷远点,则

  • O + P 1 = P 1 + O O+P_1 = P_1 + O O+P1=P1+O

  • − P 1 = ( x 1 , − y 1 ) -P1 = (x_1, -y_1) P1=(x1,y1)

  • 如果 P 3 = ( x 3 , y 3 ) = P 1 + P 2 ≠ O P_3 = (x_3, y_3) = P_1 + P2 \neq O P3=(x3,y3)=P1+P2=O
    椭圆曲线加法原理计算_第1张图片

椭圆的阶为
# ( E ( F p ) ) = 1 + ∑ x = 0 p − 1 ( 1 + ( x 3 + a 4 x + a 6 p ) ) = p + 1 + ∑ x = 0 p − 1 ( x 3 + a 4 x + a 6 p ) \#(E(F_p)) = 1+\sum^{p-1}_{x=0}({1+(\frac{x_3+a_4x+a_6}{p})}) = p+1+\sum^{p-1}_{x=0}{(\frac{x_3+a_4x+a_6}{p})} #(E(Fp))=1+x=0p1(1+(px3+a4x+a6))=p+1+x=0p1(px3+a4x+a6)


F 17 上 的 椭 圆 曲 线 E : y 2 = x 3 + 2 x + 3 F_{17}上的椭圆曲线E:y^2=x^3+2x+3 F17线E:y2=x3+2x+3,为例

如何求解椭圆上所有的点?

遍历 x = 0 , 1 , 2 , . . . , p − 1 x=0,1,2,...,p-1 x=0,1,2,...,p1,求出所有的点,比如

x = 0 , y 2 = 3 ( m o d 17 ) , 此 时 无 解 x=0,y^2=3(mod17),此时无解 x=0y2=3(mod17)
x = 1 , y 2 = 6 ( m o d 17 ) , 此 时 无 解 x=1,y^2=6(mod17),此时无解 x=1y2=6(mod17)
x = 2 , y 2 = 15 ( m o d 17 ) , y = 7 , 8 ( m o d 17 ) x=2,y^2=15(mod17),y=7,8(mod17) x=2y2=15(mod17)y=7,8(mod17)
. . . ... ...



如果根据已知点,求第三点

比如,已知 P = ( 2 , 7 ) 和 Q = ( 11 , 8 ) 在 椭 圆 E 上 , 求 解 P + Q = ( x 3 , y 3 ) P=(2,7) 和 Q=(11,8)在椭圆E上,求解P+Q=(x_3, y_3) P=(2,7)Q=(11,8)EP+Q=(x3,y3)

根据公式有 λ = y 2 − y 1 x 2 − x 1 = 8 − 7 11 − 2 = 1 9 \lambda=\frac{y_2-y_1}{x_2-x_1}=\frac{8-7}{11-2}=\frac{1}{9} λ=x2x1y2y1=11287=91

这里需要注意一下, λ \lambda λ F 17 F_{17} F17中,所以实际上应该要求 1 9 ( m o d 17 ) \frac{1}{9}(mod17) 91(mod17)

那么只需要知道如何求解分数的模即可,设 a , b 满 足 a b ≡ 1 ( m o d p ) a, b 满足ab \equiv1 (modp) a,bab1(modp),那么则有 a ( m o d p ) = b ( m o d p ) a(modp)=b(modp) a(modp)=b(modp)

结合题目,所以我们只需要求出 a a a满足 9 a ≡ 1 ( m o d 17 ) 即 可 9a\equiv1(mod17)即可 9a1(mod17),根据贝祖等式原理即可求出 a = 2 a=2 a=2,所以

λ = 1 9 = 1 × 2 ( m o d 17 ) = 2 \lambda=\frac{1}{9}=1\times2(mod17)=2 λ=91=1×2(mod17)=2

所以 x 3 = λ 2 − x 1 − x 2 = 8 , y 3 = λ ( x 1 − x 3 ) − y 1 = 15 x_3=\lambda^2-x_1-x_2=8, y_3 = \lambda(x_1-x_3)-y_1=15 x3=λ2x1x2=8,y3=λ(x1x3)y1=15

9 a ≡ 1 m o d 17 9a\equiv1mod17 9a1mod17的具体求法如下

n s t q r
-2 17( p )
-1 1(固定) 0(固定) 9(要求的)
0 0(固定) 1(固定) 1(17/9的商) 8(17/9余数)
1 1( − q n − 1 s n − 1 + s n − 2 -q_{n-1}s_{n-1}+s_{n-2} qn1sn1+sn2) -1( − q n − 1 t n − 1 + t n − 2 -q_{n-1}t_{n-1}+t_{n-2} qn1tn1+tn2) 1(9/8的商) 1(9/8的余数)
2 -1 2 8(8/1的商) 0(8/1的余数,为0停止运算)

比如n=2的时候, s n = − 1 × 1 + 0 = − 1 , t n = − 1 × ( − 1 ) + 1 = 2 s_n=-1\times1+0=-1,t_n=-1\times(-1)+1=2 sn=1×1+0=1tn=1×(1)+1=2

所以有 − 1 × 17 + 2 × 9 = 1 -1\times17+2\times9=1 1×17+2×9=1,则 9 × 2 ≡ 1 ( m o d 17 ) 9\times2\equiv1(mod17) 9×21(mod17)

你可能感兴趣的:(笔记)