一种适合大群组的群签名方法转让专利

申请号 : CN200910227691.8

文献号 : CN101800641B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 耿永军邵国金何宗耀薛冰周二强李俊

申请人 : 河南城建学院

摘要 :

本发明公开了一种适合大群组的群签名方法,包括系统参数生成、新成员加入、群签名生成和验证群签名,由群可信中心为群管理员选取群私钥和群公钥;新成员加入群组时,由新成员随机选取(xA,z),新成员保存xA作为其私钥,将z发送给群管理员,群管理员用自己的私钥对z签名,签名结果为(r,s,w),群管理员保存成员身份信息(w,z),将(r,s,w)发送给新成员;新成员收到(r,s,w)后用群公钥e、n验证(r,s,w)是否有效,若验证通过,新成员接受(s,w)为成员证书,新成员加入成功;群中任一个成员可利用成员证书和自己的私钥xA根据签名算法,对请求签名者的消息m生成群签名(u,t,s1,s2);由验证者得到签名(u,t,s1,s2)后,计算验证等式。本发明加入新成员时无需更新群公钥和成员私钥,节约了时间,在打开签名时可追踪签名者身份。

权利要求 :

1.一种适合大群组的群签名方法,包括系统参数生成、新成员加入、群签名生成和验证群签名,其特征在于:包括如下步骤:步 骤 一,系 统 建 立, 群 可 信 中 心(TC)生 成 系 统 参 数 过 程 如下:选 取 三 个 素 数p, q, f 和 RSA 模 数n=pq,同 时 选 取e 和d 满 足 ;令g 是 中的一个f 阶元素, 是Hash函数: , (k=160);选取随机数 ,计算 ;

群可信中心(TC)将 发给群管理员(GM)作为群私钥,然后公开 为群公钥;

这里对三个素数(p, q, f)的选取方法做进一步说明:选取 中的一个f阶元素g 按下面方法进行,随机选取5个素数 使满足,

令 ,其中 ,若g>1,则g 的阶为f;因此,存在有效的算法寻找中的一个f阶元素g;

所述群可信中心、群管理员及各个群成员均视为处理或联合处理特定操作步骤的计算机或结点;

步骤二,新成员加入,新成员首先选择私钥 ,通过计算 对 进行承诺,同时计算离散对数 的知识证明p,然后将申请信息连同(z, p)提交给GM;

GM验证离散对数知识证明的正确性之后,按下面步骤为新成员生成成员证书:a. 选择随机数 ,计算 ;

b. 计算 ;

c. 计算 ;

GM将 发送给新成员,同时保存 用于打开群签名;

新成员收到 后验证 是否成立,若验证通过,新成员接受 为成员证书 ;

步骤三,群签名的生成,新成员利用成员证书 和私钥 来对消息m 生成群签名;

新成员选择随机数 ,计算:

得到的群签名为 ;

群签名的验证,当验证者得到签名 后:a. 计算 ;

b. 验证 ;

若等式满足则通过验证;

步骤四, GM打开群签名,由于GM保存有每个成员的身份信息 ,对于任意有效的群签名 ,GM按如下方法揭示签名者的真实身份, ,w与成员身份一一对应。

2.根据权利要求1所述的一种适合大群组的群签名方法,其特征在于:所述方法还包括打开群签名步骤,当产生纠纷时,群管理员来打开群签名,根据群管理员保存的成员身份信息 ,对于任意有效的群签名 ,群管理员揭示出签名者的真实身份w,。

说明书 :

一种适合大群组的群签名方法

技术领域

[0001] 本发明涉及电子商务/政务中的数字签名方法,尤其是涉及群组成员数目众多的一种适合大群组的群签名方法。

背景技术

[0002] 随着网络技术和电子商务的发展,数字签名技术得到深入的研究,而且很多新的应用环境要求数字签名能支持一些特殊的功能。群签名是指所有的签名者组成一个群体(简称群),群中的每个成员可以代表该群匿名地进行签名,每个群由一个可信任的群权威机构进行管理,负责群中成员的组成和更新,并且在一旦出现争议时可以根据某些事先设定的协议进行签名者身份的验证等工作,通常将这种权威机构中的人称为群的管理者。群签名可以公开验证,任何一个持有群公钥的人都可以验证一个群签名的有效性,但是群签名必须是匿名的,除了群管理者外,没有人能发现签名者的真正身份。并且对多个群签名而言,应该从计算上很难得出它们是否是由同一个人签名的,它可以用于单位里的新闻发布、价格列表的认证、电子合同签署等。机构可以通过群签名来隐藏签名者的身份和单位内部的组织结构,在需要承担责任时可以查出签名者。目前群签名的研究和应用范围也越来越广泛,包括电子支付、可信计算等领域。
[0003] 目前许多有效的群签名方法几乎都是基于ACJT方法而提出的,ACJT方法最突出的优点是在效率方面,大大优于其它典型的群签名方法。但ACJT方法在签名速度、计算量、通信量和效率方面不适合于大的群组,于是研究人员又提出了一种不依赖知识签名适合于大群组的群签名方法,该群签名方法在签名、验证签名计算速度和新成员加入群组方面的效率大大改进,但该方法在打开签名追踪签名者身份时存在问题。

发明内容

[0004] 有鉴于此,本发明的目的在于提供一种适合大群组的群签名方法,具有固定长度的群公钥和群签名,加入新成员时无需更新群公钥和成员私钥,节约了新成员加入群组、签名、验证签名和打开签名等方面的时间,在打开签名时可追踪签名者身份。
[0005] 本发明采用以下技术方案:
[0006] 一种适合大群组的群签名方法,包括系统参数生成、新成员加入、群签名生成和验证群签名,其特征在于:包括如下步骤:
[0007] 步骤一,系统参数生成是由群可信中心为群管理员选取群私钥d、x和群公钥(n,e,f,g,y),群私钥由群管理员保存,群公钥公开被所有群组成员和验证者所共享;
[0008] 所述群可信中心、群管理者及各个群成员均视为处理或联合处理特定操作步骤的计算机或结点;
[0009] 步骤二,新成员加入群组时,由新成员随机选取(xA,z),新成员保存xA作为其私钥,将z发送给群管理员;群管理员用自己的私钥对z签名,签名结果为(r,s,w),群管理员保存(w,z),将(r,s,w)发送给新成员;新成员收到(r,s,w)后用群公钥e、n验证(r,s,w)是否有效,若验证通过,新成员接受(s,w)为成员证书certA,新成员加入成功;
[0010] 步骤三,群中任一个成员可利用成员证书certA和自己的私钥xA根据签名算法,选择随机数 对请求签名者的消息m生成匿名群签名(u,t,s1,s2);
[0011] 步骤四,验证群签名是由验证者得到消息m的签名(u,t,s1,s2)后,计算验证等式,若等式满足,则通过验证签名有效,否则无效。
[0012] 进一步,所述方法还包括打开群签名步骤,当产生纠纷时,群管理员来打开群签名,根据群管理员保存的成员身份信息(w,z),对于任意有效的群签名(u,t,s1,s2),群管理d -1员揭示出签名者的真实身份w,w=(s2)t (mod n)。
[0013] 进一步,所述步骤二中, ,g是Zn*中的一个f阶循环子群生成元。
[0014] 进一步,所述步骤二中,群管理员计算w是通过w=(gsz)d(mod n)完成,新成员收到群管理员的签名(r,s,w)后通过计算等式 验证证书是否合法。
[0015] 进一步,所述步骤三中签名者计算(u,t,s1,s2)中的(s1,s2)是通过计算s1=ξ-u(s+xA+ξe)(mod f),s2=(gξ·w)e(modn)得出。
[0016] 进一步,所述步骤四中,当验证者得到签名(u,t,s1,s2)后,计算等式,验证 ,若通过验证,则是合法签名。
[0017] 本发明的有益效果是:
[0018] 1.不可伪造性,只有群中的成员才可以代表群进行签名。假设存在恶意攻击者,他的目标是伪造能满足验证等式的四元组(u,t,s1,s2)。根据验证等式 和u=H(t′||m),假设H满足随机预言机性质,那么当攻击者随机选择t,s1和u后,计算s2等价于解密一个随机选择的RSA密文,在RSA假设下这是不可行的。因此,方法可以抵制伪造攻击。
[0019] 2.匿名性和可跟踪性。给定了一个签名,群管理者可以打开签名并验证真正的签名者,而签名者是不能阻止群管理者打开一个有效的签名。根据群签名的打开算法,要计算与成员身份一一对应的w值,必须先得到群密钥d,只有群管理员才能完成计算得到w。即d -1 ξ ed -1如下式所示:(s2)t (mod n)=(g w) t (mod n)=w。
[0020] 3.不可关联性。对于两个不同的签名是否是由一个群成员签名的在计算上是比较困难的,若给定任意的两个签名(u,t,s1,s2)和(u′,t′,s′1,s′2),判定这两个签名是否来自于同一个群成员,需要判断这两个签名所使用的证书是否有关联。从签名过程可以看出,签名结果实际上将证书信息s和w进行了概率加密,得到的密文s1和s2与对应的明文信息s和w是不可关联的,除了制定的群管理员外,其不可关联性无法揭开。
[0021] 4.防陷害攻击性,群中的成员或群管理者不能代替群中其他成员签名。假设攻击者是合法的群成员,要伪造一个不可追踪的群签名,从打开签名算法可知,他必须能伪造s e(s′,w′)使满足g′z≡(w′)(mod n),其等价于解RSA问题的困难性;而群管理者不知道群成员私钥,所以也伪造不出合法签名。
[0022] 5.抗联合攻击性。群中部分成员的串通不能产生有效的不能被跟踪的群签名。
[0023] 6.效率高,节约时间。本方法没有使用知识签名,具有固定长度的群公钥和群签名,加入新成员时也无需更新群公钥,打开群签名的效率与群规模无关。从编程仿真结果来看本发明的群签名的成员加入、签名生成、验证和打开操作时间是当前流行的ACJT方法的1/4,具体运行环境如下:Celeron 1.4GHz+760M RAM+Windows XP+VC8.0。实验采用NTL数论库实现,主要对比了新成员加入、群签名产生、群签名验证和群签名打开操作的效率,因此适合于大群体的签名。
[0024] 本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书或者附图中所特别指出的结构来实现和获得。

附图说明

[0025] 图1是本发明的工作流程图;
[0026] 图2是群签名的产生和验证的流程图;
[0027] 图3追踪群签名者身份的流程图。

具体实施方式

[0028] 下面结合附图和实施例对本发明作进一步描述:
[0029] 如图1、图2及图3所示,本实施例包括如下步骤:
[0030] 步骤一,系统建立,可信中心(TC)生成系统参数,选取三个素数p,q,f和RSA模*数n=pq,同时选取e和d满足 令g是Zn 中的一个f阶元素,H(·)是
Hash函数: ,(k=160)。选取随机数 计算y=gx(mod n)。
[0031] 可信中心(TC)将(d,x)发给群管理员(GM)作为群私钥,然后公开(n,e,f,g,y)为群公钥。可信中心(TC)、群管理者(GM)及各个群成员均视为处理或联合处理特定操作步骤的计算机或结点。*
[0032] 这里对三个素数(p,q,f)的选取方法做进一步说明:选取Zn 中的一个f阶元素g可以按下面方法进行。随机选取5个素数p,q,f,p′,q′使满足
[0033] p=2fp′+1,q=2fq′+1,|f|=160.
[0034] 令 ,其中 若g>1,则g的阶为f。因此,存在有效的算法*
寻找Zn 中的一个f阶元素g。
[0035] 步骤二,新成员加入,如果新成员Alice要加入群,首先Alice选择私钥通过计算 对xA进行承诺,同时计算离散对数logg z的知识证明p(参考Schnorr协议),然后将申请信息连同(z,p)提交给GM。
[0036] GM验证离散对数知识证明的正确性之后,按下面步骤为Alice生成成员证书:k
[0037] a.选择随机数 计算r=g(mod n);
[0038] b.计算s=k-xH(z||r)(mod f);s d
[0039] c.计算w=(gz)(mod n)
[0040] GM将(r,s,w)发送给Alice,同时保存(w,z)用于打开群签名。
[0041] Alice收到(r,s,w)后验证
[0042]
[0043] 是否成立,若验证通过,Alice接受(s,w)为成员证书certA。
[0044] 步骤三,群签名的生成,成员Alice利用成员证书certA和私钥xA来对消息m生成群签名。
[0045] Alice选择随机数 计算:
[0046] t=gξ(mod n)
[0047] u=H(t||m)
[0048] s1=ξ-u(s+xA+ξe)(mod f)
[0049] s2=(gξ·2)e(mod n)
[0050] 得到的群签名为(u,t,s1,s2)。
[0051] 步骤四,群签名的验证,当验证者得到签名(u,t,s1,s2)后:
[0052] a.计算
[0053] b.验证
[0054] 若等式满足则通过验证。
[0055] 步骤五,打开群签名,当产生纠纷时,可以由GM来打开群签名。由于GM保存有每个成员的身份信息(w,z),对于任意有效的群签名(u,t,s1,s2),GM按如下方法揭示签名者的真实身份:
[0056] w=(s2)dt-1(mod n)
[0057] 由于w与成员身份一一对应,因此计算出w便可揭示出签名者的真实身份。
[0058] 最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,本领域普通技术人员对本发明的技术方案所做的其他修改或者等同替换,只要不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。