Skip to content

Commit 1635f94

Browse files
authored
Merge pull request #580 from maroonstar/main
ECC Formula Derivation
2 parents a2442d1 + 3f27810 commit 1635f94

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

crypto/ECC/README.md

+35-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ Q=(xQ, yQ)
105105
<!-- $m = \frac{y_P - y_Q}{x_P - x_Q}$ -->
106106
<img src="https://render.githubusercontent.com/render/math?math=m = \frac{y_P - y_Q}{x_P - x_Q}" />
107107

108-
联立直线和椭圆方程,则 R 的坐标可以如下计算 (?? xR 的公式推导还没有想明白 ??)
108+
R 的坐标可以如下计算
109109

110110
<!-- $x_R= m^2 - x_P - x_Q$ -->
111111
<img src="https://render.githubusercontent.com/render/math?math=x_R= m^2 - x_P - x_Q" />
@@ -118,6 +118,40 @@ Q=(xQ, yQ)
118118
<!-- $y_Q= y_P + m(x_R - x_Q)$ -->
119119
<img src="https://render.githubusercontent.com/render/math?math=y_R= y_Q %2B m(x_R - x_Q)" />
120120

121+
推导过程如下(感谢 kaiji 的补充):
122+
123+
代入 Q 点和 P 点到椭圆曲线
124+
125+
<!-- $y_Q^2=x_Q^3+ax_Q+b$ -->
126+
<img src="https://render.githubusercontent.com/render/math?math=y_Q^2=x_Q^3%2Bax_Q%2Bb" />
127+
128+
<!-- $y_R^2=x_R^3+ax_R+b$ -->
129+
<img src="https://render.githubusercontent.com/render/math?math=y_R^2=x_R^3%2Bax_R%2Bb" />
130+
131+
将上述两个等式相减
132+
133+
<!-- $(y_Q+y_R)(y_Q-y_R)=(x_Q-x_R)(x_Q^2+x_Qx_R+x_R^2+a)$ -->
134+
<img src="https://render.githubusercontent.com/render/math?math=(y_Q%2By_R)(y_Q-y_R)=(x_Q-x_R)(x_Q^2%2Bx_Qx_R%2Bx_R^2%2Ba)" />
135+
136+
将 yQ - yR 替换为 m(xQ-xR),等式两边消去 (yQ+yR)
137+
138+
<!-- $m(y_Q+y_R)=x_Q^2+x_Qx_R+x_R^2+a$ -->
139+
<img src="https://render.githubusercontent.com/render/math?math=m(y_Q%2By_R)=x_Q^2%2Bx_Qx_R%2Bx_R^2%2Ba" />
140+
141+
同理可得
142+
143+
<!-- $m(y_P+y_R)=x_P^2+x_Px_R+x_R^2+a$ -->
144+
<img src="https://render.githubusercontent.com/render/math?math=m(y_P%2By_R)=x_P^2%2Bx_Px_R%2Bx_R^2%2Ba" />
145+
146+
将上述两个等式相减
147+
148+
$m(y_P-y_Q)=(x_P+x_Q)(x_P-x_Q)+x_R(x_P-x_Q)$
149+
<img src="https://render.githubusercontent.com/render/math?math=m(y_P-y_Q)=(x_P%2Bx_Q)(x_P-x_Q)%2Bx_R(x_P-x_Q)" />
150+
151+
两边同时除以 (xP-xQ)
152+
153+
$x_R=m^2-x_P-x_Q$
154+
121155
计算出 R 点之后,进而得出关于 x 轴对称点 -R,即为 P+Q 的结果
122156

123157
(xP,yP) + (xQ,yQ) = (xR,-yR)

0 commit comments

Comments
 (0)