盲签名
盲签名(Blind Signature)
盲签名的简介
盲签名是由Chaum, David提出的一种数字签名方式,其中消息的内容在签名之前对签名者是不可见的(盲化)。经过盲签名得到的签名值可以使用原始的非盲消息使用常规数字签名验证的方式进行公开验证。盲签名可以有效的保护隐私,其中签名者和消息作者不同,在电子投票系统和数字现金系统中会被使用。
盲签名常常被类比成下面的场景:Alice想让Bob在自己的文件上签名,但是不希望Bob看到文件内容,于是Alice在文件上方叠放了一张复写纸,然后将文件和复写纸放入信封密封起来交给Bob。Bob再拿到信封后验证了Alice的身份后,直接在密封好的信封上签字,这样虽然Bob是对密封后的信封签字,但是Alice拿到签名后的信封后,拆开信封就可以拿到经过Bob签字的文件。
盲签名(Blind Signature)性质
- 签名者对其所签署的消息是不可见的,即签名者不知道他所签署消息的具体内容。
- 签名消息不可追踪,即当签名消息被公布后,签名者无法知道这是他哪次的签署的。
盲签名的一般过程
- 接收者首先将待签数据进行盲变换,把变换后的盲数据发给签名者。
- 经签名者签名后再发给接收者。
- 接收者对签名再作去盲变换,得出的便是签名者对原数据的盲签名。
- 这样便满足了条件①。要满足条件②,必须使签名者事后看到盲签名时不能与盲数据联系起来,这通常是依靠某种协议来实现的。
图示如下:
基于RSA的盲签名实现
Schnorr盲签名算法