参考文献:
- [AJL+12] Asharov G, Jain A, López-Alt A, et al. Multiparty computation with low communication, computation and interaction via threshold FHE[C]. EUROCRYPT 2012: 483-501
- [DS16] Ducas L, Stehlé D. Sanitization of FHE Ciphertexts[C]. EUROCRYPT (1) 2016: 294-310
- [BPMW16] Bourse F, Del Pino R, Minelli M, et al. FHE Circuit Privacy Almost for Free[C]. CRYPTO (2) 2016: 62-89
- Klein’s algorithm
- Noise Flooding
- FHE Circuit Privacy for Free
文章目录
- FHE Circuit Privacy
- How to get it
- Noise Flooding Techniques
- Soak-Spin-Repeat Strategy
- GSW-style FHE
FHE Circuit Privacy
这里给出 ThFHE 的接口定义:
我们可以将 FHE 以及 PKE 作为 ThFHE 的特殊实例:FHE 就是设置 n = t = 1 n=t=1 n=t=1,并且合并 PartDec 以及 Combine 成为 Dec;ThPKE 就是固定 C = i d C=id C=id,也就是丢弃了 Eval。
定义 c d i s t s ( X , Y ) cdist_s(X,Y) cdists(X,Y) 表示在任意的规模 s s s 电路下,分布 X , Y X,Y X,Y 之间的计算距离(computational distance with respect to size s s s circuits)。我们定义 ThFHE 的电路隐私:
它保证任意的容许电路下的同态计算结果和新鲜加密的密文是计算不可区分的,从而不泄露所计算电路的信息。
How to get it
接下来的问题就是如何获得电路隐私,本质上就是消除密文噪声中包含的电路信息。这里介绍三种方法:噪声洪泛、滚转消毒、直接构造电路隐私的 GSW 方案,它们都提供了统计不可区分性(自然是计算安全的)。
Noise Flooding Techniques
[AJL+12] 构造了第一个 ThFHE,为了保护 PartDec 电路(含有各个 Party 的私钥 SS 信息)的隐私性,他们使用了噪声洪泛。
Smudging Lemma:安全参数
κ
\kappa
κ,令
B
1
,
B
2
B_1,B_2
B1,B2 是正整数,
e
1
∈
[
−
B
1
,
B
1
]
e_1 \in [-B_1,B_1]
e1∈[−B1,B1] 是固定整数,
e
2
←
[
−
B
2
,
B
2
]
e_2 \leftarrow [-B_2,B_2]
e2←[−B2,B2] 是均匀随机数。那么只要
B
1
/
B
2
=
n
e
g
l
(
κ
)
B_1/B_2 = negl(\kappa)
B1/B2=negl(κ),则
e
2
e_2
e2 的分布与
e
1
+
e
2
e_1+e_2
e1+e2 的分布统计不可区分。确切地说,这两个分布之间的统计距离为:
Δ
=
1
2
∑
x
=
−
(
B
1
+
B
2
)
B
1
+
B
2
∣
P
r
[
e
2
=
x
]
−
P
r
[
e
1
+
e
2
=
x
]
∣
=
1
2
(
∑
x
=
−
(
B
1
+
B
2
)
−
B
2
1
B
2
+
∑
x
=
B
2
B
1
+
B
2
1
B
2
)
=
B
1
B
2
\Delta = \dfrac{1}{2}\sum_{x=-(B_1+B_2)}^{B_1+B_2}\Big| Pr[e_2=x] - Pr[e_1+e_2=x] \Big| = \dfrac{1}{2}\left( \sum_{x=-(B_1+B_2)}^{-B_2}\dfrac{1}{B_2} + \sum_{x=B_2}^{B_1+B_2}\dfrac{1}{B_2} \right) = \dfrac{B_1}{B_2}
Δ=21x=−(B1+B2)∑B1+B2
Pr[e2=x]−Pr[e1+e2=x]
=21
x=−(B1+B2)∑−B2B21+x=B2∑B1+B2B21
=B2B1
因此,假如某个同态计算得到的密文是
c
t
(
s
)
=
E
C
C
(
m
)
+
e
ct(s)=ECC(m)+e
ct(s)=ECC(m)+e,其中噪声界是
∥
e
∥
≤
B
\|e\| \le B
∥e∥≤B,那么需要设置
B
′
=
B
⋅
2
O
(
κ
)
B' = B \cdot 2^{O(\kappa)}
B′=B⋅2O(κ),然后采样一个污染噪声
e
′
←
[
−
B
′
,
B
′
]
e' \gets [-B',B']
e′←[−B′,B′],计算被污染的密文
c
t
′
(
s
)
=
E
C
C
(
m
)
+
(
e
+
e
′
)
ct'(s)=ECC(m)+(e+e')
ct′(s)=ECC(m)+(e+e′),那么计算下的区分优势不会超过
B
/
B
′
=
2
−
O
(
κ
)
=
n
e
g
l
(
κ
)
B/B'=2^{-O(\kappa)}=negl(\kappa)
B/B′=2−O(κ)=negl(κ)
一般地 B = κ O ( 1 ) B=\kappa^{O(1)} B=κO(1),因此需要 B ′ = κ O ( 1 ) ⋅ 2 O ( κ ) B'=\kappa^{O(1)} \cdot 2^{O(\kappa)} B′=κO(1)⋅2O(κ) 是超多项式的,这导致密文模数是超多项式的,归约到近似因子是超多项式的格问题(安全性较弱)。为了继续同态计算,它需要对参数集满足 n log q ≥ κ 3 n \log q \ge \kappa^3 nlogq≥κ3 的实例执行一次自举。
Soak-Spin-Repeat Strategy
[DS16] 使用 Soak-Spin-Repeat Strategy(浸泡,甩干,重复)提供多项式模数的电路隐私性。他们只在密文上添加一个 tiny flooding,然后执行 bootstrapping,确保统计具体减小 2 2 2 因子。他们把这个过程迭代 κ \kappa κ 次,共计需要对参数集满足 n log q ≥ κ n \log q \ge \kappa nlogq≥κ 的实例执行 κ \kappa κ 次自举。
[DS16] 提出了密文可消毒性(ciphertext sanitizability),如果某 FHE 方案存在如下的消毒算法,
这里使用 λ \lambda λ 作为安全参数。简记 C μ C_\mu Cμ 是解密到 μ ∈ M \mu \in M μ∈M 的密文集合,令 C μ ∗ C_\mu^* Cμ∗ 是其中的低噪声子集。[DS16] 需要两个基本操作:
- 自举过程, R e f r e s h : ( p k ∈ P K , c ∈ C μ ) ↦ c ′ ∈ C μ ∗ Refresh: (pk \in PK, c \in C_\mu) \mapsto c' \in C_\mu^* Refresh:(pk∈PK,c∈Cμ)↦c′∈Cμ∗
- 密文随机化, R e r a n d : ( p k ∈ P K , c ′ ∈ C μ ∗ ) ↦ c ′ ′ ∈ C μ Rerand: (pk \in PK, c' \in C_\mu^*) \mapsto c'' \in C_\mu Rerand:(pk∈PK,c′∈Cμ∗)↦c′′∈Cμ
然后,他们定义如下的运算,
W
a
s
h
:
(
p
k
,
c
)
↦
R
e
r
a
n
d
(
p
k
,
R
e
f
r
e
s
h
(
p
k
,
c
)
)
Wash: (pk,c) \mapsto Rerand(pk, Refresh(pk,c))
Wash:(pk,c)↦Rerand(pk,Refresh(pk,c))
以及它的
κ
=
p
o
l
y
(
λ
)
\kappa=poly(\lambda)
κ=poly(λ) 次迭代,
S
a
n
i
t
i
z
e
(
p
k
,
c
)
:
=
W
a
s
h
κ
(
p
k
,
c
)
Sanitize(pk,c) := Wash^\kappa(pk,c)
Sanitize(pk,c):=Washκ(pk,c)
这个消毒算法的安全性是:
由于 BGV/BFV 本身具有超多项式大小的密文模数,因此直接用噪声洪泛就可以了。[DS16] 将消毒算法应用到 FHEW 方案(多项式大小的密文模数),使用盲旋转(延迟很小)作为消毒的一环,得到了多项式近似因子的电路隐私。如图所示:
GSW-style FHE
噪声洪泛的安全性较弱,滚转消毒的效率很低。[BPMW16] 直接在 GSW-style 方案上几乎免费地获得了电路隐私。他们直接在每次同态运算之后添加一个小噪声,这就已经获得了电路隐私。
[BPMW16] 把确定性 Gadget 分解,替换为了随机化的 Gadget 分解(在 Gadget 格上执行 Kalien 采样算法),
然后给出了如下的随机化引理,它是 Gaussian leftover hash lemma 的一个变体,
对密文 C C C 的随机化步骤是:
由于 GSW 同态乘法的噪声增长的不对称性,可以利用 GSW 实现 5-PBP for NC1,它的密文模数的规模是多项式的,这就 “几乎免费地” 实现了多项式近似因子的电路隐私。