1 TGSW
本章节提出了一个称为 TGSW 的 FHE 方案,该方案依赖于一个小工具分解函数,将其扩展到了多项式。
定义3.6(Abstract gadget decomposition) 设 M M M 是一个 R − R- R−模。如果存在一个有效算法 D e c H , β , ε ( v ) Dec_{H, β, ε(\mathbf{v})} DecH,β,ε(v),它在精度为 ε ∈ R ε\in \mathbb{R} ε∈R、质量为 β β β 的 H H H 小工具上是有效分解的,那么我们称其为一个有效的分解。对于任意 T L W E TLWE TLWE 样本 v ∈ T N [ X ] k + 1 \mathbf{v}∈ T_N[X]^{k+1} v∈TN[X]k+1,它都能有效公开地输出一个小向量 u ∈ R [ H ] u ∈ R[H] u∈R[H],使得 ∣ ∣ u ∣ ∣ ∞ ≤ β ||u||_\infty ≤ β ∣∣u∣∣∞≤β 并且
∣ ∣ u ⋅ H − v ∣ ∣ ∞ ≤ ε ||u · H - \mathbf{v}|| \infty ≤ε ∣∣u⋅H−v∣∣∞≤ε。此外,当 v \mathbf{v} v 在 M M M中均匀分布时, u ⋅ H − v u · H - v u⋅H−v 的期望值必须等于 0 0 0。
引理3.7(Canonical gadget decomposition) 设 M = T N [ X ] k + 1 M = T_N[X]^{k+1} M=TN[X]k+1 是标准 T L W E TLWE TLWE 的定义域, l l l和 B g B_g Bg 是两个正整数,Canonical gadget 是矩阵 H ∈ M ( k + 1 ) l , k + 1 ( T N [ X ] ) H \in M_{(k+1)l,k+1} (T_N[X]) H∈M(k+1)l,k+1(TN[X]),其中 l ′ = ( k + 1 ) l l^{'}=(k+1)l l′=(k+1)l如(1)所示。
当 $β = B_g/2 $且
ε
=
1
/
2
B
g
\varepsilon = 1/2B_g
ε=1/2Bg 时,算法
1
1
1是有效的
D
e
c
H
,
β
,
ε
.
Dec_{H,β,\varepsilon}.
DecH,β,ε.
定义3.8(抽象TGSW样本) 考虑误差分布为 ξ ξ ξ,秘密相位为 φ s \varphi_s φs的TLWE加密系统在 R R R-模 M M M上以及其相关的Canonical gadget D e c H , β , ε ( v ) Dec_{H, β, ε(\mathbf{v})} DecH,β,ε(v), 在 H ∈ M l ′ H \in M^{l^{'}} H∈Ml′ 上。我们称 C ∈ l ′ C ∈ {l^{'}} C∈l′为 μ ∈ R μ \in\mathcal{ R} μ∈R 的新 T G S W TGSW TGSW 样本,当且仅当 C = Z + μ • H C = Z + μ • H C=Z+μ•H ,其中 Z ∈ M Z \in M Z∈M 的每个元素都是同态TLWE样本并带有误差 ξ ξ ξ。反过来,我们称元素 C ∈ M C ∈ M C∈M 是密钥 s s s 的有效 T G S W TGSW TGSW 样本,当且仅当存在一个唯一的多项式 μ ∈ R μ ∈ R μ∈R(模 H ⋅ R H·\mathcal{ R} H⋅R),使得 C − μ • H C − μ • H C−μ•H的每一行都是密钥为 s s s 有效TLWE样本 0 0 0。我们称多项式 μ μ μ 为 C C C 的消息,并用 m s g ( C ) msg(C) msg(C)表示。扩展到一般情况下, C C C的相位表示为 φ s ( C ) ∈ T I [ X ] l ′ \varphi_s(C) ∈ T_I[X]^{l^{'}} φs(C)∈TI[X]l′,是 C C C 的每行TLWE相位的向量。同样地,我们定义 C C C 的误差(记为 E r r ( C ) Err(C) Err(C) )为 C C C 的每行 T L W E TLWE TLWE 误差的列表。
系数之间的依赖关系可能会影响它们组合的方差,如果我们添加足够的熵,就可以证明各个系数的独立性。
2 内积
定义 3.12(External product) 我们定义内积为:
D e c H , β , ε Dec_{H,β,\varepsilon} DecH,β,ε是算法1中描述的部件分解。
3 CMux Gate
M
u
x
Mux
Mux门电路的选择逻辑为,如果
c
c
c为0则输出
d
0
d_0
d0, 如果
c
c
c为1则输出
d
1
.
d_1.
d1.
引理3.16 设 d 0 , d 1 ∈ T L W E S ( T N [ X ] ) d_0,d_1 \in TLWE_S(\mathbb{T}_N[X]) d0,d1∈TLWES(TN[X]) 以及 C ∈ T G S W s ( 0 , 1 ) C\in TGSW_s({0,1)} C∈TGSWs(0,1)。那么 m s g ( C M U X ( C , d 1 , d 0 ) ) = m s g ( C ) ? m s g ( d 1 ) : m s g ( d 0 ) msg(CMUX(C,d_1,d_0))=msg(C)?msg(d_1):msg(d_0) msg(CMUX(C,d1,d0))=msg(C)?msg(d1):msg(d0)。 进一步可以得到:
其中
4 Blind Rotate
B
l
i
n
d
R
o
t
a
t
e
BlindRotate
BlindRotate 算法将加密在输入
T
R
L
W
E
TRLWE
TRLWE 密文中的多项式乘以
X
X
X 的加密幂,从而产生系数的旋转效果。该算法由两部分构成。第一部分是对已知
X
X
X 的幂进行的旋转。第二部分(是对秘密
X
X
X 的幂进行的旋转,通过
C
M
u
x
CMux
CMux 门来实现。在输入
T
R
L
W
E
TRLWE
TRLWE 密文
c
=
(
a
,
b
)
c=(a,b)
c=(a,b),其中
a
a
a 是次数小于
N
N
N 的多项式,
∣
b
∣
<
Q
∣b∣<Q
∣b∣<Q
a
0
+
a
1
X
+
.
.
.
+
a
N
−
1
X
N
−
1
m
o
d
X
N
+
1
a^0+a^1X+...+a^{N−1}X^{N−1} \mod X^{N+1}
a0+a1X+...+aN−1XN−1modXN+1 , BlindRotate算法如下:
5 Arbitrary Functions and Lookup Tables
第一类函数是任意函数 f : B d → T s f:B_d→T_s f:Bd→Ts, 可以通过查找表 ( L U T ) (LUT) (LUT) 来表示,其中包含 2 d 2^d 2d 个输入值(每个由d个位组成),以及对于每个子函数 f j f_j fj的对应的 L U T LUT LUT 值(T中的一个元素)。我们用 σ j , h ∈ T σ_{j,h}∈T σj,h∈T表示 L U T LUT LUT 值,其中 j ∈ { 0 , 1 , … , s − 1 } j∈\{0,1,…,s−1\} j∈{0,1,…,s−1} 是子函数索引, h ∈ { 0 , 1 , … , 2 d − 1 } h∈\{0,1,…,2d−1\} h∈{0,1,…,2d−1} 是输入索引。
本章节介绍了两种技术——水平打包和垂直打包,它们可以用于改善
L
U
T
LUT
LUT 的评估。在这两种情况下,打包技术是相同的:其基本思想是将
N
N
N 个
T
L
W
E
TLWE
TLWE 消息打包到单个
T
R
L
W
E
TRLWE
TRLWE 密文的多项式系数。
中。