隐私计算及密码学基础
文章平均质量分 84
Mr.zwX
2019年进入电子科技大学接触计算机(机器学习/深度学习(CV、NLP、GNN)、时空数据挖掘、一点点前后端开发),2022年在电子科技大学实验室科研,2023年在复旦大学NLP组实习,2023年9月至今,在北京大学人工智能研究院科研(模型加速/压缩、隐私计算)...保持努力,anyway,这个平台是我记录一些乱七八糟计算机笔记的地方,供(记性不好的)自己复习,同时也分享给大家。如需联系:请发邮件至wenxuan225@qq.com
展开
-
【隐私计算】安全多方计算MPC中的高效三角函数计算
其中,四项都可以在client和server端本地(local)计算,不带来任何通信开销。唯一的通信开销来自两次乘法,需要双方通过不经意传输(OT)共同计算。最后加法也是本地完成,不带来任何通信开销。隐私计算中的非线性函数很难算,或者开销很大。三角函数更是如此,Squirrel文章中提出了一种高效的计算方式,感觉可以作为一种通用优化方案。原创 2024-09-14 00:26:34 · 737 阅读 · 0 评论 -
对模拟出来的网络环境进行检查
之前记录了一篇用throttle.sh脚本实现对不同带宽和网速的网络环境模拟(),这里再记录一下如何验证当前带宽和网速是预期的样子。原创 2024-08-15 13:57:25 · 224 阅读 · 0 评论 -
【密码学基础】基于LWE(Learning with Errors)的全同态加密方案
sk和pk相乘得到2e(KeyGen时满足的条件),然后和r做内积得到一个很小的偶数噪声,最终的结果就是m+很小的偶数噪声,于是通过mod 2就能将噪声消除,得到解密结果m。到这里,通过LWE实现了很小深度的同态乘法和加法计算,key switching则是对每层用新的密钥,但是随着计算深度加深,噪声的扩大是爆炸性的,因此还不是一个levelled FHE(能计算指定深度的FHE)。)时,pk和pk乘r都是伪随机的。加密用的公钥pk,r是一个只包含0或1的随机向量,m是待加密的信息(放在向量的最低位上)。原创 2024-07-08 19:26:46 · 1048 阅读 · 1 评论 -
【密码学基础】对随机不经意传输(Random Oblivious Transfer)的理解
ROT在offline阶段生成大量的OT对,在online阶段通过one-pad方式高效加密,并且只需要简单的异或运算就能实现OT过程(去随机化)。在ROT中,有一个关键点是:需要考虑offline阶段的选择比特和online阶段的选择比特之间的关系,从而得到不同的加密构造方式。原创 2024-07-01 18:02:13 · 256 阅读 · 0 评论 -
【隐私计算】对SIMD编码的粗浅理解
将单个数编码到一个N阶(N项)多项式中,多项式系数的利用率极低。而在神经网络中,我们需要计算的东西往往是一个很大的矩阵/tensor,并非不是单个数。所以需要打包编码技术(packing)将很多数同时编码到同一个多项式中,来提高多项式系数的利用率。SIMD指的是把一系列数通过中国剩余定理(CRT)打包(pack)到同一个多项式中,使一次多项式乘法计算可以完成多次明文乘法。系数编码可以参考Cheetah的做法,Cheetah自定义了一套编码规则,使多项式相乘后的结果多项式中的一些系数正好是需要的卷积结果。原创 2024-06-28 14:34:45 · 938 阅读 · 0 评论 -
快速数论变换NTT学习笔记
数论变换(number-theoretic transform, NTT)是离散傅里叶变换(DFT)在数论基础上的实现。NTT是一种计算卷积的快速算法,FFT也是其中一种。但是FFT具有一些实现上的缺点,举例来说,向量必须乘上复数系数的矩阵进行处理,而且每个复数系数的实部和虚部是一个正弦及余弦函数,因此大部分的系数都是浮点数,也就是说,必须做浮点复数运算,计算量会比较大,并且浮点数运算产生的误差会比较大。NTT解决的是多项式乘法带模数的情况,受到模数的限制,数也比较大。原创 2024-01-25 13:17:08 · 1295 阅读 · 0 评论 -
快速傅立叶变换FFT学习笔记
FFT(Fast Fourier Transformation) 是离散傅氏变换(DFT)的快速算法,即快速傅氏变换。FFT使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。FFT可以将多项式乘法的复杂度从On2降到Onlogn。下图是FFT的整体计算流程,FFT变换的复杂度为Onlogn,FFT域上的pointwise乘法的复杂度为On,逆FFT变换的复杂度为Onlogn,总体复杂度为On。原创 2024-01-21 23:09:14 · 1308 阅读 · 0 评论 -
【隐私计算】tf-encrypted隐私计算框架/库基础
make build编译到最后可能出现如下问题:原因就是系统中g++的版本过低,需要升级,以至少支持g++14版本。原创 2023-12-13 01:29:57 · 779 阅读 · 0 评论 -
【密码学基础】Diffie-Hellman密钥交换协议
Diffie-Hellman密钥协议算法是一种确保共享密钥安全穿越不安全网络的方法。这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥,然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议双方确定要用的密钥后,要使用其他对称密钥操作加密算法实际加密和解密消息。原创 2023-12-10 10:20:29 · 2634 阅读 · 0 评论 -
【隐私计算】安全三方计算(3PC)协议
由此可见,3PC和2PC都在本地计算加法,他们最大的不同就是乘法:在2PC乘法中,交叉项需要借助OT或HE计算,带来巨大的通信或计算开销;而基于复制秘密分享的3PC乘法完全在本地计算交叉项,无需通信,在re-sharing时需要少量的通信。ABY3中采用replicated secret sharing(复制秘密分享)机制,即2-out-of-3秘密分享,三个参与方的每一方都拥有share中的两份。下面来看一下这样做有什么好处。原创 2023-12-05 22:43:39 · 1409 阅读 · 0 评论 -
【隐私计算】VOLE (Vector Oblivious Linear Evaluation)学习笔记
近年来,VOLE(向量不经意线性评估)被用于构造各种高效安全多方计算协议,具有较低的通信复杂度。最近的CipherGPT则是基于VOLE对线性层进行计算。原创 2023-11-30 15:00:17 · 2346 阅读 · 5 评论 -
【隐私计算】算术秘密分享的加法和乘法运算(Beaver Triple预处理)
在安全多方计算中(MPC)中,算术秘密分享是最基础的机制。一直有在接触,但是一直没有整理清楚最基础的加法和乘法计算流程。原创 2023-11-29 22:55:51 · 2056 阅读 · 0 评论 -
【密码学基础】半/全同态加密算法基础学习笔记
这个过程就是同态函数D来实现的,D是密文空间中的同态解密算子,即用加密的私钥sk解密密文ct,得到加密的明文Enc(m),也就是密文ct本身。随机多项式e是服从高斯分布,大概率是非常小的,所以解密是可以被四舍五入掉(比如示例中的0.15x^2和0.04两项)。本质上,Bootstrapping的过程就是从密文ct到ct的变化,特别之处就是中间存在一步同态解密过程,消除了(累积的)噪声。定义:能在加密的数据上进行任意数量的加法和乘法运算的加密算法,使得密文计算结果解密后与明文直接计算结果相同。原创 2023-07-03 22:18:46 · 3559 阅读 · 2 评论 -
【密码学基础】混淆电路(Garbled Circuit)
Alice和Bob完成上述的通信后(Alice替换真实值发给Bob,Bob从Alice手里取到对应替换值,Alice将混淆表发给Bob),Bob尝试进行电路解密。给Alice,Alice知道替换值与原始值的替换关系,所以可以快速替换回真实值,并且可以将最终的真实结果分享给Bob。中的其一,并且Alice无从知晓Bob到底取走了哪个,从而无法知道Bob手里的真实值是多少。使用这两个值,对混淆表进行对称密钥解密,最终,只有第3行是可以解密出结果的!随后,Alice也将混淆表发送给Bob进行后续的计算。原创 2022-12-12 18:43:12 · 5364 阅读 · 5 评论 -
【隐私计算】SIRNN: A Math Library for Secure RNN Inference
Paper: SIRNN: A Math Library for Secure RNN InferenceCode: https://github.com/mpc-msri/EzPC.2PC在整数上运算比在浮点数上运算更高效,在定点运算数中,⌊r2s⌋mod2l\lfloor r2^s\rfloor mod 2^l⌊r2s⌋mod2l,其中lll就是bitwidth,sss是scale。安全参数:λ=128\lambda=128λ=128基于4种构造块:(1)Extension(扩展)Z2m→Z2n原创 2022-12-01 01:32:45 · 1368 阅读 · 0 评论 -
【密码学基础】RSA加密算法
不能太小,如果他们足够大,那么根据目前的计算机技术和其他工具,至今也没能从。足够大(1024足够),基本上不可能从公钥信息推出私钥信息。最大公因数为1(互质),因此保证step 4生成解密密钥。首先选取两个互为质数的数。也就是说,只要密钥长度。根据欧拉函数,不大于。原创 2022-11-29 17:51:00 · 16425 阅读 · 0 评论 -
【密码学基础】Oblivious Transfer(不经意传输)
头一次开始学密码学相关的东西,未来的主要研究方向包括了隐私计算,即隐私保护下的机器学习算法。原创 2022-11-28 17:40:48 · 4301 阅读 · 3 评论