23

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

 3 years ago
source link: https://learnblockchain.cn/article/1610
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

写在前面

上一节说了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 fIbue2B.jpg!mobile

曲线点运算

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

点$(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)$根据上述加法规则:

qaiuIja.jpg!mobileamuY3e3.jpg!mobile

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

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

UZ3i22A.jpg!mobile

小结

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

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

欢迎关注公众号:blocksight

相关阅读:

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

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

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

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

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

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

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

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

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

写在前面

上一节说了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 fIbue2B.jpg!mobile

曲线点运算

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

点$(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)$根据上述加法规则:

qaiuIja.jpg!mobileamuY3e3.jpg!mobile

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

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

UZ3i22A.jpg!mobile

小结

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

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

欢迎关注公众号:blocksight

相关阅读:

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

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

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

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

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

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

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

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

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

本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

  • 发表于 2分钟前
  • 阅读 ( 2 )
  • 学分 ( 0 )
  • 分类:入门/理论

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK