参考文献:
- Cheon J H, Stehlé D. Fully homomophic encryption over the integers revisited[C]//Advances in Cryptology–EUROCRYPT 2015: 34th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Sofia, Bulgaria, April 26-30, 2015, Proceedings, Part I. Berlin, Heidelberg: Springer Berlin Heidelberg, 2015: 513-536.
- Chillotti I, Gama N, Georgieva M, et al. Faster fully homomorphic encryption: Bootstrapping in less than 0.1 seconds[C]//Advances in Cryptology–ASIACRYPT 2016: 22nd International Conference on the Theory and Application of Cryptology and Information Security, Hanoi, Vietnam, December 4-8, 2016, Proceedings, Part I 22. Springer Berlin Heidelberg, 2016: 3-33.
- Chillotti I, Gama N, Georgieva M, et al. TFHE: fast fully homomorphic encryption over the torus[J]. Journal of Cryptology, 2020, 33(1): 34-91.
- TFHE:环面上全同态加密方案学习笔记
文章目录
TFHE 是 FHEW 的改进,主要的优化思路是:使用 LWE 与 GSW 的"外积",取代 GSW 与 GSW 的“内积”,从而使得计算复杂度降低了一个多项式因子。
Real Torus
令 ( R , + , × ) (R,+,\times) (R,+,×) 是一个交换环,一个集合 M M M 叫做 R R R - (左) 模,如果 ( M , + ) (M,+) (M,+) 是一个阿贝尔群,并且存在一个bi-distributive(双分布?)、homogeneous(齐次)的 external operation (product), ⋅ : R × M → M \cdot: R \times M \to M ⋅:R×M→M,即:对于任意的 r , s ∈ R r,s \in R r,s∈R 和 x , y ∈ M x,y \in M x,y∈M,都有,
- 1 R ⋅ x = x 1_R \cdot x = x 1R⋅x=x
- ( r + s ) ⋅ x = r ⋅ x + s ⋅ x (r+s) \cdot x = r \cdot x+ s \cdot x (r+s)⋅x=r⋅x+s⋅x
- r ⋅ ( x + y ) = r ⋅ x + r ⋅ y r \cdot (x+y) = r \cdot x + r \cdot y r⋅(x+y)=r⋅x+r⋅y
- ( r × s ) ⋅ x = r ⋅ ( s ⋅ x ) (r \times s) \cdot x = r \cdot(s \cdot x) (r×s)⋅x=r⋅(s⋅x)
令 T : = R / Z \mathbb T := \mathbb R/\mathbb Z T:=R/Z 是集合 { r ( m o d 1 ) : r ∈ R } \{r \pmod 1: r \in \mathbb R\} {r(mod1):r∈R},这叫做实数环面(real Torus)。由于 mod 1 projection 与 real product 不兼容(例如, 0 T × 0. 5 T 0_\mathbb T \times 0.5_\mathbb T 0T×0.5T 是未定义的,容易验证 0 × 0.5 ≠ 1 × 0.5 0 \times 0.5 \neq 1 \times 0.5 0×0.5=1×0.5),因此 Torus 不是 Ring。不过,容易发现 T \mathbb T T 是个 Z \mathbb Z Z-模(比如, 0 Z ⋅ 0. 5 T = 0 T 0_\mathbb Z \cdot 0.5_\mathbb T = 0_\mathbb T 0Z⋅0.5T=0T 是 well define 的)。
简记 T N [ X ] : = R [ X ] / ( X N + 1 , 1 ) \mathbb T_N[X] := \mathbb R[X]/(X^N+1,1) TN[X]:=R[X]/(XN+1,1), Z N [ X ] : = Z [ X ] / ( X N + 1 ) \mathbb Z_N[X] := \mathbb Z[X]/(X^N+1) ZN[X]:=Z[X]/(XN+1),易知 ( T N [ X ] k , + , ⋅ ) (\mathbb T_N[X]^k,+,\cdot) (TN[X]k,+,⋅) 是一个 Z N [ X ] \mathbb Z_N[X] ZN[X]-模。
同时,如果 M M M 是个 R R R-模,那么它的向量或矩阵 M n , m ( M ) \mathcal M_{n,m}(M) Mn,m(M) 也是 R R R-模。因此, M n , m ( T ) \mathcal M_{n,m}(\mathbb T) Mn,m(T) 是 Z \mathbb Z Z-模, M n , m ( T N [ X ] k ) \mathcal M_{n,m}(\mathbb T_N[X]^k) Mn,m(TN[X]k) 是 Z N [ X ] \mathbb Z_N[X] ZN[X]-模。
令 B : = { 0 , 1 } ⊂ Z \mathbb B := \{0,1\} \subset \mathbb Z B:={0,1}⊂Z,简记 B N [ X ] : = B [ X ] / ( X N + 1 ) ⊂ Z N [ X ] \mathbb B_N[X] := \mathbb B[X]/(X^N+1) \subset \mathbb Z_N[X] BN[X]:=B[X]/(XN+1)⊂ZN[X]
一般来说, distributions over the torus do not have expectation nor variance(例如,均匀分布)。但是,如果分布 χ \chi χ 是集中的(concentrated,它的 support 包含在 T \mathbb T T 上的某个半径 1 4 \dfrac{1}{4} 41 的球内),那么还是可以定义期望和方差的:
- V a r ( χ ) : = min x ˉ ∈ T ∑ χ ∣ x − x ˉ ∣ 2 Var(\chi) := \min_{\bar x \in \mathbb T} \sum \chi|x-\bar x|^2 Var(χ):=minxˉ∈T∑χ∣x−xˉ∣2
- E ( χ ) : = arg min x ˉ ∈ T ∑ χ ∣ x − x ˉ ∣ 2 E(\chi) := \arg\min_{\bar x \in \mathbb T} \sum \chi|x-\bar x|^2 E(χ):=argminxˉ∈T∑χ∣x−xˉ∣2
我们说 T n \mathbb T^n Tn 或者 T N [ X ] k \mathbb T_N[X]^k TN[X]k 上的分布 χ ′ \chi' χ′ 是集中的,当今当它的每一个系数都是独立的集中的分布。类似于实数域上的性质,对于 e 1 , e 2 ∈ Z e_1,e_2 \in \mathbb Z e1,e2∈Z,集中分布的线性组合 χ = e 1 ⋅ χ 1 + e 2 ⋅ χ 2 \chi = e_1 \cdot \chi_1 + e_2 \cdot \chi_2 χ=e1⋅χ1+e2⋅χ2,它也是集中的,并且
- E ( χ ) = e 1 ⋅ E ( χ 1 ) + e 2 ⋅ E ( χ 2 ) E(\chi) = e_1 \cdot E(\chi_1) + e_2 \cdot E(\chi_2) E(χ)=e1⋅E(χ1)+e2⋅E(χ2)
- V a r ( χ ) ≤ e 1 2 ⋅ V a r ( χ 1 ) + e 2 2 ⋅ V a r ( χ 2 ) Var(\chi) \le e_1^2 \cdot Var(\chi_1) + e_2^2 \cdot Var(\chi_2) Var(χ)≤e12⋅Var(χ1)+e22⋅Var(χ2)
对于
T
k
\mathbb T^k
Tk 上的向量
x
x
x,我们定义
∥
x
∥
p
:
=
min
u
∈
x
+
Z
k
(
∥
u
∥
p
)
\|x\|_p := \min_{u \in x+\mathbb Z^k}(\|u\|_p)
∥x∥p:=u∈x+Zkmin(∥u∥p)
满足三角不等式,但它不是范数: T k \mathbb T^k Tk 不是向量空间,且 ∥ ⋅ ∥ p \|\cdot\|_p ∥⋅∥p 不是齐次的。不过 ∥ ⋅ ∥ p \|\cdot\|_p ∥⋅∥p 是 sub-homogeneous 的, ∥ m ⋅ x ∥ p ≤ ∣ m ∣ ∥ x ∥ p , ∀ m ∈ Z \|m \cdot x\|_p \le |m|\|x\|_p, \forall m \in \mathbb Z ∥m⋅x∥p≤∣m∣∥x∥p,∀m∈Z。对于多项式 P ∈ T N [ X ] P \in \mathbb T_N[X] P∈TN[X],定义 ∥ P ∥ p : = ∥ P ⃗ ∥ p \|P\|_p := \|\vec P\|_p ∥P∥p:=∥P∥p,其中 P ⃗ ∈ [ − 0.5 , 0.5 ] N \vec P \in [-0.5,0.5]^{N} P∈[−0.5,0.5]N 是它的系数表示。
对于矩阵
A
∈
M
p
,
q
(
T
N
[
X
]
)
A \in \mathcal M_{p,q}(\mathbb T_N[X])
A∈Mp,q(TN[X]),我们定义
∥
A
∥
∞
:
=
max
i
,
j
∥
a
i
,
j
∥
∞
\|A\|_\infty := \max_{i,j} \|a_{i,j}\|_\infty
∥A∥∞:=i,jmax∥ai,j∥∞
Lipschitz function:我们说函数
f
:
T
m
→
T
n
f:\mathbb T^m \to \mathbb T^n
f:Tm→Tn 是
κ
\kappa
κ-Lipschitz 的,如果满足
∥
f
(
x
)
−
f
(
y
)
∥
∞
≤
κ
∥
x
−
y
∥
∞
,
∀
x
,
y
\|f(x)-f(y)\|_\infty \le \kappa\|x-y\|_\infty, \forall x,y
∥f(x)−f(y)∥∞≤κ∥x−y∥∞,∀x,y
即任意两点间的连线斜率是“一致有界”的,上界 κ \kappa κ 叫做 Lipschitz 常数。
Scale-Invariant LWE
FHEW 采用了 Cheon 等人提出的 Scale-Invariant LWE 变体(回顾下 BFV 中的除以模数):令秘密 s ∈ Z n s \in \mathbb Z^n s∈Zn,令 ξ \xi ξ 是实数域 R \mathbb R R 上的错误分布,定义 L W E s , ξ LWE_{s,\xi} LWEs,ξ 是 T n × T \mathbb T^n \times \mathbb T Tn×T 上的分布,样本形如 ( a , b ) (a,b) (a,b),其中 a ∈ T n a \in \mathbb T^n a∈Tn 是均匀随机的,错误 e ← ξ e \leftarrow \xi e←ξ,计算 b : = s ⋅ a + e b:=s \cdot a+e b:=s⋅a+e(先是环作用,然后是群加法)。类似一般的 LWE 问题,这个变体也分为 Search 和 Decision 两个版本。
我们称 phase(相位)是一个关于秘密 s s s 的线性函数 ϕ s : T n × T → T \phi_s:\mathbb T^n \times \mathbb T \to \mathbb T ϕs:Tn×T→T,定义为 ϕ s ( a , b ) : = b − s ⋅ a \phi_s(a,b) := b-s \cdot a ϕs(a,b):=b−s⋅a,容易看出 L W E s , ξ LWE_{s,\xi} LWEs,ξ 就是 ϕ s \phi_s ϕs 的 kernel 的近似 ϕ s ( L W E s , ξ ) = e ≈ 0 \phi_s(LWE_{s,\xi})=e \approx 0 ϕs(LWEs,ξ)=e≈0
由于
ϕ
s
(
a
,
b
)
=
μ
\phi_s(a,b) = \mu
ϕs(a,b)=μ 的一个 trivial preimage 是
(
0
n
,
μ
)
(0^n,\mu)
(0n,μ),根据线性关系,
ϕ
s
(
L
W
E
s
,
ξ
+
(
0
n
,
μ
)
)
=
e
+
μ
≈
μ
∈
T
\phi_s(LWE_{s,\xi}+(0^n,\mu)) = e+\mu \approx \mu \in \mathbb T
ϕs(LWEs,ξ+(0n,μ))=e+μ≈μ∈T
因此,我们可以构造一个 symmetric-key variant Regev’s encryption scheme,定义明文空间为离散集合 M ∈ T M \in \mathbb T M∈T(例如 { 0 , 0.5 } \{0,0.5\} {0,0.5}),加密为 E n c s ( μ ∈ M ) : = L W E s , ξ + ( 0 n , μ ) Enc_s(\mu \in M) := LWE_{s,\xi}+(0^n,\mu) Encs(μ∈M):=LWEs,ξ+(0n,μ),解密为 D e c s ( c ∈ T n + 1 ) : = r o u n d ( ϕ s ( c ) , M ) Dec_s(c \in \mathbb T^{n+1}) := round(\phi_s(c),M) Decs(c∈Tn+1):=round(ϕs(c),M)。只要 ξ \xi ξ 的高斯参数 α = O ( R / p ) \alpha=O(R/\sqrt p) α=O(R/p)(对应的标准差为 σ = α 2 π \sigma=\alpha\sqrt{2\pi} σ=α2π),则解密正确的概率是压倒性的 1 − 2 − p 1-2^{-p} 1−2−p,其中 R R R 是 M M M 的 packing radius。
如果想要得到 asymmetric variant 的方案,只需要将公钥 p k pk pk 定义为随机 L W E s , ξ LWE_{s,\xi} LWEs,ξ 的样本列表,加密算法中的 L W E s , ξ LWE_{s,\xi} LWEs,ξ 简单地修改为 small random subset sum ∑ i ∈ I p k i \sum_{i \in I} pk_i ∑i∈Ipki,而解密算法不变。
TLWE
TFHE 定义了一个抽象的 Scale-Invariant Generalization LWE over the Torus,它可以被实例化为多种问题:LWE、RLWE、MLWE 以及 Approx-GCD、NTRU。
Abstract TLWE problems:令 I ⊆ Z [ X ] I \subseteq \mathbb Z[X] I⊆Z[X] 是一个理想,定义 R : = Z [ X ] / I \mathfrak R:=\mathbb Z[X]/I R:=Z[X]/I, T I [ X ] : = T [ X ] / I \mathbb T_I[X] := \mathbb T[X]/I TI[X]:=T[X]/I,函数 phase 是一族 Lipschitz morphism(态射) { ϕ s : R M → T I [ X ] } S \{\phi_s:{}_\mathfrak R M \to \mathbb T_I[X]\}_S {ϕs:RM→TI[X]}S。我们说 general TLWE problem 是由 R M {}_\mathfrak R M RM 上的错误分布 ξ \xi ξ、一族由秘密 s s s 索引的态射 { ϕ s } S \{\phi_s\}_S {ϕs}S 所指定的。我们定义 homogeneous TLWE distribution 为 U ker ( ϕ s ) + ξ \mathcal U_{\ker(\phi_s)}+\xi Uker(ϕs)+ξ,并可定义 Search 和 Decision 两个版本的问题。
- 如果设置
I
=
(
X
+
1
)
I=(X+1)
I=(X+1),那么
R
=
Z
,
T
I
[
X
]
=
T
\mathfrak R = \mathbb Z, \mathbb T_I[X] = \mathbb T
R=Z,TI[X]=T,
- 设置 M = T n + 1 M=\mathbb T^{n+1} M=Tn+1 以及 ϕ s ( a , b ) = b − s ⋅ a \phi_s(a,b)=b-s \cdot a ϕs(a,b)=b−s⋅a,其中 S ⊆ Z n S\subseteq \mathbb Z^n S⊆Zn,那么这是 scale-invariant LWE
- 设置 M = Z q n + 1 M=\mathbb Z_q^{n+1} M=Zqn+1 以及 ϕ s ( a , b ) = ( b − s ⋅ a ) / q \phi_s(a,b)=(b-s \cdot a)/q ϕs(a,b)=(b−s⋅a)/q,其中 S ⊆ Z q n S\subseteq \mathbb Z_q^n S⊆Zqn,那么这是 LWE mod q
- 设置 M = T M=\mathbb T M=T 以及 ϕ p ( x ) = p ⋅ x \phi_p(x)=p \cdot x ϕp(x)=p⋅x,其中 S ⊆ Z S\subseteq \mathbb Z S⊆Z,那么这是 (dual) approx-GCD problem
- 如果设置
I
=
(
X
N
+
1
)
I=(X^N+1)
I=(XN+1),那么
R
=
Z
N
[
X
]
,
T
I
[
X
]
=
T
N
[
X
]
\mathfrak R = \mathbb Z_N[X], \mathbb T_I[X] = \mathbb T_N[X]
R=ZN[X],TI[X]=TN[X],
- 设置 M = T N [ X ] 2 M=\mathbb T_N[X]^{2} M=TN[X]2 以及 ϕ s ( a , b ) = b − s ⋅ a \phi_s(a,b)=b-s \cdot a ϕs(a,b)=b−s⋅a,其中 S ⊆ Z N [ X ] S\subseteq \mathbb Z_N[X] S⊆ZN[X],那么这是 Ring LWE
- 设置 M = T N [ X ] k × ( k + 1 ) M=\mathbb T_N[X]^{k \times (k+1)} M=TN[X]k×(k+1) 以及 ϕ s ( a , b ) = b − s ⋅ a \phi_s(a,b)=b-s \cdot a ϕs(a,b)=b−s⋅a,其中 S ⊆ Z N [ X ] k S\subseteq \mathbb Z_N[X]^k S⊆ZN[X]k,那么这是 Module LWE
- 设置 M = T N [ X ] 2 M=\mathbb T_N[X]^{2} M=TN[X]2 以及 ϕ f , g ( x , y ) = f x − g y \phi_{f,g}(x,y)=fx-gy ϕf,g(x,y)=fx−gy,其中 S ⊆ Z N [ X ] 2 S\subseteq \mathbb Z_N[X]^2 S⊆ZN[X]2,那么这是 scale invariant NTRU
接下来,TFHE 定义了一个典范的 TLWE。
Canonical T( R )LWE problem:令 k ≥ 1 k \ge 1 k≥1 是正整数, N ∈ Z + N\in \mathbb Z^+ N∈Z+ 是 2 2 2 的幂次, α ∈ R ≥ 0 \alpha \in \mathbb R_{\ge 0} α∈R≥0 是标准差。密钥空间 S = B N [ X ] k S = \mathbb B_N[X]^k S=BN[X]k,其中的 s s s 是 n ≈ k N n \approx kN n≈kN 比特均匀随机数。相位 ϕ s \phi_s ϕs 是定义在 M = T N [ X ] k × T N [ X ] M = \mathbb T_N[X]^k \times \mathbb T_N[X] M=TN[X]k×TN[X] 上的 n n n-Lipschitz 函数 ϕ s ( a , b ) = b − s ⋅ a \phi_s(a,b) = b-s \cdot a ϕs(a,b)=b−s⋅a,错误分布为 ξ = ( 0 k , D T N [ X ] , α ) \xi=(0^k,D_{\mathbb T_N[X],\alpha}) ξ=(0k,DTN[X],α),那么一个齐次 TLWE 样本就形如 ( a , s ⋅ a + e ) ∈ M (a,s \cdot a+e) \in M (a,s⋅a+e)∈M,其中的 mask 取自 a ← U T N [ X ] k a \leftarrow \mathcal U_{\mathbb T_N[X]^k} a←UTN[X]k,error 取自 e ← D T N [ X ] , α e \leftarrow D_{\mathbb T_N[X],\alpha} e←DTN[X],α
-
我们说一个样本是 trivial 的,如果 a = 0 a=0 a=0,此时的样本形如 ( 0 k , e ) (0^k,e) (0k,e)
-
我们说一个样本是 noiseless 的,如果 α = 0 \alpha=0 α=0,此时的样本形如 ( a , s ⋅ a ) (a,s \cdot a) (a,s⋅a)
现在,Regev’s cryptosystem 可以被抽象为:
- 秘钥空间为 ϕ s \phi_s ϕs 的 index R : = Z [ X ] / I \mathfrak R :=\mathbb Z[X]/I R:=Z[X]/I
- 消息空间为 ϕ s \phi_s ϕs 的 image T I [ X ] : = T [ X ] / I \mathbb T_I[X] := \mathbb T[X]/I TI[X]:=T[X]/I
- 密文空间为 ϕ s \phi_s ϕs 的 domain R M {}_\mathfrak R M RM
- 消息 μ \mu μ 的密文是 random preimage 的近似 U ϕ s − 1 ( μ ) + ξ \mathcal U_{\phi_s^{-1}(\mu)}+\xi Uϕs−1(μ)+ξ,对于 Canonical Form 来说就是 U ker ( ϕ s ) + ξ + ( 0 k , μ ) \mathcal U_{\ker(\phi_s)}+\xi+(0^k,\mu) Uker(ϕs)+ξ+(0k,μ)
- 密文 c c c 的(近似的)明文是它的 image ϕ s ( c ) \phi_s(c) ϕs(c)
由于上述方案的解密结果是带噪的,适合于浮点数计算或者差分隐私(differential privacy)。如果需要精确值,有两种选择:
- 第一种,限制消息空间为 discrete subset,并使得 packing radius 大于 ξ \xi ξ 的振幅,从而可以使用园整运算获得精确值。但是,这使得非线性运算的正确性分析较为复杂,并且离散后的阿贝尔群的空间太小了。
- 第二种,限制噪声期望为 E ( ξ ) = 0 E(\xi)=0 E(ξ)=0,从而明文就是期望值 E ( ϕ s ( c ) ) E(\phi_s(c)) E(ϕs(c))。这使得噪声分析变得简单,同时可以支持无限精度的连续明文空间。
TFHE 使用第一种方案来评估 worst case 的噪声,使用第二种方案来评估 average case 的噪声。首先需要定义一个概率空间 Ω \Omega Ω,并将 TLWE 样本视为一个随机分布,而非某个数值。我们说 c ∈ T N [ X ] k + 1 c \in \mathbb T_N[X]^{k+1} c∈TN[X]k+1 是一个 valid TLWE sample,当仅当 ϕ s ( c ) \phi_s(c) ϕs(c) 在 Ω \Omega Ω 上是集中分布的。接下来定义,
- 消息 m s g ( c ) : = E ( ϕ s ( c ) ) msg(c):=E(\phi_s(c)) msg(c):=E(ϕs(c))
- 噪声 E r r ( c ) : = ϕ s ( c ) − m s g ( c ) Err(c):=\phi_s(c)-msg(c) Err(c):=ϕs(c)−msg(c)
- 方差 V a r ( E r r ( c ) ) : = V a r ( ϕ s ( c ) ) Var(Err(c)):=Var(\phi_s(c)) Var(Err(c)):=Var(ϕs(c))
- 振幅 ∥ E r r ( c ) ∥ ∞ \|Err(c)\|_\infty ∥Err(c)∥∞ 定义为满足 P r [ E r r ( c ) ≥ B ] = n e g l ( λ ) Pr[Err(c) \ge B] = negl(\lambda) Pr[Err(c)≥B]=negl(λ) 的最大振幅(maximum amplitude)
根据相位的线性关系,对应组合系数 e i ∈ R e_i \in \mathfrak R ei∈R,密文 c = ∑ I e i ⋅ c i c = \sum_I e_i \cdot c_i c=∑Iei⋅ci 满足以下关系:
- m s g ( c ) = ∑ I e i ⋅ m s g ( c i ) msg(c) = \sum_I e_i \cdot msg(c_i) msg(c)=∑Iei⋅msg(ci),
- V a r ( E r r ( c ) ) ≤ ∑ I ∥ e i ∥ 2 2 ⋅ V a r ( E r r ( c i ) ) Var(Err(c)) \le \sum_I \|e_i\|_2^2 \cdot Var(Err(c_i)) Var(Err(c))≤∑I∥ei∥22⋅Var(Err(ci))
- ∥ E r r ( c ) ∥ ∞ ≤ ∑ I ∥ e i ∥ 1 ⋅ ∥ E r r ( c i ) ∥ ∞ \|Err(c)\|_\infty \le \sum_I \|e_i\|_1 \cdot \|Err(c_i)\|_\infty ∥Err(c)∥∞≤∑I∥ei∥1⋅∥Err(ci)∥∞
TGSW
由于 LWE 密文适合线性运算,但对于非线性运算似乎少了些属性(when it comes to non linear operations on the samples, TLWE seems to miss some properties)。最知名的两种解决方案是:BGV constructions 和 GSW constructions,TFHE 关注 GSW 的一个 Torus 上的 generalized scale invariant version 的变体。
为了控制噪声增长,TFHE 给出了一个 approximate decomposition(实数的有限精度的近似分解)。首先给出一个抽象概念,之后再给出一个典范。
Abstract Gadget Decomposition:令 M M M 是一个 R \mathfrak R R-模,分解算法是一个有效的算法 D e c H , β , ϵ ( v ) Dec_{H,\beta,\epsilon}(v) DecH,β,ϵ(v),其中 H ∈ M l ′ H \in M^{l'} H∈Ml′ 是 gadget, β ∈ R > 0 \beta \in \mathbb R_{>0} β∈R>0 是 quality, ϵ ∈ R > 0 \epsilon \in \mathbb R_{>0} ϵ∈R>0 是 precision,它将任意的 TLWE 样本 v ∈ M v \in M v∈M 分解为一个(随机的) small 向量 u ∈ R l ′ u \in \mathfrak R^{l'} u∈Rl′,使得 ∥ u ∥ ∞ ≤ β \|u\|_\infty \le \beta ∥u∥∞≤β 以及 ∥ u ⋅ H − v ∥ ∞ ≤ ϵ \|u\cdot H-v\|_\infty \le \epsilon ∥u⋅H−v∥∞≤ϵ,并且期望 E v ( u ⋅ H − v ) = 0 E_v(u\cdot H-v)=0 Ev(u⋅H−v)=0
分解算法本应是随机的,但是根据 Independence Heuristic,可以近似地认为各个系数服从独立随机的集中分布,因此也可以直接使用确定性的算法。
Canonical Gadget Decomposition:对于 Canonical TLWE 样本,我们设置
M
=
T
N
[
X
]
k
+
1
M = \mathbb T_N[X]^{k+1}
M=TN[X]k+1,令
l
,
B
g
l,B_g
l,Bg 是正整数,并设置
l
′
=
(
k
+
1
)
l
l'=(k+1)l
l′=(k+1)l,那么 Gadget
H
∈
M
l
′
=
M
l
′
,
k
+
1
(
T
N
[
X
]
)
H \in M^{l'}=\mathcal M_{l',k+1}(\mathbb T_N[X])
H∈Ml′=Ml′,k+1(TN[X]) 定义为
H
=
[
B
g
−
1
0
⋯
0
0
B
g
−
2
⋯
0
⋮
⋮
⋮
B
g
−
l
0
⋯
0
0
⋮
⋱
⋮
0
0
⋯
0
B
g
−
1
0
⋯
B
g
−
2
⋮
⋮
⋮
0
0
⋯
0
B
g
−
l
]
∈
M
(
k
+
1
)
l
H = \left[\begin{array}{c|ccc|c} B_g^{-1} & 0 & \cdots & 0 & 0\\ B_g^{-2} && \cdots && 0\\ \vdots && \vdots && \vdots\\ B_g^{-l} & 0 & \cdots & 0 & 0\\ \hline \vdots && \ddots && \vdots\\ \hline 0 & 0 & \cdots & 0 & B_g^{-1}\\ 0 && \cdots && B_g^{-2}\\ \vdots && \vdots && \vdots\\ 0 & 0 & \cdots & 0 & B_g^{-l}\\ \end{array}\right] \in M^{(k+1)l}
H=
Bg−1Bg−2⋮Bg−l⋮00⋮00000⋯⋯⋮⋯⋱⋯⋯⋮⋯000000⋮0⋮Bg−1Bg−2⋮Bg−l
∈M(k+1)l
它包含 l ′ = ( k + 1 ) l l'=(k+1)l l′=(k+1)l 个 R M {}_\mathfrak R M RM 中的元素,乘以系数 u ∈ R l ′ u \in \mathfrak R^{l'} u∈Rl′ 后将组合出一个 R M {}_\mathfrak R M RM 中的元素 v v v,并且 β = B g / 2 \beta=B_g/2 β=Bg/2, ϵ = B g − l / 2 \epsilon=B_g^{-l}/2 ϵ=Bg−l/2(就是 B g B_g Bg 进制的浮点小数的有限精度表示)
近似分解算法 D e c H , β , ϵ : M → R l ′ Dec_{H,\beta,\epsilon}:M \to \mathfrak R^{l'} DecH,β,ϵ:M→Rl′ 定义如下:
接下来,我们定义 TGSW 样本。首先是抽象描述,接下来是典范描述。
Abstract TGSW samples:回顾 Abstract TLWE samples 中的 ξ , ϕ s , R M \xi,\phi_s,{}_\mathfrak R M ξ,ϕs,RM,以及 H ∈ M l ′ H \in M^{l'} H∈Ml′ 对应的 D e c H , β , ϵ Dec_{H,\beta,\epsilon} DecH,β,ϵ,我们说 C ∈ M l ′ C \in M^{l'} C∈Ml′ 是一个关于 μ ∈ R \mu \in \mathfrak R μ∈R 的fresh TGSW sample,当仅当 C = Z + μ ⋅ H C=Z+\mu \cdot H C=Z+μ⋅H,其中 Z ∈ M l ′ Z\in M^{l'} Z∈Ml′ 的每个 element 都是一个关于 s ∈ B N [ X ] k s \in \mathbb B_N[X]^k s∈BN[X]k 的齐次 TLWE 样本。我们说 C C C 是一个 valid TGSW sample,当仅当存在一个 μ ∈ R \mu \in \mathfrak R μ∈R 使得 C − μ ⋅ H C-\mu \cdot H C−μ⋅H 的每个 element 都是 valid TLWE sample。另外,我们将 TLWE 的相位扩展为 ϕ s ( C ) ∈ T I [ X ] l ′ \phi_s(C) \in \mathbb T_I[X]^{l'} ϕs(C)∈TI[X]l′,它的每个分量就是对 C C C 的各个 element 分别计算相位。
Canonical T( R )GSW samples:回顾 Canonical TLWE samples 以及 Canonical Gadget Decomposition 中的各个参数的设置,秘密 s ∈ B N [ X ] k s \in \mathbb B_N[X]^k s∈BN[X]k,那么对应的 T( R )GSW 样本为 C ∈ M l ′ = M ( k + 1 ) l , k + 1 ( T N [ X ] ) C \in M^{l'} = \mathcal M_{(k+1)l,k+1}(\mathbb T_N[X]) C∈Ml′=M(k+1)l,k+1(TN[X]),它包含 ( k + 1 ) l (k+1)l (k+1)l 行,且 C − μ ⋅ H C-\mu \cdot H C−μ⋅H 的每一行都是 T N [ X ] k + 1 \mathbb T_N[X]^{k+1} TN[X]k+1 上的齐次 T( R )LWE 样本。
根据 phase 的线性,对于组合系数
e
i
∈
R
e_i \in \mathfrak R
ei∈R,
C
=
∑
I
e
i
⋅
C
i
C = \sum_I e_i \cdot C_i
C=∑Iei⋅Ci 是
μ
=
∑
I
e
i
⋅
μ
i
\mu = \sum_I e_i \cdot \mu_i
μ=∑Iei⋅μi 的密文,并且
V
a
r
(
C
)
≤
∑
I
∥
e
i
∥
2
2
⋅
V
a
r
(
C
i
)
∥
E
r
r
(
C
)
∥
∞
≤
∑
I
∥
e
i
∥
1
⋅
∥
E
r
r
(
C
i
)
∥
∞
\begin{aligned} Var(C) &\le \sum_I \|e_i\|_2^2 \cdot Var(C_i)\\ \|Err(C)\|_\infty &\le \sum_I \|e_i\|_1 \cdot \|Err(C_i)\|_\infty \end{aligned}
Var(C)∥Err(C)∥∞≤I∑∥ei∥22⋅Var(Ci)≤I∑∥ei∥1⋅∥Err(Ci)∥∞
另外,如果
s
s
s 是二元系数的,那么任意的
A
∈
M
p
,
k
+
1
(
T
N
[
X
]
)
A \in \mathcal M_{p,k+1}(\mathbb T_N[X])
A∈Mp,k+1(TN[X]),都有
∥
ϕ
s
(
A
)
∥
∞
≤
(
1
+
k
N
)
∥
A
∥
∞
\|\phi_s(A)\|_\infty \le (1+kN)\|A\|_\infty
∥ϕs(A)∥∞≤(1+kN)∥A∥∞
也就是说,Canonical TGSW samples 中定义的 ϕ s \phi_s ϕs 是一族 ( 1 − k N ) (1-kN) (1−kN)-Lipschitz 函数。
Operators
Products
TFHE 观察到,GSW 的不对称性有两个方面,
- 如 AP14 所描述的噪声增长的不对称性,这可以支持长链乘法。
- 解密操作的不对称性,即大部分运算是不必要的,只有所谓 “big coefficient” 对应的那一个 LWE 样本被用于解密出明文。
External product:我们定义(右结合)算符
⊡
\boxdot
⊡ 为
⊡
:
T
G
S
W
×
T
L
W
E
→
T
L
W
E
(
A
∈
R
M
l
′
,
b
∈
R
M
)
↦
D
e
c
H
,
β
,
ϵ
(
b
)
⋅
A
∈
R
M
\begin{aligned} \boxdot: TGSW \times TLWE &\to TLWE\\ (A \in {}_\mathfrak R M^{l'},b \in {}_\mathfrak R M) &\mapsto Dec_{H,\beta,\epsilon}(b) \cdot A \in {}_\mathfrak R M \end{aligned}
⊡:TGSW×TLWE(A∈RMl′,b∈RM)→TLWE↦DecH,β,ϵ(b)⋅A∈RM
容易验证它是 μ A ⋅ μ b \mu_A \cdot \mu_b μA⋅μb 的密文。噪声分析如下,
而 GSW 的“内积”可以被视为多个“外积”组成的向量。
Internal Product:我们定义(右结合)算符
⊠
\boxtimes
⊠ 为
⊠
:
T
G
S
W
×
T
G
S
W
→
T
G
S
W
(
A
∈
R
M
l
′
,
B
∈
R
M
l
′
)
↦
[
A
⊡
b
1
A
⊡
b
2
⋮
A
⊡
b
l
′
]
∈
R
M
l
′
\begin{aligned} \boxtimes: TGSW \times TGSW &\to TGSW\\ (A \in {}_\mathfrak R M^{l'},B \in {}_\mathfrak R M^{l'}) &\mapsto \begin{bmatrix} A \boxdot b_1\\ A \boxdot b_2\\ \vdots\\ A \boxdot b_{l'}\\ \end{bmatrix} \in {}_\mathfrak R M^{l'} \end{aligned}
⊠:TGSW×TGSW(A∈RMl′,B∈RMl′)→TGSW↦
A⊡b1A⊡b2⋮A⊡bl′
∈RMl′
容易验证它是 μ A ⋅ μ B \mu_A \cdot \mu_B μA⋅μB 的密文,噪声分析与 External product 基本一致。
Key Switching
TFHE 扩展了秘钥切换的概念,定义了 TLWE 上的关于 R R R-Lipschitz 的线性态射 f : Z T p → T N [ X ] f:{}_\mathbb Z \mathbb T^p \to \mathbb T_N[X] f:ZTp→TN[X] 的秘钥切换。假设从 K ∈ B n \mathfrak K \in \mathbb B^n K∈Bn 下的密文 c \mathfrak c c,切换到 K ∈ B N [ X ] k K \in \mathbb B_N[X]^k K∈BN[X]k 下的密文 c c c。
对于公开的态射 f f f,秘钥切换的例程为 P u b K S ( f , K S , c ) PubKS(f,KS,\mathfrak c) PubKS(f,KS,c),如图:
它的输出为 c ∈ T ( R ) L W E K ( f ( μ 1 , ⋯ , μ p ) ) c \in T( R )LWE_K(f(\mu_1,\cdots,\mu_p)) c∈T(R)LWEK(f(μ1,⋯,μp)),噪声分析为
对于秘密的态射 f f f,方便起见使用增广形式的私钥(第 n + 1 n+1 n+1 分量置为 − 1 -1 −1),此时 ϕ K ( c ) = − K ⋅ c \phi_\mathfrak K(\mathfrak c) = -\mathfrak K \cdot \mathfrak c ϕK(c)=−K⋅c。秘钥切换的例程为 P r i v K S ( K S ( f ) , c ) PrivKS(KS^{(f)},\mathfrak c) PrivKS(KS(f),c),如图:
它的输出为 c ∈ T ( R ) L W E K ( f ( μ 1 , ⋯ , μ p ) ) c \in T( R )LWE_K(f(\mu_1,\cdots,\mu_p)) c∈T(R)LWEK(f(μ1,⋯,μp)),噪声分析为
Simple Extraction
由于 T( R )LWE 或 T( R )GSW 的消息空间是 T N [ X ] \mathbb T_N[X] TN[X],因此它包含 N N N 个环面 T \mathbb T T 上的槽(slot)。
对于 n = k N n=kN n=kN,LWE 的秘钥 K ∈ B n \mathfrak K \in \mathbb B^n K∈Bn 和 RLWE 的秘钥 K ∈ B N [ X ] k K \in \mathbb B_N[X]^k K∈BN[X]k 可以相互转化(对应于同样的 n n n 长二元向量表示),并且 RLWE 的密文可以被视作是:LWE 密文的第一分量不断反循环移位,从而获得一系列的 LWE 密文的第二分量(仔细想一下 T N [ X ] \mathbb T_N[X] TN[X] 被 Z N [ X ] \mathbb Z_N[X] ZN[X] 环作用,其中理想为 I = ( X N + 1 ) I=(X^N+1) I=(XN+1))
给定 RLWE 样本
c
=
(
a
,
b
)
∈
R
L
W
E
K
(
μ
)
c=(a,b) \in RLWE_K(\mu)
c=(a,b)∈RLWEK(μ) 以及位置
p
∈
[
N
]
p \in [N]
p∈[N],我们定义
S
i
m
p
l
e
E
x
t
r
a
c
t
p
(
c
)
SimpleExtract_p(c)
SimpleExtractp(c) 的输出是一个 LWE 样本
c
=
(
a
,
b
)
∈
L
W
E
K
(
μ
p
)
\mathfrak c=(\mathfrak a,\mathfrak b) \in LWE_\mathfrak K(\mu_p)
c=(a,b)∈LWEK(μp),
a
N
(
i
−
1
)
+
j
:
=
a
i
[
p
−
j
]
,
i
∈
[
k
]
b
:
=
b
p
\begin{aligned} \mathfrak a_{N(i-1)+j} &:= a_i[p-j], i \in [k]\\ \mathfrak b &:= b_p \end{aligned}
aN(i−1)+jb:=ai[p−j],i∈[k]:=bp
其中 a i ∈ T N [ X ] a_i \in \mathbb T_N[X] ai∈TN[X] 使用 N N N-antiperiodic indexes 的系数向量表示,即 a i [ j ] a_i[j] ai[j] 是 X N − j X^{N-j} XN−j 的系数。
Blind Rotate
有时候旋转一个多项式(乘以 X i X^i Xi)是有必要的。如果旋转程度被 LWE 加密 ( a , b ) ∈ Z p + 1 (a,b) \in \mathbb Z^{p+1} (a,b)∈Zp+1,多项式被 RLWE 加密 c ∈ T N [ X ] c \in \mathbb T_N[X] c∈TN[X],盲旋转的算法如下:
其输出为 A C C ∈ T R L W E K ( X ⟨ s , a ⟩ − b ⋅ v ) ACC \in TRLWE_K(X^{\langle s,a \rangle-b} \cdot v) ACC∈TRLWEK(X⟨s,a⟩−b⋅v),噪声分析为
LHE & FHE
TFHE 先提出了一个 LHE 的自动机模型:布尔门电路,使用 TGSW 密文作为控制线,使用 TLWE 密文作为数据线。然后使用“外积”来计算 Bootstrapping,这比使用“内积”的 FHEW 快一个小多项式因子。
还有 随机函数查找表、水平打包、垂直打包 等等技术。
TFHE 利用 Blind Ratation 给出了两种自举算法:
- Gate Bootstrapping:输入 TRLWE 密文(输出线),输出 TRLWE 密文(下一层的数据线)
- Circuit Bootstrapping:输入 TRLWE 密文(输出线),输出 TRGSW 密文(下一层的控制线)
作者还没细看,略啦 (づ。◕ᴗᴗ◕。)づ