【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】论文笔记(二)
文章目录
4 我们的框架中不同PIR的例子
在本节中,我们讨论了几个基于不同种类的检索函数的单服务器PIR方案的例子。在每一种情况下,我们都分析了与可区分性问题有关的安全性。在表1中,我们总结了这些方案之间的所有差异。
4.1 使用有限域同构的基本PIR方案
下面我们描述基于代码框架的最简单情况,即考虑任意有限域上的线性代码和检索函数的域同构。
4.1.1 计划
设置:由于身份映射是唯一的非零场内构,检索函数
f
∶
𝔽
q
→
𝔽
q
f∶𝔽_q→𝔽_q
f∶Fq→Fq必须是身份映射。 我们考虑
X
=
𝔽
q
,
Y
=
k
e
r
(
f
)
=
0
和
Z
=
f
−
1
(
𝔽
q
×
)
=
𝔽
q
×
X=𝔽_q,Y=ker(f)={0}和Z=f^{-1}(𝔽^×_q)=𝔽^×_q
X=Fq,Y=ker(f)=0和Z=f−1(Fq×)=Fq×这几个集合。很容易看出,
f
f
f满足检索函数的所有条件。
让
𝐌
=
(
m
i
)
∈
𝔽
q
N
𝐌=(m_i)∈𝔽^N_q
M=(mi)∈FqN代表数据库,即数据库中有
N
N
N个文件,每个文件的大小为
q
q
q。让
C
C
C是
𝔽
q
𝔽_q
Fq上的随机线性
[
n
,
k
]
[n, k]
[n,k]代码。代码
C
C
C由用户保密。
查询的产生: 让
𝐆
𝐆
G是
C
C
C的生成器矩阵,让
I
⊆
{
1
,
.
.
.
,
n
}
I⊆\left\{1,...,n\right\}
I⊆{1,...,n}是一个信息集。 我们用
𝐆
𝐆
G来进行编码,即编码图
E
n
c
∶
𝔽
q
k
→
𝔽
q
n
Enc∶𝔽^k_q→𝔽^n_q
Enc∶Fqk→Fqn由
𝐚
↦
𝐚
𝐆
𝐚↦𝐚𝐆
a↦aG得到.
让
𝐚
1
,
.
.
.
,
𝐚
N
𝐚_1,...,𝐚_N
a1,...,aN是在
𝔽
q
k
𝔽^k_q
Fqk中随机选择的向量,并定义相应的编码
𝐜
i
:
=
E
n
c
(
𝐚
i
)
=
𝐚
i
𝐆
𝐜_i:=Enc(𝐚_i)=𝐚_i𝐆
ci:=Enc(ai)=aiG,其中
i
∈
{
1
,
.
.
.
,
N
}
i∈\left\{1,...,N\right\}
i∈{1,...,N}.
请注意,由于I是一个信息集,我们有
(
𝐜
i
)
I
=
𝐚
i
𝐆
I
(𝐜_i)I=𝐚_i𝐆I
(ci)I=aiGI,对于所有
i
∈
{
1
,
.
.
.
,
N
}
i∈\left\{1,...,N\right\}
i∈{1,...,N}。回顾一下,在基于代码的框架中,我们在查询中发送
𝐚
i
𝐚_i
ai以方便在回复提取过程中进行解码。 然而,在这种情况下,这可以通过在由
I
I
I索引的坐标上不添加错误来实现。特别是,让
v
v
v是
I
C
I^C
IC中的一个随机元素,我们随机选择
𝐞
1
,
𝐞
2
,
.
.
.
,
𝐞
N
𝐞_1,𝐞_2,...,𝐞_N
e1,e2,...,eN在
𝔽
q
n
𝔽^n_q
Fqn中的错误向量,以便
1.
S
u
p
p
(
𝐞
i
)
⊆
I
C
,
i
∈
{
1
,
.
.
.
,
N
}
Supp(𝐞_i)⊆I^C, i∈\left\{1,...,N\right\}
Supp(ei)⊆IC,i∈{1,...,N}
2.
𝐞
i
[
v
]
=
0
𝐞_i[v]=0
ei[v]=0 ,其中
i
≠
b
,
𝐞
b
[
v
]
≠
0.
i≠b,𝐞_b[v]≠0.
i=b,eb[v]=0.
让
𝐪
i
∶
=
𝐜
i
+
𝐞
i
𝐪_i∶=𝐜_i+𝐞_i
qi∶=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
∈
𝔽
q
n
𝐫 = \sum^{N}_{i=1}m_i𝐪_i∈𝔽^n_q
r=i=1∑Nmiqi∈Fqn
回复提取:记
𝐫
=
𝐜
+
𝐞
𝐫=𝐜+𝐞
r=c+e ,其中
𝐜
∶
=
∑
i
=
1
N
m
i
𝐜
i
𝐜∶=\sum^N_{i=1}m_i𝐜_i
c∶=∑i=1Nmici,
𝐞
∶
=
∑
i
=
1
N
m
i
𝐞
i
𝐞∶=\sum^N_{i=1}m_i𝐞_i
e∶=∑i=1Nmiei。由于
I
I
I是一个信息集,并且
S
u
p
p
(
𝐞
)
⊆
I
C
Supp(𝐞)⊆I^C
Supp(e)⊆IC,我们可以通过计算对
𝐫
𝐫
r进行解码
𝐫
−
𝐫
I
𝐆
I
−
1
𝐆
=
𝐞
=
∑
i
=
1
N
m
i
𝐞
i
𝐫−𝐫_I𝐆^{−1}_I𝐆=𝐞=\sum^N_{i=1}m_i𝐞_i
r−rIGI−1G=e=i=1∑Nmiei
我们现在只考虑
𝐞
𝐞
e的第5个坐标,并应用身份检索函数,这就得到了
m
b
𝐞
b
[
v
]
m_b𝐞_b[v]
mbeb[v],因为对于所有
i
≠
b
i≠b
i=b,我们有
𝐞
i
[
v
]
=
0
𝐞_i[v]=0
ei[v]=0.由于
𝐞
b
[
v
]
≠
0
𝐞_b[v]≠0
eb[v]=0,我们可以检索到
m
b
m_b
mb.
4.1.2 安全性
正如我们在第3.3节中所讨论的,所提出的PIR方案的安全性依赖于解决可区分性问题的硬度(见问题1)。3.3节所讨论的,所提出的PIR方案的安全性依赖于解决可区分性问题的难易程度(见问题1)。在这种情况下,可区分性问题可以用第3.3节中提到的第一个策略在多项式时间内解决。
让𝐀作为包含所有查询向量的行的矩阵,
𝐀
=
(
𝐪
1
𝐪
2
.
.
.
𝐪
N
)
=
(
𝐜
1
+
𝐞
1
𝐜
2
+
𝐞
2
.
.
.
𝐜
N
+
𝐞
N
)
=
𝐂
+
𝐄
𝐀 = \begin{pmatrix}𝐪_1 \\ 𝐪_2 \\ ... \\𝐪_N \end{pmatrix} = \begin{pmatrix}𝐜_1+𝐞_1\\ 𝐜_2+𝐞_2 \\ ... \\𝐜_N+𝐞_N \end{pmatrix}=𝐂+𝐄
A=⎝⎜⎜⎛q1q2...qN⎠⎟⎟⎞=⎝⎜⎜⎛c1+e1c2+e2...cN+eN⎠⎟⎟⎞=C+E
其中,
𝐂
=
(
𝐜
1
𝐜
2
.
.
.
𝐜
N
)
𝐂 = \begin{pmatrix}𝐜_1 \\ 𝐜_2 \\ ... \\𝐜_N \end{pmatrix}
C=⎝⎜⎜⎛c1c2...cN⎠⎟⎟⎞,
𝐄
=
(
𝐞
1
𝐞
2
.
.
.
𝐞
N
)
𝐄 = \begin{pmatrix}𝐞_1 \\ 𝐞_2 \\ ... \\𝐞_N \end{pmatrix}
E=⎝⎜⎜⎛e1e2...eN⎠⎟⎟⎞。由于
I
I
I是一个信息集,我们有
𝐀
I
=
𝐂
I
+
𝐄
I
=
𝐂
I
𝐀
I
C
=
𝐂
I
C
+
𝐄
I
C
=
𝐂
I
𝐆
I
−
1
𝐆
I
C
+
𝐄
I
C
=
𝐀
I
𝐆
I
−
1
𝐆
I
C
+
𝐄
I
C
𝐀_I=𝐂_I+𝐄_I=𝐂_I \\ 𝐀_{I^C}=𝐂_{I^C}+𝐄_{I^C} \\ =𝐂_I𝐆^{−1}_I𝐆_{I^C}+𝐄_{I^C} \\ =𝐀_I𝐆^{−1}_I𝐆_{I^C}+𝐄_{I_C}
AI=CI+EI=CIAIC=CIC+EIC=CIGI−1GIC+EIC=AIGI−1GIC+EIC
这意味着
𝐄
I
C
=
𝐀
I
C
−
𝐀
I
𝐆
I
−
1
𝐆
I
C
𝐄_{I^C}=𝐀_{I^C}−𝐀_I𝐆^{−1}_I𝐆_{I^C}
EIC=AIC−AIGI−1GIC
因此,向量
𝐞
1
[
v
]
,
𝐞
2
[
v
]
,
.
.
.
,
𝐞
N
[
v
]
𝐞_1[v],𝐞_2[v],...,𝐞_N[v]
e1[v],e2[v],...,eN[v]属于
𝐀
𝐀
A的列跨度。 我们回顾一下,
𝐞
b
[
v
]
≠
0
,
𝐞
i
[
v
]
=
0
𝐞_b[v]≠0,𝐞_i[v]=0
eb[v]=0,ei[v]=0,所有
i
≠
b
i≠b
i=b。这意味着第
b
b
b个单元向量,即在第
b
b
b个位置有条目1的全零向量,是在
𝐀
𝐀
A的列跨中。
攻击者可以很容易地找到这样一个向量,只需通过所有
N
N
N个单元向量并检查它们在
𝐀
𝐀
A列跨中的存在。此外,在
𝐀
𝐀
A的列跨中存在另一个汉明权重为1的向量是很不可能的。更确切地说,给定一个
N
×
(
n
−
1
)
N×(n-1)
N×(n−1)的随机矩阵
𝐀
𝐀
A,其中
N
>
n
N>n
N>n,在
𝐀
𝐀
A的列跨中有一个权重为1的向量的概率是
(
n
−
1
)
q
(
n
−
N
)
(n-1)q^{(n-N)}
(n−1)q(n−N),这是可以否定的。尽管概率很小,但在
𝐀
𝐀
A的列跨中最多存在n个单位向量,它泄露了关于索引
b
b
b的信息,因为
n
<
N
n<N
n<N。
4.2 HHWZ PIR计划
最近,Holzbaur, Hollanti和Wachter-Zeh在[19]中提出了第一个基于编码理论的单服务器PIR方案。在这个PIR方案中,作者考虑了场扩展
𝔽
q
m
𝔽_{q^m}
Fqm,并秘密地在
𝔽
q
𝔽_q
Fq上选择了一个基础分区。 不久之后,这个方案在[20]中受到攻击,利用删除查询矩阵中的一行并检查其余部分的维度来揭示所需文件的位置。
在下文中,我们针对我们基于代码的框架,描述了[19]中提出的这种PIR方案。后来,我们还介绍了在解决可区分性问题方面的攻击[20]
请注意,原始的PIR方案在数据库和查询设置方面与我们的描述不同。在[19]中,作者认为数据库元素是基域
𝔽
q
𝔽_q
Fq上的L×𝛿矩阵,而查询元素也是基域
𝔽
q
m
𝔽_{q^m}
Fqm上的𝛿×n矩阵。请注意,作者使用了迭代回复的技术,即通过使用相同的查询来检索数据库文件中的
L
L
L行的每一行。 在下面的描述中,我们考虑
L
=
1
L=1
L=1,并使用一个等同的设置,即数据库文件是
𝔽
q
𝔽_q
Fq中的单个元素,而查询元素是
𝔽
q
m
𝔽_{q^m}
Fqm上的向量。
4.2.1 计划
在这种情况下,我们在有限域
𝔽
q
𝔽_q
Fq的扩展上工作,检索函数是一个
𝔽
q
𝔽_q
Fq线性映射。
设置:让
{
β
1
,
.
.
.
,
β
m
}
\left\{ \beta_1,...,\beta_m \right\}
{β1,...,βm}为
𝔽
q
m
𝔽_{q^m}
Fqm的一个基,作为一个
𝔽
q
𝔽_q
Fq向量空间。此外,让
V
V
V为子空间Span
𝔽
q
(
β
1
,
.
.
.
,
β
s
)
𝔽_q(\beta_1,...,\beta_s)
Fq(β1,...,βs),
W
W
W为Span
𝔽
q
(
β
s
+
1
,
.
.
.
,
β
m
)
𝔽_q(\beta_{s+1},...,\beta_m)
Fq(βs+1,...,βm),其中
s
s
s是
{
1
,
.
.
.
,
m
}
\left\{1,...,m\right\}
{1,...,m}中的某个整数。检索函数是这样给出的
P
r
o
j
V
∶
𝔽
q
m
→
𝔽
q
m
∑
i
=
1
m
λ
i
β
i
↦
∑
i
=
1
s
λ
i
β
i
Proj_V∶𝔽_{q^m}→𝔽_{q^m} \\ \sum_{i=1}^m \lambda_i \beta_i↦\sum_{i=1}^s \lambda_i \beta_i
ProjV∶Fqm→Fqmi=1∑mλiβi↦i=1∑sλiβi
设
X
X
X为集合
𝔽
q
𝔽_{q}
Fq,
Y
=
k
e
r
(
f
)
=
W
,
Z
=
f
−
1
(
𝔽
q
m
×
)
=
V
⧵
{
0
}
Y=ker(f)=W,Z=f^{-1}(𝔽^×_{q^m})=V⧵\left\{0\right\}
Y=ker(f)=W,Z=f−1(Fqm×)=V⧵{0}。很容易检查出
P
r
o
j
V
Proj_V
ProjV满足检索函数的所有条件。
假设 𝐌 = ( m i ) ∈ 𝔽 q N 𝐌=(m_i)∈𝔽^N_q M=(mi)∈FqN是数据库,即数据库中有 N N N个文件,每个文件的大小为 q q q,假设用户想从数据库中检索第 b b b个文件。让 C C C成为 𝔽 q m 𝔽_{q^m} Fqm上的一个随机的 [ n , k ] [n, k] [n,k]线性码。
查询的产生:对于编码和解码,我们遵循与第4.1节 相同的程序。
让
𝐆
𝐆
G是
C
C
C的发生器矩阵,让
I
⊆
{
1
,
.
.
.
,
n
}
I⊆\left\{1,...,n\right\}
I⊆{1,...,n}是一个信息集。我们用
𝐆
𝐆
G来进行编码,即编码图为
E
n
c
∶
𝔽
q
k
→
𝔽
q
n
Enc∶𝔽^k_q→𝔽^n_q
Enc∶Fqk→Fqn,由
𝐚
↦
𝐚
𝐆
𝐚↦𝐚𝐆
a↦aG 得到。
让
𝐚
1
,
.
.
.
,
𝐚
N
𝐚_1,...,𝐚_N
a1,...,aN是在
𝔽
q
m
k
𝔽^k_{q^m}
Fqmk中随机选择的向量,并定义相应的码字
𝐜
i
∶
=
E
n
c
(
𝐚
i
)
=
𝐚
i
𝐆
𝐜_i∶=Enc(𝐚_i)=𝐚_i𝐆
ci∶=Enc(ai)=aiG,针对所有
i
∈
{
1
,
.
.
.
,
N
}
i∈\left\{1,...,N\right\}
i∈{1,...,N}。
如同在第4.1节中一样,我们通过在由I索引的坐标上不添加错误来进行解码。如同第4.1节,我们通过在由
I
I
I索引的坐标上不添加错误来进行解码。
让
v
v
v是
I
C
I^C
IC中的一个固定元素。 现在,我们选择误差向量
𝐞
1
,
𝐞
2
,
.
.
.
,
𝐞
N
𝐞_1,𝐞_2,...,𝐞_N
e1,e2,...,eN在
𝔽
q
m
n
𝔽^n_{q^m}
Fqmn中运行,使得
- S u p p ( 𝐞 i ) ⊆ I C , 其 中 i ∈ { 1 , . . . , N } Supp(𝐞_i)⊆I^C,其中i∈\left\{1,...,N\right\} Supp(ei)⊆IC,其中i∈{1,...,N}
- 𝐞 i [ v ] ∈ W , 其 中 , i ≠ b , 𝐞 b [ v ] ∈ V ⧵ { 0 } 𝐞_i[v]∈W, 其中, i≠b ,𝐞_b[v]∈V⧵\left\{0\right\} ei[v]∈W,其中,i=b,eb[v]∈V⧵{0}
让
𝐪
i
∶
=
𝐜
i
+
𝐞
i
𝐪_i∶=𝐜_i+𝐞_i
qi∶=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
𝐫 = \sum^{N}_{i=1}m_i𝐪_i
r=i=1∑Nmiqi
回复提取:
写出
𝐫
=
𝐜
+
𝐞
𝐫=𝐜+𝐞
r=c+e,其中
𝐜
=
∑
i
=
1
N
m
i
𝐜
i
𝐜=\sum^N_{i=1}m_i𝐜_i
c=∑i=1Nmici和
𝐞
=
∑
i
=
1
N
m
i
𝐞
i
𝐞=\sum^N_{i=1}m_i𝐞_i
e=∑i=1Nmiei。
由于
I
I
I是一个信息集,并且
S
u
p
p
(
𝐞
)
⊆
I
C
Supp(𝐞)⊆I^C
Supp(e)⊆IC,我们可以通过计算对
𝐫
𝐫
r进行解码。
𝐫
−
𝐫
I
𝐆
I
−
1
𝐆
=
𝐞
=
∑
i
=
1
N
m
i
𝐞
i
𝐫−𝐫_I𝐆^{−1}_I𝐆=𝐞=\sum^N_{i=1}m_i𝐞_i
r−rIGI−1G=e=i=1∑Nmiei
现在我们考虑
𝐞
𝐞
e的第
v
v
v个坐标,并应用检索函数,从而得到
P
r
o
j
V
(
∑
i
=
1
N
m
i
𝐞
i
[
v
]
)
=
m
b
𝐞
b
[
v
]
Proj_V\bigg(\sum^N_{i=1}m_i𝐞_i[v]\bigg)=m_b𝐞_b[v]
ProjV(i=1∑Nmiei[v])=mbeb[v]
这样做是因为
𝐞
i
[
v
]
∈
W
𝐞_i[v]∈W
ei[v]∈W对所有
i
≠
b
i≠b
i=b,并且
𝐞
b
[
v
]
∈
V
⧵
{
0
}
𝐞_b[v]∈V⧵\left\{0\right\}
eb[v]∈V⧵{0}。此外,由于我们知道
𝐞
b
[
v
]
𝐞_b[v]
eb[v],我们可以检索出
m
b
m_b
mb。
4.2.2 安全问题
通过解决可区分性问题,原始 PIR 方案 [19] 在 [20] 中受到攻击。 攻击遵循Sect 3.3中提到的第二种策略。
设𝐀为包含所有查询向量的行的矩阵,即:
𝐀
=
(
𝐪
1
𝐪
2
.
.
.
𝐪
N
)
=
(
𝐜
1
+
𝐞
1
𝐜
2
+
𝐞
2
.
.
.
𝐜
N
+
𝐞
N
)
=
𝐂
+
𝐄
𝐀 = \begin{pmatrix}𝐪_1 \\ 𝐪_2 \\ ... \\𝐪_N \end{pmatrix} = \begin{pmatrix}𝐜_1+𝐞_1\\ 𝐜_2+𝐞_2 \\ ... \\𝐜_N+𝐞_N \end{pmatrix}=𝐂+𝐄
A=⎝⎜⎜⎛q1q2...qN⎠⎟⎟⎞=⎝⎜⎜⎛c1+e1c2+e2...cN+eN⎠⎟⎟⎞=C+E
其中,
𝐂
=
(
𝐜
1
𝐜
2
.
.
.
𝐜
N
)
𝐂 = \begin{pmatrix}𝐜_1 \\ 𝐜_2 \\ ... \\𝐜_N \end{pmatrix}
C=⎝⎜⎜⎛c1c2...cN⎠⎟⎟⎞,
𝐄
=
(
𝐞
1
𝐞
2
.
.
.
𝐞
N
)
𝐄 = \begin{pmatrix}𝐞_1 \\ 𝐞_2 \\ ... \\𝐞_N \end{pmatrix}
E=⎝⎜⎜⎛e1e2...eN⎠⎟⎟⎞。
对于每个
i
∈
{
1
,
.
.
.
,
N
}
i∈\left\{1,...,N\right\}
i∈{1,...,N},设
𝐀
i
𝐀_i
Ai是通过删除第
i
i
i行得到的
𝐀
𝐀
A的子矩阵。那么这些矩阵的
𝔽
q
𝔽_q
Fq级满足以下命题。
命题1 [20,命题3.1] 设
𝐀
𝐀
A如上所给。那么
r
a
n
k
𝔽
q
(
𝐀
)
=
r
a
n
k
𝔽
q
(
𝐂
)
+
r
a
n
k
𝔽
q
(
𝐄
)
rank_{𝔽_q}(𝐀)=rank_{𝔽_q}(𝐂)+rank_{𝔽_q}(𝐄)
rankFq(A)=rankFq(C)+rankFq(E)
此外,对所有
i
∈
{
1
,
.
.
.
,
N
}
i∈\left\{1,...,N\right\}
i∈{1,...,N}来说,
r
a
n
k
𝔽
q
(
𝐀
i
)
=
r
a
n
k
𝔽
q
(
𝐂
i
)
+
r
a
n
k
𝔽
q
(
𝐄
i
)
rank_{𝔽_q}(𝐀_i)=rank_{𝔽_q}(𝐂_i)+rank_{𝔽_q}(𝐄_i)
rankFq(Ai)=rankFq(Ci)+rankFq(Ei)
在
N
<
m
n
N<mn
N<mn的情况下,查询规模变得大于数据库的规模,也就是说,该方案并不比下载整个数据库的琐碎的PIR协议更好。 因此,我们假设
N
≥
m
n
N≥mn
N≥mn,并使用下面的推论,在多项式时间内区分索引b。
推论1[20,推论3.2,命题3.3] 让𝐀i如上所述得到。那么,在高概率下
- r a n k 𝔽 q ( 𝐀 b ) = m n − s rank_{𝔽_q}(𝐀_b)=mn−s rankFq(Ab)=mn−s,
- for i ≠ b i≠b i=b, we have that r a n k 𝔽 q ( 𝐀 i ) = m n rank_{𝔽_q}(𝐀_i)=mn rankFq(Ai)=mn.
证明 由命题1可知,在所有 1 ≤ i ≤ N 1≤i≤N 1≤i≤N的情况下, r a n k 𝔽 q ( 𝐀 i ) = r a n k 𝔽 q ( 𝐂 i ) + r a n k 𝔽 q ( 𝐄 i ) rank_{𝔽_q}(𝐀_i)=rank_{𝔽_q}(𝐂_i)+rank_{𝔽_q}(𝐄_i) rankFq(Ai)=rankFq(Ci)+rankFq(Ei)。
在第一种情况下,我们有
r
a
n
k
𝔽
q
(
𝐂
b
)
=
m
k
rank_{𝔽_q}(𝐂_b)=mk
rankFq(Cb)=mk 和
r
a
n
k
𝔽
q
(
𝐄
b
)
=
(
n
−
k
−
1
)
m
+
(
m
−
s
)
rank_{𝔽_q}(𝐄_b)=(n−k−1)m+(m−s)
rankFq(Eb)=(n−k−1)m+(m−s)(概率很高),其中第一部分来自未被索引的列
v
v
v,它存在于整个空间
𝔽
q
m
=
W
+
V
𝔽_{q^m}=W+V
Fqm=W+V中,第二部分来自
v
v
v索引的列,它存在于子空间
W
W
W中。 请注意,由于矩阵条目的随机性,方程
r
a
n
k
𝔽
q
(
𝐄
b
)
=
m
(
n
−
k
)
−
s
rank_{𝔽_q}(𝐄_b)=m(n−k)−s
rankFq(Eb)=m(n−k)−s 很有可能成立。
在
i
≠
b
i≠b
i=b的情况下,我们仍然有
r
a
n
k
𝔽
q
(
𝐂
i
)
=
m
k
rank_{𝔽_q}(𝐂_i)=mk
rankFq(Ci)=mk,但现在
r
a
n
k
𝔽
q
(
𝐄
i
)
=
(
n
−
k
−
1
)
m
+
m
rank_{𝔽_q}(𝐄_i)=(n-k-1)m+m
rankFq(Ei)=(n−k−1)m+m(具有高概率),其中第一部分来自未被
v
v
v索引的列,第二部分来自列
v
v
v(注意在这种情况下所有列都在完整空间
𝔽
q
m
=
W
+
V
𝔽_{q^m}=W+V
Fqm=W+V)。请注意,由于矩阵项的Ran-domness,方程
r
a
n
k
𝔽
q
(
𝐄
i
)
=
m
(
n
−
k
)
rank_{𝔽_q}(𝐄_i)=m(n-k)
rankFq(Ei)=m(n−k)大概率地成立。
4.3 AMG PIR计划
在下文中,我们针对我们基于代码的框架,描述了[21]中提出的PIR方案。之后,我们还介绍了基于格子的攻击[22]在解决可区分性问题方面的情况。请注意,原始的PIR方案与我们的描述有以下的不同。
- 数据库设置:在[21]中,作者认为数据库元素是基域 𝔽 p 𝔽_p Fp上的向量。此外,每个查询元素都是 𝔽 p 𝔽_p Fp上的一个矩阵。在下面的描述中,我们使用一个等效的设置,即数据库文件是 𝔽 p 𝔽_p Fp中的单个元素,查询元素是 𝔽 p 𝔽_p Fp上的向量。
- 噪声扰乱矩阵𝛥:作者引入了一个可逆对角矩阵𝛥,以掩盖软噪声错误向量与硬噪声错误向量。在我们的描述中,我们忽略了这个扰乱矩阵𝛥,因为我们将在安全讨论中看到,𝛥对查询矩阵的列空间没有影响。
- 在[21]中,底层线性码的速率k/n被固定为k∕n=0.5。 在我们的描述中,我们使用一个任意的速率。
4.3.1 方案
在这个方案中,我们在一个有限域 𝔽 p 𝔽_p Fp上工作,其中 p p p是一个素数。我们将把 𝔽 p 𝔽_p Fp看作 { − ⌊ p / 2 ⌋ , . . . , ⌊ p / 2 ⌋ } \left\{-⌊p/2⌋,...,⌊p/2⌋\right\} {−⌊p/2⌋,...,⌊p/2⌋}。( ⌊ x ⌋ ⌊x⌋ ⌊x⌋,不大于 x x x的整数, ⌈ x ⌉ ⌈x⌉ ⌈x⌉,不小于 x x x的整数)
设置:假设数据库的形式为 𝐌 = ( m i ) ∈ { 0 , 1 , . . . , 2 l − 1 } N 𝐌=(m_i)∈\left\{0,1,...,2^l−1\right\}N M=(mi)∈{0,1,...,2l−1}N 和 l = ⌈ l o g 2 ( N ) ⌉ + 1 l=⌈log2(N)⌉+1 l=⌈log2(N)⌉+1,即数据库中有 N N N个文件 每个大小为 l l l位。 请注意,如果文件大小大于 l l l 位,则我们将文件拆分为 l l l 位块。 假设用户想要从数据库中检索第 b b b 个文件。
令
p
p
p 为大于
2
3
l
2^{3l}
23l 的素数且
t
=
2
2
l
t=2^{2l}
t=22l 。 检索函数由对应于模
t
t
t 的 Lee 权重的余数给出,即
f
∶
𝔽
p
→
𝔽
p
,
x
↦
x
−
w
t
L
t
(
x
m
o
d
t
)
,
f∶𝔽_p→𝔽_p,\\x↦x−wt_{Lt}(x\quad mod\quad t),
f∶Fp→Fp,x↦x−wtLt(xmodt),
其中
w
t
L
t
wt_{Lt}
wtLt 表示
Z
∕
t
Z
=
{
0
,
1
,
.
.
.
,
t
−
1
}
ℤ∕tℤ=\left\{0,1,...,t−1\right\}
Z∕tZ={0,1,...,t−1} 上的 Lee 权重,定义为:
w
t
L
t
(
z
)
∶
=
m
i
n
{
z
,
t
−
z
}
wt_{Lt}(z)∶=min\left\{z,t−z\right\}
wtLt(z)∶=min{z,t−z}
集合
X
=
{
0
,
1
,
.
.
.
,
2
l
−
1
}
X=\left\{0,1,...,2^l−1\right\}
X={0,1,...,2l−1} ,
Y
=
{
−
1
,
1
}
⊆
k
e
r
(
f
)
Y=\left\{−1,1\right\}⊆ker(f)
Y={−1,1}⊆ker(f) 和
Z
=
{
t
}
⊆
f
−
1
(
𝔽
p
×
)
Z=\left\{t\right\}⊆f^{−1}(𝔽^×_p)
Z={t}⊆f−1(Fp×).
现在观察
Y
Y
Y 中的元素与
X
X
X 中具有任意数量项的标量的线性组合不一定属于
k
e
r
(
f
)
ker(f)
ker(f) 。 然而,当我们在线性组合中最多有
N
N
N个项时,条件得到满足:对于
x
1
,
.
.
.
,
x
N
∈
X
x_1,...,x_N∈X
x1,...,xN∈X 和
y
1
,
.
.
.
,
y
N
∈
Y
y_1,...,y_N∈Y
y1,...,yN∈Y 我们有
∣
x
1
y
1
+
⋯
+
x
N
y
N
∣
≤
N
2
l
<
t
2
|x_1y_1+⋯+x_Ny_N|≤N2^l<\frac{t}{2}
∣x1y1+⋯+xNyN∣≤N2l<2t
因此:
f
(
∑
i
=
1
N
x
i
y
i
)
=
∑
i
=
1
N
x
i
y
i
−
w
t
L
t
(
∑
i
=
1
N
x
i
y
i
m
o
d
e
t
)
=
∑
i
=
1
N
x
i
y
i
−
∑
i
=
1
N
x
i
y
i
=
0
f\bigg(\sum^N_{i=1}x_iy_i\bigg) = \sum^N_{i=1}x_iy_i - wt_{L_t}\bigg( \sum^N_{i=1}x_iy_i \quad mode \quad t \bigg) \\ = \sum^N_{i=1}x_iy_i-\sum^N_{i=1}x_iy_i=0
f(i=1∑Nxiyi)=i=1∑Nxiyi−wtLt(i=1∑Nxiyimodet)=i=1∑Nxiyi−i=1∑Nxiyi=0
此外,对于
y
∈
Y
,
x
∈
X
和
z
∈
Z
y∈Y,x∈X 和 z∈Z
y∈Y,x∈X和z∈Z,我们有
f
(
y
+
x
z
)
=
f
(
y
+
x
t
)
=
y
+
x
t
−
w
t
L
t
(
y
+
x
t
m
o
d
t
)
=
y
+
x
t
−
w
t
L
t
(
y
m
o
d
t
)
=
y
+
x
t
−
y
=
x
t
=
x
f
(
t
)
f(y+xz)=f(y+xt) \\ \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad =y+xt−wtLt(y+xt \quad mod \quad t) \\ \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad= y+xt−wtLt(y \quad mod \quad t) \\ \quad \quad \quad \quad \quad =y+xt−y \\ \quad \quad \quad \quad \quad =xt=xf(t)
f(y+xz)=f(y+xt)=y+xt−wtLt(y+xtmodt)=y+xt−wtLt(ymodt)=y+xt−y=xt=xf(t)
因为
f
(
z
)
=
f
(
t
)
=
t
−
w
t
L
t
(
t
m
o
d
t
)
=
t
f(z)=f(t)=t−wt_{L_t}(t\quad mod\quad t)=t
f(z)=f(t)=t−wtLt(tmodt)=t.
设 C C C为 𝔽 p 𝔽_p Fp上的随机线性 [ n , k ] [n, k] [n,k]代码,由用户保密。
生成查询:对于编码和解码,我们遵循与第4.1,4.2节相同的程序。
让
𝐆
𝐆
G是
C
C
C的发生器矩阵,让
I
⊆
{
1
,
.
.
.
,
n
}
I ⊆\left\{1,...,n\right\}
I⊆{1,...,n}是一个信息集。我们用
𝐆
𝐆
G来进行编码,即编码图为
E
n
c
∶
𝔽
q
k
→
𝔽
q
n
Enc∶𝔽^k_q→𝔽^n_q
Enc∶Fqk→Fqn,由
𝐚
↦
𝐚
𝐆
𝐚↦𝐚𝐆
a↦aG给出。
让
𝐚
1
,
.
.
.
,
𝐚
N
𝐚_1,...,𝐚_N
a1,...,aN是在
𝔽
q
k
𝔽^k_q
Fqk中随机选择的向量,并定义相应的码字
𝐜
i
:
=
E
n
c
(
𝐚
i
)
=
𝐚
i
𝐆
𝐜_i:=Enc(𝐚_i)=𝐚_i𝐆
ci:=Enc(ai)=aiG,对于所有
i
∈
{
1
,
.
.
.
,
N
}
i∈\left\{1,...,N\right\}
i∈{1,...,N}。
如同在第4.1和4.2节中,我们通过在由
I
I
I索引的坐标上不添加错误来执行解码。
让
v
v
v是
I
C
I^C
IC中的一个固定元素。现在,我们选择误差向量
𝐞
1
,
𝐞
2
,
.
.
.
,
𝐞
N
𝐞_1,𝐞_2,...,𝐞_N
e1,e2,...,eN在
𝔽
q
m
n
𝔽^n_{q^m}
Fqmn中运行,使得
- S u p p ( 𝐞 i ) ⊆ I C Supp(𝐞_i)⊆I^C Supp(ei)⊆IC for all i ∈ { 1 , . . . , N } i∈\left\{1,...,N\right\} i∈{1,...,N}
- 𝐞 i [ v ] ∈ { ± 1 } 𝐞_i[v]∈\left\{±1\right\} ei[v]∈{±1} for all i ≠ b i≠b i=b , and 𝐞 b [ v ] = t 𝐞_b[v]=t eb[v]=t
让
𝐪
i
∶
=
𝐜
i
+
𝐞
i
𝐪_i∶=𝐜_i+𝐞_i
qi∶=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
𝐫 = \sum^{N}_{i=1}m_i𝐪_i
r=i=1∑Nmiqi
回复提取:
写出
𝐫
=
𝐜
+
𝐞
𝐫=𝐜+𝐞
r=c+e,其中
𝐜
=
∑
i
=
1
N
m
i
𝐜
i
𝐜=\sum^N_{i=1}m_i𝐜_i
c=∑i=1Nmici和
𝐞
=
∑
i
=
1
N
m
i
𝐞
i
𝐞=\sum^N_{i=1}m_i𝐞_i
e=∑i=1Nmiei。
由于
I
I
I是一个信息集,并且
S
u
p
p
(
𝐞
)
⊆
I
C
Supp(𝐞)⊆I^C
Supp(e)⊆IC,我们可以通过计算对
𝐫
𝐫
r进行解码。
𝐫
−
𝐫
I
𝐆
I
−
1
𝐆
=
𝐞
=
∑
i
=
1
N
m
i
𝐞
i
𝐫−𝐫_I𝐆^{−1}_I𝐆=𝐞=\sum^N_{i=1}m_i𝐞_i
r−rIGI−1G=e=i=1∑Nmiei
我们将只关注
𝐞
𝐞
e的第
v
v
v个坐标,并应用检索函数来获得
f
(
∑
i
=
1
N
m
i
𝐞
i
[
v
]
)
=
∑
i
=
1
N
m
i
𝐞
i
[
v
]
−
w
t
L
t
(
∑
i
=
1
N
m
i
𝐞
i
[
v
]
m
o
d
t
)
=
(
∑
i
=
1
,
i
≠
b
N
m
i
𝐞
i
[
v
]
−
w
t
L
t
(
∑
i
=
1
,
i
≠
b
N
m
i
𝐞
i
[
v
]
m
o
d
t
)
)
+
m
b
𝐞
b
[
v
]
=
m
b
𝐞
b
[
v
]
=
m
b
t
f \bigg(\sum^N_{i=1}m_i𝐞_i[v]\bigg) = \sum^N_{i=1}m_i𝐞_i[v]-wt_{L_t}\bigg(\sum^N_{i=1}m_i𝐞_i[v] \enspace mod \enspace t \bigg) \\ \qquad\qquad\qquad\qquad\qquad\qquad\quad= \Bigg(\sum^N_{i=1,i≠b}m_i𝐞_i[v] - wt_{L_t}\Bigg(\sum^N_{i=1,i≠b}m_i𝐞_i[v] \enspace mod\enspace t\Bigg)\Bigg) + m_b𝐞_b[v] \\ = m_b𝐞_b[v] = m_b t
f(i=1∑Nmiei[v])=i=1∑Nmiei[v]−wtLt(i=1∑Nmiei[v]modt)=(i=1,i=b∑Nmiei[v]−wtLt(i=1,i=b∑Nmiei[v]modt))+mbeb[v]=mbeb[v]=mbt
这样做的原因是
∣
∑
i
=
1
,
i
≠
b
N
m
i
𝐞
i
[
v
]
∣
<
t
2
a
n
d
m
b
𝐞
b
[
v
]
i
s
a
m
u
l
t
i
p
l
e
o
f
t
,
|\sum^N_{i=1,i≠b}m_i𝐞_i[v]| < \frac{t}{2} \enspace and \enspace m_b𝐞_b[v] is \enspace a \enspace multiple \enspace oft,
∣i=1,i=b∑Nmiei[v]∣<2tandmbeb[v]isamultipleoft,
因此
w
t
L
t
(
∑
i
=
1
N
m
i
𝐞
i
[
v
]
m
o
d
t
)
=
w
t
L
t
(
∑
i
=
1
,
i
≠
b
N
m
i
𝐞
i
[
v
]
m
o
d
t
)
=
∑
i
=
1
,
i
≠
b
N
m
i
𝐞
i
[
v
]
wt_{L_t}\bigg(\sum^N_{i=1}m_i𝐞_i[v] \enspace mod\enspace t\bigg) = wt_{L_t}\Bigg(\sum^N_{i=1,i≠b}m_i𝐞_i[v] \enspace mod\enspace t\Bigg) = \sum^N_{i=1,i≠b}m_i𝐞_i[v]
wtLt(i=1∑Nmiei[v]modt)=wtLt(i=1,i=b∑Nmiei[v]modt)=i=1,i=b∑Nmiei[v]
现在由于
g
c
d
(
t
,
p
)
=
1
gcd(t,p)=1
gcd(t,p)=1 ,我们可以检索
m
b
m_b
mb。
4.3.2 安全问题
在[22]中,Liu等人提出了一个基于格子的对AMG PIR方案的攻击。 攻击中使用的方法可以按照第3.3节中提到的第一个策略来描述。3.3中提到的第一种策略来解决可区分性问题。
让
𝐀
𝐀
A是包含所有查询向量作为行的矩阵,即
𝐀
=
(
𝐪
1
𝐪
2
.
.
.
𝐪
N
)
=
(
𝐜
1
+
𝐞
1
𝐜
2
+
𝐞
2
.
.
.
𝐜
N
+
𝐞
N
)
𝐀 = \begin{pmatrix}𝐪_1 \\ 𝐪_2 \\ ... \\𝐪_N \end{pmatrix} = \begin{pmatrix}𝐜_1+𝐞_1\\ 𝐜_2+𝐞_2 \\ ... \\𝐜_N+𝐞_N \end{pmatrix}
A=⎝⎜⎜⎛q1q2...qN⎠⎟⎟⎞=⎝⎜⎜⎛c1+e1c2+e2...cN+eN⎠⎟⎟⎞
正如第 4.1节中所讨论的那样。向量
(
𝐞
1
[
v
]
,
𝐞
2
[
v
]
,
.
.
.
,
𝐞
N
[
v
]
)
(𝐞_1[v],𝐞_2[v],...,𝐞_N[v] )
(e1[v],e2[v],...,eN[v])属于
𝐀
𝐀
A的列跨度。
回顾一下结构,向量 ( 𝐞 1 [ v ] , 𝐞 2 [ v ] , . . . , 𝐞 N [ v ] ) (𝐞_1[v],𝐞_2[v],...,𝐞_N[v]) (e1[v],e2[v],...,eN[v])有来自 { − 1 , + 1 } \left\{-1,+1\right\} {−1,+1}的 N − 1 N-1 N−1个条目和一个值为 t t t的条目。如果我们删除 𝐀 𝐀 A 的第 b b b行,称它为矩阵 𝐀 b 𝐀_b Ab ,那么向量 ( 𝐞 1 [ v ] , . . . , 𝐞 b − 1 [ v ] , 𝐞 b + 1 [ v ] , . . . , 𝐞 N [ v ] ) (𝐞_1[v],...,𝐞_{b−1}[v],𝐞_{b+1}[v],...,𝐞_N[v]) (e1[v],...,eb−1[v],eb+1[v],...,eN[v])将会是,很有可能是由 𝐀 b 𝐀_b Ab 的列生成的 p p p 元晶格中的最短向量。 更准确地说,晶格是由 [ 𝐀 b ∣ p 𝐈 𝐝 N − 1 ] [𝐀_b|p𝐈𝐝_{N−1}] [Ab∣pIdN−1] 的 n n n 列生成的。 然而,由于晶格的大尺寸,找到这个向量仍然是不可行的。
在[22]中,作者构建了多个小维晶格。让 k ≤ s ≤ N k≤s≤N k≤s≤N,让 𝐀 ( 1 ) , . . . , 𝐀 ( ⌈ N ∕ s ⌉ ) 𝐀^{(1)},...,𝐀^{(⌈N∕s⌉)} A(1),...,A(⌈N∕s⌉)是矩阵 𝐀 𝐀 A的行级划分,即 𝐀 ( i ) 𝐀^{(i)} A(i)是由 𝐀 𝐀 A的 s s s行给出的 s × n s×n s×n矩阵,索引为 { ( i − 1 ) s + 1 , . . . , i s } \left\{(i-1)s+1,...,is\right\} {(i−1)s+1,...,is}。 现在,让 L i L_i Li成为由 𝐀 ( i ) 𝐀^{(i)} A(i)的列生成的p-ary网格。 请注意,格子 L i L_i Li的维度是 s s s,因此攻击者选择 s s s,以便对 L i L_i Li实施减基算法是可行的。为了找到索引 b b b,攻击者要逐一检查这些格子。
请注意,所需文件的索引 b b b 对应于攻击者能够找到的格 L ⌊ b ∕ s ⌋ L_{⌊b∕s⌋} L⌊b∕s⌋ ,然后攻击者通过解决 L ⌊ b ∕ s ⌋ L_{⌊b∕s⌋} L⌊b∕s⌋ 的最接近向量问题来找到索引 b b b。
更详细地说,在 i ≠ ⌊ b ∕ s ⌋ i≠⌊b∕s⌋ i=⌊b∕s⌋的情况下,我们观察到 L i L_i Li中最短的向量对应于具有 { − 1 , + 1 } \left\{-1,+1\right\} {−1,+1}项的向量 ( 𝐞 ( i − 1 ) s + 1 [ v ] , . . . , 𝐞 i s [ v ] ) (𝐞_{(i-1)s+1}[v],...,𝐞_{is}[v]) (e(i−1)s+1[v],...,eis[v])。 由于大 t t t的存在,这一观察在 i = ⌊ b ∕ s ⌋ i=⌊b∕s⌋ i=⌊b∕s⌋的情况下不成立。攻击者利用格子还原算法找到每个 L i L_i Li中最短的向量,并由此找到相应的格子 L ⌊ b ∕ s ⌋ L_{⌊b∕s⌋} L⌊b∕s⌋。
现在,可以用求解最接近的矢量问题来定位索引 b b b。 让 j = ⌊ b ∕ s ⌋ j=⌊b∕s⌋ j=⌊b∕s⌋。然后观察 ( 𝐞 ( j − 1 ) s + 1 [ v ] , . . . , 𝐞 j s [ v ] ) ∈ L j (𝐞_{(j-1)s+1}[v],...,𝐞_{js}[v])∈L_j (e(j−1)s+1[v],...,ejs[v])∈Lj是离 ( 0 , . . . , 0 , t , 0 , . . . , 0 ) (0,...,0,t,0,...,0) (0,...,0,t,0,...,0)( t t t在第 b b b个位置)最近的网格向量。为了找到索引 b b b,我们可以使用Kannan的嵌入技术[23]来解决(最多) s s s个最接近向量问题的实例,输入向量的形式为 ( 0 , . . . , 0 , t , 0 , . . . , 0 ) (0,...,0,t,0,...,0) (0,...,0,t,0,...,0)。
4.4 基于Ring‑LWE的PIR方案
在本节中,我们描述了使用基于 Ring-LWE (RLWE) 的同态加密方案构建的 PIR 方案。 特别是,我们考虑构建 XPIR 方案 [16],该方案使用 [24] 中提出的基于 Ring-LWE 的同态加密方案。
原始 PIR 方案与我们在误差分布上的描述不同,如下所示。 在 [16] 中,作者使用两种不同的分布 χ \chi χ 和 χ ′ \chi' χ′ 来采样错误。 分布 χ \chi χ 用于生成公钥,具有较大方差的分布 χ ′ \chi' χ′用于加密。 在下面的描述中,我们只考虑一种分布,模仿 χ ′ \chi' χ′,在查询生成过程中对错误向量进行采样。
我们要说明的是,在下面的描述中,数据库元素和查询元素是次数小于 n n n 的多项式,其系数在 R R R 中,也可以用 R n R^n Rn 中的向量表示。
4.4.1 方案
在这个方案中,我们在一个有限环
Z
∕
q
Z
ℤ∕qℤ
Z∕qZ上工作,其中 q 是一个正整数。 代替
Z
∕
q
Z
ℤ∕qℤ
Z∕qZ上的随机线性码,我们考虑
Z
∕
q
Z
ℤ∕qℤ
Z∕qZ上的随机负循环码。
设置:设
q
,
t
q, t
q,t 为
t
<
q
t<q
t<q 且
g
c
d
(
t
,
q
)
=
1
gcd(t,q)=1
gcd(t,q)=1 的正整数。 检索函数由下式给出
f
∶
Z
∕
q
Z
→
Z
∕
q
Z
,
x
↦
x
(
m
o
d
t
)
f∶ℤ∕qℤ→ℤ∕qℤ,\\x↦x(mod \enspace t)
f∶Z∕qZ→Z∕qZ,x↦x(modt)
让
χ
\chi
χ 是具有标准偏差
σ
\sigma
σ 的离散高斯分布。 选择参数
q
,
n
,
t
,
σ
q,n,t,\sigma
q,n,t,σ 以使它们满足
N
t
2
σ
n
<
q
2
Nt^2\sigma \sqrt{n}<\dfrac{q}{2}
Nt2σn<2q,其中
n
n
n 是将用于查询生成的线性代码的长度。
现在,我们定义子集
X
=
{
0
,
.
.
.
,
t
−
1
}
⊆
Z
∕
q
Z
Y
=
{
t
y
∣
y
i
s
s
a
m
p
l
e
d
f
r
o
m
t
h
e
d
i
s
t
r
i
b
u
t
i
o
n
χ
}
Z
=
{
t
y
+
1
∣
y
i
s
s
a
m
p
l
e
d
f
r
o
m
t
h
e
d
i
s
t
r
i
b
u
t
i
o
n
χ
}
X=\left\{0,...,t−1\right\}⊆ℤ∕qℤ \\ Y=\left\{ty∣y \enspace is \enspace sampled \enspace from \enspace the \enspace distribution \enspace \chi \right\} \\ \\ Z=\left\{ty + 1∣y \enspace is \enspace sampled \enspace from \enspace the \enspace distribution \enspace \chi \right\}
X={0,...,t−1}⊆Z∕qZY={ty∣yissampledfromthedistributionχ}Z={ty+1∣yissampledfromthedistributionχ}
观察对于
x
1
,
x
2
,
.
.
.
,
x
N
∈
X
x_1,x_2,...,x_N∈X
x1,x2,...,xN∈X 和
t
y
1
,
t
y
2
,
.
.
.
,
t
y
N
∈
Y
ty_1,ty_2,...,ty_N∈Y
ty1,ty2,...,tyN∈Y 我们有
f
(
∑
i
=
1
N
x
i
t
y
i
)
=
∑
i
=
1
N
x
i
t
y
i
m
o
d
t
=
0
f\bigg(\sum^N_{i =1}x_ity_i\bigg) = \sum^N_{i=1}x_ity_i \enspace mod \enspace t \\ =0
f(i=1∑Nxityi)=i=1∑Nxityimodt=0
这是可行的,因为参数
q
,
n
,
t
,
σ
q,n,t,\sigma
q,n,t,σ 的选择意味着
∑
i
=
1
N
x
i
t
y
i
<
q
∕
2
\sum^N_{i=1}x_ity_i<q∕2
∑i=1Nxityi<q∕2 的概率非常高。 对于
x
∈
X
,
t
y
∈
Y
和
t
z
+
1
∈
Z
x∈X,ty∈Y 和 tz+1∈Z
x∈X,ty∈Y和tz+1∈Z 我们有
f
(
y
+
x
z
)
=
t
y
+
x
(
t
z
+
1
)
m
o
d
t
=
x
m
o
d
t
=
x
=
x
f
(
z
)
f(y+xz)=ty+x(tz+1)\enspace mod\enspace t \\ \qquad\qquad=x\enspace mod \enspace t=x=xf(z)
f(y+xz)=ty+x(tz+1)modt=xmodt=x=xf(z)
因为
t
y
+
x
(
t
z
+
1
)
<
q
∕
2
ty+x(tz+1)<q∕2
ty+x(tz+1)<q∕2.
令
n
n
n 为
2
2
2 的幂,令
R
q
∶
=
(
Z
∕
q
Z
)
[
x
]
∕
(
x
n
+
1
)
R_q∶=(ℤ∕qℤ)[x]∕(x^n+1)
Rq∶=(Z∕qZ)[x]∕(xn+1)。 令
𝐌
=
(
m
i
)
∈
(
X
[
x
]
∕
(
x
n
+
1
)
)
N
𝐌=(m_i)∈(X[x]∕(x^n+1))^N
M=(mi)∈(X[x]∕(xn+1))N,即数据库中有
N
N
N个文件,每个文件是
R
q
R_q
Rq中的一个元素,系数在
X
X
X中。特别地,每个文件是 大小
l
o
g
‘
2
(
t
n
)
log_`2(tn)
log‘2(tn) 位。 假设用户想要从数据库中检索第
b
b
b 个文件。
令
C
C
C 是由一些随机选择的
s
∈
R
q
s∈R_q
s∈Rq 生成的
Z
∕
q
Z
ℤ∕qℤ
Z∕qZ 上长度为
n
n
n 的负循环码,即
C
C
C 是
s
s
s 生成的
R
q
R_q
Rq 中的理想值。 该代码由用户保密。
查询生成:我们使用生成多项式
s
s
s 来定义编码映射,即
E
n
c
∶
R
q
→
R
q
由
a
↦
a
s
Enc∶R_q→R_q 由 a↦as
Enc∶Rq→Rq由a↦as 给出。
令
a
1
,
a
2
,
.
.
.
,
a
N
a_1,a_2,...,a_N
a1,a2,...,aN 为
R
q
R_q
Rq 中随机选择的元素,并为所有
i
∈
{
1
,
.
.
.
,
N
}
i∈\left\{1,...,N\right\}
i∈{1,...,N} 定义
N
N
N 个码字
c
i
:
=
a
i
s
c_i:=a_is
ci:=ais。
现在,我们选择
R
q
R_q
Rq 中的错误
e
1
,
e
2
,
.
.
.
,
e
N
e_1,e_2,...,e_N
e1,e2,...,eN 使得它们满足以下两个允许提取回复的条件:
- e i = t y i e_i=ty_i ei=tyi , 其中 y i y_i yi 从分布 χ \chi χ中采样 , 且 i ≠ b i≠b i=b
- e b = t y b + 1 e_b=ty_b+1 eb=tyb+1 ,其中 y b y_b yb 取自 χ \chi χ.
让
𝐪
i
:
=
(
a
i
,
c
i
+
e
i
)
𝐪i:=(a_i,c_i+e_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
a
i
,
m
i
c
i
+
m
i
e
i
)
=
:
(
r
1
,
r
2
)
𝐫 = \sum^{N}_{i=1}m_i𝐪_i = \sum^{N}_{i=1}(m_ia_i,m_ic_i + m_ie_i)=:(r_1, r_2)
r=i=1∑Nmiqi=i=1∑N(miai,mici+miei)=:(r1,r2)
回复提取:通过在
r
1
r_1
r1上应用编码映射
E
n
c
Enc
Enc,我们首先对
r
2
r_2
r2 进行解码,得到错误部分,即
r
2
−
E
n
c
(
r
1
)
=
r
2
−
s
r
1
=
∑
i
=
1
N
m
i
e
i
r_2-Enc(r_1) = r_2-sr_1=\sum^N_{i=1}m_ie_i
r2−Enc(r1)=r2−sr1=i=1∑Nmiei
之后我们可以使用检索函数 f:
f
(
∑
i
N
m
i
e
i
)
=
∑
i
=
1
n
m
i
t
y
i
+
m
b
(
m
o
d
t
)
=
m
b
f\bigg(\sum^N_{i}m_ie_i\bigg) = \sum^n_{i=1}m_ity_i + m_b \enspace (mod \enspace t) \\ =m_b
f(i∑Nmiei)=i=1∑nmityi+mb(modt)=mb
请注意,这里我们将
f
f
f 应用于
R
q
R_q
Rq 的元素,这是通过将
f
f
f 应用于每个系数来完成的。
最后一个等式来自参数 n , q , t , σ n,q,t,\sigma n,q,t,σ 的条件,因为 ∑ i = 1 N m i e i \sum^N_{i=1}m_ie_i ∑i=1Nmiei 的最大系数很有可能是 N t 2 σ n Nt^2\sigma\sqrt{n} Nt2σn 的上限(参见 [24,引理 1]),其中 小于 q / 2 q/2 q/2
4.4.2 安全问题
如上所述,XPIR 方案 [16] 使用 [24] 中提出的全同态加密方案,其安全性基于解决多项式有误差学习 (PLWE) 问题的难度,这是环 LWE 的简化版本 问题。
令 R q = Z ∕ q Z [ x ] ∕ ( x n + 1 ) R_q=ℤ∕qℤ[x]∕(x^n+1) Rq=Z∕qZ[x]∕(xn+1) ,令 χ \chi χ为 R q R_q Rq 上的窄离散高斯分布。 然后 PLWE 假设指出,在计算上很难区分形式为 ( a i , a i s + e i ) (a_i,a_is+e_i) (ai,ais+ei) 的样本的多项式数量和形式为 ( a i , u i ) (a_i,u_i) (ai,ui) 的相同数量的样本,其中 s , a i 和 u i s,a_i和 u_i s,ai和ui 是从 R q R_q Rq 中均匀采样的,而 e i e_i ei 是从 χ \chi χ 中采样的。
此外,[24,命题 1] 指出,如果样本的形式为 ( a i , a i s + t e i ) (a_i,a_is+te_i) (ai,ais+tei) ,其中 a i , s , e i a_i,s,e_i ai,s,ei 如上且 t ∈ ( Z ∕ q Z ) × t∈(ℤ∕qℤ)^× t∈(Z∕qZ)× ,则将此类样本与 均匀样本等价于 PLWE 假设。
设 𝐀 𝐀 A是查询矩阵, 𝐀 i 𝐀_i Ai是删除第i行得到的 𝐀 𝐀 A的子矩阵。 将上述方法 [24,命题 1] 转换为我们的通用框架意味着将 𝐀 b 𝐀_b Ab 与均匀采样矩阵区分开来等价于 PLWE 问题。
然而,第3.3节中提到的第二种策略的目标是不同的:即区分 i ≠ b i≠b i=b的 A i A_i Ai和 A b A_b Ab。3.3节提到的第二种策略的目标是不同的方向:那就是区分 i ≠ b i≠b i=b的 A i A_i Ai和 A b A_b Ab。因此,这可能会导致对这种PIR方案的新的安全性分析。
5 理论评论
5.1 通用的PIR方案与基于编码的框架对比
一个自然的问题是询问是否可以根据基于代码的框架来描述任何单个服务器 PIR 方案。 答案是否定的,因为 Kushilevitz 和 Ostrovsky [25] 的数论 PIR 方案不适合该框架。 但是,如果我们限制为通过使用线性组合(从现在开始将其表示为加法 PIR 方案)收缩数据库元素和查询元素来生成回复的 PIR 方案类,那么答案是肯定的。 在下文中,我们讨论了任意加法 PIR 方案的要求,并论证了基于代码的框架中的元素满足这些要求的必要性:
- 环境空间:一个加法的PIR方案需要两种操作:数据库和查询元素之间的乘法(∗),以及这些乘积的加法(+)。因此,环境空间的典型选择是环。由于实际原因,环应该是有限的。
- 检索:让数据库用 D B = { d b 1 , . . . , d b N } DB=\left\{db_1,...,db_N\right\} DB={db1,...,dbN} 表示,对应的查询用 Q = { q 1 , . . . , q N } Q=\left\{q_1,...,q_N\right\} Q={q1,...,qN} 给出。假设用户想要检索第 b b b 个文件。在加法 PIR 方案中,回复是 ∑ i = 1 N d b i ∗ q i \sum^N_{i=1}db_i∗q_i ∑i=1Ndbi∗qi 并且用户想要从回复中检索 d b b db_b dbb。用 g 表示的操作 ∑ i = 1 N d b i ∗ q i ↦ d b b \sum^N_{i=1}db_i∗q_i↦db_b ∑i=1Ndbi∗qi↦dbb 类似于基于代码的框架中使用的检索函数。首先,我们注意到 g g g 湮灭 ∑ i ≠ b d b i ∗ q i \sum_{i≠b}db_i∗q_i ∑i=bdbi∗qi 使得我们只剩下 g ( d b b ∗ q b ) g(db_b∗q_b) g(dbb∗qb) 。然后从 g ( d b b ∗ q b ) g(db_b∗q_b) g(dbb∗qb) 中恢复 d b b db_b dbb。这两个属性意味着 d b i db_i dbi 和 q i q_i qi 存在于环境空间 R R R 的特殊子集中。让 X X X 表示数据库元素的空间, Y Y Y 表示与所需文件无关的查询元素的空间, Z Z Z表示与所需文件关联的查询元素的空间。对 g g g 的要求意味着: (1) Y Y Y中的元素与 X X X 中的标量的线性组合属于 g g g的核,(2) g ( x ∗ z ) = x ∗ g ( z ) 和 g ( z ) g(x∗z)=x∗g(z) 和 g(z) g(x∗z)=x∗g(z)和g(z)是一个可逆元素,对于任何 x ∈ X x∈X x∈X 和 z ∈ Z z∈Z z∈Z。这两个条件是基于代码的框架中使用的检索函数的条件的基础。
- 隐私:PIR 方案的另一个重要方面是隐私,即,给定查询 Q Q Q,确定所需文件的索引 b b b 在计算上应该是不可行的。 让我们看一下我们直接使用 Y Y Y 和 Z Z Z 中的元素生成查询元素的场景。 那么隐私依赖于以下决策问题的难度:给定 q ∈ Y ∪ Z q ∈ Y ∪ Z q∈Y∪Z ,决定是 q ∈ Y q ∈ Y q∈Y 还是 q ∈ Z q ∈ Z q∈Z 。 一般来说,这可能不是一个难题,因为可以应用检索功能来区分 Y Y Y 和 Z Z Z 之间的元素。因此,为了确保隐私,我们必须为查询元素添加一些随机性。 此外,即使在收到包含其线性组合的回复后,用户也应该能够消除这种随机性。 这正是线性纠错码的基本原理。 我们将 Y Y Y 和 Z Z Z 的元素视为错误,添加的随机性属于随机线性码。
5.2 关于PIR计划的安全性
就基于代码的框架而言,PIR方案的安全性依赖于基础检索函数的类型。正如我们从第4节的例子中注意到的,以下类型的检索函数使用起来并不安全。
- 场同构:在检索函数为非三段式场同构的情况下,PIR方案等同于第4。1节所述的方案。检索函数的内核必须是{0},因为{0}是任何场中唯一的适当理想。因此,确定所需文件的索引成为在查询矩阵的列空间中找到一个单元向量的简单任务,因此它受到第3.3节中讨论的第一个攻击策略的影响。
- 矢量空间同构。在这种情况下,所得的PIR方案等同于HHWZ PIR方案[19],在第4.2节中描述。非琐碎线性映射的内核是父矢量空间的一个适当的子空间。这导致矩阵的等级特别低,该矩阵是通过删除对应于所需文件的行而从查询矩阵中获得的,因此它受到第二节中讨论的攻击策略的影响。
我们可以将这两种情况推广到更多类型的检索函数。 显然,向量空间同构的弱点也可以在自由模块同构的情况下观察到,因为自由模块的等级和维度概念的存在。 另一方面,场同构的弱点可以在局部环同构的情况下看到。注意存在一个整数 l l l,使得 M l = { 0 } 且 M l − 1 ≠ { 0 } M^l=\left\{0\right\}且M^{l-1}≠\left\{0\right\} Ml={0}且Ml−1={0}。 让 a ∈ M l − 1 ⧵ { 0 } a∈M^{l-1}⧵\left\{0\right\} a∈Ml−1⧵{0},那么请注意,对于所有 r ∈ M , a r = 0 r∈M,ar=0 r∈M,ar=0。 这意味着特殊的列向量 ( 𝐞 1 [ v ] , . . . , 𝐞 N [ v ] ) (𝐞_1[v],...,𝐞_N[v]) (e1[v],...,eN[v]),当与 a a a相乘时,会得到一个单位向量。 因此,与场同构的情况类似,我们观察到查询矩阵的列空间中存在一个单位向量。
4.3和4.4节分别介绍了另外两个方案,它们不使用加性检索函数。这两种方案都是在大模数环境空间中使用小模数误差的想法。由于这一点,安全性最终依赖于在高维网格中寻找短矢量,这是一个计算上的难题。 然而,在AMG PIR方案的情况下,该问题在多个小维晶格中被打破,因此攻击变得可行。而在基于LWE的PIR方案中,这种新的视角可能有可能为其安全分析引入新的方法。
为了构建一个加法PIR方案,我们可以研究结构化形态的情况,如环同态和模块同态,或者非结构化形态的情况,如AMG方案和基于LWE的方案中使用的函数。
此外,如果一个人独立构建了一个加法PIR方案,那么就值得用基于代码的框架来翻译该方案,以检查可能的安全问题
参考文献
- Chor, B., Goldreich, O., Kushilevitz, E., Sudan, M.: Private information retrieval. In Proceedings of IEEE 36th annual foundations of computer science, pp. 41–50. IEEE (1995)
- Dvir, Z., Gopi, S.: 2-server PIR with subpolynomial communication. J. ACM (JACM) 63(4), 1–15 (2016)
- Beimel, A., Ishai, Y., Kushilevitz, E., Raymond, J-F.: Breaking the O(n1∕(2k−1)) barrier for information-the-oretic private information retrieval. In Proceedings of the 43rd annual IEEE symposium on foundations of computer science, 2002, pp. 261–270. IEEE (2002)
- Sun, H., Jafar, S.A.: The capacity of symmetric private information retrieval. IEEE Trans. Inform. Theory 65(1), 322–329 (2018)
- Sun, H., Jafar, S.A.: The capacity of robust private information retrieval with colluding databases. IEEE Trans. Inform. Theory 64(4), 2361–2370 (2017)
- Banawan, K., Ulukus, S.: The capacity of private information retrieval from coded databases. IEEE Trans. Inform. Theory 64(3), 1945–1956 (2018)
- Freij-Hollanti, R., Gnilke, O.W., Hollanti, C., Karpuk, D.A.: Private information retrieval from coded data-bases with colluding servers. SIAM J. Appl. Algebra Geom 1(1), 647–664 (2017)
- Dong, C., Chen, L.: A fast single server private information retrieval protocol with low communication cost. In European symposium on research in computer security, pp. 380–399. Springer (2014)
- Kushilevitz, E., Ostrovsky, R.: Replication is not needed: single database, computationally—private infor-mation retrieval. In Proceedings 38th annual symposium on foundations of computer science, pp. 364–373. IEEE (1997)
- Lipmaa, H., Pavlyk, K.: A simpler rate-optimal CPIR protocol. In International conference on financial cryptography and data security, pp. 621–638. Springer (2017)
- Stern, JP.: A new and efficient all-or-nothing disclosure of secrets protocol. In International conference on the theory and application of cryptology and information security, pp. 357–371. Springer (1998)
- Sion, R., Carbunar, B.: On the computational practicality of private information retrieval. In Proceed-ings of the network and distributed systems security symposium, pp. 2006–06. Internet Society (2007)
- Shor, P.W.: Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM Rev 41(2), 303–332 (1999)
- Yi, X., Kaosar, M.G., Paulet, R., Bertino, E.: Single-database private information retrieval from fully homomorphic encryption. IEEE Trans. Knowl. Data Eng. 25(5), 1125–1134 (2012)
- Brakerski, Z., Vaikuntanathan, V.: Efficient fully homomorphic encryption from (standard) LWE. SIAM J. Comput. 43(2), 831–871 (2014)
- Aguilar-Melchor, C., Barrier, J., Fousse, L., Killijian, M.-O.: XPIR: private information retrieval for everyone. Proc. Priv. Enhanc. Technol. 2016(2), 155–174 (2016)
- Angel, S., Chen, H., Laine, K., Setty, S.: PIR with compressed queries and amortized query processing. In 2018 IEEE symposium on security and privacy (SP). pp. 962–979 (2018)
- Ali, A., Lepoint, T., Patel, S., Raykova, M., Schoppmann, P., Seth, K., Yeo, K.: Communication–com-putation trade-offs in PIR. IACR Cryptol. ePrint Arch. (2019)
- Holzbaur, L., Hollanti, C., Wachter-Zeh, A.: Computational code-based single-server private informa-tion retrieval. In 2020 IEEE international symposium on information theory (ISIT), pp. 1065–1070. IEEE (2020)
- Bordage, S., Lavauzelle, J.: On the privacy of a code-based single-server computational PIR scheme. Cryptogr, Commun (2021)
- Melchor, CA, Gaborit, .: A fast private information retrieval protocol. In 2008 IEEE international sym-posium on information theory, pp. 1848–1852 (2008)
- Liu, J., Bi, J.: Cryptanalysis of a fast private information retrieval protocol. In Proceedings of the 3rd ACM international workshop on ASIA public-key cryptography, pp. 56–60 (2016)
- Kannan, R.: Minkowski’s convex body theorem and integer programming. Math. Oper. Res. 12(3), 415–440 (1987)
- Brakerski, Z., Vaikuntanathan, V.: Fully homomorphic encryption from ring-LWE and security for key dependent messages. In Annual cryptology conference, pp. 505–524. Springer (2011)
- Kushilevitz, E., Ostrovsky, R.: Replication is not needed: single database, computationally-private information retrieval. In Proceedings 38th annual symposium on foundations of computer science, pp. 364–373. IEEE (1997)