CN115442052A - 一种协同签名方法、***、设备及计算机可读存储介质 - Google Patents
一种协同签名方法、***、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115442052A CN115442052A CN202211046668.0A CN202211046668A CN115442052A CN 115442052 A CN115442052 A CN 115442052A CN 202211046668 A CN202211046668 A CN 202211046668A CN 115442052 A CN115442052 A CN 115442052A
- Authority
- CN
- China
- Prior art keywords
- public key
- random number
- signer
- numerical value
- 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.)
- Granted
Links
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/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
-
- 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/3218—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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- 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/3236—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 using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种协同签名方法、***、设备及计算机可读存储介质,应用于第一签名方,生成第一随机数,并基于第一随机数生成第一公钥分片;获取第二签名方生成的第二公钥分片;传输第一公钥分片至第二签名方获取待签名的目标消息,并计算目标消息的哈希值;生成第三随机数,并基于第一公钥分片对第三随机数进行运算,生成第一数值;获取第二签名方生成的第二数值;基于哈希值、第一数值及第二数值生成第一签名结果,并传输第一数值、第一签名结果至第二签名方,以使第二签名方基于第一签名结果生成目标消息的目标签名结果。本申请在生成公钥和后续签名过程中,不出现完整私钥,增强了私钥的安全性,进而增强了协同签名方法的安全性。
Description
技术领域
本申请涉及信息安全技术领域,更具体地说,涉及一种协同签名方法、***、设备及计算机可读存储介质。
背景技术
SM2是中国国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法。电子合同是SM2签名算法的一个典型的应用场景,涌现了一批快速成长的电子合同服务商。签名主体使用数字签名算法在网络上对电子文本签约,不受时空的限制,令存储查询更加便捷,极大地提高了工作效率,节省了签约成本。在这种场景下,掌握签名私钥等于掌握了用户的身份。因此,私钥的安全性十分重要。而单个用户的防护能力非常有限,操作***漏洞,木马病毒,恶意软件等安全隐患非常容易导致私钥泄露。为了保证私钥的安全,某些电子合同服务商将用户的私钥托管在其云端,但是这种托管意味着用户必须信任服务商不会滥用其私钥。然而,这种行为不仅不安全,也不符合《电子签名法》等相关法律规定,甚至会影响电子合同的合法性。
综上所述,如何提高协同签名方法的安全性是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种协同签名方法,其能在一定程度上解决如何提高协同签名方法的安全性的技术问题。本申请还提供了一种协同签名***、设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种协同签名方法,应用于第一签名方,包括:
生成第一随机数,并基于所述第一随机数生成自身的第一公钥分片;
获取第二签名方基于第二随机数生成的第二公钥分片;
传输所述第一公钥分片至所述第二签名方,以使所述第二签名方基于所述第一公钥分片及所述第二公钥分片生成目标公钥;
获取待签名的目标消息,并计算所述目标消息的哈希值;
生成第三随机数,并基于所述第一公钥分片对所述第三随机数进行运算,生成第一数值;
获取所述第二签名方基于所述第二公钥分片或所述目标公钥对第四随机数进行运算后生成的第二数值;
基于所述哈希值、所述第一数值及所述第二数值生成第一签名结果,并传输所述第一数值、所述第一签名结果至所述第二签名方,以使所述第二签名方基于所述第一签名结果生成所述目标消息的目标签名结果。
优选的,所述基于所述第一随机数生成自身的第一公钥分片,包括:
通过第一运算公式,基于所述第一随机数生成自身的所述第一公钥分片;
所述第一运算公式包括:
Q1=d1·G;
其中,Q1表示所述第一公钥分片;d1表示所述第一随机数;G表示SM2算法的生成元;
所述传输所述第一公钥分片至所述第二签名方之后,还包括:
通过第二运算公式,基于所述第一随机数及所述第二公钥分片生成所述目标公钥;
所述第二运算公式包括:
Q=d1·Q2-G;
其中,Q表示所述目标公钥;Q2表示所述第二公钥分片,且Q2=d2·G,d2表示所述第二随机数;
其中,所述计算所述目标消息的哈希值,包括:
通过第三运算公式,计算所述目标消息的所述哈希值;
所述第三运算公式包括:
e=hash(Z||M);
其中,e表示所述哈希值;hash表示哈希运算;Z表示用户身份标识符、SM2椭圆曲线参数和公钥坐标的哈希值;M表示所述目标消息;
所述基于所述第一公钥分片对所述第三随机数进行运算,生成第一数值,包括:
通过第四运算公式,基于所述第一公钥分片对所述第三随机数进行运算,生成所述第一数值;
所述第四运算公式包括:
R1=k1·Q1;
其中,R1表示所述第一数值;k1表示所述第三随机数;
所述基于所述哈希值、所述第一数值及所述第二数值生成第一签名结果,包括:
生成R=R1+R2=(rx,ry),r=rx+e mod q;
若r≠0且R+r·G≠0,则通过第一生成公式,基于所述哈希值、所述第一数值及所述第二数值生成所述第一签名结果;否则,请求重新开始签名协议;
所述第一生成公式包括:
s1=r·d1 -1+k1 mod q;
其中,s1表示所述第一签名结果;q表示所述SM2算法中循环群的阶;R2表示所述第二数值,R2=k2·Q1或R2=k2·Q。
优选的,所述获取第二签名方基于第二随机数生成的第二公钥分片,包括:
获取所述第二签名方使用经Fiat-shamir转换后的schnorr算法计算的二元关系(Q2,d2)的离散对数非交互式零知识证明π2;
验证π2是否是正确的证明;
若π2是正确的证明,则获取所述第二公钥分片;
若π2不是正确的证明,则中止协议。
优选的,所述传输所述第一公钥分片至所述第二签名方,包括:
生成第五随机数,并基于所述第五随机数、所述第一公钥分片计算得到第一杂凑值t1=H(Q1;σ1),其中,H表示杂凑运算;
使用经Fiat-shamir转换后的所述schnorr算法计算二元关系(Q1,d1)的离散对数非交互式零知识证明π1;
发送t1及π1至所述第二签名方,以使所述第二签名方在验证t1=H(Q1;σ1)且π1是正确的证明后获取所述第一公钥分片。
优选的,所述获取所述第二签名方基于所述第二公钥分片或所述目标公钥对第四随机数进行运算后生成的第二数值,包括:
获取所述第二签名方计算得到的二元关系(R2,k2)的离散对数非交互式零知识证明π3;
验证π3是否是正确的证明;
若π3是正确的证明,则获取所述第二数值;
若π3不是正确的证明,则中止协议。
优选的,所述传输所述第一数值、所述第一签名结果至所述第二签名方,包括:
生成第六随机数,并基于所述第六随机数、所述第一数值计算得到第二杂凑值t1'=H(R1;σ1');
计算二元关系(R1,k1)的离散对数非交互式零知识证明π4;
向所述第二签名方发送t1'及(π4,R1,σ'1,s1),以使所述第二签名方在验证t1'=H(R1;σ1')且π4是正确的证明后获取所述一数值及所述第一签名结果。
优选的,所述传输所述第一数值、所述第一签名结果至所述第二签名方,以使所述第二签名方基于所述第一签名结果生成所述目标消息的目标签名结果,包括:
传输所述第一数值、所述第一签名结果至所述第二签名方,以使所述第二签名方生成R=R1+R2=(rx,ry),r=rx+e mod q、且在r≠0、R+r·G≠0及未收到重新开始签名协议的请求后基于所述第一签名结果生成所述目标消息的所述目标签名结果s;
一种协同签名***,应用于第一签名方,包括:
第一生成模块,用于生成第一随机数,并基于所述第一随机数生成自身的第一公钥分片;
第一获取模块,用于获取第二签名方基于第二随机数生成的第二公钥分片;
第一传输模块,用于传输所述第一公钥分片至所述第二签名方,以使所述第二签名方基于所述第一公钥分片及所述第二公钥分片生成目标公钥;
第二获取模块,用于获取待签名的目标消息,并计算所述目标消息的哈希值;
第二生成模块,用于生成第三随机数,并基于所述第一公钥分片对所述第三随机数进行运算,生成第一数值;
第三获取模块,用于获取所述第二签名方基于所述第二公钥分片或所述目标公钥对第四随机数进行运算后生成的第二数值;
第三生成模块,用于基于所述哈希值、所述第一数值及所述第二数值生成第一签名结果,并传输所述第一数值、所述第一签名结果至所述第二签名方,以使所述第二签名方基于所述第一签名结果生成所述目标消息的目标签名结果。
一种协同签名设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上任一所述协同签名方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述协同签名方法的步骤。
本申请提供的一种协同签名方法,应用于第一签名方,生成第一随机数,并基于第一随机数生成自身的第一公钥分片;获取第二签名方基于第二随机数生成的第二公钥分片;传输第一公钥分片至第二签名方,以使第二签名方基于第一公钥分片及第二随机数生成目标公钥;获取待签名的目标消息,并计算目标消息的哈希值;生成第三随机数,并基于第一公钥分片对第三随机数进行运算,生成第一数值;获取第二签名方基于第二公钥分片或目标公钥对第四随机数进行运算后生成的第二数值;基于哈希值、第一数值及第二数值生成第一签名结果,并传输第一数值、第一签名结果至第二签名方,以使第二签名方基于第一签名结果生成目标消息的目标签名结果。本申请中,第一签名方和第二签名方生成各自的公钥分片,并通过交互各自生成的公钥分片来生成最终的目标公钥,在生成公钥和后续签名过程中,不出现完整私钥,而且私钥分片由用户分布式保存,从而实现了私钥全生命周期的分布式生成、保存和使用,增强了私钥的安全性,进而增强了协同签名方法的安全性。本申请提供的一种协同签名***、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种协同签名方法的流程图;
图2为本申请实施例提供的一种协同签名***的结构示意图;
图3为本申请实施例提供的一种协同签名设备的结构示意图;
图4为本申请实施例提供的一种协同签名设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,图1为本申请实施例提供的一种协同签名方法的流程图。
本申请实施例提供的一种协同签名方法,应用于第一签名方,可以包括以下步骤:
步骤S101:生成第一随机数,并基于第一随机数生成自身的第一公钥分片。
实际应用中,第一签名方可以先生成第一随机数作为自身的私钥分片,并基于第一随机数生成自身的第一公钥分片,且第一签名方之后可以保存自身的第一随机数及第一公钥分片。
第一运算公式包括:
Q1=d1·G;
其中,Q1表示第一公钥分片;d1表示第一随机数;G表示SM2算法的生成元。
步骤S102:获取第二签名方基于第二随机数生成的第二公钥分片。
实际应用中,第一签名方在生成第一随机数,并基于第一随机数生成自身的第一公钥分片之后,便可以获取第二签名方基于第二随机数生成的第二公钥分片。
具体应用场景中,为了保证第一签名方能够获取到安全、正确的第二公钥分片,第一签名方在获取第二签名方基于第二随机数生成的第二公钥分片的过程中,可以获取第二签名方使用经Fiat-shamir转换后的schnorr算法计算的二元关系(Q2,d2)的离散对数非交互式零知识证明π2;验证π2是否是正确的证明;若π2是正确的证明,则获取第二公钥分片;若π2不是正确的证明,则可以中止协议。
步骤S103:传输第一公钥分片至第二签名方,以使第二签名方基于第一公钥分片及第二公钥分片生成目标公钥。
实际应用中,第一签名方在获取第二签名方基于第二随机数生成的第二公钥分片之后,便可以传输第一公钥分片至第二签名方,以使第二签名方基于第一公钥分片及第二公钥分片生成目标公钥。
具体应用场景中,为了保证第一签名方能够正确、安全的向第二签名方传输第一公钥分片,第一签名方在传输第一公钥分片至第二签名方的过程中,可以生成第五随机数,比如选取σ1←{0,1}n作为第五随机数,并基于第五随机数、第一公钥分片计算得到第一杂凑值t1=H(Q1;σ1),其中,H表示杂凑运算;使用经Fiat-shamir转换后的schnorr算法计算二元关系(Q1,d1)的离散对数非交互式零知识证明π1;发送t1及π1至第二签名方,以使第二签名方在验证t1=H(Q1;σ1)且π1是正确的证明后获取第一公钥分片。相应的,若t1=H(Q1;σ1)不成立或π1并非正确的证明,则第二签名方可以中止协议,本申请在此不做具体限定。
需要说明的是,具体应用场景中,第二签名方可以通过公式Q=d2·Q1-G来生成目标公钥,且第二签名方可以自主保存第二随机数、第二公钥分片、目标公钥等,本申请在此不做具体限定。
实际应用中,第一签名方在传输第一公钥分片至第二签名方,以使第二签名方基于第一公钥分片及第二随机数生成目标公钥之后,还可以基于第一随机数及第二公钥分片生成目标公钥,且第一签名方在生成目标公钥之后还可以保存目标公钥,以便后续基于目标公钥完成协同签名。
具体应用场景中,第一签名方基于所述第一随机数及所述第二公钥分片生成目标公钥的过程中,可以通过第二运算公式,基于第一随机数及第二公钥分片生成目标公钥;
第二运算公式包括:
Q=d1·Q2-G;
其中,Q表示目标公钥;Q2表示第二公钥分片,且Q2=d2·G,d2表示第二随机数。
步骤S104:获取待签名的目标消息,并计算目标消息的哈希值。
实际应用中,第一签名方在基于第一公钥分片及第二公钥分片生成目标公钥之后,便可以获取待签名的目标消息,并计算目标消息的哈希值,以便后续基于目标消息的哈希值完成目标消息的协同签名。
具体应用场景中,第一签名方在计算目标消息的哈希值的过程中,可以通过第三运算公式,计算目标消息的哈希值;
第三运算公式包括:
e=hash(Z||M);
其中,e表示哈希值;hash表示哈希运算;Z表示用户身份标识符、SM2椭圆曲线参数和公钥坐标的哈希值;M表示目标消息。
步骤S105:生成第三随机数,并基于第一公钥分片对第三随机数进行运算,生成第一数值。
实际应用中,第一签名方在获取待签名的目标消息,并计算目标消息的哈希值之后,便可以生成第三随机数,并基于第一公钥分片对第三随机数进行运算,生成第一数值。
第四运算公式包括:
R1=k1·Q1;
其中,R1表示第一数值;k1表示第三随机数。
步骤S106:获取第二签名方基于第二公钥分片或目标公钥对第四随机数进行运算后生成的第二数值。
实际应用中,第一签名方在生成第三随机数,并基于第一公钥分片对第三随机数进行运算,生成第一数值之后,便可以获取第二签名方基于第二公钥分片或目标公钥对第四随机数进行运算后生成的第二数值。具体的,第二签名方可以随机选取作为第四随机数,通过R2=k2·Q1或R2=k2·Q来生成第二数值等。
具体应用场景中,第一签名方在获取第二签名方基于第二公钥分片或目标公钥对第四随机数进行运算后生成的第二数值的过程中,可以获取第二签名方计算得到的二元关系(R2,k2)的离散对数非交互式零知识证明π3;验证π3是否是正确的证明;若π3是正确的证明,则获取第二数值;若π3不是正确的证明,则可以中止协议。以此来保证第一签名方能够获取到安全、正确的第二数值。
步骤S107:基于哈希值、第一数值及第二数值生成第一签名结果,并传输第一数值、第一签名结果至第二签名方,以使第二签名方基于第一签名结果生成目标消息的目标签名结果。
实际应用中,第一签名方在获取第二签名方基于第二公钥分片或目标公钥对第四随机数进行运算后生成的第二数值之后,便可以基于哈希值、第一数值及第二数值生成第一签名结果,并传输第一数值、第一签名结果至第二签名方,以使第二签名方基于第一签名结果生成目标消息的目标签名结果。
具体应用场景中,第一签名方在传输第一数值、第一签名结果至第二签名方的过程中,可以生成第六随机数,比如选取σ1'←{0,1}n作为第六随机数,并基于第六随机数、第一数值计算得到第二杂凑值t1'=H(R1;σ1');计算二元关系(R1,k1)的离散对数非交互式零知识证明π4;向第二签名方发送t1'及(π4,R1,σ'1,s1),以使第二签名方在验证t1'=H(R1;σ1')且π4是正确的证明后获取一数值及第一签名结果。
具体应用场景中,第一签名方在基于哈希值、第一数值及第二数值生成第一签名结果的过程中,可以生成R=R1+R2=(rx,ry),r=rx+e mod q;若r≠0且R+r·G≠0,则通过第一生成公式,基于哈希值、第一数值及第二数值生成第一签名结果;否则,也即r=0或R+r·G=0时,请求重新开始签名协议;
第一生成公式包括:
其中,s1表示第一签名结果;q表示SM2算法中循环群的阶。
具体应用场景中,第二签名方在接收第一数值、第一签名结果之后,可以生成R=R1+R2=(rx,ry),r=rx+e mod q,若r≠0,R+r·G≠0且未收到重新开始签名协议的请求,则基于第一签名结果生成目标消息的目标签名结果s;其中,R2=k2·Q1时,R2=k2·Q时,否则,可以中止协议。最后第二签名方可以验证(r,s)是否是正确的关于目标公钥及目标消息的SM2签名,若是,则可以输出s。
本申请提供的一种协同签名方法,应用于第一签名方,生成第一随机数,并基于第一随机数生成自身的第一公钥分片;获取第二签名方基于第二随机数生成的第二公钥分片;传输第一公钥分片至第二签名方,以使第二签名方基于第一公钥分片及第二随机数生成目标公钥;获取待签名的目标消息,并计算目标消息的哈希值;生成第三随机数,并基于第一公钥分片对第三随机数进行运算,生成第一数值;获取第二签名方基于第二公钥分片或目标公钥对第四随机数进行运算后生成的第二数值;基于哈希值、第一数值及第二数值生成第一签名结果,并传输第一数值、第一签名结果至第二签名方,以使第二签名方基于第一签名结果生成目标消息的目标签名结果。本申请中,第一签名方和第二签名方生成各自的公钥分片,并通过交互各自生成的公钥分片来生成最终的目标公钥,在生成公钥和后续签名过程中,不出现完整私钥,而且私钥分片由用户分布式保存,从而实现了私钥全生命周期的分布式生成、保存和使用,增强了私钥的安全性,进而增强了协同签名方法的安全性。
实际应用中,第一签名方和第二签名方应用本申请提供的方法进行协同签名的具体过程可以如下:
第一签名方验证π2是否是正确的证明;若π2不是正确的证明,则中止协议;若π2是正确的证明,则使用经Fiat-shamir转换后的schnorr算法计算二元关系(Q1,d1)的离散对数非交互式零知识证明π1;发送(π1,Q1,σ1)至第二签名方;计算Q=d1·Q2-G,并存储(d1,Q1,Q);
第二签名方验证t1=H(Q1;σ1)是否成立且π1是否是正确的证明,若有一项不成立,则中止协议,若都成立,则计算Q=d2·Q1-G,并存储(d2,Q1,Q);
第一签名方和第二签名方计算e=hash(Z||M);
第一签名方验证π3是否是正确的证明;若π3不是正确的证明,则中止协议;若π3是正确的证明,则计算二元关系(R1,k1)的离散对数非交互式零知识证明π4,计算R=R1+R2=(rx,ry),r=rx+e mod q,若r=0或R+r·G=0(椭圆曲线群中的零元),则向第二签名方发送(π4,R1,σ'1)且请求重新开始签名协议;若r≠0且R+r·G≠0,则计算向第二签名方发送(π4,R1,σ'1,s1);
第二签名方验证t1'=H(R1;σ1')是否成立且π4是否是正确的证明,若有一项不成立,则中止协议,若均成立,则计算R=R1+R2=(rx,ry),r=rx+e mod q;若r=0或R+r·G=0且接收到重新开始签名协议的请求,则向第一签名方发送同意并重新开始签名协议;若r=0或R+r·G=0且未接收到重新开始签名协议的请求,或者r≠0且R+r·G≠0但接收到重新开始签名协议的请求,则中止协议;若r≠0,R+r·G≠0且未收到重新开始签名协议的请求,则在R2=k2·Q1时,计算在R2=k2·Q时,计算验证(r,s)是否是正确的关于目标公钥及目标消息的SM2签名,若是,则可以输出s。
请参阅图2,图2为本申请实施例提供的一种协同签名***的结构示意图。
本申请实施例提供的一种协同签名***,应用于第一签名方,可以包括:
第一生成模块101,用于生成第一随机数,并基于第一随机数生成自身的第一公钥分片;
第一获取模块102,用于获取第二签名方基于第二随机数生成的第二公钥分片;
第一传输模块103,用于传输第一公钥分片至第二签名方,以使第二签名方基于第一公钥分片及第二公钥分片生成目标公钥;
第二获取模块104,用于获取待签名的目标消息,并计算目标消息的哈希值;
第二生成模块105,用于生成第三随机数,并基于第一公钥分片对第三随机数进行运算,生成第一数值;
第三获取模块106,用于获取第二签名方基于第二公钥分片或目标公钥对第四随机数进行运算后生成的第二数值;
第三生成模块107,用于基于哈希值、第一数值及第二数值生成第一签名结果,并传输第一数值、第一签名结果至第二签名方,以使第二签名方基于第一签名结果生成目标消息的目标签名结果。
本申请实施例提供的一种协同签名***中相应模块的相关描述可以参阅上述实施例,在此不再赘述。
本申请还提供了一种协同签名设备及计算机可读存储介质,其均具有本申请实施例提供的一种协同签名方法具有的对应效果。请参阅图3,图3为本申请实施例提供的一种协同签名设备的结构示意图。
本申请实施例提供的一种协同签名设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如上任一实施例所描述协同签名方法的步骤。
请参阅图4,本申请实施例提供的另一种协同签名设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现协同签名设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所描述协同签名方法的步骤。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的协同签名***、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的协同签名方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种协同签名方法,其特征在于,应用于第一签名方,包括:
生成第一随机数,并基于所述第一随机数生成自身的第一公钥分片;
获取第二签名方基于第二随机数生成的第二公钥分片;
传输所述第一公钥分片至所述第二签名方,以使所述第二签名方基于所述第一公钥分片及所述第二公钥分片生成目标公钥;
获取待签名的目标消息,并计算所述目标消息的哈希值;
生成第三随机数,并基于所述第一公钥分片对所述第三随机数进行运算,生成第一数值;
获取所述第二签名方基于所述第二公钥分片或所述目标公钥对第四随机数进行运算后生成的第二数值;
基于所述哈希值、所述第一数值及所述第二数值生成第一签名结果,并传输所述第一数值、所述第一签名结果至所述第二签名方,以使所述第二签名方基于所述第一签名结果生成所述目标消息的目标签名结果。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一随机数生成自身的第一公钥分片,包括:
通过第一运算公式,基于所述第一随机数生成自身的所述第一公钥分片;
所述第一运算公式包括:
Q1=d1·G;
其中,Q1表示所述第一公钥分片;d1表示所述第一随机数;G表示SM2算法的生成元;
所述传输所述第一公钥分片至所述第二签名方之后,还包括:
通过第二运算公式,基于所述第一随机数及所述第二公钥分片生成所述目标公钥;
所述第二运算公式包括:
Q=d1·Q2-G;
其中,Q表示所述目标公钥;Q2表示所述第二公钥分片,且Q2=d2·G,d2表示所述第二随机数;
其中,所述计算所述目标消息的哈希值,包括:
通过第三运算公式,计算所述目标消息的所述哈希值;
所述第三运算公式包括:
e=hash(Z||M);
其中,e表示所述哈希值;hash表示哈希运算;Z表示用户身份标识符、SM2椭圆曲线参数和公钥坐标的哈希值;M表示所述目标消息;
所述基于所述第一公钥分片对所述第三随机数进行运算,生成第一数值,包括:
通过第四运算公式,基于所述第一公钥分片对所述第三随机数进行运算,生成所述第一数值;
所述第四运算公式包括:
R1=k1·Q1;
其中,R1表示所述第一数值;k1表示所述第三随机数;
所述基于所述哈希值、所述第一数值及所述第二数值生成第一签名结果,包括:
生成R=R1+R2=(rx,ry),r=rx+e mod q;
若r≠0且R+r·G≠0,则通过第一生成公式,基于所述哈希值、所述第一数值及所述第二数值生成所述第一签名结果;否则,请求重新开始签名协议;
所述第一生成公式包括:
其中,s1表示所述第一签名结果;q表示所述SM2算法中循环群的阶;R2表示所述第二数值,R2=k2·Q1或R2=k2·Q。
3.根据权利要求2所述的方法,其特征在于,所述获取第二签名方基于第二随机数生成的第二公钥分片,包括:
获取所述第二签名方使用经Fiat-shamir转换后的schnorr算法计算的二元关系(Q2,d2)的离散对数非交互式零知识证明π2;
验证π2是否是正确的证明;
若π2是正确的证明,则获取所述第二公钥分片;
若π2不是正确的证明,则中止协议。
4.根据权利要求3所述的方法,其特征在于,所述传输所述第一公钥分片至所述第二签名方,包括:
生成第五随机数,并基于所述第五随机数、所述第一公钥分片计算得到第一杂凑值t1=H(Q1;σ1),其中,H表示杂凑运算;
使用经Fiat-shamir转换后的所述schnorr算法计算二元关系(Q1,d1)的离散对数非交互式零知识证明π1;
发送t1及π1至所述第二签名方,以使所述第二签名方在验证t1=H(Q1;σ1)且π1是正确的证明后获取所述第一公钥分片。
5.根据权利要求4所述的方法,其特征在于,所述获取所述第二签名方基于所述第二公钥分片或所述目标公钥对第四随机数进行运算后生成的第二数值,包括:
获取所述第二签名方计算得到的二元关系(R2,k2)的离散对数非交互式零知识证明π3;
验证π3是否是正确的证明;
若π3是正确的证明,则获取所述第二数值;
若π3不是正确的证明,则中止协议。
6.根据权利要求5所述的方法,其特征在于,所述传输所述第一数值、所述第一签名结果至所述第二签名方,包括:
生成第六随机数,并基于所述第六随机数、所述第一数值计算得到第二杂凑值t1'=H(R1;σ1');
计算二元关系(R1,k1)的离散对数非交互式零知识证明π4;
向所述第二签名方发送t1'及(π4,R1,σ'1,s1),以使所述第二签名方在验证t1'=H(R1;σ1')且π4是正确的证明后获取所述一数值及所述第一签名结果。
8.一种协同签名***,其特征在于,应用于第一签名方,包括:
第一生成模块,用于生成第一随机数,并基于所述第一随机数生成自身的第一公钥分片;
第一获取模块,用于获取第二签名方基于第二随机数生成的第二公钥分片;
第一传输模块,用于传输所述第一公钥分片至所述第二签名方,以使所述第二签名方基于所述第一公钥分片及所述第二公钥分片生成目标公钥;
第二获取模块,用于获取待签名的目标消息,并计算所述目标消息的哈希值;
第二生成模块,用于生成第三随机数,并基于所述第一公钥分片对所述第三随机数进行运算,生成第一数值;
第三获取模块,用于获取所述第二签名方基于所述第二公钥分片或所述目标公钥对第四随机数进行运算后生成的第二数值;
第三生成模块,用于基于所述哈希值、所述第一数值及所述第二数值生成第一签名结果,并传输所述第一数值、所述第一签名结果至所述第二签名方,以使所述第二签名方基于所述第一签名结果生成所述目标消息的目标签名结果。
9.一种协同签名设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述协同签名方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述协同签名方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211046668.0A CN115442052B (zh) | 2022-08-30 | 2022-08-30 | 一种协同签名方法、***、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211046668.0A CN115442052B (zh) | 2022-08-30 | 2022-08-30 | 一种协同签名方法、***、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115442052A true CN115442052A (zh) | 2022-12-06 |
CN115442052B CN115442052B (zh) | 2023-06-23 |
Family
ID=84245235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211046668.0A Active CN115442052B (zh) | 2022-08-30 | 2022-08-30 | 一种协同签名方法、***、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115442052B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020108042A1 (en) * | 2001-01-10 | 2002-08-08 | Makoto Oka | Public key certificate issuing system, Public key certificate issuing method, digital certification apparatus, and program storage medium |
US20140164765A1 (en) * | 2011-05-13 | 2014-06-12 | Telefonica, S.A. | Procedure for a multiple digital signature |
CN109274503A (zh) * | 2018-11-05 | 2019-01-25 | 北京仁信证科技有限公司 | 分布式协同签名方法及分布式协同签名装置、软盾*** |
CN112653554A (zh) * | 2020-12-30 | 2021-04-13 | 成都卫士通信息产业股份有限公司 | 一种签名方法、***、设备及可读存储介质 |
CN113158258A (zh) * | 2021-03-31 | 2021-07-23 | 郑州信大捷安信息技术股份有限公司 | 一种基于椭圆曲线的协同签名方法、装置和*** |
CN114187000A (zh) * | 2021-12-10 | 2022-03-15 | 建信金融科技有限责任公司 | 用于分散私钥的签名方法、设备、存储介质及处理器 |
-
2022
- 2022-08-30 CN CN202211046668.0A patent/CN115442052B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020108042A1 (en) * | 2001-01-10 | 2002-08-08 | Makoto Oka | Public key certificate issuing system, Public key certificate issuing method, digital certification apparatus, and program storage medium |
US20140164765A1 (en) * | 2011-05-13 | 2014-06-12 | Telefonica, S.A. | Procedure for a multiple digital signature |
CN109274503A (zh) * | 2018-11-05 | 2019-01-25 | 北京仁信证科技有限公司 | 分布式协同签名方法及分布式协同签名装置、软盾*** |
CN112653554A (zh) * | 2020-12-30 | 2021-04-13 | 成都卫士通信息产业股份有限公司 | 一种签名方法、***、设备及可读存储介质 |
CN113158258A (zh) * | 2021-03-31 | 2021-07-23 | 郑州信大捷安信息技术股份有限公司 | 一种基于椭圆曲线的协同签名方法、装置和*** |
CN114187000A (zh) * | 2021-12-10 | 2022-03-15 | 建信金融科技有限责任公司 | 用于分散私钥的签名方法、设备、存储介质及处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN115442052B (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108551392B (zh) | 一种基于sm9数字签名的盲签名生成方法及*** | |
CN113569294B (zh) | 一种零知识证明方法及装置、电子设备、存储介质 | |
US9641340B2 (en) | Certificateless multi-proxy signature method and apparatus | |
EP3779792A1 (en) | Two-dimensional code generation method, data processing method, apparatus, and server | |
US20120233457A1 (en) | Issuing implicit certificates | |
WO2019047418A1 (zh) | 数字签名方法、装置和*** | |
CN107911217B (zh) | 基于ecdsa算法协同生成签名的方法、装置和数据处理*** | |
CN109861826B (zh) | 一种双向代理重签名的实现方法及装置 | |
Yu et al. | Identity‐Based Proxy Signcryption Protocol with Universal Composability | |
CN112187469A (zh) | 一种基于密钥因子的sm2多方协同数字签名方法和*** | |
CN116707956A (zh) | 一种基于零知识证明的物联网设备认证方法和装置 | |
CN111245626B (zh) | 零知识证明方法、装置及存储介质 | |
CN112653554A (zh) | 一种签名方法、***、设备及可读存储介质 | |
CN109618348B (zh) | 一种单向代理重签名的实现方法及装置 | |
CN116346328A (zh) | 一种数字签名方法、***、设备及计算机可读存储介质 | |
CN110166444B (zh) | 一种云环境下基于可信代理的异构跨域认证方法 | |
CN115664675A (zh) | 基于sm2算法的可追踪环签名方法、***、设备及介质 | |
CN115664655A (zh) | 一种tee可信认证方法、装置、设备及介质 | |
CN111654481A (zh) | 一种身份认证方法、装置和存储介质 | |
CN111600703B (zh) | 基于sm2的签名方法、***、电子设备及存储介质 | |
CN104918245B (zh) | 一种身份认证方法、装置、服务器及客户端 | |
CN109766716A (zh) | 一种基于可信计算的匿名双向认证方法 | |
CN107147493B (zh) | 一种有限资源下的数字签名方法、装置及*** | |
CN115442052B (zh) | 一种协同签名方法、***、设备及计算机可读存储介质 | |
CN113112269B (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 |