CN116391346A - 秘密分享的重新分发 - Google Patents

秘密分享的重新分发 Download PDF

Info

Publication number
CN116391346A
CN116391346A CN202080105718.0A CN202080105718A CN116391346A CN 116391346 A CN116391346 A CN 116391346A CN 202080105718 A CN202080105718 A CN 202080105718A CN 116391346 A CN116391346 A CN 116391346A
Authority
CN
China
Prior art keywords
secret
shares
share
key
sub
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.)
Pending
Application number
CN202080105718.0A
Other languages
English (en)
Inventor
J·卡默尼施
A·切鲁利
M·德里杰沃斯
J·格罗斯
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.)
Di Feniti Foundation
Original Assignee
Di Feniti Foundation
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 Di Feniti Foundation filed Critical Di Feniti Foundation
Publication of CN116391346A publication Critical patent/CN116391346A/zh
Pending legal-status Critical Current

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

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

Abstract

用于将秘密s的(n,t)秘密分享从一组交易者重新分发给一组接收者的方法。该方法包括由至少阈值数量t的交易者中的每个交易者执行:‑创建其相应秘密分享的(n',t')秘密分享;‑创建一组密文,其对于每个接收者包括其相应秘密分享的n1个秘密子分享中的一个加密子分享,并且相对于相应接收者的公开加密密钥被加密。公开加密密钥是公钥加密方案的密钥;‑生成所述一组密文联合包含其秘密分享的重新分发的非交互式零知识证明;‑向所述一组接收者广播交易,交易包括针对所述一组接收者的所述一组密文和对应的非交互式零知识证明。

Description

秘密分享的重新分发
技术领域
本发明涉及用于将秘密的预先存在的秘密分享从一组交易者重新分发给一组接收者的计算机实现的方法。
其它方面涉及分布式网络、分布式网络的节点、对应的计算机程序产品和编码在非暂态介质上的软件体系架构。
背景技术
在分布式网络中,多个节点以分布式方式布置。在分布式网络计算中,软件和数据分散在多个节点上。节点建立计算资源,并且分布式网络可以使用分布式计算技术。
分布式网络的示例是区块链网络。区块链网络是基于共识的、基于区块的电子账簿。每个区块包括交易和其它信息。此外,每个区块包含前一个区块的散列,使得区块变得链接在一起,以为所有已写入区块链的交易创建永久的、不可更改的记录。交易可能包含已知例如作为智能合约的小程序。
为了将交易写入到区块链,它必须由网络“核实”。换句话说,网络节点必须获得对要写入到区块链的区块的同意。这种同意可以通过各种共识协议来实现。
一种类型的共识协议是工作量证明共识协议。工作量证明共识协议通常需要参与共识协议的各方进行一些工作,通常对应于计算机的处理时间。
基于工作量证明的加密货币系统(诸如比特币)涉及解决计算密集型难题来核实交易和创建新区块。
另一种类型的共识协议是权益证明共识协议。这种权益证明协议的优势在于它们不需要耗时和耗能的计算。例如,在基于权益证明的区块链网络中,下一个区块的创建者是经由网络中相应节点的权益以及随机选择的组合来选择的。
除加密货币外,分布式网络还可以用于各种其它应用。特别地,它们可以用于提供去中心化和分布式计算能力和服务。
分布式网络的一个问题是为网络的节点的密钥管理提供高效和安全的方法。
分布式网络特别地可以使用公钥密码来加密和解密消息和/或发布和验证数字签名。
在更改网络配置的情况下以及出于安全原因,通常期望重新分享(或换句话说重新分发)与使用的加密/解密方案相关联的密钥材料,特别是密钥材料的秘密。
发明内容
本发明的一个方面的一个目的是提供一种用于重新分发预先存在的秘密分享的先进方法,特别是在效率和/或安全性方面。
根据本发明的第一方面的实施例,提供了一种用于将秘密s的(n,t)秘密分享从一组交易者重新分发给一组接收者的计算机实现的方法。(n,t)秘密分享包括n个秘密分享,其中阈值数量t≤n的秘密分享足以重构秘密s。该方法包括由至少阈值数量t的交易者中的每个交易者执行以下步骤:创建其相应秘密分享的(n',t')秘密分享,该(n',t')秘密分享包括其相应秘密分享的n'个秘密子分享,其中阈值数量t'≤n'的秘密子分享足以重构秘密分享。该方法还包括由至少阈值数量t的交易者中的每个交易者执行以下步骤:创建一组密文,该组密文对于每个接收者包括其相应秘密分享的n'个秘密子分享中的一个加密子分享,加密的秘密子分享相对于相应接收者的公开加密密钥被加密。公开加密密钥是公钥加密方案的密钥。该方法还包括由至少阈值数量t的交易者中的每个交易者执行生成所述一组密文联合包含其秘密分享的重新分发的非交互式零知识证明的步骤,以及将交易广播给所述一组接收者的步骤,该交易包括针对所述一组接收者的所述一组密文和对应的非交互式零知识证明。
该方法的实施例允许将现有的秘密分享从一组交易者重新分享或重新分发给一组接收者。因此,根据本发明的实施例的方法提供了一种将秘密分享从多个交易者重新分发给多个接收者的方法。
根据这样实施的方法,可以以高效且安全的方式执行秘密分享的重新分发。更特别地,加密的子分享和对应的零知识证明的广播促进了一组交易者和一组接收者之间的高效通信。特别地,可以以非交互式的方式执行重新分发,即,每个交易者只生成单个交易并将该单个交易广播给读取广播的交易的一组接收者。
除了广播之外,该组交易者和该组接收者之间不需要进一步的交互。这包括交易者和接收者之间不需要双边通信,也没有投诉阶段。
特别地,接收者之间不需要交互。接收者可以彼此独立地验证广播的交易,而不必与任何方进行交互。
实施的方法的非交互式的特性,特别是接收者不必与任何方交互的特性,通过由各个交易者中的每个交易者为每个单次交易提供单独的非交互式零知识证明而得到特别促进。非交互式零知识证明保证每个接收者可以解密并获得其正确的分享。因此,一组接收者可以以独立的方式验证秘密分享的正确性。
根据实施例,非交互式零知识证明应被定义为如下零知识证明,其被配置为使得一组接收者不必与任何方交互,即,既不与证明者也不与任何其它接收者交互来验证证明。
零知识证明提供了一组密文联合包含相应交易者的秘密分享的重新分发的证明。换句话说,零知识证明提供了如下证明:每个交易者产生的一组密文包括交易者的秘密分享的正确分享,即,该组密文是正确秘密分享的有效加密。
根据实施例,该方法还包括由预定义的一组各方,特别是一组接收者,检查交易的非交互式零知识证明。一旦成功检查或换句话说验证了足够数量t的证明,每个接收者就可以解密其在交易中的加密子分享。换句话说,每个接收者可以从由一组交易者广播的每个交易中接收和解密一个子分享。然后每个接收者可以将解密的子分享组合成秘密的新的秘密分享。
根据另一个实施例,每个零知识证明以非交互式的方式配置,使得每个交易者可以在不与任何其它交易者交互的情况下创建其零知识证明。
因此,根据这样的实施例,非交互式零知识证明是一种证明,它被配置为使得不仅接收者,而且交易者不必彼此交互,并且它们不必与接收者交互,除了创建稍后广播给接收者的输出之外。
这进一步提高了效率。
根据进一步的实施例,零知识证明是可公开验证的零知识证明。可公开验证的零知识证明可以被定义为可以被任何方,特别是任何相关方验证的证明。因此,当交易完成并被广播时,任何方可以通过证明来检查交易是正确的,以及所有接收者能够从交易中获得正确的分享。
根据实施例,秘密分享是线性秘密分享,特别是Shamir秘密分享。
根据实施例,该方法包括以下步骤:由每个交易者创建与其秘密分享相关联的关联公钥材料和所述秘密分享的其秘密分享,以及将关联公钥材料添加到交易。
一般而言,关联公钥材料可以被定义为根据秘密分享的材料。
根据实施例,关联公钥材料可以包括与相应交易者创建的秘密分享相关/相关联的公开群元素。
根据实施例,关联公钥材料可以包括与相应交易者的秘密分享相关/相关联的公开群元素。
根据实施例,交易者具有其秘密分享的秘密是与公钥签名方案的公开验证密钥对应的私钥。
根据实施例,该方法还包括由任何参与者或一方,特别是接收者,从一组交易者创建的关联公钥材料创建与接收者的新秘密分享相关联的新关联公钥材料以及接收者的新秘密分享。
根据实施例,新的关联公钥材料可以通过拉格朗日插值来计算。
根据实施例,创建新的关联公钥材料包括从一组交易者创建的关联公钥材料中导出新的关联公钥材料。
根据实施例,新的关联公钥材料可以包括与接收者的新秘密分享相关联的公开分享验证密钥。
根据实施例,新的关联公钥材料可以包括与私钥相关的公开验证密钥。
根据实施例,新的关联公钥材料可以包括可以从中导出接收者的公开分享验证密钥和/或公开验证密钥的元素。
在公钥签名方案的情况下,公开验证密钥可以用于验证签名,特别是已经由一组接收者使用它们的新秘密分享共同产生的阈值签名。
并且公开分享验证密钥可以用于验证由相应接收者使用其新秘密分享生成的个人签名。
根据实施例,该方法还包括使用具有选择的密文攻击安全性的公钥加密方案来加密针对接收者的秘密子分享。
这进一步增加了方法的安全性。
根据实施例,该方法还包括使用具有前向保密性的公钥加密方案来加密针对接收者的秘密子分享。
在这种具有前向保密性的加密方案中,时间被划分为纪元(epoch),并且消息/子分享被加密到特定的纪元。在对应的秘密分享重新分发方案中,一组接收者可以更新其解密密钥以匹配当前纪元,并且它们可以删除以前纪元的解密密钥。这样的方案确保即使接收者受到损害,它也无法解密包含过去纪元的秘密子分享的旧密文。
这增加了方法的安全性。
根据实施例,具有前向保密性的加密方案可以被实现为二叉树加密方案。这种二叉树加密方案将明文作为输入,并将其加密到高度为λ的二叉树的叶子。每个叶子可以关联解密密钥,并且该解密密钥的持有者可以恢复明文。还有与内部节点相关联的解密密钥。内部节点的解密密钥允许您为该节点的任何子节点导出解密密钥。这意味着,如果您具有根的解密密钥,那么您可以导出所有叶子的解密密钥。但是,如果您没有根的解密密钥,那么您只能解密与您持有的解密密钥的子树中的叶子相关的密文。
根据进一步的实施例,该方法包括在虚拟硬件安全性模块或硬件安全性模块上,特别是在单独的进程上执行加密子分享的解密。
供给这样的硬件安全性模块可以防止对手可以获知解密密钥。根据这样的实施例,包括解密密钥的存储的解密过程是在硬化的、防篡改的环境中执行的。根据实施例,硬件安全性模块包括一个或多个安全密码处理器。
根据实施例,这种硬件安全性模块与具有CCA安全性的公钥加密方案的组合提供了具有主动安全性的加密方案。
根据实施例,公钥加密方案是多接收者加密方案。多接收者加密方案被配置为对于一组接收者的公开加密密钥加密交易者的子分享。
根据实施例,多接收者加密方案使用分享随机性来对于一组接收者的公开加密密钥加密一组交易者的子分享。这是特别高效的。
根据实施例,加密方案被配置为执行子分享的分块加密,其中每个子分享被分成多个明文,特别是小明文或换句话说适度尺寸的明文,每个表示一个块。
根据实施例,该方法包括由一组交易者生成进一步的非交互式零知识证明,该进一步的零知识证明被配置为证明分块加密是正确的。进一步的零知识证明也可以表示为第二零知识证明,并且一组密文联合包含秘密分享的重新分发的证明可以表示为第一零知识证明。根据实施例,第一和第二零知识证明也可以组合在一个共同证明中。
根据实施例,广播交易的步骤包括将交易放在公告板(即,接收者可以读取的永久数字记录)上。根据实施例,可以例如经由区块链/分布式账簿实现这样的公告板。
根据实施例,公告板被配置为使得放置在公告板上的交易不可能被删除。
根据实施例,公告板被配置为使得交易认证发送者。
根据实施例,公告板被配置为使得放置在公告板上的交易具有定义的顺序。
根据另一方面的实施例,提供了一种包括多个节点的分布式网络,其中该分布式网络被配置为执行根据上述任何实施例所述的用于重新分发(n,t)秘密分享的计算机实现的方法。
根据本发明另一方面的实施例,提供了一种分布式网络的节点。
根据本发明另一方面的实施例,提供了一种用于操作分布式网络的计算机程序产品。该计算机程序产品包括具有与其一起实施的程序指令的计算机可读存储介质,该程序指令可由分布式网络的多个节点中的一个或多个节点执行以使多个节点中的一个或多个节点执行本发明的方法方面的步骤。
根据本发明另一方面的实施例,提供了一种用于操作分布式网络的节点的计算机程序产品。
根据本发明另一方面的实施例,提供了一种编码在非暂态计算机可读介质上的软件体系架构。软件体系架构被配置为操作分布式网络的一个或多个节点。编码软件体系架构包括可由多个节点中的一个或多个节点执行以使得多个节点中的一个或多个节点执行包括本发明的方法方面的步骤的方法的程序指令。
本发明的一个方面的特征和优点可以适当地应用于本发明的其它方面。
在从属权利要求以及下面的描述中列出了其它有利的实施例。
附图说明
通过其下面的详细描述,本发明将得到更好的理解,并且上述目的以外的目的将变得清楚。这种描述参考了附图,其中:
图1示出了根据本发明的实施例的分布式网络的示例性框图;
图2示出了子网随时间的演变;
图3示出了对应的表,其包括子网的多组秘密/私钥以及一组接收者的解密密钥的对应演变;
图4以更详细的方式图示了在网络节点上运行的计算单元;
图5图示了用于重新分发秘密分享的方法的交易的创建和广播;
图6图示了图5的交易的接收者可以如何验证、解密和组合它们来自广播的交易的新分享;
图7图示了使用多接收者加密的秘密分享的重新分发方法的交易的创建和广播;
图8图示了图7的交易的接收者可以如何验证、解密和组合它们来自广播的交易的新分享;
图9示出了根据本发明的实施例的方法的方法步骤的流程图;
图10示出了根据本发明的实施例的方法的进一步方法步骤的流程图;
图11图示了根据本发明的实施例可以使用的验证密钥及其对应的私钥分享的实施例;以及
图12示出了根据本发明的实施例的网络节点的更详细的框图。
具体实施方式
首先,将介绍本发明的实施例的一些一般方面和术语。
根据实施例,分布式网络包括以分布式方式布置的多个节点。在这种分布式网络计算中,软件和数据分布在多个节点上。节点建立计算资源,并且分布式网络特别地可以使用分布式计算技术。
根据实施例,分布式网络可以特别地实施为区块链网络。术语“区块链”应包括所有形式的电子、基于计算机的分布式账簿。根据一些实施例,区块链网络可以被实施为工作量证明区块链网络。根据其它实施例,区块链网络可以被实施为权益证明区块链网络。
参与者:在不同的物理机器上实现为软件片段,并假设具有网络访问权限以相互通信。
交易者:一组参与者
接收者:另一组参与者,可能与一组交易者重叠,或者可能不重叠
线性秘密分享:一种秘密分享方案,其中可以通过将矩阵M应用于秘密s和一些随机群元素r的矩阵运算来计算分享,即,(s1,...,sn)=(s,r1,...,rt-1)M。
沙米尔(Shamir)秘密分享:一种类型的阈值秘密分享方案。Shamir秘密分享是线性的。
验证密钥是旨在广泛公开的公钥签名方案的位串。验证密钥也可以表示为公钥并且可以用于例如验证公钥签名方案的数字签名。
公开加密密钥是公钥加密方案的位串。
根据本发明的实施例的公钥签名方案可以包括例如公钥签名和加密方案(诸如RSA)的密钥或公钥签名方案(诸如施诺尔(Schnorr)或DSA)的密钥。
私钥(sk):与公钥,特别是验证密钥或加密密钥相关的位串,使得能够进行一些密码操作,特别是对消息进行数字签名和/或对密文进行解密。
分布式密钥生成(DKG):一种协议,使得一组交易者能够创建公钥,特别是验证密钥,并为一组接收者提供对应私钥的秘密分享/私钥分享。
秘密重新分发协议:秘密重新分发协议也可以表示为秘密再分享协议。更新私钥的私钥分享或更一般地秘密的秘密分享的协议。根据一些实施例,该协议可以向秘密(私钥)分享的以前保持者提供新的或更新后的秘密(私钥)分享。根据其它实施例,该协议可以向新的、特别是不同的一组接收者提供新的或更新后的秘密(私钥)分享。
(n,t)-阈值密钥/阈值私钥:这样的阈值密钥具有阈值t和多个私钥分享s1,...,sn,使得任何t个私钥分享可以重构私钥,而t-1个分享不足以确定私钥。在阈值公钥签名方案的情况下,任何t个私钥分享可以在阈值公钥/验证密钥下执行有效签名,而t-1个分享不足以执行有效签名。
秘密的(n,t)秘密分享:包含n个秘密分享的分享,其中阈值数量t≤n的秘密分享足以重构秘密,而t-1个分享不足以确定秘密。
可验证秘密分享(VSS):一种协议,使得单个交易者能够为一组接收者生成随机秘密s,阈值秘密分享s1,...,sn,以及每个接收者可以用来验证其分享si是否正确的证据。
主动安全性:捕获随时容忍t-1方的损坏(compromise)的多方系统的安全概念。时间被划分为纪元,并且在每个纪元中最多t-1方被损坏,而在损坏方集合可能因纪元而异的意义上攻击者是移动的。
具有主动安全性的分布式密钥管理系统可以通过将时间划分为纪元并在每个纪元中使用私钥的崭新阈值秘密分享来构建。
具有前向保密性的公钥加密:一种公钥加密方案,其中时间被划分为纪元,并且私有解密密钥随时间演变,使得即使它被损坏,也无助于解密来自先前纪元的密文。
公告板:向所有相关方广播传入消息的系统。例如,可以经由区块链/分布式账簿实现公告板。公告板也可以表示为账簿。根据实施例,放置在公告板上的消息不可能删除,它们认证发送者并且它们具有明确定义的顺序。
非交互式零知识(NIZK)证明:证明或证明系统,其中单方(证明者)为声明(陈述)生成加密证明,使得至少一组接收者(验证者)可以确定声明是真的,但对它为何为真的根本原因(证据)一无所知(零知识)。此外,该组接收者不必与任何方交互,即,既不与证明者交互,也不与任何其它接收者交互来验证证明。
二叉树加密方案:以明文为输入并且将其加密到高度为λ的二叉树的叶子的加密方案。
这种二叉树加密方案例如在[Ran Canetti,Shai Halevi,Jonathan Katz:AForward-Secure Public-Key Encryption Scheme.J.Cryptology(2007)20,265-294]中描述。
多接收者加密方案:根据其存在一组n个接收者1,...,n的方案。i个接收者中的每一个具有用(dki,pki)表示的秘密解密密钥和公钥对。然后发送者加密一组消息M1,...,Mn,其中Mi被定向到接收者i,使用pk1,...,pkn得到密文C。在接收到密文C后,接收者i使用其解密密钥dki对它进行解密以得到消息Mi。
图1示出了根据本发明的实施例的分布式网络100的示例性框图。
分布式网络100包括多个节点10,其也可以表示为网络节点10。多个节点10分布在多个子网络11上。子网络11也可以表示为子网。在图1的示例中,提供了用SNA、SNB、SNC和SND表示的四个子网11。
多个子网11中的每个子网被配置为在相应子网11的每个节点10上运行一组计算单元。根据实施例,计算单元应被理解为一段软件,特别是包括或具有其自己的单元状态的一段软件。单元状态也可以表示为执行状态。
网络100包括通信链路12,用于相应子网11内的子网内通信,特别是用于在分配给相同子网的计算单元之间交换子网内单元到单元消息。
此外,网络100包括通信链路13,用于不同子网11之间的子网间通信,特别是用于在分配给不同子网的计算单元之间交换子网间单元到单元消息。
因此,通信链路12也可以表示为子网内或对等(P2P)通信链路,并且通信链路13也可以表示为子网间或子网到子网(SN2SN)通信链路。
网络100被配置为基于子网分配经由消息传递协议在网络的计算单元之间交换单元到单元消息。
根据实施例,分布式网络可以特别地被配置为经由消息传递协议在子网SNA、SNB、SNC和SND之间交换子网间消息16。子网间消息16可以特别地被实施为在根据子网分配而分配给了不同子网的计算单元之间交换的子网间单元到单元消息16a。作为示例,分布式网络100可以被配置为在作为在子网SNA上运行的发送计算单元的计算单元CUA1和作为在子网SNB上运行的接收计算单元的计算单元CUB2之间交换单元到单元消息16a(参见图4)。此外,子网间消息16可以被实施为信令消息16b。信令消息16b可以包括适于确认单元到单元消息的接受或接收的确认消息(ACK)或适于不确认单元到单元消息的接受(对应于拒绝)以例如指示传输失败的非确认消息(NACK)。
根据实施例,单元状态或执行状态应理解为计算单元使用的所有数据或信息,特别是计算单元存储在变量中的数据,以及计算单元从远程调用获得的数据。单元状态可以特别地表示相应节点的相应存储器位置中的存储位置。
根据本发明的实施例,子网11被配置为跨相应的子网11复制计算单元的集合。更特别地,子网11被配置为跨相应的子网11复制计算单元的单元状态/执行状态。
网络100可以包括可以用于与分布式网络的用户U交换信息的多个接口101。作为示例,用户U可以经由接口101向分布式网络发送读取请求并接收读取响应,例如包括计算结果的执行状态信息。根据优选实施例,用户不需要知道分布式网络100的内部结构。特别地,用户可能优选地不知道子网配置和正在处理她的读取请求的相应子网。
子网11可以随时间重新配置。更特别地,子网11的节点数量可以随时间改变。作为示例,可以将节点添加到子网11和/或可以将节点从子网11中移除。因此子网11包括可变的一组节点。
每个子网11保持单独的(或换句话说分离的)公钥签名方案的静态验证密钥。在这个示例中,子网SNA保持静态验证密钥pkA,子网SNB保持静态验证密钥pkB,子网SNC保持静态验证密钥pkC,子网SND保持静态验证密钥pkD。静态验证密钥在下文中可以统称为pkX,其中X表示对应的子网。根据实施例,静态验证密钥pkX在相应子网11的整个生命周期内是恒定的或换句话说是固定的。
静态验证密钥pkX和对应的秘密分享最初可以由分布式密钥生成协议生成。
虽然分布式网络100的静态验证密钥pkX不随时间变化,但对应的私钥分享si可能随时间变化。
可以在相应子网的一组节点已经改变的情况下执行私钥分享的这种改变,或者即使子网的节点没有改变,也可以执行私钥分享的这种改变。后者可以用于提供主动安全性。
私钥分享的改变/更新可以通过秘密分享或换句话说秘密重新分发协议来执行。
分布式密钥生成协议特别地可以是阈值密钥生成协议。秘密重新分发协议特别地可以是阈值秘密重新分发协议。
分布式密钥生成协议可以生成对应的第一组秘密分享s1、s2、sn、即,对应于相应的静态验证密钥pkX和秘密s的第一组秘密分享。第一组私钥分享可以被指派给相应子网的第一组节点。第一组秘密分享可以用于发布可以使用静态验证密钥验证的签名。第一组节点特别地可以是在时间t0或纪元e0的相应子网的节点。时间t0可以是例如相应子网的创建的时间。验证密钥pkX是公钥签名方案的验证密钥。因此,验证密钥pkX可以用于验证已经由持有秘密分享s1、s2、...sn的各个节点创建的联合签名。
为了改变私钥分享,分布式网络100执行秘密重新分发协议。如所提到的,秘密重新分发协议可以特别地是阈值协议,并且通常可以实施为用于将秘密s的(n,t)秘密分享从一组交易者重新分发给一组接收者的方法。该组交易者和该组接收者特别地可以是分布式网络的节点。因此,秘密重新分发协议可以将相应子网的第一组节点的秘密分享重新分发给相应子网的第二组节点。这创建对应于相应子网的相同静态验证密钥的第二组秘密分享。作为结果,第二组节点中的每个节点或子集持有第二组分享中的秘密分享之一。
分布式网络100的节点可以根据实施例使用阈值签名来证明分布式网络100产生的结果。
分布式网络100的节点可以使用长期公开加密密钥以便最小化交互。
这将参考图2和图3进行更详细的说明。
图2示出了子网SNA随时间的演变。图3示出了对应的表,该表包括子网SNA的各组私钥的对应演变。
现在参考图2,子网SNA最初在时间t0(例如在其创建的时间)具有子网配置201。相应的子网配置对于对应的纪元e0有效。根据子网配置201,子网SNA包括4个节点N1、N2、N3和N4。子网SNA具有公钥签名方案的静态验证密钥pkA。节点N1、N2、N3和N4建立第一(或换句话说初始的)节点集合。分布式网络100的每个节点向分布式网络100注册了公开加密密钥。分布式网络100的其它节点或用户可以在该节点的整个生命周期中使用该公开加密密钥来加密到该节点的消息。
相应地,节点N1、N2、N3和N4分别注册了公开加密密钥pkN1、pkN2、pkN3和pkN4。此外,未来网络配置的节点N5、N6和N7注册了公开加密密钥pkN5、pkN6和pkN7。由于公开加密密钥也被长期使用,因此它们可以被表示为静态加密密钥。
虽然子网SNA的静态验证密钥pkA以及静态加密密钥pkN1、pkN2、pkN3、pkN4、pkN5、pkN6和pkN7被长期使用,但是与静态验证密钥pkA对应的私钥分享si以及与静态加密密钥pkN1、pkN2、pkN3、pkN4、pkN5、pkN6和pkN7对应的解密密钥dkN1、dkN2、dkN3、dkN4、dkN5、dkN6和dkN7可能随时间变化。更特别地,根据实施例,时间被划分为纪元,并且解密密钥和私钥分享定期改变并且仅对特定纪元使用/有效。在下文中,仅仅为了简单起见,私钥分享Si将被表示为秘密分享si
现在参考图3,左列301包括子网SNA的对应数量的节点,更特别地是节点N1、N2、N3、N4、N5、N6和N7。列302、303、304、305和306包括对应节点在不同时间点的各个秘密分享。更特别地,列302对应于从时间t0延伸到时间t1的纪元e0,列303对应于从时间t1延伸到时间t2的纪元e1,列304对应于从时间t2延伸到时间t3的纪元e2,列305对应于纪元e3,并且列306对应于纪元e4。行311、312、313、314、315、316和317分别包括节点N1、N2、N3、N4、N5、N6和N7的秘密分享以及各个节点的解密密钥。
如前所述,子网SNA的公开验证密钥pkA和对应的秘密s(其也可以表示为秘密签名密钥sk)保持恒定。
在纪元e0期间,子网SNA的节点N1、N2、N3和N4分别持有秘密分享s1,0、s2,0、s3,0和s4,0。在这种表示法中,下标的第一个数字表示相应的节点,并且下标的第二个数字表示相应的纪元。秘密分享s1,0、s2,0、s3,0和s4,0可以被视为例如使用分布式密钥生成协议已生成的初始分享。
在随后的纪元e1,子网SNA仍然具有相同的一组节点。尽管如此,分布式网络已执行将秘密分享s1,0、s2,0、s3,0和s4,0重新分发给第二组节点,在本示例中,第二组节点由同一组节点N1、N2、N3和N4形成。
重新分发创建或生成了与第一组不同的第二组秘密分享s1,1、s2,1、s3,1和s4,1。第二组秘密分享与子网SNA的相同静态验证密钥pkA和对应于静态验证密钥pkA的相同秘密s对应。
为了将秘密分享s1,0、s2,0、s3,0和s4,0重新分发给秘密分享s1,1、s2,1、s3,1和s4,1而执行的秘密重新分发协议现在将参考图5和图6更详细地解释。
如前所述,一般情况下,分享从一组交易者重新分发给一组接收者。在这个示例中,该组交易者等于该组接收者,并且各自由节点N1、N2、N3和N4形成。如果节点N1、N2、N3和N4充当交易者,那么我们将在下文中将它们表示为D1、D2、D3和D4。同样,如果它们充当接收者,那么我们将它们称为R1、R2、R3和R4。
因此,交易者D1、D2、D3和D4旨在针对下一个纪元e1将它们的纪元e0的秘密分享重新分发给接收者R1、R2、R3和R4。
假设秘密分享的阈值数量t为3,那么n个交易者D1、D2、D3和D4中至少有3个将执行以下步骤,其中在图5和图6中假设所有交易者D1、D2、D3和D4将执行这些步骤。
首先,交易者D1、D2、D3和D4创建其相应秘密分享的(3,4)秘密分享,或者一般而言,包括其相应秘密分享的n'个秘密子分享的(n',t')秘密分享。一般而言,阈值数量t'≤n'的秘密子分享足以重构秘密分享,并且在这个示例中假设4个子分享中的3个足以重构秘密分享。
作为示例,交易者D1(节点N1)创建分享s1,0的4个子分享ss1,0,1、ss1,0,2、ss1,0,3和ss1,0,4。在这种表示法中,最后一个下标指示子分享的相应接收者。
4个子分享中的每一个被加密到接收者R1、R2、R3和R4中的不同接收者。更特别地,交易者D1创建一组密文,其包括针对每个接收者的秘密分享S1,0的加密子分享。
根据实施例,交易者使用具有前向保密性的加密方案,即,交易者将子分享加密到特定的纪元τ。因此,充当接收者的节点必须更新它们的解密密钥以匹配当前纪元并删除旧纪元的解密密钥。这样,即使节点受到损坏,它也无法解密过去纪元的旧密文。这减少了对手可能学到的信息。
在图5的示例中,子分享ss1,0,1针对下一个纪元e1相对于公开加密密钥pkR1,1进行加密,使得需要接收者R1的仅对纪元e1有效的对应解密密钥dkR1,1。加密和解密密钥的第一个下标指示相应的接收者,并且第二个下标指示纪元。以对应的方式,子分享ss1,0,2针对纪元e1进行加密,使得需要接收者R2的也仅对纪元e1有效的对应解密密钥dkR2,1。并且子分享ss1,0,3和ss1,0,4针对纪元e1进行加密,使得分别需要接收者R3的也仅对纪元1有效的对应解密密钥dkR3,1和接收者R4的也仅对纪元1有效的对应解密密钥dkR4,1。作为结果,交易者D1创建了4个密文(ss1,0,1)pkR1,1、(ss1,0,2)pkR2,1、(ss1,0,3)pkR3,1和(ss1,0,4)pkR4,1,其形成一组密文501。括号中的项的下标指示使用的公开加密密钥和解密的目标纪元。
作为示例,密文(ss1,0,1)pkR1,1由接收者R1(对应于节点N1)的加密密钥pkR1针对纪元e1进行加密,并且因此可以由接收者R1使用纪元e1的解密密钥进行解密,并且密文(ss1,0,2)pkR2,1可以由接收者R2使用纪元e1的解密密钥解密。
以对应的方式,其它节点N2、N3和N4在其作为交易者的功能中也创建它们各自在纪元0中的分享的4个子分享,并为接收者R1、R2、R3和R4之一加密这4个分享中的每一个。作为结果,交易者D2、D3、D4创建了各组密文502、503、504。
此外,交易者D1、D2、D3和D4中的每一个生成一组密文联合包含其秘密分享的重新分发的零知识证明。零知识证明可以特别是非交互式零知识证明(NIZK),其特别地实施为不需要接收者与任何其它方进行任何交互的证明,即它们可以由每个接收者独立验证。非交互式零知识证明可以是可公开验证的,使得任何方,无论是否是接收者,都可以验证它们。
作为示例,交易者D1创建4个加密子分享(ss1,0,1)pkR1,1、(ss1,0,2)pkR2,1、(ss1,0,3)pkR3,1和(ss1,0,4)pkR4,1联合包含分享s1,0的重新分发的非交互式零知识证明NIZKD1511。对应地,其它交易者D2、D3和D4创建非交互式零知识证明512、513和514。
此外,交易者D1、D2、D3和D4中的每一个可以生成一些关联公钥材料APKMD1 521;APKMD2 522;APKMD3 523和APKMD4 524。
然后交易者D1、D2、D4和D4中的每一个向接收者R1、R2、R3和R4广播交易。每个交易包含针对一组接收者的一组密文、对应的零知识证明和关联公钥材料。
参考图5,交易者D1广播交易DL1 531,其包括4个加密的秘密子分享(ss1,0,1)pkR1,1、(ss1,0,2)pkR2,1、(ss1,0,3)pkR3,1和(ss1,0,4)PkR4,1、非交互式零知识证明NIZKD1和关联公钥材料APKMD1
同样,交易者D2广播交易DL2 532,其包含4个加密的秘密子分享(ss2,0,1)pkR1,1、(ss2,0,2)pkR2,1、(ss2,0,3)pkR3,1和(ss2,0,4)pkR4,1、非交互式零知识证明NIZKD2和关联公钥材料APKMD2。并且交易者D3和D4分别广播交易DL3 533和DL4 534。
广播根据实施例可以通过将4个交易者D1、D2、D3和D4的交易DL1、DL2、DL3和DL4分别放置在公告板50上来实现。公告板50可以至少被一组接收者访问,在该示例中被接收者R1、R2、R3和R4访问。根据实施例,公告板可以是公开可用的。根据实施例,公告板可以被实现为分布式账簿。
现在参考图6,它图示了接收者R1、R2、R3和R4如何根据公告板50上呈现的广播信息重构它们的新分享。
首先,接收者R1、R2、R3和R4分别检查(或换句话说验证)交易DL1、DL2、DL3和DL4的非交互式零知识证明NIZKD1、NIZKD2、NIZKD3和NIZKD4。根据一些实施例,接收者中的每一个可以检查/验证证明。根据其它实施例,指派的一组接收者或更一般地指派的一组各方可以检查证明并向该组接收者提供证明的验证确认。
一旦成功检查/验证足够数量t的证明,接收者R1、R2、R3和R4就可以开始重构它们的新分享。在图5和图6的示例中,4个证明中只有3个需要被成功检查/验证。这由相应的第四分享的交叉指示。
然后4个接收者R1、R2、R3和R4中的每一个可以解密其在交易DL1、DL2、DL3和DL4中的一组密文。作为示例,接收者R1可以分别从交易DL1、DL2和DL3中获取密文(ss1,0,1)pkR1,1、(ss2,0,1)pkR1,1和(ss3,0,1)pkR1,1,并使用解密密钥dkR1,1,即接收者R1针对纪元e1的解密密钥,解密这些密文。
同样,接收者R2可以分别从交易DL1、DL2和DL3中获取密文(ss1,0,2)pkR2,1、(ss2,0,2)pkR2,1和(ss3,0,2)pkR2,1,并使用解密密钥dkR2,1,即接收者R2针对纪元e1的解密密钥,解密这些密文。
在解密4个子分享中的3个之后,接收者R1、R2、R3和R4中的每一个可以将其解密的密文组合成秘密的新秘密分享。作为示例,接收者R1可以将解密的子分享ss1,0,1、ss2,0,1和ss3,0,1组合成下一个(新)纪元e1的新秘密分享s1,1。同样,接收者R2可以将解密的子分享ss1,0,2、ss2,0,2和ss3,0,2组合成新纪元e1的新秘密分享s2,1
现在参考图7和图8,解释了根据本发明的另一个实施例的秘密分享的重新分发。与图5和图6的示例中一样,执行重新分发协议以将纪元e0的秘密分享s1,0、s2,0、s3,0和s4,0重新分发给纪元e1的秘密分享s1,1、s2,1、s3,1和s4,1
但是,不是为每个接收者创建单独的密文,图7和图8的实施例使用多接收者加密(MRE)。使用这种多接收者加密,每个交易者的整组子分享被一起加密。作为示例,第一交易者D1的一组子分享ss1,0,1、ss1,0,2、ss1,0,3和ss1,0,4借助于多接收者加密MRE1共同加密,其中下标表示多接收者加密/解密方案的纪元。同样,第二交易者D2的整组子分享ss2,0,1、ss2,0,2、ss2,0,3和ss2,0,4借助于多接收者加密MRE1共同加密,其中下标表示加密/解密方案的纪元。作为结果,4个共同加密的密文711、712、713和714被创建并放置在公告板50上。
与图5和图6中所示的实施例中一样,交易者D1、D2、D3和D4中的每一个生成一组密文联合包含其秘密分享的重新分发的非交互式零知识证明。此外,交易者D1、D2、D3和D4中的每一个可以生成一些关联公钥材料。
现在参考图8,它图示了接收者R1、R2、R3和R4如何从公告板50上呈现的广播信息重构它们的新分享。
首先,如图5和图6中所示的示例中一样,接收者R1、R2、R3和R4分别检查或换句话说验证交易DL1、DL2、DL3和DL4的非交互式零知识证明NIZKD1、NIZKD2、NIZKD3和NIZKD4
一旦成功检查/验证足够数量t的证明,接收者R1、R2、R3和R4就可以开始从共同加密的密文711-714重构它们的新分享。4个接收者R1、R2、R3和R4中的每一个可以解密其在交易DL1、DL2、DL3和DL4中的一组密文。作为示例,接收者R1使用e1纪元的多接收者加密方案MRE1的解密密钥dkR1,1,即多接收者加密方案的接收者R1的解密密钥dkR1,1,分别从交易DL1、DL2、DL3和DL4中解密共同加密的子分享ss1,0,1、ss2,0,1、ss3,0,1和ss4,0,1中的至少3个。
同样,接收者R2使用纪元e1的多接收者加密方案MRE1的解密密钥dkR2,1分别从交易DL1、DL2、DL3和DL4中解密子分享ss1,0,2、ss2,0,2、ss3,0,2和ss4,0,2中的至少3个。
在解密4个子分享中的至少3个之后,接收者R1、R2、R3和R4中的每一个可以将其解密的密文组合成秘密的新秘密分享。
现在参考图2,示出了子网SNA的第二子网配置202,其除了之前的节点N1、N2、N3和N4之外还包括附加节点N5和N6。该子网配置202对于纪元e2和e3有效。
现在参考图3,列304示出了在纪元e2设置的新节点的私钥分享。
分布式网络执行了秘密重新分发协议,以将私钥分享s1,1、s2,1、s3,1和s4,1重新分发给另一组节点,其在本示例中由增强的一组节点N1、N2、N3、N4、N5和N6形成。
秘密分享的重新分发创建或生成了一组秘密分享s1,2、s2,2、s3,2、s4,2、s5,2和s6,2,它们与第二组不同,特别是包含6个密钥分享而不是先前的4个密钥分享。再次,该组密钥分享与子网SNA的相同静态验证密钥pkA对应。
在随后的纪元e3,子网SNA仍然具有相同的一组节点N1、N2、N3、N4、N5和N6。分布式网络执行了秘密重新分发协议,以重新分发秘密分享s1,2、s2,2、s3,2、s4,2、s3,2和s6,2。因此,秘密重新分发协议创建或生成了另一组新的秘密分享s1,3、s2,3、s3,3、s4,3、s5,3和S6,3,它们不同于之前的一组。新的一组密钥分享再次与子网SNA的相同静态验证密钥pkA对应。
现在参考图2,示出了子网SNA的第三子网配置203,其包括附加节点N7,而先前的节点N3已被移除。该子网配置203对应纪元e4有效。
返回参考图3,列306示出了在时间t4设置的新节点的私钥分享。
分布式网络执行了秘密重新分发协议,以将秘密分享s1,3,、s2,3、s3,3、s4,3、s5,3和s6,3重新分发给新的一组节点N1、N2、N4、N5、N6和N7。
因此,秘密重新分发协议创建或生成了另一组新的秘密分享s1,4、s2,4、s4,4、s5,4、s6,6和s7,4,它们再次不同于之前的一组,并且再次与子网SNA的相同静态验证密钥pkA对应。
图4以更详细的方式图示了在网络100的节点10上运行的计算单元15。网络100被配置为根据子网分配将在网络100上运行的每个计算单元分配给多个子网之一,在这个示例中分配给子网SNA、SNB、SNC或SND之一。分布式网络100的子网分配为子网SNA、SNB、SNC和SND中的每个子网创建整组计算单元的分配子集。
更特别地,图4在左侧401示出了图1的子网SNA的节点10。分布式网络100的子网分配已经将五个计算单元15的子集分配给子网SNA,更特别地是计算单元CUA1、CUA2、CUA3、CUA4和CUA5的子集。计算单元CUA1、CUA2、CUA3、CUA4和CUA5的分配子集在子网SNA的每个节点10上运行。此外,计算单元CUA1、CUA2、CUA3、CUA4和CUA5的分配子集在整个子网SNA中被复制,使得计算单元CUA1、CUA2、CUA3、CUA4和CUA5中的每一个遍历相同的单元状态/执行状态。这可以特别地通过在子网SNA的每个节点10上的计算单元CUA1、CUA2、CUA3、CUA4和CUA5的单元状态的空间中执行主动复制来实现。
此外,图4在右侧402示出了图1的子网SNB的节点10,四个计算单元15在其上运行,更具体地是一组计算单元CUB1、CUB2、CUB3和CUB4。该组计算单元CUB1、CUB2、CUB3和CUB4在子网SNB的每个节点10上运行。此外,例如通过如上所述在单元状态空间中执行主动复制,该组计算单元CUB1、CUB2、CUB3和CUB4在整个子网SNB中被复制,使得计算单元CUB1、CUB2、CUB3和CUB4中的每一个具有相同的单元状态。
图9示出了根据本发明的实施例的方法的方法步骤的流程图。该方法执行从一组交易者到一组接收者的秘密s的(n,t)秘密分享的重新分发。(n,t)秘密分享包括n个秘密分享,其中阈值数量t≤n的秘密分享足以重构秘密s,其中n和t为整数。n个秘密分享中的每一个由交易者之一保持。
该方法以递增的索引N按顺序执行多个处理循环910。N是递增的整数,即,例如0、1、2、3...N。
处理循环910包括第一循环步骤911、第二循环步骤912、第三循环步骤913、第四循环步骤914、第五循环步骤915和第六循环步骤916。
循环步骤911-916由至少阈值数量t的交易者中的每个交易者执行。
在循环步骤911处,相应的交易者,例如,分布式网络的节点,创建其相应秘密分享的(n',t')秘密分享,其中n'和t'为整数并且(n',t')秘密分享包括其相应秘密分享的n'个秘密子分享。阈值数量t'≤n'的秘密子分享足以重构交易者的秘密分享。
在循环步骤912处,相应交易者为每个接收者加密n'个秘密子分享中的子分享,从而创建一组密文。针对/相对于相应接收者的公开加密密钥对加密的秘密子分享进行加密。接收者的公开加密密钥优选地是已经被激活以例如用于分布式网络节点之间的通信的长期公开加密密钥。
根据实施例,可以在循环步骤912处使用具有前向保密性的公钥加密方案。根据实施例,具有前向保密性的加密方案是二叉树加密方案。根据进一步的实施例,公钥加密方案是多接收者加密方案。
根据一些实施例,多接收者加密方案可以执行子分享的分块加密,其中每个子分享的明文表示块。
在循环步骤913处,每个交易者创建与其秘密分享相关联的公钥材料。关联公钥材料通常可以包括与秘密分享相关的公开群元素和与秘密相关的公开群元素。如前所述,秘密特别地可以是与公钥签名方案的公开验证密钥对应的私钥。根据这样的实施例,关联公钥材料可以包括与秘密分享相关的公开分享验证密钥和与秘密相关的公开验证密钥。
在循环步骤914处,每个交易者生成它创建的一组密文联合包含其秘密分享的重新分发的非交互式零知识证明。在如上所述的分块加密的情况下,每个交易者生成进一步的(或换句话说第二)非交互式零知识证明来证明分块加密是正确的。
可以根据本发明的实施例使用的用于正确秘密分享的非交互式零知识(NIZK)证明的详细实施例在下文进一步的附录的第3.3章中给出。
可以根据本发明的实施例使用的用于正确分块的非交互式零知识(NIZK)证明的详细实施例在下文进一步的附录的第3.4章中给出。
但是,根据实施例,可以使用用于正确秘密分享和正确分块的其它非交互式零知识证明。
作为示例,根据本发明的实施例,可以使用例如在[De Santis、Di Crescenzo、Os-trovsky、Persiano、Sahai:Robust Non-interactive Zero Knowledge:Crypto 2001:566-598]或[Groth、Mailer:Snarky Signatures:Minimal Signatures of Knowledge fromSimulation-Extractable SNARKs.Crypto 2017:581-612]中描述的非交互式零知识证明。
然后,在循环步骤915处,每个交易者向一组接收者广播交易。每个交易包含形成一组密文的加密子分享、一个或多个对应的非交互式零知识证明以及关联公钥材料。
接下来,在循环步骤916处,纪元可以增加1并且可以针对新纪元重复循环910的步骤。
图10示出了根据本发明的实施例的方法的进一步方法步骤的流程图。更特别地,它图示了一组接收者可以如何从广播的交易中重构新的分享。
该方法以递增的索引N按顺序执行多个处理循环1010。N是递增的整数,即,例如,0,1,2,3...N。
处理循环1010包括第一循环步骤1011、第二循环步骤1012、第三循环步骤1013和第四循环步骤1014。
在循环步骤1011处,一组接收者检查交易的非交互式零知识证明。一旦与新秘密分享的阈值对应的足够数量t'的证明已被成功检查,每个接收者就可以在循环步骤1012处解密其在交易中的加密子分享,更特别地,至少阈值数量的其子分享。
然后,在循环步骤1013处,每个接收者将解密的子分享组合成秘密的新秘密分享。
接下来,在循环步骤1014处,纪元可以增加1并且循环1010可以针对新纪元再次执行上述步骤。
图11图示了根据本发明的实施例可以使用的验证密钥及其对应的私钥分享的实施例。图11示出了根据本发明的实施例的由分布式密钥生成协议生成的密钥集1110的实施例。分布式密钥生成协议被实施为分布式阈值密钥生成协议。
对于这个示例,假设有N个节点参与分布式密钥生成协议。所述节点通常可以是任何子网的节点,或者特别地是治理子网的节点,治理子网已经被指派用于子网的静态验证密钥和对应私钥分享的初始子集的初始生成。
N个节点中的每一个具有私钥分享ski,其中i=1,...,N。N个节点联合为相应的子网X生成公共静态验证密钥(公钥)pkX,其中预定义阈值(例如至少三分之二或三分之一)的节点需要就静态验证密钥达成一致,并联合对新的静态验证密钥进行签名,以生成阈值签名σpkx
现在参考图12,示出了根据本发明的实施例的(例如,图1的网络100的)网络节点10的更详细的框图。网络节点10建立计算节点,计算节点可以执行计算功能并且因此通常可以被实施为计算系统或计算机。网络节点10可以是例如服务器计算机。网络节点10可以被配置为执行或参与根据本发明的实施例的计算机实现的方法。网络节点10可以与许多其它通用或专用计算系统环境或配置一起操作。
网络节点10可以在由计算机系统执行的诸如程序模块的计算机系统可执行指令的一般上下文中描述。一般而言,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。网络节点10以通用计算设备的形式示出。网络节点10的组件可以包括但不限于一个或多个处理器或处理单元1215、系统存储器1220和将包括系统存储器1220的各种系统组件耦合到处理器1215的总线1216。
总线1216表示几种类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用各种总线体系架构中的任何一种的处理器或局部总线。作为示例而非限制,此类体系架构包括行业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线。
网络节点10通常包括各种计算机系统可读介质。这样的介质可以是网络节点10可访问的任何可用介质,并且它包括易失性和非易失性介质、可移除和不可移除介质。
系统存储器1220可以包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)1221和/或高速缓存存储器1222。网络节点1210还可以包括其它可移除/不可移除、易失性/非易失性计算机系统存储介质。仅作为示例,可以提供存储系统1223用于从不可移除、非易失性磁介质(未示出并且通常称为“硬盘驱动器”)读取和写入。如下面将进一步描绘和描述的,存储器1220可以包括至少一个计算机程序产品,其具有一组(例如,至少一个)程序模块,这些程序模块被配置为执行本发明的实施例的功能。
具有一组(至少一个)程序模块1231的程序/实用程序1230,以及操作系统、一个或多个应用程序、其它程序模块和程序数据,可以作为示例而非限制存储在存储器1220中。操作系统、一个或多个应用程序、其它程序模块和程序数据或其一些组合中的每一个可以包括联网环境的实现。程序模块1231通常执行如本文所述的本发明的实施例的功能和/或方法。程序模块1231可以特别地执行用于执行子网间通信(包括分布式网络中的共识协议)的计算机实现方法的一个或多个步骤,例如,如上所述的方法的一个或多个步骤。
网络节点10还可以与一个或多个外部设备1217(诸如键盘或定点设备)以及显示器1218通信。这种通信可以经由输入/输出(I/O)接口1219进行。还有,网络节点10可以经由网络适配器1241与一个或多个网络40通信,诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)。根据实施例,网络1240特别地可以是分布式网络,包括多个网络节点10,例如,如图1中所示的网络100。如所绘出的,网络适配器1241经由总线1216与网络节点10的其它组件通信。
本发明的方面可以被实施为系统(特别是包括多个子网的分布式网络)、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的(一个或多个)计算机可读存储介质,用于使处理器执行本发明的各方面。
计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。如本文所使用的,计算机可读存储介质不应被解释为瞬态信号本身,诸如无线电波或其它自由传播的电磁波。
本文所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络(例如互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
本文参考根据本发明的实施例的方法、网络、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各方面。
根据本发明的实施例的计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而产生机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,创建用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作的部件。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得存储有指令的计算机可读存储介质则包括制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
各图中的流程图和框图图示了根据本发明的各种实施例的网络、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在一些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,连续示出的两个方框实际上可以基本并行地执行,或者这些方框有时可以按相反的顺序执行,这依所涉及的功能而定。
虽然上面和附录中示出和描述了本发明的当前优选实施例,但应清楚地理解本发明不限于此,而是可以以其它方式在权利要求的范围内各种各样地实施和实践。
具有协议细节的附录
下面详细描述根据本发明的实施例的具有前向保密性的非交互式分布式密钥生成和密钥重新分发协议的详细实施例。
1技术背景
1.1符号
下面我们写y:=x用于为y赋值x。从概率分布中采样,我们写
Figure BDA0004152547660000281
当/>
Figure BDA0004152547660000282
从一组S中随机均匀采样时,我们写/>
Figure BDA0004152547660000283
对于重复独立和均匀随机采样,我们写/>
Figure BDA0004152547660000284
在实践中,采样不会是均匀随机的,而是通过使用伪随机数生成器来完成的伪随机,这在我们协议的实例化中会很好地工作。
令A为算法,它可以是随机化的。我们写y←A(x)用于分配y在输入x上运行的A的输出。如果算法是确定性的,则只有一种可能的输出,并且我们有时会写y:=A(x)。我们也可以将随机化的算法视为基于输入x和一些随机性r的确定性计算,在这种情况下我们可以写y:=A(x;r)。
我们写AH用于可以访问能提供信息的事物(oracle)H的算法,它可以被视为是子例程。oracle为算法提供了某个接口,它可以向该接口发送输入并从oracle取回输出。例如,如果H是散列函数,我们可以写AH用于可以在消息上调用散列函数并取回消息摘要的算法。
许多协议取决于参数,例如,散列函数可能具有输出长度λ=256通常我们用λ来表示参数,它指示对象的大小,例如,λe可以是整数e的位长。这取决于设置是否更自然地将值视为所有和部分协议设置隐含已知的参数,或者是否更自然地将其作为算法的显式输入。
1.2字段、群和配对
我们写
Figure BDA0004152547660000291
用于整数模p。在这篇文章中,p将始终是已知素数,因此/>
Figure BDA0004152547660000292
是有限域(有时也写作/>
Figure BDA0004152547660000293
)。/>
Figure BDA0004152547660000294
带有作为整数0,1,...,p-1的字段元素的规范表示,因此有高效的算法来计算字段操作。我们写/>
Figure BDA0004152547660000295
用于域的乘法子群,即{1,...,p-1}。我们写y:=x mod p用于将x modulo p的规范表示分配给y。
我们写
Figure BDA0004152547660000296
用于一群已知的素数阶p。所有素数阶群都是循环的,因此使用乘法表示
Figure BDA0004152547660000297
用于某种生成器g,其中单位为1=g0。当我们提到群时,我们总是假设它们具有已知的素数阶、群元素的规范和紧凑表示以及计算群操作和决定成员资格的高效算法。
我们使用基于配对的密码学,其中我们有已知素数阶p的两个源群
Figure BDA0004152547660000298
和一个目标群/>
Figure BDA0004152547660000299
配对(用密码学的说法,偏离标准数学术语)是非退化双线性映射
Figure BDA00041525476600002910
这意味着如果g1,g2是/>
Figure BDA00041525476600002911
的生成器,那么当e(g1,g2)生成/>
Figure BDA00041525476600002912
时并且对于所有/>
Figure BDA00041525476600002913
我们具有/>
Figure BDA00041525476600002914
我们要求配对是可高效计算的。
在实施例中,我们使用BLS12-381实例化配对群,其中群阶p≈2255。源群是大小q≈238的字段上的椭圆曲线,并且目标群是
Figure BDA00041525476600002915
的p阶乘法子群。但是也可以通过配对来选择其他群。
1.3散列函数和可扩展的输出函数
我们依靠密码散列函数来压缩数据。标准密码散列函数是一种可高效计算的函数H:{0,1}*→{0,1}λ,它接受任意长度的输入并将其映射到λ位串,其中λ是固定值。示例是SHA-256,它将任意输入散列为256位串。
不过,我们不会只是散列到固定长度的输出。因此,我们写Hλ:{0,1}*→{0,1}λ用于将任意长度的输入映射到指定长度λ的串的函数。我们有时也映射到群中,并写
Figure BDA0004152547660000301
用于映射到群/>
Figure BDA0004152547660000302
中的函数。并且我们可以映射到字段中,这时我们写为
Figure BDA0004152547660000303
当上域(codomain)从上下文中清楚时,我们通常会省略它并简单地写H而不是例如/>
Figure BDA0004152547660000304
存在将常规散列函数转换为具有特定输出域的散列函数的已知技术。例如,要获得散列函数
Figure BDA0004152547660000305
将诸如SHA256的散列函数应用于输入x,从而为您提供256位值h。使用PRNG,例如ChaCha20将消息摘要h扩展为|p|+256位r。然后返回y=r mod p。
1.4Shamir秘密分享和拉格朗日插值
根据实施例,诸如Shamir秘密分享的线性秘密分享方案可以用于分享签名方案的私钥。在本小节中,我们将详细介绍Shamir秘密分享和拉格朗日插值。
阈值秘密分享使拥有秘密s的交易者能够创建分享s1,...,sn,使得任何t个分享都足以计算秘密s,而t-1个分享不揭露关于秘密的信息。
Shamir秘密分享(Adi Shamir:How to Share a Secret.Commun.ACM 22(11):612-613(1979))是对于领域
Figure BDA0004152547660000311
中的秘密流行的秘密分享方案。想法是选择随机次数t-1多项式a(x),使得a(0)=s,并让分享为s1=a(1),...,sn=a(n)1。这种秘密分享背后的想法是,次数t-1多项式上的任何t个不同点都唯一确定它并允许重构秘密。另一方面,给定t-1个不同点(具有非零x坐标),存在p种可能的多项式通过它们,每个产生不同的秘密,因此它们不提供关于秘密的任何信息。
Figure DA00041525476653807191
为了正式描述Shamir秘密分享,让我们首先在
Figure BDA0004152547660000312
上定义拉格朗日插值多项式。给定不同索引的集合I={i1,...,it{和索引kj∈I,我们定义
Figure BDA0004152547660000313
我们观察到,所有拉格朗日多项式都具有次数t-1,并且对于k=j满足
Figure BDA0004152547660000314
并且对于k≠j满足/>
Figure BDA0004152547660000315
因此,给定次数t-1多项式a(x)上的点和分享(i1,a(i1)),...,(it,a(it)),我们看到
Figure BDA0004152547660000316
通过秘密分享,其中
Figure BDA0004152547660000317
这意味着分享的秘密s=a(0)可以被重构为
Figure BDA0004152547660000318
这为我们提供了以下用于(n,t)-Shamir秘密分享的算法:
Share(n,t,s)→(s1,...,sn):
给定
Figure BDA0004152547660000321
设置a0:=s。选取/>
Figure BDA0004152547660000322
并定义/>
Figure BDA0004152547660000323
Figure BDA0004152547660000324
返回(s1,...,sn):=(a(1),...,a(n))。/>
Figure BDA0004152547660000325
给定不同索引1≤i1<…<it≤n的集合I和分享
Figure BDA0004152547660000326
返回
Figure BDA0004152547660000327
假设现在我们想要将秘密s的(n,t)-Shamir秘密分享转换为相同秘密s的(n′,t′)-Shamir秘密分享。在我们的发明的实施例中,重新分发协议从持有原始分享的t个交易者获取输入并执行此操作并将新分享输出给n′个接收者。想法是交易者i创建其秘密分享si的(n′,t′)秘密子分享。然后我们将这些n′个子分享给接收者。该想法可以用下面的重新分发方案来表达:
设置:
假设s1,...,sn
Figure BDA0004152547660000328
的(n,t)秘密分享。
Reshare(n′,t′,si):
返回(si,1,...,si,n′)←Share(n′,t′,si)。
Figure BDA0004152547660000329
返回
Figure BDA00041525476600003210
重要的特性是,对于所有1≤t′≤n′和大小t的索引集I和大小t′的J,我们具有
Figure BDA0004152547660000331
证实这一点的关键观察是拉格朗日插值是线性的。可以使用拉格朗日插值重新组合原始秘密分享以重构秘密。但是对子分享应用相同的重构过程也产生相同秘密的秘密分享。因此,接收者只要知道交易者的索引,就可以在本地使用拉格朗日插值重构其新分享的(n′,t′)分享。为了看到这一点,我们计算:
Figure BDA0004152547660000332
有适用于特殊情况的重新分发方案,例如,如果一组交易者与一组接收者相同,则它们可以取而代之共同创建0的秘密分享并将其添加到它们现有的分享中,以获崭新的(n,t)秘密分享。或者它们可以通过在它们的分享中添加0的(n,t+1)秘密分享来提高阈值。根据实施例的重新分发方案是通用的并处理所有情况,但可以扩展以合并现有的特殊情况处理来提高效率。
秘密分享给接收者带来了一个问题:她得到了正确的分享吗?交易者可能会给她不好的分享。交易者甚至可能分发与真实交易不符的“分享”。Feldman(Paul Feldman:APractical Scheme for Non-interactive Verifiable Secret Sharing.FOCS 1987:427-437)提出了可验证的秘密分享来解决这个问题。他的方案使用阶p的一群
Figure BDA0004152547660000341
交易者将分享与公开群元素/>
Figure BDA0004152547660000342
一起分发。接收者i应该得到分享si=a(i),现在可以检查它,因为如果秘密分享是正确的,那么我们应该具有
Figure BDA0004152547660000343
大多数可验证的秘密分享方案使用相关想法。然后它们让接收者在她的分享有误的情况下发出投诉。具有投诉阶段意味着与接收者有交互。根据实施例的密钥重新分发协议避免了与接收者的交互,并且也没有与交易者的交互。
1.5公告板-认证广播
根据实施例,节点通过公板进行通信。在这里,我们定义了公告板的特性,也称为认证的有序广播通道。我们有一组交易者和一组接收者。每个交易者构建消息并广播它(可能在广播之前看到延迟)。每个接收者都可以按照它们在公告板上发布的顺序阅读所有广播消息的抄本(可能有点滞后),并从中提取她得到的秘密分享。
1.6签名
密钥重新分发的一种应用是在数字签名方案中重新分发公开验证密钥的分享。为了完整起见,我们重述一下签名方案(KGen,Sign,SigVfy)是完全正确的,如果对于全部m∈{0,1}*,我们具有
Pr[(vk,sk)←KGen;σ←Sign(sk,m):SigVfy(vk,m,σ)=T]=1.
出于安全性目的,通常希望签名方案在抵抗自适应选择消息攻击时是存在不可伪造的。
BLS签名。
作为签名方案的具体示例,BLS签名(Dan Boneh、Ben Lynn、Hovav Shacham:ShortSignatures from the Weil Pairing。J.Cryptol.17(4):297-319(2004))工作如下:
设置:
我们假设参与者可用的参数包括已知素数阶p的群
Figure BDA0004152547660000351
Figure BDA0004152547660000352
的生成器g2和配对/>
Figure BDA0004152547660000353
它们还包括散列函数/>
Figure BDA0004152547660000354
KGen:
采样
Figure BDA0004152547660000355
设置/>
Figure BDA0004152547660000356
并且返回(vk,sk)
Sign(sk,m):
返回
Figure BDA0004152547660000357
SigVfy(sk,m,σ):
检查是否
Figure BDA0004152547660000361
和/>
Figure BDA0004152547660000362
如果检查全部通过则返回T,否则返回⊥。
容易看出BLS签名方案是完全正确的。BLS签名也是唯一的。
唯一性。
如果给定消息上最多有一个满足验证算法的有效签名,则称签名方案具有唯一签名。对于所有vk,m,σ1,σ2,其中SigVfy(vk,m,σ1)=T并且SigVfy(vk,m,σ2)=T,它必须是σ1=σ2的情况。
1.7阈值签名
根据实施例,本发明可以用于在数字签名方案中重新分发私钥的分享。阈值签名方案使n个潜在贡献者中的t个签名者的阈值能够聚集到一起并为消息m产生签名分享。给定t个签名分享,它们可以组合成消息上的数字签名。我们通过描述下面的组成高效算法来定义阈值签名的语法。阈值签名方案以参数和密钥作为输入。稍后我们将描述用于生成参数和密钥的分布式密钥生成协议,但这里只是将它们视为理所当然。
VKVfy(t,vk,shvk1,...,shvkn)→b:
如果设置被视为有效,则在具有阈值t、验证密钥vk和分享验证密钥shvk1,...,shvkn的设置上的确定性算法返回T,否则返回⊥。如果t,n是t≤n的正整数,那么它只能返回T。
SKVfy(sk,shvk)→⊥:
如果sk被视为是相对于分享验证密钥shvk的有效分享签名密钥,则在分享签名密钥sk上的确定性算法返回T,否则返回⊥。
SigShare(sk,m)→sh:
给定分享签名密钥sk和消息m∈{0,1}*产生签名分享sh的确定性或随机化算法。
SigShVfy(shvk,m,sh)→b:
如果签名分享被视为有效,则给定分享验证密钥vkj、消息m和签名分享sh的确定性算法返回T,否则返回⊥。
SigShCombine(I,sh1,...,sht)→σ:
采用不同索引i1<…<it的集合I和t个签名分享sh1,...,sht并将它们组合成签名σ的确定性算法。
SigVfy(vk,m,σ)→b:
如果签名被视为有效,则给定验证密钥vk、消息m∈{0,1}*和签名σ的确定性算法返回T,否则返回⊥。
正确性。
如果满足以下条件,则阈值签名方案是完全正确的:
·-VKVfy(t,vk,shvk1,...,shvkn)=⊥,如果
Figure BDA0004152547660000371
·—有效的分享签名密钥产生有效的签名分享。对于所有sk,shvk,m,其中SKVfy(sk,shvk)=T
Pr[sh←SigShare(sk,m):SigShVfy(shvk,m,sh)=T]=1.
·-将不同索引的阈值的有效分享组合起来产生有效签名。对于所有
Figure BDA0004152547660000381
其中VKVfy(t,vk,shvk1,...,shvkn)=T,I是t个不同索引i1<…<it≤n的集合,并且对于所有i∈I,SigShVfy(shvki,m,shi)=T,
Figure BDA0004152547660000382
唯一性。
唯一签名特性可以被定义为标准签名方案,因为它仅取决于SigVfy。
BLS阈值签名。
根据实施例,本发明可以用于重新分发BLS签名中的私钥的分享和BLS签名中的相关联的密钥材料。我们现在描述BLS阈值签名(Alexandra Boldyreva:ThresholdSignatures,Multisignatures and Blind Signatures Based 0n the Gap-Diffie-Hellman-Group Signature Scheme.Public Key Cryptography 2003:31-46)。我们重用标准BLS签名中的签名验证算法,但启用私钥被秘密分享到多个秘密分享签名密钥中的情况。这些分享签名密钥可以产生签名分享,并且如果有足够的签名分享,那么它们可以被组合成签名。因此,以下算法可以看作是签名算法的替代,而我们在这里不描述密钥生成。
设置:
参与者可用的参数包括已知素数阶p的群
Figure BDA0004152547660000391
以及配对/>
Figure BDA0004152547660000392
Figure BDA0004152547660000393
和用于/>
Figure BDA0004152547660000394
的生成器g1,g2。这些参数还包括散列函数/>
Figure BDA0004152547660000395
VKVfy(t,vk,shvk1,...,shvkn):
检查t∈[1..n]和
Figure BDA0004152547660000396
设置shvk0:=vk和I={0,...,t-1}。对于j=t,...,n,检查是否
Figure BDA0004152547660000397
如果所有检查都通过则返回T,否则返回⊥。
SKVfy(sk,shvk):
如果
Figure BDA0004152547660000398
并且/>
Figure BDA0004152547660000399
则返回T,否则返回⊥。
SigShare(sk,m):
返回
Figure BDA00041525476600003910
SigShVfy(shvk,m,sh):
检查
Figure BDA00041525476600003911
和/>
Figure BDA00041525476600003912
检查是否/>
Figure BDA00041525476600003913
如果所有检查都通过则返回T,否则返回⊥。
Figure BDA00041525476600003914
将I解析为不同索引i1<…<it的集合和
Figure BDA00041525476600003915
作为/>
Figure BDA00041525476600003916
中的元素。
返回
Figure BDA0004152547660000401
SigVfy(vk,m,σ):
检查是否
Figure BDA0004152547660000402
以及
Figure BDA0004152547660000403
/>
如果所有检查都通过则返回T,否则返回⊥。
这里的私钥是vk的离散对数,并且阈值签名者的分享是shvki的离散对数。群元素vk和shvk1,...,shvkn是关联公钥材料。在SKVfy中,sk是私钥的秘密分享并且shvk匹配秘密分享的关联密钥材料。
1.8具体参数选择
根据实施例,我们可以通过多种方式为非交互式密钥重新分发选择我们的协议的参数。对于希望在阅读以下部分时考虑具体值的读者来说,一种可能性是:
·-安全参数λ=256
·-BLS12-381具有p≈2255
·-分享持有者的数量n=28
·-阈值t=10
·-诚实块大小B=216
·-我们将字段元素拆分为m=16满足的块数Bm>p
·-块证明中的挑战数量l=16
·-块证明中的挑战空间
Figure BDA0004152547660000411
·-块证明中的组合输入大小S=nm(E-1)(B-1)≈241
·-块证明中的总范围Z=2lS=246
2公钥加密方案
根据实施例,我们使用具有前向保密性的新颖的CCA安全多接收者公钥加密方案。在这里,我们逐步解释这种加密方案的构造。
一个目标是呈现分布式密钥生成和密钥重新分发协议,以维护各个节点的签名密钥的阈值分享。在实施的协议中,节点将需要长期的公开加密密钥,因为我们希望最小化交互,并且我们对于各个节点加密分享。其他参与者可以在节点的整个生命周期中使用此公钥来加密到该节点的消息。
在密钥重新分发协议中,节点将接收多条消息。该协议对攻击具有弹性,我们假设一些消息可能是恶意生成的。因此,明智的做法是针对选择密文攻击的安全性。此外,由于密钥被长期使用,因此存在节点被破坏和解密密钥被泄露的风险。实施例通过使用具有前向保密性的加密方案来采取防御措施。前向保密性意味着将时间划分为纪元,并将消息加密到特定纪元。节点对应地更新其解密密钥以匹配当前纪元并删除旧纪元的解密密钥。这样,即使节点受到破坏,它也无法解密过去纪元的旧密文,因此我们减少了对手可能获知的信息。
实施例对于多个分享持有者加密签名密钥的阈值分享。一种多接收者加密方案是有利的,它允许我们在一个密文中对于一群接收者加密多条消息。在本节中,我们逐步构建新颖的多接收者公钥加密方案,该方案在选择的密文攻击下是不可区分的,并且具有前向保密性。
2.1二叉树加密
根据实施例,我们可以使用二叉树加密。在BTE中,参数指定高度为λ的二叉树2。加密算法采用明文并将其加密到树中的叶子。每个叶子可以关联解密密钥,并且该解密密钥的持有者可以恢复明文。还有与内部节点相关联的解密密钥。内部节点的解密密钥允许您为该节点的任何子节点导出解密密钥。这意味着,如果您具有根的解密密钥,那么您可以导出所有叶子的解密密钥。但是,如果您没有根的解密密钥,那么您只能解密与您持有的解密密钥的子树中的叶子相关的密文3
Figure DA00041525476653844523
BTE方案具有以下高效算法:
设置:
参数指定二叉树的消息空间
Figure BDA0004152547660000421
和高度λ。我们将写一条到树中节点的路径,就像τ1...τl,其中l≤λ,并且对于叶子l=λ
KGen→(pk,dk):
为树的根产生公钥和解密密钥的随机化密钥生成算法
KVfy(pk)→b:
如果公钥被视为有效则返回T,否则返回⊥的确定性密钥验证算法
Figure BDA0004152547660000431
给定节点τ1...τl-1的解密密钥和位τl返回节点τ1...τl的解密密钥的随机化更新算法。如果l>λ或
Figure BDA0004152547660000432
或其他地方出错,则推导算法返回⊥。
贯穿本文,我们将使用dk是解密密钥并且
Figure BDA0004152547660000433
是明确指示解密密钥的预期节点τ1...τl的对(τ1,...,τl,dk)的约定。
Enc(pk,m,τ1,...,τλ)→c:
给定公钥、消息和叶子的随机化加密算法返回密文(或者在失败的情况下返回⊥,例如,如果其中一个输入格式错误)
Figure BDA0004152547660000434
给定叶子的解密密钥和密文的确定性解密算法返回明文
Figure BDA0004152547660000435
或者在出错的情况下返回⊥。
构造。
设置:
参数指定消息空间
Figure BDA0004152547660000436
该消息空间足够小,以通过蛮力、群元素/>
Figure BDA0004152547660000437
和树高度λ进行搜索。
KGen→(y,dk):
选取
Figure BDA0004152547660000441
并且计算/>
Figure BDA0004152547660000442
选取/>
Figure BDA0004152547660000443
并且令/>
Figure BDA0004152547660000444
Figure BDA0004152547660000445
返回(y,dk)。
KVfy(pk)→b:
如果
Figure BDA0004152547660000446
则返回T,否则返回⊥
Figure BDA0004152547660000447
/>
给定
Figure BDA0004152547660000448
并且τl∈{0,1},选取
Figure BDA0004152547660000449
并且返回
Figure BDA00041525476600004410
Enc(y,m,τ1...τλ)→c:
给定
Figure BDA00041525476600004411
选取/>
Figure BDA00041525476600004412
并且返回
Figure BDA00041525476600004413
Figure BDA0004152547660000451
解析
Figure BDA0004152547660000452
Figure BDA0004152547660000453
断言/>
Figure BDA0004152547660000454
计算
M:=e(C,g2)·e(R,b)-1·e(a,Z)·e(S,e)-1.
搜索
Figure BDA0004152547660000455
使得M=e(g1,g2)m。如果一切都成功则返回m,否则返回⊥。
2.2多接收者二叉树加密
根据实施例,在多接收者BTE方案中,发送者具有多个明文以寻址到不同的接收者。多接收者加密方案中的随机性的重用使其比单接收者加密方案的并行重复更高效。多接收者BTE具有以下高效算法:
设置:
参数指定消息空间
Figure BDA0004152547660000456
带有2λ个叶子的树的高度λ。我们将写一条到树中节点的路径,就像τ1...τl,其中l≤λ,并且对于叶子l=λ
KGen→(pk,dk):
为根产生公钥和解密密钥的随机化密钥生成算法
KVfy(pk)→b:
如果公钥被视为有效则返回T,否则返回⊥的确定性密钥验证算法
Figure BDA0004152547660000461
/>
给定节点τ1...τl-1的解密密钥返回节点τ1...τlτl的解密密钥的随机化更新算法。
Enc(pk1,m1,...,pkn,mn,τ1...τλ)→c:
给定公钥和寻址到其所有者的消息和叶子返回密文(或者在失败的情况下返回⊥,例如,如果其中一个输入格式错误)的随机化加密算法
Figure BDA0004152547660000462
给定密文、要解密的索引和叶子的解密密钥返回明文
Figure BDA0004152547660000463
或者在出错的情况下返回⊥的确定性解密算法。
构造。
我们现在给出实施例中使用的新颖的多接收者BTE方案的构造。我们的构造几乎与单个接收者相同,不同之处在于我们使用相同的随机性r,s来加密多个公钥。为了证明对于群方案的BTE是安全的,我们想将其降低到单个接收者BTE方案的安全性。为了使安全性证明起作用,这意味着我们需要从单个接收者密文模拟到多接收者密文的扩展,并且为此我们需要知道公钥的离散对数。因此,我们向每个公钥yi添加离散对数的知识证明。
设置:
参数指定消息空间
Figure BDA0004152547660000464
该消息空间足够小,以通过蛮力、群元素
Figure BDA0004152547660000465
和树高度λ进行搜索。
它们的参数还为离散对数的模拟可提取的NIZK知识证明提供了设置(TBD:为dlog的NIZK添加详细信息)。
KGen→(pk,dk):
选取
Figure BDA0004152547660000471
并且计算/>
Figure BDA0004152547660000472
生成离散对数x的知识证明作为π←Provedlog(y;x),并且设置pk:=(y,π)。选取/>
Figure BDA0004152547660000473
并且令/>
Figure BDA0004152547660000474
Figure BDA0004152547660000475
返回(pk,dk)。
KVfy(pk)→b:
解析pk=(y,π)。如果
Figure BDA0004152547660000476
则返回PVfydlog(y,π),否则返回⊥
Figure BDA0004152547660000477
给定
Figure BDA0004152547660000478
以及位τl,选取
Figure BDA0004152547660000479
并且返回/>
Figure BDA00041525476600004710
Enc(pk1,mi,...,pkn,mn,τ1...τλ)→c:
给定输入pki=(yi,πi),其中
Figure BDA00041525476600004711
并且/>
Figure BDA00041525476600004712
且τ1...τλ∈{0,1}λ,选取
Figure BDA00041525476600004713
并且返回
Figure BDA0004152547660000481
Figure BDA0004152547660000482
解析
Figure BDA0004152547660000483
并且
Figure BDA0004152547660000484
断言/>
Figure BDA0004152547660000485
Figure BDA0004152547660000486
假设i∈[1..n],计算
M:=e(Ci,g2)·e(R,b)-1·e(a,Z)·e(S,e)-1.
搜索
Figure BDA0004152547660000487
使得M=e(g1,g2)m。如果一切成功则返回m,否则返回⊥。
2.3具有消息空间
Figure BDA0004152547660000488
的多接收者树加密
如果
Figure BDA0004152547660000489
那么计算M=e(g1,g2)m的离散对数不可行,并且解密时间过长。自然的解决方案是使用分块加密。取m并把它写为/>
Figure BDA00041525476600004810
Figure BDA00041525476600004811
块为mj∈[0..B-1],其中块大小的界限B足够小,以使得可以通过蛮力搜索[0..B-1](在实施例中,我们使用小步大步来节省成本)。
让我们正式记下在对于消息空间[-R..S]的群方案的BTE上构建的消息空间
Figure BDA00041525476600004812
的多接收者BTE方案的细节。
设置:
参数包括基本多接收者树加密方案和正整数B,m的设置,使得
Figure BDA0004152547660000491
Figure BDA0004152547660000492
并且p<Bm
KGen′→(pk,dk):
返回(pk,dk)←KGen
KVfy′(pk)→b:
返回KVfy(pk)
Figure BDA0004152547660000493
返回
Figure BDA0004152547660000494
Enc′(pk1,m1,...,pkn,mn,τ1,...,τλ)→c′:
给定
Figure BDA0004152547660000495
把它们分成几块mi,j∈[0..B-1],使得/>
Figure BDA0004152547660000496
Figure BDA0004152547660000497
对于j=1,...,m,设置cj←Enc(pk1,m1,j,...,pkn,mn,j,τ1,...,τλ)。返回c′:=(c1,...,cm)
Figure BDA0004152547660000498
解析c′=(c1,...,cm)并且对于j=1,...,m,计算mi,j←Dec(i,dk,τ1,...,τλ,cj)。如果任何mj=⊥则返回⊥,否则返回
Figure BDA0004152547660000499
Figure BDA00041525476600004910
让我们写出对群元素进行一些重新布置的完整加密算法,以便观察加密过程和得到的密文可以被分为两部分。第一部分取决于明文,并且第二部分取决于叶子(并且这两部分都取决于随机性)。我们还写出解密算法,以便观察密文的第二部分在给定第一部分和叶子的情况下是唯一的。Enc(pk1,m1,...,pkn,mn,τ1...τλ)→c=(c1,c2):
选取
Figure BDA0004152547660000501
并且计算c1:=Enc1(pk1,m1,...,pkn,mn;r1,s1,...,rm,sm)以及c2:=Enc21,...,τλ;r1,s1,...,rm,sm),其中
·-Enc1(pk1,m1,...,pkn,mn;r,s)首先将pk1,...,pkn解析为pki=(yii),其中
Figure BDA0004152547660000502
并且使用块mi,j∈[0..B-1]将/>
Figure BDA0004152547660000503
分块为/>
Figure BDA0004152547660000504
它返回
Figure BDA0004152547660000505
其中
Figure BDA0004152547660000506
·-在τ1,...,τλ∈{0,1}上进行的Enc21,...,τλ;r1,s1,...,rm,sm)返回
Figure BDA0004152547660000507
其中
Figure BDA0004152547660000508
如果一切正常,则返回c:=(c1,c2)。如果c1=⊥或c2=⊥,则加密算法改为返回c:=⊥。
Figure BDA0004152547660000509
解析c=(c1,c2)和
Figure BDA00041525476600005010
以及c2=(Z1,...,Zm)。检查对于所有j=1,...,m,我们具有
Figure BDA0004152547660000511
假设1≤i≤n,如在树加密中那样将
Figure BDA0004152547660000512
/>
Figure BDA0004152547660000513
解析为/>
Figure BDA0004152547660000514
的群方案。对于j=1,...,m,计算
Mj:=e(ci,j,g2)·e(Rj,b)-1.e(a,Zj)·e(s,h)-1
并搜索mj∈[-R..S],使得
Figure BDA0004152547660000515
如果一切成功则返回/>
Figure BDA0004152547660000516
Figure BDA0004152547660000517
否则返回⊥。
2.4具有前向保密性的CCA安全多接收者公钥加密
具有前向保密性的多接收者加密方案由以下高效算法组成:
设置:
参数指定消息空间
Figure BDA0004152547660000518
和最大纪元数量/>
Figure BDA0004152547660000519
KGen→(pk,dk0):
为纪元τ=0产生公钥和解密密钥的随机化密钥生成算法
KVfy(pk)→b:
如果公钥被视为有效则返回T,否则返回⊥的确定性密钥验证算法
KUpd(dkτ)→dkτ+1
给定纪元τ的解密密钥返回τ+1的解密密钥的随机化更新算法。如果τ+1=T,则它返回⊥
我们将在本文中通篇假设dkτ隐含地定义它所针对的纪元τ。
Enc(pk1,m1,...,pkn,mn,τ)→c:
给定n个公钥和消息以及纪元返回密文(或者在失败的情况下返回⊥,例如,如果其中一个输入格式错误)的随机化加密算法。
Dec(i,dkτ′,c,τ)→m:
给定索引i的解密密钥dkτ和纪元τ的密文返回明文
Figure BDA0004152547660000521
或者在出错的情况下返回⊥的确定性解密算法。在/>
Figure BDA0004152547660000522
的情况下,它始终返回⊥。
构造。
根据实施例,我们可以使用具有前向保密性的新颖的CCA安全多接收者加密方案。它建立在
Figure BDA0004152547660000523
的多接收者树加密方案上,并且我们使用的符号是基于BTE加密算法可以被分为两部分,一部分独立于叶子,另一部分独立于明文的事实。
设置:
参数指定消息空间
Figure BDA0004152547660000524
和最大纪元数量/>
Figure BDA0004152547660000525
以及散列函数/>
Figure BDA0004152547660000526
Figure BDA0004152547660000527
该设置包括用于对在上一节中定义的群方案进行树加密的群元素
Figure BDA0004152547660000528
其中λ=λTH
KGen→(pk,dk0):
选取
Figure BDA0004152547660000531
并且计算/>
Figure BDA0004152547660000532
生成π←Provedlog(y,x)并且令pk:=(y,π)。选取
Figure BDA0004152547660000533
并且设置/>
Figure BDA0004152547660000534
令dk0:=(0,{dk})并且返回(pk,dk0)。/>
KVfy(pk)→b:
解析pk=(y,π),并且如果
Figure BDA0004152547660000535
则返回PVfydlog(y,π),否则返回⊥KUpd(dkτ,τ)→dkτ+1
以二进制解析
Figure BDA0004152547660000536
和/>
Figure BDA0004152547660000537
其中/>
Figure BDA0004152547660000538
是最小节点集合,使得它们的子树正好覆盖[τ..T-1](/>
Figure BDA0004152547660000539
最多具有λT个节点)中的叶子。令/>
Figure BDA00041525476600005310
为其子树覆盖叶子[τ+1..T-1]的最小节点集合,并且对于所有新的/>
Figure BDA00041525476600005311
导出子密钥/>
Figure BDA00041525476600005312
返回
Figure BDA00041525476600005313
Enc(pk1,m1,...,pkn,mn,τ)→c:
以二进制解析
Figure BDA00041525476600005314
选取/>
Figure BDA00041525476600005315
并且计算
c1:=Enc1(pk1,m1,...,pkn,mn;r1,s1,...,rm,sm).
计算
Figure BDA00041525476600005316
c2:=Enc21,...,τλ;r1,s1,...,rm,sm).
如果一切成功,则返回c:=(c1,c2),否则返回⊥。
Dec(i,dkτ′,c,τ)→m:
解析c=(c1,c2)和
Figure BDA0004152547660000541
计算/>
Figure BDA0004152547660000542
假设τ∈[τ′..T-1],导出/>
Figure BDA0004152547660000543
并且返回/>
Figure BDA0004152547660000544
如果有任何失败,则返回⊥。
3非交互式零知识证明
3.1NIZK证明-背景
我们通过三种高效算法为可高效判定的二元关系
Figure BDA0004152547660000545
(其可能取决于系统范围的参数)定义了非交互式零知识证明。我们使用Fiat-Shamir启发式来创建NIZK证明,这意味着证明者使用散列/可扩展输出函数来创建证明中的挑战。
ProveH(instance,witness)→π:
在实例和见证者上返回证明π(或错误符号⊥)的随机化算法
PVfyH(instance,π)→b:
在实例和证明π上如果证明被视为有效则返回T,否则返回⊥的确定性算法。如果验证算法获取⊥作为输入,那么无论是在实例、证明中还是来自oracle,它都返回⊥。
NIZK证明满足标准正确性和安全性概念,诸如完整性、稳健性、零知识;以及取决于情况,满足更强的概念,诸如模拟稳健性和模拟可提取性。
3.2离散对数的证明
在实施例中,我们使用几个NIZK证明,其中之一是关于离散对数知识的标准Schnorr证明。
离散对数知识的NIZK证明
设置:
具有生成器g1的已知素数阶p的群
Figure BDA0004152547660000551
散列函数/>
Figure BDA0004152547660000552
实例:
Figure BDA0004152547660000553
陈述:
y的唯一离散对数的知识
见证者:
Figure BDA0004152547660000554
使得/>
Figure BDA0004152547660000555
ProveH(instance,witness):
·-选取
Figure BDA0004152547660000556
并且计算/>
Figure BDA0004152547660000557
·-计算e:=H(y,a)
·-计算z:=ex+r mod p
·-令证明为
Figure BDA0004152547660000558
·-返回π(并删除证明期间创建的中间信息)
PVfyH(instance,π):
·-检查实例和证明按预期使用群元素
Figure BDA0004152547660000561
和字段元素/>
Figure BDA0004152547660000562
正确格式化
·-计算e:=H(y,a)
·-如果所有检查都通过,则返回T并且
Figure BDA0004152547660000563
否则通过返回⊥拒绝
3.3正确秘密分享的证明
根据实施例,我们使用正确秘密分享的新颖NIZK证明。从交易(在上一节中定义)中任何方都可以计算组合的群元素
Figure BDA0004152547660000564
这些群元素唯一定义
Figure BDA0004152547660000565
和/>
Figure BDA0004152547660000566
使得/>
Figure BDA0004152547660000567
交易中的起始群元素Rj,Ci,j也可以按照离散对数/>
Figure BDA0004152547660000568
和/>
Figure BDA0004152547660000569
形式唯一地写,从而给我们关系/>
Figure BDA00041525476600005610
和/>
Figure BDA00041525476600005611
在正确的交易中,每个/>
Figure BDA00041525476600005612
我们现在为这个等式对每个i=1,...,n都成立的陈述呈现NIZK证明。想法是使用散列函数来计算挑战/>
Figure BDA00041525476600005613
我们用它将实例压缩为
Figure BDA0004152547660000571
/>
如果陈述为真,那么我们具有
Figure BDA0004152547660000572
并且如果陈述为假,即存在任何si≠a(i),那么等式意外成立的x至多有n个可能的值。因此,在压缩步骤之后,我们可以使用压缩的
Figure BDA0004152547660000573
Figure BDA0004152547660000574
与/>
Figure BDA0004152547660000575
的离散对数相同的第二随机oracle挑战x′进行新的Schnorr式证明。
正确秘密分享的NIZK证明
设置:
具有配对
Figure BDA0004152547660000576
和生成器g1,g2,e(g1,g2)的已知素数阶p的群
Figure BDA0004152547660000577
群元素/>
Figure BDA0004152547660000578
散列函数/>
Figure BDA0004152547660000579
实例:
Figure BDA00041525476600005710
和4
Figure DA00041525476654547649
Figure BDA00041525476600005711
陈述:
实例中的离散对数对于i=1,...,n满足
Figure BDA0004152547660000581
见证者:
满足si=a(i)的
Figure BDA0004152547660000582
其中/>
Figure BDA0004152547660000583
ProveH(instarce,witness):
·-计算x:=H(instance)
·-生成随机数
Figure BDA0004152547660000585
并且计算
Figure BDA0004152547660000586
·-计算x′:=H(x,F,A,Y)
·-计算
zr=rx′+p mod p,
Figure BDA0004152547660000587
·-令证明为
Figure BDA0004152547660000588
/>
·-返回π(并删除证明期间创建的中间信息)
PVfyH(instance,π):
·-检查实例和证明按照预期使用群元素
Figure BDA0004152547660000589
和字段元素/>
Figure BDA00041525476600005810
正确格式化
·-计算x:=H(instance)和x′:=H(x,F,A,Y)
·-验证
Figure BDA0004152547660000591
Figure BDA0004152547660000592
·-如果所有检查都通过则返回T,否则通过返回⊥拒绝
根据实施例,交易者充当NIZK证明中的证明者以进行正确的秘密分享。元素a0,...,at-1是定义交易者选择的Shamir秘密分享的多项式a(i)的系数。交易者的要被重新分享的秘密分享是s=a(0)并且s1=a(1),...,sn=a(n)是秘密子分享。交易者通过
Figure BDA0004152547660000593
提供与秘密分享相关的相关联密钥材料A0,...,At-1
3.4正确分块的证明
根据实施例,我们使用新颖的NIZK证明来正确分块密文。交易者必须提供可以在交易中解密密文的证据,以便接收者可以恢复它们的签名密钥的分享。我们在交易中使用的密文大部分是可公开验证的,唯一的问题是明文应该被分成小块并提取接收者计算离散对数所需的块。因此,如果应该提取的块太大,那么接收者就会有问题。由此,实施例提供可以确保所有块的大小适中的NIZK证明系统。
我们首先观察到我们不需要考虑完整的密文,只有其中的一部分对于证明加密块具有正确的大小是至关重要的。每个接收者i看到一组盖莫尔(ElGamal)密文(R1,Ci,1),...,(Rm,Ci,m),据称包含她的明文的m块。我们想展示密文对于中等大小明文块si,1,...,si,m的公钥yi是有效的ElGamal加密,因此接收者可以提取它们并计算她的完整明文
Figure BDA0004152547660000601
Figure BDA0004152547660000602
每个ElGamal密文(Rj,Ci,j)可以唯一地写为/>
Figure BDA0004152547660000603
其可以被解密得到/>
Figure BDA0004152547660000604
如果交易者是诚实的,那么si,j∈[0..B-1]并且接收者可以进行蛮力搜索si,j
我们希望避免不诚实的交易者使用无法蛮力解密的si,j。我们的目标是获得类似范围的宽松证明,这将表明存在小Δi,j使得Δi,jsi,j属于中等大小范围。这足以表明si,j可以被提取,因为接收者现在可以进行蛮力搜索以寻找将我们带入范围内的合适的Δi,j。由于乘法因子Δi,j和范围的增加,蛮力搜索不如诚实交易高效,但如果范围之间存在适度差异,则它仍然可行。
正确分块证明背后的想法是并行进行许多小的分块证明。每个子证明都具有适度的稳健性,但它们共同使证明者作弊的机会可忽略不计。每个子证明将使用挑战e1,1,...,en,m←[0..E-1]。取线性组合
Figure BDA0004152547660000605
对于每个yi,我们可以导出匹配编码随机性
Figure BDA0004152547660000606
因此我们具有唯一确定的/>
Figure BDA0004152547660000607
现在,我们可以(暂时不用担心零知识)要求证明者揭示
Figure BDA0004152547660000611
如果证明者是诚实的,si,j∈[0..B-1],并且因此zs在范围[0..S]内,其中S≥nm(E-1)(B-1)。现在,不诚实的证明者提供zs∈[0..S]会怎样?好吧,如果证明者具有/>
Figure BDA0004152547660000612
的机会这样做,那么对于每个(i,j)存在两组挑战(e1,1,...,ei,j,...,en,m)和(e1,1,...,ei,j′,...,en,m),仅在(i,j)条目中不同,其中证明者揭示范围[0..S]中的zs和zs′。如果证明者正在揭示正确的zs,zs′,那么这意味着
Figure BDA0004152547660000613
Figure BDA0004152547660000614
因此(当wlogei,j≥ei,j″时)其中Δi,j=ei,j-ei,j′∈[1;E-1],我们具有Δi,jsi,j|∈[-S..S]。重复次,将条目(i,j)上的欺诈风险降低到∈≤E-l
下一个问题是如何在每个并行运行(编号为k)中强制证明者揭示正确的
Figure BDA0004152547660000615
为了以高效通信的方式验证这一点,我们使用挑战x将l并行一起运行批处理,以一次性显示zs,k的正确性。
我们还必须避免揭示见证者中的秘密值。所以我们通过在揭示之前添加致盲因素σk来做出证明零知识
Figure BDA0004152547660000616
现在,如果σk尽管太大,我们最终会使zs,k太大,这意味着我们不能再保证可以在指数中进行蛮力搜索。另一方面,如果σk太小,可能它无法很好地隐藏总和。为了解决这个问题,我们使用拒绝采样。考虑随机从[-S;Z-1]中选择σk。所得的zs,k属于范围[-S;Z+S-1]。我们可以将这个范围分成两个不相交的部分。在范围[0..Z-1]中,σk的随机选择使得每个zs,k可能性相等,并且在另一部分[-S;Z+S-1]\[0..Z-1]中,每个可能的总和
Figure BDA0004152547660000621
具有相同数量的可能的zs,k,它可以在σk被添加时命中。因此,想法是让证明者检查每个zs,k在范围[0..Z-1]内,并且如果不在范围内,那么证明者以崭新的随机性重新启动整个证明并再次尝试。重新启动不会泄漏信息,因为任何总和/>
Figure BDA0004152547660000622
都有相等的概率导致zs,k超出允许范围,并且在Fiat-Shamir启发式中不可见,因为它全部发生在证明者一侧的本地。在运行k中在范围外落地的风险最多是/>
Figure BDA0004152547660000623
这意味着经过l次运行,它最多是/>
Figure BDA0004152547660000624
通过仔细选择参数Z,我们可以确保重新启动的风险足够低,使得期望的证明者很少重新启动,而且范围[0..Z-1]足够小,使得Δi,jsi,j∈[1-Z..Z-1]可以在给定
Figure BDA0004152547660000625
时通过蛮力找到。
用于分块的NIZK证明
设置:
参数指定具有生成器g1的素数阶p的群
Figure BDA0004152547660000626
参数包括安全性参数λ和正整数n,m,l,B,E,S,Z,使得
Figure BDA00041525476600006212
S=nm(B-1)(E-1)并且2lS≤Z<p2-λ/l(Z=2lS,或者如果我们想要将拒绝风险降低到低于1/2,那么我们可以选择较大的Z),并且/>
Figure BDA0004152547660000627
Figure BDA0004152547660000628
它们还包括散列函数
Figure BDA0004152547660000629
和一系列散列函数/>
Figure BDA00041525476600006210
Figure BDA00041525476600006211
实例:
Figure BDA0004152547660000631
中的群元素
Figure BDA0004152547660000632
离散对数不是实例的一部分,但它们由群元素唯一确定并指示用于以后参考。
陈述:
实例的离散对数满足对于所有i=1,...,n以及j=1,...,m,存在Δi,j∈[1;E-1]使得
Δi,jsi,j∈[1-Z..Z-1]
见证者:
满足所有si,j∈[0..B-1]的约束的离散对数
Figure BDA0004152547660000633
ProveH(instance,witness):
·-选取
Figure BDA0004152547660000634
·-计算
Figure BDA0004152547660000635
·-查询
Figure BDA0004152547660000636
并将输出解析为e1,1,1,...,em,n,l∈[0..E-1]
·-计算
Figure BDA0004152547660000641
并检查它们是否属于范围[0..Z-1]。如果它们不属于,那么选取崭新的σ1,...,σl←[-S;Z-1]并再次进行最多λ次尝试。如果λ次尝试失败,那么通过返回π=⊥中止。
·-选取
Figure BDA0004152547660000642
·-计算
Figure BDA0004152547660000643
·-查询H(e1,1,1,...,en,m,l,zs,1,...,zs,l,D0,...,Dn,Y)以得到
Figure BDA0004152547660000644
·-计算
Figure BDA0004152547660000645
·-令证明为π=(y0,B1,c1,...,Bl,Cl,D0,...,Dn,Y,zs,1,...,zs,l,zr,1,...,zr,n,zβ)
·-擦除证明期间创建的所有中间信息并返回π
PVfyH(instance,π):
·-检查实例属于
Figure BDA0004152547660000651
并解析/>
Figure BDA0004152547660000652
Figure BDA0004152547660000653
·-检查zs,1...,zs,l∈[0..Z-1]
·-如由证明者进行的那样通过查询H计算e1,1,1,...,en,m,l和x
·-验证
Figure BDA0004152547660000654
Figure BDA0004152547660000655
·-如果所有检查都通过,则通过返回T接受,否则通过返回⊥拒绝
4具有前向保密性的非交互式分布式密钥生成和密钥重新分发
分布式密钥生成协议使一组各方能够一起生成公钥和私钥的分享。DKG协议由一组交易者运行,它们的目标是生成公钥并为一组接收者提供匹配的私钥的秘密分享。充当交易者的一组参与者和充当接收者的一组参与者可以相同、重叠或不相交。
在交易者选择的随机秘密分享上使用我们的重新分发协议,我们得到非交互的DKG协议,即交易者只是创建和广播交易,而不与接收者或彼此进一步交互。接收者和其他各方可以在一组广播交易中组合公钥材料,以获得用于阈值签名方案的公钥。接收者还从该组交易中检索它们的签名密钥的秘密分享。除了查看广播交易外,接收者不与其他参与者交互。当公钥已经生成时,我们想要保存它,但是重新分发新的私钥的秘密分享。在这种情况下,我们假设交易者已经具有私钥的分享,但它们希望运行分布式重新分享协议来为一组接收者提供崭新的私钥的分享。根据实施例,两种可能性都存在;当交易者想要创建崭新的交易时,它们调用交易算法而不输入“-”以指示它们还没有分享,而在重新分发时它们使用它们的私钥调用交易算法。
设置:
参数指定可能的索引集合,为了简单起见,我们将假设它是[1..N]和最大纪元数量T。
KGen→(pk,dk0):
返回公开加密密钥和为纪元τ=0初始化的私有解密密钥的随机化密钥生成算法。
KVfy(pk)→b:
如果公钥被视为有效则返回T,否则返回⊥的确定性密钥验证算法。
KUpd(dkτ)→dkτ+1
将纪元τ的解密密钥(解密密钥唯一确定相关的纪元)作为输入并将其更新为纪元τ+1的解密密钥。如果作为输入给出的解密密钥是对于τ=T-1,那么更新调用返回⊥以指示纪元已达到极限。
Deal(?sk,t,pk1,...,pkn,τ)→d:
给定阈值和一组公钥(其中n≤N)产生给定纪元的交易的随机化交易算法。它将在重新分发交易中使用的私钥sk作为可选输入,并在崭新的交易中省略任何私钥。
DVfy(?shvk,t,pk1,...,pkn,τ,d)→b:
如果交易d被视为有效则返回T,否则返回⊥的确定性交易验证算法。它将分享验证密钥shvk作为可选输入。目的是可以包含shvk来测试重新分发交易,而在测试崭新的交易时不包含它。
完整性检查输入是自然的,所以我们假设交易验证算法在正整数t≤n≤N和τ∈[0..T-1]上只能返回T。我们还需要一致性特性,可选的分享验证密钥的包含使交易验证与没有分享验证密钥的交易验证一样严格或更严格。
VKCombine(t,n,I,d1,...,dl)→(vk,shvk1,...,shvkn):
给定不同索引i1<…<il的集合I和对应交易返回公开验证密钥vk和分享验证密钥shvk1,...,shvkn的确定性算法。
VKVfy(t,vk,shvk1,...,shvkn)→b:
给定阈值t和一组验证密钥,如果密钥被视为有效,则返回T,否则返回⊥的确定性算法。该算法在正整数t≤n≤N上只能返回T。
SKRetrieve(j,dkτ′,I,d1,...,dl,τ)→sk:
给定解密密钥、大小为l的索引集I和纪元τ的匹配交易d1,...,dl返回给定索引j的秘密分享签名密钥sk的确定性算法。
SKVfy(sk,shvk)→b:
给定秘密分享签名密钥,如果它被视为相对于分享验证密钥shvk有效,则返回T,否则返回⊥的确定性私钥验证算法。
正确性。
我们构造的协议将具有以下正确性特性:
·-密钥生成产生有效的公钥
Pr[(pk,dk0)←KGen:KVfy(pk)=T]=1
·-对有效公钥进行的交易是有效的。更准确地说,如果1≤t≤n≤N和τ∈[0..T-1]并且pk1,...,pkn是有效的公钥,使得KVfy(pki)=T和SKVfy(sk,shvk)=T或替代地(sk,shvk)=(-,-),则
Pr[d←Deal(?sk,t,pk1,...,pkn,τ):DVfy(?shvk,t,pk1,...,pkn,τ,d)=T]≈1.
·-交易验证是一致的。如果DVfy(shvk,t,pk1,...,pkn,d)=T,则DVfy(-,t,pk1,...,pkn,τ,d)=T。
·-有效的交易导致有效的验证密钥。如果t,pk1,...,pkn,τ和交易d1,...,dl都满足DVfy(-,t,pk1,...,pkn,τ,dk)=T并且索引集
Figure BDA0004152547660000691
Figure BDA0004152547660000692
具有大小l,则
Figure BDA0004152547660000693
·-诚实的接收者应该能够从一组有效的交易中为她自己检索到有效的私钥。我们将检索对手
Figure BDA0004152547660000694
的优势定义为
Figure BDA0004152547660000695
其中在每次调用KUpd时oracle设置dkτ′+1:=KUpd(dkτ′)和τ′:=τ′+1,并且一旦τ′+1=T就停止对进一步的调用做出反应。oracle通过向对手发送解密密钥来响应调用5
Figure BDA0004152547660000696
验证密钥保留。
协议保留验证密钥,如果对于正整数t≤n≤N,t′≤n′≤N,验证密钥vk,shvk1,...,shvkn,其中VKVfy(t,vk,shvk1,...,shvkn)=T,索引集I包含i1<…,it≤n,纪元τ∈[0..T-1],公钥pk1,...,pkn′以及有效交易d1,...,dt,其中
Figure BDA0004152547660000701
那么我们有
Pr[(vk′,shvk1′,...,shvkn′′)←VKCombine(t′,n′,I,d1,...,dt):vk′=vk]=1.
4.1构造。
根据实施例,我们具有带前向保密性的非交互式密钥重新分发协议。该协议构建在我们之前描述的具有前向保密性的CCA安全多接收者加密方案上,我们从中得到密钥生成、密钥验证和密钥更新算法KGen,KVfy以及KUpd。在实施例中,本发明用于BLS阈值签名,它使用VKVfy,SKVfy算法来验证生成的密钥。我们在这里以自包含的方式呈现完整的协议,包括那些算法。
设置:
该设置包括具有配对
Figure BDA0004152547660000702
和生成器g1,g2,e(g1,g2)的已知素数阶p的群/>
Figure BDA0004152547660000703
BLS阈值签名方案使用散列函数/>
Figure BDA0004152547660000704
Figure BDA0004152547660000705
参数定义了最大纪元数量
Figure BDA0004152547660000711
和定义协议可以向参与者指派的索引[1..N]集合的边界N<p,这意味着N是我们可以在单次交易中具有的最大接收者集。
该设置还指定了群元素
Figure BDA0004152547660000712
这些元素用于我们的具有前向保密性的CCA安全加密方案。群元素隐含地定义了我们将经常使用的函数/>
Figure BDA0004152547660000713
Figure BDA0004152547660000714
给出6。作为加密方案参数的一部分,有块大小B≥2。我们令
Figure BDA0004152547660000715
这意味着Bm≥p。加密方案采用散列函数/>
Figure BDA0004152547660000716
并且参数λ应满足λ=λTH。加密方案还使用/>
Figure BDA0004152547660000717
中的元素的离散对数的模拟可提取的NIZK知识证明。
Figure DA00041525476655271736
该构造利用我们在第3节中介绍的正确秘密分享和正确分块的模拟稳健NIZK证明。NIZK证明依赖于散列函数
Figure BDA0004152547660000718
分块的NIZK证明包括计算附加参数l,E,S,Z,λe的函数。用于分块的NIZK证明还使用一系列散列函数/>
Figure BDA0004152547660000719
其中输出的长度λe可以由用户选择。
KGen→(pk,dko):
选取
Figure BDA00041525476600007110
并且设置
Figure BDA00041525476600007111
构造离散对数的知识证明πdlog←Provedlog(y;x)。
设置pk:=(y,πdlog)。
选取
Figure BDA0004152547660000721
设置
Figure BDA0004152547660000722
和dk0:=(0,dk)。
擦除中间信息并返回(pk,dk0)。
KVfy(pk)→b:
解析pk=(y,πdlog),并且如果
Figure BDA0004152547660000723
则返回PVfydlog(y,πdlog)=T,否则返回⊥。
KUpd(dkτ,k)→dkτ+k
在描述更新过程之前,让我们给出解密密钥dkτ的高层结构。
前向安全加密方案构建在树加密方案上,用于大小为2λ的二叉树。消息被加密到树的叶子,并且应该是内部节点的解密密钥允许您为该节点下的子树中的所有节点导出解密密钥的情况。具有
Figure BDA0004152547660000724
的公钥和二叉树中高度l≤λ处的节点τ1...τl的解密密钥的结构是
Figure BDA0004152547660000725
如果解密密钥是使用协议中的算法生成的,则ρ将从
Figure BDA0004152547660000726
中随机均匀选择7
Figure BDA0004152547660000727
从解密密钥
Figure BDA0004152547660000731
中,可以通过选取/>
Figure BDA0004152547660000732
和设置为子树中的任何节点导出完全随机化的解密密钥/>
Figure BDA0004152547660000733
Figure BDA0004152547660000734
新的解密密钥具有随机性ρ+δ,其在
Figure BDA0004152547660000735
中均匀随机。
在具有前向保密性的加密方案中,前缀
Figure BDA0004152547660000736
将指示解密密钥适用的纪元。因此,其中τ∈[0..T-1]的解密密钥dkτ必须允许我们导出密钥/>
Figure BDA0004152547660000737
并且还使我们能够为高度λT子树中的所有后续叶子导出密钥。对于任何τ∈[0..T-1],令/>
Figure BDA0004152547660000738
是节点τ1...τl的最小集合(其中l≤λT),使得它们的子树不相交并覆盖[τ..T-1]中的所有叶子。解密密钥dkτ的形式是
Figure BDA0004152547660000739
Figure DA00041525476654400184
密钥更新算法工作是给定dkτ和k使得τ+k<T。从一组树解密密钥
Figure BDA00041525476600007310
中,它使用子树中的相关密钥来导出所有/>
Figure BDA00041525476600007311
Figure BDA00041525476600007312
的随机化解密密钥/>
Figure BDA00041525476600007313
然后它擦除中间数据并返回
Figure BDA00041525476600007314
在解密密钥格式错误或
Figure BDA0004152547660000741
的情况下,更新算法返回⊥9
Deal(?sk,t,pk1,...,pkn,τ)→d:
将输入解析为
Figure BDA0004152547660000742
t∈[1..n],其中n≤N,pki=(yi,πi),其中/>
Figure BDA0004152547660000743
τ∈[0..T-1],并且如果失败则返回⊥10
Figure DA00041525476654065985
·-如果sk不存在,则随机选取
Figure BDA0004152547660000744
·-以二进制解析
Figure BDA0004152547660000745
·-设置a0:=sk并且选取随机数
Figure BDA0004152547660000746
·-计算s1,...,sn
Figure BDA0004152547660000747
·-以B-ary符号写出每个si,即
Figure BDA0004152547660000748
其中si,j∈[0..B-1]
·-选取随机性
Figure BDA0004152547660000749
·-计算C1,1,...,Cn,m,R1,S1,...,Rm,Sm
Figure BDA00041525476600007410
·-计算
Figure BDA00041525476600007411
·-计算f:=f(τ1...τλ)
·-计算Z1,...,Zm
Figure BDA00041525476600007412
·-计算
Figure BDA0004152547660000751
·-计算
Figure BDA0004152547660000752
·-计算
Figure BDA0004152547660000753
和/>
Figure BDA0004152547660000754
·-构造正确的秘密分享证明
πshare←Proveshare(y1,...,yn,A0,...,At-1,R,C1,...,Cn;r,s1,...,sn)
·-构造正确的分块证明
πchunk←Provechunk(y1,...,yn,R1,...,Rm,C1,1,...,Cn,m;r1,...,rm,s1,1,...,sn,m)
·-擦除中间信息并返回交易
Figure BDA0004152547660000755
DVfy(?shvk,t,pk1,...,pkn,τ,d):
将输入解析为
Figure BDA0004152547660000756
t∈[1..n],其中n≤N,pki=(yi,πi),其中/>
Figure BDA0004152547660000757
τ∈[0..T-1],并且如果解析失败则返回⊥11
Figure DA00041525476654099260
·-检查交易的形式
Figure BDA0004152547660000758
其中
Figure BDA0004152547660000761
并且/>
Figure BDA0004152547660000762
·-如果存在可选的shvk=A0,则检查shvk=A0
·-设置
Figure BDA0004152547660000763
·-设置f:=f(τ1,...,τλ)
·-对于每个三元组(R1,S1,Z1),...,(Rm,Sm,Zm)验证e(g1,Zj)=e(Rj,f)·e(Sj,h)
·-通过检查验证正确秘密分享的证明
Figure BDA0004152547660000764
·-通过检查验证分块的证明
PVfychunk(y1,...,yn,R1,...,Rm,C1,1,...,Cn,m;πchunk)=T
·-如果全部检查都通过则返回T,否则返回⊥
VKCombine(t,n,I,d1,...,dl):
给定1≤t≤n≤N,以及l个索引1≤i1<…<il≤n的集合I,以及一组交易
dj:=(...,Aj,0,...,Aj,t-1,...)
对于所有
Figure BDA0004152547660000771
计算A0,...,At-1
Figure BDA0004152547660000772
·-设置vk:=A0
·-计算shvk1,...,shvkn
Figure BDA0004152547660000773
·-如果全部都工作,则返回(vk,shvk1,...,shvkn),否则返回⊥。
VKVfy(t,vk,shvk1,...,shvkn):
我们概述了BLS阈值签名方案中的公钥材料的有效性条件。检查1≤t≤n≤N和
Figure BDA0004152547660000774
设置shvk0:=vk和J={0,...,t-1}。对于i=t,...,n检查是否
Figure BDA0004152547660000775
如果全部检查都通过,则返回T,否则返回⊥
SKRetrieve(i,dkτ′,K,d1,...,dl,τ):
将每个交易解析为
dk=(Ck,1,1,...,Ck,n,m,...,Ck,i,1,Rk,1,Sk,1,...,Rk,m,Sk,m,Zk,1,...,Zk,m,...),
其中
Figure BDA0004152547660000776
并且/>
Figure BDA0004152547660000777
检查1≤i≤n≤N。
对于k=1,...,l,定义
Figure BDA0004152547660000781
并且计算
Figure BDA0004152547660000782
令fk:=f(τk,1,...,τk,λ)。
假设τ′≤τ如解密密钥更新中所述那样从dkτ导出,则BTE解密密钥
Figure BDA0004152547660000783
对于k=1,...,l。
对于每个k=1,...,l以及j=1,...,m,计算
Figure BDA0004152547660000784
然后对于sk,j∈{z/Δ|Δ∈[1..E-1],z∈[1-Z;Z-1]}使用小步大步(Baby-StepGiant-Step)算法进行蛮力搜索,使得
Figure BDA0004152547660000785
计算
Figure BDA0004152547660000786
解析
Figure BDA0004152547660000787
为不同的索引k1<…<kl并且计算
Figure BDA0004152547660000788
擦除中间数据,并且如果一切顺利,则返回sk:=si,否则返回⊥。
SKVfy(sk,shvk):
我们概述了BLS阈值签名方案中秘密分享签名密钥的有效性条件。如果
Figure BDA0004152547660000791
并且/>
Figure BDA0004152547660000792
则擦除中间数据并返回T,否则返回⊥。
根据实施例,我们在交易(Deal)算法中具有以下对应关系
·-sk是交易者的秘密分享并且a0,...,at-1是定义Shamir秘密分享的多项式的系数
·-s1,...,sn是交易者创建的子分享,用于分享交易者的秘密分享sk
·-A0是通过
Figure BDA0004152547660000793
与交易者的秘密分享相关的现有相关联密钥材料
·-A1,...,At-1是由交易者生成的关联公钥材料
·-s1,1,...,sn,m是加密方案中使用的子分享的块
·-{C1,1,...,Cn,m,R1,S1,...,Rm,Sm,Z1,...,Zm}在具有前向保密性的CCA安全多接收者公钥加密方案中构成密文,为交易者的秘密分享提供分块加密
·-πshare是交易者提供的第一个NIZK证明,用于表明加密的秘密分享和关联公钥材料A0,...,At-1是正确的
·-πchunk是交易者提供的第二个NIZK证明,用于表明明文已被正确分块
根据实施例,我们在VKCombine算法中在相关联密钥材料中具有以下关系
·-输入Aj,0,...,Aj,t-1是交易dj中的相关联密钥材料
·-输出vk是相关联密钥材料:群元素是BLS签名方案的验证密钥
·-输出shvk1,...,shvkn是相关联密钥材料:群元素是BLS签名方案中的分享验证密钥

Claims (21)

1.一种计算机实现的方法,用于将秘密的(n,t)秘密分享从一组交易者重新分发给一组接收者,所述(n,t)秘密分享包括n个秘密分享,其中阈值数量t≤n的秘密分享足以重构秘密,所述方法包括:
由至少阈值数量t的交易者中的每个交易者执行以下步骤:
创建其相应秘密分享的(n',t')秘密分享,所述(n',t')秘密分享包括其相应秘密分享的n'个秘密子分享,其中阈值数量t'≤n'的秘密子分享足以重构秘密分享;
创建一组密文,所述一组密文对于每个接收者包括其相应秘密分享的n'个秘密子分享中的一个加密子分享,秘密的加密子分享相对于相应接收者的公钥加密方案的公开加密密钥被加密;
生成所述一组密文联合包含其秘密分享的重新分发的非交互式零知识证明;以及
向所述一组接收者广播交易,所述交易包括针对所述一组接收者的所述一组密文和对应的非交互式零知识证明。
2.根据权利要求1所述的计算机实现的方法,还包括:
由一组预定义的各方,特别是由所述一组接收者,检查交易的非交互式零知识证明;以及
一旦成功检查了足够数量t的证明,
由所述接收者中的每个接收者解密其在交易中的加密子分享;以及
由所述接收者中的每个接收者将解密的子分享组合成秘密的新秘密分享。
3.根据前述权利要求中的任一项所述的计算机实现的方法,其中零知识证明是能够公开验证的零知识证明,使得任何一方能够验证它们。
4.根据前述权利要求中的任一项所述的计算机实现的方法,其中秘密分享是线性秘密分享,特别是Shamir秘密分享。
5.根据前述权利要求中的任一项所述的计算机实现的方法,还包括:
由每个交易者创建与其秘密分享相关联的关联公钥材料以及所述秘密分享的其秘密分享;以及
将关联公钥材料添加到交易。
6.根据权利要求5所述的计算机实现的方法,其中关联公钥材料包括:
与每个交易者的秘密分享相关的公开群元素;和/或
与由每个交易者创建的秘密分享相关的公开群元素。
7.根据前述权利要求中的任一项所述的计算机实现的方法,其中秘密是与公钥签名方案的公开验证密钥对应的私钥。
8.根据前述权利要求2至7中的任一项所述的计算机实现的方法,还包括:
由任何一方,特别是接收者,从由所述一组交易者创建的关联公钥材料创建与新的秘密分享相关联的新的关联公钥材料和所述一组接收者的新的秘密分享。
9.根据权利要求5、6、7和/或8所述的计算机实现的方法,其中创建新的关联公钥材料包括:
从由所述一组交易者创建的关联公钥材料导出新的关联公钥材料,新的关联公钥材料包括:
与接收者的新的秘密分享相关联的公开分享验证密钥;
与私钥相关的公开验证密钥;和/或
能够从中导出接收者的公开分享验证密钥和/或公开验证密钥的元素。
10.根据前述权利要求中的任一项所述的计算机实现的方法,还包括:使用具有选择的密文攻击安全性的公钥加密方案来加密针对所述一组接收者的秘密子分享。
11.根据前述权利要求中的任一项所述的计算机实现的方法,还包括:
使用具有前向保密性的公钥加密方案来加密针对接收者的秘密子分享。
12.根据权利要求11所述的计算机实现的方法,
其中具有前向保密性的加密方案为二叉树加密方案。
13.根据前述权利要求中的任一项所述的计算机实现的方法,
其中公钥加密方案是多接收者加密方案,多接收者加密方案被配置为对于所述一组接收者的公开加密密钥加密交易者的子分享。
14.根据权利要求13所述的计算机实现的方法,
其中多接收者加密方案使用分享随机性来对于所述一组接收者的公开加密密钥加密所述一组交易者的子分享。
15.根据前述权利要求中的任一项所述的计算机实现的方法,
其中所述加密方案被配置为执行子分享的分块加密,其中每个子分享被分成多个明文,每个明文表示一个块。
16.根据权利要求15所述的计算机实现的方法,还包括:
由所述一组交易者生成进一步的非交互式零知识证明,进一步的零知识证明被配置为证明分块加密是正确的。
17.根据权利要求2至16中的任一项所述的计算机实现的方法,还包括:在单独的进程中、在虚拟硬件安全性模块上或在硬件安全性模块上执行加密子分享的解密。
18.根据前述权利要求中的任一项所述的计算机实现的方法,其中广播交易的步骤包括将交易放在公告板上。
19.一种包括多个节点的分布式网络,其中所述网络被配置为执行计算机实现的方法,所述方法用于将秘密的(n,t)秘密分享从一组交易者重新分发给一组接收者,所述(n,t)秘密分享包括n个秘密分享,其中阈值数量t≤n的秘密分享足以重构秘密s,所述方法包括:
由至少阈值数量t的交易者中的每个交易者执行以下步骤:
创建其相应秘密分享的(n',t')秘密分享,所述(n',t')秘密分享包括其相应秘密分享的n'个秘密子分享,其中阈值数量t'≤n'的秘密子分享足以重构秘密分享;
创建一组密文,所述一组密文对于每个接收者包括其相应秘密分享的n'个秘密子分享中的一个加密子分享,秘密的加密子分享相对于相应接收者的公钥加密方案的公开加密密钥被加密;
生成所述一组密文联合包含其秘密分享的重新分发的非交互式零知识证明;以及
向所述一组接收者广播交易,所述交易包括针对一组接收者的所述一组密文和对应的非交互式零知识证明。
20.一种节点,所述节点用于根据权利要求19所述的分布式网络。
21.一种计算机程序产品,用于将秘密的(n,t)秘密分享从一组交易者重新分发给一组接收者,所述(n,t)秘密分享包括n个秘密分享,其中阈值数量t≤n的秘密分享足以重构秘密,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有实施在其中的程序指令,所述程序指令能够由分布式网络的一个或多个节点执行以使所述一个或多个节点执行包括以下的方法:
由至少阈值数量t的交易者中的每个交易者执行以下步骤:
创建其相应秘密分享的(n',t')秘密分享,所述(n',t')秘密分享包括其相应秘密分享的n'个秘密子分享,其中阈值数量t'≤n'的秘密子分享足以重构秘密分享;
创建一组密文,所述一组密文对于每个接收者包括其相应秘密分享的n'个秘密子分享中的一个加密子分享,秘密的加密子分享相对于相应接收者的公钥加密方案的公开加密密钥被加密;
生成所述一组密文联合包含其秘密分享的重新分发的非交互式零知识证明;以及
向所述一组接收者广播交易,所述交易包括针对所述一组接收者的所述一组密文和对应的非交互式零知识证明。
CN202080105718.0A 2020-09-30 2020-09-30 秘密分享的重新分发 Pending CN116391346A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2020/077414 WO2022069035A1 (en) 2020-09-30 2020-09-30 Redistribution of secret sharings

Publications (1)

Publication Number Publication Date
CN116391346A true CN116391346A (zh) 2023-07-04

Family

ID=72744758

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080105718.0A Pending CN116391346A (zh) 2020-09-30 2020-09-30 秘密分享的重新分发

Country Status (6)

Country Link
US (1) US20230361993A1 (zh)
EP (1) EP4201019A1 (zh)
JP (1) JP2023552263A (zh)
KR (1) KR20230078767A (zh)
CN (1) CN116391346A (zh)
WO (1) WO2022069035A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230016859A1 (en) * 2020-07-13 2023-01-19 Inpher, Inc. Multi-Pivot Partial Quicksort and Oblivious Comparisons of Secret Shared Arithmetic Values in a Multi-Party Computing Setting
CN114826614B (zh) * 2022-04-22 2024-02-23 安天科技集团股份有限公司 一种可认证密码库文件分布式存储方法、装置和电子设备
GB202209073D0 (en) * 2022-06-21 2022-08-10 Cybernetica As Distributed decryption
CN115941164A (zh) * 2022-10-31 2023-04-07 蚂蚁区块链科技(上海)有限公司 一种区块链上实现分布式密钥生成的方法、系统和节点

Also Published As

Publication number Publication date
US20230361993A1 (en) 2023-11-09
KR20230078767A (ko) 2023-06-02
EP4201019A1 (en) 2023-06-28
WO2022069035A1 (en) 2022-04-07
JP2023552263A (ja) 2023-12-15

Similar Documents

Publication Publication Date Title
JP7202358B2 (ja) 閾ボールトを生成する、コンピュータにより実施される方法
JP7301039B2 (ja) 閾値デジタル署名方法及びシステム
Li et al. Privacy preserving cloud data auditing with efficient key update
Cascudo et al. ALBATROSS: publicly attestable batched randomness based on secret sharing
US20190190726A1 (en) Authentication system and device including physical unclonable function and threshold cryptography
Shacham et al. Compact proofs of retrievability
CN116391346A (zh) 秘密分享的重新分发
Abdalla et al. Verifiable random functions: Relations to identity-based key encapsulation and new constructions
WO2019138223A1 (en) Computer-implemented method for managing user-submitted reviews using anonymous reputation system
Diamond Many-out-of-many proofs and applications to anonymous zether
US9356783B2 (en) Method for ciphering and deciphering, corresponding electronic device and computer program product
WO2019110399A1 (en) Two-party signature device and method
Agrawal et al. Round-optimal lattice-based threshold signatures, revisited
Sun et al. A strongly secure identity‐based authenticated key agreement protocol without pairings under the GDH assumption
TW202318833A (zh) 臨界簽章方案
KR20230002941A (ko) 비밀 공유를 갖는 (ec)dsa 임계값 서명
CN117240467A (zh) 一种实现门限签名的方法、系统和节点
CN117040764A (zh) 一种秘钥份额更新方法、计算机设备和存储介质
Yan et al. Identity‐based signcryption from lattices
Doshi An enhanced approach for CP-ABE with proxy re-encryption in IoT paradigm
US20230269092A1 (en) Distributed network having a plurality of subnets
Krzywiecki et al. Deniable key establishment resistance against eKCI attacks
Ricci et al. Privacy-enhancing group signcryption scheme
Duc et al. DiAE: Re-rolling the DiSE
CN114710273B (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