CN112417489B - 数字签名的生成方法、装置和服务器 - Google Patents
数字签名的生成方法、装置和服务器 Download PDFInfo
- Publication number
- CN112417489B CN112417489B CN202011407003.9A CN202011407003A CN112417489B CN 112417489 B CN112417489 B CN 112417489B CN 202011407003 A CN202011407003 A CN 202011407003A CN 112417489 B CN112417489 B CN 112417489B
- Authority
- CN
- China
- Prior art keywords
- data
- signature
- node
- node server
- node servers
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本说明书提供了数字签名的生成方法、装置和服务器。基于该方法,多个节点服务器在进行联合签名时,参与联合签名的多个节点服务器中的任意一个作为第一节点服务器可以先生成第一随机数、第二随机数和第一临时私钥;再根据综合了ElGamal加密算法和类群加密算法的预设的协议规则,利用上述数据与其他节点服务器进行多次的数据交互和验证,以分次生成目标信息的目标数字签名中的第一部分签名和第二部分签名,进而可以得到关于目标信息的完整的目标数字签名。从而能在不泄露各个节点服务器所各自持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。
Description
技术领域
本说明书属于数字签名技术领域,尤其涉及数字签名的生成方法、装置和服务器。
背景技术
随着互联网的发展,在许多应用场景(例如,基于区块链的电子证券处理场景等)中,对相关信息的处理往往会涉及到多个参与方,需要多于某一门限值数量的参与方共同协作参与才能够对该信息进行联合签名;同时,还要求在上述多方参与的联合签名过程中,要保护各个参与方的数据安全,避免向其他参与方泄露己方所持有的私钥数据。
目前,亟需一种能够在不泄露各个节点服务器的私钥数据的前提下,高效、安全地实现多方门限联合签名的方法。
发明内容
本说明书提供了一种数字签名的生成方法、装置和服务器,以能在不泄露各个节点服务器所各自持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。
本说明书提供了一种数字签名的生成方法,所述方法应用于多个节点服务器中的第一节点服务器,所述方法包括:
响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息;
根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;
根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;
根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;
根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;
根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
在一个实施例中,根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据,包括:
根据预设的协议规则、所述其他节点服务器广播的第一数据组,生成并向所述其他节点服务器中的各个节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据;并接收所述其他节点服务器生成并发送的与第一节点服务器相对应的第一类参数数据、第二密文数据和第三密文数据;
解密所接收到的第二密文数据和第三密文数据,得到与其他节点服务器分别对应的第二类参数据和第三类参数数据;
根据预设的协议规则,利用第一随机数、其他节点服务器的门限分片公钥,以及与其他节点服务器对应的第二类参数数据和第三类参数数据进行第一验证;
在确定第一验证通过的情况下,利用第一随机数、第一临时私钥,以及与其他节点服务器对应的第二类参数数据和第三类参数数据,生成第一节点服务器的第一中间数据和第二中间数据;
对外广播所述第一中间数据;并接收其他节点服务器广播的第一中间数据;
根据第一节点服务器的第一中间数据和其他节点服务器广播的第一中间数据,生成第三中间数据。
在一个实施例中,根据预设的协议规则、所述其他节点服务器广播的第一数据组,生成并向所述其他节点服务器中的各个节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据,包括:
根据预设的协议规则,按照以下方式生成并向所述其他节点服务器中的当前节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据:
生成针对当前节点服务器的第三随机数、第四随机数,并根据所述第四随机数,生成与当前节点服务器对应的第一类参数数据;
根据预设的协议规则和所述其他节点服务器广播的第一数据组,利用当前节点服务器广播的第一密文数据,通过同态加密处理,得到与当前节点服务器对应的第二密文数据和第三密文数据;
将至少包含有与当前节点服务器对应的第一类参数数据、第二密文数据和第三密文数据的第二数据组发送至当前节点服务器。
在一个实施例中,根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名,包括:
根据预设的协议规则,打开第一临时承诺文件,以使其他节点服务器获取第一节点服务器的第一临时公钥;
生成并对外广播关于所述第一临时公钥的第一临时证明文件;
获取其他节点服务器的第一临时公钥,以及其他节点服务器广播的第一临时证明文件;
根据所述其他节点服务器的第一临时公钥,以及其他节点服务器广播的第一临时证明文件,进行第二验证;
在确定第二验证通过的情况下,根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,生成目标信息的目标数字签名中的第一部分签名。
在一个实施例中,根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,生成目标信息的目标数字签名中的第一部分签名,包括:
根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,计算第一目标数据;
确定出第一目标数据的横坐标值,作为所述第一部分签名。
在一个实施例中,根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,计算第一目标数据,包括:
按照以下算式计算第一目标数据:
R=δ-1(∑j∈SΓj)
其中,R为第一目标数据,δ为第三中间数据,Γj为编号为j的节点服务器的第一临时公钥,j为节点服务器的编号,S为参与联合签名的节点服务器的集合。
在一个实施例中,根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名,包括:
根据第一随机数、目标信息、第二中间数据和第一部分签名,构建第一节点服务器的第二签名的分量数据;
根据预设的协议规则,利用第二签名的分量数据、第一部分签名,构造第一中介数据和第二中介数据;
生成并对外广播关于所述第一中介数据和第二中介数据的第一中介承诺文件;
在确定接收到其他节点服务器广播的第一中介承诺文件的情况下,打开第一中介承诺文件,以使其他节点服务器获取第一节点服务器的第一中介数据和第二中介数据;
生成并对外广播关于所述第一中介数据和第二中介数据的第一中介证明文件;
获取其他节点服务器的第一中介数据和第二中介数据,以及其他节点服务器广播的第一中介证明文件;
根据所述其他节点服务器的第一中介数据和第二中介数据,以及其他节点服务器广播的第一中介证明文件,进行第三验证;
在确定第三验证通过的情况下,对外广播第一节点服务器的第二签名的分量数据;并接收其他节点服务器广播的第二签名的分量数据;
根据所述第一节点服务器的第二签名的分量数据、其他节点服务器广播的第二签名的分量数据,生成目标信息的目标数字签名中的第二部分签名。
在一个实施例中,在确定第三验证通过之后,所述方法还包括:
根据预设的协议规则,利用第二签名的分量数据、第一部分签名、签名公钥、第一中介数据和第二中介数据,构造第三中介数据和第四中介数据;
生成并对外广播关于所述第三中介数据和第四中介数据的第二中介承诺文件;
在确定接收到其他节点服务器广播的第二中介承诺文件的情况下,打开第二中介承诺文件,以使其他节点服务器获取第一节点服务器的第三中介数据和第四中介数据;
获取其他节点服务器的第三中介数据和第四中介数据;
根据所述其他节点服务器的第三中介数据和第四中介数据,以及第一节点服务器的第三中介数据和第四中介数据,进行第四验证;
相应的,
在确定第四验证通过的情况下,对外广播第一节点服务器的第二签名的分量数据;并接收其他节点服务器广播的第二签名的分量数据。
在一个实施例中,根据第一随机数、目标信息、第二中间数据和第一部分签名,构建第一节点服务器的第二签名的分量数据,包括:
按照以下算式,构建第一节点服务器的第二签名的分量数据:
si=kim+σir
其中,si为第一节点服务器的第二签名的分量数据,i为第一节点服务器的编号,ki为第一节点服务器的第一随机数,m为目标信息,σi为第一节点服务器的第二中间数据,r为第一部分签名。
在一个实施例中,响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥,包括:
响应联合签名请求,在确定参与联合签名的情况下,生成并对外广播确认信息;
接收其他节点服务器广播的确认信息;
统计广播确认信息的节点服务器的数量;
在确定广播确认信息的节点服务器的数量大于预设的门限阈值的情况下,生成第一随机数、第二随机数和第一临时私钥。
在一个实施例中,在响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥之前,所述方法还包括:
根据预设的协议规则,生成第一公钥、第一私钥、第一部分签名私钥和第一部分签名公钥;
生成并对外广播包含有关于第一部分签名公钥的第一部分承诺文件和第一公钥的第三数据组;
在确定接收到其他节点服务器广播的第三数据组的情况下,打开第一部分承诺文件,以使其他节点服务器获取第一节点服务器的第一部分签名公钥;
获取并根据其他节点服务器的第一部分签名公钥进行第五验证;
在确定第五验证通过的情况下,根据预设的协议规则、预设的门限阈值、第一部分签名公钥生成第一节点服务器的门限分片私钥和门限分片公钥,并对外广播门限分片公钥。
在一个实施例中,所述第一公钥包括:基于ElGamal加密算法的公钥数据和基于类群加密算法的公钥数据;所述第一私钥包括:基于ElGamal加密算法的私钥数据和基于类群加密算法的私钥数据。
在一个实施例中,根据预设的协议规则、预设的门限阈值、第一部分签名公钥生成第一节点服务器的门限分片私钥和门限分片公钥,包括:
根据预设的协议规则,构建次数为预设的门限阈值的目标多项式;
根据所述目标多项式,与其他节点服务器进行交互,以获取其他节点服务器针对第一节点服务器的门限参数;
根据其他节点服务器针对第一节点服务器的门限参数,生成第一节点服务器的门限分片私钥;
根据所述第一节点服务器的门限分片私钥,生成第一节点服务器的门限分片公钥。
本说明书还提供了一种数字签名的生成装置,包括:
第一生成模块,用于响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息;
第一处理模块,用于根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
广播模块,用于对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;
第二处理模块,用于根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;
第三处理模块,用于根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;
第四处理模块,用于根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;
第二生成模块,用于根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
本说明书还提供了一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述数字签名的生成方法的相关步骤。
本说明书还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述数字签名的生成方法的相关步骤。
本说明书提供的一种数字签名的生成方法、装置和服务器,基于该方法,多个节点服务器在进行联合签名时,参与联合签名的多个节点服务器中的任意一个作为第一节点服务器可以先生成第一随机数、第二随机数和第一临时私钥;再根据综合了ElGamal加密算法和类群加密算法的预设的协议规则,利用上述数据与其他节点服务器进行多次的数据交互与验证,以分次生成目标信息的目标数字签名中的第一部分签名和第二部分签名,进而可以得到关于目标信息的完整的目标数字签名。从而能在不泄露各个节点服务器所各自持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。有效地解决了现有方法在进行多方门限联合签名时存在的计算量大、处理效率低、通信带宽大,存在安全性风险的技术问题。
附图说明
为了更清楚地说明本说明书实施例,下面将对实施例中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是应用本说明书实施例提供的数字签名的生成方法的系统的结构组成的一个实施例的示意图;
图2是本说明书的一个实施例提供的数字签名的生成方法的流程示意图;
图3是在一个场景示例中,应用本说明书实施例提供的数字签名的生成方法的一种实施例的示意图;
图4是在一个场景示例中,应用本说明书实施例提供的数字签名的生成方法的一种实施例的示意图;
图5是本说明书的一个实施例提供的服务器的结构组成示意图;
图6是本说明书的一个实施例提供的数字签名的生成装置的结构组成示意图;
图7是在一个场景示例中,应用本说明书实施例提供的数字签名的生成方法的一种实施例的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
考虑到在多方门限联合签名的应用场景中,往往需要大于门限值数量的参与方共同协作参与,才能正常完成对待签名信息的联合签名;同时上述场景还要求保护各个参与方的数据安全,避免向其他参与方泄露己方所持有的私钥数据。针对上述场景,现有方法大多采用基于Paillier同态加密方法来实现多方参与的ECDSA签名。
但是,基于上述方法,由于Paillier同态加密与ECDSA系统中的模数不同,势必需要引入较繁重的范围零知识证明子协议,使得上述方法具体实施时处理过程较为繁琐,需要耗费较大的计算量和通信带宽,进而导致出现处理效率低,通信带宽大的技术问题。
针对产生上述问题的根本原因,本说明书通过创造性地劳动考虑,可以综合利用ElGamal加密算法和类群加密算法,以及多方门限联合签名场景中的具体特点和保密性要求,构建一套新的协议规则,即预设的协议规则(也可以称Promise Sigma协议)。进而参与签名的多个节点服务器中的各个节点服务器(例如,第一节点服务器)可以根据上述预设的协议规则,分别与其他节点服务器进行多次的数据交互,以分次、安全地生成目标数字签名中的第一部分签名和第二部分签名,进而可以得到关于目标信息的完整的目标数字签名。从而能在不泄露各个节点服务器所各自持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。
基于上述思路,本说明书实施例提供了一种数字签名的生成方法,该方法具体可以应用于包含有多个节点服务器(例如,节点服务器1、节点服务器2、节点服务器3、……节点服务器i、……节点服务器n)的系统中。具体可以参阅图1所示。系统中不同节点服务器之间可以通过有线或无线的方式相连,已进行具体的数据交互。
具体实施时,多个节点服务器中的各个节点服务器可以分别响应携带有待签名的目标信息的联合签名请求,生成第一随机数、第二随机数和第一临时私钥。
进一步,多个节点服务器中的各个节点服务器可以根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的。
接着,多个节点服务器中的各个节点服务器可以对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;同时接收其他节点服务器广播的包含有其他节点服务的第一密文数据、第一临时承诺文件和第一证明文件的第一数据组。
多个节点服务器中的各个节点服务器可以根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据。
然后,多个节点服务器中的各个节点服务器可以根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名。
进而,多个节点服务器中的各个节点服务器可以根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名。
最后,多个节点服务器可以根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
这样多个节点服务器中任意一个节点服务器可以将所生成的上述目标数字签名设置在目标信息上,完成针对该目标信息的联合签名。
在本实施例中,所述节点服务器具体可以包括一种应用于业务平台一侧,能够实现数据传输、数据处理等功能的后台服务器。具体的,所述节点服务器例如可以为一个具有数据运算、存储功能以及网络交互功能的电子设备。或者,所述节点服务器也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施例中,并不具体限定所述节点服务器所包含的服务器的数量。所述节点服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。
通过上述系统,各个节点服务器能在不泄露所持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。解决了现有方法在进行多方门限联合签名时存在的计算量大、处理效率低、通信带宽大,存在安全性风险的技术问题。
参阅图2所示,本说明书实施例提供了一种数字签名的生成方法。其中,该方法具体应用于第一节点服务器一侧。具体实施时,该方法可以包括以下内容。
S201:响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息。
在本实施例中,上述数字签名的生成方法具体可以应用于第一节点服务器(节点服务器的编号可以记为i,相应的第一节点服务器可以记为pi)。其中,上述第一节点服务器具体可以理解为参与联合签名的多个节点服务器中的任意一个节点服务器。
进一步,上述参与联合签名的多个节点服务器又是基于多方门限签名规则进行联合签名的。其中,上述多方门限签名规则可以是指:多个(例如n个)节点服务器(或者成员)组成一个签名群体(或签名系统),且该签名群体拥有一对群公钥和群私钥;具体的签名时,当群体中有大于门限值(例如,t)数量的节点服务器参与签名,则上述参与签名的多个节点服务器可以代表该群体使用群私钥进行签名,并且,任意一个节点服务器可以使用群公钥进行签名验证。
在本实施例中,上述联合签名请求具体可以理解一种请求群体中的节点服务器参与,通过合作来共同生成针对目标信息的数字签名,以完成关于目标信息的联合签名操作的请求数据。
在本实施例中,上述联合签名请求可以携带有待签名的目标信息。在本实施例中,上述目标信息具体可以交易数据处理场景中的交易订单,也可以是电子证券处理场景中电子证券,还可以是通信交互场景中的待传递的通知消息等。当然,上述所列举的目标信息只是一种示意性说明。具体实施时,针对不同的应用场景,上述待签名的目标信息还可以包括其他类型的数据信息。对此,本说明书不作限定。
在本实施例中,上述联合签名请求具体可以是第一节点服务器发起的,也可以是群体中除第一节点服务器以外的任意一个节点服务器发起的,还可以是群体以外的第三方设备,例如布设于用户一侧的终端设备等发起的。
在本实施例中,在签名阶段,可以参阅图3所示。具体实施时,第一节点服务器可以响应联合签名请求,获取联合签名请求中所携带的目标信息(可以记为m);并根据预设的协议规则生成第一节点服务器的第一随机数(可以记为ki)、第二随机数(可以记为ri)和第一临时私钥(可以记为γi)。
在本实施例中,上述预设的协议规则具体可以理解为一种综合了ElGamal加密算法和类群加密算法,并结合多方门限联合签名的场景特点设计、构建的新的协议规则。具体的,可以记为:Promise Sigma协议(规则)。
其中,上述ElGamal加密算法具体可以理解为密码学中基于迪菲-赫尔曼密钥交换的非对称加密算法。上述类群加密算法(也称基于类群的加密技术)具体可以理解为一种针对多个群体成员共同参与以协助处理数据的体制所设计的数据加密算法。
在本实施例中,在签名阶段,参阅图3中的Phase(步骤)1,具体实施时,第一节点服务器可以从第一数值范围(可以记为:Zq,或者图3中使用的)内随机抽取一个数值作为第一随机数,可以表示为:ki←Zq。其中,上述第一数值范围具体可以为大于0且小于等于q,q为素数。同时,第一节点服务器可以从第一数值范围内随机抽取一个数值作为第一临时私钥,可以表示为:γi←Zq。
在本实施例中,为了能够从一个更大的整数范围找到符合预设的协议规则的第二随机数,具体实施时,第一节点服务器可以从第二数值范围(可以记为[S])内随机抽一个数值作为第二随机数,可以表示为:ri←[S]。其中,上述S具体可以表示为类群加密中子群的阶数的近似上界。
在本实施例中,在第一节点服务器按照上述方式响应联合签名请求生成第一节点服务器的第一随机数、第二随机数和第一临时私钥的同时,其他节点服务器(可以记为{pj}j≠i)可以按照相同方式各自生成己方的第一随机数、第二随机数和第一临时私钥。其中,上述其他节点服务器具体可以理解为除第一节点服务器以外参与联合签名的节点服务器。
在本实施例中,可以将签名群体中参与本次联合签名的多个节点服务器(包括:第一节点服务器和其他节点服务器)所组成的集合记为S。其中,S中所包含的节点服务器的数量大于预设的门限阈值(可以记为t),i∈S且n为签名群体中节点服务器的总数。
需要说明的是,上述集合D中参与联合签名的节点服务器分别持有各自的门限分片私钥(x)、第一私钥(sk),并对其他节点服务器公开己方的门限分片公钥(pk)、第一公钥(X)。上述数据的获取后续将作具体说明。
S202:根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的。
在本实施例中,具体实施时,第一节点服务器可以根据预设的协议规则,利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件(可以记为ci)。例如,ci←Com(γiP)。其中,上述P(也可以记为G)具体可以表示为基于ECDSA数字签名的椭圆曲线上阶数为素数的生成元。
在本实施例中,上述数字签名(Digital Signature):又可以称为公钥数字签名,具体可以理解为一种持有信息的签名者才能生成,且其他人无法伪造的一段数字串,该段数字串同时也是一种对信息的签名者发送信息真实性的有效证明。
在本实施例中,ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法)具体可以理解为一种使用椭圆曲线密码(ECC)对数字签名算法(DSA)的模拟的签名算法。
相应的,在本实施例中所涉及到的数字签名具体可以是ECDSA数字签名。需要说明的是,上述所列举的ECDSA数字签名只是一种示意性说明,根据具体的应用场景以及所使用的签名算法的具体特点,不限定将本说明书提供的数字签名的生成方法适应性地推广应用到其他类型的数字签名中。
在本实施例中,具体实施时,第一节点服务器还可以根据预设的协议规则生成关于第一密文数据和第一临时承诺文件的NIZK证明(可以记为πi)文件,作为第一证明文件。其中,上述NIZK证明具体可以理解为使用Promise Sigma协议生成的一种非交互式的零知识证明。
在本实施例中,其他节点服务器可以按照相同方式各自生成己方的第一密文数据、第一临时承诺文件和第一证明文件。
S203:对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组。
在本实施例中,第一节点服务器可以通过组合所述第一密文数据、第一临时承诺文件和第一证明文件,得到第一节点服务器的第一数据组,例如,(ci,πi)。进一步,可以在群体中对外广播上述第一数据组。相应的,其他节点服务器可以接收到第一节点服务器广播的第一数据组。
同时,其他节点服务器也可以生成并对外广播上述包含有己方的第一密文数据、第一临时承诺文件和第一证明文件的第一数据组的第一数据组。相应的,第一节点服务器可以接收到其他节点服务器广播的第一数据组。
S204:根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据。
在一个实施例中,上述根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据,具体实施时,可以包括以下内容。
S1:根据预设的协议规则、所述其他节点服务器广播的第一数据组,生成并向所述其他节点服务器中的各个节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据;并接收所述其他节点服务器生成并发送的与第一节点服务器相对应的第一类参数数据、第二密文数据和第三密文数据。
在本实施例中,第一节点服务具体实施时,可以根据预设的协议规则,通过两方信道分别与其他节点服务器进行一对一的数据交互,以生成并向其他节点服务器中的各个节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据;并接收其他节点服务器生成并发送的与第一节点服务器相对应的第一类参数数据、第二密文数据和第三密文数据。
在一个实施例中,上述根据预设的协议规则、所述其他节点服务器广播的第一数据组,生成并向所述其他节点服务器中的各个节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据,具体实施时,可以包括:
根据预设的协议规则,按照以下方式生成并向所述其他节点服务器中的当前节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据:
S1-1:生成针对当前节点服务器的第三随机数、第四随机数,并根据所述第四随机数,生成与当前节点服务器对应的第一类参数数据;
S1-2:根据预设的协议规则和所述其他节点服务器广播的第一数据组,利用当前节点服务器广播的第一密文数据,通过同态加密处理,得到与当前节点服务器对应的第二密文数据和第三密文数据;
S1-3:将至少包含有与当前节点服务器对应的第一类参数数据、第二密文数据和第三密文数据的第二数据组发送至当前节点服务器。
在本实施例中,以其他节点服务器中的任意一个编号为j的节点服务器作为当前节点服务器(可以记为pj)为例进行具体说明。
可以参阅图3中的Phase2,第一节点服务器可以生成针对当前节点服务器的第三随机数(可以记为βj,i)和第四随机数(可以记为υj,i)。具体的,例如,βj,i,υj,i←Zq。并根据第四随机数计算第一类参数数据(Bj,i)。例如,Bj,i=υj,iP。
进一步,第一节点服务器可以根据预设的协议规则,利用当前节点服务器所广播的第一数据组中的当前节点服务器的第一密文数据通过进行相应的同态加密处理,得到第一节点服务器针对当前节点服务器的第二密文数据(可以记为)和第三密文数据(可以记为)。
上述同态加密处理具体实施时,可以包括以下内容:首先生新的随机数tj,i,ttj,i←[qS]。参阅图3所示,ttj,i也可以记为具体可以按照以下算式计算得到新的随机数:tp,ji=tj,imodq,ttp,ji=ttj,imodq。其中,q为素数。再根据预设的协议规则,利用promise加密的同态性质,利用通过以下算式进行密文计算得到对应的
进而第一节点服务器可以组合上述第一类参数数据、第二密文数据和第三密文数据的第二数据组,得到对应的第二数据组,例如,(Bj,i);并将第二数据组发送至对应的当前节点服务器。其中,所述发送的第二数据组中进一步还可以包括有计算第二密文数据和第三密文数据时使用到的新的随机数tj,i,ttj,i。
按照类似的方式,其他节点服务器也可以生成针对第一节点服务器的第二数据组,并将上述第二数据组通过两方信道发送给第一节点服务器。这样,第一节点服务器可以接收得到其他节点服务器生成并发送的针对己方的第二数据组。
S2:解密所接收到的第二密文数据和第三密文数据,得到与其他节点服务器分别对应的第二类参数据和第三类参数数据。
在本实施例中,以编号为j的当前节点服务器解密第一节点服务器所发送的第二密文数据和第三密文数据为例。
当前节点服务器在接收到第一接单服务器发送的第二数组之后,可以先对第二密文数据和第三密文数据之后,可以利用己方所持有的第一随机数kj,以及新的随机数tj,i,ttj,i先解密第二密文数据和第三密文数据,得到对应的明文数据作为第二类参数数据(例如αj,i)和第三类参数数据(例如μj,i)即,αj,i=kj(γi+ttj,i)-βj,imodq,μj,i=kj(wi+tj,i)-υj,imodq。
按照类似的方式,第一节点服务器,以及其他节点服务器可以分别解密来自别的节点服务器所发送的第二密文数据和第三名数据,得到对应的第二类参数数据和第三类参数数据。
S3:根据预设的协议规则,利用第一随机数、其他节点服务器的门限分片公钥,以及与其他节点服务器对应的第二类参数数据和第三类参数数据进行第一验证。
在本实施例中,以编号为j的当前节点服务器针对第一节点服务器进行第一验证为例。
当前节点服务器可以根据己方所持有的第一随机数、第一节点服务器的门限分片公钥,以及与第一节点服务器对应的第二类参数数据和第三类参数数据,检测一下等式是否成立,来进行第一验证:
kjWi=μj,iP+Bj,i
其中,kj为当前节点服务器的第一随机数,Wi为第一节点服务器的门限分片公钥,μj,i为与第一节点服务器对应的第三类参数数据(也可以称为当前节点服务器针对第一节点服务器的第三类参数数据),Bj,i为第一类参数数据(也可以称为第一节点服务器针对当前节点服务器的第一类参数数据)。其中,上述第一节点服务器的门限分片公钥是基于第一节点服务器所持有并保密的门限分片私钥生成的,上述第一节点服务器的门限分片公钥是对外公开的。
如果检测到上述等式成立,则确定当前节点服务器针对第一节点服务器的第一验证通过;否则,则确定当前节点服务器针对第一节点服务器的第一验证未通过。
按照相同的方式,各个节点服务器可以分别对向己方发送第二数据组的节点服务器进行第一验证。
如果发现各个节点服务器针对所有节点服务器的第一验证都验证通过,则确定第一验证通过,进而可以确定是根据预设协议规则进行的,是安全有效的,可以继续进行后续的数据处理。如果发现各个节点服务器针对所有节点服务器的第一验证中存在至少有一个没有通过,则确定第一验证未通过,进而可以确定是存在风险的,为了保护参与方的数据安全,将终止后续的数据处理。通过上述方式,有效地保护参与签名的节点服务器的数据安全。
S4:在确定第一验证通过的情况下,利用第一随机数、第一临时私钥,以及与其他节点服务器对应的第二类参数数据和第三类参数数据,生成第一节点服务器的第一中间数据和第二中间数据。
在本实施例中,在确定第一验证通过的情况下,以第一节点服务器为例,可以按照以下算式利用第一随机数、第一临时私钥,以及与其他节点服务器对应的第二类参数数据和第三类参数数据,计算得到第一节点服务器的第一中间数据和第二中间数据:
δi=kiγi+∑j≠i(αi,j+βi,j),σi=kiwi+∑j≠i(μi,j+υi,j)
其中,δi为第一节点服务器的第一中间数据,σi为第一节点服务器的第二中间数据。
按照相同的方式,其他节点服务器可以分别计算得到各自的第一中间数据和第二中间数据。
S5:对外广播所述第一中间数据;并接收其他节点服务器广播的第一中间数据。
在本实施例中,第一节点服务器可以对外广播己方的第一中间数据,相应的,其他节点服务器可以接收到第一节点服务器的第一中间数据。同时,其他节点服务器可以对外广播己方的第一中间数据,相应的,第一节点服务器可以接收到其他节点服务器广播的第一中间数据。
S6:根据第一节点服务器的第一中间数据和其他节点服务器广播的第一中间数据,生成第三中间数据。
在本实施例中,可以参阅图3中的Phase3,第一节点服务器可以将其他节点服务器广播的第一中间数据和己方的第一中间数据进行累加,得到对应的第三中间数据。具体的,可以按照以下算式计算得到第三中间数据:δ=∑i∈Sδi。其中,δ为第三中间数据。
按照相同的方式,其他节点服务器可以分别计算得到第三中间数据。
在一个实施例中,第一节点服务器在接收到其他节点服务器广播的第一数据组后,可以先对从第一数据组中提出第一证明文件,并根据第一证明文件对其他节点服务器所广播的第一数据组中的第一临时承诺文件和第一密文数据是否是符合预设的协议规则进行验证。类似的,其他节点服务器也会进行相同的验证。如果存在一个第一数据组中的第一证明文件验证不通过,则终止后续的数据处理。从而可以更有效地保护参与方的数据安全。
S205:根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名。
在一个实施例中,上述根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名,具体实施时,可以包括以下内容。
S1:根据预设的协议规则,打开第一临时承诺文件,以使其他节点服务器获取第一节点服务器的第一临时公钥。
在本实施例中,可以参阅图3中的Phase4,第一节点服务器可以打开之前广播的第一数据组中的第一临时承诺文件ci,从而可以使得其他节点服务器能够获取得到第一节点服务器的第一临时公钥:Γj=γiP。
按照相同的方式,其他节点服务器可以打开之前广播的第一数据组中的第一临时承诺文件,以使得其他节点服务器能够获取得到己方的第一临时公钥。
S2:生成并对外广播关于所述第一临时公钥的第一临时证明文件。
在本实施例中,可以参阅图3中的Phase4,第一节点服务器还可以生成关于第一临时公钥的NIZK证明文件作为第一临时证明文件,记为其中,该第一临时证明文件用于证明存在一个γi使得有第一临时公钥γiP。第一节点服务器可以对外广播该第一临时证明文件。
按照相同的方式,其他节点服务器可以生成并对外广播相应的第一临时证明文件。
S3:获取其他节点服务器的第一临时公钥,以及其他节点服务器广播的第一临时证明文件。
在本实施例中,通过上述方式,第一节点服务器和其他节点服务器可以分别获取各个节点服务器的第一临时公钥;同时也可以分别接收别的节点服务器发送的第一临时承诺文件和第一临时证明文件。例如,第一节点服务器可以接收到其他节点服务器的第一临时承诺文件,可以记为{ci}j∈S,j≠i,以及第一临时证明文件,可以记为{πjγ}j∈S,j≠i。
S4:根据所述其他节点服务器的第一临时公钥,以及其他节点服务器广播的第一临时证明文件,进行第二验证。
在本实施例中,第一节点服务器可以根据其他节点服务器的第一临时公钥,以及对应的第一临时证明文件和第一临时承诺文件对第一临时公钥进行验证,以确定是否是根据预设的协议规则生成。
按照相同的方式,其他节点服务器也可以对别的节点服务器的第一临时公钥进行验证。
如果所有的第一临时公钥都验证通过,则确定第二验证通过,可以继续后续的数据处理。如果存在至少一个没有验证通过,则确定第二验证未通过,可以终止后续的数据处理,从而可以有效地保护参与方的数据安全。
S5:在确定第二验证通过的情况下,根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,生成目标信息的目标数字签名中的第一部分签名。
在一个实施例中,上述根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,生成目标信息的目标数字签名中的第一部分签名,具体实施时,可以包括:
S5-1:根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,计算第一目标数据;
S5-2:确定出第一目标数据的横坐标值,作为所述第一部分签名。
在一个实施例中,上述根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,计算第一目标数据,具体实施时,可以包括:
按照以下算式计算第一目标数据:
R=δ-1(∑j∈SΓj)
其中,R为第一目标数据,δ为第三中间数据,Γj为编号为j的节点服务器的第一临时公钥,j为节点服务器的编号,S为参与联合签名的节点服务器的集合。
在本实施例中,上述确定出第一目标数据的横坐标值,作为所述第一部分签名,具体实施时,可以将第一目标数据R拆分成分别对应纵坐标y的纵坐标值,以及对应横坐标x的横坐标值,进而可以将上述横坐标值确定为第一部分签名,可以记为r。具体的,也可以参阅图3中的Phase4。
在一个实施例中,也可以利用哈希函数计算第一目标数据的哈希值作为第一部分签名。
按照相同方式,其他节点服务器可以分别计算得到第一部分签名。
S206:根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名。
在一个实施例中,上述根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名,具体实施时,可以包括以下内容。
S1:根据第一随机数、目标信息、第二中间数据和第一部分签名,构建第一节点服务器的第二签名的分量数据。
在一个实施例中,上述根据第一随机数、目标信息、第二中间数据和第一部分签名,构建第一节点服务器的第二签名的分量数据,具体实施时,可以包括:
按照以下算式,构建第一节点服务器的第二签名的分量数据:
si=kim+σir
其中,si为第一节点服务器的第二签名的分量数据,i为第一节点服务器的编号,ki为第一节点服务器的第一随机数,m为目标信息,σi为第一节点服务器的第二中间数据,r为第一部分签名。
在本实施例中,具体实施时,也可以参阅图3中的Phase5,先按照以下算式计算目标信息的哈希值:m′=H(m),得到目标哈希值m′;再使用上述目标哈希值m′代替目标信息m来计算相应的第二签名的分量数据si。
按照相同的方式,其他节点服务器可以分别计算得到各自的第二签名的分量数据。
S2:根据预设的协议规则,根据第二签名的分量数据、第一部分签名,构造第一中介数据和第二中介数据。
在本实施例中,具体实施时,第一节点服务器可以根据以下算式构造第一节点服务器的第一中介数据和第二中介数据:
Vi=siR+liP,Ai=ρiP
其中,Vi为第一中介数据,Ai为第二中介数据,ρi为第五随机数,li为第六随机数,R为第一目标数据。其中,上述第五随机数和第六随机数按照以下方式生成:ρi,li←Zq。
按照相同的方式,其他节点服务器可以分别构建得到己方的第一中介数据和第二中介数据。
S3:生成并对外广播关于所述第一中介数据和第二中介数据的第一中介承诺文件。
在本实施例中,参阅图3中的Phase5,第一节点服务器具体实施时,可以按照以下方式生成第一中介承诺文件(可以记为c1i):cli←Com(Vi,Ai)。并广播该第一中介承诺文件。
按照相同的方式,其他节点服务器可以分别生成并广播对应的第一中介承诺文件。
S4:在确定接收到其他节点服务器广播的第一中介承诺文件的情况下,打开第一中介承诺文件,以使其他节点服务器获取第一节点服务器的第一中介数据和第二中介数据。
在本实施例中,第一节点服务器在接收到所有的第一中介承诺文件(例如,{c1j}j∈S,j≠i)的情况下,可以打开己方的第一中介承诺文件c1i,以使得其他节点服务器能够获取得到第一节点服务器的第一中介数据和第二中介数据。
按照相同的方式,其他节点服务器可以分别打开己方的第一中介承诺文件。相应的,第一节点服务器可以获取得到其他节点服务器的第一中介数据和第二中介数据。
S5:生成并对外广播关于所述第一中介数据和第二中介数据的第一中介证明文件。
在本实施例中,第一节点服务器还可以生成关于第一中介数据和第二中介数据的NIZK证明文件作为第一中介证明文件,可以记为πiVA。其中,该第一中介证明文件用于证明存在(si,ρi,li)使得Vi=siR+liP,Ai=ρiP成立。进一步,第一节点服务器可以对外广播该第一中介证明文件。
按照相同的方式,其他节点服务器可以生成并广播相应的第一中介证明文件。
S6:获取其他节点服务器的第一中介数据和第二中介数据,以及其他节点服务器广播的第一中介证明文件。
S7:根据所述其他节点服务器的第一中介数据和第二中介数据,以及其他节点服务器广播的第一中介证明文件,进行第三验证。
在本实施例中,第一节点服务器可以根据所述其他节点服务器的第一中介数据和第二中介数据,以及其他节点服务器广播的第一中介证明文件,结合左右的零知识证明,以验证所接收到的第一中介数据和第二中介数据,以及相关的承诺和证明是否准确。
类似的,其他节点服务器也可以按照相同的方式对所接收到的第一中介数据和第二中介数据,以及相关的承诺和证明是否准确进行验证。
在确定全部准确的情况下,确定第三验证通过,可以继续后续的数据处理。相应的,在确定存在至少一个不准确的情况下,确定第三验证未通过,终止后续的数据处理,从而可以保护参与方的数据安全。
S8:在确定第三验证通过的情况下,对外广播第一节点服务器的第二签名的分量数据;并接收其他节点服务器广播的第二签名的分量数据。
S9:根据所述第一节点服务器的第二签名的分量数据、其他节点服务器广播的第二签名的分量数据,生成目标信息的目标数字签名中的第二部分签名。
在一个实施例中,为了能够进一步保护参与方的数据安全,在确定第三验证通过之后,所述方法具体实施时,还可以包括以下内容。
S1:根据预设的协议规则,利用第二签名的分量数据、第一部分签名、签名公钥、第一中介数据和第二中介数据,构造第三中介数据和第四中介数据;
S2:生成并对外广播关于所述第三中介数据和第四中介数据的第二中介承诺文件;
S3:在确定接收到其他节点服务器广播的第二中介承诺文件的情况下,打开第二中介承诺文件,以使其他节点服务器获取第一节点服务器的第三中介数据和第四中介数据;
S4:获取其他节点服务器的第三中介数据和第四中介数据;
S5:根据所述其他节点服务器的第三中介数据和第四中介数据,以及第一节点服务器的第三中介数据和第四中介数据,进行第四验证;
相应的,
在确定第四验证通过的情况下,对外广播第一节点服务器的第二签名的分量数据;并接收其他节点服务器广播的第二签名的分量数据。
在本实施例中,参阅图3中的Phase5,上述根据预设的协议规则,利用第二签名的分量数据、第一部分签名、签名公钥、第一中介数据和第二中介数据,构造第三中介数据和第四中介数据,具体实施时,第一节点服务器可以按照以下算式构造第一节点服务器的第三中介数据和第四中介数据:
Ui=ρiV=ρi(-mP-rQ+∑i∈SVi),Ti=liA=li∑i∈SAi
其中,Ui为第一节点服务器的第三中介数据,Ti为第一节点服务器的第四中介数据,ρi为第五随机数,li为第六随机数,Q为签名公钥。
按照相同的方式,其他节点服务器可以分别生成各自的第三中介数据和第四中介数据。
在本实施例中,第一节点服务器可以按照以下方式生成关于第三中介数据和第四中介数据的第二中介承诺文件(可以记为c2i):c2i←Com(Ui,Ti);再对外广播第二中介承诺文件。
按照相同的方式,其他节点服务器可以分别生成并对外广播相应的第二中介承诺文件。
在本实施例中,在第一节点服务器确定接收到其他节点服务器广播的第二中介承诺文件的情况下,可以打开第二中介承诺文件,以使其他节点服务器获取第一节点服务器的第三中介数据和第四中介数据。相应的,其他节点服务器可以打开己方的第二中介承诺文件,第一节点服务器可以获取其他节点服务器的第三中介数据和第四中介数据。
在本实施例中,第一节点服务器可以根据所接收到的其他节点服务器的第三中介数据、第四中介数据和第二中介承诺文件进行验证,以验证所接收到的第二中介承诺文件是否准确,如果发现错误,则终止后续的数据处理。如果发现所接收到的第二中介承诺文件准确,则进一步验证所接收到的各个节点服务器的第三中介数据和第四中介数据是否满足以下所示的数据关系:∑i∈STi=∑i∈SAi。在确定不满足上述数据关系的情况下,终止后续的数据处理。在确定满足上述数据关系的情况下,认为第一节点服务器所负责的第四验证通过。
按照相同的方式,其他节点服务器可以分别进行己方所负责的第四验证。在各个节点服务器所负责的第四验证都通过的情况下,确定第四验证通过,进而可以继续后续的数据处理。相反,在各个节点服务器所负责的第四验证中至少出现一个不通过的情况下,确定第四验证未通过,可以终止后续的数据处理。
在本实施例中,在确定第四验证通过的情况下,第一节点服务器可以对外广播第一节点服务器的第二签名的分量数据。同时,其他节点服务器可以对外广播己方的第二签名的分量数据。
相应的,其他节点服务器可以获取第一节点服务器所广播的第二签名的分量数据,第一节点服务器可以获取其他节点服务器广播的第二签名的分量数据。
进一步的,第一节点服务器可以按照以下算式,根据所述第一节点服务器的第二签名的分量数据、其他节点服务器广播的第二签名的分量数据,来生成目标信息的目标数字签名中的第二部分签名:
s=∑i∈Ssi
其中,s为第二部分签名。
按照相同的方式,其他节点服务器可以分别生成相应的第二部分签名。可以参阅图3中的Phase5。
S207:根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
在本实施例中,第一节点服务器可以根据第一部分签名和第二部分签名通过组合,得到完整的数字签名,例如(r,s)作为目标信息的目标数字签名。
进一步,第一节点服务器可以将该目标数字签名设置在目标信息上。
在本实施例中,具体实施时,也可以是其他节点服务器按照上述方式生成目标数字签名,进一步可以将目标数字签名设置目标信息上。
在本实施例中,基于该方法,多个节点服务器在进行联合签名时,参与联合签名的多个节点服务器中的任意一个第一节点服务器可以先生成第一随机数、第二随机数和第一临时私钥;再根据综合了ElGamal加密算法和类群加密算法的预设的协议规则,利用上述数据与其他节点服务器进行多次的数据交互与验证,以分次生成目标信息的目标数字签名中的第一部分签名和第二部分签名,进而可以得到关于目标信息的完整的目标数字签名。从而能在不泄露各个节点服务器所各自持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。有效地解决了现有方法在进行多方门限联合签名时存在的计算量大、处理效率低、通信带宽大,存在安全性风险的技术问题。
在一个实施例中,上述响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥,具体实施时,可以包括以下内容:
S1:响应联合签名请求,在确定参与联合签名的情况下,生成并对外广播确认信息;
S2:接收其他节点服务器广播的确认信息;
S3:统计广播确认信息的节点服务器的数量;
S4:在确定广播确认信息的节点服务器的数量大于预设的门限阈值的情况下,生成第一随机数、第二随机数和第一临时私钥。
在本实施例中,在确定广播确认信息的节点服务器的数量大于预设的门限阈值(例如t)的情况下,确定确认参与联合签名的数量是有效的,进而可以将发出确认信息的节点服务器划分为一个节点服务器集合,记为D,触发进行后续的数据处理。相反,在广播确认信息的节点服务器的数量小于或等于预设的门限阈值的情况下,确定确认参与联合签名的数量是无效的,不触发后续的数据处理。
在一个实施例中,在响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥之前,在秘钥生成阶段,具体可以参阅图4。所述方法具体实施时,还可以包括以下内容。
S1:根据预设的协议规则,生成第一公钥、第一私钥、第一部分签名私钥和第一部分签名公钥。
在一个实施例中,所述第一公钥具体可以包括:基于ElGamal加密算法的公钥数据和基于类群加密算法的公钥数据;所述第一私钥具体可以包括:基于ElGamal加密算法的私钥数据和基于类群加密算法的私钥数据。
在本实施例中,具体实施时,第一节点服务器可以根据预设的协议规则,同时利用ElGamal加密算法和类群加密算法来生成分别包含有两种公钥数据和两种私钥数据的公私钥对,可以记为(pki,ski)。其中,ski为第一私钥,pki为第一公钥。
进一步,节点服务器从抽取随机数作为第一部分签名私钥ui,例如,ui←Zq。此外,第一节点服务器可以根据第一部分签名私钥,生成对应的第一部分签名公钥Qi,例如,按照以下算式计算第一部分签名公钥:Qi=uiP。其中,P椭圆曲线上阶为素数的生成元。
按照相同的方式,其他节点服务器可以分别生成第一公钥、第一私钥、第一部分签名私钥和第一部分签名公钥。
S2:生成并对外广播包含有关于第一部分签名公钥的第一部分承诺文件和第一公钥的第三数据组。
在本实施例中,第一节点服务器可以生成关于第一部分签名公钥的第一部分承诺文件kgci。具体的,例如,kgci←Com(uiP)。进一步,可以组合第一部分承诺文件和第一公钥,得到第三数据组,例如,(pki,kgci)。并对外广播上述第三数据组。
按照类似的方式,其他节点服务器可以生成并对外广播第三数据组。
S3:在确定接收到其他节点服务器广播的第三数据组的情况下,打开第一部分承诺文件,以使其他节点服务器获取第一节点服务器的第一部分签名公钥。
在本实施例中,第一节点服务器可以接收到其他节点服务器广播的第三数据组,相应的,其他节点服务器可以接收到第一节点服务器广播的第三数据组。
在本实施例中,第一节点服务器在接收到其他节点服务器广播的第三数据组后,可以打开己方的第一部分承诺文件,使得其他节点服务器可以获取第一节点服务器的第一部分签名公钥。相应的,其他节点服务器可以打开己方的第一部分承诺文件,使得第一节点服务器可以获取其他节点服务器的第一部分签名公钥。
S4:获取并根据其他节点服务器的第一部分签名公钥进行第五验证。
在本实施例中,第一节点服务器可以根据所获取的其他节点服务器的第一部分签名公钥对其他节点服务器之前广播的第三数据组中的第一部分承诺文件进行验证,以确定第一部分承诺文件是否准确,在检测到不准确时,终止后续的数据处理;在检测到所有的第一部分承诺文件都准确时,确定第一节点服务器所负责的第五验证通过。
按照相同的方式,其他节点服务器可以分别执行所负责的第五验证。
在确定所有节点服务器所负责的第五验证通过的情况下,确定第五验证通过,继续后续的数据处理。相反,如果确定存在至少一个节点服务器所负责的第五验证未通过的情况下,确定第五验证未通过,终止后续的数据处理。从而保护秘钥生成阶段中参与方的数据安全。
在第五验证通过的情况下,第一节点服务器可以按照以下算式,根据其他节点服务器的第一部分签名公钥,生成得到签名公钥Q:Q=∑i∈[n]Qi。
按照相同的方式,其他节点服务器也可以计算得到相同的签名公钥Q。
S5:在确定第五验证通过的情况下,根据预设的协议规则、预设的门限阈值、第一部分签名公钥生成第一节点服务器的门限分片私钥和门限分片公钥,并对外广播门限分片公钥。
在一个实施例中,上述根据预设的协议规则、预设的门限阈值、第一部分签名公钥生成第一节点服务器的门限分片私钥和门限分片公钥,具体实施时,可以包括以下内容。
S5-1:根据预设的协议规则,构建次数为预设的门限阈值的目标多项式。
在本实施例中,第一节点服务器可以按照以下方式构建目标多项式:
pi(X)=ui+σk∈[t]ai,kXkmodq
其中,系数ai,k为随机抽取的数值,q为素数,X为未知数。
S5-2:根据所述目标多项式,与其他节点服务器进行交互,以获取其他节点服务器针对第一节点服务器的门限参数。
在本实施例中,第一节点服务器可以根据上述目标多项式,针对其他节点服务器中的各个节点服务器分别生成所对应的门限参数;再通过与该节点服务器的两方信道将该门限参数发送给该节点服务器。
具体的,以第一节点服务器生成编号为j的当前节点服务器的门限参数为例,可以令X取值为j,计算目标多项式的数值,作为与当前节点服务器对应的门限参数,例如,σi,j=pi(j)。再将上述门限参数σi,j通过两方信道单独发送给当前节点服务器。可以参阅图4所示。
按照相同的方式,各个节点服务器可以分别生成门限参数,并将门限参数发送给对应的节点服务器。
在本实施例中,第一节点服务器还可以根据目标多项式按照以下方式计算验证参数:Vi,k=ai,kP,并构建得到验证参数序列:{Vi,k}k∈[t],并对外广播上述验证参数序列。
相应的,其他节点服务器可以按照相同的方式构建并对外广播验证参数序列。
S5-3:根据其他节点服务器针对第一节点服务器的门限参数,生成第一节点服务器的门限分片私钥。
在本实施例中,第一节点服务器可以接收到其他节点服务器发送的门限参数,相应的,其他节点服务器可以接收到第一节点服务器发送的门限参数。
在本实施例,在生成门限分片私钥之前,还可以根据所接收到的验证参数序列对所接收到的门限参数进行验证。
按照上述方式,第一节点服务器和其他节点服务器如果发现至少存在一个门限参数不准确,则验证不通过,可以终止后续的数据处理。相反,如果确定所有的门限参数都准确,则验证通过,可以进行后续的数据处理。
在本实施例中,具体实施时,第一节点服务器在确定验证通过的情况下,可以按照以下算式来生成第一节点服务器的门限分片私钥(可以记为xi):xi=∑i∈[n]σk.i。
按照相同的方式,其他节点服务器可以分别生成各自的门限分片私钥。其中,上述门限分片私钥由生成的节点服务器自己保管,不对外公开。
S5-4:根据所述第一节点服务器的门限分片私钥,生成第一节点服务器的门限分片公钥。
在本实施例中,第一节点服务器具体实施时,可以按照以下算式生成对应的门限分片公钥:Xi=xiP。
进一步,第一节点服务器还可以生成关于门限分片公钥的NIZK证明文件,作为门限分片公钥的证明文件,记为πk,g,i。进而,第一节点服务器可以对外广播门限分片公钥和门限分片公钥的证明文件。其中,该门限分片公钥的证明文件用于证明存在一个对应的门限分片私钥xi使得Xi=xiP成立。
按照相同的方式,其他节点服务器可以生成并对外广播各自的门限分片公钥和门限分片公钥的证明文件。
这样各个节点服务器可以接收得到所有节点服务器的门限分片公钥和门限分片公钥的证明文件。
进一步,各个节点服务器可以根据所接收到的门限分片公钥和门限分片公钥的证明文件进行验证,以验证所接收到的所有的门限分片公钥和门限分片公钥的证明文件是否准确。如果存在至少一个不准确,则验证不通过,终止后续的数据处理,如果全都准确,则验证通过。
通过上述实施例,签名群体中的各个节点服务器可以分别获得并持有引入了多方门限签名技术的门限分片私钥,以及其他节点服务器的门限分片公钥。其中,大于预设的门限阈值个数个节点服务器的门限分片公钥可以组合得到一个完整的签名公钥Q。
在一个实施例中,在完成上述秘钥生成阶段,进入数字签名阶段之前,还可以进行以下所述的预处理。
以第一节点服务器的预处理为例,可以先按照以下算式计算第一节点服务器的安全参数λi:λi=Πj∈S,j≠i(-j)/Πj∈S,j≠i(i-j)。
进一步,可以利用安全参数,以及门限分片私钥和门限分片公钥计算以下所示的算式:Wk=λkXk,k∈S,以及wi=λixi。其中,S中所包含的节点服务器的数量大于预设的门限阈值t。
由于,{Xk}k∈S是对外公开的,但是门限分片私钥是对外保密的,因此,第一节点服务器只知道自己所持有的门限分片私钥xi。相应的,第一节点服务器可以计算得到以下关系数据:{Xk}k∈S和wi。其中,上述关系数据又满足以下的门限签名关系:∑k∈SWk=Q。
当然,其他节点服务器也可以按照上述方式进行预处理,得到上述关系数据。
通过上述预处理,可以使得参与联合签名的各个节点服务器分别拥有仅己方持有的门限分片私钥,以及满足门限签名关系的各个节点服务器的门限分片公钥,从而可以为后续的数字签名做好准备。
由上可见,本说明书实施例提供的数字签名的生成方法,基于该方法,多个节点服务器在进行联合签名时,参与联合签名的多个节点服务器中的任意一个第一节点服务器可以先生成第一随机数、第二随机数和第一临时私钥;再根据综合了ElGamal加密算法和类群加密算法的预设的协议规则,利用上述数据与其他节点服务器进行多次的数据交互与验证,以分次生成目标信息的目标数字签名中的第一部分签名和第二部分签名,进而可以得到关于目标信息的完整的目标数字签名。从而能在不泄露各个节点服务器所各自持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。有效地解决了现有方法在进行多方门限联合签名时存在的计算量大、处理效率低、通信带宽大,存在安全性风险的技术问题。
本说明书实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息;根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
为了能够更加准确地完成上述指令,参阅图5所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口501、处理器502以及存储器503,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。
其中,所述网络通信端口501,具体可以用于接收联合签名请求;其中,所述联合签名请求至少携带有待签名的目标信息。
所述处理器502,具体可以用于响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
所述存储器503,具体可以用于存储相应的指令程序。
在本实施例中,所述网络通信端口501可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的端口,也可以是负责进行FTP数据通信的端口,还可以是负责进行邮件数据通信的端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施例中,所述处理器502可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。
在本实施例中,所述存储器503可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
本说明书实施例还提供了一种基于上述数字签名的生成方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息;根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
在本实施例中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
参阅图6所示,在软件层面上,本说明书实施例还提供了一种数字签名的生成装置,该装置具体可以包括以下的结构模块。
第一生成模块601,具体可以用于响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息;
第一处理模块602,具体可以用于根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
广播模块603,具体可以用于对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;
第二处理模块604,具体可以用于根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;
第三处理模块605,具体可以用于根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;
第四处理模块606,具体可以用于根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;
第二生成模块607,具体可以用于根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
由上可见,本说明书实施例提供的数字签名的生成装置,能在不泄露各个节点服务器所各自持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。解决现有方法在进行多方门限联合签名时存在的计算量大、处理效率低、通信带宽大,存在安全性风险的技术问题。
在一个具体的场景示例中,可以应用本说明提供的数字签名的生成方法来实现基于类群加密的多方门限ECDSA签名。
在本场景示例中,共有n个成员(例如,节点服务器)的签名群体,在不泄漏各自私钥的情况下,当至少有t+1个诚实的参与方时,可以安全高效地完成对消息的合法签名。
基于现有方法,例如,[CCL+20]基于类群加密实现了一种多方门限ECDSA签名方案,但需要依赖更强的和非标准的假设。
而在本场景示例中,应用本说明书的提供的数字签名的生成方法,参考了[CCL+20]和[GG18]的整体协议框架,简化了[CCL+20]方案中交互的初始化过程,并使用PromiseSigma协议(即,预设的协议规则)来代替[CCL+20]中类群密文有效性证明,可以解决其性能瓶颈,降低数据处理量,提高数据处理效率,高效地实现多方门限联合签名。
在本场景示例中所使用的Promise Sigma协议是一种明文相等的Promise Sigma协议。
其中,明文相等具体可以是指:类群加密明文与ElGamal加密明文相等。明文相等的Promise Sigma协议正式的语言描述如下:
具体的协议执行过程可以参阅图7所示。
在本场示例中,在通过执行协议实现相应的数据处理的过程中,还可以使用Fiat-Shamir启发式将上述交互式协议转化为非交互协议。
在基于上述协议实现多方门限ECDSA签名时,具体可以分为两个阶段:秘钥生成阶段和签名阶段。
在秘钥生成阶段,参阅图4所示,可以根据上述协议生成多方门限ECDSA签名所需要的每个参与方的公私钥对、签名公钥,以及每个签名参与方的签名私钥的分享(share)。具体的在本场景示例中,是一个(t,n)-门限方案,一共有n个参与方,当超过t个参与方同意,则可以生成一个有效签名。具体过程可以包括公共签名公钥Q(例如,签名公钥)的生成;以及公共签名公钥门限分片(例如,门限分片公钥)的生成。
在签名阶段,参阅图3所示,可以先进行预处理,在使用秘钥生成阶段中生成的信息对目标信息m进行签名。具体过程可以包括签名随机数的生成及加密;密文同态运算,密文解密和校验(例如,验证);以及签名(例如,目标数字签名)的生成。
通过上述场景示例,验证了本说明书提供的方案对比[CCL+20]方案,可以消除了其对更强的假设和非标准假设的依赖,且在计算效率和通信带宽的性能表现上均有不同程度的提升。具体的,本方案无需复杂交互的初始化过程。在签名阶段,对比对效率影响最大的类群上指数操作,[CCL+20]需要8t+16个,本方案仅需要4t+10个。因此,具有更高的效率。
可见,本方案提供了一种新的协议--Promise Sigma协议,并应用于数字签名方案中,设计出了一种安全高效的多方门限ECDSA签名方案。对比已有方案,能大幅提升了计算效率,且消除了已有方案对更强的假设和非标准假设的依赖。
虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
Claims (16)
1.一种数字签名的生成方法,其特征在于,所述方法应用于多个节点服务器中的第一节点服务器,所述方法包括:
响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息;
根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;所述类群加密算法包括针对多个群体成员共同参与以协助处理数据的体制所设计的数据加密算法;
对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;
根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;
根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;
根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;
根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
2.根据权利要求1所述的方法,其特征在于,根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据,包括:
根据预设的协议规则、所述其他节点服务器广播的第一数据组,生成并向所述其他节点服务器中的各个节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据;并接收所述其他节点服务器生成并发送的与第一节点服务器相对应的第一类参数数据、第二密文数据和第三密文数据;
解密所接收到的第二密文数据和第三密文数据,得到与其他节点服务器分别对应的第二类参数据和第三类参数数据;
根据预设的协议规则,利用第一随机数、其他节点服务器的门限分片公钥,以及与其他节点服务器对应的第二类参数数据和第三类参数数据进行第一验证;
在确定第一验证通过的情况下,利用第一随机数、第一临时私钥,以及与其他节点服务器对应的第二类参数数据和第三类参数数据,生成第一节点服务器的第一中间数据和第二中间数据;
对外广播所述第一中间数据;并接收其他节点服务器广播的第一中间数据;
根据第一节点服务器的第一中间数据和其他节点服务器广播的第一中间数据,生成第三中间数据。
3.根据权利要求2所述的方法,其特征在于,根据预设的协议规则、所述其他节点服务器广播的第一数据组,生成并向所述其他节点服务器中的各个节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据,包括:
根据预设的协议规则,按照以下方式生成并向所述其他节点服务器中的当前节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据:
生成针对当前节点服务器的第三随机数、第四随机数,并根据所述第四随机数,生成与当前节点服务器对应的第一类参数数据;
根据预设的协议规则和所述其他节点服务器广播的第一数据组,利用当前节点服务器广播的第一密文数据,通过同态加密处理,得到与当前节点服务器对应的第二密文数据和第三密文数据;
将至少包含有与当前节点服务器对应的第一类参数数据、第二密文数据和第三密文数据的第二数据组发送至当前节点服务器。
4.根据权利要求1所述的方法,其特征在于,根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名,包括:
根据预设的协议规则,打开第一临时承诺文件,以使其他节点服务器获取第一节点服务器的第一临时公钥;
生成并对外广播关于所述第一临时公钥的第一临时证明文件;
获取其他节点服务器的第一临时公钥,以及其他节点服务器广播的第一临时证明文件;
根据所述其他节点服务器的第一临时公钥,以及其他节点服务器广播的第一临时证明文件,进行第二验证;
在确定第二验证通过的情况下,根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,生成目标信息的目标数字签名中的第一部分签名。
5.根据权利要求4所述的方法,其特征在于,根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,生成目标信息的目标数字签名中的第一部分签名,包括:
根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,计算第一目标数据;
确定出第一目标数据的横坐标值,作为所述第一部分签名。
6.根据权利要求5所述的方法,其特征在于,根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,计算第一目标数据,包括:
按照以下算式计算第一目标数据:
R=δ-1(∑j∈SΓj)
其中,R为第一目标数据,δ为第三中间数据,Γj为编号为j的节点服务器的第一临时公钥,j为节点服务器的编号,S为参与联合签名的节点服务器的集合。
7.根据权利要求1所述的方法,其特征在于,根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名,包括:
根据第一随机数、目标信息、第二中间数据和第一部分签名,构建第一节点服务器的第二签名的分量数据;
根据预设的协议规则,利用第二签名的分量数据、第一部分签名,构造第一中介数据和第二中介数据;
生成并对外广播关于所述第一中介数据和第二中介数据的第一中介承诺文件;
在确定接收到其他节点服务器广播的第一中介承诺文件的情况下,打开第一中介承诺文件,以使其他节点服务器获取第一节点服务器的第一中介数据和第二中介数据;
生成并对外广播关于所述第一中介数据和第二中介数据的第一中介证明文件;
获取其他节点服务器的第一中介数据和第二中介数据,以及其他节点服务器广播的第一中介证明文件;
根据所述其他节点服务器的第一中介数据和第二中介数据,以及其他节点服务器广播的第一中介证明文件,进行第三验证;
在确定第三验证通过的情况下,对外广播第一节点服务器的第二签名的分量数据;并接收其他节点服务器广播的第二签名的分量数据;
根据所述第一节点服务器的第二签名的分量数据、其他节点服务器广播的第二签名的分量数据,生成目标信息的目标数字签名中的第二部分签名。
8.根据权利要求7所述的方法,其特征在于,在确定第三验证通过之后,所述方法还包括:
根据预设的协议规则,利用第二签名的分量数据、第一部分签名、签名公钥、第一中介数据和第二中介数据,构造第三中介数据和第四中介数据;
生成并对外广播关于所述第三中介数据和第四中介数据的第二中介承诺文件;
在确定接收到其他节点服务器广播的第二中介承诺文件的情况下,打开第二中介承诺文件,以使其他节点服务器获取第一节点服务器的第三中介数据和第四中介数据;
获取其他节点服务器的第三中介数据和第四中介数据;
根据所述其他节点服务器的第三中介数据和第四中介数据,以及第一节点服务器的第三中介数据和第四中介数据,进行第四验证;
相应的,
在确定第四验证通过的情况下,对外广播第一节点服务器的第二签名的分量数据;并接收其他节点服务器广播的第二签名的分量数据。
9.根据权利要求7所述的方法,其特征在于,根据第一随机数、目标信息、第二中间数据和第一部分签名,构建第一节点服务器的第二签名的分量数据,包括:
按照以下算式,构建第一节点服务器的第二签名的分量数据:
si=kim+σir
其中,si为第一节点服务器的第二签名的分量数据,i为第一节点服务器的编号,ki为第一节点服务器的第一随机数,m为目标信息,σi为第一节点服务器的第二中间数据,r为第一部分签名。
10.根据权利要求1所述的方法,其特征在于,响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥,包括:
响应联合签名请求,在确定参与联合签名的情况下,生成并对外广播确认信息;
接收其他节点服务器广播的确认信息;
统计广播确认信息的节点服务器的数量;
在确定广播确认信息的节点服务器的数量大于预设的门限阈值的情况下,生成第一随机数、第二随机数和第一临时私钥。
11.根据权利要求1所述的方法,其特征在于,在响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥之前,所述方法还包括:
根据预设的协议规则,生成第一公钥、第一私钥、第一部分签名私钥和第一部分签名公钥;
生成并对外广播包含有关于第一部分签名公钥的第一部分承诺文件和第一公钥的第三数据组;
在确定接收到其他节点服务器广播的第三数据组的情况下,打开第一部分承诺文件,以使其他节点服务器获取第一节点服务器的第一部分签名公钥;
获取并根据其他节点服务器的第一部分签名公钥进行第五验证;
在确定第五验证通过的情况下,根据预设的协议规则、预设的门限阈值、第一部分签名公钥生成第一节点服务器的门限分片私钥和门限分片公钥,并对外广播门限分片公钥。
12.根据权利要求11所述的方法,其特征在于,所述第一公钥包括:基于ElGamal加密算法的公钥数据和基于类群加密算法的公钥数据;所述第一私钥包括:基于ElGamal加密算法的私钥数据和基于类群加密算法的私钥数据。
13.根据权利要求11所述的方法,其特征在于,根据预设的协议规则、预设的门限阈值、第一部分签名公钥生成第一节点服务器的门限分片私钥和门限分片公钥,包括:
根据预设的协议规则,构建次数为预设的门限阈值的目标多项式;
根据所述目标多项式,与其他节点服务器进行交互,以获取其他节点服务器针对第一节点服务器的门限参数;
根据其他节点服务器针对第一节点服务器的门限参数,生成第一节点服务器的门限分片私钥;
根据所述第一节点服务器的门限分片私钥,生成第一节点服务器的门限分片公钥。
14.一种数字签名的生成装置,其特征在于,包括:
第一生成模块,用于响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息;
第一处理模块,用于根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;所述类群加密算法包括针对多个群体成员共同参与以协助处理数据的体制所设计的数据加密算法;
广播模块,用于对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;
第二处理模块,用于根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;
第三处理模块,用于根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;
第四处理模块,用于根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;
第二生成模块,用于根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
15.一种服务器,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至13中任一项所述方法的步骤。
16.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述指令被执行时实现权利要求1至13中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011407003.9A CN112417489B (zh) | 2020-12-04 | 2020-12-04 | 数字签名的生成方法、装置和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011407003.9A CN112417489B (zh) | 2020-12-04 | 2020-12-04 | 数字签名的生成方法、装置和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112417489A CN112417489A (zh) | 2021-02-26 |
CN112417489B true CN112417489B (zh) | 2022-09-30 |
Family
ID=74829157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011407003.9A Active CN112417489B (zh) | 2020-12-04 | 2020-12-04 | 数字签名的生成方法、装置和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112417489B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822026B (zh) * | 2021-04-22 | 2021-09-17 | 北京信安世纪科技股份有限公司 | 数字签名方法、装置及系统 |
CN113987594A (zh) * | 2021-10-26 | 2022-01-28 | 深圳前海微众银行股份有限公司 | 一种区块链签名管理方法及装置 |
CN114499871B (zh) * | 2021-12-23 | 2024-01-09 | 成都卫士通信息产业股份有限公司 | 一种签名加密方法、装置、系统及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109547199A (zh) * | 2018-11-19 | 2019-03-29 | 武汉大学 | 一种多方联合生成sm2数字签名的方法 |
CN110289968A (zh) * | 2019-06-27 | 2019-09-27 | 矩阵元技术(深圳)有限公司 | 私钥恢复、协同地址的创建、签名方法及装置、存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107707358B (zh) * | 2017-10-30 | 2019-12-24 | 武汉大学 | 一种ec-kcdsa数字签名生成方法及系统 |
CN109547212B (zh) * | 2018-12-04 | 2021-06-18 | 中国电子科技集团公司第三十研究所 | 一种基于sm2签名算法的门限签名方法 |
-
2020
- 2020-12-04 CN CN202011407003.9A patent/CN112417489B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109547199A (zh) * | 2018-11-19 | 2019-03-29 | 武汉大学 | 一种多方联合生成sm2数字签名的方法 |
CN110289968A (zh) * | 2019-06-27 | 2019-09-27 | 矩阵元技术(深圳)有限公司 | 私钥恢复、协同地址的创建、签名方法及装置、存储介质 |
Non-Patent Citations (3)
Title |
---|
"On the Security of Classic Protocols for Unique Witness Relations";Yi Deng et al;《PKC 2018. Lecture Notes in Computer Science》;20180301;589-615 * |
移动互联网环境下轻量级SM2两方协同签名;冯琦等;《计算机研究与发展》;20201009(第10期);130-140 * |
适用于Ad hoc网络的ElGamal型门限数字签名方案;胡荣磊等;《北京航空航天大学学报》;20090615(第06期);732-736 * |
Also Published As
Publication number | Publication date |
---|---|
CN112417489A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Miao et al. | Secure multi-server-aided data deduplication in cloud computing | |
Zhang et al. | Efficient ID-based public auditing for the outsourced data in cloud storage | |
Worku et al. | Secure and efficient privacy-preserving public auditing scheme for cloud storage | |
Wang et al. | Certificateless public auditing for data integrity in the cloud | |
CN114586313B (zh) | 用于签署一信息的系统及方法 | |
CN112417489B (zh) | 数字签名的生成方法、装置和服务器 | |
CN112106322A (zh) | 基于密码的阈值令牌生成 | |
EP2792098B1 (en) | Group encryption methods and devices | |
CN112436938B (zh) | 数字签名的生成方法、装置和服务器 | |
Liu et al. | Public data integrity verification for secure cloud storage | |
Song et al. | SIPF: A secure installment payment framework for drive-thru internet | |
Tian et al. | Secure limitation analysis of public-key cryptography for smart card settings | |
WO2022089865A1 (en) | Identifying denial-of-service attacks | |
Tian | A new strong multiple designated verifiers signature | |
WO2022116175A1 (zh) | 数字签名的生成方法、装置和服务器 | |
Abusukhon et al. | An authenticated, secure, and mutable multiple‐session‐keys protocol based on elliptic curve cryptography and text‐to‐image encryption algorithm | |
WO2022116176A1 (zh) | 数字签名的生成方法、装置和服务器 | |
Worku et al. | Cloud data auditing with designated verifier | |
Shin et al. | A verifier-based password-authenticated key exchange using tamper-proof hardware | |
Chen et al. | Blockchain as a CA: A provably secure signcryption scheme leveraging blockchains | |
Kaaniche et al. | SHoPS: Set homomorphic proof of data possession scheme in cloud storage applications | |
Lee et al. | Toward a secure single sign-on mechanism for distributed computer networks | |
Li et al. | Certificateless identity-concealed authenticated encryption under multi-KGC | |
Ricci et al. | Privacy-enhancing group signcryption scheme | |
Zhao et al. | A secure dynamic cross-chain decentralized data consistency verification model |
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 |