椭圆曲线加密算法运用于区块链. 椭圆曲线 C={(x,y)∣y2=x3+ax+b,4a3+27b2≠0}.P∈C 关于 x 轴的对称点记为 ˜P.C 在点 P(x,y)(y≠0)处的切线是指曲线 y=±√x3+ax+b 在点 P 处的切线.定义“⊕”运算满足:
① 若 P∈C,Q∈C,且直线 PQ 与 C 有第三个交点 R,则 P⊕Q=˜R;
② 若 P∈C,Q∈C,且 PQ 为 C 的切线,切点为 P,则 P⊕Q=˜P;
③ 若 P∈C,规定 P⊕˜P=0∗,且 P⊕0∗=0∗⊕P=P.
1、当 4a3+27b2=0 时,讨论函数 h(x)=x3+ax+b 零点的个数.
2、已知“⊕”运算满足交换律、结合律,若 P∈C,Q∈C,且 PQ 为 C 的切线,切点为 P,证明:P⊕P=˜Q.
3、已知 P(x1,y1)∈C,Q(x2,y2)∈C,且直线 PQ 与 C 有第三个交点,求 P⊕Q 的坐标.
解析
1、根据题意,可得 a⩽,于是 h(x) 的导函数h^{\prime}(x)=3 x^2+a.当 a=0 时,b=0,此时函数 h(x) 的零点个数为 0; 当 a<0 时,h(x) 在 \left(-\infty,-\sqrt{-\dfrac a3}\right) 上单调递增,在 \left(-\sqrt{-\dfrac a3},\sqrt{-\dfrac a3}\right) 上单调递减,在 \left(\sqrt{-\dfrac a3},+\infty\right) 上单调递增,因此极大值为 -\dfrac{2(-a)^{\frac 32}}{3\sqrt 3}+b,极小值为 \dfrac{2(-a)^{\frac 32}}{3\sqrt 3}+b,因此函数 h(x) 有两个极值点且有一个极值为 0,因此 h(x) 零点个数为 2. 综上所述,函数 h(x) 的零点个数为 \begin{cases} 1,&a=0,\\ 2,&a<0.\end{cases}
2、因为 P Q 为 C 在点 P 处的切线,且 Q \in C,所以P \oplus Q=\widetilde{P},\quad P \oplus(P \oplus Q)=P \oplus \widetilde{P},根据题意有P \oplus P \oplus Q=0^{\ast} ,\quad P \oplus P \oplus Q \oplus \widetilde{Q}=0^{\ast} \oplus \widetilde{Q},所以P \oplus\left(P \oplus 0^{\ast}\right)=\widetilde{Q},故 P \oplus P=\widetilde{Q}.
3、直线 P Q 的斜率k=\dfrac{y_1-y_2}{x_1-x_2},设 P Q 与 C 的第三个交点为 \left(x_3, y_3\right),则y_3=k\left(x_3-x_1\right)+y_1,代入 y_3^2=x_3^3+a x_3+b 得 \left(x_3-x_1\right)^2\cdot k^2+2 y_1\left(x_3-x_1\right)\cdot k+y_1^2=a_3^3+a x_3+b ,代入 y_1^2=x_1^3+a x_1+b 得x_3^2+\left(x_1-k^2\right) x_3+x_1^2+k^2 x_1-2 k y_1+a=0,同理可得x_3^2+\left(x_2-k^2\right) x_3+x_2^2+k^2 x_2-2 ky_2+a=0,两式相减得 x_3=k^2-x_1-x_2 ,因此 P \oplus Q 的坐标为\left(\left(\frac{y_1-y_2}{x_1-x_2}\right)^2-x_1-x_2, \frac{y_1-y_2}{x_1-x_2}\left(x_2+2 x_1-\left(\frac{y_1-y_2}{x_1-x_2}\right)^2\right)-y_1\right).