阅读Musig论文第2页的底部,我们可以发现素数阶p的循环群G的Schnorr签名是一个元组(R,s),其中
R=gr表示随机秘密R和
s=r+cx,其中c=H(X,r,m)对于消息m,一些Hashfunction H和对应于私钥X的公钥X=gx。
进一步说明,可以使用等式gs=RXc来验证这样的签名(R,s)
我想知道为什么最后一个等式证明了签名的有效性?
签名
密码学
施诺尔签名
数学
分享
改进这个问题
跟随
16小时前编辑的
墨奇♦
51.5k3232金徽章142142银徽章449449铜徽章
3月10日20:25问
雷内·皮克哈特
853455银牌2323铜牌
添加评论
1个答案
三
为了证明签名的有效性,我们必须看到元组(R,s)实际上来自私钥x,特别是s的派生形式为s=R+cx。显然,我们不应该拥有私钥x(这就是我们需要这个验证等式的原因)
看看gs=RXc,我们意识到我们知道(R,s),X和c(因为c=H(X,R,m),公钥X是已知的)。因为生成器g也是已知的,我们实际上可以计算方程的两边。
因为s=r+cx,我们知道gs=gr+cx
由于我们在素数阶的循环群中进行这些计算,我们可以应用以下规则:ga+b=gagb和gab=(ga)b(据我所知,这就是为什么这个群需要循环和素数阶。)
因此,gs=gr+cx=grgcx
回忆R=gr并将其从4输入方程。我们得到gs=Rgcx
回顾第3条的另一条规则。我们有gs=Rgcx=R(gx)c=RXc
这正是我们要展示的方程式。
注意一个有趣的事实,如1所述。验证方程所需的所有数据都是已知的,但只有在x和r已知的情况下,生成数据才能起作用。这就是为什么x的所有者可以产生签名,其他人可以验证它。
分享