模数提升 & 延迟约简

参考文献:

  1. [GHS12] Gentry C, Halevi S, Smart N P. Fully homomorphic encryption with polylog overhead[C]//Annual International Conference on the Theory and Applications of Cryptographic Techniques. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012: 465-482.

文章目录

  • Lemma
  • Modulus Lift
  • Delayed-Reduction Technique

Lemma

[GHS12] 中提出了著名的槽切换技术,使用 Shift Networks 实现任意的置换。这篇文章的附录中还有一些有意思的贡献,它提出了 BGV 的变体,它的环是 Z q [ x ] / ( ϕ m ( x ) ) \mathbb Z_q[x]/(\phi_m(x)) Zq[x]/(ϕm(x)),这里的 ϕ m ( x ) \phi_m(x) ϕm(x) 是任意的分园多项式。而在 BGV 的环是 Z q [ x ] / ( x d + 1 ) \mathbb Z_q[x]/(x^d+1) Zq[x]/(xd+1),其中 d d d 是二的幂次。

引理:存在 G ∈ Z [ x ] G \in \mathbb Z[x] GZ[x],满足 deg ⁡ G ≤ m − 1 \deg G \le m-1 degGm1,对于任意的 m m m 次本原单位根 α \alpha α 都有 G ( α ) = m G(\alpha)=m G(α)=m,对于任意的 m m m 次非本原的单位根 β \beta β 都有 G ( β ) = 0 G(\beta)=0 G(β)=0,并且它的系数表示的 l 2 l_2 l2 范数 m ⋅ ϕ ( m ) \sqrt{m \cdot \phi(m)} mϕ(m) 是个较小的常数。

  1. 构造方法:令 D = [ ζ i j ] ∈ C m × m D=[\zeta^{ij}] \in \mathbb C^{m \times m} D=[ζij]Cm×m 是本原单位根的范德蒙矩阵,令 G G G 的系数表示为 g ⃗ \vec g g ,点值表示为 v ⃗ \vec v v ,这里的 v ⃗ \vec v v 在本原根位置上是 m m m 其他位置是 0 0 0。由于 v ⃗ = D ⋅ g ⃗ \vec v=D \cdot \vec g v =Dg ,并且 D − 1 = D † / m D^{-1} = D^\dagger/m D1=D/m,所以可以计算出 g ⃗ = D † ⋅ v ⃗ / m \vec g = D^\dagger \cdot \vec v/m g =Dv /m
  2. 根据 G G G 的性质,可知 G ( x ) = m + ν ( x ) ϕ m ( x ) G(x) = m + \nu (x)\phi_m(x) G(x)=m+ν(x)ϕm(x),以及 G ( x ) = x m − 1 ϕ m ( x ) ⋅ μ ( x ) G(x) = \dfrac{x^m-1}{\phi_m(x)} \cdot \mu(x) G(x)=ϕm(x)xm1μ(x),其中的 ν , μ ∈ Z [ x ] \nu,\mu \in \mathbb Z[x] ν,μZ[x] 存在

Modulus Lift

解密运算 ⟨ c , s ⟩ ( m o d ϕ m ( x ) , q ) \langle c,s \rangle \pmod{\phi_m(x),q} c,s(modϕm(x),q) s , c s,c s,c 都是向量,内积运算需要在 Z q [ x ] / ( ϕ m ( x ) ) \mathbb Z_q[x]/(\phi_m(x)) Zq[x]/(ϕm(x)) 中计算,但是模数 ϕ m ( x ) \phi_m(x) ϕm(x) 可能有很多的非零系数,取模运算极为麻烦。[GHS12] 将模数提升到 x m − 1 x^m-1 xm1,于是多项式模乘就是系数向量的循环卷积

对于环 Z q [ x ] / ( ϕ m ( x ) ) \mathbb Z_q[x]/(\phi_m(x)) Zq[x]/(ϕm(x)) 中的元素 a a a,可以计算出:
G ( x ) a ( x ) = ( m + ν ( x ) ϕ m ( x ) ) ⋅ ( a ˉ ( x ) + p ( x ) ϕ m ( x ) ) = m ⋅ a ˉ ( x ) ( m o d ϕ m ( x ) ) G ( x ) a ( x ) = ( x m − 1 ϕ m ( x ) ⋅ μ ( x ) ) ⋅ ( a ˉ ( x ) + p ( x ) ϕ m ( x ) ) = G ( x ) ⋅ a ˉ ( x ) ( m o d x m − 1 ) \begin{aligned} G(x)a(x) &= \left(m+\nu(x)\phi_m(x)\right) \cdot (\bar a(x)+p(x)\phi_m(x)) = m\cdot \bar a(x) \pmod{\phi_m(x)}\\ G(x)a(x) &= \left(\dfrac{x^m-1}{\phi_m(x)} \cdot \mu(x)\right) \cdot (\bar a(x)+p(x)\phi_m(x)) = G(x) \cdot \bar a(x) \pmod{x^m-1}\\ \end{aligned} G(x)a(x)G(x)a(x)=(m+ν(x)ϕm(x))(aˉ(x)+p(x)ϕm(x))=maˉ(x)(modϕm(x))=(ϕm(x)xm1μ(x))(aˉ(x)+p(x)ϕm(x))=G(x)aˉ(x)(modxm1)
如果明文空间 a ∈ Z p [ x ] / ( ϕ m ( x ) ) a \in \mathbb Z_p[x]/(\phi_m(x)) aZp[x]/(ϕm(x)),采取 LSB 编码,解密函数为
⟨ c , s ⟩ = p ⋅ u ( x ) + a ( x ) ( m o d ϕ m ( x ) , q ) \langle c,s \rangle = p \cdot u(x) + a(x) \pmod{\phi_m(x),q} c,s=pu(x)+a(x)(modϕm(x),q)
那么就有
G ( x ) ⋅ ⟨ c , s ⟩ = m p ⋅ u ( x ) + m ⋅ a ( x ) ( m o d ϕ m ( x ) , q ) G ( x ) ⋅ ⟨ c , s ⟩ = p ⋅ G ( x ) u ( x ) + G ( x ) a ( x ) ( m o d x m − 1 , q ) \begin{aligned} G(x) \cdot \langle c,s \rangle &= mp \cdot u(x) + m\cdot a(x) \pmod{\phi_m(x),q}\\ G(x) \cdot \langle c,s \rangle &= p \cdot G(x)u(x) + G(x)a(x) \pmod{x^m-1,q} \end{aligned} G(x)c,sG(x)c,s=mpu(x)+ma(x)(modϕm(x),q)=pG(x)u(x)+G(x)a(x)(modxm1,q)
因此,解密函数可以转化为:

  1. 计算 b = G ( x ) ⋅ ⟨ c , s ⟩ ( m o d x m − 1 , q ) b=G(x) \cdot \langle c,s \rangle \pmod{x^m-1,q} b=G(x)c,s(modxm1,q)
  2. 计算 b ′ = b ( m o d p ) = G ( x ) a ( x ) b' = b \pmod{p} = G(x)a(x) b=b(modp)=G(x)a(x)
  3. 计算 b ′ ′ = b ′ ( m o d ϕ m ( x ) ) = m ⋅ a ( x ) b'' = b' \pmod{\phi_m(x)} = m \cdot a(x) b′′=b(modϕm(x))=ma(x)
  4. 计算 m = b ′ ′ ⋅ m − 1 ( m o d p ) = a m = b'' \cdot m^{-1} \pmod p = a m=b′′m1(modp)=a

Delayed-Reduction Technique

由于模 ϕ m ( x ) \phi_m(x) ϕm(x) 总是不太好计算的,不仅仅是解密运算,我们想要将密文本身也放置到环 Z [ x ] / ( x m − 1 ) \mathbb Z[x]/(x^m-1) Z[x]/(xm1) 上。但是这个环上的 RLWE 很简单,因为可以归约到环 Z [ x ] / ( x − 1 ) \mathbb Z[x]/(x-1) Z[x]/(x1) 的一维格,不是困难的。

[GHS12] 的方法是利用 G ( x ) G(x) G(x),混合使用:模 x m − 1 x^m-1 xm1 代数、模 ϕ m ( x ) \phi_m(x) ϕm(x) 代数。

公钥 { b i = E s ( 0 ) } \{b_i = E_s(0)\} {bi=Es(0)},短的随机数 r i ∈ Z [ x ] / ( ϕ m ( x ) ) r_i \in \mathbb Z[x]/(\phi_m(x)) riZ[x]/(ϕm(x)),消息 a ∈ Z p [ x ] / ( ϕ m ( x ) ) a \in \mathbb Z_p[x]/(\phi_m(x)) aZp[x]/(ϕm(x)) 的新鲜密文:
c = [ a , 0 ] + ∑ i r i ⋅ b i ( m o d ϕ m ( x ) , q ) c = [a,0] + \sum_i r_i \cdot b_i \pmod{\phi_m(x),q} c=[a,0]+iribi(modϕm(x),q)
我们计算:
G ⋅ c = [ G a , 0 ] + ∑ i ( r i G ) ⋅ b i ( m o d x m − 1 , q ) G \cdot c = [Ga,0] + \sum_i (r_iG) \cdot b_i \pmod{x^m-1,q} Gc=[Ga,0]+i(riG)bi(modxm1,q)
其中的 G , r i G,r_i G,ri 都很短,因此 G r i Gr_i Gri 也是短随机数。

可以验证:

  • 对于同态加法,计算 G c 1 + G c 2 ( m o d x m − 1 , q ) Gc_1 + Gc_2 \pmod{x^m-1,q} Gc1+Gc2(modxm1,q)
  • 对于同态乘法,计算 G c 1 ⊗ G c 2 ( m o d x m − 1 , q ) Gc_1 \otimes Gc_2 \pmod{x^m-1,q} Gc1Gc2(modxm1,q)
  • 对于秘钥切换,计算 c ′ = W ⋅ G c ( m o d x m − 1 , q ) c'=W\cdot Gc \pmod{x^m-1,q} c=WGc(modxm1,q)
  • 对于模切换,仅仅需要 r o u n d round round 运算,与模 ϕ m ( x ) \phi_m(x) ϕm(x) 无关
  • 对于 Galois 群作用, G ⋅ ⟨ c ( i ) , s ( i ) ⟩ = G a ( i ) ( m o d x m − 1 , q ) ( m o d p ) G \cdot \langle c^{(i)},s^{(i)} \rangle = Ga^{(i)} \pmod{x^m-1,q} \pmod{p} Gc(i),s(i)=Ga(i)(modxm1,q)(modp) 也成立

你可能感兴趣的:(#,全同态加密,数学,密码学,线性代数,算法)