参考文献:
- [GHPS12] Gentry C, Halevi S, Peikert C, et al. Ring switching in BGV-style homomorphic encryption[C]//International Conference on Security and Cryptography for Networks. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012: 19-37.
- [GHPS13] Gentry C, Halevi S, Peikert C, et al. Field switching in BGV-style homomorphic encryption[J]. Journal of Computer Security, 2013, 21(5): 663-684.
- Modulus Lift & Delayed Reduction
文章目录
- Ring-Switching
- Construction
- Slot-packing
- Field-Switching
- Construction
Ring-Switching
[GHPS12] 提出了环切换技术,它针对 coeff-packing,考虑的是 non-dual RLWE 版本。
对于任意的分圆多项式
Φ
m
(
X
)
\Phi_m(X)
Φm(X),定义:
R
m
=
Z
[
X
]
/
(
Φ
m
(
X
)
)
C
m
=
Z
[
X
]
/
(
X
m
−
1
)
\begin{aligned} R_m &= \mathbb Z[X]/(\Phi_m(X))\\ C_m &= \mathbb Z[X]/(X^m-1) \end{aligned}
RmCm=Z[X]/(Φm(X))=Z[X]/(Xm−1)
额外定义
R
m
,
q
=
R
m
/
q
R
m
R_{m,q} = R_m/qR_m
Rm,q=Rm/qRm 以及
C
m
,
q
=
C
m
/
q
C
m
C_{m,q}=C_m/qC_m
Cm,q=Cm/qCm
假设 m = u ⋅ w m = u \cdot w m=u⋅w,给定 f , g , h ∈ Z [ X ] f,g,h \in \mathbb Z[X] f,g,h∈Z[X],
- 如果 h ( X ) ≡ f ( X ) ⋅ g ( X ) ( m o d Φ w ( X ) ) h(X) \equiv f(X) \cdot g(X) \pmod{\Phi_w(X)} h(X)≡f(X)⋅g(X)(modΦw(X)),那么 h ( X u ) ≡ f ( X u ) ⋅ g ( X u ) ( m o d Φ m ( X ) ) h(X^u) \equiv f(X^u) \cdot g(X^u) \pmod{\Phi_m(X)} h(Xu)≡f(Xu)⋅g(Xu)(modΦm(X))
- 如果 h ( X ) ≡ f ( X ) ⋅ g ( X ) ( m o d X w − 1 ) h(X) \equiv f(X) \cdot g(X) \pmod{X^w-1} h(X)≡f(X)⋅g(X)(modXw−1),那么 h ( X u ) ≡ f ( X u ) ⋅ g ( X u ) ( m o d X m − 1 ) h(X^u) \equiv f(X^u) \cdot g(X^u) \pmod{X^m-1} h(Xu)≡f(Xu)⋅g(Xu)(modXm−1)
这可以视为环嵌入,将 R w R_w Rw 嵌入到 R m R_m Rm 的映射是 X w → X m u X_w \to X_m^u Xw→Xmu, C w ≤ C m C_w \le C_m Cw≤Cm 同理。
定义
Q
m
(
X
)
=
(
X
m
−
1
)
/
Φ
m
(
X
)
Q_m(X) = (X^m-1)/\Phi_m(X)
Qm(X)=(Xm−1)/Φm(X),以及多项式
G
m
(
X
)
∈
Z
[
X
]
G_m(X) \in \mathbb Z[X]
Gm(X)∈Z[X],满足:
G
m
(
X
)
≡
m
(
m
o
d
Φ
m
)
G
m
(
X
)
≡
0
(
m
o
d
Q
m
)
\begin{aligned} G_m(X) &\equiv m \pmod{\Phi_m}\\ G_m(X) &\equiv 0 \pmod{Q_m}\\ \end{aligned}
Gm(X)Gm(X)≡m(modΦm)≡0(modQm)
通过 CRT 求解出唯一的
G
m
(
X
)
G_m(X)
Gm(X),满足
deg
G
m
≤
m
−
1
\deg G_m \le m-1
degGm≤m−1 以及
∥
G
m
∥
2
=
m
⋅
ϕ
(
m
)
\|G_m\|_2 = \sqrt{m \cdot \phi(m)}
∥Gm∥2=m⋅ϕ(m)
那么多项式
G
m
G_m
Gm 可以用于:把任意的等价类
f
+
(
Φ
m
(
X
)
)
f+(\Phi_m(X))
f+(Φm(X)) 都 “提升”(Lift)到等价类
G
⋅
f
+
(
X
m
−
1
)
G\cdot f+(X^m-1)
G⋅f+(Xm−1),并且基本保持范数不变。将它定义到密文上,映射是:
(
c
0
,
c
1
)
∈
R
m
,
q
2
↦
(
c
0
,
c
1
)
∈
Z
[
X
]
2
↦
(
G
⋅
c
0
,
G
⋅
c
1
)
∈
C
m
,
q
2
(c_0, c_1) \in R_{m,q}^2 \mapsto (c_0,c_1) \in \mathbb Z[X]^2\mapsto \left(G \cdot c_0, G \cdot c_1\right) \in C_{m,q}^2
(c0,c1)∈Rm,q2↦(c0,c1)∈Z[X]2↦(G⋅c0,G⋅c1)∈Cm,q2
简记为
(
c
,
d
)
∈
C
m
,
q
2
(c,d) \in C_{m,q}^2
(c,d)∈Cm,q2,假如
c
0
+
c
1
⋅
s
=
Δ
a
+
δ
e
+
q
I
(
m
o
d
Φ
m
)
c_0 + c_1\cdot s = \Delta a + \delta e + qI \pmod{\Phi_m}
c0+c1⋅s=Δa+δe+qI(modΦm),其中
a
∈
R
m
,
p
a \in R_{m,p}
a∈Rm,p 是消息,
e
,
I
∈
R
m
e,I \in R_m
e,I∈Rm 是噪声,
p
,
q
∈
Z
p,q \in \mathbb Z
p,q∈Z 是明文和密文的模数,
Δ
,
δ
∈
Z
\Delta,\delta \in \mathbb Z
Δ,δ∈Z 是缩放因子,那么:
c
+
d
⋅
s
=
G
m
⋅
(
Δ
a
+
δ
e
+
q
I
(
m
o
d
Φ
m
)
)
=
Δ
(
G
m
⋅
a
)
+
δ
(
G
m
⋅
e
)
+
q
(
G
m
⋅
I
)
(
m
o
d
X
m
−
1
)
\begin{aligned} c + d \cdot s &= G_m\cdot (\Delta a + \delta e + qI \pmod{\Phi_m})\\ &= \Delta(G_m\cdot a) + \delta(G_m\cdot e) + q(G_m\cdot I) \pmod{X^m-1} \end{aligned}
c+d⋅s=Gm⋅(Δa+δe+qI(modΦm))=Δ(Gm⋅a)+δ(Gm⋅e)+q(Gm⋅I)(modXm−1)
因此
(
c
0
′
,
c
1
′
)
(c_0',c_1')
(c0′,c1′) 是私钥
s
∈
Z
[
X
]
s \in \mathbb Z[X]
s∈Z[X] 下的消息
G
m
⋅
a
∈
C
m
,
p
G_m \cdot a \in C_{m,p}
Gm⋅a∈Cm,p 的密文,噪声
G
m
⋅
e
∈
C
m
G_m \cdot e \in C_m
Gm⋅e∈Cm 是短的。注意
R
m
,
q
R_{m,q}
Rm,q 和
C
m
,
q
C_{m,q}
Cm,q 都是
Z
[
X
]
\mathbb Z[X]
Z[X]-模,提升前后的私钥
s
s
s 不需要改变。方便起见,我们将
Δ
(
G
m
⋅
a
)
+
δ
(
G
m
⋅
e
)
\Delta(G_m\cdot a) + \delta(G_m\cdot e)
Δ(Gm⋅a)+δ(Gm⋅e) 记作相位
μ
∈
C
m
\mu \in C_m
μ∈Cm
现在我们考虑如下的环同构(Degree-
u
u
u striding):
C
m
≅
(
Z
[
Y
]
/
(
Y
w
−
1
)
)
[
X
]
/
(
X
u
−
Y
)
C_m \cong (\mathbb Z[Y]/(Y^w-1))[X]/(X^u-Y)
Cm≅(Z[Y]/(Yw−1))[X]/(Xu−Y)
具体的映射为:
a
(
X
)
=
∑
i
=
0
m
−
1
a
i
X
i
=
∑
k
=
0
u
−
1
X
k
⋅
(
∑
j
=
0
w
−
1
a
k
+
u
j
⋅
X
u
j
)
=
∑
k
=
0
u
−
1
X
k
⋅
a
(
k
)
(
Y
)
\begin{aligned} a(X) &= \sum_{i=0}^{m-1}a_iX^i\\ &= \sum_{k=0}^{u-1}X^k\cdot \left(\sum_{j=0}^{w-1} a_{k+uj} \cdot X^{uj}\right)\\ &= \sum_{k=0}^{u-1} X^k \cdot a_{(k)}(Y) \end{aligned}
a(X)=i=0∑m−1aiXi=k=0∑u−1Xk⋅(j=0∑w−1ak+uj⋅Xuj)=k=0∑u−1Xk⋅a(k)(Y)
其中,系数
a
(
k
)
∈
C
w
a_{(k)} \in C_w
a(k)∈Cw 是如下的多项式,
a
(
k
)
(
Y
)
=
∑
j
=
0
w
−
1
a
k
+
u
j
⋅
Y
j
a_{(k)}(Y) = \sum_{j=0}^{w-1} a_{k+uj} \cdot Y^{j}
a(k)(Y)=j=0∑w−1ak+uj⋅Yj
我们把
C
m
C_m
Cm 视为一个
C
w
C_w
Cw-模,它的一组
C
w
C_w
Cw-basis 是
{
X
k
}
0
≤
k
≤
w
−
1
\{X^k\}_{0\le k\le w-1}
{Xk}0≤k≤w−1
对于提升获得的密文
(
c
,
d
)
∈
C
m
2
(c,d) \in C_m^2
(c,d)∈Cm2,将它们分别作上述的同构。我们要求私钥
s
∈
Z
[
X
]
s \in \mathbb Z[X]
s∈Z[X] 落在
R
m
R_m
Rm 的子环
R
w
R_w
Rw 内(在同态的意义下),也就是说:
s
(
X
)
=
∑
i
≡
0
(
m
o
d
u
)
s
i
⋅
X
i
s(X) = \sum_{i\equiv0 \pmod{u}} s_i \cdot X^i
s(X)=i≡0(modu)∑si⋅Xi
并且
deg
s
≤
m
−
1
\deg s \le m-1
degs≤m−1,我们简记
s
(
X
)
=
s
(
0
)
(
Y
)
s(X) = s_{(0)}(Y)
s(X)=s(0)(Y),其中
Y
=
X
u
Y=X^u
Y=Xu
现在,我们将这个
s
∈
Z
[
X
]
s \in \mathbb Z[X]
s∈Z[X] 再视为卷积环
C
m
C_m
Cm 中的元素,此时
s
s
s 就落在子环
C
w
C_w
Cw 内(在同态的意义下),那么有:
(
c
+
d
⋅
s
)
(
X
)
=
∑
k
=
0
u
−
1
X
k
⋅
(
c
(
k
)
+
d
(
k
)
s
(
0
)
)
(
Y
)
=
∑
k
=
0
u
−
1
X
k
⋅
μ
(
k
)
(
Y
)
=
μ
(
m
o
d
X
m
−
1
,
q
)
\begin{aligned} (c + d \cdot s)(X) &= \sum_{k=0}^{u-1} X^k \cdot \left(c_{(k)} + d_{(k)}s_{(0)}\right)(Y)\\ &= \sum_{k=0}^{u-1} X^k \cdot \mu_{(k)}(Y)\\ &= \mu \pmod{X^m-1,q}\\ \end{aligned}
(c+d⋅s)(X)=k=0∑u−1Xk⋅(c(k)+d(k)s(0))(Y)=k=0∑u−1Xk⋅μ(k)(Y)=μ(modXm−1,q)
我们将
(
c
(
k
)
,
d
(
k
)
)
∈
C
w
,
q
2
(c_{(k)}, d_{(k)}) \in C_{w,q}^2
(c(k),d(k))∈Cw,q2 视为关于私钥
s
0
(
Y
)
∈
Z
[
Y
]
s_{0}(Y) \in \mathbb Z[Y]
s0(Y)∈Z[Y] 的密文,它们的相位分别是:
μ
(
k
)
=
Δ
(
G
m
⋅
a
)
(
k
)
+
δ
(
G
m
⋅
e
)
(
k
)
∈
C
w
\mu_{(k)} = \Delta(G_m\cdot a)_{(k)} + \delta(G_m\cdot e)_{(k)} \in C_w
μ(k)=Δ(Gm⋅a)(k)+δ(Gm⋅e)(k)∈Cw
这就将大环
C
m
C_m
Cm 上的消息
(
G
m
⋅
a
)
(
X
)
(G_m\cdot a)(X)
(Gm⋅a)(X) 的密文
(
c
,
d
)
(c,d)
(c,d) 分解成了
u
u
u 个小环
C
w
C_w
Cw 上的密文
(
c
(
k
)
,
d
(
k
)
)
(c_{(k)},d_{(k)})
(c(k),d(k)),它们分别加密了消息
(
G
m
⋅
a
)
(
k
)
(
Y
)
(G_m\cdot a)_{(k)}(Y)
(Gm⋅a)(k)(Y)。因为这是一个环同构,因此
u
u
u 个小密文也容易合成出单个大密文。事实上,这个环同构就是系数的置换、分区、级联,基本没有计算开销。
但是我们想要的是
R
m
R_m
Rm 分解到
R
w
R_w
Rw 的密文,可以再简单地取模:
(
c
(
k
)
,
d
(
k
)
)
∈
C
w
,
q
2
↦
(
c
(
k
)
,
d
(
k
)
)
m
o
d
Φ
w
(
Y
)
(c_{(k)},d_{(k)}) \in C_{w,q}^2 \mapsto (c_{(k)},d_{(k)}) \bmod{\Phi_w(Y)}
(c(k),d(k))∈Cw,q2↦(c(k),d(k))modΦw(Y)
把这些密文记为
(
c
~
k
,
d
~
k
)
∈
R
w
,
q
2
(\tilde c_{k}, \tilde d_{k}) \in R_{w,q}^2
(c~k,d~k)∈Rw,q2,它们加密了消息
(
G
m
⋅
a
)
(
k
)
(
m
o
d
Φ
w
)
(G_m \cdot a)_{(k)} \pmod{\Phi_w}
(Gm⋅a)(k)(modΦw),简记为
a
~
k
∈
R
w
\tilde a_k \in R_w
a~k∈Rw
虽然
a
~
k
\tilde a_k
a~k 和
a
a
a 或者
a
(
k
)
a_{(k)}
a(k) 之间的关系很复杂,但是我们考虑任意的
m
m
m-th 本原单位根
ζ
\zeta
ζ,由于
G
m
(
X
)
=
m
(
m
o
d
Φ
m
(
X
)
)
G_m(X) = m \pmod{\Phi_m(X)}
Gm(X)=m(modΦm(X)),因此有:
(
G
m
⋅
a
)
(
ζ
)
=
G
m
(
ζ
)
⋅
a
(
ζ
)
=
m
⋅
a
(
ζ
)
(G_m\cdot a)(\zeta) = G_m(\zeta) \cdot a(\zeta) = m \cdot a(\zeta)
(Gm⋅a)(ζ)=Gm(ζ)⋅a(ζ)=m⋅a(ζ)
那么,
a
(
ζ
)
=
m
−
1
⋅
(
G
m
⋅
a
)
(
ζ
)
=
m
−
1
⋅
∑
k
=
0
u
−
1
ζ
k
⋅
a
~
k
(
ζ
u
)
a(\zeta) = m^{-1} \cdot(G_m\cdot a)(\zeta) = m^{-1} \cdot \sum_{k=0}^{u-1}\zeta^k \cdot \tilde a_k(\zeta^u)
a(ζ)=m−1⋅(Gm⋅a)(ζ)=m−1⋅k=0∑u−1ζk⋅a~k(ζu)
我们可以从
a
~
k
∈
R
w
,
p
\tilde a_k \in R_{w,p}
a~k∈Rw,p 恢复出原始消息
a
∈
R
m
,
p
a \in R_{m,p}
a∈Rm,p,确切地说:
a
(
X
)
=
m
−
1
⋅
∑
k
=
0
u
−
1
X
k
⋅
a
~
k
(
X
u
)
∈
R
m
,
p
a(X) = m^{-1} \cdot \sum_{k=0}^{u-1}X^k \cdot \tilde a_k(X^u) \in R_{m,p}
a(X)=m−1⋅k=0∑u−1Xk⋅a~k(Xu)∈Rm,p
这里要求
gcd
(
m
,
p
)
=
1
\gcd(m,p)=1
gcd(m,p)=1,此时也存在
ζ
∈
G
F
(
p
d
)
\zeta \in GF(p^d)
ζ∈GF(pd),其中
d
=
o
r
d
(
p
m
o
d
m
)
d=ord(p \bmod{m})
d=ord(pmodm) 是乘法阶。
同理,我们也可以把这些小密文 ( c ~ k , d ~ k ) ∈ R w , q 2 (\tilde c_{k}, \tilde d_{k}) \in R_{w,q}^2 (c~k,d~k)∈Rw,q2 重新合成出原始密文 ( c 0 , c 1 ) ∈ R m , q 2 (c_0,c_1) \in R_{m,q}^2 (c0,c1)∈Rm,q2,只要满足 gcd ( m , q ) = 1 \gcd(m,q)=1 gcd(m,q)=1 即可。只需要系数的置换和级联,以及一些模乘,计算开销很小。
Construction
环切换的步骤为:
- Key-switch.
- 输入密文 ( c 0 , c 1 ) ∈ R m , q 2 (c_0,c_1) \in R_{m,q}^2 (c0,c1)∈Rm,q2,对应的私钥是 s ∈ Z [ X ] s \in \mathbb Z[X] s∈Z[X],加密消息 a ∈ R m , p a \in R_{m,p} a∈Rm,p
- 使用 KS 过程,切换到 ( c 0 ′ , c 1 ′ ) ∈ R m , q 2 (c_0',c_1') \in R_{m,q}^2 (c0′,c1′)∈Rm,q2,它关于一个环元素 s ′ ∈ R w s' \in R_w s′∈Rw 对应的稀疏私钥 s ′ ′ ( X ) = s ′ ( X u ) s''(X)=s'(X^u) s′′(X)=s′(Xu)
- Lift.
- 将密文 ( c 0 ′ , c 1 ′ ) ∈ R m , q 2 (c_0',c_1') \in R_{m,q}^2 (c0′,c1′)∈Rm,q2 乘以 G m ( X ) ∈ Z [ X ] G_m(X) \in \mathbb Z[X] Gm(X)∈Z[X] 提升到 ( c , d ) ∈ C m , q 2 (c,d) \in C_{m,q}^2 (c,d)∈Cm,q2
- 它的私钥是 s ′ ′ ∈ Z [ X ] s'' \in \mathbb Z[X] s′′∈Z[X],加密的消息是 G m ⋅ a ∈ C m , p G_m \cdot a \in C_{m,p} Gm⋅a∈Cm,p
- Break.
- 将 ( c , d ) ∈ C m , q 2 (c,d) \in C_{m,q}^2 (c,d)∈Cm,q2 分解为 u u u 个小密文 ( c ( k ) , d ( k ) ) ∈ C w , q 2 (c_{(k)},d_{(k)}) \in C_{w,q}^2 (c(k),d(k))∈Cw,q2,简记 Y = X u Y=X^u Y=Xu
- 它们的私钥是 s ′ ∈ Z [ Y ] s' \in \mathbb Z[Y] s′∈Z[Y],各自加密 ( G m ⋅ a ) ( k ) ∈ C w , p (G_m \cdot a)_{(k)} \in C_{w,p} (Gm⋅a)(k)∈Cw,p
- Reduce.
- 对小密文 ( c ( k ) , d ( k ) ) ∈ C w , q 2 (c_{(k)},d_{(k)}) \in C_{w,q}^2 (c(k),d(k))∈Cw,q2 取模,获得 ( c ~ k , d ~ k ) ∈ R w , q 2 (\tilde c_{k}, \tilde d_{k}) \in R_{w,q}^2 (c~k,d~k)∈Rw,q2
- 它们的私钥是 s ′ ∈ Z [ Y ] s' \in \mathbb Z[Y] s′∈Z[Y],各自加密 a ~ k ∈ R w , p \tilde a_k \in R_{w,p} a~k∈Rw,p
如图所示:
Slot-packing
我们通常使用 SIMD 打包技术,分解得到的密文 ( c ( k ) , d ( k ) ) ∈ C w , q 2 (c_{(k)},d_{(k)}) \in C_{w,q}^2 (c(k),d(k))∈Cw,q2 加密的 a ~ k ∈ R w , p \tilde a_k \in R_{w,p} a~k∈Rw,p,虽然可以恢复出原始消息 a ∈ R m , p a \in R_{m,p} a∈Rm,p,但是 a ~ k ∈ R w , p \tilde a_k \in R_{w,p} a~k∈Rw,p 的明文槽并非 a ∈ R m , p a \in R_{m,p} a∈Rm,p 所编码的那些槽,因此无法对分解出的小密文直接做 SIMD 运算。
[GHPS12] 通过线性组合 a ~ k \tilde a_k a~k 来获得编码了明文槽小区块的一些小明文。对于 o r d ( p m o d m ) = o r d ( p m o d w ) = d ord(p \bmod m) = ord(p \bmod w)=d ord(pmodm)=ord(pmodw)=d 的特殊情况,可以找到 h ∈ R w , p h \in R_{w,p} h∈Rw,p 使得 h ( τ j ) = ζ j h(\tau^{j}) = \zeta^j h(τj)=ζj,其中 ζ ∈ G F ( p d ) \zeta \in GF(p^d) ζ∈GF(pd) 是 m m m-th 本原单位根, τ = ζ u \tau=\zeta^u τ=ζu 是 w w w-th 本原单位根, j ∈ S ⊆ Z m ∗ j \in S \subseteq \mathbb Z_m^* j∈S⊆Zm∗,这个子集 S S S 的大小是 ϕ ( w ) \phi(w) ϕ(w),满足 S ( m o d w ) = Z w ∗ S \pmod w = \mathbb Z_w^* S(modw)=Zw∗,并且乘以 p p p 封闭。
由于 w ∣ m w \mid m w∣m,因此 Z m ∗ \mathbb Z_m^* Zm∗ 可以分成 ϕ ( m ) / ϕ ( w ) \phi(m)/\phi(w) ϕ(m)/ϕ(w) 个大小为 ϕ ( w ) \phi(w) ϕ(w) 的不交子集,每个子集都是 Z w ∗ \mathbb Z_w^* Zw∗ 的代表,且乘以 p p p 封闭。把它们记作 S i ⊆ Z m ∗ S_i \subseteq \mathbb Z_m^* Si⊆Zm∗,各自对应 h i ∈ R w , p h_i \in R_{w,p} hi∈Rw,p
线性组合
a
i
∗
=
∑
k
=
0
u
−
1
h
i
k
⋅
a
~
k
∈
R
w
,
p
a_i^* = \sum_{k=0}^{u-1} h_i^k \cdot \tilde a_k \in R_{w,p}
ai∗=∑k=0u−1hik⋅a~k∈Rw,p,对于
j
∈
S
i
∩
Z
m
∗
/
(
p
)
j \in S_i \cap \mathbb Z_m^*/(p)
j∈Si∩Zm∗/(p) 满足:
a
i
∗
(
τ
j
)
=
∑
k
=
0
u
−
1
ζ
j
k
⋅
a
~
k
(
ζ
u
j
)
=
a
(
ζ
j
)
a_i^*(\tau^{j}) = \sum_{k=0}^{u-1} \zeta^{jk} \cdot \tilde a_k(\zeta^{uj}) = a(\zeta^j)
ai∗(τj)=k=0∑u−1ζjk⋅a~k(ζuj)=a(ζj)
因此
a
i
∗
∈
R
w
,
p
a_i^* \in R_{w,p}
ai∗∈Rw,p 编码了
a
∈
R
m
,
p
a \in R_{m,p}
a∈Rm,p 中的由
S
i
∩
Z
m
∗
/
(
p
)
S_i \cap \mathbb Z_m^*/(p)
Si∩Zm∗/(p) 索引的那些明文槽。对应的密文
(
c
i
∗
,
d
i
∗
)
∈
R
w
,
q
2
(c_i^*,d_i^*) \in R_{w,q}^2
(ci∗,di∗)∈Rw,q2 容易计算。
但是对于 o r d ( p m o d m ) ≠ o r d ( p m o d w ) ord(p \bmod m) \neq ord(p \bmod w) ord(pmodm)=ord(pmodw) 的一般情况, h ∈ R w , p h \in R_{w,p} h∈Rw,p 不一定存在。但它一定在 G F ( p d ) [ X ] / ( Φ w ( X ) ) GF(p^d)[X]/(\Phi_w(X)) GF(pd)[X]/(Φw(X)) 里边,所以明文空间需要被相应的扩展,这可以用 d d d 个 R w , p R_{w,p} Rw,p 明文组合出来,效率很低。
Field-Switching
[GHPS13] 提出的域切换技术,它针对 slot-packing,并且考虑的是 dual RLWE 版本。
域切换采用了和环切换完全不同的思路,它采用分圆塔
K
/
K
′
K/K'
K/K′ 上的迹映射:
T
r
K
/
K
′
(
a
)
=
∑
i
=
1
(
m
o
d
m
′
)
τ
i
(
a
)
Tr_{K/K'}(a) = \sum_{i=1 \pmod{m'}} \tau_i(a)
TrK/K′(a)=i=1(modm′)∑τi(a)
其中
K
=
Q
(
ζ
m
)
,
K
′
=
Q
(
ζ
m
′
)
K=\mathbb Q(\zeta_m), K'=\mathbb Q(\zeta_{m'})
K=Q(ζm),K′=Q(ζm′),以及
m
′
∣
m
m' \mid m
m′∣m,自同构
τ
i
:
ζ
m
↦
ζ
m
i
,
∀
i
∈
Z
m
∗
\tau_i: \zeta_m \mapsto \zeta_m^i, \forall i \in \mathbb Z_m^*
τi:ζm↦ζmi,∀i∈Zm∗
令 R / R ′ R/R' R/R′ 是对应的分圆整数环,明文模数 p p p 下的明文槽分别是 F / F ′ \mathbb F/\mathbb F' F/F′,槽的个数是 f , f ′ f,f' f,f′。根据 CRT 同构,函数 ( F f / f ′ ) f ′ → ( F ′ ) f ′ (\mathbb F^{f/f'})^{f'} \to (\mathbb F')^{f'} (Ff/f′)f′→(F′)f′ 可以表示为某个 R ′ R' R′-线性映射 L : R p → R p ′ L: R_p \to R_p' L:Rp→Rp′
Construction
域切换的步骤是:
- Switch to a small-ring secret key.
- 把私钥切换到子环上, s ′ ∈ R ′ ⊆ R s' \in R' \subseteq R s′∈R′⊆R
- Multiply by an appropriate (short) scalar.
- 找出恰当的短元素 r ∈ R p r \in R_p r∈Rp,构造出 R ′ R' R′-线性映射 L ∨ ( a ∨ ) = T r K / K ′ ( r ⋅ a ∨ ) L^\vee(a^\vee)=Tr_{K/K'}(r \cdot a^\vee) L∨(a∨)=TrK/K′(r⋅a∨)
- Map to the small field.
- 将 L ∨ L^\vee L∨ 作用到密文上