群签名方案-CS97

基础知识


群签名的安全性要求

1) 匿名性(Anonymity)

     给定一个群签名后,对除了唯一的群管理员以外的任何人来说,确定签名者的身份是不可行的,至少在计算上是困难的。

2) 不关联性(Unlinkability)

     在不打开签名的情况下,确定两个不同的签名是否为同一个群成员所签的是不可行的,至少在计算上是困难的。

3) 不可伪造性(Unforgeability)

     只有群成员才能产生有效的群签名。其他任何人包括群管理员也不能伪造一个合法的签名。

4) 可跟踪性(Traceability)

     群管理员在发生纠纷的情况下可以打开一个签名来确定出签名者的身份,而且任何人都不能阻止一个合法签名的打开。

5) 正确性(Correctness)

     当验证者检验一个签名时,一个合法的群成员按照签名算法产生的群签名一定能够通过验证算法。

6) 抵抗联合攻击(Coalition-Resistance)

     即使一些群成员串通在一起也不能产生一个合法的不能被跟踪的群签名。


群签名的一般流程

1. 初始化

群管理者建立群资源,生成对应的群公钥(Group Public Key)和群私钥(Group Private Key)群公钥对整个系统中的所有用户公开,比如群成员、验证者等。

2. 成员加入

在用户加入群的时候,群管理者颁发群证书(Group Certificate)给群成员

3. 签名

群成员利用获得的群证书签署文件,生成群签名

4. 验证

同时验证者利用群公钥仅可以验证所得群签名的正确性,但不能确定群中的正式签署者

5. 打开

群管理者利用群私钥可以对群用户生成的群签名进行追踪,并暴露签署者身份




CS97方案简介

     CS97方案是有 Jan Camenisch 和 Markus Stadler 两个人在97在“Efficient Group Signature Schemes For Large Groups”这篇论文中提出的方案,其实这篇论文提出了好几个方案,由于自己能力有限,本文只讲解论文中最简单的一个方案。


CS97方案的几个特点


CS方案的流程




CS97方案五个步骤

  1. 系统初始化

    群管理员GM获取下列值

    RSA公钥对 (n, e)

    循环群G,g为生成元,n为G的阶

    系统安全性参数a,λ(群成员私钥长度),ε

    公开参数 (n, e, G, g, a, λ, ε)

    群管理员保存RSA私钥对(n, d)


  2. 成员加入

    1. 新成员Alice选择私钥x

    2. Alice计算

    i.   y = a^x (mod n)
    ii.  z = g^y

    3. Alice发送y、z和自己对z的个人签名给群管理员GM,并使用知识签名证明自己知道满足y=a^x(mod n)的x

    4. GM验证Alice的y和z的合法性,验证Alice知道x

    5. GM保存(y, z)用于日后打开群签名

    6. GM生成Alice的成员证书 v = (y + 1) ^ d (mod n);并发送 成员证书 v 给 Alice

    7. Alice验证 v 的正确性


  3. 成员进行群签名



  4. 验证群签名

    验证群签名只需用到 双离散对数的知识签名(skloglog),和离散对数的e次方根的知识签名 (skrootlog) 就可以了。

  5. 打开群签名

    有上面的步骤三(3.成员进行群签名)可知: z' = g' ^ y ;所以群管理员只需遍历所有的群成员y,找到使等式成立的y就可以知道是哪个群成员做的群签名。

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值