本文介绍联邦学习中用到的几种加密算法的实现过程,不涉及原理。

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相关推荐

  1. 虚拟专题:联邦学习 | 联邦学习隐私保护研究进展

    来源:大数据期刊 联邦学习隐私保护研究进展 王健宗, 孔令炜, 黄章成, 陈霖捷, 刘懿, 卢春曦, 肖京 平安科技(深圳)有限公司,广东 深圳 518063 摘要:针对隐私保护的法律法规相继出台,数 ...

  2. 联邦学习隐私保护研究进展

    点击上方蓝字关注我们 联邦学习隐私保护研究进展 王健宗, 孔令炜, 黄章成, 陈霖捷, 刘懿, 卢春曦, 肖京 平安科技(深圳)有限公司,广东 深圳 518063 摘要:针对隐私保护的法律法规相继出台 ...

  3. 【联邦学习邂逅密码学系列】基于同态加密算法python代码实现

    这是我的学习笔记,若有不足和错误之处,欢迎交流和指正,谢谢! 联系方式:lrcgnn@163.com 前言 联邦学习是一种参与方之间联合隐私训练的新范式,受到学术界和工业界的关注.然而一些研究表明,联 ...

  4. 重磅!全球首个可视化联邦学习产品与联邦pipeline生产服务上线

    [导读]作为全球首个联邦学习工业级技术框架,FATE支持联邦学习架构体系与各种机器学习算法的安全计算,实现了基于同态加密和多方计算(MPC)的安全计算协议,能够帮助多个组织机构在符合数据安全和政府法规 ...

  5. 联邦学习 OR 迁移学习?No,我们需要联邦迁移学习

    2020-11-18 13:40:43 机器之心分析师网络 作者:仵冀颖 编辑:H4O 在这篇文章中,作者通过 4 篇论文详细介绍了联邦学习中的联邦迁移学习问题,并探讨了向经典联邦学习中引入迁移学习的 ...

  6. 腾讯 AngelFL 联邦学习平台揭秘

    作者:AI前线 数据里蕴含着价值.在人工智能时代,机器学习尤其深度学习模型的获得需要大量的训练数据作为前提.但是在很多业务场景中,模型的训练数据往往分散在各个不同的业务团队.部门.甚至是不同的公司内的 ...

  7. 联邦学习:保护用户数据隐私

    对数据保护通常是对数据做加密或移除敏感信息,但实际上即使移除了敏感信息,有足够多的真实的信息,还是可以通过算法是找到对应的人的,如: 卡内基梅隆大学的Latanya Sweeney的将匿名化的GIC数 ...

  8. 虚拟专题:联邦学习 | 面向隐私保护的非聚合式数据共享综述

    来源:通信学报 面向隐私保护的非聚合式数据共享综述 李尤慧子1, 殷昱煜1, 高洪皓2,3, 金一4, 王新珩5 1 杭州电子科技大学计算机学院,浙江 杭州 310018 2 上海大学计算机工程与科学 ...

  9. 破解数据匮乏现状:纵向联邦学习场景下的逻辑回归(LR)

    摘要:主要介绍了华为云可信智能计算服务(TICS)采用的纵向联邦逻辑回归(LR)方案. 本文分享自华为云社区<纵向联邦学习场景下的逻辑回归(LR)>,作者: 汽水要加冰. 海量训练数据是人 ...

  10. 3节点Fate集群实战记录(全网最详细)--横向联邦学习

    集群配置 集群的三台服务器分别部署了fate-10000, fate-9999, fate-9998命名空间,集群的具体部署情况请转:link查看. 文章后面以命名空间名来区分操作所在的节点(注意节点 ...

最新文章

  1. css控制非固定文本自动换行
  2. 搭建 LNMP 环境
  3. (一)机器学习数据处理
  4. opencv清晰度,色偏等评价函数
  5. JVM调优之jstack找出发生死锁的线程
  6. 图像的熵、灰度平均值、灰度中值、方差
  7. linux找到占用空间比较大的文件夹并按大小排序输出
  8. abp+dapper+mysql_ABP公共结构 – 时间与时区设置 - ABP 中文文档
  9. moosefs即将发布新版
  10. 使用vscode比较两个文件的差别
  11. XenCenter6.2 配置ISO库
  12. 如何制作Win10启动U盘启动盘iso镜像文件
  13. 关于websql语法
  14. VScode上修改字体样式
  15. mac电脑出现“XXX” is damaged and can’t be opened. You should move it to the Trash
  16. 官方股票交易接口怎么查询股票历史数据?
  17. aardio部署_GitHub - wiseshrek/aardio-erp: aardio10开发企业管理系统:aardio-erp框架源码
  18. 如何实现发票信息的自动录入与查验?
  19. mac安装软件提示没有权限
  20. 从零玩转Docker(一):什么是Docker?

热门文章

  1. Linux 设置代理
  2. 【MySQL】不建议使用分区表
  3. matlab加特定频率的噪声,如何在Matlab/Simulink中生成指定的白噪声和有色噪声
  4. laydate限定某天不可选
  5. 基于野火霸道的 STM32F103 代码集合
  6. UVALive3713 Astronauts
  7. 百度竞价文章怎么写?
  8. ipad创建id显示服务器失败,为什么无法创建苹果id什么原因
  9. RAID1与RAID0的区别
  10. 遭DeFi反噬,以太坊绝地反击