有限域上椭圆曲线的三点共线特性及点运算坐标合法性证明问询
有限域上椭圆曲线的三点共线特性及点运算坐标合法性证明问询
嘿,这个问题问到点子上了——毕竟椭圆曲线密码学的可靠性全靠这些运算的合法性撑着,咱们一步步拆解来搞明白:
首先得明确椭圆曲线点加法的核心规则:两个曲线上的点P和Q相加,本质是找一条过P、Q的直线,这条直线会和曲线交于第三个点R,然后P+Q的结果就是R关于x轴的镜像点(也就是(x_R, -y_R mod p),p是有限域的素数阶)。要证明相加后的点坐标仍在有限域里,就得从每一步运算的封闭性说起。
分情况验证运算的封闭性
有限域GF(p)(这里p=19)的核心特性是:域内元素的加减乘运算,以及非零元素的逆元运算,结果都还在域内。咱们分三种情况看:
情况1:P和Q是两个不同的点(且不是互为镜像的点)
- 第一步算斜率
m=(y_Q - y_P)/(x_Q - x_P):在有限域里,除法等价于乘以除数的乘法逆元。因为P≠Q且不是镜像点,所以x_Q - x_P ≠ 0 mod p,而有限域里所有非零元素都有唯一的逆元,所以m必然是GF(p)里的元素。 - 计算第三个交点的x坐标
x_R = m² - x_P - x_Q:m、x_P、x_Q都是GF(p)内的元素,平方、减法运算在域内封闭,所以x_R也属于GF(p)。 - 计算y坐标
y_R = m(x_P - x_R) + y_P:同样,所有运算都在GF(p)内完成,y_R自然也在域里。最后取镜像点(x_R, -y_R mod p),-y_R mod p等价于(p - y_R) mod p,显然也落在GF(p)的整数范围内。
情况2:P和Q是同一个点(点加倍运算)
- 斜率计算为
m=(3x_P² + a)/(2y_P),其中a是椭圆曲线的参数(你的例子里a=-7,mod19后是12)。因为P是曲线上的非无穷远点,且要做加倍运算时y_P≠0(否则P+P=无穷远点O,也是合法的单位元),所以2y_P ≠0 mod p(p是奇素数,2和p互质),逆元存在,m属于GF(p)。 - 后续的x_R、y_R计算和情况1一致,所有运算都在域内封闭,结果坐标必然在GF(p)里。
情况3:P和Q互为镜像点(x相同,y互为相反数)
这时候过两点的直线是垂直x轴的直线,和曲线的第三个交点是无穷远点O(椭圆曲线的单位元),所以P+Q=O,这也是椭圆曲线定义里的合法元素,完全符合要求。
用你的例子实际验证一遍
拿你给出的曲线y² = x³ -7x +10 mod19,点P=(2,2)和Q=(3,4)来计算:
- 斜率m=(4-2)/(3-2)=2/1=2 mod19(1的逆元就是1,所以2×1=2)。
- x_R=2² -2 -3=4-5=-1≡18 mod19。
- y_R=2×(2-18)-2=2×(-16)-2=-34≡4 mod19(因为-34+38=4)。
- P+Q的结果是(18, -4 mod19)=(18,15)。
验证这个点是否在曲线上:
右边:18³ -7×18 +10 mod19,18≡-1,所以(-1)³ -7×(-1)+10=-1+7+10=16 mod19。
左边:15²=225≡225-11×19=225-209=16 mod19。
两边相等,说明(18,15)确实在曲线上,且坐标都是GF(19)内的整数。
总结来说,椭圆曲线点加法的每一步都严格遵循有限域的运算封闭性,所以不管你选曲线上哪两个点相加,结果的坐标必然落在这个有限域里——这也是椭圆曲线能用于密码学的核心基础之一哦。
备注:内容来源于stack exchange,提问作者toga
相关产品推荐
相关产品推荐

