CN114666058B - 基于多重签名的验证方法、装置、设备及存储介质 - Google Patents

基于多重签名的验证方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114666058B
CN114666058B CN202210220885.0A CN202210220885A CN114666058B CN 114666058 B CN114666058 B CN 114666058B CN 202210220885 A CN202210220885 A CN 202210220885A CN 114666058 B CN114666058 B CN 114666058B
Authority
CN
China
Prior art keywords
signature
signer
promise
value
public key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210220885.0A
Other languages
English (en)
Other versions
CN114666058A (zh
Inventor
张鹏
张谦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen University
Original Assignee
Shenzhen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen University filed Critical Shenzhen University
Priority to CN202210220885.0A priority Critical patent/CN114666058B/zh
Publication of CN114666058A publication Critical patent/CN114666058A/zh
Application granted granted Critical
Publication of CN114666058B publication Critical patent/CN114666058B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于多重签名的验证方法、装置、设备及存储介质,通过将签名算法结合Merkle树对各签名者的签名信息构建树,基于构建的树将所有签名者进行聚合计算,得到签名聚合结果来进行签名验证,并且在后期验证不通过时,使用错误检测算法FD(Fault Detection)与错误移除算法FR(Fault Remove)来剔除恶意签名者的信息,以进行再次验证,这样的实现方式使得在对签名验证时,可以容忍恶意签名者的存在也可实现正确的签名验证,大大提高了验证的准确度,以及使用体验。

Description

基于多重签名的验证方法、装置、设备及存储介质
技术领域
本发明涉及数字签名技术领域,尤其涉及一种基于多重签名的验证方法、装置、设备及存储介质。
背景技术
多重签名(Multi-Signature)是数字签名中的一种。其主要目的是针对一笔交易或者资产需要多个人进行签名确认时,可以将多个签名进行合并成为一个签名,并且在验证阶段仅需要一次验证即可。
目前,为了提高签名验证效率和安全性,采用多次单独签名的验证方式替换为一次同时多人签名的验证方式,这种同时多人签名的验证方式正是采用的多重签名的实现原理,实现了一定程度上提高了签名验证速度,缩短了签名长度,提升了验证效率。但是,在现有的多重签名实现方式中,若存在恶意的签名者时,由于多重签名是由多个签名聚合而成,无法找出其中的恶意签名者的信息;重验证时,需要所有人重新进行签名,造成时间与资源浪费,且无法排出恶意签名者,依然存在较大可能无法通过验证。
发明内容
本发明的主要目的在于提供了一种基于多重签名的验证方法、装置、设备及存储介质,以解决现有的多重签名验证方式无法找出异常签名信息,导致再次签名验证无法通过的技术问题。
本发明第一方面提供了一种基于多重签名的验证方法,所述基于多重签名的验证方法包括:
获取至少两个签名者的签名信息,以及声明消息;
利用预设的多重签名算法,基于所述声明消息和各所述签名信息计算各签名者的承诺信息;
对各签名者的承诺信息进行两两结合递归计算,基于计算的结果生成签名聚合结果和哈希二叉树,其中所述哈希二叉树上设有与签名者数量相等的叶子节点,所述签名信息存储于所述叶子节点中;
比较所述签名聚合结果与预设的聚合签名是否一致;
若否,则对所述哈希二叉树中各叶子节点进行逐一查验,确定不一致的签名信息,并剔除重新验证。
可选的,所述获取至少两个签名者的签名信息,以及声明消息,包括:
获取各所述签名者的所有签名特征和声明消息,并基于所述签名特征构建各签名者的签名特征群;
对各所述签名特征群进行解析,生成对应的输出参数;
利用哈希算法随机生成与每个签名者对应的私钥;
基于各所述签名者对应的私钥,计算出对应的公钥;
根据各所述输出参数、私钥和公钥,得到各所述签名者对应的签名信息。
可选的,所述承诺信息为预承诺信息和当前承诺信息,所述利用预设的多重签名算法,基于所述声明消息和各所述签名信息计算各签名者的承诺信息,包括:
根据各所述签名者的签名特征,利用随机数生成算法生成对应的预承诺参数;
基于各所述签名者的预承诺参数和对应的签名特征群,计算出对应的预承诺值;
利用预设的第三哈希函数,基于各签名者的公钥计算出对应的聚合公钥参数;
利用预设的第一哈希函数,基于所述声明消息、各签名者的公钥和各签名者的聚合公钥参数计算出对应的承诺值参数。
可选的,所述对各签名者的承诺信息进行两两结合递归计算,基于计算的结果生成签名聚合结果和哈希二叉树,包括:
根据各签名者的预承诺参数、预承诺值、聚合公钥参数和承诺值参数,计算各签名者的第一当前聚合公钥和第一当前承诺值;
根据各签名者的第一当前聚合公钥和第一当前承诺值,计算出两签名者间的第二当前聚合公钥和第二当前承诺值;
根据所述第二当前聚合公钥和第二当前承诺值,计算出所述至少两个签名者的最终聚合公钥和最终承诺值;
利用所述哈希算法中的第二哈希函数,基于所述最终聚合公钥和、最终承诺值和声明消息计算出挑战值;
根据所述挑战值以及各签名者的预承诺参数、私钥、聚合公钥参数和承诺值参数,计算出最终响应值,得到签名聚合结果;
基于区块链中的数据结构,创建逻辑结构树,其中所述逻辑结构树包括根节点、设置于所述根节点下的第一中间节点、设于所述第一中间节点下的第二中间节点和设置于所述第二中间节点下的叶子节点;
按照一个叶子节点对应一个签名者和同一节点链对应一个签名者的承诺信息的方式,将各签名者的预承诺参数、预承诺值、聚合公钥参数、承诺值参数、第一当前聚合公钥、第一当前承诺值、第二当前聚合公钥、第二当前承诺值、最终聚合公钥、最终承诺值、挑战值和最终响应值,依次添加至所述叶子节点、第二中间节点、第一中间节点和根节点中,得到哈希二叉树。
可选的,所述按照一个叶子节点对应一个签名者和同一节点链对应一个签名者的承诺信息的方式,将各签名者的预承诺参数、预承诺值、聚合公钥参数、承诺值参数、第一当前聚合公钥、第一当前承诺值、第二当前聚合公钥、第二当前承诺值、最终聚合公钥和最终承诺值,依次添加至所述叶子节点、第二中间节点、第一中间节点和根节点中,得到哈希二叉树,包括:
按照一个叶子节点对应一个签名者的方式,将各签名者的公钥、预承诺参数、预承诺值、聚合公钥参数和承诺值参数添加至叶子节点中;
在各所述叶子节点连接的第二中间节点中,添加对应的签名者的第一当前聚合公钥和第一当前承诺值;
将与所述第一中间节点连接的第二中间节点中的签名者对应的第二当前聚合公钥和第二当前承诺值添加至所述第一中间节点中;
将所述最终聚合公钥和最终承诺值添加至所述根节点中,得到哈希二叉树。
可选的,所述根据所述挑战值以及各签名者的预承诺参数、私钥、聚合公钥参数和承诺值参数,计算出最终响应值,得到签名聚合结果包括:
利用预设的第二哈希函数,基于所述最终聚合公钥、最终承诺值和声明消息计算出挑战值,并添加至所述根节点中;
基于各签名者的预承诺参数、私钥、聚合公钥参数和承诺值参数,以及所述挑战值计算出各签名者的第一当前响应值,并添加至对应的第二中间节点中;
基于各签名者的第一响应值,计算出两签名者间的第二当前响应值,并添加至对应的第一中间节点中;
基于所有第二当前响应值,计算出所述至少两个签名者的最终响应值,得到签名聚合结果,并添加至所述根节点中。
可选的,所述对所述哈希二叉树中各叶子节点进行逐一查验,确定不一致的签名信息,并剔除重新验证,包括:
以所述哈希二叉树中的根节点为基点,按照自上而下的方向,通过查验函数对各个中间节点中的当前响应值进行校验,直到叶子节点为止,结束查验,得到校验结果;
将所述校验结果为不一致的对应的叶子节点中签名者的签名信息从所述哈希二叉树中剔除,并将获取相邻的叶子节点中的签名信息进行填充,得到新的哈希二叉树;
基于新的哈希二叉树中的叶子节点计算新的签名聚合结果,并进行验证。
本发明第二方面提供了一种基于多重签名的验证装置,包括:
签名获取模块,用于获取至少两个签名者的签名信息,以及声明消息;
承诺计算模块,用于利用预设的多重签名算法,基于所述声明消息和各所述签名信息计算各签名者的承诺信息;
聚合计算模块,用于对各签名者的承诺信息进行两两结合递归计算,基于计算的结果生成签名聚合结果和哈希二叉树,其中所述哈希二叉树上设有与签名者数量相等的叶子节点,所述签名信息存储于所述叶子节点中;
聚合验证模块,用于比较所述签名聚合结果与预设的聚合签名是否一致;
查验验证模块,用于在对比的结果为不一致时,对所述哈希二叉树中各叶子节点进行逐一查验,确定不一致的签名信息,并剔除重新验证。
可选的,所述签名获取模块包括:
特征采集单元,用于获取各所述签名者的所有签名特征和声明消息,并基于所述签名特征构建各签名者的签名特征群;
解析单元,用于对各所述签名特征群进行解析,生成对应的输出参数;
私钥计算单元,用于利用哈希算法随机生成与每个签名者对应的私钥;
公钥计算单元,用于基于各所述签名者对应的私钥,计算出对应的公钥;
签名生成单元,用于根据各所述输出参数、私钥和公钥,得到各所述签名者对应的签名信息。
可选的,所述承诺信息为预承诺信息和当前承诺信息,所述承诺计算模块包括:
第一计算单元,用于根据各所述签名者的签名特征,利用随机数生成算法生成对应的预承诺参数;
第二计算单元,用于基于各所述签名者的预承诺参数和对应的签名特征群,计算出对应的预承诺值;
第三计算单元,用于利用预设的第三哈希函数,基于各签名者的公钥计算出对应的聚合公钥参数;
第四计算单元,用于利用预设的第一哈希函数,基于所述声明消息、各签名者的公钥和各签名者的聚合公钥参数计算出对应的承诺值参数。
可选的,所述聚合计算模块包括:
第五计算单元,用于根据各签名者的预承诺参数、预承诺值、聚合公钥参数和承诺值参数,计算各签名者的第一当前聚合公钥和第一当前承诺值;
第六计算单元,用于根据各签名者的第一当前聚合公钥和第一当前承诺值,计算出两签名者间的第二当前聚合公钥和第二当前承诺值;
第七计算单元,用于根据所述第二当前聚合公钥和第二当前承诺值,计算出所述至少两个签名者的最终聚合公钥和最终承诺值;
第八计算单元,用于利用所述哈希算法中的第二哈希函数,基于所述最终聚合公钥和、最终承诺值和声明消息计算出挑战值;
聚合单元,用于根据所述挑战值以及各签名者的预承诺参数、私钥、聚合公钥参数和承诺值参数,计算出最终响应值,得到签名聚合结果;
树创建单元,用于基于区块链中的数据结构,创建逻辑结构树,其中所述逻辑结构树包括根节点、设置于所述根节点下的第一中间节点、设于所述第一中间节点下的第二中间节点和设置于所述第二中间节点下的叶子节点;
树生成单元,用于按照一个叶子节点对应一个签名者和同一节点链对应一个签名者的承诺信息的方式,将各签名者的预承诺参数、预承诺值、聚合公钥参数、承诺值参数、第一当前聚合公钥、第一当前承诺值、第二当前聚合公钥、第二当前承诺值、最终聚合公钥、最终承诺值、挑战值和最终响应值,依次添加至所述叶子节点、第二中间节点、第一中间节点和根节点中,得到哈希二叉树。
可选的,所述树生成单元具体用于:
按照一个叶子节点对应一个签名者的方式,将各签名者的公钥、预承诺参数、预承诺值、聚合公钥参数和承诺值参数添加至叶子节点中;
在各所述叶子节点连接的第二中间节点中,添加对应的签名者的第一当前聚合公钥和第一当前承诺值;
将与所述第一中间节点连接的第二中间节点中的签名者对应的第二当前聚合公钥和第二当前承诺值添加至所述第一中间节点中;
将所述最终聚合公钥和最终承诺值添加至所述根节点中,得到哈希二叉树。
可选的,所述聚合单元具体用于:
利用预设的第二哈希函数,基于所述最终聚合公钥、最终承诺值和声明消息计算出挑战值,并添加至所述根节点中;
基于各签名者的预承诺参数、私钥、聚合公钥参数和承诺值参数,以及所述挑战值计算出各签名者的第一当前响应值,并添加至对应的第二中间节点中;
基于各签名者的第一响应值,计算出两签名者间的第二当前响应值,并添加至对应的第一中间节点中;
基于所有第二当前响应值,计算出所述至少两个签名者的最终响应值,得到签名聚合结果,并添加至所述根节点中。
可选的,所述查验验证模块包括:
校验单元,用于以所述哈希二叉树中的根节点为基点,按照自上而下的方向,通过查验函数对各个中间节点中的当前响应值进行校验,直到叶子节点为止,结束查验,得到校验结果;
调整单元,用于将所述校验结果为不一致的对应的叶子节点中签名者的签名信息从所述哈希二叉树中剔除,并将获取相邻的叶子节点中的签名信息进行填充,得到新的哈希二叉树;
验证单元,用于基于新的哈希二叉树中的叶子节点计算新的签名聚合结果,并进行验证。
本发明第三方面提供了一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述第一方面提供的基于多重签名的验证方法中的各个步骤。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的基于多重签名的验证方法中的各个步骤。
有益效果:
本发明的技术方案中,通过多重签名算法对各签名者的签名信息进行承诺信息的计算,并基于计算到的承诺信息构建哈希二叉树,并对签名者做两两结合的递归计算,得到签名聚合结果,然后对签名聚合结果进行验证,当验证不通过时,通过对哈希二叉树中的节点进行查验,从而筛选出恶意的签名者的签名信息,这样的方式实现了多个签名者的同时一次认证,提高验证效率,并且使用了哈希二叉树对多个签名者的签名信息的存储,便于后续存在恶意时能快速查找到恶意签名者并移除该错误签名,且其他签名者不需要进行签名重传操作,提高了再次验证时的通过率。
附图说明
图1为本发明提供的基于多重签名的验证方法的第一个实施例示意图;
图2为本发明提供的基于多重签名的验证方法的第二个实施例示意图;
图3为本发明提供的哈希二叉树的结构示意图;
图4为本发明提供的基于多重签名的验证装置的一个实施例示意图;
图5为本发明提供的基于多重签名的验证装置的另一个实施例示意图;
图6为本发明提供的电子设备的一个实施例示意图。
具体实施方式
本发明针对聚合签名异常后无法排除异常签名的问题,提出一种错误容忍的多重签名方案FTMS(Fault Tolerant Multi-Signature),当有恶意签名者进行签名时,我们能够快速定位查找到恶意签名者并移除该错误签名,且其他签名者不用进行签名重传操作。将签名算法结合到Merkle树中,将Merkle树中的哈希计算替换签名算法,加入错误检测算法FD(Fault Detection)与错误移除算法FR(Fault Remove),在验证不通过后,可以通过FD和FR两种算法对Merkle树中的节点进行查验即可筛选出恶意签名者的信息,以剔除。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1所示,本发明实施例中基于多重签名的验证方法的第一个实施例,该验证方法包括以下步骤:
101、获取至少两个签名者的签名信息,以及声明消息;
该步骤中,该签名信息可以理解为是基于签名者的指纹信息、人脸信息等计算出来的一些加密信息或者能够反映出签名者的签名特征的信息,基于可以通过设备上的指纹模组、摄像模组来采集。具体的,采集每个签名者在模组上留下的签名图像,通过图像处理装置对签名图像进行特征提取,得到各签名者的签名特征,并归类得到每个签名者的签名特征群。
在本实施例中,具体的可以通过以下步骤实现:
获取各所述签名者的所有签名特征和声明消息,并基于所述签名特征构建各签名者的签名特征群;
对各所述签名特征群进行解析,生成对应的输出参数;
利用哈希算法随机生成与每个签名者对应的私钥;
基于各所述签名者对应的私钥,计算出对应的公钥;
根据各所述输出参数、私钥和公钥,得到各所述签名者对应的签名信息。
102、利用预设的多重签名算法,基于声明消息和各签名信息计算各签名者的承诺信息;
该步骤中,所述多重签名算法是基于现有的签名算法结合Merkle树进行改进的一种可以实现多个签名者同时签名后聚合特征的一种新的签名算法,通过该算法可以实现对签名者的签名信息的聚合计算,以得到一个签名结果,然后实现最后的一次验证即可。
在本实施例中,该承诺信息包括预承诺信息和当前承诺信息。而当前承诺信息是基于预承诺信息计算得到,具体的,利用哈希算法和签名算法基于签名信息计算出每个签名者自身的私钥、公钥和基于签名者的签名信息生成的随机数,将该随机数作为签名者的签名特征,从而得到预承诺信息。
103、对各签名者的承诺信息进行两两结合递归计算,基于计算的结果生成签名聚合结果和哈希二叉树;
本实施例中,所述哈希二叉树上设有与签名者数量相等的叶子节点,所述签名信息存储于所述叶子节点中;这里的两两结合指的是相邻的两个签名者作为一个组合,即是在签名信息采集的实现上相邻,将每个组合的签名者的承诺信息进行聚合计算,然后形成新的主体,对新的主体再执行相同的计算,直到主体剩下一个为止,输出签名聚合结果。
在实际应用中,首先基于各签名者预承诺信息结合区块链的数据结构,创建出一个签名者树,而签名者树中的叶子节点对应的是签名者的预承诺信息,在叶子节点到根节点之间还设置有多个中间节点,该中间节点作为计算所有签名者的签名聚合结果的计算节点,通过计算节点的计算结果来得到所有签名者的聚合签名,并在计算的过程中,还包括将每个中间节点上计算出的结果添加至中间节点中,直到根节点后,生成哈希二叉树。
104、比较签名聚合结果与预设的聚合签名是否一致;
该步骤中,该预设的聚合签名可以理解为是具体的签名图像,也可以理解为是签名的验证规则,优选的,这里选择验证规则,而这里的比较具体是基于签名聚合结果计算出验证规则对应的验证等式,计算验证等式两端的结算,然后对比两端的结果是否相等,若相等,则验证通过,反之则不通过。
105、若否,则对哈希二叉树中各叶子节点进行逐一查验,确定不一致的签名信息,并剔除重新验证。
本实施例中,在验证签名聚合结果与预设的聚合签名不一致后,提取哈希二叉树中各中间节点上的信息,并基于信息结合验证规则构建该中间节点的验证等式,从而判断该中间节点中的签名者中是否存在恶意签名者,若存在,则获取该中间节点的子节点下的信息按照验证规则构建子节点的验证等式,直到子节点为哈希二叉树中的叶子节点为止,基于验证的结果中叶子节点中筛选出恶意签名者。
本发明实施例中,构建哈希二叉树的方式对多签名者的签名信息进行聚合计算,这样的聚合验证方式不仅可以实现多签名者的聚合计算,当存在异常时,可以通过哈希二叉树中的节点来进行查验追溯,以快速定位出异常的签名者,并进行剔除,执行再次验证,解决了现有的多重签名验证方式无法找出异常签名信息的问题。
请参阅图2,本发明实施例中基于多重签名的验证方法的第二个实施例,该实施例以具体的算法进行说明,具体通过将签名算法结合Merkle树对各签名者的签名信息构建树,基于构建的树将所有签名者进行聚合计算,得到签名聚合结果来进行签名验证,并且在后期验证不通过时,使用错误检测算法FD(Fault Detection)与错误移除算法FR(FaultRemove)来剔除恶意签名者的信息,以进行再次验证,这样的实现方式使得在对签名验证时,可以容忍恶意签名者的存在也可实现正确的签名验证,大大提高了验证的准确度,以及使用体验,该方法包括以下步骤:
201、获取所有签名者的签名特征,并基于各签名者的签名特征构建签名信息;
该步骤中,在构建签名信息时,具体通过以下方式实现:
通过签名验证设备上的信息采集模组采集各签名者的签名信息,基于签名信息生成各签名者的信息输出参数、各签名者的密钥信息,基于生成的信息构建签名信息,即是聚合所有签名者的签名。
202、根据各签名者的签名特征,利用随机数生成算法生成对应的预承诺参数;
203、基于各签名者的预承诺参数和对应的签名特征群,计算出对应的预承诺值;
204、利用预设的第三哈希函数,基于各签名者的公钥计算出对应的聚合公钥参数;
205、利用预设的第一哈希函数,基于声明消息、各签名者的公钥和各签名者的聚合公钥参数计算出对应的承诺值参数;
206、对各签名者的承诺信息进行两两结合递归计算,基于计算的结果生成签名聚合结果和哈希二叉树;
在实际应用中,所述哈希二叉树上设有与签名者数量相等的叶子节点,所述签名信息存储于所述叶子节点中。基于该树结构,上述步骤具体可以通过以下三大步骤来实现:
1、参数生成PGen;
PGen(κ)建立一个阶为p,生成元为g的群
Figure BDA0003537353480000091
其中p是一个κ比特的素数,输出参数
Figure BDA0003537353480000092
即是基于采集到的签名者的签名特征构建一个签名特征群/>
Figure BDA0003537353480000093
该签名特征群/>
Figure BDA0003537353480000094
中包括特征g,进一步的构建输出参数/>
Figure BDA0003537353480000095
2、密钥生成KGen;
每个签名者随机选择私钥
Figure BDA0003537353480000096
并且计算相应的公钥pk:X=gx。具体的在选择私钥时,可以选择随机函数从私钥库中选择一个作为签名者的私钥,当然每个签名者一个私钥,保证后续验证计算的对应性。基于选择的私钥计算出对应的公钥,该公钥的计算需要结合输出参数中的g计算。
3、签名Sign。
本实施例中,在基于输出参数、私钥和公钥绘制树,优选的,这样采用Merkle树这种数据结构来绘制,其中Merkle树是一种哈希二叉树,是区块链中的重要的数据结构,主要在区块链中用来归纳和校验数据完整性。
在绘制过程中,通过递归地对小数据块(即是各签名者的签名信息)进行哈希,直至只剩一个数据块,即为Merkle树的根。
进一步的,在绘制完整后,还需要判断树的叶子节点是否为偶数,若否,即是数据块的数量为奇数,则Merkle树会对最后一个数据块进行复制,构成偶数个叶子节点。在Merkle树中,其最后绘制得到的节点中,除根节点与叶子节点以外的节点均为计算节点,其作用主要是对叶子节点产生的哈希值进行两两结合递归运算。
在本实施例中,将签名者作为树结构的叶子节点,中间节点作为计算节点,将原Merkle树中的哈希计算替换为我们的签名算法,同样通过节点间两两结合递归计算,得出唯一节点,即为根节点,其值即为最终的签名。
在本实施例中,在两两结合递归计算时,具体的:
根据各签名者的预承诺参数、预承诺值、聚合公钥参数和承诺值参数,计算各签名者的第一当前聚合公钥和第一当前承诺值;
根据各签名者的第一当前聚合公钥和第一当前承诺值,计算出两签名者间的第二当前聚合公钥和第二当前承诺值;
根据所述第二当前聚合公钥和第二当前承诺值,计算出所述至少两个签名者的最终聚合公钥和最终承诺值;
利用所述哈希算法中的第二哈希函数,基于所述最终聚合公钥和、最终承诺值和声明消息计算出挑战值;
根据所述挑战值以及各签名者的预承诺参数、私钥、聚合公钥参数和承诺值参数,计算出最终响应值,得到签名聚合结果;
基于区块链中的数据结构,创建逻辑结构树,其中所述逻辑结构树包括根节点、设置于所述根节点下的第一中间节点、设于所述第一中间节点下的第二中间节点和设置于所述第二中间节点下的叶子节点;
按照一个叶子节点对应一个签名者和同一节点链对应一个签名者的承诺信息的方式,将各签名者的预承诺参数、预承诺值、聚合公钥参数、承诺值参数、第一当前聚合公钥、第一当前承诺值、第二当前聚合公钥、第二当前承诺值、最终聚合公钥、最终承诺值、挑战值和最终响应值,依次添加至所述叶子节点、第二中间节点、第一中间节点和根节点中,得到哈希二叉树。
进一步的,所述按照一个叶子节点对应一个签名者和同一节点链对应一个签名者的承诺信息的方式,将各签名者的预承诺参数、预承诺值、聚合公钥参数、承诺值参数、第一当前聚合公钥、第一当前承诺值、第二当前聚合公钥、第二当前承诺值、最终聚合公钥和最终承诺值,依次添加至所述叶子节点、第二中间节点、第一中间节点和根节点中,得到哈希二叉树,包括:
按照一个叶子节点对应一个签名者的方式,将各签名者的公钥、预承诺参数、预承诺值、聚合公钥参数和承诺值参数添加至叶子节点中;
在各所述叶子节点连接的第二中间节点中,添加对应的签名者的第一当前聚合公钥和第一当前承诺值;
将与所述第一中间节点连接的第二中间节点中的签名者对应的第二当前聚合公钥和第二当前承诺值添加至所述第一中间节点中;
将所述最终聚合公钥和最终承诺值添加至所述根节点中,得到哈希二叉树。
在本实施例中,所述根据所述挑战值以及各签名者的预承诺参数、私钥、聚合公钥参数和承诺值参数,计算出最终响应值,得到签名聚合结果包括:
利用预设的第二哈希函数,基于所述最终聚合公钥、最终承诺值和声明消息计算出挑战值,并添加至所述根节点中;
基于各签名者的预承诺参数、私钥、聚合公钥参数和承诺值参数,以及所述挑战值计算出各签名者的第一当前响应值,并添加至对应的第二中间节点中;
基于各签名者的第一响应值,计算出两签名者间的第二当前响应值,并添加至对应的第一中间节点中;
基于所有第二当前响应值,计算出所述至少两个签名者的最终响应值,得到签名聚合结果,并添加至所述根节点中。
207、比较签名聚合结果与预设的聚合签名是否一致;
208、若否,则对哈希二叉树中各叶子节点进行逐一查验,确定不一致的签名信息,并剔除重新验证。
在该步骤中,在对哈希二叉树中的叶子节点进行查验时,具体是对树中的中间节点进行先组合后单一查验,具体的实现过程如下:
以所述哈希二叉树中的根节点为基点,按照自上而下的方向,通过查验函数对各个中间节点中的当前响应值进行校验,直到叶子节点为止,结束查验,得到校验结果;
将所述校验结果为不一致的对应的叶子节点中签名者的签名信息从所述哈希二叉树中剔除,并将获取相邻的叶子节点中的签名信息进行填充,得到新的哈希二叉树;
基于新的哈希二叉树中的叶子节点计算新的签名聚合结果,并进行验证。
在实际应用中,结合图3中的哈希二叉树的结构对该多重签名算法进行详细说明:
首先定义3个哈希函数
Figure BDA0003537353480000111
多重签名算法FTMS=(PGen,KGen,Sign,Verify,FD,FR),定义(S1,...,Sn)为签名者的叶子节点集合,S0为根节点。输入公共参数par,签名者Si的私钥xi,消息m以及树结构τ。签名算法Sign(par,xi,m,τ)由以下四部分组成:
·阶段1:声明阶段。
在根节点S0收到一个消息m后,它开始在树结构上自上向下它的子节点多播该消息m。
·阶段2:承诺阶段。
当接收到声明阶段的消息m后:
A)预承诺:每个签名者Si生成随机数
Figure BDA0003537353480000112
计算/>
Figure BDA0003537353480000113
Figure BDA0003537353480000114
同时广播公钥pki以及预承诺值(Ti1,Ti2)。
B)公钥聚合与承诺计算:给定签名者的公钥集L=(pk1,pk2,...,pkn),消息m,公钥数量n,以及每个签名者的预承诺值(Ti1,Ti2)。叶子节点计算其聚合公钥参数ai=H3(L,pki)以及承诺值参数bij=H1(Xi,m,Tij),并将两个参数向上传递至父节点Mi。Mi计算该节点的当前聚合公钥
Figure BDA0003537353480000115
以及当前承诺值/>
Figure BDA0003537353480000116
计算完成后,每相邻两个节点作为左右子节点进行乘法运算得出其父节点的当前聚合公钥与当前承诺值,即/>
Figure BDA0003537353480000117
Tl,r=TlTr,重复进行该操作,直至生成唯一的聚合公钥/>
Figure BDA0003537353480000118
以及最终承诺值/>
Figure BDA0003537353480000119
·阶段3:挑战阶段。
给定消息m,最终承诺值T,聚合公钥
Figure BDA00035373534800001110
根节点S0计算挑战值/>
Figure BDA00035373534800001111
并将该挑战值自上而下广播到每个签名者。
·阶段4:响应阶段。
当签名者Si收到c,可得出其响应值为:
Figure BDA00035373534800001112
以同样的树结构的方式进行计算,每个非根节点的响应值称为当前响应值。最终S0可以得到最终响应值
Figure BDA00035373534800001113
并输出签名σ=(c,S)。
(1)验证Verify
给定签名σ=(c,S),以及聚合公钥
Figure BDA00035373534800001114
然后验证等式/>
Figure BDA00035373534800001115
如果等式成立,则σ为有效签名;若不成立,则无效。(也即是/>
Figure BDA00035373534800001116
等式中的s,T,/>
Figure BDA00035373534800001117
c,均是变量,g是不变量,通过上述步骤计算出实时的s,T,/>
Figure BDA00035373534800001118
c,从而计算等式是否成立?)
(2)错误查询FD
假设验证不通过,根节点S0自上而下通过等式
Figure BDA0003537353480000121
进行逐一查验,其中,
Figure BDA0003537353480000122
为当前节点的响应值、承诺值、聚合公钥。如果等式通过,则不继续向下进行查验,如果等式未通过,则继续向下对其左右子节点根据子节点的响应值、承诺值、聚合公钥进行查验,直到叶子节点为止。
在图3中,假设S3为恶意节点,它的签名为无效签名。当S0验证失败进行错误查询,通过等式
Figure BDA0003537353480000123
可验证得到/>
Figure BDA0003537353480000124
而/>
Figure BDA0003537353480000125
因此从右子树继续向下查询,在右子树进行相同的计算验证,可最终查到S3,返回S3并继续下一步操作。
(3)错误移除FR
在图3的树结构中,由于除非根节点以外的非签名者节点均为计算节点,即该节点仅负责其计算结果与向上进行传播的功能,因此,恶意节点只能存在于签名者节点中。所以,假设恶意签名者Si的公钥为pki,给定已查找到存在恶意节点的公钥集L′=(pk1,...,pki-1,pki,pki+1,...,pkn),则将恶意节点pki替换为其相邻节点(假设为pki-1),则新的公钥集为L"=(pk1,...,pki-1,pki-1,pki+1,...,pkn),可得新的聚合参数ai′=H3(L",pki-1),新的承诺值为
Figure BDA0003537353480000126
其中,b′ij=H(L",m,Rij)。然后重新进行相应计算,得出最终的签名σ′。根据验证等式/>
Figure BDA0003537353480000127
在根节点S0重新进行一次签名验证。
通过对上述方法的实施,通过多重签名算法对各签名者的签名信息进行承诺信息的计算,并基于计算到的承诺信息构建哈希二叉树,并对签名者做两两结合的递归计算,得到签名聚合结果,然后对签名聚合结果进行验证,当验证不通过时,通过对哈希二叉树中的节点进行查验,从而筛选出恶意的签名者的签名信息,这样的方式不仅实现了聚合验证,还实现了在后期验证不通过时,使用错误检测算法FD(Fault Detection)与错误移除算法FR(Fault Remove)来剔除恶意签名者的信息,以进行再次验证,这样的实现方式使得在对签名验证时,可以容忍恶意签名者的存在也可实现正确的签名验证,大大提高了验证的准确度,以及使用体验。
上面对本发明实施例中基于多重签名的验证方法进行了描述,下面对本发明实施例中基于多重签名的验证装置进行描述,请参阅图4,本发明实施例中基于多重签名的验证装置一个实施例包括:
签名获取模块410,用于获取至少两个签名者的签名信息,以及声明消息;
承诺计算模块420,用于利用预设的多重签名算法,基于所述声明消息和各所述签名信息计算各签名者的承诺信息;
聚合计算模块430,用于对各签名者的承诺信息进行两两结合递归计算,基于计算的结果生成签名聚合结果和哈希二叉树,其中所述哈希二叉树上设有与签名者数量相等的叶子节点,所述签名信息存储于所述叶子节点中;
聚合验证模块440,用于比较所述签名聚合结果与预设的聚合签名是否一致;
查验验证模块450,用于在对比的结果为不一致时,对所述哈希二叉树中各叶子节点进行逐一查验,确定不一致的签名信息,并剔除重新验证。
本实施例提供的装置,通过多重签名算法对各签名者的签名信息进行承诺信息的计算,并基于计算到的承诺信息构建哈希二叉树,并对签名者做两两结合的递归计算,得到签名聚合结果,然后对签名聚合结果进行验证,当验证不通过时,通过对哈希二叉树中的节点进行查验,从而筛选出恶意的签名者的签名信息,这样的方式实现了多个签名者的同时一次认证,提高验证效率,并且使用了哈希二叉树对多个签名者的签名信息的存储,便于后续存在恶意时能快速查找到恶意签名者并移除该错误签名,且其他签名者不需要进行签名重传操作,提高了再次验证时的通过率。
进一步地,请参阅图5,图5为基于多重签名的验证装置各个模块的细化示意图.
在本实施例另一实施例中,所述签名获取模块410包括:
特征采集单元411,用于获取各所述签名者的所有签名特征和声明消息,并基于所述签名特征构建各签名者的签名特征群;
解析单元412,用于对各所述签名特征群进行解析,生成对应的输出参数;
私钥计算单元413,用于利用哈希算法随机生成与每个签名者对应的私钥;
公钥计算单元414,用于基于各所述签名者对应的私钥,计算出对应的公钥;
签名生成单元415,用于根据各所述输出参数、私钥和公钥,得到各所述签名者对应的签名信息。
在本实施例另一实施例中,所述承诺信息为预承诺信息和当前承诺信息,所述承诺计算模块420包括:
第一计算单元421,用于根据各所述签名者的签名特征,利用随机数生成算法生成对应的预承诺参数;
第二计算单元422,用于基于各所述签名者的预承诺参数和对应的签名特征群,计算出对应的预承诺值;
第三计算单元423,用于利用预设的第三哈希函数,基于各签名者的公钥计算出对应的聚合公钥参数;
第四计算单元424,用于利用预设的第一哈希函数,基于所述声明消息、各签名者的公钥和各签名者的聚合公钥参数计算出对应的承诺值参数。
在本实施例另一实施例中,所述聚合计算模块430包括:
第五计算单元431,用于根据各签名者的预承诺参数、预承诺值、聚合公钥参数和承诺值参数,计算各签名者的第一当前聚合公钥和第一当前承诺值;
第六计算单元432,用于根据各签名者的第一当前聚合公钥和第一当前承诺值,计算出两签名者间的第二当前聚合公钥和第二当前承诺值;
第七计算单元433,用于根据所述第二当前聚合公钥和第二当前承诺值,计算出所述至少两个签名者的最终聚合公钥和最终承诺值;
第八计算单元434,用于利用所述哈希算法中的第二哈希函数,基于所述最终聚合公钥和、最终承诺值和声明消息计算出挑战值;
聚合单元435,用于根据所述挑战值以及各签名者的预承诺参数、私钥、聚合公钥参数和承诺值参数,计算出最终响应值,得到签名聚合结果;
树创建单元436,用于基于区块链中的数据结构,创建逻辑结构树,其中所述逻辑结构树包括根节点、设置于所述根节点下的第一中间节点、设于所述第一中间节点下的第二中间节点和设置于所述第二中间节点下的叶子节点;
树生成单元437,用于按照一个叶子节点对应一个签名者和同一节点链对应一个签名者的承诺信息的方式,将各签名者的预承诺参数、预承诺值、聚合公钥参数、承诺值参数、第一当前聚合公钥、第一当前承诺值、第二当前聚合公钥、第二当前承诺值、最终聚合公钥、最终承诺值、挑战值和最终响应值,依次添加至所述叶子节点、第二中间节点、第一中间节点和根节点中,得到哈希二叉树。
在本实施例另一实施例中,所述树生成单元437具体用于:
按照一个叶子节点对应一个签名者的方式,将各签名者的公钥、预承诺参数、预承诺值、聚合公钥参数和承诺值参数添加至叶子节点中;
在各所述叶子节点连接的第二中间节点中,添加对应的签名者的第一当前聚合公钥和第一当前承诺值;
将与所述第一中间节点连接的第二中间节点中的签名者对应的第二当前聚合公钥和第二当前承诺值添加至所述第一中间节点中;
将所述最终聚合公钥和最终承诺值添加至所述根节点中,得到哈希二叉树。
在本实施例另一实施例中,所述聚合单元435具体用于:
利用预设的第二哈希函数,基于所述最终聚合公钥、最终承诺值和声明消息计算出挑战值,并添加至所述根节点中;
基于各签名者的预承诺参数、私钥、聚合公钥参数和承诺值参数,以及所述挑战值计算出各签名者的第一当前响应值,并添加至对应的第二中间节点中;
基于各签名者的第一响应值,计算出两签名者间的第二当前响应值,并添加至对应的第一中间节点中;
基于所有第二当前响应值,计算出所述至少两个签名者的最终响应值,得到签名聚合结果,并添加至所述根节点中。
在本实施例另一实施例中,所述查验验证模块450包括:
校验单元451,用于以所述哈希二叉树中的根节点为基点,按照自上而下的方向,通过查验函数对各个中间节点中的当前响应值进行校验,直到叶子节点为止,结束查验,得到校验结果;
调整单元452,用于将所述校验结果为不一致的对应的叶子节点中签名者的签名信息从所述哈希二叉树中剔除,并将获取相邻的叶子节点中的签名信息进行填充,得到新的哈希二叉树;
验证单元453,用于基于新的哈希二叉树中的叶子节点计算新的签名聚合结果,并进行验证。
通过上述装置的实施,通过将签名算法结合Merkle树对各签名者的签名信息构建树,基于构建的树将所有签名者进行聚合计算,得到签名聚合结果来进行签名验证,并且在后期验证不通过时,使用错误检测算法FD(Fault Detection)与错误移除算法FR(FaultRemove)来剔除恶意签名者的信息,以进行再次验证,这样的实现方式使得在对签名验证时,可以容忍恶意签名者的存在也可实现正确的签名验证,大大提高了验证的准确度,以及使用体验。
上面图4和图5从模块化功能实体的角度对本发明实施例中的基于多重签名的验证装置进行详细描述,下面从硬件处理的角度对本发明实施例中电子设备进行详细描述。
图6是本发明实施例提供了一种电子设备的结构示意图,该电子设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,CPU)810(例如,一个或一个以上处理器)和存储器820,一个或一个以上存储应用程序833或数据832的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器820和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对电子设备800中的一系列指令操作。更进一步地,处理器810可以设置为与存储介质830通信,在电子设备800上执行存储介质830中的一系列指令操作。在实际应用中,该应用程序833可以被分割成签名获取模块410、承诺计算模块420、聚合计算模块430、聚合验证模块440和查验验证模块450(虚拟装置中的模块)的功能。
电子设备800还可以包括一个或一个以上电源840,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口860,和/或,一个或一个以上操作系统831,例如:WindowsServe,MacOSX,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的电子设备结构还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例提供的基于多重签名的验证方法中的各个步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令或计算机程序,当所述指令或计算机程序被运行时,使得计算机执行上述实施例提供的基于多重签名的验证方法的各个步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(randomaccessmemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于多重签名的验证方法,其特征在于,所述基于多重签名的验证方法包括:
获取至少两个签名者的签名信息,以及声明消息;
利用预设的多重签名算法,基于所述声明消息和各所述签名信息计算各签名者的承诺信息;
对各签名者的承诺信息进行两两结合递归计算,基于计算的结果生成签名聚合结果和哈希二叉树,其中所述哈希二叉树上设有与签名者数量相等的叶子节点,所述签名信息存储于所述叶子节点中;
比较所述签名聚合结果与预设的聚合签名是否一致;
若否,则对所述哈希二叉树中各叶子节点进行逐一查验,确定不一致的签名信息,并剔除重新验证。
2.根据权利要求1所述的基于多重签名的验证方法,其特征在于,所述获取至少两个签名者的签名信息,以及声明消息,包括:
获取各所述签名者的所有签名特征和声明消息,并基于所述签名特征构建各签名者的签名特征群;
对各所述签名特征群进行解析,生成对应的输出参数;
利用哈希算法随机生成与每个签名者对应的私钥;
基于各所述签名者对应的私钥,计算出对应的公钥;
根据各所述输出参数、私钥和公钥,得到各所述签名者对应的签名信息。
3.根据权利要求2所述的基于多重签名的验证方法,其特征在于,所述承诺信息为预承诺信息和当前承诺信息,所述利用预设的多重签名算法,基于所述声明消息和各所述签名信息计算各签名者的承诺信息,包括:
根据各所述签名者的签名特征,利用随机数生成算法生成对应的预承诺参数;
基于各所述签名者的预承诺参数和对应的签名特征群,计算出对应的预承诺值;
利用预设的第三哈希函数,基于各签名者的公钥计算出对应的聚合公钥参数;
利用预设的第一哈希函数,基于所述声明消息、各签名者的公钥和各签名者的聚合公钥参数计算出对应的承诺值参数。
4.根据权利要求3所述的基于多重签名的验证方法,其特征在于,所述对各签名者的承诺信息进行两两结合递归计算,基于计算的结果生成签名聚合结果和哈希二叉树,包括:
根据各签名者的预承诺参数、预承诺值、聚合公钥参数和承诺值参数,计算各签名者的第一当前聚合公钥和第一当前承诺值;
根据各签名者的第一当前聚合公钥和第一当前承诺值,计算出两签名者间的第二当前聚合公钥和第二当前承诺值;
根据所述第二当前聚合公钥和第二当前承诺值,计算出所述至少两个签名者的最终聚合公钥和最终承诺值;
利用所述哈希算法中的第二哈希函数,基于所述最终聚合公钥和、最终承诺值和声明消息计算出挑战值;
根据所述挑战值以及各签名者的预承诺参数、私钥、聚合公钥参数和承诺值参数,计算出最终响应值,得到签名聚合结果;
基于区块链中的数据结构,创建逻辑结构树,其中所述逻辑结构树包括根节点、设置于所述根节点下的第一中间节点、设于所述第一中间节点下的第二中间节点和设置于所述第二中间节点下的叶子节点;
按照一个叶子节点对应一个签名者和同一节点链对应一个签名者的承诺信息的方式,将各签名者的预承诺参数、预承诺值、聚合公钥参数、承诺值参数、第一当前聚合公钥、第一当前承诺值、第二当前聚合公钥、第二当前承诺值、最终聚合公钥、最终承诺值、挑战值和最终响应值,依次添加至所述叶子节点、第二中间节点、第一中间节点和根节点中,得到哈希二叉树。
5.根据权利要求4所述的基于多重签名的验证方法,其特征在于,所述按照一个叶子节点对应一个签名者和同一节点链对应一个签名者的承诺信息的方式,将各签名者的预承诺参数、预承诺值、聚合公钥参数、承诺值参数、第一当前聚合公钥、第一当前承诺值、第二当前聚合公钥、第二当前承诺值、最终聚合公钥和最终承诺值,依次添加至所述叶子节点、第二中间节点、第一中间节点和根节点中,得到哈希二叉树,包括:
按照一个叶子节点对应一个签名者的方式,将各签名者的公钥、预承诺参数、预承诺值、聚合公钥参数和承诺值参数添加至叶子节点中;
在各所述叶子节点连接的第二中间节点中,添加对应的签名者的第一当前聚合公钥和第一当前承诺值;
将与所述第一中间节点连接的第二中间节点中的签名者对应的第二当前聚合公钥和第二当前承诺值添加至所述第一中间节点中;
将所述最终聚合公钥和最终承诺值添加至所述根节点中,得到哈希二叉树。
6.根据权利要求4所述的基于多重签名的验证方法,其特征在于,所述根据所述挑战值以及各签名者的预承诺参数、私钥、聚合公钥参数和承诺值参数,计算出最终响应值,得到签名聚合结果包括:
利用预设的第二哈希函数,基于所述最终聚合公钥、最终承诺值和声明消息计算出挑战值,并添加至所述根节点中;
基于各签名者的预承诺参数、私钥、聚合公钥参数和承诺值参数,以及所述挑战值计算出各签名者的第一当前响应值,并添加至对应的第二中间节点中;
基于各签名者的第一响应值,计算出两签名者间的第二当前响应值,并添加至对应的第一中间节点中;
基于所有第二当前响应值,计算出所述至少两个签名者的最终响应值,得到签名聚合结果,并添加至所述根节点中。
7.根据权利要求6所述的基于多重签名的验证方法,其特征在于,所述对所述哈希二叉树中各叶子节点进行逐一查验,确定不一致的签名信息,并剔除重新验证,包括:
以所述哈希二叉树中的根节点为基点,按照自上而下的方向,通过查验函数对各个中间节点中的当前响应值进行校验,直到叶子节点为止,结束查验,得到校验结果;
将所述校验结果为不一致的对应的叶子节点中签名者的签名信息从所述哈希二叉树中剔除,并将获取相邻的叶子节点中的签名信息进行填充,得到新的哈希二叉树;
基于新的哈希二叉树中的叶子节点计算新的签名聚合结果,并进行验证。
8.一种基于多重签名的验证装置,其特征在于,所述基于多重签名的验证装置包括:
签名获取模块,用于获取至少两个签名者的签名信息,以及声明消息;
承诺计算模块,用于利用预设的多重签名算法,基于所述声明消息和各所述签名信息计算各签名者的承诺信息;
聚合计算模块,用于对各签名者的承诺信息进行两两结合递归计算,基于计算的结果生成签名聚合结果和哈希二叉树,其中所述哈希二叉树上设有与签名者数量相等的叶子节点,所述签名信息存储于所述叶子节点中;
聚合验证模块,用于比较所述签名聚合结果与预设的聚合签名是否一致;
查验验证模块,用于在对比的结果为不一致时,对所述哈希二叉树中各叶子节点进行逐一查验,确定不一致的签名信息,并剔除重新验证。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的基于多重签名的验证方法中的各个步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的基于多重签名的验证方法中的各个步骤。
CN202210220885.0A 2022-03-08 2022-03-08 基于多重签名的验证方法、装置、设备及存储介质 Active CN114666058B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210220885.0A CN114666058B (zh) 2022-03-08 2022-03-08 基于多重签名的验证方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210220885.0A CN114666058B (zh) 2022-03-08 2022-03-08 基于多重签名的验证方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114666058A CN114666058A (zh) 2022-06-24
CN114666058B true CN114666058B (zh) 2023-06-13

Family

ID=82028810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210220885.0A Active CN114666058B (zh) 2022-03-08 2022-03-08 基于多重签名的验证方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114666058B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117499039B (zh) * 2023-10-09 2024-03-26 贵州大学 基于椭圆曲线公钥密码算法的区块链签名方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012216916A (ja) * 2011-03-31 2012-11-08 Kddi Corp 多重署名システム、検証システム、多重署名方法及び多重署名プログラム
CN111159288A (zh) * 2019-12-16 2020-05-15 郑杰骞 链式结构数据存储、验证、实现方法、系统、装置及介质
CN113095827A (zh) * 2021-04-09 2021-07-09 杭州复杂美科技有限公司 匿名多重签名方法、计算机设备和存储介质
CN113708927A (zh) * 2021-08-25 2021-11-26 福建师范大学 基于sm2数字签名的泛指定验证者签名证明系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012216916A (ja) * 2011-03-31 2012-11-08 Kddi Corp 多重署名システム、検証システム、多重署名方法及び多重署名プログラム
CN111159288A (zh) * 2019-12-16 2020-05-15 郑杰骞 链式结构数据存储、验证、实现方法、系统、装置及介质
CN113095827A (zh) * 2021-04-09 2021-07-09 杭州复杂美科技有限公司 匿名多重签名方法、计算机设备和存储介质
CN113708927A (zh) * 2021-08-25 2021-11-26 福建师范大学 基于sm2数字签名的泛指定验证者签名证明系统

Also Published As

Publication number Publication date
CN114666058A (zh) 2022-06-24

Similar Documents

Publication Publication Date Title
EP3693886B1 (en) Optimizations for verification of interactions system and method
US11017036B2 (en) Publicly verifiable proofs of space
Cormode et al. Practical verified computation with streaming interactive proofs
Esiner et al. Flexdpdp: Flexlist-based optimized dynamic provable data possession
Blanton et al. Secure outsourced computation of iris matching
CN114666058B (zh) 基于多重签名的验证方法、装置、设备及存储介质
CN114281888A (zh) 一种区块链共识方法、装置、设备及存储介质
Wenger et al. Harder, better, faster, stronger: elliptic curve discrete logarithm computations on FPGAs
Naik et al. Fuzzy-Import Hashing: A malware analysis approach
CN112348518A (zh) 一种区块链交易证明的方法及装置
US20050027764A1 (en) Polynomial time deterministic method for testing primality of numbers
CN114338673A (zh) 一种交易数据处理方法、装置、设备、系统及存储介质
Lu et al. Secure dynamic big graph data: Scalable, low-cost remote data integrity checking
CN114745173B (zh) 登陆验证方法、装置、计算机设备和存储介质
CN113037495B (zh) 一种椭圆曲线签名算法的安全评估方法
CN115021944A (zh) 基于聚合签名和时空证明算法的共识方法及装置
Blibech et al. A new timestamping scheme based on skip lists
CN115426117B (zh) 一种多源聚合查询验证方法
CN111460364A (zh) 使用退火解决多元二次问题的方法、可读存储介质及系统
Xi et al. FE-SViT: A SViT-based fuzzy extractor framework
CN112615874B (zh) 一种网络防护方法及装置
CN117610087B (zh) 区块处理方法及装置、电子设备
Iavich et al. A Post-Quantum Digital Signature Using Verkle Trees and Lattices. Symmetry 2023, 15, 2165
US12013830B2 (en) System and method using bloom filters to improve system reliability
Laurent et al. Redundancy in distributed proofs

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