HElib】的更多相关文章

同态加密(Homomorphic encryption)是一种加密形式,它允许人们对密文进行特定的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样.换言之,这项技术令人们可以在加密的数据中进行诸如检索.比较等操作,得出正确的结果,而在整个处理过程中无需对数据进行解密.其意义在于,真正从根本上解决将数据及其操作委托给第三方时的保密问题,例如对于各种[[云计算]]的应用. 这一直是密码学领域的一个重要课题,以往人们只找到一些部分实现这种操作的方法.而2009年9月克雷…
什么是FHE-Toolkit? FHE-Toolkit-linux是用于Linux的IBM全同态加密工具包, 该工具包是一个基于Linux的Docker容器,可演示对加密数据的计算而无需解密, 该工具包附带两个演示,其中包括使用神经网络进行的完全加密的机器学习推理以及保留隐私的键值搜索 github:链接 该存储库包含安装和运行作为Docker容器的预打包工具包所需的所有脚本.这些工具包包括IBM同态加密库-HElib,集成开发环境(IDE)[VScode]以及相应的工作区,其中包含各种受支持的…
学计算机的,在写代码的时候,IDE安装好,环境按着教程配置好,就直接代码了,编辑器的具体原理只是一知半解,现在来系统学习一下,为了方便以后学习HElib! make和cmake 写程序大体步骤为: 1.用编辑器编写源代码,如.c文件. 2.用编译器编译代码生成目标文件,如.o. 3.用链接器连接目标代码生成可执行文件,如.exe. gcc gcc是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(括C.C++.Objecti…
本文内容来自"Protecting Privacy throughHomomorphic Encryption",主要学习里面的CKKS部分. CKKS是一种同态加密方案,其安全性依赖于RLWE问题.明文是实数向量,表示为定点类型计算方式(实数表示方法:浮点计算和定点计算).该方案很支持以SIMD方式在这些向量之间进行定点运算. CKKS方案涉及几个参数,这些参数决定了该方案支持的安全级别.功能和精度.这些参数是: 1.与计算精度相对应的小数位数f: 2.(最大的)密文模数q: 3.密…
在看SEAL库和HElib库中经常在编码中碰到打包(batch)技术,另外还提到了SIMD编码技术,有点困惑,编码.打包.SIMD到底有什么关系? 编码 在CKKS方案中,因为明文空间在复数域上,简单的说一个明文就是一个复数向量,那么CKKS是基于RLWE问题,计算是在环上,也就是整数多项式上,所以在加密之前需要进行编码,将一个复数向量编码成一个整数多项式,然后在加密,进而计算. 那如何将一个复数向量编码为了整数多项式? 具体细节请参考:CKKS Part2: CKKS的编码和解码 BGV和BF…
在Seal库和HElib库中都用到了NTT技术,用于加快多项式计算,而NTT又是FFT的优化,FFT又来自于DFT,现在具体学习一下这三个技术! 基础概念 名词区分 1.DFT:离散傅立叶变换 2.FFT:快速傅立叶变换 3.NTT:快速数论变换 4.MTT:NTT的扩展 5.多项式卷积:多项式乘法 6.根据多项式的系数表示法求点值表示法的过程叫做"求值":根据点值表示法求系数表示法的过程称为"插值" 7.求一个多项式的乘法,即求卷积,先通过傅立叶变换对系数表示法的…
之前看过一次,根本看不懂,现在隔这么久,再次阅读,希望有所收获! 论文版本:Homomorphic Evaluation of the AES Circuit(Updated Implementation) 首先明白AES电路是什么? 暂且理解为AES加密算法,以电路的形式实现. 注:bootstrapping 自举:key switching 密钥交换: modulus switching 模交换 介绍 使用Leveled-FHE方案(BGV)加密和同态计算(不用自举),使用同态库(HElib…
本文记录阅读该paper的笔记,这篇论文是TenSeal库的原理介绍. 摘要 机器学习算法已经取得了显著的效果,并被广泛应用于各个领域.这些算法通常依赖于敏感和私有数据,如医疗和财务记录.因此,进一步关注隐私威胁和应用于机器学习模型的相应防御技术至关重要.在本文中,我们介绍了TenSEAL,这是一个使用同态加密保护隐私数据的机器学习开源库,可以轻松地集成到流行的机器学习框架(PyTorch 或 Tensorflow)中.我们使用MNIST数据集对我们的实现进行了benchmark测试,结果显示加…