当前位置: 首页 > 专利查询>武汉大学专利>正文

一种基于SM9数字签名算法的环签名生成方法技术

技术编号:23561775 阅读:20 留言:0更新日期:2020-03-25 06:31
本发明专利技术公开了一种基于SM9数字签名算法的环签名生成方法,其特征在于,包括密钥生成中心KGC,签名者Signer,验证者Verifier;其中,KGC负责生成系统内签名用户的用户私钥;设环中的用户数为n,用户群组标识集合记为L={ID

A ring signature generation method based on SM9 digital signature algorithm

【技术实现步骤摘要】
一种基于SM9数字签名算法的环签名生成方法
本专利技术涉及信息安全技术,尤其涉及一种基于SM9数字签名算法的环签名生成方法。
技术介绍
数字签名是一种公钥密码算法,它能够实现传统签名或盖章的功能,以确保信息传输的完整性、真实性和不可抵赖性。随着数字签名的广泛应用,在一些领域需要具有特殊功能的数字签名方案,传统的数字签名并不能满足应用的需求。比如,在电子现金、电子投票、电子选举、匿名通信等具体应用场景中,需要保障签名者身份的匿名性,而传统的签名不具有这种功能。环签名是一种由Rivest等人提出实现匿名性的签名机制。它是一个面向群组的签名,但并不需要群建立过程,也没有群管理员。签名者只需要自发选取一部分成员公钥,再通过自己的私钥来产生一个签名。签名者以及被选取公钥的用户组成了环签名的群组。验证者可以验证签名来自环中个某个用户,任何用户都无法知道签名者的真实身份。环签名最大的特点是具有完全匿名性。因此,它被广泛用于匿名选举、电子货币、密钥分配以及安全多方计算中,而成为了当前的一个研究热点。自环签名的概念被提出后,科研人员提出了一系列基于公钥密码基础设施(PKI)的环签名方案。但是,这类环签名方案面临着证书问题。一方面,随着用户数量增加,证书管理将会占用大量系统资源;另一方面,签名者进行签名时,需要验证环中其他用户的公钥证书,大大增加了计算开销和通信开销。基于身份的环签名是基于身份的公钥密码技术(IBC)与环签名技木的融合,既具有环签名的匿名性和不可伪造性,又避免了用户证书管理问题。SM9标识密码算法是国家密码管理局于2016年3月28日发布的一种标识密码标准,国密标准编号为“GM/T0044-2016SM9标识密码算法”。该标准满足电子认证服务系统等应用需求,并弥补了国产标识密码体制的空白。SM9算法是一种基于椭圆曲线双线性对的标识密码算法,主要包括三个部分:数字签名算法、公钥加密算法、密钥交换协议。科研人员已经提出了多个基于身份的环签名方案,但是没有基于SM9数字签名算法的环签名方案。为此,本专利设计了一个基于SM9数字签名的环签名生成方案。该方案由密钥生成中心(KGC)负责密钥分发,由签名者(Signer)负责自发组建签名群组并完成消息签名,验证者(Verifier)可验证消息签名合法性,并判断签名者是否为环内用户。
技术实现思路
本专利技术要解决的技术问题在于针对现有技术中的缺陷,提供一种基于SM9数字签名算法的环签名生成方法。本专利技术解决其技术问题所采用的技术方案是:一种基于SM9数字签名算法的环签名生成方法,包括密钥生成中心KGC,签名者Signer,验证者Verifier;其中,KGC负责生成系统内签名用户的用户私钥;设环中的用户数为n,用户群组标识集合记为L={ID1,ID2,…,IDn},签名者为用户群组中的第π个用户(1≤π≤n),记其私钥为SKπ,标识为IDπ;该方法包括以下步骤:1)生成待签名消息M的环签名为产生对消息M的环签名σ=(h1,R1,…,Rn),签名者采用以下步骤:S1:随机选取并计算R=[r]P1;其中,为由1,2,,…,N-1组成的整数集合,N为大素数,P1为群G1的生成元,G1是阶为N的加法循环群;S2:计算wπ+1=e(R,Ppub-s)和hπ+1=H2(L||M||wπ+1,N);其中,Ppub-s为系统主公钥,由KGC公开,H2为由密码杂凑函数派生的密码函数,e为从G1×G2到GT的双线性对映射;G2为阶为N的加法循环群;S3:根据KGC公开的系统主公钥计算部分环签名(h1,Ri),即对于i=π+1,…,n,1,…,π-1,依次执行以下步骤:S3.1:随机选取并计算Ri=[ri]P1;S3.2:计算vi=H1(IDi||hid,N),Qi=[vi]P2+Ppub-s和ui=e(Ri,Qi);其中,H1为由密码杂凑函数派生的密码函数,P2为群G2的生成元,hid为签名私钥生成函数识别符;S3.3:计算和hi+1=H2(L||M||wi+1,N);其中,gu为乘法群GT中元素g的u次幂;S3.4:当i=n时,则令h1=hn+1;S4:验证r=hπ是否成立,若成立则重复执行S1步骤;否则,根据签名者的私钥获取部分环签名Rπ,计算Rπ=[r-hπ]·SKπ;S5:消息M的签名值为σ=(h1,R1,…,Rn);2)环签名验证为了检验用户群组L={ID1,ID2,…,IDn}对消息M′的数字签名σ′=(h′1,R′1,…,R′n),验证者应实现以下运算步骤:V1:计算群GT中的元素g=e(P1,Ppub-s);V2:对于i从1增至n,执行:V2.1:检验h′i是否属于集合如果不是则验证不通过;否则,检验R′i是否为G1中的元素,如果不是则验证不通过,否则执行下一步;V2.2:计算vi=H1(IDi||hid,N),Qi=[vi]P2+Ppub-s和u′i=e(Ri′,Qi);V2.3:计算和h′i+1=H2(L||M′||w′i+1,N);V3:验证h′n+1=h′1是否成立,若成立则验证通过;否则验证不通过。按上述方案,所述步骤S2中,Ppub-s=[ks]P2。本专利技术产生的有益效果是:本专利技术方法的环签名构造方式,具有实现简单、安全性高、易验证等特点。同时,本专利技术方法产生签名过程中,签名者可自发构造用户群组形成环,无需其他用户参与即可产生环签名,同时保证了签名的不可否认性和签名者身份的匿名性。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1是本专利技术实施例的方法流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。本专利设计了一个基于SM9数字签名的环签名生成方案。该方案由密钥生成中心(KGC)负责密钥分发,由签名者(Signer)负责自发组建签名群组并完成消息签名,验证者(Verifier)可验证消息签名合法性,并判断签名者是否为环内用户。为保证通用性,本专利的参数选取与SM9签名算法标准参数保持一致。具体符号描述如下:N:一个大素数。由1,2,,….,N-1组成的整数集合。G1,G2:阶为N的加法循环群。GT:阶为N的乘法循环群。P1,P2:分别为群G1和G2的生成元。gu:乘法群GT中元素g的u次幂。[k]P:椭圆曲线上点P的k倍点,k是正整数。e:从G1×G2到GT的双线性对映射。H1(·),H2(·):由密码杂凑函数派生的密码函数。ks:系统主私钥,由KGC秘密持有。Ppub-s:系统主公钥Ppub-s=[ks]P2,由KGC公开。hi本文档来自技高网
...

【技术保护点】
1.一种基于SM9数字签名算法的环签名生成方法,其特征在于,包括密钥生成中心KGC,签名者Signer,验证者Verifier;其中,KGC负责生成系统内签名用户的用户私钥;/n设环中的用户数为n,用户群组标识集合记为L={ID

【技术特征摘要】
1.一种基于SM9数字签名算法的环签名生成方法,其特征在于,包括密钥生成中心KGC,签名者Signer,验证者Verifier;其中,KGC负责生成系统内签名用户的用户私钥;
设环中的用户数为n,用户群组标识集合记为L={ID1,ID2,…,IDn},签名者为用户群组中的第π个用户(1≤π≤n),记其私钥为SKπ,标识为IDπ;
该方法包括以下步骤:
1)生成待签名消息M的环签名
为产生对消息M的环签名σ=(h1,R1,…,Rn),签名者采用以下步骤:
S1:随机选取并计算R=[r]P1;
其中,为由1,2,,…,N-1组成的整数集合,N为大素数,P1为群G1的生成元,G1是阶为N的加法循环群;
S2:计算wπ+1=e(R,Ppub-s)和hπ+1=H2(L||M||wπ+1,N);
其中,Ppub-s为系统主公钥,由KGC公开,
H2为由密码杂凑函数派生的密码函数,e为从G1×G2到GT的双线性对映射;G2为阶为N的加法循环群;
S3:根据KGC公开的系统主公钥计算部分环签名(h1,Ri),即对于i=π+1,…,n,1,…,π-1,依次执行以下步骤:
S3.1:随机选取并计算Ri=[ri]P1;
S3.2:计算vi=H1(IDi||hid,N),Qi=[vi]P2+Ppub-s和ui=e(Ri,Qi);
其中,H1为由密码杂凑函数派生的密码...

【专利技术属性】
技术研发人员:何德彪彭聪范青贾小英罗敏黄欣沂
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1