盲签名(Blind Signature)
目录 |
盲签名是相对于一般的数字签名而言的概念,是指签名人员虽然对某个消息签了名,但他并不知道所签消息的具体内容,也就是说对签名人而言,消息被盲化处理过。为了说明盲签名的思想和实现过程,设甲为消息拥有者,乙为签名人.盲签名协议要实现的目标是:甲希望乙对他的某个消息进行签名,但又不想让乙知道消息的具体内容;乙的任务就是对消息进行签名,保证在将来某一时刻以公证人的身份来证实签名的真实性,而并不关心消息的具体内容。一般来说,盲签名协议包含如下几个步骤:
1、消息盲化。甲将原消息m进行盲化处理得m',然后将盲消息m'传送给乙。进行盲化处理的方法很多,例如,可随机选取某个数,称该随机数为盲因子,把原消息数值化后,与盲因子相乘即可得到盲消息。
2、对盲消息签名。乙应用通常的数字签名方法对耐进行签名,并将其签名sig(m')送给甲。
3、恢复签名。甲通过除去盲因子的方法,从盲签名sig(m')中得到相关原消息m的签名、sig(m')。将来出现纠纷时,当甲拿出乙的盲签名,而乙显然不能否认其签名,这样就可以证明原消息的真实性。
盲签名不仅保留了数字签名的各类特性,而且还拥有以下一些特殊的性质:
1、盲性。消息的内容对签名人来说是盲化的,签名人看不到消息的内容。
2、不可追踪性。签名者仅知sig(m'),而不知aig(m}.即使签名者保留sig(m')及其他有关数据,仍难以找出、sig(m)和、sig(m')之间的内在联系,不可对消息m的拥有者进行追踪。
1、按照不同的盲化对象划分
盲消息签名方案:盲消息签名仅对待签名的消息m进行盲化。在盲消息签名方案中,签名者对盲消息m签名,并不知道真实消息m的具体内容.这类签名的特性是sig(m)= sig(m')或sig(m)含sig(m')中的部分数据.盲消息签名方案在电子商务中一般不用于构造电子货币支付系统。
签名被盲化方案:在盲参数签名方案中,签名者知道所签消息m的具体内容,消息拥有者仅对签名sig(m')进行盲化,即改变sig(m')而得到新的签名sig(m) ,但又不影响对新签名的验证.盲参数签名的这些性质可以用于电子商务系统CA中心,为交易双方颁发口令;另外,利用盲参数签名方案还可以构造代理签名机制中的原始签名人和代理签名人之间的授权方程,以用于多层CA机制中证书的签发和验证。
2、按照消息拥有者对签名人是否可以追踪进行分类
弱盲签名:在弱盲签名方案中,消息拥有者对消息m和签名sig(m')进行了盲化.若签名者保留sig(m')及有关数据,待sig(m)公开后,签名者可以找出sig(m')和sig(m)的内在联系,从而达到对消息m拥有者的追踪。
强盲签名:在强盲签名方案中,消息拥有者对消息m和签名sig(m')进行了盲化,即使签名者保留sig(m')及其他有关数据,仍难以找出sig(m)和sig(m')之间的内在联系,不可能对消息m的拥有者进行追踪.在电子支付系统和电子投票系统中,为了保障用户和投票者的匿名性及保密性,往往都采用强盲签名技术。
3、按照签名人数的多少来划分
简单盲签名(同盲消息签名方案):如果签名人为单个人,则这时的签名就是普通的盲签名.
多重(群)盲消息签名:若签名人为一群人,则这时的签名就是多重(群)盲消息签名.该类签名方案必须经多人同时盲签名才可生效。
4、按照签名人是否接受别人的代理来划分。
简单盲签名:如果签名人不受别人委托,这时的签名就是普通的盲签名。
代理盲签名:如果原始签名人委托代理签名人行使其签名权,则这时的签名就称为代理盲签名。
一般来说,一个好的盲签名应该具有以下的性质:
1. 不可伪造性。除了签名者本人外,任何人都不能以他的名义生成有效的盲签名。这是一条最基本的性质。
2. 不可抵赖性。签名者一旦签署了某个消息,他无法否认自己对消息的签名。
3. 盲性。签名者虽然对某个消息进行了签名,但他不可能得到消息的具体内容。
4. 不可跟踪性。一旦消息的签名公开后,签名者不能确定自己何时签署的这条消息。
满足上面几条性质的盲签名,被认为是安全的。这四条性质既是我们设计盲签名所应遵循的标准,又是我们判断盲签名性能优劣的根据。
另外,方案的可操作性和实现的效率也是我们设计盲签名时必须考虑的重要因素。一个盲签名的可操作性和实现速度取决于以下几个方面:
1、密钥的长度;
2、盲签名的长度;
3、盲签名的算法和验证算法。