CN114398651A - 秘密数据共享方法及分布式系统 - Google Patents
秘密数据共享方法及分布式系统 Download PDFInfo
- Publication number
- CN114398651A CN114398651A CN202111639386.7A CN202111639386A CN114398651A CN 114398651 A CN114398651 A CN 114398651A CN 202111639386 A CN202111639386 A CN 202111639386A CN 114398651 A CN114398651 A CN 114398651A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- fpcc
- message
- signature
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Abstract
本说明书一个或多个实施例提供一种秘密数据共享方法及分布式系统。数据分享方将待共享的秘密数据X利用特定转换方式转换成D,该特定转换方式为全有或全无转换(All‑Or‑Nothing Transform,AONT),具有AONT性质,即若已知D的全部,则可得到X,若不已知D的全部,则不可得到X。更严格的AONT性质为,若已知D的全部,则可得到X,若不已知D的全部,则不可获知X的任何信息。然后将D拆分成N个纠删码数据块,基于所述N个数据块中的M个数据块可得到。将N个数据块与fpcc分别分发给分布式系统中的N个节点。
Description
技术领域
本说明书一个或多个实施例涉及信息技术领域,尤其涉及一种秘密数据共享方法及分布式系统。
背景技术
在一些业务场景下,需要将一份秘密数据共享给N个节点,其中每个节点不能单独获得秘密数据,但是M个以上的节点可以共同恢复出秘密数据。然而在实际应用中,恶意攻击者可能控制接近M个节点,秘密数据存在被推测出的风险。
为此,需要一种能够防止秘密数据被推测出的秘密数据共享方案。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种秘密数据共享方法及分布式系统。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种秘密数据共享方法,包括:
数据分享方获取待共享的秘密数据X,并利用特定转换方式将X转换成D;其中,所述特定转换方式具有AONT性质,所述AONT性质包括:若已知D的全部,则可得到X,若不已知D的全部,则不可得到X;
数据分享方基于纠删码技术将D转换成N个数据块,其中,所述N个数据块包括Di,i=1、…、N,基于所述N个数据块中的M个数据块可得到D,N=M+2f,M>f,f为包括N个节点的分布式系统所容错的节点数量;
数据分享方生成用于验证数据块是否合法的特征交叉校验信息fpcc;其中,若数据块属于所述N个数据块,则数据块合法;
数据分享方将Di与fpcc分发给节点i。
在一些实施例中,所述AONT性质还包括:若不已知D的全部,则不可获知X的任何信息。
在一些实施例中,所述特定转换方式为OAEP函数。
在一些实施例中,数据分享方获取待共享的秘密数据X,包括:
数据分享方获取原始秘密数据Y,向Y中增加字符以扩展Y的长度;
根据扩展长度后的Y,确定待共享的秘密数据X。
在一些实施例中,根据扩展长度后的Y,确定待共享的秘密数据X,包括:
将扩展长度后的Y输入随机预言机函数或者随机抽取器函数,输出待共享的秘密数据X。
在一些实施例中,还包括:
节点i若在预设时间段内未接收到Di与fpcc,则确定数据分享失败。
在一些实施例中,数据分享方将Di与fpcc分发给节点i,包括:
节点i获取数据分享方构建的分发消息,该分发消息包括Di与fpcc;
节点i基于该分发消息中的fpcc验证Di是否合法,若合法,则基于预设生成规则,利用该分发消息中的fpcc生成已校验信息,并对已校验信息进行签名得到签名Si;
数据分享方获取节点i构建准备消息,该准备消息包括已校验信息与Si;并且,对该准备消息中的Si进行验证;
数据分享方若确定获取到至少M+f个准备消息包含相同的已校验信息,并且,该至少M+f个准备消息皆通过签名验证,则基于该至少M+f个准备消息中的签名,构建包含签名的结束消息并发送给节点i;
节点i在获取到分发需求方构建的结束消息之后,验证结束消息包含的签名,若验证通过,则确认Di与fpcc。
在一些实施例中,每个分发消息还包括分发流程标识,用于区分不同的待分发的数据的分发流程;
每个准备消息还包括分发流程标识,每个结束消息还包括分发流程标识。
在一些实施例中,利用该分发消息中的fpcc生成已校验信息,包括:
将该分发消息中的fpcc作为已校验信息;
或者
将该分发消息中的fpcc的哈希值作为已校验信息。
在一些实施例中,还包括:
各节点之间预先基于门限签名协议,约定共同的公钥PK与节点i的私钥SKi;其中,该门限签名协议的门限值≥M+f;
节点i对已校验信息进行签名得到签名Si,包括:
使用私钥SKi对已校验信息进行签名得到签名Si;
数据分享方基于该至少M+f个准备消息中的签名,构建包含签名的结束消息,包括:
基于门限签名协议,将该至少M+f个准备消息中的签名组合成门限签名S,并构建包含S的结束消息;
节点i验证结束消息包含的签名,包括:
节点i使用公钥PK验证S。
在一些实施例中,还包括:
节点i在存储Di与fpcc之后,生成数据安全证明,该数据安全证明至少包含:已校验信息、结束消息所包含的签名。
在一些实施例中,该数据安全证明还包含:
D对应的分发流程标识。
在一些实施例中,还包括:
节点i在确认Di与fpcc之后,存储Di与fpcc。
在一些实施例中,还包括:
节点i获取读取需求方发起的数据读取请求,该数据读取请求指定了待读取的数据D;
读取需求方若获取到至少M个节点分别返回的数据块与一致的fpcc,并且对于该至少M个节点中的每个节点,基于该节点存储的fpcc确定该节点存储的数据块合法,则基于该至少M个数据块,得到数据D;
将D转换成秘密数据X。
在一些实施例中,读取需求方是之前向分布式系统提交数据D的数据分享方;或者,读取需求方不是之前向分布式系统提交数据D的数据分享方;
若读取需求方不是之前向分布式系统提交数据D的分发需求方,则所述方法还包括:
读取需求方在发起数据读取请求之前,获取数据D对应的数据安全证明;
对该数据安全证明中的签名进行验证;
读取需求方发起的数据读取请求,包括:
读取需求方在确定对该数据安全证明中的签名进行验证并通过之后,发起的数据读取请求。
在一些实施例中,数据分享方将Di与fpcc分发给节点i,包括:
节点i获取数据分享方构建的分发消息,该分发消息包括分发流程标识、Di与fpcc;
节点i基于该分发消息中的fpcc验证Di是否合法,若合法,则构建响应消息并广播;该响应消息包括fpcc;
节点i若获取到至少M+f个响应消息,且该至少M+f个响应消息中的fpcc相同,则构建准备消息并广播;该准备消息包括fpcc;
节点i若获取到至少f+1个准备消息,且该至少f+1个准备消息中的fpcc相同,且自身未广播过准备消息,则广播准备消息;
节点i若获取到至少2f+1个准备消息,且该至少2f+1个准备消息中的fpcc相同,则确认数据分发完成。
根据本说明书一个或多个实施例的第二方面,提供一种分布式系统,包括N个节点,所述分布式系统应用于上述方法。
在上述技术方案中,数据分享方将待共享的秘密数据X利用特定转换方式转换成D,该特定转换方式为全有或全无转换(All-Or-Nothing Transform,AONT),具有AONT性质,即若已知D的全部,则可得到X,若不已知D的全部,则不可得到X。更严格的AONT性质为,若已知D的全部,则可得到X,若不已知D的全部,则不可获知X的任何信息。然后将D拆分成N个纠删码数据块,基于所述N个数据块中的M个数据块可得到。将N个数据块与fpcc分别分发给分布式系统中的N个节点。
如此,即便恶意攻击者可以控制分布式系统中的f个节点(f为分布式系统所容错的节点数量),并根据这f个节点上的数据块和fpcc对D进行推测,只要恶意攻击者不能获得D的全部信息,就无法进一步基于D恢复出秘密数据X。
进一步地,秘密数据X可以是将原始秘密数据Y的数据长度增加之后,根据长度增加之后的Y确定的。由于fpcc能够被恶意攻击者利用来推测D,且所能推测出的信息量与固定长度的fpcc相对于D数据的长度呈正比,因此,将原始秘密数据Y的数据长度增加之后得到X,由X转换成的D的数据长度也比较长,使得fpcc相对于D的长度很小,fpcc所能泄露的信息量可以忽略不计。
更进一步地,可以将扩展长度后的Y输入随机预言机函数或者随机抽取器函数,输出待共享的秘密数据X。此处的随机语言机函数例如可以是哈希函数,记为H;随机抽取器函数可以记为(Randomness Extractor,RE)函数。这样一来,X相当于是H(Y)或者RE(Y),这样可以将扩展长度后的原始秘密数据Y转换成固定长度的随机字符串,实现可证明安全。
另外,数据分享方可以基于依赖于时间假设的同步数据分发协议,将Di与fpcc分发给分布式系统中的节点i。节点i若在预设时间段内未接收到Di与fpcc,则确定数据分享失败。
数据分享方也可以基于不依赖于时间假设的异步数据分发协议,后文将会详细描述。
附图说明
图1示例性提供一种秘密数据共享方法的流程。
图2示例性提供OAEP函数的计算原理。
图3示例性提供了一种数据分发方法的实现过程。
图4示例性提供一种数据分发方法的流程。
图5示例性提供了另一种数据分发方法的实现过程。
图6示例性提供另一种数据分发方法的流程。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
本公开提供的各个实施例中的分布式系统包括N个节点,一般而言,为了使得分布式系统可以具有节点容错能力,通常需要假设所容错的节点数量f,然后基于f确定分布式系统中节点的数量,即N。对于拜占庭容错,N>3f即可,N至少为4。此外,分布式系统也可以不具有拜占庭容错能力(既兼容一定数量的宕机节点,也兼容一定数量的作恶节点),而是仅仅具有普通容错能力,既兼容一定数量的宕机节点存在,不能兼容一定数量的作恶节点存在,这种情况下,N>2f即可,N至少为3。为了描述的方便,后文以拜占庭容错的情况为例进行说明,在此基础上,本领域技术人员容易想到普通容错的情况的实施例。
还需要说明的是,本文中所述的节点可以具体为设备或设备集群,设备例如可以是服务器。另外,在后文的描述中,将宕机或者作恶的节点称为错误节点,将非错误节点称为正确的节点。
在下文中,采用如下描述规则:
f表示分布式系统所容错的节点数量,N表示分布式系统的节点数量。包括N在内的大写字母表示固定的数据或者固定的值,小写字母表示变量(f除外,属于特殊情况)。当描述小写字母所表示的变量时,意味着该变量需要将其可能的每个取值都分别赋予该变量。例如,节点i代表分布式系统中的每个节点,i的取值包括1到N中的多个数值或每个数值。
图1示例性提供一种秘密数据共享方法的流程,包括以下步骤:
S100:数据分享方获取待共享的秘密数据X,并利用特定转换方式将X转换成D。
此处的特定转换方式具有AONT性质,所述AONT性质包括:若已知D的全部,则可得到X,若不已知D的全部,则不可得到X。在一些实施例中,AONT性质还可以包括:若不已知D的全部,则不可获知X的任何信息。
在一些实施例中,使用的AONT转换可以具体为OAEP函数。此处对OAEP函数进行介绍。图2示例性提供OAEP函数的计算原理。我们假设x是OAEP函数的输入,x的长度为n比特,r是随机数,长度为k0比特,G、H表示哈希函数,⊕表示异或(xor)符号。可以看出,s与t是OAEP函数的输出,s=x异或G(r);t=r异或H(s)。
S101:数据分享方基于纠删码技术将D转换成N个数据块。
现有的纠删码技术可以理解为将一个数据转换成N个不同数据块,基于这N个数据块中的M个数据块就可以恢复出原始数据。其中,将待分发的数据记为D,N个数据块包括Di,i=1、…、N,基于所述N个数据块中的M个数据块可得到D,M<N,N=M+2f,M>f。
S102:数据分享方生成用于验证数据块是否合法的特征交叉校验信息fpcc。
现有的fpcc(finger-printed cross-checksum)技术可以实现对于任一数据块,验证该数据块是否属于利用纠删码技术从原数据中拆出的数据块。本文为了描述的方便,将数据块合法定义为数据块属于原始数据D的N个数据块之一。fpcc含有N个纠删码数据块的哈希,和M个纠删码数据块的全域哈希(universal hash function)。M个数据块的全域哈希需要保持纠删码数据块间的线性变换(linear combination)关系。
fpcc是一种数据结构,分发需求方在应用纠删码技术处理数据D时,可以生成fpcc。fpcc具体包括fpcc.fp(包含每一个数据块的泛哈希函数)和fpcc.cc(包含每一个数据块的哈希函数)。
S103:数据分享方将Di与fpcc分发给节点i。
步骤S102至步骤S103可以实现为不依赖时间假设的同步分发协议。节点i若在预设时间段内未接收到Di与fpcc,则确定数据分享失败。
此外需要说明的是,在步骤S103中,数据分享方可以通过认证和加密信道将Di与fpcc发送给节点i。
当需要恢复X时,节点i可以获取读取需求方发起的数据读取请求,该数据读取请求指定了待读取的数据D。然后,读取需求方若获取到至少M个节点分别返回的数据块与一致的fpcc,并且对于该至少M个节点中的每个节点,基于该节点存储的fpcc确定该节点存储的数据块合法,则基于该至少M个数据块,得到数据D。然后,可以将D转换成秘密数据X。
在上述技术方案中,数据分享方将待共享的秘密数据X利用特定转换方式转换成D,该特定转换方式为全有或全无转换(All-Or-Nothing Transform,AONT),具有AONT性质,即若已知D的全部,则可得到X,若不已知D的全部,则不可得到X。更严格的AONT性质为,若已知D的全部,则可得到X,若不已知D的全部,则不可获知X的任何信息。然后将D拆分成N个纠删码数据块,基于所述N个数据块中的M个数据块可得到。将N个数据块与fpcc分别分发给分布式系统中的N个节点。
如此,即便恶意攻击者可以控制分布式系统中的f个节点(f为分布式系统所容错的节点数量),并根据这f个节点上的数据块和fpcc对D进行推测,只要恶意攻击者不能获得D的全部信息,就无法进一步基于D恢复出秘密数据X。
进一步地,秘密数据X可以是将原始秘密数据Y的数据长度增加之后,根据长度增加之后的Y确定的。由于fpcc能够被恶意攻击者利用来推测D,且所能推测出的信息量与固定长度的fpcc相对于D数据的长度呈正比,因此,将原始秘密数据Y的数据长度增加之后得到X,由X转换成的D的数据长度也比较长,使得fpcc相对于D的长度很小,fpcc所能泄露的信息量可以忽略不计。
更进一步地,可以将扩展长度后的Y输入随机预言机函数或者随机抽取器函数,输出待共享的秘密数据X。此处的随机语言机函数例如可以是哈希函数,记为H;随机抽取器函数可以记为(Randomness Extractor,RE)函数。这样一来,X相当于是H(Y)或者RE(Y),这样可以将扩展长度后的原始秘密数据Y转换成固定长度的随机字符串,实现可证明安全。
此外,数据分享方也可以基于不依赖于时间假设的异步数据分发协议实现步骤S101-S103。
首先提供一种如图3所示的数据分发过程的数据分发方法,这种方法的特点在于,具有线性的消息复杂度,并且,并不是每个节点都可以知晓数据分发是否已经结束,不过,如果节点可以输出待分发数据D对应的安全证明的话,则可以表明数据分发已经结束。
图4示例性提供一种数据分发方法的流程,包括以下步骤:
S400:分发需求方基于纠删码技术将待分发的数据D转换成N个数据块。
分发需求方是指对数据分发有需求的一方,分发数据方可以是用户的客户端,也可以是分布式系统中的任一节点。
现有的纠删码技术可以理解为将一个数据转换成N个不同数据块,基于这N个数据块中的M个数据块就可以恢复出原始数据。其中,将待分发的数据记为D,N个数据块包括Di,i=1、…、N,基于所述N个数据块中的M个数据块可得到D,M<N,N=M+2f,M>f。
S401:分发需求方生成用于验证数据块是否合法的特征交叉校验信息fpcc。
现有的fpcc(finger-printed cross-checksum)技术可以实现对于任一数据块,验证该数据块是否属于利用纠删码技术从原数据中拆出的数据块。本文为了描述的方便,将数据块合法定义为数据块属于原始数据D的N个数据块之一。fpcc含有N个纠删码数据块的哈希,和M个纠删码数据块的全域哈希(universal hash function)。M个数据块的全域哈希需要保持纠删码数据块间的线性变换(linear combination)关系。
fpcc是一种数据结构,分发需求方在应用纠删码技术处理数据D时,可以生成fpcc。
S402:分布式系统的节点i获取分发需求方构建的分发消息。
此处需要说明,并不是分布式系统中的每个节点都必然会获取到分发需求方发送的分发消息,但是至少N-f个正确节点可以收到分发消息,因此,此处的节点i可以代表每个正确节点。
分发消息可以包括Di与fpcc,不同正确节点接收到的Di是不同的。
S403:节点i基于该分发消息中的fpcc验证Di是否合法,若合法,则基于预设生成规则,利用该分发消息中的fpcc生成已校验信息,并对已校验信息进行签名得到签名Si。
在一些实施例中,发呢发消息还可以包含分发流程标识,用于区分不同的待存储的数据的分发流程。
此处的预设生成规则可以是,将该分发消息中的fpcc作为已校验信息;或者将该分发消息中的fpcc的哈希值作为已校验信息。
如果验证不合法,则节点i可以不生成已校验信息,也就不会得到签名Si。
容易理解,不同正确节点得到的签名Si中i是不同的,因此签名Si也是不同的。
S404:分发需求方获取节点i构建准备消息,该准备消息包括已校验信息与Si;并且,对该准备消息中的Si进行验证。
如果前文所述的分发消息还包含分发流程标识,则每个准备消息还可以包含分发流程标识。
S405:分发需求方若确定获取到至少M+f个准备消息包含相同的已校验信息,并且,该至少M+f个准备消息皆通过签名验证,则基于该至少M+f个准备消息中的签名,构建包含签名的结束消息并发送给节点i。
如果前文所述的分发消息还包含分发流程标识,则每个结束消息还包括分发流程标识。
S406:节点i在获取到分发需求方构建的结束消息之后,验证结束消息包含的签名,若验证通过,则确认Di与fpcc。
此外,针对已校验信息采用的签名算法,可以是门限签名、普通签名或者聚合签名。
在一些实施例中,各节点之间可以预先基于门限签名协议,约定共同的公钥PK与节点i的私钥SKi;其中,该门限签名协议的门限值≥M+f。节点i可以使用私钥SKi对已校验信息进行签名得到签名Si。分发需求方可以基于门限签名协议,将该至少M+f个准备消息中的签名组合成门限签名S,并构建包含S的结束消息。节点i可以使用公钥PK验证S。
基于图4所示的数据分发方法,后续节点i获取读取需求方发起的数据读取请求,该数据读取请求指定了待读取的数据D;读取需求方若获取到至少M个节点分别返回的数据块与一致的fpcc,并且对于该至少M个节点中的每个节点,基于该节点存储的fpcc确定该节点存储的数据块合法,则基于该至少M个数据块,得到数据D;将D转换成秘密数据X。
在一些实施例中,读取需求方是之前向分布式系统提交数据D的数据分享方;或者,读取需求方不是之前向分布式系统提交数据D的数据分享方。若读取需求方不是之前向分布式系统提交数据D的分发需求方,则图4所示方法还包括:读取需求方在发起数据读取请求之前,获取数据D对应的数据安全证明;对该数据安全证明中的签名进行验证。读取需求方发起的数据读取请求,包括:读取需求方在确定对该数据安全证明中的签名进行验证并通过之后,发起的数据读取请求。
另外,还提供另一种异步的数据分发方法。这种数据分发方法中,由于各个节点间会相互广播消息,消息复杂度为O(n2),因此,每个节点都可以知晓数据分发是否已经结束。图5示例性提供了另一种数据分发方法的过程。
图6示例性提供另一种数据分发方法的流程,包括以下步骤:
S600:节点i获取数据分享方构建的分发消息。
该分发消息包括Di与fpcc。此外,该分发消息还可以包含分发流程标识。
S601:节点i基于该分发消息中的fpcc验证Di是否合法,若合法,则构建响应消息并广播。
该响应消息包括fpcc。此外,该响应消息还可以包括分发流程标识与响应流程标识。
S602:节点i若获取到至少M+f个响应消息,且该至少M+f个响应消息中的fpcc相同,则构建准备消息并广播。
该准备消息包括fpcc。此外,该准备消息还可以包括分发流程标识。
S603:节点i若获取到至少f+1个准备消息,且该至少f+1个准备消息中的fpcc相同,且自身未广播过准备消息,则广播准备消息。
S604:节点i若获取到至少2f+1个准备消息,且该至少2f+1个准备消息中的fpcc相同,则确认数据分发完成。
另外,本公开所提供的秘密数据分享方法,可以称为可验证的秘密共享协议,其中同步的可验证的秘密共享协议为VSS,异步的可验证的秘密共享协议为AVSS。
AVSS可以实现为密钥存储系统,密钥即是秘密数据。AVSS也可以实现可靠存储与可靠传输。
此外,所有的异步安全多方计算和拜占庭容错协议也都需要AVSS或VSS来实现。AVSS是隐私计算的核心,VSS是拜占庭容错协议和分布式系统的核心。
另外,本公开所提供的秘密数据分享方法中,每个正确节点(非容错的节点)都可以被分发到秘密数据对应的一个数据块,即便数据分享者是恶意的,不同用户从分布式系统中的任意M个正确节点处恢复的秘密数据都是一致的。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (13)
1.一种秘密数据共享方法,包括:
数据分享方获取待共享的秘密数据X,并利用特定转换方式将X转换成D;其中,所述特定转换方式具有AONT性质,所述AONT性质包括:若已知D的全部,则可得到X,若不已知D的全部,则不可得到X;
数据分享方基于纠删码技术将D转换成N个数据块,其中,所述N个数据块包括Di,i=1、…、N,基于所述N个数据块中的M个数据块可得到D,N=M+2f,M>f,f为包括N个节点的分布式系统所容错的节点数量;
数据分享方生成用于验证数据块是否合法的特征交叉校验信息fpcc;其中,若数据块属于所述N个数据块,则数据块合法;
数据分享方将Di与fpcc分发给节点i。
2.如权利要求1所述方法,所述AONT性质还包括:若不已知D的全部,则不可获知X的任何信息。
3.如权利要求1所述方法,所述特定转换方式为OAEP函数。
4.如权利要求1所述方法,数据分享方获取待共享的秘密数据X,包括:
数据分享方获取原始秘密数据Y,向Y中增加字符以扩展Y的长度;
根据扩展长度后的Y,确定待共享的秘密数据X。
5.如权利要求4所述方法,根据扩展长度后的Y,确定待共享的秘密数据X,包括:
将扩展长度后的Y输入随机预言机函数或者随机抽取器函数,输出待共享的秘密数据X。
6.如权利要求1所述方法,还包括:
节点i若在预设时间段内未接收到Di与fpcc,则确定数据分享失败。
7.如权利要求1所述方法,数据分享方将Di与fpcc分发给节点i,包括:
节点i获取数据分享方构建的分发消息,该分发消息包括Di与fpcc;
节点i基于该分发消息中的fpcc验证Di是否合法,若合法,则基于预设生成规则,利用该分发消息中的fpcc生成已校验信息,并对已校验信息进行签名得到签名Si;
数据分享方获取节点i构建准备消息,该准备消息包括已校验信息与Si;并且,对该准备消息中的Si进行验证;
数据分享方若确定获取到至少M+f个准备消息包含相同的已校验信息,并且,该至少M+f个准备消息皆通过签名验证,则基于该至少M+f个准备消息中的签名,构建包含签名的结束消息并发送给节点i;
节点i在获取到分发需求方构建的结束消息之后,验证结束消息包含的签名,若验证通过,则确认Di与fpcc。
8.如权利要求7所述方法,还包括:
各节点之间预先基于门限签名协议,约定共同的公钥PK与节点i的私钥SKi;其中,该门限签名协议的门限值≥M+f;
节点i对已校验信息进行签名得到签名Si,包括:
使用私钥SKi对已校验信息进行签名得到签名Si;
数据分享方基于该至少M+f个准备消息中的签名,构建包含签名的结束消息,包括:
基于门限签名协议,将该至少M+f个准备消息中的签名组合成门限签名S,并构建包含S的结束消息;
节点i验证结束消息包含的签名,包括:
节点i使用公钥PK验证S。
9.如权利要求7所述方法,还包括:
节点i在存储Di与fpcc之后,生成数据安全证明,该数据安全证明至少包含:已校验信息、结束消息所包含的签名。
10.如权利要求1所述方法,还包括:
节点i获取读取需求方发起的数据读取请求,该数据读取请求指定了待读取的数据D;
读取需求方若获取到至少M个节点分别返回的数据块与一致的fpcc,并且对于该至少M个节点中的每个节点,基于该节点存储的fpcc确定该节点存储的数据块合法,则基于该至少M个数据块,得到数据D;
将D转换成秘密数据X。
11.如权利要求10所述方法,读取需求方是之前向分布式系统提交数据D的数据分享方;或者,读取需求方不是之前向分布式系统提交数据D的数据分享方;
若读取需求方不是之前向分布式系统提交数据D的分发需求方,则所述方法还包括:
读取需求方在发起数据读取请求之前,获取数据D对应的数据安全证明;
对该数据安全证明中的签名进行验证;
读取需求方发起的数据读取请求,包括:
读取需求方在确定对该数据安全证明中的签名进行验证并通过之后,发起的数据读取请求。
12.如权利要求1所述方法,数据分享方将Di与fpcc分发给节点i,包括:
节点i获取数据分享方构建的分发消息,该分发消息包括Di与fpcc;
节点i基于该分发消息中的fpcc验证Di是否合法,若合法,则构建响应消息并广播;该响应消息包括fpcc;
节点i若获取到至少M+f个响应消息,且该至少M+f个响应消息中的fpcc相同,则构建准备消息并广播;该准备消息包括fpcc;
节点i若获取到至少f+1个准备消息,且该至少f+1个准备消息中的fpcc相同,且自身未广播过准备消息,则广播准备消息;
节点i若获取到至少2f+1个准备消息,且该至少2f+1个准备消息中的fpcc相同,则确认数据分发完成。
13.一种分布式系统,包括N个节点,所述分布式系统应用于权利要求1-12任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111639386.7A CN114398651B (zh) | 2021-12-29 | 2021-12-29 | 秘密数据共享方法及分布式系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111639386.7A CN114398651B (zh) | 2021-12-29 | 2021-12-29 | 秘密数据共享方法及分布式系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114398651A true CN114398651A (zh) | 2022-04-26 |
CN114398651B CN114398651B (zh) | 2023-07-28 |
Family
ID=81228745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111639386.7A Active CN114398651B (zh) | 2021-12-29 | 2021-12-29 | 秘密数据共享方法及分布式系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398651B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116484432A (zh) * | 2023-06-21 | 2023-07-25 | 杭州金智塔科技有限公司 | 基于多方安全计算的纵向联合查询方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020051597A (ko) * | 2000-12-23 | 2002-06-29 | 오길록 | 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법 |
CN111314090A (zh) * | 2020-03-25 | 2020-06-19 | 北京航空航天大学 | 一种基于比特级门限的安全多云端口令管理方法 |
CN113612604A (zh) * | 2021-07-30 | 2021-11-05 | 北京航空航天大学 | 面向异步网络的安全分布式随机数生成方法及装置 |
-
2021
- 2021-12-29 CN CN202111639386.7A patent/CN114398651B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020051597A (ko) * | 2000-12-23 | 2002-06-29 | 오길록 | 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법 |
CN111314090A (zh) * | 2020-03-25 | 2020-06-19 | 北京航空航天大学 | 一种基于比特级门限的安全多云端口令管理方法 |
CN113612604A (zh) * | 2021-07-30 | 2021-11-05 | 北京航空航天大学 | 面向异步网络的安全分布式随机数生成方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116484432A (zh) * | 2023-06-21 | 2023-07-25 | 杭州金智塔科技有限公司 | 基于多方安全计算的纵向联合查询方法及装置 |
CN116484432B (zh) * | 2023-06-21 | 2023-09-19 | 杭州金智塔科技有限公司 | 基于多方安全计算的纵向联合查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114398651B (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019204707B2 (en) | Program execution and data proof scheme using multiple key pair signatures | |
AU2019207311B2 (en) | Securely executing smart contract operations in a trusted execution environment | |
US11895248B2 (en) | Method and apparatus for generating blockchain transaction | |
US20200357005A1 (en) | Blockchain ledger-based evidence acquisition method and system | |
CN110998556A (zh) | 区块链网络中的数据隔离 | |
CN111066285A (zh) | 基于sm2签名恢复公钥的方法 | |
US10547441B2 (en) | Method and apparatus for restoring access to digital assets | |
US10686604B2 (en) | Key device, key cloud system, decryption method, and program | |
CN111786812A (zh) | 节点管理方法、装置、计算机设备和存储介质 | |
CN115225409B (zh) | 基于多备份联合验证的云数据安全去重方法 | |
KR101382626B1 (ko) | Id 기반의 강한 지정된 검증자 서명 시스템 및 방법 | |
CN112035574A (zh) | 一种基于区块链技术的隐私数据分布式存储方法 | |
US20150023498A1 (en) | Byzantine fault tolerance and threshold coin tossing | |
US11387990B2 (en) | Method and apparatus for generating description information | |
JP5972181B2 (ja) | 改ざん検知装置、改ざん検知方法、およびプログラム | |
CN114398651B (zh) | 秘密数据共享方法及分布式系统 | |
CN111984959B (zh) | 一种匿名信息发布及验证方法、装置 | |
Chakravarty et al. | Blockchain-enhanced identities for secure interaction | |
US11902451B2 (en) | Cross-blockchain identity and key management | |
US11750380B2 (en) | Storing and retrieving user data using joint, non-correlative, irreversible and private indexical expressions | |
Omote et al. | D2-POR: direct repair and dynamic operations in network coding-based proof of retrievability | |
CN114780987A (zh) | 数据分发、存储、读取、传输方法及分布式系统 | |
CN114782047A (zh) | 数据共识方法及分布式系统 | |
Mao et al. | Co-check: collaborative outsourced data auditing in multicloud environment | |
CN114415943B (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 |