全同态加密技术的发展与应用
如果无法正常显示,请先停止浏览器的去广告插件。
1. 全同态加密
发展与应用
王礼斌
腾讯云安全隐私计算 高级算法工程师
2. 目录 CONTENT
01 问题导入
02 发展历程
当前技术的缺陷
一个高速发展的领域
03 应用场景
04 工程实践
什么时候更适用全同态
主流的开源库
3. 01
问题导入
当前非全同态隐私计算技术的缺陷
4. 隐私计算的理想模式
交互内容隐藏真实数据
1. 双方都仅得到目标结果
2. 原始/中间数据不泄露
3. 通用化地解决各种问题
数据拥有方
4. 使用体验完全透明化
数据拥有方
5. 当前的技术体系
算
法
协
议 联邦学习
安
全
算
子 半同态加密
密
码
组
件
非对称加密
隐匿查询
不经意传输
对称加密
数据分析
秘密分享
混淆电路
可交换加密
安全求交
代数混淆
哈希算法
统计混淆
分组加密
6. 当前问题:非通用计算
一事一协议,新的计算需要在合作各方同时添加
……
逻辑回归协议
梯度提升树协议
安全分组汇总协议
安全IV值计算协议
7. 当前问题:计算逻辑的暴露
我们来比较大小吧
数据拥有方
数据拥有方
好的,开始执行比较协议
8. 当前问题:多轮次交互
学习率 Fore Gradient
截距A和权重B
特征X的值
【代数混淆】 1. 发送 Z = 截距A+权重B*特征X
2. FG = 加密 (真实Y – 推断Y: Sigmoid(z)) 【同态加密】
合作方 甲
持有Y标签
【同态加密,代数混淆】 3. 加密FG与特征X相乘得到加密梯度并且求和*
4.解密合作方B返回的加密梯度和,得到梯度,返回给B 【同态加密】
5.更新截距A和权重B并返回第一步
合作方 乙
持有特征X
9. 可信执行环境
需要特殊硬件支持,部署成本高
可信性依赖于国外硬件厂商
10. 全同态加密的优势
明文m
加密
计算函数f
明文f(m)
解密
密文Enc(m)
同态计算f
密文Enc(f(m))
11. 02
发展历程
一个高速发展的领域
12. 起源
1977年,RSA算法提出
非随机化加密,具有乘法同态性
“同态加密”这个概念首次被提出
RSA的非随机化加密,存在选择明文攻击问题
1985年,ElGamal算法提出 随机化加密,仅具有乘法同态性
1999年,Paillier算法提出 随机化加密,仅具有线性同态性
2005年,BGN算法提出 随机化加密,具有线性同态性+一次乘法同态性
迫切需要同时支持加法同态+乘法同态的全同态加密算法
明文*密文
密文+密文
13. 起源
SUM PRODUCT
XOR AND
0 XOR 0 0 0 AND 0 0
1 XOR 0 1 1 AND 0 0
0 XOR 1 1 0 AND 1 0
1 XOR 1 0 1 AND 1 1
Modulo 2 Addition
Modulo 2 Multiplication
14. 发展
算法理论发展
第一代FHE
全同态加密构想
第二代FHE 第三代FHE
1978年 2009年 2012年 2013-2015年
RSA算法创始人之
一的Rivest等人提
出全同态加密构想 Gentry提出全同
态加密算法,具有
里程碑的理论意义 BGV/BFV提出 tFHE/FHEW提出
处理浮点数的FHE
2017年
CKKS提出
工程研发发展
2013年
IBM推出基于BGV算法
的全同态运算库HElib
2015年 2017-2018年
微软推出SEAL同
态加密库 tFHE同态加密库+
HEAAN同态加密库
2020年
美国国防高级研究
计划局开展全同态
硬件加速计划
15. 发展
DARPA -- Defense Advanced Research Projects Agency
属于美国军方的美国国防先进研究计划机构发布“Data
Protection in Virtual Environments”(DPRIVE)项目,将利用
全同态加密来改善资料保护,并遴选4家企业打造全同态
加密的硬件加速器,其中微软和Intel携手加入该项目
IBM于2020年推出全同态加密服务,为企业提供
培训、专家支持和测试环境
谷歌开源了首歌通用全同态加密的转译器,自动
将明文运算转换为同态密文运算
16. 标准制定
§ 美国标准
(NIST)
§
BGV, BFV,
GSW, CKKS
https://homomorphicencrypti
on.org/
https://docs.google.com/docu
ment/d/106W-
tFEbChJQfbqEE7PnIVqEBP
zYD_pqrMn55UKDCOc/edit
17. 标准制定
算法安全:
Ø 全同态加密算法属于公钥密码体制
客户用自己公钥加密的密文,只有自己可以解密
Ø 全同态加密算法可以抵抗目前已知所有的量子攻击,比传统的公钥密码标准更安全。
标准化进展:
Ø NIST-美国国家标准技术研究所、MIT等高校和IBM/微软/Intel等机构积极参与一年一度
的同态加密标准研讨会
Ø homomorphicencryption.org于2018年发布同态加密标准白皮书
工程实现:
Ø 目前主流的全同态加密库有IBM的Helib、微软的SEAL和tFHE等全同态加密库
Ø 全同态加密库均按照同态加密标准白皮书的规范实现,开源可查无后门
18. 03
适用场景
什么时候更适用全同态
19. 外包计算
用户数据可用不可见
用户
发送密文数据+计算指令
加密明文
解密密文得到
计算后的明文
数据服务器
返回计算密文
同态计算密文
20. 模型训练
模型训练
模型预测
加密明文
客户
解密
返回密文
数据
预测
逻辑回归模型+简单神经网络模型
预测时间:< 1s
加密训练数据
特征拥有方
解密获得
模型参数
返回密文
标签拥有方
同态执行
训练算法
目前仅逻辑回归模型尚可
1500维特征,10000个样本,6轮迭代训练,总耗时 < 15min
21. 联合风控
数据方1
2
请求
数据
银行
数据方2
1 申请贷款
…
数据方n
客户
5 是否放贷
据 4 计算金融规则
数
回
返
3
数据方不希望暴露自己的数据
银行不希望暴露金融/风控规则
采用全同态加密算法解决这两个问题
22. 金融工程
券商
客户
资产 1 资产 2 资产 3 资产 4
23 54 3千 0
资产 1 资产 2 资产 3 资产 4
持仓密文 56456 34533 85675 56845
持仓
同态加密
估值:433万
解密
发
送
密
文
金融工程模型
资产1密文 X 模型参数1
+ 资产2密文 X 模型参数2
+ 资产3密文 X 模型参数3
+ 资产4密文 X 模型参数4
结果密文
23. 金融工程
算术运算
加、减、乘、除、对数、指数...
条件判断
大小、相等、匹配、与、或 ...
文本处理
大写 小写 截取 拼接 ...
24. 04
工程实践
主流开源库对比与使用
25. 开源库
26. 全同态协议的选择
? ! = ℤ ! ? /(? " + 1)
? # = ℤ # ? /(? " + 1)
? = ℤ ? /(? " + 1)
算法 密文空间 明文空间 BootStrapping 性能 支持批处理 适合的计算函数
BFV ? ! ×? ! ? " 慢,公开库暂无实现 是 模t的算术运算
BGV ? ! ×? ! ? " 慢,17min 是 模t的算术运算
CKKS ? ! ×? ! ? ≅ ℂ #/% 慢,10min 是 复数域上的算术运算
FHEW/
tFHE ℤ & ! ×ℤ ! 0,1 快,134ms 否 逻辑运算
BFV/BGV:适合处理小区间上的整数向量,例如整数的比较/相等判定,无精度损失
CKKS:适合处理浮点数向量,例如小区间上的可用多项式逼近的连续函数,精度控制在1e-6~1e-8
FHEW/tFHE:适合处理分段函数/非连续函数,精度控制在1e-4
27. 算子库的构建
数学函数---采用CKKS同态加密算法
算子名称
密文尺寸
计算耗时 支持范围 精度
2 32 ] 1e-19
add 384KB 0.00003s [-2 -32 , sub 384KB 0.00003s [-2 -32 , 2 32 ] 1e-19
[-2 -32 , 1e-15
2 32 ]
mul 384KB 0.001s inv 1.5MB 0.49s (0.5,1) 1e-6
pow 1.5MB 0.57s (0.5,1) 1e-7
exp 1.5MB 0.41s (-1,1) 1e-10
log2/log10/log 1.5MB 0.47s (0.5,1) 1e-9
sqrt 1.5MB 0.43s (0.5,1) 1e-7
abs 1.5MB 0.67s (0.5,1) 1e-5
sin/cos 1.5MB 0.53s (-?/2, ?/2) 1e-7
同态计算函数f
同态计算多项式p
f在某固定区间上的多项式逼近
28. 算子库的构建
逻辑函数/字符串函数--采用BFV/BGV算法
函数名称 密文尺寸 计算时间
& 384KB 0.003s
| 384KB 0.003s
XOR 384KB 0.003s
== 1.75MB 0.63s
集合判定 1.75MB 0.67s
比较 1.75MB 0.83s
concat 384KB 0.063s
substr 384KB 0.045s
toupper 1.75MB 0.87s
tolower 1.75MB 0.87s
说明
支持8192个布尔运算并行
支持64比特判定
单个密文支持最多长度为1024的字符串
将字符串/比特 转换为 小整数剩余类环上的运算
29. 金融工程
复杂的金融计算规则
分解
简单的算子
同态计算算子的过程
金融机构
1 加密明文,发送相应的密文
没有私钥,
无法解密
出明文
3 请求密文刷新
4 刷新后的密文
2 同态计算算子
5 继续同态计算算子
金融机构无法
根据密文得到
明文
加密:采用基于格的全同态加密算法,例如CKKS和FHEW
密文刷新:将待解密的密文盲化,客户将盲化后的密文解密再重新加密
同态计算:支持多项式计算,连续函数,分段函数的计算
客户
生
成
公 公钥公开
私 私钥保密
钥
对
客户只负责处理密文刷新,
无法得知具体的计算算子
30. 密文刷新减少误差
同态加/解密:
ℤ 5
4
明文向量 ? ⃗
同构
编码
译码
? 4
? ∈ ? !
加密
加密:增加误差
密文 ? $ , ? % ∈ ? ! ×? !
解密
解密:消除误差
同态基本运算:
两个密文: ? $ , ? % 和 ? $ , ? %
向量分量相加 同态加: (? $ + ? $ , ? % + ? % )
向量分量相乘 同态乘: ? $ ∗ ? $ , ? $ ∗ ? % + ? % ∗ ? $ , ? % ∗ ? %
误差累加
Relinearize
? $ , ? %
误差累乘
31. 目录 CONTENT
01 问题导入
02 发展历程
当前技术的缺陷
一个高速发展的领域
03 应用场景
04 工程实践
什么时候更适用全同态
主流的开源库
32. 腾讯自研底层引擎
33. 腾讯云安全隐私计算
管控与平台服务
隐
私
计
算
应
用
机器学习
同态加密
隐匿查询 数据分析
不经意传输 秘密分享
安全求交
代数混淆
机器学习
同态加密
隐匿查询 数据分析
不经意传输 秘密分享
安全求交
隐
私
计
算
应
用
代数混淆
大
数
据
集
群 大
数
据
集
群
K8
S
集
群 K8
S
集
群
隐私计算服务
隐私计算服务
34. 非常感谢您的观看