隐私计算(“隐私保护计算” Privacy-Preserving Computation)
隐私计算是一类技术方案,在处理和分析计算数据的过程中能保持数据不透明、不泄露、无法被计算方法以及其他非授权方获取。
数据方是指为执行隐私保护计算过程提供数据的组织或个人;
计算方是指为执行隐私保护计算过程提供算力的组织或个人;
结果方是指接收隐私保护计算结果的组织或个人。
隐私保护计算的目标是在完成计算任务的基础上,实现数据计算过程和数据计算结果的隐私保护。数据计算过程的隐私保护指参与方在整个计算过程中难以得到除计算结果以外的额外信息,数据计算结果的隐私保护指参与方难以基于计算结果逆推原始输入数据和隐私信息。
- 隐私计算是个技术体系,不能混淆了安全多方计算、联邦学习、隐私计算概念间的关系,比如安全多方计算只是隐私计算的一个子集,联邦学习与安全多方计算也不是同一回事,虽然彼此也有联系。
多方安全计算 MPC(Secure Multi-Party Computation)
参与者在不泄露各自隐私数据情况下,利用隐私数据参与保密计算,共同完成某项计算任务。
目前,在MPC 领域,主要用到的是技术是秘密共享、不经意传输、混淆电路、同态加密、零知识证明等关键技术,可以认为多方安全计算是一堆协议集。
详细内容略
联邦学习
假设有两个不同的企业 A 和 B,它们拥有不同的数据,比如企业 A 有用户特征数据,企业 B 有产品特征数据和标注数据。这两个企业按照 GDPR 准则是不能粗暴地把双方数据加以合并的,因为他们各自的用户并没有机会同意这样做。
假设双方各自建立一个任务模型,每个任务可以是分类或预测,这些任务也已经在获得数据时取得了各自用户的认可。
那么,现在的问题是如何在 A 和 B 各端建立高质量的模型。但是,又由于数据不完整(例如企业 A 缺少标签数据,企业 B 缺少特征数据),或者数据不充分(数据量不足以建立好的模型),各端有可能无法建立模型或效果不理想。联邦学习就是来解决这个问题的。
联邦学习的本质是一种机器学习框架,即分布式机器学习技术。联邦学习以一个中央服务器为中心节点,通过与多个参与训练的本地服务器(以下简称“参与方”)交换网络信息来实现人工智能模型的更新迭代。
即中央服务器首先生成一个通用神经网络模型,各个参与方将这个通用模型下载至本地并利用本地数据训练模型,将训练后的模型所更新的内容上传至中央服务器,通过将多个参与方的更新内容进行融合均分来优化初始通用模型,再由各个参与方下载更新后的通用模型进行上述处理,这个过程不断重复直至达到某一个既定的标准。
在整个联邦学习的过程中,各参与方的数据始终保存在其本地服务器,降低了数据泄露的风险。
详解联邦学习
以包含两个数据拥有方(即企业 A 和 B)的场景为例介绍联邦学习的系统构架。该构架可扩展至包含多个数据拥有方的场景。假设企业 A 和 B 想联合训练一个机器学习模型,它们的业务系统分别拥有各自用户的相关数据。
此外,企业 B 还拥有模型需要预测的标签数据。出于数据隐私保护和安全考虑,A 和 B 无法直接进行数据交换,可使用联邦学习系统建立模型。联邦学习系统构架由三部分构成。
第一部分:加密样本对齐。由于两家企业的用户群体并非完全重合,系统利用基于加密的用户样本对齐技术,在 A 和 B 不公开各自数据的前提下确认双方的共有用户,并且不暴露不互相重叠的用户,以便联合这些用户的特征进行建模。
第二部分:加密模型训练。在确定共有用户群体后,就可以利用这些数据训练机器学习模型。为了保证训练过程中数据的保密性,需要借助第三方协作者 C 进行加密训练。以线性回归模型为例,训练过程可分为以下 4 步:
第①步:协作者 C 把公钥分发给 A 和 B,用以对训练过程中需要交换的数据进行加密,注意传输的数据是模型的计算中间结果(后面会解释具体是什么),不涉及用户隐私,当然虽然传输的数据是加密的,但模型训练的时候是要用私钥解密的。
第②步:A 和 B 之间以加密形式交互用于计算梯度的中间结果,那个这个中间结果具体指什么呢?
我的理解是这样:
假设A上有样本的 x1,x2 特征,B上有样本的 x3,x4 特征及标签 Y ,模型为 logistic 回归;首先,A根据当前模型计算每条记录的 x1,x2 线性组合结果,B 根据当前模型计算每条记录的 x3,x4 线性组合结果;然后 A 将结果加密后传给 B ,同时 B 将结果加密后传给 A。
第③步:A和B分别基于解密后的交互中间信息(线性组合结果)进行各自的梯度值计算,比如B可基于接收的线性组合结果、标签 Y 等数据计算 Loss(损失)及 x3,x4 的梯度,A接收后可计算 Loss(损失)及 x1,x2 的梯度。
然后A,B分别将计算得到的 x1,x2,x3,x4 的梯度值上传到 C,C 基于梯度值计算出模型的新参数。
第④步:C 将四个新参数分别传送回 A 和 B,也就是更新 A, B 的模型,用于新一轮的迭代。
迭代上述步骤直至损失函数收敛,这样就完成了整个训练过程。在样本对齐及模型训练过程中,A 和 B 各自的数据均保留在本地,且训练中的数据交互也不会导致数据隐私泄露。因此,双方在联邦学习的帮助下得以实现合作训练模型。
模型正式部署到生产后,如果要用于预测,比如输入一个用户 ID,则 A, B 模型分别提供预测的线性组合结果并相加,从而得到最终的预测值。
第三部分:效果激励。联邦学习的一大特点就是它解决了不同机构要加入联邦共同建模的问题,提供数据多的机构所获得的模型效果会更好,模型效果取决于数据提供方对自己和他人的贡献。这些模型的效果在联邦机制上会分发给各个机构反馈,并继续激励更多机构加入这一数据联邦。以上三部分的实施,既考虑了在多个机构间共同建模的隐私保护和效果,又考虑了以一个共识机制奖励贡献数据多的机构。
案例
金融行业中面向金融机构与政府基于联邦学习技术进行联合建模的落地应用。例如金融机构结合其服务企业的金融行为、资产等特征与政府的企业信息、企业税务信息、企业违规信息等特征,采用纵向联邦学习联合建模开展企业的信用风控评估。金融机构间通过同一用户群的金融行为数据采用纵向联邦学习联合分析金融反欺诈。
机密计算
机密计算就是针对数据在使用过程中的安全问题所提出的一种解决方案。它是一种基于硬件的技术,将数据、特定功能、应用程序,同操作系统、系统管理程序或虚拟机管理器以及其他特定进程隔离开来,让数据存储在可信执行环境(Trusted Execution Environment,TEE)中,即使是使用调试器,也无法从外部查看数据或者执行操作。TEE 确保只有经过授权的代码才能访问数据,如果代码被篡改,TEE 将阻止其继续进行操作。
机密计算的核心功能有:
第一、保护 In-Use 数据的机密性:内存中的数据是被加密的,即便被攻击者窃取到内存数据也不会泄露数据;
第二、保护 In-Use 数据的完整性:度量值保证了数据和代码的完整性,使用中有任何数据或代码的改动都会引起度量值的变化;
第三、保护 In-Use 数据的安全性:相比普通应用,机密计算应用有更小的 TCB(Trusted Compute Base),意味着更小的攻击面,也意味着更安全。,以 Intel SGX 为例,除了 CPU 和可信应用自身以外,其他软硬件的访问都是被拒绝的,包括操作系统、Hypervisor 等。
差分隐私(Differential Privacy)
差分隐私是在2006年针对数据库的隐私泄露问题提出的一种新的隐私定义。主要是通过使用随机噪声来确保查询请求公开可见信息的结果,并不会泄露个体的隐私信息,即提供一种当从统计数据库查询时,最大化数据查询的准确性,同时最大限度减少识别其记录的机会,简单来说,就是保留统计学特征的前提下去除个体特征以保护用户隐私。
举个例子,当不使用差分隐私技术时,我们查询 A 医院数据库,查询今日就诊的 100 个病人患病情况,返回 10 人患肺癌,同时查询昨天 99 个病人患病情况,返回 9 个人患肺癌,那就可以推测今天来的那个人张三患有肺癌,这个就暴露了张三的个人隐私了。
使用差分隐私技术后,查询 A 医院的数据库,查询今日就诊的 100 个病人患病情况,返回肺癌得病率 9.80%,查询今日就诊的 99 个病人患病情况,返回肺癌得病率 9.81%,因此无法推测剩下 1个人张三是否患有肺癌
图解
当用户(也可能是潜藏的攻击者)向数据提供者提交一个查询请求时,如果数据提供者直接发布准确的查询结果,则可能导致隐私泄漏,因为用户可能会通过查询结果来反推出隐私信息。
为了避免这一问题
- 在交互式差分隐私保护框架下,用户通过查询接口向数据拥有者递交查询请求,数据拥有者根据查询请求在源数据集中进行查询,然后将查询结果添加噪声扰动之后反馈给用户。
- 在非交互式差分隐私保护框架 下,数据管理者直接发布一个满足差分隐私保护的数据集,再根据用户的请求对发布数据集进行查询操作,如下图所示。
假设存在一个数据表,该数据是某医院的门诊病历记录,其中包括病人的姓名、年龄、性别、临床诊断等信息。
图(a)是原始数据记录的直方图发布形式。如果攻击者想要知道 Cole 的诊断情况,并且具有强大的背景知识,如攻击者已经知道 Cole 的性别为男、年龄在 60~80 岁之间,以及其他人的临床诊断信息,那么攻击者将能够推断出 Cole 的临床诊断信息,从而导致 Cole 的隐私信息被泄露。
图(b)给出了经过差分隐私技术处理过的直方图发布的结果,从图中可以看出,即使攻击者知道年龄在 60~80 岁之间除了 Cole 以外所有人的信息,他也没办法获取 Cole 的诊断信息。
差分隐私中一个关键概念是相邻数据集,假设给定两个数据集 D 和 D’,如果它们有且仅有一条数据不一样,那么这两个数据集可称为相邻数据集。
那么如果对于一个随机算法 A 如果其分别作用于两个相邻数据集得到的两个输出分布式难以区分的,那么这个算法就被认为达到差分隐私的效果。
这里的随机算法,是指对于特定输入,该算法的输出不是固定值,而是服从某一分布的算法,如下图所示,也就是说这个算法作用于任何相邻数据集(D和D’),得到一个特定输出 O 的概率是差不多,从而观察者通过观察输出结果很难觉察出数据集的细小变化,通过这种方式来达到保护隐私的目的。
案例
差分隐私在1977年就提出了,但是真正让它声名大噪的是2016年苹果软件工程副总裁克雷格•费德里希(Craig Federighi)在 WWDC 大会上宣布苹果使用本地化差分隐私技术来保护 IOS、MAC用户隐私。
在多个场景中成功部署差分隐私,在保护用户隐私的同时,提升用户体验。例如,使用差分隐私技术收集用户统计用户在不同语言环境中的表情符号使用情况,改进 QuickType 对表情符号的预测能力。
根据用户键盘输入学习新单词、外来词,更新设备内字典改善用户键盘输入体验。又例如,根据使用差分隐私技术收集用户在Safari应用使用中高频的高内存占用型、高耗能型域名,在IOS和macOS High Sieera系统里在这些网站加载时提供更多资源,以提升用户浏览体验。
局部差分隐私(Local Differential Privacy)
数据统计分析里面,本地差分隐私默认相对于全局差分隐私而言的。 从定义上来说都一样,但是针对的场景不同。
传统的差分隐私(DP)是将各方的原始数据集中到一个可信的数据中心, 然后对计算结果做添加噪音,实施差分隐私, 也被称中心化差分隐私。但是这种可信的数据中心很难实现。所以就出现了本地差分隐私(LDP)。
全局差分隐私:
局部差分隐私:
本地差分隐私为了消除可信数据中心,直接在用户的数据集上做差分隐私,然后再传输到数据中心进行聚合计算,这样数据中心也无法猜测出原始数据,从而保护数据隐私。
本地差分隐私在消除原始数据集中的劣势的同时也引入了一个很难处理的问题:局部敏感度计算的时候不需要涉及到加法和乘法等运算,因此其敏感度是比较精准的,但是针对大量的数据集直接计算局部敏感度是不现实的,其次添加局部敏感度之后的中间结果,在进行加法或者乘法等,会导致敏感度扩大,从而导致数据可用性降低。
各类技术优缺点
1、多方安全计算
优点:
基于密码学安全,其安全性有严格密码理论证明,不以信任任何参与方、操作人员、系统、硬件或软件为基础,各个参与方对其拥有的数据拥有绝对的控制权,保障基本数据和信息不会泄露,同时计算准确度高,并支持可编程通用计算。
缺点:
多方安全计算包含复杂的密码学操作,计算性能问题是应用的一大障碍。随着应用规模扩大,采用合适的计算方案保证运算时延与参与方数量呈现线性变化是目前各技术厂商面临的一大挑战。
从安全性上看,多方安全计算的目标是保证多方数据融合计算时的隐私安全,一些传统安全问题,如访问控制、传输安全等,仍然需要其他相应的技术手段。
2、联邦学习
优点:
联邦学习由于其具有分布式训练和联合训练的特点。
一方面能够解决训练阶段数据特征单一的问题,从而获得一个性能更好的、优于利用自己本身数据集所训练出的模型。
另一方面,各参与方只需在本地利用各自数据集进行训练,数据体量未增加,算力成本压力小。因为整个训练过程中各参与方的数据都不会离开本地,只将模型的梯度及权重等信息上传至中心服务器进行聚合分割,对于各参与方来说这样既不会直接泄露隐私数据,也不会额外增加参训数据量,从而完成训练任务。
缺点:
联邦学习存在着安全问题和通信效率问题。
一是就目前业内应用较大的神经网络模型来看,因为从底层编码开始构建一个基础的神经网络模型通常耗时耗力,多数企业从开源平台获取或第三方平台上购买基础模型,这样的基础模型本身就有植入病毒的可能。
二是学术界对于联邦学习的安全保障效果尚无严格定义,利用中心服务器收集的梯度及权重信息还是有可能反推出每个参与方的数据信息。
三是联邦学习的机制默认所有参与方都是可信方,无法规避某个参与方恶意提供虚假数据甚至病害数据,从而对最终的训练模型造成不可逆转的危害。
四是由于分布式参与节点计算能力不一致、网络连接状态不稳定、数据通信非独立分布等现实因素,联邦学习的通信效率极易成为联邦学习应用的瓶颈之一。
3、机密计算
优点:
相对于其他隐私计算技术,机密计算具有通用和高效的优势,不仅可以无缝支持通用计算框架和应用,而且计算性能基本可匹敌明文计算。它可以单独用于隐私计算,也可以与其他技术结合在一起来保护隐私,尤其对于安全可信云计算、大规模数据保密协作、隐私保护的深度学习等涉及大数据、高性能、通用隐私计算的场景,是重要的技术手段。
缺点:
机密计算的缺点在于TEE 信任链跟CPU 厂商绑定,目前硬件技术被掌握在英特尔、高通、ARM等少数外国核心供应商中,从而影响到机密计算技术的可信度。机密计算的另一个缺点是目前的TEE 实现在理论上存在侧信道攻击的可能性,因为TEE与其它非可信执行环境空间共享了大量的系统资源。
4、差分隐私
优点:
差分隐私技术基于严格的数据理论,能够实现数据资源的最大利用,在多方安全计算中,采用可计算的差分隐私能大大降低多方安全计算的计算复杂度和通讯量。
缺点:
差分隐私通过添加噪声实现隐私保护,会对模型可用性和准确性造成一定程度影响,因此,对于准确度要求较高的场景如人脸识别、金融风险计量,目前无法大规模应用该项技术。
另一方面差分隐私保护目标是计算结果而不是计算过程,以机器学习建模为例,差分隐私可以在建模结果上加入噪声,保证攻击者难以从建模结果反推出样本信息,但差分隐私依然需要计算方显式的访问训练数据,因此没有保护建模过程,因此与前面三种方案有根本不同。