CN116391346A - 秘密分享的重新分发 - Google Patents
秘密分享的重新分发 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 84
- 230000002452 interceptive effect Effects 0.000 claims abstract description 41
- 239000000463 material Substances 0.000 claims description 48
- 238000012795 verification Methods 0.000 claims description 46
- 238000003860 storage Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 description 66
- 230000006870 function Effects 0.000 description 31
- 238000004364 calculation method Methods 0.000 description 27
- 230000003068 static effect Effects 0.000 description 27
- 238000004891 communication Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 9
- 238000010276 construction Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 238000007689 inspection Methods 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012045 magnetic resonance elastography Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 241000070928 Calligonum comosum Species 0.000 description 1
- 235000006629 Prosopis spicigera Nutrition 0.000 description 1
- 240000000037 Prosopis spicigera Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000001311 chemical methods and process Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- Y—GENERAL 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
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS 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/00—Systems 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/20—Information 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。从概率分布中采样,我们写当/>从一组S中随机均匀采样时,我们写/>对于重复独立和均匀随机采样,我们写/>在实践中,采样不会是均匀随机的,而是通过使用伪随机数生成器来完成的伪随机,这在我们协议的实例化中会很好地工作。
令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字段、群和配对
我们写用于整数模p。在这篇文章中,p将始终是已知素数,因此/>是有限域(有时也写作/>)。/>带有作为整数0,1,...,p-1的字段元素的规范表示,因此有高效的算法来计算字段操作。我们写/>用于域的乘法子群,即{1,...,p-1}。我们写y:=x mod p用于将x modulo p的规范表示分配给y。
我们写用于一群已知的素数阶p。所有素数阶群都是循环的,因此使用乘法表示用于某种生成器g,其中单位为1=g0。当我们提到群时,我们总是假设它们具有已知的素数阶、群元素的规范和紧凑表示以及计算群操作和决定成员资格的高效算法。
我们使用基于配对的密码学,其中我们有已知素数阶p的两个源群和一个目标群/>配对(用密码学的说法,偏离标准数学术语)是非退化双线性映射这意味着如果g1,g2是/>的生成器,那么当e(g1,g2)生成/>时并且对于所有/>我们具有/>我们要求配对是可高效计算的。
1.3散列函数和可扩展的输出函数
我们依靠密码散列函数来压缩数据。标准密码散列函数是一种可高效计算的函数H:{0,1}*→{0,1}λ,它接受任意长度的输入并将其映射到λ位串,其中λ是固定值。示例是SHA-256,它将任意输入散列为256位串。
不过,我们不会只是散列到固定长度的输出。因此,我们写Hλ:{0,1}*→{0,1}λ用于将任意长度的输入映射到指定长度λ的串的函数。我们有时也映射到群中,并写用于映射到群/>中的函数。并且我们可以映射到字段中,这时我们写为当上域(codomain)从上下文中清楚时,我们通常会省略它并简单地写H而不是例如/>
存在将常规散列函数转换为具有特定输出域的散列函数的已知技术。例如,要获得散列函数将诸如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))是对于领域中的秘密流行的秘密分享方案。想法是选择随机次数t-1多项式a(x),使得a(0)=s,并让分享为s1=a(1),...,sn=a(n)1。这种秘密分享背后的想法是,次数t-1多项式上的任何t个不同点都唯一确定它并允许重构秘密。另一方面,给定t-1个不同点(具有非零x坐标),存在p种可能的多项式通过它们,每个产生不同的秘密,因此它们不提供关于秘密的任何信息。
这为我们提供了以下用于(n,t)-Shamir秘密分享的算法:
Share(n,t,s)→(s1,...,sn):
假设现在我们想要将秘密s的(n,t)-Shamir秘密分享转换为相同秘密s的(n′,t′)-Shamir秘密分享。在我们的发明的实施例中,重新分发协议从持有原始分享的t个交易者获取输入并执行此操作并将新分享输出给n′个接收者。想法是交易者i创建其秘密分享si的(n′,t′)秘密子分享。然后我们将这些n′个子分享给接收者。该想法可以用下面的重新分发方案来表达:
设置:
Reshare(n′,t′,si):
返回(si,1,...,si,n′)←Share(n′,t′,si)。
证实这一点的关键观察是拉格朗日插值是线性的。可以使用拉格朗日插值重新组合原始秘密分享以重构秘密。但是对子分享应用相同的重构过程也产生相同秘密的秘密分享。因此,接收者只要知道交易者的索引,就可以在本地使用拉格朗日插值重构其新分享的(n′,t′)分享。为了看到这一点,我们计算:
有适用于特殊情况的重新分发方案,例如,如果一组交易者与一组接收者相同,则它们可以取而代之共同创建0的秘密分享并将其添加到它们现有的分享中,以获崭新的(n,t)秘密分享。或者它们可以通过在它们的分享中添加0的(n,t+1)秘密分享来提高阈值。根据实施例的重新分发方案是通用的并处理所有情况,但可以扩展以合并现有的特殊情况处理来提高效率。
秘密分享给接收者带来了一个问题:她得到了正确的分享吗?交易者可能会给她不好的分享。交易者甚至可能分发与真实交易不符的“分享”。Feldman(Paul Feldman:APractical Scheme for Non-interactive Verifiable Secret Sharing.FOCS 1987:427-437)提出了可验证的秘密分享来解决这个问题。他的方案使用阶p的一群交易者将分享与公开群元素/>一起分发。接收者i应该得到分享si=a(i),现在可以检查它,因为如果秘密分享是正确的,那么我们应该具有
大多数可验证的秘密分享方案使用相关想法。然后它们让接收者在她的分享有误的情况下发出投诉。具有投诉阶段意味着与接收者有交互。根据实施例的密钥重新分发协议避免了与接收者的交互,并且也没有与交易者的交互。
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))工作如下:
设置:
KGen:
Sign(sk,m):
如果检查全部通过则返回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,否则返回⊥。
正确性。
如果满足以下条件,则阈值签名方案是完全正确的:
·—有效的分享签名密钥产生有效的签名分享。对于所有sk,shvk,m,其中SKVfy(sk,shvk)=T
Pr[sh←SigShare(sk,m):SigShVfy(shvk,m,sh)=T]=1.
·-将不同索引的阈值的有效分享组合起来产生有效签名。对于所有其中VKVfy(t,vk,shvk1,...,shvkn)=T,I是t个不同索引i1<…<it≤n的集合,并且对于所有i∈I,SigShVfy(shvki,m,shi)=T,
唯一性。
唯一签名特性可以被定义为标准签名方案,因为它仅取决于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签名中的签名验证算法,但启用私钥被秘密分享到多个秘密分享签名密钥中的情况。这些分享签名密钥可以产生签名分享,并且如果有足够的签名分享,那么它们可以被组合成签名。因此,以下算法可以看作是签名算法的替代,而我们在这里不描述密钥生成。
设置:
VKVfy(t,vk,shvk1,...,shvkn):
如果所有检查都通过则返回T,否则返回⊥。
SKVfy(sk,shvk):
SigShare(sk,m):
返回
SigShVfy(shvk,m,sh):
返回
SigVfy(vk,m,σ):
如果所有检查都通过则返回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
·-块证明中的组合输入大小S=nm(E-1)(B-1)≈241
·-块证明中的总范围Z=2lS=246
2公钥加密方案
根据实施例,我们使用具有前向保密性的新颖的CCA安全多接收者公钥加密方案。在这里,我们逐步解释这种加密方案的构造。
一个目标是呈现分布式密钥生成和密钥重新分发协议,以维护各个节点的签名密钥的阈值分享。在实施的协议中,节点将需要长期的公开加密密钥,因为我们希望最小化交互,并且我们对于各个节点加密分享。其他参与者可以在节点的整个生命周期中使用此公钥来加密到该节点的消息。
在密钥重新分发协议中,节点将接收多条消息。该协议对攻击具有弹性,我们假设一些消息可能是恶意生成的。因此,明智的做法是针对选择密文攻击的安全性。此外,由于密钥被长期使用,因此存在节点被破坏和解密密钥被泄露的风险。实施例通过使用具有前向保密性的加密方案来采取防御措施。前向保密性意味着将时间划分为纪元,并将消息加密到特定纪元。节点对应地更新其解密密钥以匹配当前纪元并删除旧纪元的解密密钥。这样,即使节点受到破坏,它也无法解密过去纪元的旧密文,因此我们减少了对手可能获知的信息。
实施例对于多个分享持有者加密签名密钥的阈值分享。一种多接收者加密方案是有利的,它允许我们在一个密文中对于一群接收者加密多条消息。在本节中,我们逐步构建新颖的多接收者公钥加密方案,该方案在选择的密文攻击下是不可区分的,并且具有前向保密性。
2.1二叉树加密
根据实施例,我们可以使用二叉树加密。在BTE中,参数指定高度为λ的二叉树2。加密算法采用明文并将其加密到树中的叶子。每个叶子可以关联解密密钥,并且该解密密钥的持有者可以恢复明文。还有与内部节点相关联的解密密钥。内部节点的解密密钥允许您为该节点的任何子节点导出解密密钥。这意味着,如果您具有根的解密密钥,那么您可以导出所有叶子的解密密钥。但是,如果您没有根的解密密钥,那么您只能解密与您持有的解密密钥的子树中的叶子相关的密文3。
BTE方案具有以下高效算法:
设置:
KGen→(pk,dk):
为树的根产生公钥和解密密钥的随机化密钥生成算法
KVfy(pk)→b:
如果公钥被视为有效则返回T,否则返回⊥的确定性密钥验证算法
Enc(pk,m,τ1,...,τλ)→c:
给定公钥、消息和叶子的随机化加密算法返回密文(或者在失败的情况下返回⊥,例如,如果其中一个输入格式错误)
构造。
设置:
KGen→(y,dk):
KVfy(pk)→b:
给定
Enc(y,m,τ1...τλ)→c:
解析
M:=e(C,g2)·e(R,b)-1·e(a,Z)·e(S,e)-1.
2.2多接收者二叉树加密
根据实施例,在多接收者BTE方案中,发送者具有多个明文以寻址到不同的接收者。多接收者加密方案中的随机性的重用使其比单接收者加密方案的并行重复更高效。多接收者BTE具有以下高效算法:
设置:
KGen→(pk,dk):
为根产生公钥和解密密钥的随机化密钥生成算法
KVfy(pk)→b:
如果公钥被视为有效则返回T,否则返回⊥的确定性密钥验证算法
给定节点τ1...τl-1的解密密钥返回节点τ1...τlτl的解密密钥的随机化更新算法。
Enc(pk1,m1,...,pkn,mn,τ1...τλ)→c:
给定公钥和寻址到其所有者的消息和叶子返回密文(或者在失败的情况下返回⊥,例如,如果其中一个输入格式错误)的随机化加密算法
构造。
我们现在给出实施例中使用的新颖的多接收者BTE方案的构造。我们的构造几乎与单个接收者相同,不同之处在于我们使用相同的随机性r,s来加密多个公钥。为了证明对于群方案的BTE是安全的,我们想将其降低到单个接收者BTE方案的安全性。为了使安全性证明起作用,这意味着我们需要从单个接收者密文模拟到多接收者密文的扩展,并且为此我们需要知道公钥的离散对数。因此,我们向每个公钥yi添加离散对数的知识证明。
设置:
它们的参数还为离散对数的模拟可提取的NIZK知识证明提供了设置(TBD:为dlog的NIZK添加详细信息)。
KGen→(pk,dk):
KVfy(pk)→b:
给定
Enc(pk1,mi,...,pkn,mn,τ1...τλ)→c:
解析
M:=e(Ci,g2)·e(R,b)-1·e(a,Z)·e(S,e)-1.
如果那么计算M=e(g1,g2)m的离散对数不可行,并且解密时间过长。自然的解决方案是使用分块加密。取m并把它写为/> 块为mj∈[0..B-1],其中块大小的界限B足够小,以使得可以通过蛮力搜索[0..B-1](在实施例中,我们使用小步大步来节省成本)。
设置:
KGen′→(pk,dk):
返回(pk,dk)←KGen
KVfy′(pk)→b:
返回KVfy(pk)
Enc′(pk1,m1,...,pkn,mn,τ1,...,τλ)→c′:
让我们写出对群元素进行一些重新布置的完整加密算法,以便观察加密过程和得到的密文可以被分为两部分。第一部分取决于明文,并且第二部分取决于叶子(并且这两部分都取决于随机性)。我们还写出解密算法,以便观察密文的第二部分在给定第一部分和叶子的情况下是唯一的。Enc(pk1,m1,...,pkn,mn,τ1...τλ)→c=(c1,c2):
如果一切正常,则返回c:=(c1,c2)。如果c1=⊥或c2=⊥,则加密算法改为返回c:=⊥。
Mj:=e(ci,j,g2)·e(Rj,b)-1.e(a,Zj)·e(s,h)-1
2.4具有前向保密性的CCA安全多接收者公钥加密
具有前向保密性的多接收者加密方案由以下高效算法组成:
设置:
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:
构造。
根据实施例,我们可以使用具有前向保密性的新颖的CCA安全多接收者加密方案。它建立在的多接收者树加密方案上,并且我们使用的符号是基于BTE加密算法可以被分为两部分,一部分独立于叶子,另一部分独立于明文的事实。
设置:
KGen→(pk,dk0):
KVfy(pk)→b:
以二进制解析和/>其中/>是最小节点集合,使得它们的子树正好覆盖[τ..T-1](/>最多具有λT个节点)中的叶子。令/>为其子树覆盖叶子[τ+1..T-1]的最小节点集合,并且对于所有新的/>导出子密钥/>
返回
Enc(pk1,m1,...,pkn,mn,τ)→c:
c1:=Enc1(pk1,m1,...,pkn,mn;r1,s1,...,rm,sm).
c2:=Enc2(τ1,...,τλ;r1,s1,...,rm,sm).
如果一切成功,则返回c:=(c1,c2),否则返回⊥。
Dec(i,dkτ′,c,τ)→m:
3非交互式零知识证明
3.1NIZK证明-背景
我们通过三种高效算法为可高效判定的二元关系(其可能取决于系统范围的参数)定义了非交互式零知识证明。我们使用Fiat-Shamir启发式来创建NIZK证明,这意味着证明者使用散列/可扩展输出函数来创建证明中的挑战。
ProveH(instance,witness)→π:
在实例和见证者上返回证明π(或错误符号⊥)的随机化算法
PVfyH(instance,π)→b:
在实例和证明π上如果证明被视为有效则返回T,否则返回⊥的确定性算法。如果验证算法获取⊥作为输入,那么无论是在实例、证明中还是来自oracle,它都返回⊥。
NIZK证明满足标准正确性和安全性概念,诸如完整性、稳健性、零知识;以及取决于情况,满足更强的概念,诸如模拟稳健性和模拟可提取性。
3.2离散对数的证明
在实施例中,我们使用几个NIZK证明,其中之一是关于离散对数知识的标准Schnorr证明。
离散对数知识的NIZK证明
设置:
实例:
陈述:
y的唯一离散对数的知识
见证者:
ProveH(instance,witness):
·-计算e:=H(y,a)
·-计算z:=ex+r mod p
·-返回π(并删除证明期间创建的中间信息)
PVfyH(instance,π):
·-计算e:=H(y,a)
·-如果所有检查都通过,则返回T并且
否则通过返回⊥拒绝
3.3正确秘密分享的证明
根据实施例,我们使用正确秘密分享的新颖NIZK证明。从交易(在上一节中定义)中任何方都可以计算组合的群元素
这些群元素唯一定义和/>使得/>交易中的起始群元素Rj,Ci,j也可以按照离散对数/>和/>形式唯一地写,从而给我们关系/>和/>在正确的交易中,每个/>我们现在为这个等式对每个i=1,...,n都成立的陈述呈现NIZK证明。想法是使用散列函数来计算挑战/>我们用它将实例压缩为
如果陈述为真,那么我们具有
并且如果陈述为假,即存在任何si≠a(i),那么等式意外成立的x至多有n个可能的值。因此,在压缩步骤之后,我们可以使用压缩的 与/>的离散对数相同的第二随机oracle挑战x′进行新的Schnorr式证明。
正确秘密分享的NIZK证明
设置:
实例:
陈述:
实例中的离散对数对于i=1,...,n满足
见证者:
ProveH(instarce,witness):
·-计算x:=H(instance)
·-计算x′:=H(x,F,A,Y)
·-计算
·-返回π(并删除证明期间创建的中间信息)
PVfyH(instance,π):
·-计算x:=H(instance)和x′:=H(x,F,A,Y)
·-验证
和
·-如果所有检查都通过则返回T,否则通过返回⊥拒绝
根据实施例,交易者充当NIZK证明中的证明者以进行正确的秘密分享。元素a0,...,at-1是定义交易者选择的Shamir秘密分享的多项式a(i)的系数。交易者的要被重新分享的秘密分享是s=a(0)并且s1=a(1),...,sn=a(n)是秘密子分享。交易者通过提供与秘密分享相关的相关联密钥材料A0,...,At-1。
3.4正确分块的证明
根据实施例,我们使用新颖的NIZK证明来正确分块密文。交易者必须提供可以在交易中解密密文的证据,以便接收者可以恢复它们的签名密钥的分享。我们在交易中使用的密文大部分是可公开验证的,唯一的问题是明文应该被分成小块并提取接收者计算离散对数所需的块。因此,如果应该提取的块太大,那么接收者就会有问题。由此,实施例提供可以确保所有块的大小适中的NIZK证明系统。
我们首先观察到我们不需要考虑完整的密文,只有其中的一部分对于证明加密块具有正确的大小是至关重要的。每个接收者i看到一组盖莫尔(ElGamal)密文(R1,Ci,1),...,(Rm,Ci,m),据称包含她的明文的m块。我们想展示密文对于中等大小明文块si,1,...,si,m的公钥yi是有效的ElGamal加密,因此接收者可以提取它们并计算她的完整明文 每个ElGamal密文(Rj,Ci,j)可以唯一地写为/>其可以被解密得到/>如果交易者是诚实的,那么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]。取线性组合
对于每个yi,我们可以导出匹配编码随机性因此我们具有唯一确定的/>现在,我们可以(暂时不用担心零知识)要求证明者揭示如果证明者是诚实的,si,j∈[0..B-1],并且因此zs在范围[0..S]内,其中S≥nm(E-1)(B-1)。现在,不诚实的证明者提供zs∈[0..S]会怎样?好吧,如果证明者具有/>的机会这样做,那么对于每个(i,j)存在两组挑战(e1,1,...,ei,j,...,en,m)和(e1,1,...,ei,j′,...,en,m),仅在(i,j)条目中不同,其中证明者揭示范围[0..S]中的zs和zs′。如果证明者正在揭示正确的zs,zs′,那么这意味着 因此(当wlogei,j≥ei,j″时)其中Δi,j=ei,j-ei,j′∈[1;E-1],我们具有Δi,jsi,j|∈[-S..S]。重复次,将条目(i,j)上的欺诈风险降低到∈≤E-l。
我们还必须避免揭示见证者中的秘密值。所以我们通过在揭示之前添加致盲因素σk来做出证明零知识
现在,如果σ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]中,每个可能的总和具有相同数量的可能的zs,k,它可以在σk被添加时命中。因此,想法是让证明者检查每个zs,k在范围[0..Z-1]内,并且如果不在范围内,那么证明者以崭新的随机性重新启动整个证明并再次尝试。重新启动不会泄漏信息,因为任何总和/>都有相等的概率导致zs,k超出允许范围,并且在Fiat-Shamir启发式中不可见,因为它全部发生在证明者一侧的本地。在运行k中在范围外落地的风险最多是/>这意味着经过l次运行,它最多是/>通过仔细选择参数Z,我们可以确保重新启动的风险足够低,使得期望的证明者很少重新启动,而且范围[0..Z-1]足够小,使得Δi,jsi,j∈[1-Z..Z-1]可以在给定时通过蛮力找到。
用于分块的NIZK证明
设置:
参数包括安全性参数λ和正整数n,m,l,B,E,S,Z,使得S=nm(B-1)(E-1)并且2lS≤Z<p2-λ/l(Z=2lS,或者如果我们想要将拒绝风险降低到低于1/2,那么我们可以选择较大的Z),并且/>
实例:
离散对数不是实例的一部分,但它们由群元素唯一确定并指示用于以后参考。
陈述:
实例的离散对数满足对于所有i=1,...,n以及j=1,...,m,存在Δi,j∈[1;E-1]使得
Δi,jsi,j∈[1-Z..Z-1]
见证者:
·-计算
·-计算
并检查它们是否属于范围[0..Z-1]。如果它们不属于,那么选取崭新的σ1,...,σl←[-S;Z-1]并再次进行最多λ次尝试。如果λ次尝试失败,那么通过返回π=⊥中止。
·-计算
·-计算
·-令证明为π=(y0,B1,c1,...,Bl,Cl,D0,...,Dn,Y,zs,1,...,zs,l,zr,1,...,zr,n,zβ)
·-擦除证明期间创建的所有中间信息并返回π
PVfyH(instance,π):
·-检查zs,1...,zs,l∈[0..Z-1]
·-如由证明者进行的那样通过查询H计算e1,1,1,...,en,m,l和x
·-验证
和
·-如果所有检查都通过,则通过返回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。
其中在每次调用KUpd时oracle设置dkτ′+1:=KUpd(dkτ′)和τ′:=τ′+1,并且一旦τ′+1=T就停止对进一步的调用做出反应。oracle通过向对手发送解密密钥来响应调用5。
验证密钥保留。
协议保留验证密钥,如果对于正整数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,其中那么我们有
Pr[(vk′,shvk1′,...,shvkn′′)←VKCombine(t′,n′,I,d1,...,dt):vk′=vk]=1.
4.1构造。
根据实施例,我们具有带前向保密性的非交互式密钥重新分发协议。该协议构建在我们之前描述的具有前向保密性的CCA安全多接收者加密方案上,我们从中得到密钥生成、密钥验证和密钥更新算法KGen,KVfy以及KUpd。在实施例中,本发明用于BLS阈值签名,它使用VKVfy,SKVfy算法来验证生成的密钥。我们在这里以自包含的方式呈现完整的协议,包括那些算法。
设置:
该设置还指定了群元素这些元素用于我们的具有前向保密性的CCA安全加密方案。群元素隐含地定义了我们将经常使用的函数/>由给出6。作为加密方案参数的一部分,有块大小B≥2。我们令这意味着Bm≥p。加密方案采用散列函数/>并且参数λ应满足λ=λT+λH。加密方案还使用/>中的元素的离散对数的模拟可提取的NIZK知识证明。
该构造利用我们在第3节中介绍的正确秘密分享和正确分块的模拟稳健NIZK证明。NIZK证明依赖于散列函数分块的NIZK证明包括计算附加参数l,E,S,Z,λe的函数。用于分块的NIZK证明还使用一系列散列函数/>其中输出的长度λe可以由用户选择。
KGen→(pk,dko):
构造离散对数的知识证明πdlog←Provedlog(y;x)。
设置pk:=(y,πdlog)。
和dk0:=(0,dk)。
擦除中间信息并返回(pk,dk0)。
KVfy(pk)→b:
KUpd(dkτ,k)→dkτ+k:
在描述更新过程之前,让我们给出解密密钥dkτ的高层结构。
前向安全加密方案构建在树加密方案上,用于大小为2λ的二叉树。消息被加密到树的叶子,并且应该是内部节点的解密密钥允许您为该节点下的子树中的所有节点导出解密密钥的情况。具有的公钥和二叉树中高度l≤λ处的节点τ1...τl的解密密钥的结构是
在具有前向保密性的加密方案中,前缀将指示解密密钥适用的纪元。因此,其中τ∈[0..T-1]的解密密钥dkτ必须允许我们导出密钥/>并且还使我们能够为高度λT子树中的所有后续叶子导出密钥。对于任何τ∈[0..T-1],令/>是节点τ1...τl的最小集合(其中l≤λT),使得它们的子树不相交并覆盖[τ..T-1]中的所有叶子。解密密钥dkτ的形式是
Deal(?sk,t,pk1,...,pkn,τ)→d:
·-计算C1,1,...,Cn,m,R1,S1,...,Rm,Sm为
·-计算f:=f(τ1...τλ)
·-构造正确的秘密分享证明
π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)
·-擦除中间信息并返回交易
DVfy(?shvk,t,pk1,...,pkn,τ,d):
·-检查交易的形式
·-如果存在可选的shvk=A0,则检查shvk=A0
·-设置f:=f(τ1,...,τλ)
·-对于每个三元组(R1,S1,Z1),...,(Rm,Sm,Zm)验证e(g1,Zj)=e(Rj,f)·e(Sj,h)
·-通过检查验证正确秘密分享的证明
·-通过检查验证分块的证明
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,...)
·-设置vk:=A0
·-计算shvk1,...,shvkn为
·-如果全部都工作,则返回(vk,shvk1,...,shvkn),否则返回⊥。
VKVfy(t,vk,shvk1,...,shvkn):
如果全部检查都通过,则返回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,...),
令fk:=f(τk,1,...,τk,λ)。
假设τ′≤τ如解密密钥更新中所述那样从dkτ导出,则BTE解密密钥
对于k=1,...,l。
对于每个k=1,...,l以及j=1,...,m,计算
擦除中间数据,并且如果一切顺利,则返回sk:=si,否则返回⊥。
SKVfy(sk,shvk):
根据实施例,我们在交易(Deal)算法中具有以下对应关系
·-sk是交易者的秘密分享并且a0,...,at-1是定义Shamir秘密分享的多项式的系数
·-s1,...,sn是交易者创建的子分享,用于分享交易者的秘密分享sk
·-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'个秘密子分享中的一个加密子分享,秘密的加密子分享相对于相应接收者的公钥加密方案的公开加密密钥被加密;
生成所述一组密文联合包含其秘密分享的重新分发的非交互式零知识证明;以及
向所述一组接收者广播交易,所述交易包括针对所述一组接收者的所述一组密文和对应的非交互式零知识证明。
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)
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 | 蚂蚁区块链科技(上海)有限公司 | 一种区块链上实现分布式密钥生成的方法、系统和节点 |
-
2020
- 2020-09-30 KR KR1020237014577A patent/KR20230078767A/ko unknown
- 2020-09-30 EP EP20785950.5A patent/EP4201019A1/en active Pending
- 2020-09-30 CN CN202080105718.0A patent/CN116391346A/zh active Pending
- 2020-09-30 WO PCT/EP2020/077414 patent/WO2022069035A1/en unknown
- 2020-09-30 JP JP2023519886A patent/JP2023552263A/ja active Pending
- 2020-09-30 US US18/029,030 patent/US20230361993A1/en active Pending
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 |