参考文献:
[BV14] 展示了 GSW 的非对称噪声增长,并利用分支程序的每条语句都依赖新鲜的输入密文,给出了可计算任意 N C 1 NC^1 NC1 电路的 Level FHE,噪声比率为 α = n − c , c > 0 \alpha=n^{-c},c>0 α=n−c,c>0。然后利用连续的 dimension-modulus reduction procedure,将它降低到了 α ≤ 1 / O ~ κ ( n ϵ ⋅ n log q ) \alpha \le 1/\tilde O_\kappa(n^\epsilon \cdot \sqrt{n\log q}) α≤1/O~κ(nϵ⋅nlogq),最终给出了第一个满足以下归约的全同态加密方案:
换句话说,自举程序并不会严重降低 FHE 的安全性,因此 FHE 和一般的 PKE 同样安全。其近似因子仅为多项式的(噪声-模数比值是多项式的)。
Branching Program 的定义为:

根据 Barrington’s Theorem 可知,“多项式大小 5-PBP 可计算类” 等价于 N C 1 NC^1 NC1 类(对数深度的并行电路)。因此我们选取 W = 5 W=5 W=5,状态被表示为特征向量 v t ∈ { 0 , 1 } 5 v_t \in \{0,1\}^5 vt∈{0,1}5,每个 enrty 都是布尔值。我们根据 π t , 0 , π t , 1 \pi_{t,0},\pi_{t,1} πt,0,πt,1 和 x v a r ( t ) x_{var(t)} xvar(t),用 GSW 同态地计算 BP 程序中的状态转移。
同态计算 5-PBP 的算法如下:

为了计算结果的解密正确性,要求噪声的高斯分布参数为:
α
≤
1
Θ
~
κ
(
4
d
⋅
n
log
(
q
)
)
\alpha \le \dfrac{1}{\tilde \Theta_\kappa\left(4^d \cdot \sqrt{n \log (q)}\right)}
α≤Θ~κ(4d⋅nlog(q))1
恰好 GSW 的解密电路属于
N
C
1
NC^1
NC1 类。因此附加上循环安全假设,容易构造出 pure FHE,它的噪声比率仅为多项式级别(之前的 BGV/BFV 自举需要指数级的)。
但是,上述的 α \alpha α 依然有些大了。现在我们将上述的 FHE 变得更加安全(进一步降低噪声比率)。两个关键技术:


[BV14] 设计了一个维度约简程序:设置一个维度-模数的梯子,在最高层 L e v e l = L Level=L Level=L 上同态计算 BP 程序,然后利用秘钥切换依次降低维度-模数,在最底层 L e v e l = 0 Level=0 Level=0 执行解密任务。 s L , p k L s_L,pk_L sL,pkL 用于加密, s 0 s_0 s0 用于解密。

那么自举程序为:
为了解密正确性,我们设置
α
(
n
)
=
1
Θ
~
κ
(
n
ϵ
⋅
n
log
(
q
)
)
q
(
n
)
≥
O
~
(
n
α
(
n
)
)
α(n)=1˜Θκ(nϵ⋅√nlog(q))q(n)≥˜O(√nα(n))
α(n)q(n)=Θ~κ(nϵ⋅nlog(q))1≥O~(α(n)n)
它们满足
α
⋅
q
≈
n
\alpha \cdot q \approx \sqrt n
α⋅q≈n,这是存在 LWE 从最坏情况到平均情况归约的最小的
q
q
q 取值。
上述 FHE 的安全性归约结果:

[BPMW16] 对 [BV14] 略作修改,给出了第一个 “circuit-private FHE for NC1 circuits under the standard LWE assumption with polynomial modulus-to-noise ratio”。
在 FHE 同态计算过程中,不同的 f f f 导致了不同的计算电路,于是计算结果中的噪声项 e e e 的增长规模是依赖于这个函数的。例如 FHE-based MPC 场景:Alice 拥有数据 m m m,Bob 拥有函数 f f f,它们执行 MPC 计算出 f ( m ) f(m) f(m),但是 Alice 可以根据收到的 E n c ( f ( m ) ) Enc(f(m)) Enc(f(m)) 密文推断出 f f f 的部分信息,这导致上述的 MPC 并不安全。
有几种达到电路隐私的手段:
电路隐私的定义:

[BPMW16] 利用 Gaussian leftover hash lemma,对 [BV14] 的 GSW for BP 略作修改,给出了特定于 GSW 方案的电路隐私 Level FHE 方案。
根据 [MP12],本原格 Λ ( G ) \Lambda(G) Λ(G) 及其对偶上的 f G − 1 , g G − 1 f_G^{-1},g_G^{-1} fG−1,gG−1 都是及其容易计算的。特别地,因为 gadget 矩阵的 G G G 的特殊结构,Kalien 原像采样算法极其高效。

[BPMW16] 利用 Generalized leftover hash lemma 等若干引理,推导出了 LWE 样本的随机化引理,

给定一组 LWE 样本
C
=
(
A
,
s
T
A
+
e
)
∈
Z
q
n
×
m
C=(A,s^TA+e) \in \mathbb Z_q^{n \times m}
C=(A,sTA+e)∈Zqn×m,对于任意的
v
∈
Z
q
n
v \in \mathbb Z_q^n
v∈Zqn,在陪集
v
+
Λ
q
⊥
(
G
T
)
v+\Lambda^\perp_q(G^T)
v+Λq⊥(GT) 上按照离散高斯分布采样,得到
x
=
G
r
a
n
d
−
1
(
v
)
∈
Z
m
x=G^{-1}_{rand}(v) \in \mathbb Z^m
x=Grand−1(v)∈Zm,另外再加上随机偏移
y
∈
Z
y \in \mathbb Z
y∈Z,那么就有如下两个分布统计不可区分
C
⋅
G
r
a
n
d
−
1
(
(
0
,
0
,
⋯
,
0
)
)
+
(
0
,
y
)
≡
s
C
⋅
G
r
a
n
d
−
1
(
(
1
,
0
,
⋯
,
0
)
)
+
(
0
,
y
′
)
C \cdot G^{-1}_{rand}((0,0,\cdots,0)) + (0,y) \equiv_s C \cdot G^{-1}_{rand}((1,0,\cdots,0)) + (0,y')
C⋅Grand−1((0,0,⋯,0))+(0,y)≡sC⋅Grand−1((1,0,⋯,0))+(0,y′)
这里
G
r
a
n
d
−
1
G^{-1}_{rand}
Grand−1 的随机性是必要的,它使得不同的
v
v
v 下的分布有相同的中心(same center)。随机偏移
y
y
y 也是必要的,它使得不同的
v
v
v 下的分布有相同的支撑(same support)。注意这里的
y
y
y 是短的,而 noise flooding 则需要选取超多项式大小。
为了实现电路隐私的 GSW 方案,分为三个步骤,
修改 [BV14] 的 BP 同态运算为如下格式:

其中 C C C 是输入的密文, V V V 是中间状态的密文。形如 C i ⋅ G − 1 ( V j ) C_i \cdot G^{-1}(V_j) Ci⋅G−1(Vj) 的同态乘法格式,不仅仅导致了不平衡噪声增长,而且还隐藏了到底是哪个 V j V_j Vj 被使用,这就隐藏了 BP 程序。
不过,因为 V j V_j Vj 的噪声项依赖于 C i C_i Ci 的噪声项,因此最终计算结果会泄露各个 C i C_i Ci 被使用的次数。[BPMW16] 采取 Padding 方式,如果 C i C_i Ci 被调用了 τ i \tau_i τi 次,那么就对最终状态执行 L − τ i L-\tau_i L−τi 次关于 C i C_i Ci 的单位置换,使得全部输入的噪声项都是被累计 L L L 次。
