Appearance
盲签名
概述
: 签名者生成公私钥对 。 : 用户选择随机数 ,计算盲化消息 并发送给签名者。 : 签名者使用私钥 对盲化消息 进行签名,生成盲签名 并返回给用户。 : 用户使用随机数 对盲签名 进行去盲化,得到最终签名 。 : 验证者使用公钥 验证消息 和签名 的有效性。
主要应用于隐私保护,例如我有一个投票消息,需要签名者对其进行签名以证明其有效性,但不希望签名者知道具体内容,也不希望签名者能够将签名与我关联起来,就可以通过盲签名来实现。
RSA盲签名
: 签名者选择两个大素数 和 ,计算 ,计算 ,其中 。公钥为 ,私钥为 。 : 用户选择随机数 ,计算盲化消息 并发送给签名者。 : 签名者使用私钥 对盲化消息 进行签名,生成盲签名 并返回给用户。 : 用户使用随机数 对盲签名 进行去盲化,得到最终签名 , : 验证者计算 。
Schnorr盲签名
回顾:Schnorr签名
: 选择素数 使得 ,取阶为 的生成元 ;设哈希 。私钥 ,公钥 。 : 签名者选随机数 ,计算 ,计算 ,计算 ,签名为 。 : 验证者计算 ,检查 。 - 也可以令
,验证时计算 ,然后计算 ,检查 。
具体步骤
: 选择素数 使得 ,取阶为 的生成元 ;设哈希 。私钥 ,公钥 。 : 签名者选随机数 ,计算 ,发送 给用户。 : 用户选盲化因子 ,计算 ,令 ,并令 ,把 发给签名者。 : 签名者计算 ,返回 。 : 用户计算 ,得到最终签名 。 : 验证者计算 ,检查 。
正确性:本质上是确认