基于SM2数字签名算法的群签名标识签发方法技术

技术编号:20824794 阅读:39 留言:0更新日期:2019-04-10 07:13
本发明专利技术提出了一种基于SM2数字签名的群签名标识签发方法,主要解决现有技术签发和验签效率低,成员撤销困难的问题,其实现方案是:系统初始化参数;密钥生成中心生成群公钥PKGM和群私钥SKGM;群成员申请入群,并生成公私钥对(SKA,PKA)、签名中间量EA和群共享对称秘钥θ;群成员使用自己的私钥SKA和签名中间量EA对消息M进行群签名;验证者验证群签名标识是否合法,若合法,结束群签名,否则,群管理员利用群私钥SKGM打开标识,追踪到签名者的身份IDA;群管理员选择新的群共享对称秘钥,撤销身份为IDA的群成员。本发明专利技术秘钥长度短、安全性能好、签发和验签效率高,可用于实现联盟网络体系下信息服务实体的群签名标识签发和认证。

【技术实现步骤摘要】
基于SM2数字签名算法的群签名标识签发方法
本专利技术属于网络通信
,更进一步涉及一种群签名标识签发方法,可应用于实现联盟网络体系下信息服务实体的群签名标识签发及认证。
技术介绍
群数字签名是由D.Chaum和E.vanHeyst于1991年提出的。J.Camenish、M.Stadler,J.Camenish、M.Michels,G.Ateniese和G.Tsudik等人对其进行了修改和完善。在一个群签名方案中,一个群体中的任意一个成员可以以匿名的方式代表整个群体对消息进行签名。与其它数字签名一样,群签名是可以公开验证的,而且可以只用单个群公钥来验证。由于群签名具有隐私保护与可追踪的双重特性,在现代电子商务、电子货币、可信计算、网络取证、隐藏内部组织架构、电子选举协议等许多领域都起着不可或缺的作用。为满足电子认证服务系统的应用需求,国家密码管理局于2010年12月17日发布了SM2椭圆曲线公钥密码算法,2018年11月SM2签名算法以正文形式随ISO/IEC14888-3:2018《信息安全技术带附录的数字签名第3部分:基于离散对数的机制》最新一版发布。在细节上,SM2算法规定了签名、验证、密钥交换等具体细节。一个好的群签名标识签发方案不仅可以安全高效的产生群签名标识,而且可以安全有效的废除群成员,在发生争议时可以高效的打开群签名标识,确定签名者的真实身份。由于群成员的公钥与其真实身份具有一一对应的关系,群成员若每次使用相同公钥对消息进行签名,那么攻击者就可以利用签名标识推测出此群签名标识是否为同一人所签,这样无法保证群签名标识的不关联性,因此需要在每个时间段都要更新公钥来确保不关联性。但每隔一段时间更新秘钥会导致成员在每次签名时都需要进行注册来获得成员证书,这就使得群签名过程的效率大大降低。例如,梁艳,张筱在2016年5月的通信学报第37卷第5期发表的名称为“基于无证书群签名方案的电子现金系统”的文章中,提出了一种高效的无证书群签名方案,在步骤3.3成员加入时,成员需要每次将新生成的秘钥发送给群管理员,这样每次签名过程都需要重复的进行此过程,大大的增加了计算量,降低了签名效率。北京航空航天大学在其申请的专利文献“一种具有匿名性的可验证加密群签名方法”(申请号CN201810198425.6,公开号CN108551435A)中公开实现了一种具有匿名性的可验证加密群签名方法。在该方法中,当用户确定要进行文件签约时,首先要在系统中进行注册得到签名密钥,然后利用签名密钥和仲裁者公钥产生可验证加密群签名。验证者在不解密的情况下可对签名有效性进行验证。群管理员再利用追踪密钥恢复出签名者身份,仲裁者再从可验证加密群签名中恢复出原签名,该方案的不足是:不能高效的进行成员的撤销,当群签名发生争议或群成员在签名过程中有欺骗行为时,群管理员不能立即将该用户移除本群,这将导致该成员可以在此期间内继续代表整个群产生非法的群签名。
技术实现思路
本专利技术的目的在于针对上述现有技术的不足,提供一种基于SM2数字签名的群签名标识签发方法,以在保证签名者匿名性的前提下提高签发效率,并将在签发时发生争议或存在欺骗的成员快速撤销,防止产生非法群签名标识。为实现上述目的,本专利技术方案包括如下:(1)参数初始化:设Fq是阶为q的有限域;选取椭圆曲线方程E为y2=x3+ax+b,其中a、b∈Fq;设有限域Fq上椭圆曲线方程E的所有的有理点组成的集合为E(Fq);设E上的阶为n的基点G=(xG,yG),其中xG,yG为基点的坐标;选取消息长度为v比特的密码杂凑算法Hv();选取安全散列函数H:{0,1}→ZG,其中ZG为基点G的整数值,选取对称加密算法E();(2)密钥生成中心KGC随机选取作为群私钥,其中是阶为q的整数串,并将群私钥SKGM和基点G的乘积作为群公钥:PKGM=SKGMG;(3)群成员A加入群:(3.1)密钥生成中心KGC为群成员A生成公私钥对(SKA,PKA),群成员A将身份信息(IDA,PKA)通过安全信道发送给群管理员GM,其中IDA为群成员A真实身份,PKA为群成员A的公钥,SKA为群成员A的私钥;群管理员GM将群成员A的身份信息(IDA,PKA)存储到群成员信息列表中,并计算群签名中间量EA,再通过安全信道将EA发送给群成员A;(3.2)群管理员GM先选择多项式其中,t为群成员的总数,xi是第i个群成员的假名,θ为群共享对称秘钥,(C0,C1,…,Ct-1)为;再计算椭圆曲线上基点G的ω倍点W=ωG,及群成员A的假名xA,并将该W点和该多项式参数在群内公开,其中t为群成员的数量;(3.3)群成员A根据接收的参数(C0,C1,…,Ct-1),计算出群共享对称秘钥θ;(4)群成员A对消息M进行签名:(4.1)群成员A发送对称密文Eθ(IDA,PKA,T,T)给群管理员GM,其中PKA,T为群成员A的临时公钥,T为当前时间的时间戳,Eθ()为对称加密算法;(4.2)群管理员GM接收到密文Eθ(IDA,PKA,T,T)后使用秘钥θ解密,若解密成功且时间戳T有效,则可得到成员A的身份信息(IDA,PKA,T,T),执行步骤(4.3),否则,终止本次签名;(4.3)群成员A产生随机数k∈[1,n-1],其中n为基点G的阶数,并计算椭圆曲线上的点K=(x1,y1)=[k]G,其中x1,y1为所求点的横纵坐标;(4.4)群成员A选取三个随机数并利用待签名消息M,群公钥PKGM以及群成员A的临时私钥SKA,T,通过概率算法输出群签名标识为(c,s1,s2,s3,TA,T,r,s),其中,c是杂凑函数作用于临时公钥PKA,T和群公钥PKGM的杂凑值,s1是第一随机数r1的盲化值,s2是第二随机数r2的盲化值,s3是第三随机数r3和临时私钥SKA,T的盲化值,TA,T为成员私钥SKA,T对签名中间量EA的加密值,r为由椭圆曲线点的横坐标x1求出的余数值,s为群公钥PKGM对随机数r1,r2,r3的盲化值;(5)对群签名标识(c,s1,s2,s3,TA,T,PKA,T,r,s)进行验证:(5.1)验证者B先检验r∈[1,n-1],s∈[1,n-1]是否成立,若成立,则执行(5.2),否则,群签名标识非法,执行步骤(6);(5.2)验证者B再依次计算待签名消息M的杂凑值e′和验签中间量t′,并计算椭圆曲线点(x′1,y′1)=(s1+s3)-1(s-t′),和验签值R=(e′+x′1)modn,其中x′1,y′1为所求椭圆曲线点的横纵坐标,modn表示一个整数除以n的求余运算;(5.3)验证者B验证R=r是否成立,若成立,则群签名标识合法,结束群签名过程,否则,群签名标识非法,执行(6);(6)群管理员GM从群签名标识中提取出成员私钥SKA,T对签名中间量EA的加密值TA,T,使用群私钥SKGM和群成员A的临时公钥PKA,T计算出签名者的公钥PKA,再通过存储在成员信息列表中的群成员身份信息(IDA,PKA)追踪到签名的群成员真实身份IDA,执行(7);(7)群管理员GM选择一个新的群共享对称秘钥并生成新的多项式f(x)′,计算除追踪到签名的群成员真实身份IDA以外的其余t-1个群成员的假名xi,并将新的多项式参数(C0′,C1′,…本文档来自技高网
...

【技术保护点】
1.一种基于SM2数字签名算法的群签名标识签发方法,其特征在于,包括如下:(1)参数初始化:设Fq是阶为q的有限域;选取椭圆曲线方程E为y2=x3+ax+b,其中a、b∈Fq;设有限域Fq上椭圆曲线方程E的所有的有理点组成的集合为E(Fq);设E上的阶为n的基点G=(xG,yG),其中xG,yG为基点的坐标;选取消息长度为v比特的密码杂凑算法Hv();选取安全散列函数H:{0,1}→ZG,其中ZG为基点G的整数值,选取对称加密算法E();(2)密钥生成中心KGC随机选取

【技术特征摘要】
1.一种基于SM2数字签名算法的群签名标识签发方法,其特征在于,包括如下:(1)参数初始化:设Fq是阶为q的有限域;选取椭圆曲线方程E为y2=x3+ax+b,其中a、b∈Fq;设有限域Fq上椭圆曲线方程E的所有的有理点组成的集合为E(Fq);设E上的阶为n的基点G=(xG,yG),其中xG,yG为基点的坐标;选取消息长度为v比特的密码杂凑算法Hv();选取安全散列函数H:{0,1}→ZG,其中ZG为基点G的整数值,选取对称加密算法E();(2)密钥生成中心KGC随机选取作为群私钥,其中是阶为q的整数串,并将群私钥SKGM和基点G的乘积作为群公钥:PKGM=SKGMG;(3)群成员A加入群:(3.1)群管理员GM为群成员A生成公私钥对(SKA,PKA),并通过安全信道发送给群成员A,群成员A将身份和公钥信息(IDA,PKA)通过安全信道发送给群管理员GM,其中IDA为群成员A真实身份,PKA为群成员A的公钥,SKA为群成员A的私钥;群管理员GM将群成员A的身份信息(IDA,PKA)存储到群成员信息列表中,并计算群签名中间量EA,再通过安全信道将EA发送给群成员A;(3.2)群管理员GM先选择多项式其中,t为群成员的总数,xi是第i个群成员的假名,θ为群共享对称秘钥,(C0,C1,…,Ct-1)为多项式的参数;再计算椭圆曲线上基点G的ω倍点W=ωG,及群成员A的假名xA,并将该W点和该多项式参数在群内公开;(3.3)群成员A根据接收的参数(C0,C1,…,Ct-1),计算出群共享对称秘钥θ;(4)群成员A对消息M进行签名:(4.1)群成员A发送对称密文Eθ(IDA,PKA,T,T)给群管理员GM,其中PKA,T为群成员A的临时公钥,T为当前时间的时间戳,Eθ()为对称加密算法;(4.2)群管理员GM接收到密文Eθ(IDA,PKA,T,T)后使用秘钥θ解密,若解密成功且时间戳T有效,则可得到成员A的身份信息(IDA,PKA,T,T),执行步骤(4.3),否则,终止本次签名;(4.3)群成员A产生随机数k∈[1,n-1],其中n为基点G的阶数,并计算椭圆曲线上的点β=(x1,y1)=[k]G,其中x1,y1为所求点的横纵坐标;(4.4)群成员A选取三个随机数并利用待签名消息M,群公钥PKGM以及群成员A的临时私钥SKA,T,通过概率算法输出群签名标识为(c,s1,s2,s3,TA,T,PKA,T,r,s),其中,c是杂凑函数作用于临时公钥PKA,T和群公钥PKGM的杂凑值,s1是第一随机数r1的盲化值,s2是第二随机数r2的盲化值,s3是第三随机数r3和临时私钥SKA,T的盲化值,TA,T为成员私钥SKA,T对签名中间量EA的加密值,r为由椭圆曲线点的横坐标x1求出的余数值,s为群公钥PKGM对随机数r1,r2,r3的盲化值;(5)对群签名标识(c,s1,s2,s3,TA,T,PKA,T,r,s)进行验证:(5.1)验证者D先检验r∈[1,n-1],s∈[1,n-1]是否成立,若成立,则执行(5.2),否则,群签名非法,执行步骤(6);(5.2)验证者D再依次计算待签名消息M的杂凑值e′和验签中间量t′,并计算椭圆曲线点(x′1,y′1)=(s1+s3)-1(s-t′),和验签值R=(e′+x′1)modn,其中x′1,y′1为所求椭圆曲线点的横纵坐标,modn表示一个整数除以n的求余运算;(5.3)验证者D验证R=r是否成立,若成立,则群签名合法,结束群签名过程,否则,群签名非法,执行(6);(6)群管理员GM从群签名中提取出成员私钥SKA,T对签名中间量EA的加密值TA,T,使用群私钥SKGM和群成员A的临时公钥PKA,T计算出签名者的公钥PKA,再通过存储在成员信息列表中的群成员身份信息(IDA,PKA)追踪到签名的群成员真实身份IDA,执行(7);(7)群管理员GM选择一个新的群共享对称秘钥并生成新的多项式f(x)′,计算除追踪到签名的群成员真实身份IDA以外的其余t-1个群成员的假名xi,并将新的多项式参数(C0′,C1′,…Ct-1′)公开,使得被追踪到身份为IDA的群成员将无法通过该参数计算出新的群共享对称秘钥,因而无法进行签名,此时该群成员被撤销。2.根据权利要求1所述的方法,其特征在于,所述(3.1)中密钥生成中心KGC为群成员A生成公私钥对(SKA,PKA),是由群管理员GM选取随机数作为群成员A的私钥,并计算群成员A的公钥PKA=SKAG,其中,G为椭圆曲线的基点。3.根据权利要求1所述的方法,其特征在于,所述(3.1)中群管理员GM计算群签名中间量EA,是由群管理员GM选取群签名中间量随机数利用如下公式计算群签名中...

【专利技术属性】
技术研发人员:马文平刘威刘小雪
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

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

1