对于ECDSA,给定的签名及其消息可以用于恢复用于签名的公钥(生成2个公钥)。通过将这些恢复的公钥与已知的公钥进行比较,您将能够验证签名。
这种方法与传统的签名验证方法不同吗?如果存在差异,这两种方法之间是否存在性能差异?
发布于 2018-03-22 12:57:45
恢复两个潜在的公钥并将它们与已知的公钥进行比较是相关的,但与普通的ECDSA签名验证算法不同,而且代价更高。
我将使用的表示法:
然后,标准验证算法是:
$$r \\覆盖{?}{=}\\x(hs^{-1}G+rs^-1}P)|_x$$
要评估这一点,需要两点乘法和一点加法,用Shamir的技巧,这可以在很短的时间内完成。
相反,“恢复私钥,并进行比较”逻辑是:
$$P {{=}{{=}{-1}S{R,R'} -r^{-1}$$
其中,如果$R$或$R'$满足方程,则接受签名。
这可能需要三点乘法(或Shamir的技巧的两个应用程序);而不是标准逻辑;即使您幸运地选择了正确的$R,R'$一开始也不会更好。您可以对此进行重新安排,以提高效率(因为您掌握了潜在的$P$值);但是,如果您这样做了,您将发现您将返回到标准的ECDSA验证逻辑。
https://crypto.stackexchange.com/questions/57718
复制相似问题