数字签名是互联网中保证数据真实性和完整性的重要技术手段,主要功能是对数据进行认证和验证,被广泛应用于各种场景。但在数字签名中还有一种比较特殊的存在,它就是我们今天的主角——盲签名。

盲签名的简介

盲签名的概念首先由 David Chaum 于1982年提出,它是一种特殊的数据签名,最主要的特点就是“盲”,它可以有效地保护所签署消息的具体内容,在电子商务和电子选举等领域有着广泛的应用。

盲签名实现了签名者对发送者的消息进行签名,却不能知道签名者消息的具体内容。简单来说就是将文件放入带有复写纸的信封,签名者在信封上对文件进行签名而不知道文件的具体内容。

盲签名

盲签名的原理

盲签名允许消息者先将消息盲化,而后让签名者对盲化的消息进行签名,最后消息拥有者对签字除去盲因子,得到签名者关于原消息的签名。盲签名除了满足一般的数字签名条件外,还必须满足下面的两条性质:

  • 签名者对其所签署的消息是不可见的,即签名者不知道他所签署消息的具体内容。
  • 签名消息不可追踪,即当签名消息被公布后,签名者无法知道这是他哪次的签署的。

盲签名

盲签名的过程

  1. 系统初始化:产生盲签名方案中的所有系统参数;
  2. 密钥对生成:产生用户的私钥和公钥;
  3. 签名:用户利用签名算法对消息签名,签名过程可以公开也可以不公开,但一定包含仅签名者才拥有的私钥;
  4. 盲化:用户将盲化因子注入待签名的消息;
  5. 盲签名:签名者对盲化过的消息进行签名;
  6. 去盲:用户从盲化签名(对盲化过的消息)去除盲化因子,获得去盲后的签名(待签名消息);
  7. 验证:验证者利用公开的系统参数、验证方法和签名者的公钥对给定消息的签名进行验证。

盲签名

盲签名的性质

一个盲签名除了满足一般的数字签名性质外,还需要满足下面的4个性质:

  • 盲性:签名者对其所签署的消息是不可见的,即签名者不知道他所签署消息的具体内容。
  • 不可伪造性:除了签名者本人外,在没有私钥的情况下,任何人都不能以他的名义生成有效的盲签名。
  • 不可跟踪性:当签名消息被公布后,签名者无法知道这是他哪次的签署的,既使保存了他所签的每一个盲签名的记录。
  • 不可抵赖性:签名者一旦签署了某个消息,他无法否认自己对消息的签名。

免责声明:素材源于网络,如有侵权,请联系删稿。