隐私计算(Privacy computing)是指在保证数据不对外泄露的前提下,由两个或多个参与方联合完成数据分析计算相关技术的统称。

隐私计算作为跨学科技术,以密码学为核心理论, 结合了大数据、人工智能、区块链等多领域知识。其这些技术路线中,以安全多方计算为代表的基于密码学的隐私计算技术、以联邦学习为代表的人工智能与隐私保护技术融合衍生的隐私计算技术、以可信执行环境为代表的基于可信硬件的隐私计算技术是目前隐私计算的三大主流关键技术。

1. 安全多方计算

安全多方计算SMC,Secure Multi-party Computation)是指在一个互不信任的多用户网络中, n n n个参与者 P 1 , P 2 , . . . , P n P_1,P_2,...,P_n P1,P2,...,Pn,每个持有秘密数据 x i x_i xi,希望共同计算出函数 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_i Pi仅得到结果 y i y_i yi,并且不泄露 x i x_i xi给其他参与者。

安全多方计算问题由由中国计算机科学家、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. 隐私计算三类技术比较

  • 安全多方计算因其基于密码学原理,安全性高,且不依赖于可信第三方,相对联邦学习和可信执行环境技术成熟度高,不过由于其基于密码学操作,随着参与方的不断增多会导致计算复杂度的增加。
  • 联邦学习因原始数据不流出,一定程度上满足了数据的隐私安全需求,且不依赖于可信第三方,可解决算法复杂的建模问题,因此性能方面存在一定的瓶颈,需结合其他隐私保护技术才能保证数据隐私安全。
  • 可信执行环境通用性好、准确性高,因原始数据不流出硬件隔离环境故安全性高,可单独用于隐私计算,也可以与其他隐私保护技术相结合,计算性能高,但需要确认硬件厂商是否可信。
关键技术安全多方计算联邦学习可信执行环境
基本思想基于密码学数据不动模型动基于可信硬件
性能低到中
通用性
准确性中到高
安全性中到高
可信方不需要不需要需要
成熟度成熟快速增长的创新阶段快速增长的创新阶段
数据流动原始数据加密后流出原始数据不流出原始数据不流出
计算模式分布式分布式中心化
硬件要求通用硬件通用硬件专用硬件
实现难度开发难度大易开发开发难度大
支持场景任意计算机器学习建模任意计算
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐