CKKS Part4: CKKS的乘法和重线性化】的更多相关文章

本文翻译于CKKS EXPLAINED, PART 4: MULTIPLICATION AND RELINEARIZATION,主要介绍CKKS方案中的密文乘法和重线性化技术 介绍 在上一篇 CKKS Part3: CKKS的加密和解密 ,我们看到了如何基于RLWE问题创建同态加密方案,实现同态加法和密文明文乘法. 虽然执行密文-明文乘法很容易,但正如我们将看到的,密文-密文要复杂得多.事实上,我们需要处理很多事情才能正确地完成它,比如找到正确的操作,这样一旦解密,我们就可以得到两个密文的乘积,…
本文翻译于 CKKS EXPLAINED, PART 5: RESCALING,主要介绍CKKS方案中最重要的技术- rescaling,重缩放技术 介绍 在CKKS的前一篇文章 CKKS Part4: CKKS的乘法和重线性化 中,我们了解了密文乘法在CKKS中的工作原理,为什么需要重新线性化输出以及保持恒定的密文大小,以及如何做到这一点. 尽管如此,正如我们将看到的,我们需要一个名为"重缩放"的最终操作来管理噪音并避免溢出.这将是本系列的最后一篇理论性文章,在下一篇也是最后一篇文章…
本篇文章翻译于CKKS EXPLAINED, PART 3: ENCRYPTION AND DECRYPTION,主要介绍CKKS方案的加密和解密. 介绍 在上一篇 CKKS Part2: CKKS的编码和解码 中,我们看到了如何实现CKKS的编码器和解码器,这使我们能够将向量转换为多项式,反之亦然.这一步是必要的,因为我们将看到,与直接使用向量相比,使用多项式构建同态加密方案要高效得多. 在本文中,我们将看到如何使用困难问题,例如LWE或RLWE来构建近似同态加密方案.CKKS使用近似算法而不…
该文章翻译自CKKS EXPLAINED, PART 2: FULL ENCODING AND DECODING,主要介绍CKKS方案中是如何编码和解码的(如何将复数向量转成整数多项式,以及如何求逆运算) 介绍 在前一篇文章<CKKS:第1部分,普通编码和解码>中,我们了解到,要在CKKS方案中实现加密复数向量的计算,必须首先构建一个编码和解码,将复数向量转换为多项式. 这个编/解码步骤是必要的,因为加密.解密和其他机制在多项式环上工作.因此,有必要找到一种将复数向量转换成多项式的方法. 我们…
在此记录Tenseal的学习笔记 介绍 在张量上进行同态计算的库,是对Seal的python版实现,给开发者提供简单的python接口,无需深究底层密码实现. 当前最新版本:3.11 位置:A library for doing homomorphic encryption operations on tensors 具备以下特点: BFV方案的加解密(整数) CKKS方案的加解密(浮点数) 密文-密文.密文-明文的加法和乘法运算(同态计算) 点积和矩阵乘法 将Seal封装为tenseal.se…
本文内容来自"Protecting Privacy throughHomomorphic Encryption",主要学习里面的CKKS部分. CKKS是一种同态加密方案,其安全性依赖于RLWE问题.明文是实数向量,表示为定点类型计算方式(实数表示方法:浮点计算和定点计算).该方案很支持以SIMD方式在这些向量之间进行定点运算. CKKS方案涉及几个参数,这些参数决定了该方案支持的安全级别.功能和精度.这些参数是: 1.与计算精度相对应的小数位数f: 2.(最大的)密文模数q: 3.密…
这篇文章,翻译于:[CKKS EXPLAINED: PART 1, VANILLA ENCODING AND DECODING] 主要介绍为CKKS中编码/解码做铺垫,讲一些基础知识 介绍 同态加密是一个很有前途的领域,它允许对密文进行计算.下面这篇优秀的文章<什么是同态加密>对同态加密是什么以及这一研究领域的利害关系进行了广泛的解释. 在本系列文章中,我们将深入研究Cheon-Kim-Song(CKKS)方案,该方案首次在论文<Homomorphic Encryption for Ar…
在看SEAL库和HElib库中经常在编码中碰到打包(batch)技术,另外还提到了SIMD编码技术,有点困惑,编码.打包.SIMD到底有什么关系? 编码 在CKKS方案中,因为明文空间在复数域上,简单的说一个明文就是一个复数向量,那么CKKS是基于RLWE问题,计算是在环上,也就是整数多项式上,所以在加密之前需要进行编码,将一个复数向量编码成一个整数多项式,然后在加密,进而计算. 那如何将一个复数向量编码为了整数多项式? 具体细节请参考:CKKS Part2: CKKS的编码和解码 BGV和BF…
本文主要学习HEAAN同态库,选择最老的一版:地址,最新版在:位置,HEAAN是CKKS17论文的主要代码复现. 版本 1.地址这是最老的一版,对应的论文CKKS17 2.在1的基础上,实现了bootstarpping技术,对应的论文 3.在2的基础上,优化,效率更高! 结构 有三个文件夹:lib.run.src lib:存放依赖库(静态文件),需要生成静态库,具体安装和生成静态库参考:MAC上安装HEAAN库 run:里面有一个run.cpp文件,为测试文件 src:里面是主要代码文件 测试文…
本节内容记录阅读该论文的笔记 介绍 首先,介绍了两种明文"打包"的方法:PVW和SV PVW:对应论文(PVW:A framework for efficient and composable oblivious transfer),打包思想就是,将多个bit明文是为一个明文向量. SV:对应论文(SV11:Fully homomorphic SIMD operations),打包思想:将多个明文通过"编码"插入到一个多项式上,转换成多项式的计算相当于这么多明文计算…