群签名是一种类似于数字签名的密码原语,其目的在于允许用户代表群签名消息,并在该群内保持匿名。也就是说,看到签名的人可以用公钥验证该消息是由该群成员发送的,但不知道是哪一个。同时,用户不能滥用这种匿名行为,因为群管理员可以通过使用秘密信息(密钥)来消除(恶意)用户的匿名性。
群签名方案的关键是“群管理员”,它负责添加群成员,并能够在发生争议时揭示签名者身份。在一些系统中,添加成员和撤销签名匿名性的责任被分开,并分别赋予给群管理员和撤销管理员。虽然学术界已经提出了许多群签名方案,但所有方案都应该满足基本的安全性要求
群签名的安全性要求
完整性: 群成员的有效签名始终验证正确,无效签名则始终验证失败。
不可伪造性: 只有群成员才能创建有效的群签名。
匿名性: 给定一个群签名后,如果没有群管理员的密钥,则无法确定签名者的身份,至少在计算上是不可行的。
可跟踪性: 给定任何有效的签名,群管理员应该能够确定签名者的身份。 (这也暗示了只有群管理员才能破坏其匿名性)
不关联性: 给定两个消息及其签名,我们无法判断签名是否来自同一签名者。
无框架: 即使所有其他群成员相互串通(包括和管理员串通),他们也不能为非群成员伪造签名。
不可伪造的跟踪验证: 撤销管理员不能错误地指责签名者创建了他本没有创建的签名。
抗合谋攻击: 即使所有群成员相互串通,他们也不能产生一个合法的不能被跟踪的群签名。
如何实现群签名呢?
入群:群成员在入群之前都会向群处理进行申请入群,通过后,申请人会和群处理员达到交互式协议,该协议可生成群成员的私钥。群处理员对该密钥进行签名,并颁发给申请人,结束入群。群成员群处理员将群公钥对外揭露。
签名:群成员通过自己的群密钥和群公钥对消息进行签名,得到群签名。
验证:通过输入群公钥和群签名用揭露的某种验证方法进行验证,返回值只有真假,验证者无法计算得到签名者是群公钥里的详细人员,只知道该签名者归于群公钥里的,可以代表集体。
寻找:群处理员可以通过群签名得到详细是哪个群成员进行签名的。
群签名是一个中心化的签名结构,该结构的算法都是群处理员定的,形成签名者的隐私没有做到真实的保证。
群签名的应用
在公共资源的管理,重要军事情报的签发,重要,领导人的选举,电子商务重要新闻的发布,金融合同的签署等事务中,群签名都可以发挥重要作用。比如群签名在电子现金系统中可以有下面的应用:可以利用群盲签名来构造有多个银行参与与发行电子货币的、匿名的、不可跟踪的电子现金系统。在这样的方案中有许多银行参与这个电子现金系统,每一个银行都可以安全的发行电子货币。这些银行形成一个群体受中央银行的控制,中央银行担当了群管理员的角色。