提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
论文题目:
Fully Homomorphic Encryption with RelativelySmall Key and Ciphertext Sizes
摘要
我们提出了一个完全同态的加密方案,它的密钥和密码大小都比较小。我们的结构与Gentry的结构相同,从 "SWHE "同态的方案中产生一个完全同态的方案。对于有点同态的方案,公钥和私钥由两个大整数组成(其中一个由公钥和私钥共享),密码文本由一个大整数组成。因此,我们的方案比Gentry的原始方案具有更小的信息扩展和密钥大小。此外,我们的方案允许在任何二特征域上进行高效的完全同态加密。
1. 引言
长久以来,完全同态的公钥加密方案一直是密码学的 “圣杯”。在去年,这个问题被Gentry[7,8]利用理想格子的特性解决了。各种加密方案都使用了格子,有时只是为了争论其安全性(如NTRU[11]),在其他情况下,格子对理解方案算法的工作原理至关重要(如[9])。Gentry的全同态方案就属于后一种情况。在本文中,我们提出了一个完全同态的方案,它可以用代数数域的基本理论来描述,因此我们不需要格子来理解其加密和解密操作。然而,我们的方案确实属于这样一类方案,其最知名的攻击是基于格子的。
在高层次上,我们的方案非常简单,主要是由一个整数 N N N作为参数(还有其他参数,但不太重要)。公钥由一个素数 p p p和一个以 p p p为模数的整数 α α α组成。私钥由一个整数 z z z(如果我们要加密比特)或一个 N − 1 N-1 N−1次的整数多项式 Z ( x ) Z(x) Z(x)组成(如果我们要加密 N − 1 N-1 N−1次的一般二进制多项式)。为了加密一个信息,我们把信息编码为一个二进制多项式,然后通过添加两次小的随机多项式使信息随机化。为了获得密码文本,所产生的多项式被评估为 α α α模数 p p p。因此,密码文本只是一个整数模数 p p p(不管我们是在加密比特还是 N − 1 N-1 N−1次的二进制多项式)。
在我们知道信息是单比特的情况下,为了解密,我们将密码文本乘以 z z z,然后除以 p p p,然后将这个有理数四舍五入到最接近的整数值,然后从密码文本中减去这个结果。然后通过减少这个中间结果来恢复明文的模数。当我们解密一个二进制多项式时,我们遵循同样的程序,但这次我们乘以多项式 Z ( x ) Z(x) Z(x)并除以 p p p,以获得一个有理多项式。将这个多项式的系数四舍五入到最接近的整数,从原始密码文本中减去,再减去 2 2 2的模数,就能再次恢复明文。
2. 简介
2.1 符号
给定一个多项式
g
(
x
)
=
∑
i
=
0
t
g
i
x
i
∈
Q
[
x
]
g(x)=\sum^t_{i=0}g_ix^i \in \mathbb Q[x]
g(x)=∑i=0tgixi∈Q[x],我们定义2范数和
∞
\infty
∞范数为:
∣
∣
g
(
x
)
∣
∣
2
=
∑
i
=
1
t
g
i
2
a
n
d
∣
∣
g
(
x
)
∣
∣
∞
=
m
a
x
∣
g
i
∣
,
i
=
0
,
.
.
.
,
t
||g(x)||_2 = \sqrt{\sum^t_{i=1}g_i^2} \quad and \quad ||g(x)||_{\infty} = max|g_i|,i=0,...,t
∣∣g(x)∣∣2=i=1∑tgi2and∣∣g(x)∣∣∞=max∣gi∣,i=0,...,t
对于一个正值
r
r
r,我们定义了两种相应类型的以原点为中心的 “球”。
我们得到一个通用的含义
B
2
,
N
(
r
)
⊂
B
∞
,
N
(
r
)
\mathcal B_{2,N}(r) \subset \mathcal B_{\infty,N}(r)
B2,N(r)⊂B∞,N(r)和
B
∞
,
N
(
r
)
⊂
B
2
,
N
(
N
,
r
)
\mathcal B_{\infty,N}(r) \subset \mathcal B_{2,N}(\sqrt{N},r)
B∞,N(r)⊂B2,N(N,r)。同时,我们定义半球为:
本文中所有对奇数
m
m
m的还原都被定义为在
[
−
(
m
−
1
)
/
2
,
.
.
.
,
(
m
−
1
)
/
2
]
[-(m-1)/2,...,(m-1)/2]
[−(m−1)/2,...,(m−1)/2]范围内产生一个值。符号
a
←
b
a←b
a←b,意味着将左边的值分配给右边的值。而
a
←
R
A
a←_RA
a←RA,其中
A
A
A是一个集合,意味着用均匀分布从集合
A
A
A中选择一个。
2.2 数域中的理想
由于我们方案的基本运作是基于一个数域中的素数理想,我们首先回顾一下一些基本属性。关于所需的基本计算数论的介绍,见[4]。[公式]
假设 K K K是一个数域 Q ( θ ) \mathbb Q(θ) Q(θ),其中 θ θ θ是 N N N次不可约多项式 F ( x ) ∈ Z [ x ] F(x)∈\mathbb Z[x] F(x)∈Z[x]的根。考虑整数环 O K \mathcal O_K OK内的方程阶 Z [ θ ] \mathbb Z[θ] Z[θ]。对于我们的参数选择,我们通常有 O K = Z [ θ ] \mathcal O_K=\mathbb Z[θ] OK=Z[θ],但在一般情况下不需要这样做。我们的方案适用于 Z [ θ ] \mathbb Z[θ] Z[θ]中假定与索引 [ O K : Z [ θ ] ] [\mathcal O_K:\mathbb Z[θ]] [OK:Z[θ]]共质的理想,因此与在 O K O_K OK中工作没有什么区别。这些理想可以用两种方式中的一种表示,即用一个 N N N维的 Z Z Z基或用一个双元素的 Z [ θ ] \mathbb Z[θ] Z[θ]基。当把一个理想 a a a表述为 N N N维 Z Z Z基时,我们给出N个元素 γ 1 , . . . , γ N ∈ Z [ θ ] \gamma_1,...,\gamma _N∈\mathbb Z[θ] γ1,...,γN∈Z[θ], a a a中的每个元素都由 γ 1 , . . . , γ N γ_1,...,γ_N γ1,...,γN生成的 Z Z Z模表示。通常的做法是把这个基表述为一个 n × n n×n n×n矩阵。然后将矩阵设为 ( γ i , j ) (γ_{i,j}) (γi,j),其中我们设定 γ i = ∑ j = 0 N − 1 γ i , j θ j γ_i=\sum^{N-1}_{j=0}γ_{i,j}θ^j γi=∑j=0N−1γi,jθj,即我们采取面向行的表述。对这个基础进行Hermite Normal Form (HNF,埃尔米特正规形式)将产生一个下三角基础,其中对角线 ( d 1 , . . . , d N ) (d_1,...,d_N) (d1,...,dN)满足 d i + 1 ∣ d i d_{i+1}|d_ i di+1∣di。请注意,基的HNF的最后一个属性只适用于对应于理想的矩阵[5](他们使用不同的方向)。
然而,每一个这样的理想也可以用一个
Z
[
θ
]
Z[θ]
Z[θ]基来表示,这个基由两个元素组成,
〈
δ
1
,
δ
2
〉
〈δ_1,δ_2〉
〈δ1,δ2〉。对于位于有理素数
p
p
p之上的理想,很容易写出一个理想的双元素表示。如果我们将
F
(
x
)
F(x)
F(x)的模数
p
p
p分解成不可还原的多项式
那么,对于
p
p
p不除以
[
O
K
:
Z
[
θ
]
]
[\mathcal O_K:\mathbb Z[θ]]
[OK:Z[θ]],除以
p
Z
[
θ
]
p\mathbb Z[θ]
pZ[θ]的素数理想是由两个元素表示的
我们定义
p
i
p_i
pi的剩余度等于多项式
F
i
(
x
)
F_i(x)
Fi(x)的度数
d
i
d_i
di。对
p
i
p_i
pi的还原产生了一个同态性
我们将对残余度为1的素理想特别感兴趣。如果
χ
∈
Z
[
θ
]
\chi∈\mathbb Z[θ]
χ∈Z[θ]是由
χ
=
∑
i
=
0
N
−
1
c
i
θ
i
χ=\sum^{N-1}_{i=0}c_iθ^i
χ=∑i=0N−1ciθi给出的,那么同构
ι
p
\iota_p
ιp就对应于α中的多项式
χ
(
θ
)
χ(θ)
χ(θ)的评价,而
α
α
α是
p
p
p 的模数。
给定一个形式为
〈
p
,
θ
−
α
〉
〈p, θ-α〉
〈p,θ−α〉的素数理想,相应的HNF表示法的构造非常简单,而且与两元素表示法密切相关,我们现在将展示。我们需要对
2
N
×
N
2N×N
2N×N的矩阵进行行还原
其中
F
(
x
)
=
∑
i
=
0
N
F
i
x
i
F(x)=\sum^N_{i=0}F_ix^i
F(x)=∑i=0NFixi。不难看出,上述矩阵的HNF由以下公式给出
其中第一列中的所有整数,在第二行和以后,都是以
p
p
p为模数的。
3 Somewhat同态方案
在本节中,我们将介绍我们的同态方案并分析哪些参数集解密有效。为了简化演示,我们在这一点上将方案介绍为仅加密 P = { 0 , 1 } \mathcal P=\{0,1\} P={0,1}中的元素的方案。
3.1 实现方案
一个有点同态的加密方案由五种算法组成:{KeyGen,Encrypt,Decrypt,Add,Mult}。 我们将依次描述每一个; 请注意,最复杂的阶段是 KeyGen。 该方案由三个值 ( N 、 η 、 μ ) (N、η、μ) (N、η、μ)参数化。 一组典型的参数是 ( N , 2 N , N ) (N,2^{\sqrt N},\sqrt N) (N,2N,N)。稍后我们将返回讨论这些值的大小对安全级别 λ λ λ 和方案性能的影响。
KeyGen():
– 设置明文空间为
P
=
{
0
,
1
}
\mathcal P=\{0,1\}
P={0,1}
– 选择一个
N
N
N次不可约多项式
F
(
x
)
∈
Z
[
x
]
F(x)∈\mathbb Z[x]
F(x)∈Z[x]
– 重复:
– 直到
p
p
p 是素数
–
D
(
x
)
←
g
c
d
(
G
(
x
)
,
F
(
x
)
)
D(x)←gcd(G(x),F(x))
D(x)←gcd(G(x),F(x)) 超过
F
p
[
x
]
\mathbb F_p[x]
Fp[x]
– 令
α
∈
F
p
α∈\mathbb F_p
α∈Fp 表示
D
(
x
)
D(x)
D(x) 的唯一根
– 在
Q
[
x
]
\mathbb Q[x]
Q[x] 上应用 XGCD 算法得到
Z
(
x
)
=
∑
i
=
0
N
−
1
z
i
x
i
∈
Z
[
x
]
Z(x)=\sum^{N−1}_{i=0}z_ix_i∈\mathbb Z[x]
Z(x)=∑i=0N−1zixi∈Z[x] 使得
–
B
←
z
0
(
m
o
d
2
p
)
B←z_0(mod \quad 2p)
B←z0(mod2p)
– 公钥是
P
K
=
(
p
,
α
)
PK=(p, α)
PK=(p,α),而私钥是
S
K
=
(
p
,
B
)
SK=(p, B)
SK=(p,B)。