CN113572612B - 一种国密sm9算法私钥分发方法、用户终端和密钥生成中心 - Google Patents
一种国密sm9算法私钥分发方法、用户终端和密钥生成中心 Download PDFInfo
- Publication number
- CN113572612B CN113572612B CN202110693659.XA CN202110693659A CN113572612B CN 113572612 B CN113572612 B CN 113572612B CN 202110693659 A CN202110693659 A CN 202110693659A CN 113572612 B CN113572612 B CN 113572612B
- Authority
- CN
- China
- Prior art keywords
- user
- private key
- parameters
- key
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种国密SM9算法私钥分发方法,包括以下步骤:步骤一,用户向KGC注册并设置用户密码;步骤二,用户生成随机数并计算私钥申请校验参数;步骤三,用户发送校验参数给KGC;步骤四,KGC验证用户参数;步骤五,KGC发送用户私钥参数;步骤六,用户验证KGC参数;步骤七,用户导出私钥。本发明对密钥生成中心KGC建设和改造成本小,支持范在物联网海量终端的在线私钥分发,有效的提高了物联网***的安全性和可用性。
Description
技术领域
本发明属于信息安全技术领域,具体涉及一种国密SM9算法私钥分发方法,还涉及一种用于国密SM9算法私钥分发的用户终端和密钥生成中心。
背景技术
随着范在电力物联网建设的推进,物联网终端设备与日俱增,终端数目呈现指数级增长。为了保证物联网数据传输过程中的机密性和完整性,普遍采用非对称加密算法对终端和场站进行相互身份认证和工作密钥协商,但是传统PKI***需要进行繁琐的公钥证书签发管理和证书交换操作,面对如此海量基数的物联网终端,显得十分臃肿和低效。因此在范在物联网的建设中需要一种轻量级的非对称机制来保证通信安全。
国密SM9算法是一种基于身份标识的非对称算法,身份即公钥,省去了CA签发证书和通信双方交换证书的步骤,完全满足物联网轻量化应用的要求。但是SM9算法自2016年发布以来只公布了该算法本身的具体计算步骤,包括密钥生成中心(KGC)参数生成方法、加密算法、签名算法、密钥交换算法、密钥封装算法等,终端在使用SM9算法之前必须向KGC申请自己的签名私钥或加密私钥,算法规范并未公布一套通用的私钥安全申请分发流程。私钥分发安全对非对称算法的重要性不言而喻,私钥传输过程中的泄露将导致密码***的完全失效。本发明提出一套SM9算法在线私钥分发协议,以解决用户在向KGC申请私钥过程中的安全认证和私钥安全传输问题。
发明内容
本发明的目的在于克服现有技术中的不足,提供了一种国密SM9算法私钥分发方法,解决用户私钥通过非可信网络通道分发过程中面临的泄漏风险。
为解决上述技术问题,本发明提供了如下技术方案。
第一方面,本发明提供了一种国密SM9算法私钥分发方法,执行于用户终端,包括以下过程:
用户侧向密钥生成中心KGC注册并设置用户密码,生成对应的用户参数;
用户侧基于随机数和用户参数计算得到用于私钥申请的校验参数,并发送校验参数给KGC;
用户侧接收KGC发送的私钥参数;
用户侧验证私钥参数,若验证正确则基于私钥参数计算得到私钥。
可选地,所述私钥包括签名私钥和加密私钥。
可选地,所述签名私钥的分发过程为:
所述用户侧向密钥生成中心KGC注册并设置用户密码,生成对应的用户参数,包括:
用户侧向密钥生成中心KGC注册后得到用户标识MY_ID,用户密码MY_PASSWORD,用户标识和用户密码的SM3哈希值a、b的计算公式为:
a=SM3(MY_ID)
b=SM3(MY_PASSWORD)
对于签名私钥,用户参数Qs、Ts为:
Qs=[a]P1,P1为SM9算法群G1的生成元
Ts=[b]P2,P2为SM9算法群G2的生成元
所述用户侧基于随机数和用户参数计算用于私钥申请的校验参数,包括:
用户侧生成随机数r;
对于签名私钥,校验参数Qs'、Ts'为:
Qs'=[r]Qs
Ts'=[r-1]Ts
所述用户侧验证私钥参数,包括:
对于签名私钥:验证双线性对值e(Ss',Ps)是否等于e(Qs',Ppubs),如果等于则验证正确;Ppubs为SM9算法***签名主公钥,Ss'为KGC发送的签名私钥参数,参数Ps计算公式为:
Ps=[h1]P2+Ppubs,h1=H1(MY_ID||hid,N),H1为密码函数,MY_ID为用户ID,hid为签名私钥生成函数识别符:0x01,N为群G1、G2的阶;
所述基于私钥参数计算得到私钥,包括:
用户签名私钥为:dsA=[(r*a)-1]Ss'。
可选地,所述加密私钥的分发过程为:
所述用户侧向密钥生成中心KGC注册并设置用户密码,生成对应的用户参数,包括:
用户侧向密钥生成中心KGC注册后得到用户标识MY_ID,用户密码MY_PASSWORD,用户标识和用户密码的SM3哈希值a、b的计算公式为:
a=SM3(MY_ID)
b=SM3(MY_PASSWORD)
对于加密私钥,用户参数Qe、Te为:
Qe=[a]P2,P2为SM9算法群G2的生成元
Te=[b]P1,P1为SM9算法群G1的生成元
所述用户侧基于随机数和用户参数计算用于私钥申请的校验参数,包括:
用户侧生成随机数r;
对于加密私钥,校验参数Qe'、Te'为:
Qe'=[r]Qe
Te'=[r-1]Te
所述用户侧验证私钥参数,包括:
对于加密私钥:验证e(Pe,Se')是否等于e(Ppube,Qe'),如果等于则验证正确;Ppube为SM9算法***加密主公钥,Se'为KGC发送的加密私钥参数,参数Pe计算公式为:
Pe=[h1]P1+Ppube,h1=H1(MY_ID||hid,N),H1为密码函数hid为加密私钥生成函数识别符:0x03,N为群G1、G2的阶;
所述基于私钥参数计算得到私钥,包括:
用户加密私钥为:de=[(r*a)-1]Se'。
第二方面,本发明提供了一种用于国密SM9算法私钥分发的用户终端,包括:
用户注册模块,用于向密钥生成中心KGC注册并设置用户密码,生成对应的用户参数;
私钥申请模块,用于基于随机数和用户参数计算得到用于私钥申请的校验参数,并发送校验参数给KGC;
私钥接收模块,用于接收KGC发送的私钥参数;
私钥计算模块,用于验证私钥参数,若验证正确则基于私钥参数计算得到私钥。
第三方面,本发明提供了一种国密SM9算法私钥分发方法,执行于密钥生成中心KGC侧,包括以下过程:
KGC侧接收用户侧的注册及设置密码,生成对应的用户参数,并预计算用户参数的双线性对值;
KGC侧接收用户侧发送的校验参数;
KGC侧基于用户参数验证校验参数是否正确,若验证正确,则发送私钥参数给用户侧。
可选地,所述私钥包括签名私钥和加密私钥。
可选地,所述签名私钥的分发过程为:
所述KGC侧接收用户侧的注册及设置密码,生成对应的用户参数,并预计算用户参数的双线性对值,包括:
接收用户侧注册后得到用户标识MY_ID,用户密码MY_PASSWORD,用户标识和用户密码的SM3哈希值a、b的计算公式为:
a=SM3(MY_ID)
b=SM3(MY_PASSWORD)
对于签名私钥,用户参数Qs、Ts为:
Qs=[a]P1,P1为SM9算法群G1的生成元
Ts=[b]P2,P2为SM9算法群G2的生成元
预计算用户参数的双线性对值e(Qs,Ts),e为SM9椭圆曲线上的对运算;
所述KGC侧基于用户参数验证校验参数是否正确,包括:
计算校验参数的双线性对值e(Qs',Ts')与预计算的e(Qs,Ts)相比较,如果两者相同则认为验证正确;
所述KGC侧发送私钥参数为:Ss'=[t2]Qs',t2由KGC根据用户标识ID和SM9算法***参数计算得出。
可选地,所述加密私钥的分发过程为:
所述KGC侧接收用户侧的注册及设置密码,生成对应的用户参数,并预计算用户参数的双线性对值,包括:
接收用户侧注册后得到用户标识MY_ID,用户密码MY_PASSWORD,用户标识和用户密码的SM3哈希值a、b的计算公式为:
a=SM3(MY_ID)
b=SM3(MY_PASSWORD)
对于加密私钥,用户参数Qe、Te为:
Qe=[a]P2,P2为SM9算法群G2的生成元
Te=[b]P1,P1为SM9算法群G1的生成元
预计算用户参数的双线性对值e(Te,Qe),e为SM9椭圆曲线上的对运算;
所述KGC侧基于用户参数验证校验参数是否正确,包括:
计算校验参数的双线性对值e(Te',Qe')并与预计算的e(Te,Qe)相比较,如果相同则认为验证正确;
所述KGC侧发送私钥参数为:Se'=[t2]Qe',t2由KGC根据用户标识ID和SM9算法***参数计算得出。
第四方面,本发明还提供了一种用于国密SM9算法私钥分发的密钥生成中心,包括:
接收注册模块,用于接收用户侧的注册及设置密码,生成对应的用户参数,并预计算用户参数的双线性对值;
接收参数模块,用于接收用户侧发送的校验参数;
私钥参数分发模块,用于KGC侧基于用户参数验证校验参数是否正确,若验证正确,则发送私钥参数给用户侧。
与现有技术相比,本发明所达到的有益效果是:
1)本发明提出一种在非可信网络环境下安全分发用户SM9算法私钥的方法。基于SM9算法曲线上的对运算,密钥分发双方实现了一种简单的匿名签名方案,用于双方相互身份认证,并保证传输数据的完整性。同时私钥保护基于椭圆曲线离散对数难题,其安全性在数学上可以得到有效保证。
2)本发明是一套支持SM9算法签名私钥和加密私钥的分发的方案。由于SM9算法的用户签名私钥和加密私钥产生方法并不完全相同,因此分发过程也需要区别对待,本发明描述的算法步骤针对两者分别提出了各自的计算步骤,满足SM9算法各种应用场景。
附图说明
图1为签名私钥分发协议流程图;
图2为加密私钥分发协议流程图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例1
现有技术中已知用户私钥由密钥生成中心KGC生成,私钥由KGC在线发给用户,由于私钥分发途中经过了非可信公共网络,为避免私钥泄漏,本发明在传输过程中基于椭圆曲线离散对数运算,使用私钥因子计算出中间私钥参数,保证只有用户可以从私钥参数中还原私钥,同时双方附加了必要的完整性验证。
由于SM9算法的用户签名私钥和加密私钥产生方法并不完全相同,因此私钥分发过程也需要区别对待,本发明描述的方法步骤针对两者分别提出了各自的计算步骤,以满足SM9算法各种应用场景。
本发明的一种国密SM9算法私钥分发方法,包括签名私钥分发和加密私钥分发:
(1)签名私钥分发流程如图1所示,具体步骤为:
步骤1:用户向密钥生成中心KGC注册并设置用户密码,KGC生成用户参数。
本步骤中用户标识定义为MY_ID,用户密码定义为MY_PASSWORD,密钥生成中心KGC只需存储用户标识和用户密码的SM3哈希值a、b,并计算用户参数Qs、Ts,预计算用户参数的双线性对值e(Qs,Ts),e为SM9椭圆曲线上的对运算,相关参数计算公式如下:
a)a=SM3(MY_ID)
b)b=SM3(MY_PASSWORD)
c)Qs=[a]P1,P1为SM9算法群G1的生成元
d)Ts=[b]P2,P2为SM9算法群G2的生成元
步骤2:用户侧生成随机数并基于用户参数计算用于私钥申请的校验参数。
用户生成的随机数定义为r,用户需要向KGC进行私钥申请,其他需要计算的校验参数Qs'、Ts'为:
a)Qs'=[r]Qs,参数Qs计算方法与步骤1相同
b)Ts'=[r-1]Ts,参数Ts计算方法与步骤1相同
步骤3:用户发送校验参数(Qs',Ts')给KGC。
步骤4:KGC验证校验参数与用户参数,即用户的完整性验证。
KGC计算校验参数的双线性对值e(Qs',Ts')与预计算的e(Qs,Ts)相比较,以验证用户合法性,如果两者相同则认为用户是合法的,进行下一步,否则判定用户异常,结束密钥分发过程。
验证的目的:一是用户发送的校验参数后面计算要用到,二是验证用户参数,防止冒充获取别人的私钥。
步骤5:KGC发送用户私钥参数。
根据SM9算法标准,SM9用户签名私钥计算法为:dsA=[t2]P1,t2由KGC根据用户标识ID和SM9算法***参数计算得出,计算步骤请参考SM9算法标准文档,签名私钥分发的目的是把用户私钥dsA安全分发到用户侧,因为传输通道不安全,所以不能直接传输私钥dsA,本发明中是计算签名私钥参数Ss'发送给用户,用户可以利用此参数计算出dsA。
密钥分发过程中本步骤需要计算Ss'=[t2]Qs',Qs'由步骤3)中用户数据提供。计算完成后KGC发送私钥参数Ss'给用户。
步骤6:用户验证KGC参数。
用户收到Ss'后,验证e(Ss',Ps)是否等于e(Qs',Ppubs),以确认Ss'的完整性,是用户和KGC之间的双向认证。其中Qs'由步骤2)计算得来,Ppubs为SM9算法***签名主公钥,为公开的***参数,参数Ps计算方法为:
Ps=[h1]P2+Ppubs,P2为SM9算法群G2的生成元;
h1=H1(MY_ID||hid,N),MY_ID为用户ID,密码函数H1计算方法参照SM9算法标准文档,hid为签名私钥生成函数识别符:0x01,N为群G1、G2的阶。
验证通过则认为KGC正常,进行下一步,否则判定KGC存在异常,结束私钥分发过程。
步骤7:用户计算签名私钥。
用户签名私钥为:dsA=[(r*a)-1]Ss',r和a由步骤1和2得来。
(2)用户加密私钥分发流程如图2所示,具体算法步骤为:
步骤1:用户向密钥生成中心KGC注册并设置用户密码。
本步骤中用户标识定义为MY_ID,用户密码定义为MY_PASSWORD,KGC只需存储用户标识和密码的SM3哈希值a、b,并计算用户参数Te、Qe,预计算双线性对值e(Te,Qe),e为SM9椭圆曲线上的对运算,相关参数计算方法如下:
a)a=SM3(MY_ID)
b)b=SM3(MY_PASSWORD)
c)Qe=[a]P2,P2为SM9算法群G2的生成元
d)Te=[b]P1,P1为SM9算法群G1的生成元
步骤2:用户生成随机数并计算用于私钥申请的校验参数。
用户生成的随机数定义为r,其他需要计算的校验参数有:
a)Qe'=[r]Qe,参数Q计算方法与步骤1相同
b)Te'=[r-1]Te,参数T计算方法与步骤1相同
步骤3:用户发送校验参数(Qe',Te')给KGC。
步骤4:KGC验证用户参数。
KGC计算e(Te',Qe')并与预计算的e(Te,Qe)相比较,以验证用户合法性,如果相同则认为用户正常,进行下一步,否则判定用户异常,结束密钥分发过程。
验证的目的:一是用户发送的参数后面计算要用到,二是验证用户参数,防止冒充获取别人的私钥。
步骤5:KGC发送用户私钥参数。
根据SM9算法标准,SM9用户加密私钥计算法为:deA=[t2]P2,t2由KGC根据用户ID和SM9算法***参数计算得出,计算步骤请参考SM9算法标准文档,加密私钥分发的目的是把deA安全分发到用户方,因为传输通道不安全,所以不能直接传输私钥,本发明中是计算Se'发送给用户,用户可以利用此参数计算出deA。
密钥分发过程中本步骤需要计算Se'=[t2]Qe',Qe'由步骤3)中用户数据提供。计算完成后KGC发送Se'给用户。
步骤6:用户验证KGC参数。
用户收到Se'后,计算并验证e(Pe,Se')是否等于e(Ppube,Qe'),以确认Se'的完整性,其中Qe'由步骤2)计算得来,Ppube为SM9算法***加密主公钥,为公开的***参数,参数Pe计算方法为:
Pe=[h1]P1+Ppube,P1为SM9算法群G1的生成元
h1=H1(MY_ID||hid,N),MY_ID为用户ID,密码函数H1计算方法参照SM9算法标准文档,hid为加密私钥生成函数识别符:0x03,N为群G1、G2的阶。
验证通过则进行下一步,否则判定KGC存在异常,结束私钥分发过程。
步骤7:用户计算加密私钥。
用户加密私钥为:de=[(r*a)-1]Se',r和a由步骤1和2得来。
本发明对密钥生成中心KGC建设和改造成本小,支持范在物联网海量终端的在线私钥分发,有效的提高了物联网***的安全性和可用性。
实施例2
基于与实施例1方法同样的发明构思,本发明的一种用于国密SM9算法私钥分发的用户终端,包括:
用户注册模块,用于向密钥生成中心KGC注册并设置用户密码,生成对应的用户参数;
私钥申请模块,用于基于随机数和用户参数计算得到用于私钥申请的校验参数,并发送校验参数给KGC;
私钥接收模块,用于接收KGC发送的私钥参数;
私钥计算模块,用于验证私钥参数,若验证正确则基于私钥参数计算得到私钥。
本发明还提供了一种用于国密SM9算法私钥分发的密钥生成中心,包括:
接收注册模块,用于接收用户侧的注册及设置密码,生成对应的用户参数,并预计算用户参数的双线性对值;
接收参数模块,用于接收用户侧发送的校验参数;
私钥参数分发模块,用于KGC侧基于用户参数验证校验参数是否正确,若验证正确,则发送私钥参数给用户侧。
本发明装置中各模块的具体实现方案参见实施例1方法中各步骤处理过程。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (4)
1.一种国密SM9算法私钥分发方法,执行于用户终端,其特征是,包括以下过程:
用户终端向密钥生成中心注册并设置用户密码,生成对应的用户参数;
用户终端基于随机数和用户参数计算得到用于私钥申请的校验参数,并发送校验参数给密钥生成中心;
用户终端接收密钥生成中心发送的私钥参数;
用户终端验证私钥参数,若验证正确则基于私钥参数计算得到私钥;
所述私钥包括签名私钥和加密私钥;
所述签名私钥的分发过程为:
所述用户终端向密钥生成中心注册并设置用户密码,生成对应的用户参数,包括:
用户终端向密钥生成中心注册后得到用户标识MY_ID,用户密码MY_PASSWORD,用户标识和用户密码的SM3哈希值a、b的计算公式为:
a = SM3(MY_ID),
b = SM3(MY_PASSWORD);
对于签名私钥,用户参数Qs、Ts为:
Qs = [a]P1,P1为SM9算法群G1的生成元,
Ts = [b]P2,P2为SM9算法群G2的生成元;
所述用户终端基于随机数和用户参数计算用于私钥申请的校验参数,包括:
用户终端生成随机数r;
对于签名私钥,校验参数Qs'、Ts'为:
Qs'= [r]Qs ,
Ts'= [r -1]Ts ;
所述用户终端验证私钥参数,包括:
对于签名私钥:验证双线性对值e(Ss',Ps)是否等于e(Qs',Ppubs) ,e为SM9椭圆曲线上的对运算;如果等于则验证正确;Ppubs为SM9算法***签名主公钥,Ss'为密钥生成中心发送的签名私钥参数,参数Ps计算公式为:
Ps = [h1]P2 + Ppubs,h1 = H1(MY_ID||hid,N),H1为密码函数,hid为签名私钥生成函数识别符:0x01,N为群G1、G2的阶;
所述基于私钥参数计算得到私钥,包括:
用户签名私钥为:dsA = [(r*a)-1]Ss';
所述加密私钥的分发过程为:
所述用户终端向密钥生成中心注册并设置用户密码,生成对应的用户参数,包括:
用户终端向密钥生成中心注册后得到用户标识MY_ID,用户密码MY_PASSWORD,用户标识和用户密码的SM3哈希值a、b的计算公式为:
a = SM3(MY_ID),
b = SM3(MY_PASSWORD);
对于加密私钥,用户参数Qe、Te为:
Qe = [a]P2,P2为SM9算法群G2的生成元,
Te = [b]P1,P1为SM9算法群G1的生成元;
所述用户终端基于随机数和用户参数计算用于私钥申请的校验参数,包括:
用户终端生成随机数r;
对于加密私钥,校验参数Qe'、Te'为:
Qe'= [r]Qe ,
Te'= [r -1]Te;
所述用户终端验证私钥参数,包括:
对于加密私钥:验证e(Pe, Se')是否等于e(Ppube, Qe'),如果等于则验证正确;Ppube为SM9算法***加密主公钥,Se'为密钥生成中心发送的加密私钥参数,参数Pe计算公式为:
Pe = [h1]P1 + Ppube,h1 = H1(MY_ID||hid,N),H1为密码函数,hid为加密私钥生成函数识别符:0x03,N为群G1、G2的阶;
所述基于私钥参数计算得到私钥,包括:
用户加密私钥为:de = [(r*a)-1]Se'。
2.一种用于国密SM9算法私钥分发的用户终端,其特征是,包括:
用户注册模块,用于向密钥生成中心注册并设置用户密码,生成对应的用户参数;
私钥申请模块,用于基于随机数和用户参数计算得到用于私钥申请的校验参数,并发送校验参数给密钥生成中心;
私钥接收模块,用于接收密钥生成中心发送的私钥参数;
私钥计算模块,用于验证私钥参数,若验证正确则基于私钥参数计算得到私钥;
其中,所述私钥包括签名私钥和加密私钥;
所述签名私钥的分发过程为:
所述用户终端向密钥生成中心注册并设置用户密码,生成对应的用户参数,包括:
用户终端向密钥生成中心注册后得到用户标识MY_ID,用户密码MY_PASSWORD,用户标识和用户密码的SM3哈希值a、b的计算公式为:
a = SM3(MY_ID),
b = SM3(MY_PASSWORD);
对于签名私钥,用户参数Qs、Ts为:
Qs = [a]P1,P1为SM9算法群G1的生成元,
Ts = [b]P2,P2为SM9算法群G2的生成元;
所述用户终端基于随机数和用户参数计算用于私钥申请的校验参数,包括:
用户终端生成随机数r;
对于签名私钥,校验参数Qs'、Ts'为:
Qs'= [r]Qs ,
Ts'= [r -1]Ts ;
所述用户终端验证私钥参数,包括:
对于签名私钥:验证双线性对值e(Ss',Ps)是否等于e(Qs',Ppubs) ,e为SM9椭圆曲线上的对运算;如果等于则验证正确;Ppubs为SM9算法***签名主公钥,Ss'为密钥生成中心发送的签名私钥参数,参数Ps计算公式为:
Ps = [h1]P2 + Ppubs,h1 = H1(MY_ID||hid,N),H1为密码函数,hid为签名私钥生成函数识别符:0x01,N为群G1、G2的阶;
所述基于私钥参数计算得到私钥,包括:
用户签名私钥为:dsA = [(r*a)-1]Ss';
所述加密私钥的分发过程为:
所述用户终端向密钥生成中心注册并设置用户密码,生成对应的用户参数,包括:
用户终端向密钥生成中心注册后得到用户标识MY_ID,用户密码MY_PASSWORD,用户标识和用户密码的SM3哈希值a、b的计算公式为:
a = SM3(MY_ID),
b = SM3(MY_PASSWORD);
对于加密私钥,用户参数Qe、Te为:
Qe = [a]P2,P2为SM9算法群G2的生成元,
Te = [b]P1,P1为SM9算法群G1的生成元;
所述用户终端基于随机数和用户参数计算用于私钥申请的校验参数,包括:
用户终端生成随机数r;
对于加密私钥,校验参数Qe'、Te'为:
Qe'= [r]Qe ,
Te'= [r -1]Te;
所述用户终端验证私钥参数,包括:
对于加密私钥:验证e(Pe, Se')是否等于e(Ppube, Qe'),如果等于则验证正确;Ppube为SM9算法***加密主公钥,Se'为密钥生成中心发送的加密私钥参数,参数Pe计算公式为:
Pe = [h1]P1 + Ppube,h1 = H1(MY_ID||hid,N),H1为密码函数,hid为加密私钥生成函数识别符:0x03,N为群G1、G2的阶;
所述基于私钥参数计算得到私钥,包括:
用户加密私钥为:de = [(r*a)-1]Se'。
3.一种国密SM9算法私钥分发方法,执行于密钥生成中心,其特征是,包括以下过程:
密钥生成中心接收用户终端的注册及设置密码,生成对应的用户参数,并预计算用户参数的双线性对值;
密钥生成中心接收用户终端发送的校验参数;
密钥生成中心基于用户参数验证校验参数是否正确,若验证正确,则发送私钥参数给用户终端;
所述私钥包括签名私钥和加密私钥;
所述签名私钥的分发过程为:
所述密钥生成中心接收用户终端的注册及设置密码,生成对应的用户参数,并预计算用户参数的双线性对值,包括:
接收用户终端注册后得到用户标识MY_ID,用户密码MY_PASSWORD,用户标识和用户密码的SM3哈希值a、b的计算公式为:
a = SM3(MY_ID),
b = SM3(MY_PASSWORD);
对于签名私钥,用户参数Qs、Ts为:
Qs = [a]P1,P1为SM9算法群G1的生成元,
Ts = [b]P2,P2为SM9算法群G2的生成元;
预计算用户参数的双线性对值e(Qs,Ts),e为SM9椭圆曲线上的对运算;
所述密钥生成中心基于用户参数验证校验参数是否正确,包括:
计算校验参数的双线性对值e(Qs',Ts')与预计算的e(Qs,Ts)相比较,如果两者相同则认为验证正确;其中,Qs'= [r]Qs,Ts'= [r -1]Ts,r为用户生成的随机数;
所述密钥生成中心发送私钥参数为:Ss' = [t2]Qs',t2由密钥生成中心根据用户标识MY_ID和SM9算法***参数计算得出;
所述加密私钥的分发过程为:
所述密钥生成中心接收用户终端的注册及设置密码,生成对应的用户参数,并预计算用户参数的双线性对值,包括:
接收用户终端注册后得到用户标识MY_ID,用户密码MY_PASSWORD,用户标识和用户密码的SM3哈希值a、b的计算公式为:
a = SM3(MY_ID),
b = SM3(MY_PASSWORD);
对于加密私钥,用户参数Qe、Te为:
Qe = [a]P2,P2为SM9算法群G2的生成元,
Te = [b]P1,P1为SM9算法群G1的生成元;
预计算用户参数的双线性对值e(Te, Qe),e为SM9椭圆曲线上的对运算;
所述密钥生成中心基于用户参数验证校验参数是否正确,包括:
计算校验参数的双线性对值e(Te',Qe')并与预计算的e(Te,Qe)相比较,如果相同则认为验证正确;其中,Te'= [r -1]Te,Qe'= [r]Qe;
所述密钥生成中心发送私钥参数为:Se' = [t2]Qe',t2由密钥生成中心根据用户标识MY_ID和SM9算法***参数计算得出。
4.一种用于国密SM9算法私钥分发的密钥生成中心,其特征是,包括:
接收注册模块,用于接收用户终端的注册及设置密码,生成对应的用户参数,并预计算用户参数的双线性对值;
接收参数模块,用于接收用户终端发送的校验参数;
私钥参数分发模块,用于密钥生成中心基于用户参数验证校验参数是否正确,若验证正确,则发送私钥参数给用户终端;
其中,所述私钥包括签名私钥和加密私钥;
所述签名私钥的分发过程为:
所述密钥生成中心接收用户终端的注册及设置密码,生成对应的用户参数,并预计算用户参数的双线性对值,包括:
接收用户终端注册后得到用户标识MY_ID,用户密码MY_PASSWORD,用户标识和用户密码的SM3哈希值a、b的计算公式为:
a = SM3(MY_ID),
b = SM3(MY_PASSWORD);
对于签名私钥,用户参数Qs、Ts为:
Qs = [a]P1,P1为SM9算法群G1的生成元,
Ts = [b]P2,P2为SM9算法群G2的生成元;
预计算用户参数的双线性对值e(Qs,Ts),e为SM9椭圆曲线上的对运算;
所述密钥生成中心基于用户参数验证校验参数是否正确,包括:
计算校验参数的双线性对值e(Qs',Ts')与预计算的e(Qs,Ts)相比较,如果两者相同则认为验证正确;其中,Qs'= [r]Qs,Ts'= [r -1]Ts,r为用户生成的随机数;
所述密钥生成中心发送私钥参数为:Ss' = [t2]Qs',t2由密钥生成中心根据用户标识MY_ID和SM9算法***参数计算得出;
所述加密私钥的分发过程为:
所述密钥生成中心接收用户终端的注册及设置密码,生成对应的用户参数,并预计算用户参数的双线性对值,包括:
接收用户终端注册后得到用户标识MY_ID,用户密码MY_PASSWORD,用户标识和用户密码的SM3哈希值a、b的计算公式为:
a = SM3(MY_ID),
b = SM3(MY_PASSWORD);
对于加密私钥,用户参数Qe、Te为:
Qe = [a]P2,P2为SM9算法群G2的生成元,
Te = [b]P1,P1为SM9算法群G1的生成元;
预计算用户参数的双线性对值e(Te, Qe),e为SM9椭圆曲线上的对运算;
所述密钥生成中心基于用户参数验证校验参数是否正确,包括:
计算校验参数的双线性对值e(Te',Qe')并与预计算的e(Te,Qe)相比较,如果相同则认为验证正确;其中,Te'= [r -1]Te,Qe'= [r]Qe;
所述密钥生成中心发送私钥参数为:Se' = [t2]Qe',t2由密钥生成中心根据用户标识MY_ID和SM9算法***参数计算得出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110693659.XA CN113572612B (zh) | 2021-06-22 | 2021-06-22 | 一种国密sm9算法私钥分发方法、用户终端和密钥生成中心 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110693659.XA CN113572612B (zh) | 2021-06-22 | 2021-06-22 | 一种国密sm9算法私钥分发方法、用户终端和密钥生成中心 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113572612A CN113572612A (zh) | 2021-10-29 |
CN113572612B true CN113572612B (zh) | 2023-01-31 |
Family
ID=78162532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110693659.XA Active CN113572612B (zh) | 2021-06-22 | 2021-06-22 | 一种国密sm9算法私钥分发方法、用户终端和密钥生成中心 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113572612B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114398602B (zh) * | 2022-01-11 | 2024-05-10 | 国家计算机网络与信息安全管理中心 | 一种基于边缘计算的物联网终端身份认证方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951288A (zh) * | 2019-01-22 | 2019-06-28 | 中国科学院信息工程研究所 | 一种基于sm9数字签名算法的分级签名方法和*** |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108599950A (zh) * | 2018-04-09 | 2018-09-28 | 北京无字天书科技有限公司 | 一种适用于sm9标识密码的用户密钥申请下载安全协议的实现方法 |
US11398899B2 (en) * | 2019-05-28 | 2022-07-26 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Data processing device and data processing method |
CN110166239B (zh) * | 2019-06-04 | 2023-01-06 | 成都卫士通信息产业股份有限公司 | 用户私钥生成方法、***、可读存储介质及电子设备 |
CN111082932B (zh) * | 2019-12-25 | 2023-03-28 | 武汉理工大学 | 一种抗抵赖的标识私钥生成和数字签名方法及***和装置 |
CN111245847A (zh) * | 2020-01-15 | 2020-06-05 | 北京三未信安科技发展有限公司 | 轻量级无证书认证方法、客户端及*** |
CN111740828B (zh) * | 2020-07-29 | 2021-02-12 | 北京信安世纪科技股份有限公司 | 一种密钥生成方法以及装置、设备、加解密方法 |
CN112511566B (zh) * | 2021-02-02 | 2022-08-26 | 北京信安世纪科技股份有限公司 | Sm9算法无证书机制签名密钥生成方法、设备及存储介质 |
-
2021
- 2021-06-22 CN CN202110693659.XA patent/CN113572612B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951288A (zh) * | 2019-01-22 | 2019-06-28 | 中国科学院信息工程研究所 | 一种基于sm9数字签名算法的分级签名方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN113572612A (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110784491B (zh) | 一种物联网安全管理*** | |
CN110943976B (zh) | 一种基于口令的用户签名私钥管理方法 | |
EP2905719B1 (en) | Device and method certificate generation | |
CN101159639B (zh) | 一种单向接入认证方法 | |
CN111552270B (zh) | 用于车载诊断的安全认证和数据传输方法及装置 | |
CN113704736A (zh) | 基于ibc体系的电力物联网设备轻量级接入认证方法及*** | |
CN111970699B (zh) | 一种基于ipk的终端wifi登录认证方法以及*** | |
CN101192927B (zh) | 基于身份保密的授权与多重认证方法 | |
CN108259486B (zh) | 基于证书的端到端密钥交换方法 | |
CN114553441B (zh) | 一种电子合同签署方法及*** | |
CN113055394A (zh) | 一种适用于v2g网络的多服务双因子认证方法及*** | |
CN109644127B (zh) | 用于获得设备之间的公共会话密钥的***和方法 | |
CN113676448B (zh) | 一种基于对称秘钥的离线设备双向认证方法和*** | |
CN113572612B (zh) | 一种国密sm9算法私钥分发方法、用户终端和密钥生成中心 | |
WO2021093811A1 (zh) | 一种网络接入方法及相关设备 | |
CN111245594B (zh) | 一种基于同态运算的协同签名方法及*** | |
CN114189338B (zh) | 基于同态加密技术的sm9密钥安全分发和管理***及方法 | |
CN113014376B (zh) | 一种用户与服务器之间安全认证的方法 | |
CN115913521A (zh) | 基于量子密钥进行身份认证的方法 | |
CN110572257A (zh) | 基于身份的抗量子计算数据来源鉴别方法和*** | |
CN112533213B (zh) | 一种密钥协商方法、装置、终端及存储介质 | |
CN117278330B (zh) | 一种电力物联网设备网络的轻量级组网与安全通信方法 | |
CN114091001B (zh) | 协同认证方法、***、装置及存储介质 | |
CN111615107B (zh) | 一种数据交互方法、终端及*** | |
RU2771928C2 (ru) | Безопасный обмен данными, обеспечивающий прямую секретность |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |