前言
上篇读论文,老师说我找错方向了(😭),他让我调研各种隐私计算技术都是解决了什么问题,我自己跑到同态加密技术那里猛嗑,好吧我的。欧克,那现在拨乱反正,看一看隐私计算的相关东西。以下主要是对知乎上查看的资料(也不排除他们本身也是搬运工 😃 )的总结。
隐私计算
隐私计算的概念
隐私计算(“隐私保护计算” Privacy-Preserving Computation, 简称 PPC)是一类技术方案,在处理和分析计算数据的过程中能保持数据不透明、不泄露、无法被算法以及其他非授权方获取。
研究PPC时通常分成三部分:
- 数据方 - 为执行PPC提供数据的组织或个人
- 计算方 - 为执行PPC提供算例的组织或个人
- 结果方 - 接收PPC计算结果的组织或个人
PPC要实现的目标是实现数据计算过程和数据计算结果的隐私保护。
- 数据计算过程的隐私保护是指计算方在整个计算过程中难以得到除了计算机过以外的信息
- 数据计算结果的隐私保护是结果方难以基于计算结果逆推原始输入数据和隐私信息
PPC实际上是一个技术体系,不能混淆多方安全计算、联邦学习、隐私计算概念间的关系,比如多方安全计算只能算是隐私计算的一个子集,联邦学习和多方安全计算虽然彼此有联系,但并不是同一回事。
多方安全计算 MPC(Secure Multi-Party Computation)
参与者在不泄露各自隐私数据的情况下,利用隐私数据参与保密计算,共同完成某项计算任务,并且保证每一方仅获取自己的计算结果,无法通过计算过程中的交互数据推测出其他任意一方的输入和输出数据(除非函数本身可以由自己的输入推测出其他参与方的输入和输出)。
到2021年底,在MPC领域,主要用到的技术是秘密共享、不经意传输、混淆电路、同态加密、零知识证明等关键技术,可以认为多方安全计算是一堆协议栈。
值得注意的是,具体MPC算法是利用支撑技术组合构造的MPC协议,构造的MPC协议又分为两大类,专用算法和通用框架:
- 通用框架 - 可以满足大部分计算逻辑的通用MPC协议,主要基于混淆电路实现,可将计算逻辑编译成电路,然后混淆执行,支持大部分计算逻辑,但对于复杂计算逻辑,混淆电路的效率会有不同程度的降低。
- 专用算法 - 为解决特定问题所构造出的特殊MPC协议,由于是针对性构造并进行优化,专用算法的效率会比基于混淆电路(GC ,Garbled Circuit)的通用框架高很多,包含四则运算,比较运算,矩阵运算,隐私集合求交集,隐私数据查询,差分隐私等等
专用算法和通用框架是解决隐私计算问题的两种不同思路,专用算法为特定隐私计算逻辑设计,效率更高,但只能支持单一计算逻辑;通用框架可以支持大部分隐私计算逻辑,由于支持更多的计算逻辑,与专用算法相比效率会有很大的差距(约10~100倍)。
安全多方计算基础技术
这里只做简介,具体算法请自行查询
秘密共享
秘密分享(SS,Secret Sharing)是指数据拆散成多个无意义的数,并将这些数分发到多个参与方那里。每个参与方拿到的都是原始数据的一部分,一个或少数几个参与方无法还原出原始数据,只有把各自的数据凑在一起时才能还原出真实数据。
不经意传输
不经意传输(OT,Oblivious Transfer)是指数据发送方有n个数据,数据接收方接收其中的一个数据,且数据接收方不能获取其他的数据,数据发送方不知道接收方选择接收的数据具体是哪一个。
混淆电路
混淆电路(GC,Garbled Circuit)是指将一参与方安全多方计算协议的计算逻辑编译成布尔电路,然后将布尔电路中的每一个门进行加密并打乱加密顺序完成混淆操作。
完成混淆后,该参与方将加密电路以及与其输入相关的标签(另一方无法从标签中反推输入的信息)发送给另一参与方。另一方(作为接收方)通过不经意传输(OT)按照其输入选取标签,并在此基础上对混淆电路进行解密获取计算结果。
同态加密
同态加密(HE,Homomorphic Encryption)是指对密文计算后的结果再解密和直接对明文计算的结果一致。
通过同态加密也可以直接构造安全多方计算协议。每个参与方的输入数据都通过同态加密后发送给计算方,计算方在本地基于密文进行计算,将计算结果返回各需求方并解密获得真实的计算结果。由于各参与方的输入都是加密后进行计算,可以保证各参与方输入的隐私性。
所解决的问题
通过安全多方计算技术可以很好的解决各机构间不愿共享数据,不敢共享数据的问题,在保证各方数据安全的前提下,进行多方数据的联合计算,可以在一定程度上打消各机构共享私密数据的顾虑,愿意共享出自己的数据,联合挖掘数据价值,拓宽数据的使用维度。
联邦学习
联邦机器学习(Federated machine learning/Federated Learning),又名联邦学习。联邦机器学习是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。
联邦学习作为分布式的机器学习范式,可以有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,能从技术上打破数据孤岛,实现AI协作。
即中央服务器首先生成一个通用神经网络模型,各个参与方将这个通用模型下载至本地并利用本地数据训练模型,将训练后的模型所更新的内容上传至中央服务器,通过将多个参与方的更新内容进行融合均分来优化初始通用模型,再由各个参与方下载更新后的通用模型进行上述处理,这个过程不断重复直至达到某一个既定的标准。
在整个联邦学习的过程中,各参与方的数据始终保存在其本地服务器(只传递训练好的模型),降低了数据泄露的风险。
机密计算
机密计算是针对数据在使用过程中的安全问题所提出的一种解决方案——在计算机处理器的保护区(TEE)内处理数据。
它是一种基于硬件的技术,将数据、特定功能、应用程序,同操作系统、系统管理程序或虚拟机管理器以及其他特定进程隔离开来,让数据存储在**可信执行环境(Trusted Execution Environment,TEE)**中,即使是使用调试器,也无法从外部查看数据或者执行操作。TEE 确保只有经过授权的代码才能访问数据,如果代码被篡改,TEE 将阻止其继续进行操作。
差分隐私(Differential Privacy)
差分隐私计算即提供一种当从统计数据库查询时,最大化数据查询的准确性,同时最大限度减少识别其记录的机会,简单来说,就是保留统计学特征的前提下去除个体特征以保护用户隐私。
所解决的问题也就是当用户(也可能是潜藏的攻击者)向数据提供者提交一个查询请求时,如果数据提供者直接发布准确的查询结果,则可能导致隐私泄漏,因为用户可能会通过查询结果来反推出隐私信息。
举个例子,当不使用差分隐私技术时,我们查询 A 医院数据库,查询今日就诊的 100 个病人患病情况,返回 10 人患肺癌,同时查询昨天 99 个病人患病情况,返回 9 个人患肺癌,那就可以推测今天来的那个人张三患有肺癌,这个就暴露了张三的个人隐私了。
使用差分隐私技术后,查询 A 医院的数据库,查询今日就诊的 100 个病人患病情况,返回肺癌得病率 9.80%,查询今日就诊的 99 个病人患病情况,返回肺癌得病率 9.81%,因此无法推测剩下 1个人张三是否患有肺癌。
差分隐私保护框架分为两种:
- 交互式 - 在交互式差分隐私保护框架下,用户通过查询接口向数据拥有者递交查询请求,数据拥有者根据查询请求在源数据集中进行查询,然后将查询结果添加噪声扰动之后反馈给用户
- 非交互式 - 在非交互式差分隐私保护框架 下,数据管理者直接发布一个满足差分隐私保护的数据集,再根据用户的请求对发布数据集进行查询操作
局部差分隐私保护(Local Differential Privacy)
数据统计分析里面,本地差分隐私默认相对于全局差分隐私而言的。 从定义上来说都一样,但是针对的场景不同。
传统的差分隐私(DP)是将各方的原始数据集中到一个可信的数据中心, 然后对计算结果做添加噪音,实施差分隐私, 也被称中心化差分隐私。但是这种可信的数据中心很难实现。所以就出现了本地差分隐私(LDP)。
差分隐私技术 | 图解 |
---|---|
全局差分隐私 | |
局部差分隐私 |
本地差分隐私为了消除可信数据中心,直接在用户的数据集上做差分隐私,然后再传输到数据中心进行聚合计算,这样数据中心也无法猜测出原始数据,从而保护数据隐私。
隐私计算各类技术优缺点
技术 | 优点 | 缺点 |
---|---|---|
多方安全计算 (一堆协议栈) | 1. 能保证多方数据融合计算时的隐私安全;2. 基于密码学,计算准确度高,支持可编程通用计算。 | 1. 复杂的密码学安全会导致计算性能问题;2. 忽视了其他安全问题 |
联邦学习(一种机器学习框架) | 1. 能够解决训练阶段数据特征单一的问题;2. 各参与方只需在本地利用各自数据集进行训练,数据体量未增加,算力成本压力小。 | 1. 利用中心服务器收集的梯度及权重信息还是有可能反推出每个参与方的数据信息;2.无法规避某个参与方恶意提供虚假数据甚至病害数据;3.由于分布式参与节点计算能力不一致等现实因素,联邦学习的通信效率可能成为瓶颈 |
机密计算(一种基于硬件的方案) | 1.能解决数据存储和使用等安全问题;2. 很通用,可用于各种安全方案中;3.很高效,计算性能高 | 1.技术垄断,TEE 信任链跟CPU 厂商绑定;2.在理论上存在侧信道攻击的可能性,因为TEE与其它非可信执行环境空间共享了大量的系统资源 |
差分隐私计算(一种软件方案) | 1.能解决根据结果反推数据的问题;2.基于严格的数据理论 | 1.存在噪音意味着会影响结果的准确性;2.保护目标是计算结果而不是计算过程 |
总结
类别 | 计算过程保护 | 计算结果保护 | 计算性能 | 计算精度 | 硬件依赖 | 理论应用场景 | 计算模式 | 实际应用 |
---|---|---|---|---|---|---|---|---|
多方安全计算 | 有 | 有 | 低 | 高 | 无 | 任意计算 | 分布式 | 拍卖、薪资统计、密钥管理、联合建模 |
联邦学习 | 有 | 有 | 低 | 高 | 无 | 机器学习 | 分布式 | 联合建模 |
机密计算 | 有 | 无 | 高 | 高 | 有 | 任意计算 | 中心化 | 区块链、密钥管理、联合建模 |
差分隐私计算 | 无 | 有 | 高 | 低 | 无 | 任意计算 | 中心化 | 谷歌Gboard |
本地差分计算 | 有 | 有 | 高 | 低 | 无 | 任意计算 | 分布式 + 中心化 | 谷歌Gboard、苹果 |