PALISADE全同态加密开源库
文章平均质量分 81
Sunburst7
这个作者很懒,什么都没留下…
展开
-
2021SC@SDUSC-PALISADE(十三)PALISADE库结构以及专用对象分析
2021SC@SDUSC——PALISADE库结构以及专用对象分析目录1 元素类型2 CryptoContext3 PlainText4 Ciphertext5 ElementParams6 EncodingParamsPALISADE被设计为一个层结构,每一层都提供了一系列的服务给上一层,使用下一层提供的服务。每一层的接口都被设计为API,下面为具体层结构:Application:所有调用了PALISADE lib的程序都在这一层Encoding:所有数据编码方法的实现都在这一层编码原创 2021-11-29 14:37:50 · 866 阅读 · 0 评论 -
2021SC@SDUSC-PALISADE(十二)具体分析PALISADE中的拒绝采样法
2021SC@SDUSC——PALISADE中离散高斯取样实现的分析专题:高斯分布采样原理——拒绝采样法PALISADE中的采样方法具体分析PALISADE中的拒绝采样法具体分析PALISADE中的拒绝采样法拒绝采样法定义在discretegaussiangenerator.cpp的GenerateInteger方法中。该方法的申明如下:template <typename VecType>int32_t DiscreteGaussianGeneratorImpl<Ve原创 2021-11-29 14:23:15 · 271 阅读 · 0 评论 -
2021SC@SDUSC-PALISADE(十一)PALISADE中的采样方法
2021SC@SDUSC——PALISADE中离散高斯取样实现的分析专题高斯分布采样原理——拒绝采样法PALISADE中的采样方法具体分析PALISADE中的拒绝采样法6.2 PALISADE中的采样法PALISADE库提供了各种方法从离散的高斯分布采样。这些方法在DiscreteGaussianGenerator和DiscreteGaussianGeneratorGeneric类中都实现了,它们有各自的特定用途。所讨论的所有采样器都已在 GLITCH Discrete Gaussian Te原创 2021-11-29 14:19:06 · 2209 阅读 · 0 评论 -
2021SC@SDUSC-PALISADE(十)原理:拒绝采样法
2021SC@SDUSC高斯分布采样原理——拒绝采样法蒙特·卡罗方法(Monte Carlo method)也称统计模拟方法,通过重复随机采样模拟对象的概率与统计的问题,在物理、化学、经济学和信息技术领域均具有广泛应用。拒绝采样(reject sampling)就是针对复杂问题的一种随机采样方法。首先举一个简单的例子介绍Monte Carlo方法的思想。假设要估计圆周率π的值,选取一个边长为1的正方形,在正方形内作一个内切圆,那么我们可以计算得出,圆的面积与正方形面积之比为π/4。现在在正方形内随机生原创 2021-11-28 19:57:36 · 476 阅读 · 0 评论 -
2021SC@SDUSC-PALISADE(九)BGV的API分析
2021SC@SDUSCAPI分析之前我们详细分析了BGVRns方案的全过程,包括密钥的生成、加密、解密以及同态操作。本篇博客分析调用BGV方案的API。#include "palisade.h"using namespace lbcrypto;int main() { //Step 1 - 设置CryptoContext对象 // Set the main parameters // 设置明文的模数 int plaintextModulus = 65537; doubl原创 2021-11-23 17:37:42 · 468 阅读 · 0 评论 -
2021SC@SDUSC-PALISADE(八)Evaluation中的乘法评估
2021SC@SDUSC密文的乘法同态:由于密文的减法同态运算与加法同态运算类似,我们就不重复分析了,重点分析密文的乘法同态核心。函数的申明,返回一个密文对象,输入两个密文对象作为同态操作数template <class Element> // 返回一个密文对象,输入两个密文对象作为同态操作数Ciphertext<Element> LPAlgorithmSHEBGVrns<Element>::EvalMultCore( ConstCiphert原创 2021-11-18 14:54:00 · 165 阅读 · 0 评论 -
2021SC@SDUSC-PALISADE(七)Evaluation中的加法评估
2021SC@SDUSC照例先分析PALISADE库的特性,再讨论BVG方法。目录PlainTextEvaluation中的加法评估参考PlainTextPALISADE中使用明文(PlainText)表示未加密的内容。它实际上是PALISADE中支持的每种可能的纯文本编码的基类:【1】• PackedEncoding• CKKSPackedEncoding• CoefPackedEncoding• StringEncoding明文的用途:创建明文PlainText是通过调用适当的原创 2021-11-10 17:47:04 · 442 阅读 · 0 评论 -
2021SC@SDUSC-PALISADE(六)解密函数Decrypt
2021SC@SDUSC本节继续分析BGV的解密过程,解密过程的具体实现主要在bgvrns-impl.cpp内。目录1 PALISADE中的CryptoContext2 解密参考1 PALISADE中的CryptoContextPALISADE的核心的类是CryptoContext类,该类是提供所有 PALISADE 加密功能的类。PALISADE 实现中使用的所有对象均由CryptoContext类创建。【1】PALISADE对象的所有操作必须在相同的属于CryptoContext类的对象上进原创 2021-11-05 17:42:14 · 734 阅读 · 1 评论 -
2021SC@SDUSC-PALISADE(五)加密Encrypt
2021SC@SDUSC本节主要分析BGV的加密过程,加密过程的具体实现主要在bgvrns-impl.cpp内。大致从700行开始。开始前我们需要先了解PALISADE的元素格式一 PALISADE元素类型从palisade_manual.pdf的7.1节与7.13节中,我们了解到:7.1 TypeingAll PALISADE operations are strongly typed. A Plaintext that is passed to encrypt will create a C原创 2021-10-30 15:54:11 · 594 阅读 · 0 评论 -
2021SC@SDUSC-PALISADE(四)密钥生成KeyGen
通过前面的三篇博客,我们已经对BGV方案有了初步的认知,从这篇博客开始就进入了我们的源码分析模块了,本篇博客重点分析的是bgvrns.cpp的密钥生成模块——KeyGen。bgvrns.cpp源文件实现了Brakerski-Gentry-Vaikuntanathan方案的Residue Number System (RNS)的变体。 KeyGen模块在源文件的开头部分:template <class Element...原创 2021-10-18 16:25:39 · 582 阅读 · 0 评论 -
2021SC@SDUSC-PALISADE(三)BGV原理分析与python实现
2021SC@SDUSC目录BGV原理分析1 符号说明2 多项式运算3 Learning With Error 与 Ring Learning With Error4 构建一个全同态体系4.1 Key Generation4.2 Encryption4.3 Decryption4.4 Evaluation4.4.1 Addition4.4.2 Multiplication5 测试代码BGV原理分析摘要:这篇博文旨在解释当今大多数同态加密(HE)方案背后的基本数学概念,然后在此基础上使用Python从头原创 2021-10-10 16:23:31 · 2456 阅读 · 2 评论 -
2021SC@SDUSC-PALISADE(二)全同态与格密码
本博客包含自己学习的目录1 古典加密技术1.1 移位密码1.2 代换密码1.3 仿射密码1.4 维吉尼亚密码1.5 希尔密码1.6 置换密码2 Shannon理论2.1 评价密码体制安全性一个密码体质可以用数学语言定义:下面介绍几个古典加密技术:1 古典加密技术1.1 移位密码介绍移位密码前先了解以下知识:模N同余:假设a、b进行模m运算(mod m)得到的余数相同,就可以定义“a与b模m同余”Zm表示集合{0,1,...,m−1} Z_m表示集合\{0,1,...,m-1\}原创 2021-09-29 19:48:14 · 956 阅读 · 1 评论 -
2021SC@SDUSC-PALISADE(一)环境安装与项目的创建
2021SC@SDUSC总览2 克隆项目仓库3 环境的构建4 测试用例5 错误解决方案5.1 fatal: unable to access 'https://github.com/xxx/autowrite.git/': OpenSSL SSL_read: Connection was reset, errno 100545.2 fatal error: cereal/cereal.hpp: No such file or directory5.3 error while loading shared原创 2021-09-27 18:17:20 · 1736 阅读 · 9 评论