首页 > 其他分享 >同态加密-CKKS-旋转操作(Rotation)

同态加密-CKKS-旋转操作(Rotation)

时间:2022-08-27 17:00:58浏览次数:98  
标签:right 同态 cdot texttt CKKS ct Rotation left mod

Rotation

rotation操作的论文出处:Bootstrapping for approximate homomorphic encryption sec4.2

一些数学上的问题

\[\tau\left(\mu\left(X^{k}\right)\right)=\left(\mu\left(\zeta^{k}\right), \mu\left(\zeta^{5 k}\right), \ldots, \mu\left(\zeta^{(2 n-3) k}\right)\right) \]

​ If \(c_{0}(X)+c_{1}(X) \cdot s(X)=\mu(X)\), then \(c_{0}\left(X^{k}\right)+c_{1}\left(X^{k}\right) \cdot s\left(X^{k}\right)=\mu\left(X^{k}\right)\)

​ \(k=5\) : rotation on \(\left\langle\zeta^{5}\right\rangle=\left\{\zeta, \zeta^{5}, \ldots, \zeta^{2 n-3}\right\}\) (as well as plaintext slots)

​ \(k=-1\) : complex conjugate


示例


rotation key的生成

  • 对于与CKKS中 \(\Phi_M\) 的 \(M\) 互素的 \(k\) ,有环 \(\mathcal{P}=\mathbb{R}[X]/(X^N+1)\) 上自同构映射 \(\kappa_k:m(X)\mapsto m(X^k) (\mod \Phi_M(X))\)

    • 对于 使用 \(\texttt{sk}=(1,s)\) 加密多项式 \(m\) 得到的密文 \(\texttt{ct}\) ,\(\kappa_k(\texttt{ct})\) 表示对密文向量的每个分量都做 \(\kappa_k\) 映射。
    • 利用 key-switching 技术,可以使用原始的 密钥 \(\texttt{sk}\) 解密密文 \(\kappa_k(ct)\) 得到 \(\kappa_k(m)\)
    • 本段参考论文 Bootstrapping for approximate homomorphic encryption, p10
  • rotation 用到的公钥 \(pk\) 有 \(\texttt{rk}_r\gets \texttt{KSGen}_\texttt{sk}(\kappa_{5^r}(\texttt{sk}))\)

    i.e. \(pk_\texttt{leftRot,r} = (-a_0\cdot s + e_0 + p\cdot s(x^k), a_0) (\text{mod } p\cdot q_l)\)

    • 取定 \(\Delta\) 和 方案的乘法深度 \(L\) 后,有 \(Q=\Delta^L\)。

      然后,基于 安全参数 \(\lambda\) 和 LWE parameter estimator 我们得到多项式次数 \(N\)。

    • \(a_0\) uniformly sampled from \(\mathcal{R}_{p\cdot q_l}\)

    • \(r\) 表示 rotate 的位数减\(1\)。(参考前文示例可知,\(r=1,k=5\) 时,左旋转两位)

    • left rotation 有 \(k=5^r \mod 2N\)

    • right rotation 有 \(k=5^{-r} \mod 2N\)

    • conjugation 有 \(k=2N-1 \mod 2N\)

    • 以上主要参考pdf HEAAN/slide-HEAAN.pdf at 1.1 · snucrypto/HEAAN 第五页

    • \(p\) 是一个和 \(Q^L\) 有相同位宽的大整数(参考pdf HEAAN/slide-HEAAN.pdf at 1.1 · snucrypto/HEAAN 第四页)

    • \(q_l\) 是指,我们此时考虑一个在 level \(l\) 的 \(\texttt{ct}=(c_0,c_1)\)

计算 ct'=rotation (ct)

前文的 \(pk_\texttt{leftRot,r}\) 即为下文中的 \({\texttt{rk}_r}\),记号 \(p, k,r\) 的意义与前文相同。

\[\begin{aligned} &\texttt{ct'}\gets\texttt{KS}_{\texttt{rk}_r}(\kappa_{5^r}(\texttt{ct}))\\ &=\texttt{KS}_{\texttt{rk}_r}((c_0(x^k),c_1(x^k)))\\ &=(c_0(x^k),0)+\lfloor p^{-1}\cdot c_1(x^k)\cdot\texttt{rk}_r\rceil(\mod q_l)\\ &=(c_0(x^k),0)+\lfloor p^{-1}\cdot c_1(x^k)\cdot(-a_0\cdot s(x) + e_0 + p\cdot s(x^k), a_0) \rceil(\mod q_l)\\ &\text{以下是为查看解密正确性而写的冗长展开}\\ &=(c_0(x^k),0)\\ &\quad +\lfloor (p^{-1}\cdot c_1(x^k)\cdot(-a_0)\cdot s(x) + p^{-1}\cdot c_1(x^k)\cdot e_0 + c_1(x^k) \cdot p^{-1}\cdot p\cdot s(x^k), \qquad p^{-1}\cdot c_1(x^k)\cdot a_0) \rceil(\mod q_l)\\ &=(c_0(x^k)+ \lfloor p^{-1}\cdot c_1(x^k)\cdot(-a_0)\cdot s(x) + p^{-1}\cdot c_1(x^k)\cdot e_0 + c_1(x^k)\cdot s(x^k)\rceil, \qquad \lfloor p^{-1}\cdot c_1(x^k)\cdot a_0\rceil)(\mod q_l)\\ \end{aligned} \]

验证正确性

对于上述 \(\texttt{ct'}\) 和 \(\texttt{sk}=(1,s)\),代入解密流程,有 \(Dec(\texttt{ct'},sk)=\kappa_k(m)\)

\[\begin{aligned} &Dec(\texttt{ct'},sk)\\ &=(c_0(x^k)+ p^{-1}\cdot c_1(x^k)\cdot(-a_0)\cdot s(x) + p^{-1}\cdot c_1(x^k)\cdot e_0 + c_1(x^k)\cdot s(x^k), \qquad p^{-1}\cdot c_1(x^k)\cdot a_0)\cdot(1,s(x))(\mod q_l)\\ &=c_0(x^k)- p^{-1}\cdot c_1(x^k)\cdot a_0\cdot s(x) + p^{-1}\cdot c_1(x^k)\cdot e_0 + c_1(x^k)\cdot s(x^k)+ p^{-1}\cdot c_1(x^k)\cdot a_0\cdot s(x) (\mod q_l)\\ &=c_0(x^k) + c_1(x^k)\cdot s(x^k) + p^{-1}\cdot c_1(x^k)\cdot e_0 - p^{-1}\cdot c_1(x^k)\cdot a_0\cdot s(x)+p^{-1}\cdot c_1(x^k)\cdot a_0\cdot s(x)(\mod q_l)\\ &=c_0(x^k)+ c_1(x^k)\cdot s(x^k)+ p^{-1}\cdot c_1(x^k)\cdot e_0(\mod q_l)\\ &\approx\kappa_k(m)(\mod q_l)\\ \end{aligned} \]

对密文的某一部分进行rotation操作

问题:利用SEAL库对密文的某一部分进行rotation操作

答案:

  1. 利用 mask 向量先提取原密文要操作的部分并进行旋转;
  2. 再利用 mask' 提取原密文不需要操作的部分,
  3. 将两部分密文结果相加即可

注:

  1. 第二步的 mask’ 即为 第一步的 mask 取反(或者说取补)。

  2. 思路来源Operations for rotations in ciphertext using SEAL - Stack Overflow

  3. 此文最后一部分也有说明:同态加密:CKKS原理之旋转(Rotation)_PenguinLeee的博客-CSDN博客

标签:right,同态,cdot,texttt,CKKS,ct,Rotation,left,mod
From: https://www.cnblogs.com/quixotiiiiic/p/16630906.html

相关文章

  • 全同态加密-丁津泰:学习
    本文学习丁老师写的同态加密的文章,做些笔记。引言同态加密适用于云计算。因为任意计算都可以由加法和乘法构成,全同态意味着计算函数\(f\)可以是任意计算操作(任意次......
  • AVL Tree (1) - Definition, find and Rotation
    1.定义(15-1)[AVLtree]:一棵空二叉树是AVLtree;若T是一棵非空二叉树,则T满足以下两个条件时,T是一棵AVLtree:T_LeftSubtree和T_RightSubtree是AV......
  • luoguP3521 [POI2011]ROT-Tree Rotations【线段树】
    你要写热,就不能只写热。要写酷暑,写骄阳,写他人耳闻便生恐的炙烤和炎灼。要写白日出门一刻便肤色黝黑,背心透彻。写求雨心切,写出行伞遮。写夜晚不停的风扇和蝉聒。写鸡......