群签名方案CS97

摘要:
合法组成员根据签名算法生成的组签名必须通过验证算法。CS97方案的几个特点首先,组公钥和签名长度与组成员的数量无关。首次在群签名方案(http:,
基础知识

群签名的安全性要求

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第1张


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


CS97方案的几个特点


CS方案的流程

群签名方案CS97第2张


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. 成员进行群签名

    群签名方案CS97第3张

  4. 验证群签名

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

  5. 打开群签名

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

免责声明:文章转载自《群签名方案CS97》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇nginx 设置ip地址访问,但是设置域名访问不了第一章Android系统移植与驱动开发概述下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Web基础开发最核心要解决的问题

Web基础开发要解决的问题,往往也就是那些框架出现的目的 - 要解决问题。 1. 便捷的Db操作; 2. 高效的表单处理; 3. 灵活的Url路由; 4. 合理的代码组织结构; 5. 架构延伸 缓存、安全、DB扩展等 6. 丰富的类库; 每种框架的哲学,决定了它最终的用户群体。 其中关于表单处理,因为同时涉及前后端编码,往往是开发中最繁杂、最耗时的工序。...

C#笔试题目(综合版样题) (转载)

C#笔试题目(综合版样题)       C#/.Net/数据库笔试资料题记:一年一度的招聘黄金时间来临了,本人决定整理C#.Net的资料为本人和园子里的朋友共享! C#资料(一)1.静态成员和非静态成员的区别?答:静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量,在对象被实...

Java加密与解密笔记(三) 非对称加密

非对称的特点是加密和解密时使用的是不同的钥匙。密钥分为公钥和私钥,用公钥加密的数据只能用私钥进行解密,反之亦然。 另外,密钥还可以用于数字签名。数字签名跟上文说的消息摘要是一个道理,通过一定方法对数据内容进行处理得到一个签名,查看这个签名是否与对方传递的签名一致。 在非对称加密中用密钥来指公钥和私钥。   RSA RAS是最早的非对称签名,是1977年由罗...

远程访问及控制

一:配置服务端 添加测试账号,aaa 1:服务监听选项 [root@localhost ~]# setenforce 0 注意:如果不关闭selinux,不能修改端口号 [root@localhost ~]# vi /etc/ssh/sshd_config 修改      17 Port 22                 \监听的端口      19...

SVN提交注意点

网上看到一篇blog,发现总结得不错,共享一下 http://www.blogjava.net/sealyu/archive/2009/09/03/293717.html  一.提交之前先更新 1.         SVN更新的原则是要随时更新,随时提交。当完成了一个小功能,能够通过编译并且自己测试之后,谨慎地提交。 2.         如果在修改的期间...

如何防止同一同时用户多次登录

http://www.cnblogs.com/guojin705/archive/2008/01/26/1054199.html 这里指的单点,泛指在WEB服务端,一个账户同一时刻只能存在一个票据!大家开发中可能都碰到的一个问题,怎么使同一个用户,在同一时间内只允许登录一次。很多人都会想到在数据库中用一个标识字段,登录进去置1,退出置0,登录时判断这个字段...