CN110048839A - 一种数字签名方法、装置及存储介质 - Google Patents
一种数字签名方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110048839A CN110048839A CN201910344133.3A CN201910344133A CN110048839A CN 110048839 A CN110048839 A CN 110048839A CN 201910344133 A CN201910344133 A CN 201910344133A CN 110048839 A CN110048839 A CN 110048839A
- Authority
- CN
- China
- Prior art keywords
- signature device
- signature
- private key
- variable
- value
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/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
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
本发明公开了一种数字签名方法,该方法包括:在要进行数字签名时,获得签名设备集合中的每个签名设备的签名值,签名设备集合中每个签名设备根据预先分配得到的私钥子份,计算自身的签名值;将获得的每个签名设备的签名值进行合并处理,获得协同签名值;其中,通过以下步骤将基于SM2算法的私钥预先分配给每个签名设备,以使每个签名设备得到相应的私钥子份:根据私钥,确定第一私钥变量和第二私钥变量;分别将第一私钥变量和第二私钥变量分成m份,分发给每个签名设备,m为签名设备集合包含的签名设备的个数。应用本发明实施例所提供的技术方案,可以提高数字签名的可靠性。本发明还公开了一种数字签名装置及存储介质,具有相应技术效果。
Description
技术领域
本发明涉及信息安全技术领域,特别是涉及一种数字签名方法、装置及存储介质。
背景技术
随着计算机技术和互联网技术的快速发展,各行各业对信息安全的关注程度越来越高。在进行信息传输时,多会通过数字签名方式保证信息传输的完整性、保证能够对发送方的身份进行认证、防止交易中的抵赖发生。
数字签名是将摘要信息用发送方的私钥加密,与原文一起传送给接收方。接收方只有用发送方的公钥才能解密被加密的摘要信息,然后用哈希HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
目前,在信息的发送方,多是通过一个签名设备进行私钥的保存,在需要进行数字签名时,直接使用该私钥生成签名值。私钥在一个签名设备中保存,如果该签名设备被非法攻破,很有可能会导致私钥的泄露,使得数字签名可靠性较低。如果非法人员使用私钥伪造数字签名进行信息的传输,接收方会误认为非法人员是合法的发送方,从而可能给发送方和接收方带来较大损失。
发明内容
本发明的目的是提供一种数字签名方法、装置及存储介质,以提高数字签名的可靠性。
为解决上述技术问题,本发明提供如下技术方案:
一种数字签名方法,包括:
在要进行数字签名时,获得签名设备集合中的每个签名设备的签名值,所述签名设备集合中包含多个签名设备,每个签名设备根据预先分配得到的私钥子份,计算自身的签名值;
将获得的每个签名设备的签名值进行合并处理,获得协同签名值;
其中,通过以下步骤将基于SM2算法的私钥预先分配给所述签名设备集合中的每个签名设备,以使每个签名设备得到相应的私钥子份:
根据所述私钥,确定第一私钥变量和第二私钥变量;
分别将所述第一私钥变量和所述第二私钥变量分成m份,分发给每个签名设备,m为所述签名设备集合包含的签名设备的个数。
在本发明的一种具体实施方式中,所述根据所述私钥,确定第一私钥变量和第二私钥变量,包括:
根据所述私钥加1的模n乘法逆,确定第一私钥变量,n为模长;
根据所述私钥与所述第一私钥变量的乘积,确定第二私钥变量。
在本发明的一种具体实施方式中,通过以下步骤将所述第一私钥变量分成m份,分发给每个签名设备:
确定前m-1个签名设备中的每个签名设备的第一密钥分量;
针对前m-1个签名设备中的每个签名设备,基于该签名设备的第一密钥分量,确定分配给该签名设备的第一私钥变量的第一子份;
将所述第一私钥变量的剩余值分配给第m个签名设备。
在本发明的一种具体实施方式中,所述基于该签名设备的第一密钥分量,确定分配给该签名设备的第一私钥变量的第一子份,包括:
将所述第一私钥变量减该签名设备的第一密钥分量的模n,确定为分配给该签名设备的第一私钥变量的第一子份。
在本发明的一种具体实施方式中,所述确定前m-1个签名设备中的每个签名设备的第一密钥分量,包括:
针对前m-1个签名设备中的每个签名设备,在[1,n-1]之间生成一个随机数,将该随机数确定为该签名设备的第一密钥分量。
在本发明的一种具体实施方式中,通过以下步骤将所述第二私钥变量分成m份,分发给每个签名设备:
确定前m-1个签名设备中的每个签名设备的第二密钥分量;
针对前m-1个签名设备中的每个签名设备,基于该签名设备的第二密钥分量,确定分配给该签名设备的第二私钥变量的第二子份;
将所述第二私钥变量的剩余值分配给第m个签名设备。
在本发明的一种具体实施方式中,所述每个签名设备根据预先分配得到的私钥子份,计算自身的签名值,包括:
针对每个签名设备,该签名设备根据以下公式计算自身的签名值:
si=kcimodn-rbimodn;
其中,si为第i个签名设备计算得到的自身的签名值,k为[1,n-1]之间的随机数,ci为分配给该第i个签名设备的第一私钥变量的第一子份,bi为分配给该第i个签名设备的第二私钥变量的第二子份,r=(e+x1)modn,x1为椭圆曲线点(x1,y1)=[k]G的坐标点,G为椭圆曲线的一个基点,其阶为素数,e=Hv(M1),Hv()为消息摘要长度为v比特的密码杂凑函数,M1=ZA||M,ZA=H256(ENTLA||IDA||a||b||xG||yG||xA||yA),xG、yG为G的坐标,xA、yA为PA的坐标,用户A的密钥对包括私钥dA和公钥PA=[dA]G=(xA,yA),用户A具有长度为entlenA比特的可辨别标识IDA,记ENTLA是由整数entlenA转换而成的两个字节。
一种数字签名装置,包括:
签名值获得模块,用于在要进行数字签名时,获得签名设备集合中的每个签名设备的签名值,所述签名设备集合中包含多个签名设备,每个签名设备根据预先分配得到的私钥子份,计算自身的签名值;
协同签名模块,用于将获得的每个签名设备的签名值进行合并处理,获得协同签名值;
私钥分配模块,用于通过以下步骤将基于SM2算法的私钥预先分配给所述签名设备集合中的每个签名设备,以使每个签名设备得到相应的私钥子份:
根据所述私钥,确定第一私钥变量和第二私钥变量;
分别将所述第一私钥变量和所述第二私钥变量分成m份,分发给每个签名设备,m为所述签名设备集合包含的签名设备的个数。
一种数字签名装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一项所述数字签名方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述数字签名方法的步骤。
应用本发明实施例所提供的技术方案,在要进行数字签名时,签名设备集合中包含的每个签名设备均根据预先分配得到的私钥子份,计算自身的签名值,获得各个签名设备的签名值,然后将获得的每个签名设备的签名值进行合并处理,获得协同签名值。将私钥预先分配给多个签名设备,使得每个签名设备得到相应的私钥子份,每个签名设备中存储相应的私钥子份,在要进行数字签名时,签名设备集合中的各个签名设备协同合作,获得协同签名值。在多个签名设备中存储私钥子份,可以提高私钥的存储安全性,如果其中某几个签名设备中的私钥子份被泄露,通过泄露的几个私钥子份不会还原出原始私钥,不会导致整个私钥的泄露,可以提高数字签名的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种数字签名方法的实施流程图;
图2为本发明实施例中一种数字签名装置的结构示意图;
图3为本发明实施例中另一种数字签名装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1所示,为本发明实施例所提供的一种数字签名方法的实施流程图,该方法可以包括以下步骤:
S110:在要进行数字签名时,获得签名设备集合中的每个签名设备的签名值。
签名设备集合中包含多个签名设备,每个签名设备根据预先分配得到的私钥子份,计算自身的签名值。
在本发明实施例中,由多个签名设备协同进行签名。签名设备集合中包含多个签名设备,可以预先为每个签名设备分配私钥子份,每个签名设备根据预先分配得到的私钥子份,计算自身的签名值。
在要进行数字签名时,可以获得签名设备集合中的每个签名设备的签名值。具体的,可以是签名设备集合之外的一个计算设备获取签名设备集合中每个签名设备的签名值,或者,还可以是由签名设备集合中的一个签名设备获取自身及其他各个签名设备的签名值。
在本发明的一种具体实施方式中,可以通过以下步骤将基于SM2算法的私钥预先分配给签名设备集合中的每个签名设备,以使每个签名设备得到相应的私钥子份:
步骤一:根据私钥,确定第一私钥变量和第二私钥变量;
步骤二:分别将第一私钥变量和第二私钥变量分成m份,分发给每个签名设备,m为签名设备集合包含的签名设备的个数。
为便于描述,将上述两个步骤结合起来进行说明。
在本发明实施例中,私钥是基于SM2算法生成的私钥。SM2算法是一种椭圆曲线公钥密码算法。基于SM2算法生成公钥和私钥,根据该私钥,可以确定第一私钥变量和第二私钥变量。
具体的,可以根据私钥加1的模n乘法逆,确定第一私钥变量。如确定第一私钥变量c=(1+dA)-1。(1+dA)-1即为(1+dA)的模n乘法逆。n为模长。
可以根据私钥与第一私钥变量的乘积,确定第二私钥变量。如确定第二私钥变量b=dAc=dA(1+dA)-1。dA为SM2算法的私钥。
分别将第一私钥变量和第二私钥变量分成m份,分发给每个签名设备。m为签名设备集合包含的签名设备的个数。
在本发明的一种具体实施方式中,可以通过以下步骤将第一私钥变量分成m份,分发给每个签名设备:
第一个步骤:确定前m-1个签名设备中的每个签名设备的第一密钥分量;
第二个步骤:针对前m-1个签名设备中的每个签名设备,基于该签名设备的第一密钥分量,确定分配给该签名设备的第一私钥变量的第一子份;
第三个步骤:将第一私钥变量的剩余值分配给第m个签名设备。
为便于描述,将上述三个步骤结合起来进行说明。
如前所描述的,签名设备集合中包含m个签名设备。首先确定出前m-1个签名设备中的每个签名设备的第一密钥分量。具体的,可以针对前m-1个签名设备中的每个签名设备,在[1,n-1]之间生成一个随机数,将该随机数确定为该签名设备的第一密钥分量。为增强安全性,不同签名设备的第一密钥分量不同。
确定出前m-1个签名设备中的每个签名设备的第一密钥分量后,针对前m-1个签名设备中的每个签名设备,可以基于该签名设备的第一密钥分量,确定分配给该签名设备的第一密钥分量的第一子份。即每个签名设备都可得到一个第一私钥变量的第一子份,不同签名设备分配得到的第一子份不同。
具体的,针对前m-1个签名设备中的每个签名设备,可以将第一私钥变量减该签名设备的第一密钥分量的模n,确定为分配给该签名设备的第一私钥变量的第一子份。
为前m-1个签名设备中的每个签名设备均分配相应的第一私钥变量的第一子份后,将第一私钥变量的剩余值分配给第m个签名设备。
举例而言,针对第一个签名设备,在[1,n-1]之间生成一个随机数t1,t1为整数,t1即可作为第一个签名设备的第一密钥分量;
基于第一个签名设备的第一密钥分量,确定分配给第一个签名设备的第一私钥变量的第一子份,如分配给第一个签名设备的第一私钥变量的第一子份c1=(c-t1)modn。
针对第二个签名设备,在[1,n-1]之间生成一个随机数t2,t2为整数,t2即可作为第二个签名设备的第一密钥分量;
基于第二个签名设备的第一密钥分量,确定分配给第二个签名设备的第一私钥变量的第一子份,如分配给第二个签名设备的第一私钥变量的第一子份c2=(c-t2)modn。
相应的,针对第三个、第四个、第m-1个签名设备均执行上述操作,可以分配给前m-1个签名设备中的每个签名设备相应的第一私钥变量的第一子份。
按照上述方式分配后,将c的剩余值分配给第m个签名设备,该剩余值即为分配给第m个签名设备的第一私钥变量的第一子份。
至此,每个签名设备均被分配得到了第一私钥变量的第一子份。(c1+c2+……+cm)modn=cmodn。
在本发明的另一种具体实施方式中,可以通过以下步骤将第二私钥变量分成m份,分发给每个签名设备:
步骤一:确定前m-1个签名设备中的每个签名设备的第二密钥分量;
步骤二:针对前m-1个签名设备中的每个签名设备,基于该签名设备的第二密钥分量,确定分配给该签名设备的第二私钥变量的第二子份;
步骤三:将第二私钥变量的剩余值分配给第m个签名设备。
为便于描述,将上述三个步骤结合起来进行说明。
如前所描述的,签名设备集合中包含m个签名设备。首先确定出前m-1个签名设备中的每个签名设备的第二密钥分量。具体的,可以针对前m-1个签名设备中的每个签名设备,在[1,n-1]之间生成一个随机数,将该随机数确定为该签名设备的第二密钥分量。为增强安全性,不同签名设备的第二密钥分量不同。第二密钥分量与第一密钥分量可以相同或不同。
确定出前m-1个签名设备中的每个签名设备的第二密钥分量后,针对前m-1个签名设备中的每个签名设备,可以基于该签名设备的第二密钥分量,确定分配给该签名设备的第二密钥分量的第二子份。即每个签名设备都可得到一个第二私钥变量的第二子份,不同签名设备分配得到的第二子份不同。
具体的,针对前m-1个签名设备中的每个签名设备,可以将第二私钥变量减该签名设备的第二密钥分量的模n,确定为分配给该签名设备的第二私钥变量的第二子份。
为前m-1个签名设备中的每个签名设备均分配相应的第二私钥变量的第二子份后,将第二私钥变量的剩余值分配给第m个签名设备。
举例而言,针对第一个签名设备,在[1,n-1]之间生成一个随机数t1,t1为整数,t1即可作为第一个签名设备的第二密钥分量;
基于第一个签名设备的第二密钥分量,确定分配给第一个签名设备的第二私钥变量的第二子份,如分配给第一个签名设备的第二私钥变量的第二子份c1=(c-t1)modn。
针对第二个签名设备,在[1,n-1]之间生成一个随机数t2,t2为整数,t2即可作为第二个签名设备的第二密钥分量;
基于第二个签名设备的第二密钥分量,确定分配给第二个签名设备的第二私钥变量的第二子份,如分配给第二个签名设备的第二私钥变量的第二子份c2=(c-t2)modn。
针对第三个、第四个、第m-1个签名设备均执行上述操作,可以分配给前m-1个签名设备中的每个签名设备相应的第二私钥变量的第二子份。
按照上述方式分配后,将c的剩余值分配给第m个签名设备,该剩余值即为分配给第m个签名设备的第二私钥变量的第二子份。
至此,每个签名设备均被分配得到了第二私钥变量的第二子份。(b1+b2+……+bn)modn=bmodn。
每个签名设备被分配得到第一私钥变量的第一子份和第二私钥变量的第二子份,二者组合即为每个签名设备得到的相应的私钥子份。
在要进行数字签名时,签名设备集合中的每个签名设备根据预先分配得到的私钥子份,计算自身的签名值。
具体的,针对每个签名设备,该签名设备根据以下公式计算自身的签名值:
si=kcimodn-rbimodn;
其中,si为第i个签名设备计算得到的自身的签名值,k为[1,n-1]之间的随机数,ci为分配给该第i个签名设备的第一私钥变量的第一子份,bi为分配给该第i个签名设备的第二私钥变量的第二子份,r=(e+x1)modn,x1为椭圆曲线点(x1,y1)=[k]G的坐标点,G为椭圆曲线的一个基点,其阶为素数,e=Hv(M1),Hv()为消息摘要长度为v比特的密码杂凑函数,M1=ZA||M,ZA=H256(ENTLA||IDA||a||b||xG||yG||xA||yA),xG、yG为G的坐标,xA、yA为PA的坐标,用户A的密钥对包括私钥dA和公钥PA=[dA]G=(xA,yA),用户A具有长度为entlenA比特的可辨别标识IDA,记ENTLA是由整数entlenA转换而成的两个字节。
S120:将获得的每个签名设备的签名值进行合并处理,获得协同签名值。
获得签名设备集合中的每个签名设备的签名值之后,可以将获得的每个签名设备的签名值进行合并处理。
具体的,可以将各个签名设备的签名值进行相加处理。
如s=(kc1modn-rb1modn)+(kc2modn-rb2modn)+…+(kcmmodn-rbmmodn)。
最后,将(r,s)确定为协同签名值。
应用本发明实施例所提供的方法,在要进行数字签名时,签名设备集合中包含的每个签名设备均根据预先分配得到的私钥子份,计算自身的签名值,获得各个签名设备的签名值,然后将获得的每个签名设备的签名值进行合并处理,获得协同签名值。将私钥预先分配给多个签名设备,使得每个签名设备得到相应的私钥子份,每个签名设备中存储相应的私钥子份,在要进行数字签名时,签名设备集合中的各个签名设备协同合作,获得协同签名值。在多个签名设备中存储私钥子份,可以提高私钥的存储安全性,如果其中某几个签名设备中的私钥子份被泄露,通过泄露的几个私钥子份不会还原出原始私钥,不会导致整个私钥的泄露,可以提高数字签名的可靠性。
相应于上面的方法实施例,本发明实施例还提供了一种数字签名装置,下文描述的数字签名装置与上文描述的数字签名方法可相互对应参照。
参见图2所示,该装置包括:
签名值获得模块210,用于在要进行数字签名时,获得签名设备集合中的每个签名设备的签名值,签名设备集合中包含多个签名设备,每个签名设备根据预先分配得到的私钥子份,计算自身的签名值;
协同签名模块220,用于将获得的每个签名设备的签名值进行合并处理,获得协同签名值;
私钥分配模块230,用于通过以下步骤将基于SM2算法的私钥预先分配给签名设备集合中的每个签名设备,以使每个签名设备得到相应的私钥子份:
根据私钥,确定第一私钥变量和第二私钥变量;
分别将第一私钥变量和第二私钥变量分成m份,分发给每个签名设备,m为签名设备集合包含的签名设备的个数。
在本发明的一种具体实施方式中,私钥分配模块230,具体用于:
根据私钥加1的模n乘法逆,确定第一私钥变量,n为模长;
根据私钥与第一私钥变量的乘积,确定第二私钥变量。
在本发明的一种具体实施方式中,私钥分配模块230,具体用于通过以下步骤将第一私钥变量分成m份,分发给每个签名设备:
确定前m-1个签名设备中的每个签名设备的第一密钥分量;
针对前m-1个签名设备中的每个签名设备,基于该签名设备的第一密钥分量,确定分配给该签名设备的第一私钥变量的第一子份;
将第一私钥变量的剩余值分配给第m个签名设备。
在本发明的一种具体实施方式中,私钥分配模块230,具体用于:
将第一私钥变量减该签名设备的第一密钥分量的模n,确定为分配给该签名设备的第一私钥变量的第一子份。
在本发明的一种具体实施方式中,私钥分配模块230,具体用于:
针对前m-1个签名设备中的每个签名设备,在[1,n-1]之间生成一个随机数,将该随机数确定为该签名设备的第一密钥分量。
在本发明的一种具体实施方式中,私钥分配模块230,具体用于通过以下步骤将第二私钥变量分成m份,分发给每个签名设备:
确定前m-1个签名设备中的每个签名设备的第二密钥分量;
针对前m-1个签名设备中的每个签名设备,基于该签名设备的第二密钥分量,确定分配给该签名设备的第二私钥变量的第二子份;
将第二私钥变量的剩余值分配给第m个签名设备。
在本发明的一种具体实施方式中,还包括签名值计算模块,用于:
针对每个签名设备,该签名设备根据以下公式计算自身的签名值:
si=kcimodn-rbimodn;
其中,si为第i个签名设备计算得到的自身的签名值,k为[1,n-1]之间的随机数,ci为分配给该第i个签名设备的第一私钥变量的第一子份,bi为分配给该第i个签名设备的第二私钥变量的第二子份,r=(e+x1)modn,x1为椭圆曲线点(x1,y1)=[k]G的坐标点,G为椭圆曲线的一个基点,其阶为素数,e=Hv(M1),Hv()为消息摘要长度为v比特的密码杂凑函数,M1=ZA||M,ZA=H256(ENTLA||IDA||a||b||xG||yG||xA||yA),xG、yG为G的坐标,xA、yA为PA的坐标,用户A的密钥对包括私钥dA和公钥PA=[dA]G=(xA,yA),用户A具有长度为entlenA比特的可辨别标识IDA,记ENTLA是由整数entlenA转换而成的两个字节。
相应于上面的方法实施例,本发明实施例还提供了一种数字签名装置,如图3所示,包括:
存储器310,用于存储计算机程序;
处理器320,用于执行计算机程序时实现上述数字签名方法的步骤。
相应于上面的方法实施例,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述数字签名方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种数字签名方法,其特征在于,包括:
在要进行数字签名时,获得签名设备集合中的每个签名设备的签名值,所述签名设备集合中包含多个签名设备,每个签名设备根据预先分配得到的私钥子份,计算自身的签名值;
将获得的每个签名设备的签名值进行合并处理,获得协同签名值;
其中,通过以下步骤将基于SM2算法的私钥预先分配给所述签名设备集合中的每个签名设备,以使每个签名设备得到相应的私钥子份:
根据所述私钥,确定第一私钥变量和第二私钥变量;
分别将所述第一私钥变量和所述第二私钥变量分成m份,分发给每个签名设备,m为所述签名设备集合包含的签名设备的个数。
2.根据权利要求1所述的方法,其特征在于,所述根据所述私钥,确定第一私钥变量和第二私钥变量,包括:
根据所述私钥加1的模n乘法逆,确定第一私钥变量,n为模长;
根据所述私钥与所述第一私钥变量的乘积,确定第二私钥变量。
3.根据权利要求1所述的方法,其特征在于,通过以下步骤将所述第一私钥变量分成m份,分发给每个签名设备:
确定前m-1个签名设备中的每个签名设备的第一密钥分量;
针对前m-1个签名设备中的每个签名设备,基于该签名设备的第一密钥分量,确定分配给该签名设备的第一私钥变量的第一子份;
将所述第一私钥变量的剩余值分配给第m个签名设备。
4.根据权利要求3所述的方法,其特征在于,所述基于该签名设备的第一密钥分量,确定分配给该签名设备的第一私钥变量的第一子份,包括:
将所述第一私钥变量减该签名设备的第一密钥分量的模n,确定为分配给该签名设备的第一私钥变量的第一子份。
5.根据权利要求3所述的方法,其特征在于,所述确定前m-1个签名设备中的每个签名设备的第一密钥分量,包括:
针对前m-1个签名设备中的每个签名设备,在[1,n-1]之间生成一个随机数,将该随机数确定为该签名设备的第一密钥分量。
6.根据权利要求3至5之中任一项所述的方法,其特征在于,通过以下步骤将所述第二私钥变量分成m份,分发给每个签名设备:
确定前m-1个签名设备中的每个签名设备的第二密钥分量;
针对前m-1个签名设备中的每个签名设备,基于该签名设备的第二密钥分量,确定分配给该签名设备的第二私钥变量的第二子份;
将所述第二私钥变量的剩余值分配给第m个签名设备。
7.根据权利要求6所述的方法,其特征在于,所述每个签名设备根据预先分配得到的私钥子份,计算自身的签名值,包括:
针对每个签名设备,该签名设备根据以下公式计算自身的签名值:
si=kcimodn-rbimodn;
其中,si为第i个签名设备计算得到的自身的签名值,k为[1,n-1]之间的随机数,ci为分配给该第i个签名设备的第一私钥变量的第一子份,bi为分配给该第i个签名设备的第二私钥变量的第二子份,n为模长,r=(e+x1)modn,x1为椭圆曲线点(x1,y1)=[k]G的坐标点,G为椭圆曲线的一个基点,其阶为素数,e=Hv(M1),Hv()为消息摘要长度为v比特的密码杂凑函数,M1=ZA||M,ZA=H256(ENTLA||IDA||a||b||xG||yG||xA||yA),xG、yG为G的坐标,xA、yA为PA的坐标,用户A的密钥对包括私钥dA和公钥PA=[dA]G=(xA,yA),用户A具有长度为entlenA比特的可辨别标识IDA,记ENTLA是由整数entlenA转换而成的两个字节。
8.一种数字签名装置,其特征在于,包括:
签名值获得模块,用于在要进行数字签名时,获得签名设备集合中的每个签名设备的签名值,所述签名设备集合中包含多个签名设备,每个签名设备根据预先分配得到的私钥子份,计算自身的签名值;
协同签名模块,用于将获得的每个签名设备的签名值进行合并处理,获得协同签名值;
私钥分配模块,用于通过以下步骤将基于SM2算法的私钥预先分配给所述签名设备集合中的每个签名设备,以使每个签名设备得到相应的私钥子份:
根据所述私钥,确定第一私钥变量和第二私钥变量;
分别将所述第一私钥变量和所述第二私钥变量分成m份,分发给每个签名设备,m为所述签名设备集合包含的签名设备的个数。
9.一种数字签名装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数字签名方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数字签名方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910344133.3A CN110048839A (zh) | 2019-04-26 | 2019-04-26 | 一种数字签名方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910344133.3A CN110048839A (zh) | 2019-04-26 | 2019-04-26 | 一种数字签名方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110048839A true CN110048839A (zh) | 2019-07-23 |
Family
ID=67279625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910344133.3A Pending CN110048839A (zh) | 2019-04-26 | 2019-04-26 | 一种数字签名方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110048839A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958115A (zh) * | 2019-12-03 | 2020-04-03 | 成都卫士通信息产业股份有限公司 | 基于sm9白盒的数字签名装置、方法、存储介质及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079412A (zh) * | 2014-07-08 | 2014-10-01 | 甘肃省电力设计院 | 基于智能电网身份安全的无可信pkg的门限代理签名方法 |
CN106549770A (zh) * | 2017-01-13 | 2017-03-29 | 武汉理工大学 | Sm2数字签名生成方法及系统 |
CN106603231A (zh) * | 2017-01-20 | 2017-04-26 | 武汉理工大学 | 基于去秘密化的分布式sm2数字签名生成方法及系统 |
CN107483205A (zh) * | 2017-09-28 | 2017-12-15 | 武汉理工大学 | 一种基于加密的私钥秘密的数字签名生成方法及系统 |
CN107819585A (zh) * | 2017-11-17 | 2018-03-20 | 武汉理工大学 | Sm9数字签名协同生成方法及系统 |
CN109274503A (zh) * | 2018-11-05 | 2019-01-25 | 北京仁信证科技有限公司 | 分布式协同签名方法及分布式协同签名装置、软盾系统 |
-
2019
- 2019-04-26 CN CN201910344133.3A patent/CN110048839A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079412A (zh) * | 2014-07-08 | 2014-10-01 | 甘肃省电力设计院 | 基于智能电网身份安全的无可信pkg的门限代理签名方法 |
CN106549770A (zh) * | 2017-01-13 | 2017-03-29 | 武汉理工大学 | Sm2数字签名生成方法及系统 |
CN106603231A (zh) * | 2017-01-20 | 2017-04-26 | 武汉理工大学 | 基于去秘密化的分布式sm2数字签名生成方法及系统 |
CN107483205A (zh) * | 2017-09-28 | 2017-12-15 | 武汉理工大学 | 一种基于加密的私钥秘密的数字签名生成方法及系统 |
CN107819585A (zh) * | 2017-11-17 | 2018-03-20 | 武汉理工大学 | Sm9数字签名协同生成方法及系统 |
CN109274503A (zh) * | 2018-11-05 | 2019-01-25 | 北京仁信证科技有限公司 | 分布式协同签名方法及分布式协同签名装置、软盾系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958115A (zh) * | 2019-12-03 | 2020-04-03 | 成都卫士通信息产业股份有限公司 | 基于sm9白盒的数字签名装置、方法、存储介质及设备 |
CN110958115B (zh) * | 2019-12-03 | 2022-08-23 | 成都卫士通信息产业股份有限公司 | 基于sm9白盒的数字签名装置、方法、存储介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3673609B1 (en) | Method and apparatus for obtaining input of secure multiparty computation protocol | |
CN109033855B (zh) | 一种基于区块链的数据传输方法、装置及存储介质 | |
CN107483212B (zh) | 一种双方协作生成数字签名的方法 | |
CN106961336B (zh) | 一种基于sm2算法的密钥分量托管方法和系统 | |
CN106789080B (zh) | 数字签名生成方法和装置 | |
CN110264200B (zh) | 区块链数据处理方法及装置 | |
EP3761203A1 (en) | Information processing method, blockchain node, and electronic apparatus | |
CN103560882B (zh) | 一种基于标识的椭圆曲线密码系统 | |
CN105553654B (zh) | 密钥信息处理方法和装置、密钥信息管理系统 | |
TW202113646A (zh) | 非對稱密鑰中的私鑰生成和使用方法、裝置和設備 | |
CN104967693B (zh) | 面向云存储的基于全同态密码技术的文档相似度计算方法 | |
US7000110B1 (en) | One-way function generation method, one-way function value generation device, proving device, authentication method, and authentication device | |
CN108848058A (zh) | 智能合约处理方法及区块链系统 | |
CN112257085B (zh) | 一种基于区块链的招投标处理方法、系统、设备及介质 | |
CN107360002B (zh) | 一种数字证书的申请方法 | |
CN108199847B (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN106685651A (zh) | 一种客户端和服务端协作生成数字签名的方法 | |
CN106685662B (zh) | 一种基于余数系统的商密sm2加密算法的白盒软件实现方法 | |
CN110100422A (zh) | 基于区块链智能合约的数据写入方法、装置及存储介质 | |
GB2419787A (en) | Method and apparatus for providing short-term private keys in public key cryptographic systems | |
CN106059760B (zh) | 一种从用户端密码模块调用系统私钥的密码系统 | |
CN109560935A (zh) | 基于公共非对称密钥池的抗量子计算的签章方法和签章系统 | |
CN115473722A (zh) | 数据加密方法、装置、电子设备及存储介质 | |
CN110113151B (zh) | 一种对elf格式程序的非侵入式实时加解密方法 | |
CN110048839A (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 | ||
CB02 | Change of applicant information |
Address after: 264200 No. 12-1, Chuhe North Road, torch high tech Industrial Development Zone, Weihai City, Shandong Province Applicant after: Yuweng Information Technology Co.,Ltd. Address before: No.12, Chuhe North Road, gaoqu District, Weihai City, Shandong Province Applicant before: SHANDONG FISHERMAN INFORMATION TECHNOLOGY CO.,LTD. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190723 |
|
RJ01 | Rejection of invention patent application after publication |