CN112737777B - 基于密钥的门限签名和验签方法、装置、设备和介质 - Google Patents
基于密钥的门限签名和验签方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN112737777B CN112737777B CN202011599659.5A CN202011599659A CN112737777B CN 112737777 B CN112737777 B CN 112737777B CN 202011599659 A CN202011599659 A CN 202011599659A CN 112737777 B CN112737777 B CN 112737777B
- Authority
- CN
- China
- Prior art keywords
- signature
- signed
- node
- abelian group
- verification
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/3255—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 group based signatures, e.g. ring or threshold signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种基于密钥的门限签名和验签方法、装置、设备和介质,涉及计算机加密技术和区块链技术领域,可用于云计算领域。具体实现方案为:将待签名数据转换为第一阿贝尔群的元素,作为待签名元素;根据本机节点的单机私钥和待签名元素,生成本机节点的签名碎片;将各个实际参与节点的签名碎片进行累加,以生成总签名,其中,所述总签名属于第二阿贝尔群的元素;将各个实际参与节点的节点编号,与所述总签名一起封装为所述待签名数据的签名结果。本申请能够提高密钥生成的安全性及隐私性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及计算机加密技术和区块链技术领域,具体涉及一种基于密钥的门限签名和验签方法、装置、设备和介质。
背景技术
随着计算机所处理业务的复杂度提升,已经大量出现了需要多个参与方协作来完成的业务。在多方业务中,可采用多方安全计算技术来保证各个参与方之间进行协作来完成任务的计算。多方安全计算技术中会采用门限签名技术来保证数据交互的安全性。
门限签名技术是密码学签名领域的一个前沿技术方向。在门限签名技术中,各参与方所采用的密钥,是进行签名的关键技术。现有门限签名技术往往采用中心化密钥生成方式,这在一定程度上会降低密钥的安全性。
发明内容
本公开提供了一种基于密钥的门限签名和验签方法、装置、设备和介质。
根据本公开的一方面,提供了一种基于密钥的门限签名方法,由多方节点中的任一节点执行,每个节点分别包括各自的单机私钥和单机公钥,所述方法包括:
将待签名数据转换为第一阿贝尔群的元素,作为待签名元素;
根据本机节点的单机私钥和待签名元素,生成本机节点的签名碎片;
将各个实际参与节点的签名碎片进行累加,以生成总签名,其中,所述总签名属于第一阿贝尔群的元素;
将各个实际参与节点的节点编号,与所述总签名一起封装为所述待签名数据的签名结果。
根据本公开的另一方面,提供了一种基于密钥的门限签名验签方法,由多方节点中的任一节点执行,每个节点分别包括各自的单机私钥和单机公钥,所述签名结果为本公开实施例任一项所述的基于密钥的门限签名方法所生成的,所述验签方法包括:
获取待验签数据,并根据所述签名结果确定的实际参与节点获取各所述实际参与节点的单机公钥;
获取待验签数据和签名结果,从所述签名结果中获取总签名和实际参与节点的节点编号;
将所述待签名数据基于第一转换函数转换为第一阿贝尔群的元素,作为待签名元素;
根据所述节点编号获取实际参与节点各自的单机公钥;
将各所述单机公钥基于第二转换函数转换为第二阿贝尔群的元素,作为单机公钥元素;
基于双线性映射函数,将所述实际参与节点的单机公钥元素和所述待签名元素,转换为第三阿贝尔群的元素,作为第一验证元素;
基于所述双线性映射函数,将所述总签名转换为第三阿贝尔群的元素,作为第二验证元素;
如果所述第一验证元素和第二验证元素匹配,则所述签名结果验证通过。
根据本公开的一方面,提供了一种基于密钥的门限签名装置,配置于多方节点中的任一节点,每个节点分别包括各自的单机私钥和单机公钥,所述装置包括:
待签名元素确定模块,用于将待签名数据转换为第一阿贝尔群的元素,作为待签名元素;
本机节点的签名碎片生成模块,用于根据本机节点的单机私钥和待签名元素,生成本机节点的签名碎片;
总签名生成模块,用于将各个实际参与节点的签名碎片进行累加,以生成总签名,其中,所述总签名属于第一阿贝尔群的元素;
签名结果确定模块,用于将各个实际参与节点的节点编号,与所述总签名一起封装为所述待签名数据的签名结果。
根据本公开的一方面,提供了一种基于密钥的门限签名验签装置,配置于多方节点中的任一节点,每个节点分别包括各自的单机私钥和单机公钥,所述签名结果为本公开实施例任一项所述的基于密钥的门限签名方法所生成的,所述验签装置包括:
数据获取模块,用于获取待验签数据,并根据所述签名结果确定的实际参与节点获取各所述实际参与节点的单机公钥;
待验签数据和签名结果获取模块,用于获取待验签数据和签名结果,从所述签名结果中获取总签名和实际参与节点的节点编号;
待签名元素确定模块,用于将所述待签名数据基于第一转换函数转换为第一阿贝尔群的元素,作为待签名元素;
单机公钥获取模块,用于根据所述节点编号获取实际参与节点各自的单机公钥;
单机公钥元素确定模块,用于将各所述单机公钥基于第二转换函数转换为第二阿贝尔群的元素,作为单机公钥元素;
第一验证元素确定模块,用于基于双线性映射函数,将所述实际参与节点的单机公钥元素和所述待签名元素,转换为第三阿贝尔群的元素,作为第一验证元素;
第二验证元素确定模块,用于基于所述双线性映射函数,将所述总签名转换为第三阿贝尔群的元素,作为第二验证元素;
第一验证元素和第二验证元素匹配模块,用于如果所述第一验证元素和第二验证元素匹配,则所述签名结果验证通过。
根据本公开的一方面,提供了一种电子设备,该电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本公开实施例中任一项所述的基于密钥的门限签名方法或者基于密钥的门限签名验签方法。
根据本公开的一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本公开实施例中任一项所述的基于密钥的门限签名方法或者基于密钥的门限签名验签方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如本公开实施例中任一项所述的基于密钥的门限签名方法或者基于密钥的门限签名验签方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的一种基于密钥的门限签名方法的流程示意图;
图2是根据本公开实施例的另一种基于密钥的门限签名方法的流程示意图;
图3是根据本公开实施例的一种基于密钥的门限签名验签方法的流程示意图;
图4是根据本公开实施例的另一种基于密钥的门限签名验签方法的流程示意图;
图5是根据本公开实施例的又一种基于密钥的门限签名验签方法的流程示意图;
图6是根据本公开实施例提供的一种基于密钥的门限签名装置的结构示意图;
图7是根据本公开实施例提供的一种基于密钥的门限签名验签装置的结构示意图;
图8示出了可以用来实现本申请的实施例的示例电子设备的结构示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开实施例的一种基于密钥的门限签名方法的流程示意图。本实施例可适用于对密钥进行门限签名的情况,从而提高密钥生成的安全性和隐私性。本实施例公开的基于密钥的门限签名方法可以由基于密钥的门限签名装置来执行,该装置可以由软件和/或硬件的方式实现,配置于电子设备中。
门限签名中通常涉及M个潜在参与方,其中N个以上实际参与方共同进行签名即可完成签名和验签,M和N均为自然数,且M大于N。参与方也可称为参与节点,每个节点都会持有一个私钥,且私钥对应有公钥,组成非对称密钥对。
门限签名技术涉及多方节点,本申请实施例采用去中心化生成密钥和签名技术,多方节点中的每个节点均生成所属于本机节点的密钥。具体的多方节点中的每个节点生成本机节点的单机私钥和单机公钥,并确认单机节点在多方节点中的节点编号。其中,单机私钥和单机公钥可以为非对称密钥对。本公开实施例的一种基于密钥的门限签名方法可适用于对上述密钥进行门限签名。
多方参与的门限签名可应用于各种业务场景中,例如,可应用于区块链系统,由多个区块链节点共同处理事务请求的过程中,可由区块链节点作为多方节点,完成密钥生成、签名和验签的处理,本实施例以区块链应用场景为例进行说明,但本领域技术人员可以理解的是,门限签名技术并不限于区块链应用场景。
参见图1,本实施例提供的基于密钥的门限签名方法包括:
S110、将待签名数据转换为第一阿贝尔群的元素,作为待签名元素。
在一个可选的实施例中,所述待签名数据为区块链事务请求,所述多方节点中的至少一个节点为区块链节点。
其中,多方节点是指区块链中参与事务数据处理的节点,可选的,多方节点为区块链网络中用于处理设定业务或归属于设定组织的多个节点。其中,设定业务可以是银行财务业务、公司办公业务等业务。
其中,待签名元素为第一阿贝尔群的元素。值得注意的是,这里的第一阿贝尔群是为了与本公开实施例中的其他阿贝尔群予以区分,第一阿贝尔群是指阿贝尔群。
可以知道的是,阿贝尔群亦称交换群是一种重要的群类,阿贝尔群是有着群运算符合交换律性质的群,即对任意的a,b∈G都有ab=ba。因此,阿贝尔群也被称为交换群。交换群的运算常用加法来表示,阿贝尔群又称为加法群或加群。它由自身的集合G和二元运算*构成。它除了满足一般的群公理,即运算的结合律、G有单位元和所有G的元素都有逆元之外,还满足交换律公理,因为阿贝尔群的群运算满足交换律和结合律,群元素乘积的值与乘法运算时的次序无关。阿贝尔群中的元素可以是字符串、坐标值或者曲线公式。因此,多方节点各自的单机公钥的乘积的值与乘法运算时的次序无关。
可选的,本申请实施例涉及的第一阿贝尔群、第二阿贝尔群和第三阿贝尔群均为椭圆曲线的阿贝尔群,椭圆曲线中的阿贝尔群,是在在椭圆曲线上定义一个群,该群满足以下条件:1、群中的元素就是椭圆曲线上的点;2、单位元就是无穷处的点0;3、相反数P,是关于X轴对称的另一边的点;4、二元运算规则定义如下:取一条直线上的三点(这条直线和椭圆曲线相交的三点),P,Q和R(皆非零),他们的总和等于0。
将待签名数据转换为第一阿贝尔群的元素,作为待签名元素,可选的,根据阿贝尔群的特性对待签名数据和第一阿贝尔群的元素进行运算,待签名数据转换为第一阿贝尔群的元素。当然,也可以经过其他处理进行向阿贝尔群元素的转换。
S120、根据本机节点的单机私钥和待签名元素,生成本机节点的签名碎片。
其中,本机节点为多方节点之一,可以是区块链中的任一节点。在区块链上各个节点地位平等,参与事务数据处理的各节点生成各自的单机私钥和单机公钥,每个实际参与节点均采用相同的方式进行签名。单机私钥与单机公钥为本机节点生成的非对称密钥对。
其中,单机私钥是为本机节点生成,并由本机节点保存,不向外界宣示的密钥。可选的,单机私钥可以是本机节点基于随机数,按照设定生成算法生成一个字节数组或数字,根据随机数生成的,也可以是根据助记词恢复出来的。其中,助记词一般由字符串构成,几个字符之间由空格隔开,这些字符串可来源于用户的设定。
根据本机节点的单机私钥和待签名元素,生成本机节点的签名碎片,具体的,本机节点采用单机私钥对待签名元素进行签名,生成本机节点的签名碎片。本机节点采用单机私钥对待签名元素进行签名,即表示本机节点对待签名元素进行签名的本机节点已确认待签名元素的内容,并对此负责。本机节点采用单机私钥对待签名元素进行签名,得到签名碎片,签名碎片中包括本机节点的身份信息。
S130、将各个实际参与节点的签名碎片进行累加,以生成总签名,其中,所述总签名属于第二阿贝尔群的元素。
值得注意的是,并非多方节点中的每个节点都参与某次签名,即会有节点不能或不愿意参与签名。其中,实际参与节点是指多方节点中实际参与到某次签名的节点。实际签名的节点的数量小于等于多方节点的数量。与实际参与节点相对的是潜在参与节点,多方节点中的全部节点均为潜在参与节点,即多方节点中的全部节点均可能参与对待签名数据的签名。
根据门限N/M,当潜在参与节点的数量为M时,只有大于等于N个潜在参与节点作为实际参与节点,参与到签名的多方安全计算过程,使用椭圆曲线公钥的验证才能通过。
实际参与节点在对待签名元素进行签名以后,得到签名碎片。根据各实际参与节点的签名碎片生成总签名。在对待签名元素进行签名的过程中使用了多方安全计算技术,各个实际参与节点之间进行协作来完成对待签名元素的签名。具体的,各个实际参与签名的节点,根据实际参与签名节点的节点编号,将各自的签名碎片,传输给其他的实际参与及节点,实际参与节点根据本机节点和其他实际参与节点传输的单机签名值进行累加,生成总签名。
将总签名转换为第一阿贝尔群的元素,可选的,根据阿贝尔群的特性对总签名和第一阿贝尔群的元素进行运算,将总签名转换为第一阿贝尔群的元素。当然,也可以经过其他处理进行总签名向阿贝尔群元素的转换。
S140、将各个实际参与节点的节点编号,与所述总签名一起封装为所述待签名数据的签名结果。
其中,节点编号为节点的标识信息,用于区分各个实际参与节点。可选的,在将所有实际参与节点的节点编号进行封装时,将节点编号封装为编号数组I。将总签名和所有实际参与节点的节点编号,进行封装,得到的封装结果即为签名结果。
可选的,在得到待签名数据的签名结果以后,根据实际参与节点的节点编号,由最后一个实际参与节点将最终计算完成的签名结果附带在待签名数据上,并将其广播到区块链网络。其中,待签名数据可以为一次交易。
本申请实施例的技术方案,通过将双线性映射技术引入各实际参与节点参与对待签名数据签名的过程,能够在高效的完成计算过程,在交易原始信息不变的情况下,大幅降低多方签名交易的签名大小,使得在区块大小固定的情况下,提升一个区块中所能打包的交易的数量,最终完成签名结果的计算与验证,签名交互次数少,计算量少,具有很高的可用性。
图2是根据本公开实施例的另一种基于密钥的门限签名方法的流程示意图,本实施例是在上述实施例的基础上提出的一种可选方案。具体的是对根据本机节点的单机私钥和待签名元素,生成本机节点的签名碎片的细化,参见图2,本实施例提供的基于密钥的门限签名方法包括:
S210、将待签名数据转换为第一阿贝尔群的元素,作为待签名元素。
在一个可选的实施例中,将待签名数据转换为第一阿贝尔群的元素,作为待签名元素包括:将待签名数据基于第一转换函数F1()乘以第一阿贝尔群的基点,以转换为第一阿贝尔群的元素,作为待签名元素。
将待签名数据基于第一转换函数乘以第一阿贝尔群的基点,得到的乘积为第一阿贝尔群的元素,该乘积为第一阿贝尔群的非基点元素。
S220、将所述单机私钥,基于第三转化函数转换为设定大整数。
其中,第三转化函数F3()是用于将单机私钥转化为设定大整数的函数。
其中,大整数又称为高精度整数,其含义就是用基本数据类型无法存储其精度的整数,是基于椭圆曲线转换获得私钥中所使用的设定整数。
S230、将单机私钥大整数,与所述待签名元素相乘,以生成本机节点的签名碎片。
将单机私钥大整数,与所述待签名元素相乘,得到的乘积作为本机节点的签名碎片。
S240、将各个实际参与节点的签名碎片进行累加,以生成总签名,其中,所述总签名属于第一阿贝尔群的元素。
S250、将各个实际参与节点的节点编号,与所述总签名一起封装为所述待签名数据的签名结果。
本申请实施例的技术方案,通过将双线性映射技术引入各实际参与节点参与对待签名数据签名的过程,能够在高效的完成计算过程,在交易原始信息不变的情况下,大幅降低多方签名交易的签名大小,使得在区块大小固定的情况下,提升一个区块中所能打包的交易的数量,最终完成签名结果的计算与验证,签名交互次数少,计算量少,具有很高的可用性。
图3是根据本申请实施例提供的一种基于密钥的门限签名验签方法的流程示意图。本实施例可适用于对本申请任一实施例所述基于密钥的门限签名方法生成签名结果进行验签的情况,从而提高门限签名验签的安全性。本实施例公开的基于密钥的门限签名验签方法可以由基于密钥的门限签名验签装置来执行,该装置可以由软件和/或硬件的方式实现,配置于电子设备中。
参见图3,本实施例提供的基于密钥的门限签名验签方法包括:
S310、获取待验签数据,并根据所述签名结果确定的实际参与节点获取各所述实际参与节点的单机公钥。
其中,待验签数据可以为基于区块链网络协议发起的事务请求,或者也可以为其他采用门限签名的数据。签名结果实际参与节点根据单机私钥、待签名元素和各个实际参与节点的节点编号,采用本申请任一实施例所述的基于密钥的门限签名方法进行签名得到的。
由于,签名结果是根据所有实际参与节点的节点编号生成的,因此签名结果中包括全部实际参与节点的身份信息。由于,多方节点包括全部的实际参与节点,而每个多方节点的单机公钥是向外宣示的,区块链上的全部节点均可获得。根据签名结果可以确定的实际参与节点,进而可以获取所述实际参与节点的单机公钥。
S320、获取待验签数据和签名结果,从所述签名结果中获取总签名和实际参与节点的节点编号。
由于签名结果是实际参与节点根据单机私钥、待签名元素和各个实际参与节点的节点编号,采用本申请任一实施例所述的基于密钥的门限签名方法进行签名得到的,具体的是将各个实际参与节点的节点编号,与总签名一起封装得到的封装结果。因此,从签名结果中可以获取总签名和实际参与节点的节点编号。
S330、将所述待签名数据基于第一转换函数转换为第一阿贝尔群的元素,作为待签名元素。
其中,第一转换函数是指可以将待签名数据转换为第一阿贝尔群中元素的函数。待签名元素为与待签名数据相关的第一阿贝尔群中的元素。
在一个可选的实施例中,所述待签名数据为区块链事务请求,所述多方节点中的至少一个节点为区块链节点。其中,多方节点是指区块链中参与事务数据处理的节点,可选的,多方节点为区块链网络中用于处理设定业务或归属于设定组织的多个节点。其中,设定业务可以是银行财务业务、公司办公业务等业务。
可选的,在本申请实施例中,待签名数据与本申请是上述实施例提供的基于密钥的门限签名方法中的待签名数据一致,当然,可以理解的是,本申请实施例中的待签名数据并不限于此,可以是任一需要签名的区块链事务请求。
S340、根据所述节点编号获取实际参与节点各自的单机公钥。
由于,多方节点包括全部的实际参与节点,而每个多方节点的单机公钥是向外宣示的,区块链上的全部节点均可获得。根据签名结果可以确定的实际参与节点,进而可以获取所述实际参与节点的单机公钥。
S350、将各所述单机公钥基于第二转换函数转换为第二阿贝尔群的元素,作为单机公钥元素。
其中,第二转换函数是指可以将待签名数据转换为第二阿贝尔群中元素的函数。单机公钥元素为与单机公钥相关的第二阿贝尔群中的元素。
S360、基于双线性映射函数,将所述实际参与节点的单机公钥元素和所述待签名元素,转换为第三阿贝尔群的元素,作为第一验证元素。
其中,双线性映射函数是由两个向量空间上的元素,生成第三个向量空间上一个元素的函数,并且该函数对每个参数都是线性的。本申请实施例中涉及的第一阿贝尔群、第二阿贝尔群和第三阿贝尔群均满足双线性映射的数学特性。
其中,第一验证元素为与实际参与节点的单机公钥元素和待签名元素,相关的第三阿贝尔群的元素。
由于,单机公钥元素为第二阿贝尔群中的元素,待签名元素为第一阿贝尔群的元素,第一验证元素为第三阿贝尔群的元素。具体的,可以利用双线性映射函数的性质和各项参数所属的阿贝尔群对待签名数据的签名结果进行验签。
S370、基于所述双线性映射函数,将所述总签名转换为第三阿贝尔群的元素,作为第二验证元素。
其中,第二验证元素为与总签名相关的第三阿贝尔群中的元素
S380、如果所述第一验证元素和第二验证元素匹配,则所述签名结果验证通过。
将第一验证元素和第二验证元素进行匹配,得到匹配结果。如果第一验证元素和第二验证元素匹配成功,则签名结果验证通过;否则,则签名结果验证不通过。
本申请实施例中对签名结果进行签名验证,同样适用于区块链网络的出块节点对门限签名的正确性进行核实的情况。在实际参与节点对待签名数据进行签名时,由于各实际参与节点均参与到签名过程中,每方节点均会产生一个签名,会获得多方签名,多方签名的集合即为签名内容,这种情况下产生的签名内容是非常大的。在区块大小固定的情况下(如比特币、Fabric、百度超级链等),也因过大的签名内容降低了一个区块中所能打包的交易的数量,从而影响了区块链网络的性能,在区块链网络上使用双线性映射技术来进行多重签名,能够在高效的完成计算过程,在交易原始信息不变的情况下,大幅降低多重签名交易的签名大小,使得在区块大小固定的情况下,提升一个区块中所能打包的交易的数量,最终完成签名结果的计算与验证,具有很高的可用性。
本申请实施例的技术方案,在签名算法中引入了三个阿贝尔群,其中签名生成使用第一阿贝尔群,公钥生成使用第二阿贝尔群,签名验证使用第三阿贝尔群,这三个阿贝尔群满足双线性映射的数学特性。通过将待签名数据和单机公钥分别转换为第一阿贝尔群中的待签名元素和第二阿贝尔群中的单机公钥元素,再基于双线性映射函数,将实际参与节点的单机公钥元素、待签名元素和总签名,转换为第三阿贝尔群的元素,对签名结果进行签名验证。本申请实施例提供的基于密钥的门限签名验签方法与本申请实施例提供的基于密钥的门限签名方法相配合,有效地保证了区块链的事务数据验证过程的安全性及可信性,此外本申请实施例利用阿贝尔群的双线性映射性质完成了对基于密钥的门限签名的验签,减少了密钥生成过程中,多方节点之间的交互过程,签名交互次数少,计算量少。
图4是根据本公开实施例的另一种基于密钥的门限签名验签方法的流程示意图;本实施例是在上述实施例的基础上提出的一种可选方案。具体的是对基于双线性映射函数,将所述实际参与节点的单机公钥元素和所述待签名元素,转换为第三阿贝尔群的元素,作为第一验证元素,参见图4,本实施例提供的基于密钥的门限签名验签方法包括:
S410、获取待验签数据,并根据所述签名结果确定的实际参与节点获取各所述实际参与节点的单机公钥。
S420、获取待验签数据和签名结果,从所述签名结果中获取总签名和实际参与节点的节点编号。
S430、将所述待签名数据基于第一转换函数转换为第一阿贝尔群的元素,作为待签名元素。
S440、根据所述节点编号获取实际参与节点各自的单机公钥。
S450、将各所述单机公钥基于第二转换函数转换为第二阿贝尔群的元素,作为单机公钥元素。
S460、基于双线性映射函数分别输入各所述实际参与节点的单机公钥元素和所述待签名元素,以生成单机验证元素,所述单机验证元素为第三阿贝尔群的元素。
双线性映射函数的输入参数:实际参与节点的单机公钥元素和待签名元素分别为第二阿贝尔群中元素和第一阿贝尔群中的元素。单机验证元素与实际参与节点一一对应,每一个实际参与节点均对应一个单机验证元素。其中,单机验证元素为与单机公钥元素和所述待签名元素相关的第三阿贝尔群的元素。向双线性映射函数中输入第一阿贝尔群中的元素和第二阿贝尔群中的元素,可以得到第三阿贝尔群中的元素。
S470、将各所述单机验证元素相乘,作为所述第一验证元素。
其中,第一验证元素为与实际参与节点的单机公钥元素和待签名元素相关的第三阿贝尔群的元素。
在一个可选的实施例中,按照如下公式计算所述第一验证元素:
e(P2i,hash1(L))*e(P2j,hash1(L))*…*e(P2k,hash1(L))
其中,i,j,…,k均为实际参与节点的编号;e为双线性映射函数,且e(a,b)=c,其中a属于第二阿贝尔群,b属于第一阿贝尔群,c属于第三阿贝尔群;P2i、P2j、……、P2k为各实际参与节点的单机公钥元素;hash1()用于将待哈希内容转换为第一阿贝尔群中的元素。
其中,L为待签名数据,hash1()为第一转换函数,基于hash1()可以将待签名数据转换为待签名元素hash1(L),待签名数据为第一阿贝尔群的元素。hash1(L)为双线性映射函数的输入参数之一。
P2i、P2j、……、P2k为各实际参与节点的单机公钥元素,单机公钥元素为第二阿贝尔群中的元素,标识单机公钥元素的符号P2i中下标2用于表示单机公钥元素为第二阿贝尔群中的元素,下标i用于表示该单机公钥元素为与节点编号为i的实际参与节点对应的单机公钥元素。单机公钥元素为双线性映射函数的另一个数输入参数。
e(P2i,hash1(L))表示的是与节点编号为i的实际参与节点对应的单机验证元素,相应的,e(P2j,hash1(L))表示的是与节点编号为j的实际参与节点对应的单机验证元素,e(P2k,hash1(L))表示的是与节点编号为k的实际参与节点对应的单机验证元素。e(P2i,hash1(L))*e(P2j,hash1(L))*…*e(P2k,hash1(L))表示各个实际参与节点对应的单机验证元素的乘积,该乘积为第一验证元素。
S480、基于所述双线性映射函数,将所述总签名转换为第三阿贝尔群的元素,作为第二验证元素。
S490、如果所述第一验证元素和第二验证元素匹配,则所述签名结果验证通过。
本申请实施例的技术方案,通过基于双线性映射函数分别输入各实际参与节点的单机公钥元素和待签名元素,生成单机验证元素,将各单机验证元素相乘,作为所述第一验证元素,基于所述双线性映射函数,将总签名转换为第三阿贝尔群的元素,作为第二验证元素。根据第一验证元素和第二验证元素对签名结果进行签名验证。本申请实施例提供的基于密钥的门限签名验签方法与本申请实施例提供的基于密钥的门限签名方法相配合,有效地保证了区块链的事务数据验证过程的安全性及可信性,此外本申请实施例利用阿贝尔群的双线性映射性质完成了对基于密钥的门限签名的验签,减少了密钥生成过程中,多方节点之间的交互过程,签名交互次数少,计算量少。
图5是根据本公开实施例的又一种基于密钥的门限签名验签方法的流程示意图;本实施例是在上述实施例的基础上提出的一种可选方案。具体的是对基于所述双线性映射函数,将所述总签名转换为第三阿贝尔群的元素,作为第二验证元素的细化,参见图5,本实施例提供的基于密钥的门限签名验签方法包括:
S510、获取待验签数据,并根据所述签名结果确定的实际参与节点获取各所述实际参与节点的单机公钥。
S520、获取待验签数据和签名结果,从所述签名结果中获取总签名和实际参与节点的节点编号。
S530、将所述待签名数据基于第一转换函数转换为第一阿贝尔群的元素,作为待签名元素。
S540、根据所述节点编号获取实际参与节点各自的单机公钥;
S550、将各所述单机公钥基于第二转换函数转换为第二阿贝尔群的元素,作为单机公钥元素。
S560、基于双线性映射函数,将所述实际参与节点的单机公钥元素和所述待签名元素,转换为第三阿贝尔群的元素,作为第一验证元素。
S570、基于所述双线性映射函数输入第二阿贝尔群的基点和所述总签名,以生成属于第三阿贝尔群的第二验证元素。
第二阿贝尔群的基点和总签名为双线性映射函数的输入参数。
在一个可选的实施例中,基于所述双线性映射函数输入第二阿贝尔群的基点和所述总签名,以生成属于第三阿贝尔群的第二验证元素包括:
基于如下公式生成第二验证元素:
e(G2,S)
其中,e为双线性映射函数,且e(a,b)=c,其中a属于第二阿贝尔群,b属于第一阿贝尔群,c属于第三阿贝尔群;G2为第二阿贝尔群的基点;S为总签名。
其中,总签名为第二阿贝尔群的元素,e为双线性映射函数,且e(a,b)=c,其中a属于第二阿贝尔群,b属于第一阿贝尔群,c属于第三阿贝尔群。将第二阿贝尔群的基点与总签名输入到双线性映射函数中,得到的结果则为第三阿贝尔群的元素。e(G2,S)表示第二验证元素。
S580、如果所述第一验证元素和第二验证元素匹配,则所述签名结果验证通过。
本申请实施例的技术方案,通过基于双线性映射函数,将实际参与节点的单机公钥元素和待签名元素,转换为第三阿贝尔群的元素,作为第一验证元素,基于所述双线性映射函数输入第二阿贝尔群的基点和所述总签名,以生成第二验证元素,根据第一验证元素和第二验证元素对签名结果进行签名验证。本申请实施例提供的基于密钥的门限签名验签方法与本申请实施例提供的基于密钥的门限签名方法相配合,有效地保证了区块链的事务数据验证过程的安全性及可信性,此外本申请实施例利用阿贝尔群的双线性映射性质完成了对基于密钥的门限签名的验签,减少了密钥生成过程中,多方节点之间的交互过程,签名交互次数少,计算量少。
图6是根据本公开实施例提供的一种基于密钥的门限签名装置的结构示意图。参见图6,本申请实施例公开了一种基于密钥的门限签名装置,配置于多方节点中的任一节点中,每个节点分别包括各自的单机私钥和单机公钥,该装置600可以包括:待签名元素确定模块610、本机节点的签名碎片生成模块620、总签名生成模块630和签名结果确定模块640。
待签名元素确定模块610,用于将待签名数据转换为第一阿贝尔群的元素,作为待签名元素;
本机节点的签名碎片生成模块620,用于根据本机节点的单机私钥和待签名元素,生成本机节点的签名碎片;
总签名生成模块630,用于将各个实际参与节点的签名碎片进行累加,以生成总签名,其中,所述总签名属于第一阿贝尔群的元素;
签名结果确定模块640,用于将各个实际参与节点的节点编号,与所述总签名一起封装为所述待签名数据的签名结果。
本申请实施例的技术方案,通过将双线性映射技术引入各实际参与节点参与对待签名数据签名的过程,能够在高效的完成计算过程,在交易原始信息不变的情况下,大幅降低多方签名交易的签名大小,使得在区块大小固定的情况下,提升一个区块中所能打包的交易的数量,最终完成签名结果的计算与验证,签名交互次数少,计算量少,具有很高的可用性。
可选的,待签名元素确定模块610,具体用于将待签名数据基于第一转换函数乘以第一阿贝尔群的基点,以转换为第一阿贝尔群的元素,作为待签名元素。
可选的,本机节点的签名碎片生成模块620,包括:单机私钥转换子模块,用于将所述单机私钥,基于第三转化函数转换为设定大整数;
本机节点的签名碎片子模块,用于将单机私钥大整数,与所述待签名元素相乘,以生成本机节点的签名碎片。
可选的,所述待签名数据为区块链事务请求,所述多方节点中的至少一个节点为区块链节点。
本申请实施例所提供的基于密钥的门限签名装置可执行本申请任意实施例所提供的基于密钥的门限签名方法,具备执行基于密钥的门限签名方法相应的功能模块和有益效果。
图7是根据本公开实施例提供的一种基于密钥的门限签名验签装置的结构示意图。参见图7,本申请实施例公开了一种基于密钥的门限签名验签装置700,每个节点分别包括各自的单机私钥和单机公钥,所述签名结果为本申请任意实施例所提供的基于密钥的门限签名方法所生成的,所述验签装置包括:数据获取模块710、待验签数据和签名结果获取模块720、待签名元素确定模块730、单机公钥获取模块740、单机公钥元素确定模块750、第一验证元素确定模块760、第二验证元素确定模块770和第一验证元素和第二验证元素匹配模块780。
数据获取模块710,用于获取待验签数据,并根据所述签名结果确定的实际参与节点获取各所述实际参与节点的单机公钥;
待验签数据和签名结果获取模块720,用于获取待验签数据和签名结果,从所述签名结果中获取总签名和实际参与节点的节点编号;
待签名元素确定模块730,用于将所述待签名数据基于第一转换函数转换为第一阿贝尔群的元素,作为待签名元素;
单机公钥获取模块740,用于根据所述节点编号获取实际参与节点各自的单机公钥;
单机公钥元素确定模块750,用于将各所述单机公钥基于第二转换函数转换为第二阿贝尔群的元素,作为单机公钥元素;
第一验证元素确定模块760,用于基于双线性映射函数,将所述实际参与节点的单机公钥元素和所述待签名元素,转换为第三阿贝尔群的元素,作为第一验证元素;
第二验证元素确定模块770,用于基于所述双线性映射函数,将所述总签名转换为第三阿贝尔群的元素,作为第二验证元素;
第一验证元素和第二验证元素匹配模块780,用于如果所述第一验证元素和第二验证元素匹配,则所述签名结果验证通过。
本申请实施例的技术方案,通过将待签名数据和单机公钥分别转换为第一阿贝尔群中的待签名元素和第二阿贝尔群中的单机公钥元素,再基于双线性映射函数,将实际参与节点的单机公钥元素、待签名元素和总签名,转换为第三阿贝尔群的元素,对签名结果进行签名验证。本申请实施例提供的基于密钥的门限签名验签方法与本申请实施例提供的基于密钥的门限签名方法相配合,有效地保证了区块链的事务数据验证过程的安全性及可信性,此外本申请实施例利用阿贝尔群的双线性映射性质完成了对基于密钥的门限签名的验签,减少了密钥生成过程中,多方节点之间的交互过程,签名交互次数少,计算量少。
可选的,第一验证元素确定模块760,包括:单机验证元素生成子模块,用于基于双线性映射函数分别输入各所述实际参与节点的单机公钥元素和所述待签名元素,以生成单机验证元素,所述单机验证元素为第三阿贝尔群的元素;第一验证元素确定子模块,用于将各所述单机验证元素相乘,作为所述第一验证元素。
可选的,第一验证元素确定模块760,具体用于按照如下公式计算所述第一验证元素:
e(P2i,hash1(L))*e(P2j,hash1(L))*…*e(P2k,hash1(L))
其中,i,j,…,k均为实际参与节点的编号;e为双线性映射函数,且e(a,b)=c,其中a属于第二阿贝尔群,b属于第一阿贝尔群,c属于第三阿贝尔群;P2i、P2j、……、P2k为各实际参与节点的单机公钥元素;hash1()用于将待哈希内容转换为第一阿贝尔群中的元素。
可选的,第二验证元素确定模块770,包括:第二验证元素生成子模块,用于基于所述双线性映射函数输入第二阿贝尔群的基点和所述总签名,以生成属于第三阿贝尔群的第二验证元素。
可选的,第二验证元素生成子模块,具体用于基于如下公式生成第二验证元素:e(G2,S)
其中,e为双线性映射函数,且e(a,b)=c,其中a属于第二阿贝尔群,b属于第一阿贝尔群,c属于第三阿贝尔群;G2为第二阿贝尔群的基点;S为总签名。
可选的,所述待签名数据为区块链事务请求,所述多方节点中的至少一个节点为区块链节点。
本申请实施例所提供的基于密钥的门限签名验签装置可执行本申请任意实施例所提供的基于密钥的门限签名验签方法,具备执行基于密钥的门限签名验签方法相应的功能模块和有益效果。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如基于密钥的门限签名方法或者基于密钥的门限签名验签方法。例如,在一些实施例中,基于密钥的门限签名方法或者基于密钥的门限签名验签方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的基于密钥的门限签名方法或者基于密钥的门限签名验签方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于密钥的门限签名方法或者基于密钥的门限签名验签方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (22)
1.一种基于密钥的门限签名方法,由多方节点中的任一节点执行,每个节点分别包括各自的单机私钥和单机公钥,所述方法包括:
将待签名数据转换为第一阿贝尔群的元素,作为待签名元素;
根据本机节点的单机私钥和待签名元素,生成本机节点的签名碎片;
将各个实际参与节点的签名碎片进行累加,以生成总签名,其中,所述总签名属于第一阿贝尔群的元素;
将各个实际参与节点的节点编号,与所述总签名一起封装为所述待签名数据的签名结果。
2.根据权利要求1所述的方法,其中,将待签名数据转换为第一阿贝尔群的元素,作为待签名元素包括:
将待签名数据基于第一转换函数乘以第一阿贝尔群的基点,以转换为第一阿贝尔群的元素,作为待签名元素。
3.根据权利要求1所述的方法,其中,根据本机节点的单机私钥和待签名元素,生成本机节点的签名碎片包括:
将所述单机私钥,基于第三转化函数转换为设定大整数;
将单机私钥大整数,与所述待签名元素相乘,以生成本机节点的签名碎片。
4.根据权利要求1所述的方法,其中,所述待签名数据为区块链事务请求,所述多方节点中的至少一个节点为区块链节点。
5.一种基于密钥的门限签名验签方法,由多方节点中的任一节点执行,每个节点分别包括各自的单机私钥和单机公钥,所述签名结果为权利要求1-4任一所述的基于密钥的门限签名方法所生成的,所述验签方法包括:
获取待验签数据,并根据所述签名结果确定的实际参与节点获取各所述实际参与节点的单机公钥;
获取待验签数据和签名结果,从所述签名结果中获取总签名和实际参与节点的节点编号;
将所述待签名数据基于第一转换函数转换为第一阿贝尔群的元素,作为待签名元素;
根据所述节点编号获取实际参与节点各自的单机公钥;
将各所述单机公钥基于第二转换函数转换为第二阿贝尔群的元素,作为单机公钥元素;
基于双线性映射函数,将所述实际参与节点的单机公钥元素和所述待签名元素,转换为第三阿贝尔群的元素,作为第一验证元素;
基于所述双线性映射函数,将所述总签名转换为第三阿贝尔群的元素,作为第二验证元素;
如果所述第一验证元素和第二验证元素匹配,则所述签名结果验证通过。
6.根据权利要求5所述的方法,其中,基于双线性映射函数,将所述实际参与节点的单机公钥元素和所述待签名元素,转换为第三阿贝尔群的元素,作为第一验证元素包括:
基于双线性映射函数分别输入各所述实际参与节点的单机公钥元素和所述待签名元素,以生成单机验证元素,所述单机验证元素为第三阿贝尔群的元素;
将各所述单机验证元素相乘,作为所述第一验证元素。
7.根据权利要求6所述的方法,其中,基于双线性映射函数,将所述实际参与节点的单机公钥元素和所述待签名元素,转换为第三阿贝尔群的元素,作为第一验证元素包括:
按照如下公式计算所述第一验证元素:
e(P2i,hash1(L))*e(P2j,hash1(L))*…*e(P2k,hash1(L))
其中,i,j,…,k均为实际参与节点的编号;e为双线性映射函数,且e(a,b)=c,其中a属于第二阿贝尔群,b属于第一阿贝尔群,c属于第三阿贝尔群;P2i、P2j、……、P2k为各实际参与节点的单机公钥元素;hash1()用于将待哈希内容转换为第一阿贝尔群中的元素;L为待签名数据。
8.根据权利要求5所述的方法,其中,基于所述双线性映射函数,将所述总签名转换为第三阿贝尔群的元素,作为第二验证元素包括:
基于所述双线性映射函数输入第二阿贝尔群的基点和所述总签名,以生成属于第三阿贝尔群的第二验证元素。
9.根据权利要求8所述的方法,其中,基于所述双线性映射函数输入第二阿贝尔群的基点和所述总签名,以生成属于第三阿贝尔群的第二验证元素包括:
基于如下公式生成第二验证元素:
e(G2,S)
其中,e为双线性映射函数,且e(a,b)=c,其中a属于第二阿贝尔群,b属于第一阿贝尔群,c属于第三阿贝尔群;G2为第二阿贝尔群的基点;S为总签名。
10.根据权利要求5所述的方法,其中,所述待签名数据为区块链事务请求,所述多方节点中的至少一个节点为区块链节点。
11.一种基于密钥的门限签名装置,配置于多方节点中的任一节点,每个节点分别包括各自的单机私钥和单机公钥,所述装置包括:
待签名元素确定模块,用于将待签名数据转换为第一阿贝尔群的元素,作为待签名元素;
本机节点的签名碎片生成模块,用于根据本机节点的单机私钥和待签名元素,生成本机节点的签名碎片;
总签名生成模块,用于将各个实际参与节点的签名碎片进行累加,以生成总签名,其中,所述总签名属于第一阿贝尔群的元素;
签名结果确定模块,用于将各个实际参与节点的节点编号,与所述总签名一起封装为所述待签名数据的签名结果。
12.根据权利要求11所述的装置,其中,待签名元素确定模块,具体用于将待签名数据基于第一转换函数乘以第一阿贝尔群的基点,以转换为第一阿贝尔群的元素,作为待签名元素。
13.根据权利要求11所述的装置,其中,本机节点的签名碎片生成模块,包括:
单机私钥转换模块,用于将所述单机私钥,基于第三转化函数转换为设定大整数;
签名碎片生成模块,用于将单机私钥大整数,与所述待签名元素相乘,以生成本机节点的签名碎片。
14.根据权利要求11所述的装置,其中,所述待签名数据为区块链事务请求,所述多方节点中的至少一个节点为区块链节点。
15.一种基于密钥的门限签名验签装置,配置于多方节点中的任一节点,每个节点分别包括各自的单机私钥和单机公钥,所述签名结果为权利要求11-14任一所述的基于密钥的门限签名装置所生成的,所述验签装置包括:
数据获取模块,用于获取待验签数据,并根据所述签名结果确定的实际参与节点获取各所述实际参与节点的单机公钥;
待验签数据和签名结果获取模块,用于获取待验签数据和签名结果,从所述签名结果中获取总签名和实际参与节点的节点编号;
待签名元素确定模块,用于将所述待签名数据基于第一转换函数转换为第一阿贝尔群的元素,作为待签名元素;
单机公钥获取模块,用于根据所述节点编号获取实际参与节点各自的单机公钥;
单机公钥元素确定模块,用于将各所述单机公钥基于第二转换函数转换为第二阿贝尔群的元素,作为单机公钥元素;
第一验证元素确定模块,用于基于双线性映射函数,将所述实际参与节点的单机公钥元素和所述待签名元素,转换为第三阿贝尔群的元素,作为第一验证元素;
第二验证元素确定模块,用于基于所述双线性映射函数,将所述总签名转换为第三阿贝尔群的元素,作为第二验证元素;
第一验证元素和第二验证元素匹配模块,用于如果所述第一验证元素和第二验证元素匹配,则所述签名结果验证通过。
16.根据权利要求15所述的装置,其中,第一验证元素确定模块,包括:
单机验证元素生成子模块,用于基于双线性映射函数分别输入各所述实际参与节点的单机公钥元素和所述待签名元素,以生成单机验证元素,所述单机验证元素为第三阿贝尔群的元素;
第一验证元素确定子模块,用于将各所述单机验证元素相乘,作为所述第一验证元素。
17.根据权利要求16所述的装置,其中,第一验证元素确定模块,具体用于按照如下公式计算所述第一验证元素:
e(P2i,hash1(L))*e(P2j,hash1(L))*…*e(P2k,hash1(L))
其中,i,j,…,k均为实际参与节点的编号;e为双线性映射函数,且e(a,b)=c,其中a属于第二阿贝尔群,b属于第一阿贝尔群,c属于第三阿贝尔群;P2i、P2j、……、P2k为各实际参与节点的单机公钥元素;hash1()用于将待哈希内容转换为第一阿贝尔群中的元素;L为待签名数据。
18.根据权利要求15所述的装置,其中,第二验证元素确定模块,包括:
第二验证元素生成子模块,用于基于所述双线性映射函数输入第二阿贝尔群的基点和所述总签名,以生成属于第三阿贝尔群的第二验证元素。
19.根据权利要求18所述的装置,其中,第二验证元素生成子模块,具体用于基于如下公式生成第二验证元素:
e(G2,S)
其中,e为双线性映射函数,且e(a,b)=c,其中a属于第二阿贝尔群,b属于第一阿贝尔群,c属于第三阿贝尔群;G2为第二阿贝尔群的基点;S为总签名。
20.根据权利要求15所述的装置,其中,所述待签名数据为区块链事务请求,所述多方节点中的至少一个节点为区块链节点。
21.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的基于密钥的门限签名方法或权利要求5-10中任意一项所述的基于密钥的门限签名验签方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-4中任一项所述的基于密钥的门限签名方法或权利要求5-10中任意一项所述的基于密钥的门限签名验签方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011599659.5A CN112737777B (zh) | 2020-12-29 | 2020-12-29 | 基于密钥的门限签名和验签方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011599659.5A CN112737777B (zh) | 2020-12-29 | 2020-12-29 | 基于密钥的门限签名和验签方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112737777A CN112737777A (zh) | 2021-04-30 |
CN112737777B true CN112737777B (zh) | 2023-01-10 |
Family
ID=75610489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011599659.5A Active CN112737777B (zh) | 2020-12-29 | 2020-12-29 | 基于密钥的门限签名和验签方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112737777B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434905B (zh) * | 2021-07-05 | 2022-11-15 | 网易(杭州)网络有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10133576A (ja) * | 1996-10-31 | 1998-05-22 | Hitachi Ltd | 公開鍵暗号方法および装置 |
CN110351096B (zh) * | 2019-07-24 | 2022-02-01 | 深圳壹账通智能科技有限公司 | 多重签名方法、签名中心、程序介质及电子设备 |
CN111147246B (zh) * | 2020-02-18 | 2023-08-08 | 数据通信科学技术研究所 | 一种基于sm2的多方协同签名方法及系统 |
CN111541551B (zh) * | 2020-05-22 | 2023-04-18 | 杭州时戳信息科技有限公司 | 门限签名消息的处理方法、系统、存储介质及服务器 |
CN111988147B (zh) * | 2020-08-20 | 2022-06-03 | 上海万向区块链股份公司 | 组合签名及验证签名方法、系统及存储介质 |
CN111934889B (zh) * | 2020-10-13 | 2021-02-26 | 百度在线网络技术(北京)有限公司 | 密钥生成方法、签名和验签方法、装置、设备和介质 |
-
2020
- 2020-12-29 CN CN202011599659.5A patent/CN112737777B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112737777A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111934889B (zh) | 密钥生成方法、签名和验签方法、装置、设备和介质 | |
CN110351096B (zh) | 多重签名方法、签名中心、程序介质及电子设备 | |
AU2021204543B2 (en) | Digital signature method, signature information verification method, related apparatus and electronic device | |
CN113098691B (zh) | 数字签名方法、签名信息的验证方法、相关装置及电子设备 | |
CN111934890B (zh) | 密钥生成方法、签名和验签方法、装置、设备和介质 | |
WO2022057311A1 (zh) | 电子合同的验证方法、装置、电子设备及存储介质 | |
CN107171788B (zh) | 一种基于身份且签名长度恒定的在线离线聚合签名方法 | |
EP3570488A1 (en) | Online/offline signature system and method based on multivariate cryptography | |
CN112737777B (zh) | 基于密钥的门限签名和验签方法、装置、设备和介质 | |
CN113407976B (zh) | 数字签名方法、签名信息的验证方法、相关装置及电子设备 | |
CN112751667B (zh) | 密钥生成方法、签名和验签方法、装置、设备和介质 | |
WO2024082515A1 (zh) | 一种去中心化的联邦聚类学习方法、装置、设备及介质 | |
CN115242402B (zh) | 签名方法、验签方法及电子设备 | |
CN112861189B (zh) | 签名的生成方法和验证方法、装置、设备和介质 | |
CN113935069B (zh) | 一种基于区块链的数据验证方法、装置、设备及存储介质 | |
Sumaryanti et al. | Improvement security in e-business systems using hybrid algorithm | |
US10496377B1 (en) | Method and system generating string based random permutation | |
CN111460515B (zh) | 数据匹配方法、装置和电子设备 | |
CN114362969B (zh) | 一种基于区块链的数据验证方法、装置、设备及存储介质 | |
CN112615712B (zh) | 数据的处理方法、相关装置及计算机程序产品 | |
CN115664839B (zh) | 隐私计算进程的安全监控方法、装置、设备、介质 | |
CN115580489B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN113407975A (zh) | 数字签名方法、签名信息的验证方法、相关装置及电子设备 | |
CN117009723A (zh) | 一种多方计算方法、装置、设备及存储介质 | |
CN117473572A (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 |