群签名&环签名
群签名
一、群签名流程
1. 初始化
群管理者建立群资源,生成对应的群公钥(Group Public Key)和群私钥(Group Private Key)群公钥对整个系统中的所有用户公开,比如群成员、验证者等。
2. 成员加入在用户加入群的时候,群管理者颁发群证书(Group Certificate)给群成员。
3. 签名群成员利用获得的群证书签署文件,生成群签名
4. 验证同时验证者利用群公钥仅可以验证所得群签名的正确性,但不能确定群中的正式签署者。
5. 打开群管理者利用群私钥可以对群用户生成的群签名进行追踪,并暴露签署者身份。
二、群签名的安全性要求
1) 完整性(Soundness and completeness)
有效的签名能够被正确验证
2) 不可伪造性(Unforgeability)
只有群成员才能产生有效的群签名。其他任何人包括群管理员也不能伪造一个合法的签名。
3)匿名性(Anonymity)
给定一个群签名后,对除了唯一的群管理员以外的任何人来说,确定签名者的身份是不可行的,至少在计算上是困难的。
4) 可跟踪性(Traceability)
群管理员在发生纠纷的情况下可以打开一个签名来确定出签名者的身份,而且任何人都不能阻止一个合法签名的打开。
5) 不关联性(Unlinkability)
在不打开签名的情况下,确定两个不同的签名是否为同一个群成员所签的是不可行的,至少在计算上是困难的。
6) 没有框架(No framing)
即使其他小组成员相互串通,也不能为不在组里的成员进行签名
7)不可伪造的跟踪验证(Unforgeable tracing verification)
撤销管理员不能错误地指责签名者创建他没有创建的签名。
8) 抵抗联合攻击(Coalition-Resistance)
即使一些群成员串通在一起也不能产生一个合法的不能被跟踪的群签名。
环签名
一、环签名流程
(1)**生成。为环中每个成员产生一个**对(公钥PKi,私钥SKi)。
(2)签名。签名者用自己的私钥和任意n个环成员(包括自己)的公钥为消息m生成签名a。
(3)签名验证。验证者根据环签名和消息m,验证签名是否为环中成员所签,如果有效就接收,否则丢弃。
二者必较
(1)匿名性。都是一种个体代表群体签名的体制,验证者能验证签名为群体中某个成员所签,但并不能知道为哪个成员,以达到签名者匿名的作用。
(2)可追踪性。群签名中,群管理员的存在保证了签名的可追踪性。群管理员可以撤销签名,揭露真正的签名者。环签名本身无法揭示签名者,除非签名者本身想暴露或者在签名中添加额外的信息。提出了一个可验证的环签名方案,方案中真实签名者希望验证者知道自己的身份,此时真实签名者可以通过透露自己掌握的秘密信息来证实自己的身份。
(3)管理系统。群签名由群管理员管理,环签名不需要管理,签名者只有选择一个可能的签名者集合,获得其公钥,然后公布这个集合即可,所有成员平等。