区块链中的数学 – 爱德华曲线方程

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

## 写在前面 上一节说了[sm2公钥恢复过程](https://learnblockchain.cn/article/1598),重在原理,具体代码有待测试优化! 本文开始要讲椭圆曲线中的另外一类:爱德华曲线。 这种曲线的规则跟之前所说的均有所不同。secp256k1,sm2,secp256r1 都属于Weierstrass曲线系列。 接下来的几篇思路为:爱德华曲线 --> 扭曲爱德华曲线 --> ed25519签名 目标是在区块链应用中已经采用的ed25519签名,但是由于采用的是新曲线,所以很有必要讲讲背景知识,下面开启新一段旅程! ## 爱德华曲线 爱德华曲线(Edwards curves)是另一类椭圆曲线族。 是美国数学家Harold Edwards 在2007研究提出的。曲线方程: $x^2+y^2=1+dx^2y^2$ 或者 $x^2+y^2=c^2(1+dx^2y^2)$ 定义在有限域K上,满足c, d ∈ K 且 cd(1 − $c^4$·d) ≠ 0. 下图是一条实数域上的爱德华曲线: $x^2+y^2=1-d\cdot x^2\cdot y^2$ 红色线参数 d = 300, 黄色线参数d = $\sqrt{8}$,蓝色线参数 d = −0.9 ![](https://img.learnblockchain.cn/2020/10/21/16032559059635.jpg) ## 曲线点运算 像Weierstrass曲线上的点群一样,爱德华曲线上的点也构成一个交换群,点与点可以相加,标量相乘。 爱德华曲线点相加公式如下: ![](https://img.learnblockchain.cn/2020/10/21/16032559470087.jpg) 点$(x_1,y_1)$的逆是$(-x_1,y_1)$,群“零元”表示为(0, 1),由于坐标不全是0,“零元”称呼字面表达不确切,所有又称为“中性点”。性质就是零元性质,群中元素P + (0,1) = P, P + (-P) = (0,1) 根据以上加法规则,可以看出(0, −1) 阶为2, 点(±1,0) 阶是4. 爱德华曲线的特殊之处在于总有一个点阶为4. ### 举例说明 令d = 2, 方程为:$x^2+y^2=1+2x^2y^2$ 任取一点P = (1,0),易见P在曲线上,计算P + (0,1)= $(x_3,y_3)$根据上述加法规则: ![](https://img.learnblockchain.cn/2020/10/21/16032560814755.jpg) ![](https://img.learnblockchain.cn/2020/10/21/16032560902139.jpg) 即P + (0,1)= $(x_3,y_3)$= (1,0)= P 同时检验了中性点(0,1)的性质!其他点可自行选取尝试计算。 特殊地,如果两个点相同,则公式变为: ![](https://img.learnblockchain.cn/2020/10/21/16032561222472.jpg) ## 小结 本文简要概述了爱德华曲线方程和有限域K上点运算,在参数d不是k平方的情况下,是完备的,即没有异常点以及相同点操作也是一致的(对比之前的椭圆曲线点加法规则(有无穷远点,相同点操作异与不同点),这样的性质可以增强对侧信道攻击(side channel attack)的抵御能力,同时点乘的效率也更高! 好了,[下一篇](https://learnblockchain.cn/article/1627)继续说爱德华曲线的更多内容! 欢迎关注公众号:blocksight ### 相关阅读: [区块链中的数学-sm2公钥恢复过程](https://learnblockchain.cn/article/1598) [区块链中的数学 - 基于椭圆曲线的VRF证明验证过程](https://learnblockchain.cn/article/1582) [区块链中的数学 - 基于椭圆曲线的VRF证明生成](https://learnblockchain.cn/article/1545) [区块链中的数学 - 基于RSA的VRF实现](https://learnblockchain.cn/article/1544) [区块链中的数学 - VRF(随机可验证函数)概述](https://learnblockchain.cn/article/1543) [区块链中的数学 - secp256k1公钥恢复原理](https://learnblockchain.cn/article/1526) [区块链中的数学 - secp256k1公钥恢复实现](https://learnblockchain.cn/article/1517)) [区块链中的数学 - sm2签名与验证](https://learnblockchain.cn/article/1507) [区块链中的数学 - Uniwap核心算法解析(中)](https://learnblockchain.cn/article/1494)

写在前面

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

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

爱德华曲线

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

$x^2+y^2=1+dx^2y^2$

或者

$x^2+y^2=c^2(1+dx^2y^2)$

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

下图是一条实数域上的爱德华曲线: $x^2+y^2=1-d\cdot x^2\cdot y^2$

红色线参数 d = 300, 黄色线参数d = $\sqrt{8}$,蓝色线参数 d = −0.9

曲线点运算

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

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

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

举例说明

令d = 2, 方程为:$x^2+y^2=1+2x^2y^2$

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

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

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

小结

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

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

欢迎关注公众号:blocksight

相关阅读:

区块链中的数学-sm2公钥恢复过程

区块链中的数学 - 基于椭圆曲线的VRF证明验证过程

区块链中的数学 - 基于椭圆曲线的VRF证明生成

区块链中的数学 - 基于RSA的VRF实现

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

区块链中的数学 - secp256k1公钥恢复原理

区块链中的数学 - secp256k1公钥恢复实现)

区块链中的数学 - sm2签名与验证

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

区块链技术网。

  • 发表于 2020-10-21 13:01
  • 阅读 ( 1935 )
  • 学分 ( 21 )
  • 分类:入门/理论

评论