CN107204846A - 数字签名生成方法、系统、节点模块及共同随机数协商确定方法 - Google Patents
数字签名生成方法、系统、节点模块及共同随机数协商确定方法 Download PDFInfo
- Publication number
- CN107204846A CN107204846A CN201710400617.6A CN201710400617A CN107204846A CN 107204846 A CN107204846 A CN 107204846A CN 201710400617 A CN201710400617 A CN 201710400617A CN 107204846 A CN107204846 A CN 107204846A
- Authority
- CN
- China
- Prior art keywords
- node module
- node
- module
- random number
- private key
- 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
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/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/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)
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种数字签名生成方法、系统、节点模块及共同随机数协商确定方法,第一类型节点模块中保存有第一类型节点模块的节点私钥以及各第二类型节点模块的节点公钥,各第二类型节点模块中均保存有自身的节点私钥。本发明根据待签名原文、随机数及第一类型节点模块的节点私钥生成第一签名片段;根据随机数、第一类型节点模块的节点私钥及第一签名片段生成待加密数值;对每一个第二类型节点模块:使用该第二类型节点模块的节点公钥对待加密数值行加密,获得加密结果并发送到该第二类型节点模块;根据随机数、第一签名片段及各第二类型节点模块返回的计算结果生成第二签名片段。本发明将私钥拆分到多个节点模块中,保证了数字签名安全性。
Description
技术领域
本发明涉及数字签名技术领域,特别是涉及数字签名生成方法、系统、节点模块及共同随机数协商确定方法。
背景技术
在电子认证领域,数字签名技术是最常见的身份认证技术之一,比如电子银行身份认证和电子门禁卡等都是使用数字签名技术较多的领域,SM2密码算法作为一种成熟的公钥算法,在国家的大力推广下,已经在很多的互联网和线下系统中得到应用,证明了其安全性。
为了提高安全性,对某个业务进行操作,往往需要多人同时进行授权。现有技术通过多人分别使用不同的签名设备的方式来分别生成多个完整的数字签名,然后依次进行数字签名验证,在这多个完整的数字签名全部验证通过后才确认可以进行该业务的操作。为了生成完整的数字签名,现有技术使用的签名设备中保存有完整的私钥,易被他人通过非法手段获得,降低了私钥的安全性。当然,使用软件形式实现的数字签名客户端,现有技术仍然不可避免的要在安装有该数字签名客户端的设备的内存中出现完整的私钥,同样易被他人通过非法手段获得。
当然,除SM2密码算法外,其他数字签名生成算法也可能存在相同问题。
发明内容
本发明实施例的目的在于提供一种数字签名生成方法、系统、节点模块及共同随机数协商确定方法,以实现提高数字签名的安全性。具体技术方案如下:
一种数字签名生成方法,应用于第一类型节点模块中,所述第一类型节点模块和多个第二类型节点模块相连接,所述第一类型节点模块中保存有所述第一类型节点模块的节点私钥以及各第二类型节点模块的节点公钥,各所述第二类型节点模块中均保存有自身的节点私钥,所述方法包括:
所述第一类型节点模块根据待签名原文、第一随机数、第二随机数及所述第一类型节点模块的节点私钥生成第一签名片段;
所述第一类型节点模块根据所述第二随机数、第三随机数、所述第一类型节点模块的节点私钥及所述第一签名片段生成待加密数值;
对每一个第二类型节点模块:所述第一类型节点模块使用该第二类型节点模块的节点公钥对所述待加密数值行加密,获得加密结果并将该加密结果发送到该第二类型节点模块;
所述第一类型节点模块接收各第二类型节点模块返回的计算结果,其中,每一个第二类型节点模块返回的计算结果值均是由该第二类型节点模块使用自身的节点私钥对加密结果进行解密并根据解密结果、所述第一随机数及该第二类型节点模块的节点私钥生成的;
所述第一类型节点模块根据第三随机数、第一签名片段及各第二类型节点模块返回的计算结果生成第二签名片段,所述第一签名片段和所述第二签名片段即为最终签名结果。
可选的,所述第一类型节点模块的节点私钥由第一私钥P0和第二私钥P1构成,所述第一类型节点模块根据待签名原文、第一随机数、第二随机数及所述第一类型节点模块的节点私钥生成第一签名片段,包括:
所述第一类型节点模块从所述第二类型节点模块中获得第一中间值Om,其中,所述Om=Km·G,所述Km为第一随机数,所述Km为由各第二类型节点模块协商确定的共同随机数,所述G为SM2椭圆曲线的基点,·为点积符号;
根据待签名原文和Z生成摘要E,其中,所述Z为用户可辨别标识;
通过公式
O=K1·Om+P′0·G
计算得到第二中间值O,获得所述O的x坐标值x1,其中,所述K1为所述第一类型节点模块生成的第二随机数,所述P′0为所述P0在SM2算法空间乘法逆元;
通过公式
R=x1+E
计算得到第一签名结果R。
可选的,所述第一类型节点模块根据所述第二随机数、第三随机数、所述第一类型节点模块的节点私钥及所述第一签名片段生成待加密数值,包括:
通过公式
U1=(P′0+R)×P1′×P′0×K0
V1=P′0×P1′×K1×K0
计算得到待加密数值U1和待加密数值V1,其中,所述K0为所述第一类型节点模块生成的第三随机数。
可选的,第i个第二类型节点模块返回的计算结果Ti是由该第二类型节点模块使用自身的节点私钥对加密结果进行解密并根据公式
Ti=(V1×Pi×Km)+(U1×Pi)
计算得到的,其中,所述U1和所述V1为解密结果,所述Pi为第i个第二类型节点模块中的节点私钥,1≤i≥n,n为第二类型节点模块的个数。
可选的,所述第一类型节点模块根据第三随机数、第一签名片段及各第二类型节点模块返回的计算结果生成第二签名片段,包括:
根据公式
计算得到第二签名片段S。
可选的,所述第一私钥P0和所述第二私钥P1均为随机数,各所述第二类型节点模块的节点私钥均根据第四随机数Pm生成,且各第二类型节点模块的节点私钥之和与所述P′m同余。
一种共同随机数协商确定方法,包括:
多个节点模块按照预设协商顺序排列,按照预设排列顺序对节点模块记为Si,i为自然数且1≤i≤n,其中,i为节点模块的排序位置,n为节点模块的数量;
任意相邻的两个节点模块之间均协商确定一个随机数,将Si与Si+1协商确定的随机数记为:Ci&i+1;
将C1&2确定为各节点模块协商确定的共同随机数Km并将C1&2发送到除S1和S2外的其他节点模块中;或者,将Cn-1&n确定为各节点模块协商确定的共同随机数Km并将Cn-1&n发送到除Sn-1和Sn外的其他节点模块中。
一种节点模块,所述节点模块为第一类型节点模块,所述第一类型节点模块与多个第二类型节点模块相连接,所述第一模块中保存有所述第一类型节点模块的节点私钥以及各第二类型节点模块的节点公钥,所述第一类型节点模块包括:第一签名片段生成单元、待加密数值生成单元、加密单元、计算结果接收单元和第二签名片段生成单元,
所述第一签名片段生成单元,用于根据待签名原文、第一随机数、第二随机数及所述第一类型节点模块的节点私钥生成第一签名片段;
所述待加密数值生成单元,用于根据所述第二随机数、第三随机数、所述第一类型节点模块的节点私钥及所述第一签名片段生成待加密数值;
所述加密单元,用于对每一个第二类型节点模块:使用该第二类型节点模块的节点公钥对所述待加密数值行加密,获得加密结果并将该加密结果发送到该第二类型节点模块;
所述计算结果接收单元,用于接收各第二类型节点模块返回的计算结果,其中,每一个第二类型节点模块返回的计算结果值均是由该第二类型节点模块使用自身的节点私钥对加密结果进行解密并根据解密结果、所述第一随机数及该第二类型节点模块的节点私钥生成的;
所述第二签名片段生成单元,用于根据第三随机数、第一签名片段及各第二类型节点模块返回的计算结果生成第二签名片段,所述第一签名片段和所述第二签名片段即为最终签名结果。
一种节点模块,所述节点模块为第二类型节点模块,所述第二类型节点模块与第一类型节点模块相连接,所述第二类型节点模块中保存有自身的节点私钥,所述第二类型节点模块使用自身的节点私钥对加密结果进行解密并根据解密结果、所述第一随机数及该第二类型节点模块的节点私钥生成计算结果,并将所述计算结果发送到所述第一类型节点模块。
一种数字签名生成系统,包括:上述的第一类型节点模块和多个上述的第二类型节点模块。
本发明实施例提供的数字签名生成方法、系统、节点模块及共同随机数协商确定方法,第一类型节点模块中保存有所述第一类型节点模块的节点私钥以及各第二类型节点模块的节点公钥,各所述第二类型节点模块中均保存有自身的节点私钥。本发明根据待签名原文、第一随机数、第二随机数及第一类型节点模块的节点私钥生成第一签名片段;根据第二随机数、第三随机数、第一类型节点模块的节点私钥及第一签名片段生成待加密数值;对每一个第二类型节点模块:使用该第二类型节点模块的节点公钥对待加密数值行加密,获得加密结果并将该加密结果发送到该第二类型节点模块;接收各第二类型节点模块返回的计算结果,然后根据第三随机数、第一签名片段及各第二类型节点模块返回的计算结果生成第二签名片段。本发明将私钥拆分到多个节点模块中,每一个节点模块中的私钥都不是完整的私钥,需要根据所有节点模块中的私钥才可以生成最终签名结果,因此即使某节点模块中的私钥被不法分子获得,不法分子也无法生成最终签名结果,因此本发明保证了数字签名的安全和有效性。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数字签名生成系统的结构示意图;
图2为本发明实施例提供的一种数字签名生成方法的流程图;
图3为本发明实施例提供的另一种数字签名生成方法的流程图;
图4为本发明实施例提供的一种节点模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种数字签名生成方法,应用于如图1所示的第一类型节点模块001中,所述第一类型节点模块001和多个第二类型节点模块002相连接,所述第一类型节点模块001中保存有所述第一类型节点模块001的节点私钥以及各第二类型节点模块的节点公钥,各所述第二类型节点模块002中均保存有自身的节点私钥,如图2所示,该方法可以包括:
S100、所述第一类型节点模块根据待签名原文、第一随机数、第二随机数及所述第一类型节点模块的节点私钥生成第一签名片段;
其中,第一类型节点模块和各第二类型节点模块可以位于同一设备中,也可以位于不同装置中,例如:第一类型节点模块位于第一装置中,与该第一类型节点模块相连接的各第二类型节点模块均位于第二装置中;或者,第一类型节点模块位于第一装置中,与该第一类型节点模块相连接的各第二类型节点模块分别位于不同的其他装置中(例如:第一类型节点模块位于门禁卡刷卡器中,每个第二类型节点模块均位于一个门禁卡中)。
当然,在第一类型节点模块和各第二类型节点模块位于同一设备中时,本发明可以将同一设备中的各节点模块对应的数据存储地址进行分离,例如:每个节点模块的数据存储地址均为一个地址区间,且各地址区间互不重叠、互不相邻。
其中,所述第一类型节点模块的节点私钥可以由第一私钥P0和第二私钥P1构成。可选的,所述第一私钥P0和第二私钥P1可以均为随机数,各所述第二类型节点模块的节点私钥均根据第四随机数Pm生成,且各第二类型节点模块的节点私钥之和与所述P′m同余。
在实际应用中,本发明可以预先生成三个随机数:P0、P1和Pm,将P0、P1放入第一类型节点模块中作为该节点模块的节点私钥;并将P′m拆分为所述第二类型节点模块数量的节点私钥,分别放入各第二类型节点模块中。
可选的,对每一个第二类型节点模块:该节点模块的节点公钥可以为:该第二类型节点模块的节点私钥与SM2椭圆曲线的基点的点积。
在本发明另一实施例中,所述第一类型节点模块的节点私钥可以由第一私钥P0和第二私钥P1构成,步骤S100可以具体包括:
所述第一类型节点模块从所述第二类型节点模块中获得第一中间值Om,其中,所述Om=Km·G,所述Km为第一随机数,所述Km为由各第二类型节点模块协商确定的共同随机数,所述G为SM2椭圆曲线的基点,·为点积符号;
根据待签名原文和Z生成摘要E,其中,所述Z为用户可辨别标识;
通过公式
O=K1·Om+P′0·G
计算得到第二中间值O,获得所述O的x坐标值x1,其中,所述K1为所述第一类型节点模块生成的第二随机数,所述P′0为所述P0在SM2算法空间的乘法逆元;
通过公式
R=x1+E
计算得到第一签名结果R。
其中,各第二类型节点模块协商确定共同随机数Km的方法可以包括:
各第二类型节点模块按照预设协商顺序排列,按照预设排列顺序对各第二类型节点模块记为Si,i为自然数且1≤i≤n,其中,i为第二类型节点模块的排序位置,n为第二类型节点模块的数量;
任意相邻的两个第二类型节点模块之间均协商确定一个随机数;将Si与Si+1协商确定的随机数记为:Ci&i+1。
将C1&2确定为各第二类型节点模块协商确定的共同随机数Km并将C1&2发送到除S1和S2外的其他第二类型节点模块中;或者,将Cn-1&n确定为各第二类型节点模块协商确定的共同随机数Km并将Cn-1&n发送到除Sn-1和Sn外的其他第二类型节点模块中。
其中,将C1&2发送到除S1和S2外的其他第二类型节点模块中,可以包括:
S2使用C2&3对C1&2进行加密并将加密结果发送到S3;
Si使用Ci-1&i对Si-1发送的加密结果进行解密,获得C1&2并使用Ci&i+1对C1&2进行加密,将加密结果发送到Si+1;其中,i为自然数且3≤i≤n-1;
Sn使用Cn-1&n对Sn-1发送的加密结果进行解密,获得C1&2。
这样,各第二类型节点模块就都获得了共同随机数C1&2。
其中,将Cn-1&n发送到除Sn-1和Sn外的其他第二类型节点模块中,可以包括:
Sn-1使用Cn-2&n-1对Cn-1&n进行加密并将加密结果发送到Sn-2;
Si使用Ci&i+1对Si+1发送的加密结果进行解密,获得Cn-1&n并使用Ci-1&i对Cn-1&n进行加密,将加密结果发送到Si-1;其中,i为自然数且2≤i≤n-2;
S1使用C1&2对S2发送的加密结果进行解密,获得Cn-1&n。
本发明通过各第二类型节点模块依次加密发送的方式保证了共同随机数的安全性。
当然,可以理解的是,上述协商确定共同随机数的方法并不仅限于各第二类型节点模块之间使用,其他节点模块也可以使用。
S200、所述第一类型节点模块根据所述第二随机数、第三随机数、所述第一类型节点模块的节点私钥及所述第一签名片段生成待加密数值;
其中,所述第三随机数可以由第一类型节点模块生成。
可选的,步骤S200可以包括:
通过公式
U1=(P′0+R)×P1′×P′0×K0
V1=P′0×P1′×K1×K0
计算得到待加密数值U1和待加密数值V1,其中,所述K0为所述第一类型节点模块生成的第三随机数。
S300、对每一个第二类型节点模块:所述第一类型节点模块使用该第二类型节点模块的节点公钥对所述待加密数值行加密,获得加密结果并将该加密结果发送到该第二类型节点模块;
对每一个第二类型节点模块:由于使用该第二类型节点模块的节点公钥对所述待加密数值行加密,因此该第二类型节点模块可以使用自身的节点私钥对加密结果进行解密从而获得解密结果,即待加密数值。本发明通过这种加密、解密方式保证了数据的安全性。
S400、所述第一类型节点模块接收各第二类型节点模块返回的计算结果,其中,每一个第二类型节点模块返回的计算结果值均是由该第二类型节点模块使用自身的节点私钥对加密结果进行解密并根据解密结果、所述第一随机数及该第二类型节点模块的节点私钥生成的;
可选的,第i个第二类型节点模块返回的计算结果Ti是由该第二类型节点模块使用自身的节点私钥对加密结果进行解密并根据公式
Ti=(V1×Pi×Km)+(U1×Pi)
计算得到的,其中,所述U1和所述V1为解密结果,所述Pi为第i个第二类型节点模块中的节点私钥,1≤i≥n,n为第二类型节点模块的个数。
S500、所述第一类型节点模块根据第三随机数、第一签名片段及各第二类型节点模块返回的计算结果生成第二签名片段,所述第一签名片段和所述第二签名片段即为最终签名结果。
可选的,本发明可以根据公式
计算得到第二签名片段S。
本发明将私钥拆分到多个节点模块中,每一个节点模块中的私钥都不是完整的私钥,需要根据所有节点模块中的私钥才可以生成最终签名结果,因此即使某节点模块中的私钥被不法分子获得,不法分子也无法生成最终签名结果,因此本发明保证了数字签名的安全和有效性。
由于第二类型节点模块返回的计算结果是根据第二类型节点模块的节点私钥生成的,因此本发明的最终签名结果利用了所有节点模块的节点私钥才得以生成,同时,第一类型节点模块和第二类型节点模块传输的数据并不是节点私钥,而是使用节点私钥进行计算的计算结果,他人即使截获了本发明传输的数据,也无法反推到节点私钥,从而保证了节点私钥的安全性,进一步提高了生成的签名的安全性。
在图2所示实施例基础上,如图3所示,本发明实施例提供的另一种签名生成方法,还可以包括:
S600、签名验证设备使用与所有的节点私钥对应的签名验证公钥对所述最终签名结果进行验证。
可选的,该签名验证设备可以位于节点模块中,也可以为与节点模块不同的设备。
可选的,本发明可以通过公式
Q=P0·P1·Pm·G-G
计算得到签名验证公钥Q。
可选的,如果验证通过,可以确认该最终签名结果是正确的,可以发布使用。如果验证未通过,则确认该最终签名结果错误,可以再次执行本发明以重新生成签名或结束本发明的执行进行错误的查找和修改。
与上述方法实施例相对应,本发明还提供了两种节点模块以及一种数字签名生成系统,下面结合附图进行详细说明:
如图1所示,本发明实施例提供的一种节点模块,该节点模块为第一类型节点模块001,所述第一类型节点模块与多个第二类型节点模块相连接,所述第一模块中保存有所述第一类型节点模块的节点私钥以及各节点模块的节点公钥,如图4所示,所述第一类型节点模块可以包括:第一签名片段生成单元100、待加密数值生成单元200、加密单元300、计算结果接收单元400和第二签名片段生成单元500,
所述第一签名片段生成单元100,用于根据待签名原文、第一随机数、第二随机数及所述第一类型节点模块的节点私钥生成第一签名片段;
其中,所述第一类型节点模块的节点私钥可以由第一私钥P0和第二私钥P1构成,所述第一签名片段生成单元100可以具体用于:
从所述第二类型节点模块中获得第一中间值Om,其中,所述Om=Km·G,所述Km为第一随机数,所述Km为由各第二类型节点模块协商确定的共同随机数,所述G为SM2椭圆曲线的基点,·为点积符号;
根据待签名原文和Z生成摘要E,其中,所述Z为用户可辨别标识;
通过公式
O=K1·Om+P′0·G
计算得到第二中间值O,获得所述O的x坐标值x1,其中,所述K1为所述第一类型节点模块生成的第二随机数,所述P′0为所述P′0在SM2算法空间的乘法逆元;
通过公式
R=x1+E
计算得到第一签名结果R。
其中,所述第一私钥P0和所述第二私钥P1可以均为随机数,各所述第二类型节点模块的节点私钥均根据第四随机数Pm生成,且各第二类型节点模块的节点私钥之和与所述P′m同余。
所述待加密数值生成单元200,用于根据所述第二随机数、第三随机数、所述第一类型节点模块的节点私钥及所述第一签名片段生成待加密数值;
所述待加密数值生成单元200可以具体用于:
通过公式
U1=(P′0+R)×P1′×P′0×K0
V1=P′0×P1′×K1×K0
计算得到待加密数值U1和待加密数值V1,其中,所述K0为所述第一类型节点模块生成的第三随机数。
所述加密单元300,用于对每一个第二类型节点模块:使用该第二类型节点模块的节点公钥对所述待加密数值行加密,获得加密结果并将该加密结果发送到该第二类型节点模块;
所述计算结果接收单元400,用于接收各第二类型节点模块返回的计算结果,其中,每一个第二类型节点模块返回的计算结果值均是由该第二类型节点模块使用自身的节点私钥对加密结果进行解密并根据解密结果、所述第一随机数及该第二类型节点模块的节点私钥生成的;
其中,可以对各第二类型节点模块进行1至n的编号,则第i个第二类型节点模块返回的计算结果Ti是由该第二类型节点模块使用自身的节点私钥对加密结果进行解密并根据公式
Ti=(V1×Pi×Km)+(U1×Pi)
计算得到的,其中,所述U1和所述V1为解密结果,所述Pi为第i个第二类型节点模块中的节点私钥,1≤i≥n,n为第二类型节点模块的个数。
所述第二签名片段生成单元500,用于根据第三随机数、第一签名片段及各第二类型节点模块返回的计算结果生成第二签名片段,所述第一签名片段和所述第二签名片段即为最终签名结果。
具体的,第二签名片段生成单元500可以根据公式
计算得到第二签名片段S。
本发明将私钥拆分到多个节点模块中,每一个节点模块中的私钥都不是完整的私钥,需要根据所有节点模块中的私钥才可以生成最终签名结果,因此即使某节点模块中的私钥被不法分子获得,不法分子也无法生成最终签名结果,因此本发明保证了数字签名的安全和有效性。
可选的,本发明实施例还提供了一种签名验证设备,该签名验证设备可以使用与所有的节点私钥对应的签名验证公钥对所述最终签名结果进行验证。
可选的,该签名验证设备可以位于图4所示的节点模块中,也可以为与图4所示的节点模块不同的设备。
如图1所示,本发明实施例提供的另一种节点模块,该节点模块为第二类型节点模块002,所述第二类型节点模块与第一类型节点模块相连接,所述第二类型节点模块中保存有自身的节点私钥,所述第二类型节点模块使用自身的节点私钥对加密结果进行解密并根据解密结果、所述第一随机数及该第二类型节点模块的节点私钥生成计算结果,并将所述计算结果发送到所述第一类型节点模块。
本发明还提供了一种数字签名生成系统,如图1所示,该系统可以包括:上述实施例中的第一类型节点模块001和上述实施例中的第二类型节点模块002。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种数字签名生成方法,其特征在于,应用于第一类型节点模块中,所述第一类型节点模块和多个第二类型节点模块相连接,所述第一类型节点模块中保存有所述第一类型节点模块的节点私钥以及各第二类型节点模块的节点公钥,各所述第二类型节点模块中均保存有自身的节点私钥,所述方法包括:
所述第一类型节点模块根据待签名原文、第一随机数、第二随机数及所述第一类型节点模块的节点私钥生成第一签名片段;
所述第一类型节点模块根据所述第二随机数、第三随机数、所述第一类型节点模块的节点私钥及所述第一签名片段生成待加密数值;
对每一个第二类型节点模块:所述第一类型节点模块使用该第二类型节点模块的节点公钥对所述待加密数值行加密,获得加密结果并将该加密结果发送到该第二类型节点模块;
所述第一类型节点模块接收各第二类型节点模块返回的计算结果,其中,每一个第二类型节点模块返回的计算结果值均是由该第二类型节点模块使用自身的节点私钥对加密结果进行解密并根据解密结果、所述第一随机数及该第二类型节点模块的节点私钥生成的;
所述第一类型节点模块根据第三随机数、第一签名片段及各第二类型节点模块返回的计算结果生成第二签名片段,所述第一签名片段和所述第二签名片段即为最终签名结果。
2.根据权利要求1所述的方法,其特征在于,所述第一类型节点模块的节点私钥由第一私钥P0和第二私钥P1构成,所述第一类型节点模块根据待签名原文、第一随机数、第二随机数及所述第一类型节点模块的节点私钥生成第一签名片段,包括:
所述第一类型节点模块从所述第二类型节点模块中获得第一中间值Om,其中,所述Om=Km·G,所述Km为第一随机数,所述Km为由各第二类型节点模块协商确定的共同随机数,所述G为SM2椭圆曲线的基点,·为点积符号;
根据待签名原文和Z生成摘要E,其中,所述Z为用户可辨别标识;
通过公式
O=K1·Om+P′0·G
计算得到第二中间值O,获得所述O的x坐标值x1,其中,所述K1为所述第一类型节点模块生成的第二随机数,所述P′0为所述P0在SM2算法空间乘法逆元;
通过公式
R=x1+E
计算得到第一签名结果R。
3.根据权利要求2所述的方法,其特征在于,所述第一类型节点模块根据所述第二随机数、第三随机数、所述第一类型节点模块的节点私钥及所述第一签名片段生成待加密数值,包括:
通过公式
U1=(P′0+R)×P′1×P′0×K0
V1=P′0×P′1×K1×K0
计算得到待加密数值U1和待加密数值V1,其中,所述K0为所述第一类型节点模块生成的第三随机数。
4.根据权利要求3所述的方法,其特征在于,第i个第二类型节点模块返回的计算结果Ti是由该第二类型节点模块使用自身的节点私钥对加密结果进行解密并根据公式
Ti=(V1×Pi×Km)+(U1×Pi)
计算得到的,其中,所述U1和所述V1为解密结果,所述Pi为第i个第二类型节点模块中的节点私钥,1≤i≥n,n为第二类型节点模块的个数。
5.根据权利要求4所述的方法,其特征在于,所述第一类型节点模块根据第三随机数、第一签名片段及各第二类型节点模块返回的计算结果生成第二签名片段,包括:
根据公式
<mrow>
<mi>S</mi>
<mo>=</mo>
<mrow>
<mo>(</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<msub>
<mi>T</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>&times;</mo>
<msubsup>
<mi>K</mi>
<mn>0</mn>
<mo>&prime;</mo>
</msubsup>
<mo>-</mo>
<mi>R</mi>
</mrow>
计算得到第二签名片段S。
6.根据权利要求2至5中任一项所述的方法,其特征在于,所述第一私钥P0和所述第二私钥P1均为随机数,各所述第二类型节点模块的节点私钥均根据第四随机数Pm生成,且各第二类型节点模块的节点私钥之和与所述P′m同余。
7.一种共同随机数协商确定方法,其特征在于,包括:
多个节点模块按照预设协商顺序排列,按照预设排列顺序对节点模块记为Si,i为自然数且1≤i≤n,其中,i为节点模块的排序位置,n为节点模块的数量;
任意相邻的两个节点模块之间均协商确定一个随机数,将Si与Si+1协商确定的随机数记为:Ci&i+1;
将C1&2确定为各节点模块协商确定的共同随机数Km并将C1&2发送到除S1和S2外的其他节点模块中;或者,将Cn-1&n确定为各节点模块协商确定的共同随机数Km并将Cn-1&n发送到除Sn-1和Sn外的其他节点模块中。
8.一种节点模块,其特征在于,所述节点模块为第一类型节点模块,所述第一类型节点模块与多个第二类型节点模块相连接,所述第一模块中保存有所述第一类型节点模块的节点私钥以及各第二类型节点模块的节点公钥,所述第一类型节点模块包括:第一签名片段生成单元、待加密数值生成单元、加密单元、计算结果接收单元和第二签名片段生成单元,
所述第一签名片段生成单元,用于根据待签名原文、第一随机数、第二随机数及所述第一类型节点模块的节点私钥生成第一签名片段;
所述待加密数值生成单元,用于根据所述第二随机数、第三随机数、所述第一类型节点模块的节点私钥及所述第一签名片段生成待加密数值;
所述加密单元,用于对每一个第二类型节点模块:使用该第二类型节点模块的节点公钥对所述待加密数值行加密,获得加密结果并将该加密结果发送到该第二类型节点模块;
所述计算结果接收单元,用于接收各第二类型节点模块返回的计算结果,其中,每一个第二类型节点模块返回的计算结果值均是由该第二类型节点模块使用自身的节点私钥对加密结果进行解密并根据解密结果、所述第一随机数及该第二类型节点模块的节点私钥生成的;
所述第二签名片段生成单元,用于根据第三随机数、第一签名片段及各第二类型节点模块返回的计算结果生成第二签名片段,所述第一签名片段和所述第二签名片段即为最终签名结果。
9.一种节点模块,其特征在于,所述节点模块为第二类型节点模块,所述第二类型节点模块与第一类型节点模块相连接,所述第二类型节点模块中保存有自身的节点私钥,所述第二类型节点模块使用自身的节点私钥对加密结果进行解密并根据解密结果、所述第一随机数及该第二类型节点模块的节点私钥生成计算结果,并将所述计算结果发送到所述第一类型节点模块。
10.一种数字签名生成系统,其特征在于,包括:权利要求8所述的第一类型节点模块和多个权利要求9所述的第二类型节点模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710400617.6A CN107204846B (zh) | 2017-05-31 | 2017-05-31 | 数字签名生成方法、系统及节点模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710400617.6A CN107204846B (zh) | 2017-05-31 | 2017-05-31 | 数字签名生成方法、系统及节点模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107204846A true CN107204846A (zh) | 2017-09-26 |
CN107204846B CN107204846B (zh) | 2020-11-27 |
Family
ID=59906802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710400617.6A Active CN107204846B (zh) | 2017-05-31 | 2017-05-31 | 数字签名生成方法、系统及节点模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107204846B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108880807A (zh) * | 2018-08-02 | 2018-11-23 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 私钥签名处理方法、装置、设备和介质 |
CN109274506A (zh) * | 2018-11-23 | 2019-01-25 | 浙江工商大学 | 一种基于国密sm2的无证书签名方法 |
CN109471610A (zh) * | 2018-10-25 | 2019-03-15 | 杭州隐知科技有限公司 | 一种随机数生成方法、装置和存储介质 |
CN111490878A (zh) * | 2020-04-09 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 密钥生成方法、装置、设备及介质 |
CN113096299A (zh) * | 2021-04-28 | 2021-07-09 | 浙江数秦科技有限公司 | 一种基于联盟链的不记名电子投票方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1411203A (zh) * | 2001-09-28 | 2003-04-16 | 中国科学院研究生院 | 一种安全的数字签名方法与系统 |
US20080219437A1 (en) * | 2007-03-07 | 2008-09-11 | Nevine Maurice Nassif Ebeid | Method and Apparatus for Performing Elliptic Curve Scalar Multiplication in a Manner that Counters Power Analysis Attacks |
US20090313172A1 (en) * | 2005-12-23 | 2009-12-17 | International Business Machines Corporation | Method and system for linking an anonymous electronic trade order to an identity of a trader |
CN102017510A (zh) * | 2007-10-23 | 2011-04-13 | 丁素芬 | 自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构 |
CN102246181A (zh) * | 2009-01-07 | 2011-11-16 | 上海昂贝电子科技有限公司 | 金融交易的安全方法和设备 |
US20120198228A1 (en) * | 2010-12-20 | 2012-08-02 | Jon Oberheide | System and method for digital user authentication |
CN103546889A (zh) * | 2013-11-07 | 2014-01-29 | 天津工业大学 | 一种基于功率的无线传感器网络密钥管理方法 |
WO2015182076A1 (ja) * | 2014-05-26 | 2015-12-03 | 日本電気株式会社 | 鍵交換システム、鍵交換方法、鍵交換装置およびその制御方法と制御プログラムを格納する記録媒体 |
CN105593884A (zh) * | 2013-06-06 | 2016-05-18 | 万事达卡国际股份有限公司 | 电子认证系统 |
CN106130733A (zh) * | 2016-06-23 | 2016-11-16 | 北京海泰方圆科技股份有限公司 | 更新配置的方法、装置和系统 |
CN106533675A (zh) * | 2016-12-19 | 2017-03-22 | 北京洋浦伟业科技发展有限公司 | 数字签名方法及系统 |
-
2017
- 2017-05-31 CN CN201710400617.6A patent/CN107204846B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1411203A (zh) * | 2001-09-28 | 2003-04-16 | 中国科学院研究生院 | 一种安全的数字签名方法与系统 |
US20090313172A1 (en) * | 2005-12-23 | 2009-12-17 | International Business Machines Corporation | Method and system for linking an anonymous electronic trade order to an identity of a trader |
US20080219437A1 (en) * | 2007-03-07 | 2008-09-11 | Nevine Maurice Nassif Ebeid | Method and Apparatus for Performing Elliptic Curve Scalar Multiplication in a Manner that Counters Power Analysis Attacks |
CN102017510A (zh) * | 2007-10-23 | 2011-04-13 | 丁素芬 | 自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构 |
CN102246181A (zh) * | 2009-01-07 | 2011-11-16 | 上海昂贝电子科技有限公司 | 金融交易的安全方法和设备 |
US20120198228A1 (en) * | 2010-12-20 | 2012-08-02 | Jon Oberheide | System and method for digital user authentication |
CN105593884A (zh) * | 2013-06-06 | 2016-05-18 | 万事达卡国际股份有限公司 | 电子认证系统 |
CN103546889A (zh) * | 2013-11-07 | 2014-01-29 | 天津工业大学 | 一种基于功率的无线传感器网络密钥管理方法 |
WO2015182076A1 (ja) * | 2014-05-26 | 2015-12-03 | 日本電気株式会社 | 鍵交換システム、鍵交換方法、鍵交換装置およびその制御方法と制御プログラムを格納する記録媒体 |
CN106130733A (zh) * | 2016-06-23 | 2016-11-16 | 北京海泰方圆科技股份有限公司 | 更新配置的方法、装置和系统 |
CN106533675A (zh) * | 2016-12-19 | 2017-03-22 | 北京洋浦伟业科技发展有限公司 | 数字签名方法及系统 |
Non-Patent Citations (2)
Title |
---|
ERIC ZAVATTONI: ""Software implementation of an attribute-based encryption scheme"", 《IEEE TRANSACTIONS ON COMPUTERS》 * |
林峰: ""前向安全环签名的研究"", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108880807A (zh) * | 2018-08-02 | 2018-11-23 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 私钥签名处理方法、装置、设备和介质 |
CN109471610A (zh) * | 2018-10-25 | 2019-03-15 | 杭州隐知科技有限公司 | 一种随机数生成方法、装置和存储介质 |
CN109471610B (zh) * | 2018-10-25 | 2021-03-19 | 北京链化未来科技有限公司 | 一种串行随机数生成方法、装置和存储介质 |
CN109274506A (zh) * | 2018-11-23 | 2019-01-25 | 浙江工商大学 | 一种基于国密sm2的无证书签名方法 |
CN109274506B (zh) * | 2018-11-23 | 2021-04-02 | 浙江工商大学 | 一种基于国密sm2的无证书签名方法 |
CN111490878A (zh) * | 2020-04-09 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 密钥生成方法、装置、设备及介质 |
CN113096299A (zh) * | 2021-04-28 | 2021-07-09 | 浙江数秦科技有限公司 | 一种基于联盟链的不记名电子投票方法 |
CN113096299B (zh) * | 2021-04-28 | 2022-05-24 | 浙江数秦科技有限公司 | 一种基于联盟链的不记名电子投票方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107204846B (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10944575B2 (en) | Implicitly certified digital signatures | |
CN107204846A (zh) | 数字签名生成方法、系统、节点模块及共同随机数协商确定方法 | |
US10148422B2 (en) | Implicitly certified public keys | |
CN103780379B (zh) | 密码加密方法和系统以及密码校验方法和系统 | |
CN108737374A (zh) | 一种区块链中数据存储的隐私保护方法 | |
JP2020522205A (ja) | プログレッシブキー暗号化アルゴリズム | |
CN104135473B (zh) | 一种由密文策略的属性基加密实现身份基广播加密的方法 | |
CN101938463A (zh) | 安全地评估对加密信号施加的函数的方法 | |
CN109951276B (zh) | 基于tpm的嵌入式设备远程身份认证方法 | |
CN1193538C (zh) | 电子密码形成与核验方法 | |
CN104092686A (zh) | 基于svm分类器的隐私保护和数据安全访问的方法 | |
Mohamed et al. | Cryptography concepts: integrity, authentication, availability, access control, and non-repudiation | |
CN105763322A (zh) | 一种可混淆的加密密钥隔离数字签名方法及系统 | |
Asif et al. | A review on classical and modern encryption techniques | |
CN109450625A (zh) | 大规模多项式扩展欧几里得算法的安全外包方法 | |
Antonio et al. | Performance Analysis of the Modified Generated S-Box for Advanced Encryption Standards | |
Kansal et al. | Construction for a nominative signature scheme from lattice with enhanced security | |
Hu et al. | Lattice based ring signature scheme for secure cloud-based EMR sharing | |
Gupta et al. | Data security using compressed classical technique | |
Sabbarwal et al. | Review on Security and Privacy of Cloud ERP System | |
Mieno et al. | Formal Verification of Authenticated Encryption with Associated Data with Tamarin Prover | |
Pavlenko et al. | Gennady A. Vorobyev Pyatigorsk State University Vladimir A. Kozlov Pyatigorsk State University Victoria A. Ryndyuk | |
Chakrabarty | Assessing mathematically the effectiveness of a data encryption model | |
Hussein | Secure voice by using AES algorithm | |
Divya | An Enhanced Approach for Security in Database Using Encryption Technology. |
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 |