同态加密
文章平均质量分 82
AdijeShen
密码学入门中,/wiːtʃæt/:shenghua-adije
展开
-
CKKS自举笔记(CKKS Bootstrapping)
简单介绍18年CKKS自举的文章思路,以及后续22年的优化。其中包括同态矩阵乘法的操作以及同态旋转(rotation)的过程。原创 2023-03-02 10:35:10 · 4367 阅读 · 13 评论 -
全同态加密知识体系整理
文章由AdijeShen整理,供个人学习使用。整理了到2022年为止,同态加密比较重要的知识和方法。我将现代的FHE技术视作两类,一种是基于RLWE的层次同态加密(LHE),包括了BGV,BFV和CKKS,这种方案一般来说支持多项式打包技术,可以一次性运算(加法乘法)多个数据,效率上较高,但LHE目前来说Bootstrapping开销比较大,一般来说只当作支持有限次数的运算的同态加密方法使用。而第二类技术以FHEW和TFHE为代表的高效自举(Bootstrapping)技术,但问题在于这类的方案对于多项式打原创 2022-07-26 17:47:29 · 8154 阅读 · 8 评论 -
BGV方案简介(同态加密)
BGV方案是同态加密目前比较流行的技术之一(BGV,BFV,CKKS,TFHE,FHEW),作为2012年发表的论文,提出了modulus switching的概念,Keyswitching。可以做到层级的同态加密。目前来说BGV也是一个比较可靠的整数上的同态加密方案,且支持SIMD,整体的效率还不错...原创 2021-12-06 14:14:42 · 19240 阅读 · 18 评论 -
在RNS表示下如何做BGV的modulus switching
介绍了如何在RNS表示下进行BGV的modulus switching操作。原创 2021-11-18 16:29:23 · 1283 阅读 · 3 评论 -
CKKS的Encoding(CKKS方案的编码部分的笔记)
文章目录为什么会有这篇文章快速傅里叶变换(FFT)FFT思路如何加速系数多项式到点值类型多项式的运算?如何做逆运算?即从点值多项式变为系数多项式CKKS Encoding思路通过IFFT构造简单的Encode为什么会有这篇文章在我参与工作的时候,这边就已经把CKKS的源码都写好了,没有能够自己实现一遍,导致目前对CKKS的Encoding方法一知半解。于是趁着有空来梳理一下。首先看一下Daniel Huynh大佬的讲解,CKKS的上层框架。是将N/2N/2N/2个复数m∈CN/2m\in \mat原创 2021-11-18 15:48:54 · 8972 阅读 · 32 评论 -
分圆多项式 cyclotomic polynomial
翻译自维基百科数学上将第nnn个分圆多项式写作Φn(X)\Phi_n(X)Φn(X)。定义为:对于任意正整数nnn,Φn(X)\Phi_n(X)Φn(X)是一个不可约的首一多项式,满足Φn(X)∣xn−1\Phi_n(X)|x^n-1Φn(X)∣xn−1,任意k<nk<nk<n,Φn(X)∤xk−1\Phi_n(X) \nmid x^k-1Φn(X)∤xk−1。且这个多项式的根都是单位根e2iπkne^{2i \pi \frac{k}{n}}e2iπnk,所以这个多项式可以原创 2021-10-14 14:28:17 · 2989 阅读 · 0 评论 -
TFHE中的几个算法
TFHE中的几个算法文章目录TFHE中的几个算法个人总结:外积RGSWDecomp外积与内积对比KeySwitchPublicKeySwitchPrivateKeySwitch对比Gate BootstrappingCircuit Bootstrapping个人总结:关于TFHE的话其实大概的思路就是优化了FHEW当中Refresh算法里面的ACC计算,把原来的RGSW⊠RGSW→RGSW{\sf RGSW} \boxtimes {\sf RGSW}\to{\sf RGSW}RGSW⊠RGSW→RGS原创 2021-10-14 10:41:02 · 2343 阅读 · 2 评论 -
TFHE拓展:Programmable Bootstrapping
Improved Programmable Bootstrapping with Larger Precision and Efficient Arithmetic Circuits for TFHE(对TFHE优化的可编程同态刷新的方案,拥有高精度和高效率)索引Improved Programmable Bootstrapping with Larger Precision and Efficient Arithmetic Circuits for TFHE(对TFHE优化的可编程同态刷新的方案,拥有高原创 2021-10-11 16:22:43 · 1985 阅读 · 9 评论 -
FHEW阅读笔记
FHEW: Bootstrapping Homomorphic Encryption in Less Than a Second作者: Leo Ducas1, Daniele Micciancio2.摘要目前所有FHE方案主要的瓶颈在于Gentry的Bootstrapping操作。在之前2014年HElib of Halevi and Shoup中,一次Bootstrapping操作需要6分钟3。我们发现了一种新的方法来刷新密文的噪声,在个人机器上只要半秒。引言我们的工作这篇文章考虑了1bit密原创 2021-08-09 17:45:01 · 6636 阅读 · 23 评论 -
(阅读笔记)同态加密和安全多方计算结合做逻辑回归
文章目录Efficient Privacy Preserving Logistic Regression Inference and Training引论动机贡献系统模型预备知识逻辑回归同态加密安全多方计算:两方加法秘密共享主要技术内积(针对向量内积的HE打包)矩阵-向量乘法[^1]系数提取MPC和HE的混合模型MPC中模数和缩放倍数替换HE和MPC转换MPC PBoot(Protocol based bootstrapping)协议使用Hybrid Model做逻辑回归的训练和预测预测训练实验结果思考我觉原创 2021-08-03 17:16:24 · 4502 阅读 · 0 评论 -
RNS (Residue Number System) 剩余数系统
RNS(Residue Number System)介绍目前RNS并没有一个正式的中文名,若有,请各位大佬指正。简介简而言之,剩余数系统就是将一个大一点的数A∈ZQA\in \mathcal{Z}_QA∈ZQ,用好几个小一点的数来表示:A←{a0,a1,...,ak}∈Zqik,A\gets \{a_0,a_1,...,a_k \}\in \mathcal{Z}_{q_i}^k,A←{a0,a1,...,ak}∈Zqik,其中a0≡A mod q0,a1≡A mod q1,⋯ ,ak≡A原创 2021-07-27 21:11:50 · 5765 阅读 · 0 评论 -
同态加密BGV与BFV方案对比与梳理
Revisiting Homomorphic Encryption Schemes for Finite Fields文章目录Revisiting Homomorphic Encryption Schemes for Finite Fields摘要引言修改BFV方案BFV优化方法BGV优化及可用性提升效率比较结果背景知识初始BGV方案GHS优化初始BFV方案RNS表示RNS混合密钥替换优化BFV方案噪声减少改良乘法实现缩小模数扩张QPQPQP:分层BFV乘法:优化HPS RNS variant解密更加实用原创 2021-07-19 17:37:16 · 29465 阅读 · 9 评论 -
On-the-fly multiparty computation on the cloud via multikey fully homomorphic encryption
文章目录摘要引言NTRU加密方案正确性多密钥同态性初步噪声分析安全性多密钥同态加密定义从FHE到MKHE的通用构造方法构造方法概览形式化定义:来自STOC2012的论文。算是第一篇关于多密钥全同态加密的文章。摘要我们提出了一个由计算能力强但不被信任的 "云 "服务器辅助的安全多方计算的新概念。在这个概念中,我们称之为实时多方计算(on-the-flyMPC),云可以非交互式地对属于实时选择的任意用户组的数据进行任意的、动态选择的计算。所有用户的输入数据和中间结果都受到保护,不会被云和其他用户窥视。这就原创 2021-06-23 17:07:55 · 898 阅读 · 3 评论 -
阿里PEGASUS笔记:PEGASUS : Bridging Polynomial and Non-polynomial Evaluations in Homomorphic Encryption
PEGASUS : Bridging Polynomial and Non-polynomial Evaluations in Homomorphic Encryption摘要:同态加密(HE)被认为是保护隐私应用的最重要的原语之一。然而,在加密数据上评估多项式和非多项式函数的有效方法仍然缺乏,这阻碍了同态加密在现实生活中的应用。为了解决这个问题,我们提出了一个实用框架PEGASUS。PEGASUS可以在打包的CKKS密码文和FHEW密码文之间有效地来回切换,而无需解密,使我们可以在CKKS方面有效地评原创 2021-05-13 13:38:47 · 4721 阅读 · 1 评论 -
使用Visual Studio在Windows下安装SEAL3.6,并使用cmake写一个小例子
依赖项:cmake先安装cmake https://cmake.org/download/注意添加到PATH下载Ninjahttps://github.com/ninja-build/ninja/releases将ninja.exe放入cmake/bin中 (我的目录为C:\Program Files\CMake\bin)下载SEAL库git clone https://github.com/microsoft/SEAL.git安装Visual Studio 2019下载在Instal原创 2021-04-05 21:31:17 · 1346 阅读 · 1 评论 -
Linux/Ubuntu安装SEAL3.6
Microsoft SEALUbuntu下安装采用Virtualbox, Ubuntu20.04。如果后面报错请优先考虑是否是linux版本过老导致apt-get下载的依赖包版本过久。打开终端安装依赖项sudo apt-get install clangsudo apt-get install cmakesudo apt-get install gccsudo apt-get install g++sudo apt-get install gitsudo apt-get install原创 2021-04-04 13:30:58 · 2531 阅读 · 5 评论