前言

借鉴致远的文章学习同态加密,本文主要记录密钥切换与模切换流程,参考文献为Zvika Brakerski 和Vinod Vaikuntanathan的《Efficient Fully Homomorphic Encryption from (Standard) LWE》,这篇文章的针对性问题如下:

😄 现有方法的问题 改进方法 / 文章贡献
1 现有的全同态加密算法复杂度被量子规约到 worst-case 理想格难题上,但是当时对理想格的研究较少,未经过充分验证 容错学习问题(Learning with error problem):基于容错学习问题,算法复杂度可以标准规约任意格的worst-case 难题上
2 现有的全同态加密算法在进行同态乘法时,密文维度 n + 1 n+1 n+1扩展到将近 n 2 / 2 n^2/2 n2/2。因此,随着乘法深度增加,计算开销上升。 重线性化(re-relinearization):进行密钥切换,将平方级密钥维度收缩为线性大小
3 为将部分同态算法提升至全同态,现有方法基于稀疏子集和假设(sparse subset-sum assumption),引入压缩(Squashing step)技术 维度-模数约减(dimension-modulus reduction):进行模数和密钥维度的切换,避免使用压缩技术,从而去除稀疏子集和这个强假设

半同态加密(Partially Homomorphic Encryption,PHE):仅支持一种同态运算,但是支持无限次运算。
部分同态加密(Somewhat Homomorphic Encryption,SWHE):支持多种同态运算,但是运算次数有限
全同态加密(Fully Homomorphic Encryption,FHE):支持无限多种同态运算。



一、预备知识

1. 基础定义

知识点 个人理解 形式化定义
B-bound distribution 分布多数样本的范数小于 B B B。换句话说,样本落在以原点为圆心, B B B为半径的圆外的概率很小。 在这里插入图片描述
Matrix-vector leftover hash lemma 剩余哈希引理揭示了LWE样本接近均匀分布 在这里插入图片描述
Correctness 对称加密算法是正确的,意味着对于任何明文和密钥,解密失败的概率非常小 在这里插入图片描述
IND-CPA secure 攻击者无法在有限时间内区分真实明文对应的密文和比特0对应的密文 在这里插入图片描述
C \mathcal{C} C-Homomorphism 同态性是指,对于函数集合中某类函数的实例,解密同态计算后的密文 = 明文运算结果 在这里插入图片描述
Compactness 紧凑性要求,无论有几个输入,同态计算的密文输出长度最多为多项式级别的 在这里插入图片描述
Bootstrappable encryption scheme 同时包含异或运算和与运算的同态方案。这是因为XOR和AND可以组合出任意布尔电路,包括解密电路。 在这里插入图片描述
Weak circular security 弱循环安全是指,攻击者拥有按比特加密的私钥,但公钥加密算法仍是IND-CPA安全的 在这里插入图片描述

2. IND-CPA secure

IND-CPA安全是指攻击者即使能够自由加密任何他选中的明文,也无法区分两个特定明文的加密结果。下面介绍同态加密方案的CPA安全性:

知识点 个人理解 形式化定义
CPA security 攻击者已知公钥、同态计算的评估密钥、密文,但在多项式时间内无法区分同一明文对应的两条不同密文。同一密文可以加密成两条不同的密文,这是因为同态加密算法是一种随机算法 在这里插入图片描述
( t , ϵ ) (t,\epsilon) (t,ϵ)-CPA security 攻击者已知公钥 p k pk pk、同态计算的评估密钥 e v k evk evk、密文,但在时间 t t t(超多项式级别)内区分同一明文对应的两条不同密文的概率很小,小于次多项式级别。 在这里插入图片描述

在证明CPA安全时,需要通过一个挑战者(Challenger)和攻击者(Adversary)之间的安全游戏来定义:

  • 初始化:挑战者运行密钥生成算法 K e y G e n ( 1 κ ) KeyGen(1^κ) KeyGen(1κ),产生一对公钥 p k pk pk 和私钥 s k sk sk。挑战者将公钥 p k pk pk 发送给攻击者。私钥 s k sk sk 被安全保存。
  • 查询阶段 1:攻击者可以自适应地选择任意明文 m m m,并发送给挑战者。挑战者返回对应的密文 E n c ( p k , m ) Enc(pk, m) Enc(pk,m)。攻击者可以根据之前收到的密文,不断调整并选择新的明文进行查询。这个阶段可以重复多项式次。
  • 挑战阶段:攻击者选择两个等长的明文 m 0 m₀ m0 m 1 m₁ m1,并发送给挑战者。挑战者随机地抛一枚硬币,选择一个比特 b ∈ { 0 , 1 } b ∈ \{0, 1\} b{0,1}。挑战者计算挑战密文 c ∗ = E n c ( p k , m b ) c^* = Enc(pk, m_b) c=Enc(pk,mb),并将 c ∗ c^* c 发送给攻击者。
  • 查询阶段 2:攻击者可以像阶段1一样继续请求加密其他明文,但不能请求解密挑战密文 c ∗ c^* c
  • 猜测阶段:攻击者输出一个猜测比特 b ′ b' b攻击者的优势是指以超过 50 % 50\% 50%的概率猜对的可能性,定义为: A d v C P A [ A ] = ∣ P r [ b ′ = b ] − 1 / 2 ∣ Adv_{CPA}[\mathcal{A}] = | Pr[b' = b] - 1/2 | AdvCPA[A]=Pr[b=b]1/2∣
  • 定义:如果对于所有多项式时间的攻击者 A \mathcal{A} A,其优势 A d v C P A [ A ] Adv_{CPA}[\mathcal{A}] AdvCPA[A] 都是可忽略的,那么这个加密方案就是 IND-CPA 安全的。

3. 全同态加密方案的扩展

Gentry提出了自举(Bootstrapping)技术,有研究者在此基础上得出以下结论:

  • 理论3.1:利用基于自举的同态加密方案,可以构造层次全同态加密方案。
  • 理论3.2:利用一个满足弱循环安全的基于自举同态加密方案,可以构造全同态加密方案。
  • 引理3.3:若一个(层次)全同态加密方案是由自举技术构造的,那么同态计算后的密文长度与新密文一样长

二、核心算法

本文的同态计算函数由伽罗瓦域 G F ( 2 ) GF(2) GF(2)上的电路表示。下面介绍BV11的核心算法:

1. 密钥切换:Re-linearization

重线性化是为了解决同态乘法中密文维度指数级增长的问题,主要新增了重线性化密钥,并改动了同态乘法的计算方法。

  • 参数设置
参数 解释
κ \kappa κ 安全参数
n = p o l y ( κ ) n=poly(\kappa) n=poly(κ) 密文维度
m = p o l y ( n ) ≥ n log ⁡ q + 2 κ m=poly(n) \geq n \log q+2\kappa m=poly(n)nlogq+2κ LWE样本个数
q ∈ [ 2 n ϵ , 2 ⋅ 2 n ϵ ) q\in [2^{n^\epsilon},2\cdot 2^{n^\epsilon}) q[2nϵ,22nϵ) 模数,取奇数,其中 ϵ ∈ ( 0 , 1 ) \epsilon \in(0,1) ϵ(0,1),保证 q q q n n n次指数级别
L ≈ ϵ log ⁡ n L\approx \epsilon \log n Lϵlogn 乘法深度,即允许计算的乘法次数
χ \chi χ 噪声分布,取小噪声,噪声范数最多为 n n n
  • 生成密钥
参数 解释
s 0 , ⋯   , s L s_0,\cdots,s_L s0,,sL 私钥链:包括 L + 1 L+1 L+1个私钥,其中 s i ← Z q n s_i\leftarrow \Z^n_q siZqn L L L个私钥的第0位为1,即 s l − 1 [ 0 ] = 1 s_{l-1}[0]=1 sl1[0]=1
( A , b ) (A,b) (A,b) 公钥:首先均匀采样矩阵 A ∈ Z q m × n A\in \Z_q^{m\times n} AZqm×n和噪声 e ∈ χ m e\in \chi^m eχm,然后计算 b = A s 0 + 2 e b=As_0+2e b=As0+2e
Φ = { ϕ l , i , j , τ } \Phi=\{\phi_{l,i,j,\tau}\} Φ={ϕl,i,j,τ} 重线性化密钥:用于加密同态乘法后的密文二次项 2 τ ⋅ s l [ i ] ⋅ s l [ j ] 2^\tau\cdot s_l[i]\cdot s_l[j] 2τsl[i]sl[j]。对于每一层 l ∈ [ L ] l\in [L] l[L],乘法索引对 0 ≤ i ≤ j ≤ n 0\leq i\leq j \leq n 0ijn,和每个比特位 τ ∈ { 1 , ⋯   , log ⁡ q ⌋ } \tau\in\{1,\cdots, \log q \rfloor\} τ{1,,logq⌋},从LWE分布中采样密钥 ϕ l , i , j , τ = ( a l , i , j , τ , b l , i , j , τ ) \phi_{l,i,j,\tau}=(a_{l,i,j,\tau},b_{l,i,j,\tau}) ϕl,i,j,τ=(al,i,j,τ,bl,i,j,τ) 其中,向量 a l , i , j , τ ∈ Z q n a_{l,i,j,\tau}\in\Z_q^n al,i,j,τZqn和小噪声 e l , i , j , τ ∈ Z q n e_{l,i,j,\tau}\in\Z_q^n el,i,j,τZqn通过随机采样得到,则 b l , i , j , τ = < a l , i , j , τ , s l > + 2 ⋅ e l , i , j , τ + 2 τ ⋅ s l − 1 [ i ] ⋅ s l − 1 [ j ] ∈ Z q b_{l,i,j,\tau} = \left<a_{l,i,j,\tau},s_l \right>+2\cdot e_{l,i,j,\tau} + 2^\tau\cdot s_{l-1}[i]\cdot s_{l-1}[j] \in \Z_q bl,i,j,τ=al,i,j,τ,sl+2el,i,j,τ+2τsl1[i]sl1[j]Zq
  • 加密
    给定明文 μ ∈ G F ( 2 ) \mu\in GF(2) μGF(2),随机选取一个向量 r ∈ { 0 , 1 } m r\in \{0,1\}^m r{0,1}m,则密文为 c = ( ( v , w ) , 0 ) c=((v,w),0) c=((v,w),0)。其中,0 表示初始化乘法深度, v = A T r v=A^Tr v=ATr w = b T r + μ w=b^Tr+\mu w=bTr+μ
  • 解密
    对于乘法深度为 l l l的密文 c = ( ( v , w ) , l ) c=((v,w),l) c=((v,w),l),解密结果如下: ( w − < v , s l > m o d    q ) m o d    2 (w-\left< v,s_l\right> \mod q)\mod 2 (wv,slmodq)mod2一般只解密同态计算后的结果,即对最后一层 l = L l=L l=L 密文解密。
  • 同态加法
    同态加法可以有多个输入 c 1 , ⋯   , c t c_1,\cdots,c_t c1,,ct,但必须在同一层,其中 c i = ( ( v i , w i ) , l ) c_i=((v_i,w_i),l) ci=((vi,wi),l),则加法运算后的密文 c a d d = ( ( v a d d , w a d d ) , l ) c_{\mathrm{add}}=((v_{\mathrm{add}},w_{\mathrm{add}}),l) cadd=((vadd,wadd),l) v a d d = ∑ i v i v_{\mathrm{add}}=\sum_i v_i vadd=ivi w a d d = ∑ i w i w_{\mathrm{add}} = \sum_i w_i wadd=iwi
  • 同态乘法
    同态乘法只可以输入同一层的两个密文 c = ( ( v , w ) , l ) c=((v,w),l) c=((v,w),l) c ′ = ( ( v ′ , w ′ ) , l ) c'=((v',w'),l) c=((v,w),l)。令 h i , j h_{i,j} hi,j为函数 ϕ ( s l ) \phi(s_l) ϕ(sl)的系数,即:
    ϕ ( s l ) = ( w − < v , s l > ) ⋅ ( w ′ − < v ′ , s l > ) ( m o d q ) = ∑ 0 ≤ i ≤ j ≤ n h i , j ⋅ s l [ i ] ⋅ s l [ i ] \begin{aligned} \phi(s_l) &=(w-\left< v,s_l\right>)\cdot (w'-\left< v',s_l\right>) \pmod q \\ &=\sum_{0\leq i\leq j \leq n}h_{i,j}\cdot s_l[i] \cdot s_l[i] \end{aligned} ϕ(sl)=(wv,sl)(wv,sl)(modq)=0ijnhi,jsl[i]sl[i]
    具体而言有:
    h i , j = { w ⋅ w ′ , if  i = 0 , j = 0 − w ⋅ v ′ [ j ] − w ′ ⋅ v [ j ] , if  i = 0 , j ≥ 1 v ′ [ i ] ⋅ v [ i ] , if i = j ≥ 1 v [ i ] ⋅ v ′ [ j ] + v ′ [ i ] ⋅ v [ j ] , if  j > i ≥ 1 h_{i,j}=\begin{cases} w\cdot w', & \text{if }& i=0,j=0\\ -w\cdot v'[j] - w'\cdot v[j], & \text{if }& i=0,j\geq 1 \\ v'[i]\cdot v[i], & \text{if}& i=j\geq 1\\ v[i]\cdot v'[j] + v'[i]\cdot v[j], & \text{if }& j> i\geq 1 \\ \end{cases} hi,j= ww,wv[j]wv[j],v[i]v[i],v[i]v[j]+v[i]v[j],if if ifif i=0,j=0i=0,j1i=j1j>i1 h i , j h_{i,j} hi,j转为二进制后有: h i , j = ∑ τ = 0 ⌊ log ⁡ q ⌋ h i , j , τ ⋅ 2 τ h_{i,j}=\sum_{\tau=0}^{\lfloor \log q\rfloor}h_{i,j,\tau}\cdot 2^\tau hi,j=τ=0logqhi,j,τ2τ则乘法运算后的密文 c m u l t = ( ( v m u l t , w m u l t ) , l + 1 ) c_{\mathrm{mult}}=((v_{\mathrm{mult}},w_{\mathrm{mult}}),l+1) cmult=((vmult,wmult),l+1) v m u l t = ∑ i , j , τ h i , j , τ ⋅ a l + 1 , i , j , τ m o d    q v_{\mathrm{mult}}=\sum_{i,j,\tau}h_{i,j,\tau}\cdot a_{l+1,i,j,\tau} \mod q vmult=i,j,τhi,j,τal+1,i,j,τmodq w m u l t = ∑ i , j , τ h i , j , τ ⋅ b l + 1 , i , j , τ m o d    q w_{\mathrm{mult}} = \sum_{i,j,\tau} h_{i,j,\tau}\cdot b_{l+1,i,j,\tau}\mod q wmult=i,j,τhi,j,τbl+1,i,j,τmodq其中, 0 ≤ i ≤ j ≤ n 0\leq i\leq j \leq n 0ijn τ ∈ { 0 , ⋯   , ⌊ log ⁡ q ⌋ } \tau\in \{0,\cdots,\lfloor \log q\rfloor\} τ{0,,logq⌋}

2. 模切换、密钥维度切换:Dimension-modulus Reduction

维度-模数约减是在 L L L层同态乘法结束后,为了减小自举(解密)的计算开销而设计的,在重线性化的基础上,将原本的密文维度 n n n和模数 q q q 切换为更小的参数 ( k , p ) (k,p) (k,p),新增了约减密钥,并设计了在新参数下的同态计算。下面只介绍改进步骤,其余都与上文一致:

  • 参数设置
参数 解释
k = κ k=\kappa k=κ 新的密文维度
n = κ 4 n=\kappa^4 n=κ4 旧的密文维度
q ≈ 2 n q\approx 2^{\sqrt n} q2n 旧的模数
p = ( n 2 log ⁡ q ) ⋅ p o l y ( k ) = p o l y ( k ) p=(n^2\log q)\cdot poly(k) =poly(k) p=(n2logq)poly(k)=poly(k) 旧的模数
m = O ( n log ⁡ q ) m=O(n\log q) m=O(nlogq) LWE样本个数
L = 1 / 3 log ⁡ n = 4 / 3 log ⁡ k L=1/3\log n=4/3\log k L=1/3logn=4/3logk 乘法深度
χ \chi χ 旧的噪声分布,噪声范数最多为 n n n
χ ^ \hat\chi χ^ 新的噪声分布,噪声范数最多为 k k k
  • 生成密钥
参数 解释
s L ∈ Z q n s_L\in \Z^n_q sLZqn 旧的私钥,有 n n n
s ^ ∈ Z p k \hat s\in \Z^k_p s^Zpk 新的私钥,只有 k k k
( A , b ) (A,b) (A,b) 公钥, A ∈ Z q m × n A\in \Z_q^{m\times n} AZqm×n e ∈ χ m e\in \chi^m eχm b ∈ Z q b\in \Z_q bZq
Φ = { ϕ l , i , j , τ } \Phi=\{\phi_{l,i,j,\tau}\} Φ={ϕl,i,j,τ} 重线性化密钥, l ∈ [ L ] l\in [L] l[L] 0 ≤ i ≤ j ≤ n 0\leq i\leq j \leq n 0ijn τ ∈ { 1 , ⋯   , log ⁡ q ⌋ } \tau\in\{1,\cdots, \log q \rfloor\} τ{1,,logq⌋}
Φ ^ = { ϕ ^ i , τ } \hat \Phi=\{\hat \phi_{i,\tau}\} Φ^={ϕ^i,τ} 约减密钥。对于 i ∈ [ n ] i\in[n] i[n],和每个比特位 τ ∈ { 1 , ⋯   , log ⁡ q ⌋ } \tau\in\{1,\cdots, \log q \rfloor\} τ{1,,logq⌋},从LWE分布中采样密钥 ϕ i , τ = ( a ^ i , τ , b ^ i , τ ) \phi_{i,\tau}=(\hat a_{i,\tau},\hat b_{i,\tau}) ϕi,τ=(a^i,τ,b^i,τ) 其中,向量 a ^ i , τ ∈ Z p k \hat a_{i,\tau}\in\Z_p^k a^i,τZpk和小噪声 e ^ i , τ ∈ χ ^ \hat e_{i,\tau}\in\hat\chi e^i,τχ^通过随机采样得到,则 b ^ i , τ = < a ^ i , τ , s ^ > + e ^ i , τ + ⌊ p q ⋅ ( 2 τ ⋅ s L [ i ] ) ⌉ m o d    p \hat b_{i,\tau}=\left<\hat a_{i,\tau},\hat s\right> + \hat e_{i,\tau} + \lfloor \frac{p}{q}\cdot(2^\tau\cdot s_L[i]) \rceil \mod p b^i,τ=a^i,τ,s^+e^i,τ+qp(2τsL[i])⌉modp
  • 自举(解密)
    对于 L L L层同态乘法后的密文 c f = ( ( v , w ) , L ) c_f=((v,w),L) cf=((v,w),L)。令 h ^ i \hat h_{i} h^i为函数 ϕ ^ ( s L ) \hat\phi(s_L) ϕ^(sL)的系数,即:
    ϕ ^ ( s L ) = p q ⋅ ( q + 1 2 ⋅ ( w − < v , s L > ) ) ( m o d p ) = ∑ i ∈ [ n ] h i ⋅ ( p q ⋅ s L [ i ] ) \begin{aligned} \hat\phi(s_L) &=\frac{p}{q}\cdot(\frac{q+1}{2}\cdot(w-\left< v,s_L\right>)) \pmod p\\ &=\sum_{i\in[n]}h_{i}\cdot(\frac{p}{q}\cdot s_L[i]) \end{aligned} ϕ^(sL)=qp(2q+1(wv,sL))(modp)=i[n]hi(qpsL[i])
    具体而言有:
    h ^ i = { q + 1 2 ⋅ w , if  i = 0 − q + 1 2 ⋅ v [ i ] , if  i ≥ 1 \hat h_{i}=\begin{cases} \frac{q+1}{2} \cdot w, & \text{if }& i=0\\ -\frac{q+1}{2} \cdot v[i], & \text{if }& i\geq 1 \\ \end{cases} h^i={2q+1w,2q+1v[i],if if i=0i1 h ^ i \hat h_{i} h^i转为二进制后有: h ^ i = ∑ τ = 0 ⌊ log ⁡ q ⌋ h ^ i , τ ⋅ 2 τ \hat h_{i}=\sum_{\tau=0}^{\lfloor \log q\rfloor}\hat h_{i,\tau}\cdot 2^\tau h^i=τ=0logqh^i,τ2τ则自举后的密文 c ^ = ( ( v ^ , w ^ ) , 0 ) \hat c = ((\hat v,\hat w),0) c^=((v^,w^),0) v ^ = 2 ⋅ ∑ i , τ h ^ i , τ ⋅ a ^ i , τ m o d    p \hat v = 2\cdot\sum_{i,\tau} \hat h_{i,\tau}\cdot \hat a_{i,\tau} \mod p v^=2i,τh^i,τa^i,τmodp w ^ = 2 ⋅ ∑ i , τ h ^ i , τ ⋅ b ^ i , τ m o d    p \hat w=2\cdot\sum_{i,\tau} \hat h_{i,\tau}\cdot \hat b_{i,\tau} \mod p w^=2i,τh^i,τb^i,τmodp其中, i ∈ [ n ] i\in [n] i[n] τ ∈ { 0 , ⋯   , ⌊ log ⁡ q ⌋ } \tau\in \{0,\cdots,\lfloor \log q\rfloor\} τ{0,,logq⌋}

三、算法分析

1. 正确性

1.1 Re-linearization 的正确性

  • 解密的正确性
    w − < v , s l > = ( b T r + μ ) − < A T r , s l > = b T r + μ − < r , A ⋅ s l > = b T r + μ − r T ⋅ A ⋅ s l = μ + r T ⋅ ( b − A s l ) = μ + r T ⋅ 2 e t o t a l \begin{aligned} w-\left< v,s_l\right>&=(b^Tr+\mu)-\left< A^Tr,s_l\right> \\ &=b^Tr+\mu-\left<r, A\cdot s_l\right> \\ &=b^Tr+\mu-r^T\cdot A\cdot s_l \\ &=\mu+r^T\cdot (b -As_l )\\ &=\mu+r^T\cdot 2e_{total}\\ \end{aligned} wv,sl=(bTr+μ)ATr,sl=bTr+μr,Asl=bTr+μrTAsl=μ+rT(bAsl)=μ+rT2etotal在模 q q q和模 2 2 2后为 μ \mu μ
  • 同态加法的正确性
    w a d d − < v a d d , s l > = ∑ i w i − < ∑ i v i , s l > = ∑ i ( w i − < v i , s l > ) = ∑ i ( μ i + r i T ⋅ 2 e i t o t a l ) = ∑ i μ i + 2 ⋅ ∑ i r i T ⋅ e i t o t a l \begin{aligned} w_{\mathrm{add}} - \left< v_{\mathrm{add}},s_l \right> &= \sum_i w_i - \left< \sum_i v_i,s_l \right>\\ &= \sum_i ( w_i - \left< v_i,s_l \right>)\\ &= \sum_i (\mu_i+r_i^T\cdot 2e_i^{total})\\ &= \sum_i \mu_i+2\cdot \sum_i r_i^T\cdot e_i^{total}\\ \end{aligned} waddvadd,sl=iwiivi,sl=i(wivi,sl)=i(μi+riT2eitotal)=iμi+2iriTeitotal在模 q q q和模 2 2 2后为 ∑ i μ i \sum_i \mu_i iμi
  • 同态乘法的正确性
    w m u l t − < v m u l t , s l + 1 > = ∑ i , j , τ h i , j , τ ⋅ b l + 1 , i , j , τ − < ∑ i , j , τ h i , j , τ ⋅ a l + 1 , i , j , τ , s l + 1 > = ∑ i , j , τ h i , j , τ ⋅ ( b l + 1 , i , j , τ − < a l + 1 , i , j , τ , s l + 1 > ) = ∑ i , j , τ h i , j , τ ⋅ ( 2 ⋅ e l + 1 , i , j , τ + 2 τ ⋅ s l [ i ] ⋅ s l [ j ] ) = ∑ i , j , τ h i , j , τ ⋅ 2 ⋅ e l + 1 , i , j , τ + ∑ i , j , τ ( h i , j , τ ⋅ 2 τ ) ⋅ s l [ i ] ⋅ s l [ j ] = ∑ i , j , τ h i , j , τ ⋅ 2 ⋅ e l + 1 , i , j + ∑ i , j h i , j ⋅ s l [ i ] ⋅ s l [ j ] = ∑ i , j , τ h i , j , τ ⋅ 2 ⋅ e l + 1 , i , j + ϕ ( s l ) = ∑ i , j , τ h i , j , τ ⋅ 2 ⋅ e l + 1 , i , j + ( w − < v , s l > ) ⋅ ( w ′ − < v ′ , s l > ) = ∑ i , j , τ h i , j , τ ⋅ 2 ⋅ e l + 1 , i , j + ( μ + r T ⋅ 2 e t o t a l ) ⋅ [ μ ′ + ( r ′ ) T ⋅ 2 e t o t a l ′ ] = μ μ ′ + 2 ⋅ [ μ ⋅ ( r ′ ) T ⋅ e t o t a l ′ + μ ′ ⋅ r T ⋅ e t o t a l + 2 ⋅ ( r ′ ) T ⋅ e t o t a l ′ ⋅ r T ⋅ e t o t a l + ∑ i , j , τ h i , j , τ ⋅ e l + 1 , i , j ] \begin{aligned} w_{\mathrm{mult}} - \left< v_{\mathrm{mult}},s_{l+1} \right> &= \sum_{i,j,\tau} h_{i,j,\tau}\cdot b_{l+1,i,j,\tau} - \left< \sum_{i,j,\tau}h_{i,j,\tau}\cdot a_{l+1,i,j,\tau},s_{l+1} \right> \\ &= \sum_{i,j,\tau} h_{i,j,\tau}\cdot (b_{l+1,i,j,\tau} - \left< a_{l+1,i,j,\tau},s_{l+1} \right>) \\ &= \sum_{i,j,\tau} h_{i,j,\tau}\cdot (2\cdot e_{l+1,i,j,\tau} + 2^\tau\cdot s_{l}[i]\cdot s_{l}[j]) \\ &= \sum_{i,j,\tau} h_{i,j,\tau}\cdot 2\cdot e_{l+1,i,j,\tau} + \sum_{i,j,\tau}(h_{i,j,\tau}\cdot 2^\tau)\cdot s_{l}[i]\cdot s_{l}[j] \\ &= \sum_{i,j,\tau} h_{i,j,\tau}\cdot 2\cdot e_{l+1,i,j} + \sum_{i,j}h_{i,j}\cdot s_{l}[i]\cdot s_{l}[j] \\ &= \sum_{i,j,\tau} h_{i,j,\tau}\cdot 2\cdot e_{l+1,i,j} +\phi(s_{l}) \\ &= \sum_{i,j,\tau} h_{i,j,\tau}\cdot 2\cdot e_{l+1,i,j} +(w-\left< v,s_l\right>)\cdot (w'-\left< v',s_l\right>) \\ &= \sum_{i,j,\tau} h_{i,j,\tau}\cdot 2\cdot e_{l+1,i,j} +(\mu+r^T\cdot 2e_{total})\cdot [\mu'+(r')^T\cdot 2e'_{total}] \\ &=\mu\mu'+2\cdot[\mu\cdot (r')^T\cdot e'_{total}+\mu'\cdot r^T\cdot e_{total}+2\cdot (r')^T\cdot e'_{total}\cdot r^T\cdot e_{total}+\sum_{i,j,\tau} h_{i,j,\tau}\cdot e_{l+1,i,j}] \end{aligned} wmultvmult,sl+1=i,j,τhi,j,τbl+1,i,j,τi,j,τhi,j,τal+1,i,j,τ,sl+1=i,j,τhi,j,τ(bl+1,i,j,τal+1,i,j,τ,sl+1)=i,j,τhi,j,τ(2el+1,i,j,τ+2τsl[i]sl[j])=i,j,τhi,j,τ2el+1,i,j,τ+i,j,τ(hi,j,τ2τ)sl[i]sl[j]=i,j,τhi,j,τ2el+1,i,j+i,jhi,jsl[i]sl[j]=i,j,τhi,j,τ2el+1,i,j+ϕ(sl)=i,j,τhi,j,τ2el+1,i,j+(wv,sl)(wv,sl)=i,j,τhi,j,τ2el+1,i,j+(μ+rT2etotal)[μ+(r)T2etotal]=μμ+2[μ(r)Tetotal+μrTetotal+2(r)TetotalrTetotal+i,j,τhi,j,τel+1,i,j]在模 q q q和模 2 2 2后为 μ μ ′ \mu\mu' μμ

1.2 Dimension-modulus Reduction的正确性

w ^ − < v ^ , s ^ > = 2 ⋅ ∑ i , τ h ^ i , τ ⋅ b ^ i , τ − < 2 ⋅ ∑ i , τ h ^ i , τ ⋅ a ^ i , τ , s ^ > ( m o d p ) = 2 ⋅ ∑ i , τ h ^ i , τ ⋅ ( b ^ i , τ − < a ^ i , τ , s ^ > ) = 2 ⋅ ∑ i , τ h ^ i , τ ⋅ ( e ^ i , τ + ⌊ p q ⋅ ( 2 τ ⋅ s L [ i ] ) ⌉ ) = 2 ⋅ ∑ i , τ h ^ i , τ ⋅ e ^ i , τ + 2 ⋅ ∑ i h ^ i ⋅ ⌊ p q ⋅ s L [ i ] ⌉ = 2 ⋅ ∑ i , τ h ^ i , τ ⋅ e ^ i , τ + 2 ⋅ ϕ ^ ( s L ) = 2 ⋅ ∑ i , τ h ^ i , τ ⋅ e ^ i , τ + p ⋅ ( q + 1 ) q ( w − < v , s L > ) = 2 ⋅ ∑ i , τ h ^ i , τ ⋅ e ^ i , τ + p ⋅ ( q + 1 ) q ( 2 ⋅ e t o t a l + μ + k q ) ( where  k ∈ Z ) = 2 ⋅ ∑ i , τ h ^ i , τ ⋅ e ^ i , τ + 2 p ⋅ ( q + 1 ) q ⋅ e t o t a l + p ⋅ ( q + 1 ) q μ + k p ⋅ ( q + 1 ) = 2 ⋅ ∑ i , τ h ^ i , τ ⋅ e ^ i , τ + ( 2 p ⋅ e t o t a l + 2 p q ⋅ e t o t a l ) + ( p + 1 + p q − 1 ) ⋅ μ = 2 ⋅ ∑ i , τ h ^ i , τ ⋅ e ^ i , τ + 2 p q ⋅ e t o t a l + p μ + μ + ( p q − 1 ) ⋅ μ = μ + 2 ⋅ ( ∑ i , τ h ^ i , τ ⋅ e ^ i , τ + p q ⋅ e t o t a l + p − q 2 q ⋅ μ ) \begin{aligned} \hat w - \left< \hat v,\hat s \right> &= 2\cdot\sum_{i,\tau} \hat h_{i,\tau}\cdot \hat b_{i,\tau} - \left< 2\cdot\sum_{i,\tau} \hat h_{i,\tau}\cdot \hat a_{i,\tau},\hat s \right> \pmod p\\ &=2\cdot \sum_{i,\tau}\hat h_{i,\tau}\cdot ( \hat b_{i,\tau} - \left< \hat a_{i,\tau},\hat s \right>)\\ &=2\cdot \sum_{i,\tau}\hat h_{i,\tau}\cdot \bigg(\hat e_{i,\tau} + \lfloor \frac{p}{q}\cdot(2^\tau\cdot s_L[i]) \rceil\bigg)\\ &=2\cdot \sum_{i,\tau}\hat h_{i,\tau}\cdot \hat e_{i,\tau} +2\cdot \sum_{i}\hat h_{i}\cdot \lfloor \frac{p}{q}\cdot s_L[i] \rceil\\ &=2\cdot \sum_{i,\tau}\hat h_{i,\tau}\cdot \hat e_{i,\tau} +2\cdot \hat\phi(s_L)\\ &=2\cdot \sum_{i,\tau}\hat h_{i,\tau}\cdot \hat e_{i,\tau} +\frac{p\cdot(q+1)}{q}(w-\left< v,s_L \right>)\\ &=2\cdot \sum_{i,\tau}\hat h_{i,\tau}\cdot \hat e_{i,\tau} +\frac{p\cdot(q+1)}{q}(2\cdot e_{total}+\mu+kq) & (\text{where }k\in\Z)\\ &=2\cdot \sum_{i,\tau}\hat h_{i,\tau}\cdot \hat e_{i,\tau} +\frac{2p\cdot(q+1)}{q}\cdot e_{total}+\frac{p\cdot(q+1)}{q}\mu+kp\cdot(q+1)\\ &=2\cdot \sum_{i,\tau}\hat h_{i,\tau}\cdot \hat e_{i,\tau} +\bigg(2p\cdot e_{total}+ \frac{2p}{q}\cdot e_{total}\bigg)+\bigg(p+1 + \frac{p}{q}-1\bigg)\cdot \mu\\ &=2\cdot \sum_{i,\tau}\hat h_{i,\tau}\cdot \hat e_{i,\tau} + \frac{2p}{q}\cdot e_{total}+p \mu+ \mu +\bigg( \frac{p}{q}-1\bigg)\cdot \mu\\ &= \mu +2\cdot \bigg(\sum_{i,\tau}\hat h_{i,\tau}\cdot \hat e_{i,\tau} + \frac{p}{q}\cdot e_{total}+\frac{p-q}{2q}\cdot \mu\bigg)\\ \end{aligned} w^v^,s^=2i,τh^i,τb^i,τ2i,τh^i,τa^i,τ,s^(modp)=2i,τh^i,τ(b^i,τa^i,τ,s^)=2i,τh^i,τ(e^i,τ+qp(2τsL[i])⌉)=2i,τh^i,τe^i,τ+2ih^iqpsL[i]⌉=2i,τh^i,τe^i,τ+2ϕ^(sL)=2i,τh^i,τe^i,τ+qp(q+1)(wv,sL)=2i,τh^i,τe^i,τ+qp(q+1)(2etotal+μ+kq)=2i,τh^i,τe^i,τ+q2p(q+1)etotal+qp(q+1)μ+kp(q+1)=2i,τh^i,τe^i,τ+(2petotal+q2petotal)+(p+1+qp1)μ=2i,τh^i,τe^i,τ+q2petotal+pμ+μ+(qp1)μ=μ+2(i,τh^i,τe^i,τ+qpetotal+2qpqμ)(where kZ)在模 p p p和模 2 2 2后为 μ \mu μ

2. 安全性

DLWE n , m , q , χ \text{DLWE}_{n,m,q,\chi} DLWEn,m,q,χ:判断 m m m个样本来自LWE分布还是均匀分布。
DLWE n , q , χ \text{DLWE}_{n,q,\chi} DLWEn,q,χ:判断任意数量的样本来自LWE分布还是均匀分布。

如果 DLWE n , m , q , χ \text{DLWE}_{n,m,q,\chi} DLWEn,m,q,χ问题和 DLWE n , q , χ \text{DLWE}_{n,q,\chi} DLWEn,q,χ问题都是 ( t , ϵ ) (t, \epsilon) (t,ϵ)-困难的,那么BV11方案是 ( t − poly ( κ ) , 2 ( L + 1 ) ⋅ ( 2 − κ + ϵ ) ) (t-\text{poly}(\kappa), 2(L+1)\cdot(2^{-\kappa}+\epsilon)) (tpoly(κ),2(L+1)(2κ+ϵ))-CPA安全的。原文的结论如下:

在这里插入图片描述

假定有一个IND-CPA攻击者 A \mathcal{A} A。下面利用混合论证,证明该方案的安全性:

  • 定义攻击者的优势
    首先,思考攻击者 A \mathcal{A} A攻击成功的概率,即猜测值 b ′ b' b 和真实值 b b b 一样的概率,如下:
    P ( b ′ = b ) = P ( b = 0 ) ⋅ P ( b ′ = 0 ∣ b = 0 ) + P ( b = 1 ) ⋅ P ( b ′ = 1 ∣ b = 1 ) = 1 2 ⋅ [ 1 − P ( b ′ = 1 ∣ b = 0 ) ] + 1 2 ⋅ P ( b ′ = 1 ∣ b = 1 ) = 1 2 + 1 2 ⋅ [ P ( b ′ = 1 ∣ b = 0 ) − P ( b ′ = 1 ∣ b = 1 ) ] \begin{aligned} P(b'=b) &=P(b=0)\cdot P(b'=0|b=0)+P(b=1)\cdot P(b'=1|b=1)\\ &=\frac{1}{2}\cdot [1-P(b'=1|b=0)]+\frac{1}{2}\cdot P(b'=1|b=1)\\ &=\frac{1}{2}+\frac{1}{2}\cdot [P(b'=1|b=0)- P(b'=1|b=1)]\\ \end{aligned} P(b=b)=P(b=0)P(b=0∣b=0)+P(b=1)P(b=1∣b=1)=21[1P(b=1∣b=0)]+21P(b=1∣b=1)=21+21[P(b=1∣b=0)P(b=1∣b=1)]其中, A \mathcal{A} A在游戏 H H H中获胜的优势 Adv H \text{Adv}_{H} AdvH被定义为概率公式里中括号那部分,即:
    Adv H [ A ] = P ( b ′ = 1 ∣ b = 0 ) − P ( b ′ = 1 ∣ b = 1 ) \text{Adv}_{H}[\mathcal{A}]=P(b'=1|b=0)- P(b'=1|b=1) AdvH[A]=P(b=1∣b=0)P(b=1∣b=1)此时, Adv H \text{Adv}_{H} AdvH越大,攻击成功率越高,则优势越大。
  • 定义攻击者的知识攻击者有一个LWE Oracle,该Oracle可能生成LWE样本,也可能生成均匀样本;攻击者已知密文,以及加密所用的公钥、重线性化密钥、约减密钥。
  • 定义混合游戏
混合
游戏
描述
H ^ L + 1 \hat H_{L+1} H^L+1 攻击者 A \mathcal{A} A根据真实密文和密钥(公钥、重线性化密钥、约减密钥)所生成的密文猜测真实明文
H L + 1 H_{L+1} HL+1 攻击者 B ^ \mathcal{\widehat{\mathcal{B}}} B 仅将约减密钥替换为随机数。具体而言,攻击者 B ^ \widehat{\mathcal{B}} B 向LWE Oracle申请一个样本,并用该样本替换约减密钥。然后,攻击者 B ^ \widehat{\mathcal{B}} B 用替换后的密钥加密一个随机比特,并交给攻击者 A \mathcal{A} A猜测。如果猜对了,攻击者 B ^ \widehat{\mathcal{B}} B 认为密文来自LWE分布,否则为均匀样本。
H l ∈ [ L ] H_{l\in [L]} Hl[L] 攻击者 B ^ l \widehat{\mathcal{B}}_l B l将约减密钥、前第 l l l层所有重线性化密钥 { ϕ λ , i , j , τ } λ ≤ l , i , j , τ \{\phi_{\lambda,i,j,\tau}\}_{\lambda\leq l,i,j,\tau} {ϕλ,i,j,τ}λl,i,j,τ替换为随机数。攻击者 B ^ l \widehat{\mathcal{B}}_l B l向LWE Oracle申请一个样本,并用该样本替换重线性化密钥链中第 l + 1 l+1 l+1层密钥。攻击者 B ^ l \widehat{\mathcal{B}}_l B l用替换后的密钥加密一个随机比特,并交给攻击者 A \mathcal{A} A猜测。如果猜对了,攻击者 B ^ l \widehat{\mathcal{B}}_l B l认为密文来自LWE分布,否则为均匀样本。
H 0 H_0 H0 攻击者将约减密钥、所有重线性化密钥、公钥替换为随机数,并根据替换后的密钥生成的密文猜测真实明文
H rand H_\text{rand} Hrand 攻击者将约减密钥、所有重线性化密钥、公钥、密文替换为随机数,并猜测真实明文
  • 计算每个游戏下的优势
    对于游戏 H ^ L + 1 \hat H_{L+1} H^L+1:根据优势的定义,我们假设 Adv H ^ L + 1 [ A ] = δ \text{Adv}_{\hat H_{L+1}}[\mathcal{A}]= \delta AdvH^L+1[A]=δ
    对于游戏 H l H_{l} Hl:如果Oracle生成均匀样本, H l H_{l} Hl 分布与 H l + 1 H_{l+1} Hl+1 相同,此时攻击成功的概率为
    P ( H l ∈ A s , χ ∣ H l ∈ U ) = 1 2 + 1 2 ⋅ [ P l + 1 ( b ′ = 1 ∣ b = 0 ) − P l + 1 ( b ′ = 1 ∣ b = 1 ) ] = 1 2 + 1 2 ⋅ Adv H l + 1 [ A ] \begin{aligned}P(H_{l}\in A_{s,\chi}|H_{l}\in U)&=\frac{1}{2}+\frac{1}{2}\cdot [P_{l+1}(b'=1|b=0)- P_{l+1}(b'=1|b=1)]\\&=\frac{1}{2}+\frac{1}{2}\cdot \text{Adv}_{ H_{l+1}}[\mathcal{A}]\end{aligned} P(HlAs,χHlU)=21+21[Pl+1(b=1∣b=0)Pl+1(b=1∣b=1)]=21+21AdvHl+1[A]如果生成LWE样本,分布仍为 H l H_{l} Hl,此时攻击成功的概率为
    P ( H l ∈ A s , χ ∣ H l ∈ A s , χ ) = 1 2 + 1 2 ⋅ [ P l ( b ′ = 1 ∣ b = 0 ) − P l ( b ′ = 1 ∣ b = 1 ) ] = 1 2 + 1 2 ⋅ Adv H l [ A ] \begin{aligned}P(H_{l}\in A_{s,\chi}|H_{l}\in A_{s,\chi})&=\frac{1}{2}+\frac{1}{2}\cdot [P_{l}(b'=1|b=0)- P_{l}(b'=1|b=1)]\\&=\frac{1}{2}+\frac{1}{2}\cdot \text{Adv}_{ H_{l}}[\mathcal{A}]\end{aligned} P(HlAs,χHlAs,χ)=21+21[Pl(b=1∣b=0)Pl(b=1∣b=1)]=21+21AdvHl[A] 此时该游戏的区分优势为
    DLWE Adv [ B ^ ] = ∣ P ( H l ∈ A s , χ ∣ H l ∈ U ) − P ( H l ∈ A s , χ ∣ H l ∈ A s , χ ) ∣ = 1 2 ⋅ ∣ Adv H l [ A ] − Adv H l + 1 [ A ] ∣ \begin{aligned} \text{DLWE Adv}[\widehat{\mathcal{B}}] &= |P(H_{l}\in A_{s,\chi}|H_{l}\in U)- P(H_{l}\in A_{s,\chi}|H_{l}\in A_{s,\chi})| \\ &=\frac{1}{2}\cdot |\text{Adv}_{ H_{l}}[\mathcal{A}] -\text{Adv}_{H_{l+1}}[\mathcal{A}]|\\ \end{aligned} DLWE Adv[B ]=P(HlAs,χHlU)P(HlAs,χHlAs,χ)=21AdvHl[A]AdvHl+1[A]
    对于游戏 H rand H_\text{rand} Hrand:所有元素都是均匀随机,与消息无关,因此优势为0。

先解释一下文章中在定义不同混合游戏的优势时,所用到的符号表示: μ \mu μ表示真实明文; SH.Enc p k ( μ ) \text{SH.Enc}_{pk}(\mu) SH.Encpk(μ) 是按规矩一步一步生成的真实密文; A ( ⋅ ) \mathcal{A}(\cdot) A()表示攻击者 A \mathcal{A} A在已知一定知识的情况下猜测对应明文,攻击知识即输入 ( ⋅ ) (\cdot) (),例如 A ( p k , SH.Enc p k ( μ ) ) \mathcal{A}(pk,\text{SH.Enc}_{pk}(\mu)) A(pk,SH.Encpk(μ))表示攻击者 A \mathcal{A} A在已知公钥和真实密文的情况下猜测对应明文。

混合游戏 优势
H ^ L + 1 \hat H_{L+1} H^L+1 Pr ⁡ [ A ( p k , SH.Enc p k ( μ 0 ) ) = 1 ] − Pr ⁡ [ A ( p k , SH.Enc p k ( μ 1 ) ) = 1 ] ∣ = δ \Pr[\mathcal{A}(pk, \text{SH.Enc}_{pk}(\mu_0)) = 1] - \Pr[\mathcal{A}(pk, \text{SH.Enc}_{pk}(\mu_1)) = 1] | = \delta Pr[A(pk,SH.Encpk(μ0))=1]Pr[A(pk,SH.Encpk(μ1))=1]=δ
H L + 1 H_{L+1} HL+1 DLWE k , p , χ ^ Adv [ B ^ ] ≥ 1 2 ⋅ ∣ Adv H ^ l + 1 [ A ] − Adv H l + 1 [ A ] ∣ \text{DLWE}_{k,p,\hat\chi}\text{Adv}[\widehat{\mathcal{B}}] \geq \frac{1}{2} \cdot | \text{Adv}_{\hat H_{l+1}}[\mathcal{A}] - \text{Adv}_{H_{l+1}}[\mathcal{A}] | DLWEk,p,χ^Adv[B ]21AdvH^l+1[A]AdvHl+1[A]
H l ∈ [ L ] H_{l\in [L]} Hl[L] DLWE n , q , χ Adv [ B ^ l ] = 1 2 ⋅ ∣ Adv H l [ A ] − Adv H l + 1 [ A ] ∣ \text{DLWE}_{n,q,\chi}\text{Adv}[\widehat{\mathcal{B}}_l] = \frac{1}{2} \cdot | \text{Adv}_{H_{l}}{[A]} - \text{Adv}_{H_{l+1}}{[A]} | DLWEn,q,χAdv[B l]=21AdvHl[A]AdvHl+1[A]
H 0 H_0 H0 DLWE n , q , χ Adv [ B ^ l ] = 1 2 ⋅ ∣ Adv H 1 [ A ] − Adv H 0 [ A ] ∣ \text{DLWE}_{n,q,\chi}\text{Adv}[\widehat{\mathcal{B}}_l] = \frac{1}{2} \cdot | \text{Adv}_{H_{1}}{[A]} - \text{Adv}_{H_{0}}{[A]} | DLWEn,q,χAdv[B l]=21AdvH1[A]AdvH0[A]
H rand H_\text{rand} Hrand Adv H rand [ A ] = 0 \text{Adv}_{H_\text{rand}}[\mathcal{A}]=0 AdvHrand[A]=0
  • 计算总优势
    根据 Leftover hash lemma,样本与均匀随机统计接近:
    ∣ Adv H 0 [ A ] − Adv H rand [ A ] ∣ ≤ 2 − κ |\text{Adv}_{H_0}[\mathcal{A}]-\text{Adv}_{H_\text{rand}}[\mathcal{A}]| \leq 2^{-\kappa} AdvH0[A]AdvHrand[A]2κ
    则将所有游戏中的优势关系相加有:
    Adv CPA [ A ] = Adv H ^ L + 1 [ A ] − Adv H rand [ A ] ≤ 2 − κ + 2 ⋅ ( DLWE k , p , χ ^ Adv [ B ^ ] + ∑ l ∈ [ L ] DLWE n , q , χ Adv [ B ^ l ] ) \begin{aligned} \text{Adv}_{\text{CPA}}[\mathcal{A}]&=\text{Adv}_{\hat H_{L+1}}[\mathcal{A}]-\text{Adv}_{H_\text{rand}}[\mathcal{A}] \\ &\leq 2^{-\kappa} + 2\cdot(\text{DLWE}_{k,p,\hat\chi}\text{Adv}[\widehat{\mathcal{B}}]+\sum_{l\in[L]}\text{DLWE}_{n,q,\chi}\text{Adv}[\widehat{\mathcal{B}}_l]) \end{aligned} AdvCPA[A]=AdvH^L+1[A]AdvHrand[A]2κ+2(DLWEk,p,χ^Adv[B ]+l[L]DLWEn,q,χAdv[B l])

3. 同态性

😛这章部分证明看懂了,但懒得打字了,要是以后用到了再填坑

4. 全同态性

😐这章部分证明还有没打通的地方,就不详解了
通过Gentry的自举定理,BV11可以转为全同态方案。文章中首先证明了BV11的解密电路足够浅,可以由深度为 O ( log ⁡ k + log ⁡ log ⁡ p ) O(\log k + \log \log p) O(logk+loglogp)的算术电路实现;其次证明了方案可自举,即存在常数 C C C,当设置 n = k C / ϵ n = k^{C/\epsilon} n=kC/ϵ 时,BV11可以同态计算自己的增强解密电路;最后,利用Gentry自举定理,可以获得层次全同态加密,若方案满足弱循环安全性,则获得真正的完全同态加密。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐