在密码学中,环签名是一种数字签名,其可以由每个具有密钥的一组用户的任何成员完成。因此,使用环签名签名的消息由特定人群中的某一人签署。环签名的一个安全属性是若要确定哪个组成员的密钥用于产生签名在计算上是不可行的。环签名与群签名类似,但在两个关键方面有所不同:
- 无法撤销单个签名的匿名性;
- 任何用户组都可以作为一个组使用,无需额外设置。
环签名
问题的提出
2001年,Rivest、Shamir和Tauman在How to Leak a Secret一文中提出了如下问题:
Bob是一个内阁成员,他想向记者揭露首相贪污的情况,他要使记者确信此消息来自一个内阁成员,同时又不想泄露自己的身份(保证匿名性),以免遭到首相报复。
Bob不能通过用一般的数字签名把消息传给记者,因为虽然记者会相信这个消息来自内阁成员,但同时会暴露B的身份。
Bob也不能通过一般的匿名方式把消息传给记者,因为虽然Bob的身份不会暴露,但记者不能确信消息来自一个内阁成员,没有理由相信消息是真实的。
群签名也不能解决这个问题,因为群签名的生成需要群成员的合作, 群管理者可以打开签名。如果群管理者受到首相的控制, Bob的身份就会暴露。
在此背景下,Rivest, Shamir和Tauman提出了环签名的概念,并提出一种新型的基于RSA的环签名算法,通常被视为第一个环签名算法。
环签名可以很好地解决以上问题,所有的内阁成员构成