首页> 中国专利> 具有门限追踪性的民主群签名方法

具有门限追踪性的民主群签名方法

摘要

一种属于电子商务应用领域的具有门限追踪性的民主群签名方法,本发明中,步骤一,系统由n个成员构成一个群体,可信中心生成系统所需所有公开参数,所有公开参数由所有群成员共享;步骤二,群成员ID

著录项

  • 公开/公告号CN101267308A

    专利类型发明专利

  • 公开/公告日2008-09-17

    原文格式PDF

  • 申请/专利权人 上海交通大学;

    申请/专利号CN200810036550.3

  • 申请日2008-04-24

  • 分类号H04L9/32;H04L9/30;

  • 代理机构上海交达专利事务所;

  • 代理人王锡麟

  • 地址 200240 上海市闵行区东川路800号

  • 入库时间 2023-12-17 20:45:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-06-18

    未缴年费专利权终止 IPC(主分类):H04L9/32 授权公告日:20100811 终止日期:20130424 申请日:20080424

    专利权的终止

  • 2010-08-11

    授权

    授权

  • 2008-11-05

    实质审查的生效

    实质审查的生效

  • 2008-09-17

    公开

    公开

说明书

技术领域

本发明涉及的是一种电信技术领域的方法,特别涉及一种具有门限追踪性的民主群签名方法。

背景技术

电子文档包括在计算机上生成或存储的一切文件,如电子邮件、作品、合同、图像等。数字签名用于认证信息,安全地将电子文档的内容绑定于签名人,更精确地说,绑定于签名人的公开密钥。只有真正的签名人才能够产生有效签名,任何人都能够验证签名人产生的签名从而确信该文档确实是由签名人签署的。数字签名是实现电子商务、电子政务等信息化服务的核心技术。在实际应用中,电子事务一般可以分解为一系列相互之间具有时间顺序或因果关系的操作步骤,每个操作步骤由相应的的业务部门完成。在计算机网络环境下,可将处理操作步骤的计算机视为节点。以数字签名为例,有的节点生成系统参数,有的节点执行签名操作,有的节点执行签名验证操作,等等。

随着对数字签名研究的不断深入以及电子商务、电子政务的快速发展,简单模拟手写签名的一般数字签名已不能完全满足各种现实应用需要。而群签名就是一种特殊的数字签名体制,一个群签名方案一般包含一个群管理者和若干群成员,他们一起构成的集合称为群。群管理者负责产生系统参数、群公钥、群私钥,同时要为群成员产生签名私钥或是群成员身份证书。群成员用自己掌握的签名私钥代表整个群体进行匿名签名;验证者只能验证签名是由群体中的成员签的,但不能确定是哪个成员,此即群签名的匿名性;在发生争端的情况下群管理者可以打开签名来揭露签名人的身份,使得签名人不能否认自己的签名行为,此即群签名的追踪性。群签名是一种同时提供匿名性和可跟踪性的技术,其匿名性可为合法用户提供匿名保护,其可跟踪性又使得可信机构可以跟踪违法行为。

群签名的概念是由Chaum和Heyst在“Group signatures.In:Eurocrypt1991,LNCS 547,pp.257-265”(群签名.欧洲密码学会1991年会)中提出的。自从群签名的概念出现以来,研究者基于不同的困难假设构造了许多群签名体制。然而,这些体制均存在一个共同的缺陷:系统必须使用一个可信的群管理者才可实现追踪性。一旦这个集权式的群管理者不可信,整个系统的安全性无从保障。

经对现有技术文献的检索发现,Manulis在文“Democratic group signatureon example of joint ventures,ACM Symposium on Information,Computer andCommunications Security.ACM Press,2006.”(民主群签名-以合资企业为例,ACM信息、计算机与通信安全研讨会2006年会)中提出民主群签名的概念。在一个民主群签名体制中不存在群管理者,仅由若干个成员一起构成群,群中任意成员可以利用自己的私钥代表该群产生群签名。在发生争端的情况下,群中任一成员可以对给定的民主群签名执行追踪操作,以揭露产生该签名的真正群成员的身份。民主群签名特别适用于信息化时代下的企业联盟等场景,但该民主群签名方法的一个主要缺点是群体中任一成员都能够执行追踪操作,这是一个非常松的要求,很容易带来滥用追踪能力等方面的问题。

发明内容

本发明针对上述现有技术的不足,提供了一种具有门限追踪性的民主群签名方法,该方法巧妙利用公开可验证的秘密分享和面向群体签名技术,实现了不需要群管理者、同时若干个群成员一起才能够具备追踪能力的民主群签名体制。在一个由n个群成员构成的群体中,给定某个民主群签名,仅当不少于t(1≤t≤n,门限值)个群成员一起协作计算才能够追踪出产生该签名的签名人真实身份,从而避免了追踪能力滥用的可能性。与环签名不同,该方法提供一种可撤销的匿名性。不同的应用系统可以根据安全需要自适应地决定门限值t的大小。

本发明是通过如下技术方案实现的,本发明包括如下步骤:

步骤一,系统由n个成员构成一个群体,群体U={ID1,ID2,...,IDn},其中IDi为群成员的身份,可信中心生成系统所需所有公开参数,这些参数由所有群成员共享;

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

步骤二,群成员IDi(i=1,2,…,n)根据步骤一生成的公开参数,生成自己的公钥yi和私钥xi,将公钥在可信中心处注册并公开,私钥由自己秘密保存。

步骤三,群体U中某一群成员IDk(1≤k≤n)利用私钥和U中所有群成员的公钥代表群体U对消息m产生民主群签名,一个民主群签名是一个二元组(share,sig),share为秘密分享部分的输出,sig为数字签名部分。

所述产生民主群签名,具体为:

首先,群成员IDk以秘密分发者的身份执行一个公开可验证的秘密(t,n)分享方案,在全体群成员中实现对指数形式的秘密值hs的秘密(t,n)分享,记其输出为share,其中:t和n分别为门限值和群体中成员个数,h为公开参数,s是仅由分发者知晓的随机数;

然后,群成员IDk使用自己的私钥xk、分享的秘密hs及随机数s对该消息m产生数字签名,记其输出为sig,作为sig的一部分,签名人使用秘密值hs加密自己的身份,即计算hsyk

最后,将秘密分享部分和数字签名部分组成一个二元组(share,sig)作为群成员IDk代表群体U对消息m最终产生的民主群签名。

步骤四,任意签名接收者收到群体U对消息m产生的民主群签名(share,sig)后,判定该签名是否有效,即决定是否确实为群体U的民主群签名。

所述判定该签名是否有效,具体为:

首先,签名接收者验证签名人产生的秘密分享部分share是否有效,即签名人是确实在群体U中分发了某个正确的形如hs的秘密值,如果无效,则拒绝该签名;如果有效,进行下面步骤;

然后,验证数字签名部分sig是否有效,即签名人是确实使用了自己的私钥和群体U中所有成员的公钥产生了sig,如果有效,则认为该民主群签名有效,即(share,sig)确实是由群体U产生的。

在验证过程中,群体U中的所有成员均处于对等地位,从而验证者不能以大于的概率猜测U中的哪个成员输出了该签名。但群体U中适当个数的群成员一起协作执行下面的步骤可以做到这一点。

步骤五,在签名人的身份发生争端的情况下,由群体U中若干个群成员协作交互,恢复出产生该签名的真正签名人的身份。

所述恢复出产生该签名的真正签名人的身份,具体为:以签名验证者的身份利用步骤四验证该签名是否有效,如果无效,则拒绝该签名;否则,以协作交互的方式重构由签名人在群体U中分发的秘密值hs,利用该秘密值执行解密运算y=(hsyk)(hs)-1,在群体U={ID1,ID2,...,IDn}中查找公钥等于y的群成员即为产生该签名的真正签名人。

所述若干个群成员,其人数大于等于t,t为门限值,1≤t≤n,在不同的应用系统中,可以根据安全需要自适应地决定t的大小。

与现有技术相比,本发明具有如下有益效果:

1、本发明不需要集权式的群管理者,只由所有群成员一起构成一个群体,群体中所有成员之间的地位都是对称的,从而消除了集权式的实体;

2、本发明中签名人的私钥xk只有签名人IDk自己掌握,不知道私钥的人无法产生合法的民主群签名,所以群体外的用户无法产生该群体的民主群签名;

3、本发明中签名人产生的民主群签名中含有对自己身份的加密hsyk,如果他加密的是错误的身份信息,则签名无法通过验证,所以避免群体中的任一成员假冒群体中的其他成员产生一个有效的民主群签名;

4、发生争端时,当且仅当不少于适当个数t的群成员通过协作计算才能够恢复出真实签名人的身份,少于t个群成员欲执行追踪操作是计算上不可行的,群体外的用户要执行追踪操作是计算上不可行的;

5、不同的应用系统可以根据安全需要自适应地决定门限值t的大小,从而使得本发明方法具有较大的灵活性;

6、本发明具有形式化意义上的安全性论断,即是基于已知难题的计算复杂度安全。

附图说明

图1是本发明的工作流程图;

图2是本发明中产生民主群签名的流程图;

图3是本发明中验证民主群签名的流程图;

图4是本发明签名人身份恢复过程流程图。

具体实施方式

下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

如图1所示,本实施例包括如下步骤:

步骤一,可信中心生成系统公开参数,即根据给定安全参数λ,系统可信中心生成系统参数G,q,g,h,H,其中q是长为λ比特的素数,G为q阶乘法循环群,g和h为G上的任意两个生成元,H:{0,1}*→Zq为密码学意义上安全的哈希函数,其中Zq={0,1,...,q-1},G,q,g,h,H一起构成系统的公开参数;

步骤二,生成用户公钥、私钥,即群成员IDi选取随机数xi∈Zq作为私钥,计算yi=hxi作为其公钥,该用户将自己的公钥公开注册于可信中心以便系统中其他用户可以在可信中心处检索;在网络环境下,这些用户可以是处理某些特定事务的计算机或节点;

拥有公私钥(xi,yi),i=1,...,n的n个用户构成一个群体U={ID1,ID2,...,IDn},U中的每个用户均有权以群体的名义对任意消息产生民主群签名。

步骤三,如图2所示,某一群成员IDk(1≤k≤n)作为签名人代表群体U对消息m产生民主群签名,比如合资企业的某个成员要代表合资企业发布支付现金命令,具体如下:

第一步,计算秘密分享:签名人IDk以秘密分发者的身份执行一个公开可验证的秘密分享方案,实现对秘密值hs的秘密(t,n)分发,具体为:

①在集合Zq中选择随机数s,wi,1≤i≤n和一个Zq上常数项为s的t-1次随机多项式p(x)=Σj=0t-1αjxj,满足条件α0=s,签名人IDk计算并广播自己对该多项式的承诺,即τ=gα0,τj=gαj,1jt-1,利用这些承诺值计算χi=Πj=0t-1τjij,i=1,2,...,n,其中τ0=τ;

②为使得群成员最终能够恢复出秘密值hs,该签名人计算多项式值p(i)并用该值加密第i个成员的公钥,即计算并公布ηi=yip(i),1≤i≤n;

③利用所选择的随机数、所有群成员的公钥及公开参数计算ai1=gwi,ai2=yiwi,利用所选择的哈希函数计算哈希值e=H(χ1,...,χn,η1,...,ηn,a11,...,an1,a12,...,an2)并由该哈希值和多项式值获得响应值ri=wi-p(i)e,1≤i≤n;

④作为秘密分享部分的输出,签名人置share=(τ,τ1,...,τt-1,η1,...,ηn,e,r1,...,rn)。

此处,要求签名人对不同的消息执行民主群签名操作时需要使用不同的随机数s以便在群体U中分发不同的秘密值hs,若分发相同的秘密值将可能导致意想不到的潜在威胁。

任何人在收到share后都能够确信秘密分发者是正确地产生了其输出结果,秘密分发者要想欺骗秘密接收者接受一个假秘密值在计算上是不可行的。

第二步,计算数字签名:签名者利用所分发的秘密和自己的私钥对消息m产生数字签名,具体为:

①签名人使用公开参数、自己的公钥和私钥以及分享的秘密计算γ=gxk,c=hsyk;

②选择随机数rk1,rk2,zi1,zi2,ρi∈Zq,i=1,2,...,n,i≠k,并利用哈希值li1=H(m,τ,cyi),li2=H(m,γ,yi)和为其他成员选择的随机数为这些群成员计算承诺值ui1=(gli1h)zi1(τli1cyi)ρi,ui2=(hli2g)zi2(yili2γ)ρi,i=1,2,...,n,ik;

③签名人利用自己的随机数和哈希函数值lk1=H(m,τ,hs),lk2=H(m,γ,yk)计算承诺值uk1=(glk1h)rk1,uk2=(hlk2g)rk2,并利用群体内所有成员的承诺值计算自己的挑战值ρk=H(m,τ,c,γ,u11,...,un1,u12,...,un2)-Σjkρj,zk1=rk1ks,zk2=rk2kxk,签名人置sig=(γ,c,ρ1,...,ρn,z11,...,zn1,z12,...,zn2)作为数字签名部分。

签名人在群体U中分发的秘密值hs以及其中的随机数s在签名过程中均被使用到,对不同的消息执行签名时使用的整数s应该是随机的,否则公开可验证秘密分享部分与签名人使用自己的私钥计算签名部分就是相互孤立开来的,这容易带来潜在攻击,本实施例中使得这些攻击是不可行的。

签名人以自己的私钥和群体U中所有成员的公钥计算出签名部分sig,这种方法使得任意签名接收者获得签名sig后能够确信是群体U产生了该签名,但是要想精确知晓群体U中哪个成员产生了sig在计算上是不可行的。由于签名人在计算中使用了自己的私钥,而这个私钥只有他自己才知道,所以不知道该私钥的人无法产生这样的签名。

第三步,输出民主群签名:将秘密分享部分和数字签名部分组成一个二元组(share,sig)作为群成员IDk代表群体U对消息m最终产生的民主群签名。

步骤四,民主群签名有效性验证:任何人均可以判定步骤三所产生的民主群签名是否确实是由群体U中的某个群成员代表整个群体U产生的,如图3所示,具体如下:

①验证秘密分享部分是否有效:利用签名人对多项式的承诺值计算χi=Πj=0t-1τjij,i=1,2,...,n,其中τ0=τ,进而重构ai1=griχie,ai2=yiriηie,最后检查等式e=H(χ1,...,χn,η1,...,ηn,a11,...,an1,a12,...,an2)是否成立,如果不成立,则意味着原签名人对hs的秘密分享不正确从而拒绝该签名,否则执行步骤②;

②验证数字签名部分是否有效:验证者利用群体中所有成员的公钥计算哈希值li1=H(m,τ,cyi),li2=H(m,γ,yi),进而重构承诺值ui1=(gli1h)zi1(τli1cyi)ρi,ui2=(hli2g)zi2·(yili2γ)ρi,i=1,2,...,n,最后检查等式Σi=1nρi=H(m,τ,c,γ,u11,...,un1,u12,...,un2)是否成立,如果不成立,则拒绝该签名,否则接受该民主群签名为有效。

由于只有群体U中的所有成员的公钥才能够使得该等式成立,通过这样的计算验证者能够确信签名来自群体U。但是,由于在这一验证过程中群体U中所有成员的地位都是对称的,所以,验证者并不能确切知道群体U中的哪一个成员产生了这个签名。这正是本方案能够提供签名者匿名性的原因。

步骤五,民主群签名追踪:在发生争端的情况下,比如一个签名通过了步骤四的验证过程,但是群体U中的所有成员均否认是自己产生了该签名,由群体U中不少于t个成员一起执行本步骤,以自己的私钥为输入,如图4所示,揭晓产生该签名的签名人真实身份,具体为:

①验证民主群签名是否有效:t个成员{ID1,ID2,...,IDt}以签名验证者的身份验证该签名是否有效,如果该签名无效,则意味着该签名不是群体U产生的,所以不需要由群体U执行任何追踪计算,否则继续下面步骤;

②重构秘密:群成员IDi(i=1,...,t)利用自己的私钥为输入计算并公布ξi=ηixi-1;参与运算的群成员根据这些节点广播的数据ξi执行拉格朗日插值运算,即计算λi=Πj=1,...,t,jijj-i,i=1,...,t,进而重构出由签名人分发的秘密值μ=Πi=1tξiλi;

③恢复签名人身份:利用步骤②中的秘密值执行解密运算并恢复出签名人的身份。

所述的解密运算,即任一节点都可以利用恢复出的秘密值的逆元μ-1与密文c做乘积运算y=cμ-1,在群体U={ID1,ID2,...,IDn}中查找公钥等于y的群成员即为产生该签名的真正签名人。

本实施例中不需要集权式的群管理者,只由所有群成员一起构成一个群体,群体中所有成员之间的地位都是对称的,从而消除了集权式的实体;群体外的用户无法产生该群体的民主群签名;避免了群体中的任一成员假冒群体中的其他成员产生一个有效的民主群签名;发生争端时,当且仅当不少于适当个数t的群成员通过协作计算才能够恢复出真实签名人的身份,少于t个群成员欲执行追踪操作是计算上不可行的,群体外的用户要执行追踪操作是计算上不可行的;本实施例具有形式化意义上的安全性论断,即是基于已知难题的计算复杂度安全。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号