zoukankan      html  css  js  c++  java
  • 群签名方案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就可以知道是哪个群成员做的群签名。

  • 相关阅读:
    vscode 自动换行 关闭
    QGIS geojson 矢量操作 稀释 抽稀 压缩 边界抽稀
    vscode 关闭烦人的 tooltip 提示
    sql函数汉字转拼音
    sql 排名函数
    客户端文件下载 download.js
    Oracle 创建 DBLink 的方法
    RDLC分组序号
    sql server中使用函数验证身份证号码是否合法
    oracle导出数据库exp时报错,ORA12154 TNS: 无法解析指定的连接标识符
  • 原文地址:https://www.cnblogs.com/java20130722/p/3207075.html
Copyright © 2011-2022 走看看