用于共享公共秘密的计算机实现的系统和方法技术方案

技术编号:28389021 阅读:48 留言:0更新日期:2021-05-08 00:19
公开了一种在多个节点(A,B,C)之间共享第一公共秘密以能够实现例如比特币区块链上的区块链交易的安全通信的方法。该方法包括:为至少一个第一节点(A)确定多个第二公共秘密(S

【技术实现步骤摘要】
【国外来华专利技术】用于共享公共秘密的计算机实现的系统和方法
本公开大体上涉及在多个节点之间共享公共秘密(commonsecret)的方法,并且更具体地涉及在至少三个节点之间共享公共秘密的方法。本公开特别适合于但不限于在密码术中使用以能够实现节点之间的安全通信,并且可以适合于但不限于与数字钱包、区块链(例如比特币)技术和个人装置安全性一起使用。
技术介绍
在本文档中,我们使用术语“区块链”来包括所有形式的电子的基于计算机的分布式账本(ledger)。这些包括基于共识的区块链和交易链技术、许可的和未被许可的账本、共享账本及其变型。尽管已经提出并开发了其他区块链实现方式,但是区块链技术最广为人知的应用是比特币账本。尽管为了方便和说明的目的在本文中可能提及比特币,但是应当注意,本公开不限于与比特币区块链一起使用,并且替代的区块链实现和协议落入本公开的范围内。术语“用户”在本文中可以指人类或基于处理器的资源。区块链是一种点对点的电子账本,其被实现为基于计算机的去中心化的分布式系统,该系统由区块组成,区块又由交易组成。每个交易都是一个数据结构,该数据结构对区块链系统中的参与者之间的数字资产控制权的转移进行编码,并包括至少一个输入和至少一个输出。每个区块都包含前一个区块的哈希值(hash),使得区块被链接在一起来创建所有交易的永久、不可更改的记录,所有这些交易自其开始就已经被写入到区块链。交易包含嵌入到其输入和输出中的被称为脚本的小程序,这些小程序指定如何以及由谁来访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。r>为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)执行工作以确保每笔交易是有效的,而无效交易则被网络拒绝。安装在节点上的软件客户端通过执行其锁定脚本和解锁脚本来对未花费的交易输出(unspenttransaction,UTXO)执行该验证工作。如果将锁定脚本和解锁脚本的执行评估为真(TRUE),则该交易有效,并将该交易写入区块链。因此,为了将交易写入区块链,必须:i)由接收交易的第一节点验证该交易–如果交易经过验证,则该节点将其中继到网络中的其他节点;ii)将该交易添加到由矿工建造的新区块;以及iii)该交易被挖掘,即,被添加到过去交易的公共账本中。尽管区块链技术因使用加密货币实现方式而被广泛了解,但数字企业家已经开始探索使用比特币所基于的加密安全系统以及可以被存储在区块链上的数据这两者来实现新系统。如果区块链将被用于不限于加密货币领域的自动化任务和过程,那将是非常有利的。这样的方案将能够利用区块链的好处(例如,事件的永久性、防篡改记录、分布式处理等),同时在其应用中更通用。国际专利申请WO2017/145016公开了一种在两个节点之间共享公共秘密以能够实现节点之间的安全通信的方法。然而,期望提供一种在多于两个的节点之间共享公共秘密的方法。
技术实现思路
现在已经设计出这种改进的方案。因此,根据本公开,提供了如所附权利要求书限定的方法。根据本公开,提供了一种在多个节点之间共享第一公共秘密的方法,其中,每个所述节点与相应非对称密码第一密钥对相关联,该相应非对称密码第一密钥对具有对于所述多个节点而言共有的密码系统的相应第一私钥和相应第一公钥,并且其中,该第一公共秘密基于每个所述节点的第一私钥,该方法包括:为至少一个第一节点确定多个第二公共秘密,其中,每个所述第二公共秘密是所述第一节点和相应的第二节点所共有的,是在所述第一节点处基于第一节点的第一私钥和第二节点的第一公钥确定的,并且是在第二节点处基于第二节点的第一私钥和第一节点的第一公钥确定的,其中,第一公共秘密的多个份额各自基于至少一个相应的第二公共秘密,以使得对于阈值数量的所述份额,所述第一公共秘密是可访问的,但对于小于所述阈值数量的份额,所述第一公共秘密是不可访问的;为至少一个第二节点,确定至少一个相应的第三公共秘密,其中,所述或每个相应的第三公共秘密是所述第二节点和相应的第三节点所共有的,是在所述第二节点处基于第二节点的第一私钥和第三节点的第一公钥确定的,并且是在第三节点处基于第三节点的第一私钥和第二节点的第一公钥确定的,并且其中,第一公共秘密的至少一个份额基于至少一个相应的所述第三公共秘密;基于密码系统的相应非对称密码第二密钥对的第二私钥,在至少一个所述第一节点处对所述第一节点已知的所述第一公共秘密的至少一个份额进行加密,其中,所述第二密钥对基于所述第一节点已知的相应的所述第二公共秘密;从所述第一节点向与所述第一节点共有第二公共秘密的相应的所述第二节点发送至少一个所述加密的份额,所述第二密钥对基于该第二公共秘密;以及在至少一个所述第一节点处,从至少一个所述第二节点接收所述第一秘密的至少一个相应的份额,所述第一秘密是所述第二节点已知的并且基于所述密码系统的相应非对称密码第二密钥对的第二私钥被加密,其中,所述第二密钥对基于所述第一节点和所述第二节点共有的第二公共秘密,以使得所述多个节点中的每一个能够达到所述第一公共秘密的所述阈值数量的份额。这提供的优点在于,提供了在多个节点之间共享公共秘密的有效方法,然后该方法可以用作节点之间的安全通信的基础。多个所述加密的份额可以各自基于对应的所述节点已知的多个所述公共秘密的组合。这提供的优点在于,例如,当共享的秘密被包括在区块链交易的脚本中时,提高了效率,同时还使各个公共秘密对于第三方而言是隐藏的,从而提高了私密性。多个所述加密的份额可以各自基于对应的所述节点已知的多个所述公共秘密的至少一个相应的XOR组合。这提供了易于处理的优点,从而使得接收方节点能够简单地恢复第一公共秘密。多个所述加密的份额可以基于对应的所述节点已知的多个所述公共秘密的乘法组合。乘法组合可以是(x1.x2.x3)modn的形式,其中,x1,x2,x3是节点已知的公共秘密,且n是密码系统的阶数(order)。多个所述份额可以是第一多项式函数的份额,并且第一秘密可以借助于至少阈值数量的所述份额的多项式插值来确定。该方法还可以包括:接收所述第一公共秘密的至少阈值数量的份额,其中,每个所述份额对应于第一多项式函数的相应的值;以及借助于从所述份额的多个已知值确定第一多项式函数的系数来确定所述第一多项式函数,以确定所述第一公共秘密。确定所述第一多项式函数的步骤可以包括执行误差校正算法。确定所述第一多项式函数的步骤可以包括执行Berlekamp-Welch解码算法。确定所述第一多项式函数的步骤可以包括:限定差错定位多项式函数和第二多项式函数,其中,第二多项式函数是所述第一多项式函数和所述差错定位多项式函数的乘积(product);从所述部分签名(partialsignature)的多个已知值确定所述第二多项式函数和所述差错定位多项式函数的系数;以及从所述第二多项式函数和所述差错检测多项式函数确定所述第一多项式函数,以确定第一公共秘密。至少一个所述密码系统可以具有同本文档来自技高网...

【技术保护点】
1.一种在多个节点之间共享第一公共秘密的方法,其中,每个所述节点与相应的非对称密码第一密钥对相关联,所述相应的非对称密码第一密钥对具有所述多个节点所共有的密码系统的相应的第一私钥和相应的第一公钥,并且其中,所述第一公共秘密基于每个所述节点的第一私钥,所述方法包括:/n为至少一个第一节点确定多个第二公共秘密,其中,每个所述第二公共秘密是所述第一节点和相应的第二节点所共有的,是在所述第一节点处基于第一节点的第一私钥和第二节点的第一公钥确定的,并且是在第二节点处基于第二节点的第一私钥和第一节点的第一公钥确定的,其中,第一公共秘密的多个份额各自基于至少一个相应的第二公共秘密,使得对于阈值数量的所述份额,所述第一公共秘密是能够访问的,但对于小于所述阈值数量的份额,所述第一公共秘密是不能访问的;/n为至少一个第二节点,确定至少一个相应的第三公共秘密,其中,所述或每个相应的第三公共秘密是所述第二节点和相应的第三节点所共有的,是在所述第二节点处基于第二节点的第一私钥和第三节点的第一公钥确定的,并且是在第三节点处基于第三节点的第一私钥和第二节点的第一公钥确定的,并且其中,第一公共秘密的至少一个份额基于至少一个相应的所述第三公共秘密;/n在至少一个所述第一节点处,基于密码系统的相应的非对称密码第二密钥对的第二私钥,来对所述第一节点已知的所述第一公共秘密的至少一个份额进行加密,其中,所述第二密钥对基于所述第一节点已知的相应的所述第二公共秘密;/n从所述第一节点向与所述第一节点共有第二公共秘密的相应的所述第二节点发送至少一个所述加密的份额,所述第二密钥对基于所述第二公共秘密;以及/n在至少一个所述第一节点处,从至少一个所述第二节点接收所述第一秘密的至少一个相应的份额,所述第一秘密是所述第二节点已知的并且基于所述密码系统的相应的非对称密码第二密钥对的第二私钥被加密,其中,所述第二密钥对基于所述第一节点和所述第二节点共有的第二公共秘密,以使得所述多个节点中的每一个达到所述第一公共秘密的所述阈值数量的份额。/n...

【技术特征摘要】
【国外来华专利技术】20180921 GB 1815396.51.一种在多个节点之间共享第一公共秘密的方法,其中,每个所述节点与相应的非对称密码第一密钥对相关联,所述相应的非对称密码第一密钥对具有所述多个节点所共有的密码系统的相应的第一私钥和相应的第一公钥,并且其中,所述第一公共秘密基于每个所述节点的第一私钥,所述方法包括:
为至少一个第一节点确定多个第二公共秘密,其中,每个所述第二公共秘密是所述第一节点和相应的第二节点所共有的,是在所述第一节点处基于第一节点的第一私钥和第二节点的第一公钥确定的,并且是在第二节点处基于第二节点的第一私钥和第一节点的第一公钥确定的,其中,第一公共秘密的多个份额各自基于至少一个相应的第二公共秘密,使得对于阈值数量的所述份额,所述第一公共秘密是能够访问的,但对于小于所述阈值数量的份额,所述第一公共秘密是不能访问的;
为至少一个第二节点,确定至少一个相应的第三公共秘密,其中,所述或每个相应的第三公共秘密是所述第二节点和相应的第三节点所共有的,是在所述第二节点处基于第二节点的第一私钥和第三节点的第一公钥确定的,并且是在第三节点处基于第三节点的第一私钥和第二节点的第一公钥确定的,并且其中,第一公共秘密的至少一个份额基于至少一个相应的所述第三公共秘密;
在至少一个所述第一节点处,基于密码系统的相应的非对称密码第二密钥对的第二私钥,来对所述第一节点已知的所述第一公共秘密的至少一个份额进行加密,其中,所述第二密钥对基于所述第一节点已知的相应的所述第二公共秘密;
从所述第一节点向与所述第一节点共有第二公共秘密的相应的所述第二节点发送至少一个所述加密的份额,所述第二密钥对基于所述第二公共秘密;以及
在至少一个所述第一节点处,从至少一个所述第二节点接收所述第一秘密的至少一个相应的份额,所述第一秘密是所述第二节点已知的并且基于所述密码系统的相应的非对称密码第二密钥对的第二私钥被加密,其中,所述第二密钥对基于所述第一节点和所述第二节点共有的第二公共秘密,以使得所述多个节点中的每一个达到所述第一公共秘密的所述阈值数量的份额。


2.根据权利要求1所述的方法,其中,多个所述加密的份额各自基于对应的所述节点已知的多个所述公共秘密的组合。


3.根据权利要求2所述的方法,其中,多个所述加密的份额基于对应的所述节点已知的多个所述公共秘密的至少一个相应的XOR组合。


4.根据权利要求2或3所述的方法,其中,多个所述加密的份额基于对应的所述节点已知的多个所述公共秘密的乘法组合。


5.根据权利要求4所述的方法,其中,所述乘法组合是(x1.x2.x3)modn的形式,其中,x1、x2、x3是节点已知的公共秘密,n是密码系统的阶数。


6.根据前述权利要求中的任一项所述的方法,其中,多个所述份额是第一多项式函数的份额,并且第一秘密是借助于至少阈值数量的所述份额的多项式插值来确定的。


7.根据权利要求6所述的方法,还包括:
接收所述第一公共秘密的至少阈值数量的份额,其中,每个所述份额对应于第一多项式函数的相应的值;以及
借助于从所述份额的多个已知值确定第一多项式函数的系数来确定所述第一多项式函数,以确定所述第一公共秘密。


8.根据权利要求7所述的方法,其中,确定所述第一多项式函数的步骤包括执行差错校正算法。


9.根据权利要求8所述的方法,其中,确定所述第一多项式函数的步骤包括执行Berlekamp-Welch解码算法。


10.根据权利要求7或8所述的方法,其中,确定所述第一多项式函数的步骤包括:
限定差错定位多项式函数和第二多项式函数,其中,第二多项式函数是所述第一多项式函数和所述差错定位多项式函数的乘积;从所述部分签名的多个已知值确定所述第二多项式函数和所述差错定位多项式函数的系数;以及从所述第二多项式函数和所述差错检测多项式函数确定所述第一多项式函数,以确定第一公共秘密。


11.根据前述权利要求中的任一项所述的方法,其中,至少一个所述密码系统具有同态性质。


12.根据权利要求11所述的方法,其中,至少一个所述密码系统是椭圆曲线密码系统。


13.根据前述权利要求中的任一项所述的方法,还包括:
基于至少第一节点主私钥(V1C)和第一节点和第二节点所共有的确定性密钥(DK)来确定至少一个所述第一节点的所述第一私钥;以及
使用公共密码系统,基于第二节点的主公钥(P1S)和确定性密钥(DK)的加密来确定至少一个所述第二节点的所述第一公钥(P2S)。


14.根据权利要求13所述的方法,其中,所述确定性密钥(DK)基于消息(M)。


15.根据权利要求14所述的方法,还包括:
-基于消息(M)和第一节点的第一私钥(V2C)来生成第一签名消息(SM1);以及
-通过通信网络将第一签名消息(SM1)发送到第二节点(S),
其中,所述第一签名消息(SM1)能够利用第一节点的第一公钥(P2C)来验证,以认证第一节点(...

【专利技术属性】
技术研发人员:C·S·赖特
申请(专利权)人:区块链控股有限公司
类型:发明
国别省市:安提瓜和巴布达;AG

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1