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