橢圓曲線加法原理計算
公式定理
這裡我們僅考慮素域
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=0∑p−1(1+(px3+a4x+a6))=p+1+x=0∑p−1(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,...,p−1,求出所有的點,比如
x
=
0
,
y
2
=
3
(
m
o
d
17
)
,
此
時
無
解
x=0,y^2=3(mod17),此時無解
x=0,y2=3(mod17),此時無解
x
=
1
,
y
2
=
6
(
m
o
d
17
)
,
此
時
無
解
x=1,y^2=6(mod17),此時無解
x=1,y2=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=2,y2=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)在橢圓E上,求解P+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} λ=x2−x1y2−y1=11−28−7=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滿足ab≡1(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)即可 9a≡1(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=λ2−x1−x2=8,y3=λ(x1−x3)−y1=15
9 a ≡ 1 m o d 17 9a\equiv1mod17 9a≡1mod17的具體求法如下
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} −qn−1sn−1+sn−2) | -1( − q n − 1 t n − 1 + t n − 2 -q_{n-1}t_{n-1}+t_{n-2} −qn−1tn−1+tn−2) | 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=−1,tn=−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×2≡1(mod17)
相關文章
- 橢圓曲線加密中的加法乘法淺析加密
- 利用橢圓曲線進行加密通訊加密
- 如何給小學生講清楚ECC橢圓曲線加密加密
- 橢圓曲線法在微軟安全保護CDKey的應用微軟
- 計算兩豎直直線與橢圓圍成部分面積
- 【Openxml】將Openxml的橢圓弧線arcTo轉為Svg的橢圓弧線XMLSVG
- 密碼學中的RSA演算法與橢圓曲線演算法密碼學演算法
- Fabric 1.0原始碼分析(46)ECDSA(橢圓曲線數字簽名演算法)原始碼演算法
- 橢圓曲線加密演算法中公鑰與私鑰互換性分析加密演算法
- 圓錐曲線14
- 圓錐曲線15
- WEBGL橢圓Web
- 一般橢圓方程和平移橢圓方程
- HarmonyOS Next 橢圓曲線密碼學應用:ECC 與 SM2 深入剖析密碼學
- opencv計算曲線長度OpenCV
- 加法小計算
- 轉貼:Ivanopulo說CloneCD用的是橢圓曲線密碼演算法 (1千字)密碼演算法
- SVG (一) 圖形, 路徑, 變換總結; 以及橢圓弧線, 貝塞爾曲線的詳細解釋SVG
- c#畫圖(橢圓和弧線)Craphics類C#
- 兄弟連區塊鏈教程區塊鏈資訊保安3橢圓曲線加解密及簽名演算法的技術原理二區塊鏈解密演算法
- 如何用MFC畫出直線、虛線、折線、圓、橢圓、矩形、弧形(附上原始碼)原始碼
- 當今最複雜的橢圓曲線找到了!29個獨立有理點打破18年記錄
- ROC曲線繪製與AUC計算
- 區塊鏈背後的資訊保安(3)橢圓曲線加解密及簽名演算法的技術原理及其Go語言實現區塊鏈解密演算法Go
- 兄弟連區塊鏈教程Fabric1.0原始碼分析ECDSA橢圓曲線數字簽名演算法區塊鏈原始碼演算法
- Python 在PDF中繪製線條、矩形、橢圓形Python
- CAD繪圖工具——橢圓繪圖
- SVG <ellipse> 繪製橢圓SVG
- CSS繪製橢圓程式碼CSS
- 使用貝塞爾曲線裁圓優化tableView優化View
- CAD橢圓弧命令如何使用
- CSS橢圓效果程式碼例項CSS
- css實現圓形、橢圓和半圓效果程式碼例項CSS
- Numpy 加法運算,opencv 加法運算,影像的融合OpenCV
- Python中OpenCV劃線、畫圓、橢圓、新增文字等幾何圖形繪製操作PythonOpenCV
- P-III曲線水文頻率計算程式(方法)
- 4次Bezier曲線--計算機圖形學 opengl計算機
- Qt 求圓和橢圓上任意角度點的座標QT