CN110999206A - 阈值数字签名方法及*** - Google Patents
阈值数字签名方法及*** Download PDFInfo
- Publication number
- CN110999206A CN110999206A CN201880053360.4A CN201880053360A CN110999206A CN 110999206 A CN110999206 A CN 110999206A CN 201880053360 A CN201880053360 A CN 201880053360A CN 110999206 A CN110999206 A CN 110999206A
- Authority
- CN
- China
- Prior art keywords
- shared
- polynomial function
- participant
- share
- private key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/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
- 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/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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/304—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy based on error correction codes, e.g. McEliece
-
- 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/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
- H04L9/3073—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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- 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/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/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)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Communication Control (AREA)
Abstract
公开了共享秘密值的方法。其包括将第一参与者(Pi)已知的第一秘密值的相应第一共享份额分配给多个第二参与者(Pj≠i),其中,第一共享份额通过至少一个包括私钥和公钥的私钥‑公钥对进行加密,公钥为椭圆曲线生成器点乘以私钥,需要第一阈值数量的第一共享份额以使第二参与者能够确定第一秘密值。从多个第二参与者中的每个第二参与者接收相应第二秘密值的至少一个第二共享份额,其中,通过至少一个包括私钥和公钥的私钥‑公钥对进行加密,公钥为椭圆曲线生成器点乘以私钥,需要第二阈值数量的第二共享份额以使除该第二参与者之外的参与者能够确定第二秘密值。根据多个第二共享份额形成第三秘密值的第三共享份额,其中,需要第三阈值数量的第三共享份额以使得能够确定第三秘密值。
Description
技术领域
本发明总体上涉及数据和基于计算机的资源的安全性。更具体地,本发明涉及加密货币和密码术,并且还涉及椭圆曲线密码术、ECDSA、阈值密码术。本发明可以用于在区块链实现的加密货币比如(例如)比特币(Bitcoin)方面产生优势但并不限于此,并且可以具有更广泛的适用性。在一个实施方式中,本发明可以被描述为提供了用于无经销商秘密分配的分配协议。
背景技术
在本文件中,使用术语“区块链(blockchain)”来包括所有形式的电子的、基于计算机的分布式账本。这些包括基于共识的区块链和交易链技术、许可及未许可的账本、共享账本及其变型。虽然已经提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币账本。虽然出于方便和说明的目的,本文中可能提到的是比特币,但应当指出的是,本发明不限于与比特币区块链一起使用,并且替代性的区块链实施方案和协议也落入本发明的范围内。
区块链是点对点的电子账本,该账本被实现为由区块构成的基于计算机的去中心化***,而该区块又由交易构成。每个交易是对区块链***中的参与者之间的数字资产的控制的转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。每个区块均包含前一区块的散列,使得这些区块被链接在一起,以构建对自区块链诞生之始就已被写入区块链的所有交易的永久性不可更改的记录。
去中心化的概念对比特币方法是基本的。与分布式或集中式***不同,去中心化***提供的优点是不存在单点故障。因此,去中心化***提供了更高级别的安全性和弹性。通过使用诸如椭圆曲线密码术和ECDSA之类的已知密码技术,可以进一步增强此安全性。
然而,尽管在提交本申请时,比特币协议本身已被证明对任何重大攻击都是有弹性的,但对交易所和钱包的攻击却补充或建立在比特币网络上。随着比特币价值的增加,更多事件比如涉及Mt Gox和Bitfinex的事件可能会在标准的集中式***中发生。
因此,需要一种进一步增强这种***的安全性的解决方案。本发明尤其提供了这样的优点。
发明内容
本发明提供了如所附权利要求书中限定的方法及***。
根据本发明的方面,提供了一种借助于密码***的公钥-私钥对的私钥对数字消息进行数字签名以提供能够通过公钥-私钥对的公钥进行验证的数字签名的方法,该方法包括:
接收所述数字消息的至少阈值数量的部分签名,其中,每个所述部分签名包括基于消息的相应第一部分和基于私钥的相应的共享份额的相应第二部分,其中,私钥对于私钥的所述阈值数量的共享份额是可访问的并且对于小于所述阈值数量的共享份额是不可访问的,其中,每个所述部分签名与第一多项式函数的相应值相对应,使得第一多项式函数对于所述阈值数量的部分签名是可访问的并且对于小于所述阈值数量的部分签名是不可访问的;以及
通过由所述部分签名的多个已知值确定的所述第一多项式函数的系数来,确定第一多项式函数,从而实现消息的数字签名。
通过借助于根据所述部分签名的多个已知值确定第一多项式函数的系数来确定所述第一多项式函数以实现消息的数字签名,这提供了提高该方法的计算效率的优点。
确定所述第一多项式函数的步骤可以包括执行误差校正算法以及使得能够使用诸如在诸如ADSL之类的电子数据通信中使用的常规解码器。
这提供了增强数字签名过程的准确性的优点。
确定所述第一多项式函数的步骤可以包括执行Berlekamp-Welch解码算法。
确定所述第一多项式函数的步骤可以包括:
确定误差***多项式函数和第二多项式函数,其中,第二多项式函数是所述第一多项式函数与所述误差***多项式函数的乘积;根据所述部分签名的多个已知值来确定所述第二多项式函数的系数和所述误差***多项式函数的系数;以及根据所述第二多项式函数和所述误差检测器多项式函数来确定所述第一多项式函数,以实现消息的数字签名。
根据本发明的另一方面,提供了一种借助于密码***的公钥-私钥对的私钥对数字消息进行数字签名以提供能够通过公钥-私钥对的公钥进行验证的数字签名的方法,该方法包括:
接收所述数字消息的至少阈值数量的部分签名,其中,每个所述部分签名包括:基于消息的相应第一部分、基于私钥的相应的共享份额的相应第二部分、以及与具有零常数项的第三多项式函数的相应值相对应的相应第三部分,其中,私钥对于私钥的所述阈值数量的共享份额是可访问的并且私钥对于小于所述阈值数量的共享份额是不可访问的,第三多项式函数对于第三多项式函数的所述阈值数量的共享份额是可访问的并且第三多项式函数对于小于所述阈值数量的共享份额是不可访问的,每个所述部分签名与第四多项式函数的相应值相对应,使得第四多项式函数对于所述阈值数量的部分签名是可访问的并且第四多项式函数对于小于所述阈值数量的部分签名是不可访问的;以及
确定第四多项式函数以实现消息的数字签名。
通过提供一种方法,在该方法中,每个部分签名包括与具有零常数项的第三多项式函数的相应值相对应的相应第三部分,其中,第三多项式函数对于第三多项式函数的所述阈值数量的共享份额是可访问的并且对于小于所述阈值数量的共享份额是不可访问的,这提供了以下优点:通过掩蔽数字签名过程中使用的私钥和/或任何临时密钥提高了方法的安全性,从而使那些密钥被未授权方所确定的风险降至最低。
至少一个所述部分签名的相应第三部分可以被添加到对应的第一部分和对应的第二部分。
每个所述部分签名还包括基于临时密钥的相应的共享份额的相应第四部分,其中,临时密钥对于所述临时密钥的所述阈值数量的所述共享份额是可访问的并且对于小于所述阈值数量的共享份额是不可访问的。
密码***可以是椭圆曲线密码***。
该方法还可以包括:
将为第一参与者所已知的第一秘密值的至少一个相应的第一共享份额分配给多个第二参与者中的每个第二参与者,其中,所述第一共享份额通过至少一个包括私钥和公钥的私钥-公钥对进行加密,公钥为椭圆曲线生成器点乘以私钥,其中,需要第一阈值数量的第一共享份额以使所述第二参与者能够确定第一秘密值;
从多个所述第二参与者中的每个第二参与者接收为所述第二参与者所已知的相应的第二秘密值的至少一个第二共享份额,其中,所述第二共享份额通过至少一个包括私钥和公钥的私钥-公钥对进行加密,公钥为椭圆曲线生成器点乘以私钥,并且需要第二阈值数量的第二共享份额以使除所述第二参与者之外的参与者能够确定第二秘密值;以及
根据多个所述第二共享份额形成第三秘密值的第三共享份额,其中,需要第三阈值数量的第三共享份额以使得能够确定第三秘密值。
通过根据多个所述第二共享份额形成第三秘密值的第三共享份额,其中,需要第三阈值数量的第三共享份额以使得能够确定第三秘密值,这提供了以下优点:使对第一秘密值和第二秘密值的访问最小化从而提高了该方法的安全性,其中,对第一秘密值和第二秘密值的访问最小化是因为不再需要与第一秘密值和第二秘密值相对应的私钥被公开或存储在存储器中。
第一阈值可以等于所述第二阈值,并且/或者,所述第二阈值可以等于所述第三阈值,并且/或者,所述第三阈值可以等于所述第一阈值。
该方法还可以包括启用所述第一参与者与多个所述第二参与者中的每个第二参与者之间的加密通信。
这提供了以下优点:通过对用于对不一致共享份额或可疑共享份额进行加密的加密密钥进行标识,而使不诚实的参与者能够被更容易地识别。
可以借助于由所述第一参与者和独立于所述第一参与者的所述多个第二参与者中的每个第二参与者确定的相应的公共秘密来启用加密通信。
这提供了增强***安全性的优点。
第一参与者可以更新私钥并更新与所述多个第二参与者中的每个第二参与者相关联的相应的公钥,并且所述多个第二参与者中的每个第二参与者可以更新相应的私钥并更新与所述第一参与者相关联的公钥。
可以基于在所述第一参与者和对应的所述第二参与者之间达成一致的数据来更新密钥。
这进一步增强了***的安全性。
可以借助于相应的Shamir秘密共享方案来创建所述第一秘密值的第一共享份额和所述第二秘密值的第二共享份额。
多个所述第三共享份额可以是第五多项式函数的相应值,并且第三秘密值可以通过从所述值的所述第三阈值数导出的第五多项式函数来确定。
该方法还可以包括将乘以椭圆曲线生成器点的所述第一共享份额传送给多个所述第二参与者中的每个第二参与者。
该方法还可以包括从多个所述第二参与者的每个第二参与者接收乘以椭圆曲线生成器点的至少一个相应的所述第二共享份额。
该方法还可以包括对直接从至少一个所述第二参与者接收的至少一个所述第二共享份额与从至少一个另外的所述第二参与者接收的并且乘以椭圆曲线生成器点的至少一个所述第二共享份额的一致性进行验证。
这提供了以下优点:使得能够在不公开私钥或共享份额的情况下检查从不同的第二参与者接收到的共享份额的一致性,从而使得能够在不包括方法的安全性的情况下忽略可疑的不可信参与者。
该方法还可以包括基于所述验证步骤来更新所述第三秘密值。
这提供了改善***安全性的优点。
至少一个所述第二共享份额可以是相应的第六多项式函数的值,并且对应的第二秘密值可以通过从所述值的对应的第二阈值数中导出的对应的第六多项式函数来确定。
该方法还可以包括从多个所述第二参与者中的每个第二参与者处接收相应的所述第六多项式函数的至少一个系数,该第六多项式函数乘以椭圆曲线生成器点。
这提供了以下优点:使得能够在不损害方法的安全性的情况下通过重构第二多项式函数来对由第一参与者分配的第一共享份额与从第二参与者接收到的并且乘以椭圆曲线生成器点的第一共享份额的一致性进行验证。
验证步骤可以包括根据乘以椭圆曲线生成器点的所述系数来重构乘以椭圆曲线生成器点的所述第六多项式函数。
该方法还可以包括对直接从所述第一参与者接收的所述第一共享份额与乘以所述椭圆形弯曲生成器点且从多个所述第二参与者接收的所述第一共享份额的一致性进行验证。
这提供了使得能够在不损害该方法的安全性的情况下识别潜在的不可信参与者的优点。
该方法还可以包括对所述第一秘密值与从多个所述第二参与者接收的并且乘以了所述椭圆曲线生成器点的多个所述第一共享份额的一致性进行验证。
该方法还可以包括基于所述验证步骤来更新所述第三秘密值。
验证步骤可以包括通过在应用于所述多个第二共享份额时提供所述第二秘密值的方法,从乘以了所述椭圆曲线生成器点的多个所述第二共享份额处,获得乘以了椭圆曲线生成器点的所述第二秘密值。
该方法还可以包括对乘以所述椭圆曲线生成器点并从一个所述第二参与者接收的所述第一共享份额与乘以所述椭圆曲线生成器点并从另一所述第二参与者接收的所述第一共享份额的一致性进行验证。
这还提供了使得能够在不损害该方法的安全性的情况下识别潜在的不可信参与者的优点。
该方法还可以包括从至少一个所述第二参与者接收具有值为零的第四秘密值的至少一个第四共享份额,其中,所述第四共享份额通过至少一个包括私钥和公钥的私钥-公钥对进行加密,公钥为椭圆曲线生成器点乘以私钥。
该方法还可以包括以下步骤:将具有值为零的第四秘密值的相应的第四共享份额分配给多个第二参与者,其中,所述第四共享份额通过至少一个包括私钥和公钥的私钥-公钥对进行加密,公钥为椭圆曲线生成器点乘以私钥。
这提供了以下优点:使共享份额和/或私钥能够被更新从而使非安全或不一致的参与者能够被从参与中移除。
该方法还可以包括从至少一个第三参与者接收具有值为零的第四秘密值的至少一个第四共享份额,所述第三参与者不同于所述第二参与者或每个所述第二参与者,其中,所述第四共享份额通过至少一个包括私钥和公钥的私钥-公钥对进行加密,公钥为椭圆曲线生成器点乘以私钥。
这提供了以下优点:使外部Oracle能够被引入以实现随机性的引入,从而提高了***的安全性。
该方法还可以包括对乘以所述椭圆曲线生成器点的多个所述第四共享份额与值为零的第四秘密值的一致性进行验证。
该方法还可以包括基于所述验证步骤来更新所述第三秘密值。
验证步骤可以包括通过在应用于所述多个第四共享份额时提供所述第四秘密值的方法,从乘以了所述椭圆曲线生成器点的多个所述第四共享份额处,获得乘以了椭圆曲线生成器点的所述第四秘密值。
该方法还可以包括根据所述第三共享份额和所述第四共享份额形成所述第三秘密值的第五共享份额,其中,需要第四阈值数量的第五共享份额以使得能够确定第三秘密值。
该消息可能是区块链交易。
根据本发明的另一方面,提供了一种用于执行上述方法的计算机实现的***。
本发明的这些方面和其他方面将从本文中所描述的各实施方式中变得明显,并且将参照所述各实施方式加以阐明。
附图说明
现在将仅通过示例的方式并参照附图对本发明的实施方式进行描述,在附图中:
图1示出了实施本发明的椭圆曲线数字签名过程的一部分;
图2示出了椭圆曲线数字签名过程的另一部分;
图3示出了借助于实施本发明的方法所分配的共享份额的重构层次;
图4示出了用于本发明的方法的区块链交易的脚本的表示;
图5示出了与图4的脚本一起使用的第一签名的细节;
图6A示出了与图4的脚本一起使用的第二签名的第一实施方式的细节;
图6B示出了与图4的脚本一起使用的第二签名的第一实施方式的细节;以及
图7示出了用于执行实施本发明的方法的Berlekamp-Welch解码器。
具体实施方式
概览
本发明提供了一种新颖的和有创造力的技术,该技术可以用于增强需要保护以防止未经授权的访问的计算机***和资源的安全性。在本文件中,介绍了与加密货币相关***包括比特币有关的实施方案、用例和说明。然而,重要的是,应当指出本发明具有更广泛的适用性并且可以用于保护其他类型的***和基于计算机的资源,并且本发明不限于此。
本发明的各实施方式通过允许添加基于组的阈值密码术以及无需经销商的部署能力而提供了改进的安全性。各实施方式还支持消息的非交互式签署,并且提供将私钥划分为可以分配给个人和组的共享份额(Shares)。此外,本发明提供了一种创建了分布式密钥生成***的解决方案,该分布式密钥生成***消除了任何集中式控制列表的必要性,从而使欺诈或攻击的任何威胁降至最低。在用于DSA的基于阈值的解决方案到ECDSA的应用中,本发明提供了一种减轻了任何单点故障的完全分布式签名***。
当用于Bitcoin(比特币)或替换物时,本发明可以与涉及CLTV钱包和Multisig钱包的检索方案相结合,以得到部署加密货币的无限可扩展和安全的装置。使用基于组和环的***,本发明可以被用来实现针对已发行交易的盲签名。
本申请公开了一种与比特币完全兼容的基于阈值的无经销商私钥分配***。该***建立在与部署在比特币钱包内的传统个人签署***有所不同的组签名方案的基础上。在被部署时,该***具有可扩展性和鲁棒性,从而可容忍误差和恶意对手。该***支持经销商***和无经销商***这两者并且以无限灵活的分配组合进行部署。
各个参与方可以充当单个参与者,或者组合地充当经销商,该经销商将他们的受保护密钥切片的切片分配在机器上以用于安全性和可恢复性,或者以组的形式分配以用于角色和访问控制列表的基于投票阈值的部署。
对于切片可以被分割多远的深度没有限制。这个复杂性问题需要针对不同的部署进行权衡。以这种方式,由于可以使用该方法对外部参与者隐藏签署和交易的记录,所有参与者都具有将在后续论文中呈现的扩展,甚至来自组内的参与者也是如此,因此本发明的各实施方式将一定程度的匿名性和合理的可否认性引入到比特币交易中,从而增加了对使用者的匿名保护的标准。
Ibrahim等人于[2003]年开发了初始的鲁棒阈值ECDSA方案。以下协议是对Gennaro等人于[1996]年引入的阈值DSS的椭圆曲线形式的进一步扩展。
表1定义
群体数学的使用允许创建可验证的秘密共享方案(VSS),其扩展了Shamir[1979]在秘密隐藏中的工作以及Feldman[1987]和Pedersen[1992]从RSA和DSA方案的工作,使得其可以在诸如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]引入了面向组的密码术的概念。该过程允许参与者以仅允许参与者的选定子集将消息解密的方式将消息发送给一组人。在***中,如果发件人必须使用公钥知道成员,则认为成员是已知的,并且如果对于独立于成员保持的组存在单个公钥,则该组是匿名的。本发明结合了两种方法,并且允许已知和匿名的发送者和签名者同时存在于组中。
本发明
对于具有大阶素数且在素数域上定义了n阶基点G∈曲线的任何椭圆曲线(曲线),可以创建一个***,该***允许将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。在该可选场景中,可以使用相同的协议来生成每个密钥切片。例如,如果存在m个或n个主切片需求,则也可以使用m'个或n'个阈值条件来生成和管理底层密钥切片中的每个底层密钥切片。
使用该***的参与者将能够添加外部Oracle,该Oracle除了将随机性注入协议中之外别无其他。具有m'个密钥切片断(其中,m'<n-1)的使用者可以选择基于他们所持有的密钥切片断来重新创建和处理他们的签名解决方案,或者可以引入除了引入随机性之外的不必要的外部Oracle。
为了鲁棒性和安全性,每个切片可以同样地被分割。密钥切片可以被分配,使得使用者具有在诸如移动电话或智能卡之类的外部设备上的切片并具有在计算机上运行的软件程序,使得它们将需要源的组合来创建部分签名。
重要的是,基于每次使用密钥时都改变的随机值来产生唯一的随机临时密钥Dk,或者将可能使用该信息来重新创建私钥dA。
公开签署
使用该协议进行交易签署的主要目的是启用比特币交易的分布式签署。参与者可以私下维护尚未发布到区块链的任何交易。因此,如果协调参与者p(c)在任何情况下都无法获得成功签署交易所需的票数,则无需创建新的比特币交易。如果密钥切片本身对于阈值是安全的,则任何已结算交易的所有权都将保持安全。
如果***部署良好,则损害多达(k-1)个参与者的能力使得***可以安全地受到地域阈值的攻击。当与周期性密钥更新协议(算法2)耦合时,本发明的各实施方式可以承受侧信道攻击和存储器泄露。
本发明的方法和实施方案
由于本发明的实施方式基于分层推导使用ECC对需要在参与者之间发送的秘密信息进行加密,例如如国际专利出版物WO 2017/145016中所公开的,因此将所有消息整理到发送给所有使用者的单个数据包中使得在必要时可以针对潜在地受到威胁或敌对的参与者进行验证是既可能又明智的。
签名生成是由协调参与者p(c)提议的。默认情况下,任何密钥切片都可以充当协调参与者,并且要求归结为协议的单独实施方案。下面记载了所使用的算法,稍后的部分提供关于其部署的细节。
算法1密钥生成
域参数(曲线、基数n、生成器G)
输入:不适用
输出:公钥QA
私钥共享份额dA(1),dA(2),…,dA(j)
对于来自(j)个参与者的k个切片的阈值,构造了与参与者(i)和被指定为参与者(h)的(j-1)个参与者相关联的构造的密钥段dA(i),参与者(h)是与参与者(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)的公钥[Wright,2016]对与参与者P(h)——其中,h={1,…,(i-1),(i+1),…,j}——的第一共享份额进行加密,并且针对参与者P(h)交换值以进行解密。每个参与者Pi例如通过国际专利申请WO 2017/145010中公开的方法与每个其他参与者Pj建立相应的安全加密通信信道。
椭圆曲线方程: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:而言都可以表示为(b,b1,b2,…),如果bG=[b1G+b2G+…]modp,则b=[b1+b2+…]modn。此外,如果bG=[b1b2…]Gmodp,则b=[b1b2…]modn。
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)的椭圆曲线加密版本上执行操作以恢复Ga0 (i),其中,如果对fi(h)的未加密版本执行该操作,则将恢复秘密值a0 (i)。因此,在Shamir秘密共享方案的情况下,系数bh表示从秘密的对应共享份额中恢复秘密所需的拉格朗日插值系数。
如果不一致,则参与者拒绝协议并重新开始。另外,由于每个参与者Pj通过其自己的加密通信信道与参与者Pi进行通信,因此可以识别哪个参与者Pj与任何不一致的共享相关联。
7)参与者p(i)现在可以按下式计算其共享份额dA(i):
并且其中,运算Exp-Interpolate()被定义为从椭圆曲线加密共享份额中恢复椭圆曲线加密秘密的运算。该运算可以更详细地定义如下。
如果{ω1,…,ω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既可以用于更新私钥又可以用于向协议中添加随机性。
使用国际专利出版物WO 2017/145016的格式的密钥,该过程可以导致重新计算分层子密钥,而无需重构或者甚至计算私钥的存在。以这种方式,可以构造比特币地址和私钥切片的分层结构,当分层结构被正确地部署时将可以消除如过去已发生的任何大规模欺诈或数据库盗用。
1)每个参与者均选择次数(k-1)服从于零的随机多项式作为其自由项。这类似于算法1,但是参与者必须对所有其他参与者的选定秘密为零进行验证。
使用该等式,所有的活动参与者都会验证该函数:
类比参见Feldman(1987)。
2)dA(i)'=dA(i)+zi
3)返回:dA(i)′
该算法的结果是与原始私钥相关联的新密钥共享份额。该算法的变型使得能够增加第一算法的随机性或者进行重新共享练习,从而无需改变可能的比特币地址就可以生成新的密钥切片。以这种方式,本发明允许组在不改变底层私钥的情况下附加地掩蔽私钥共享份额。该过程可以用于在不改变底层的比特币地址和私钥的情况下使与继续使用和部署各个密钥共享份额相关联的任何潜在的密钥泄漏减至最小。
算法3签名生成
域参数:曲线、基数n、生成器G
输入:待签署的消息e=H(m)
A)分布式密钥生成
1)使用算法1生成临时密钥共享份额:
2)使用算法1生成掩码共享份额:
αi←Zn
3)使用算法2生成掩码共享份额:
通过使用次数2(k-1)的多项式执行算法2两次。在这些协议中创建的共享份额表示为和这些共享份额被用作添加剂掩膜。多项式必须是2(k-1)次,这是因为被掩蔽的数字涉及(k-1)次的两个多项式的乘积。这使恢复秘密所需的所需共享份额数量增加了一倍。
b和c的共享份额则由参与者保密。
B)签名生成
4)e=H(m)验证消息m的散列
5)广播
θi=Dk(i)αi+βimodn
以及
ωi=G×αi
其中,运算μ=Interpolate(υ1,…,υi)modn被定义为从共享份额中恢复秘密的运算。该运算可以更详细地定义如下。
在{υ1,…,υn}(j≥(2k-1))形成集合使得最多(k-1)为空并且所有残差值都在(k-1)次多项式F(.)上的情况下,则μ=F(0)。
9)r=rx=Rxmodn
如果r=0,请重新开始(即,从初始分配开始)
10)广播Si=Dk(i)(e+DA(i)r)+Cimodn
11)S=Interpolate(si,…,sn)modn S=Interpolate(s1,…,sn)
如果s=0从头开始重做算法3(A.1)
12)返回(r,s)
13)在比特币中,用(r,s)对重构交易以形成标准交易
图7示出了常规的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),因此Q(ai)和E(ai)的系数可以确定是否n≥2e+k–1。如果可以确定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两次。
b和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(v1,…,υj)modn
Interpolate()[2]:
在{υ1,…,υ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的“拉格朗日插值公式”《观测演算:数值数学专论》第4版中的第17节.纽约:多佛,1967年第28-30页,以及https://jeremykun.com/2015/09/07/welch-berlekamp/
G.计算θ=Exp-Interpolate(ω1,…ωj)
Exp-Interpolate()[10]:
如果{ω1,…,ω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=Rxmodq,如果r=0,请转到步骤A。
每个参与者p(i)在步骤J中计算其切片ri。如果协调者p(c)已收到阈值数量的响应,则可以使用这些值来重构s。
如果未从Pi请求/接收到响应,则将所使用的值设置为空值。
K.计算s=Interpolate(s1,…sn)modn)
如果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假设的组织结构
安全多方计算
具有n个参与者p(1),...,p(i),...,p(n)的安全多方函数计算是基于评估函数的需要而定的一个问题,该函数涉及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(i:1...n)和y(i:1...n)由参与者p(i)保持机密性的同时计算总和x+y。
按照简单乘法的过程,每个参与者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()例程,每个参与者可以从收集的值μi中计算返回值μ的值μ=x(i)y(i)+z(i)。然后,每个参与者可以计算μ-1modn的值。
这些值足以使得任何参与者p(i)可以计算在次数(2k-1)的多项式上使用ζi=γiμ-1的的相关共享份额。Berlekamp-Welch解码方案[Berlekamp,1968]提供了几种可以用于完成该过程的方法之一。
分配
以可验证和可证明的方式签署交易的能力提供了私下证明所有权、甚至放弃或交换比特币私钥和相关联的比特币地址的所有权而无需在区块链上公开地移动任何东西的机会。以此方式,可以为比特币地址提供资金,并且该地址的内容可以被转移或出售而不离开公共记录。由于该过程是阈值***,因此可以安全地实现密钥切片的分配,而无需在区块链上记录的进一步结算。
通过这种方式,可以将已结算在区块链上的票据的所有权与该票据的交易过程分开。
CLTV
Bitcoin消息或更常见的用语即交易可以在包括CLTV[BIP65]条目的情况下创建。通过这种添加,即使在所有密钥切片灾难性丢失的情况下,或者如果来自实体的多个切片被认为是不可信任的或以不允许以最小阈值安全重构签名的方式丢失,也可以使交易可恢复。
这在实体正在使用第三方服务并且期望确保该服务不能保持或拒绝对密钥的访问的情况下也是可能的。在构造具有基于时间的故障保险的比特币交易时,使用者知道恶意第三方或受损的交换站点或银行不能将它们外送以访问它们的密钥。作为最坏的情况,损害到灾难性级别将导致基于时间的交易反转到预定义地址。该预定地址可以使用本申请中公开的协议来创建。这样,可以构造一系列不容易受损的交易和密钥。
安全注意事项
Benger等人(2014年)提供了一个使用闪存和重载方法进行ECDSA私钥恢复的示例。这种情况仅是对***RAM和缓存的攻击的一个示例。这些方法在重构私钥时就不需要使用Shamir SSS[1979]这样的程序。此外,在任何时候都重构私钥的任何情况下,都引入了信任要求。在这种情况下,有必要依赖于持有私钥的实体的***和过程。
即使可信方不是恶意的,也有必要依赖其进程。从最近的许多妥协中可以看出,这种对重构私钥的依赖为攻击提供了途径。
作为现有ECDSA实施方案的***式替换以及完全透明的并与当前比特币协议兼容,其实施方案不需要硬分叉或软分叉,并且该实施方案与任何当前交易都没有区别。本发明可以将个人视为单独的参与者,从而允许使用恢复功能对密钥进行组签名。作为示例,可以使用四个密钥切片来实现两个方案中的两个,其中,在线钱包提供者或交易所维护两个密钥切片,而最终使用者维护两个切片。交易所和使用者将各自具有对其密钥切片的两个过程中的两个,然后在需要时将彼此结合使用这两个过程来对消息进行安全签署。
参照图4,用于在诸如比特币交易之类的区块链交易中使用的脚本400需要第一签名410和第二签名420中的每一者,以便执行交易。
现在参照图5,借助于上面公开的算法1,图4的交易的第一签名410借助于上面公开的算法1而被分成4的3的多重签名布置,其中,需要4个密钥共享份额中的任意3个密钥共享份额以实现图4的交易的第一签名410。4个密钥共享份额被分布成使得使用者具有密钥共享份额510,交换机520的两个分离的实体(例如,交易所功能及其清算所功能)每个具有相应的密钥共享份额530、540,并且单独的托管操作具有密钥共享份额550。
如图6A所示,图4的交易的第二签名420借助于上述算法1或如WO 2017/145010中所述的方法而被分成3的2的多重签名布置,其中,需要3个密钥共享份额中的任意2个密钥共享份额以实现图4的交易的第二签名420。3个密钥共享份额被分布成使得具有图4的交易的第一签名410的密钥共享份额510的使用者还具有存储在移动电话上的密钥共享份额610和存储在智能卡上的密钥共享份额620,而图5的交换机520——具有图4的交易的第一签名410的密钥共享份额530、540——还具有图4的交易的第二签名420的密钥共享份额630。通过以这种方式在各方之间分配图4的交易的单独签名410、420的密钥,这通过使得在任何方之间的协作实现未授权签名明显更加困难而提高了***的安全性,而不会显著增加实现这种安全性提高所需的资源量。
图6B示出了图6A的布置的替代性实施方式,其中,该实施方式共有的特征用相同的附图标记表示。在图6B的布置中,图6A的实施方式的密钥共享份额630可以由一对密钥共享份额640、650代替,密钥共享份额640保留在图5的交换机520中,同时用单独的实体比如单独的托管操作来控制密钥共享份额650。
结束语
本发明形成了比特币寻求通过引入组签名过程来实现的基础。添加容错签名***与分布式密钥创建***的耦合消除了所有集中和信任要求。
此外,引入隐含分散的***允许创建更鲁棒和有弹性的协议。ECDSA[Johnson,2001]和Shamir的SSS[Shamir,1979]之间的兼容性允许本发明引入一种***,该***用新的可验证的秘密共享方案扩展比特币。该***比Feldman[Feldman,1987]或Pedersen[Pedersen,1992]所得到的任何***都有效得多,同时在安全性丝毫不减。
在本申请中,已经描述了一种能够扩展比特币的功能而无需改变基本协议的***。使用本发明具有以下优点:
1.选择或分配密钥秘密不再需要可信第三方,
2.可以创建不依赖第三方信任的分布式银行交易***,
3.每个成员或成员组可以独立地验证所持有的秘密公钥的共享份额与所宣传的比特币地址和公钥是否相对应,
4.存在协议来刷新私钥切片,以减轻窃听和相关攻击的影响,并且
5.交易和消息的组签名不需要可信第三方。
由于本发明避免了敏感数据永远出现在存储器中,因此完全解决了许多现存的安全风险。
参考文献
1)Bar-Ilan,J.Beaver.恒定轮数中的非密码容错计算.第八届PODC大会.1989,201-209页.
2)Berlekamp,Elwyn R(1968).代数编码理论.纽约:麦格劳希尔出版社.
3)Benger,N.,van de Pol,J.,Smart,N.P.,Yarom,Y.哦,啊……只是一点点:少量的侧信道可以走很长一段路.Batina,L.,Robshaw,M.(编辑).密码硬件和嵌入式***|CHES2014.计算机科学讲义.施普林格出版社(2014).第8731卷:第75-92页.
4)Ben-Or,M.,Goldwasser,S.,Wigderson,A.非密码容错分布式计算的完备性定理.第二十届ACM年度计算机理论研讨会论文集.美国纽约:STOC’88,ACM出版社,(1988):第1-10页.
5)BIP 65OP_CHECKLOCKTIMEVERIFY https://github.com/bitcoin/bips/blob/ master/bip-0065.mediawiki.
6)Chaum,David(1983).无法追踪付款的盲签名(PDF).密码的密码术进展.第82卷(3期):第199–203页.
7)Dawson,E.;Donovan,D.(1994).Shamir秘密共享计划的广度.计算机与安全.第13卷:第69–78页.
8)Desmedt.Yuo(1987)面向社会和群体的密码术.新概念.有关密码学发展的密码学技术的理论和应用的会议(CRYPTO'87).Carl Pomerance(编辑).英国伦敦.英国:施普林格出版社.第120-127页.
9)Feldman.P.非交互式可验证秘密共享的实用方案.第28届IEEE计算机科学基础年度研讨会论文集.1987年:第427-437页.
10)Gennaro,R.,Jarecki,S.,Krawczyk,H.,Rabin,T.鲁棒的阈值DSS签名.第十五届国际密码技术理论与应用国际会议论文集.柏林.海德堡:EUROCRYPT’96.施普林格出版社,(1996):第354–371页.
11)Ibrahim,M.,Ali,I.,Ibrahim,I.,El-sawi,A.提供了新的可验证的秘密共享方案的鲁棒的阈值椭圆曲线数字签名.电路与***.2003年IEEE第46届中西部研讨会.(2003),第1卷:第276–280页.
12)Johnson,D.,Menezes,A.,Vanstone,S.椭圆曲线数字签名算法(ecdsa).国际信息安全杂志.(2001),第1卷(1期):第36–63页.
13)Kapoor,Vivek,Vivek Sonny Abraham和Ramesh Singh.椭圆曲线密码术.Ubiquity 2008.(2008)5月:1-8.
14)Knuth,D.E.(1997).计算机程序设计的艺术,II:半数值算法(第3版).Addison-Wesley出版社:第505页.
15)Koblitz,N.有限域数字签名算法的椭圆曲线实现.密码术–密码术'98的进展.计算机科学课程讲义.施普林格出版社.1998.第1462卷:第327-337页.
16)Liu,C.L.(1968).组合数学导论.纽约:麦格劳希尔集团.
17)FIPS PUB 186-4.数字签名标准(DSS).国家标准技术研究院:FIPS PUB 186-4,(2003).
18)Pedersen,T.非交互式和信息理论的安全可验证的秘密共享.Feigenbaum,J.(编辑).密码术—密码术’91的进展.计算机科学讲义.施普林格出版社(1992).第576卷:第129–140页.
19)Rabin T.&Ben-Or.M.(1989).可验证的秘密共享和诚实多数的多方协议.第21届ACM计算理论研讨会.1989年.第73--85页.
20)Shamir,Adi(1979).如何共享秘密.ACM通讯.第22卷(11期):第612–613页.
21)Wright,C.&Savanah,S.(2016).确定两个区块链节点的公共秘密以安全地交换信息.英国:申请号WO 2017/145016.2016年.
应当指出的是,上述实施方式说明而非限制本发明,并且本领域技术人员将能够在不脱离由所附权利要求限定的本发明的范围的情况下设计许多替代性实施方式。在权利要求中,置于括号中的任何附图标记不应被解释为限制权利要求。用语“包括”和“包含”等不排除除了在任何权利要求或说明书中作为整体列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括”表示“包括或由......构成”,并且“包含”表示“包含或由......构成”。元件的单数引用不排除这些元件的复数引用,反之亦然。本发明可以借助于包括若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的设备权利要求中,这些装置中的若干个装置可以由同一个硬件项实现。在相互不同的从属权利要求中陈述某些手段的仅有事实并不表示这些手段的组合不能用于获益。
Claims (34)
1.一种借助于密码***的公钥-私钥对的私钥对数字消息进行数字化签名以提供数字签名的方法,所述数字签名能够通过所述公钥-私钥对的公钥进行验证,所述方法包括:
接收所述数字消息的至少阈值数量的部分签名,其中,每个所述部分签名包括相应第一部分和相应第二部分,所述相应第一部分基于所述消息,所述相应第二部分基于所述私钥的相应共享份额,其中,所述私钥对于所述私钥的所述阈值数量的共享份额是可访问的,并且所述私钥对于小于所述阈值数量的共享份额是不可访问的,其中,每个所述部分签名与第一多项式函数的相应值相对应,使得所述第一多项式函数对于所述阈值数量的部分签名是可访问的并且所述第一多项式函数对于小于所述阈值数量的部分签名是不可访问的;以及
通过由所述部分签名的多个已知值确定的所述第一多项式函数的系数,确定所述第一多项式函数从而实现所述消息的数字签名。
2.根据权利要求1的方法,其中,确定所述第一多项式函数的步骤包括执行误差校正算法。
3.根据权利要求1或2所述的方法,其中,确定所述第一多项式函数的步骤包括执行Berlekamp-Welch解码算法。
4.根据前述权利要求中的任一项所述的方法,其中,确定所述第一多项式函数的步骤包括:
确定误差***多项式函数和第二多项式函数,其中,所述第二多项式函数是所述第一多项式函数与所述误差***多项式函数的乘积;
根据所述部分签名的所述多个已知值来确定所述第二多项式函数的系数和所述误差***多项式函数的系数;以及
根据所述第二多项式函数和所述误差检测器多项式函数来确定所述第一多项式函数,以实现所述消息的数字签名。
5.一种借助于密码***的公钥-私钥对的私钥对数字消息进行数字化签名以提供数字签名的方法,所述数字签名能够通过所述公钥-私钥对的公钥进行验证,所述方法包括:
接收所述数字消息的至少阈值数量的部分签名,其中,每个所述部分签名包括:
相应第一部分和相应第二部分,所述相应第一部分基于所述消息,所述相应第二部分基于所述私钥的相应共享份额,以及
相应第三部分,所述相应第三部分与具有零常数项的第三多项式函数的相应值相对应,
其中,所述私钥对于所述私钥的阈值数量的共享份额是可访问的并且所述私钥对于小于所述阈值数量的共享份额是不可访问的,所述第三多项式函数对于所述第三多项式函数的阈值数量的共享份额是可访问的并且所述第三多项式函数对于小于所述阈值数量的共享份额是不可访问的,每个所述部分签名与第四多项式函数的相应值相对应,使得所述第四多项式函数对于所述阈值数量的部分签名是可访问的并且所述第四多项式函数对于小于所述阈值数量的部分签名是不可访问的;以及
确定所述第四多项式函数以实现所述消息的数字签名。
6.根据权利要求5所述的方法,其中,将至少一个所述部分签名的所述相应第三部分添加到对应的所述第一部分和对应的所述第二部分。
7.根据前述权利要求中的任一项所述的方法,其中,每个所述部分签名还包括相应第四部分,所述相应第四部分基于临时密钥的相应共享份额,其中,所述临时密钥对于所述临时密钥的阈值数量的所述共享份额是可访问的并且所述临时密钥对于小于所述阈值数量的共享份额是不可访问的。
8.根据前述权利要求中的任一项所述的方法,其中,所述密码***是椭圆曲线密码***。
9.根据权利要求8所述的方法,还包括:
将为第一参与者所已知的第一秘密值的至少一个相应的第一共享份额分配给多个第二参与者中的每个第二参与者,其中,所述第一共享份额通过至少一个包括私钥和公钥的私钥-公钥对进行加密,所述公钥为椭圆曲线生成器点乘以所述私钥,其中,需要第一阈值数量的第一共享份额以使所述第二参与者能够确定所述第一秘密值;
从多个所述第二参与者中的每个第二参与者接收为所述第二参与者所已知的相应的第二秘密值的至少一个第二共享份额,其中,所述第二共享份额通过至少一个包括私钥和公钥的私钥-公钥对进行加密,所述公钥为椭圆曲线生成器点乘以所述私钥,并且需要第二阈值数量的第二共享份额以使除了所述第二参与者之外的参与者能够确定所述第二秘密值;以及
根据多个所述第二共享份额形成第三秘密值的第三共享份额,其中,需要第三阈值数量的第三共享份额以使得能够确定所述第三秘密值。
10.根据权利要求9所述的方法,其中,
所述第一阈值等于所述第二阈值,并且/或者
所述第二阈值等于所述第三阈值,并且/或者
所述第三阈值等于所述第一阈值。
11.根据权利要求9或10所述的方法,还包括:启用所述第一参与者与多个所述第二参与者中的每个第二参与者之间的加密通信。
12.根据权利要求11所述的方法,其中,所述加密通信通过相应的公共秘密来启用,所述相应的公共秘密根据由所述第一参与者和独立于所述第一参与者的所述多个第二参与者中的每个第二参与者来确定。
13.根据权利要求12所述的方法,其中,所述第一参与者更新私钥并且更新与所述多个第二参与者中的每个第二参与者相关联的相应的公钥,以及所述多个第二参与者中的每个第二参与者更新相应的私钥并且更新与所述第一参与者相关联的公钥。
14.根据权利要求13所述的方法,其中,基于在所述第一参与者与对应的所述第二参与者之间达成一致的数据来更新所述密钥。
15.根据权利要求9至14中的任一项所述的方法,其中,借助于相应的Shamir秘密共享方案来创建所述第一秘密值的所述第一共享份额和所述第二秘密值的所述第二共享份额。
16.根据权利要求9至15中的任一项所述的方法,其中,多个所述第三共享份额是第五多项式函数的相应值,并且所述第三秘密值能够通过所述第五多项式函数来确定,所述所述第五多项式函数由所述值的所述第三阈值数导出。
17.根据权利要求9至16中的任一项所述的方法,还包括:将乘以椭圆曲线生成器点的相应的所述第一共享份额传送给多个所述第二参与者中的每个第二参与者。
18.根据权利要求9至17中的任一项所述的方法,还包括:从多个所述第二参与者中的每个第二参与者接收乘以椭圆曲线生成器点的至少一个相应的所述第二共享份额。
19.根据权利要求18所述的方法,还包括:对直接从至少一个所述第二参与者接收的至少一个所述第二共享份额与从至少一个另外的所述第二参与者接收的并且乘以所述椭圆曲线生成器点的至少一个所述第二共享份额的一致性进行验证。
20.根据权利要求19所述的方法,还包括:基于所述验证步骤来更新所述第三秘密值。
21.根据权利要求18至20中的任一项所述的方法,其中,至少一个所述第二共享份额是相应的第六多项式函数的值,并且对应的所述第二秘密值能够通过对应的所述第六多项式函数来确定,所述第六多项式函数从所述值的对应的所述第二阈值数导出。
22.根据权利要求21所述的方法,还包括:从多个所述第二参与者中的每个第二参与者处,接收相应的乘以了椭圆曲线生成器点的所述第六多项式函数的至少一个系数。
23.根据权利要求19和22所述的方法,其中,所述验证步骤包括:根据乘以所述椭圆曲线生成器点的所述系数,重构出乘以了所述椭圆曲线生成器点的所述第六多项式函数。
24.根据权利要求18至23中的任一项所述的方法,还包括:验证所述第一秘密值与接收的多个所述第一共享份额的一致性,其中,所述多个所述第一共享份额来自多个所述第二参与者并且乘以了所述椭圆曲线生成器点。
25.根据权利要求24所述的方法,还包括:基于所述验证步骤来更新所述第三秘密值。
26.根据权利要求24或25所述的方法,其中,所述验证步骤包括:通过一种在应用于所述多个第二共享份额时提供所述第二秘密值的方法,从乘以了所述椭圆曲线生成器点的多个所述第二共享份额处,获得乘以了所述椭圆曲线生成器点的所述第二秘密值。
27.根据权利要求9至26中的任一项所述的方法,还包括:接收来自至少一个所述第二参与者的具有值为零的第四秘密值的至少一个第四共享份额,其中,所述第四共享份额通过至少一个包括了私钥和公钥的私钥-公钥对进行加密,所述公钥为椭圆曲线生成器点乘以所述私钥。
28.根据权利要求9至27中的任一项所述的方法,还包括:从至少一个第三参与者,接收具有值为零的第四秘密值的至少一个第四共享份额,所述第三参与者不同于所述第二参与者或每个所述第二参与者,其中,所述第四共享份额通过至少一个包括了私钥和公钥的私钥-公钥对进行加密,所述公钥为椭圆曲线生成器点乘以所述私钥。
29.根据权利要求27或28所述的方法,还包括:对乘以了所述椭圆曲线生成器点的多个所述第四共享份额与值为零的第四秘密值的一致性进行验证。
30.根据权利要求29所述的方法,还包括:基于所述验证步骤来更新所述第三秘密值。
31.根据权利要求29或30所述的方法,其中,所述验证步骤包括:通过一种在应用于所述多个第四共享份额时提供所述第四秘密值的方法,从乘以了所述椭圆曲线生成器点的多个所述第四共享份额处,获得乘以了所述椭圆曲线生成器点的所述第四秘密值。
32.根据权利要求27至31中的任一项所述的方法,还包括:根据所述第三共享份额和所述第四共享份额形成所述第三秘密值的第五共享份额,其中,需要第四阈值数量的第五共享份额以使得能够确定所述第三秘密值。
33.根据前述权利要求中的任一项所述的方法,其中,所述消息是区块链交易。
34.一种执行根据前述权利要求中的任一项所述的方法的计算机实现的***。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IBPCT/IB2017/054961 | 2017-08-15 | ||
GB1713064.2 | 2017-08-15 | ||
GBGB1713064.2A GB201713064D0 (en) | 2017-08-15 | 2017-08-15 | Computer-implemented methods and systems |
IB2017054961 | 2017-08-15 | ||
IBPCT/IB2017/057782 | 2017-12-11 | ||
IB2017057782 | 2017-12-11 | ||
PCT/IB2018/055604 WO2019034951A1 (en) | 2017-08-15 | 2018-07-26 | METHOD AND SYSTEM FOR DIGITAL THRESHOLD SIGNATURE |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110999206A true CN110999206A (zh) | 2020-04-10 |
Family
ID=63254756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880053360.4A Pending CN110999206A (zh) | 2017-08-15 | 2018-07-26 | 阈值数字签名方法及*** |
Country Status (9)
Country | Link |
---|---|
US (2) | US11671255B2 (zh) |
EP (1) | EP3669490A1 (zh) |
JP (2) | JP7301039B2 (zh) |
KR (1) | KR102627039B1 (zh) |
CN (1) | CN110999206A (zh) |
SG (1) | SG11202000804PA (zh) |
TW (1) | TWI797147B (zh) |
WO (1) | WO2019034951A1 (zh) |
ZA (1) | ZA202000644B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115152177A (zh) * | 2020-07-30 | 2022-10-04 | 戴普实验室有限公司 | 提供机密知识的专门证明的***和方法 |
CN116668024A (zh) * | 2023-07-28 | 2023-08-29 | 杭州趣链科技有限公司 | 一种分布式密钥的生成方法、装置、电子设备和存储介质 |
CN117134910A (zh) * | 2023-10-24 | 2023-11-28 | 深圳市纽创信安科技开发有限公司 | 一种密钥共享方法、***及存储介质 |
CN117834112A (zh) * | 2023-12-13 | 2024-04-05 | 武汉大学 | 基于变色龙哈希函数的多方授权可编辑区块链方法及*** |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10505723B1 (en) | 2017-04-26 | 2019-12-10 | Wells Fargo Bank, N.A. | Secret sharing information management and security system |
US11444779B2 (en) | 2018-08-02 | 2022-09-13 | Paypal, Inc. | Techniques for securing application programming interface requests using multi-party digital signatures |
DE102018127529A1 (de) * | 2018-11-05 | 2020-05-07 | Infineon Technologies Ag | Elektronische Vorrichtung und Verfahren zum Signieren einer Nachricht |
EP3696670A1 (en) * | 2019-02-13 | 2020-08-19 | UVUE Limited | Distributed computation system and method of operation thereof |
WO2020177977A1 (en) * | 2019-03-05 | 2020-09-10 | Sepior Aps | A method for providing a digital signature to a message |
CN112966052A (zh) * | 2019-04-17 | 2021-06-15 | 创新先进技术有限公司 | 区块链数据的分次获取方法和装置 |
GB2584154A (en) | 2019-05-24 | 2020-11-25 | Nchain Holdings Ltd | Knowledge proof |
GB201907397D0 (en) * | 2019-05-24 | 2019-07-10 | Nchain Holdings Ltd | Knowledge proof |
US11228452B2 (en) * | 2019-09-16 | 2022-01-18 | Cisco Technology, Inc. | Distributed certificate authority |
CN110851859B (zh) * | 2019-10-22 | 2023-09-29 | 华东师范大学 | 一种具有(n,t)门限的分布式权威节点区块链***的认证方法 |
US11271728B2 (en) * | 2019-12-20 | 2022-03-08 | Fujitsu Limited | Secure key management |
EP4082154A4 (en) * | 2019-12-23 | 2023-06-14 | Kzen Networks Ltd. | SYSTEM AND METHOD FOR MANAGING A SHARED CRYPTOGRAPHIC ACCOUNT |
CN111628863B (zh) * | 2020-05-29 | 2021-02-09 | 北京海泰方圆科技股份有限公司 | 一种数据签名的方法、装置、电子设备及存储介质 |
CN111669275B (zh) * | 2020-07-07 | 2023-04-07 | 广东工业大学 | 一种无线网络环境下可选择从节点的主从协作签名方法 |
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 |
CN112003694B (zh) * | 2020-08-10 | 2023-06-23 | 杭州溪塔科技有限公司 | 基于区块链的许可证签发方法、***、电子设备及介质 |
EP3955110A1 (en) | 2020-08-12 | 2022-02-16 | UVUE Limited | Distributed computing system and method of operation thereof |
US11777917B2 (en) | 2020-10-15 | 2023-10-03 | Cisco Technology, Inc. | Multi-party cloud authenticator |
CN113259095B (zh) * | 2021-04-27 | 2022-12-20 | 博雅中科(北京)信息技术有限公司 | 协同公钥生成方法、多方协同签名方法和*** |
CN113438070B (zh) * | 2021-05-25 | 2023-07-21 | 中国科学院计算技术研究所 | 基于capss的区块链密钥恢复方法及*** |
CN113708924B (zh) * | 2021-07-30 | 2022-09-30 | 西安邮电大学 | 基于区块链的椭圆曲线门限签名方法 |
GB2609906B (en) * | 2021-08-09 | 2023-12-27 | Nchain Licensing Ag | Generating digital signature shares |
SE546023C2 (en) * | 2021-10-26 | 2024-04-16 | Assa Abloy Ab | Providing biometric access control using threshold cryptography |
US20230291579A1 (en) * | 2022-03-08 | 2023-09-14 | Western Digital Technologies, Inc. | Cryptographic keys for authorization requests from a data storage device |
CN115208586B (zh) * | 2022-09-13 | 2022-12-30 | 中安网脉(北京)技术股份有限公司 | 一种基于秘密分享的数字签名方法及*** |
CN116401715B (zh) * | 2023-06-08 | 2023-08-22 | ***紫金(江苏)创新研究院有限公司 | 基于区块链的医疗数据流通隐私计算方法及*** |
CN117439737B (zh) * | 2023-12-18 | 2024-02-27 | 北京信安世纪科技股份有限公司 | 协同签名方法和协同签名*** |
CN117728959B (zh) * | 2024-02-06 | 2024-05-10 | 中国信息通信研究院 | 门限签名方法和装置、电子设备和存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0723348A2 (en) * | 1995-01-23 | 1996-07-24 | International Business Machines Corporation | Method and system for a public key cryptosystem having proactive, robust, and recoverable distributed threshold secret sharing |
CA2680056A1 (en) * | 2007-03-06 | 2008-09-12 | Research In Motion Limited | Power analysis countermeasure for the ecmqv key agreement algorithm |
CN101739524A (zh) * | 2008-11-26 | 2010-06-16 | Sap股份公司 | 用于在计算机***中使密码份额无效的方法和*** |
CN102340483A (zh) * | 2010-07-15 | 2012-02-01 | 航天信息股份有限公司 | 民主群签名的生成、验证、追踪方法和民主群签名*** |
CN104704504A (zh) * | 2012-09-26 | 2015-06-10 | 净睿存储股份有限公司 | 生成加密密钥的多驱动器协作 |
CN105830086A (zh) * | 2013-11-06 | 2016-08-03 | 净睿存储股份有限公司 | 使用外部秘密的存储***中的数据保护 |
WO2016141386A1 (en) * | 2015-03-05 | 2016-09-09 | Sypris Electronics, Llc | Authentication system and device including physical unclonable function and threshold cryptography |
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 |
EP3132560A1 (en) * | 2014-04-17 | 2017-02-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 |
CN106712942A (zh) * | 2017-01-10 | 2017-05-24 | 武汉理工大学 | 基于秘密共享的sm2数字签名生成方法及*** |
Family Cites Families (25)
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 |
JP2001142397A (ja) | 1998-10-30 | 2001-05-25 | Hitachi Ltd | ディジタル署名方法、秘密情報の管理方法およびシステム |
JP3560860B2 (ja) | 1999-07-23 | 2004-09-02 | 株式会社東芝 | 秘密分散システム、装置及び記憶媒体 |
JP3864247B2 (ja) | 2001-10-19 | 2006-12-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ネットワークシステム、端末装置、情報の配信方法及び復号方法 |
TWI248744B (en) * | 2003-03-13 | 2006-02-01 | Accton Technology Corp | Multisignature scheme with message recovery for group authorization in mobile networks |
JP4292835B2 (ja) | 2003-03-13 | 2009-07-08 | 沖電気工業株式会社 | 秘密再構成方法、分散秘密再構成装置、及び秘密再構成システム |
US8225185B1 (en) * | 2007-02-07 | 2012-07-17 | Marvell International, Ltd. | RS codec architecture that combines a compact encoder and serial BMA |
US20110213975A1 (en) | 2010-03-01 | 2011-09-01 | Alessandro Sorniotti | Secret interest groups in online social networks |
US8874990B2 (en) | 2011-04-01 | 2014-10-28 | Cleversafe, Inc. | Pre-fetching data segments 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 |
JP2014116870A (ja) | 2012-12-12 | 2014-06-26 | Hitachi Ltd | 鍵配送システム |
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 |
US10432409B2 (en) | 2014-05-05 | 2019-10-01 | Analog Devices, Inc. | Authentication system and device including physical unclonable function and threshold cryptography |
US9589144B2 (en) | 2014-07-28 | 2017-03-07 | Infosec Global Inc. | System and method for cryptographic suite management |
AU2016235539B2 (en) | 2015-03-20 | 2019-01-24 | Rivetz Corp. | Automated attestation of device integrity using the block chain |
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 |
SG10201805995VA (en) | 2016-02-23 | 2018-08-30 | Nchain Holdings Ltd | Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys |
BR112018016234A2 (pt) | 2016-02-23 | 2019-01-02 | Nchain Holdings Ltd | método implementado por computador para controlar o acesso a um recurso, sistemas baseados em computador e método para controle de acesso a uma carteira digital |
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 |
US10700850B2 (en) | 2018-11-27 | 2020-06-30 | Alibaba Group Holding Limited | System and method for information protection |
PL3552158T3 (pl) | 2018-11-27 | 2021-07-26 | Advanced New Technologies Co., Ltd. | System i sposób ochrony informacji |
-
2018
- 2018-07-26 SG SG11202000804PA patent/SG11202000804PA/en unknown
- 2018-07-26 EP EP18756293.9A patent/EP3669490A1/en active Pending
- 2018-07-26 WO PCT/IB2018/055604 patent/WO2019034951A1/en unknown
- 2018-07-26 CN CN201880053360.4A patent/CN110999206A/zh active Pending
- 2018-07-26 KR KR1020207005089A patent/KR102627039B1/ko active IP Right Grant
- 2018-07-26 US US16/639,096 patent/US11671255B2/en active Active
- 2018-07-26 JP JP2020506735A patent/JP7301039B2/ja active Active
- 2018-08-01 TW TW107126719A patent/TWI797147B/zh active
-
2020
- 2020-01-30 ZA ZA2020/00644A patent/ZA202000644B/en unknown
-
2023
- 2023-04-24 US US18/138,323 patent/US20230421375A1/en active Pending
- 2023-06-20 JP JP2023100467A patent/JP2023120347A/ja active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0723348A2 (en) * | 1995-01-23 | 1996-07-24 | International Business Machines Corporation | Method and system for a public key cryptosystem having proactive, robust, and recoverable distributed threshold secret sharing |
CA2680056A1 (en) * | 2007-03-06 | 2008-09-12 | Research In Motion Limited | Power analysis countermeasure for the ecmqv key agreement algorithm |
CN101739524A (zh) * | 2008-11-26 | 2010-06-16 | Sap股份公司 | 用于在计算机***中使密码份额无效的方法和*** |
CN102340483A (zh) * | 2010-07-15 | 2012-02-01 | 航天信息股份有限公司 | 民主群签名的生成、验证、追踪方法和民主群签名*** |
CN104704504A (zh) * | 2012-09-26 | 2015-06-10 | 净睿存储股份有限公司 | 生成加密密钥的多驱动器协作 |
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 |
CN105830086A (zh) * | 2013-11-06 | 2016-08-03 | 净睿存储股份有限公司 | 使用外部秘密的存储***中的数据保护 |
EP3132560A1 (en) * | 2014-04-17 | 2017-02-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)的数字签名的方法 |
WO2016141386A1 (en) * | 2015-03-05 | 2016-09-09 | Sypris Electronics, Llc | Authentication system and device including physical unclonable function and threshold cryptography |
CN106712942A (zh) * | 2017-01-10 | 2017-05-24 | 武汉理工大学 | 基于秘密共享的sm2数字签名生成方法及*** |
Non-Patent Citations (3)
Title |
---|
M.H. IBRAHIM; I.A. ALI; I.I. IBRAHIM; A.H. EL-SAWI: "A ROBUST THRESHOLD ELLIPTIC CURVE DIGITAL SIGNATURE PROVIDING A NEW VERIFIABLE SECRET SHARING SCHEME", 《2003 46TH MIDWEST SYMPOSIUM ON CIRCUITS AND SYSTEMS》, pages 276 - 280 * |
PRATYUSH DIKSHIT,KUNWAR SINGH: "Efficient Weighted Threshold ECDSA for Securing Bitcoin Wallet", 《2017 ISEA ASIA SECURITY AND PRIVACY (ISEASP)》, pages 1 - 9 * |
高照锋;叶延风;庄毅;: "基于椭圆曲线密码体制的先应式秘密共享方案", 计算机技术与发展, no. 07 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115152177A (zh) * | 2020-07-30 | 2022-10-04 | 戴普实验室有限公司 | 提供机密知识的专门证明的***和方法 |
US11824990B2 (en) | 2020-07-30 | 2023-11-21 | Dapper Labs, Inc. | Systems and methods providing specialized proof of confidential knowledge |
CN115152177B (zh) * | 2020-07-30 | 2023-11-21 | 戴普实验室有限公司 | 提供机密知识的专门证明的***和方法 |
CN116668024A (zh) * | 2023-07-28 | 2023-08-29 | 杭州趣链科技有限公司 | 一种分布式密钥的生成方法、装置、电子设备和存储介质 |
CN116668024B (zh) * | 2023-07-28 | 2023-10-31 | 武汉趣链数字科技有限公司 | 一种分布式密钥的生成方法、装置、电子设备和存储介质 |
CN117134910A (zh) * | 2023-10-24 | 2023-11-28 | 深圳市纽创信安科技开发有限公司 | 一种密钥共享方法、***及存储介质 |
CN117134910B (zh) * | 2023-10-24 | 2024-03-15 | 深圳市纽创信安科技开发有限公司 | 一种密钥共享方法、***及存储介质 |
CN117834112A (zh) * | 2023-12-13 | 2024-04-05 | 武汉大学 | 基于变色龙哈希函数的多方授权可编辑区块链方法及*** |
Also Published As
Publication number | Publication date |
---|---|
SG11202000804PA (en) | 2020-02-27 |
JP2023120347A (ja) | 2023-08-29 |
TWI797147B (zh) | 2023-04-01 |
US20200213113A1 (en) | 2020-07-02 |
ZA202000644B (en) | 2023-07-26 |
KR20200036884A (ko) | 2020-04-07 |
US11671255B2 (en) | 2023-06-06 |
WO2019034951A1 (en) | 2019-02-21 |
KR102627039B1 (ko) | 2024-01-19 |
JP7301039B2 (ja) | 2023-06-30 |
TW201911809A (zh) | 2019-03-16 |
JP2020531893A (ja) | 2020-11-05 |
EP3669490A1 (en) | 2020-06-24 |
US20230421375A1 (en) | 2023-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102627039B1 (ko) | 임계치 디지털 시그니처 방법 및 시스템 | |
CN110999207B (zh) | 生成阈值库的计算机实现方法 | |
US11546144B2 (en) | Systems and methods for communication, storage and processing of data provided by an entity over a blockchain network | |
JP7316283B2 (ja) | デジタル署名されたデータを取得するためのコンピュータにより実施される方法及びシステム | |
CN111819815B (zh) | 用于转移对数字资产的控制的计算机实现的方法和*** | |
Wright | A distribution protocol for dealerless secret distribution |
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 |