CN114422125B - 秘密数据共享、密钥生成方法及分布式系统 - Google Patents
秘密数据共享、密钥生成方法及分布式系统 Download PDFInfo
- Publication number
- CN114422125B CN114422125B CN202111653533.6A CN202111653533A CN114422125B CN 114422125 B CN114422125 B CN 114422125B CN 202111653533 A CN202111653533 A CN 202111653533A CN 114422125 B CN114422125 B CN 114422125B
- Authority
- CN
- China
- Prior art keywords
- node
- message
- data sharing
- secret data
- secret
- 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.)
- Active
Links
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本说明书一个或多个实施例提供一种秘密数据共享、密钥生成方法及分布式系统。实现了一种异步的可验证的秘密共享协议(ACSS或者DACSS),这种方法可以确保分布式系统中的全部正确节点都可以获取到秘密数据的分片。进一步地,提出了基于ACSS或者DACSS的异步分布式密钥生成协议ADKG,以及提出了一种新型的偏向的二元共识协议。
Description
技术领域
本说明书一个或多个实施例涉及信息技术领域,尤其涉及一种秘密数据共享、密钥生成方法及分布式系统。
背景技术
在一些业务场景下,需要将一份秘密数据共享给分布式系统中的N个节点,其中每个节点不能单独获得秘密数据,但是M个以上的节点可以共同恢复出秘密数据。
基于异步的可验证秘密共享协议AVSS(Asynchronous Verifiable SecretSharing)的秘密数据共享方案通常仅能保证分布式系统中最终完成协议的部分正确节点获取到待分享的秘密数据的分片,往往不能保证全部正确节点(至少N-f个,f为分布式系统所容错的节点数量)都能获取到秘密数据的分片。
为了使得分布式系统中的全部正确节点都可以获取到秘密数据的分片,本文提出另一种基于异步的可验证秘密共享协议ACSS(Asynchronous Complete Secret Sharing)的秘密数据共享方案。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种秘密数据共享、密钥生成方法及分布式系统。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种秘密数据共享方法,包括:
数据分享方获取待共享的秘密数据D;数据分享方为包括N个节点的分布式系统中的任一节点;
数据分享方生成P阶多项式R(x),其中,P=2f,f为分布式系统所容错的节点数量,R(x)=r0+r1x+r2x2+…+rPxP,R(0)=D;并且,计算R(x)对应的承诺,该承诺包括:g^r0、g^r1、…、g^rP;
数据分享方生成N个T阶多项式S(x),其中,i=1、2、…N,T=f,Si(x)=ri0+ri1x+ri2x2+…+riPxP,Si(i)=R(i);并且,计算Si(x)对应的承诺,该承诺包括:g^ri0、g^ri1、…、g^riP;
数据分享方计算Si(1)、Si(2)、…、Si(N);并且,生成针对R(x)对应的承诺与Si(x)对应的承诺,生成向量承诺C;
数据分享方构建第一消息并发送给节点i;第一消息包括:C、R(x)对应的承诺、Si(x)对应的承诺以及Si(1)、Si(2)、…、Si(N);
节点i在接收到第一消息之后,判断C是否正确,判断Si(1)、Si(2)、…、Si(N)是否正确,判断Si(x)是否等于R(i);若判断结果皆为是,则向节点j发送第二消息,其中,j=1、2、…N,第二消息包括:C、Sj(i)、Sj(x)对应的承诺;
节点j在接收到第二消息之后,验证第二消息,若验证通过,则向节点i发送第三消息;
节点i若获取到f+1个第三消息,且未发送第三消息,则广播第三消息;若接收到2f+1个第三消息,则等待f+1个第二消息,运用拉格朗日插值公式解出Si(x),并计算Si(i);其中,Si(i)为节点i所获取的秘密数据D的分片。
在一些实施例中,还包括:
节点i响应于恢复秘密数据D的指令,向节点j发送Sj(j)与Sj(x)对应的承诺;
节点j在确定获取到2f+1个正确的Sj(j)之后,将运用拉格朗日插值公式解出R(0),以恢复出秘密数据D。
根据本说明书一个或多个实施例的第二方面,提供另一种秘密数据共享方法,包括:
数据分享方获取待共享的秘密数据D;数据分享方为包括N个节点的分布式系统中的任一节点;
数据分享方生成P阶多项式R(x),其中,P=f,f为分布式系统所容错的节点数量,R(x)=r0+r1x+r2x2+…+rPxP,R(0)=D;并且,计算R(x)对应的承诺,该承诺包括:g^r0、g^r1、…、g^rP;
数据分享方生成N个T阶多项式S(x),其中,i=1、2、…N,T=f,Si(x)=ri0+ri1x+ri2x2+…+riPxP,Si(i)=R(i);并且,计算Si(x)对应的承诺,该承诺包括:g^ri0、g^ri1、…、g^riP;
数据分享方计算Si(1)、Si(2)、…、Si(N);并且,生成针对R(x)对应的承诺与Si(x)对应的承诺,生成向量承诺C;
数据分享方构建第一消息并发送给节点i;第一消息包括:C、R(x)对应的承诺、Si(x)对应的承诺以及Si(1)、Si(2)、…、Si(N);
节点i在接收到第一消息之后,判断C是否正确,判断Si(1)、Si(2)、…、Si(N)是否正确,判断Si(x)是否等于R(i);若判断结果皆为是,则向节点j发送第二消息,其中,j=1、2、…N,第二消息包括:C、Sj(i)、Sj(x)对应的承诺;
节点j在接收到第二消息之后,验证第二消息,若验证通过,则向节点i发送第三消息;
节点i若获取到f+1个第三消息,且未发送第三消息,则广播第三消息;若接收到2f+1个第三消息,则等待f+1个第二消息,运用拉格朗日插值公式解出Si(x),并计算Si(i);其中,Si(i)为节点i所获取的秘密数据D的分片。
在一些实施例中,还包括:
节点i响应于恢复秘密数据D的指令,向节点j发送Sj(j)与Sj(x)对应的承诺;
节点j在确定获取到f+1个正确的Sj(j)之后,将运用拉格朗日插值公式解出R(0),以恢复出秘密数据D。
根据本说明书一个或多个实施例的第三方面,提供一种密钥生成方法,用于实现分布式系统中的N个节点之间协商出共同公钥与每个节点的私钥,以便在N个节点中实现门限签名算法;所述方法包括:
节点i作为秘密分享方,发起秘密数据分享流程,包括:将自己的待共享的秘密数据Di通过第一方面或第二方面的方法分享给分布式系统中的各个节点;其中,i=1、2、…N;
节点i若获取到节点j分享的Dji,则调用节点j发起的偏向的异步拜占庭协议ABA流程,并且输入1;
节点i若确定N-f个节点发起的秘密数据分享流程完成,则调用全部未启动的ABA流程输入,并且输入0;
节点i若确定节点j发起的秘密数据分享流程完成,则重新调用节点j发起的ABA流程,并输入1;
节点i将输出为1的ABA流程归入第一集合,将第一集合中每个ABA流程所对应发起节点所发起的秘密数据分享流程归于第二集合;
节点i将第一集合中各个ABA流程分别对应的发起节点k所暴露的g^Dk的乘积,作为共同公钥;将第二集合中各个秘密数据分享流程分别分享给节点i的秘密数据分片求和,得到节点i的私钥。
在一些实施例中,所述门限密码学算法包括以下之一:
门限签名、门限加密、门限公共抛币。
在一些实施例中,所述ABA不依赖于公共抛币协议。
根据本说明书一个或多个实施例的第四方面,提供一种区块链系统,所述区块链系统中的各节点基于第三方面所述方法生成密钥。
在一些实施例中,所述区块链系统为联盟链系统或公有链系统。
根据本说明书一个或多个实施例的第五方面,提供一种分布式系统,包括N个节点,所述分布式系统应用于上述任一方法。
在上述技术方案中,实现了一种基于异步的可验证的秘密共享协议ACSS的秘密数据共享方法,这种方法基于经典的离散对数假设,这种方法可以确保分布式系统中的全部正确节点都可以获取到秘密数据的分片。具体而言,ACSS协议中可以设置双门限(即P=2T)或单门限(即P=T),分别对应于第一方面的方法与第二方面的方法。当ACSS协议中设置双门限时,可以将ACSS协议称为DACSS协议。
进一步地,在需要在分布式系统的各个节点中实现门限签名的技术场景下,通常需要一个中心化的密钥发放者来进行密钥发放,该中心化的密钥发放者可以是分布式系统中的一个节点,或者,也可以是分布式系统外的主体。中心化的密钥发放者有可能作恶或者被单点攻破,导致密钥发放者不仅知晓每个节点的私钥,而且可以生成一个安全强度比较低的共同公钥。
因此,需要一种可以不依赖于中心化的密钥发放者的密钥生成方案,可以实现分布式系统中的N个节点之间协商出共同公钥与每个节点的私钥,以便在N个节点中实现门限签名算法。
本说明书提出的应用于分布式系统且不依赖于中心化的密钥发放者的密钥生成方法。具体而言,每个节点需要作为秘密分享方,将自己的秘密数据分享给各个节点,使得每个正确节点持有该节点的秘密数据的一个分片,也就是说,同时运行着不同节点发起的秘密数据分享流程。之后进入拜占庭协议ABA阶段。通过ABA阶段,节点i可以将输出为1的ABA流程归入第一集合,将第一集合中每个ABA流程所对应发起节点所发起的秘密数据分享流程归于第二集合。如此,节点i可以将第一集合中各个ABA流程分别对应的发起节点k所暴露的g^Dk的乘积,作为共同公钥;将第二集合中各个秘密数据分享流程分别分享给节点i的秘密数据分片求和,得到节点i的私钥。
需要说明的是,上述的密钥生成方案中,可以应用现有的ABA协议。进一步地,本说明书中所使用的ABA协议可以是有偏向的ABA协议。例如,有偏向的ABA协议可以基于Bracha于1987年提出的ABA协议或者其他不依赖公共抛币而采用本地随机抛币的ABA协议来实现。如果采用Bracha的ABA协议实现有偏向的ABA协议,则具体将Bracha的ABA第一轮协议设定为发送1,并将每个节点的独立的随机抛币设定为1,使得f+1个正确节点提供1时,节点输出为1。之后的轮数里,协议按照Bracha的ABA正常运行。
上述的密钥生成方案可以应用于密码学、分布式系统(如区块链系统)。例如,联盟链这种许可型的区块链系统需要上述的密钥生成方案来实现不依赖中心化的密钥分发者的门限签名算法。
又如,公有链等非许可型的区块链系统往往基于委员会,这种委员会中也需要实现不依赖中心化的密钥分发者的门限签名算法。
又如,门限签名,门限PRF,门限随机数生成协议,门限加密、安全多方计算等技术领域都可以应用上述的密钥生成方案。
附图说明
图1示例性提供一种秘密数据共享方法的流程。
图2示例性提供另一种秘密数据共享方法的流程。
图3示例性提供一种密钥生成方法的流程。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
本公开提供的各个实施例中的分布式系统包括N个节点,一般而言,为了使得分布式系统可以具有节点容错能力,通常需要假设所容错的节点数量f,然后基于f确定分布式系统中节点的数量,即N。对于拜占庭容错,N>3f即可,N至少为4。此外,分布式系统也可以不具有拜占庭容错能力(既兼容一定数量的宕机节点,也兼容一定数量的作恶节点),而是仅仅具有普通容错能力,既兼容一定数量的宕机节点存在,不能兼容一定数量的作恶节点存在,这种情况下,N>2f即可,N至少为3。为了描述的方便,后文以拜占庭容错的情况为例进行说明,在此基础上,本领域技术人员容易想到普通容错的情况的实施例。
还需要说明的是,本文中所述的节点可以具体为设备或设备集群,设备例如可以是服务器。另外,在后文的描述中,将宕机或者作恶的节点称为错误节点,将非错误节点称为正确的节点。
在下文中,采用如下描述规则:
f表示分布式系统所容错的节点数量,N表示分布式系统的节点数量。包括N在内的大写字母表示固定的数据或者固定的值,小写字母表示变量(f除外,属于特殊情况)。当描述小写字母所表示的变量时,意味着该变量需要将其可能的每个取值都分别赋予该变量。例如,节点i代表分布式系统中的每个节点,i的取值包括1到N中的多个数值或每个数值。
图1示例性提供一种秘密数据共享方法的流程,包括以下步骤:
S100:数据分享方获取待共享的秘密数据D。
数据分享方为包括N个节点的分布式系统中的任一节点。
S101:数据分享方生成P阶多项式R(x)。
其中,P=2f,f为分布式系统所容错的节点数量,R(x)=r0+r1x+r2x2+…+rPxP,R(0)=D;并且,计算R(x)对应的承诺,该承诺包括:g^r0、g^r1、…、g^rP。
S102:数据分享方生成N个T阶多项式S(x)。
其中,i=1、2、…N,T=f,Si(x)=ri0+ri1x+ri2x2+…+riPxP,Si(i)=R(i);并且,计算Si(x)对应的承诺,该承诺包括:g^ri0、g^ri1、…、g^riP。
S103:数据分享方计算Si(1)、Si(2)、…、Si(N);并且,生成针对R(x)对应的承诺与Si(x)对应的承诺,生成向量承诺C。
S104:数据分享方构建第一消息并发送给节点i。
第一消息包括:C、R(x)对应的承诺、Si(x)对应的承诺以及Si(1)、Si(2)、…、Si(N)。
S105:节点i在接收到第一消息之后,判断C是否正确,判断Si(1)、Si(2)、…、Si(N)是否正确,判断Si(x)是否等于R(i);若判断结果皆为是,则向节点j发送第二消息。
其中,j=1、2、…N,第二消息包括:C、Sj(i)、Sj(x)对应的承诺。
S106:节点j在接收到第二消息之后,验证第二消息,若验证通过,则向节点i发送第三消息。
S107:节点i若获取到f+1个第三消息,且未发送第三消息,则广播第三消息。
S108:若接收到2f+1个第三消息,则等待f+1个第二消息,运用拉格朗日插值公式解出Si(x),并计算Si(i)。
其中,Si(i)为节点i所获取的秘密数据D的分片。
在一些实施例中,节点i可以响应于恢复秘密数据D的指令,向节点j发送Sj(j)与Sj(x)对应的承诺。节点j可以在确定获取到2f+1个正确的Sj(j)之后,将运用拉格朗日插值公式解出R(0),以恢复出秘密数据D。
图2示例性提供另一种秘密共享方法的流程,包括以下步骤:
S200:数据分享方获取待共享的秘密数据D。
数据分享方为包括N个节点的分布式系统中的任一节点。
S201:数据分享方生成P阶多项式R(x)。
其中,P=2f,f为分布式系统所容错的节点数量,R(x)=r0+r1x+r2x2+…+rPxP,R(0)=D;并且,计算R(x)对应的承诺,该承诺包括:g^r0、g^r1、…、g^rP。
S202:数据分享方生成N个T阶多项式S(x)。
其中,i=1、2、…N,T=f,Si(x)=ri0+ri1x+ri2x2+…+riPxP,Si(i)=R(i);并且,计算Si(x)对应的承诺,该承诺包括:g^ri0、g^ri1、…、g^riP。
S203:数据分享方计算Si(1)、Si(2)、…、Si(N);并且,生成针对R(x)对应的承诺与Si(x)对应的承诺,生成向量承诺C。
S204:数据分享方构建第一消息并发送给节点i。
第一消息包括:C、R(x)对应的承诺、Si(x)对应的承诺以及Si(1)、Si(2)、…、Si(N)。
S205:节点i在接收到第一消息之后,判断C是否正确,判断Si(1)、Si(2)、…、Si(N)是否正确,判断Si(x)是否等于R(i);若判断结果皆为是,则向节点j发送第二消息。
其中,j=1、2、…N,第二消息包括:C、Sj(i)、Sj(x)对应的承诺。
S206:节点j在接收到第二消息之后,验证第二消息,若验证通过,则向节点i发送第三消息。
S207:节点i若获取到f+1个第三消息,且未发送第三消息,则广播第三消息。
S208:若接收到2f+1个第三消息,则等待f+1个第二消息,运用拉格朗日插值公式解出Si(x),并计算Si(i)。
其中,Si(i)为节点i所获取的秘密数据D的分片。
在一些实施例中,节点i可以响应于恢复秘密数据D的指令,向节点j发送Sj(j)与Sj(x)对应的承诺。节点j可以在确定获取到f+1个正确的Sj(j)之后,将运用拉格朗日插值公式解出R(0),以恢复出秘密数据D。
在图1所示方法与图2所示方法中,实现了一种基于异步的可验证的秘密共享协议ACSS的秘密数据共享方法,这种方法基于经典的离散对数假设,这种方法可以确保分布式系统中的全部正确节点都可以获取到秘密数据的分片。具体而言,P可以理解为隐私门限值。隐私门限值可以高于普通门限值T,若T为f,则P为2f,从而实现双门限值的ACSS协议,即DACSS协议。另外,P也可以等于T,如此,相当于实现了单门限值的ACSS协议。
进一步地,在需要在分布式系统的各个节点中实现门限签名的技术场景下,通常需要一个中心化的密钥发放者来进行密钥发放,该中心化的密钥发放者可以是分布式系统中的一个节点,或者,也可以是分布式系统外的主体。中心化的密钥发放者有可能作恶或者被单点攻破,导致密钥发放者不仅知晓每个节点的私钥,而且可以生成一个安全强度比较低的共同公钥。
因此,需要一种可以不依赖于中心化的密钥发放者的密钥生成方案,可以实现分布式系统中的N个节点之间协商出共同公钥与每个节点的私钥,以便在N个节点中实现门限签名算法。
本说明书提出的应用于分布式系统且不依赖于中心化的密钥发放者的密钥生成协议ADKG。具体而言,每个节点需要作为秘密分享方,将自己的秘密数据分享给各个节点,使得每个正确节点持有该节点的秘密数据的一个分片,也就是说,同时运行着不同节点发起的秘密数据分享流程。之后进入拜占庭协议ABA阶段。通过ABA阶段,节点i可以将输出为1的ABA流程归入第一集合,将第一集合中每个ABA流程所对应发起节点所发起的秘密数据分享流程归于第二集合。如此,节点i可以将第一集合中各个ABA流程分别对应的发起节点k所暴露的g^Dk的乘积,作为共同公钥;将第二集合中各个秘密数据分享流程分别分享给节点i的秘密数据分片求和,得到节点i的私钥。
图3示例性提供一种密钥生成方法的流程,包括以下步骤:
S300:节点i作为秘密分享方,发起秘密数据分享流程。
其中,秘密分享流程包括:将自己的待共享的秘密数据Di分享给分布式系统中的各个节点;其中,i=1、2、…N。
S301:节点i若获取到节点j分享的Dji,则调用节点j发起的偏向的异步拜占庭协议ABA流程,并且输入1。
S302:节点i若确定N-f个节点发起的秘密数据分享流程完成,则调用全部未启动的ABA流程输入,并且输入0。
S303:节点i若确定节点j发起的秘密数据分享流程完成,则重新调用节点j发起的ABA流程,并输入1。
S304:节点i将输出为1的ABA流程归入第一集合,将第一集合中每个ABA流程所对应发起节点所发起的秘密数据分享流程归于第二集合。
S305:节点i将第一集合中各个ABA流程分别对应的发起节点k所暴露的g^Dk的乘积,作为共同公钥;将第二集合中各个秘密数据分享流程分别分享给节点i的秘密数据分片求和,得到节点i的私钥。
需要说明的是,图3所示的密钥生成方案中,可以应用现有的ABA协议。上述的密钥生成方案中,可以应用现有的ABA协议。进一步地,本说明书中所使用的ABA协议可以是有偏向的ABA协议,例如,有偏向的ABA协议可以基于Bracha于1987年提出的ABA协议或者其他不依赖公共抛币而采用本地随机抛币的ABA协议来实现。如果采用Bracha的ABA协议实现有偏向的ABA协议,则具体将Bracha的ABA第一轮协议设定为发送1,并将每个节点的独立的随机抛币设定为1,使得f+1个正确节点提供1时,节点输出为1。之后的轮数里,协议按照Bracha的ABA正常运行。
此外,图3所示的密钥生成方案可以应用于密码学、分布式系统(如区块链系统)。例如,联盟链这种许可型的区块链系统需要上述的密钥生成方案来实现不依赖中心化的密钥分发者的门限签名算法。
又如,公有链等非许可型的区块链系统往往基于委员会,这种委员会中也需要实现不依赖中心化的密钥分发者的门限签名算法。
又如,门限签名,门限PRF,门限随机数生成协议,门限加密、安全多方计算等技术领域都可以应用上述的密钥生成方案。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (10)
1.一种秘密数据共享方法,包括:
数据分享方获取待共享的秘密数据D;数据分享方为包括N个节点的分布式系统中的任一节点;
数据分享方生成P阶多项式R(x),其中,P=2f,f为分布式系统所容错的节点数量,R(x)=r0+r1x+r2x2+…+rPxP,R(0)=D;并且,计算R(x)对应的承诺,g表示生成元,该承诺具体包括:g^r0、g^r1、…、g^rP;
数据分享方生成N个T阶多项式S(x),其中,i=1、2、…N,T=f,Si(x)=ri0+ri1x+ri2x2+…+riPxP,Si(i)=R(i);并且,计算Si(x)对应的承诺,该承诺包括:g^ri0、g^ri1、…、g^riP;
数据分享方计算Si(1)、Si(2)、…、Si(N);并且,生成针对R(x)对应的承诺与Si(x)对应的承诺,生成向量承诺C;
数据分享方构建第一消息并发送给节点i;第一消息包括:C、R(x)对应的承诺、Si(x)对应的承诺以及Si(1)、Si(2)、…、Si(N);
节点i在接收到第一消息之后,判断C是否正确,判断Si(1)、Si(2)、…、Si(N)是否正确,判断Si(x)是否等于R(i);若判断结果皆为是,则向节点j发送第二消息,其中,j=1、2、…N,第二消息包括:C、Sj(i)、Sj(x)对应的承诺;
节点j在接收到第二消息之后,验证第二消息,若验证通过,则向节点i发送第三消息;
节点i若获取到f+1个第三消息,且未发送第三消息,则广播第三消息;若接收到2f+1个第三消息,则等待f+1个第二消息,运用拉格朗日插值公式解出Si(x),并计算Si(i);其中,Si(i)为节点i所获取的秘密数据D的分片。
2.如权利要求1所述方法,还包括:
节点i响应于恢复秘密数据D的指令,向节点j发送Sj(j)与Sj(x)对应的承诺;
节点j在确定获取到2f+1个正确的Sj(j)之后,将运用拉格朗日插值公式解出R(0),以恢复出秘密数据D。
3.一种秘密数据共享方法,包括:
数据分享方获取待共享的秘密数据D;数据分享方为包括N个节点的分布式系统中的任一节点;
数据分享方生成P阶多项式R(x),其中,P=f,f为分布式系统所容错的节点数量,R(x)=r0+r1x+r2x2+…+rPxP,R(0)=D;并且,计算R(x)对应的承诺,g表示生成元,该承诺具体包括:g^r0、g^r1、…、g^rP;
数据分享方生成N个T阶多项式S(x),其中,i=1、2、…N,T=f,Si(x)=ri0+ri1x+ri2x2+…+riPxP,Si(i)=R(i);并且,计算Si(x)对应的承诺,该承诺包括:g^ri0、g^ri1、…、g^riP;
数据分享方计算Si(1)、Si(2)、…、Si(N);并且,生成针对R(x)对应的承诺与Si(x)对应的承诺,生成向量承诺C;
数据分享方构建第一消息并发送给节点i;第一消息包括:C、R(x)对应的承诺、Si(x)对应的承诺以及Si(1)、Si(2)、…、Si(N);
节点i在接收到第一消息之后,判断C是否正确,判断Si(1)、Si(2)、…、Si(N)是否正确,判断Si(x)是否等于R(i);若判断结果皆为是,则向节点j发送第二消息,其中,j=1、2、…N,第二消息包括:C、Sj(i)、Sj(x)对应的承诺;
节点j在接收到第二消息之后,验证第二消息,若验证通过,则向节点i发送第三消息;
节点i若获取到f+1个第三消息,且未发送第三消息,则广播第三消息;若接收到2f+1个第三消息,则等待f+1个第二消息,运用拉格朗日插值公式解出Si(x),并计算Si(i);其中,Si(i)为节点i所获取的秘密数据D的分片。
4.如权利要求3所述方法,还包括:
节点i响应于恢复秘密数据D的指令,向节点j发送Sj(j)与Sj(x)对应的承诺;
节点j在确定获取到f+1个正确的Sj(j)之后,将运用拉格朗日插值公式解出R(0),以恢复出秘密数据D。
5.一种密钥生成方法,用于实现分布式系统中的N个节点之间协商出共同公钥与每个节点的私钥,以便在N个节点中实现门限密码学算法;所述方法包括:
节点i作为秘密分享方,发起秘密数据分享流程,包括:将自己的待共享的秘密数据Di通过权利要求1-4任一项所述方法分享给分布式系统中的各个节点;其中,i=1、2、…N;
节点i若获取到节点j分享的秘密分享份额Dji,则调用节点j发起的偏向的异步拜占庭协议ABA流程,并且输入1;
节点i若确定N-f个节点发起的秘密数据分享流程完成,则调用全部未启动的ABA流程输入,并且输入0;
节点i若确定节点j发起的秘密数据分享流程完成,则重新调用节点j发起的ABA流程,并输入1;
节点i将输出为1的ABA流程归入第一集合,将第一集合中每个ABA流程所对应发起节点所发起的秘密数据分享流程归于第二集合;
节点i将第一集合中各个ABA流程分别对应的发起节点k所暴露的g^Dk的乘积,作为共同公钥,其中Dk为节点k分享的秘密;将第二集合中各个秘密数据分享流程分别分享给节点i的秘密数据分片求和,得到节点i的私钥。
6.如权利要求5所述方法,所述门限密码学算法包括以下之一:
门限签名、门限加密、门限公共抛币。
7.如权利要求5所述方法,所述ABA不依赖于公共抛币协议。
8.一种区块链系统,所述区块链系统包括多个节点,各节点基于权利要求5所述方法生成密钥。
9.如权利要求8所述系统,所述区块链系统为联盟链系统或公有链系统。
10.一种分布式系统,包括N个节点,所述分布式系统应用于权利要求1-6任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111653533.6A CN114422125B (zh) | 2021-12-30 | 2021-12-30 | 秘密数据共享、密钥生成方法及分布式系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111653533.6A CN114422125B (zh) | 2021-12-30 | 2021-12-30 | 秘密数据共享、密钥生成方法及分布式系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114422125A CN114422125A (zh) | 2022-04-29 |
CN114422125B true CN114422125B (zh) | 2023-08-18 |
Family
ID=81270267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111653533.6A Active CN114422125B (zh) | 2021-12-30 | 2021-12-30 | 秘密数据共享、密钥生成方法及分布式系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114422125B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116506123B (zh) * | 2023-06-27 | 2023-09-15 | 广州信安数据有限公司 | 基于公约协议的多主体数据共同体构建方法、介质及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9614676B1 (en) * | 2013-03-13 | 2017-04-04 | Hrl Laboratories, Llc | Cryptographically-secure packed proactive secret sharing (PPSS) protocol |
CN109120398A (zh) * | 2018-08-03 | 2019-01-01 | 河南师范大学 | 一种基于区块链系统的秘密共享方法与装置 |
CN112329051A (zh) * | 2020-10-23 | 2021-02-05 | 中国科学院数据与通信保护研究教育中心 | 一种安全高效的共识机制实现方法及系统 |
CN113612604A (zh) * | 2021-07-30 | 2021-11-05 | 北京航空航天大学 | 面向异步网络的安全分布式随机数生成方法及装置 |
-
2021
- 2021-12-30 CN CN202111653533.6A patent/CN114422125B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9614676B1 (en) * | 2013-03-13 | 2017-04-04 | Hrl Laboratories, Llc | Cryptographically-secure packed proactive secret sharing (PPSS) protocol |
CN109120398A (zh) * | 2018-08-03 | 2019-01-01 | 河南师范大学 | 一种基于区块链系统的秘密共享方法与装置 |
CN112329051A (zh) * | 2020-10-23 | 2021-02-05 | 中国科学院数据与通信保护研究教育中心 | 一种安全高效的共识机制实现方法及系统 |
CN113612604A (zh) * | 2021-07-30 | 2021-11-05 | 北京航空航天大学 | 面向异步网络的安全分布式随机数生成方法及装置 |
Non-Patent Citations (1)
Title |
---|
High-Threshold AVSS with Optimal Communication Complexity;Nicolas AlHaddad等;Financial Cryptography and Data Security;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114422125A (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109583887B (zh) | 一种区块链的交易方法和装置 | |
EP3859647B1 (en) | Blockchain transaction generation method and device | |
CN113765657B (zh) | 一种密钥数据处理方法、装置及服务器 | |
EP3937421B1 (en) | Blockchain integrated station and cryptographic acceleration card, key management methods and apparatuses | |
CN111556007B (zh) | 基于区块链的身份校验方法、装置、设备及存储介质 | |
CN110414567B (zh) | 数据处理方法、装置和电子设备 | |
CN111342963A (zh) | 数据上链方法、数据存储方法及装置 | |
CN113783935B (zh) | 一种拜占庭容错方法及装置 | |
CN111753335A (zh) | 区块内容的编辑方法及装置 | |
CN113794694B (zh) | 一种基于可靠广播的二元共识方法及装置 | |
CN116049626A (zh) | 一种数据统计方法、装置、设备以及存储介质 | |
CN113343283B (zh) | 一种数据处理方法 | |
CN114422125B (zh) | 秘密数据共享、密钥生成方法及分布式系统 | |
CN113783708A (zh) | 一种基于可靠广播的可再投票二元共识方法及装置 | |
CN114021198A (zh) | 一种保护数据隐私的确定共有数据的方法及装置 | |
CN113312630B (zh) | 实现可信调度的方法及装置 | |
CN113935737A (zh) | 基于区块链的随机数生成方法及装置 | |
CN110363528B (zh) | 协同地址的生成、交易签名方法及装置、存储介质 | |
CN115118411B (zh) | 链下多方可信计算方法、装置、设备及存储介质 | |
CN115834694A (zh) | 数据存储方法、装置、存储芯片及计算机可读存储介质 | |
CN115632777A (zh) | 数据处理方法及电子设备 | |
CN111383008B (zh) | 基于账户模型的区块链转账方法及装置 | |
CN114398651A (zh) | 秘密数据共享方法及分布式系统 | |
CN114826546A (zh) | 一种交易数据处理方法及装置 | |
CN113779627A (zh) | 基于区块链的合同隐私保护方法、存储介质及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |