CN107992582B - 一种基于锯齿解码的私有信息检索方法 - Google Patents
一种基于锯齿解码的私有信息检索方法 Download PDFInfo
- Publication number
- CN107992582B CN107992582B CN201711285422.8A CN201711285422A CN107992582B CN 107992582 B CN107992582 B CN 107992582B CN 201711285422 A CN201711285422 A CN 201711285422A CN 107992582 B CN107992582 B CN 107992582B
- Authority
- CN
- China
- Prior art keywords
- data packet
- round
- nodes
- node
- decoding
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Description
技术领域
本发明涉及一种私有信息检索方法,尤其涉及一种针对分布式存储系统的基于锯齿解码的稳健的私有信息检索方法。
背景技术
私有信息检索的大致过程如下:用户基于要查询的文件下标i生成k个查询请求,分别发送给k个服务器(为了隐藏i,在服务器看来,这些查询应当是关于下标i的随机函数)。各服务器根据收到的查询请求和本地数据库x计算查询结果返回给用户。最后用户根据收到的k个查询结果计算目标数据xi。
比如,1、B.Chor、O.Goldreich、E.Kushilevitz和M.Sudan首次提出了私有信息检索(private information retrieval,PIR)的概念,其目的是为了解决:用户向数据库提交查询时,在用户的查询信息不被泄漏的条件下完成查询。
2、B.Chor等人还设计了一个支持关键字检索的PIR方案,解决了以往PIR协议中用户需要知道信息在数据库(非加密数据库)的物理地址才能检索的问题,该方案通过使用哈希表或者二叉树等搜索结构将关键词和物理地址关联起来。
3、随着研究的发展,Kushilevitz和Ostrovsky提出基于二次剩余假设的,只需要一个服务器副本的,通信复杂度为O(n6)的协议。
4、基于编码数据库的私有信息检索方案可以节省更多的存储空间,并且提供更高的数据可靠性。D.Augot等人提出了一种利用多重码的几何特性的私有信息检索方案。N.Shah,K.Rashmi等人提出了一个额外的下载位可以确保隐私的私有信息检索方案。
5、R.Tajeddine等人提出了在分布式存储系统中使用(n,k)MDS码进行数据存储的私有信息检索方案,降低了通信成本。并且提出了分布式存储系统中可以存在最大n-k-1个没有响应的节点,在这些节点无响应的前提下,用户依旧可以检索出想要的文件。
但是,私有信息检索方案一直以来面临的最大问题是如何降低通信成本,其中包括上传成本和下载成本。B.Chor等人首次提出的私有信息检索方案考虑到为了确保隐私下载整个数据库是无法实现的,因为它具有非常高的通信成本。现有的研究未针对锯齿解码存储系统提出相应PIR方案。都是高进制存储,解码复杂度高。R.Tajeddine等人提出的可以存在最大n-k-1个无响应节点的私有信息检索方案是在高进制域进行的,存在复杂度过高的问题。并且没有系统的给出扩展到(n,k)中n-k-1个无响应节点的具体方案。此外,R.Tajeddine等人提出的方案只分析了接收随机向量的节点无响应和接收随机向量与检索向量组合的节点无响应,实际情况中,还有这两类节点同时无响应的可能。
也就是说,为了保证信息查询的安全性,通常采用私有信息检索(PIR)技术。私有信息检索是指用户在向数据库提交查询时,可以在用户的查询信息不被泄漏的条件下完成查询,能够为用户的隐私和数据安全提供保障。但是在实际情况中,可能会出现数据库中某些节点响应缓慢或者无响应,影响查询进程。
发明内容
本发明所要解决的技术问题是需要提供一种通信成本和复杂度较低,且数据存储的安全性和文件检索稳定性高的基于锯齿解码的稳健的私有信息检索方法。
对此,本发明提供一种基于锯齿解码的私有信息检索方法,包括以下步骤:
数据查询和下载步骤,生成随机向量u和检索向量ef,然后通过查询和校验实现文件的检索,其中,所述随机向量u独立于分布式存储系统的存储文件;所述检索向量ef的第f位为1,其余位均为0;所述随机向量u和检索向量ef的长度均为m;
数据解码步骤,根据所述数据查询和下载步骤所返回的数据包进行数据解码。
本发明的进一步改进在于,所述数据查询和下载步骤包括以下子步骤:
步骤S1,将随机向量u发送到系统节点,将随机向量u和检索向量ef的组合u+ef发送到奇偶校验节点;然后每个节点中存储的所有数据包根据发送的向量进行相应的移位,接着在二进制域相加,返回一个数据包;
步骤S2,根据无法返回数据包的无响应节点的节点数量v进行查询以实现文件的检索。
本发明的进一步改进在于,所述步骤S2包括以下子步骤:
步骤S201,当v=0时,通过步骤S1的一轮查询得到文件f;
步骤S202,当0<v≤n-k-1,且v个无响应节点全部为系统节点时,通过发送v+1轮查询得到检索文件;
步骤S203,当0<v≤n-k-1,且v个无响应节点全部为奇偶校验节点时,通过发送v+1轮查询得到检索文件;
步骤S204,当2≤v≤n-k-1,且v个无响应节点同时存在系统节点和奇偶校验节点时,通过发送k+1轮查询得到检索文件;
其中,k为系统数据包的数量,n为分布式存储系统的节点数量。
本发明的进一步改进在于,所述步骤S202中,当0<v≤n-k-1,且无响应的v个节点全部为系统节点时,通过步骤S1实现第一轮查询;然后进行v轮查询,所述v轮查询中,每轮查询依次选择一个不同的奇偶校验节点发送一个随机向量u和检索向量ef的组合,并向每轮剩余的n-v-1个响应节点发送相应的随机向量ur,进而实现文件的检索。
本发明的进一步改进在于,所述步骤S203中,当0<v≤n-k-1,且无响应的v个节点全部为奇偶校验节点时,通过步骤S1实现第一轮查询;然后进行v轮查询,所述v轮查询中,每轮查询依次选择一个不同的系统节点发送一个随机向量u和检索向量ef的组合,并向每轮剩余的n-v-1个响应节点发送相应的随机向量ur,进而实现文件的检索。
本发明的进一步改进在于,所述步骤S204中,当2≤v≤n-k-1,且v个无响应节点同时存在系统节点和奇偶校验节点时,通过步骤S1实现第一轮查询;设v个无响应节点中包含g个系统节点和v-g个奇偶校验节点,那么,在其中的g轮查询中,每轮查询依次从能响应的k-g个系统节点中选择一个系统节点发送一个不同的随机向量u和检索向量ef的组合;在剩余的k-g轮查询中,每轮查询依次从能响应的k-(v-g)个奇偶校验节点中选择一个奇偶校验节点发送一个不同的随机向量u和检索向量ef的组合,并向每轮剩余的n-v-1个响应节点发送相应的随机向量ur,进而实现文件的检索。
本发明的进一步改进在于,所述数据解码步骤包括以下子步骤:
步骤A2,当0<v≤n-k-1,且v个无响应节点全部为系统节点时,根据v+1轮查询返回的数据包实现解码;
步骤A3,当0<v≤n-k-1,且v个无响应节点全部为奇偶校验节点时,根据v+1轮查询返回的数据包实现解码;
步骤A4,当2≤v≤n-k-1,且v个无响应节点同时存在系统节点和奇偶校验节点时,根据k+1轮查询返回的数据包实现解码;
其中,所述步骤A1包括以下子步骤:
本发明的进一步改进在于,所述步骤A2包括以下子步骤:
步骤A203,设第二轮查询中向响应的奇偶校验节点h发送随机向量和检索向量的组合u2+ef,其余n-v-1个响应节点发送随机向量u2,那么首先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的看成一个数据包、看成一个数据包、…以及看成一个数据包,然后进行锯齿解码,得到未响应的系统节点在接收随机向量u2所返回的数据包;
步骤A204,将步骤A203得到的数据包与响应的系统节点返回的数据包依次按照矩阵T的第h-k行进行移位相加,得到数据包该数据包是节点h接收向量u2后返回的数据包,且与数据包相差一个ef位;然后将与中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到文件f对应矩阵T的第h-k行的奇偶校验数据包;
步骤A205,第三轮到第v+1轮查询返回的数据包重复步骤A203和步骤A204进行解码,则共可以得到v个关于文件f对应T矩阵不同行的奇偶校验数据包;
本发明的进一步改进在于,所述步骤A3包括以下子步骤:
步骤A301,设奇偶校验节点中的节点p、节点p+2、…以及节点p+(k-v)可以响应,那么得到数据包将第一轮系统节点返回的数据包根据矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行进行移位相加,得到数据包
步骤A302,将数据包与与…以及与中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到k-v个文件f对应矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行的奇偶校验数据包;
步骤A303,设第二轮查询中向响应的系统节点h发送随机向量和检索向量的组合u2+ef,其余n-v-1个响应节点发送随机向量u2,那么首先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的看成一个数据包、看成一个数据包、…以及看成一个数据包,然后进行锯齿解码,可以得到未响应系统节点接收随机向量u2后返回的数据包该数据包为节点h接收向量u2后返回的数据包;
步骤A306,将步骤A301至步骤A302得到的k-v个文件f对应矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行的奇偶校验数据包和步骤A303至步骤A305得到的v个不同的再一次进行锯齿解码,得到需检索的文件
本发明的进一步改进在于,所述步骤A4包括以下子步骤:
步骤A401,设系统节点c接收组合向量u2+ef,其返回的数据包为首先利用接收相同向量的n-v-1个节点返回值进行解码,将这n-v-1个数据包中的看成一个数据包、看成一个数据包、…以及看成一个数据包,然后进行锯齿解码,进而得到未响应系统节点接收随机向量u2后返回的数据包该数据包为节点c接收向量u2后返回的数据包;
步骤A404,设奇偶校验节点d接收组合向量ug+2+ef,其返回的数据包为先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的看成一个数据包、看成一个数据包、…以及看成一个数据包,然后进行锯齿解码,得到未响应的系统节点接收随机向量ug+2后返回的数据包;
步骤A405,将步骤A404得到的数据包与响应的系统节点返回的数据包依次按照矩阵T的第d-k行进行移位相加,得到数据包该数据包是节点d接收向量ug+2后返回的数据包,且与相差一个ef位;然后将数据包和数据包中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到文件f对应矩阵T的第d-k行的奇偶校验数据包;
步骤A406,第g+3轮到第k+1轮查询返回的数据包重复步骤A404和步骤A405进行解码,则共可以得到k-g个文件f对应矩阵T不同行的奇偶校验数据包;
与现有技术相比,本发明的有益效果在于:提出了一种基于锯齿解码的稳健的私有信息检索方法,在满足允许用户下载文件且不显示正在下载哪个文件的基本要求的同时,其通信成本和复杂度较低,本发明使用(n,k)CP-BZD码分布式存储系统来存储数据,具有分布式存储系统的性质,可以在任意n-k个节点同时发生故障时恢复出原始数据,增加了数据存储的安全性;最重要的是,本发明可以在最大n-k-1个节点无响应的情况下检索出想要的文件,保证了文件检索的稳定性。
附图说明
图1是本发明一种实施例的工作流程示意图;
图2是锯齿解码的工作原理示意图;
图3是本发明一种实施例的分布式存储系统的各节点存储数据包原理图;
图4是本发明一种实施例的数据查询和下载步骤的节点返回数据包原理图;
图5是本发明一种实施例在全部节点可以响应时的数据解码步骤的原理图;
图6是本发明一种实施例在无响应的节点全部为系统节点时第二轮数据解码的原理图;
图7是本发明一种实施例在无响应的节点全部为系统节点时移位相加解码的原理图;
图8是本发明一种实施例在无响应的节点全部为奇偶校验节点时的数据解码步骤的原理图;
图9是本发明一种实施例在无响应的节点包括系统节点和奇偶校验节点时的相位差移位解码的原理图;
图10是本发明一种实施例在无响应的节点包括系统节点和奇偶校验节点时的移位相加解码的原理图。
具体实施方式
下面结合附图,对本发明的较优的实施例作进一步的详细说明。
分布式存储系统(DSS)是将数据分散存储在多台独立的设备上。其可以节省存储空间,并且存储可靠性高、通信成本低。在分布式存储系统中,存在n个节点,存储m个文件。对于每个文件,DSS使用(n,k)CP-BZD码进行编码,然后将编码得到的n个数据包存储在n个不同的节点上,即每个节点存储一个编码包。
(n,k)CP-BZD码是具有CP性质的在二进制域可以进行锯齿解码的码,它可以容忍最多n-k个节点同时发生故障。把原始信息s分成k个长度为L比特的数据包,分别表示为s1,…,sk。si的第j个比特表示为si,j,且si,j∈{0,1}。根据(n,k)CP-BZD码,将这k个数据包编码成n个数据包,分别表示为c1,…,cn。此外,有ci=si,其中i=1,…,k。把前k个编码包称为系统包,其余n-k个数据包称为奇偶校验数据包。对应存储的节点分别称为系统节点和奇偶校验节点。这个设计应用于任意的(n,k)=(2k,k)。
具体的编码方式为:首先将原始k个数据包移位不同的比特数,然后在二进制域以比特方式相加生成奇偶校验数据包。每个数据包移位的位数由循环矩阵T表示。详细T的设计如下:
现有的锯齿解码方法如下:在解码过程中,首先试图找到一个暴露位,这个暴露位不与数据包中其他比特位的任何位重叠。它可以被视为恢复位。然后从其他奇偶校验数据包中减去该位。重复此过程,每个奇偶校验数据包的长度越来越短,直到所有位由于找不到暴露位而被恢复或者终止。
比如,如图2所示,假设,要从c3和c4恢复信息位。信息位恢复的顺序由相应括号内的数字表示。首先,c3和c4中的最左边的位分别是s11和s21,可以直接获得它们,因为它们不涉及与其他信息位的任何计算。它们可以被视为第一个和第二个恢复位,并分别在括号内索引为1和2。然后将s21替换为c3的第二位,并恢复s12。它是第三个恢复位,因此在括号内索引3。类似地,通过将s11代入c4的第二位,可以恢复s22,它是第四个恢复位,因此在括号内索引4。重复该解码过程,直到所有位都被恢复。
本例中,私有信息检索是指用户在向数据库提交查询时,在用户私有信息不被泄漏的情况下完成查询。在实际情况下,私有信息检索的过程中可能会出现节点响应缓慢或者无法响应的情况。因此,本例设计了一种方案,使得在v(0≤v≤n-k-1)个节点没有响应的情况下,用户仍然能够得到检索的文件。为了便于理解,本例通过使用(n,k)=(6,3)CP-BZD码举例表述。
假设一个DSS系统由n个节点组成,存储m个文件s1,…,sm,本例使用(n,k)CP-BZD码来存储文件。用户想要文件f,f可以是m个文件中的任意一个。为了在v个节点没有响应的情况下依旧得到文件f,需要向节点发送多轮查询。
比如,假设这个DSS系统由n=6个节点组成,存储m=3个文件,分别为s1,s2,s3。对于每个文件sz,平均分成k=3部分,即每部分长度为L=8比特,则的第j比特表示为其中i=1,…,3,j=1,…,8,z=1,…,3。根据CP-BZD码进行编码,分别得到其中系数z表示数据包的移位比特,z表示移一位,z2为移两位,以此类推。各节点存储数据包的情况如图3所示。
对比,如图1所示,本例提供一种基于锯齿解码的私有信息检索方法,包括以下步骤:
数据查询和下载步骤,生成随机向量u和检索向量ef,然后通过查询和校验实现文件的检索,其中,所述随机向量u独立于分布式存储系统的存储文件;所述检索向量ef的第f位为1,其余位均为0;所述随机向量u和检索向量ef的长度均为m;
数据解码步骤,根据所述数据查询和下载步骤所返回的数据包进行数据解码。
本例是基于锯齿解码的稳健的私有信息检索方案,它不仅可以允许用户下载文件的同时不显示正在下载哪个文件,同时可以在某些节点不响应的情况下检索出想要的文件。其通信成本和复杂度相对较低,且数据存储安全。
在之前提出的私有信息检索方案中,用户在此阶段生成两个长度m的向量。第一个向量为独立于存储文件的随机向量u=[u1,…,um]。第二个向量称为检索向量ef,它的第f位为1,其余位均为0,即ef=[0f-1,1,0m-f]。现在由于系统中存在v个无法响应的节点,那么为了得到检索文件,需要向节点发送额外的v或k轮查询,即总共需要发送v+1或k+1轮查询。因此需要生成更多的随机向量,即u2=[u2,1,…,u2,m],…,uv+1=[uv+1,1,…,uv+1,m],…,uk+1=[uk+1,1,…,uk+1,m]。设节点返回的数据包为且r=1,…,v+1,…,k+1,表示节点i在第r轮返回的数据包。其中系统节点返回奇偶校验节点返回
本例所述数据查询和下载步骤包括以下子步骤:
步骤S1,将随机向量u发送到系统节点,将随机向量u和检索向量ef的组合u+ef发送到奇偶校验节点;然后每个节点中存储的所有数据包根据发送的向量进行相应的移位,接着在二进制域相加,返回一个数据包;比如,设u=[0,1,1],假设用户想要文件3,则ef=[0,0,1]。节点返回的数据包分别为返回值如图4所示。
所述步骤S1中,每个节点中存储的所有数据包根据发送的向量进行相应的移位,这里的每个节点包括系统节点和奇偶校验节点在内的所有节点,这里的向量指的是根据节点所各自接收的向量,比如系统节点就接随机向量u,奇偶校验节点就接收随机向量u和检索向量ef的组合u+ef。
步骤S2,根据无法返回数据包的无响应节点的节点数量v进行查询以实现文件的检索。
本例所述步骤S2包括4个子步骤以分别对应4种情况,比如:假设数据库有v=2个节点无响应,且k=3,那么需要再生成3个随机向量,u2=[0,2,1],u3=[0,1,0],u4=[0,2,3]。
即,所述步骤S2包括以下子步骤:
步骤S201,当v=0时,即全部节点可以响应,此时只需通过步骤S1的一轮查询得到文件f;
步骤S202,当0<v≤n-k-1,且v个无响应节点全部为系统节点时,通过发送v+1轮查询得到检索文件;
步骤S203,当0<v≤n-k-1,且v个无响应节点全部为奇偶校验节点时,通过发送v+1轮查询得到检索文件;
步骤S204,当2≤v≤n-k-1,且v个无响应节点同时存在系统节点和奇偶校验节点时,通过发送k+1轮查询得到检索文件;
其中,k为系统数据包的数量,n为分布式存储系统的节点数量。
更为具体的,本例所述步骤S202中,当0<v≤n-k-1,且无响应的v个节点全部为系统节点时,通过步骤S1实现第一轮查询;然后进行v轮查询,所述v轮查询中,每轮查询依次选择一个不同的奇偶校验节点发送一个随机向量u和检索向量ef的组合,即第r轮中选择一个奇偶校验节点发送ur+ef,r=1,…,v+1,并向每轮剩余的n-v-1个响应节点发送相应的随机向量ur,进而实现文件的检索。如表1所示,表示节点无响应。
表1
假设系统节点1、2无响应,则共需要发送3轮查询,发送情况如表2所示。
表2
本例所述步骤S203中,当0<v≤n-k-1,且无响应的v个节点全部为奇偶校验节点时,通过步骤S1实现第一轮查询;然后进行v轮查询,所述v轮查询中,每轮查询依次选择一个不同的系统节点发送一个随机向量u和检索向量ef的组合,即第r轮中选择一个系统节点发送ur+ef,r=1,…,v+1,并向每轮剩余的n-v-1个响应节点发送相应的随机向量ur,进而实现文件的检索。如表3所示,表示节点无响应。
表3
假设奇偶校验节点4、5无响应,则共需要发送三轮,发送情况如图4所示。
表4
本例所述步骤S204中,当2≤v≤n-k-1,且v个无响应节点同时存在系统节点和奇偶校验节点时,通过步骤S1实现第一轮查询;设v个无响应节点中包含g个系统节点和v-g个奇偶校验节点,那么,在其中的g轮查询中,每轮查询依次从能响应的k-g个系统节点中选择一个系统节点发送一个不同的随机向量u和检索向量ef的组合;在剩余的k-g轮查询中,每轮查询依次从能响应的k-(v-g)个奇偶校验节点中选择一个奇偶校验节点发送一个不同的随机向量u和检索向量ef的组合,即第r轮中选择一个响应节点发送ur+ef,r=1,…,k+1,并向每轮剩余的n-v-1个响应节点发送相应的随机向量ur,进而实现文件的检索。如表5所示,表示节点无响应。
表5
假设系统节点1和奇偶校验节点4无响应,则共需要发送4轮,发送情况如表6所示。
表6
本例所述数据解码步骤包括以下子步骤:
步骤A2,当0<v≤n-k-1,且v个无响应节点全部为系统节点时,根据v+1轮查询返回的数据包实现解码;
步骤A3,当0<v≤n-k-1,且v个无响应节点全部为奇偶校验节点时,根据v+1轮查询返回的数据包实现解码;
步骤A4,当2≤v≤n-k-1,且v个无响应节点同时存在系统节点和奇偶校验节点时,根据k+1轮查询返回的数据包实现解码;
其中,所述步骤A1包括以下子步骤:
本例所述步骤A2包括以下子步骤:
步骤A202,因为v个系统节点无响应,那么首先利用剩下的k-v个能响应的系统节点返回的数据包进行解码。在全部节点都响应的情况分析中可知,和和分别在第f位相差一个移位。那么将k-v个能响应的系统节点返回的数据包和它们对应的中的要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到k-v个不同的数据包其中i=1,…,k;
步骤A203,利用第二轮接收的响应节点返回的数据包进行下一轮解码,设第二轮查询中向响应的奇偶校验节点h发送随机向量和检索向量的组合u2+ef,其余n-v-1个响应节点发送随机向量u2,那么首先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的看成一个数据包、看成一个数据包、…以及看成一个数据包,然后进行锯齿解码,得到未响应的系统节点在接收随机向量u2所返回的数据包;
比如,第二轮中,由表2可知,向节点4发送u2+ef=[0,2,2],向其他节点3、5、6发送随机向量u2=[0,2,1]。因为节点3、5、6接收的查询向量相同,那么将其返回值中的看成一个数据包,看成一个数据包,看成一个数据包,然后进行锯齿解码。得到如图6所示;
步骤A204,将步骤A203得到的数据包与响应的系统节点返回的数据包依次按照矩阵T的第h-k行进行移位相加,得到数据包该数据包是节点h接收向量u2后返回的数据包,且与数据包相差一个ef位;然后将与中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到文件f对应矩阵T的第h-k行的奇偶校验数据包;
步骤A205,第三轮到第v+1轮查询返回的数据包重复步骤A203和步骤A204进行解码,则共可以得到v个关于文件f对应T矩阵不同行的奇偶校验数据包;
当无响应的节点全部为奇偶校验节点时:v个奇偶校验节点无响应,用户需要发送v+1轮查询才可得到检索文件。根据v+1轮查询返回的数据包,本例所述步骤A3包括以下子步骤:
步骤A301,因为无响应的节点全部为奇偶校验节点,那么系统节点全部可以返回数据包,设奇偶校验节点中的节点p、节点p+2、…以及节点p+(k-v)可以响应,那么得到数据包将第一轮系统节点返回的数据包根据矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行进行移位相加,得到数据包
步骤A302,由步骤A301可知,和分别相差一个ef位,将数据包与与…以及与中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到k-v个文件f对应矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行的奇偶校验数据包;
步骤A303,利用第二轮接收的响应节点返回的数据包进行下一轮解码,设第二轮查询中向响应的系统节点h发送随机向量和检索向量的组合u2+ef,其余n-v-1个响应节点发送随机向量u2,那么首先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的看成一个数据包、看成一个数据包、…以及看成一个数据包,然后进行锯齿解码,可以得到未响应系统节点接收随机向量u2后返回的数据包该数据包为节点h接收向量u2后返回的数据包;
比如,第二轮中,由表4可知,向节点1发送u2+ef=[0,2,2],向其他节点2、3、6发送随机向量u2=[0,2,1]。因为节点2、3、6接收的查询向量相同,那么将其返回值中的看成一个数据包,看成一个数据包,看成一个数据包。进行锯齿解码,得到 理论上是节点1接收向量u2返回的数据包;
步骤A304,由上述步骤可知,步骤3得到的数据包与第二轮中响应节点h返回的数据包相差一个ef位,即在第f位相差一个移位,将数据包与数据包中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,可以得到数据包
步骤A306,将步骤A301至步骤A302得到的k-v个文件f对应矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行的奇偶校验数据包和步骤A303至步骤A305得到的v个不同的再一次进行锯齿解码,得到需检索的文件
当无响应的节点同时存在系统节点和奇偶校验节点时:假设有v个节点无响应,因为无响应的节点同时包含系统节点和奇偶校验节点,经验证,第一轮返回的数据包无法进行任何解码操作,所以用户共需要发送k+1轮查询才可得到检索文件。本例假设无响应的v个节点中包含g个系统节点和v-g个奇偶校验节点。
本例所述步骤A4包括以下子步骤:
步骤A401,利用第二轮接收的响应节点返回的数据包进行解码。由数据查询和下载阶段可知,第二轮查询中向其中一个能响应的系统节点发送u2+ef,其他能响应的n-v-1个节点发送u2,设系统节点c接收组合向量u2+ef,其返回的数据包为首先利用接收相同向量的n-v-1个节点返回值进行解码,将这n-v-1个数据包中的看成一个数据包、看成一个数据包、…以及看成一个数据包,然后进行锯齿解码,进而得到未响应系统节点接收随机向量u2后返回的数据包该数据包为节点c接收向量u2后返回的数据包;
比如,此例中,节点1、4无响应。由表6可知,向节点2发送向量u2+ef=[0,2,2],向其他节点3、5、6发送随机向量u2=[0,2,1]。因为节点3、5、6接收的查询向量相同,那么将其返回值中的看成一个数据包,看成一个数据包,看成一个数据包。进行锯齿解码,得到 理论上是节点2接收向量u2后返回的数据包;
步骤A404,接下来利用第g+2轮查询接收的响应节点返回的数据包进行解码。由数据查询和下载步骤可知,第g+2轮查询中向其中一个能响应的奇偶校验节点发送ug+2+ef,其他能响应的n-v-1个节点发送ug+2,设奇偶校验节点d接收组合向量ug+2+ef,其返回的数据包为先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的看成一个数据包、看成一个数据包、…以及看成一个数据包,然后进行锯齿解码,得到未响应的系统节点接收随机向量ug+2后返回的数据包;
比如,第四轮中,由表6可知,向节点5发送u4+ef=[0,2,4],向其他节点2、3、6发送随机向量u4=[0,2,3]。因为节点2、3、6接收的查询向量相同,那么将其返回值中的看成一个数据包,看成一个数据包,看成一个数据包。然后进行锯齿解码,得到
步骤A405,将步骤A404得到的数据包与响应的系统节点返回的数据包依次按照矩阵T的第d-k行进行移位相加,得到数据包该数据包是节点d接收向量ug+2后返回的数据包,且与相差一个ef位;然后将数据包和数据包中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到文件f对应矩阵T的第d-k行的奇偶校验数据包;
步骤A406,第g+3轮到第k+1轮查询返回的数据包重复步骤A404和步骤A405进行解码,则共可以得到k-g个文件f对应矩阵T不同行的奇偶校验数据包;
综上,本例提出了一种基于锯齿解码的稳健的私有信息检索方法,在满足允许用户下载文件且不显示正在下载哪个文件的基本要求的同时,其通信成本和复杂度较低,本发明使用(n,k)CP-BZD码分布式存储系统来存储数据,具有分布式存储系统的性质,可以在任意n-k个节点同时发生故障时恢复出原始数据,增加了数据存储的安全性;最重要的是,本发明可以在最大n-k-1个节点无响应的情况下检索出想要的文件,保证了文件检索的稳定性。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (9)
1.一种基于锯齿解码的私有信息检索方法,其特征在于,包括以下步骤:
数据查询和下载步骤,生成随机向量u和检索向量ef,然后通过查询和校验实现文件的检索,其中,所述随机向量u独立于分布式存储系统的存储文件;所述检索向量ef的第f位为1,其余位均为0;所述随机向量u和检索向量ef的长度均为m;
数据解码步骤,根据所述数据查询和下载步骤所返回的数据包进行数据解码;所述数据查询和下载步骤包括以下子步骤:
步骤S1,将随机向量u发送到系统节点,将随机向量u和检索向量ef的组合u+ef发送到奇偶校验节点;然后每个节点中存储的所有数据包根据发送的向量进行相应的移位,接着在二进制域相加,返回一个数据包;
步骤S2,根据无法返回数据包的无响应节点的节点数量v进行查询以实现文件的检索。
2.根据权利要求1所述的基于锯齿解码的私有信息检索方法,其特征在于,所述步骤S2包括以下子步骤:
步骤S201,当v=0时,通过步骤S1的一轮查询得到文件f;
步骤S202,当0<v≤n-k-1,且v个无响应节点全部为系统节点时,通过发送v+1轮查询得到检索文件;
步骤S203,当0<v≤n-k-1,且v个无响应节点全部为奇偶校验节点时,通过发送v+1轮查询得到检索文件;
步骤S204,当2≤v≤n-k-1,且v个无响应节点同时存在系统节点和奇偶校验节点时,通过发送k+1轮查询得到检索文件;
其中,k为系统数据包的数量,n为分布式存储系统的节点数量。
3.根据权利要求2所述的基于锯齿解码的私有信息检索方法,其特征在于,所述步骤S202中,当0<v≤n-k-1,且无响应的v个节点全部为系统节点时,通过步骤S1实现第一轮查询;然后进行v轮查询,所述v轮查询中,每轮查询依次选择一个不同的奇偶校验节点发送一个随机向量u和检索向量ef的组合,并向每轮剩余的n-v-1个响应节点发送相应的随机向量ur,进而实现文件的检索。
4.根据权利要求2所述的基于锯齿解码的私有信息检索方法,其特征在于,所述步骤S203中,当0<v≤n-k-1,且无响应的v个节点全部为奇偶校验节点时,通过步骤S1实现第一轮查询;然后进行v轮查询,所述v轮查询中,每轮查询依次选择一个不同的系统节点发送一个随机向量u和检索向量ef的组合,并向每轮剩余的n-v-1个响应节点发送相应的随机向量ur,进而实现文件的检索。
5.根据权利要求2所述的基于锯齿解码的私有信息检索方法,其特征在于,所述步骤S204中,当2≤v≤n-k-1,且v个无响应节点同时存在系统节点和奇偶校验节点时,通过步骤S1实现第一轮查询;设v个无响应节点中包含g个系统节点和v-g个奇偶校验节点,那么,在其中的g轮查询中,每轮查询依次从能响应的k-g个系统节点中选择一个系统节点发送一个不同的随机向量u和检索向量ef的组合;在剩余的k-g轮查询中,每轮查询依次从能响应的k-(v-g)个奇偶校验节点中选择一个奇偶校验节点发送一个不同的随机向量u和检索向量ef的组合,并向每轮剩余的n-v-1个响应节点发送相应的随机向量ur,进而实现文件的检索。
6.根据权利要求2至5任意一项所述的基于锯齿解码的私有信息检索方法,其特征在于,所述数据解码步骤包括以下子步骤:
步骤A2,当0<v≤n-k-1,且v个无响应节点全部为系统节点时,根据v+1轮查询返回的数据包实现解码;
步骤A3,当0<v≤n-k-1,且v个无响应节点全部为奇偶校验节点时,根据v+1轮查询返回的数据包实现解码;
步骤A4,当2≤v≤n-k-1,且v个无响应节点同时存在系统节点和奇偶校验节点时,根据k+1轮查询返回的数据包实现解码;
其中,所述步骤A1包括以下子步骤:
7.根据权利要求6所述的基于锯齿解码的私有信息检索方法,其特征在于,所述步骤A2包括以下子步骤:
步骤A203,设第二轮查询中向响应的奇偶校验节点h发送随机向量和检索向量的组合u2+ef,其余n-v-1个响应节点发送随机向量u2,那么首先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的看成一个数据包、看成一个数据包、…以及看成一个数据包,然后进行锯齿解码,得到未响应的系统节点在接收随机向量u2所返回的数据包;
步骤A204,将步骤A203得到的数据包与响应的系统节点返回的数据包依次按照矩阵T的第h-k行进行移位相加,得到数据包该数据包是节点h接收向量u2后返回的数据包,且与数据包相差一个ef位;然后将与中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到文件f对应矩阵T的第h-k行的奇偶校验数据包;
步骤A205,第三轮到第v+1轮查询返回的数据包重复步骤A203和步骤A204进行解码,则共可以得到v个关于文件f对应T矩阵不同行的奇偶校验数据包;
8.根据权利要求6所述的基于锯齿解码的私有信息检索方法,其特征在于,所述步骤A3包括以下子步骤:
步骤A301,设奇偶校验节点中的节点p、节点p+2、…以及节点p+(k-v)可以响应,那么得到数据包将第一轮系统节点返回的数据包根据矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行进行移位相加,得到数据包
步骤A302,将数据包与 与…以及与中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到k-v个文件f对应矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行的奇偶校验数据包;
步骤A303,设第二轮查询中向响应的系统节点h发送随机向量和检索向量的组合u2+ef,其余n-v-1个响应节点发送随机向量u2,那么首先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的看成一个数据包、看成一个数据包、…以及看成一个数据包,然后进行锯齿解码,可以得到未响应系统节点接收随机向量u2后返回的数据包该数据包为节点h接收向量u2后返回的数据包;
9.根据权利要求6所述的基于锯齿解码的私有信息检索方法,其特征在于,所述步骤A4包括以下子步骤:
步骤A401,设系统节点c接收组合向量u2+ef,其返回的数据包为首先利用接收相同向量的n-v-1个节点返回值进行解码,将这n-v-1个数据包中的看成一个数据包、看成一个数据包、…以及看成一个数据包,然后进行锯齿解码,进而得到未响应系统节点接收随机向量u2后返回的数据包该数据包为节点c接收向量u2后返回的数据包;
步骤A404,设奇偶校验节点d接收组合向量ug+2+ef,其返回的数据包为先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的看成一个数据包、看成一个数据包、…以及看成一个数据包,然后进行锯齿解码,得到未响应的系统节点接收随机向量ug+2后返回的数据包;
步骤A405,将步骤A404得到的数据包与响应的系统节点返回的数据包依次按照矩阵T的第d-k行进行移位相加,得到数据包该数据包是节点d接收向量ug+2后返回的数据包,且与相差一个ef位;然后将数据包和数据包中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到文件f对应矩阵T的第d-k行的奇偶校验数据包;
步骤A406,第g+3轮到第k+1轮查询返回的数据包重复步骤A404和步骤A405进行解码,则共可以得到k-g个文件f对应矩阵T不同行的奇偶校验数据包;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711285422.8A CN107992582B (zh) | 2017-12-07 | 2017-12-07 | 一种基于锯齿解码的私有信息检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711285422.8A CN107992582B (zh) | 2017-12-07 | 2017-12-07 | 一种基于锯齿解码的私有信息检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107992582A CN107992582A (zh) | 2018-05-04 |
CN107992582B true CN107992582B (zh) | 2021-01-29 |
Family
ID=62036721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711285422.8A Active CN107992582B (zh) | 2017-12-07 | 2017-12-07 | 一种基于锯齿解码的私有信息检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107992582B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019216872A1 (en) * | 2018-05-07 | 2019-11-14 | Google Llc | Private information retrieval with sublinear public-key operations |
CN110362610B (zh) * | 2019-07-09 | 2021-12-28 | 深圳大学 | 基于锯齿解码的适用于n<2k的信息检索方法 |
CN110362537B (zh) * | 2019-07-09 | 2021-12-28 | 深圳大学 | 基于锯齿解码的全参数私有信息检索方法 |
CN113114276B (zh) * | 2021-04-22 | 2022-08-05 | 深圳大学 | 一种基于循环移位的网络编解码方法、装置及相关组件 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107241414A (zh) * | 2017-06-09 | 2017-10-10 | 深圳大学 | 一种基于zigzag 解码的私人信息检索方法及系统 |
CN107317844A (zh) * | 2017-06-02 | 2017-11-03 | 深圳大学 | 基于锯齿可解码的最小存储开销的分布式存储方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7366100B2 (en) * | 2002-06-04 | 2008-04-29 | Lucent Technologies Inc. | Method and apparatus for multipath processing |
-
2017
- 2017-12-07 CN CN201711285422.8A patent/CN107992582B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107317844A (zh) * | 2017-06-02 | 2017-11-03 | 深圳大学 | 基于锯齿可解码的最小存储开销的分布式存储方法及系统 |
CN107241414A (zh) * | 2017-06-09 | 2017-10-10 | 深圳大学 | 一种基于zigzag 解码的私人信息检索方法及系统 |
Non-Patent Citations (2)
Title |
---|
Design of (4,8)Binary Code with MDS and Zigzag-decodable Property;Mingjun Dai等;《Wireless Personal Communications》;20160731;第89卷(第1期);1-13 * |
锯齿解码在分布式存储及无线通信中的研究;毛白露;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170715(第7期);I136-257 * |
Also Published As
Publication number | Publication date |
---|---|
CN107992582A (zh) | 2018-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107992582B (zh) | 一种基于锯齿解码的私有信息检索方法 | |
Kumar et al. | Achieving maximum distance separable private information retrieval capacity with linear codes | |
Fazeli et al. | Codes for distributed PIR with low storage overhead | |
Wang et al. | Symmetric private information retrieval for MDS coded distributed storage | |
US11182247B2 (en) | Encoding and storage node repairing method for minimum storage regenerating codes for distributed storage systems | |
CN111149093B (zh) | 分布式存储系统的数据编码、解码及修复方法 | |
Schwarz et al. | Store, forget, and check: Using algebraic signatures to check remotely administered storage | |
EP2278717A2 (en) | Decoding of chain reaction codes through inactivation of recovered symbols | |
US20050216813A1 (en) | Fixed content distributed data storage using permutation ring encoding | |
US20130204981A1 (en) | Url rescue by identifying information related to an item referenced in an invalid url | |
US20110103519A1 (en) | Systems and processes for decoding chain reaction codes through inactivation | |
Dikaliotis et al. | Security in distributed storage systems by communicating a logarithmic number of bits | |
Tajeddine et al. | Robust private information retrieval on coded data | |
US20050187898A1 (en) | Data Lookup architecture | |
Lin et al. | An MDS-PIR capacity-achieving protocol for distributed storage using non-MDS linear codes | |
CN114531220A (zh) | 一种基于前向和后向隐私的高效容错动态短语搜索方法 | |
Chen et al. | Secrecy coding for the binary symmetric wiretap channel | |
CN106464486A (zh) | 高效存储和无条件安全私有信息检索 | |
Gligoroski et al. | Repair duality with locally repairable and locally regenerating codes | |
CN106658034A (zh) | 文件存储和读取的方法及装置 | |
WO2021255668A1 (en) | A computer implemented method for the generation and management of codes. | |
CN108628697B (zh) | 一种基于二进制的节点修复方法及系统 | |
CN110362537B (zh) | 基于锯齿解码的全参数私有信息检索方法 | |
Swart et al. | Prefixless q-ary balanced codes with ECC | |
CN106877975B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210113 Address after: Room 3202, new ocean plastic factory, 14 Dafu Industrial Zone, Kukeng community, Guanlan street, Longhua District, Shenzhen City, Guangdong Province, 518109 Applicant after: Shenzhen Xianda data information technology Co.,Ltd. Address before: 518000 No. 3688 Nanhai Road, Shenzhen, Guangdong, Nanshan District Applicant before: SHENZHEN University |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |