自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (6)
  • 收藏
  • 关注

原创 CKKS自举笔记(CKKS Bootstrapping)

简单介绍18年CKKS自举的文章思路,以及后续22年的优化。其中包括同态矩阵乘法的操作以及同态旋转(rotation)的过程。

2023-03-02 10:35:10 4145 13

原创 全同态加密知识体系整理

文章由AdijeShen整理,供个人学习使用。整理了到2022年为止,同态加密比较重要的知识和方法。我将现代的FHE技术视作两类,一种是基于RLWE的层次同态加密(LHE),包括了BGV,BFV和CKKS,这种方案一般来说支持多项式打包技术,可以一次性运算(加法乘法)多个数据,效率上较高,但LHE目前来说Bootstrapping开销比较大,一般来说只当作支持有限次数的运算的同态加密方法使用。而第二类技术以FHEW和TFHE为代表的高效自举(Bootstrapping)技术,但问题在于这类的方案对于多项式打

2022-07-26 17:47:29 7885 7

原创 BGV方案简介(同态加密)

BGV方案是同态加密目前比较流行的技术之一(BGV,BFV,CKKS,TFHE,FHEW),作为2012年发表的论文,提出了modulus switching的概念,Keyswitching。可以做到层级的同态加密。目前来说BGV也是一个比较可靠的整数上的同态加密方案,且支持SIMD,整体的效率还不错...

2021-12-06 14:14:42 18848 18

原创 量子随机预言机(QROM)是什么?

本文介绍随机预言机模型(Random Oracle Model-ROM)与量子随机预言机模型(Quantum ROM-QROM),通过举例说明它们的用途和缺陷。最后证明 QROM 与 ROM 一样是一种不健全的模型,但不妨碍我们在证明中使用它们。

2023-10-10 19:35:43 719

翻译 椭圆曲线介绍(四):椭圆曲线安全性,与RSA对比

虽然我们讨论了几个方法,他们并不能很有效地破解椭圆曲线的离散对数问题。但不代表这些算法完全不可行,也许可以继续做优化,比如硬件上面的突破。虽然目前没有离散对数问题的有效解决方法,但不代表未来不会有。...

2022-07-29 18:19:35 1217

翻译 椭圆曲线介绍(三):椭圆曲线密码学,ECDH和ECDSA

本文是椭圆曲线介绍中的第三篇:ECDH和ECDSA。在之前的博客中已经说明了椭圆曲线是什么,并证明了椭圆曲线作为群的性质。然后我们将椭圆曲线限定到有限域中。通过这种限制,椭圆曲线中的点可以生成循环子群。后面又介绍了base point,order,cofactor这些术语的概念。最后提出了椭圆曲线上面的离散对..........

2022-05-15 16:04:54 3191

翻译 椭圆曲线介绍(二):整数域上面的椭圆曲线以及离散对数问题

介绍了整数域的椭圆曲线的概念,以及当中的乘法子群,cofactor等概念。

2022-04-23 17:02:37 1281

原创 PLONK电路如何构造,PLONK例子

PlonK : Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge。零知识证明协议Plonk(PLONK)的个人笔记,主要讲了 copy constraint 和gate constraint如何构造。

2022-03-08 15:41:19 1815 12

原创 SNARK超详细解释,从GGPR13到Groth16

初学零知识证明,准备从SNARK开始入手,还是自己做个整理会印象深刻一些。细节我还没有深究,目前看来GGPR13是最先提出SNARK这个框架的工作,而Groth16则是目前效率表现最好的SNARK方案。话说Craig Gentry大佬也太牛了吧,搞不止是全同态加密的鼻祖,这边SNARK的提出原来也有他的关系啊。

2021-12-31 10:52:42 6436 7

翻译 椭圆曲线介绍(一):实数上面的椭圆曲线

简单介绍了密码学上ECC,椭圆曲线的基本性质,以及使用python绘制椭圆曲线和进行椭圆曲线上计算的方法。

2021-12-24 17:23:43 2919

原创 零知识证明从0到1,ZK简介

梳理了ZK的基本概念,给出了Completeness,Soundness,Zero-knowledgeness的定义和证明方法。整理SNARK的框框;BulletProof、SNARK、STARK的区别;ZK如何给区块链做扩容。

2021-12-21 15:35:15 12962

原创 关于FFT ButterFly做完之后为什么是bitreversal order的

关于ButterFly做完之后为什么是bitreversal order的FFT的算法是将多项式拆为两半,偶数和奇数部分,分别记为Pe,PoP_e,P_oPe​,Po​。butterfly的计算过程为Pe+Po,w(Pe−Po)P_e +P_o, w(P_e-P_o)Pe​+Po​,w(Pe​−Po​),而这个过程又是递归的。所以考虑这样的过程:0,1,2,3,4,5,6,7order by even and odd0,2,4,6,1,3,5,7order&nb

2021-12-17 16:57:54 675

原创 群环域,理想商环,原根复习

包含了抽象代数里面的一些概念,最近看文章的时候一直反映不过来,理想是个啥来着,环和域的区别是啥来着。所以统筹整理一下。集合/(Set):一个集合GGG表示一组数据有限集合:G={a1,a2,...,an},∣G∣=nG=\{a_1,a_2,...,a_n\},|G|=nG={a1​,a2​,...,an​},∣G∣=n无穷集合:G={a1,a2,...},∣G∣=∞G=\{a_1,a_2,...\},|G|=\infinG={a1​,a2​,...},∣G∣=∞一个班级的所有学生半群/(Mo

2021-12-10 16:10:38 1156 3

原创 在RNS表示下如何做BGV的modulus switching

介绍了如何在RNS表示下进行BGV的modulus switching操作。

2021-11-18 16:29:23 1255 3

原创 随便写写的残差神经网络笔记

这里可能用很多错误内容,不建议阅读,我最近在看Residual Neural Network,以前对NN都不太了解。只是写一下加强印象。文章目录NN学习笔记(Neural Network)NN的框框符号表示逻辑回归损失函数梯度下降向量化(numpy)加速残差神经网络Residual BlockNN学习笔记(Neural Network)NN的框框图1 不同的NN模型图示(标准神经网络,卷积神经网络,循环神经网络)标准的NN一般用于做预测,CNN一般用于图像识别,RNN一般用于处理一维数据(时序数

2021-11-18 16:25:49 849

原创 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 8736 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 2884

原创 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 2277 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 1915 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 6518 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 4428

原创 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​}∈Zqi​k​,其中a0≡A mod q0,a1≡A mod q1,⋯ ,ak≡A

2021-07-27 21:11:50 5566

转载 ubuntu安装gcc-5,g++-5

sudo vim /etc/apt/sources.list加入以下两行deb http://dk.archive.ubuntu.com/ubuntu/ xenial maindeb http://dk.archive.ubuntu.com/ubuntu/ xenial universe回到命令行sudo apt updatesudo apt install g++-5 gcc-5

2021-07-21 17:31:56 447

原创 同态加密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 29281 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 887 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 4669 1

原创 在cmake环境下使用NTL库

NTL是一个高性能、可移植的C++库,为任意长度的整数、整数和有限域上的向量、矩阵和多项式,以及任意精度的浮点运算提供数据结构和算法。在linux下的安装方法可参考 https://libntl.org/doc/tour-unix.html安装成功后,创建一个cmake工程mkdir hellontlcd hellontltouch hello.cpptouch CMakeLists.txt在hello.cpp中添加如下语句:#include <iostream>#inclu

2021-04-08 16:56:18 568

原创 使用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 1326 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 2462 5

原创 Paillier解密正确性[Paillier密码体制]

文章目录Public-Key Cryptosystems Based on Composite Degree Residuosity Classes摘要Carmichael函数确定合数剩余(Deciding Composite Residuosity)计算合数剩余度类Paillier加密Public-Key Cryptosystems Based on Composite Degree Residuosity Classes原论文链接:http://link.springer.com/10.1007/3

2020-09-10 16:49:18 2757 4

原创 Carmichael function[卡迈克尔函数相关性质]

文章目录Carmichael functionCarmichael function在数论中,Carmichael函数的定义为使得am≡1( mod n)a^{m} \equiv 1 (\bmod n)am≡1(modn)成立的最小正整数mmm,其中(a,n)=1(a,n)=1(a,n)=1,记作λ(n)\lambda(n)λ(n)。在抽象代数术语中,λ(n)\lambda(n)λ(n)是模nnn的乘法群的指数。Lab@Shanghai...

2020-09-10 10:56:27 3415 4

原创 欧拉定理数学证明[来自信息安全数学基础第二版]

文章目录欧拉定理的证明前提知识欧拉定理:证明:欧拉定理的证明前提知识(a,b)(a,b)(a,b)符号表示aaa与bbb的最大公因数,若(a,b)=1(a,b)=1(a,b)=1,则aaa与bbb互素φ(m)\varphi(m)φ(m)是指[1,m][1,m][1,m]中与m互素的数的个数。[1,m][1,m][1,m]中所有与mmm互素的数构成模mmm的简化剩余系。若mmm是一个正整数,aaa是满足(a,m)=1(a,m)=1(a,m)=1的数,若集合K={k1,k2,...kφ(m)}K=\

2020-09-08 20:02:11 705

原创 latex中bib引用顺序不正确,引用顺序和正文不一致怎么办?

遇到好几次了,每次都要重新去搜答案,自己写一个长长记性。一般来说,引用bib格式的参考文献时,会这么写:\bibliographystyle{plain}\bibliography{%filename%.bib}而plain的意思是用作者的姓名排序,而不是按照引用顺序,所以推荐改成\bibliographystyle{unsrt}按照bib中出现顺序来排序...

2020-07-03 16:37:33 32655 18

原创 概率算法/重合指数法 破解凯撒偏移密码

//作者-生化,用于密码学基础作业- -package Algorithms;import java.util.ArrayList;import java.util.List;import java.lang.Math;;public class ShiftCiper { public static void satitisticalAnalysis() { Stri...

2017-09-16 22:44:41 1828

david harvey NTT

We show how to improve the efficiency of the computation of fast Fourier transforms over F_p where p is a word-sized prime. Our main technique is optimisation of the basic arithmetic, in effect decreasing the total number of reductions modulo p, by making use of a redundant representation for integers modulo p. We give performance results showing a significant improvement over Shoup's NTL library.

2021-11-18

一次同余式计算器/一次同余式计算小工具

求解一次同余式的小工具,附带详细过程,界面比较粗糙。 主要功能为计算ax = b mod c的x值,是一个可以直接运行的exe。

2019-09-23

欧几里得除法/辗转相除法源码

欧几里得除法的源码,其中是我在学习网络安全数学期间编写的欧几里得除法/辗转相除法计算器。 也就是根据两个互素的整数a和b,通过辗转相除法算出两个整数s,t,使得sa+tb=1。

2019-09-23

欧几里得计算器/辗转相除法计算器(带过程)

一个小小的exe文件,其中是我在学习网络安全数学期间编写的欧几里得除法/辗转相除法计算器。 也就是根据两个互素的整数a和b,通过辗转相除法算出两个整数s,t,使得sa+tb=1。

2019-09-23

WPF实现的Revit带预览功能插件源码

WPF实现的Revit带预览功能插件的压缩包,可以直接导入visual studio使用

2017-08-18

用JAVA实现Solovay-Strassen素性检验

基于jdk1.8实现的Solovay-Strassen素性检验,是课程作业,作者Adije

2017-06-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除