CN114499887B - 签名密钥生成及相关方法、***、计算机设备和存储介质 - Google Patents
签名密钥生成及相关方法、***、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114499887B CN114499887B CN202210138255.9A CN202210138255A CN114499887B CN 114499887 B CN114499887 B CN 114499887B CN 202210138255 A CN202210138255 A CN 202210138255A CN 114499887 B CN114499887 B CN 114499887B
- Authority
- CN
- China
- Prior art keywords
- key
- user
- signature
- data
- generating
- 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
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000012795 verification Methods 0.000 claims abstract description 24
- 238000004590 computer program Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000010586 diagram Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- 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
-
- 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
本发明提供一种签名密钥生成方法以及相应的签名密钥生成***、数字签名生成方法、数字签名验证方法、数字签名生成***、数字签名验证***、计算机设备和计算机可读存储介质,所述签名密钥生成方法包括:通过第一密钥生成中心KGC1和第二密钥生成中心KGC2:生成***参数;生成签名私钥和用户签名主公钥。所述签名密钥生成方法实现了用户对签名密钥的有效控制,解决了在单KGC下,KGC对用户签名密钥的完全掌控,即用户密钥的托管问题的安全问题。
Description
技术领域
本发明属于数据安全技术领域,特别涉及一种SM9用户的签名密钥生成方法以及相应的签名密钥生成***、数字签名生成方法、数字签名验证方法、数字签名生成***、数字签名验证***、计算机设备和计算机可读存储介质。
背景技术
SM9标识密码算法是国家密码管理局于2016年发布的一种基于标识的密码算法。SM9标识密码算法使用用户标识作为用户签名的公钥,用户私钥由密钥生成中心(KGC)根据用户标识和KGC生成的主私钥生成。由于使用用户标识作为用户签名公钥,与传统的基于证书的公钥基础设施(Public Key Infrastructure,PKI)体系相比,SM9标识密码算法在证书管理环节得到了一定的简化。
SM9标识密码算法包括数字签名、密钥交换、密钥封装以及加解密算法。其中,用户签名密钥由KGC根据用户标识和KGC的签名主私钥生成。因此KGC承担了整个***中用户签名密钥的生成。上述技术的问题在于,用户对用户签名密钥的生成无法进行控制,进而影响用户签名密钥的安全性。
发明内容
针对上述问题,本发明提供一种SM9用户的签名密钥生成方法。
本发明提供的签名密钥生成方法,包括:
通过第一密钥生成中心KGC1和第二密钥生成中心KGC2:
生成***参数;
生成签名私钥和用户签名主公钥。
进一步,
所述生成***参数包括:
通过所述第一密钥生成中心KGC1生成第一签名主私钥ks1和第一签名主公钥Ppubs1;
通过所述第二密钥生成中心KGC2生成第二签名主私钥ks2和第二签名主公钥Ppubs2。
进一步,
所述第一签名主私钥ks1为随机整数,且ks1∈[1,N-1],其中N为素数;设群G2是阶为N的加法循环群,则所述第一签名主公钥Ppubs1为所述群G2中的元素;
所述第二签名主私钥ks2为随机整数,且ks2∈[1,N-1],其中,所述第二签名主公钥Ppubs2为所述群G2中的元素。
进一步,
所述第一签名主公钥Ppubs1满足
Ppubs1=[ks1]×P2 (1),
式(1)中,P2为所述群G2的生成元,方括号[]的含义代表椭圆曲线上的倍点运算,方括号[]中的数为整数,P2是椭圆曲线上的点,后面各等式中的方括号[]与所述式(1)中方括号[]的含义相同;
所述第二签名主公钥Ppubs2满足
Ppubs2=[ks2]×P2 (2)。
进一步,
通过所述第一密钥生成中心KGC1计算公共主密钥Ppubs=[ks1]×Ppubs2,
通过所述第二密钥生成中心KGC2计算公共主密钥Ppubs=[ks2]×Ppubs1。
进一步,
选择公共参数α,所述公共参数α为模N的二次非剩余,N为SM9中加法循环群G1和乘法循环群GT的阶,
其中,
由所述第一密钥生成中心KGC1和第二密钥生成中心KGC2协商生成所述公共参数α。
进一步,
公开发布所述第一签名主公钥Ppubs1、第二签名主公钥Ppubs2、公共主密钥Ppubs和公共参数α。
进一步,
所述生成签名私钥和用户签名主公钥包括:
设定用户标识IDA;
利用
h1=H1(IDA||hid,N)
计算得到h1,其中,H1(IDA||hid,N)为密码函数,其计算过程为把任意的用户标识IDA通过函数H1映射为一个256比特的整数,||表示将数据的字节串合并,hid为函数识别符,hid由所述第一密钥生成中心KGC1和第二密钥生成中心KGC2协商选择并公开。
进一步,
若h1是模N的平方元,即h1≡(h2)mod N,≡为同余号,其中,x mod y代表x对y的求余运算,且设h是两个平方根中较大的一个,则采用下列步骤:
A1、用户生成256比特的随机整数rA,rA∈[1,N-1],再由
Q=[rA]×P1
计算得到数据Q,然后用户向所述第一密钥生成中心KGC1发出申请和所述数据Q,所述第一密钥生成中心KGC1接收到所述申请和所述数据Q后,生成256比特的随机整数r,r∈[1,N-1],由
s=(r×(h+ks1)-1)mod N
和T=[r-1mod N]×Q
计算得到数据s和T,并将所述数据s和T发送给用户,其中,P1是群G1的生成元,所述申请为生成用户签名私钥所需的数据的申请;
A2、用户向所述第二密钥生成中心KGC2发送所述数据T,所述第二密钥生成中心KGC2由
R=[(h+ks2)-1mod N]×T
计算得到数据R,并将所述数据R发送给用户;
A3、用户由
dsA=P1-[(rA -1×h1×s)mod N]×R计算得到第一用户签名私钥dsA;
A4、用户由
PpubsA=[h]×Ppubs1+[h]×Ppubs2+Ppubs计算得到第一用户签名主公钥PpubsA。
进一步,
若h1是模N的非平方元,则αh1是模N的平方元,即αh1≡(hh2)×mod N,且设hh是两个平方根中较大的一个,则采用下列步骤:
B1、用户生成256比特的随机整数rrA,rrA∈[1,N-1],再由
QQ=[rrA]×P1
计算得到数据QQ,然后用户向所述第一密钥生成中心KGC1发出申请和所述数据QQ,所述第一密钥生成中心KGC1接收到所述申请和所述数据QQ后,生成256比特的随机整数rr,rr∈[1,N-1],由
ss=(rr×(hh+ks1)-1)mod N
和TT=[rr-1mod N]×QQ
计算得到数据ss和TT,并将所述数据ss和TT发送给用户,其中,P1是群G1的生成元,所述申请为生成用户签名私钥所需的数据的申请;
B2、用户向所述第二密钥生成中心KGC2发送所述数据TT,所述第二密钥生成中心KGC2由
RR=[(hh+ks2)-1mod N]×TT
计算得到数据RR,并将所述数据RR发送给用户;
B3、用户由
dsAA=P1-[(rrA -1×α×h1×ss)mod N]×RR计算得到第二用户签名私钥dsAA;
B4、用户由
PpubsAA=[(α-1×hh)mod N]×Ppubs1+[(α-1×hh)mod N]×Ppubs2+[α-1mod N]×Ppubs计算得到第二用户签名主公钥PpubsAA。
本发明还提供一种签名密钥生成***,所述签名密钥生成***用于实现上述的签名密钥生成方法,所述签名密钥生成***包括:第一密钥生成中心KGC1和第二密钥生成中心KGC2。
本发明还提供一种数字签名生成方法,所述数字签名生成方法采用上述的签名密钥生成方法对消息进行数字签名。
本发明还提供一种数字签名验证方法,所述数字签名验证方法采用上述的签名密钥生成方法对消息进行数字签名验证。
本发明还提供一种数字签名生成***,所述数字签名生成***用于实现上述的数字签名生成方法,所述数字签名生成***包括:上述的签名密钥生成***。
本发明还提供一种数字签名验证***,所述数字签名验证***用于实现上述的数字签名验证方法,所述数字签名验证***包括:上述的签名密钥生成***。
本发明还提供一种计算机设备,所述计算机设备包括储存器、第一处理器及储存在所述存储器上并可在所述第一处理器上运行的第一计算机程序,所述第一计算机程序被所述第一处理器执行时实现下列方法的一种或几种:
上述的签名密钥生成方法;
上述的数字签名生成方法;
上述的数字签名验证方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质用于储存第二计算机程序,所述第二计算机程序可被至少一个第二处理器所执行,以使所述至少一个第二处理器执行下列方法的一种或几种:
上述的签名密钥生成方法;
上述的数字签名生成方法;
上述的数字签名验证方法。
本发明提供的签名密钥生成方法通过部署双KGC计算用户签名密钥,并且双KGC之间不通信,避免了双KGC之间相互通讯影响安全性;用户签名密钥仅在用户掌控的计算设备中合成,任何一方KGC均不能计算出用户的签名密钥;从而实现了用户对签名密钥的有效控制,解决了在单KGC下,KGC对用户签名密钥的完全掌控,即用户密钥的托管问题的安全问题。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明实施例的签名密钥生成方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
下面参照附图来详细说明本发明提供的SM9用户的签名密钥生成方法。图1为本发明的签名密钥生成方法的流程示意图,参见图1,所述签名密钥生成方法包括以下步骤:
一、生成***参数;
二、生成签名私钥和用户签名主公钥。
其中,上述步骤一,即生成***参数包括:
S1.通过双密钥生成中心KGC1和KGC2分别生成***参数。
通过第一密钥生成中心KGC1生成第一***参数(即图1中***参数1),所述第一***参数包括第一签名主私钥ks1和第一签名主公钥Ppubs1。第一签名主私钥ks1为随机整数,且ks1∈[1,N-1],其中N为素数。设群G2是阶为N的加法循环群,则Ppubs1为群G2中的元素,且满足
Ppubs1=[ks1]×P2 (1),
式(1)中,P2为群G2的生成元,方括号[]的含义代表椭圆曲线上的倍点运算,方括号[]中的数ks为整数,P2是椭圆曲线上的点,具体参见标准GM/T0044-2016《SM9标识密码算法》中的第3节。本发明中,后面各等式中方括号[]的含义均与上述式(1)中方括号[]的含义相同,代表椭圆曲线上的倍点运算。
同理,通过第二密钥生成中心KGC2生成第二***参数(即图1中***参数2),第二***参数包括第二签名主私钥ks2和第二签名主公钥Ppubs2。第二签名主私钥ks2为随机整数,且ks2∈[1,N-1],且满足
Ppubs2=[ks2]×P2 (2)。
S2.通过双密钥生成中心KGC1和KGC2分别计算得到公共主密钥Ppubs。
通过第一密钥生成中心KGC1计算Ppubs=[ks1]×Ppubs2,
通过第二密钥生成中心KGC2计算Ppubs=[ks2]×Ppubs1。
第一密钥生成中心KGC1和第二密钥生成中心KGC2生成的公共主密钥相同,均为Ppubs。
S3.选择公共参数α。
公共参数α为模N的二次非剩余,由第一密钥生成中心KGC1和第二密钥生成中心KGC2线下协商沟通,随机选择。参见标准GM/T0044-2016《SM9标识密码算法》,N为SM9中群G1(阶为素数N的加法循环群)、G2(阶为素数N的加法循环群)和GT(阶为素数N的乘法循环群)的阶。
S4.将参数Ppubs1,Ppubs2,Ppubs和α公开发布。
可通过第一密钥生成中心KGC1公开第一签名主公钥Ppubs1,通过第二密钥生成中心KGC2公开第二签名主公钥Ppubs2,通过第一密钥生成中心KGC1或/和第二密钥生成中心KGC2公共主密钥Ppubs和公共参数α。也可通过其它装置或模块公开参数Ppubs1,Ppubs2,Ppubs和α。
上述步骤二、即生成用户签名私钥dsA和用户签名主公钥PpubsA包括:
设定用户标识IDA,用户标识IDA可以是身份证号,手机号等数码信息。用户标识IDA用于唯一确定用户A的用户签名密钥,用户A的用户签名密钥与第一密钥生成中心KGC1和第二密钥生成中心KGC2的主密钥(ks1和ks2)相关,在***主参数确定的情况下唯一确定;
利用
h1=H1(IDA||hid,N)
计算得到h1,其中,H1(IDA||hid,N)为GM/T0044-2016《SM9标识密码算法》中5.4.2.2定义的密码函数,其计算过程为把任意的用户标识IDA通过函数H1映射为一个256比特的整数,||表示将数据的字节串合并,hid为GM/T0044-2016《SM9标识密码算法》中定义的函数识别符,为固定值且由第一密钥生成中心KGC1和第二密钥生成中心KGC2协商选择并公开。
根据h1是否为模N的平方元,分别采取不同的方法生成用户签名私钥dsA和用户签名主公钥PpubsA:
方法A、若h1是模N的平方元,即h1≡(h2)mod N,≡为同余号,其中,x mod y代表x对y的求余运算,且设h是两个平方根中较大的一个,则采用下列步骤:
A1、用户生成256比特的随机整数rA,rA∈[1,N-1],再由
Q=[rA]×P1
计算得到数据Q,然后用户向第一密钥生成中心KGC1发送所述数据Q,并申请生成用户签名私钥所需的数据,第一密钥生成中心KGC1接收到用户的申请后,生成256比特的随机整数r,r∈[1,N-1],由
s=(r×(h+ks1)-1)mod N
和T=[r-1mod N]×Q
计算得到s和T,并将s和T发送给用户,其中,P1是群G1的生成元。在本步骤中,用户生成的数据Q为随机数据,用户把数据Q发送给KGC1,在后面的步骤中合成第一用户私钥(包括第一用户签名私钥dsA和第一用户签名主公钥PpubsA)的时候消去数据Q,加强了第一用户私钥生成过程中的安全性,只有用户才能根据第一密钥生成中心KGC1和第二密钥生成中心KGC2的数据合成第一用户私钥,中间人截获数据Q到也无法合成第一用户私钥。
A2、用户向第二密钥生成中心KGC2发送数据T,第二密钥生成中心KGC2由
R=[(h+ks2)-1mod N]×T
计算得到R,并将R发送给用户。
A3、用户由
dsA=P1-[(rA -1×h1×s)mod N]×R=P1-[(h1×(h+ks1)-1×(h+ks2)-1)mod N]×P1
=P1-[(h1×(h1+h×(ks1+ks2)+ks1×ks2)-1)mod N]×P1 (3)
计算得到第一用户签名私钥dsA。
A4、用户由
PpubsA=[h]×(Ppubs1+Ppubs2)+Ppubs
=[(h×(ks1+ks2)+ks1×ks2)mod N]×P2 (4)
计算得到第一用户签名主公钥PpubsA。
方法B、若h1是模N的非平方元,则αh1(即α×h1)是模N的平方元,即αh1≡(hh2)modN,且设hh是两个平方根中较大的一个,则采用下列步骤:
B1、用户生成256比特的随机整数rrA,rrA∈[1,N-1],再由
QQ=[rrA]×P1
计算得到数据QQ,然后用户向第一密钥生成中心KGC1发送数据QQ,并申请生成用户签名私钥所需的数据,第一密钥生成中心KGC1接收到用户的申请后,生成256比特的随机整数rr,rr∈[1,N-1],由
ss=(rr×(hh+ks1)-1)mod N
和TT=[rr-1mod N]×QQ
计算得到ss和TT,并将ss和TT发送给用户。在本步骤中,用户生成的数据QQ为随机数据,用户把数据QQ发送给KGC1,在后面的步骤中合成第二用户私钥(包括第二用户签名私钥dsAA和第二用户签名主公钥PpubsAA)的时候消去数据QQ,加强了第二用户私钥生成过程中的安全性,只有用户才能根据第一密钥生成中心KGC1和第二密钥生成中心KGC2的数据合成第二用户私钥,中间人截获数据QQ到也无法合成第二用户私钥。
B2、用户向第二密钥生成中心KGC2发送数据TT,第二密钥生成中心KGC2由
RR=[(hh+ks2)-1mod N]×TT
计算得到RR,并将RR发送给用户。
B3、用户由
dsAA=P1-[(rA -1×h1×α×ss)mod N]×RR
=P1-[(h1×α×(hh+ks1)-1×(hh+ks2)-1)mod N]×P1
=P1-[(h1×(h1+α-1×hh×(ks1+ks2)+α-1×ks1×ks2)-1)mod N]×P1 (5)
计算得到第二用户签名私钥dsAA。
B4、用户由
PpubsAA=[α-1]×([hh]×(Ppubs1+Ppubs2)+Ppubs)
=[(α-1×hh×(ks1+ks2)+α-1×ks1×ks2)mod N]×P2 (6)
计算得到第二用户签名主公钥PpubsAA。
本发明提供的签名密钥生成方法可用于数字签名生成方法以生成数字签名;还可用于数字签名验证方法,以验证数字签名。
因此,本发明还提供一种数字签名生成方法,所述数字签名生成方法采用上述签名密钥生成方法所生成的用户签名主公钥PpubsA或PpubsAA,用户签名私钥dsA或dsAA,识别符hid和消息M为输入参数,对消息M按照GM/T0044.2-2016《SM9标识密码算法第2部分数字签名算法》中第6章的算法和流程对消息M进行数字签名,从而得到数字签名sig。
本发明还提供一种数字签名验证方法,所述数字签名验证方法采用上述签名密钥生成方法所生成的用户签名主公钥PpubsA或PpubsAA,识别符hid,用户标识IDA,消息M和数字签名sig为输入参数,按照GM/T0044.2-2016《SM9标识密码算法第2部分数字签名算法》中第7章的算法和流程对消息M进行数字签名验证,根据第一用户签名主公钥PpubsA和第一用户签名私钥dsA的关系,或第二用户签名主公钥PpubsAA和第二用户签名私钥dsAA的关系,可知若消息未被篡改,则数字签名可验证通过。
本发明还提供一种签名密钥生成***,用于实现上述签名密钥生成方法。所述签名密钥生成***包括第一密钥生成中心KGC1和第二密钥生成中心KGC2。
本发明还提供一种数字签名生成***,用于实现上述数字签名生成方法。所述数字签名生成***包括上述签名密钥生成***。
本发明还提供一种数字签名验证***,用于实现上述数字签名验证方法。所述数字签名验证***包括上述签名密钥生成***。
本发明还提供一种计算机设备,包括储存器、第一处理器及储存在所述存储器上并可在所述第一处理器上运行的第一计算机程序,第一计算机程序被第一处理器执行时实现上述的签名密钥生成方法、签名密钥生成方法和数字签名验证方法中的一中方法或几种方法。
本发明还提供一种计算机可读存储介质,用于储存第二计算机程序,第二计算机程序可被至少一个第二处理器所执行,以使至少一个第二处理器执行上述的签名密钥生成方法、签名密钥生成方法和数字签名验证方法中的一中方法或几种方法。
本发明提供的签名密钥生成方法通过部署双KGC计算用户签名密钥,并且双KGC之间不通信,避免了双KGC之间相互通讯影响安全性;用户签名密钥仅在用户掌控的计算设备中合成,任何一方KGC均不能计算出用户的签名密钥;从而实现了用户对签名密钥的有效控制,解决了在单KGC下,KGC对用户签名密钥的完全掌控,即用户密钥的托管问题的安全问题。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (13)
1.签名密钥生成方法,其特征在于,包括:
通过第一密钥生成中心KGC1和第二密钥生成中心KGC2:
生成***参数;
生成签名私钥和用户签名主公钥,
其中,
所述生成***参数包括:
通过所述第一密钥生成中心KGC1生成第一签名主私钥ks1和第一签名主公钥Ppubs1,
通过所述第二密钥生成中心KGC2生成第二签名主私钥ks2和第二签名主公钥Ppubs2,
所述第一签名主私钥ks1为随机整数,且ks1∈[1,N-1],其中N为素数;设群G2是阶为N的加法循环群,则所述第一签名主公钥Ppubs1为所述群G2中的元素,
所述第二签名主私钥ks2为随机整数,且ks2∈[1,N-1],其中,所述第二签名主公钥Ppubs2为所述群G2中的元素,
所述第一签名主公钥Ppubs1满足
Ppubs1=[ks1]×P2 (1),
式(1)中,P2为所述群G2的生成元,方括号[]的含义代表椭圆曲线上的倍点运算,方括号[]中的数为整数,P2是椭圆曲线上的点,后面各等式中的方括号[]与所述式(1)中方括号[]的含义相同;
所述第二签名主公钥Ppubs2满足
Ppubs2=[ks2]×P2 (2);
通过所述第一密钥生成中心KGC1计算公共主密钥Ppubs=[ks1]×Ppubs2,
通过所述第二密钥生成中心KGC2计算公共主密钥Ppubs=[ks2]×Ppubs1。
2.根据权利要求1所述的签名密钥生成方法,其特征在于,
选择公共参数α,所述公共参数α为模N的二次非剩余,N为SM9中加法循环群G1和乘法循环群GT的阶,
其中,
由所述第一密钥生成中心KGC1和第二密钥生成中心KGC2协商生成所述公共参数α。
3.根据权利要求2所述的签名密钥生成方法,其特征在于,
公开发布所述第一签名主公钥Ppubs1、第二签名主公钥Ppubs2、公共主密钥Ppubs和公共参数α。
4.根据权利要求3所述的签名密钥生成方法,其特征在于,
所述生成签名私钥和用户签名主公钥包括:
设定用户标识IDA;
利用
h1=H1(IDA||hid,N)
计算得到h1,其中,H1(IDA||hid,N)为密码函数,其计算过程为把任意的用户标识IDA通过函数H1映射为一个256比特的整数,||表示将数据的字节串合并,hid为函数识别符,hid由所述第一密钥生成中心KGC1和第二密钥生成中心KGC2协商选择并公开。
5.根据权利要求4所述的签名密钥生成方法,其特征在于,
若h1是模N的平方元,即h1≡(h2)modN,≡为同余号,其中,x mod y代表x对y的求余运算,且设h是两个平方根中较大的一个,则采用下列步骤:
A1、用户生成256比特的随机整数rA,rA∈[1,N-1],再由
Q=[rA]×P1
计算得到数据Q,然后用户向所述第一密钥生成中心KGC1发出申请和所述数据Q,所述第一密钥生成中心KGC1接收到所述申请和所述数据Q后,生成256比特的随机整数r,r∈[1,N-1],由
s=(r×(h+ks1)-1)modN
和T=[r-1modN]×Q
计算得到数据s和T,并将所述数据s和T发送给用户,其中,P1是群G1的生成元,所述申请为生成用户签名私钥所需的数据的申请;
A2、用户向所述第二密钥生成中心KGC2发送所述数据T,所述第二密钥生成中心KGC2由
R=[(h+ks2)-1modN]×T
计算得到数据R,并将所述数据R发送给用户;
A3、用户由
dsA=P1-[(rA -1×h1×s)modN]×R计算得到第一用户签名私钥dsA;
A4、用户由
PpubsA=[h]×Ppubs1+[h]×Ppubs2+Ppubs计算得到第一用户签名主公钥PpubsA。
6.根据权利要求4所述的签名密钥生成方法,其特征在于,
若h1是模N的非平方元,则αh1是模N的平方元,即αh1≡(hh2)×mod N,且设hh是两个平方根中较大的一个,则采用下列步骤:
B1、用户生成256比特的随机整数rrA,rrA∈[1,N-1],再由
QQ=[rrA]×P1
计算得到数据QQ,然后用户向所述第一密钥生成中心KGC1发出申请和所述数据QQ,所述第一密钥生成中心KGC1接收到所述申请和所述数据QQ后,生成256比特的随机整数rr,rr∈[1,N-1],由
ss=(rr×(hh+ks1)-1)modN
和TT=[rr-1modN]×QQ
计算得到数据ss和TT,并将所述数据ss和TT发送给用户,其中,P1是群G1的生成元,所述申请为生成用户签名私钥所需的数据的申请;
B2、用户向所述第二密钥生成中心KGC2发送所述数据TT,所述第二密钥生成中心KGC2由
RR=[(hh+ks2)-1modN]×TT
计算得到数据RR,并将所述数据RR发送给用户;
B3、用户由
dsAA=P1-[(rrA -1×α×h1×ss)modN]×RR计算得到第二用户签名私钥dsAA;
B4、用户由
PpubsAA=[(α-1×hh)modN]×Ppubs1+[(α-1×hh)modN]×Ppubs2+[α-1mod
N]×Ppubs计算得到第二用户签名主公钥PpubsAA。
7.签名密钥生成***,用于实现权利要求1-6中任一项所述的签名密钥生成方法,其特征在于,包括:第一密钥生成中心KGC1和第二密钥生成中心KGC2。
8.数字签名生成方法,其特征在于,采用权利要求1-6中任一项所述的签名密钥生成方法对消息进行数字签名。
9.数字签名验证方法,其特征在于,采用权利要求1-6中任一项所述的签名密钥生成方法对消息进行数字签名验证。
10.数字签名生成***,用于实现权利要求8所述的数字签名生成方法,其特征在于,包括:权利要求7所述的签名密钥生成***。
11.数字签名验证***,用于实现权利要求9所述的数字签名验证方法,其特征在于,包括:权利要求7所述的签名密钥生成***。
12.计算机设备,其特征在于,包括存储器、第一处理器及储存在所述存储器上并可在所述第一处理器上运行的第一计算机程序,所述第一计算机程序被所述第一处理器执行时实现下列方法的一种或几种:
权利要求1-6中任一项所述的签名密钥生成方法;
权利要求8所述的数字签名生成方法;
权利要求9所述的数字签名验证方法。
13.计算机可读存储介质,其特征在于,所述计算机可读存储介质用于储存第二计算机程序,所述第二计算机程序可被至少一个第二处理器所执行,以使所述至少一个第二处理器执行下列方法的一种或几种:
权利要求1-6中任一项所述的签名密钥生成方法;
权利要求8所述的数字签名生成方法;
权利要求9所述的数字签名验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210138255.9A CN114499887B (zh) | 2022-02-15 | 2022-02-15 | 签名密钥生成及相关方法、***、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210138255.9A CN114499887B (zh) | 2022-02-15 | 2022-02-15 | 签名密钥生成及相关方法、***、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114499887A CN114499887A (zh) | 2022-05-13 |
CN114499887B true CN114499887B (zh) | 2024-04-26 |
Family
ID=81479861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210138255.9A Active CN114499887B (zh) | 2022-02-15 | 2022-02-15 | 签名密钥生成及相关方法、***、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114499887B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115549904A (zh) * | 2022-10-11 | 2022-12-30 | 北京无字天书科技有限公司 | 密钥生成方法及相关方法、计算机设备和存储介质 |
CN115549905A (zh) * | 2022-10-11 | 2022-12-30 | 北京无字天书科技有限公司 | Sm2密钥生成法及相关方法、计算机设备和存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105790941A (zh) * | 2016-04-22 | 2016-07-20 | 长沙市迪曼森信息科技有限公司 | 一种基于标识的具有域划分的组合密钥生成及认证方法 |
CN108632032A (zh) * | 2018-02-22 | 2018-10-09 | 福州大学 | 无密钥托管的安全多关键词排序检索*** |
CN109951288A (zh) * | 2019-01-22 | 2019-06-28 | 中国科学院信息工程研究所 | 一种基于sm9数字签名算法的分级签名方法和*** |
CN110166239A (zh) * | 2019-06-04 | 2019-08-23 | 成都卫士通信息产业股份有限公司 | 用户私钥生成方法、***、可读存储介质及电子设备 |
CN110505061A (zh) * | 2019-09-06 | 2019-11-26 | 北京天诚安信科技股份有限公司 | 一种数字签名算法及*** |
CN111010272A (zh) * | 2019-12-20 | 2020-04-14 | 武汉理工大学 | 一种标识私钥生成和数字签名方法及***和装置 |
CN111049647A (zh) * | 2019-11-21 | 2020-04-21 | 郑州工程技术学院 | 一种基于属性门限的非对称群组密钥协商方法 |
CN112003696A (zh) * | 2020-08-25 | 2020-11-27 | 成都卫士通信息产业股份有限公司 | Sm9密钥生成方法、***、电子设备、装置及存储介质 |
CN112511566A (zh) * | 2021-02-02 | 2021-03-16 | 北京信安世纪科技股份有限公司 | Sm9算法无证书机制签名密钥生成方法、设备及存储介质 |
CN113300856A (zh) * | 2021-05-25 | 2021-08-24 | 辽宁工程技术大学 | 一种可证安全的异构混合签密方法 |
-
2022
- 2022-02-15 CN CN202210138255.9A patent/CN114499887B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105790941A (zh) * | 2016-04-22 | 2016-07-20 | 长沙市迪曼森信息科技有限公司 | 一种基于标识的具有域划分的组合密钥生成及认证方法 |
CN108632032A (zh) * | 2018-02-22 | 2018-10-09 | 福州大学 | 无密钥托管的安全多关键词排序检索*** |
CN109951288A (zh) * | 2019-01-22 | 2019-06-28 | 中国科学院信息工程研究所 | 一种基于sm9数字签名算法的分级签名方法和*** |
CN110166239A (zh) * | 2019-06-04 | 2019-08-23 | 成都卫士通信息产业股份有限公司 | 用户私钥生成方法、***、可读存储介质及电子设备 |
CN110505061A (zh) * | 2019-09-06 | 2019-11-26 | 北京天诚安信科技股份有限公司 | 一种数字签名算法及*** |
CN111049647A (zh) * | 2019-11-21 | 2020-04-21 | 郑州工程技术学院 | 一种基于属性门限的非对称群组密钥协商方法 |
CN111010272A (zh) * | 2019-12-20 | 2020-04-14 | 武汉理工大学 | 一种标识私钥生成和数字签名方法及***和装置 |
CN112003696A (zh) * | 2020-08-25 | 2020-11-27 | 成都卫士通信息产业股份有限公司 | Sm9密钥生成方法、***、电子设备、装置及存储介质 |
CN112511566A (zh) * | 2021-02-02 | 2021-03-16 | 北京信安世纪科技股份有限公司 | Sm9算法无证书机制签名密钥生成方法、设备及存储介质 |
CN113300856A (zh) * | 2021-05-25 | 2021-08-24 | 辽宁工程技术大学 | 一种可证安全的异构混合签密方法 |
Non-Patent Citations (3)
Title |
---|
" SM9门限密码算法研究";马婷;《中国优秀硕士学位论文全文数据库》(第03期);第16-42页 * |
"基于多线性映射的环签名研究";隗云;鲍皖苏;;《计算机应用研究》(第02期);全文 * |
"独立网络中新的双方密钥协商协议";***;蓝才会;左为平;马海云;;《计算机应用》(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114499887A (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110011802B (zh) | 一种高效的sm9两方协同生成数字签名的方法及*** | |
CN104539423B (zh) | 一种无双线性对运算的无证书公钥密码体制的实现方法 | |
CN108989050B (zh) | 一种无证书数字签名方法 | |
CN108551392B (zh) | 一种基于sm9数字签名的盲签名生成方法及*** | |
US20180359097A1 (en) | Digital signing by utilizing multiple distinct signing keys, distributed between two parties | |
CN111010272B (zh) | 一种标识私钥生成和数字签名方法及***和装置 | |
CN114499887B (zh) | 签名密钥生成及相关方法、***、计算机设备和存储介质 | |
CN110113150B (zh) | 基于无证书环境的可否认认证的加密方法和*** | |
CN110247759B (zh) | 一种sm9私钥生成和使用方法及*** | |
CN111262704A (zh) | Sm9数字签名生成方法、装置、计算机设备和存储介质 | |
CN112241526B (zh) | 一种基于sm9数字签名的批量验证方法和*** | |
CN112152813B (zh) | 一种支持隐私保护的无证书内容提取签密方法 | |
CN115208586B (zh) | 一种基于秘密分享的数字签名方法及*** | |
US20150006900A1 (en) | Signature protocol | |
CN114117547A (zh) | 一种基于预计算表的sm9数字签名加速生成方法以及数字签名加速验证方法 | |
CN114448641A (zh) | 一种隐私加密方法、电子设备、存储介质以及芯片 | |
CN113162773A (zh) | 一种可证安全的异构盲签密方法 | |
CN110943845A (zh) | 一种轻量级两方协同产生sm9签名的方法及介质 | |
CN112989436B (zh) | 一种基于区块链平台的多重签名方法 | |
CN111669275B (zh) | 一种无线网络环境下可选择从节点的主从协作签名方法 | |
CN115174056B (zh) | 一种基于sm9签名的变色龙签名生成方法及装置 | |
CN110557260A (zh) | 一种sm9数字签名生成方法及装置 | |
CN104579661A (zh) | 基于身份的电子签章的实现方法和装置 | |
JP4307589B2 (ja) | 認証プロトコル | |
WO2016187689A1 (en) | Signature protocol |
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 |