CN107241414A - 一种基于zigzag 解码的私人信息检索方法及系统 - Google Patents
一种基于zigzag 解码的私人信息检索方法及系统 Download PDFInfo
- Publication number
- CN107241414A CN107241414A CN201710433563.3A CN201710433563A CN107241414A CN 107241414 A CN107241414 A CN 107241414A CN 201710433563 A CN201710433563 A CN 201710433563A CN 107241414 A CN107241414 A CN 107241414A
- Authority
- CN
- China
- Prior art keywords
- mtd
- node
- mrow
- packet
- mtr
- 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
Classifications
-
- 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]
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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/104—Peer-to-peer [P2P] networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于zigzag解码的私人信息检索方法及系统,属于计算机技术应用领域。本发明方法包括采用(n,k)MDS码存储文件步骤;生成一个随机向量U用于检索文件f步骤;解码并获取文件f步骤。本发明还提供了一种实现所述基于zigzag解码的私人信息检索方法的系统。本发明的有益效果为:在满足允许用户下载文件且不显示正在下载哪个文件等基本安全要求的同时,其通信成本和复杂度相对较低。并且在分布式存储系统中,可以在任意n‑k个节点同时发生故障时恢复出原始文件,增加了数据存储的安全性。
Description
技术领域
本发明涉及计算机技术应用领域,尤其涉及一种基于zigzag解码的私人信息检索方法,还涉及一种实现所述基于zigzag解码的私人信息检索方法的系统。
背景技术
为了保证信息查询的安全性,通常采用私有信息检索(PIR)技术。私有信息检索可以为用户的隐私和数据安全提供保障。
私有信息检索的大致过程如下:用户基于要查询的文件下标i生成k个查询请求,分别发送给k个服务器(为了隐藏i,在服务器看来,这些查询应当是关于下标i的随机函数)。各服务器根据收到的查询请求和本地数据库x计算查询结果返回给用户。最后用户根据收到的k个查询结果计算目标数据xi,现有的私有信息检索技术有主要以下几种。
1、目前效率最高的计算性的PIR协议是由Carlos Aguilar-Melchor和PhilippeGaborit于2007年提出的基于格的PIR协议。文章使用类似NTRU(一种公钥加密方法)的方法,对数据库服务器上的数据分块并构建矩阵形式。用户查询时首先生成若干符合一定要求的随机矩阵,然后对目标块和非目标块位置作不同的矩阵变换(乘积、替换等),并对得到的查询矩阵再作一次随机置换,然后将该查询矩阵发送给服务器。服务器利用本地数据作相应的矩阵乘运算后将结果向量返回给用户。用户再对该结果作相应的逆运算以获得目标数据块。
2、2009年Wang S.等将基于二次剩余的cPIR和k-匿名方法结合,提出了可供用户选择折中的灵活实用的Bounding-Box PIR协议。该协议考虑了信息泄露的概率,以一定的信息泄露来换取性能的提升。
3、Papadopoulos S.等提出了pCloud这样一个P2P的解决方案,使用网络上的其他节点共同解决计算性的PIR协议的计算复杂度高的问题。他们采用基于中国剩余定理的计算性的PIR协议,通过将数据分块并分发到网络中的不同节点,并让各节点共同执行计算任务,以此提高查询效率。
现有技术中存在以下问题:
1、基于格的PIR协议提出了Hidden Lattice Problem(HLP),证明其与已知的NP完全问题Punctured Code Problem在查询上的等价性。它指出协议的计算开销为对数据库中的每bit,仅需数千bit操作。这比起已知的计算性的PIR,计算开销降低了至少两个数量级。不过该协议的通信开销相对大些。
2、Bounding-Box PIR协议中并没有对隐私性给出定义及定量的分析。在私有信息检索问题的研究中,对用户的查询隐私性,不论信息论的PIR(要求达到保障用户的完全隐私)还是计算性的PIR(要求达到保障用户的计算性隐私),都要求完全的隐私保护。而完全隐私保护的代价就是高复杂度与不实用。我们需要在效率和隐私性之间寻找一个折中,这就需要一个对隐私性进行度量的方法。
3、Papadopoulos S.等提出的pCloud这样一个P2P的解决方案。在基于中国剩余定理的PIR协议中,对用户的每一个查询,服务器必须计算所有数据。且在这个分布式模式下,用户的每一个查询需要所有分块的计算结果来重构最终的查询结果。但是由于网络延时、节点失效等网络因素的存在,这并不容易。这种情况下,用户需要重新向服务器发送一次查询并由服务器执行最基本的非分布式的计算,导致更多的通信开销与计算开销。
因此,现有的研究都是高进制存储,解码复杂度高。
发明内容
为解决现有技术中的问题,本发明提供一种基于zigzag解码的私人信息检索方法,此方法针对锯齿解码存储系统提出相应的PIR方案,满足安全的同时,通信成本和复杂度相对较低,同时,本发明还提供了一种实现所述基于zigzag解码的私人信息检索方法的系统。
本发明方法包括如下步骤:
S1:采用(n,k)MDS码存储文件,包括:
分布式存储原始数据,将m个原始数据中的每个原始数据平均分成k个部分,然后将k部分分别存储在k个节点上,每个节点分别存储m个数据包,L表示每个数据包的长度,其中,a1,b1…表示第一个文件被分成的k部分,aij表示第一个节点存储的数据包中的数据,aij∈{0,1},i=1,2,…,m,j=1,2,…,L;
构建编码包,在原始数据后设有n-k(n>k)个编码包,由原始数据的k部分按照移位矩阵T中的数字移位后按位相与生成的码字构成,原始数据和编码包分别存储在n个节点上,其中,后n-k的每个节点中分别存储m个编码后的数据包;
S2:检索文件f,生成一个随机向量U,其中,U=(u1,u2,…um),向前k个节点发送移位向量Q=U,向后n-k个节点发送移位向量Q=U+Vf,其中Vf为第f位为1,其余位均为0的向量,获取返回值,其中,f=1,2,…,m;
S3:解码并获取文件f,将要检索的文件f的所有数据包及编码包当作一个数据包,其余文件当作另一个数据包,对返回值进行zigzag解码,直至获取文件f的k个部分数据包中所有的数据,即获取文件f。
本发明作进一步改进,在步骤S1中,移位矩阵T表示各数据包位移的比特数,移位矩阵T的表示公式为:
本发明作进一步改进,在步骤S1中,采用(n,k)=(4,2)MDS码来存储所有文件,即:将所有文件平均分成ai,bi两部分,分别存储在节点1和节点2上,其中i=1,2,…,m,数据包a1,b1表示第一个文件被分成的两部分,L表示每个数据包的长度,a1,b1数据包中的元素分别用a1j和b1j表示,其中,a1j表示a1中的第j个比特的信息,b1j表示bi中的第j个比特的信息,aij∈{0,1},bij∈{0,1},i=1,2,j=1,2,…,L;
将ai,bi按照移位矩阵矩阵进行移位,移位后按位相与,形成两个新的数据包ai+zbi和zai+bi,其中,z代表数据包的移位,z为移一位,z2为移两位,以此类推,生成的数据包ai+zbi和zai+bi分别存储在节点3和节点4上,i=1,2,…,m。
本发明作进一步改进,在步骤S2中,设节点1的返回值为I1,节点2的返回值为I2,节点3的返回值为I3,节点4的返回值为I4,其中,I3、I4分别为ai+zbi、zai+bi经过向量U+Vf的移位,设I3′、I4′分别为ai+zbi、zai+bi经过随机向量U的移位,根据向量U和U+Vf得到I3′、I4′和I3、I4的排列方式。
本发明作进一步改进,在步骤S3中,根据I1、I2、I3、I4、I3′和I4′进行zigzag解码,获取af和bf中所有数据的值,进而得到文件f。
本发明还提供了一种实现所述基于zigzag解码的私人信息检索方法的系统,包括存储模块:用于采用(n,k)MDS码存储文件,所述存储模块包括,
原始数据分布式存储单元:用于将m个原始数据中的每个原始数据平均分成k个部分,然后将k部分分别存储在k个节点上,每个节点分别存储m个数据包,L表示每个数据包的长度,其中,a1,b1…表示第一个文件被分成的k部分,aij表示第一个节点存储的数据包中的数据,aij∈{0,1},i=1,2,…,m,j=1,2,…,L,
编码包构建存储单元:用于在原始数据后设有n-k(n>k)个编码包,由原始数据的k部分按照移位矩阵T中的数字移位后按位相与生成的码字构成,原始数据和编码包分别存储在n个节点上,其中,后n-k的每个节点中分别存储m个编码后的数据包;
检索模块:用于检索文件f,生成一个随机向量U,其中,U=(u1,u2,…um),向前k个节点发送移位向量Q=U,向后n-k个节点发送移位向量Q=U+Vf,其中Vf为第f位为1,其余位均为0的向量,获取返回值,其中,f=1,2,…,m;
解码并获取文件模块:用于将要检索的文件f的所有数据包及编码包当作一个数据包,其余文件当作另一个数据包,对返回值进行zigzag解码,直至获取文件f的k个部分数据包中所有的数据,即获取文件f。
本发明作进一步改进,在存储模块中,移位矩阵T表示各数据包位移的比特数,移位矩阵T的表示公式为:
本发明作进一步改进,在存储模块中,采用(n,k)=(4,2)MDS码来存储所有文件,即:将所有文件平均分成ai,bi两部分,分别存储在节点1和节点2上,其中i=1,2,…,m,数据包a1,b1表示第一个文件被分成的两部分,L表示每个数据包的长度,a1,b1数据包中的元素分别用a1j和b1j表示,其中,a1j表示a1中的第j个比特的信息,b1j表示bi中的第j个比特的信息,aij∈{0,1},bij∈{0,1},i=1,2,j=1,2,…,L;
将ai,bi按照移位矩阵矩阵进行移位,移位后按位相与,形成两个新的数据包ai+zbi和zai+bi,其中,z代表数据包的移位,z为移一位,z2为移两位,以此类推,生成的数据包ai+zbi和zai+bi分别存储在节点3和节点4上,i=1,2,…,m。
本发明作进一步改进,在检索模块中,设节点1的返回值为I1,节点2的返回值为I2,节点3的返回值为I3,节点4的返回值为I4,其中,I3、I4分别为ai+zbi、zai+bi经过向量U+Vf的移位,设I3′、I4′分别为ai+zbi、zai+bi经过随机向量U的移位,根据向量U和U+Vf得到I3′、I4′和I3、I4的排列方式。
本发明作进一步改进,在解码并获取文件模块中,根据I1、I2、I3、I4、I3′和I4′进行zigzag解码,获取af和bf中所有数据的值,进而得到文件f。
与现有技术相比,本发明的有益效果是:在满足允许用户下载文件且不显示正在下载哪个文件等基本安全要求的同时,其通信成本和复杂度相对较低。并且在分布式存储系统中,可以在任意n-k个节点同时发生故障时恢复出原始文件,增加了数据存储的安全性。
附图说明
图1为本发明一实施例原始数据划分后分布示意图;
图2为本发明一实施例中数据包按照移位矩阵T编码后编码包结构示意图;
图3为本发明一实施例按照(4,2)MDS码存储示意图;
图4为各个节点数据根据移位向量移位示意图;
图5为各个节点数据根据移位向量返回I1、I2、I3、I4数据结构示意图;
图6为I3′、I4′结构示意图;
图7为根据I3和I3′数据进行zigzag解码示意图;
图8为获取af和bf中所有数据值的zigzag解码示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步详细说明。
本发明在私有信息检索(PIR)的基础上,使用分布式存储系统(DSS)来请求数据的隐私问题,所述分布式存储系统(DSS)是将数据分散存储在多台独立的设备上。从而可以节省存储空间,并且存储可靠性高、通信成本低。
本例的基于zigzag(锯齿)解码的私人信息检索方法包括如下步骤:
S1:采用(n,k)MDS码存储文件,本例在存储原始数据时,采用可以容忍最多n-k个节点同时发生故障的(n,k)MDS码。MDS码具有MDS(最大距离可分)性质,也就是说,k个分组的原数据映射到n(n≥k)分组数据,其中这n个数据中任意k个都可以完全重建原n个分组数据。即原始信息流被拆分成k个等长的数据包并被编码成n个数据包,这n个数据包中的任意k个都可以恢复原始信息。言外之意,只要剩余完好节点个数不少于k个即可恢复原有的数据。
所述存储步骤具体包括以下两部分:
(1)分布式存储原始数据,将m个原始数据中的每个原始数据平均分成k个部分,然后将k部分分别存储在k个节点上,每个节点分别存储m个数据包,L表示每个数据包的长度,其中,a1,b1…表示第一个文件被分成的k部分,如果有四个文件,则分别为a1,b1,c1,d1,其中,aij表示第一个节点存储的数据包中的数据,aij∈{0,1},i=1,2,…,m,j=1,2,…,L。
(2)构建编码包,在原始数据后设有n-k(n>k)个编码包,由原始数据的k部分按照移位矩阵T中的数字移位后按位相与生成的码字构成,原始数据和编码包分别存储在n个节点上,其中,后n-k的每个节点中分别存储m个编码后的数据包。
所述移位矩阵T为各数据包位移的比特数,移位矩阵T的表示公式为:
本例不仅允许最大n-k个节点同时发生故障,数据安全性高,并且它有最小的存储开销,简化了存储分配过程。
同时,在DSS中,会有一定数量的间谍节点,这些间谍节点可以将用户的请求报告给压迫者,或将这些信息出售给感兴趣的第三方。但是,间谍节点不能访问其他非间谍节点的信息。本例称cPoP(communication Price of Privacy)为隐私的通信成本,它是下载阶段从节点发送到用户的比特总数与所请求文件的大小的比率。设间谍节点为的个数为x,当x=1的时候,有其中是码率。当间谍节点2≤x≤n-k时,有通信成本cPoP=x+k。
S2:检索文件f,生成一个随机向量U,其中,U=(u1,u2,…um),向前k个节点发送移位向量Q=U,向后n-k个节点发送移位向量Q=U+Vf,其中Vf为第f位为1,其余位均为0的向量,获取返回值,其中,f=1,2,…,m;
S3:解码并获取文件f,将要检索的文件f的所有数据包及编码包当作一个数据包,其余文件当作另一个数据包,对返回值进行zigzag解码,直至获取文件f的k个部分数据包中所有的数据,即获取文件f。
作为本发明的一个实施例,本例考虑间谍节点的数量x为1的情况,本例假设DSS由n=4个节点组成,采用(n,k)=(4,2)MDS码来存储所有文件。首先,将所有文件平均分成ai,bi两部分,分别存储在节点1和节点2上,其中i=1,2,…,m,数据包a1,b1表示第一个文件被分成的两部分,L表示每个数据包的长度,如图1所示。a1,b1数据包中的元素分别用a1j和b1j表示,其中,a1j表示a1中的第j个比特的信息,b1j表示bi中的第j个比特的信息,aij∈{0,1},bij∈{0,1},i=1,2,j=1,2,…,L。
其次,将a1,b1按照移位矩阵矩阵进行移位,移位后按位相与,形成两个新的数据包,并将a1,b1作为4个编码包的前2个包,ai+zbi和zai+bi,其中,z代表数据包的移位,z为移一位,z2为移两位,以此类推,位移后得到数据包a1+zb1和za1+b1,这里将数据包a1+zb1和za1+b1分别当做一个整体,其中z代表数据包的移位,z为移一位,z2为移两位,位移后得到的数据包如图2所示。以此类推,其他文件按照相同的方式进行移位,然后按位相与,最后生成的数据包ai+zbi和zai+bi分别存储在节点3和节点4上,i=1,2,…,m。
本例假设存储的文件m=3,数据的长度L=8,那么数据包在各个节点中存储的情况如图3所示。
在步骤S2中,假设用户希望获取文件f,即af和bf,f可以是m文件中的任意一个。此时,生成一个和存储的文件相互独立的随机向量U,其中,U=(u1,u2,…um),并向节点1和节点2发送移位向量Q=U,向节点3和节点4发送移位向量Q=U+Vf,其中Vf为第f位为1,其余位均为0的向量。即让第3个节点和第4个节点内的数据在位移U的基础上,af+zbf和zaf+bf再多位移一位。
作为本发明的一个实施例,本例假设随机向量U=[0 1 1],用户想要获取文件f=3,则Vf=[0 0 1]。那么向节点1和节点2发送Q=U,向节点3和节点4发送Q=U+Vf进行移位。设节点1的返回值为I1,节点2的返回值为I2,节点3的返回值为I3,节点4的返回值为I4。处理过程如图4所示。
其中,I1、I2分别为ai、bi经过向量U移位后的数据包,I3、I4分别为将ai+zbi、zai+bi分别看做一个整体后,经过向量U+Vf移位后的数据包。其中,I1、I2、I3、I4的结构如图5所示。
设I3′为I1、I2经过T矩阵第一行移位后的数据包,I4′为I1、I2经过T矩阵第二行移位后的数据包。所以I3′、I4′实质上是ai+zbi、zai+bi经过向量U的移位,同时I3、I4是经过向量U+Vf的移位。那么可以根据向量U和U+Vf得到I3′、I4′和I3、I4的排列方式,其中I3′和I3、I4′和I4仅在第f位相差一个移位。由于用户要检索文件f,那么把要检索的文件看成一个数据包,其余文件看成另一个数据包,可以进行解码。将I3′、I4′按照I3、I4的排列顺序进行排列,如图6所示。
步骤S3:在I3和I3′两个数据包中,把要检索的文件3看成一个数据包,其余文件看成另一个数据包。即,将a3、b3看成一个数据包a3+zb3,将a1、b1、a2、b2看成一个数据包a1+zb1+za2+z2b2。进行zigzag解码,解码过程如图7所示。由I3可以得到a11和a12+b11+a21,由I3′可以得到a11;将a12+b11+a21代入I3′可以得到a31,再将a31代入I3中可以得到a13+b12+a22+b21;再将得到的a13+b12+a22+b21代入I3′得到a32+b31,……,直到得到a3+zb3的值。同理,I4和I4′进行解码可以得到za3+b3。
然后,将得到的a3+zb3和za3+b3两个数据包再利用zigzag解码,如图8所示。由a3+zb3、za3+b3的第1位获得a31、b31;把a31、b31分别代入za3+b3、a3+zb3进而获得b32、a32;再将a32、b32分别代入za3+b3、a3+zb3进而获得b33、a33,……,直至获得所有a3、b3的数值,即获得文件3。
本例中,采用的间谍节点x=1的情况,由于间谍节点无法访问非间谍节点的信息,那么分析如下:
当间谍节点为节点1(或节点2)的时候,间谍节点可以获取的信息为U及I1(或I2),由于U是随机向量,所以无法确定用户想要的信息。
当间谍节点为节点3(或节点4)的时候,间谍节点可以获取的信息为U+Vf及I3(或I4),由于U是随机向量,那么也无法确定U+Vf的值以及用户想要的的文件信息。
另外,在用一个(n,k)=(4,2)MDS码存储的情况下,通信成本它不取决于系统中文件的存储数量。
作为本发明的另一个实施例,若将全部文件平均分成ai,bi,ci三部分,i=1,2,…,m,则根据矩阵进行移位编码,也可以验证x=1时PIR方案的适用性。故而在采用一个(n,k)MDS码来存储文件的情况下,此PIR方案具有通用性。它不仅可以使数据存储更加安全,而且此方案复杂度更低。
本发明是基于zigzag解码的私人信息检索,它可以允许用户下载文件的同时不显示正在下载哪个文件,同时确保隐私即使间谍节点发生共谋盗取用户信息。其通信成本和复杂度相对较低,数据存储相对安全。
本发明还提供了一种实现所述基于zigzag解码的私人信息检索方法的系统,包括存储模块:用于采用(n,k)MDS码存储文件,所述存储模块包括,
原始数据分布式存储单元:用于将m个原始数据中的每个原始数据平均分成k个部分,然后将k部分分别存储在k个节点上,每个节点分别存储m个数据包,L表示每个数据包的长度,其中,a1,b1…表示第一个文件被分成的k部分,aij表示第一个节点存储的数据包中的数据,aij∈{0,1},i=1,2,…,m,j=1,2,…,L,
编码包构建存储单元:用于在原始数据后设有n-k(n>k)个编码包,由原始数据的k部分按照移位矩阵T中的数字移位后按位相与生成的码字构成,原始数据和编码包分别存储在n个节点上,其中,后n-k的每个节点中分别存储m个编码后的数据包;
检索模块:用于检索文件f,生成一个随机向量U,其中,U=(u1,u2,…um),向前k个节点发送移位向量Q=U,向后n-k个节点发送移位向量Q=U+Vf,其中Vf为第f位为1,其余位均为0的向量,获取返回值,其中,f=1,2,…,m;
解码并获取文件模块:用于将要检索的文件f的所有数据包及编码包当作一个数据包,其余文件当作另一个数据包,对返回值进行zigzag解码,直至获取文件f的k个部分数据包中所有的数据,即获取文件f。
其中,在存储模块中,移位矩阵T表示各数据包位移的比特数,移位矩阵T的表示公式为:
作为本发明的一个实施例,在存储模块中,采用(n,k)=(4,2)MDS码来存储所有文件,即:将所有文件平均分成ai,bi两部分,分别存储在节点1和节点2上,其中i=1,2,…,m,数据包a1,b1表示第一个文件被分成的两部分,L表示每个数据包的长度,a1,b1数据包中的元素分别用a1j和b1j表示,其中,a1j表示a1中的第j个比特的信息,b1j表示bi中的第j个比特的信息,aij∈{0,1},bij∈{0,1},i=1,2,j=1,2,…,L。
将ai,bi按照移位矩阵矩阵进行移位,移位后按位相与,形成两个新的数据包ai+zbi和zai+bi,其中,z代表数据包的移位,z为移一位,z2为移两位,以此类推,生成的数据包ai+zbi和zai+bi分别存储在节点3和节点4上,i=1,2,…,m。
在检索模块中,设节点1的返回值为I1,节点2的返回值为I2,节点3的返回值为I3,节点4的返回值为I4,其中,I3、I4分别为ai+zbi、zai+bi经过向量U+Vf的移位,设I3′、I4′分别为ai+zbi、zai+bi经过随机向量U的移位,根据向量U和U+Vf得到I3′、I4′和I3、I4的排列方式。
在解码并获取文件模块中,根据I1、I2、I3、I4、I3′和I4′进行zigzag解码,获取af和bf中所有数据的值,进而得到文件f。
综上,本发明在满足允许用户下载文件且不显示正在下载哪个文件等基本安全要求的同时,其通信成本和复杂度相对较低。并且在分布式存储系统中,可以在任意n-k个节点同时发生故障时恢复出原始文件,增加了数据存储的安全性。
以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。
Claims (10)
1.一种基于zigzag解码的私人信息检索方法,其特征在于包括如下步骤:
S1:采用(n,k)MDS码存储文件,包括:
分布式存储原始数据,将m个原始数据中的每个原始数据平均分成k个部分,然后将k部分分别存储在k个节点上,每个节点分别存储m个数据包,L表示每个数据包的长度,其中,a1,b1…表示第一个文件被分成的k部分,aij表示第一个节点存储的数据包中的数据,aij∈{0,1},i=1,2,…,m,j=1,2,…,L;
构建编码包,在原始数据后设有n-k(n>k)个编码包,由原始数据的k部分按照移位矩阵T中的数字移位后按位相与生成的码字构成,原始数据和编码包分别存储在n个节点上,其中,后n-k的每个节点中分别存储m个编码后的数据包;
S2:检索文件f,生成一个随机向量U,其中,U=(u1,u2,…um),向前k个节点发送移位向量Q=U,向后n-k个节点发送移位向量Q=U+Vf,其中Vf为第f位为1,其余位均为0的向量,获取返回值,其中,f=1,2,…,m;
S3:解码并获取文件f,将要检索的文件f的所有数据包及编码包当作一个数据包,其余文件当作另一个数据包,对返回值进行zigzag解码,直至获取文件f的k个部分数据包中所有的数据,即获取文件f。
2.根据权利要求1所述的基于zigzag解码的私人信息检索方法,其特征在于:在步骤S1中,移位矩阵T表示各数据包位移的比特数,移位矩阵T的表示公式为:
<mrow>
<mi>T</mi>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mn>3</mn>
</mtd>
<mtd>
<mn>6</mn>
</mtd>
<mtd>
<mn>10</mn>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<mfrac>
<mrow>
<mi>k</mi>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
<mn>2</mn>
</mfrac>
</mtd>
</mtr>
<mtr>
<mtd>
<mfrac>
<mrow>
<mi>k</mi>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
<mn>2</mn>
</mfrac>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mn>3</mn>
</mtd>
<mtd>
<mn>6</mn>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<mfrac>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
<mo>)</mo>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
<mn>2</mn>
</mfrac>
</mtd>
</mtr>
<mtr>
<mtd>
<mfrac>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
<mo>)</mo>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
<mn>2</mn>
</mfrac>
</mtd>
<mtd>
<mfrac>
<mrow>
<mi>k</mi>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
<mn>2</mn>
</mfrac>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mn>3</mn>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<mfrac>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>2</mn>
<mo>)</mo>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
<mn>2</mn>
</mfrac>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mn>3</mn>
</mtd>
<mtd>
<mn>6</mn>
</mtd>
<mtd>
<mn>10</mn>
</mtd>
<mtd>
<mn>15</mn>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>.</mo>
</mrow>
3.根据权利要求2所述的基于zigzag解码的私人信息检索方法,其特征在于:在步骤S1中,采用(n,k)=(4,2)MDS码来存储所有文件,即:将所有文件平均分成ai,bi两部分,分别存储在节点1和节点2上,其中i=1,2,…,m,数据包a1,b1表示第一个文件被分成的两部分,L表示每个数据包的长度,a1,b1数据包中的元素分别用a1j和b1j表示,其中,a1j表示a1中的第j个比特的信息,b1j表示bi中的第j个比特的信息,aij∈{0,1},bij∈{0,1},i=1,2,j=1,2,…,L;
将ai,bi按照移位矩阵矩阵进行移位,移位后按位相与,形成两个新的数据包ai+zbi和zai+bi,其中,z代表数据包的移位,z为移一位,z2为移两位,以此类推,生成的数据包ai+zbi和zai+bi分别存储在节点3和节点4上,i=1,2,…,m。
4.根据权利要求3所述的基于zigzag解码的私人信息检索方法,其特征在于:在步骤S2中,设节点1的返回值为I1,节点2的返回值为I2,节点3的返回值为I3,节点4的返回值为I4,其中,I3、I4分别为ai+zbi、zai+bi经过向量U+Vf的移位,设I3′、I4′分别为ai+zbi、zai+bi经过随机向量U的移位,根据向量U和U+Vf得到I3′、I4′和I3、I4的排列方式。
5.据权利要求1所述的基于zigzag解码的私人信息检索方法,其特征在于:在步骤S3中,根据I1、I2、I3、I4、I3′和I4′进行zigzag解码,获取af和bf中所有数据的值,进而得到文件f。
6.一种实现权利要求1-5任一项所述基于zigzag解码的私人信息检索方法的系统,其特征在于包括:
存储模块:用于采用(n,k)MDS码存储文件,所述存储模块包括,
原始数据分布式存储单元:用于将m个原始数据中的每个原始数据平均分成k个部分,然后将k部分分别存储在k个节点上,每个节点分别存储m个数据包,L表示每个数据包的长度,其中,a1,b1…表示第一个文件被分成的k部分,aij表示第一个节点存储的数据包中的数据,aij∈{0,1},i=1,2,…,m,j=1,2,…,L,
编码包构建存储单元:用于在原始数据后设有n-k(n>k)个编码包,由原始数据的k部分按照移位矩阵T中的数字移位后按位相与生成的码字构成,原始数据和编码包分别存储在n个节点上,其中,后n-k的每个节点中分别存储m个编码后的数据包;
检索模块:用于检索文件f,生成一个随机向量U,其中,U=(u1,u2,…um),向前k个节点发送移位向量Q=U,向后n-k个节点发送移位向量Q=U+Vf,其中Vf为第f位为1,其余位均为0的向量,获取返回值,其中,f=1,2,…,m;
解码并获取文件模块:用于将要检索的文件f的所有数据包及编码包当作一个数据包,其余文件当作另一个数据包,对返回值进行zigzag解码,直至获取文件f的k个部分数据包中所有的数据,即获取文件f。
7.根据权利要求6所述的系统,其特征在于:在存储模块中,移位矩阵T表示各数据包位移的比特数,移位矩阵T的表示公式为:
<mrow>
<mi>T</mi>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mn>3</mn>
</mtd>
<mtd>
<mn>6</mn>
</mtd>
<mtd>
<mn>10</mn>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<mfrac>
<mrow>
<mi>k</mi>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
<mn>2</mn>
</mfrac>
</mtd>
</mtr>
<mtr>
<mtd>
<mfrac>
<mrow>
<mi>k</mi>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
<mn>2</mn>
</mfrac>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mn>3</mn>
</mtd>
<mtd>
<mn>6</mn>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<mfrac>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
<mo>)</mo>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
<mn>2</mn>
</mfrac>
</mtd>
</mtr>
<mtr>
<mtd>
<mfrac>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
<mo>)</mo>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
<mn>2</mn>
</mfrac>
</mtd>
<mtd>
<mfrac>
<mrow>
<mi>k</mi>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
<mn>2</mn>
</mfrac>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mn>3</mn>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<mfrac>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>2</mn>
<mo>)</mo>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
<mn>2</mn>
</mfrac>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mn>3</mn>
</mtd>
<mtd>
<mn>6</mn>
</mtd>
<mtd>
<mn>10</mn>
</mtd>
<mtd>
<mn>15</mn>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>.</mo>
</mrow>
8.根据权利要求7所述的系统,其特征在于:在存储模块中,采用(n,k)=(4,2)MDS码来存储所有文件,即:将所有文件平均分成ai,bi两部分,分别存储在节点1和节点2上,其中i=1,2,…,m,数据包a1,b1表示第一个文件被分成的两部分,L表示每个数据包的长度,a1,b1数据包中的元素分别用a1j和b1j表示,其中,a1j表示a1中的第j个比特的信息,b1j表示bi中的第j个比特的信息,aij∈{0,1},bij∈{0,1},i=1,2,j=1,2,…,L;将ai,bi按照移位矩阵矩阵进行移位,移位后按位相与,形成两个新的数据包ai+zbi和zai+bi,其中,z代表数据包的移位,z为移一位,z2为移两位,以此类推,生成的数据包ai+zbi和zai+bi分别存储在节点3和节点4上,i=1,2,…,m。
9.根据权利要求8所述的系统,其特征在于:在检索模块中,设节点1的返回值为I1,节点2的返回值为I2,节点3的返回值为I3,节点4的返回值为I4,其中,I3、I4分别为ai+zbi、zai+bi经过向量U+Vf的移位,设I3′、I4′分别为ai+zbi、zai+bi经过随机向量U的移位,根据向量U和U+Vf得到I3′、I4′和I3、I4的排列方式。
10.根据权利要求9所述的系统,其特征在于:在解码并获取文件模块中,根据I1、I2、I3、I4、I3′和I4′进行zigzag解码,获取af和bf中所有数据的值,进而得到文件f。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710433563.3A CN107241414B (zh) | 2017-06-09 | 2017-06-09 | 一种基于zigzag解码的私人信息检索方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710433563.3A CN107241414B (zh) | 2017-06-09 | 2017-06-09 | 一种基于zigzag解码的私人信息检索方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107241414A true CN107241414A (zh) | 2017-10-10 |
CN107241414B CN107241414B (zh) | 2019-10-22 |
Family
ID=59986759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710433563.3A Active CN107241414B (zh) | 2017-06-09 | 2017-06-09 | 一种基于zigzag解码的私人信息检索方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107241414B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992582A (zh) * | 2017-12-07 | 2018-05-04 | 深圳大学 | 一种基于锯齿解码的私有信息检索方法 |
CN108628697A (zh) * | 2017-12-15 | 2018-10-09 | 深圳大学 | 一种基于二进制的节点修复方法及系统 |
CN110362537A (zh) * | 2019-07-09 | 2019-10-22 | 深圳大学 | 基于锯齿解码的全参数私有信息检索方法 |
CN110362610A (zh) * | 2019-07-09 | 2019-10-22 | 深圳大学 | 基于锯齿解码的适用于n<2k的信息检索方法 |
CN113114276A (zh) * | 2021-04-22 | 2021-07-13 | 深圳大学 | 一种基于循环移位的网络编解码方法、装置及相关组件 |
CN114629596A (zh) * | 2022-03-18 | 2022-06-14 | 浙江大学 | 前向纠错码Zigzag轮转解码方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624866A (zh) * | 2012-01-13 | 2012-08-01 | 北京大学深圳研究生院 | 一种存储数据的方法、装置及分布式网络存储系统 |
CN106464486A (zh) * | 2014-04-14 | 2017-02-22 | 阿尔卡特朗讯 | 高效存储和无条件安全私有信息检索 |
-
2017
- 2017-06-09 CN CN201710433563.3A patent/CN107241414B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624866A (zh) * | 2012-01-13 | 2012-08-01 | 北京大学深圳研究生院 | 一种存储数据的方法、装置及分布式网络存储系统 |
CN106464486A (zh) * | 2014-04-14 | 2017-02-22 | 阿尔卡特朗讯 | 高效存储和无条件安全私有信息检索 |
Non-Patent Citations (2)
Title |
---|
RUI XU, BIN CHEN, MINGJUN DAI,: "Disaster Survivability in Elastic Optical Datacenter Networks", 《IEEE》 * |
汪志鹏: "私有信息检索技术研究", 《中国硕士学术全文库》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992582A (zh) * | 2017-12-07 | 2018-05-04 | 深圳大学 | 一种基于锯齿解码的私有信息检索方法 |
CN107992582B (zh) * | 2017-12-07 | 2021-01-29 | 深圳先达数据信息技术有限公司 | 一种基于锯齿解码的私有信息检索方法 |
CN108628697A (zh) * | 2017-12-15 | 2018-10-09 | 深圳大学 | 一种基于二进制的节点修复方法及系统 |
CN108628697B (zh) * | 2017-12-15 | 2021-05-04 | 深圳大学 | 一种基于二进制的节点修复方法及系统 |
CN110362537A (zh) * | 2019-07-09 | 2019-10-22 | 深圳大学 | 基于锯齿解码的全参数私有信息检索方法 |
CN110362610A (zh) * | 2019-07-09 | 2019-10-22 | 深圳大学 | 基于锯齿解码的适用于n<2k的信息检索方法 |
CN110362537B (zh) * | 2019-07-09 | 2021-12-28 | 深圳大学 | 基于锯齿解码的全参数私有信息检索方法 |
CN110362610B (zh) * | 2019-07-09 | 2021-12-28 | 深圳大学 | 基于锯齿解码的适用于n<2k的信息检索方法 |
CN113114276A (zh) * | 2021-04-22 | 2021-07-13 | 深圳大学 | 一种基于循环移位的网络编解码方法、装置及相关组件 |
CN114629596A (zh) * | 2022-03-18 | 2022-06-14 | 浙江大学 | 前向纠错码Zigzag轮转解码方法 |
CN114629596B (zh) * | 2022-03-18 | 2023-09-22 | 浙江大学 | 前向纠错码Zigzag轮转解码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107241414B (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107241414A (zh) | 一种基于zigzag 解码的私人信息检索方法及系统 | |
Hao et al. | Bounds and constructions of locally repairable codes: parity-check matrix approach | |
CN110163007B (zh) | 基于区块链的数据完整性验证方法、设备和存储介质 | |
Shanmugam et al. | A repair framework for scalar MDS codes | |
Cadambe et al. | Optimal repair of MDS codes in distributed storage via subspace interference alignment | |
CN111026788A (zh) | 一种混合云中基于同态加密的多关键词密文排序检索方法 | |
CN101848081A (zh) | 一种s盒构造方法及s盒 | |
Paiva et al. | A timing attack on the HQC encryption scheme | |
Krčadinac et al. | The Kramer–Mesner method with tactical decompositions: some new unitals on 65 points | |
CN114531220A (zh) | 一种基于前向和后向隐私的高效容错动态短语搜索方法 | |
Wang et al. | A verifiable symmetric searchable encryption scheme based on the AVL tree | |
Zhu et al. | Heterogeneity-aware codes with uncoded repair for distributed storage systems | |
Su | Optimal pliable fractional repetition codes that are locally recoverable: A bipartite graph approach | |
US20150227425A1 (en) | Method for encoding, data-restructuring and repairing projective self-repairing codes | |
Kong et al. | New bounds on the field size for maximally recoverable codes instantiating grid-like topologies | |
Gligoroski et al. | Repair duality with locally repairable and locally regenerating codes | |
Bao et al. | Reducing network cost of data repair in erasure-coded cross-datacenter storage | |
Zhu et al. | Exploring node repair locality in fractional repetition codes | |
Yatskiv et al. | Protected Distributed Data Storage Based on Residue Number System and Cloud Services | |
Zhang et al. | Scalar MSCR codes via the product matrix construction | |
Hao et al. | Constructions and weight distributions of optimal locally repairable codes | |
Riet et al. | Batch codes for asynchronous recovery of data | |
Duursma et al. | Johnson graph codes | |
Jiang et al. | Toward Lower Repair Bandwidth and Optimal Repair Complexity of Piggybacking Codes with Small Sub-packetization | |
Guan et al. | A new construction of exact-repair MSR codes using linearly dependent vectors |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200818 Address after: Y2, 2nd floor, building 2, Xixi legu Creative Industry Park, No. 712, Wener West Road, Xihu District, Hangzhou City, Zhejiang Province 310000 Patentee after: Hangzhou yanqu Information Technology Co., Ltd Address before: 518000 Nanhai Road, Guangdong, Shenzhen, No. 3688, No. Patentee before: SHENZHEN University |
|
TR01 | Transfer of patent right |