CN107992582B - 一种基于锯齿解码的私有信息检索方法 - Google Patents

一种基于锯齿解码的私有信息检索方法 Download PDF

Info

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
Application number
CN201711285422.8A
Other languages
English (en)
Other versions
CN107992582A (zh
Inventor
代明军
李晓凤
王晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Xianda data information technology Co.,Ltd.
Original Assignee
Shenzhen Xianda Data Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Xianda Data Information Technology Co ltd filed Critical Shenzhen Xianda Data Information Technology Co ltd
Priority to CN201711285422.8A priority Critical patent/CN107992582B/zh
Publication of CN107992582A publication Critical patent/CN107992582A/zh
Application granted granted Critical
Publication of CN107992582B publication Critical patent/CN107992582B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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

本发明提供一种基于锯齿解码的私有信息检索方法,包括以下步骤:数据查询和下载步骤,生成随机向量u和检索向量
Figure 483654DEST_PATH_IMAGE002
,然后通过查询和校验实现文件的检索,其中,所述随机向量u独立于分布式存储系统的存储文件;所述检索向量
Figure DEST_PATH_IMAGE004
的第f位为1,其余位均为0;所述随机向量u和检索向量
Figure DEST_PATH_IMAGE006
的长度均为m;数据解码步骤,根据所述数据查询和下载步骤所返回的数据包进行数据解码。本发明在满足允许用户下载文件且不显示正在下载哪个文件的同时,降低了其通信成本和复杂度,具有分布式存储系统的性质,可以在任意n‑k个节点同时发生故障时恢复出原始数据,增加了数据存储的安全性,还可以在最大n‑k‑1个节点无响应的情况下检索出想要的文件,稳定性高。

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,进而实现文件的检索。
本发明的进一步改进在于,所述数据解码步骤包括以下子步骤:
步骤A1,当v=0时,经过一轮查询后,通过所述分布式存储系统系统返回的数据包为
Figure GDA0002559807720000031
实现解码;
步骤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包括以下子步骤:
步骤A101,首先将奇偶校验节点返回的数据包
Figure GDA0002559807720000041
中的
Figure GDA0002559807720000042
看成一个数据包、
Figure GDA0002559807720000043
看成一个数据包、…以及
Figure GDA0002559807720000044
看成一个数据包,然后进行锯齿解码,得到
Figure GDA0002559807720000045
步骤A102,把每组中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行第二次锯齿解码,进而可以得到需检索的文件
Figure GDA0002559807720000046
本发明的进一步改进在于,所述步骤A2包括以下子步骤:
步骤A201,首先将第一轮奇偶校验节点返回的数据包
Figure GDA0002559807720000047
中的
Figure GDA0002559807720000048
看成一个数据包、
Figure GDA0002559807720000049
看成一个数据包、…以及
Figure GDA00025598077200000410
看成一个数据包,然后进行锯齿解码,得到
Figure GDA00025598077200000411
步骤A202,将k-v个能响应的系统节点返回的数据包
Figure GDA00025598077200000412
和它们对应的
Figure GDA00025598077200000413
中的要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到k-v个不同的数据包
Figure GDA00025598077200000414
其中i=1,…,k;
步骤A203,设第二轮查询中向响应的奇偶校验节点h发送随机向量和检索向量的组合u2+ef,其余n-v-1个响应节点发送随机向量u2,那么首先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的
Figure GDA00025598077200000415
看成一个数据包、
Figure GDA00025598077200000416
看成一个数据包、…以及
Figure GDA00025598077200000417
看成一个数据包,然后进行锯齿解码,得到未响应的系统节点在接收随机向量u2所返回的数据包;
步骤A204,将步骤A203得到的数据包与响应的系统节点返回的数据包依次按照矩阵T的第h-k行进行移位相加,得到数据包
Figure GDA00025598077200000418
该数据包
Figure GDA00025598077200000419
是节点h接收向量u2后返回的数据包,且与数据包
Figure GDA00025598077200000420
相差一个ef位;然后将
Figure GDA00025598077200000421
Figure GDA00025598077200000422
中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到文件f对应矩阵T的第h-k行的奇偶校验数据包;
步骤A205,第三轮到第v+1轮查询返回的数据包重复步骤A203和步骤A204进行解码,则共可以得到v个关于文件f对应T矩阵不同行的奇偶校验数据包;
步骤A206,将步骤A201至步骤A202得到的k-v个不同的
Figure GDA00025598077200000423
和步骤A203至步骤A205得到的v个关于文件f的奇偶校验数据包再一次进行锯齿解码,得到需检索的文件
Figure GDA00025598077200000424
本发明的进一步改进在于,所述步骤A3包括以下子步骤:
步骤A301,设奇偶校验节点中的节点p、节点p+2、…以及节点p+(k-v)可以响应,那么得到数据包
Figure GDA0002559807720000051
将第一轮系统节点返回的数据包
Figure GDA0002559807720000052
根据矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行进行移位相加,得到数据包
Figure GDA0002559807720000053
步骤A302,将数据包
Figure GDA0002559807720000054
Figure GDA0002559807720000055
Figure GDA0002559807720000056
…以及
Figure GDA0002559807720000057
Figure GDA0002559807720000058
中要检索的文件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个数据包中的
Figure GDA0002559807720000059
看成一个数据包、
Figure GDA00025598077200000510
看成一个数据包、…以及
Figure GDA00025598077200000511
看成一个数据包,然后进行锯齿解码,可以得到未响应系统节点接收随机向量u2后返回的数据包
Figure GDA00025598077200000512
该数据包
Figure GDA00025598077200000513
为节点h接收向量u2后返回的数据包;
步骤A304,将数据包
Figure GDA00025598077200000514
与数据包
Figure GDA00025598077200000515
中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,可以得到数据包
Figure GDA00025598077200000516
步骤A305,第三轮到第v+1轮查询返回的数据包重复步骤A303和步骤A304进行解码,则共可以得到v个不同的数据包
Figure GDA00025598077200000517
步骤A306,将步骤A301至步骤A302得到的k-v个文件f对应矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行的奇偶校验数据包和步骤A303至步骤A305得到的v个不同的
Figure GDA00025598077200000518
再一次进行锯齿解码,得到需检索的文件
Figure GDA00025598077200000519
本发明的进一步改进在于,所述步骤A4包括以下子步骤:
步骤A401,设系统节点c接收组合向量u2+ef,其返回的数据包为
Figure GDA00025598077200000520
首先利用接收相同向量的n-v-1个节点返回值进行解码,将这n-v-1个数据包中的
Figure GDA00025598077200000521
看成一个数据包、
Figure GDA00025598077200000522
看成一个数据包、…以及
Figure GDA00025598077200000523
看成一个数据包,然后进行锯齿解码,进而得到未响应系统节点接收随机向量u2后返回的数据包
Figure GDA00025598077200000524
该数据包
Figure GDA00025598077200000525
为节点c接收向量u2后返回的数据包;
步骤A402,将数据包
Figure GDA00025598077200000526
和数据包
Figure GDA00025598077200000527
中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到数据包
Figure GDA00025598077200000528
步骤A403,第三轮到第g+1轮查询返回的数据包重复步骤A401和步骤A402进行解码,则共可以得到g个不同的数据包
Figure GDA0002559807720000061
步骤A404,设奇偶校验节点d接收组合向量ug+2+ef,其返回的数据包为
Figure GDA0002559807720000062
先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的
Figure GDA0002559807720000063
看成一个数据包、
Figure GDA0002559807720000064
看成一个数据包、…以及
Figure GDA0002559807720000065
看成一个数据包,然后进行锯齿解码,得到未响应的系统节点接收随机向量ug+2后返回的数据包;
步骤A405,将步骤A404得到的数据包与响应的系统节点返回的数据包依次按照矩阵T的第d-k行进行移位相加,得到数据包
Figure GDA0002559807720000066
该数据包
Figure GDA0002559807720000067
是节点d接收向量ug+2后返回的数据包,且与
Figure GDA0002559807720000068
相差一个ef位;然后将数据包
Figure GDA0002559807720000069
和数据包
Figure GDA00025598077200000610
中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到文件f对应矩阵T的第d-k行的奇偶校验数据包;
步骤A406,第g+3轮到第k+1轮查询返回的数据包重复步骤A404和步骤A405进行解码,则共可以得到k-g个文件f对应矩阵T不同行的奇偶校验数据包;
步骤A407,将步骤A401至A403得到的g个不同的
Figure GDA00025598077200000611
和步骤A404至步骤A406得到的k-g个文件f对应矩阵T不同行的奇偶校验数据包再一次进行锯齿解码,得到待检索的文件
Figure GDA00025598077200000612
与现有技术相比,本发明的有益效果在于:提出了一种基于锯齿解码的稳健的私有信息检索方法,在满足允许用户下载文件且不显示正在下载哪个文件的基本要求的同时,其通信成本和复杂度较低,本发明使用(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的设计如下:
当k=2时,
Figure GDA0002559807720000071
当k=3时,
Figure GDA0002559807720000072
当k=4时,
Figure GDA0002559807720000081
当k>4时,
Figure GDA0002559807720000082
现有的锯齿解码方法如下:在解码过程中,首先试图找到一个暴露位,这个暴露位不与数据包中其他比特位的任何位重叠。它可以被视为恢复位。然后从其他奇偶校验数据包中减去该位。重复此过程,每个奇偶校验数据包的长度越来越短,直到所有位由于找不到暴露位而被恢复或者终止。
比如,如图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部分,即
Figure GDA0002559807720000083
每部分长度为L=8比特,则
Figure GDA0002559807720000084
的第j比特表示为
Figure GDA0002559807720000085
其中i=1,…,3,j=1,…,8,z=1,…,3。根据CP-BZD码进行编码,分别得到
Figure GDA0002559807720000086
其中系数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]。设节点返回的数据包为
Figure GDA0002559807720000091
且r=1,…,v+1,…,k+1,表示节点i在第r轮返回的数据包。其中系统节点返回
Figure GDA0002559807720000092
奇偶校验节点返回
Figure GDA0002559807720000093
本例所述数据查询和下载步骤包括以下子步骤:
步骤S1,将随机向量u发送到系统节点,将随机向量u和检索向量ef的组合u+ef发送到奇偶校验节点;然后每个节点中存储的所有数据包根据发送的向量进行相应的移位,接着在二进制域相加,返回一个数据包;比如,设u=[0,1,1],假设用户想要文件3,则ef=[0,0,1]。节点返回的数据包分别为
Figure GDA0002559807720000094
返回值如图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所示,
Figure GDA0002559807720000102
表示节点无响应。
Figure GDA0002559807720000101
Figure GDA0002559807720000111
表1
假设系统节点1、2无响应,则共需要发送3轮查询,发送情况如表2所示。
Figure GDA0002559807720000112
表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所示,
Figure GDA0002559807720000115
表示节点无响应。
Figure GDA0002559807720000113
表3
假设奇偶校验节点4、5无响应,则共需要发送三轮,发送情况如图4所示。
Figure GDA0002559807720000114
Figure GDA0002559807720000121
表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所示,
Figure GDA0002559807720000124
表示节点无响应。
Figure GDA0002559807720000122
表5
假设系统节点1和奇偶校验节点4无响应,则共需要发送4轮,发送情况如表6所示。
Figure GDA0002559807720000123
Figure GDA0002559807720000131
表6
本例所述数据解码步骤包括以下子步骤:
步骤A1,当v=0时,经过一轮查询后,通过所述分布式存储系统系统返回的数据包为
Figure GDA0002559807720000132
实现解码;
步骤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包括以下子步骤:
步骤A101,首先将奇偶校验节点返回的数据包
Figure GDA0002559807720000133
中的
Figure GDA0002559807720000134
看成一个数据包、
Figure GDA0002559807720000135
看成一个数据包、…以及
Figure GDA0002559807720000136
看成一个数据包,然后进行锯齿解码,得到
Figure GDA0002559807720000137
比如,若此例中全部节点可以响应,那么将
Figure GDA0002559807720000138
中的
Figure GDA0002559807720000139
看成一个数据包,
Figure GDA00025598077200001310
看成一个数据包,
Figure GDA00025598077200001311
看成一个数据包,然后进行锯齿解码。得到
Figure GDA00025598077200001312
I3 (1)′
步骤A102,把每组中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行第二次锯齿解码,进而可以得到需检索的文件
Figure GDA00025598077200001313
比如,由上述步骤可知,
Figure GDA00025598077200001314
Figure GDA00025598077200001315
分别在第3位相差一个移位。如图5所示。把其中的
Figure GDA00025598077200001316
看成一个数据包,
Figure GDA00025598077200001317
看成一个数据包,i=1,2,3。然后进行第二次锯齿解码,得到
Figure GDA00025598077200001318
即文件3。
本例所述步骤A2包括以下子步骤:
步骤A201,首先将第一轮奇偶校验节点返回的数据包
Figure GDA0002559807720000141
中的
Figure GDA0002559807720000142
看成一个数据包、
Figure GDA0002559807720000143
看成一个数据包、…以及
Figure GDA0002559807720000144
看成一个数据包,然后进行锯齿解码,得到
Figure GDA0002559807720000145
比如,将第一轮奇偶校验节点返回的数据包
Figure GDA0002559807720000146
中的
Figure GDA0002559807720000147
看成一个数据包,
Figure GDA0002559807720000148
看成一个数据包,
Figure GDA0002559807720000149
看成一个数据包,然后进行锯齿解码。得到
Figure GDA00025598077200001410
I3 (1)′
步骤A202,因为v个系统节点无响应,那么首先利用剩下的k-v个能响应的系统节点返回的数据包进行解码。在全部节点都响应的情况分析中可知,
Figure GDA00025598077200001411
Figure GDA00025598077200001412
Figure GDA00025598077200001413
分别在第f位相差一个移位。那么将k-v个能响应的系统节点返回的数据包
Figure GDA00025598077200001414
和它们对应的
Figure GDA00025598077200001415
中的要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到k-v个不同的数据包
Figure GDA00025598077200001416
其中i=1,…,k;
比如,此例中,因为系统节点1、2无响应,那么首先利用节点3返回的数据包
Figure GDA00025598077200001417
进行解码。因为
Figure GDA00025598077200001418
Figure GDA00025598077200001419
在第3位相差一个移位,那么把其中的
Figure GDA00025598077200001420
看成一个数据包,
Figure GDA00025598077200001421
看成一个数据包,i=1,2,3。进行锯齿解码,得到一个
Figure GDA00025598077200001422
步骤A203,利用第二轮接收的响应节点返回的数据包进行下一轮解码,设第二轮查询中向响应的奇偶校验节点h发送随机向量和检索向量的组合u2+ef,其余n-v-1个响应节点发送随机向量u2,那么首先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的
Figure GDA00025598077200001423
看成一个数据包、
Figure GDA00025598077200001424
看成一个数据包、…以及
Figure GDA00025598077200001425
看成一个数据包,然后进行锯齿解码,得到未响应的系统节点在接收随机向量u2所返回的数据包;
比如,第二轮中,由表2可知,向节点4发送u2+ef=[0,2,2],向其他节点3、5、6发送随机向量u2=[0,2,1]。因为节点3、5、6接收的查询向量相同,那么将其返回值
Figure GDA00025598077200001426
中的
Figure GDA00025598077200001427
看成一个数据包,
Figure GDA00025598077200001428
看成一个数据包,
Figure GDA00025598077200001429
看成一个数据包,然后进行锯齿解码。得到
Figure GDA00025598077200001430
如图6所示;
步骤A204,将步骤A203得到的数据包与响应的系统节点返回的数据包依次按照矩阵T的第h-k行进行移位相加,得到数据包
Figure GDA00025598077200001431
该数据包
Figure GDA00025598077200001432
是节点h接收向量u2后返回的数据包,且与数据包
Figure GDA00025598077200001433
相差一个ef位;然后将
Figure GDA00025598077200001434
Figure GDA00025598077200001435
中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到文件f对应矩阵T的第h-k行的奇偶校验数据包;
比如,将
Figure GDA0002559807720000151
Figure GDA0002559807720000152
按照矩阵T的第1行进行移位相加,可以得到
Figure GDA0002559807720000153
Figure GDA0002559807720000154
理论上是节点4接收向量u2后返回的数据包。
Figure GDA0002559807720000155
Figure GDA0002559807720000156
如图7所示。然后将
Figure GDA0002559807720000157
Figure GDA0002559807720000158
有关文件3的部分看成一个数据包,其余文件看成一个数据包,进行锯齿解码。得到
Figure GDA0002559807720000159
步骤A205,第三轮到第v+1轮查询返回的数据包重复步骤A203和步骤A204进行解码,则共可以得到v个关于文件f对应T矩阵不同行的奇偶校验数据包;
比如,第三轮查询返回的数据包重复上述步骤,则可以得到
Figure GDA00025598077200001510
步骤A206,将步骤A201至步骤A202得到的k-v个不同的
Figure GDA00025598077200001511
和步骤A203至步骤A205得到的v个关于文件f的奇偶校验数据包再一次进行锯齿解码,得到需检索的文件
Figure GDA00025598077200001512
比如,将上述过程得到的
Figure GDA00025598077200001513
Figure GDA00025598077200001514
Figure GDA00025598077200001515
最后一次锯齿解码,得到
Figure GDA00025598077200001516
即文件3。
当无响应的节点全部为奇偶校验节点时:v个奇偶校验节点无响应,用户需要发送v+1轮查询才可得到检索文件。根据v+1轮查询返回的数据包,本例所述步骤A3包括以下子步骤:
步骤A301,因为无响应的节点全部为奇偶校验节点,那么系统节点全部可以返回数据包,设奇偶校验节点中的节点p、节点p+2、…以及节点p+(k-v)可以响应,那么得到数据包
Figure GDA00025598077200001517
将第一轮系统节点返回的数据包
Figure GDA00025598077200001518
根据矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行进行移位相加,得到数据包
Figure GDA00025598077200001519
比如,此例中,奇偶校验节点6可以响应。那么将第一轮系统节点返回的数据包
Figure GDA00025598077200001520
根据矩阵的第3行进行移位相加,得到
Figure GDA00025598077200001521
步骤A302,由步骤A301可知,
Figure GDA00025598077200001522
Figure GDA00025598077200001523
分别相差一个ef位,将数据包
Figure GDA00025598077200001524
Figure GDA00025598077200001525
Figure GDA00025598077200001526
…以及
Figure GDA00025598077200001527
Figure GDA00025598077200001528
中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到k-v个文件f对应矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行的奇偶校验数据包;
比如,将
Figure GDA0002559807720000161
Figure GDA0002559807720000162
中有关文件3的部分看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到
Figure GDA0002559807720000163
步骤A303,利用第二轮接收的响应节点返回的数据包进行下一轮解码,设第二轮查询中向响应的系统节点h发送随机向量和检索向量的组合u2+ef,其余n-v-1个响应节点发送随机向量u2,那么首先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的
Figure GDA0002559807720000164
看成一个数据包、
Figure GDA0002559807720000165
看成一个数据包、…以及
Figure GDA0002559807720000166
看成一个数据包,然后进行锯齿解码,可以得到未响应系统节点接收随机向量u2后返回的数据包
Figure GDA0002559807720000167
该数据包
Figure GDA0002559807720000168
为节点h接收向量u2后返回的数据包;
比如,第二轮中,由表4可知,向节点1发送u2+ef=[0,2,2],向其他节点2、3、6发送随机向量u2=[0,2,1]。因为节点2、3、6接收的查询向量相同,那么将其返回值
Figure GDA0002559807720000169
中的
Figure GDA00025598077200001610
看成一个数据包,
Figure GDA00025598077200001611
看成一个数据包,
Figure GDA00025598077200001612
看成一个数据包。进行锯齿解码,得到
Figure GDA00025598077200001613
Figure GDA00025598077200001614
理论上是节点1接收向量u2返回的数据包;
步骤A304,由上述步骤可知,步骤3得到的数据包
Figure GDA00025598077200001615
与第二轮中响应节点h返回的数据包
Figure GDA00025598077200001616
相差一个ef位,即在第f位相差一个移位,将数据包
Figure GDA00025598077200001617
与数据包
Figure GDA00025598077200001618
中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,可以得到数据包
Figure GDA00025598077200001619
比如,由上述步骤可知,
Figure GDA00025598077200001620
Figure GDA00025598077200001621
在第3位相差一个移位,如图8所示。将
Figure GDA00025598077200001622
Figure GDA00025598077200001623
中的
Figure GDA00025598077200001624
看成一个数据包,
Figure GDA00025598077200001625
看成一个数据包,然后进行锯齿解码,得到
Figure GDA00025598077200001626
步骤A305,第三轮到第v+1轮查询返回的数据包重复步骤A303和步骤A304进行解码,则共可以得到v个不同的数据包
Figure GDA00025598077200001627
比如,第三轮查询返回的数据包重复上述步骤,则可以得到
Figure GDA00025598077200001628
步骤A306,将步骤A301至步骤A302得到的k-v个文件f对应矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行的奇偶校验数据包和步骤A303至步骤A305得到的v个不同的
Figure GDA00025598077200001629
再一次进行锯齿解码,得到需检索的文件
Figure GDA00025598077200001630
比如,将上述过程得到的
Figure GDA00025598077200001631
Figure GDA00025598077200001632
最后一次锯齿解码,得到
Figure GDA00025598077200001633
即文件3。
当无响应的节点同时存在系统节点和奇偶校验节点时:假设有v个节点无响应,因为无响应的节点同时包含系统节点和奇偶校验节点,经验证,第一轮返回的数据包无法进行任何解码操作,所以用户共需要发送k+1轮查询才可得到检索文件。本例假设无响应的v个节点中包含g个系统节点和v-g个奇偶校验节点。
本例所述步骤A4包括以下子步骤:
步骤A401,利用第二轮接收的响应节点返回的数据包进行解码。由数据查询和下载阶段可知,第二轮查询中向其中一个能响应的系统节点发送u2+ef,其他能响应的n-v-1个节点发送u2,设系统节点c接收组合向量u2+ef,其返回的数据包为
Figure GDA0002559807720000171
首先利用接收相同向量的n-v-1个节点返回值进行解码,将这n-v-1个数据包中的
Figure GDA0002559807720000172
看成一个数据包、
Figure GDA0002559807720000173
看成一个数据包、…以及
Figure GDA0002559807720000174
看成一个数据包,然后进行锯齿解码,进而得到未响应系统节点接收随机向量u2后返回的数据包
Figure GDA0002559807720000175
该数据包
Figure GDA0002559807720000176
为节点c接收向量u2后返回的数据包;
比如,此例中,节点1、4无响应。由表6可知,向节点2发送向量u2+ef=[0,2,2],向其他节点3、5、6发送随机向量u2=[0,2,1]。因为节点3、5、6接收的查询向量相同,那么将其返回值
Figure GDA0002559807720000177
中的
Figure GDA0002559807720000178
看成一个数据包,
Figure GDA0002559807720000179
看成一个数据包,
Figure GDA00025598077200001710
看成一个数据包。进行锯齿解码,得到
Figure GDA00025598077200001711
Figure GDA00025598077200001712
理论上是节点2接收向量u2后返回的数据包;
步骤A402,由步骤A401可知,
Figure GDA00025598077200001713
和响应节点c返回的数据包
Figure GDA00025598077200001714
相差一个ef位,即在第f位相差一个移位,然后将数据包
Figure GDA00025598077200001715
和数据包
Figure GDA00025598077200001716
中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到数据包
Figure GDA00025598077200001717
比如,由上述步骤可知,
Figure GDA00025598077200001718
Figure GDA00025598077200001719
在第3位相差一个移位,如图9所示,将
Figure GDA00025598077200001720
Figure GDA00025598077200001721
中的
Figure GDA00025598077200001722
看成一个数据包,
Figure GDA00025598077200001723
看成一个数据包,然后进行锯齿解码,得到
Figure GDA00025598077200001724
步骤A403,第三轮到第g+1轮查询返回的数据包重复步骤A401和步骤A402进行解码,则共可以得到g个不同的数据包
Figure GDA00025598077200001725
比如,第三轮查询返回的数据包重复上述步骤,则可以得到
Figure GDA00025598077200001726
步骤A404,接下来利用第g+2轮查询接收的响应节点返回的数据包进行解码。由数据查询和下载步骤可知,第g+2轮查询中向其中一个能响应的奇偶校验节点发送ug+2+ef,其他能响应的n-v-1个节点发送ug+2,设奇偶校验节点d接收组合向量ug+2+ef,其返回的数据包为
Figure GDA00025598077200001727
先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的
Figure GDA0002559807720000181
看成一个数据包、
Figure GDA0002559807720000182
看成一个数据包、…以及
Figure GDA0002559807720000183
看成一个数据包,然后进行锯齿解码,得到未响应的系统节点接收随机向量ug+2后返回的数据包;
比如,第四轮中,由表6可知,向节点5发送u4+ef=[0,2,4],向其他节点2、3、6发送随机向量u4=[0,2,3]。因为节点2、3、6接收的查询向量相同,那么将其返回值
Figure GDA0002559807720000184
中的
Figure GDA0002559807720000185
看成一个数据包,
Figure GDA0002559807720000186
看成一个数据包,
Figure GDA0002559807720000187
看成一个数据包。然后进行锯齿解码,得到
Figure GDA0002559807720000188
步骤A405,将步骤A404得到的数据包与响应的系统节点返回的数据包依次按照矩阵T的第d-k行进行移位相加,得到数据包
Figure GDA0002559807720000189
该数据包
Figure GDA00025598077200001810
是节点d接收向量ug+2后返回的数据包,且与
Figure GDA00025598077200001811
相差一个ef位;然后将数据包
Figure GDA00025598077200001812
和数据包
Figure GDA00025598077200001813
中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到文件f对应矩阵T的第d-k行的奇偶校验数据包;
比如,将
Figure GDA00025598077200001814
Figure GDA00025598077200001815
按照矩阵的第2行进行移位相加,可以得到
Figure GDA00025598077200001816
Figure GDA00025598077200001817
理论上是节点5接收向量u4后返回的数据包。
Figure GDA00025598077200001818
Figure GDA00025598077200001819
如图10所示。将
Figure GDA00025598077200001820
Figure GDA00025598077200001821
中有关文件3的部分看成一个数据包,其余文件看成一个数据包,然后进行锯齿解码,得到
Figure GDA00025598077200001822
步骤A406,第g+3轮到第k+1轮查询返回的数据包重复步骤A404和步骤A405进行解码,则共可以得到k-g个文件f对应矩阵T不同行的奇偶校验数据包;
步骤A407,将步骤A401至A403得到的g个不同的
Figure GDA00025598077200001823
和步骤A404至步骤A406得到的k-g个文件f对应矩阵T不同行的奇偶校验数据包再一次进行锯齿解码,得到待检索的文件
Figure GDA00025598077200001824
比如,将上述过程得到的
Figure GDA00025598077200001825
Figure GDA00025598077200001826
最后一次锯齿解码,得到
Figure GDA00025598077200001827
即文件3。
综上,本例提出了一种基于锯齿解码的稳健的私有信息检索方法,在满足允许用户下载文件且不显示正在下载哪个文件的基本要求的同时,其通信成本和复杂度较低,本发明使用(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任意一项所述的基于锯齿解码的私有信息检索方法,其特征在于,所述数据解码步骤包括以下子步骤:
步骤A1,当v=0时,经过一轮查询后,通过所述分布式存储系统系统返回的数据包为
Figure FDA0002418509730000021
实现解码;
步骤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包括以下子步骤:
步骤A101,首先将奇偶校验节点返回的数据包
Figure FDA0002418509730000022
中的
Figure FDA0002418509730000023
看成一个数据包、
Figure FDA0002418509730000024
看成一个数据包、…以及
Figure FDA0002418509730000025
看成一个数据包,然后进行锯齿解码,得到
Figure FDA0002418509730000026
步骤A102,把每组中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行第二次锯齿解码,进而可以得到需检索的文件
Figure FDA0002418509730000027
7.根据权利要求6所述的基于锯齿解码的私有信息检索方法,其特征在于,所述步骤A2包括以下子步骤:
步骤A201,首先将第一轮奇偶校验节点返回的数据包
Figure FDA0002418509730000028
中的
Figure FDA0002418509730000029
看成一个数据包、
Figure FDA0002418509730000031
看成一个数据包、…以及
Figure FDA0002418509730000032
看成一个数据包,然后进行锯齿解码,得到
Figure FDA0002418509730000033
步骤A202,将k-v个能响应的系统节点返回的数据包
Figure FDA0002418509730000034
和它们对应的
Figure FDA0002418509730000035
中的要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到k-v个不同的数据包
Figure FDA0002418509730000036
其中i=1,…,k;
步骤A203,设第二轮查询中向响应的奇偶校验节点h发送随机向量和检索向量的组合u2+ef,其余n-v-1个响应节点发送随机向量u2,那么首先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的
Figure FDA0002418509730000037
看成一个数据包、
Figure FDA0002418509730000038
看成一个数据包、…以及
Figure FDA0002418509730000039
看成一个数据包,然后进行锯齿解码,得到未响应的系统节点在接收随机向量u2所返回的数据包;
步骤A204,将步骤A203得到的数据包与响应的系统节点返回的数据包依次按照矩阵T的第h-k行进行移位相加,得到数据包
Figure FDA00024185097300000310
该数据包
Figure FDA00024185097300000311
是节点h接收向量u2后返回的数据包,且与数据包
Figure FDA00024185097300000312
相差一个ef位;然后将
Figure FDA00024185097300000313
Figure FDA00024185097300000314
中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到文件f对应矩阵T的第h-k行的奇偶校验数据包;
步骤A205,第三轮到第v+1轮查询返回的数据包重复步骤A203和步骤A204进行解码,则共可以得到v个关于文件f对应T矩阵不同行的奇偶校验数据包;
步骤A206,将步骤A201至步骤A202得到的k-v个不同的
Figure FDA00024185097300000315
和步骤A203至步骤A205得到的v个关于文件f的奇偶校验数据包再一次进行锯齿解码,得到需检索的文件
Figure FDA00024185097300000316
8.根据权利要求6所述的基于锯齿解码的私有信息检索方法,其特征在于,所述步骤A3包括以下子步骤:
步骤A301,设奇偶校验节点中的节点p、节点p+2、…以及节点p+(k-v)可以响应,那么得到数据包
Figure FDA00024185097300000317
将第一轮系统节点返回的数据包
Figure FDA00024185097300000318
根据矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行进行移位相加,得到数据包
Figure FDA00024185097300000319
步骤A302,将数据包
Figure FDA00024185097300000320
Figure FDA00024185097300000321
Figure FDA00024185097300000322
Figure FDA00024185097300000323
…以及
Figure FDA00024185097300000324
Figure FDA00024185097300000325
中要检索的文件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个数据包中的
Figure FDA0002418509730000041
看成一个数据包、
Figure FDA0002418509730000042
看成一个数据包、…以及
Figure FDA0002418509730000043
看成一个数据包,然后进行锯齿解码,可以得到未响应系统节点接收随机向量u2后返回的数据包
Figure FDA0002418509730000044
该数据包
Figure FDA0002418509730000045
为节点h接收向量u2后返回的数据包;
步骤A304,将数据包
Figure FDA0002418509730000046
与数据包
Figure FDA0002418509730000047
中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,可以得到数据包
Figure FDA0002418509730000048
步骤A305,第三轮到第v+1轮查询返回的数据包重复步骤A303和步骤A304进行解码,则共可以得到v个不同的数据包
Figure FDA0002418509730000049
步骤A306,将步骤A301至步骤A302得到的k-v个文件f对应矩阵T的第p-k、p+2-k、…以及p+(k-v)-k行的奇偶校验数据包和步骤A303至步骤A305得到的v个不同的
Figure FDA00024185097300000410
再一次进行锯齿解码,得到需检索的文件
Figure FDA00024185097300000411
9.根据权利要求6所述的基于锯齿解码的私有信息检索方法,其特征在于,所述步骤A4包括以下子步骤:
步骤A401,设系统节点c接收组合向量u2+ef,其返回的数据包为
Figure FDA00024185097300000412
首先利用接收相同向量的n-v-1个节点返回值进行解码,将这n-v-1个数据包中的
Figure FDA00024185097300000413
看成一个数据包、
Figure FDA00024185097300000414
看成一个数据包、…以及
Figure FDA00024185097300000415
看成一个数据包,然后进行锯齿解码,进而得到未响应系统节点接收随机向量u2后返回的数据包
Figure FDA00024185097300000416
该数据包
Figure FDA00024185097300000417
为节点c接收向量u2后返回的数据包;
步骤A402,将数据包
Figure FDA00024185097300000418
和数据包
Figure FDA00024185097300000419
中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到数据包
Figure FDA00024185097300000420
步骤A403,第三轮到第g+1轮查询返回的数据包重复步骤A401和步骤A402进行解码,则共可以得到g个不同的数据包
Figure FDA00024185097300000421
步骤A404,设奇偶校验节点d接收组合向量ug+2+ef,其返回的数据包为
Figure FDA00024185097300000422
先利用接收相同向量的节点返回值解码,将这n-v-1个数据包中的
Figure FDA00024185097300000423
看成一个数据包、
Figure FDA00024185097300000424
看成一个数据包、…以及
Figure FDA00024185097300000425
看成一个数据包,然后进行锯齿解码,得到未响应的系统节点接收随机向量ug+2后返回的数据包;
步骤A405,将步骤A404得到的数据包与响应的系统节点返回的数据包依次按照矩阵T的第d-k行进行移位相加,得到数据包
Figure FDA0002418509730000051
该数据包
Figure FDA0002418509730000052
是节点d接收向量ug+2后返回的数据包,且与
Figure FDA0002418509730000053
相差一个ef位;然后将数据包
Figure FDA0002418509730000054
和数据包
Figure FDA0002418509730000055
中要检索的文件f看成一个数据包,其余文件看成一个数据包,进行锯齿解码,得到文件f对应矩阵T的第d-k行的奇偶校验数据包;
步骤A406,第g+3轮到第k+1轮查询返回的数据包重复步骤A404和步骤A405进行解码,则共可以得到k-g个文件f对应矩阵T不同行的奇偶校验数据包;
步骤A407,将步骤A401至A403得到的g个不同的
Figure FDA0002418509730000056
和步骤A404至步骤A406得到的k-g个文件f对应矩阵T不同行的奇偶校验数据包再一次进行锯齿解码,得到待检索的文件
Figure FDA0002418509730000057
CN201711285422.8A 2017-12-07 2017-12-07 一种基于锯齿解码的私有信息检索方法 Active CN107992582B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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