CN109586912B - 一种sm2数字签名的生成方法、***、设备及介质 - Google Patents
一种sm2数字签名的生成方法、***、设备及介质 Download PDFInfo
- Publication number
- CN109586912B CN109586912B CN201811332150.7A CN201811332150A CN109586912B CN 109586912 B CN109586912 B CN 109586912B CN 201811332150 A CN201811332150 A CN 201811332150A CN 109586912 B CN109586912 B CN 109586912B
- Authority
- CN
- China
- Prior art keywords
- node
- operation parameter
- elliptic curve
- point group
- signature element
- 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 50
- 238000004364 calculation method Methods 0.000 claims abstract description 103
- 101000979117 Curvularia clavata Nonribosomal peptide synthetase Proteins 0.000 claims description 18
- 101100517202 Neosartorya fumigata (strain ATCC MYA-4609 / Af293 / CBS 101355 / FGSC A1100) NRPS1 gene Proteins 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 15
- 101150036369 NRPS2 gene Proteins 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
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/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
-
- 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/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
- H04L9/3252—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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种SM2数字签名的生成方法、***、设备及介质,用以减少SM2数字签名生成过程中所需的点乘运算次数,提高SM2数字签名的生成效率。SM2数字签名的生成方法,包括:第一节点通过点乘运算计算得到基点的倍点;第一节点计算生成第一签名要素;第一节点基于第一签名要素、随机数、预先配置的SM2私钥、以及SM2椭圆曲线点群的阶计算生成第一运算参数;第一节点将第一运算参数发送至第二节点;第一节点接收第二节点发送的第二运算参数;第一节点计算生成第二签名要素;第一节点基于第一签名要素和第二签名要素,生成SM2数字签名。
Description
技术领域
本发明涉及信息安全技术领域,尤其是涉及一种SM2数字签名的生成方法、***、设备及介质。
背景技术
目前,随着移动应用的普及,移动设备上承载了越来越多的应用,这些应用对SM2算法的数字签名有着强烈的需求,而随着针对移动设备上漏洞的攻击越来越多,SM2私钥的存储安全变得尤为重要。
为了保障SM2私钥的安全性,开始出现了将SM2私钥分拆成若干分量,将这些分量分布存储于多个节点,需要计算SM2数字签名时,利用多个节点之间的计算最终生成数字签名。此种方式的优点在于,每个节点上没有存储完整的SM2私钥信息,即使单个节点遭受攻击,攻击方也无法拿到完整的SM2私钥。
上述方案中,在节点之间传递的数据包含了基点的倍点。在各节点上需要进行多次的倍点计算。举例来说,假设G为基点,dA为私钥,e为杂凑值,则单个节点的数字签名流程为:取随机数k;计算倍点(a,b)=k[*]G;计算r=(e+a)mod n并检查,其中,n是SM2运算所使用的椭圆曲线点群的阶,也即SM2运算所使用的椭圆曲线点群的基点G的阶;计算s=(k-r*dA)/(1+dA)并检查;输出(r,s)。
从上述SM2数字签名的生成流程可以看出,现有的SM2数字签名生成方法在每个节点上均需要进行点乘计算,而点乘计算是比较耗时的操作,多个节点上的多次点乘计算耗时较长,数字签名生成效率较低。
发明内容
本发明实施例提供一种SM2数字签名的生成方法、***、设备及介质,用以减少SM2数字签名生成过程中所需的点乘运算次数,提高SM2数字签名的生成效率。
第一方面,本发明实施例提供一种SM2数字签名的生成方法,包括:
第一节点基于预先生成的随机数与预先配置的SM2椭圆曲线点群的基点,通过点乘运算计算得到SM2椭圆曲线点群基点的倍点;
第一节点基于SM2椭圆曲线点群基点的倍点、预先配置的SM2椭圆曲线点群的阶、以及预先生成的杂凑值,计算生成第一签名要素;
第一节点在确定第一签名要素满足第一预设条件时,基于第一签名要素、随机数、预先配置的SM2私钥、以及SM2椭圆曲线点群的阶计算生成第一运算参数;
第一节点将第一运算参数发送至第二节点;
第一节点接收第二节点发送的第二运算参数,其中,第二运算参数是第二节点基于第一运算参数、预先生成的第一计算因子、以及预先配置的SM2椭圆曲线点群的阶计算生成的;
第一节点基于第二运算参数、预先生成的第二计算因子、第一签名要素、以及SM2椭圆曲线点群的阶计算生成第二签名要素;
第一节点在确定第二签名要素满足第二预设条件时,基于第一签名要素和第二签名要素,生成SM2数字签名。
在一种可能的实施方式中,本发明实施例提供的上述方法中,第一节点基于第二运算参数、预先生成的第二计算因子、第一签名要素、以及SM2椭圆曲线点群的阶计算生成第二签名要素,包括:
第一节点基于第二运算参数、预先生成的第二计算因子、以及SM2椭圆曲线点群的阶计算生成第三运算参数;
第一节点基于第三运算参数、第一签名要素、以及SM2椭圆曲线点群的阶计算生成第二签名要素。
在一种可能的实施方式中,本发明实施例提供的上述方法中,基于第一签名要素和第二签名要素,生成SM2数字签名,包括:
第一节点将第一签名要素和第二签名要素的组合作为SM2数字签名。
在一种可能的实施方式中,本发明实施例提供的上述方法中,方法还包括:
第一节点接收第二节点发送的第四运算参数,其中,第四运算参数是第二节点基于预先生成的第一计算因子和预先配置的SM2椭圆曲线点群的基点计算得到的;
第一节点基于第四运算参数、预先生成的第二计算因子、预先配置的SM2私钥、预先配置的SM2椭圆曲线点群的基点、以及预先配置的SM2椭圆曲线点群的阶计算生成SM2公钥。
第二方面,本发明实施例提供一种SM2数字签名的生成方法,包括:
第二节点接收第一节点发送的第一运算参数;
第二节点基于第一运算参数、预先生成的第一计算因子、以及预先配置的SM2椭圆曲线点群的阶计算生成第二运算参数;
第二节点将第二运算参数发送至第一节点,以使第一节点根据第二运算参数计算生成SM2数字签名。
在一种可能的实施方式中,本发明实施例提供的上述方法中,方法还包括:
第二节点基于预先生成的第一计算因子和预先配置的SM2椭圆曲线点群的基点计算生成第四运算参数;
第二节点将第四运算参数发送至第一节点,以使第一节点根据第四运算参数计算生成SM2公钥。
第三方面,本发明实施例提供一种SM2数字签名的生成***,包括:通信连接的第一节点和第二节点;其中,
第一节点基于预先生成的随机数与预先配置的SM2椭圆曲线点群的基点,通过点乘运算计算得到SM2椭圆曲线点群基点的倍点;
第一节点基于SM2椭圆曲线点群基点的倍点、预先配置的SM2椭圆曲线点群的阶、以及预先生成的杂凑值,计算生成第一签名要素;
第一节点在确定第一签名要素满足第一预设条件时,基于第一签名要素、随机数、预先配置的SM2私钥、以及SM2椭圆曲线点群的阶计算生成第一运算参数;
第一节点将第一运算参数发送至第二节点;
第二节点接收第一节点发送的第一运算参数,并基于第一运算参数、预先生成的第一计算因子、以及预先配置的SM2椭圆曲线点群的阶计算生成第二运算参数;
第二节点将第二运算参数发送至第一节点;
第一节点接收第二节点发送的第二运算参数,并基于第二运算参数、预先生成的第二计算因子、第一签名要素、以及SM2椭圆曲线点群的阶计算生成第二签名要素;
第一节点在确定第二签名要素满足第二预设条件时,基于第一签名要素和第二签名要素,生成SM2数字签名。
在一种可能的实施方式中,本发明实施例提供的上述***中,第一节点为移动设备,第二节点为服务器。
第三方面,本发明实施例提供一种SM2数字签名的生成设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当计算机程序指令被处理器执行时实现本发明实施例第一方面提供的方法或者实现本发明实施例第二方面提供的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序指令,当计算机程序指令被处理器执行时实现本发明实施例第一方面提供的方法或者实现本发明实施例第二方面提供的方法。
本发明实施例提供的SM2数字签名的生成方法、***、设备及介质,第一节点基于预先生成的随机数与预先配置的SM2椭圆曲线点群的基点,通过点乘运算计算得到SM2椭圆曲线点群基点的倍点;第一节点基于SM2椭圆曲线点群基点的倍点、预先配置的SM2椭圆曲线点群的阶、以及预先生成的杂凑值,计算生成第一签名要素;第一节点在确定第一签名要素满足第一预设条件时,基于第一签名要素、随机数、预先配置的SM2私钥、以及SM2椭圆曲线点群的阶计算生成第一运算参数;第一节点将第一运算参数发送至第二节点;第一节点接收第二节点发送的第二运算参数,第一节点基于第二运算参数、预先生成的第二计算因子、第一签名要素、以及SM2椭圆曲线点群的阶计算生成第二签名要素;第一节点在确定第二签名要素满足第二预设条件时,基于第一签名要素和第二签名要素,生成SM2数字签名。
本发明实施例提供的SM2数字签名的生成方案,在生成SM2数字签名的过程中,只需要在第一节点侧进行一次点乘运算,与现有技术中每个节点中都需要进行点乘运算相比,大大减少了SM2数字签名生成过程中所需的点乘运算次数,从而提高了SM2数字签名的生成效率。
附图说明
图1本发明实施例提供的第一节点侧SM2数字签名的生成方法的示意流程图;
图2为本发明实施例提供的第二节点侧SM2数字签名的生成方法的示意流程图;
图3为本发明实施例提供的SM2数字签名的生成***的结构示意图;
图4为本发明实施例提供的SM2数字签名的生成设备的结构示意图。
具体实施方式
下面结合附图,对本发明实施例提供的一种SM2数字签名的生成方法、***、设备及介质的具体实施方式进行详细地说明。
需要说明的是,本发明实施例提供的SM2数字签名的生成方案,在SM2数字签名的生成过程中,具体的计算处理需要在通信连接的第一节点和第二节点中进行。其中,第一节点和第二节点可以是不同的设备或终端,例如,第一节点为移动终端,第二节点为服务器;再例如,第一节点和第二节点均为移动终端。
下面分别从第一节点侧和第二节点侧对本发明实施例提供的SM2数字签名的生成方法进行详细说明。
在第一节点侧,如图1所示,本发明实施例提供的SM2数字签名的生成方法,其可以包括如下步骤:
步骤101,第一节点基于预先生成的随机数与预先配置的SM2椭圆曲线点群的基点,通过点乘运算计算得到SM2椭圆曲线点群基点的倍点。
具体实施时,第一节点基于预先生成的随机数k与预先配置的SM2椭圆曲线点群基点G,利用公式(a,b)=k[*]G计算SM2椭圆曲线点群基点G的倍点(a,b),其中,[*]为点乘运算。
步骤102,第一节点基于SM2椭圆曲线点群基点的倍点、预先配置的SM2椭圆曲线点群的阶、以及预先生成的杂凑值,计算生成第一签名要素。
具体实施时,第一节点基于SM2椭圆曲线点群基点的倍点(a,b)的横坐标a、预先配置的SM2椭圆曲线点群的阶n、以及预先生成的杂凑值e,利用公式r=e+a mod n计算第一签名要素r,其中,mod为取模运算。
步骤103,第一节点在确定第一签名要素满足第一预设条件时,基于第一签名要素、随机数、预先配置的SM2私钥、以及SM2椭圆曲线点群的阶计算生成第一运算参数。
具体实施时,第一节点在确定第一签名要素r满足第一预设条件时,基于第一签名要素r、随机数k、预先配置的SM2私钥dA、以及SM2椭圆曲线点群的阶n,利用公式NRPS=(r+k)/(1+ndA)mod n计算生成第一运算参数,公式中NRPS为第一运算参数。
其中,第一预设条件可以预先设定,例如,设置第一预设条件为第一签名要素不为0且第一签名要素与随机数之和不等于SM2椭圆曲线点群的阶,也即r≠0且r+k≠n。
需要说明的是,实际计算中,第一节点在确定第一签名要素不满足第一预设条件时,重新生成随机数,并重新执行步骤101-步骤102,计算生成第一签名要素。
步骤104,第一节点将第一运算参数发送至第二节点。
具体实施时,第一节点可以根据其与第二节点的连接方式,选择将第一运算参数发送至第二节点的方式,本发明实施例对此不作限定。例如,第一节点和第二节点之间通过无线连接通信,则第一节点通过无线传输方式将第一运算参数发生至第二节点。
步骤105,第一节点接收第二节点发送的第二运算参数,其中,第二运算参数是第二节点基于第一运算参数、预先生成的第一计算因子、以及预先配置的SM2椭圆曲线点群的阶计算生成的。
步骤106,第一节点基于第二运算参数、预先生成的第二计算因子、第一签名要素、以及SM2椭圆曲线点群的阶计算生成第二签名要素。
在一种可能的实施方式中,第一节点基于第二运算参数、预先生成的第二计算因子、第一签名要素、以及SM2椭圆曲线点群的阶计算生成第二签名要素,包括:第一节点基于第二运算参数、预先生成的第二计算因子、以及SM2椭圆曲线点群的阶计算生成第三运算参数;第一节点基于第三运算参数、第一签名要素、以及SM2椭圆曲线点群的阶计算生成第二签名要素。
具体实施时,第一节点基于第二运算参数、预先生成的第二计算因子、以及SM2椭圆曲线点群的阶,利用公式NRPS2=NRPS1/n1 mod n计算生成第三运算参数,其中,NRPS2为第三运算参数,NRPS1为第二运算参数,n1为第二计算因子,n为SM2椭圆曲线点群的阶。
第一节点基于第三运算参数NRPS2、第一签名要素r、以及SM2椭圆曲线点群的阶n,利用公式s=NRPS2-r mod n计算生成第二签名要素,公式中s为第二签名要素。
步骤107,第一节点在确定第二签名要素满足第二预设条件时,基于第一签名要素和第二签名要素,生成SM2数字签名。
具体实施时,基于第一签名要素和第二签名要素,生成SM2数字签名,包括:将第一签名要素和第二签名要素的组合作为SM2数字签名,也即将(r,s)作为SM2数字签名。
其中,第二预设条件可以预先设定,例如,设置第二预设条件为第二签名要素不为0,也即s≠0。
需要说明的是,实际计算中,第一节点在确定第二签名要素不满足第二预设条件时,重新生成随机数,并重新执行步骤101-步骤106,计算生成第二签名要素。
在一种可能的实施方式中,第一节点还可以接收第二节点发送的第四运算参数,并基于第四运算参数、预先生成的第二计算因子、预先配置的SM2私钥、预先配置的SM2椭圆曲线点群的基点、以及预先配置的SM2椭圆曲线点群的阶计算生成SM2公钥。其中,第四运算参数是第二节点基于预先生成的第一计算因子和预先配置的SM2椭圆曲线点群的基点计算得到的。
具体实施时,第一节点接收第二节点发送的第四运算参数后,基于第四运算参数、预先生成的第二计算因子、预先配置的SM2私钥、预先配置的SM2椭圆曲线点群的基点、以及预先配置的SM2椭圆曲线点群的阶,利用公式P=(n1×(1+ndA))[*]T+(n-1)[*]G计算生成SM2公钥,其中,P为SM2公钥,n1为第二计算因子,n为SM2椭圆曲线点群的阶,dA为SM2私钥,G为SM2椭圆曲线点群的基点。
与第一节点侧相对应的,在第二节点侧,如图2所示,本发明实施例提供的SM2数字签名的生成方法,其可以包括如下步骤:
步骤201,第二节点接收第一节点发送的第一运算参数。
步骤202,第二节点基于第一运算参数、预先生成的第一计算因子、以及预先配置的SM2椭圆曲线点群的阶计算生成第二运算参数。
具体实施时,第二节点基于第一运算参数、预先生成的第一计算因子、以及预先配置的SM2椭圆曲线点群的阶,利用公式NRPS1=NRPS/n2mod n计算生成第二运算参数,其中,NRPS1为第二运算参数,NRPS为第一运算参数,n2为第一计算因子,n为SM2椭圆曲线点群的阶。
步骤203,第二节点将第二运算参数发送至第一节点,以使第一节点根据第二运算参数计算生成SM2数字签名。
在一种可能的实施方式中,第二节点还可以基于预先生成的第一计算因子和预先配置的SM2椭圆曲线点群的基点计算生成第四运算参数,并将第四运算参数发送至第一节点,以使第一节点根据第四运算参数计算生成SM2公钥。
具体实施时,第二节点基于预先生成的第一计算因子和预先配置的SM2椭圆曲线点群的基点,利用公式T=n2[*]G计算生成第四运算参数,其中,T为第四运算参数,n2为第一计算因子,G为SM2椭圆曲线点群的基点。
另外,如图3所示,本发明实施例提供一种SM2数字签名的生成***,包括:通信连接的第一节点301和第二节点302;其中,
第一节点301基于预先生成的随机数与预先配置的SM2椭圆曲线点群的基点,通过点乘运算计算得到SM2椭圆曲线点群基点的倍点;
第一节点301基于SM2椭圆曲线点群基点的倍点、预先配置的SM2椭圆曲线点群的阶、以及预先生成的杂凑值,计算生成第一签名要素;
第一节点301在确定第一签名要素满足第一预设条件时,基于第一签名要素、随机数、预先配置的SM2私钥、以及SM2椭圆曲线点群的阶计算生成第一运算参数;
第一节点301将第一运算参数发送至第二节点302;
第二节点302接收第一节点301发送的第一运算参数,并基于第一运算参数、预先生成的第一计算因子、以及预先配置的SM2椭圆曲线点群的阶计算生成第二运算参数;
第二节点302将第二运算参数发送至第一节点301;
第一节点301接收第二节点302发送的第二运算参数,并基于第二运算参数、预先生成的第二计算因子、第一签名要素、以及SM2椭圆曲线点群的阶计算生成第二签名要素;
第一节点301在确定第二签名要素满足第二预设条件时,基于第一签名要素和第二签名要素,生成SM2数字签名。
在一种可能的实施方式中,第一节点301为移动设备,第二节点302为服务器。
另外,结合图1-图2描述的本发明实施例的SM2数字签名的生成方法可以由SM2数字签名的生成设备来实现。图4示出了本发明实施例提供的SM2数字签名的生成设备的硬件结构示意图。
SM2数字签名的生成设备可以包括处理器401以及存储有计算机程序指令的存储器402。
具体地,上述处理器401可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器402可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器402可在数据处理装置的内部或外部。在特定实施例中,存储器402是非易失性固态存储器。在特定实施例中,存储器402包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器401通过读取并执行存储器402中存储的计算机程序指令,以实现上述实施例中的任意一种SM2数字签名的生成方法。
在一个示例中,SM2数字签名的生成设备还可包括通信接口403和总线410。其中,如图4所示,处理器401、存储器402、通信接口403通过总线410连接并完成相互间的通信。
通信接口403,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线410包括硬件、软件或两者,将SM2数字签名的生成设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、***组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线410可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
该SM2数字签名的生成设备可以执行本发明实施例中的SM2数字签名的生成方法,从而实现结合图1-图2描述的SM2数字签名的生成方法。
另外,结合上述实施例中的SM2数字签名的生成方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种SM2数字签名的生成方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种SM2数字签名的生成方法,其特征在于,包括:
第一节点基于预先生成的随机数k与预先配置的SM2椭圆曲线点群的基点G,通过点乘运算计算得到SM2椭圆曲线点群基点的倍点(a,b);
所述第一节点基于所述SM2椭圆曲线点群基点的倍点(a,b)的横坐标a、预先配置的SM2椭圆曲线点群的阶n、以及预先生成的杂凑值e,利用公式r=e+a mod n计算生成第一签名要素r;
所述第一节点在确定所述第一签名要素r满足第一预设条件时,基于所述第一签名要素r、所述随机数k、预先配置的SM2私钥dA、以及所述SM2椭圆曲线点群的阶n,利用公式NRPS=(r+k)/(1+ndA)mod n计算生成第一运算参数;
所述第一节点将所述第一运算参数NRPS发送至第二节点;
所述第一节点接收所述第二节点发送的第二运算参数NRPS1,其中,所述第二运算参数NRPS1是所述第二节点基于所述第一运算参数NRPS、预先生成的第一计算因子n2、以及预先配置的SM2椭圆曲线点群的阶n,利用公式NRPS1=NRPS/n2 mod n计算生成的;
所述第一节点基于所述第二运算参数NRPS1、预先生成的第二计算因子n1、所述第一签名要素r、以及所述SM2椭圆曲线点群的阶n计算生成第二签名要素s;
所述第一节点在确定所述第二签名要素s满足第二预设条件时,基于所述第一签名要素r和所述第二签名要素s,生成SM2数字签名;
其中,所述第一预设条件为所述第一签名要素r不为0且所述第一签名要素r与所述随机数k之和不等于所述SM2椭圆曲线点群的阶n,所述第二预设条件为所述第二签名要素s不为0;
所述第一节点基于所述第二运算参数NRPS1、预先生成的第二计算因子n1、所述第一签名要素r、以及所述SM2椭圆曲线点群的阶n计算生成第二签名要素s,包括:
所述第一节点基于所述第二运算参数NRPS1、预先生成的第二计算因子n1、以及所述SM2椭圆曲线点群的阶n,计算生成第三运算参数NRPS2;
所述第一节点基于所述第三运算参数NRPS2、所述第一签名要素r、以及所述SM2椭圆曲线点群的阶n,利用公式s=NRPS2-r mod n计算生成所述第二签名要素s。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一签名要素r和所述第二签名要素s,生成SM2数字签名,包括:
所述第一节点将所述第一签名要素r和所述第二签名要素s的组合作为SM2数字签名。
3.根据权利要求1或2任一项所述的方法,其特征在于,所述方法还包括:
所述第一节点接收所述第二节点发送的第四运算参数,其中,所述第四运算参数是所述第二节点基于所述预先生成的第一计算因子n2和预先配置的SM2椭圆曲线点群的基点G计算得到的;
所述第一节点基于所述第四运算参数、所述预先生成的第二计算因子n1、所述预先配置的SM2私钥dA、所述预先配置的SM2椭圆曲线点群的基点G、以及所述预先配置的SM2椭圆曲线点群的阶n计算生成SM2公钥。
4.一种SM2数字签名的生成方法,其特征在于,包括:
第二节点接收第一节点发送的第一运算参数NRPS;
所述第二节点基于所述第一运算参数NRPS、预先生成的第一计算因子n2、以及预先配置的SM2椭圆曲线点群的阶n,利用公式NRPS1=NRPS/n2 mod n计算生成第二运算参数NRPS1;
所述第二节点将所述第二运算参数NRPS1发送至所述第一节点,以使所述第一节点根据所述第二运算参数NRPS1计算生成SM2数字签名;
其中,所述第一运算参数是所述第一节点在确定第一签名要素r满足第一预设条件时,基于所述第一签名要素r、预先生成的随机数k、预先配置的SM2私钥dA、以及预先配置的SM2椭圆曲线点群的阶n,利用公式NRPS=(r+k)/(1+ndA)mod n计算生成的,所述第一签名要素r是所述第一节点基于SM2椭圆曲线点群基点的倍点(a,b)的横坐标a、所述SM2椭圆曲线点群的阶n、以及预先生成的杂凑值e,利用公式r=e+a mod n计算生成的,所述SM2椭圆曲线点群基点的倍点(a,b)是所述第一节点基于所述随机数k与预先配置的SM2椭圆曲线点群的基点G,通过点乘运算计算得到的,所述第一预设条件为所述第一签名要素r不为0且所述第一签名要素r与所述随机数k之和不等于所述SM2椭圆曲线点群的阶n。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述第二节点基于所述预先生成的第一计算因子n2和预先配置的SM2椭圆曲线点群的基点G计算生成第四运算参数;
所述第二节点将所述第四运算参数发送至所述第一节点,以使所述第一节点根据所述第四运算参数计算生成SM2公钥。
6.一种SM2数字签名的生成***,其特征在于,包括:通信连接的第一节点和第二节点;其中,
所述第一节点基于预先生成的随机数k与预先配置的SM2椭圆曲线点群的基点G,通过点乘运算计算得到SM2椭圆曲线点群基点的倍点(a,b);
所述第一节点基于所述SM2椭圆曲线点群基点的倍点(a,b)的横坐标a、预先配置的SM2椭圆曲线点群的阶n、以及预先生成的杂凑值e,利用公式r=e+a mod n计算生成第一签名要素r;
所述第一节点在确定所述第一签名要素r满足第一预设条件时,基于所述第一签名要素r、所述随机数k、预先配置的SM2私钥dA、以及所述SM2椭圆曲线点群的阶n,利用公式NRPS=(r+k)/(1+ndA)mod n计算生成第一运算参数;
所述第一节点将所述第一运算参数NRPS发送至第二节点;
所述第二节点接收所述第一节点发送的第一运算参数NRPS,并基于所述第一运算参数NRPS、预先生成的第一计算因子n2、以及预先配置的SM2椭圆曲线点群的阶n,利用公式NRPS1=NRPS/n2 mod n计算生成第二运算参数NRPS1;
所述第二节点将所述第二运算参数NRPS1发送至所述第一节点;
所述第一节点接收所述第二节点发送的第二运算参数NRPS1,并基于所述第二运算参数NRPS1、预先生成的第二计算因子n1、所述第一签名要素r、以及所述SM2椭圆曲线点群的阶n,利用公式s=(NRPS1/n1 mod n)-r mod n计算生成第二签名要素s;
所述第一节点在确定所述第二签名要素s满足第二预设条件时,基于所述第一签名要素r和所述第二签名要素s,生成SM2数字签名;
其中,所述第一预设条件为所述第一签名要素r不为0且所述第一签名要素r与所述随机数k之和不等于所述SM2椭圆曲线点群的阶n,所述第二预设条件为所述第二签名要素s不为0。
7.根据权利要求6所述的***,其特征在于,所述第一节点为移动设备,所述第二节点为服务器。
8.一种SM2数字签名的生成设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-3中任一项所述的方法或者实现如权利要求4或5所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-3中任一项所述的方法或者实现如权利要求4或5所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811332150.7A CN109586912B (zh) | 2018-11-09 | 2018-11-09 | 一种sm2数字签名的生成方法、***、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811332150.7A CN109586912B (zh) | 2018-11-09 | 2018-11-09 | 一种sm2数字签名的生成方法、***、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109586912A CN109586912A (zh) | 2019-04-05 |
CN109586912B true CN109586912B (zh) | 2020-04-07 |
Family
ID=65922145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811332150.7A Active CN109586912B (zh) | 2018-11-09 | 2018-11-09 | 一种sm2数字签名的生成方法、***、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109586912B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309665B (zh) * | 2019-07-08 | 2020-06-19 | 北京海泰方圆科技股份有限公司 | 一种sm2数字签名的快速生成方法和装置 |
CN113992329B (zh) * | 2021-10-28 | 2023-04-07 | 深圳前海微众银行股份有限公司 | 一种区块链下基于sm2的交易签名方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102761413A (zh) * | 2011-04-27 | 2012-10-31 | 航天信息股份有限公司 | p元域SM2椭圆曲线公钥密码算法的实现*** |
CN103427997A (zh) * | 2013-08-16 | 2013-12-04 | 西安西电捷通无线网络通信股份有限公司 | 一种生成数字签名的方法及装置 |
CN106712968A (zh) * | 2017-02-22 | 2017-05-24 | 北京智慧云测科技有限公司 | 密钥获取方法、数字签名方法和装置 |
CN107483212A (zh) * | 2017-08-15 | 2017-12-15 | 武汉信安珞珈科技有限公司 | 一种双方协作生成数字签名的方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291240B (zh) * | 2011-09-01 | 2013-10-02 | 清华大学 | Sm2签名的认证方法及*** |
CN106549770B (zh) * | 2017-01-13 | 2019-07-12 | 武汉理工大学 | Sm2数字签名生成方法及*** |
GB201705749D0 (en) * | 2017-04-10 | 2017-05-24 | Nchain Holdings Ltd | Computer-implemented system and method |
CN106961336B (zh) * | 2017-04-18 | 2019-11-26 | 北京百旺信安科技有限公司 | 一种基于sm2算法的密钥分量托管方法和*** |
CN107040385B (zh) * | 2017-05-23 | 2020-10-27 | 广东工业大学 | 一种基于sm2椭圆曲线的签名验证算法的实现方法及*** |
CN107404383A (zh) * | 2017-09-12 | 2017-11-28 | 四川阵风科技有限公司 | 数字签名的生成方法及装置 |
CN108055136A (zh) * | 2017-12-22 | 2018-05-18 | 上海众人网络安全技术有限公司 | 基于椭圆曲线的签名方法、装置、计算机设备及存储介质 |
-
2018
- 2018-11-09 CN CN201811332150.7A patent/CN109586912B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102761413A (zh) * | 2011-04-27 | 2012-10-31 | 航天信息股份有限公司 | p元域SM2椭圆曲线公钥密码算法的实现*** |
CN103427997A (zh) * | 2013-08-16 | 2013-12-04 | 西安西电捷通无线网络通信股份有限公司 | 一种生成数字签名的方法及装置 |
CN106712968A (zh) * | 2017-02-22 | 2017-05-24 | 北京智慧云测科技有限公司 | 密钥获取方法、数字签名方法和装置 |
CN107483212A (zh) * | 2017-08-15 | 2017-12-15 | 武汉信安珞珈科技有限公司 | 一种双方协作生成数字签名的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109586912A (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7747774B2 (en) | Methods, systems and computer program products for obscuring traffic in a distributed system | |
EP2591570B1 (en) | Attack-resistant multivariate signature scheme | |
CN110309665B (zh) | 一种sm2数字签名的快速生成方法和装置 | |
CN109428715B (zh) | 数据接收设备、数据传输***和密钥生成设备 | |
CN109586912B (zh) | 一种sm2数字签名的生成方法、***、设备及介质 | |
CN110768799B (zh) | 数字签名方法、装置、设备及介质、*** | |
CN112187469B (zh) | 一种基于密钥因子的sm2多方协同数字签名方法和*** | |
US7191333B1 (en) | Method and apparatus for calculating a multiplicative inverse of an element of a prime field | |
CN111130791B (zh) | 数据签名方法、电子设备及计算机可读存储介质 | |
CN110249299A (zh) | 生成随机数的方法、芯片和电子设备 | |
CN110266478B (zh) | 一种信息处理方法、电子设备 | |
US10536262B2 (en) | Electronic generation device | |
CN111600703A (zh) | 基于sm2的签名方法、***、电子设备及存储介质 | |
CN115378615A (zh) | 协同签名方法、装置、电子设备及存储介质 | |
EP2761431A1 (en) | Method and apparatus for improving digital signatures | |
CN112804062B (zh) | 一种基于sm2算法的无证书签名方法、装置、设备及介质 | |
CN115632777A (zh) | 数据处理方法及电子设备 | |
CN112653547B (zh) | 用于处理输入数据的设备和方法、车辆和存储介质 | |
CN114329632A (zh) | 一种数字签名方法、装置、终端设备及存储介质 | |
CN114640463A (zh) | 一种数字签名方法、计算机设备及介质 | |
Park et al. | On the security of reduced versions of 3-pass HAVAL | |
KR20190041203A (ko) | 내재적 인증서를 사용하는 전자서명에 대한 효율적인 서명 검증 방법 | |
CN105049451B (zh) | 生成数字签名的方法和验证数字签名的方法 | |
CN117978388B (zh) | 密钥生成的方法、装置、设备、介质及程序产品 | |
EP4033696A1 (en) | Method for generating signatures |
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 |