橢圓曲線加法原理計算

、Edgar發表於2021-01-03

公式定理

這裡我們僅考慮素域 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
    橢圓曲線加法原理計算

橢圓的階為
# ( 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 F17E: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,b滿ab1(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的具體求法如下

nstqr
-217( p )
-11(固定)0(固定)9(要求的)
00(固定)1(固定)1(17/9的商)8(17/9餘數)
11( − 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-128(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)

相關文章