CN112436938B - 数字签名的生成方法、装置和服务器 - Google Patents
数字签名的生成方法、装置和服务器 Download PDFInfo
- Publication number
- CN112436938B CN112436938B CN202011406944.0A CN202011406944A CN112436938B CN 112436938 B CN112436938 B CN 112436938B CN 202011406944 A CN202011406944 A CN 202011406944A CN 112436938 B CN112436938 B CN 112436938B
- Authority
- CN
- China
- Prior art keywords
- server
- temporary
- public key
- signature
- 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.)
- Active
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/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)
- H04L9/0825—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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
-
- 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
Abstract
本说明书提供了一种数字签名的生成方法、装置和服务器。基于该方法,第二服务器可以响应关于目标信息的联合签名请求,与第一服务器进行交互,以生成第二临时私钥和第二临时公钥,并与第一服务器交换各自所生成的临时公钥;进一步,可以根据综合了ElGamal加密算法和类群加密算法的预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数,并将上述数据发送至第一服务器;第一服务器可以生成第一部分签名,并根据预设的协议规则,利用上述第三中介密文数据、第二随机数,生成第二部分签名,得到目标信息完整的目标数字签名。从而能在不泄露各自的私钥数据的前提下,高效、安全地联合生成数字签名。
Description
技术领域
本说明书属于数字签名技术领域,尤其涉及数字签名的生成方法、装置和服务器。
背景技术
随着互联网的发展,在许多应用场景(例如,基于区块链的电子证券处理场景等)中,对相关信息的处理往往会涉及到两个参与方,需要两个参与方协作来对该信息进行联合签名;同时,还要求在联合签名的过程中,要保护双方的数据安全,避免向对方泄露各自所持有的私钥数据。
目前,亟需一种能够在不向对方泄露各自所持有的私钥数据的前提下,高效、安全地通过协作进行联合签名的方法。
发明内容
本说明书提供了一种数字签名的生成方法、装置和服务器,能够提高计算效率,降低通信带宽和数据处理量,在不向对方泄露各自所持有的私钥数据的前提下,高效、安全地通过协作来联合生成目标信息的目标数字签名。
本说明书提供了一种数字签名的生成方法,所述方法应用于第二服务器,所述方法包括:
获取待签名的目标信息;
向第一服务器发起关于目标信息的联合签名请求;
响应所述联合签名请求,通过与所述第一服务器交互,以生成第二临时私钥和第二临时公钥,并与所述第一服务器交换临时公钥;其中,所述第一服务器响应所述联合签名请求,生成第一临时私钥和第一临时公钥;
根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
将所述第三中介密文数据和所述第二随机数发送至第一服务器;其中,所述第一服务器根据所述第一临时私钥、第二临时公钥生成目标信息的目标数字签名中的第一部分签名;所述第一服务器还根据所述预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;所述第一服务器根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
在一个实施例中,所述响应所述联合签名请求,通过与所述第一服务器交互,以生成第二临时私钥和第二临时公钥,并与所述第一服务器交换临时公钥,包括:
检测是否接收到关于第一临时公钥的第一临时承诺文件;其中,第一服务器响应所述联合签名请求,生成第一临时私钥和第一临时公钥;并根据所述第一临时公钥生成相关的第一临时承诺文件;
在确定接收到所述第一临时承诺文件的情况下,生成第二临时私钥和第二临时公钥,并生成关于第二临时公钥的第二临时证明文件;
向所述第一服务器发送所述第二临时公钥和所述第二临时证明文件;其中,所述第一服务器在确定接收到所述第二临时公钥和所述第二临时证明文件的情况下,向所述第二服务器提供第一临时公钥,以及关于所述第一临时公钥的第一临时证明文件;
获取所述第一临时公钥和所述第一临时证明文件。
在一个实施例中,所述根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,包括:
计算目标信息的哈希值,得到目标哈希值;
根据所述第二临时私钥和第一临时公钥,生成目标数字签名中的第一部分签名;
获取第一随机数;
根据预设的协议规则,利用所述目标哈希值、所述第一部分签名、第一随机数,生成所述第三中介密文数据。
在一个实施例中,根据预设的协议规则,利用所述目标哈希值、所述第一部分签名、第一随机数,生成所述第三中介密文数据,包括:
根据预设的协议规则,利用所述第二临时私钥、目标哈希值,以及类群加密中循环子群的生成元,生成第一中介密文数据;
根据预设的协议规则,利用第二部分私钥和第二类密文数据,以及第二临时私钥、第一随机数,生成第二中介密文数据;
根据预设的协议规则,利用所述第一中介密文数据和所述第二中介密文数据,构建得到所述第三中介密文数据。
在一个实施例中,根据预设的协议规则,生成第二随机数,包括:
根据预设的协议规则,根据所述第一随机数按照以下算式生成所述第二随机数:
tp=tmodp
其中,tp为第二随机数,t为第一随机数,p为类群加密中循环子群F的阶数,mod为求模函数。
在一个实施例中,在获取待签名的目标信息之前,所述方法还包括:
根据预设的协议规则,通过与第一服务器进行预设的数据交互,得到第二部分私钥、第一部分公钥、第二类密文数据;并根据所述第一部分公钥和第二部分私钥,生成协同公钥。
在一个实施例中,根据预设的协议规则,通过与第一服务器进行预设的数据交互,得到第二部分私钥、第一部分公钥,包括:
检测是否接收到关于第一部分公钥的第一部分承诺文件;其中,第一服务器生成第一部分私钥和第一部分公钥;并根据所述第一部分公钥生成相关的第一部分承诺文件;
在确定接收到所述第一部分承诺文件的情况下,生成第二部分私钥和第二部分公钥,并生成关于第二部分公钥的第二部分证明文件;
向所述第一服务器发送所述第二部分公钥和所述第二部分证明文件;其中,所述第一服务器在确定接收到所述第二部分公钥和所述第二部分证明文件的情况下,向所述第二服务器提供第一部分公钥,以及关于所述第一部分公钥的第一部分证明文件;
获取所述第一部分公钥和所述第一部分证明文件。
在一个实施例中,根据预设的协议规则,通过与第一服务器进行预设的数据交互,得到第二类密文数据,包括:
接收第一声明文件和第二声明文件;其中,第一服务器根据预设的协议规则通过基于ElGamal加密算法的第一处理方式得到关于第一部分私钥的第一类密文数据,通过基于类群加密算法的第二处理方式得到关于第一部分私钥的第二类密文数据;第一服务器还根据所述第一类密文数据和第二类密文数据生成相应的第一声明文件和第二声明文件;
根据所述第一声明文件和所述第二声明文件获取所述第二类密文数据。
本说明书提供了一种数字签名的生成方法,所述方法应用于第一服务器,所述方法包括:
接收第二服务器发起的关于目标信息的联合签名请求;
响应所述联合签名请求,通过与所述第二服务器交互,以生成第一临时私钥和第一临时公钥,并与所述第二服务器交换临时公钥;其中,所述第二服务器响应所述联合签名请求,生成第二临时私钥和第二临时公钥;
根据所述第一临时私钥和所述第二临时公钥生成目标信息的目标数字签名中的第一部分签名;
接收第二服务器发送的第三中介密文数据和第二随机数;其中,所述第二服务器根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
根据预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;
根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
在一个实施例中,在接收第二服务器发起的关于目标信息的联合签名请求之前,所述方法还包括:
根据预设的协议规则,通过与第二服务器进行预设的数据交互,得到第一部分私钥、第二部分公钥、第二类密文数据;并根据所述第一部分私钥和第二部分公钥,生成协同公钥。
在一个实施例中,根据预设的协议规则,通过与第二服务器进行预设的数据交互,得到第二类密文数据,包括:
获取第一类随机数和第二类随机数;
根据预设的协议规则,通过基于ElGamal加密算法的第一处理方式,生成第一类第一私钥和第一类第一公钥;并根据所述第一类第一公钥、第一类随机数对第一部分私钥进行加密,得到关于第一部分私钥的第一类密文数据;
根据预设的协议规则,通过基于类群加密算法的第二处理方式,生成第二类第一私钥和第二类第一公钥;并根据所述第二类第一公钥、第二类随机数对第一部分私钥进行加密,得到关于第一部分私钥的第二类密文数据。
在一个实施例中,在根据预设的协议规则,通过基于类群加密算法的第二处理方式,生成第二类第一私钥和第二类第一公钥之后,所述方法还包括:
根据所述第二类公钥,生成与所述第二类公钥关联的校对参数,并将所述校对参数发送至第二服务器。
在一个实施例中,所述方法还包括:
根据预设的协议规则,利用第一类第一公钥、第一类密文数据、第一部分公钥,生成第一声明文件,以及第一声明文件的证明文件;并将所述第一声明文件,以及第一声明文件的证明文件发送至第二服务器;
和/或,
根据预设的协议规则,利用第一类第一公钥、第二类第一公钥、第一类密文数据和第二类密文数据,生成第二声明文件,以及第二声明文件的证明文件;并将所述第二声明文件,以及第二声明文件的证明文件发送至第二服务器。
在一个实施例中,根据预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名,包括:
根据预设的协议规则,利用所述第二随机数、第二类第一私钥和第一部分私钥,处理所述第三中介密文数据,以得到第一中间结果数据;
根据所述第一临时私钥和所述第一中间结果数据,得到第二中间结果数据;
根据所述第二中间结果数据,获取所述目标信息的目标数字签名中的第二部分签名。
在一个实施例中,根据预设的协议规则,利用所述第二随机数、第二类第一私钥和第一部分私钥,处理所述第三中介密文数据,以得到第一中间结果数据,包括:
按照以下算式得到所述第一中间结果数据:
s″=CL.Dec(sk2,c3)-x1tpmodp
其中,s″为第一中间结果数据,sk2为第二类第一私钥,c3为第三中介密文数据,x1为第一部分私钥,tp为第二随机数,p为类群加密中循环子群F的阶数,mod为求模函数,CL.Dec(sk2,c3)表示利用第二类第一私钥对第三中介密文数据进行基于类群加密算法的解密处理。
在一个实施例中,在得到目标信息的目标数字签名之后,所述方法还包括:
根据预设的协议规则,对所述目标数字签名进行验证;
在确定验证通过的情况下,在所述目标信息上设置目标数字签名。
本说明书提供了一种数字签名的生成装置,包括:
获取模块,用于获取待签名的目标信息;
发起模块,用于向第一服务器发起关于目标信息联合签名请求;
第一处理模块,用于响应所述联合签名请求,通过与所述第一服务器交互,以生成第二临时私钥和第二临时公钥,并与所述第一服务器交换临时公钥;其中,所述第一服务器响应所述联合签名请求,生成第一临时私钥和第一临时公钥;
第二处理模块,用于根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
发送模块,用于将所述第三中介密文数据和所述第二随机数发送至第一服务器;其中,所述第一服务器根据所述第一临时私钥、第二临时公钥生成目标信息的目标数字签名中的第一部分签名;所述第一服务器还根据所述预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;所述第一服务器根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
本说明书提供了一种数字签名的生成装置,包括:
第一接收模块,用于接收第二服务器发起的关于目标信息的联合签名请求;
第一处理模块,用于响应所述联合签名请求,通过与所述第二服务器交互,以生成第一临时私钥和第一临时公钥,并与所述第二服务器交换临时公钥;其中,所述第二服务器响应所述联合签名请求,生成第二临时私钥和第二临时公钥;
第二处理模块,用于根据所述第一临时私钥和所述第二临时公钥生成目标信息的目标数字签名中的第一部分签名;
第二接收模块,用于接收第二服务器发送的第三中介密文数据和第二随机数;其中,所述第二服务器根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
第三处理模块,用于根据预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;
第四处理模块,用于根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
本说明书还提供了一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述数字签名的生成方法的相关步骤。
本说明书还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述数字签名的生成方法的相关步骤。
本说明书提供的一种数字签名的生成方法、装置和服务器,基于该方法,第二服务器可以响应关于目标信息的联合签名请求,与第一服务器进行交互,以生成第二临时私钥和第二临时公钥,并与第一服务器交换各自所生成的临时公钥,使得第一服务器可以获得第二服务器生成的第二临时公钥、第二服务器可以获得第一服务器生成的第一临时公钥;进一步,第二服务器可以根据综合了ElGamal加密算法和类群加密算法的预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数,并将上述数据发送至第一服务器;第一服务器可以先根据第一临时私钥和第二临时公钥,生成第一部分签名,并根据预设的协议规则,利用上述第三中介密文数据、第二随机数,生成第二部分签名;进而可以得到关于目标信息的完整的目标数字签名。从而能有效地提高计算效率,降低通信带宽和数据处理量,能够在不向对方泄露各自所持有的私钥数据的前提下,高效、安全地通过协作来联合生成目标信息的目标数字签名。解决了现有方法中存在的两方通过协作联合生成目标数字签名时过程繁琐,处理效率低,通信带宽大的技术问题。
附图说明
为了更清楚地说明本说明书实施例,下面将对实施例中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是应用本说明书实施例提供的数字签名的生成方法的系统的结构组成的一个实施例的示意图;
图2是本说明书的一个实施例提供的数字签名的生成方法的流程示意图;
图3是在一个场景示例中,应用本说明书实施例提供的数字签名的生成方法的一种实施例的示意图;
图4是在一个场景示例中,应用本说明书实施例提供的数字签名的生成方法的一种实施例的示意图;
图5是本说明书的一个实施例提供的数字签名的生成方法的流程示意图;
图6是本说明书的一个实施例提供的服务器的结构组成示意图;
图7是本说明书的一个实施例提供的数字签名的生成装置的结构组成示意图;
图8是本说明书的一个实施例提供的数字签名的生成装置的结构组成示意图;
图9是在一个场景示例中,应用本说明书实施例提供的数字签名的生成方法的一种实施例的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
考虑到在需要两个参与方协助进行联合签名的应用场景中,通常要求要保护双方的数据安全,避免向对方泄露己方所持有的私钥数据。针对上述应用场景,现有方法大多采用基于Paillier同态加密方法来实现两方参与的ECDSA签名。
但是,基于上述方法,由于Paillier同态加密与ECDSA系统中的模数不同,势必需要引入较繁重的范围零知识证明子协议,使得上述方法具体实施时处理过程较为繁琐,需要耗费较大的计算量和通信带宽,进而导致出现处理效率低,通信带宽大的技术问题。
针对产生上述问题的根本原因,本说明书通过创造性地思考,考虑可以综合利用ElGamal加密算法和类群加密算法,以及两方联合签名时的具体特点和保密性要求,构建一套新的协议规则,即预设的协议规则(也可以称Promise Sigma协议)。进而第一服务器和第二服务器通过交互,生成临时私钥和临时公钥,并交换各自所生成的临时公钥之后,第二服务器可以根据预设的协议规则,利用己方所持有的目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;并将上述第三中介密文数据,以及第二随机数发送至第一服务器。相应的,第一服务器可以先根据己方所持有的第二临时公钥、第一临时私钥生成第一部分签名;进一步可以根据预设的协议规则,利用上述第三中介密文数据、第二随机数,生成第二部分签名,进而可以得到关于目标信息的完整的目标数字签名。
通过上述方式,相对于现有方法不需要另外再引入范围零知识证明子协议,从而可以有效地简化处理过程,提高计算效率,降低通信带宽和数据处理量,能够在不向对方泄露各自所持有的私钥数据的前提下,高效、安全地通过协作来联合生成目标信息的目标数字签名。
基于上述思路,本说明书实施例提供一种数字签名的生成方法,该方法具体可以应用于包含有第一服务器和第二服务器的系统中。具体可以参阅图1所示。第一服务器和第二服务器可以通过有线或无线的方式相连,已进行具体的数据交互。
具体实施时,第二服务器可以获取待签名的目标信息,并向第一服务器发起关于目标信息的联合签名请求。
第一服务器和第二服务器可以响应上述联合签名请求进行相应的数据交互,以分别生成第一临时私钥、第一临时公钥,以及第二临时私钥、第二临时公钥;并交互各自所生成的临时公钥。这样第二服务器可以获得第一临时公钥,第一服务器可以获得第二临时公钥。
进一步,第二服务器可以根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的。并将所述第三中介密文数据和所述第二随机数发送至第一服务器。
相应的,第一服务器可以先根据所述第一临时私钥、第二临时公钥生成目标信息的目标数字签名中的第一部分签名。接着可以根据所述预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名。进而可以根据所述第一部分签名和所述第二部分签名,得到关于目标信息的完整的数字签名,即目标数字签名。
从而可以在不向对方泄露各自所持有的私钥数据的前提下,第一服务器和第二服务器可以高效、安全地通过协作来联合生成目标信息的目标数字签名。
在本实施例中,所述第一服务器、第二服务器具体可以包括一种应用于业务平台一侧,能够实现数据传输、数据处理等功能的后台服务器。具体的,所述第一服务器、第二服务器例如可以为一个具有数据运算、存储功能以及网络交互功能的电子设备。或者,所述第一服务器、第二服务器也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施例中,并不具体限定所述第一服务器、第二服务器所包含的服务器的数量。所述第一服务器、第二服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。
参阅图2所示,本说明书实施例提供了一种数字签名的生成方法。其中,该方法具体应用于第一服务器一侧。具体实施时,该方法可以包括以下内容。
S201:获取待签名的目标信息。
在本实施例中,上述目标信息具体可以交易数据处理场景中的交易订单,也可以是电子证券处理场景中电子证券,还可以是通信交互场景中的待传递的通知消息等。当然,上述所列举的目标信息只是一种示意性说明。具体实施时,针对不同的应用场景,上述待签名的目标信息还可以包括其他类型的数据信息。对此,本说明书不作限定。
在本实施例中,该方法具体可以应用于第二服务器(可以记为p2)一侧。其中,第二服务器具体可以与终端设备对接。具体实施时,第二服务器可以接收终端设备发出的目标信息,或者携带有目标信息的数据处理请求,以便第二服务器后续可以通过与第一服务器(可以记为p1)协助完成关于该目标信息的联合签名。
在本实施例中,负责对目标信息进行联合签名的第一服务器和第二服务器可以是级别相同的两个服务器。具体实施时,也可以是由第一服务器接收终端设备发出的目标信息,或者携带有目标信息的数据处理请求。
S202:向第一服务器发起关于目标信息的联合签名请求。
在本实施例中,上述联合签名请求具体可以理解一种请求第一服务器参与,同己方协作共同生成针对目标信息的数字签名,以完成关于目标信息的联合签名操作的请求数据。
在本实施例中,第二服务器在接收到目标信息,或者从所接收的数据处理请求中提取出所携带的目标信息后,可以触发第二服务器生成并发起上述关于目标信息的联合签名请求。
S203:响应所述联合签名请求,通过与所述第一服务器交互,以生成第二临时私钥和第二临时公钥,并与所述第一服务器交换临时公钥;其中,所述第一服务器响应所述联合签名请求,生成第一临时私钥和第一临时公钥。
在一个实施例中,所述响应所述联合签名请求,通过与所述第一服务器交互,以生成第二临时私钥和第二临时公钥,并与所述第一服务器交换临时公钥,具体实施时,可以包括以下内容。
S1:检测是否接收到关于第一临时公钥的第一临时承诺文件;其中,第一服务器响应所述联合签名请求,生成第一临时私钥和第一临时公钥;并根据所述第一临时公钥生成相关的第一临时承诺文件;
S2:在确定接收到所述第一临时承诺文件的情况下,生成第二临时私钥和第二临时公钥,并生成关于第二临时公钥的第二临时证明文件;
S3:向所述第一服务器发送所述第二临时公钥和所述第二临时证明文件;其中,所述第一服务器在确定接收到所述第二临时公钥和所述第二临时证明文件的情况下,向所述第二服务器提供第一临时公钥,以及关于所述第一临时公钥的第一临时证明文件;
S4:获取所述第一临时公钥和所述第一临时证明文件。
在本实施例中,具体实施时,在签名阶段,可以参阅图3所示。
在本实施例中,第一服务器可以根据预设的协议规则,利用上述第一临时私钥和第一临时公钥,通过预设的承诺函数,生成对应的第一临时承诺文件;进而可以先不直接将第一临时公钥发送给第二服务器,而是现将第一临时承诺文件发送给第二服务器,从而可以更好地保护第一服务器一侧的数据安全。
在本实施例中,上述预设的协议规则具体可以理解为一种综合了ElGamal加密算法和类群加密算法,并结合两方联合签名的场景特点设计、构建的新的协议规则。具体的,可以记为:Promise Sigma协议(规则)。
其中,上述ElGamal加密算法具体可以理解为密码学中基于迪菲-赫尔曼密钥交换的非对称加密算法。上述类群加密算法(也称基于类群的加密技术)具体可以理解为一种针对多个群体成员共同参与以协助处理数据的体制所设计的数据加密算法。
具体的,第一服务器接收到联合签名请求后,可以先根据预设的临时秘钥生成规则,先生成第一临时私钥,可以记为:k1;再根据第一临时私钥生成对应的第一临时公钥,可以记为:R1。
在本实施例中,具体实施时,第一服务器可以根据预设的临时秘钥生成规则,先从第一数据集(例如,)中随机抽取一个数据作为第一临时私钥。具体的,例如,进一步,可以根据预设的临时秘钥生成规则,根据第一临时私钥,生成对应的第一临时公钥。具体的,例如,R1=k1G。
其中,G具体可以表示为基于ECDSA数字签名的椭圆曲线上阶数为素数的生成元。
在本实施例中,上述数字签名(Digital Signature):又可以称为公钥数字签名,具体可以理解为一种持有信息的签名者才能生成,且其他人无法伪造的一段数字串,该段数字串同时也是一种对信息的签名者发送信息真实性的有效证明。
在本实施例中,ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法)具体可以理解为一种使用椭圆曲线密码(ECC)对数字签名算法(DSA)的模拟的签名算法。
相应的,在本实施例中所涉及到的数字签名具体可以是ECDSA数字签名。需要说明的是,上述所列举的ECDSA数字签名只是一种示意性说明,根据具体的应用场景以及所使用的签名算法的具体特点,不限定将本说明书提供的数字签名的生成方法适应性地推广应用到其他类型的数字签名中。
在本实施例中,第一服务器在按照上述方式生成第一临时私钥和第一临时公钥后,可以先不直接将上述第一临时公钥发送给第二服务器。而是先根据待提供给第二服务器的第一临时公钥生成相应的第一临时承诺文件;并将该第一临时承诺文件发送给第二服务器。从而可以更有效地保护第一服务器一侧的数据安全。
其中,上述第一临时承诺文件可以理解为一种用于向对方承诺是按照协议规则生成临时公钥,并且后续会将该临时公钥提供给对方的文件数据。
在本实施例中,具体实施时,第一服务器可以通过调用预设的承诺函数,例如,并利用该预设的承诺函数处理第一临时公钥,以及第一临时私钥(例如,进行com-prove处理),得到对应的关于第一临时公钥的第一临时承诺文件,例如,proof-receipt文件。
进一步,第二服务器可以根据上述第二临时公钥生成相应的第二证明文件。其中,上述第二证明文件具体可以理解为一种用于证明第二临时公钥是按照协议规则生成的且符合协议要求的文件数据。
具体的,第二服务器可以通过调用预设的证明函数,例如,(对数离散性证明函数),处理第二临时公钥,以及第二临时私钥(例如,进行proof处理),得到关于第二临时公钥的第二临时证明文件,例如,proof文件。
进而第二服务器可以将上述第二临时公钥,以及关于该第二临时公钥的第二临时证明文件发送至第一服务器。
第一服务器在接收到上述第二临时公钥,并根据上述第二临时证明文件确定该第二临时公钥是第二服务器按照协议规则,且符合协议要求后,可以允许第二服务器获取第一临时公钥,以及关于第一临时公钥的第一临时证明文件。
具体的,第一服务器可以通过调用预设的证明函数根据第一临时公钥,以及第一临时私钥,生成关于第一临时公钥的第一临时证明文件;再将第一临时公钥,以及第一临时证明文件发送给第二服务器。
第一服务器也可以通过调用预设的承诺函数根据第一承诺文件等数据进行相应处理(例如,decom-proof处理),得到第一临时公钥和关于第一临时公钥的第一临时证明文件反馈给第二服务器。
相应的,第二服务器可以通过上述交互,获取得到第一临时公钥,以及第一临时证明文件。
通过上述交互,第一服务器可以获取得到第二服务器生成的第二临时公钥,同时第二服务器可以获取得到第一服务器生成的第一临时公钥。
在第二服务器根据上述第一临时证明文件确定该第一临时公钥是第一服务器按照协议规则,且符合协议要求后,可以确定当前的交互是安全、有效的,进而双方可以协助进行后续的数据处理。相反,则确定当前的交互是不安全、无效的,进而双方会终止协助,不再进行后续的数据处理。从而可以有效地保护后续数据处理过程中的数据安全,避免双方中的恶意证明者引入的攻击。
S204:根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的。
在一个实施例中,所述根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,具体实施时,可以包括以下内容。
S1:计算目标信息的哈希值,得到目标哈希值;
S2:根据所述第二临时私钥和第一临时公钥,生成目标数字签名中的第一部分签名;
S3:获取第一随机数;
S4:根据预设的协议规则,利用所述目标哈希值、所述第一部分签名、第一随机数,生成所述第三中介密文数据。
在本实施例中,具体实施时,第二服务器可以先对目标信息(可以记为m)进行编码,得到与目标信息对应的字符串。进而可以根据上述字符串,利用相应的哈希函数进行哈希计算,得到与目标信息m对应的哈希值,作为所述目标哈希值。例如,m′=H(m)。其中,m′为目标哈希值,H(·)表示相应的哈希函数。
在本实施例中,具体实施时,第二服务器可以根据当前所持有的第二临时私钥和第一临时公钥,按照以下算式计算得到目标数字签名中的第一部分签名:
R=(rx,ry)=k2R1,r=rxmodp
其中,R可以表示为媒介数据,rx可以表示为媒介数据的横坐标,ry可以表示为媒介数据的纵坐标,r可以表示为第一部分签名。
在一个实施例中,上述获取第一随机数,从指定的数据范围中随机抽取一个数值作为所述第一随机数。具体的,可以表示为以下形式:
t←[0,pS)
在一个实施例中,上述根据预设的协议规则,利用所述目标哈希值、所述第一部分签名、第一随机数,生成所述第三中介密文数据,具体实施时,可以包括以下内容。
S1:根据预设的协议规则,利用所述第二临时私钥、目标哈希值,以及类群加密中循环子群的生成元,生成第一中介密文数据。
S2:根据预设的协议规则,利用第二部分私钥和第二类密文数据,以及第二临时私钥、第一随机数,生成第二中介密文数据。
S3:根据预设的协议规则,利用所述第一中介密文数据和所述第二中介密文数据,构建得到所述第三中介密文数据。
在本实施例中,上述根据预设的协议规则,利用所述第二临时私钥、目标哈希值,以及类群加密中循环子群的生成元,生成第一中介密文数据,具体实施时,可以包括:
按照以下算式,生成第一中介密文数据:
其中,c1具体可以表示为第一中介密文数据,f具体可以表示为类群加密中循环子群F的生成元,m′具体可以表示为目标哈希值。
在本实施例中,上述根据预设的协议规则,利用第二部分私钥和第二类密文数据,以及第二临时私钥、第一随机数,生成第二中介密文数据,可以包括:
按照以下算式,生成第二中介密文数据:
其中,c2具体可以表示为第二中介密文数据,k2具体可以表示第二临时私钥,t具体可以表示为第一随机数,r具体可以表示为第一部分签名,x2具体可以表示第二部分私钥,ckey具体可以表示第二类密文数据,表示密文数据上的指数运算。
需要说明的是,上述第二部分私钥和第二类密文数据是在之前的预处理阶段(或者称秘钥生成阶段)获取得到的,后续实施例会作另外说明。
在本实施例中,上述根据预设的协议规则,利用所述第一中介密文数据和所述第二中介密文数据,构建得到所述第三中介密文数据,具体实施时,可以包括:
按照以下算式,得到第三中介密文数据:
通过上述方式可以得到隐藏有第二服务器所持有的隐私数据(例如,第二部分私钥等),能够用于后续生成得到目标数字签名中的第二部分签名,但使用过程又不会泄露第二服务器所持有的隐私数据的第三中介密文数据。
在一个实施例中,为了能隐藏第一随机数的真实数值,进一步保护第二服务器一侧的数据安全,还可以根据第一随机数生成相应的第二随机数,再使用第二随机数代替第一随机数连同第三中介密文数据一起发送给第一服务器。
在一个实施例中,上述根据预设的协议规则,生成第二随机数,具体实施时,可以包括:
根据预设的协议规则,根据所述第一随机数按照以下算式生成所述第二随机数:
tp=tmodp
其中,tp为第二随机数,t为第一随机数,p为类群加密中循环子群F的阶数,mod为求模函数。
进而,第二服务器可以将上述第二随机数和第三中介密文数据一起发送给第一服务器,以在第一服务器一侧生成得到目标信息的目标数字签名中的第二部分签名。
需要说明的是,上述第二随机数(或第一随机数)可以与第三中介密文数据组合,用于生成目标数字签名中的第二部分签名。在本实施例中,通过使用第二随机数替换第一随机数,连同第三中介密文数据发送给第一服务器,可以有效地隐藏真实的第一随机数的真实数据值,从而可以更好好地保护第二服务器的数据安全。
在本实施例中,参阅图3所示,第一服务器可以根据所述第一临时私钥和所述第二临时公钥在第一服务器一侧生成目标信息的目标数字签名中的第一部分签名。具体的,第一服务器可以按照以下算式计算得到目标数字签名中的第一部分签名:
R=(rx,ry)=k1R2,r=rxmodp
其中,R可以表示为媒介数据,rx可以表示为媒介数据的横坐标,ry可以表示为媒介数据的纵坐标,r可以表示为第一部分签名。
S205:将所述第三中介密文数据和所述第二随机数发送至第一服务器;其中,所述第一服务器根据所述第一临时私钥、第二临时公钥生成目标信息的目标数字签名中的第一部分签名;所述第一服务器还根据所述预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;所述第一服务器根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
在本实施例中,第二服务器可以将上述第三中介密文数据和第二随机数通过有线或无线的方式发送给第一服务器,以便第一服务器可以利用上述数据生成得到目标数字签名中的第二部分签名,进而可以根据第一部分签名进行组合,得到完整的目标数字签名。
在一个实施例中,参阅图3所示,第一服务器可以先根据预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名。具体的,可以根据预设的协议规则,利用所述第二随机数、第二类第一私钥和第一类私钥,按照以下算式处理所述第三中介密文数据,以得到第一中间结果数据:
s″=CL.Dec(sk2,c3)-x1tpmodp
其中,s″具体可以表示为第一中间结果数据,sk2具体可以表示为第二类第一私钥,c3具体可以表示为第三中介密文数据,x1具体可以表示为第一部分私钥,tp具体可以表示为第二随机数,p具体可以表示为类群加密中循环子群F的阶数,mod具体可以表示为求模函数,CL.Dec(sk2,c3)具体可以表示表示利用第二类第一私钥对第三中介密文数据进行基于类群加密算法的解密处理。
接着,第一服务器可以再根据所述第一临时私钥和所述第一中间结果数据,得到第二中间结果数据。具体的,可以按照以下算式,得到第二中间结果数据:
s′=k1 -1s″
其中,s′具体可以表示为第二中间结果数据,k1具体可以表示为第一临时私钥。
然后,第一服务器可以根据所述第二中间结果数据,获取所述目标信息的目标数字签名中的第二部分签名。具体的,可以按照以下算式,得到第二部分签名:
s=min(s′,p-s′)
其中,s具体可以表示为目标数字签名中的第二部分签名,min(·)表示取最小值处理。
最后,第一服务器可以根据第一部分签名和第二部分签名通过组合,得到完整的数字签名,例如(r,s);进而可以将该数字签名作为针对目标信息的目标数字签名。
在本实施例中,基于该方法,第二服务器可以响应关于目标信息的联合签名请求,与第一服务器进行交互,以生成第二临时私钥和第二临时公钥,并与第一服务器交换各自所生成的临时公钥;进一步,第二服务器可以根据综合了ElGamal加密算法和类群加密算法的预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数,并将上述数据发送至第一服务器;第一服务器可以先根据第一临时私钥和第二临时公钥,生成第一部分签名,并根据预设的协议规则,利用上述第三中介密文数据、第二随机数,生成第二部分签名;进而可以得到关于目标信息的完整的目标数字签名。从而可以有效地提高计算效率,降低通信带宽和数据处理量,能够在不向对方泄露各自所持有的私钥数据的前提下,高效、安全地通过协作来联合生成目标信息的目标数字签名。解决了现有方法中存在的两方通过协作联合生成目标数字签名时过程繁琐,处理效率低,通信带宽大的技术问题。
在一个实施例中,在具体进行签名之前,第一服务器和第二服务器还可以根据预设的协议规则,进行相应的数据交互来生成协同公钥。
在一个实施例中,在获取待签名的目标信息之前,所述方法具体实施时,还可以包括以下内容:第二服务器可以根据预设的协议规则,通过与第一服务器进行预设的数据交互,得到第二部分私钥、第一部分公钥、第二类密文数据;并根据所述第一部分公钥和第二部分私钥,生成协同公钥。
在一个实施例中,上述根据预设的协议规则,通过与第一服务器进行预设的数据交互,得到第二部分私钥、第一部分公钥,具体实施时,可以包括以下内容。
S1:检测是否接收到关于第一部分公钥的第一部分承诺文件;其中,第一服务器生成第一部分私钥和第一部分公钥;并根据所述第一部分公钥生成相关的第一部分承诺文件。
S2:在确定接收到所述第一部分承诺文件的情况下,生成第二部分私钥和第二部分公钥,并生成关于第二部分公钥的第二部分证明文件。
S3:向所述第一服务器发送所述第二部分公钥和所述第二部分证明文件;其中,所述第一服务器在确定接收到所述第二部分公钥和所述第二部分证明文件的情况下,向所述第二服务器提供第一部分公钥,以及关于所述第一部分公钥的第一部分证明文件。
S4:获取所述第一部分公钥和所述第一部分证明文件。
在一个实施例中,上述根据预设的协议规则,通过与第一服务器进行预设的数据交互,得到第二类密文数据,具体实施时,可以包括以下内容:接收第一声明文件和第二声明文件;其中,第一服务器根据预设的协议规则通过基于ElGamal加密算法的第一处理方式得到关于第一部分私钥的第一类密文数据,通过基于类群加密算法的第二处理方式得到关于第一部分私钥的第二类密文数据;第一服务器还根据所述第一类密文数据和第二类密文数据生成相应的第一声明文件和第二声明文件;根据所述第一声明文件和所述第二声明文件获取所述第二类密文数据。
接着,第一服务器可以根据第一部分私钥生成对应的第一部分公钥,记为Q1。具体的,可以按照以下方式生成第一部分公钥:Q1=x1G。
进一步,第一服务器可以根据所述第一部分私钥和第一部分公钥,通过预设的承诺函数生成相应关于第一部分公钥的第一部分承诺文件;并将该第一部分承诺文件发送至第二服务器。
接着,第二服务器可以根据第二部分私钥生成对应的第二部分公钥,记为Q2。具体的,可以按照以下方式生成第二部分公钥:Q2=x2G。
进一步,第二服务器可以基于预设的协议规则,生成关于第二部分公钥的第二部分证明文件;并将所述第二部分公钥和所述第二部分证明文件发送至第一服务器。
第一服务器在接收到所述第二部分公钥,并根据所述第二部分证明文件确定所接收到的第二部分公钥是根据协议规则生成的且符合协议要求的情况下,可以允许第二服务器获取第一部分公钥,以及关于第一部分公钥的第一部分证明文件。
相应的,第二服务器可以获取得到第一部分公钥和第一部分证明文件。在第二服务器接收到所述第一部分公钥,并根据第一部分证明文件确定所接收到的第一部分公钥是根据协议规则生成且符合协议要求的情况下,可以继续进行后续的数据处理,以生成协同公钥。否则,则结束当前的数据处理。
通过上述交互,第一服务器可以得到第二部分公钥,同时第二服务器可以得到第一部分公钥。
进一步,第一服务器可以根据预设的协议规则,通过基于ElGamal加密算法的第一处理方式得到关于第一部分私钥的第一类密文数据。
接着,第一服务器可以根据设的协议规则,通过基于ElGamal加密算法的第一处理方式(例如,基于ElGamal加密算法的秘钥生成函数),生成第一类第一私钥和第一类第一公钥。具体的,可以按照以下方式,得到对应的第一类第一私钥sk1和第一类第一公钥pk1:EG.KGen(1λ)→(pk1,sk1)。其中,上述EG.KGen(·)表示基于ElGamal加密算法的秘钥生成函数,λ具体可以表示为安全参数。
进一步,第一服务器可以根据所述第一类第一公钥、第一类随机数对第一部分私钥进行加密,得到关于第一部分私钥的第一类密文数据。具体的,可以按照以下算式通过对第一部分私钥进行ElGamal加密得到第一类密文数据:EG.Enc(pk1,x1;r1)→Ckey=(Ckey,1,Ckey,2)。其中,EG.Enc(·)表示基于ElGamal加密算法的加密运算,Ckey表示第一类密文数据,Ckey,1,Ckey,2分别表示第一类密文数据的两个分量。
同时,第一服务器还可以根据预设的协议规则,通过基于类群加密算法的第二处理方式,生成第二类第一私钥和第二类第一公钥;并根据所述第二类第一公钥、第二类随机数对第一部分私钥进行加密,得到关于第一部分私钥的第二类密文数据。
具体的,参阅图4所示,第一服务器可以先获取第二类随机数,记为r2。具体的,可以通过以下方式获取第一随机数:r2←[0,S]。
接着,第一服务器可以根据设的协议规则,通过基于类群加密算法的第二处理方式(例如,基于类群加密算法的秘钥生成函数),生成第二类第一私钥和第二类第一公钥。具体的,可以按照以下方式,得到对应的第二类第一私钥sk2和第二类第一公钥pk2:CL.KGen(1λ,p)→(pk2,sk2)。其中,上述CL.KGen(·)表示基于类群加密算法的秘钥生成函数,λ具体可以表示为安全参数。
进一步,第一服务器可以根据所述第二类第一公钥、第二类随机数对第一部分私钥进行加密,得到关于第一部分私钥的第二类密文数据。具体的,可以按照以下算式通过对第一部分私钥进行类群加密得到第二类密文数据:CL.Enc(pk1,x1;r1)→ckey。其中,CL.Enc(·)表示基于类群加密算法的加密运算,ckey表示第二类密文数据。
在一个实施例中,可以参阅图4所示,在根据预设的协议规则,通过基于类群加密算法的第二处理方式,生成第二类第一私钥和第二类第一公钥之后,所述方法具体还可以包括:根据所述第二类公钥,生成与所述第二类公钥关联的校对参数,并将所述校对参数发送至第二服务器。
第一服务器可以将上述校对参数发送给第二服务器,以便第二服务器可以根据上述校对参数检测第一服务器是否按照协议规则生成符合协议要求的第二类第一私钥和第二类第一公钥,以确定是否继续进行后续的数据处理。
在一个实施例中,第一服务器具体实施时,还可以根据预设的协议规则,利用第一类第一公钥、第一类密文数据、第一部分公钥,生成第一声明文件,以及第一声明文件的证明文件;并将所述第一声明文件,以及第一声明文件的证明文件发送至第二服务器;
和/或,
根据预设的协议规则,利用第一类第一公钥、第二类第一公钥、第一类密文数据和第二类密文数据,生成第二声明文件,以及第二声明文件的证明文件;并将所述第二声明文件,以及第二声明文件的证明文件发送至第二服务器。
具体的,第一服务器可以按照以下方式生成第一声明文件:stdh=(pk1,Ckey,1,Ckey,2-Q1),进一步可以调用预设的证明文件处理该第一声明文件得到对应的第一声明文件的证明文件。
具体的,第一服务器可以按照以下方式生成第二声明文件:stprom=(pk1,pk2,Ckey,ckey),进一步可以调用预设的证明文件处理该第二声明文件得到对应的第二声明文件的证明文件。
接着,第一服务器可以将上述第一声明文件和第一声明文件的证明文件,和/或,第二声明文件和第二声明文件的证明文件发送至第二服务器进行检测校验。
在第二服务器根据所接收到的声明文件,以及声明文件的证明文件检测校验通过的情况下,第一服务器可以利用己方所持有的第一部分私钥和第二部分公钥生成协同公钥,可以记为Q。相应的,第二服务器可以利用己方所持有的第二部分私钥和第一部分公钥生成协同公钥。相应的,第二服务器可以根据所接收的声明文件,得到对应的第二类密文数据。
具体的,参阅图4所示,在第一服务器一侧可以按照以下算式生成协同公钥:Q=x1Q2。在第二服务器一侧可以按照以下算式生成协同公钥:Q=x2Q1。
通过实施例,第一服务器和第二服务器可以安全、高效地生成各自所分别持有的第一部分私钥和第二部分私钥,并交换双方的部分公钥,以生成相应的协同公钥。
其中,上述协同公钥可以用于后续目标数字签名的签名验证。
由上可见,本说明书实施例提供的数字签名的生成方法,基于该方法,第二服务器可以响应关于目标信息的联合签名请求,与第一服务器进行交互,以生成第二临时私钥和第二临时公钥,并与第一服务器交换各自所生成的临时公钥;进一步,第二服务器可以根据综合了ElGamal加密算法和类群加密算法的预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数,并将上述数据发送至第一服务器;第一服务器可以先根据第一临时私钥和第二临时公钥,生成第一部分签名,并根据预设的协议规则,利用上述第三中介密文数据、第二随机数,生成第二部分签名;进而可以得到关于目标信息的完整的目标数字签名。从而可以有效地提高计算效率,降低通信带宽和数据处理量,能够在不向对方泄露各自所持有的私钥数据的前提下,高效、安全地通过协作来联合生成目标信息的目标数字签名。解决了现有方法中存在的两方通过协作联合生成目标数字签名时过程繁琐,处理效率低,通信带宽大的技术问题。
参阅图5所示,本说明书实施例还提供了一种数字签名的生成方法。其中,该方法具体可以应用于第一服务器一侧。具体实施时,可以包括以下内容。
S501:接收第二服务器发起的关于目标信息的联合签名请求。
S502:响应所述联合签名请求,通过与所述第二服务器交互,以生成第一临时私钥和第一临时公钥,并与所述第二服务器交换临时公钥;其中,所述第二服务器响应所述联合签名请求,生成第二临时私钥和第二临时公钥。
S503:根据所述第一临时私钥和所述第二临时公钥生成目标信息的目标数字签名中的第一部分签名。
S504:接收第二服务器发送的第三中介密文数据和第二随机数;其中,所述第二服务器根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的。
S505:根据预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名。
S506:根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
在一个实施例中,在接收第二服务器发起的关于目标信息的联合签名请求之前,所述方法具体实施时还可以包括以下内容:根据预设的协议规则,通过与第二服务器进行预设的数据交互,得到第一部分私钥、第二部分公钥、第二类密文数据;并根据所述第一部分私钥和第二部分公钥,生成协同公钥。
在一个实施例中,根据预设的协议规则,通过与第二服务器进行预设的数据交互,得到第二类密文数据,具体实施时,可以包括以下内容。
S1:获取第一类随机数和第二类随机数;
S2:根据预设的协议规则,通过基于ElGamal加密算法的第一处理方式,生成第一类第一私钥和第一类第一公钥;并根据所述第一类第一公钥、第一类随机数对第一部分私钥进行加密,得到关于第一部分私钥的第一类密文数据;
S3:根据预设的协议规则,通过基于类群加密算法的第二处理方式,生成第二类第一私钥和第二类第一公钥;并根据所述第二类第一公钥、第二类随机数对第一部分私钥进行加密,得到关于第一部分私钥的第二类密文数据。
在一个实施例中,在根据预设的协议规则,通过基于类群加密算法的第二处理方式,生成第二类第一私钥和第二类第一公钥之后,所述方法具体实施时,还可以包括:根据所述第二类公钥,生成与所述第二类公钥关联的校对参数,并将所述校对参数发送至第二服务器。
在一个实施例中,所述方法具体实施时,还可以包括以下内容:
根据预设的协议规则,利用第一类第一公钥、第一类密文数据、第一部分公钥,生成第一声明文件,以及第一声明文件的证明文件;并将所述第一声明文件,以及第一声明文件的证明文件发送至第二服务器;
和/或,
根据预设的协议规则,利用第一类第一公钥、第二类第一公钥、第一类密文数据和第二类密文数据,生成第二声明文件,以及第二声明文件的证明文件;并将所述第二声明文件,以及第二声明文件的证明文件发送至第二服务器。
在一个实施例中,上述根据预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名,具体实施时,可以包括以下内容。
S1:根据预设的协议规则,利用所述第二随机数、第二类第一私钥和第一部分私钥,处理所述第三中介密文数据,以得到第一中间结果数据;
S2:根据所述第一临时私钥和所述第一中间结果数据,得到第二中间结果数据;
S3:根据所述第二中间结果数据,获取所述目标信息的目标数字签名中的第二部分签名。
在一个实施例中,上述根据预设的协议规则,利用所述第二随机数、第二类第一私钥和第一部分私钥,处理所述第三中介密文数据,以得到第一中间结果数据,具体实施时,可以包括:
按照以下算式得到所述第一中间结果数据:
s″=CL.Dec(sk2,c3)-x1tpmodp
其中,s″为第一中间结果数据,sk2为第二类第一私钥,c3为第三中介密文数据,x1为第一部分私钥,tp为第二随机数,p为类群加密中循环子群F的阶数,mod为求模函数,CL.Dec(sk2,c3)表示利用第二类第一私钥对第三中介密文数据进行基于类群加密算法的解密处理。
在一个实施例中,在得到目标信息的目标数字签名之后,所述方法具体实施时,还可以包括:根据预设的协议规则,对所述目标数字签名进行验证;在确定验证通过的情况下,在所述目标信息上设置目标数字签名。
在一个实施例中,根据预设的协议规则,对所述目标数字签名进行验证具体实施时,可以包括以下内容:根据目标信息,计算目标哈希值;根据目标哈希值和目标数字签名中的第二部分签名,计算第一验证数据u1;根据第一部分签名和第二部分签名计算第二验证数据u2;根据所述第一验证数据和第二验证数据,构建目标验证数据;通过检测目标验证数据横坐标数据与第一部分签名是否满足预设的数值关系,确定该数字签名是否验证通过。
在本实施例中,具体的,可以按照以下算式计算第一验证数据:u1=m′·s-1modq;可以按照以下算式计算第二验证数据:u2=r·s-1modq。
按照以下算式构建目标验证数据:u1·G+u2·Q=(rx,ry)。其中,rx为目标验证数据横坐标数据。
相应的,检测目标验证数据横坐标数据与第一部分签名是否满足预设的数值关系,包括检测以下关系式是否成立,来确定是否满足预设的数值关系:r=rxmodq。
如果确定满足预设的数值关系,则可以确定该数字签名验证通过。相反,如果不满足预设的数值关系,则可以确定数字签名验证不通过。
由上可见,本说明书实施例提供的数字签名的生成方法,可以有效地提高计算效率,降低通信带宽和数据处理量,能够在不向对方泄露各自所持有的私钥数据的前提下,高效、安全地通过协作来联合生成目标信息的目标数字签名。解决了现有方法中存在的两方通过协作联合生成目标数字签名时过程繁琐,处理效率低,通信带宽大的技术问题。
本说明书实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:获取待签名的目标信息;向第一服务器发起关于目标信息的联合签名请求;响应所述联合签名请求,通过与所述第一服务器交互,以生成第二临时私钥和第二临时公钥,并与所述第一服务器交换临时公钥;其中,所述第一服务器响应所述联合签名请求,生成第一临时私钥和第一临时公钥;根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;将所述第三中介密文数据和所述第二随机数发送至第一服务器;其中,所述第一服务器根据所述第一临时私钥、第二临时公钥生成目标信息的目标数字签名中的第一部分签名;所述第一服务器还根据所述预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;所述第一服务器根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
为了能够更加准确地完成上述指令,参阅图6所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口601、处理器602以及存储器603,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。
其中,所述网络通信端口601,具体可以用于获取待签名的目标信息。
所述处理器602,具体可以用于向第一服务器发起关于目标信息的联合签名请求;响应所述联合签名请求,通过与所述第一服务器交互,以生成第二临时私钥和第二临时公钥,并与所述第一服务器交换临时公钥;其中,所述第一服务器响应所述联合签名请求,生成第一临时私钥和第一临时公钥;根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;将所述第三中介密文数据和所述第二随机数发送至第一服务器;其中,所述第一服务器根据所述第一临时私钥、第二临时公钥生成目标信息的目标数字签名中的第一部分签名;所述第一服务器还根据所述预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;所述第一服务器根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
所述存储器603,具体可以用于存储相应的指令程序。
在本实施例中,所述网络通信端口601可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的端口,也可以是负责进行FTP数据通信的端口,还可以是负责进行邮件数据通信的端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施例中,所述处理器602可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。
在本实施例中,所述存储器603可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
本说明书实施例还提供另一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:接收第二服务器发起的关于目标信息的联合签名请求;响应所述联合签名请求,通过与所述第二服务器交互,以生成第一临时私钥和第一临时公钥,并与所述第二服务器交换临时公钥;其中,所述第二服务器响应所述联合签名请求,生成第二临时私钥和第二临时公钥;根据所述第一临时私钥和所述第二临时公钥生成目标信息的目标数字签名中的第一部分签名;接收第二服务器发送的第三中介密文数据和第二随机数;其中,所述第二服务器根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;根据预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
本说明书实施例还提供了一种基于上述数字签名的生成方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取待签名的目标信息;向第一服务器发起关于目标信息的联合签名请求;响应所述联合签名请求,通过与所述第一服务器交互,以生成第二临时私钥和第二临时公钥,并与所述第一服务器交换临时公钥;其中,所述第一服务器响应所述联合签名请求,生成第一临时私钥和第一临时公钥;根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;将所述第三中介密文数据和所述第二随机数发送至第一服务器;其中,所述第一服务器根据所述第一临时私钥、第二临时公钥生成目标信息的目标数字签名中的第一部分签名;所述第一服务器还根据所述预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;所述第一服务器根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
在本实施例中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本说明书实施例还提供了另一种基于上述数字签名的生成方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:接收第二服务器发起的关于目标信息的联合签名请求;响应所述联合签名请求,通过与所述第二服务器交互,以生成第一临时私钥和第一临时公钥,并与所述第二服务器交换临时公钥;其中,所述第二服务器响应所述联合签名请求,生成第二临时私钥和第二临时公钥;根据所述第一临时私钥和所述第二临时公钥生成目标信息的目标数字签名中的第一部分签名;接收第二服务器发送的第三中介密文数据和第二随机数;其中,所述第二服务器根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;根据预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
参阅图7所示,在软件层面上,本说明书实施例还提供了一种数字签名的生成装置,该装置具体可以包括以下的结构模块。
获取模块701,具体可以用于获取待签名的目标信息;
发起模块702,具体可以用于向第一服务器发起关于目标信息联合签名请求;
第一处理模块703,具体可以用于响应所述联合签名请求,通过与所述第一服务器交互,以生成第二临时私钥和第二临时公钥,并与所述第一服务器交换临时公钥;其中,所述第一服务器响应所述联合签名请求,生成第一临时私钥和第一临时公钥;
第二处理模块704,具体可以用于根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
发送模块705,具体可以用于将所述第三中介密文数据和所述第二随机数发送至第一服务器;其中,所述第一服务器根据所述第一临时私钥、第二临时公钥生成目标信息的目标数字签名中的第一部分签名;所述第一服务器还根据所述预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;所述第一服务器根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
参阅图8所示,本说明书还提供另一种数字签名的生成装置,具体可以包括以下的结构模块。
第一接收模块801,具体可以用于接收第二服务器发起的关于目标信息的联合签名请求;
第一处理模块802,具体可以用于响应所述联合签名请求,通过与所述第二服务器交互,以生成第一临时私钥和第一临时公钥,并与所述第二服务器交换临时公钥;其中,所述第二服务器响应所述联合签名请求,生成第二临时私钥和第二临时公钥;
第二处理模块803,具体可以用于根据所述第一临时私钥和所述第二临时公钥生成目标信息的目标数字签名中的第一部分签名;
第二接收模块804,具体可以用于接收第二服务器发送的第三中介密文数据和第二随机数;其中,所述第二服务器根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
第三处理模块805,具体可以用于根据预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;
第四处理模块806,具体可以用于根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
由上可见,本说明书实施例提供的数字签名的生成装置,可以有效地提高计算效率,降低通信带宽和数据处理量,能够在不向对方泄露各自所持有的私钥数据的前提下,高效、安全地通过协作来联合生成目标信息的目标数字签名。解决了现有方法中存在的两方通过协作联合生成目标数字签名时过程繁琐,处理效率低,通信带宽大的技术问题。
在一个具体的场景示例中,可以应用本说明书提供的数字签名的生成方法来实现基于类群加密的两方ECDSA联合签名。
在本场景示例中,要求两个参与方,在不泄漏各自私钥的情况下,协商出双方共同的签名公钥,并安全高效的对消息完成ECDSA数字签名。
基于现有方法,例如,[Lin17]基于Paillier同态加密实现了一种两方ECDSA签名方案。但是由于Paillier加密与ECDSA系统中的模数不同,引入了很重的范围零知识证明子协议,导致此方案需要更多的计算量和更高的带宽。又例如,[CCL+19]基于类群加密实现了一种两方的ECDSA签名方案。类群加密与ECDSA系统中的模数相同,消除了范围零知识证明的影响。但是对于恶意的证明者,存在小阶群元素攻击。为了抵御此攻击,需要使用单比特挑战并行重复执行子协议实现。显然,效率将受到很大影响。
而在本场景示例中,考虑了整体协议框架,使用本方案发明的Promise Sigma协议(例如,预设的协议规则)代替[CCL+19]并行重复子协议的方式,可以有效地解决其性能瓶颈。能够高效地实现联合签名。
在本场景示例中所使用的Promise Sigma协议是一种明文相等的Promise Sigma协议。
其中,明文相等具体可以是指:类群加密明文与E1Gamal加密明文相等。明文相等的Promise Sigma协议正式的语言描述如下:
具体的协议执行过程可以参阅图9所示。
在本场示例中,在通过执行协议实现相应的数据处理的过程中,还可以使用Fiat-Shamir启发式将上述交互式协议转化为非交互协议。
进一步,可以参阅图3和图4所示,基于上述协议控制两个参与方(例如,第一服务器和第二服务器)完成秘钥的生成,以及联合签名。还可以对所生成的签名进行验证。
通过对比,发现应用本说明书提供的方法在计算效率和通信带宽的性能表现上均有不同程度的提升。
具体的,可以参阅表1和表2所示的【CCL+19】和【CCL+20】的理论统计。从结果可以看出,在密钥生成阶段,当κ=40时,对比【CCL+19】本方案有15倍计算性能提升,对比【CCL+20】本方案有2倍提升;当κ=128时。性能提升效果更为显著。在签名阶段,本方案性能也有略微提升。如表3所示,对比了本方案与已有4种方案在工程实现中的表现。真实实现数据符合与【CCL+19】和【CCL+20】的理论统计的对比。当κ=40时,在密钥生成阶段,对比【Lin17】,本方案有6倍的计算性能提升,和47倍的通信带宽减少。
表1
Keygen(#CL-E×p) | Signing(#CL-E×p) | Assumptions(related to class group) | |
Ours | 11 | 3 | HSM |
CCL<sup>+</sup>19 | 4κ+2 | 5 | HSM |
[CCL<sup>+</sup>20] | (6κ)/10+2 | 5 | HSM+Low Order+Strong Root |
表2
表3
Keygen(ms) | Signing(ms) | Keygen(Bytes) | Signing(Bytes) | |
Ours | 970 | 397 | 2047 | 1046 |
[CCL<sup>+</sup>19](κ=40) | 14107 | 442 | 35814 | 1014 |
[CCL<sup>+</sup>20](κ=40) | 2275 | 442 | 4494 | 1014 |
[Lin17](κ=40) | 6120 | 41 | 96805 | 1092 |
[CCL<sup>+</sup>19](κ=128) | 44740 | 442 | 112374 | 1014 |
[CCL<sup>+</sup>20](κ=128) | 6471 | 442 | 11454 | 1014 |
[Lin17](κ=128) | 19032 | 41 | 305189 | 1092 |
注:由于类群上的指数运算时间远大于椭圆曲线上的指数运算,所以表中只统计了类群上的指数运算,用#CL-EXP表示。【CCL+19】和【CCL+20】需要重复并行子协议,用κ/10表示并行次数。
通过上述场景示例,验证了本说明书提供的数字签名的生成方法,由于引入了新的协议即,Promise Sigma协议,并将该协议应用于数字签名的生成过程中,得到了一种安全高效的两方ECDSA签名方案。对比之前方案,能够大幅提升了计算效率和减少了通信带宽。
虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
Claims (19)
1.一种数字签名的生成方法,其特征在于,所述方法应用于第二服务器,所述方法包括:
获取待签名的目标信息;
向第一服务器发起关于目标信息的联合签名请求;
响应所述联合签名请求,通过与所述第一服务器交互,以生成第二临时私钥和第二临时公钥,并与所述第一服务器交换临时公钥;其中,所述第一服务器响应所述联合签名请求,生成第一临时私钥和第一临时公钥;
根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
将所述第三中介密文数据和所述第二随机数发送至第一服务器;其中,所述第一服务器根据所述第一临时私钥、第二临时公钥生成目标信息的目标数字签名中的第一部分签名;所述第一服务器还根据所述预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;所述第一服务器根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
2.根据权利要求1所述的方法,其特征在于,所述响应所述联合签名请求,通过与所述第一服务器交互,以生成第二临时私钥和第二临时公钥,并与所述第一服务器交换临时公钥,包括:
检测是否接收到关于第一临时公钥的第一临时承诺文件;其中,第一服务器响应所述联合签名请求,生成第一临时私钥和第一临时公钥;并根据所述第一临时公钥生成相关的第一临时承诺文件;
在确定接收到所述第一临时承诺文件的情况下,生成第二临时私钥和第二临时公钥,并生成关于第二临时公钥的第二临时证明文件;
向所述第一服务器发送所述第二临时公钥和所述第二临时证明文件;其中,所述第一服务器在确定接收到所述第二临时公钥和所述第二临时证明文件的情况下,向所述第二服务器提供第一临时公钥,以及关于所述第一临时公钥的第一临时证明文件;
获取所述第一临时公钥和所述第一临时证明文件。
3.根据权利要求2所述的方法,其特征在于,所述根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,包括:
计算目标信息的哈希值,得到目标哈希值;
根据所述第二临时私钥和第一临时公钥,生成目标数字签名中的第一部分签名;
获取第一随机数;
根据预设的协议规则,利用所述目标哈希值、所述第一部分签名、第一随机数,生成所述第三中介密文数据。
4.根据权利要求3所述的方法,其特征在于,根据预设的协议规则,利用所述目标哈希值、所述第一部分签名、第一随机数,生成所述第三中介密文数据,包括:
根据预设的协议规则,利用所述第二临时私钥、目标哈希值,以及类群加密中循环子群的生成元,生成第一中介密文数据;
根据预设的协议规则,利用第二部分私钥和第二类密文数据,以及第二临时私钥、第一随机数,生成第二中介密文数据;
根据预设的协议规则,利用所述第一中介密文数据和所述第二中介密文数据,构建得到所述第三中介密文数据。
5.根据权利要求3所述的方法,其特征在于,根据预设的协议规则,生成第二随机数,包括:
根据预设的协议规则,根据所述第一随机数按照以下算式生成所述第二随机数:
tp=tmodp
其中,tp为第二随机数,t为第一随机数,p为类群加密中循环子群F的阶数,mod为求模函数。
6.根据权利要求1所述的方法,其特征在于,在获取待签名的目标信息之前,所述方法还包括:
根据预设的协议规则,通过与第一服务器进行预设的数据交互,得到第二部分私钥、第一部分公钥、第二类密文数据;并根据所述第一部分公钥和第二部分私钥,生成协同公钥。
7.根据权利要求6所述的方法,其特征在于,根据预设的协议规则,通过与第一服务器进行预设的数据交互,得到第二部分私钥、第一部分公钥,包括:
检测是否接收到关于第一部分公钥的第一部分承诺文件;其中,第一服务器生成第一部分私钥和第一部分公钥;并根据所述第一部分公钥生成相关的第一部分承诺文件;
在确定接收到所述第一部分承诺文件的情况下,生成第二部分私钥和第二部分公钥,并生成关于第二部分公钥的第二部分证明文件;
向所述第一服务器发送所述第二部分公钥和所述第二部分证明文件;其中,所述第一服务器在确定接收到所述第二部分公钥和所述第二部分证明文件的情况下,向所述第二服务器提供第一部分公钥,以及关于所述第一部分公钥的第一部分证明文件;
获取所述第一部分公钥和所述第一部分证明文件。
8.根据权利要求7所述的方法,其特征在于,根据预设的协议规则,通过与第一服务器进行预设的数据交互,得到第二类密文数据,包括:
接收第一声明文件和第二声明文件;其中,第一服务器根据预设的协议规则通过基于ElGamal加密算法的第一处理方式得到关于第一部分私钥的第一类密文数据;通过基于类群加密算法的第二处理方式得到关于第一部分私钥的第二类密文数据;第一服务器还根据所述第一类密文数据和第二类密文数据生成相应的第一声明文件和第二声明文件;
根据所述第一声明文件和所述第二声明文件获取所述第二类密文数据。
9.一种数字签名的生成方法,其特征在于,所述方法应用于第一服务器,所述方法包括:
接收第二服务器发起的关于目标信息的联合签名请求;
响应所述联合签名请求,通过与所述第二服务器交互,以生成第一临时私钥和第一临时公钥,并与所述第二服务器交换临时公钥;其中,所述第二服务器响应所述联合签名请求,生成第二临时私钥和第二临时公钥;
根据所述第一临时私钥和所述第二临时公钥生成目标信息的目标数字签名中的第一部分签名;
接收第二服务器发送的第三中介密文数据和第二随机数;其中,所述第二服务器根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
根据预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;
根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
10.根据权利要求9所述的方法,其特征在于,在接收第二服务器发起的关于目标信息的联合签名请求之前,所述方法还包括:
根据预设的协议规则,通过与第二服务器进行预设的数据交互,得到第一部分私钥、第二部分公钥、第二类密文数据;并根据所述第一部分私钥和第二部分公钥,生成协同公钥。
11.根据权利要求10所述的方法,其特征在于,根据预设的协议规则,通过与第二服务器进行预设的数据交互,得到第二类密文数据,包括:
获取第一类随机数和第二类随机数;
根据预设的协议规则,通过基于ElGamal加密算法的第一处理方式,生成第一类第一私钥和第一类第一公钥;并根据所述第一类第一公钥、第一类随机数对第一部分私钥进行加密,得到关于第一部分私钥的第一类密文数据;
根据预设的协议规则,通过基于类群加密算法的第二处理方式,生成第二类第一私钥和第二类第一公钥;并根据所述第二类第一公钥、第二类随机数对第一部分私钥进行加密,得到关于第一部分私钥的第二类密文数据。
12.根据权利要求11所述的方法,其特征在于,在根据预设的协议规则,通过基于类群加密算法的第二处理方式,生成第二类第一私钥和第二类第一公钥之后,所述方法还包括:
根据所述第二类公钥,生成与所述第二类公钥关联的校对参数;并将所述校对参数发送至第二服务器。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括:
根据预设的协议规则,利用第一类第一公钥、第一类密文数据、第一部分公钥,生成第一声明文件,以及第一声明文件的证明文件;并将所述第一声明文件,以及第一声明文件的证明文件发送至第二服务器;
和/或,
根据预设的协议规则,利用第一类第一公钥、第二类第一公钥、第一类密文数据和第二类密文数据,生成第二声明文件,以及第二声明文件的证明文件;并将所述第二声明文件,以及第二声明文件的证明文件发送至第二服务器。
14.根据权利要求11所述的方法,其特征在于,根据预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名,包括:
根据预设的协议规则,利用所述第二随机数、第二类第一私钥和第一部分私钥,处理所述第三中介密文数据,以得到第一中间结果数据;
根据所述第一临时私钥和所述第一中间结果数据,得到第二中间结果数据;
根据所述第二中间结果数据,获取所述目标信息的目标数字签名中的第二部分签名。
15.根据权利要求14所述的方法,其特征在于,根据预设的协议规则,利用所述第二随机数、第二类第一私钥和第一部分私钥,处理所述第三中介密文数据,以得到第一中间结果数据,包括:
按照以下算式得到所述第一中间结果数据:
s″=CL.Dec(sk2,c3)-x1tpmodp
其中,s″为第一中间结果数据,sk2为第二类第一私钥,c3为第三中介密文数据,x1为第一部分私钥,tp为第二随机数,p为类群加密中循环子群F的阶数,mod为求模函数,CL.Dec(sk2,c3)表示利用第二类第一私钥对第三中介密文数据进行基于类群加密算法的解密处理。
16.一种数字签名的生成装置,其特征在于,包括:
获取模块,用于获取待签名的目标信息;
发起模块,用于向第一服务器发起关于目标信息联合签名请求;
第一处理模块,用于响应所述联合签名请求,通过与所述第一服务器交互,以生成第二临时私钥和第二临时公钥,并与所述第一服务器交换临时公钥;其中,所述第一服务器响应所述联合签名请求,生成第一临时私钥和第一临时公钥;
第二处理模块,用于根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
发送模块,用于将所述第三中介密文数据和所述第二随机数发送至第一服务器;其中,所述第一服务器根据所述第一临时私钥、第二临时公钥生成目标信息的目标数字签名中的第一部分签名;所述第一服务器还根据所述预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;所述第一服务器根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
17.一种数字签名的生成装置,其特征在于,包括:
第一接收模块,用于接收第二服务器发起的关于目标信息的联合签名请求;
第一处理模块,用于响应所述联合签名请求,通过与所述第二服务器交互,以生成第一临时私钥和第一临时公钥,并与所述第二服务器交换临时公钥;其中,所述第二服务器响应所述联合签名请求,生成第二临时私钥和第二临时公钥;
第二处理模块,用于根据所述第一临时私钥和所述第二临时公钥生成目标信息的目标数字签名中的第一部分签名;
第二接收模块,用于接收第二服务器发送的第三中介密文数据和第二随机数;其中,所述第二服务器根据预设的协议规则,利用目标信息、第二临时私钥、第一临时公钥生成第三中介密文数据,以及第二随机数;所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
第三处理模块,用于根据预设的协议规则,利用所述第三中介密文数据、第二随机数,生成目标信息的目标数字签名中的第二部分签名;
第四处理模块,用于根据所述第一部分签名和所述第二部分签名,得到目标信息的目标数字签名。
18.一种服务器,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至8,或9至15中任一项所述方法的步骤。
19.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述指令被执行时实现权利要求1至8,或9至15中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011406944.0A CN112436938B (zh) | 2020-12-04 | 2020-12-04 | 数字签名的生成方法、装置和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011406944.0A CN112436938B (zh) | 2020-12-04 | 2020-12-04 | 数字签名的生成方法、装置和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112436938A CN112436938A (zh) | 2021-03-02 |
CN112436938B true CN112436938B (zh) | 2022-12-13 |
Family
ID=74691164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011406944.0A Active CN112436938B (zh) | 2020-12-04 | 2020-12-04 | 数字签名的生成方法、装置和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112436938B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114679281B (zh) * | 2022-03-15 | 2023-12-01 | 北京宏思电子技术有限责任公司 | 一种基于rsa的联合签名生成方法及装置 |
CN114844650B (zh) * | 2022-05-24 | 2023-12-01 | 北京宏思电子技术有限责任公司 | 一种设备签名方法及系统 |
CN115134093B (zh) * | 2022-08-30 | 2022-11-15 | 北京信安世纪科技股份有限公司 | 数字签名方法及计算设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9231925B1 (en) * | 2014-09-16 | 2016-01-05 | Keypasco Ab | Network authentication method for secure electronic transactions |
CN108173639A (zh) * | 2018-01-22 | 2018-06-15 | 中国科学院数据与通信保护研究教育中心 | 一种基于sm9签名算法的两方合作签名方法 |
CN110289968A (zh) * | 2019-06-27 | 2019-09-27 | 矩阵元技术(深圳)有限公司 | 私钥恢复、协同地址的创建、签名方法及装置、存储介质 |
JP2020129769A (ja) * | 2019-02-12 | 2020-08-27 | コニカミノルタ株式会社 | 鍵共有方法、鍵共有システム、エージェント端末 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8918648B2 (en) * | 2010-02-25 | 2014-12-23 | Certicom Corp. | Digital signature and key agreement schemes |
JP6006809B2 (ja) * | 2013-01-16 | 2016-10-12 | 日本電信電話株式会社 | 復号サービス提供装置、処理装置、安全性評価装置、プログラム、および記録媒体 |
-
2020
- 2020-12-04 CN CN202011406944.0A patent/CN112436938B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9231925B1 (en) * | 2014-09-16 | 2016-01-05 | Keypasco Ab | Network authentication method for secure electronic transactions |
CN108173639A (zh) * | 2018-01-22 | 2018-06-15 | 中国科学院数据与通信保护研究教育中心 | 一种基于sm9签名算法的两方合作签名方法 |
JP2020129769A (ja) * | 2019-02-12 | 2020-08-27 | コニカミノルタ株式会社 | 鍵共有方法、鍵共有システム、エージェント端末 |
CN110289968A (zh) * | 2019-06-27 | 2019-09-27 | 矩阵元技术(深圳)有限公司 | 私钥恢复、协同地址的创建、签名方法及装置、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112436938A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lin et al. | BSeIn: A blockchain-based secure mutual authentication with fine-grained access control system for industry 4.0 | |
Zhang et al. | SCLPV: Secure certificateless public verification for cloud-based cyber-physical-social systems against malicious auditors | |
Ren et al. | Mutual verifiable provable data auditing in public cloud storage | |
US9698985B2 (en) | Authentication | |
CN112436938B (zh) | 数字签名的生成方法、装置和服务器 | |
US9571274B2 (en) | Key agreement protocol | |
US8971540B2 (en) | Authentication | |
US9641340B2 (en) | Certificateless multi-proxy signature method and apparatus | |
Saqib et al. | A lightweight three factor authentication framework for IoT based critical applications | |
CN109818730B (zh) | 盲签名的获取方法、装置和服务器 | |
CN114586313A (zh) | 用于签署一信息的系统及方法 | |
Chow et al. | Server-aided signatures verification secure against collusion attack | |
CN106130716A (zh) | 基于认证信息的密钥交换系统及方法 | |
CN113037479B (zh) | 数据验证方法和装置 | |
Liu et al. | Public data integrity verification for secure cloud storage | |
CN111447065A (zh) | 一种主动安全的sm2数字签名两方生成方法 | |
Tan et al. | Challenges of post-quantum digital signing in real-world applications: A survey | |
WO2022116176A1 (zh) | 数字签名的生成方法、装置和服务器 | |
US20160352689A1 (en) | Key agreement protocol | |
Sathya et al. | A comprehensive study of blockchain services: future of cryptography | |
CN112417489B (zh) | 数字签名的生成方法、装置和服务器 | |
Srivastava et al. | Integration of quantum computing and blockchain technology: a cryptographic perspective | |
CN107070869B (zh) | 一种基于安全硬件的匿名认证方法 | |
CN116170144B (zh) | 智能电网匿名认证方法、电子设备及存储介质 | |
CN111191262B (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 |