一种基于国密SM2的无证书签名方法技术

技术编号:20224444 阅读:19 留言:0更新日期:2019-01-28 22:28
本发明专利技术公开了一种基于国密算法的无证书签名方法。本发明专利技术在签名生成时,B根据随机选择参与签名生成的秘密参数计算参与签名生成的参数,并发送给A。A随机选择参与签名验证的秘密参数,结合此参数生成消息发送给B。在签名验证时,B根据参与签名生成的秘密参数来验证A的签名公钥是否有效,若无效,验证失败,反之,继续验证。B计算某一参数,并发送给A。A通过此参数验证B是否按照正确的步骤完成签名验证,若B符合正确执行步骤,则发送包含上述秘密值的参数,否则,终止签名。B接收A的验证参数并参与后续签名验证,最终产生结果。本发明专利技术在服务器与移动终端协作参与签名与验证过程中,能够防止敌手控制其中一方谋私。

A Certificate-free Signature Method Based on State Secret SM2

The invention discloses a certificateless signature method based on a state secret algorithm. When the signature is generated, B calculates the parameters involved in the signature generation according to the secret parameters randomly selected by B, and sends them to A. A randomly chooses secret parameters to participate in signature verification, and generates messages to be sent to B. In signature verification, B verifies the validity of A's signature public key according to the secret parameters involved in signature generation. If invalid, the verification fails. On the contrary, it continues to verify. B calculates a parameter and sends it to A. A verifies whether B completes the signature verification according to the correct steps by this parameter. If B complies with the correct steps, it sends the parameters containing the above secret values. Otherwise, the signature is terminated. B receives the verification parameters of A and participates in the subsequent signature verification, resulting in the final result. The invention can prevent an adversary from controlling one of them for personal gain in the process of signature and verification in cooperation between the server and the mobile terminal.

【技术实现步骤摘要】
一种基于国密SM2的无证书签名方法
本专利技术涉及信息安全
,尤其涉及一种基于国密算法的无证书签名方法,并且在签名生成与验证过程中需要签名双方共同参与。
技术介绍
随着信息时代的发展和大数据的应用,移动智能终端得到广泛的普及,用户使用移动终端访问网络处理业务的现象越来越普遍,但是由于移动终端本身的安全防护能力较差,无法对密钥进行有效的防护,因此需要一种安全高效的终端与服务器协作签名方案来确保网络业务的安全性。基于此,本专利技术提出了一种国密算法的无证书签名方法,签名公私钥无需一个可信中心来分发,即使敌手获取部分私钥也不能恢复出完整的私钥,同时终端和服务器之间交互的参数均能通过公开信道传输;服务器与移动终端协作参与签名与验证过程,防止敌手控制其中一方谋私,实现了双方的安全通信。
技术实现思路
为了弥补现有技术的不足,本专利技术提供一种基于国密算法的双方合作无证书签名方法及系统。本专利技术解决其技术问题所采用的技术方案是:步骤1)系统建立与初始化,密钥生成中心生成系统主公私钥对。步骤2)签名方A和验证方B分别向密钥生成中心提取各自的部分私钥,并结合各自随机选择的秘密值生成私钥和公钥。步骤3)签名生成时,首先验证方B根据随机选择参与签名生成的秘密参数计算参与签名生成的参数,并发送给签名方A;签名方A随机选择参与签名验证的秘密参数,结合此参数生成消息发送给验证方B。步骤4)签名验证时,验证方B根据参与签名生成的秘密参数来验证签名方A的签名公钥是否有效,若无效,验证失败,反之,继续验证;验证方B计算某一参数,并发送给签名方A;签名方A通过此参数验证验证方B是否按照正确的步骤完成签名验证,若验证方B符合正确执行步骤,则发送包含秘密值的参数,否则,终止签名;验证方B接收签名方A的验证参数并参与后续签名验证,最终产生结果。具体包括以下步骤:1)系统初始化,KGC(密钥生成中心)生成系统主公私钥对(s,Ps),其中Ps=s·P。2)签名双方(A为签名方,B为验证方)分别向KGC提取各自的部分私钥{sA,DA,hA}和{sB,DB,hB}。3)签名双方随机选择各自的签名秘密值uA∈[1,n-1]和uB∈[1,n-1],并结合各自的部分私钥生成签名私钥SKA={skA,hA}、SKB={skB,hB},和公钥PubA={PKA,PhA}、PubB={PKB,PhB},其中,A和B的公私钥对满足PKi=ski·P和Phi=hi·Ps。4)签名生成时,B随机选择v∈[1,n-1],并发送签名参数N=v·P给A。A随机选择q∈[1,n-1],计算:(xv,yv)=skA·N+skA·PKB,M=H1((hA+yv)·(PhB+yv·Ps),m),LA=(skA+xv)P=(xA,yA),V=(xv·xA·skA+q)PKB,e1=H1(V,M),生成消息m签名:σ={LA,e1},并将签名发送给B。其中,H1(*)为国密SM3算法。5)签名验证时,B计算:(x′v,y′v)=(v+skB)·PKA,将LA-PKA和x′v·P比较,若不同验证失败,反之,继续验证。B根据LA=(xA,yA)计算E=x′v·xA·skB·PKA,将E发送至A。A计算:E+q·PKB,并与V比较,若不同,验证失败;反之,A将Q=q·P发送给B。B接收Q后计算:V′=E+skB·Q,M′=H1((hB+y′v)·(PhA+y′v·Ps),m),e′1=H1(V′,M′)。B通过验证e′1和e1,若相等,则签名验证成功,否则接收到的Q可能受到篡改,验证失败。本专利技术产生的有益效果是:本专利技术适用于无可信中心分发签名公私钥的双方安全通信的场景,本专利技术中签名公私钥无需一个可信中心来分发,且双方在签名生成和验证过程中交互的参数皆通过公开信道传输;签名生成与验证过程必须有签名方与验证方参与,且在通信过程中或完成时,通信双方都无法得到对方的私钥信息,保证了签名私钥的安全性,提高了双方参与签名的公平性。附图说明图1是本专利技术实施例的系统建立步骤示意图;图2是本专利技术实施例的用户提取部分私钥与用户生成签名密钥步骤示意图;图3是本专利技术实施例的双方合作生成签名步骤示意图;图4是本专利技术实施例的双方合作验证签名步骤示意图。具体实施方式为使本专利技术的目的、技术方案及优点更加清晰,以下结合实施例,对本专利技术进行进一步的详细说明。本专利技术提出了一种基于国密算法的无证书签名方法,下面给出具体描述。符号及定义实施步骤,如图1-图4所示:1、系统建立:输入安全参数k,KGC(密钥生成中心)选择一个大素数p和椭圆曲线:Ep(a,b):y2=x3+ax+b(modp),其中a,b,x和y均在有限域GFp中,且满足:4a3+27b2(modp)≠0。在Ep(a,b)中选取生成元点P。定义G1是由P生成的在Ep(a,b)上的加法循环群,阶为满足安全需求的素数n,定义SM2算法中使用的SM3密码杂凑算法为:H1:密钥生成中心随机选择主密钥s∈[1,n-1],计算主公钥:Ps=s·Ps。发布系统参数:{Ep(a,b),G1,n,P,Ps,H1}。2、用户获取部分私钥:KGC随机选取ri∈[1,n-1],计算:Di=ri·P,根据用户的IDi计算:hi=H1(Di,IDi),生成用户的部分私钥:si=ri+hi·S,将{si,Di,hi}通过安全信道发送给用户。3、用户生成签名密钥:用户接收KGC的部分私钥后进行验证:Di+hi·Ps和si·P是否相等,若不相等,则接收的部分私钥无效;若相等,则接收的部分私钥有效,并进行如下操作:用户随机选取ui∈[1,n-1]作为用户的秘密值,计算:ski=si·ui,生成签名私钥SKi={ski,hi};计算:PKi=ski·P和Phi=hi·Ps,生成公钥:Pubi={PKi,Phi}。4、双方合作生成签名:此处假设用户A为签名方,用户B为验证方。用户B随机选取参与签名的秘密参数:v∈[1,n-1],计算:N=v·P,并将N通过公开信道发送给用户A。用户A随机选取参与签名验证的秘密参数:q∈[1,n-1],计算:(xv,yv)=skA·N+skA·PKBM=H1((hA+yv)·(PhB+yv·Ps),m)LA=(skA+xv)P=(xA,yA)V=(xv·xA·skA+q)PKB,e1=H1(V,M)生成消息m的签名:σ={LA,e1},并将签名通过公开信道发送用户B进行验证。5、双方合作验证签名:用户B接收签名σ={LA,e1},进行如下操作:①验证公钥的有效性:用户B根据参与签名的秘密参数v计算:(x′v,y′v)=(v+skB)·PKA。用户B计算:LA-PKA,并和x′v·P比较,若不同,则此公钥不能验证此消息,验证失败;若相同,则此公钥有效,继续向下验证。②验证签名的有效性:用户B根据LA=(xA,yA)计算:E=x′v·xA·skB·PKA,将E通过公开信道发送至用户A。用户A根据参与签名验证的秘密参数q计算:E+q·PKB,并与V比较,若不同,则用户B未按照正确的验证步骤进行验证,则终止签名验证,签名验证失败;若相同,用户A将Q=q·P通过公开信道发送给用户B。用户B接收Q进行计算:V′=E+skB·QM′=H1((hB+y′v)·(PhA+y′v·Ps),m)本文档来自技高网...

【技术保护点】
1.一种基于国密SM2的无证书签名方法,其特征在于,包括以下步骤:步骤1)系统建立与初始化,密钥生成中心生成系统主公私钥对;步骤2)签名方A和验证方B分别向密钥生成中心提取各自的部分私钥,并结合各自随机选择的秘密值生成私钥和公钥;步骤3)签名生成时,首先验证方B根据随机选择参与签名生成的秘密参数计算参与签名生成的参数,并发送给签名方A;签名方A随机选择参与签名验证的秘密参数,结合此参数生成消息发送给验证方B;步骤4)签名验证时,验证方B根据参与签名生成的秘密参数来验证签名方A的签名公钥是否有效,若无效,验证失败,反之,继续验证;验证方B计算某一参数,并发送给签名方A;签名方A通过此参数验证验证方B是否按照正确的步骤完成签名验证,若验证方B符合正确执行步骤,则发送包含秘密值的参数,否则,终止签名;验证方B接收签名方A的验证参数并参与后续签名验证,最终产生结果。

【技术特征摘要】
1.一种基于国密SM2的无证书签名方法,其特征在于,包括以下步骤:步骤1)系统建立与初始化,密钥生成中心生成系统主公私钥对;步骤2)签名方A和验证方B分别向密钥生成中心提取各自的部分私钥,并结合各自随机选择的秘密值生成私钥和公钥;步骤3)签名生成时,首先验证方B根据随机选择参与签名生成的秘密参数计算参与签名生成的参数,并发送给签名方A;签名方A随机选择参与签名验证的秘密参数,结合此参数生成消息发送给验证方B;步骤4)签名验证时,验证方B根据参与签名生成的秘密参数来验证签名方A的签名公钥是否有效,若无效,验证失败,反之,继续验证;验证方B计算某一参数,并发送给签名方A;签名方A通过此参数验证验证方B是否按照正确的步骤完成签名验证,若验证方B符合正确执行步骤,则发送包含秘密值的参数,否则,终止签名;验证方B接收签名方A的验证参数并参与后续签名验证,最终产生结果。2.根据权利要求1所述的一种基于国密SM2的无证书签名方法,其特征在于,步骤1)具体是:输入安全参数k,密钥生成中心选择一个大素数p和椭圆曲线:Ep(a,b):y2=x3+ax+b(modp)其中a,b,x和y均在有限域GFp中,且满足:4a3+27b2(modp)≠0;在Ep(a,b)中选取生成元点P;定义G1是由生成元点P生成的在Ep(a,b)上的加法循环群,阶为满足安全需求的素数n,定义SM2算法中使用的SM3密码杂凑算法为:H1:密钥生成中心随机选择主密钥s∈[1,n-1],计算主公钥:Ps=s·Ps,发布系统参数:{Ep(a,b),G1,n,P,Ps,H1}。3.根据权利要求1所述的一种基于国密SM2的无证书签名方法,其特征在于,步骤2)具体是:签名方A和验证方B分别向密钥生成中心提取各自的部分私...

【专利技术属性】
技术研发人员:韩舒韩嵩王雪李芝敏
申请(专利权)人:浙江工商大学
类型:发明
国别省市:浙江,33

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

1