查看原文
其他

区块链中的数学(四十六)

blocksight blocksight 2022-05-19

写在前面

上一节说了sm2公钥恢复过程,重在原理,具体代码有待测试优化!

本文开始要讲椭圆曲线中的另外一类:爱德华曲线。
这种曲线的规则跟之前所说的均有所不同。secp256k1,sm2,secp256r1 都属于Weierstrass曲线系列。
接下来的几篇思路为:爱德华曲线 --> 扭曲爱德华曲线 --> ed25519签名
目标是在区块链应用中已经采用的ed25519签名,但是由于采用的是新曲线,所以很有必要讲讲背景知识,下面开启新一段旅程!

爱德华曲线

爱德华曲线(Edwards curves)是另一类椭圆曲线族。 是美国数学家Harold Edwards 在2007研究提出的。曲线方程:

或者

定义在有限域K上,满足c, d ∈ K 且 cd(1 − ·d) ≠ 0.

下图是一条实数域上的爱德华曲线:

红色线参数 d = 300, 黄色线参数d = ,蓝色线参数 d = −0.9

曲线点运算

像Weierstrass曲线上的点群一样,爱德华曲线上的点也构成一个交换群,点与点可以相加,标量相乘。
爱德华曲线点相加公式如下:

点()的逆是(−),群“零元”表示为(0, 1),由于坐标不全是0,“零元”称呼字面表达不确切,所有又称为“中性点”。性质就是零元性质,群中元素P + (0,1) = P, P + (-P) = (0,1)

根据以上加法规则,可以看出(0, −1) 阶为2, 点(±1,0) 阶是4. 爱德华曲线的特殊之处在于总有一个点阶为4.

举例说明

令d = 2, 方程为:

任取一点P = (1,0),易见P在曲线上,计算P + (0,1)= () 根据上述加法规则:

即P + (0,1)= ()= (1,0)= P 同时检验了中性点(0,1)的性质!其他点可自行选取尝试计算。

特殊地,如果两个点相同,则公式变为:

小结

本文简要概述了爱德华曲线方程和有限域K上点运算,在参数d不是k平方的情况下,是完备的,即没有异常点以及相同点操作也是一致的(对比之前的椭圆曲线点加法规则(有无穷远点,相同点操作异与不同点),这样的性质可以增强对侧信道攻击(side channel attack)的抵御能力,同时点乘的效率也更高!

好了,下一篇继续说爱德华曲线的更多内容!

欢迎关注&在看, 疑问请留言!

相关阅读:

区块链中的数学(四十五)     sm2公钥恢复过程

区块链中的数学(四十四)   基于椭圆曲线的VRF证明验证过程

区块链中的数学(四十三)   基于椭圆曲线的VRF证明生成

区块链中的数学(四十二)  基于RSA的VRF实现

区块链中的数学(四十一)   VRF(随机可验证函数)概述

区块链中的数学(四十)   目录整理,快速发现你感兴趣的内容!

区块链中的数学(二十三)  secp256k1公钥恢复原理

区块链中的数学(二十八)   secp256k1公钥恢复实现

区块链中的数学(三十一)  sm2签名与验证

区块链中的数学(三十七) Uniwap核心算法解析(中)


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存