联邦学习:加密算法Paillier,Affine,IterativeAffine
本文介绍联邦学习中用到的几种加密算法的实现过程,不涉及原理。
1.知识准备
这里要首先介绍加密算法牵扯到的几个基础知识,简单介绍,不讲原理,方便后续理解。
1.1 同态加密
同态加密的概念:对加密后的数据进行特定形式的代数运算,对运算结果进行解密,得到的结果和对原数据进行相同的代数运算得到的结果相同。换言之,用户可以不经过解密,直接对密文进行运算,而不影响最终的结果。
1.2 乘法逆元
不是倒数!
1.2.1 线性同余方程
介绍乘法逆元之前,还要先介绍一下线性同余方程:
ax≡b(modn)\large ax\equiv b\; (\mod n) ax≡b(modn)
所谓同余,即,ax/nax/nax/n得到的余数和b/nb/nb/n得到的余数相等。
方程有解的充要条件为,b能够被a与n的最大公约数整除(a与n的最大公约数记为gcd(a,n)\gcd(a,n)\,gcd(a,n))
1.2.2 乘法逆元
乘法逆元定义为:
ax≡1(modn)解x为a的乘法逆元,记为a−1,\large ax \equiv 1\;(\mod n)\\ 解x为a的乘法逆元,记为a^{-1}, ax≡1(modn)解x为a的乘法逆元,记为a−1,
即ax除n的余数为1。
a在模n的条件下,存在乘法逆元的充分必要条件为a与n互质,及gcd(a,n)=1\gcd(a,n)=1gcd(a,n)=1。
1.2.2.1 乘法逆元的求解
1.循环求解,挨个试。
2.费马小定理。费马小定理定义:a与n为质数,则an−1/n=1,所以,a−1=an−2a^{n-1}/n=1,所以,a^{-1}=a^{n-2}an−1/n=1,所以,a−1=an−2
3.等等。
1.3 剩余系和简化剩余系
- 剩余系:一个数模n所得的余数域,称为剩余系,记为Zn,例如:Z6={1,2,3,4,5}\mathbb{Z}_n,例如:\mathbb{Z}_6=\{1,2,3,4,5\}Zn,例如:Z6={1,2,3,4,5}。
- 简化剩余系,一个数模n所得的余数域中与n互质的余数所组成的余数域,称为简化剩余系,记为Zn∗,例如:Z6∗={1,5}\mathbb{Z}_n^*,例如:\mathbb{Z}_6^*=\{1,5\}Zn∗,例如:Z6∗={1,5}。
【注】剩余系和剩余类不同,剩余类是对整数进行的重新归类,这里我们记作Zn+,例如:Z6+={[1]6,[2]6,[3]6,[4]6,[5]6},其中[1]6为所有模6余数为1的数集,[1]6={1,7,13...}\mathbb{Z_n^+},例如:\mathbb{Z_6^+}=\{[1]_6,[2]_6,[3]_6,[4]_6,[5]_{6}\},其中[1]_6为所有模6余数为1的数集,[1]_6=\{1,7,13...\}Zn+,例如:Z6+={[1]6,[2]6,[3]6,[4]6,[5]6},其中[1]6为所有模6余数为1的数集,[1]6={1,7,13...}。
2.Paillier encryption
2.1 计算过程
Paillier通过公钥对明文进行加密,使用密钥对密文进行解密。其运算过程如下:
【注】:我们用amodb来表示a模b的运算a\mod b来表示a模b的运算amodb来表示a模b的运算
①:选取随机大素数p、q,p、q满足条件gcd(pq,(p−1)(q−1))=1,gcd()为求最大公约数函数;①:选取随机大素数p、q,p、q满足条件gcd(pq,(p-1)(q-1))=1,gcd()为求最大公约数函数;①:选取随机大素数p、q,p、q满足条件gcd(pq,(p−1)(q−1))=1,gcd()为求最大公约数函数;
②:设n=pq,λ=lcm(p−1,q−1),lcm()为求最小公倍数函数;②:设n=pq,\lambda=lcm(p-1,q-1),lcm()为求最小公倍数函数;②:设n=pq,λ=lcm(p−1,q−1),lcm()为求最小公倍数函数;
③:设L(x)=x−1n;③:设L(x)=\frac{x-1}{n};③:设L(x)=nx−1;
④:选取随机数g,g<n2,g∈Zn2∗,我们选g=n+1,g还要满足L(gλmod(n2))在模n的条件下存在乘法逆元④:选取随机数g,g<n^2,g\in\mathbb{Z_{n^2}^*},我们选g=n+1,g还要满足L(g^\lambda\mod(n^2))在模n的条件下存在乘法逆元④:选取随机数g,g<n2,g∈Zn2∗,我们选g=n+1,g还要满足L(gλmod(n2))在模n的条件下存在乘法逆元
⑤:μ=(L(gλmod(n2))−1modn,即μ为L(gλmod(n2))在模n条件下的乘法逆元。⑤:\mu=(L(g^\lambda\ mod(n^2))^{-1}\mod n,即\mu为L(g^\lambda\mod(n^2))在模n条件下的乘法逆元。⑤:μ=(L(gλ mod(n2))−1modn,即μ为L(gλmod(n2))在模n条件下的乘法逆元。
⑥:生成公钥(n,g);⑥:生成公钥(n,g);⑥:生成公钥(n,g);
⑦:生成密钥(λ,μ);⑦:生成密钥(\lambda,\mu);⑦:生成密钥(λ,μ);
⑧:选取随机数γ,γ∈Zn2∗,且γ<n,即γ与n互质。⑧:选取随机数\gamma,\gamma\in\mathbb{Z_{n^2}^*},且\gamma<n,即\gamma与n互质。⑧:选取随机数γ,γ∈Zn2∗,且γ<n,即γ与n互质。
⑨:根据明文m,计算密文c。c=gmγnmod(n2);⑨:根据明文m,计算密文c\,\text 。c=g^m\gamma^n\mod(n^2);⑨:根据明文m,计算密文c。c=gmγnmod(n2);
⑩:根据密文c,计算明文m。m=[L(cλmod(n2))∗μ]modn。⑩:根据密文c,计算明文m\, 。m=[L(c^\lambda\mod(n^2))*\mu]\mod n。⑩:根据密文c,计算明文m。m=[L(cλmod(n2))∗μ]modn。
2.2 示例
我们为了计算方便,就不生成大素数了,假设明文为11,对11进行加密和解密。
- 假设随机生成素数p=5,q=7,满足gcd(pq,(p−1)(q−1))=gcd(35,24)=1;假设随机生成素数p=5,q=7,满足\gcd(pq,(p-1)(q-1))=\gcd(35,24)=1;假设随机生成素数p=5,q=7,满足gcd(pq,(p−1)(q−1))=gcd(35,24)=1;
- n=pq=35,λ=lcm(4,6)=12;n=pq=35,\lambda=lcm(4,6)=12;n=pq=35,λ=lcm(4,6)=12;
- g=36;g=36;g=36;
- L(gλmod(n2))=L(3612mod(352))=421−135=12;L(g^\lambda\mod(n^2))=L(36^{12}\mod(35^2))=\frac{421-1}{35}=12;L(gλmod(n2))=L(3612mod(352))=35421−1=12;
- 12μ≡1(mod35)⟹μ=3;12\mu\equiv1(\mod 35)\implies \mu=3;12μ≡1(mod35)⟹μ=3;
- 公钥(n,g)=(35,36),密钥(λ,μ)=(12,3);公钥(n,g)=(35,36),密钥(\lambda,\mu)=(12,3);公钥(n,g)=(35,36),密钥(λ,μ)=(12,3);
- 选γ=3;选\gamma=3;选γ=3;
- 加密:密文c=gmγnmod(n2)=3611335mod(352)=327;密文c=g^m\gamma^n\mod(n^2)=36^{11}3^{35}\mod(35^2)=327;密文c=gmγnmod(n2)=3611335mod(352)=327;
- 解密:明文m=[L(cλmod(n2))∗μ]mod(n)其中,L(cλmod(n2))=[32712mod(352)]−135=27m=(27×μ)mod35=11。明文m=[L(c^\lambda\mod(n^2))*\mu]\mod(n)\\ 其中,L(c^\lambda\mod(n^2))=\frac{[327^{12}\mod(35^2)]-1}{35}=27\\ m=(27\times\mu) \mod 35=11。明文m=[L(cλmod(n2))∗μ]mod(n)其中,L(cλmod(n2))=35[32712mod(352)]−1=27m=(27×μ)mod35=11。
3. Affine Homomorphic Encryption
仿射同态加密(Affine Homomorphic Encryption),通过映射来进行加密,仿射加密是线性变换,对字符型变量,可以将其映射为数值型变量。
3.1 计算过程
①:生成一个大的整数n;①:生成一个大的整数n;①:生成一个大的整数n;
②:生成大整数a、a−1、b,gcd(a,n)=1,a−1为a的乘法逆元;②:生成大整数a、a^{-1}、b,\gcd(a,n)=1,a^{-1}为a的乘法逆元;②:生成大整数a、a−1、b,gcd(a,n)=1,a−1为a的乘法逆元;
③:加密算法E(x)=(ax+b)modn;③:加密算法E(x)=(ax+b)\mod n;③:加密算法E(x)=(ax+b)modn;
④:解密算法D(x)=[a−1(E(x)−b)]mod(n);④:解密算法D(x)=[a^{-1}(E(x)-b)]\mod(n);④:解密算法D(x)=[a−1(E(x)−b)]mod(n);
3.2 示例
为计算方便,这里用简单的示例来演示, 假设明文为m={20,20,9,22}m=\{20,20,9,22\}m={20,20,9,22}。
- 生成大整数n=100;生成大整数n=100;生成大整数n=100;
- 生成大整数a=91,b=101,a−1=11;生成大整数a=91,b=101,a^{-1}=11;生成大整数a=91,b=101,a−1=11;
- 加密:密文c=(ax+b)mod100=(91x+101)mod100∣x∈m={21,21,20,3}密文c=(ax+b)\mod100=(91x+101)\mod100|_{x\in m}=\{21,21,20,3\}密文c=(ax+b)mod100=(91x+101)mod100∣x∈m={21,21,20,3}
- 解密:明文m=[a−1(x_−b)]modn=[11×(x_−101)]mod100∣x_∈c={20,20,9,22}明文m=[a^{-1}(x\_-b)]\mod n=[11\times(x\_-101)]\mod 100|_{x\_\in c}=\{20,20,9,22\}明文m=[a−1(x_−b)]modn=[11×(x_−101)]mod100∣x_∈c={20,20,9,22}
4. IterativeAffine Homomorphic Encryption
迭代仿射同态加密(IterativeAffine Homomorphic Encryption),通过迭代,对数据进行多次仿射加密。
4.1 计算过程
为计算方便,这里用简单的示例来演示, 假设明文为m={20,20,9,22}m=\{20,20,9,22\}m={20,20,9,22}。
①:生成r个大整数元组(a,a−1,n)①:生成r个大整数元组(a,a^{-1},n)①:生成r个大整数元组(a,a−1,n)
②:加密算法E(x)=Er(Er−1((...(E1(x)...)))②:加密算法E(x)=E_r(E_{r-1}((...(E_1(x)...)))②:加密算法E(x)=Er(Er−1((...(E1(x)...)))
③:解密算法D(x)=D1(D2((...(Dr(E(x))...)))③:解密算法D(x)=D_1(D_{2}((...(D_r(E(x))...)))③:解密算法D(x)=D1(D2((...(Dr(E(x))...)))
4.2 示例
emmm天黑了,对不起,上手了。
联邦学习:加密算法Paillier,Affine,IterativeAffine相关推荐
- 虚拟专题:联邦学习 | 联邦学习隐私保护研究进展
来源:大数据期刊 联邦学习隐私保护研究进展 王健宗, 孔令炜, 黄章成, 陈霖捷, 刘懿, 卢春曦, 肖京 平安科技(深圳)有限公司,广东 深圳 518063 摘要:针对隐私保护的法律法规相继出台,数 ...
- 联邦学习隐私保护研究进展
点击上方蓝字关注我们 联邦学习隐私保护研究进展 王健宗, 孔令炜, 黄章成, 陈霖捷, 刘懿, 卢春曦, 肖京 平安科技(深圳)有限公司,广东 深圳 518063 摘要:针对隐私保护的法律法规相继出台 ...
- 【联邦学习邂逅密码学系列】基于同态加密算法python代码实现
这是我的学习笔记,若有不足和错误之处,欢迎交流和指正,谢谢! 联系方式:lrcgnn@163.com 前言 联邦学习是一种参与方之间联合隐私训练的新范式,受到学术界和工业界的关注.然而一些研究表明,联 ...
- 重磅!全球首个可视化联邦学习产品与联邦pipeline生产服务上线
[导读]作为全球首个联邦学习工业级技术框架,FATE支持联邦学习架构体系与各种机器学习算法的安全计算,实现了基于同态加密和多方计算(MPC)的安全计算协议,能够帮助多个组织机构在符合数据安全和政府法规 ...
- 联邦学习 OR 迁移学习?No,我们需要联邦迁移学习
2020-11-18 13:40:43 机器之心分析师网络 作者:仵冀颖 编辑:H4O 在这篇文章中,作者通过 4 篇论文详细介绍了联邦学习中的联邦迁移学习问题,并探讨了向经典联邦学习中引入迁移学习的 ...
- 腾讯 AngelFL 联邦学习平台揭秘
作者:AI前线 数据里蕴含着价值.在人工智能时代,机器学习尤其深度学习模型的获得需要大量的训练数据作为前提.但是在很多业务场景中,模型的训练数据往往分散在各个不同的业务团队.部门.甚至是不同的公司内的 ...
- 联邦学习:保护用户数据隐私
对数据保护通常是对数据做加密或移除敏感信息,但实际上即使移除了敏感信息,有足够多的真实的信息,还是可以通过算法是找到对应的人的,如: 卡内基梅隆大学的Latanya Sweeney的将匿名化的GIC数 ...
- 虚拟专题:联邦学习 | 面向隐私保护的非聚合式数据共享综述
来源:通信学报 面向隐私保护的非聚合式数据共享综述 李尤慧子1, 殷昱煜1, 高洪皓2,3, 金一4, 王新珩5 1 杭州电子科技大学计算机学院,浙江 杭州 310018 2 上海大学计算机工程与科学 ...
- 破解数据匮乏现状:纵向联邦学习场景下的逻辑回归(LR)
摘要:主要介绍了华为云可信智能计算服务(TICS)采用的纵向联邦逻辑回归(LR)方案. 本文分享自华为云社区<纵向联邦学习场景下的逻辑回归(LR)>,作者: 汽水要加冰. 海量训练数据是人 ...
- 3节点Fate集群实战记录(全网最详细)--横向联邦学习
集群配置 集群的三台服务器分别部署了fate-10000, fate-9999, fate-9998命名空间,集群的具体部署情况请转:link查看. 文章后面以命名空间名来区分操作所在的节点(注意节点 ...
最新文章
- css控制非固定文本自动换行
- 搭建 LNMP 环境
- (一)机器学习数据处理
- opencv清晰度,色偏等评价函数
- JVM调优之jstack找出发生死锁的线程
- 图像的熵、灰度平均值、灰度中值、方差
- linux找到占用空间比较大的文件夹并按大小排序输出
- abp+dapper+mysql_ABP公共结构 – 时间与时区设置 - ABP 中文文档
- moosefs即将发布新版
- 使用vscode比较两个文件的差别
- XenCenter6.2 配置ISO库
- 如何制作Win10启动U盘启动盘iso镜像文件
- 关于websql语法
- VScode上修改字体样式
- mac电脑出现“XXX” is damaged and can’t be opened. You should move it to the Trash
- 官方股票交易接口怎么查询股票历史数据?
- aardio部署_GitHub - wiseshrek/aardio-erp: aardio10开发企业管理系统:aardio-erp框架源码
- 如何实现发票信息的自动录入与查验?
- mac安装软件提示没有权限
- 从零玩转Docker(一):什么是Docker?