椭圆曲线加密算法运用于区块链. 椭圆曲线 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⩽0,于是 h(x) 的导函数h′(x)=3x2+a.
当 a=0 时,b=0,此时函数 h(x) 的零点个数为 0; 当 a<0 时,h(x) 在 (−∞,−√−a3) 上单调递增,在 (−√−a3,√−a3) 上单调递减,在 (√−a3,+∞) 上单调递增,因此极大值为 −2(−a)323√3+b,极小值为 2(−a)323√3+b,因此函数 h(x) 有两个极值点且有一个极值为 0,因此 h(x) 零点个数为 2. 综上所述,函数 h(x) 的零点个数为 {1,a=0,2,a<0.
2、因为 PQ 为 C 在点 P 处的切线,且 Q∈C,所以P⊕Q=˜P,P⊕(P⊕Q)=P⊕˜P,
根据题意有P⊕P⊕Q=0∗,P⊕P⊕Q⊕˜Q=0∗⊕˜Q,
所以P⊕(P⊕0∗)=˜Q,
故 P⊕P=˜Q.
3、直线 PQ 的斜率k=y1−y2x1−x2,
设 PQ 与 C 的第三个交点为 (x3,y3),则y3=k(x3−x1)+y1,
代入 y23=x33+ax3+b 得 (x3−x1)2⋅k2+2y1(x3−x1)⋅k+y21=a33+ax3+b,
代入 y21=x31+ax1+b 得x23+(x1−k2)x3+x21+k2x1−2ky1+a=0,
同理可得x23+(x2−k2)x3+x22+k2x2−2ky2+a=0,
两式相减得 x3=k2−x1−x2,因此 P⊕Q 的坐标为((y1−y2x1−x2)2−x1−x2,y1−y2x1−x2(x2+2x1−(y1−y2x1−x2)2)−y1).