BFV同态加密方案初步学习
BFV是把Bra12的LWE版本推到了RLWE版本,Bra12也可以叫做BFV。
经典的RLWE的公钥加密算法回顾
对比以前的Regev的LWE公钥加密方案,其实几乎只是把明文空间换了,也就是在最大比特编码的时候把2换成t,即, Δ = ⌊ q / t ⌋ \Delta = \lfloor q/t \rfloor Δ=⌊q/t⌋。同时这里的 q q q是没有限制的,也就是可以使用2的幂次来简化运算。
这里可以这样看 s = ( 1 , s ) \mathbf s = (1,\mathbf s) s=(1,s), c t = ( c 0 , c 1 ) \mathbf {ct}=(\mathbf c_0,\mathbf c_1) ct=(c0,c1)。
对于正确性验证
c 0 + c 1 ⋅ s = p 0 ⋅ u + e 1 + Δ ⋅ m + p 1 ⋅ u + e 2 = − a ⋅ s ⋅ u + e ⋅ u + e 1 + Δ ⋅ m + a ⋅ s ⋅ u + e 2 ⋅ s = Δ ⋅ m + e ⋅ u + e 1 + e 2 ⋅ s ( m o d q ) \begin{aligned}\mathbf c_0+\mathbf c_1 \cdot \mathbf s &= \mathbf p_0 \cdot \mathbf u +\mathbf e_1 + \Delta \cdot \mathbf m + \mathbf p_1 \cdot \mathbf u +\mathbf e_2 \\ &= -\mathbf a \cdot \mathbf s \cdot \mathbf u + \mathbf e \cdot \mathbf u +\mathbf e_1 + \Delta \cdot \mathbf m + \mathbf a \cdot \mathbf s \cdot \mathbf u + \mathbf e_2 \cdot \mathbf s \\ &= \Delta \cdot \mathbf m +\mathbf e \cdot \mathbf u +\mathbf e_1 + \mathbf e_2 \cdot \mathbf s (\mod q) \end{aligned} c0+c1⋅s=p0⋅u+e1+Δ⋅m+p1⋅u+e2=−a⋅s⋅u+e⋅u+e1+Δ⋅m+a⋅s⋅u+e2⋅s=Δ⋅m+e⋅u+e1+e2⋅s(modq)
可以看到这里的噪声似乎与 u \mathbf u u和 s \mathbf s s有关,如果将这两个取的小一点,能够一定程度上减低噪声。
另外,将噪声用 v = e ⋅ u + e 1 + e 2 ⋅ s \mathbf v = \mathbf e \cdot \mathbf u +\mathbf e_1 + \mathbf e_2 \cdot \mathbf s v=e⋅u+e1+e2⋅s表示,能够得到 [ c 0 + c 1 ⋅ s ] q = Δ ⋅ m + v [\mathbf c_0+\mathbf c_1 \cdot \mathbf s ]_q =\Delta \cdot \mathbf m + \mathbf v [c0+c1⋅s]q=Δ⋅m+v,与此同时若取样的 χ ≤ B \chi \le B χ≤B的话,我们将得到噪声的界限,即 v ≤ 2 ⋅ B 2 ⋅ δ R + B \mathbf v \le 2\cdot B^2 \cdot \delta_R+B v≤2⋅B2⋅δR+B,其中 δ R \delta_R δR表示扩张因子
δ R = max { ∥ a ⋅ b ∥ ∥ a ∥ ⋅ ∥ b ∥ : a , b ∈ R } \delta_{R}=\max \left\{\frac{\|a \cdot b\|}{\|a\| \cdot\|b\|}: a, b \in R\right\} δR=max{∥a∥⋅∥b∥∥a⋅b∥:a,b∈R},其中的 ∣ ∣ a ∣ ∣ = m a x i ∣ a i ∣ ||a||=max_i|a_i| ∣∣a∣∣=maxi∣ai∣为无穷范数。
同态方案
方案是基于前面的LPR.ES方案的,作为优化,该方案增加了一个重线性化,将 u \mathbf u u和 s \mathbf s s的取值范围变为 R 2 \mathbb R_2 R2,即它们的范数为1,其他基本一致
借用BV11里面的思想,将解密过程看作一个解密函数,即得到,
[ c t ( x ) ] q = [ c 0 + c 1 ⋅ x ] q [\mathbf {ct}(\mathbf x)]_q=[\mathbf c_0+\mathbf c_1 \cdot \mathbf x ]_q [ct(x)]q=[c0+c1⋅x]q
代入密钥就能得到明文
[ c t ( s ) ] q = Δ ⋅ m + v [\mathbf {ct}(\mathbf s)]_q= \Delta \cdot \mathbf m + \mathbf v [ct(s)]q=Δ⋅m+v
同态乘法
来看看核心的乘法运算
该定理表明,乘法时,噪声不是呈平方增长,而是大致上乘以了一个系数 2 ⋅ t ⋅ δ R 2 ⋅ ∣ ∣ s ∣ ∣ 2\cdot t\cdot \delta_R^2\cdot||\mathbf s|| 2⋅t⋅δR2⋅∣∣s∣∣,也就是线性增长,从表达式里能看到,对噪声有显著影响的是 t t t和 s \mathbf s s的范数。(具体引理证明感兴趣可以去原文看看
BFV同态加密方案初步学习相关推荐
- CKKS同态加密方案初步学习
如论文标题所示,CKKS允许复数和实数运算,是一个近似精度计算的方案,也就是解密出来的明文和加密之前的明文不会完全一致.也就是采用丢失部分精度来换取较高的效率. CKKS的核心是把加密噪声视为近似计算 ...
- bfv同态加密_五分钟了解同态加密及三种常见方案
同态加密是一种允许直接对加密数据执行计算而无需解密密钥加密方案.从理论上讲其功能强大且在学术上很具有吸引力,但是实际使用门槛较高. 原文标题:<隐私保护计算技术指南 4> 撰文:陈智罡 概 ...
- GSW同态加密方案学习
帮助理解 第三代全同态加密方案,对比之前的方案来说,概念上更加简单,渐进更快,基于身份和属性. 核心思想是近似特征向量技术. 一开始看Gentry的文章很不适应,所以先看的Yue佬的文章帮助理解后再去 ...
- 密码学学习笔记(五)——CKKS同态加密方案
文章目录 1. 提出背景 2. 方案原理 3. 算法描述 4.方案改进 4.1 自举方案 4.2 RNS变体 1. 提出背景 1978年,Rivest.Adleman和Dertouzos在文献[1]中 ...
- bfv同态加密_全同态加密BFV-(section 2-SHE)
写在前面 如果第一次来到我的专栏,如果想从头学习全同态加密FHE,那么点击下面的链接吧,我在最开始的地方等你~安全六三:全同态加密1-(BFV section 1)zhuanlan.zhihu.co ...
- bfv同态加密_同态加密入门教程
在这篇文章中,我们将了解同态加密的基本概念,介绍常用的同态加密开发库,学习同态加密应用开发的一般步骤,了解如何在Web应用中添加同态加密支持. 1.同态加密概述 同态加密改变了隐私保护的游戏规则,它允 ...
- bfv同态加密_同态加密简明教程
在这篇文章中,我们将了解同态加密的基本概念,介绍常用的同态加密开发库,学习同态加密应用开发的一般步骤,了解如何在Web应用中添加同态加密支持. 1.同态加密概述 同态加密改变了隐私保护的游戏规则,它允 ...
- bfv同态加密_lattigo: 基于Lattice代数结构的Go同态加密库
Lattigo 基于Lattice代数结构的Go同态加密库 Lattigo是一个Go软件包,实现了基于格的加密原语.该库功能: 纯Go实施,带来代码简单性和易于构建. 一个有效的多精度多项式算术层的公 ...
- bfv同态加密_同态加密综述
目前大部分内容翻译自维基百科, 后续会根据调研情况不断丰富. 基本概念 同态加密(Homomorphic encryption) 是一种可以支持在密文上进行计算的加密方式, 对在密文上计算得到的结果进 ...
最新文章
- 深入理解JDK动态代理
- 15-jQuery补充
- 数智化时代合格数据架构师如何养成?
- 单例模式源码分析(jdk+spring+mybatis)
- [转]Hspice 语法手册
- centos 6.5 x64 上安装mariadb10
- c++该转java吗_java多线程,静态方法加锁后,调用该方法会影响其它方法吗?
- filestream streamreader
- 人工智能3d建模算法_黑科技 | 3D人脸建模可以多简单?一张照片就搞定!
- 泛微OA ecology 您查看的文档过大,请下载文档后查看
- win10产品密钥查看
- Vblog#2 DAY1
- Python 保留字和关键字的用法
- Windows10应用磁贴如何显示
- Android关闭屏幕时不锁屏
- 3、Windows之CMD装逼命令————CMD命令打开网页(让人一看你就是个电脑高手)
- 【ceph相关】ceph基准性能测试工具
- may have been in progress in another thread when fork() was called.
- 嵌入式 C 语言中三块难啃的硬骨头
- 移动C盘Users目录(我的文档)到其他盘