隐私计算(Privacy computing)是指在保证数据不对外泄露的前提下,由两个或多个参与方联合完成数据分析计算相关技术的统称。
隐私计算作为跨学科技术,以密码学为核心理论, 结合了大数据、人工智能、区块链等多领域知识。其这些技术路线中,以安全多方计算为代表的基于密码学的隐私计算技术、以联邦学习为代表的人工智能与隐私保护技术融合衍生的隐私计算技术、以可信执行环境为代表的基于可信硬件的隐私计算技术是目前隐私计算的三大主流关键技术。
1. 安全多方计算
安全多方计算(SMC,Secure Multi-party Computation)是指在一个互不信任的多用户网络中,n nn个参与者P 1 , P 2 , . . . , P n P_1,P_2,...,P_nP1,P2,...,Pn,每个持有秘密数据x i x_ixi,希望共同计算出函数f ( x 1 , x 2 , . . . , x n ) = ( y 1 , y 2 , . . . , y n ) f(x_1,x_2,...,x_n)=(y_1,y_2,...,y_n)f(x1,x2,...,xn)=(y1,y2,...,yn),P i P_iPi仅得到结果y i y_iyi,并且不泄露x i x_ixi给其他参与者。
安全多方计算问题由由中国计算机科学家、2000年图灵奖获得者姚启智教授于1982年在论文《Protocols for secure computations》中以百万富翁问题(提出,开创了密码学研究的新领域。
安全多方计算主要聚焦于秘密共享、同态加密、比特承诺、零知识证明、混合网络、不经意传输等基本模块的研究,以及隐私集合交集(PSI,Private Set Intersection)、隐私信息检索(PIR,Private Information Retrieval)等特定安全多方计算问题的解决。
2. 联邦学习
联邦学习(FL,Federated Learning)的基本思想是各参与方从中心服务器下载现有参数模型,然后使用本地原始数据进行模型训练,并将训练后的更新模型加密上传至中心服务器,中心服务器将收集到的各参与方的更新模型进行聚合计算,最终产生新的适用全局的最佳模型。
联邦学习以数据收集最小化为原则,参与方原始数据不出本地库,只交换加密的中间结果,有效实现了 参与方数据的隐私保护。
根据参与方提供的训练数据的样本和特征重合情况,联邦学习分为横向联邦学习、纵向联邦学习以及联邦迁移学习。
(1)横向联邦学习适用于样本重合度低、特征重合度高的场景,通过增加具有相同特征的样本数量来提升模型训练效果。
(2)纵向联邦学习适用于样本重合度高、 特征重合度低的场景,通过丰富相同 样本的特征维度来优化模型。
(3)联邦迁移学习适用 于样本重合度低、特征重合度也低的场景,通过迁移学习解决单边数据规模小以及标签缺失或样本少的问题,以提升模型 训练效果。
3. 可信执行环境
可信执行环境(TEE,Trusted Execution Environment, )是一种基于软硬件的安全架构,通过复用中央处理器或划分部分内存为安全区域,构建出一个与外部相隔离的安全计算环境,所有敏感数据均汇聚在该安全区域内进行计算,未经授权访问 ,其他任何外部攻击者,包括系统管理人员均无法控制环境内的运算执行,也无法获取环境内的敏感数据,硬件隔离充分保证了环境内敏感数据 隐私计算的安全性。
目前可信执行环境的实现技术 主要有Intel的SGX、ARM 的 TrustZone等。
4. 隐私计算三类技术比较
- 安全多方计算因其基于密码学原理,安全性高,且不依赖于可信第三方,相对联邦学习和可信执行环境技术成熟度高,不过由于其基于密码学操作,随着参与方的不断增多会导致计算复杂度的增加。
- 联邦学习因原始数据不流出,一定程度上满足了数据的隐私安全需求,且不依赖于可信第三方,可解决算法复杂的建模问题,因此性能方面存在一定的瓶颈,需结合其他隐私保护技术才能保证数据隐私安全。
- 可信执行环境通用性好、准确性高,因原始数据不流出硬件隔离环境故安全性高,可单独用于隐私计算,也可以与其他隐私保护技术相结合,计算性能高,但需要确认硬件厂商是否可信。
关键技术 | 安全多方计算 | 联邦学习 | 可信执行环境 |
基本思想 | 基于密码学 | 数据不动模型动 | 基于可信硬件 |
性能 | 低到中 | 中 | 高 |
通用性 | 高 | 中 | 高 |
准确性 | 高 | 中到高 | 高 |
安全性 | 高 | 中 | 中到高 |
可信方 | 不需要 | 不需要 | 需要 |
成熟度 | 成熟 | 快速增长的创新阶段 | 快速增长的创新阶段 |
数据流动 | 原始数据加密后流出 | 原始数据不流出 | 原始数据不流出 |
计算模式 | 分布式 | 分布式 | 中心化 |
硬件要求 | 通用硬件 | 通用硬件 | 专用硬件 |
实现难度 | 开发难度大 | 易开发 | 开发难度大 |
支持场景 | 任意计算 | 机器学习建模 | 任意计算 |