CN110999207A - 生成阈值库的计算机实现方法 - Google Patents
生成阈值库的计算机实现方法 Download PDFInfo
- Publication number
- CN110999207A CN110999207A CN201880053433.XA CN201880053433A CN110999207A CN 110999207 A CN110999207 A CN 110999207A CN 201880053433 A CN201880053433 A CN 201880053433A CN 110999207 A CN110999207 A CN 110999207A
- Authority
- CN
- China
- Prior art keywords
- share
- node
- polynomial function
- secret
- nodes
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 163
- 230000006870 function Effects 0.000 claims description 161
- 238000004422 calculation algorithm Methods 0.000 claims description 55
- 238000009826 distribution Methods 0.000 claims description 14
- 239000000654 additive Substances 0.000 claims description 7
- 230000000996 additive effect Effects 0.000 claims description 7
- 238000012937 correction Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 46
- 230000008901 benefit Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012795 verification Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 230000001010 compromised effect Effects 0.000 description 8
- 239000000243 solution Substances 0.000 description 6
- 230000008520 organization Effects 0.000 description 5
- 230000036961 partial effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000009795 derivation Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- TVZRAEYQIKYCPH-UHFFFAOYSA-N 3-(trimethylsilyl)propane-1-sulfonic acid Chemical compound C[Si](C)(C)CCCS(O)(=O)=O TVZRAEYQIKYCPH-UHFFFAOYSA-N 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 1
- 238000010200 validation analysis Methods 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr 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
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- 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
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- 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
-
- 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
- H04L9/3255—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Saccharide Compounds (AREA)
Abstract
一种方法和装置,用于依赖于单独选择的多项式函数安全地且私有地生成阈值库地址和分布式单独密钥份额而不泄露密钥份额且从不重构私钥。存储在阈值库地址处的数字资产可以通过生成与阈值库地址相对应的数字签名而被用作交易的输入。描述了用于协作地生成数字签名而不重构私钥或揭示单独的密钥份额的方法和装置。描述了用于刷新分布式私钥份额的方法和装置。
Description
技术领域
本申请总体上涉及数据和基于计算机的资源的安全性。更具体地,本申请涉及椭圆曲线密码术、椭圆曲线数字签名算法(ECDSA)应用和阈值密码术。例如,本申请描述了下述示例处理:该处理用于安全地、秘密地、协作地生成公钥-私钥对,而没有任何节点或第三方具有生成私钥本身的能力,同时使阈值数量的节点能够生成符合ECDSA要求的数字签名。
背景技术
在本文件中,使用术语“区块链(blockchain)”来包括所有形式的电子的、基于计算机的分布式账本。这些包括基于共识的区块链和交易链技术、许可及未许可的账本、共享账本及其变型。虽然已经提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币账本。虽然出于方便和说明的目的,本文中可能提到的是比特币,但应当指出的是,本发明不限于与比特币区块链一起使用,并且替代性的区块链实施方案和协议也落入本申请的范围内。
区块链是点对点的电子账本,该账本被实现为基于计算机的去中心化系统,其由区块构成,而该区块又由交易构成。每个交易是对区块链系统中的地址之间的数字资产的控制的转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。每个区块均包含前一区块的散列,使得这些区块被链接在一起,以构建对自区块链诞生之始就已被写入区块链的所有交易的永久性不可更改的记录。
去中心化的概念对区块链系统是基本的。与分布式或集中式系统不同,去中心化系统提供的优点是不存在单点故障。因此,去中心化系统提供了更高级别的安全性和弹性。通过使用诸如椭圆曲线密码术和ECDSA之类的已知密码技术,可以进一步增强此安全性。
区块链系统中的对数字资产(其可以代表货币、硬资产、软资产、计算资源、或任何其他事物或服务)的所有权和控制通过公钥-私钥对来控制。未耗用交易输出(UXTO)地址类似于公钥,并且通过使用对应的私钥引起对分配给该UXTO地址的资产的控制。为了通过使用UXTO作为另一交易的输入来转移数字资产,必须通过对应的私钥对输入进行数字签名。因此,对私钥的安全性和保密性的控制对于区块链的安全性和可靠性至关重要。
因此,需要一种进一步增强这种系统的安全性的解决方案。本申请尤其提供了这样的优点。
发明内容
本申请提供了如所附权利要求书中限定的方法及系统。
根据本申请的方面,提供了一种安全地生成阈值库(threshold vault)的计算机实现的方法,所述阈值库具有公钥地址、私钥和阈值k,多个节点中的每个节点均具有相应的第一秘密和相应的k-1次多项式函数,其中,该节点的相应的第一秘密被设定为所述多项式函数的自由项,所述节点包括具有第一多项式函数的第一节点,由所述第一节点执行的所述方法包括:对于所述多个节点中的每个其他节点,将所述第一多项式函数中的变量设定为与该其他节点相关联的值,找到所述多项式函数的针对所述值的相应结果,并且将所述相应结果安全地传送至该其他节点;从至少阈值数量的其他节点接收相应的第二秘密,其中,所述相应的第二秘密中的每个第二秘密为该其他节点的相应的多项式函数的、针对与所述第一节点相关联的第一值的结果;向所述其他节点传送所述相应结果中每个结果的椭圆曲线点乘法;从至少所述阈值数量的其他节点接收由所述其他节点与所述节点中的任何节点共享的、所述相应的第二秘密的椭圆曲线点乘法;基于从所述其他节点接收的所述相应的第二秘密的总和来形成并存储所述私钥的第一私钥份额;以及基于接收到的所述相应的第二秘密的所述椭圆曲线点乘法的总和并且使用多项式插值来确定与所述私钥相对应的公钥。
在一些实施方案中,每个相应的多项式函数由所述多项式函数的相应的节点独立地选择,并且每个相应的多项式函数具有不同的系数集。多项式函数可以具有下述形式:
在一些实施方案中,该方法包括向所述其他节点传送所述第一多项式函数的每个系数的椭圆曲线点乘法。该方法还可以从所述至少阈值数量的其他节点接收其相应的多项式函数的每个系数的椭圆曲线点乘法。该方法又可以包括对从其他节点接收到的相应的第二秘密进行验证。
可以通过确定以下形式的总和来获得第一私钥份额:
其中,fi是第i个节点的多项式函数,n是椭圆曲线的整数阶,x是多项式函数中的变量,at是多项式函数的系数集,并且t是索引。
在一些实施方案中,该方法包括通过与所述其他节点协作地参与联合零秘密份额(joint zero secret share)的无经销商秘密分配来修改所述第一私钥份额,由此所述第一节点接收第一零秘密份额,并且通过添加所述第一零秘密份额来修改所述第一私钥份额以形成并存储修改后的第一私钥份额。
确定公钥的步骤可以包括通过根据接收到的所述相应的第二秘密的椭圆曲线点乘法的多个已知值确定所述多项式函数的系数,来确定所述多项式函数。
确定所述多项式函数的步骤可以包括执行误差校正算法。
确定所述多项式函数的步骤可以包括执行Berlekamp-Welch解码算法。
确定所述多项式函数的步骤可以包括:
定义误差定位器多项式函数和第二多项式函数,其中,所述第二多项式函数是所述多项式函数与所述误差定位器多项式函数的乘积;根据接收到的所述相应的第二秘密的椭圆曲线点乘法的多个已知值来确定所述第二多项式函数和所述误差定位器多项式函数的系数;以及根据所述第二多项式函数和所述误差检测器多项式函数来确定所述多项式函数。
在另一方面,本申请公开了一种用于为与阈值库有关的消息安全地生成数字签名的计算机实现的方法,其中,所述阈值库具有公钥地址、私钥和阈值,多个节点中的每个节点具有相应的私钥份额、临时密钥份额、乘法掩码份额、第一加法掩码份额和第二加法掩码份额,由所述多个节点中的第一节点执行的所述方法包括:生成并共享双掩码密钥份额以及所述乘法密钥份额的椭圆曲线点乘法,该双掩码密钥份额是基于所述临时密钥份额、通过所述乘法密钥份额和所述第一加法密钥份额掩码的;从至少阈值数量的其他节点接收其相应的双掩码密钥份额并接收其乘法密钥份额的相应的椭圆曲线点乘法(ECPM);通过利用对所述双掩码密钥份额进行多项式插值以及对所述乘法密钥份额的所述ECPM进行多项式插值来确定第一签名分量;以及基于所述消息、所述私钥份额、所述第一签名分量、所述临时密钥份额,通过所述第二加法掩码份额掩码,确定并揭示第二签名分量份额。第二签名分量能够根据至少所述阈值数量的节点的相应的所述第二签名分量份额而获得。
在一些实施方案中,该方法包括使用无经销商秘密分配来生成第一节点的私钥份额、临时密钥份额和乘法掩码份额。该方法还可以包括使用联合零秘密份额来生成第一节点的第一加法掩码份额和第二加法掩码份额。在一些实施方案中,生成双掩码密钥份额包括确定:
在一些实施方案中,对所述双掩码密钥份额进行多项式插值导致乘法掩码的临时密钥,对所述乘法掩码份额的所述ECPM进行多项式插值导致乘法掩码的ECPM,并且确定所述第一签名分量包括确定所述乘法掩码的ECPM与所述乘法掩码的临时密钥的倒数的乘积。
在一些实施方案中,确定第二签名分量份额si包括确定:
si=Dk(i)(e+dA(i)r)+cimodn
其中,Dk(i)是第一节点的临时密钥份额,e是消息的散列,dA(i)是第一节点的私钥份额,r是第一签名分量,ci是第二加法掩码份额,并且n是椭圆曲线的整数阶。
在又一实施方式中,该方法包括通过对至少所述阈值数量的节点的所述第二签名分量份额进行多项式插值来确定所述第二签名分量。在一些情况下,该方法包括将第一签名分量和第二签名分量添加到包含消息的交易,并且将交易提交给区块链网络。
在另一方面,本申请公开了一种计算机实现的多方计算方法,该方法包括:
在多个第一节点之间分配多个秘密的份额,其中,每个秘密是相应的多项式函数的自由项,并且每个所述份额是与所述第一节点相关联的所述多项式函数的相应值,使得能够通过阈值数量的所述份额的多项式插值来访问所述秘密,而在没有所述阈值数量的份额的情况下不能够访问所述秘密;
在第二节点处接收来自多个所述第一节点中每个第一节点的计算出的秘密的相应的份额,其中,每个所述第一节点通过对分配给所述节点的相应多个所述秘密的份额执行至少一个预定计算,来计算其所述计算出的秘密的份额;以及
在所述第二节点处、通过对至少阈值数量的、所述计算出的秘密的份额进行多项式插值,来确定所述计算出的秘密。
这提供了在第一节点不能够确定各个秘密或计算出的秘密的情况下使得能够执行计算的优点。
每个相应的多项式函数可以具有以下形式:
其中,fi是第i个节点的多项式函数,n是椭圆曲线的整数阶,x是所述多项式函数中的变量,at是所述多项式函数的系数集,并且t是索引。
该方法还可以包括向多个节点传送多个所述多项式函数的每个系数的椭圆曲线点乘法。
该方法还可以包括向多个节点传送与所述多个所述节点中的每个节点相关联的所述多项式函数中至少一个的值的椭圆曲线点乘法。
该方法还可以包括对与至少一个所述节点相关联的至少一个所述多项式函数的值的椭圆曲线点乘法与所述多项式函数的系数的椭圆曲线点乘法之和之间的一致性进行验证。
这提供了使不诚实的参与者能够被更快地识别并且排除对多项式插值的贡献的优点。
确定计算出的秘密的份额可以包括确定:
μi=xi·yi mod n
其中,xi是第一秘密的份额,yi是第二秘密的份额,并且n是椭圆曲线的整数阶。
确定计算出的秘密的份额可以包括确定:
xi+yi mod n
其中,xi是第一秘密的份额,yi是第二秘密的份额,并且n是椭圆曲线的整数阶。
确定计算出的秘密的份额可以包括确定:
xi -1mod n
其中,xi -1是以n为模的第一秘密的份额的倒数,并且n是椭圆曲线的整数阶。
该方法还可以包括通过添加零秘密的份额来提供所述计算出的秘密的修改的份额,其中,所述零秘密是多项式函数的自由项且等于零,使得通过阈值数量的所述修改的份额的多项式插值能够访问所述计算出的秘密,而在没有所述阈值数量的份额的情况下不能够访问所述计算出的秘密。
这提供了为过程增加进一步安全性的优点。
确定计算出的秘密的步骤可以包括通过根据所述计算出的秘密的份额的多个已知值确定所述多项式函数的系数,来确定与所述计算出的秘密的份额相对应的多项式函数。
确定所述多项式函数的步骤可以包括执行误差校正算法。
确定所述多项式函数的步骤可以包括执行Berlekamp-Welch解码算法。
确定所述多项式函数的步骤可以包括:
定义误差定位器多项式函数和第二多项式函数,其中,所述第二多项式函数是与所述计算出的秘密的份额相关联的所述多项式函数与所述误差定位器多项式函数的乘积;根据所述计算出的秘密的份额的多个已知值来确定所述第二多项式函数和所述误差定位器多项式函数的系数;以及根据所述第二多项式函数和所述误差检测器多项式函数来确定与所述计算出的秘密的份额相关联的多项式函数。
在另一方面,本申请公开了一种一种在多个节点之间分配公钥-私钥密码系统的私钥的份额的计算机实现的方法,其中,每个所述节点具有相应的第一秘密、相应的第一多项式函数、和私钥的相应的第一份额,其中,所述节点的相应的第一秘密被设定为所述第一多项式函数的自由项,其中,所述私钥是所述第一秘密的总和并且是第二多项式函数的自由项,其中,能够通过至少阈值数量的所述第一份额的多项式插值来访问所述私钥,而在小于所述阈值数量的所述第一份额的情况下不能够访问所述私钥,所述节点包括第一节点,所述第一节点执行的式所述方法包括:
选择将零设定为其相应的自由项的第三多项式函数;
对于所述多个节点中的每个其他节点,将所述第三多项式函数中的变量设定为与该其他节点相关联的值,确定所述第三多项式函数的针对所述值的相应结果,并且将所述相应结果安全地传送至所述其他节点;
从每个其他节点接收相应的第二秘密的相应份额,其中,所述份额为该其他节点的相应的第三多项式函数的、针对与所述第一节点相关联的第一值的结果;以及
形成并存储所述私钥的相应第二份额,其中,所述第二份额是所述相应的第一份额与接收到的所述第二秘密的份额的总和之和。
这提供了这样的优点:使私钥的份额能够被更新而不必更新私钥本身从而使恶意的或无响应的参与者能够被移除。
该方法还可以包括向所述其他节点传送所述相应结果中每一个的椭圆曲线点乘法;以及
向所述其他节点传送与所述第一节点相关联的所述第三多项式函数的系数的椭圆曲线点乘法。
该方法还可以包括:从每个其他节点接收与该节点相关联的结果的椭圆曲线点乘法;以及
从每个其他节点接收与该节点相关联的所述第三多项式函数的所述系数的椭圆曲线点乘法。
这提供了使恶意或无响应的参与者能够被更容易地识别的优点。
该方法还可以包括对与至少一个其他节点相关联的结果与同该其他节点相关联的所述第三多项式函数的所述系数的一致性进行检验。
该方法还可以包括基于消息和私钥的所述第二份额来生成数字签名的份额。
该方法还可以包括:基于消息和所述私钥的相应的第二份额从至少阈值数量的节点接收数字签名的相应的份额;以及
通过至少阈值数量的所述数字签名的份额的多项式插值来生成数字签名。
根据本申请的另一方面,提供了一种用于执行上述方法的计算机实现的系统。
本申请的这些方面和其他方面将从本文中所描述的各实施方式中变得明显,并且将参照所述各实施方式加以阐明。
附图说明
现在将仅通过示例的方式并参照附图对本申请的实施方式进行描述,在附图中:
图1示出了示例椭圆曲线数字签名处理的一部分;
图2示出了示例椭圆曲线数字签名处理的另一部分;
图3示出了借助于示例方法所分配的份额的重构层次结构;
图4图解地示出了与阈值库的实施方案有关的份额的示例分配;
图5以流程图形式示出了使用阈值库来接收和分配数字资产的一种示例方法;
图6以流程图形式示出了生成阈值库的示例方法;
图7以流程图形式示出了生成用于根据阈值库分配资产的数字签名的示例方法;
图8示出了区块链节点的示例框图;
图9以流程图形式示出了使用本发明的阈值库进行多方计算的示例方法;以及
图10示出了用于执行实施本发明的方法中的多项式插值的Berlekamp-Welch解码器。
具体实施方式
概览
本发明提供了一种新颖的和有创造性的技术,该技术可以用于增强需要保护以防止未经授权的访问的计算机系统和资源的安全性。以下描述提供了与加密货币相关系统(包括比特币)有关的实施方案、用例和说明。然而,重要的是,应当指出本发明具有更广泛的适用性并且可以用于保护其他类型的系统和基于计算机的资源,并且本发明不限于此。
本发明的各实施方式通过允许添加基于组的阈值密码术以及无需经销商的部署能力而提供了改进的安全性。各实施方式还支持消息的非交互式签署,并且提供将私钥划分为可以分配给个人和组的份额。此外,本发明提供了一种创建了分布式密钥生成系统的解决方案,该分布式密钥生成系统消除了任何集中式控制列表的必要性,从而使欺诈或攻击的任何威胁降至最低。在用于DSA到ECDSA的基于阈值的解决方案的应用中,本发明提供了一种减轻了任何单点故障的完全分布式签名系统。
当用于Bitcoin(比特币)或替换物时,本发明可以与涉及CLTV钱包和Multisig钱包的检索方案相结合,以得到部署加密货币的无限可扩展和安全的装置。使用基于组和环的系统,本发明可以被用来实现针对已发行交易的盲签名。
本申请公开了一种与比特币完全兼容的、基于阈值的无经销商私钥分配系统。该系统建立在与部署在比特币钱包内的传统个人签名系统有所不同的组签名方案的基础上。在被部署时,该系统具有可扩展性和鲁棒性,从而可容忍误差和恶意对手。该系统支持经销商系统和无经销商系统这两者并且以无限灵活的分配组合进行部署。
各方可以充当单个参与者,或者组合地充当经销商,该经销商将他们的受保护密钥切片的切片分配在机器上以用于安全性和可恢复性,或者以组的形式分配切片以用于角色和访问控制列表的基于投票阈值的部署。
对于切片可以被分割多大的深度没有限制。这个复杂性问题需要针对不同的部署进行权衡。以这种方式,由于可以使用该方法对外部参与者隐藏签名和交易的记录(所有参与者都具有将在后续论文中呈现的扩展,甚至来自组内的参与者也是如此),因此本发明的各实施方式将一定程度的匿名性和合理的可否认性引入到比特币交易中,从而增加了对使用者的匿名保护的标准。
Ibrahim等人于[2003]年开发了初始的鲁棒阈值ECDSA方案。以下协议是对Gennaro等人于[1996]年引入的阈值DSS的椭圆曲线形式的进一步扩展。
表1定义
群组数学的使用允许创建可验证的秘密共享方案(VSS),其从RSA和DSA方案扩展了Shamir[1979]在秘密隐藏中的工作以及Feldman[1987]和Pedersen[1992]的工作,使得其可以在诸如Bitcoin[Koblitz,1998]的基于ECC和ECDSA的签名系统内使用。本发明的各实施方式能够容忍恶意的对手,阻止恶意的对手,并且对于窃取是鲁棒的。
本公开以一种方法的呈现开始,该方法允许在没有一方曾知道私钥的情况下对ECDSA签名进行协作签署。此外,本公开允许私钥对被更新和刷新而无需改变私钥。这是一项重要的技术优势。
现有的解决方案都需要可信方。利用本发明还允许Chaum[1983]的工作从集中式系统扩展到发布电子注释的真正分布式方式,该电子注释可以直接安置在比特币区块链上,从而使对替代性区块链或侧链的要求过时。
关于上述生成器点G,比特币使用secp256k1。这定义了比特币中使用的ECDSA曲线的参数,并且可以从高效密码术标准(SEC)(Certicom研究,http://www.secg.org/sec2-v2.pdf)中引用。
信任事项
所有现有系统都需要一定程度的信任。在此之前,比特币需要使用与世界隔绝的安全系统来保护私钥,事实证明这很难实现。值得指出的是,可以交换或存储比特币的系统需要对集中式权威机构的信任。本发明改变了这一要求,其完全在比特币内分配和分散密钥创建和消息签名过程,而不改变协议的任何核心要求。可以在不修改比特币协议的情况下实现本文中所述的方法,并且实际上,无法通过对签名消息进行分析来确定是否已部署此过程。
在创建用于比特币的分布式签名方案时,本发明允许一群人或系统以使得个人不能够自行生成签名的方式安全地持有密钥。在扩展时,此方案还允许安全地恢复每个份额以及比特币私钥本身。群生成的签名与现有协议生成的签名没有区别。这样,签名验证就好像是通过单个个人签名者使用标准交易执行的。
当秘密密钥由n个参与者的群组或m个参与者群组共享时,实现了信任度的提高。签署交易需要阈值数量的参与者,并且满足最小阈值的参与者或参与者群组的任何联盟都可以执行签名操作。重要的是,该协议可以同步执行,也可以作为成批过程执行,其中,个人或群组可以尝试创建参与者联盟。
背景工作
Shamir[1979]首先引入了一种基于经销商的秘密共享方案,该方案允许对密钥进行分布式管理。与该方案相关联的问题来自必须信任无法验证的经销商。该方案的这种形式与本发明完全兼容,并且可以用于各个密钥切片的群组分配,其中,各个密钥切片是通过本文所述的过程而创建的。
联合随机秘密共享(JRSS)[Pedersen,1992年]
该过程的既定目标是创建一种方法,在该方法中,参与者群组可以共同共享秘密,而任何参与者都不知道该秘密。每个参与者均选择随机值作为其本地秘密,并且使用Shamir的秘密共享方案(SSSS)通过该群组分配从中得到的值。随后,每个参与者均添加从参与者——包括其自身——接收到的所有份额。该和是联合随机秘密份额。由单个诚实参与者提供的随机性足以维护组合秘密值的机密性。即使所有(n-1)个其他参与者有意选择了非随机秘密值,此状态仍保持为真。
联合零秘密共享(JZSS)[Ben-Or,1988年]
JZSS类似于JRSS,不同之处在于每个参与者共享0作为随机值的替代方案。使用该技术产生的份额有助于消除JRSS算法中的任何潜在弱点。
Desmedt[1987]引入了面向群组的密码术的概念。该过程允许参与者以仅允许参与者的选定子集将消息解密的方式将消息发送给一个群组的人。在系统中,如果发件人必须使用公钥知道成员,则认为成员是已知的,并且如果对于独立于成员保持的群组存在单个公钥,则该群组是匿名的。本发明结合了两种方法,并且允许已知和匿名的发送者和签名者同时存在于群组中。
本发明
对于具有大的阶素数的任何椭圆曲线(曲线)以及在素数域Zp上定义了n阶的基点G∈曲线(Zp),可以创建一个系统,该系统允许将ECC私钥安全地分配到密钥份额中及允许私钥的使用、而无需任何参与者能够从小于份额阈值的情况下重新创建原始私钥。
对于未知整数dA,其中,1≤dA≤(n-1),已知的是根据给定的QA=dA×G[Kapoor,2008]极难计算出dA。
本发明的基本技术是利用阈值密码术的应用得到的。在该系统中,ECDSA私钥仅作为一种可能而存在并且不需要在任何系统上重新创建。这些多个份额中的每个份额均以可扩展的方式分配给多个参与者[p(i)],并且允许引入群组和各方签名格式这两者。因此,签署过程与比特币内部署的过程不同。在该过程中,协调参与者p(c)将创建分配给该群组的交易和消息签名。每个参与者均可以借助于计算部分签名或通过,来对其私钥份额的使用进行投票。
实际上,通过将等同于否决票。如果协调参与者p(c)已收到了最小阈值数量的部分签名,则该协调参与者p(c)将整理响应并将其组合以形成完整签名。
协调参与者p(c)可以接受否决票并基于另一方的空值进行计算,或者也可以寻求游说该方并说服他们签署消息。该协议可以由设置的协调器来实现,或者任何个人或群组都可以担任此角色并向待签署的阈值群组提出交易。本发明扩展了Ibrahim等人[2003]的工作,在该工作中提供了一种完全分布式ECDSA私钥生成算法。该应用还提供了与比特币一起使用的分布式密钥重新共享算法和分布式ECDSA签名算法。密钥重新共享算法可以用于使当前存在的所有私钥份额变得无效,以支持新的私钥份额或者用于将私钥份额重新分配给新的参与者。该协议不仅扩展到ECDSA私钥的共享,而且也扩展到私钥份额。这样的结果意味着可以将份额作为群组过程进行构建和投票。
本发明消除了存在的可信第三方的所有要求。因此,可以为比特币创建与现有协议完全兼容的新的覆盖和钱包,并且还消除任何剩余的单点故障,同时还具有更大的可扩展性。还可以扩展本发明以允许引入盲签名。
由于本发明不需要将私钥加载到存储器中,因此本发明不仅消除了对可信第三方的需求,而且进一步消除了广泛的常见攻击。该协议是可扩展的,从而允许根据用例、经济场景和风险要求来决定所需的份额数量和份额分配。
本发明减轻了所有侧信道攻击,并且因此减轻了任何高速缓存定时攻击。该系统承担了Gennaro等人[1996]的工作并且根据DSS对该工作进行了扩展,使得该工作可以成功用于任何基于ECDSA的应用中。
ECDSA
比特币使用基于secp256k1曲线的ECDSA。ECDSA在2003年首次由NIST标准化,[NIST]使用椭圆曲线密码术(ECC)改变了进行基于diffie-hellman密钥交换的要求。由于与其他公钥系统/私钥系统相比减小了密钥大小和处理能力,因此ECC的创建尤为重要。尚未发现ECDLP的次指数时间算法。已知ECDLP是棘手的并且涉及椭圆曲线离散对数问题[Johnson,2001]。
在以上提供的表1中记录了贯穿本申请所使用的参数。
安全注意事项
该系统受ECDSA的安全性约束,ECDSA的安全性是比特币内的当前限制。目前,如果可以安全地部署私钥,则ECDSA仍然是安全的。本发明减轻了边信道攻击和存储器泄漏攻击,直至达到阈值为止,其要求在密钥更新事件之前就已经损害了阈值数量的参与者。附加地,任何未受损的阈值多数都将能够识别出小于阈值的受害参与者。
停止问题
服务中断是攻击的一种形式,其可以由试图对参与者创建拒绝服务攻击的恶意对手进行。这种攻击将要求参与者或者接收他们将耗用大量的处理时间进行分析的无效签名,或者通过洪泛随后将被丢弃的网络消息。
使用ECC或基于符号加密的ECC来加密发往参与者的消息的要求减轻了该攻击向量。在攻击者可以发送无效的部分签名的消息之前,他们将需要已经使参与者受到损害,从而使得这种形式的攻击不再是必要的。
随机性
算法2提供了一种场景,在该场景中,即使(n-1)个参与者未能选择随机值,也会引入足够的随机性。对该协议的可能的补充是引入了被设计成仅用于将随机值引入签名和密钥更新过程的组oracle。在该可选场景中,可以使用相同的协议来生成每个密钥切片。例如,如果存在n个主切片中的m个住切片的需求,则也可以使用n'个阈值条件中的m'个来生成和管理底层密钥切片中的每个。
使用该系统的参与者将能够添加外部Oracle,该Oracle除了将随机性注入协议中之外别无其他。具有m'个密钥切片(其中,m'<n-1)的使用者可以选择基于他们所持有的密钥切片来重新创建和处理他们的签名解决方案,或者除了引入随机性之外可以引入不必要的外部Oracle。
为了鲁棒性和安全性,每个切片可以同样地被分割。密钥切片可以被分配,使得使用者具有在诸如移动电话或智能卡之类的外部设备上的切片并具有在计算机上运行的软件程序,使得它们需要源的组合来创建部分签名。
重要的是,产生唯一的随机临时密钥Dk,或者将可能使用该信息来重新创建私钥dA。
公开签署
使用该协议进行交易签署的主要目的是启用比特币交易的分布式签署。参与者可以私下维护尚未发布到区块链的任何交易。因此,如果协调参与者p(c)在任何情况下都无法获得成功签署交易所需的票数,则无需创建新的比特币交易。如果密钥切片本身对于阈值是安全的,则任何已结算交易的所有权都将保持安全。
如果系统部署良好,则损害多达(k-1)个参与者的能力使得系统可以安全地受到地域阈值的攻击。当与周期性密钥更新协议(算法2)结合时,本发明的各实施方式可以承受侧信道攻击和存储器泄露。
本发明的方法和实施方案
由于本发明的实施方式基于分层推导[Wright,2016]使用ECC对需要在参与者之间发送的秘密信息进行加密,因此将所有消息整理到发送给所有使用者的单个数据包中使得在必要时可以针对潜在地受到威胁或敌对的参与者进行确认是既可能又明智的。
签名生成是由协调参与者p(c)提议的。默认情况下,任何密钥切片都可以充当协调参与者,并且要求归结为协议的单独实施方案。下面记载了所使用的算法,稍后的部分提供关于其部署的细节。
算法1密钥生成
域参数(曲线、基数n、生成器G)
输入:NA
输出:公钥QA
私钥份额dA(1),dA(2),...,dA(j)
对于来自(j)个参与者的k个切片的阈值,构造了构造的密钥片段dA(i),其与参与者(i)和被提名为参与者(h)的(j-1)个参与者相关联,该(j-1)个参与者是与参与者(i)交换秘密以签署密钥(并且因此签署比特币交易)的其他方。
·该方案中,j是参与者的总数,其中,k≤j以及因此h=j-1
·因此,存在(k,j)-阈值共享方案。
算法1的方法如下:
1)(j)中的每个参与者p(i)都与所有其他参与者交换ECC公钥(或在本实施方案中为比特币地址),其中,1≤i≤j。该地址是群组标识地址并且不需要用于任何其他目的。
应当指出的是,这是基于来自国际专利申请WO 2017/145016的处理中的每个参与者之间的共享值的派生地址和密钥。
2)每个参与者p(i)以不向所有其他方公开的方式选择具有随机系数的(k-1)次的多项式fi(x)。
在此等式中,a0是每个参与者p(i)的秘密并且不被共享。
3)如上所述,每个参与者p(i)均使用参与者P(h)的公钥,如WO2017/14501中所公开的且如上所述的,对与参与者P(h)——其中,h={1,...,(i-1),(i+1),...,j}——的第一份额fi(h)进行加密,并且针对参与者P(h)交换值以进行解密。
椭圆曲线方程:y2=x3+7
原始模数:2256–232–29–28–27–26–24-1
=FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFEFFFFFC2F
基点=
04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08FFB10D4B8
序列=FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8CD0364141
因此,对于任何整数集B:{bi∈Zn}而言都可以表示为(b,b1,b2,…),如果bG=[b1G+b2G+…]mod p,则b=[b1+b2+...]modn。此外,如果bG=[b1b2...]G mod p,则b=[b1b2...]mod n。
假设Zn是字段,并且可以对被选为ECC私钥的值进行有效的拉格朗日插值模运算,则存在得出可以在Zn之上实施Shamir的秘密共享方案SSSS[5]的结论的条件。
4)每个参与者P(i)向所有参与者广播以下值。
与上述等式中的变量h相关联的值可以是参与者P(h)的位置,使得如果参与者P(h)表示方案中的第三参与者,则h=3或同样可以将参与者所使用的ECC公钥的值表示为整数。存在针对任一实施方案的用例和场景。在后一实施方案中,该值h={1,...,j}将被映射到单个参与者所利用公钥的值的阵列所代替。
5)每个参与者P(h≠i)对接收到的份额与从每个其他参与者接收到的份额的一致性进行验证。
此外,fi(h)G与参与者的份额一致。
6)每个参与者P(h≠i)均对该参与者(P(h≠i))拥有并接收到的份额与其他接收到的份额的一致性进行验证:
实际上,该步骤包括在椭圆曲线上执行份额fi(h)的加密版本(即,fi(h)G)的操作,如果对fi(h)的未加密版本执行该操作,则将恢复秘密值a0 (i),以恢复Ga0 (i)。因此,在Shamir秘密共享方案的情况下,系数bh表示从秘密的对应份额中恢复秘密所需的拉格朗日插值系数。如果不一致,则参与者拒绝协议并重新开始。
7)参与者p(i)现在可以按下式计算其份额dA(i):
此外,其中:SHARE(p(i))∈Zn并且dA(j)
并且其中,运算Exp-Interpolate()被定义为从椭圆曲线加密份额中恢复椭圆曲线加密秘密的运算。该运算可以更详细地定义如下。
如果{ω1,L,ωj}(j≥(2k-1))是这样的集合:其中,最多(k-1)个值是空值,并且其余值的形式为G×αi,并且每个值αi均存在于某个(k-1)次多项式H(·)上,则θ=G×H(0)。
可以通过θ=∑i∈Vωi×λi=∑i∈V(G×H(i))×λiβ来计算该值,其中,V是正确的ωi值的(k)子集,并且此外λi表示所得的拉格朗日插值系数。可以使用Berlekamp-Welch解码器来计算多项式。
返回(dA(i),QA)
其中,dA(i)是第三秘密值的第三份额。
参与者p(i)现在使用份额来计算签名。该角色可以由任何参与者或者由在收集签名过程中充当协调者的一方p(c)来担任。参与者p(c)可以有所不同并且每次尝试收集足够的份额来签署交易时都不必是同一方。
算法2更新私钥
输入:参与者Pi的私钥的份额dA表示为dA(i)
输出:参与者Pi的新私钥份额dA(i)
算法2既可以用于更新私钥又可以用于向协议中添加随机性。
使用[Wright,2016]的格式的密钥,该过程可以导致重新计算分层子密钥,而无需重构或者甚至计算私钥的存在。以这种方式,可以构造比特币地址和私钥切片的分层结构,当分层结构被正确地部署时将可以消除如过去已发生的任何大规模欺诈或数据库盗用。
1)每个参与者均选择次数(k-1)且以0作为其自由项的随机多项式。这类似于算法1,但是参与者必须验证所有其他参与者的选定秘密是否为零。
使用该等式,所有的活动参与者都会验证该函数:
类比参见Feldman(1987)。
2)dA(i)′=DA(i)+zi
3)返回:dA(i)′
该算法的结果是与原始私钥相关联的新密钥份额。该算法的变型使得能够增加第一算法的随机性或者进行重新共享练习,从而无需改变可能的比特币地址就可以生成新的密钥切片。以这种方式,本发明允许群组在不改变底层私钥的情况下附加地对私钥份额进行掩码。该处理可以用于在不改变底层的比特币地址和私钥的情况下、使与继续使用和部署各个密钥份额相关联的任何潜在的密钥泄漏减至最小。
算法3签名生成
域参数:CURVE曲线、基数n、生成器G
输入:待签署的消息e=H(m)
A)分布式密钥生成
1)使用算法1生成临时密钥份额:
2)使用算法1生成掩码份额:
αi←Zn
3)使用算法2生成掩码份额:
通过使用次数为2(k-1)的多项式执行算法2两次。在这些协议中创建的份额被表示为和这些份额被用作附加掩码。多项式必须是2(k-1)次,这是因为被掩码的数字涉及(k-1)次的两个多项式的乘积。这使恢复秘密所需的所需份额数量增加了一倍。
β和c的份额则由参与者保密。
B)签名生成
4)e=H(m)验证消息m的散列
5)广播
以及
ωi=G×αi
其中,运算μ=Interpolate(υ1,…,υj)modn被定义为从份额中恢复秘密的运算。该运算可以更详细地定义如下。
在{υ1,L,υn}(j≥(2k-1))形成集合使得最多(k-1)为空并且所有残差值都驻留在(k-1)次多项式F(.)上的情况下,则μ=F(0)。
7)θ=Exp-Interpolate(ω1,...,ωn)
8)计算(Rx,Ry),其中,rx,y=(Rx,Ry)=θ×μ-1
9)r=rx=Rxmodn
如果r=0,请重新开始(即,从初始分配开始)
10)广播Si=Dk(i)(e+DA(i)r)+Cimodn
11)S=Interpolate(si,...,sn)modn
如果s=0从头开始重做算法3(A.1)
12)返回(r,s)
13)在比特币中,用(r,s)对重构交易以形成标准交易
图10示出了常规的Berlekamp-Welch解码器70的新颖用途,用以获得表示数字消息的部分签名的多项式函数。
在常规的使用Berlekamp-Welch算法来校正传输数据中的误差时,消息m在编码器72中被分成k个字节的序列,每个字节c0、c1,...ck-1均被编码为整数模p。该消息然后由以下多项式函数表示:
然后针对多个已知值x来确定多项式函数m(x)的值,以生成一系列(x,y)对,然后将其由发送器74传输到接收器76。
在接收器76处接收的数据M(即,所接收的消息)包括与表示原始消息的多项式函数上的点相对应的对(a1、b1、……an、bn)。
如果假定某些传输的(x,y)对在传输期间已损坏,则误差定位器多项式函数可以定义如下:
当P(ai)≠bi时E(ai)=0;否则E(ai)≠0
如果乘积多项式函数Q(ai)定义为:
Q(ai)=biEi(ai),
则对于每个接收到的(ai,bi)对,无论bi的值是否已损坏,
由于当P(ai)≠bi时E(ai)=0,因此Q(ai)=biEi(ai)=P(ai)Ei(ai)
对于(ai,bi)的n个已知值,由于E(ai)是次数为e的多项式函数,而P(ai)是次数为(k-1)的多项式函数,则Q(ai)是次数为(e+k–1)的多项式函数。因此,(ai,bi)的已知值可以表示为线性系统:
线性系统包含2e+k–1个未知项(来自E(x)的e和来自Q(x)的e+k–1),因此如果n≥2e+k–1,则可以确定Q(ai)和E(ai)的系数。如果可以确定Q(ai)和E(ai),则可以确定P(ai)用以恢复原始消息m(x)。
因此,可以看出,Berlekamp-Welch解码器70接收表示多项式函数上的点的对作为输入,并且输出多项式函数。因此,解码器70可以用作本发明中的拉格朗日插值的替代,用以根据由该多项式函数表示的阈值数量的份额来确定多项式函数。
模型-阈值ECDSA(T.ECDSA)
根据本发明的实施方式,允许被指定为参与者的n个组或个人的系统。每个玩家可以是作为单个参与者的个人或者群组或者个人和群组的组合。可以使用共同得到的公钥计算将参与者p(i)映射到身份,或者可以将参与者p(i)保留为匿名实体,而参与者的公钥仅用于该协议而不被映射回个人。
本发明引入了专用广播信道,该信道允许将其他参与者识别为该方案的有效玩家和成员,同时允许该群组内的成员保持为未被识别。当从参与者p(i)广播消息时,群组内的成员将消息识别为来自授权方,而不必能够识别与该密钥相关联的最终使用者或个人。如果这样的系统是有保证的,则也可以将密钥的标识链接到个人。
该流程总结如下:
在图1中:
步骤1)参见图1
步骤2)Pc将原始交易发送给群组。如果此验证有效(即,原始交易与待签署的散列相匹配),则参与者通过对其进行签署进行投票。
步骤3)如果是,则每个参与者均返回部分签署的交易。
参见图2
步骤4)如果接收到部分签署的交易的阈值,则Pc(或任何其他参与者)将重构完整签名。
步骤5)Pc将交易广播为已签署的比特币交易。
消息签名的计算可以由不变的个人或者通过临时广播方发起。协议协调器的角色可以由任何参与者或者由在收集签名期间充当协调器的一方p(c)来执行。
密钥生成
使用修改的ECDSA密钥生成算法来产生完全分布式的签名方案。在该方案中,由分布式群组使用隐藏的随机秘密的组合来公共地选择私钥。
阈值密钥推导算法在算法1中给出。
该算法是可扩展的,并且该算法的每个步骤均可以由每个参与者同步执行,而无需经销商或者群组或个人或多个经销商。该实施方案与当前的比特币协议完全兼容。任何签署者都将呈现给外部观察者或验证,就好像他们是以标准方式签署的一样。因此,没有办法来辨别密钥是以标准格式生成还是使用本发明的增强协议而生成。
签名生成
阈值签名生成的概念在[Shamir,1979]中进行了描述。算法3与[Feldman,1987]中报道的程序有关,该程序是根据基于DH的系统的并且已进行了修改以允许ECDSA。
本发明扩展了该过程,使得该过程与比特币交易处理和签署这两者完全兼容。这还扩展到多签名交易,在该交易中可能需要多个签名(都是必需的)中的每个签名的分布式密钥。
重新共享私钥
可以扩展此过程以引入完全分布式密钥重新共享方案。当当前参与者执行一轮算法2将得到的零份额添加到参与者的私钥份额中时,该重新分配完成。如果一个参与者引入了随机值,则新的份额将被随机地分配。
该过程允许在不更改实际私钥的情况下对私钥份额进行附加掩码。
阈值ECDSA签名派生
阈值ECDSA签名创建系统是使用与[Feldman,1987]中发现的阈值DSS签名生成协议相关的思想而派生的,该阈值DSS签名生成协议遵循[Shamir,1979]中开发的方案。
验证
本发明允许在任何值被转移到已知的比特币地址之前进行消息的离线签署和验证。各方均可以使用算法1中所述的过程独立地计算和验证地址。因此,所有参与者都可以在任何需要为比特币地址提供资助的练习之前意识到他们的份额是有效的。对于该过程,尽管验证方案是可能的,但验证方案是不必要的。任何选择发送无效签名切片的阈值参与者实际上都在投否定票。也就是说,由于不采取行动,因此就可以实现不签署消息并因此无法以比特币完成交易的投票。影响就好像他们根本没有签署消息一样。
算法2提供了一种方法,在该方法中,参与者可以验证其份额一致性。如果已经维持了非恶意参与者的阈值,则可以排除任何已知的恶意参与者进行密钥重置。因此,可以更新密钥切片而不向已知的恶意参与者分配新的切片,从而实现了以还允许切片的重新分配的方式来对密钥进行刷新。
在信任特别缺乏且恶意对手被视为常态的环境中,可以在完成安全的多方计算时进一步增强验证过程的鲁棒性,从而增强抵御j/2被动对手和j/3主动对手的能力[Ben-Or,1989;Rabin,1988]。
可以使用以下附加过程来增强系统的鲁棒性:
1.设Da为在次数(k-1)的多项式A(x)上在j个参与者之中共享的秘密
3.接下来,所有参与者都使用算法2共享秘密b,以使每个参与者p(i)均在次数(k-1)的多项式上具有Db的新的隐藏份额Db(i)。
4.参与者使用算法2,以使得每个参与者p(i)均在自由项等于零的次数(2k-1)的多项式上具有新的隐藏份额Z(i)。
任何参与者都可以判定其他参与者是否正在对该系统进行恶意操作。
分布式密钥生成
通过该方案,可以以安全的方式完成分布式自主企业(DAC)和分布式自主社交组织(DASO)这两者的实现。已经表明,任意k个成员都可以通过识别方案(包括通过由证书颁发机构签署和发布的数字证书)来表示这样的群组,并且任意k个成员都可以代表组织来构造数字签名。该系统扩展到比特币交易的签署,该比特币交易在没有任何区别特征的情况下进行验证并提供价值转移。这些认证方案已被证明是安全的。
方法与实施方案
由于该协议基于国际专利申请WO 2017/145016中公开的技术使用ECC来对需要在参与者之间发送的秘密信息进行加密,因此将所有消息整理到发送给所有使用者的单个数据包中、使得在必要时可以针对潜在地受到威胁或敌对的参与者进行验证是既可能又明智的。
签名生成是由协调参与者p(c)提议的。默认情况下,任何密钥切片都可以充当协调参与者,并且要求归结为协议的单独实施方案。在由p(c)创建有效的原始交易时,使用加密信道将交易和交易的消息散列广播给所有参与者p(i≠c)。
A.生成临时密钥份额Dk(i)
Dk的份额在每个参与者各自持有的秘密中维护。
B.生成掩码份额αi
αi的份额是秘密的并且由对应的参与者维护。
C.生成掩码份额βi,ci
使用次数为2(k-1)的多项式执行算法2两次。
β和c的份额由参与者保密。
D.计算消息m的摘要:e=H(m)
针对从p(c)获得的、接收到的交易的散列来检查该值。
E.广播υi=Dk(i)αi+βimodn和ωi=G×αi
参与者Pi广播υi=Dk(i)αi+βimodn和ωi=G×αi。
如果未从Pi接收到响应,则将所使用的值设置为空。
F.计算μ=Interpolate(υ1,…υj)modn
Interpolate()[2]:
在{υ1,L,υn}(j≥(2k-1))形成集合使得最多(k-1)为空并且所有残差值都驻留在(k-1)次多项式F(.)上的情况下,则μ=F(0)。
可以使用普通多项式插值来计算多项式。函数“Interpolate()”是Berlekamp-Welch插值[2]并且被定义为BCH和Reed-Solomon码的误差校正算法。有关详细信息,请参见:http://mathworld.wolfram.com/LagrangeInterpolatingPolynomial.html以及还有Whittaker,E.T.和Robinson,G的“Lagrange's Formula of Interpolation."§17in TheCalculus of Observations:A Treatise on Numerical Mathematics,4th ed.New York:Dover,pp.28-30,1967”,以及https://jeremykun.com/2015/09/07/welch-berlekamp/
G.计算θ=Exp-Interpolate(ω1,…,ωj)
Exp-Interpolate()[10]:
如果{ω1,L,ωj}(j≥(2k-1))是这样的集合,其中,最多(k-1)个值是空值,并且其余值的形式为G×αi,并且每个αi均存在于某个(k-1)次多项式H(·)上,则θ=G×H(0)。
可以通过θ=∑i∈Vωi×λi=∑i∈V(G×H(i))×λiβ来计算该值,其中,V是正确的ωi值的(k)子集,并且此外λi表示所得的拉格朗日插值系数。可以使用Berlekamp-Welch解码器来计算多项式。
H.计算(Rx,Ry)=θ×μ-1
I.分配r=Rxmod q,如果r=0,请转到步骤A。
每个参与者p(i)在步骤J中计算其切片ri。如果协调者p(c)已收到阈值数量的响应,则可以使用这些值来重构s。
如果未从Pi请求/接收到响应,则将所使用的值设置为空。
K.计算s=Interpolate(s1,...,sn)mod n
如果s=0,请转到步骤I。
其中,函数Interpolate()在上面被定义。
每个参与者p(i)均在步骤J中计算其切片ri。如果协调者p(c)已收到阈值数量的响应si,则可以使用这些值来重构s。
L.返回(r,s)
M.替换原始交易的签名部分并且将其广播到网络。
切片的经销商分配
通过引入群组共享,可以使上述实施方式更加灵活。以这种方式,份额的分配可以在任何层次深度中在一个经销商、多个经销商、不包含经销商的群组、或以上的任何可能组合之间分割。
通过用使用相同算法导出的值替换该值dA及其对应的密钥切片dA(i),可以创建投票的分层结构。例如,可以创建同时整合源自下述的份额的方案:
1)基于经销商的分配
2)多个经销商
3)没有经销商
因此,该方案是可扩展的,并且可以被制成结合任何业务结构或组织系统。
切片的分配也是可扩展的。部署分配不均的过程允许增加份额的权重。在图3所示的方案中,可以创建具有五个顶级成员的假设组织。然而,这不需要设置n=5的相等加权份额的值。在这个假设的组织中,可以如下设置顶级模式的投票结构:
·阈值(0)61份额
·DL1 15份额
·DL2 15份额
·D1 45份额
·D2 10份额
此处已设置n=100。如前所述,这是可以反映任何组织结构的任意值。图3中的组织允许否决方案(D1),并且通过引入多层分配实现了任何可以想象的投票结构。
在多级分层结构中经常会遗漏的是,尽管已分配了秘密的切片,但这些切片不需要均匀分布,并且此外,子群组的所有权不需要镜像其他级的所有权。在图3中,存在看似功能强大的功能块,该功能块控制75%的阈值中、45%的总份额数。如果随后考虑份额的较低级别分配,则场景将变得更加复杂。可以与在表中的多个级别和位置持有投票份额的个人创建交叉所有权。
表3中的分配被定义为(持有的份额、阈值、分配{n})。
从上表(3)中可以看出,参与者P1和P2各自都在投票上占主导地位,但是只要P1或P2不否决投票则与参与者P4的联盟就为P1或P2提供足够的投票权。
由于对本发明中的表决格式的实现和结构没有限制,因此可以将其用于创建可以想象的任何组织分层结构并确保安全的备份和恢复方法。
表3假设的组织结构
结果是可以具有分配给更高级签名份额的否决权和投票权。在本示例中,可以在DL02、D1A和D2A处持有S中的份额的所有权。
安全多方计算
具有n个参与者p(1),...,p(i),...,p(n)的安全多方函数计算是基于评估函数F(x1,...,xi,...,xn)的需要的一个问题,该函数涉及x(i)以及由p(i)提供的秘密值,该秘密值需要被保持在置信度中,使得没有参与者p(j≠i)或外部方获得有关x(i)的任何知识。因此,目的是保持每个参与者的值的机密性同时能够保证计算的准确性。
在这种情况下,可信第三方T从各个参与者p(i:1...n)收集所有值x(i:1...n)并返回计算。这种设计仅在可能隐含地信任T的理想化世界中起作用。在T可能是恶意的、欺诈的或受损的任何可能的情况下,使用可信第三方变得不太可行。这种情况反映了现有的选举,其中参与者是投票者,而可信第三方由政府扮演。
已经证明[Bar-Ilan,1989]在保持单个秘密x(i)的安全性的同时,也可以在没有可信方的情况下、计算任何可以使用可信第三方以安全方式计算的值。本文所提出的协议对于私有计算是安全的,并且即使在非阈值群组的泄密参与者可以协作的情况下也提供安全计算。
简易乘法
在有两个秘密值x和y分布在n个参与者p(i:1...n)之间的情况下,可以在保持输入变量x和y的保密性以及确保各个秘密x(i:1...n)和y(i:1...n)通过参与者p(i)保持机密性来保持的同时计算乘积xy。
在该方案中,使用次数为(k-1)的多项式在参与者的阈值群组之间共享x和y。每个参与者p(i)均可以将其在x的(k-1)次多项式上的份额x(i:1...n)与在y的(k-1)次多项式上的份额y(i:1...n)相乘。
引入算法2,返回次数为(2k-1)的多项式z(i)的参与者p(i)共享。使用该值,每个参与者p(i)均计算该值x(i)y(i)+z(i)。
针对x(i)y(i)+z(i)的返回值表示次数为(2k-1)的多项式上的针对x.y计算的有效份额。对于阈值数量的份额起作用的任何参与者或协调者都可以使用每个参与者持有的返回值来计算x.y的真实值,而无需获得对各个份额的任何了解。
简易加法
在有两个秘密值x和y分布在n个参与者p(i:1...n)之间的情况下,可以在计算总和x+y,同时保持输入变量x和y的秘密性以及确保各个秘密x(i:1...n)和y(i:1...n)由参与者p(i)保持机密性来保持。
按照简单乘法的过程,每个参与者p(i)计算值x(i)+y(i)+z(i)。z(i)的计算不是必需的,但是会为该过程增加更高程度的随机性和机密性。
针对x(i)y(i)+z(i)的返回值表示次数为(2k-1)的多项式上的针对x+y计算的有效份额。对于阈值数量的份额起作用的任何参与者或协调者都可以使用每个参与者持有的返回值来计算x+y的真实值,而无需获得对各个份额的任何了解。
如果参与者的敌意较少,则这可以被简化成没有附加步骤的x(i)+y(i)加法。
倒数或逆
对于在j个参与者x(i:1...j)之间保密地分配的分布式秘密值xmodn,可以生成与值x-1modn相关联的多项式的份额,而不泄露可能公开该值x(i)、x或x-1的任何信息[Gennaro,1996]。同样,每个参与者p(i)均保持值x的份额,该份额由次数(k-1)的多项式上的x(i)表示。
使用算法1,每个参与者创建关于次数为(k-1)的多项式的未知秘密x.y的份额x(i)。然后,每个参与者运行算法2,以计算关于次数为(2k-1)的多项式的零秘密(k-1)。每个参与者(2k-1)执行计算以计算值x(i)y(i)+z(i)。
使用上面给出的Interpolate()例程,每个参与者可以计算值μ=x(i)y(i)+z(i),从而根据收集的值μi返回值μ。然后,每个参与者可以计算μ-1modn的值。
这些值足以使得任何参与者p(i)可以在次数为(2k-1)的多项式上使用ζi=γiμ-1计算xi -1的相关份额。Berlekamp-Welch解码方案[Berlekamp,1968]提供了几种可以用于完成该过程的方法之一。
图9以流程图形式示出了进行数量ζ=x-1+w的安全多方计算的一种示例方法,其中,安全多方计算由多个第一节点执行,并且计算出的秘密由第二节点恢复。最初,在步骤901中,秘密x、y、z1的份额xi、yi、z1i由第二节点在第一节点之间分配,其中x、y、z1是相应的多项式函数的自由项,并且z1为零。
在步骤902,每个第一节点均计算μi=xiyi+zi的相应的份额。在步骤903中,借助于多项式插值,乘积μ=xy由已经接收阈值数量的份额μi的节点(可以是第一节点或第二节点中的一者或更多者)来确定。在步骤904中,逆μ-1modn=x-1.y-1mod n随后在步骤904中确定。在步骤905中,秘密w、z2的份额wi、z2i随后由第二节点在第一节点之间分配,其中w和z2分别是多项式函数的自由项,z2为零。在步骤906中,每个第一节点确定其共同秘密的份额ζi,其中,ζi=yi.μ -1+wi+z2i=yi.x-1.y-1+wi+z2i。第二节点随后在步骤907从第一节点接收阈值数量的份额ζi,并且随后在步骤908中执行多项式插值,以确定计算出的秘密ζi=x-1+w modn,而没有单独的秘密x、y或w可用于第一节点中的任何第一节点。
分配
以可验证和可证明的方式签署交易的能力提供了私下证明所有权、甚至放弃或交换比特币私钥和相关联的比特币地址的所有权而无需在区块链上公开地移动任何东西。以此方式,可以为比特币地址提供资金,并且该地址的内容可以被转移或出售而不离开公共记录。由于该过程是阈值系统,因此可以安全地实现密钥切片的分配,而无需在区块链上记录的进一步结算。
通过这种方式,可以将已结算在区块链上的票据的所有权与该票据的交易过程分开。
CLTV
Bitcoin消息或更常见的用语即交易可以在包括CLTV[BIP65]条目的情况下创建。通过这种添加,即使在所有密钥切片灾难性丢失的情况下,或者如果来自实体的多个切片被认为是不可信任的或以不允许以最小阈值安全重构签名的方式丢失,也可以使交易可恢复。
这在实体正在使用第三方服务并且期望确保该服务不能保持或拒绝对密钥的访问的情况下也是可能的。在构造具有基于时间的故障保险的比特币交易时,使用者知道恶意第三方或受损的交换站点或银行不能将它们外送以访问它们的密钥。作为最坏的情况,损害到灾难性级别将导致基于时间的交易反转到预定义地址。该预定地址可以使用本申请中公开的协议来创建。这样,可以构造一系列不容易受损的交易和密钥。
安全考量
Benger等人(2014年)提供了一个使用闪存和重载方法进行ECDSA私钥恢复的示例。这种情况仅是对系统RAM和缓存的攻击的一个示例。这些方法在重构私钥时就不需要使用诸如Shamir SSS[1979]这样的程序。此外,在任何时候都重构私钥的任何情况下,都引入了信任要求。在这种情况下,有必要依赖于持有私钥的实体的系统和过程。
即使可信方不是恶意的,也有必要依赖其处理。从最近的许多妥协中可以看出,这种对重构私钥的依赖为攻击提供了途径。
作为现有ECDSA实施方案的插入式替换以及完全透明的并与当前比特币协议兼容,其实施方案不需要硬分叉或软分叉,并且该实施方案与任何当前交易都没有区别。本发明可以将个人视为单独的参与者,从而允许使用恢复功能对密钥进行群组签署。作为示例,可以使用四个密钥切片来实现两个方案中的两个,其中,在线钱包提供者或交易所(exchange)维护两个密钥切片,而最终使用者维护两个切片。交易所和使用者将各自具有对其密钥切片的两个过程中的两个,然后在需要时将彼此结合使用这两个过程来对消息进行安全签署。
阈值库
上述过程和技术可以用于以避免任何节点具有独立生成私钥的能力的方式来生成公钥-私钥对。由每个节点单独持有的私钥份额从不暴露于通信中,并且该私钥份额可以根据需要进行刷新以进一步增强安全性或解决密钥份额丢失问题。该功能有助于在区块链网络内实施“阈值库”。阈值库是区块链上的地址,数字资产可以与该地址相关联地记录,使得保持私钥份额的阈值数量的节点需要协作以便访问、转移或以其他方式处理阈值库中的数字资产。可以建立阈值库,使得密钥份额的全部或子集对于对具有阈值库的交易进行数字签署作为输入是必需的。阈值可以根据库的目的和目标进行设定。例如,在主要目标是防止私钥泄露的一些情况下,阈值可以被设定为密钥份额的100%。在主要目标是投票方案的一些情况下,51%或更多的密钥份额可以被设定为阈值。在一个示例中,针对密钥份额丢失的安全性和保护这两者都可以是目标,在这种情况下,3/5(例如)的阈值可以被设定成使得主要库所有者控制密钥份额的3/5并使得一个或更多个第三方存储库保持密钥份额的剩余2/5,从而在当主要库所有者失去对其密钥份额中的一个或更多个(但并非所有)的访问权的情况下、允许主要库所有者与第三方存储库协作,以使第三方存储库使用其密钥份额。以这种方式,第三方存储库可以在丢失主要库所有者密钥份额之一的情况下充当“备份”密钥份额的监护人。
通过一个示例的方式来说明,现在参照图4,图4图解地示出了与阈值库的实施方案有关的份额的示例分配。在该示例中,示出了部分区块链100,其包括区块102。区块102部分地由交易构成,交易包括具有与库地址P相关联的输出106的交易104。库地址P是公共可用的。与库地址相关联的未耗用交易输出(UXTO)可用作另一交易的输入。
为了将UXTO用作另一交易的输入,必须在生成数字签名时使用与库地址相对应的私钥V。在这种情况下,私钥V尚未生成并且将不会生成。相反,私钥以跨多个节点110的私钥份额(V1、V2、…、Vn)的形式被持有。这些密钥份额可以存储在完整的区块链节点(例如服务器、个人计算机等)、钱包节点(例如,在个人计算机、平板电脑、笔记本电脑、移动装置、或任何其他能够运行区块链钱包软件的联网计算装置中实现)、离线存储器/存储设备(例如,USB记忆棒、存储卡、或其他持久性数字存储介质)、在线存储库(例如,区块链交换帐户、银行网络装置、或其他用于存储区块链数据的远程第三方操作服务)、或任何其他此类计算装置中。
在一些示例实施方案中,每个节点均可以由单独的实体操作或控制,使得需要阈值数量的所有者之间的协作以生成与库地址P有关的数字签名。在一些示例实施方案中,阈值数量的节点可以由单个实体控制,尽管出于密钥安全的目的,密钥份额在物理上和逻辑上位于单独的电子装置中。附加密钥份额(但不是阈值数量的密钥份额)存储在由其他实体操作的电子装置中,这些附加密钥份额可以在主要所有者丢失密钥份额的情况下用于充当密钥恢复服务。在其他示例实施方案中,两个(或更多个)实体可以对足以在数字签名生成上进行协作的相应的密钥份额进行控制,所述两个(或更多个)实体比如为两个(或更多个)合作伙伴、或委托人、和共同签名授权机构(例如,银行、母公司等)。本领域普通技术人员将理解的是,逻辑和法律关系的范围和多样性可以反映在各方之间的密钥份额的分配以及用于签署的相关阈值的设置中。
现在将参照图5,图5以流程图形式示出了使用阈值库来接收和转移数字资产的一个示例方法200。在该示例中,多个节点将协作以生成阈值库地址,并且以在没有任何中央经销商或授权机构的情况下秘密安全地生成和分配对应的密钥份额,从而确保在生成过程期间或在数字签署过程期间没有节点可以访问任何其他节点的密钥份额。
在操作202中,节点协作地生成阈值库地址(例如,公钥),各个节点针对该阈值库地址基于由各个节点秘密选择的相应的多项式独立地生成并存储相应的私钥份额。由每个节点选择的多项式具有基于节点之间商定的阈值的阶数。例如,在j个节点之中,在启动阈值库生成过程时,节点可能已经同意设置需要使用私钥的k个协作节点的阈值(术语“使用”表示,在本申请中私钥实际上从未被任何节点重构),其中,k≤j。阈值库地址可以由节点中的任意节点或每个节点基于由节点共享的某些多项式值并使用多项式插值来确定。
在操作204中,将交易添加到区块链上的块(并且被验证和确认),该交易将数字资产转移到阈值库地址。
作为某个未来点,在操作206中,生成交易(可以更一般地称为“消息”),建议使用数字资产作为该交易的输入。该提议的交易可以由节点中的一个节点或另一不相关节点生成。在已经接收到具有阈值库地址的消息作为输入之后,节点通过对其进行数字签署来确定是否批准交易。
假设指示节点批准交易,则在操作208中,至少阈值数量的k个节点相协作以生成消息的数字签名。这种协作依赖于使用联合零秘密份额,以在节点之间生成随机掩码份额,过程中使用这些随机掩码份额来掩码所使用的任何密钥份额,从而确保没有节点收到任何其他节点的密钥份额。数字签名过程中使用的任何掩码份额或密钥份额都是通过使用秘密的无经销商分配来生成和分配的。数字签名过程包括确定第一签名分量r和第二签名分量s。在确定过程中,任何临时密钥份额或私钥份额在被共享之前被掩码,并且任何共享都是具有嵌入在另一表达式中的掩码密钥份额的值,如上面所详述的以及如以下进一步说明的。因此,在不曾生成完整的私钥并且也没有泄露由节点中的任何节点所持有的任何私钥份额的情况下生成消息的数字签名。
现在参照图6,图6以流程图形式示出了用于生成阈值库地址的一个示例方法300。阈值k被预先设定。节点中的每个节点均与其他节点中的每个节点建立安全通信。如[Wright 2016]中所述,这可以包括确定用于信息的安全交换的公共秘密,尽管可以采用任何其他加密密钥生成过程,只要每个节点均可以向每个其他节点发送加密通信以及从每个其他节点接收和解密被加密的通信即可。
方法300开始于节点pi(i=0至j)中的每个节点,每个节点均具有其自己的相应的第一秘密a0 (i)。第一秘密可以以任何合适的方式获得或确定。
每个节点还选择其自己的具有自由项的次数为k-1的相应的多项式fi(x),例如多项式的fi(0)是节点的第一秘密,即,系数a0。相应的多项式可以各自具有不同的系数at:,但各自具有以下形式:
节点中的每个节点针对其他节点中的每个节点确定其多项式的值。在这种情况下,x可以被设定为与其他节点相关联的索引h,h=1,...,(i-1),(i+1),...,j。换句话说,对于所有h(h≠i),每个节点都确定fi(h)的值。这些值可以分别称为“第二秘密”。下面结合“第一节点”i来描述方法300的操作,尽管其他节点中的每个节点亦执行相同或相似的操作。
如操作302所指示的,第一节点i与该节点h安全地(即,在加密信道上)共享节点h的第二秘密fi(h)。也就是说,第一节点i向每个其他节点h发送值fi(h)。第一节点i随后还向所有其他节点广播其已确定的所有第二秘密的椭圆曲线点乘法(ECPM)。也就是说,第一节点i向每一个其他节点h发送所有h的值fi(h)×G。,第一节点i还广播(即,发送到其他节点中的每个节点)其多项式系数aK (i)×G的ECPM,其中,K=0,…,(k-1)。因此,第一节点尚未泄露其多项式系数,而是公开了与每个系数相对应的“公钥”,并且通常尚未泄露所确定的第二秘密,而是公开了与每个所确定的第二秘密相对应的“公钥”。第一节点仅与每个其他节点秘密地共享一个第二秘密。
在操作304中,第一节点i从其他节点中的每个节点(或其他节点中的至少k-1个节点)接收由该另一节点为索引i确定的“第二秘密”。也就是说,第一节点针对每个h≠i(或j-1个节点中的至少k-1个节点)接收值fh(i)。第一节点还接收由其他节点广播的ECPM值,即,第二秘密的ECPM和每个相应多项式的系数的ECPM。
尽管在图6中未明确示出,但是节点可以基于广播值而独立地验证和确认从其他节点接收到的第二秘密。也就是说,每个节点均可以通过计算其ECPM值并将其与来自该另一节点的广播ECPM值进行比较来确定从节点h获得的第二秘密是有效的。
在操作306中,第一节点i确定并存储第一私钥份额dA(i)作为从其他(至少k-1)节点中的每个节点接收到的相应的第二秘密fh(i)的总和。由节点i确定的那些相应的第二秘密的总和可以表示为:
在操作308中,节点中的一个或更多个节点(可以委托给除第一节点以外的节点,或者可以由节点中的一个以上的节点或所有节点来完成)确定阈值库地址,即,与私钥dA相对应的公钥QA,针对私钥QA的节点各自具有私钥份额dA(i)。公钥是从第二秘密的阈值数量的ECPM的总和并且使用多项式插值来获得的。如上所述,这可以表示为:
将理解的是,方法300在与由公钥QA给出的阈值库地址相对应的节点处导致独立生成的私钥份额dA(i)。
现在将参照图7,图7以流程图形式示出了对与阈值库有关的消息进行数字签署的示例方法400。方法400用于为消息m生成数字签名,其可以由消息散列e=H(m)来表示。可以假设消息m与阈值库作为输入的提议的区块链交易有关。因此,为了使交易有效,将需要用于确认拥有与阈值库公钥QA相对应的私钥的数字签名。当然,没有节点具有私钥或者具有生成私钥的能力,节点仅持有私钥份额dA(i)。然而,方法400提供了一种用于使阈值数量的节点在生成有效数字签名时进行协作而从不泄露其私钥份额的机制。
如操作402所指示的,方法400包括使用无经销商秘密分配来为每个节点i生成临时密钥份额Dk(i)和乘法掩码份额αi。例如,节点i已经持有使用方法300生成的私钥份额dA(i)。在操作404中,使用联合零秘密份额(JZSS)(比如以上结合算法2所描述的)来生成第一加法掩码份额和第二加法掩码份额,即,βi和ci。第一加法掩码份额和第二加法掩码份额不相关。
每个节点随后在操作406中揭示双掩码密钥份额,该双掩码密钥份额是基于临时密钥份额、由乘法掩码份额和第一加法掩码份额掩码的。在一个示例中,双掩码密钥份额表示为:
每个节点还揭示了与乘法掩码份额的ECPM相对应的公共乘法掩码份额,这可以表示为:
ωi=G×αi
没有节点曾揭示其私钥份额、临时密钥份额或掩码份额。
在操作408中,根据所揭示的数据来确定第一签名分量r。该确定可以由每个节点独立地进行或者由节点中的一个节点进行,并且该确定被其他节点所共享和/或验证。
椭圆曲线数字签名算法(ECDSA)涉及确定随机值k的倒数,其在本示例中为临时密钥Dk,即,其涉及Dk -1。为了确定第一签名成分r,可以使用对双掩码密钥份额进行多项式插值来确定掩码临时密钥μ:
由于加法掩码基于联合零份额,因此加法掩码会从插值中退出,从而得出结果μ=Dkαmodn。同样,在乘法掩码份额的ECPM上的指数多项式插值给出:
θ=Exp-Interpolate(ω1,...,ωn)
θ=G×α
然后,通过计算rx,y=(Rx,Ry)=θ×μ-1来获得第一签名分量r,即:
第一签名分量r是Rxmodn。
在操作410中,每个节点(或节点中的至少k个节点)确定第二签名分量份额si。第二签名分量涉及临时密钥、私钥、消息的散列、和第一个签名分量。没有节点持有临时密钥或私钥,其仅具有密钥份额。因此,每个节点将第二签名分量份额si生成为:
si=Dk(i)(e+dA(i)r)+cimodn
该值随后被广播或与其他节点共享。应当指出的是,第二加法掩码份额用于提高揭示第二签名分量份额的安全性。
在操作412中,随后通过多项式插值根据第二签名分量份额获得第二ECDSA签名分量s:
s=Interpolate(s1,...,sj)modn
同样,第二加法掩码份额ci从插值中退出,这是因为第二加法掩码份额ci起源于联接零份额。但是,第二加法掩码份额ci用于为揭示的第二签名分量份额提供随机掩码。操作412可以由节点中的一个或更多个节点或者由委托节点来执行。已生成了两个分量(r,s)之后,消息m的数字签名因此生成而没有泄露任何私钥份额或任何临时密钥份额。
在操作414中,将数字签名结合到包含现在已被数字签署的消息的区块链交易中。该交易随后可以被提交给网络以进行验证和最终确认。
现在参照图8,图8以框图形式示出了节点800的简化示例。节点800包括处理器802,该处理器802可以包括一个或多个微处理器、专用集成芯片(ASIC)、微控制器、或类似的计算机处理装置。节点800还包括存储器804和网络接口806,存储器804可以包括持久性和非持久性存储器,用以存储值、变量、以及在一些情况下的处理器可执行程序指令,网络接口806用以通过有线或无线网络提供网络连接。
节点800包括处理器可执行区块链应用808,该处理器可执行区块链应用808包含处理器可执行指令,该处理器可执行指令在被执行时使处理器802执行本文中所描述的功能或操作中的一个或更多个功能或操作。
将理解的是,可以使用标准计算机编程技术和语言来实现本文中所描述的装置和过程以及实现实施所描述的用于配置节点的方法/过程的任何模块、例程、过程、线程、应用或其他软件部件。本申请不限于特定处理器、计算机语言、计算机编程约定、数据结构或其他这样的实现细节。
结束语
本发明形成了比特币寻求通过引入群组签名过程来实现的基础。添加容错签名系统与分布式密钥创建系统的耦合消除了所有集中和信任要求。
此外,引入隐含分散的系统允许创建更鲁棒和有弹性的协议。ECDSA[Johnson,2001]和Shamir的SSS[Shamir,1979]之间的兼容性允许本发明引入一种系统,该系统用新的可验证的秘密共享方案扩展比特币。该系统比Feldman[Feldman,1987]或Pedersen[Pedersen,1992]所得到的任何系统都有效得多,同时在安全性丝毫不减。
在本申请中,已经描述了一种能够扩展比特币的功能而无需改变基本协议的系统。使用本发明具有以下优点:
1.选择或分配密钥秘密不再需要可信第三方,
2.可以创建不依赖第三方信任的分布式银行交换系统,
3.每个成员或成员群组可以独立地验证所持有的秘密公钥的份额与所宣传的比特币地址和公钥是否相对应,
4.存在协议来刷新私钥切片,以减轻窃听和相关攻击的影响,并且
5.交易和消息的群组签名不需要可信第三方。
由于本发明避免了敏感数据永远出现在存储器中,因此完全解决了许多现存的安全风险。
引用文献
1)Bar-Ilan,J.Beaver,"Non-Cryptographic Fault-Tolerant Computing in aConstant Number of Rounds",Proc.of 8th PODC,pp.201-209,1989.
2)Berlekamp,Elwyn R.(1968),Algebraic Coding Theory,McGraw–Hill,NewYork,NY.
3)Benger,N.,van de Pol,J.,Smart,N.P.,Yarom,Y.:"Ooh Aah...Just aLittle Bit":A Small Amount of Side Channel Can Go a Long Way.In:Batina,L.,Robshaw,M.(eds.)Cryptographic Hardware and Embedded Systems|CHES 2014,LNCS,vol.8731,pp.75-92.Springer(2014)
4)Ben-Or,M.,Goldwasser,S.,Wigderson,A.:“Completeness theorems fornoncryptographic fault-tolerant distributed computation”.In:Proceedings ofthe Twentieth Annual ACM Symposium on Theory of Computing.pp.1–10.STOC’88,ACM,New York,NY,USA(1988)
5)BIP 65OP_CHECKLOCKTIMEVERIFY https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki
6)Chaum,David(1983)."Blind signatures for untraceable payments"(PDF).Advances in Cryptology Proceedings of Crypto.82(3):199–203.
7)Dawson,E.;Donovan,D.(1994),"The breadth of Shamir's secret-sharingscheme",Computers&Security,13:Pp.69–78
8)Desmedt.Yuo(1987).“Society and Group Oriented Cryptography:A NewConcept”.In A Conference on the Theory and Applications of CryptographicTechniques on Advances in Cryptology(CRYPTO'87),Carl Pomerance(Ed.).Springer-Verlag,London,UK,UK,120-127.
9)Feldman.P.“A practical scheme for non-interactive verifiable secretsharing”.In Proceedings of the 28th IEEE Annual Symposium on Foundations ofComputer Science,pages 427–437,1987.
10)Gennaro,R.,Jarecki,S.,Krawczyk,H.,Rabin,T.:“Robust threshold DSSsignatures”.In:Proceedings of the 15th Annual International Conference onTheory and Application of Cryptographic Techniques.pp.354–371.EUROCRYPT’96,SpringerVerlag,Berlin,Heidelberg(1996)
11)Ibrahim,M.,Ali,I.,Ibrahim,I.,El-sawi,A.:“A robust thresholdelliptic curve digital signature providing a new verifiable secret sharingscheme”.In:Circuits and Systems,2003 IEEE 46th Midwest Symposium on.vol.1,pp.276–280(2003)
12)Johnson,D.,Menezes,A.,Vanstone,S.:“The elliptic curve digitalsignature algorithm(ecdsa)”.International Journal of Information Security 1(1),36–63(2001)
13)Kapoor,Vivek,Vivek Sonny Abraham,and Ramesh Singh."Elliptic CurveCryptography."Ubiquity 2008,no.May(2008):1-8.
14)Knuth,D.E.(1997),“The Art of Computer Programming,II:SeminumericalAlgorithms”(3rd ed.),Addison-Wesley,p.505.
15)Koblitz,N."An Elliptic Curve Implementation of the Finite FieldDigital Signature Algorithm"in Advances in Cryptology––Crypto'98.LectureNotes in Computer Science,vol.1462,pp.327-337,1998,Springer-Verlag.
16)Liu,C.L.(1968),“Introduction to Combinatorial Mathematics”,NewYork:McGraw-Hill.
17)National Institute of Standards and Technology:FIPS PUB 186-4:“Digital Signature Standard”(DSS)(2003)
18)Pedersen,T.:“Non-interactive and information-theoretic secureverifiable secret sharing”.In:Feigenbaum,J.(ed.)Advances in Cryptology—CRYPTO’91,LNCS,vol.576,pp.129–140.Springer(1992)
19)Rabin T.&Ben-Or.M.(1989)"Verifiable secret sharing and multipartyprotocols with honest majority".In Proc.21st ACM Symposium on Theory ofComputing,pages 73--85,1989.
20)Shamir,Adi(1979),"How to share a secret",Communications of theACM,22(11):Pp.612–613
21)Wright,C.&Savanah,S.(2016)“Determining a common secret for twoBlockchain nodes for the secure exchange of information”International PatentApplication Number Application Number:WO 2017/145016
应当指出的是,上述实施方式说明而非限制本发明,并且本领域技术人员将能够在不脱离由所附权利要求限定的本发明的范围的情况下设计许多替代性实施方式。在权利要求中,置于括号中的任何附图标记不应被解释为限制权利要求。用语“包括”和“包含”等不排除除了在任何权利要求或说明书中作为整体列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括”表示“包括或由......构成”,并且“包含”表示“包含或由......构成”。元件的单数引用不排除这些元件的复数引用,反之亦然。本发明可以借助于包括若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的设备权利要求中,这些装置中的若干个装置可以由同一个硬件项实现。在相互不同的从属权利要求中陈述某些手段的仅有事实并不表示这些手段的组合不能用于获益。
Claims (40)
1.一种安全地生成阈值库的计算机实现的方法,其中,所述阈值库具有公钥地址、私钥和阈值k,多个节点中的每个节点均具有相应的第一秘密和相应的k-1次多项式函数,其中,该节点的相应的第一秘密被设定为所述多项式函数的自由项,所述节点包括具有第一多项式函数的第一节点,由所述第一节点执行的所述方法包括:
对于所述多个节点中的每个其他节点,将所述第一多项式函数中的变量设定为与该其他节点相关联的值,找到所述多项式函数的针对所述值的相应结果,并且将所述相应结果安全地传送至该其他节点;
从至少阈值数量的其他节点接收相应的第二秘密,其中,所述相应的第二秘密中的每个第二秘密为该其他节点的相应的多项式函数的、针对与所述第一节点相关联的第一值的结果;
向所述其他节点传送所述相应结果中每个结果的椭圆曲线点乘法;
从至少所述阈值数量的其他节点接收由所述其他节点与所述节点中的任何节点共享的、所述相应的第二秘密的椭圆曲线点乘法;
基于从所述其他节点接收的所述相应的第二秘密的总和来形成并存储所述私钥的第一私钥份额;以及
基于接收到的所述相应的第二秘密的所述椭圆曲线点乘法的总和并且使用多项式插值来确定与所述私钥相对应的公钥。
2.根据权利要求1所述的方法,其中,每个相应的多项式函数由该多项式函数的相应的节点独立地选择,并且其中,每个相应的多项式函数具有不同的系数集。
4.根据权利要求1至3中的任一项所述的方法,还包括向所述其他节点传送所述第一多项式函数的每个系数的椭圆曲线点乘法。
5.根据权利要求1至4中的任一项所述的方法,还包括从所述至少阈值数量的其他节点接收其相应的多项式函数的每个系数的椭圆曲线点乘法。
6.根据权利要求1至5中的任一项所述的方法,还包括对从所述其他节点接收到的所述相应的第二秘密进行验证。
8.根据权利要求1至7中的任一项所述的方法,还包括通过与所述其他节点协作地参与联合零秘密份额的无经销商秘密分配来修改所述第一私钥份额,由此所述第一节点接收第一零秘密份额,并且通过添加所述第一零秘密份额来修改所述第一私钥份额以形成并存储修改后的第一私钥份额。
9.根据前述权利要求中的任一项所述的方法,其中,确定所述公钥的步骤包括:通过根据接收到的所述相应的第二秘密的椭圆曲线点乘法的多个已知值确定所述多项式函数的系数,来确定所述多项式函数。
10.根据权利要求9的方法,其中,确定所述多项式函数的步骤包括执行误差校正算法。
11.根据权利要求9或10所述的方法,其中,确定所述多项式函数的步骤包括执行Berlekamp-Welch解码算法。
12.根据权利要求9至11中的任一项所述的方法,其中,确定所述多项式函数的步骤包括:
定义误差定位器多项式函数和第二多项式函数,其中,所述第二多项式函数是所述多项式函数与所述误差定位器多项式函数的乘积;根据接收到的所述相应的第二秘密的椭圆曲线点乘法的多个已知值来确定所述第二多项式函数和所述误差定位器多项式函数的系数;以及根据所述第二多项式函数和所述误差检测器多项式函数来确定所述多项式函数。
13.一种用于为与阈值库有关的消息安全地生成数字签名的计算机实现的方法,其中,所述阈值库具有公钥地址、私钥和阈值,多个节点中的每个节点具有相应的私钥份额、临时密钥份额、乘法掩码份额、第一加法掩码份额和第二加法掩码份额,由所述多个节点中的第一节点执行的所述方法包括:
生成并共享双掩码密钥份额以及所述乘法密钥份额的椭圆曲线点乘法,该双掩码密钥份额是基于所述临时密钥份额、通过所述乘法密钥份额和所述第一加法密钥份额掩码的;
从至少阈值数量的其他节点接收其相应的双掩码密钥份额并接收其乘法密钥份额的相应的椭圆曲线点乘法(ECPM);
通过利用对所述双掩码密钥份额进行多项式插值以及对所述乘法密钥份额的所述ECPM进行多项式插值来确定第一签名分量;以及
基于所述消息、所述私钥份额、所述第一签名分量、所述临时密钥份额,通过所述第二加法掩码份额掩码,确定并揭示第二签名分量份额,
由此能够根据至少所述阈值数量的节点的相应的所述第二签名分量份额获得第二签名分量。
14.根据权利要求13所述的方法,其中,还包括使用无经销商秘密分配来生成所述第一节点的私钥份额、临时密钥份额和乘法掩码份额。
15.根据权利要求13或权利要求14所述的方法,还包括使用联合零秘密份额来生成所述第一节点的第一加法掩码份额和第二加法掩码份额。
16.根据权利要求13至15中的任一项所述的方法,其中,生成所述双掩码密钥份额包括下述计算:
θi=Dk(i)αi+βimodn
其中,θi是所述双掩码密钥份额,Dk(i)是所述第一节点的临时密钥份额,αi是所述第一节点的乘法掩码份额,βi是所述第一节点的第一加法掩码份额,并且n是椭圆曲线的整数阶。
17.根据权利要求13至16中的任一项所述的方法,其中,对所述双掩码密钥份额进行多项式插值导致乘法掩码的临时密钥,对所述乘法掩码份额的所述ECPM进行多项式插值导致乘法掩码的ECPM,并且其中,确定所述第一签名分量包括确定所述乘法掩码的ECPM与所述乘法掩码的临时密钥的倒数的乘积。
18.根据权利要求13至17中的任一项所述的方法,其中,确定所述第二签名分量份额si包括确定:
si=Dk(i)(e+dA(i)r)+cimodn
其中,Dk(i)是所述第一节点的临时密钥份额,e是所述消息的散列,dA(i)是所述第一节点的私钥份额,r是第一签名分量,ci是所述第二加法掩码份额,并且n是椭圆曲线的整数阶。
19.根据权利要求13至18中的任一项所述的方法,还包括通过对至少所述阈值数量的节点的所述第二签名分量份额进行多项式插值来确定所述第二签名分量。
20.根据权利要求19所述的方法,还包括将所述第一签名分量和所述第二签名分量添加到包含所述消息的交易,并且将所述交易提交给区块链网络。
21.一种用于多方计算的计算机实现的方法,所述方法包括:
在多个第一节点之间分配多个秘密的份额,其中,每个秘密是相应的多项式函数的自由项,并且每个所述份额是与所述第一节点相关联的所述多项式函数的相应值,使得能够通过阈值数量的所述份额的多项式插值来访问所述秘密,而在没有所述阈值数量的份额的情况下不能够访问所述秘密;
在第二节点处接收来自多个所述第一节点中每个第一节点的计算出的秘密的相应的份额,其中,每个所述第一节点通过对分配给所述节点的相应多个所述秘密的份额执行至少一个预定计算,来计算其所述计算出的秘密的份额;以及
在所述第二节点处、通过对至少阈值数量的、所述计算出的秘密的份额进行多项式插值,来确定所述计算出的秘密。
23.根据权利要求21或22所述的方法,还包括向多个节点传送多个所述多项式函数的每个系数的椭圆曲线点乘法。
24.根据权利要求21至23中的任一项所述的方法,还包括向多个节点传送与所述多个所述节点中的每个节点相关联的所述多项式函数中至少一个的值的椭圆曲线点乘法。
25.根据权利要求23和24所述的方法,还包括对与至少一个所述节点相关联的至少一个所述多项式函数的值的椭圆曲线点乘法与所述多项式函数的系数的椭圆曲线点乘法之和之间的一致性进行验证。
26.根据权利要求21至25中的任一项所述的方法,其中,确定所述计算出的秘密的份额包括确定:
μi=xi·yimod n
其中,xi是第一秘密的份额,yi是第二秘密的份额,并且n是椭圆曲线的整数阶。
27.根据权利要求21至26中的任一项所述的方法,其中,确定所述计算出的秘密的份额包括确定:
xi+yimod n
其中,xi是第一秘密的份额,yi是第二秘密的份额,并且n是椭圆曲线的整数阶。
28.根据权利要求21至27中的任一项所述的方法,其中,确定所述计算出的秘密的份额包括确定:
Xi -1mod n
其中,xi -1是以n为模的、第一秘密的份额的倒数,并且n是椭圆曲线的整数阶。
29.根据权利要求21至28中的任一项所述的方法,还包括通过添加零秘密的份额来提供所述计算出的秘密的修改的份额,其中,所述零秘密是多项式函数的自由项且等于零,使得通过阈值数量的所述修改的份额的多项式插值能够访问所述计算出的秘密,而在没有所述阈值数量的份额的情况下不能够访问所述计算出的秘密。
30.根据权利要求21至29中的任一项所述的方法,其中,确定所述计算出的秘密的步骤包括:通过根据所述计算出的秘密的份额的多个已知值确定所述多项式函数的系数,来确定与所述计算出的秘密的份额相对应的多项式函数。
31.根据权利要求30的方法,其中,确定所述多项式函数的步骤包括执行误差校正算法。
32.根据权利要求30或31所述的方法,其中,确定所述多项式函数的步骤包括执行Berlekamp-Welch解码算法。
33.根据权利要求30至32中的任一项所述的方法,其中,确定所述多项式函数的步骤包括:
定义误差定位器多项式函数和第二多项式函数,其中,所述第二多项式函数是与所述计算出的秘密的份额相关联的所述多项式函数与所述误差定位器多项式函数的乘积;根据所述计算出的秘密的份额的多个已知值来确定所述第二多项式函数和所述误差定位器多项式函数的系数;以及根据所述第二多项式函数和所述误差检测器多项式函数来确定与所述计算出的秘密的份额相关联的多项式函数。
34.一种在多个节点之间分配公钥-私钥密码系统的私钥的份额的计算机实现的方法,其中,每个所述节点具有相应的第一秘密、相应的第一多项式函数、和私钥的相应的第一份额,其中,所述节点的相应的第一秘密被设定为所述第一多项式函数的自由项,其中,所述私钥是所述第一秘密的总和并且是第二多项式函数的自由项,其中,能够通过至少阈值数量的所述第一份额的多项式插值来访问所述私钥,而在小于所述阈值数量的所述第一份额的情况下不能够访问所述私钥,所述节点包括第一节点,所述第一节点执行的式所述方法包括:
选择将零设定为其相应的自由项的第三多项式函数;
对于所述多个节点中的每个其他节点,将所述第三多项式函数中的变量设定为与该其他节点相关联的值,确定所述第三多项式函数的针对所述值的相应结果,并且将所述相应结果安全地传送至所述其他节点;
从每个其他节点接收相应的第二秘密的相应份额,其中,所述份额为该其他节点的相应的第三多项式函数的、针对与所述第一节点相关联的第一值的结果;以及
形成并存储所述私钥的相应第二份额,其中,所述第二份额是所述相应的第一份额与接收到的所述第二秘密的份额的总和之和。
35.根据权利要求34所述的方法,还包括:
向所述其他节点传送所述相应结果中每一个的椭圆曲线点乘法;以及
向所述其他节点传送与所述第一节点相关联的所述第三多项式函数的系数的椭圆曲线点乘法。
36.根据权利要求34或35所述的方法,还包括:
从每个其他节点接收与该节点相关联的结果的椭圆曲线点乘法;以及
从每个其他节点接收与该节点相关联的所述第三多项式函数的所述系数的椭圆曲线点乘法。
37.根据权利要求36所述的方法,还包括对与至少一个其他节点相关联的结果与同该其他节点相关联的所述第三多项式函数的所述系数的一致性进行检验。
38.根据权利要求34至37中的任一项所述的方法,还包括基于消息和所述私钥的所述第二份额来生成数字签名的份额。
39.根据权利要求34至38中的任一项所述的方法,还包括:
基于消息和所述私钥的相应的第二份额从至少阈值数量的节点接收数字签名的相应的份额;以及
通过至少阈值数量的所述数字签名的份额的多项式插值来生成数字签名。
40.一种参与区块链交易的计算装置,所述计算装置是多个节点中的第一节点,所述计算装置包括:
处理器;
存储器;
网络接口,用以提供与所述多个节点中的其他节点的网络连接;以及
包含计算机可执行指令的区块链应用程序,所述计算机可执行指令在由所述处理器执行时使所述处理器执行权利要求1至39中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410582867.6A CN118520513A (zh) | 2017-08-15 | 2018-08-13 | 生成阈值库的计算机实现方法 |
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1713064.2 | 2017-08-15 | ||
IB2017054961 | 2017-08-15 | ||
IBPCT/IB2017/054961 | 2017-08-15 | ||
GBGB1713064.2A GB201713064D0 (en) | 2017-08-15 | 2017-08-15 | Computer-implemented methods and systems |
GBGB1714660.6A GB201714660D0 (en) | 2017-08-15 | 2017-09-12 | Computer-implemented methods and systems |
GB1714660.6 | 2017-09-12 | ||
IBPCT/IB2017/055497 | 2017-09-12 | ||
IB2017055497 | 2017-09-12 | ||
IB2017057782 | 2017-12-11 | ||
IBPCT/IB2017/057782 | 2017-12-11 | ||
PCT/IB2018/055604 WO2019034951A1 (en) | 2017-08-15 | 2018-07-26 | METHOD AND SYSTEM FOR DIGITAL THRESHOLD SIGNATURE |
IBPCT/IB2018/055604 | 2018-07-26 | ||
PCT/IB2018/056094 WO2019034986A1 (en) | 2017-08-15 | 2018-08-13 | METHOD USED BY DISTRIBUTED SAFE GENERATION COMPUTER |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410582867.6A Division CN118520513A (zh) | 2017-08-15 | 2018-08-13 | 生成阈值库的计算机实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110999207A true CN110999207A (zh) | 2020-04-10 |
CN110999207B CN110999207B (zh) | 2024-05-31 |
Family
ID=67702926
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880053433.XA Active CN110999207B (zh) | 2017-08-15 | 2018-08-13 | 生成阈值库的计算机实现方法 |
CN202410582867.6A Pending CN118520513A (zh) | 2017-08-15 | 2018-08-13 | 生成阈值库的计算机实现方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410582867.6A Pending CN118520513A (zh) | 2017-08-15 | 2018-08-13 | 生成阈值库的计算机实现方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US11381389B2 (zh) |
EP (2) | EP4325770A3 (zh) |
JP (2) | JP7202358B2 (zh) |
KR (2) | KR20240011260A (zh) |
CN (2) | CN110999207B (zh) |
SG (1) | SG11202000808WA (zh) |
TW (2) | TWI822693B (zh) |
WO (1) | WO2019034986A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116915416A (zh) * | 2023-09-14 | 2023-10-20 | 北京信安世纪科技股份有限公司 | 一种证书签名方法、装置以及一种证书获取方法、装置 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6753403B2 (ja) * | 2015-08-26 | 2020-09-09 | 日本電気株式会社 | 情報処理装置、認証システム、認証方法、並びにコンピュータ・プログラム |
US10505723B1 (en) * | 2017-04-26 | 2019-12-10 | Wells Fargo Bank, N.A. | Secret sharing information management and security system |
CN111543025A (zh) | 2017-08-30 | 2020-08-14 | 因福尔公司 | 高精度隐私保护实值函数评估 |
US11481761B2 (en) | 2018-06-03 | 2022-10-25 | VVOW Company Limited | Peer-to-peer cryptocurrency and crypto asset trading platform |
WO2020123926A1 (en) * | 2018-12-13 | 2020-06-18 | Login Id Inc. | Decentralized computing systems and methods for performing actions using stored private data |
EP3696670A1 (en) * | 2019-02-13 | 2020-08-19 | UVUE Limited | Distributed computation system and method of operation thereof |
AU2020225657A1 (en) * | 2019-02-22 | 2021-08-19 | Inpher, Inc. | Arithmetic for secure multi-party computation with modular integers |
US10892891B2 (en) * | 2019-03-13 | 2021-01-12 | Digital 14 Llc | System, method, and computer program product for zero round trip secure communications based on two noisy secrets |
US10951415B2 (en) * | 2019-03-13 | 2021-03-16 | Digital 14 Llc | System, method, and computer program product for implementing zero round trip secure communications based on noisy secrets with a polynomial secret sharing scheme |
US11451406B2 (en) * | 2019-04-04 | 2022-09-20 | Moac Blockchain Tech Inc | Cross-chain messaging and message validation |
US11646877B2 (en) * | 2019-05-14 | 2023-05-09 | Samsung Sds Co., Ltd. | Apparatus and method for generating secret key, apparatus and method for generating evaluation key |
GB201907396D0 (en) | 2019-05-24 | 2019-07-10 | Nchain Holdings Ltd | Hash function attacks |
GB2584154A (en) * | 2019-05-24 | 2020-11-25 | Nchain Holdings Ltd | Knowledge proof |
US10790990B2 (en) * | 2019-06-26 | 2020-09-29 | Alibaba Group Holding Limited | Ring signature-based anonymous transaction |
CN110457936B (zh) * | 2019-07-01 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 数据交互方法、装置和电子设备 |
CN112543103B (zh) * | 2019-09-23 | 2024-06-25 | 百度在线网络技术(北京)有限公司 | 账户地址的生成方法和校验方法、装置、设备和介质 |
CN111064557A (zh) * | 2019-12-25 | 2020-04-24 | 杭州安司源科技有限公司 | 一种分布式托管的数字货币门限签名密钥分发方法 |
CN113129001B (zh) * | 2019-12-31 | 2023-02-17 | 上海证锘信息科技有限公司 | 面向区块链跨链和资产托管的抗量子攻击门限签名方法 |
GB2597123B (en) * | 2020-05-14 | 2023-08-30 | Hung Hung Chiu | A method for creating a hierarchical threshold signature digital asset wallet |
CN113746623B (zh) * | 2020-05-28 | 2023-03-24 | 华为技术有限公司 | 一种门限密钥验证方法及相关设备 |
US11621834B2 (en) * | 2020-06-15 | 2023-04-04 | Acronis International Gmbh | Systems and methods for preserving data integrity when integrating secure multiparty computation and blockchain technology |
CN111478775B (zh) * | 2020-06-22 | 2020-10-23 | 杭州趣链科技有限公司 | 一种交互式聚合签名方法、设备及存储介质 |
GB2597539A (en) * | 2020-07-28 | 2022-02-02 | Nchain Holdings Ltd | Generating shared private keys |
EP3955110A1 (en) | 2020-08-12 | 2022-02-16 | UVUE Limited | Distributed computing system and method of operation thereof |
GB2598112A (en) * | 2020-08-18 | 2022-02-23 | Nchain Holdings Ltd | Threshold signatures |
GB2600684A (en) * | 2020-10-28 | 2022-05-11 | Nchain Holdings Ltd | Identifying denial-of-service attacks |
CN112635010B (zh) * | 2020-12-28 | 2023-07-07 | 扬州大学 | 基于双区块链的边缘计算下数据存储与共享方法 |
CN112906038B (zh) * | 2021-03-26 | 2023-04-07 | 成都卫士通信息产业股份有限公司 | 基于sm9密钥的门限化处理方法、装置、设备及存储介质 |
CN113438070B (zh) * | 2021-05-25 | 2023-07-21 | 中国科学院计算技术研究所 | 基于capss的区块链密钥恢复方法及系统 |
CN113569261B (zh) * | 2021-07-30 | 2024-05-14 | 华北电力科学研究院有限责任公司 | 一种电网数据的处理方法、装置、电子设备和存储介质 |
GB2612309A (en) * | 2021-10-26 | 2023-05-03 | Nchain Licensing Ag | Threshold signature scheme |
GB2612310A (en) * | 2021-10-26 | 2023-05-03 | Nchain Licensing Ag | Generating shared keys |
US20240048382A1 (en) * | 2022-08-03 | 2024-02-08 | 1080 Network, Llc | Systems, methods, and computing platforms for executing credential-less network-based communication exchanges |
CN116865957B (zh) * | 2023-07-04 | 2024-02-02 | 北京邮电大学 | 一种量子安全多方计算系统 |
CN116760547B (zh) * | 2023-08-21 | 2023-10-20 | 湖南湘江树图信息科技创新中心有限公司 | 分布式私钥管理方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1944906A2 (en) * | 1998-05-22 | 2008-07-16 | Certco Incorporated | Robust efficient distributed RSA-key generation |
CN101425902A (zh) * | 2008-11-12 | 2009-05-06 | 电子科技大学 | 一个具有前向安全的门限数字签名方法与系统 |
TW201424322A (zh) * | 2012-12-04 | 2014-06-16 | Cheng-Chung Lee | 驗證由簽章識別符所表示之數位簽章之裝置、系統及方法 |
WO2015160839A1 (en) * | 2014-04-17 | 2015-10-22 | Hrl Laboratories, Llc | A method for secure and resilient distributed generation of elliptic curve digital signature algorithm (ecdsa) based digital signatures with proactive security |
WO2016049406A1 (en) * | 2014-09-26 | 2016-03-31 | Technicolor Usa, Inc. | Method and apparatus for secure non-interactive threshold signatures |
US9489522B1 (en) * | 2013-03-13 | 2016-11-08 | Hrl Laboratories, Llc | Method for secure and resilient distributed generation of elliptic curve digital signature algorithm (ECDSA) based digital signatures with proactive security |
US20170063559A1 (en) * | 2014-05-05 | 2017-03-02 | Sypris Electronics, Llc | Authentication system and device including physical unclonable function and threshold cryptography |
CN107040380A (zh) * | 2017-06-13 | 2017-08-11 | 厦门大学 | 一种基于二进制域的椭圆曲线密码体制的改进模除方法 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764767A (en) | 1996-08-21 | 1998-06-09 | Technion Research And Development Foundation Ltd. | System for reconstruction of a secret shared by a plurality of participants |
US6363481B1 (en) | 1998-08-03 | 2002-03-26 | Nortel Networks Limited | Method and apparatus for secure data storage using distributed databases |
JP3560860B2 (ja) | 1999-07-23 | 2004-09-02 | 株式会社東芝 | 秘密分散システム、装置及び記憶媒体 |
JP4292835B2 (ja) | 2003-03-13 | 2009-07-08 | 沖電気工業株式会社 | 秘密再構成方法、分散秘密再構成装置、及び秘密再構成システム |
US7774688B1 (en) * | 2006-10-11 | 2010-08-10 | Marvell International Ltd. | Hardware efficient decoding system for Bose, Ray-Chaudhuri, Hocquenghem (BCH) product codes |
US8422681B2 (en) * | 2008-03-06 | 2013-04-16 | International Business Machines Corporation | Non-interactive hierarchical identity-based key-agreement |
US20110213975A1 (en) | 2010-03-01 | 2011-09-01 | Alessandro Sorniotti | Secret interest groups in online social networks |
US8874991B2 (en) | 2011-04-01 | 2014-10-28 | Cleversafe, Inc. | Appending data to existing data stored in a dispersed storage network |
WO2013152812A1 (en) | 2012-07-06 | 2013-10-17 | Nec Europe Ltd. | Method and system for storing and reading data in or from a key value storage |
US9450938B1 (en) | 2013-03-13 | 2016-09-20 | Hrl Laboratories, Llc | Information secure proactive multiparty computation (PMPC) protocol with linear bandwidth complexity |
US9350550B2 (en) * | 2013-09-10 | 2016-05-24 | M2M And Iot Technologies, Llc | Power management and security for wireless modules in “machine-to-machine” communications |
US9589144B2 (en) * | 2014-07-28 | 2017-03-07 | Infosec Global Inc. | System and method for cryptographic suite management |
US9813234B2 (en) | 2015-05-11 | 2017-11-07 | The United States of America, as represented by the Secretery of the Air Force | Transferable multiparty computation |
US9735958B2 (en) | 2015-05-19 | 2017-08-15 | Coinbase, Inc. | Key ceremony of a security system forming part of a host computer for cryptographic transactions |
US11488147B2 (en) * | 2015-07-14 | 2022-11-01 | Fmr Llc | Computationally efficient transfer processing and auditing apparatuses, methods and systems |
GB2561729A (en) * | 2016-02-23 | 2018-10-24 | Nchain Holdings Ltd | Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system |
US10652014B2 (en) | 2016-02-23 | 2020-05-12 | nChain Holdings Limited | Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys |
US10046228B2 (en) * | 2016-05-02 | 2018-08-14 | Bao Tran | Smart device |
US20170345011A1 (en) * | 2016-05-26 | 2017-11-30 | Hitfin, Inc. | System and method executed on a blockchain network |
IT201600076089A1 (it) * | 2016-07-20 | 2018-01-20 | St Microelectronics Srl | Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita' di generazione, apparato elettronico e prodotto informatico |
WO2019072275A2 (en) * | 2018-11-27 | 2019-04-18 | Alibaba Group Holding Limited | SYSTEM AND METHOD FOR INFORMATION PROTECTION |
US10700850B2 (en) * | 2018-11-27 | 2020-06-30 | Alibaba Group Holding Limited | System and method for information protection |
-
2018
- 2018-08-13 KR KR1020247001616A patent/KR20240011260A/ko active Application Filing
- 2018-08-13 EP EP24150264.0A patent/EP4325770A3/en active Pending
- 2018-08-13 CN CN201880053433.XA patent/CN110999207B/zh active Active
- 2018-08-13 KR KR1020207005181A patent/KR102627049B1/ko active IP Right Grant
- 2018-08-13 EP EP18765195.5A patent/EP3669491B1/en active Active
- 2018-08-13 JP JP2020506804A patent/JP7202358B2/ja active Active
- 2018-08-13 WO PCT/IB2018/056094 patent/WO2019034986A1/en unknown
- 2018-08-13 SG SG11202000808WA patent/SG11202000808WA/en unknown
- 2018-08-13 US US16/639,099 patent/US11381389B2/en active Active
- 2018-08-13 CN CN202410582867.6A patent/CN118520513A/zh active Pending
- 2018-08-14 TW TW107128337A patent/TWI822693B/zh active
- 2018-08-14 TW TW112136001A patent/TW202403575A/zh unknown
-
2022
- 2022-06-23 US US17/847,976 patent/US20230013158A1/en active Pending
- 2022-12-23 JP JP2022206111A patent/JP7554493B2/ja active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1944906A2 (en) * | 1998-05-22 | 2008-07-16 | Certco Incorporated | Robust efficient distributed RSA-key generation |
CN101425902A (zh) * | 2008-11-12 | 2009-05-06 | 电子科技大学 | 一个具有前向安全的门限数字签名方法与系统 |
TW201424322A (zh) * | 2012-12-04 | 2014-06-16 | Cheng-Chung Lee | 驗證由簽章識別符所表示之數位簽章之裝置、系統及方法 |
US9489522B1 (en) * | 2013-03-13 | 2016-11-08 | Hrl Laboratories, Llc | Method for secure and resilient distributed generation of elliptic curve digital signature algorithm (ECDSA) based digital signatures with proactive security |
WO2015160839A1 (en) * | 2014-04-17 | 2015-10-22 | Hrl Laboratories, Llc | A method for secure and resilient distributed generation of elliptic curve digital signature algorithm (ecdsa) based digital signatures with proactive security |
CN106664205A (zh) * | 2014-04-17 | 2017-05-10 | 赫尔实验室有限公司 | 用于安全弹性分布式生成具有主动安全性的基于椭圆曲线数字签名算法(ecdsa)的数字签名的方法 |
US20170063559A1 (en) * | 2014-05-05 | 2017-03-02 | Sypris Electronics, Llc | Authentication system and device including physical unclonable function and threshold cryptography |
WO2016049406A1 (en) * | 2014-09-26 | 2016-03-31 | Technicolor Usa, Inc. | Method and apparatus for secure non-interactive threshold signatures |
CN107040380A (zh) * | 2017-06-13 | 2017-08-11 | 厦门大学 | 一种基于二进制域的椭圆曲线密码体制的改进模除方法 |
Non-Patent Citations (2)
Title |
---|
STEVEN GOLDFEDER, ET AL: "we securing bitcoin wallets via threshold signatures", PRINCETON * |
张本慧;唐元生;: "基于非齐次线性递归的门限多密钥共享方案的研究", 密码学报, no. 03 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116915416A (zh) * | 2023-09-14 | 2023-10-20 | 北京信安世纪科技股份有限公司 | 一种证书签名方法、装置以及一种证书获取方法、装置 |
CN116915416B (zh) * | 2023-09-14 | 2023-12-15 | 北京信安世纪科技股份有限公司 | 一种证书签名方法、装置以及一种证书获取方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3669491B1 (en) | 2024-02-07 |
SG11202000808WA (en) | 2020-02-27 |
US11381389B2 (en) | 2022-07-05 |
JP2020532168A (ja) | 2020-11-05 |
US20230013158A1 (en) | 2023-01-19 |
US20200213099A1 (en) | 2020-07-02 |
KR20240011260A (ko) | 2024-01-25 |
TWI822693B (zh) | 2023-11-21 |
KR102627049B1 (ko) | 2024-01-19 |
JP7554493B2 (ja) | 2024-09-20 |
TW201921888A (zh) | 2019-06-01 |
JP2023024683A (ja) | 2023-02-16 |
CN110999207B (zh) | 2024-05-31 |
EP4325770A2 (en) | 2024-02-21 |
KR20200035280A (ko) | 2020-04-02 |
CN118520513A (zh) | 2024-08-20 |
EP3669491A1 (en) | 2020-06-24 |
JP7202358B2 (ja) | 2023-01-11 |
TW202403575A (zh) | 2024-01-16 |
EP4325770A3 (en) | 2024-04-24 |
WO2019034986A1 (en) | 2019-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7554493B2 (ja) | 閾ボールトを生成する、コンピュータにより実施される方法 | |
US20230421375A1 (en) | Threshold digital signature method and system | |
CN111615810B (zh) | 获取数字签名的数据的计算机实现方法和系统 | |
CN111819815A (zh) | 用于转移对数字资产的控制的计算机实现的方法和系统 | |
Wright | A distribution protocol for dealerless secret distribution | |
Warren | ATIS 2010 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |