1、一种高效群签名的改进及成员撤销【摘要】如何进行安全高效的签名以及如何安全有效的进行成员撤销是群签名走向实际应用面临的两大难题。文章参考现有的一种高效的群签名方案,通过详细分析该方案的优点和不足,提出了一种改进方案,同时利用公钥状态列表和可信时戳提出了一个前向安全的群成员撤销方案。 【关键词】数字签名 群签名 成员撤销 匿名性 一、引言 群签名(group signature) 是 Chaum 和 Heyst 在 EUROCRYPT91 上首先提出的。群签名就是允许任何群成员代表群进行匿名签名,如发生争执,群管理员能够揭示签名者的真实身份,区分两个不同的群签名是否来自于同一个人在计算上是不可行的
2、。 基于强 RSA 假设,张键红在文献1中给出了一种高效的群签名方案,该方案的突出特点是签名和验证的效率很高,比目前最好的 ACJT 方案计算量还要小。由于没有采用知识签名作为签名和验证算法的基本构件,从而大大提高了签名和验证的效率。在该方案中,群成员的加入需要获得群管理员 GM 和撤销中心 RC 的合作颁发资格证书,群管理员和撤销中心各拥有一部分群成员的身份信息,当遇到争议时,由撤销中心负责打开群签名来判断签名者的身份。但该方案中撤销中心 RC 并没有涉及到成员撤销问题的解决,因此本文在该方案的基础上提出一种改进的高效群签名方案。 二、改进方案 (一)系统参数建立。 首先由群管理员 GM 选
3、取五个大素数 p1,p2,f,p1p2,且满足p1=2fp1和 p2=2fp2+1。计算 nG=p1p2,随机选择一个整数 eG 满足gcd(eG,(nG) )=1,计算 dG 满足 eGdG=1mod(nG) ,其中(nG)是欧拉函数,gZ*nG 是一个阶数为的元素,h(?)是一个无碰撞的哈希函数,SPK 表示知识签名。群管理员 GM 公开参数(nG,f,g,eG,h(?) ,yG,IDG) ,其中 yG 为群管理员公钥,yG=gxGmodnG,xGZ*fxG,IDG 表示群管理员的身份。 (二)群成员加入。 成员 Bob 要加入该群,首先随机选择 kZ*f,秘密保存 k,并计算其身份 ID
4、B=gkmodnG 和 =SPK:IDB=g() ,发送二元组(IDB,)给群管理员 GM,其目的是向群管理员证明他知道秘密参数 k和提交身份。GM 通过验证知识签名 的正确性后,随机选择一个整数Z*f,并计算:rG=gmodnG,sG=+rGxGh(IDB)modf,wG=(IDGrGyGrGh(IDB)IDB)-dGmodnG,并通过秘密信道发送(rG,sG,wG)给 Bob。 Bob 接到(rG,sG,wG)后,验证 gsG=rGyGrGh(IDB) ,wG-eG=IDGgsGIDBmodnG:,是否成立,如果成立就接收(rG,sG,wG)作为自己的成员资格证书。 (三)群签名的产生。
5、群成员 Bob 要对消息 m 生成群签名,首先随机选择 q1,q2R,然后计算:Z1=q2eGgq1modnG,u=h(Z1,m) ,r1=q1+(sG+k)umodf,r2=q2wGumodnG 签名结果即为(u,r1,r2) 。 (四)群签名的验证。 验证者得到签名后(u,r1,r2) ,为验证签名的正确性,计算:Z1=IDGur2eGgr1modnG,u=h(Z1,m) ,并验证是否成立,如果成立则认定其为一个有效的群签名。 (五)群签名的打开。 当发生争议的时候,群管理员可以打开一个签名来确认签名者的身份。由于群管理员保存着每个群成员的身份信息(IDB,rG,sG,wG) ,对一个群签
6、名(u,r1,r2) ,群管理员可以通过如下计算来确定签名者的身份: =1/umod(nG) ,=IDGugr1modnG,IDB=(gr1/gusG)/wGeGmodnG 通过检查 IDB 和 gsG 便可确定签名者的身份。 (六)群成员的撤销。 本文采用公钥状态列表(Public-key State List PKSL)和可信时戳(Trusted TimeStamp)安全有效的实现了群成员的撤销,并实时公布公钥状态列表,每有变化就像所有有效群成员发布最新的 PKSL。PKSL 格式如下: 序号 成员身份 启用时间 废除时间 i IDB Tli T2i 当成员身份有效时,其废除时间取一个足够
7、大的数。 三、安全性分析 匿名性:本方案中群签名形式为(u,r1,r2) , 是一个哈希值具有随机性 r1,r2 中都含有随机数,因而 r1,r2 都具有随机性;不可能从u,r1,r2 得到签名者的任何信息,所以任何人(除签名者以外) 都无法从群签名中得到关于签名者的相关信息。 不相关性:由于 u,r1,r2 均具有随机性,使得即使是同一个成员对同一条消息 m 进行两次签名,其签名结果也互不相同。因此想要从两个不同的群签名中来决定是否来自于同一个人,在理论上是不可能的。 不可伪造性:由于 r1 中包含了群成员自己的私钥 k,因此尽管伪造签名者可以成功的伪造 u 和 r2,但是他无法成功的伪造一
8、个 r1 通过验证阶段,因此伪造一个有效的群签名在计算上是不可行的。 抵制联合攻击:对两个不同的群成员而言,不可能成功的伪造一个群签名,由于他们要想联合伪造一个群签名等价于伪造一个 ElGmal 签名。因为,从群成员的加入阶段可知,每一个群成员的证书实质是一个对他身份 ID 进行了一个 ElGmal 签名(变体) 和群管理员对群成员身份 ID 的 RSA 签名。因 ElGmal 签名的不可伪造性,所以可以得到两个不同的群成员不可能伪造一个有效的群签名。 四、总结 本文对张键红提出的一种高效的群签名方案进行了改进,并在改进方案中加入了一种安全有效的成员撤销方案,使其更适用于实际应用。详细分析表明,改进后的方案仍然是高效的,由于本方案在签名、验证、打开等过程中的计算复杂度与群成员的个数无关,故所要求的计算量小,适合大的群体使用。 参考文献: 1张键红,伍前红, 邹建成,王育民.一种高效的群签名J.电子学报,2005;33(6). 2施荣华.一种多重密钥共享认证方案J.计算机学报,2003; 26(5). 3施荣华.一种基于不同签名授权的组签名方案J.小型微型计算机系统,2003; 24(3).