首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用从ECDSA签名中恢复的公钥进行验证和正常验证:有什么不同?

使用从ECDSA签名中恢复的公钥进行验证和正常验证:有什么不同?
EN

Cryptography用户
提问于 2018-03-22 09:18:51
回答 1查看 1.4K关注 0票数 3

对于ECDSA,给定的签名及其消息可以用于恢复用于签名的公钥(生成2个公钥)。通过将这些恢复的公钥与已知的公钥进行比较,您将能够验证签名。

这种方法与传统的签名验证方法不同吗?如果存在差异,这两种方法之间是否存在性能差异?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2018-03-22 12:57:45

恢复两个潜在的公钥并将它们与已知的公钥进行比较是相关的,但与普通的ECDSA签名验证算法不同,而且代价更高。

我将使用的表示法:

  • $r,s$是签名中的值
  • $h$是正在验证的消息的散列(如果哈希长度大于组大小,则截断)。
  • $P$是公钥
  • $G$是组生成器
  • $|Q|_x$是点$Q$的x坐标。
  • ${R,R'}$是x坐标$r$的两个曲线点。

然后,标准验证算法是:

$$r \\覆盖{?}{=}\\x(hs^{-1}G+rs^-1}P)|_x$$

要评估这一点,需要两点乘法和一点加法,用Shamir的技巧,这可以在很短的时间内完成。

相反,“恢复私钥,并进行比较”逻辑是:

$$P {{=}{{=}{-1}S{R,R'} -r^{-1}$$

其中,如果$R$或$R'$满足方程,则接受签名。

这可能需要三点乘法(或Shamir的技巧的两个应用程序);而不是标准逻辑;即使您幸运地选择了正确的$R,R'$一开始也不会更好。您可以对此进行重新安排,以提高效率(因为您掌握了潜在的$P$值);但是,如果您这样做了,您将发现您将返回到标准的ECDSA验证逻辑。

票数 5
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/57718

复制
相关文章

相似问题

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