Slot Rotation in Helib
这篇主要是描述的是BGV(Brakerski-Gentry-Vaikuntanathan)和BFV(Brakerski-Fan-Vaikuntanathan)同态加密方案中的明文空间(plaintext space)以及SIMD打包和slot 旋转计算。
BGV和BFV加密算法
Secret key generation
- 随机选取私钥 s k : = s ∈ R q ∣ \mathrm{sk:}=\textcolor{green}s\in R_{q}| sk:=s∈Rq∣
Encryption of a plaintext polynomial
- 公开参数:明文空间 m ∈ R p r m∈R_p^r m∈Rpr,多项式空间 R = Z [ X ] / X n + 1 R=Z[X]/X^n+1 R=Z[X]/Xn+1, 系数模q的多项式空间 R q = Z q [ X ] / X n + 1 R_q=Z_q[X]/X^n+1 Rq=Zq[X]/Xn+1
- 随机抽样 a ← R q , e ← χ q ∣ a\leftarrow R_{q},e\leftarrow\chi_{q}| a←Rq,e←χq∣
- BGV密文: Enc s B G V ( m ; p r ) = c = ( b , a ) = ( − a s + m + p r e , a ) ∈ R q 2 \text{Enc}_s^{\mathbf{BGV}}(m;p^r)=\boldsymbol{c}=(\boldsymbol{b},\boldsymbol{a})=(-as+\textcolor{red}{m+p^re},a)\in\mathbb{R}_q^2 EncsBGV(m;pr)=c=(b,a)=(−as+m+pre,a)∈Rq2
- BFC密文: E n c s B F V ( m ; p r ) = c = = ( b , a ) = ( − a s + ⌊ q p r m ⌋ + e , a ) \mathrm{Enc}_s^{\mathbf{BFV}}(m;p^r)=\boldsymbol{c}==(\boldsymbol{b},\boldsymbol{a})=\left(-as+\left\lfloor\frac q{p^r}m\right\rfloor+\right.e,a) EncsBFV(m;pr)=c==(b,a)=(−as+⌊prqm⌋+e,a)

当在p和q互素的情况下,BGV/FV密文形式上相等
BFV--->BGV 转换 - c 0 = E n c s B F V ( m ; p r ) = ( a 0 , b 0 ) = ( − a 0 s + [ q p r m ] + e , a 0 ) ∈ R q \mathbf{c_0}=\mathrm{Enc_s^{BFV}(m;p^r)=(a_0,b_0)=\left(-a_0s+\left[\frac q{p^r}m\right]+e,a_0\right)\in R_q} c0=EncsBFV(m;pr)=(a0,b0)=(−a0s+[prqm]+e,a0)∈Rq
- 令
c 1 = − p Γ c 0 ∣ = ( a 0 p r s − p r ( e + m q p r ) + p r [ q m ] p r p r , − p r a 0 ) = ( − a 1 s + p r e + [ q m ] p r , a 1 ) ∈ R q 2 \begin{aligned}\mathbf{c}_{1}=&\mathrm{-p}^{\Gamma}\mathbf{c}_{ {\mathbf{0}}}|\\&=\left(\mathrm{a}_{0}\mathrm{p}^{\mathrm{r}}\mathrm{s}-\mathrm{p}^{\mathrm{r}}\left(e+m\frac{q}{\mathrm{p}^{\mathrm{r}}}\right)+\mathrm{p}^{\mathrm{r}}\frac{\left[qm\right]_{ {\mathrm{p}^{\mathrm{r}}}}}{\mathrm{p}^{\mathrm{r}}},-\mathrm{p}^{\mathrm{r}}\mathrm{a}_{0}\right)=\left(-\mathrm{a}_{1}\mathrm{s}+\mathrm{p}^{\mathrm{r}}\mathrm{e}+\left[qm\right]_{ {\mathrm{p}^{\mathrm{r}}}},\mathrm{~a}_{1}\right)\in R_{q}^{2}\end{aligned} c1=−pΓc0∣=(a0prs−pr(e+mprq)+prpr[qm]pr,−pra0)=(−a1s+pre+[qm]pr, a1)∈Rq2
BGV--->BFV 转换 - c 0 = E n c s B G V ( m ; p r ) = ( a 0 , b 0 ) = ( − a 0 s + p r e + m , a 0 ) ∈ R q \mathbf{c_{0}}=\mathrm{Enc_{s}^{BGV}(m;p^{r})=(a_{0},b_{0})=(-a_{0}s+p^{r}e+m,a_{0})\in R_{q}} c0=EncsBGV(m;pr)=(a0,b0)=(−a0s+pre+m,a0)∈Rq
- 令
c 1 = [ p r ] q − 1 c 0 = ( − [ p r ] q − 1 a 0 s + [ q p r q − 1 m ] + e , [ p r ] q − 1 a 0 ) = ( − a 1 s + p r e + [ q − 1 m ] p r , a 1 ) ∈ R q 2 \begin{aligned}\mathbf{c}_{1}&=[\mathrm{p}^{\mathrm{r}}]_{ {\mathrm{q}}}^{-1}\mathbf{c}_{ {\mathbf{0}}}\\&=\left(-[\mathrm{p}^{\mathrm{r}}]_{ {\mathrm{q}}}^{-1}\mathrm{a}_{0}\mathrm{s}+\left[\frac{\mathrm{q}}{\mathrm{p}^{\mathrm{r}}}q^{-1}\mathrm{m}\right]+\mathrm{e},[\mathrm{p}^{\mathrm{r}}]_{ {\mathrm{q}}}^{-1}\mathrm{a}_{0}\right)=\left(-\mathrm{a}_{1}\mathrm{s}+\mathrm{p}^{\mathrm{r}}\mathrm{e}+\left[q^{-1}m\right]_{ {\mathrm{p}^{\mathrm{r}}}},\mathrm{~a}_{1}\right)\in R_{q}^{2}\end{aligned} c1=[pr]q−1c0=(−[pr]q−1a0s+[prqq−1m]+e,[pr]q−1a0)=(−a1s+pre+[q−1m]pr, a1)∈Rq2

BGV同态加密SIMD编码
在全同态加密(FHE, Fully Homomorphic Encryption)中,SIMD代表 Single Instruction, Multiple Data,即单指令多数据。这是一种并行计算技术,在FHE中被广泛用于提高加密运算的效率。
系数嵌入
对于多项式 m ( x ) ∈ R q = Z q [ x ] / f ( x ) , m(x)\in R_{q}=\mathbb{Z}_{q}[x]/f(x) , m(x)∈Rq=Zq[x]/f(x),其系数嵌入对应于: m = ∑ i = 0 N − 1 m i X i m=\sum_{i=0}^{N-1}m_iX^i m=∑i=0N−1miXi, m ( x ) ↦ ( m 0 , m 1 , . . . , m n − 1 ) ∈ Z q n m(x)\mapsto(m_0,m_1,...,m_{n-1})\in\mathbb{Z}_q^n m(x)↦(m0,m1,...,mn−1)∈Zqn,该嵌入式多项式环上元素到模q下的 n n n维整数向量的映射,多项式的加法运算可对应于向量的按位加,但多项式的乘法比较复杂,不能对应向量的按位乘法。

Slot嵌入
正则嵌入定义: 令 ζ = exp ( π − 1 / n ) , \zeta=\exp(\pi\sqrt{-1}/n) , ζ=exp(π−1/n), 从 R q = Z q [ x ] / f ( x ) R_{q}=\mathbb{Z}_{q}[x]/f(x) Rq=Zq[x]/f(x)到复数域 C n \mathbb{C}^n Cn, 即 σ : a ( x ) ↦ ( a ( ζ ) , a ( ζ 3 ) , . . . , a ( ζ 2 n − 1 ) ) ∈ C n \textcolor{red}{\sigma:a(x)\mapsto(a(\zeta),a(\zeta^{3}),...,a(\zeta^{2n-1}))\in\mathbb{C}^{n}} σ:a(x)↦(a(ζ),a(ζ3),...,a(ζ2n−1))∈Cn,则 σ \sigma σ为正则嵌入映射,其中 a ( x ) ∈ R q a(x)\in R_q a(x)∈Rq, f ( x ) = x n + 1 f(x)=x^n+1 f(x)=xn+1。
特别地,当参数满足 q q q是素数且 q = 1 ( m o d 2 n ) q=1({\mathrm{mod}}2n)

最低0.47元/天 解锁文章
1110

被折叠的 条评论
为什么被折叠?



