Feldman's VSS proof {2,n}
在门限签名方案中,对消息的签名是通过多个参与者的部分签名组合而成的。具体来说,签名生成和验证过程如下:
签名生成过程
假设我们有一个消息 m,我们希望生成对该消息的签名 σ。以下是生成签名的步骤:
- 选择参与者:选择 t 个参与者(在 (2,n) 门限签名方案中,选择 2 个参与者)。
- 生成随机数:每个参与者生成一个随机数 k。
- 计算临时值:计算临时值 R:
R=gkmodp
- 计算哈希值:计算消息和临时值的哈希值 e:
e=H(m∥R)
- 生成部分签名:每个参与者 Pi 使用其秘密份额 si 生成部分签名 si′:
si′=k+e⋅simodp
- 合并部分签名:将所有参与者的部分签名合并,生成最终签名 s:
s=i∑si′modp
签名验证过程
验证签名 σ=(R,s) 的步骤如下:
- 计算哈希值:计算消息和临时值的哈希值 e:
e=H(m∥R)
- 验证签名:使用公钥 PK 验证签名 (R,s),检查以下等式是否成立:
gs≡R⋅PKemodp
如果等式成立,则签名 σ 是有效的;否则,签名无效。
签名示例
假设我们有一个消息 m,两个参与者 P1 和 P2,他们的秘密份额分别为 s1 和 s2。生成和验证签名的具体步骤如下:
生成签名
- 参与者 P1 和 P2 生成随机数 k1 和 k2。
- 计算临时值 R:
R=gk1⋅gk2modp
- 计算哈希值 e:
e=H(m∥R)
- 参与者 P1 和 P2 生成部分签名:
s1′=k1+e⋅s1modp
s2′=k2+e⋅s2modp
- 合并部分签名生成最终签名 s:
s=s1′+s2′modp
最终签名为 σ=(R,s)。
验证签名
- 计算哈希值 e:
e=H(m∥R)
- 验证签名:
gs≡R⋅PKemodp
如果等式成立,则签名 σ 是有效的。
在门限签名方案中,对消息的签名是通过多个参与者的部分签名组合而成的。最终的签名 σ=(R,s) 包含临时值 R 和合并后的签名 s。签名验证通过检查等式 gs≡R⋅PKemodp 是否成立来确定签名的有效性。