【A survey on single server private information retrieval in a coding theory perspective】论文笔记
此论文较长分为两篇完成
【A survey on single server private information retrieval in a coding theory perspective】论文笔记(一)
【A survey on single server private information retrieval in a coding theory perspective】论文笔记(二)
文章目录
摘要
在本文中,我们通过使用线性纠错码的概念,提出了单服务器私有信息检索(PIR)方案的一个新观点。 许多已知的单服务器方案都是基于对数据库元素和查询元素的线性组合。利用线性码的理论,我们开发了一个通用框架,将所有这些PIR方案正式化。这个通用框架为分析此类PIR方案的安全性提供了一个适当的设置。 事实上,我们在这个基于代码的框架中描述了一些已知的PIR方案,并从一个统一的角度提出了被破坏的PIR方案的弱点。。
线性码
定义下记号,记 k k k bits信号为向量 m = [ m 0 , ⋯ , m k − 1 ] m = [ m_0 , ⋯ , m_{k − 1}] m=[m0,⋯ ,mk−1],经过编码后变成 n n nbits的码
c = [ c 0 , ⋯ , c n − 1 ] c = [ c_0 , ⋯ , c_{n − 1}] c=[c0,⋯ ,cn−1],这里认为 m , c m , c m,c都是行向量,通常 n ≥ k n ≥ k n≥k 。如果存在矩阵 G G G
使得 c = m G , G ∈ R k × n c=mG,G∈R^{k×n} c=mG,G∈Rk×n 称这种码为线性码, G G G又被称为生成矩阵,记它的行向量为 g 0 , ⋯ , g k − 1 g_0 , ⋯ , g_{k−1} g0,⋯ ,gk−1 ,( G G G是一个矩阵, g 0 g_0 g0是矩阵的第0行) c = ∑ j = 0 k − 1 m j g j c = \sum^{k-1}_{j=0}m_jg_j c=j=0∑k−1mjgj也就是说线性码就是生成矩阵行向量的线性组合。字长为 k k k bits的信号共有 2 k 2^k 2k
种,因此生成矩阵行向量的线性组合需要有 2 k 2^k 2k种。纠错码
纠错码(error correcting code),在传输过程中发生错误后能在收端自行发现或纠正的码。仅用来发现错误的码一般常称为检错码。为使一种码具有检错或纠错能力,须对原码字增加多余的码元,以扩大码字之间的差别 ,即把原码字按某种规则变成有一定剩余度(见信源编码)的码字,并使每个码字的码之间有一定的关系。关系的建立称为编码。码字到达收端后,可以根据编码规则是否满足以判定有无错误。当不能满足时,按一定规则确定错误所在位置并予以纠正。纠错并恢复原码字的过程称为译码。检错码与其他手段结合使用,可以纠错。
1. 简介
私有信息检索(PIR)最早是在[1]中提出的,以应对以下问题:从数据库中检索一个元素,而不向管理该数据库的不信任的来源透露任何关于该元素的信息。 自引入以来,它吸引了许多研究人员,有几项工作已经解决了他们对它的关注。 对于这个问题,已经提出了两种解决方案,即信息理论方案和计算方案。 第一个解决方案旨在保证服务器没有得到用户想要检索的文件的信息。 在[2-7]中提出了多个服务器的解决方案。 在单一服务器的情况下,琐碎的解决方案,即下载整个数据库,是确保信息理论隐私的唯一可能性。然而,琐碎的解决方案并不令人满意,因为它带有非常大的通信成本,这基本上意味着它是不切实际的。相反,在计算型PIR中,假设服务器的计算能力有限,隐私就能得到保证。 因此,计算型PIR(cPIR)是在单一服务器的情况下唯一实用的解决方案。
大多数早期的cPIR方案都是基于数论问题的难度,如整数分解(例如见[8-11])。 已知的(非微不足道的)单服务器cPIR构造需要对每个数据库元素进行一些加密操作,与信息论的方案相比,这些方案的计算成本增加。在[12]中,Sion和Carbu-nar表明,数字理论的PIR方案并不实用,计算PIR回复的效率总是低于发送整个数据库。此外,这种基于因式分解的方案,在量子计算机时代将是不安全的[13]。
最近一些PIR方案的构建使用了完全同态加密(Fully Homomorphic Encryption,FHE)方案。 Yi等人在[14]中提出了一种从FHE中构建PIR的通用方法。在这一构造之后,许多PIR协议被提出,使用基于格子问题(problems in lattices)和带错误学习(learning with error,LWE)概率问题的FHE方案[15-18]。最近,Aguilar-Melchor等人在[16]中提出了XPIR,这是一个使用基于Ring-LWE的FHE方案的PIR结构,计算效率高,但通信成本大。 继[16]之后,Angel等人在[17]中能够显著改善其通信成本,与XPIR相比,只需稍稍增加一些计算量。与Angel等人的方案一样,Ali等人最近的工作[18]代表了PIR方案的最先进效率
最近,Holzbaur, Hollanti和Wachter-Zeh在[19]中提出了第一个基于编码理论的单服务器PIR。然而,他们的提议在[20]中受到攻击。 [19]中的主要想法是通过使用随机线性代码的码字隐藏精心选择的错误向量来生成查询。 为了获得隐私,该线性代码由用户保持秘密。Aguilar-Melchor和Gaborit之前在一个基于格子的PIR方案中使用了同样的想法[21],没有使用线性代码的概念。该方案后来被Liu和Bi[22]使用lat-tice还原算法进行攻击。
有趣的是,使用线性编码隐藏查询信息的想法可以直接或间接地在其他几个PIR方案中看到。 在本文中,我们开发了一个统一的框架来描述所有这些PIR方案。特别是,这个框架描述了所有的单服务器PIR方案,这些方案通过使用线性组合收缩数据库元素和查询元素来生成回复。本文的主要目的是在一个统一的编码理论角度对现有的几个单服务器PIR方案进行调查。这使得人们对这些PIR方案的安全性有了更深刻的理论认识。
该框架基于两个关键要素:一个是隐藏查询信息的线性代码,一个是允许用户从线性纠缠的回复中检索到所需文件的检索函数。 一方面,线性代码的概念描述了几个现有的PIR方案的共同特征,另一方面,检索功能描述了这些方案之间的关键差异。就该框架而言,PIR方案的隐私性在很大程度上依赖于检索函数。我们观察到,有几种检索函数的选择是不安全的,例如,有限域同构和向量空间同构。 此外,我们还讨论了许多被破解的PIR方案在这个基于代码的框架方面的弱点。
本文的组织结构如下:在第2节中,我们介绍了将在本文中使用的符号,并给出了单服务器私有信息检索的背景,以及有限域和环上的线性编码。在第3节中,我们预设了一个编码系统。在第3节中,我们预先介绍了基于代码的框架,并从一般的角度讨论了安全性。在第4节中,我们提供了关于四种编码的调查。在第4节中,我们提供了一个关于四个不同的PIR方案的调查,在基于编码的框架中进行了描述。第一个方案是一个基本方案,使用有限域同态性作为检索函数。 而其他三个则分别基于现有的PIR方案[19, 21]和[16]。后者是我们提出的方案中唯一一个仍未被打破的例子。对于前两者,我们也将描述现有的攻击与所提出的基于代码的框架。 最后,在第5节中,我们对该框架的通用性以及单服务器PIR方案的安全性进行了一些理论上的评论。
2. 预备工作
在这一节中,我们将介绍我们在论文中使用的符号,并回顾一些关于单服务器PIR理论的背景。 此外,我们还介绍了纠错线性码的基本概念
2.1 符号
在本文中,我们用 R R R表示一个环,用 R × R× R×表示环中可逆元素的集合。 此外,让 q q q是一个质数,那么我们用 𝔽 q 𝔽q Fq表示大小为 q q q的有限域。
我们用粗体小写字母和粗体大写字母分别表示行向量和矩阵。当我们考虑列向量时,我们使用转置符号。 大小为k的同一矩阵用 𝐈 k 𝐈_k Ik表示。 给定一个长度为 n n n的向量 𝐱 𝐱 x和一个集合 S ⊂ 1 , . . . , n S⊂{1,...,n} S⊂1,...,n,我们用 𝐱 𝐱 x表示。 我们用 𝐱 S 𝐱_S xS表示 𝐱 𝐱 x在 S S S索引的坐标上的投影。同样, 𝐌 S 𝐌_S MS表示 k × n k×n k×n矩阵 𝐌 𝐌 M在 S S S索引的列上的投影。
对于一个集合 S S S,我们用 S C S^C SC表示其补集。 向量 𝐱 ∈ 𝔽 q n 𝐱∈𝔽^n_q x∈Fqn的支持度用 S u p p ( 𝐱 ) = 1 ≤ i ≤ n ∣ x i ≠ 0 Supp(𝐱)={1≤i≤n∣x_i≠0} Supp(x)=1≤i≤n∣xi=0表示。
矢量 𝐱 ∈ 𝔽 q n 𝐱∈𝔽^n_q x∈Fqn的第 i i i个条目用 𝐱 [ i ] 𝐱[i] x[i]表示,对于 i ∈ 1 , . . . , n i∈{1,...,n} i∈1,...,n。
给定一个集合 S S S和 S S S上的分布𝜒, x x x← χ \chi χ代表S中的一个样本 x x x遵循分布 χ \chi χ。
环
环(Ring)是一类包含两种运算(加法和乘法)的代数系统,是现代代数学十分重要的一类研究对象。其发展可追溯到19世纪关于实数域的扩张及其分类的研究。
在非空集合R中,若定义了两种代数运算 + + +和 × \times ×(不一定为加与乘),且满足:
- 集合R在+运算下构成阿贝尔群(Abelian group)。
- ×运算在集合R下满足结合律,即 ∀ a , b , c ∈ R , ( a × b ) × c = a × ( b × c ) \forall a, b, c \in R, (a \times b)\times c=a \times (b \times c) ∀a,b,c∈R,(a×b)×c=a×(b×c)。R对 × \times ×构成一个半群。
- 对 + + +和 × \times ×有分配律成立,即 ∀ a , b , c ∈ R \forall a, b,c \in R ∀a,b,c∈R,有 a × ( b + c ) = a × b + a × c ( a + b ) × c = a × c + b × c a\times(b+c) = a\times b + a\times c \\ (a+b)\times c = a\times c + b\times c a×(b+c)=a×b+a×c(a+b)×c=a×c+b×c
称代数系统 < R , + , × > <R, +,\times> <R,+,×>是一个环(Ring)。在不引起混淆的情况下,记为 R R R.
详见百度百科–环:点击此处跳转
2.2 单个服务器的隐私信息检索
单服务器PIR是一个涉及两方的方案,即用户和服务器。 服务器管理一个包含一些公共信息的数据库,而用户有兴趣检索数据库中的一些条目,但不透露被查询的项目。
2.2.1 基本描述
一个单服务器PIR方案的基本描述如下。 让数据库用 D B = { d b 1 , . . . , d b N } DB= \left \{db_1,...,db_N \right \} DB={db1,...,dbN}表示,包含 N N N个文件,并假设用户希望检索第 i i i个文件 d b i db_i dbi。用户首先构建一个查询 Q = { q 1 , . . . , q N } Q= \left \{q_1,...,q_N \right \} Q={q1,...,qN},其中隐藏了关于索引 i i i的信息,并将其发送给服务器。 服务器通过对每个 j j j在 q j q_j qj和 d b j db_j dbj之间进行某些操作来计算出一个响应,并将其返回给用户。如果用户能从响应中检索到所需的文件 d b i db_i dbi,则该方案被认为是正确的。
2.2.2 通信和计算成本
保护隐私的一个简单解决方案是下载整个数据库。 然而,这种操作的通信成本,以用户和服务器交换的比特总数来衡量,在琐碎的情况下是太高了,即 O ( N ) O(N) O(N),其中N是数据库的大小。现代PIR协议允许用户从数据库中检索数据,其通信复杂度远远小于 O ( N ) O(N) O(N)。一些常见的方法可以用来改善任何PIR方案的通信成本。在第3.2节中,我们讨论了这些技术。
单一服务器PIR方案的另一个重要方面是计算成本。 由于数据库必须处理查询的每个条目,这些方案在计算上是昂贵的。
2.3 线性代码
2.3.1 在有限域上
让
𝐱
𝐱
x是
𝔽
q
n
𝔽^n_q
Fqn的一个向量。
𝐱
𝐱
x的Hamming weight用wt(
𝐱
𝐱
x)表示,它被定义为其非零项的数目,即它的支持度的大小。两个向量
𝐱
,
𝐲
∈
𝔽
q
n
𝐱,𝐲∈𝔽^n_q
x,y∈Fqn之间的Hamming distance被定义为两个向量不同的分量数,即
d
(
𝐱
,
𝐲
)
=
{
i
∣
x
i
≠
y
i
}
d(𝐱,𝐲)=\left\{i∣x_i≠y_i\right\}
d(x,y)={i∣xi=yi}。
一个
[
n
,
k
]
q
[n,k]_q
[n,k]q的线性码
C
C
C是
𝔽
q
n
𝔽^n_q
Fqn的一个
k
k
k维子空间,被赋予汉明距离,
C
C
C的元素被称为码字。
C的最小距离是一个量
d
:
=
m
i
n
{
d
(
𝐱
,
𝐲
)
∣
𝐱
,
𝐲
∈
C
,
𝐱
≠
𝐲
}
d:=min\left\{d(𝐱,𝐲)∣𝐱,𝐲∈C,𝐱≠𝐲\right\}
d:=min{d(x,y)∣x,y∈C,x=y}
当线性码
C
C
C的最小距离
d
d
d是已知的,那么
C
C
C就用
[
n
,
k
,
d
]
q
[n,k,d]_q
[n,k,d]q来表示。
一个矩阵
𝐆
∈
𝔽
q
k
×
n
𝐆∈𝔽^{k×n}_q
G∈Fqk×n,其行构成C的基础,称为C的生成器矩阵。 因此,我们可以将代码
C
C
C定义为
𝐯
∈
𝔽
q
n
∣
𝐯
=
𝐮
𝐆
⊤
,
𝐮
∈
𝔽
q
k
{𝐯∈𝔽^n_q∣𝐯=𝐮𝐆⊤,𝐮∈𝔽^k_q}
v∈Fqn∣v=uG⊤,u∈Fqk。 同样,我们可以将代码
C
C
C定义为矩阵
𝐇
∈
𝔽
q
(
n
−
k
)
×
n
𝐇∈𝔽^{(n-k)×n}_q
H∈Fq(n−k)×n的内核,即
C
:
=
k
e
r
(
𝐇
)
=
{
𝐯
∈
𝔽
n
q
∣
𝐇
𝐯
⊤
=
𝟎
}
C:=ker(𝐇)=\left\{𝐯∈𝔽nq∣𝐇𝐯⊤=𝟎\right\}
C:=ker(H)={v∈Fnq∣Hv⊤=0}。这样的矩阵被称为代码C的奇偶校验矩阵。一个
[
n
,
k
,
d
]
q
[n,k,d]_q
[n,k,d]q码
C
C
C的信息集是一个大小为
k
k
k的
I
⊂
{
1
,
.
.
.
,
n
}
I⊂\left\{1,...,n\right\}
I⊂{1,...,n}的集合,使得
∣
C
∣
=
∣
C
I
∣
∣C∣=∣C_I∣
∣C∣=∣CI∣,其中
C
I
C_I
CI表示所有码字对
I
I
I所索引的条目的限制。
汉明距离
汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字符串对应位置的不同字符的数量,我们以 d ( x , y ) d(x,y) d(x,y)表示两个字 x , y x,y x,y之间的汉明距离,设 x , y x,y x,y的长度为 N N N。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。
d ( x , y ) = ∑ i = 0 N − 1 ( x i ⊕ y i ) d(x,y) = \sum^{N-1}_{i=0}(x_i\oplus y_i) d(x,y)=i=0∑N−1(xi⊕yi)汉明权重
汉明重量是一串符号中非零符号的个数。因此它等同于同样长度的全零符号串的汉明距离。在最为常见的数据位符号串中,它是1的个数。
2.3.2 Over Rings
让
R
R
R是一个具有同一性的换元环。
R
R
R上长度为
n
n
n的线性码
C
C
C是空间
R
n
R_n
Rn中的一个
R
R
R模。如果
𝐜
=
(
c
1
,
.
.
.
,
c
n
)
∈
C
𝐜=(c_1,...,c_n)∈C
c=(c1,...,cn)∈C意味着
(
c
n
,
c
1
,
.
.
.
,
c
n
−
1
)
∈
C
(c_n,c_1,...,c_{n-1})∈C
(cn,c1,...,cn−1)∈C,则
R
R
R上长度为
n
n
n的线性码
C
C
C被称为循环的。 等价地,
C
C
C是环
R
[
x
]
∕
(
x
n
−
1
)
R[x]∕(x^n-1)
R[x]∕(xn−1)的一个理想。
如果
C
C
C是环
R
[
x
]
∕
(
x
n
+
1
)
R[x]∕(x^n+1)
R[x]∕(xn+1)的一个理想,那么
R
R
R上长度为
n
n
n的线性码
C
C
C被称为负环。
3 基于编码的框架
在本节中,我们通过使用纠错码的概念,提出了一个单服务器PIR方案的通用框架。为了简单起见,我们用一个简单的数据库设置来介绍这个框架,随后我们将讨论不同类型的数据库设置,以提高通信的复杂性。
3.1基于编码的框架
在详细描述该框架之前,我们先强调框架中使用的一些元素。
- 我们用一个检索函数 f ∶ R → R f∶R→R f∶R→R和 R R R的三个子集 X 、 Y 、 Z X、Y、Z X、Y、Z来描述有限换元环 R R R上的通用框架。
- 数据库文件属于 X X X集。
- 为了产生查询,我们在R上固定一个随机选择的线性编码 C C C。查询的每个元素都是 C C C中随机选择的码字与 R R R上的错误向量之和。
- 为了生成对应于非期望文件的错误向量,我们使用 Y Y Y集,而对于期望文件,我们使用 Z Z Z集。
设置:
我们定义一个检索函数
f
∶
R
→
R
f∶R→R
f∶R→R,以及满足的子集
X
,
Y
,
Z
⊆
R
X,Y,Z⊆R
X,Y,Z⊆R。
- f是一个非零映射。
- Y ⊆ k e r ( f ) : = { x ∈ R : f ( x ) = 0 } Y⊆ker(f):=\left\{x∈R:f(x)=0\right\} Y⊆ker(f):={x∈R:f(x)=0}这样, Y Y Y中任何元素与 X X X中标量的线性组合都属于 k e r ( f ) ker(f) ker(f),即当 x 1 , . . . , x j ∈ X 和 y 1 , . . . , y j ∈ Y x_1,...,x_j∈X和y_1,...,y_j∈Y x1,...,xj∈X和y1,...,yj∈Y时, x 1 y 1 + x 2 y 2 + ⋯ + x j y j ∈ k e r ( f ) x_1y_1+x_2y_2+⋯+x_jy_j∈ker(f) x1y1+x2y2+⋯+xjyj∈ker(f)。
- Z ⊆ f − 1 ( R × ) Z⊆f^{-1}(R^×) Z⊆f−1(R×),使 f ( y + x z ) = x f ( z ) f(y+xz)=xf(z) f(y+xz)=xf(z)对所有 y ∈ k e r ( f ) , x ∈ X y∈ker(f),x∈X y∈ker(f),x∈X和 z ∈ Z z∈Z z∈Z。
k e r ( f ) ker(f) ker(f)
假设线性映射 f : W − − − > V , W f:W--->V ,W f:W−−−>V,W空间映到 V V V空间
k e r ( f ) ker(f) ker(f) 相当于f的零空间,也就是V中0点对应的原象,这个原象不唯一,是个集合,就是 k e r ( f ) ker(f) ker(f)
数学语言 k e r ( f ) = { w ∈ W ∣ f ( w ) = 0 } ker(f)=\left\{w\in W | f(w)=0\right\} ker(f)={w∈W∣f(w)=0}
请注意,
f
f
f不需要是环同构,它可以是任何一种从
R
R
R到
R
R
R的满足上述三个条件的函数。
让
𝐌
=
(
m
i
)
∈
X
N
𝐌=(m_i)∈X^N
M=(mi)∈XN代表数据库,即数据库中有
N
N
N个文件。 假设用户想从数据库中检索第
b
b
b个文件。
设
C
C
C是一个长度为
n
n
n的
R
R
R上的随机线性码,即
C
C
C是
R
n
R^n
Rn的一个
R
R
R子模。
查询的生成
让
𝐠
1
,
.
.
.
,
𝐠
m
𝐠_1,...,𝐠_m
g1,...,gm是作为
R
R
R模的
C
C
C的生成子,让
E
n
c
∶
R
m
→
R
n
Enc∶R^m→R^n
Enc∶Rm→Rn是
C
C
C的编码映射。 注意,
E
n
c
Enc
Enc是一个
R
R
R-线性映射,由
(
a
1
,
.
.
.
,
a
m
)
↦
a
1
𝐠
1
+
⋯
+
a
m
𝐠
m
(a_1,...,a_m)↦a_1𝐠_1+⋯+a_m𝐠_m
(a1,...,am)↦a1g1+⋯+amgm给出。
让
𝐚
1
,
𝐚
2
,
.
.
.
,
𝐚
N
𝐚_1,𝐚_2,...,𝐚_N
a1,a2,...,aN是
R
m
R_m
Rm中随机选择的元素,并定义
𝐜
i
=
E
n
c
(
𝐚
i
)
𝐜_i=Enc(𝐚_i)
ci=Enc(ai),所有
i
∈
1
,
.
.
.
,
N
i∈{1,...,N}
i∈1,...,N。
现在,让
v
v
v是
{
1
,
.
.
.
,
n
}
\left\{1,...,n\right\}
{1,...,n}中随机选择的固定元素,我们在
R
n
R^n
Rn中随机选择误差向量
𝐞
1
,
𝐞
2
,
.
.
.
,
𝐞
N
𝐞_1,𝐞_2,...,𝐞_N
e1,e2,...,eN,使它们满足以下条件,允许提取回复。
𝐞
b
[
v
]
∈
Z
a
n
d
𝐞
i
[
v
]
∈
Y
f
o
r
a
l
l
i
≠
b
𝐞_b[v]∈Z \quad and \quad 𝐞_i[v]∈Y \quad for \quad all \quad i≠b
eb[v]∈Zandei[v]∈Yforalli=b
让
𝐪
i
∶
=
(
𝐚
i
,
𝐜
i
+
𝐞
i
)
𝐪_i∶=(𝐚_i,𝐜_i+𝐞_i)
qi∶=(ai,ci+ei)为所有
i
∈
{
1
,
.
.
.
,
N
}
i∈\left\{1,...,N\right\}
i∈{1,...,N}。然后,查询的结果是
Q
∶
=
{
𝐪
1
,
𝐪
2
,
.
.
.
,
𝐪
N
}
.
Q∶=\left\{𝐪_1,𝐪_2,...,𝐪_N\right\}.
Q∶={q1,q2,...,qN}.
回复的生成:响应是通过计算产生的
𝐫
=
∑
i
=
1
N
m
i
𝐪
i
=
∑
i
=
1
N
(
m
i
𝐚
i
,
m
i
(
𝐜
i
+
𝐞
i
)
)
=
:
(
𝐫
1
,
𝐫
2
)
𝐫=\sum^N_{i=1}m_i𝐪_i = \sum^N_{i=1}(m_i𝐚_i, m_i(𝐜_i+𝐞_i)) =:(𝐫_1,𝐫_2)
r=i=1∑Nmiqi=i=1∑N(miai,mi(ci+ei))=:(r1,r2)
回复提取: 首先,我们通过在
𝐫
1
𝐫_1
r1上应用编码图进行解码,得到:
𝐫
2
−
E
n
c
(
𝐫
1
)
=
∑
i
=
1
N
m
i
𝐞
i
𝐫_2−Enc(𝐫_1)= \sum^N_{i=1}m_i𝐞_i
r2−Enc(r1)=i=1∑Nmiei
之后,我们可以在第
v
v
v个坐标上使用检索函数
f
f
f,
f
(
∑
i
=
1
N
m
i
𝐞
i
[
v
]
)
=
f
(
∑
i
≠
b
m
i
𝐞
i
[
v
]
)
+
f
(
m
b
𝐞
b
[
v
]
)
=
m
b
f
(
𝐞
b
[
v
]
)
f(\sum^N_{i=1}m_i𝐞_i[v]) = f(\sum_{i \neq b}m_i𝐞_i[v]) + f(m_b𝐞_b[v]) \\ = m_bf(𝐞_b[v])
f(i=1∑Nmiei[v])=f(i=b∑miei[v])+f(mbeb[v])=mbf(eb[v])
上述等式是由检索函数的条件得出的。 现在,由于我们知道
f
(
𝐞
b
[
v
]
)
f(𝐞_b[v])
f(eb[v]),并且我们有
f
(
𝐞
b
[
v
]
)
∈
f
(
Z
)
⊆
R
×
f(𝐞_b[v])∈f(Z)⊆R^×
f(eb[v])∈f(Z)⊆R×,我们可以检索到想要的文件
m
b
m_b
mb。
3.2 通信的复杂性和不同的数据库设置
就基于编码的框架的基本描述而言,通信成本超过了整个数据库的大小。 事实上,对于每个作为 R R R中元素的文件,我们要发送一个 R n + m R_{n+m} Rn+m中的查询元素。 因此,总的通信成本是 R m + n R_{m+n} Rm+n中一个元素大小的 ( N + 1 ) (N+1) (N+1)倍。我们可以通过使用矩阵数据库设置[1]或迭代响应技术来改善通信复杂性。
- 数据库的矩阵设置: 为了减少通信的复杂性,可以把数据库看成一个 s × t s×t s×t矩阵,矩阵的每个元素都是一个数据库文件。现在,用户产生一个查询 Q = { 𝐪 1 , . . . , 𝐪 t } Q=\left\{𝐪_1,...,𝐪_t\right\} Q={q1,...,qt},包含 t t t个元素。 对于每个查询,服务器通过发回响应 R = { 𝐫 1 , . . . , 𝐫 s } R=\left\{𝐫_1,...,𝐫_s\right\} R={r1,...,rs}进行回复。其中包含对应于数据库矩阵的 s s s行的 s s s个响应。 这种技术是在[1]中介绍的。 使用这种方法并假设 s = t = N s=t=\sqrt{N} s=t=N,通信复杂性是 R m + n R_{m+n} Rm+n中一个元素大小的 2 N 2\sqrt{N} 2N倍。
- 迭代回复生成: 在这种技术中,人们将每个文件分成L个部分,并重复查询以检索文件的每个部分。由于查询的产生是为了只检索所需文件的小部分,环境空间的大小也相应减少。因此,相对于数据库的大小,查询的大小减少了L的系数,而响应的大小也增加了相同的系数。
3.3 安全问题
单一服务器计算式PIR方案的安全性是基于通过查看查询来识别所需文件的索引的难度。 关于基于代码的框架,我们可以用下面的可区分性问题来描述安全性。
问题1(可区分性问题) 考虑基于代码框架的设置和查询生成过程的符号。 给出查询向量
𝐪
1
,
𝐪
2
,
.
.
.
,
𝐪
N
𝐪_1,𝐪_2,...,𝐪_N
q1,q2,...,qN,确定所需文件的索引
b
b
b。
解决可区分性问题的难度在很大程度上取决于检索函数
f
f
f的选择。在下文中,我们提出了两种可用于解决该问题的通用策略。 然而,这些策略的计算成本直接依赖于检索函数和误差向量
𝐞
1
,
.
.
.
,
𝐞
N
𝐞_1,...,𝐞_N
e1,...,eN的选择。
- 考虑以下由查询向量组成的矩阵
𝐀 = ( 𝐪 1 𝐪 2 . . . 𝐪 N ) = ( 𝐚 1 𝐜 1 + 𝐞 1 𝐚 2 𝐜 2 + 𝐞 2 . . . 𝐚 N 𝐜 N + 𝐞 N ) ∈ R N × ( m + n ) 𝐀 = \begin{pmatrix}𝐪_1 \\ 𝐪_2 \\ ... \\𝐪_N \end{pmatrix} = \begin{pmatrix}𝐚_1 & 𝐜_1+𝐞_1\\ 𝐚_2 & 𝐜_2+𝐞_2 \\ ... \\𝐚_N & 𝐜_N+𝐞_N \end{pmatrix}∈R^{N×(m+n)} A=⎝⎜⎜⎛q1q2...qN⎠⎟⎟⎞=⎝⎜⎜⎛a1a2...aNc1+e1c2+e2cN+eN⎠⎟⎟⎞∈RN×(m+n)
请注意,所有 j ∈ { 1 , . . . , n } j∈\left\{1,...,n\right\} j∈{1,...,n}的向量 ( 𝐞 1 [ j ] , 𝐞 2 [ j ] , . . . , 𝐞 N [ j ] ) (𝐞_1[j],𝐞_2[j],...,𝐞_N[j]) (e1[j],e2[j],...,eN[j])都属于 𝐀 𝐀 A的列跨度。 我们回顾一下,误差向量的第 v v v个坐标是以特殊方式选择的,即 𝐞 b [ v ] ∈ Z ⊆ f − 1 ( R × ) 𝐞_b[v]∈Z⊆f^{-1}(R^×) eb[v]∈Z⊆f−1(R×)和 𝐞 i [ v ] ∈ Y ⊆ k e r ( f ) 𝐞_i[v]∈Y⊆ker(f) ei[v]∈Y⊆ker(f)对所有 i ≠ b i≠b i=b。 因此,我们可以通过寻找 ( 𝐞 1 [ v ] , 𝐞 2 [ v ] , . . . , 𝐞 N [ v ] ) (𝐞_1[v],𝐞_2[v],...,𝐞_N[v]) (e1[v],e2[v],...,eN[v])在 𝐀 𝐀 A的列跨度中的向量来解决问题1。 - 让 𝐀 𝐀 A作为上面定义的查询矩阵。对于每个 i ∈ { 1 , . . . , N } i∈\left\{1,...,N\right\} i∈{1,...,N},让 𝐀 i 𝐀_i Ai是通过删除第i行得到的 𝐀 𝐀 A的子矩阵。显然,根据构造,对于任何 i ≠ b i≠b i=b的情况, 𝐀 b 𝐀_b Ab与 𝐀 i 𝐀_i Ai相比具有不同的性质。因此,如果存在一个(代数的或非代数的)不变式,可以在任何 i ≠ b i≠b i=b的情况下将 𝐀 b 𝐀_b Ab与 𝐀 i 𝐀_i Ai区分开来,那么问题1可以通过计算每个 𝐀 1 , . . . , 𝐀 N 𝐀_1,...,𝐀_N A1,...,AN的这个不变式来解决。
文章剩余部分见:
【A survey on single server private information retrieval in a coding theory perspective】论文笔记(二)