CN109586912A - 一种sm2数字签名的生成方法、系统、设备及介质 - Google Patents

一种sm2数字签名的生成方法、系统、设备及介质 Download PDF

Info

Publication number
CN109586912A
CN109586912A CN201811332150.7A CN201811332150A CN109586912A CN 109586912 A CN109586912 A CN 109586912A CN 201811332150 A CN201811332150 A CN 201811332150A CN 109586912 A CN109586912 A CN 109586912A
Authority
CN
China
Prior art keywords
node
operational parameter
elliptic curve
signature
group
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.)
Granted
Application number
CN201811332150.7A
Other languages
English (en)
Other versions
CN109586912B (zh
Inventor
蒋红宇
安晓江
胡伯良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Haitai Fangyuan Technology Co Ltd
Original Assignee
Tianjin Haitai Fangyuan Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin Haitai Fangyuan Technology Co Ltd filed Critical Tianjin Haitai Fangyuan Technology Co Ltd
Priority to CN201811332150.7A priority Critical patent/CN109586912B/zh
Publication of CN109586912A publication Critical patent/CN109586912A/zh
Application granted granted Critical
Publication of CN109586912B publication Critical patent/CN109586912B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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/3252Cryptographic 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

Abstract

本发明实施例公开了一种SM2数字签名的生成方法、系统、设备及介质,用以减少SM2数字签名生成过程中所需的点乘运算次数,提高SM2数字签名的生成效率。SM2数字签名的生成方法,包括:第一节点通过点乘运算计算得到基点的倍点;第一节点计算生成第一签名要素;第一节点基于第一签名要素、随机数、预先配置的SM2私钥、以及SM2椭圆曲线点群的阶计算生成第一运算参数;第一节点将第一运算参数发送至第二节点;第一节点接收第二节点发送的第二运算参数;第一节点计算生成第二签名要素;第一节点基于第一签名要素和第二签名要素,生成SM2数字签名。

Description

一种SM2数字签名的生成方法、系统、设备及介质
技术领域
本发明涉及信息安全技术领域,尤其是涉及一种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 (10)

1.一种SM2数字签名的生成方法,其特征在于,包括:
第一节点基于预先生成的随机数与预先配置的SM2椭圆曲线点群的基点,通过点乘运算计算得到SM2椭圆曲线点群基点的倍点;
所述第一节点基于所述SM2椭圆曲线点群基点的倍点、预先配置的SM2椭圆曲线点群的阶、以及预先生成的杂凑值,计算生成第一签名要素;
所述第一节点在确定所述第一签名要素满足第一预设条件时,基于所述第一签名要素、所述随机数、预先配置的SM2私钥、以及所述SM2椭圆曲线点群的阶计算生成第一运算参数;
所述第一节点将所述第一运算参数发送至第二节点;
所述第一节点接收所述第二节点发送的第二运算参数,其中,所述第二运算参数是所述第二节点基于所述第一运算参数、预先生成的第一计算因子、以及预先配置的SM2椭圆曲线点群的阶计算生成的;
所述第一节点基于所述第二运算参数、预先生成的第二计算因子、所述第一签名要素、以及所述SM2椭圆曲线点群的阶计算生成第二签名要素;
所述第一节点在确定所述第二签名要素满足第二预设条件时,基于所述第一签名要素和所述第二签名要素,生成SM2数字签名。
2.根据权利要求1所述的方法,其特征在于,所述第一节点基于所述第二运算参数、预先生成的第二计算因子、所述第一签名要素、以及所述SM2椭圆曲线点群的阶计算生成第二签名要素,包括:
所述第一节点基于所述第二运算参数、预先生成的第二计算因子、以及所述SM2椭圆曲线点群的阶计算生成第三运算参数;
所述第一节点基于所述第三运算参数、所述第一签名要素、以及所述SM2椭圆曲线点群的阶计算生成所述第二签名要素。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第一签名要素和所述第二签名要素,生成SM2数字签名,包括:
所述第一节点将所述第一签名要素和所述第二签名要素的组合作为SM2数字签名。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
所述第一节点接收所述第二节点发送的第四运算参数,其中,所述第四运算参数是所述第二节点基于所述预先生成的第一计算因子和预先配置的SM2椭圆曲线点群的基点计算得到的;
所述第一节点基于所述第四运算参数、所述预先生成的第二计算因子、所述预先配置的SM2私钥、所述预先配置的SM2椭圆曲线点群的基点、以及所述预先配置的SM2椭圆曲线点群的阶计算生成SM2公钥。
5.一种SM2数字签名的生成方法,其特征在于,包括:
第二节点接收第一节点发送的第一运算参数;
所述第二节点基于所述第一运算参数、预先生成的第一计算因子、以及预先配置的SM2椭圆曲线点群的阶计算生成第二运算参数;
所述第二节点将所述第二运算参数发送至所述第一节点,以使所述第一节点根据所述第二运算参数计算生成SM2数字签名。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述第二节点基于所述预先生成的第一计算因子和预先配置的SM2椭圆曲线点群的基点计算生成第四运算参数;
所述第二节点将所述第四运算参数发送至所述第一节点,以使所述第一节点根据所述第四运算参数计算生成SM2公钥。
7.一种SM2数字签名的生成系统,其特征在于,包括:通信连接的第一节点和第二节点;其中,
所述第一节点基于预先生成的随机数与预先配置的SM2椭圆曲线点群的基点,通过点乘运算计算得到SM2椭圆曲线点群基点的倍点;
所述第一节点基于所述SM2椭圆曲线点群基点的倍点、预先配置的SM2椭圆曲线点群的阶、以及预先生成的杂凑值,计算生成第一签名要素;
所述第一节点在确定所述第一签名要素满足第一预设条件时,基于所述第一签名要素、所述随机数、预先配置的SM2私钥、以及所述SM2椭圆曲线点群的阶计算生成第一运算参数;
所述第一节点将所述第一运算参数发送至第二节点;
所述第二节点接收所述第一节点发送的第一运算参数,并基于所述第一运算参数、预先生成的第一计算因子、以及预先配置的SM2椭圆曲线点群的阶计算生成第二运算参数;
所述第二节点将所述第二运算参数发送至所述第一节点;
所述第一节点接收所述第二节点发送的第二运算参数,并基于所述第二运算参数、预先生成的第二计算因子、所述第一签名要素、以及所述SM2椭圆曲线点群的阶计算生成第二签名要素;
所述第一节点在确定所述第二签名要素满足第二预设条件时,基于所述第一签名要素和所述第二签名要素,生成SM2数字签名。
8.根据权利要求7所述的系统,其特征在于,所述第一节点为移动设备,所述第二节点为服务器。
9.一种SM2数字签名的生成设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-4中任一项所述的方法或者实现如权利要求5或6所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-4中任一项所述的方法或者实现如权利要求5或6所述的方法。
CN201811332150.7A 2018-11-09 2018-11-09 一种sm2数字签名的生成方法、系统、设备及介质 Active CN109586912B (zh)

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 true CN109586912A (zh) 2019-04-05
CN109586912B 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110309665A (zh) * 2019-07-08 2019-10-08 北京海泰方圆科技股份有限公司 一种sm2数字签名的快速生成方法和装置
CN113992329A (zh) * 2021-10-28 2022-01-28 深圳前海微众银行股份有限公司 一种区块链下基于sm2的交易签名方法及装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291240A (zh) * 2011-09-01 2011-12-21 清华大学 Sm2签名的认证方法及系统
CN102761413A (zh) * 2011-04-27 2012-10-31 航天信息股份有限公司 p元域SM2椭圆曲线公钥密码算法的实现系统
CN103427997A (zh) * 2013-08-16 2013-12-04 西安西电捷通无线网络通信股份有限公司 一种生成数字签名的方法及装置
CN106549770A (zh) * 2017-01-13 2017-03-29 武汉理工大学 Sm2数字签名生成方法及系统
CN106712968A (zh) * 2017-02-22 2017-05-24 北京智慧云测科技有限公司 密钥获取方法、数字签名方法和装置
CN106961336A (zh) * 2017-04-18 2017-07-18 北京百旺信安科技有限公司 一种基于sm2算法的密钥分量托管方法和系统
CN107040385A (zh) * 2017-05-23 2017-08-11 广东工业大学 一种基于sm2椭圆曲线的签名验证算法的实现方法及系统
CN107404383A (zh) * 2017-09-12 2017-11-28 四川阵风科技有限公司 数字签名的生成方法及装置
CN107483212A (zh) * 2017-08-15 2017-12-15 武汉信安珞珈科技有限公司 一种双方协作生成数字签名的方法
CN108055136A (zh) * 2017-12-22 2018-05-18 上海众人网络安全技术有限公司 基于椭圆曲线的签名方法、装置、计算机设备及存储介质
WO2018189634A1 (en) * 2017-04-10 2018-10-18 nChain Holdings Limited Securing blockchain transaction based on undetermined data

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761413A (zh) * 2011-04-27 2012-10-31 航天信息股份有限公司 p元域SM2椭圆曲线公钥密码算法的实现系统
CN102291240A (zh) * 2011-09-01 2011-12-21 清华大学 Sm2签名的认证方法及系统
CN103427997A (zh) * 2013-08-16 2013-12-04 西安西电捷通无线网络通信股份有限公司 一种生成数字签名的方法及装置
CN106549770A (zh) * 2017-01-13 2017-03-29 武汉理工大学 Sm2数字签名生成方法及系统
CN106712968A (zh) * 2017-02-22 2017-05-24 北京智慧云测科技有限公司 密钥获取方法、数字签名方法和装置
WO2018189634A1 (en) * 2017-04-10 2018-10-18 nChain Holdings Limited Securing blockchain transaction based on undetermined data
CN106961336A (zh) * 2017-04-18 2017-07-18 北京百旺信安科技有限公司 一种基于sm2算法的密钥分量托管方法和系统
CN107040385A (zh) * 2017-05-23 2017-08-11 广东工业大学 一种基于sm2椭圆曲线的签名验证算法的实现方法及系统
CN107483212A (zh) * 2017-08-15 2017-12-15 武汉信安珞珈科技有限公司 一种双方协作生成数字签名的方法
CN107404383A (zh) * 2017-09-12 2017-11-28 四川阵风科技有限公司 数字签名的生成方法及装置
CN108055136A (zh) * 2017-12-22 2018-05-18 上海众人网络安全技术有限公司 基于椭圆曲线的签名方法、装置、计算机设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110309665A (zh) * 2019-07-08 2019-10-08 北京海泰方圆科技股份有限公司 一种sm2数字签名的快速生成方法和装置
CN113992329A (zh) * 2021-10-28 2022-01-28 深圳前海微众银行股份有限公司 一种区块链下基于sm2的交易签名方法及装置

Also Published As

Publication number Publication date
CN109586912B (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
CN110309665B (zh) 一种sm2数字签名的快速生成方法和装置
CN109359471B (zh) 基于用户身份的加密方法、装置、系统、设备和介质
CN110189013A (zh) 一种业务流程的确定方法、装置、设备及介质
CN109586912A (zh) 一种sm2数字签名的生成方法、系统、设备及介质
CN110210865A (zh) 基于区块链的打包方法及装置
CN109447636A (zh) 一种资产转移方法及装置
CN112118100B (zh) 改进的可链接环签名方法、验证方法、装置、电子设备及介质
CN105279613A (zh) 一种账务处理方法及系统
CN110659905A (zh) 交易验证方法、装置、终端设备以及存储介质
WO2020199724A1 (zh) 一种数据处理方法及服务器、设备
CN110225044B (zh) 在区块链上的验证方法及装置
CN110223070B (zh) 基于区块链节点网络的验证方法及装置
CN110474710B (zh) 编码方法、设备及可读存储介质
CN111371560B (zh) 一种应用于车联网的无证书容错聚合签名方法及系统
CN111147249A (zh) 数据处理方法、装置、设备及介质
CN112541766A (zh) 基于utxo进行零知识证明交易验证的方法、装置及相关产品
CN116318660B (zh) 一种消息扩展与压缩方法及相关装置
CN111600703A (zh) 基于sm2的签名方法、系统、电子设备及存储介质
CN114640463A (zh) 一种数字签名方法、计算机设备及介质
CN114064505A (zh) 用于译码单元的测试方法、系统、设备以及存储介质
CN114356680A (zh) 验证方法、装置及电子设备
CN113283891A (zh) 信息处理方法、装置和电子设备
CN114090682A (zh) 一种多通道联盟链上链方法、装置、设备及存储介质
CN110224839B (zh) 应用于区块链上的验证方法及装置
CN109309548B (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