首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ECC标量乘法

ECC标量乘法
EN

Ethereum用户
提问于 2019-07-17 02:45:42
回答 1查看 135关注 0票数 0

我现在尝试用标量乘法来恢复v,但是我有关于ECC标量乘法的问题。

我想知道下面的方程式是否正确。

如果标量*P= Q,那么标量* (-P) = (-Q)?

例如,假设5*P=5* (Px,Py) = (Qx,Qy)

5* (-P) =5* (x,-y) = (Qx,-Qy)正确吗?

如果有熟悉椭圆曲线密码的人,请帮助我。谢谢!

EN

回答 1

Ethereum用户

发布于 2019-07-17 19:21:23

我相信这个问题更多的是关于密码学的,而不是关于以太的。

负因子的标量乘法运算是这样工作的:

代码语言:javascript
复制
scalar = k = 5

(−k)*P = (−P) + (−P) + ⋯ + (−P)
-5*P = (−P) + (−P) + (−P) + (−P) + (−P)

使用Ethereum曲线secp256k1y^2 = x^3 + 7,它使用Weierstrass形式(Koblitz曲线)。

模p素数:

代码语言:javascript
复制
p = 115792089237316195423570985008687907853269984665640564039457584007908834671663

使用曲线的一个点,您可以验证上面的内容:

代码语言:javascript
复制
Point P = (Px, Py):
Px: 88557899412428680052041839616894562461261334161833606533830754247259944108251 
Py: 34702325852084136078619568153466699496255363507872892365540796564166359798327

Point -P = (Px, -Py):
Px: 88557899412428680052041839616894562461261334161833606533830754247259944108251
-Py: 81089763385232059344951416855221208357014621157767671673916787443742474873336

Point Q = (Qx, Qy) = 5 * (Px, Py):
Qx: 52731728111805074880654456353252121798595467574662768547858124403109672375563
Qy: 39386080389503298834537707240645959527120091168125799865817705270770834912647

Point -Q = (Qx, -Qy):
Qx: 52731728111805074880654456353252121798595467574662768547858124403109672375563
-Qy: 76406008847812896589033277768041948326149893497514764173639878737137999759016

Point 5*(-P) = (Qx, -Qy):
Qx: 52731728111805074880654456353252121798595467574662768547858124403109672375563
-Qy: 76406008847812896589033277768041948326149893497514764173639878737137999759016
票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/72971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档