CN112511566B - Sm9算法无证书机制签名密钥生成方法、设备及存储介质 - Google Patents
Sm9算法无证书机制签名密钥生成方法、设备及存储介质 Download PDFInfo
- Publication number
- CN112511566B CN112511566B CN202110138393.2A CN202110138393A CN112511566B CN 112511566 B CN112511566 B CN 112511566B CN 202110138393 A CN202110138393 A CN 202110138393A CN 112511566 B CN112511566 B CN 112511566B
- Authority
- CN
- China
- Prior art keywords
- key
- signature
- public key
- private
- representing
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- 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/083—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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种SM9算法无证书机制签名密钥生成方法、设备及存储介质。在本申请实施例中,KGC获取发送终端用户的标识信息,并生成主私钥,利用主私钥和该标识信息生成部分私钥和部分公钥,由发送终端利用部分私钥、部分公钥以及发送终端生成的秘密值生成完整的签名公钥和签名私钥。其中,用户的签名私钥由用户的发送终端和KGC共同生成,签名私钥仅对用户的发送终端可知,且签名私钥对于KGC来说不可知,从而,可以有效地克服IBC密码系统中的密钥托管问题,提高了用户签名私钥的安全性。
Description
技术领域
本申请涉及网络安全技术领域,尤其涉及一种SM9算法无证书机制签名密钥生成方法、设备及存储介质。
背景技术
在传统的基于公钥基础设施(Public Key Infrastructure,PKI)的密码系统中,采用公钥证书对公钥进行管理,在使用一个用户的公钥之前,需要验证公钥证书的有效性,因此,需要大量的存储空间与计算费用来存储与验证很多用户的公钥证书。为了克服这个缺点,提高系统的效率,提出基于标识(Identity-Based Cryptograph,IBC)的密码技术。
IBC使用的是非对称密码体系,加密与解密使用两套不同的密钥,每个用户的签名公钥就是该用户的身份标识,比如Email地址,电话号码等。而签名私钥则以数据的形式由用户自己掌握,密钥管理相当简单,可以很方便的对数据信息进行加解密。
在IBC密码系统中,通常由密钥生成中心(Key Generation Center,KGC)生成主密钥,基于主密钥通过公开的算法来生成用户的签名私钥,因此,一旦KGC的主密钥泄漏,或者KGC不可信,用户的签名私钥将暴露,也即IBC密码系统存在密钥托管的问题,对于用户来说,签名私钥的安全性无法保障,因此,如何解决密钥托管是现在亟需解决的问题。
发明内容
本申请的多个方面提供一种SM9算法无证书机制签名密钥生成方法、设备及存储介质,用以解决密钥托管问题,提高签名私钥的安全性。
本申请实施例提供一种SM9算法无证书机制签名密钥生成方法,适用于发送终端,包括:将用户的标识信息IDA发送给密钥生成中心KGC,以供KGC基于标识信息IDA生成部分私钥dA-s和部分公钥PA-s;其中,KGC基于第一临时变量t1=H1(IDA||hid,n)+ks mod n和第二临时变量t2= t1 -1·ks mod n,计算部分私钥dA-S=[t2]P1和部分公钥PA-S=[t1]P2;其中,H1表示由密码杂凑函数派生的密码函数,hid表示签名私钥生成函数识别符,IDA||hid表示对标识信息IDA与签名私钥生成函数识别符hid行拼接,IDA和hid是比特串或字节串,n是椭圆曲线E(Fq)上基点G的阶数,是正整数,H1(IDA||hid,n)表示将IDA||hid和n带入由密码杂凑函数派生的密码函数H1求解,ks为主私钥,是位于(0,n)之间的随机整数,mod n表示模n运算,“·”为乘号,t1 -1表示第一临时变量t1的逆元,P1是第一加法循环群G1对应的第一生成元,P2是第二加法循环群G2对应的第二生成元,[i]P表示第一加法循环群G1或者第二加法循环群G2中的元素P的i倍,i为t1或t2;接收KGC发送的部分私钥dA-s和部分公钥PA-s;产生位于(0,n)之间的随机整数xA-s,作为秘密值,计算签名私钥sA-s=[xA-s]dA-s和签名公钥PkA-s=[(xA-s)-1]PA-s,其中,[xA-s]dA-s表示部分私钥dA-s的xA-s倍,(xA-s)-1表示秘密值xA-s的逆元,[(xA-s)-1]PA-s表示部分公钥PA-s的(xA-s)-1倍。
本申请实施例还提供一种SM9算法无证书机制签名密钥生成方法,适用于密钥生成中心KGC,包括:接收发送终端发送的用户的标识信息IDA;产生位于(0,n)之间的随机整数ks作为主私钥,n是椭圆曲线E(Fq)上基点G的阶数,是正整数;基于标识信息IDA和主私钥ks,计算第一临时变量t1和第二临时变量t2;具体地,计算t1=H1(IDA||hid,n)+ks mod n,若t1=0,则重新产生主私钥ks,若t1≠0,则计算t2= t1 -1·ks mod n;其中,hid表示签名私钥生成函数识别符,IDA||hid表示对标识信息IDA与签名私钥生成函数识别符hid进行拼接,IDA和hid是比特串或字节串,H1表示由密码杂凑函数派生的密码函数,H1(IDA||hid,n)表示将IDA||hid和n带入由密码杂凑函数派生的密码函数求解,mod n表示模n运算,“·”为乘号,t1 -1表示第一临时变量t1的逆元;根据第一临时变量t1和第二临时变量t2,计算部分私钥dA-S=[t2]P1和部分公钥PA-S=[t1]P2;其中,P1是第一加法循环群G1对应的第一生成元,P2是第一加法循环群G2对应的第二生成元,[i]P表示第一加法循环群G1或者第二加法循环群G2中的元素P的i倍,i为t1或t2;将部分私钥dA-s和部分公钥PA-s发送给发送终端,以供发送终端基于部分私钥dA-s和部分公钥PA-s,计算签名私钥sA-s=[xA-s]dA-s和签名公钥PkA-s=[(xA-s)-1]PA-s,其中,[xA-s]dA-s表示部分私钥dA-s的xA-s倍,(xA-s)-1表示秘密值xA-s的逆元,[(xA-s)-1]PA-s表示部分公钥PA-s的(xA-s)-1倍。
本申请实施例还提供一种终端设备,包括:存储器和处理器;存储器,用于存储计算机程序;处理器,与存储器耦合,用于执行计算机程序,以用于:将用户的标识信息IDA发送给密钥生成中心KGC,以供KGC基于标识信息IDA生成部分私钥dA-s和部分公钥PA-s;其中,KGC基于第一临时变量t1=H1(IDA||hid,n)+ks mod n和第二临时变量t2= t1 -1·ks mod n,计算部分私钥dA-S=[t2]P1和部分公钥PA-S=[t1]P2;其中,H1表示由密码杂凑函数派生的密码函数,hid表示签名私钥生成函数识别符,IDA||hid表示对标识信息IDA与签名私钥生成函数识别符hid行拼接,IDA和hid是比特串或字节串,n是椭圆曲线E(Fq)上基点G的阶数,是正整数,H1(IDA||hid,n)表示将IDA||hid和n带入由密码杂凑函数派生的密码函数H1求解,ks为主私钥,是位于(0,n)之间的随机整数,mod n表示模n运算,“·”为乘号,t1 -1表示第一临时变量t1的逆元,P1是第一加法循环群G1对应的第一生成元,P2是第二加法循环群G2对应的第二生成元,[i]P表示第一加法循环群G1或者第二加法循环群G2中的元素P的i倍,i为t1或t2;接收KGC发送的部分私钥dA-s和部分公钥PA-s;产生位于(0,n)之间的随机整数xA-s,作为秘密值,计算签名私钥sA-s=[xA-s]dA-s和签名公钥PkA-s=[(xA-s)-1]PA-s,其中,[xA-s]dA-s表示部分私钥dA-s的xA-s倍,(xA-s)-1表示秘密值xA-s的逆元,[(xA-s)-1]PA-s表示部分公钥PA-s的(xA-s)-1倍。
本申请实施例还提供一种密钥生成设备,包括:存储器和处理器;存储器,用于存储计算机程序;处理器,与存储器耦合,用于执行计算机程序,以用于:接收发送终端发送的用户的标识信息IDA;产生位于(0,n)之间的随机整数ks作为主私钥,n是椭圆曲线E(Fq)上基点G的阶数,是正整数;基于标识信息IDA和主私钥ks,计算第一临时变量t1和第二临时变量t2;具体地,计算t1=H1(IDA||hid,n)+ks mod n,若t1=0,则重新产生主私钥ks,若t1≠0,则计算t2= t1 -1·ks mod n;其中,hid表示签名私钥生成函数识别符,IDA||hid表示对标识信息IDA与签名私钥生成函数识别符hid进行拼接,IDA和hid是比特串或字节串,H1表示由密码杂凑函数派生的密码函数,H1(IDA||hid,n)表示将IDA||hid和n带入由密码杂凑函数派生的密码函数求解,mod n表示模n运算,“·”为乘号,t1 -1表示第一临时变量t1的逆元;根据第一临时变量t1和第二临时变量t2,计算部分私钥dA-S=[t2]P1和部分公钥PA-S=[t1]P2;其中,P1是第一加法循环群G1对应的第一生成元,P2是第一加法循环群G2对应的第二生成元,[i]P表示第一加法循环群G1或者第二加法循环群G2中的元素P的i倍,i为t1或t2;将部分私钥dA-s和部分公钥PA-s发送给发送终端,以供发送终端基于部分私钥dA-s和部分公钥PA-s,计算签名私钥sA-s=[xA-s]dA-s和签名公钥PkA-s=[(xA-s)-1]PA-s,其中,[xA-s]dA-s表示部分私钥dA-s的xA-s倍,(xA-s)-1表示秘密值xA-s的逆元,[(xA-s)-1]PA-s表示部分公钥PA-s的(xA-s)-1倍。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现本申请实施例提供的SM9算法无证书机制签名密钥生成方法中的步骤。
在本申请实施例中,KGC获取发送终端用户的标识信息,并生成主私钥,利用主私钥和该标识信息生成部分私钥和部分公钥,由发送终端利用部分私钥、部分公钥以及发送终端生成的秘密值生成完整的签名公钥和签名私钥。其中,用户的签名私钥由用户的发送终端和KGC共同生成,签名私钥仅对用户的发送终端可知,且签名私钥对于KGC来说不可知,从而,可以有效地克服IBC密码系统中的密钥托管问题,提高了用户签名私钥的安全性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请示例性实施例提供的一种SM9算法无证书机制签名密钥生成系统的结构示意图;
图1b为本申请示例性实施例提供的另一种SM9算法无证书机制签名密钥生成系统的结构示意图;
图2为本申请示例性实施例提供的一种SM9算法无证书机制签名密钥生成方法的流程示意图;
图3为本申请示例性实施例提供的另一种SM9算法无证书机制签名密钥生成方法的流程示意图;
图4为本申请示例性实施例提供的一种终端设备的结构示意图;
图5为本申请示例性实施例提供的一种密钥生成设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对IBC密码系统存在密钥托管的问题,在本申请实施例中,KGC获取发送终端用户的标识信息,并生成主私钥,利用主私钥和该标识信息生成部分私钥和部分公钥,由发送终端利用部分私钥、部分公钥以及发送终端生成的秘密值生成完整的签名公钥和签名私钥。其中,用户的签名私钥由用户的发送终端和KGC共同生成,签名私钥仅对用户的发送终端可知,且签名私钥对于KGC来说不可知,从而,可以有效地克服IBC密码系统中的密钥托管问题,提高了用户签名私钥的安全性。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1a为本申请示例性实施例提供的SM9算法无证书机制签名密钥生成系统的结构示意图。如图1a所示,该系统100包括:密钥生成中心KGC 101和发送终端102,进一步,如图1b所示,该系统100还包括接收终端103。
在本实施例中,KGC 101、发送终端102以及接收终端103共享椭圆曲线公钥密码算法(SM2算法)的椭圆曲线参数E(Fq)、G和n。其中,椭圆曲线E(Fq)是定义在有限域Fq上的椭圆曲线,G表示椭圆曲线Fq上的n阶基点,n是椭圆曲线E(Fq)上基点G的阶数,是正整数。另外,KGC 101、发送终端102以及接收终端103共享SM9算法所使用的循环群,其中,循环群包括:第一加法循环群G1、第二加法循环群G2以及乘法循环群GT,第一加法循环群G1和第二加法循环群G2的阶为p,为正整数,且n=p-1,第一加法循环群G1对应的生成元为P1,第二加法循环群G2对应的生成元为P2。
在本实施例中,KGC 101可以利用随机数发生器产生(0,n)之间的随机整数ks作为主私钥,可选地,主公钥PPub-s;可以基于主私钥ks生成,具体地,可以是PPub-s=[ks]P2,其中,[ks]P2表示第二生成元P2的ks倍。
在本实施例中,发送终端102将用户的标识信息IDA发送给KGC 101,以向KGC 101申请部分私钥dA-s和部分公钥PA-s,进而基于部分私钥dA-s和部分公钥PA-s生成完整的签名私钥sA-s和签名公钥PkA-s。其中,并不对用户的标识信息IDA进行限定,例如可以是用户的手机号码、邮箱或者昵称等,对此不做限定。
在本实施例中,KGC 101可以接收发送终端102发送的用户的标识信息IDA,基于标识信息IDA和主私钥ks,计算第一临时变量t1和第二临时变量t2;具体地,可以先计算t1=H1(IDA||hid,n)+ks mod n,其中,H1表示由密码杂凑函数派生的密码函数,hid表示签名私钥生成函数识别符,IDA||hid表示对所述标识信息IDA与所述签名私钥生成函数识别符hid行拼接,IDA和hid是比特串或字节串,H1(IDA||hid,n)表示将IDA||hid和n带入所述由密码杂凑函数派生的密码函数H1求解,mod n表示模n运算,接着,可以判断第一临时变量t1是否为0;若t1=0,则重新产生主私钥ks,再次计算第一临时变量t1,并判断第一临时变量t1是否为0;若t1≠0,则计算t2= t1 -1·ks mod n;其中,t1 -1表示第一临时变量t1的逆元,“·”为乘号。
在本实施例中,KGC 101可以基于第一临时变量t1和第二临时变量t2,计算部分私钥dA-S和部分公钥PA-S,其中,部分私钥为dA-S=[t2]P1,部分公钥为PA-S=[t1]P2,其中,[i]P表示第一加法循环群G1或者第二加法循环群G2中的元素P的i倍,i为t1或t2。KGC 101计算出部分私钥dA-S和部分公钥PA-S之后,可以将部分私钥dA-S和部分公钥PA-S发送给发送终端102,以供发送终端102计算完整的签名私钥sA-s和签名公钥PkA-s。
在本实施例中,发送终端102可以接收KGC 101发送的部分私钥dA-S和部分公钥PA-S,并产生位于(0,n)之间的随机整数xA-s,将该随机整数作为秘密值,进而基于该秘密值xA-s与部分私钥dA-S计算签名私钥sA-s,签名私钥为sA-s=[xA-s]dA-s,同时,可以基于该秘密值xA-s与部分公钥PA-S,计算签名公钥PkA-s,签名公钥为PkA-s=[(xA-s)-1]PA-s,其中,[xA-s]dA-s表示部分私钥dA-s的xA-s倍,(xA-s)-1表示秘密值xA-s的逆元,[(xA-s)-1]PA-s表示部分公钥PA-s的(xA-s)-1倍。
在本申请实施例中,KGC获取发送终端用户的标识信息,并生成主私钥,利用主私钥和该标识信息生成部分私钥和部分公钥,由发送终端利用部分私钥、部分公钥以及发送终端生成的秘密值生成完整的签名公钥和签名私钥。其中,用户的签名私钥由用户的发送终端和KGC共同生成,签名私钥仅对用户的发送终端可知,且签名私钥对于KGC来说不可知,从而,可以有效地解决IBC密码系统中的密钥托管问题,提高了用户签名私钥的安全性。另外,本申请实施例提供的方法不需要多个KGC参与,相比于多个KGC参与的方法,提高了生成签名密钥的效率,且由于KGC生成的部分公钥和部分私钥无需经过多个KGC,因此,提高了部分公钥和部分私钥的安全性,进一步,可以提高生成的完整签名密钥的安全性。
在一可选实施例中,如图1b所示,发送终端102生成签名私钥sA-s和签名公钥PkA-s之后,发送终端102还可以向KGC 101发送第一请求消息,该第一请求消息,用于向KGC 101请求主公钥PPub-s。 KGC 101可以接收该第一请求消息,向发送终端102返回主公钥PPub-s。当然,KGC 101也可以将主公钥PPub-s与部分私钥dA-s和部分公钥PA-s一同提供给发送终端102,对此不做限定。
在本实施例中,发送终端102可以接收KGC 101发送的主公钥PPub-s,并利用主公钥PPub-s和签名私钥sA-s对待发送消息M进行签名,得到数字签名;将数字签名、待发送消息M和签名公钥PkA-s提供给接收终端103,以供接收终端103基于签名公钥PkA-s对数字签名进行验签。
其中,利用签名私钥sA-s对待发送消息M进行签名的过程如下:
(1)、计算乘法循环群GT的目标元素g=e(P1, PPub-s),其中,e表示从G1×G2到乘法循环群GT的双线性对函数,e(P1, PPub-s)表示将第一生成元P1和主公钥PPub-s带入该双线性对函数e中求解;
(2)产生(0,n)之间的随机数r;
(3)计算乘法循环群GT中的元素w=gr,w为第一临时公钥;
(4)计算第一部分签名h=H2(M||w,n),其中,H2表示由密码杂凑函数派生的第二密码函数,M||w表示对待签名消息M与第一临时公钥w进行拼接,H2(M||w,n)表示将M||w和n带入由密码杂凑函数派生的第二密码函数H2中求解;
(5)计算第二临时公钥q=(r-h) mod n,若q=0,则返回(2);
(6)计算第一加法循环群G1中的元素,也即第二部分签名S=[q]sA-s,[q]sA-s表示签名私钥sA-s的q倍;
(7)计算待签名消息M的完整数字签名(h,S)。
在本实施例中,如图1b所示,接收终端103可以接收发送终端发送的数字签名、待签名消息和签名公钥PkA-s,其中,接收到的数字签名用(h’,S’)表示,接收到的待签名消息用M’表示。在一可选实施例中,接收终端103可以向KGC 101发送第二请求消息,第二请求消息用于向KGC 101请求主公钥PPub-s,KGC 101接收到第二请求消息之后,可以向接收终端103返回主公钥PPub-s,接收终端103接收该主公钥PPub-s,并基于主公钥PPub-s和签名公钥PkA-s以及待签名消息M’,对接收到的数字签名(h’,S’)进行验签。
其中,接收终端103基于主公钥PPub-s和签名公钥PkA-s以及待签名消息M’,对接收到的数字签名(h’,S’)进行验签的过程如下:
(1)计算乘法循环群中的目标元素g=e(P1, PPub-s),其中,e表示从G1×G2到乘法
循环群GT的双线性对函数,e(P1, PPub-s)表示将第一生成元P1和主公钥PPub-s带入该双线性
对函数e中求解;
(2)计算乘法循环群GT中的元素,也即第一参数t=gh’;
(3)计算乘法循环群GT中的元素,也即第二参数u=e(S’,PkA-s),其中,e表示从到乘法循环群的双线性对函数,e(S’,PkA-s)表示将第二部分签名S’和签名公钥
PkA-S带入该双线性对函数e中求解;
(4)计算乘法循环群GT中的元素,也即第三参数w’=u·t;
(5)计算整数h0=H2(M’||w’,n),验证h0=h’是否成立,若成立,则认为数字签名验证
通过,否则认为数字签名验证不通过,其中,H2表示由密码杂凑函数派生的第二密码函数,
M’||w’表示接收终端103接收到的待签名消息与第五临时公钥w’的拼接, H2(M’||w’,n)
表示将M’||w’和n带入由密码杂凑函数派生的第二密码函数H2中求解。
图2为本申请示例性实施例提供的一种SM9算法无证书机制签名密钥生成方法的流程示意图,该方法适用于发送终端,如图2所示,该方法包括:
201、将用户的标识信息IDA发送给密钥生成中心KGC,以供KGC基于标识信息IDA生成部分私钥dA-s和部分公钥PA-s;其中,KGC基于第一临时变量t1=H1(IDA||hid,n)+ks mod n和第二临时变量t2= t1 -1·ks mod n,计算部分私钥dA-S=[t2]P1和部分公钥PA-S=[t1]P2;其中,H1表示由密码杂凑函数派生的密码函数,hid表示签名私钥生成函数识别符,IDA||hid表示对标识信息IDA与签名私钥生成函数识别符hid行拼接,IDA和hid是比特串或字节串,n是椭圆曲线E(Fq)上基点G的阶数,是正整数,H1(IDA||hid,n)表示将IDA||hid和n带入由密码杂凑函数派生的密码函数H1求解,ks为主私钥,是位于(0,n)之间的随机整数,mod n表示模n运算,“·”为乘号,t1 -1表示第一临时变量t1的逆元,P1是第一加法循环群G1对应的第一生成元,P2是第二加法循环群G2对应的第二生成元,[i]P表示第一加法循环群G1或者第二加法循环群G2中的元素P的i倍,i为t1或t2;
202、接收KGC发送的部分私钥dA-s和部分公钥PA-s;
203、产生位于(0,n)之间的随机整数xA-s,作为秘密值,计算签名私钥sA-s=[xA-s]dA-s和签名公钥PkA-s=[(xA-s)-1]PA-s,其中,[xA-s]dA-s表示部分私钥dA-s的xA-s倍,(xA-s)-1表示秘密值xA-s的逆元,[(xA-s)-1]PA-s表示部分公钥PA-s的(xA-s)-1倍。
在一可选实施例中,本实施例提供的方法还包括:向KGC发送请求消息,以供KGC返回主公钥PPub-s;其中,主公钥为PPub-s=[ks]P2,其中,[ks]P2表示第二生成元P2的ks倍。
在一可选实施例中,本实施例提供的方法还包括:根据主公钥PPub-s和签名私钥sA-s对待发送消息M进行签名,得到数字签名;将数字签名、待发送消息M和签名公钥PkA-s提供给接收终端,以供接收终端基于签名公钥PkA-s对数字签名进行验签。
图3为本申请示例性实施例提供的一种SM9算法无证书机制签名密钥生成方法的流程示意图,该方法适用于KGC,如图3所示,该方法包括:
301、接收发送终端发送的用户的标识信息IDA;
302、产生位于(0,n)之间的随机整数ks作为主私钥,n是椭圆曲线E(Fq)上基点G的阶数,是正整数;
303、基于标识信息IDA和主私钥ks,计算第一临时变量t1和第二临时变量t2;具体地,计算t1=H1(IDA||hid,n)+ks mod n,若t1=0,则重新产生主私钥ks,若t1≠0,则计算t2=t1 -1·ks mod n;其中,hid表示签名私钥生成函数识别符,IDA||hid表示对标识信息IDA与签名私钥生成函数识别符hid进行拼接,IDA和hid是比特串或字节串,H1表示由密码杂凑函数派生的密码函数,H1(IDA||hid,n)表示将IDA||hid和n带入由密码杂凑函数派生的密码函数求解,mod n表示模n运算,“·”为乘号,t1 -1表示第一临时变量t1的逆元;
304、根据第一临时变量t1和第二临时变量t2,计算部分私钥dA-S=[t2]P1和部分公钥PA-S=[t1]P2;其中,P1是第一加法循环群G1对应的第一生成元,P2是第一加法循环群G2对应的第二生成元,[i]P表示第一加法循环群G1或者第二加法循环群G2中的元素P的i倍,i为t1或t2;
305、将部分私钥dA-s和部分公钥PA-s发送给发送终端,以供发送终端基于部分私钥dA-s和部分公钥PA-s,计算签名私钥sA-s=[xA-s]dA-s和签名公钥PkA-s=[(xA-s)-1]PA-s,其中,[xA-s]dA-s表示部分私钥dA-s的xA-s倍,(xA-s)-1表示秘密值xA-s的逆元,[(xA-s)-1]PA-s表示部分公钥PA-s的(xA-s)-1倍。
在一可选实施例中,本实施例提供的方法还包括:接收发送终端发送的第一请求消息,向发送终端返回主公钥PPub-s;其中,主公钥为PPub-s=[ks]P2,其中,[ks]P2表示第二生成元P2的ks倍。
在一可选实施例中,本实施例提供的方法还包括:获取接收终端的第二请求消息,向接收终端返回主公钥PPub-s。
在本申请实施例中,KGC获取发送终端用户的标识信息,并生成主私钥,利用主私钥和该标识信息生成部分私钥和部分公钥,由发送终端利用部分私钥、部分公钥以及发送终端生成的秘密值生成完整的签名公钥和签名私钥。其中,用户的签名私钥由用户的发送终端和KGC共同生成,签名私钥仅对用户的发送终端可知,且签名私钥对于KGC来说不可知,从而,可以有效地解决IBC密码系统中的密钥托管问题,提高了用户签名私钥的安全性。另外,本申请实施例提供的方法不需要多个KGC参与,相比于多个KGC参与的方法,提高了生成签名密钥的效率,且由于KGC生成的部分公钥和部分私钥无需经过多个KGC,因此,提高了部分公钥和部分私钥的安全性,进一步,可以提高生成的完整签名密钥的安全性。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201至步骤203的执行主体可以为设备A;又比如,步骤201和202的执行主体可以为设备A,步骤203的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图4为本申请示例性实施例提供的一种终端设备的结构示意图。如图4所示,该终端设备包括:处理器45和存储器44。
存储器44,用于存储计算机程序,并可被配置为存储其它各种数据以支持在终端设备上的操作。这些数据的示例包括用于在终端设备上操作的任何应用程序或方法的指令。
存储器44可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器45,与存储器44耦合,用于执行存储器44中的计算机程序,以用于:将用户的标识信息IDA发送给密钥生成中心KGC,以供KGC基于标识信息IDA生成部分私钥dA-s和部分公钥PA-s;其中,KGC基于第一临时变量t1=H1(IDA||hid,n)+ks mod n和第二临时变量t2= t1 -1·ks mod n,计算部分私钥dA-S=[t2]P1和部分公钥PA-S=[t1]P2;其中,H1表示由密码杂凑函数派生的密码函数,hid表示签名私钥生成函数识别符,IDA||hid表示对标识信息IDA与签名私钥生成函数识别符hid行拼接,IDA和hid是比特串或字节串,n是椭圆曲线E(Fq)上基点G的阶数,是正整数,H1(IDA||hid,n)表示将IDA||hid和n带入由密码杂凑函数派生的密码函数H1求解,ks为主私钥,是位于(0,n)之间的随机整数,mod n表示模n运算,“·”为乘号,t1 -1表示第一临时变量t1的逆元,P1是第一加法循环群G1对应的第一生成元,P2是第二加法循环群G2对应的第二生成元,[i]P表示第一加法循环群G1或者第二加法循环群G2中的元素P的i倍,i为t1或t2;接收KGC发送的部分私钥dA-s和部分公钥PA-s;产生位于(0,n)之间的随机整数xA-s,作为秘密值,计算签名私钥sA-s=[xA-s]dA-s和签名公钥PkA-s=[(xA-s)-1]PA-s,其中,[xA-s]dA-s表示部分私钥dA-s的xA-s倍,(xA-s)-1表示秘密值xA-s的逆元,[(xA-s)-1]PA-s表示部分公钥PA-s的(xA-s)-1倍。
在一可选实施例中,处理器45还用于:向KGC发送请求消息,以供KGC返回主公钥PPub-s;其中,主公钥为PPub-s=[ks]P2,其中,[ks]P2表示第二生成元P2的ks倍。
在一可选实施例中,处理器45还用于:根据主公钥PPub-s和签名私钥sA-s对待发送消息M进行签名,得到数字签名;将数字签名、待发送消息M和签名公钥PkA-s提供给接收终端,以供接收终端基于签名公钥PkA-s对数字签名进行验签。
进一步,如图4所示,该终端设备还包括:通信组件46、显示器47、电源组件48、音频组件49等其它组件。图4中仅示意性给出部分组件,并不意味着终端设备只包括图4所示组件。需要说明的是,图4中虚线框内的组件为可选组件,而非必选组件,具体可视终端设备的产品形态而定。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现图2所示方法实施例中可由终端设备执行的各步骤。
图5为本申请示例性实施例提供的一种密钥生成设备的结构示意图。如图5所示,该终端设备包括:处理器55和存储器54。
存储器54,用于存储计算机程序,并可被配置为存储其它各种数据以支持在密钥生成设备上的操作。这些数据的示例包括用于在密钥生成设备上操作的任何应用程序或方法的指令。
存储器54可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器55,与存储器54耦合,用于执行存储器54中的计算机程序,以用于:接收发送终端发送的用户的标识信息IDA;产生位于(0,n)之间的随机整数ks作为主私钥,n是椭圆曲线E(Fq)上基点G的阶数,是正整数;基于标识信息IDA和主私钥ks,计算第一临时变量t1和第二临时变量t2;具体地,计算t1=H1(IDA||hid,n)+ks mod n,若t1=0,则重新产生主私钥ks,若t1≠0,则计算t2= t1 -1·ks mod n;其中,hid表示签名私钥生成函数识别符,IDA||hid表示对标识信息IDA与签名私钥生成函数识别符hid进行拼接,IDA和hid是比特串或字节串,H1表示由密码杂凑函数派生的密码函数,H1(IDA||hid,n)表示将IDA||hid和n带入由密码杂凑函数派生的密码函数求解,mod n表示模n运算,“·”为乘号,t1 -1表示第一临时变量t1的逆元;根据第一临时变量t1和第二临时变量t2,计算部分私钥dA-S=[t2]P1和部分公钥PA-S=[t1]P2;其中,P1是第一加法循环群G1对应的第一生成元,P2是第一加法循环群G2对应的第二生成元,[i]P表示第一加法循环群G1或者第二加法循环群G2中的元素P的i倍,i为t1或t2;将部分私钥dA-s和部分公钥PA-s发送给发送终端,以供发送终端基于部分私钥dA-s和部分公钥PA-s,计算签名私钥sA-s=[xA-s]dA-s和签名公钥PkA-s=[(xA-s)-1]PA-s,其中,[xA-s]dA-s表示部分私钥dA-s的xA-s倍,(xA-s)-1表示秘密值xA-s的逆元,[(xA-s)-1]PA-s表示部分公钥PA-s的(xA-s)-1倍。
在一可选实施例中,处理器55还用于:接收发送终端发送的第一请求消息,向发送终端返回主公钥PPub-s;其中,主公钥为PPub-s=[ks]P2,其中,[ks]P2表示第二生成元P2的ks倍。
在一可选实施例中,处理器55还用于:获取接收终端的第二请求消息,向接收终端返回主公钥PPub-s。
进一步,如图5所示,该密钥生成设备还包括:通信组件56、显示器57、电源组件58、音频组件59等其它组件。图5中仅示意性给出部分组件,并不意味着密钥生成设备只包括图5所示组件。需要说明的是,图5中虚线框内的组件为可选组件,而非必选组件,具体可视密钥生成设备的产品形态而定。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现图3所示方法实施例中可由密钥生成设备执行的各步骤。
上述图4和图5中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述图4和图5中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述图4和图5中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述图4和图5中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (6)
1.一种SM9算法无证书机制签名密钥生成方法,适用于发送终端,其特征在于,包括:
将用户的标识信息IDA发送给密钥生成中心KGC,以供所述KGC基于所述标识信息IDA生成部分私钥dA-s和部分公钥PA-s;
其中,所述KGC基于第一临时变量t1=H1(IDA||hid,n)+ks mod n和第二临时变量t2=t1 -1·ks mod n,计算部分私钥dA-S=[t2]P1和部分公钥PA-S=[t1]P2;其中,H1表示由密码杂凑函数派生的密码函数,hid表示签名私钥生成函数识别符,IDA||hid表示对所述标识信息IDA与所述签名私钥生成函数识别符hid行拼接,IDA和hid是比特串或字节串,n是椭圆曲线E(Fq)上基点G的阶数,是正整数,H1(IDA||hid,n)表示将IDA||hid和n带入所述由密码杂凑函数派生的密码函数H1求解,ks为主私钥,是位于(0,n)之间的随机整数,mod n表示模n运算,“·”为乘号,t1 -1表示第一临时变量t1的逆元,P1是第一加法循环群G1对应的第一生成元,P2是第二加法循环群G2对应的第二生成元,[i]P表示第一加法循环群G1或者第二加法循环群G2中的元素P的i倍,i为t1或t2;
接收所述KGC发送的部分私钥dA-s和部分公钥PA-s;
产生位于(0,n)之间的随机整数xA-s,作为秘密值,计算签名私钥sA-s=[xA-s]dA-s和签名公钥PkA-s=[(xA-s)-1]PA-s,其中,[xA-s]dA-s表示部分私钥dA-s的xA-s倍,(xA-s)-1表示秘密值xA-s的逆元,[(xA-s)-1]PA-s表示部分公钥PA-s的(xA-s)-1倍;
向所述KGC发送请求消息,以供所述KGC返回主公钥PPub-s;其中,所述主公钥为PPub-s=[ks]P2,其中,[ks]P2表示第二生成元P2的ks倍;
根据所述主公钥PPub-s和所述签名私钥sA-s对待发送消息M进行签名,得到数字签名;
将所述数字签名、待发送消息M和所述签名公钥PkA-s提供给接收终端,以供所述接收终端基于所述签名公钥PkA-s对所述数字签名进行验签;
其中,利用签名私钥sA-s对待发送消息M进行签名的过程如下:
(1)、计算乘法循环群GT的目标元素g=e(P1,PPub-s),其中,e表示从G1×G2到乘法循环群GT的双线性对函数,e(P1,PPub-s)表示将第一生成元P1和主公钥PPub-s带入该双线性对函数e中求解;
(2)产生(0,n)之间的随机数r;
(3)计算乘法循环群GT中的元素w=gr,w为第一临时公钥;
(4)计算第一部分签名h=H2(M||w,n),其中,H2表示由密码杂凑函数派生的第二密码函数,M||w表示对待签名消息M与第一临时公钥w进行拼接,H2(M||w,n)表示将M||w和n带入由密码杂凑函数派生的第二密码函数H2中求解;
(5)计算第二临时公钥q=(r-h)mod n,若q=0,则返回(2);
(6)计算第一加法循环群G1中的元素,也即第二部分签名S=[q]sA-s,[q]sA-s表示签名私钥sA-s的q倍;
(7)计算待签名消息M的完整数字签名(h,S)。
2.一种SM9算法无证书机制签名密钥生成方法,适用于密钥生成中心KGC,其特征在于,包括:
接收发送终端发送的用户的标识信息IDA;
产生位于(0,n)之间的随机整数ks作为主私钥,n是椭圆曲线E(Fq)上基点G的阶数,是正整数;
基于所述标识信息IDA和所述主私钥ks,计算第一临时变量t1和第二临时变量t2;具体地,计算t1=H1(IDA||hid,n)+ks mod n,若t1=0,则重新产生主私钥ks,若t1≠0,则计算t2=t1 -1·ks mod n;其中,hid表示签名私钥生成函数识别符,IDA||hid表示对所述标识信息IDA与所述签名私钥生成函数识别符hid进行拼接,IDA和hid是比特串或字节串,H1表示由密码杂凑函数派生的密码函数,H1(IDA||hid,n)表示将IDA||hid和n带入所述由密码杂凑函数派生的密码函数求解,mod n表示模n运算,“·”为乘号,t1 -1表示第一临时变量t1的逆元;
根据第一临时变量t1和第二临时变量t2,计算部分私钥dA-S=[t2]P1和部分公钥PA-S=[t1]P2;其中,P1是第一加法循环群G1对应的第一生成元,P2是第一加法循环群G2对应的第二生成元,[i]P表示第一加法循环群G1或者第二加法循环群G2中的元素P的i倍,i为t1或t2;
将所述部分私钥dA-s和所述部分公钥PA-s发送给所述发送终端,以供所述发送终端基于所述部分私钥dA-s和所述部分公钥PA-s,计算签名私钥sA-s=[xA-s]dA-s和签名公钥PkA-s=[(xA-s)-1]PA-s,其中,[xA-s]dA-s表示部分私钥dA-s的xA-s倍,(xA-s)-1表示秘密值xA-s的逆元,[(xA-s)-1]PA-s表示部分公钥PA-s的(xA-s)-1倍;
接收所述发送终端发送的第一请求消息,向所述发送终端返回主公钥PPub-s,以供所述发送终端根据所述主公钥PPub-s和所述签名私钥sA-s对待发送消息M进行签名,得到数字签名,以及将所述数字签名、待发送消息M和所述签名公钥PkA-s提供给接收终端,以供所述接收终端基于所述签名公钥PkA-s对所述数字签名进行验签;其中,所述主公钥为PPub-s=[ks]P2,其中,[ks]P2表示第二生成元P2的ks倍;
其中,利用签名私钥sA-s对待发送消息M进行签名的过程如下:
(1)、计算乘法循环群GT的目标元素g=e(P1,PPub-s),其中,e表示从G1×G2到乘法循环群GT的双线性对函数,e(P1,PPub-s)表示将第一生成元P1和主公钥PPub-s带入该双线性对函数e中求解;
(2)产生(0,n)之间的随机数r;
(3)计算乘法循环群GT中的元素w=gr,w为第一临时公钥;
(4)计算第一部分签名h=H2(M||w,n),其中,H2表示由密码杂凑函数派生的第二密码函数,M||w表示对待签名消息M与第一临时公钥w进行拼接,H2(M||w,n)表示将M||w和n带入由密码杂凑函数派生的第二密码函数H2中求解;
(5)计算第二临时公钥q=(r-h)mod n,若q=0,则返回(2);
(6)计算第一加法循环群G1中的元素,也即第二部分签名S=[q]sA-s,[q]sA-s表示签名私钥sA-s的q倍;
(7)计算待签名消息M的完整数字签名(h,S)。
3.根据权利要求2所述的方法,其特征在于,还包括:
获取接收终端的第二请求消息,向所述接收终端返回主公钥PPub-s。
4.一种终端设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:
将用户的标识信息IDA发送给密钥生成中心KGC,以供所述KGC基于所述标识信息IDA生成部分私钥dA-s和部分公钥PA-s;
其中,所述KGC基于第一临时变量t1=H1(IDA||hid,n)+ks mod n和第二临时变量t2=t1 -1·ks mod n,计算部分私钥dA-S=[t2]P1和部分公钥PA-S=[t1]P2;其中,H1表示由密码杂凑函数派生的密码函数,hid表示签名私钥生成函数识别符,IDA||hid表示对所述标识信息IDA与所述签名私钥生成函数识别符hid行拼接,IDA和hid是比特串或字节串,n是椭圆曲线E(Fq)上基点G的阶数,是正整数,H1(IDA||hid,n)表示将IDA||hid和n带入所述由密码杂凑函数派生的密码函数H1求解,ks为主私钥,是位于(0,n)之间的随机整数,mod n表示模n运算,“·”为乘号,t1 -1表示第一临时变量t1的逆元,P1是第一加法循环群G1对应的第一生成元,P2是第二加法循环群G2对应的第二生成元,[i]P表示第一加法循环群G1或者第二加法循环群G2中的元素P的i倍,i为t1或t2;
接收所述KGC发送的部分私钥dA-s和部分公钥PA-s;
产生位于(0,n)之间的随机整数xA-s,作为秘密值,计算签名私钥sA-s=[xA-s]dA-s和签名公钥PkA-s=[(xA-s)-1]PA-s,其中,[xA-s]dA-s表示部分私钥dA-s的xA-s倍,(xA-s)-1表示秘密值xA-s的逆元,[(xA-s)-1]PA-s表示部分公钥PA-s的(xA-s)-1倍;
向所述KGC发送请求消息,以供所述KGC返回主公钥PPub-s;其中,所述主公钥为PPub-s=[ks]P2,其中,[ks]P2表示第二生成元P2的ks倍;
根据所述主公钥PPub-s和所述签名私钥sA-s对待发送消息M进行签名,得到数字签名;
将所述数字签名、待发送消息M和所述签名公钥PkA-s提供给接收终端,以供所述接收终端基于所述签名公钥PkA-s对所述数字签名进行验签;
其中,利用签名私钥sA-s对待发送消息M进行签名的过程如下:
(1)、计算乘法循环群GT的目标元素g=e(P1,PPub-s),其中,e表示从G1×G2到乘法循环群GT的双线性对函数,e(P1,PPub-s)表示将第一生成元P1和主公钥PPub-s带入该双线性对函数e中求解;
(2)产生(0,n)之间的随机数r;
(3)计算乘法循环群GT中的元素w=gr,w为第一临时公钥;
(4)计算第一部分签名h=H2(M||w,n),其中,H2表示由密码杂凑函数派生的第二密码函数,M||w表示对待签名消息M与第一临时公钥w进行拼接,H2(M||w,n)表示将M||w和n带入由密码杂凑函数派生的第二密码函数H2中求解;
(5)计算第二临时公钥q=(r-h)mod n,若q=0,则返回(2);
(6)计算第一加法循环群G1中的元素,也即第二部分签名S=[q]sA-s,[q]sA-s表示签名私钥sA-s的q倍;
(7)计算待签名消息M的完整数字签名(h,S)。
5.一种密钥生成设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:
接收发送终端发送的用户的标识信息IDA;
产生位于(0,n)之间的随机整数ks作为主私钥,n是椭圆曲线E(Fq)上基点G的阶数,是正整数;
基于所述标识信息IDA和所述主私钥ks,计算第一临时变量t1和第二临时变量t2;具体地,计算t1=H1(IDA||hid,n)+ks mod n,若t1=0,则重新产生主私钥ks,若t1≠0,则计算t2=t1 -1·ks mod n;其中,hid表示签名私钥生成函数识别符,IDA||hid表示对所述标识信息IDA与所述签名私钥生成函数识别符hid进行拼接,IDA和hid是比特串或字节串,H1表示由密码杂凑函数派生的密码函数,H1(IDA||hid,n)表示将IDA||hid和n带入所述由密码杂凑函数派生的密码函数求解,mod n表示模n运算,“·”为乘号,t1 -1表示第一临时变量t1的逆元;
根据第一临时变量t1和第二临时变量t2,计算部分私钥dA-S=[t2]P1和部分公钥PA-S=[t1]P2;其中,P1是第一加法循环群G1对应的第一生成元,P2是第一加法循环群G2对应的第二生成元,[i]P表示第一加法循环群G1或者第二加法循环群G2中的元素P的i倍,i为t1或t2;
将所述部分私钥dA-s和所述部分公钥PA-s发送给所述发送终端,以供所述发送终端基于所述部分私钥dA-s和所述部分公钥PA-s,计算签名私钥sA-s=[xA-s]dA-s和签名公钥PkA-s=[(xA-s)-1]PA-s,其中,[xA-s]dA-s表示部分私钥dA-s的xA-s倍,(xA-s)-1表示秘密值xA-s的逆元,[(xA-s)-1]PA-s表示部分公钥PA-s的(xA-s)-1倍;
接收所述发送终端发送的第一请求消息,向所述发送终端返回主公钥PPub-s,以供所述发送终端根据所述主公钥PPub-s和所述签名私钥sA-s对待发送消息M进行签名,得到数字签名,以及将所述数字签名、待发送消息M和所述签名公钥PkA-s提供给接收终端,以供所述接收终端基于所述签名公钥PkA-s对所述数字签名进行验签;其中,所述主公钥为PPub-s=[ks]P2,其中,[ks]P2表示第二生成元P2的ks倍;
其中,利用签名私钥sA-s对待发送消息M进行签名的过程如下:
(1)、计算乘法循环群GT的目标元素g=e(P1,PPub-s),其中,e表示从G1×G2到乘法循环群GT的双线性对函数,e(P1,PPub-s)表示将第一生成元P1和主公钥PPub-s带入该双线性对函数e中求解;
(2)产生(0,n)之间的随机数r;
(3)计算乘法循环群GT中的元素w=gr,w为第一临时公钥;
(4)计算第一部分签名h=H2(M||w,n),其中,H2表示由密码杂凑函数派生的第二密码函数,M||w表示对待签名消息M与第一临时公钥w进行拼接,H2(M||w,n)表示将M||w和n带入由密码杂凑函数派生的第二密码函数H2中求解;
(5)计算第二临时公钥q=(r-h)mod n,若q=0,则返回(2);
(6)计算第一加法循环群G1中的元素,也即第二部分签名S=[q]sA-s,[q]sA-s表示签名私钥sA-s的q倍;
(7)计算待签名消息M的完整数字签名(h,S)。
6.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求1-3任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110138393.2A CN112511566B (zh) | 2021-02-02 | 2021-02-02 | Sm9算法无证书机制签名密钥生成方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110138393.2A CN112511566B (zh) | 2021-02-02 | 2021-02-02 | Sm9算法无证书机制签名密钥生成方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112511566A CN112511566A (zh) | 2021-03-16 |
CN112511566B true CN112511566B (zh) | 2022-08-26 |
Family
ID=74952562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110138393.2A Active CN112511566B (zh) | 2021-02-02 | 2021-02-02 | Sm9算法无证书机制签名密钥生成方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112511566B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112926075B (zh) * | 2021-03-26 | 2023-01-24 | 成都卫士通信息产业股份有限公司 | 一种sm9密钥生成方法、装置、设备及存储介质 |
CN112966291A (zh) * | 2021-04-13 | 2021-06-15 | 宁波和利时信息安全研究院有限公司 | 一种身份管理方法、工业控制系统和存储介质 |
CN113190862B (zh) * | 2021-05-10 | 2023-01-06 | 成都卫士通信息产业股份有限公司 | 基于sm2的无证书密钥生成方法、装置、电子设备及介质 |
CN113259103B (zh) * | 2021-06-16 | 2021-11-09 | 北京信安世纪科技股份有限公司 | 签名方法及装置、验证方法及装置、设备及存储介质 |
CN113572612B (zh) * | 2021-06-22 | 2023-01-31 | 南京南瑞信息通信科技有限公司 | 一种国密sm9算法私钥分发方法、用户终端和密钥生成中心 |
CN113726503B (zh) * | 2021-07-12 | 2023-11-14 | 国网山东省电力公司信息通信公司 | 一种保护web交互信息的方法及系统 |
CN113595723B (zh) * | 2021-07-27 | 2024-03-08 | 南京讯石数据科技有限公司 | 一种基于标识的ecc密钥对生成方法 |
CN113837756A (zh) * | 2021-09-23 | 2021-12-24 | 航天信息股份有限公司 | 一种电子发票验证方法和系统 |
CN113872760A (zh) * | 2021-11-03 | 2021-12-31 | 中电科鹏跃电子科技有限公司 | 一种sm9秘钥基础设施及安全系统 |
CN114301585B (zh) * | 2021-11-17 | 2024-01-05 | 北京智芯微电子科技有限公司 | 标识私钥的使用方法、生成方法和管理系统 |
CN114244504B (zh) * | 2021-12-01 | 2023-05-05 | 福建师范大学 | 基于Twin-SM9密钥封装机制的外包解密及多密文批量审计方法 |
CN114499887B (zh) * | 2022-02-15 | 2024-04-26 | 北京无字天书科技有限公司 | 签名密钥生成及相关方法、系统、计算机设备和存储介质 |
CN114845301A (zh) * | 2022-04-28 | 2022-08-02 | 微位(深圳)网络科技有限公司 | 基于超级sim卡的号码验证方法、终端及系统 |
CN114697046B (zh) * | 2022-06-01 | 2022-09-30 | 湖南三湘银行股份有限公司 | 基于国密sm9的安全认证方法及系统 |
CN115001711B (zh) * | 2022-06-10 | 2024-01-30 | 成都卫士通信息产业股份有限公司 | 信息签名方法、装置、电子设备及计算机可读存储介质 |
CN115174054B (zh) * | 2022-06-23 | 2024-04-19 | 武汉大学 | 一种基于sm9签名的无证书签名生成方法及装置 |
CN115549904B (zh) * | 2022-10-11 | 2024-09-24 | 北京无字天书科技有限公司 | 密钥生成方法及相关方法、计算机设备和存储介质 |
CN116318738B (zh) * | 2023-05-18 | 2023-09-05 | 北京信安世纪科技股份有限公司 | 签名方法、系统、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10673625B1 (en) * | 2019-06-15 | 2020-06-02 | University Of South Florida | Efficient identity-based and certificateless cryptosystems |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107566128A (zh) * | 2017-10-10 | 2018-01-09 | 武汉大学 | 一种两方分布式sm9数字签名生成方法与系统 |
CN108551392B (zh) * | 2018-04-13 | 2021-07-06 | 武汉大学 | 一种基于sm9数字签名的盲签名生成方法及系统 |
CN110311776B (zh) * | 2019-06-21 | 2022-03-22 | 矩阵元技术(深圳)有限公司 | 范围证明方法、装置、计算机设备和存储介质 |
CN110943845A (zh) * | 2019-11-25 | 2020-03-31 | 武汉大学 | 一种轻量级两方协同产生sm9签名的方法及介质 |
CN111740828B (zh) * | 2020-07-29 | 2021-02-12 | 北京信安世纪科技股份有限公司 | 一种密钥生成方法以及装置、设备、加解密方法 |
-
2021
- 2021-02-02 CN CN202110138393.2A patent/CN112511566B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10673625B1 (en) * | 2019-06-15 | 2020-06-02 | University Of South Florida | Efficient identity-based and certificateless cryptosystems |
Also Published As
Publication number | Publication date |
---|---|
CN112511566A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112511566B (zh) | Sm9算法无证书机制签名密钥生成方法、设备及存储介质 | |
CN112822014B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US8429408B2 (en) | Masking the output of random number generators in key generation protocols | |
CN101351988B (zh) | 签名生成装置、签名生成方法 | |
CA2772136C (en) | System and method for providing credentials | |
CN102307096B (zh) | 一种基于伪rsa密钥的新近公开密钥加密算法的数据加密系统 | |
CN107425971B (zh) | 无证书的数据加/解密方法和装置、终端 | |
US12095907B2 (en) | Guaranteed encryptor authenticity | |
WO2013053058A1 (en) | Generating implicit certificates | |
CN111130787B (zh) | 数字签名方法、设备和存储介质 | |
CN112564907A (zh) | 密钥生成方法及装置、加密方法及装置、解密方法及装置 | |
CN111654481B (zh) | 一种身份认证方法、装置和存储介质 | |
CN114900304A (zh) | 数字签名方法和装置、电子设备和计算机可读存储介质 | |
CN117319086B (zh) | 不经意传输系统、方法、电子设备及存储介质 | |
JP2956709B2 (ja) | 公開鍵生成方法及び装置 | |
CN112364335B (zh) | 标识身份鉴别方法、装置及电子设备和存储介质 | |
CN114037447A (zh) | 离线交易的方法和装置 | |
KR101802826B1 (ko) | Id 기반 인증 및 키 교환 방법 | |
CA2742530C (en) | Masking the output of random number generators in key generation protocols | |
CN117078255A (zh) | 数字资产匿名支付方法、装置、设备及介质 | |
CN111010283A (zh) | 用于生成信息的方法和装置 | |
CN114697001B (zh) | 一种基于区块链的信息加密传输方法、设备及介质 | |
CN115664651A (zh) | 基于sm9的在线离线加解密方法、系统、设备及介质 | |
Albasheer et al. | Enhanced model for PKI certificate validation in the mobile banking | |
CN112713989B (zh) | 一种解密方法及装置 |
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 |