草庐IT

差分隐私(Differential Privacy)

培根芝士 2023-09-27 原文

差分隐私(Differential privacy)最早于2008年由Dwork 提出,通过严格的数学证明,使用随机应答(Randomized Response)方法确保数据集在输出信息时受单条记录的影响始终低于某个阈值,从而使第三方无法根据输出的变化判断单条记录的更改或增删,被认为是目前基于扰动的隐私保护方法中安全级别最高的方法。

差分隐私保护的是数据源中一点微小的改动导致的隐私泄露问题。比如有一群人出去聚餐,那么其中某人是否是单身狗就属于差分隐私。

差分隐私,顾名思义就是用来防范差分攻击的,举个简单的例子,假设现在有一个婚恋数据库,2个单身8个已婚,只能查有多少人单身。刚开始的时候查询发现,2个人单身;现在张三跑去登记了自己婚姻状况,再一查,发现3个人单身。所以张三单身。这里张三作为一个样本的的出现,使得攻击者获得了奇怪的知识。而差分隐私需要做到的就是使得攻击者的知识不会因为这些新样本的出现而发生变化

为了更形式化地描述差分隐私,我们需要先定义相邻数据集。现给定两个数据集D和D’, 若它们有且仅有一条数据不一样,那我们就称此二者为相邻数据集。以上面数据集为例:假定有 n 个人,他们是否是单身狗,形成一个集合  (其中 =0或1),那么另一个集合当中只有一个人改变了单身状态,形成另一个集合  ,也就是只存在一个 i 使得,那么这两个集合便是相邻集合。

那么对于一个随机化算法 A (所谓随机化算法,是指对于特定输入,该算法的输出不是固定值,而是服从某一分布),其分别作用于两个相邻数据集得到的两个输出分布难以区分。差分隐私形式化的定义为:

也就是说,如果该算法作用于任何相邻数据集,得到一个特定输出 O 的概率应差不多,那么我们就说这个算法能达到差分隐私的效果。也就是说,观察者通过观察输出结果很难察觉出数据集一点微小的变化,从而达到保护隐私的目的。

那如何才能得到差分隐私呢?最简单的方法是加噪音,也就是在输入或输出上加入随机化的噪音,以期将真实数据掩盖掉。比较常用的是加拉普拉斯噪音。由于拉普拉斯分布的数学性质正好与差分隐私的定义相契合,因此很多研究和应用都采用了此种噪音。还是以前面那个数据集为例,假设我们想要知道到底有多少人是单身狗,我们只需要计算​​​​​​​,那么为了掩盖具体数值,实际输出值应为  ,相应地,另一个数据集输出的是​​。这使得观察者分不清最终的输出是由哪个数据集产生的。

前面描述的是差分隐私的严格定义。还有一种稍微放宽一点的定义为:

其中 δ是一个比较小的常数。要获取这种差分隐私,我们可以使用高斯噪音(Gaussian noise)。

当然,对输入或输出加噪音会使得最终的输出结果不准确。而且由于噪音是为了掩盖一条数据,所以很多情况下数据的多少并不影响加的噪音的量。那么在数据量很大的情况下,噪音的影响很小,这时候就可以放心大胆地加噪音了,但数据量很小的情况下,噪音的影响就显得比较大,会使得最终结果偏离准确值较远而变得不可用。也有些算法不需要加噪音就能达到差分隐私的效果,听起来很美好,但这种算法通常要求数据满足一定的分布,这一点在现实中通常很难满足。

由于传统的完全差分隐私(Pure Differential Privacy)基于最严格的假设:最大背景攻击,即假设攻击者拥有除了某一条记录以外的所有背景信息,而这在实际情况中是十分罕见的。因此完全差分隐私对于隐私性的保护过于严苛,极大影响了数据的可用性,目前实际场景中主要采用的是带有松弛机制的近似差分隐私( Approximate Differential Privacy)。

差分隐私分类:

  • 客户端侧采用的差分隐私机制一般被称为本地化(Local)差分隐私
  • 通过可信中间节点进行扰动可以被称为分布式( Distributed)差分隐私
  • 由服务器完成的扰动被称为中心化(Centralized)差分隐私
  • 而融合了上述两种或以上的差分隐私方法则被称为混合( Hybrid )差分隐私

(1)本地化差分隐私

本地化差分隐私意味着对数据的训练以及对隐私的保护过程全部在客户端就可以实现。直觉来看,这种差分隐私机制显然优于其他方案,因为用户可以全权掌握数据的使用与发布,也无需借助中心服务器,最有潜力实现完全意义上的去中心化联邦学习。

谷歌公司的Abadi等于2016年在传统机器学习中实现了差分隐私,并在当时就提出了在手机、平板电脑等小型设备上训练模型的设想,认为该差分隐私机制凭借轻量化的特点,更加适用于本地化、边缘化场景。

但是,本地化差分隐私本身及其在联邦学习的应用中仍然存在着不少问题。首先是它所需求的样本量极其庞大,例如前文所述的Snap公司将本地化差分隐私应用到垃圾邮件分类器的训练中,最终收集了用户数亿份样本才达到较高的准确度。谷歌、苹果、微软公司在用户设备上大量部署了本地化差分隐私,用来收集数据并进行模型训练,相较无噪模型的训练需要更多的数据量,往往多达2个数量级。其次,在高维数据下,本地化差分隐私要取得可用性、隐私性的平衡将会更加困难。

另外,在去中心化的联邦学习场景中,由于没有中心服务器的协调,参与者无法得知来自其他参与者的样本信息,因此很难决定自己所添加随机噪声的大小,噪声的分布不均将会严重降低模型性能。

(2)中心化差分隐私

差分隐私方法最初被提出时大多采用中心化的形式,通过-一个可信的第三方数据收集者汇总数据,并对数据集进行扰动从而实现差分隐私。B2C架构下的联邦学习同样可以在中心服务器上实现这种扰动。在服务器端收集用户更新后的梯度,通过逐个加噪的方式来隐藏各个节点的贡献;并证明了中心化加噪方案可以实现用户级别的差分隐私而不仅仅是本地化方案的数据点级别,这意味着它不会暴露出任何一个曾参与过训练的用户;最后通过实验证实了这种方法的模型训练效果要优于本地化差分隐私。

中心化差分隐私在实际应用中同样存在缺陷,因为它受限于一个可信的中心化服务器,但是很多场景下服务器并不可信。因此,可以采用分布式差分隐私来作为本地化与中心化的折中,或采用混合差分隐私回避这两者的部分缺陷。

(3)分布式差分隐私

分布式差分隐私指的是在若干个可信中间节点上先对部分用户发送的数据进行聚合并实施隐私保护,然后传输加密或扰动后的数据到服务器端,确保服务器端只能得到聚合结果而无法得到数据。该方案需要客户端首先完成计算并进行简单的扰动(例如较高隐私预算的本地化差分隐私)或加密,将结果发送至一个可信任的中间节点,然后借助可信执行环境(TEE)、安全多方计算、安全聚合(Secure Aggregation)或安全混洗(Secure Shuffling)等方法,在中间节点实现进一步的隐私保护,最终将结果发送至服务器端。

Bittau等于2017年提出了一种安全混洗框架Encode- Shuffle-Analyze(ESA),通过在客户端与服务器端额外增加一次匿名化混洗的步骤,允许用户在本地只添加少量噪声就实现较高级别的隐私保护。此后,Erlingsson等、Cheu等均对此框架进行了改进,并考虑了与联邦学习的结合。类似的分布式差分隐私解决方案同样都兼具了本地化与中心化差分隐私的优势,既不需要信任等级极高的服务器,也不需要在本地添加过多噪声。但相对的,分布式差分隐私普遍需要极高的通信成本。

本地化、中心化与分布式差分隐私的区别与联系如表所示:

(4)混合差分隐私

混合差分隐私方案由Avent等提出,它通过用户对服务器信任关系的不同对用户进行分类。举例而言,最不信任服务器的用户可以使用最低隐私预算的本地化差分隐私,而最信任服务器的用户甚至可以直接发送原始参数;服务器也将根据用户的信任关系对数据进行不同程度的处理。该方案的问题是同样需要一定的通信成本,并且还需要付出额外的预处理成本以划分信任关系。

有关差分隐私(Differential Privacy)的更多相关文章

  1. ruby - 如何在尊重隐私的情况下动态调用方法 - 2

    使用动态方法调用(#send或#method),方法的可见性将被忽略。有没有一种简单的方法可以动态调用调用私有(private)方法失败的方法? 最佳答案 据我所知-你需要public_send方法:-----------------------------------------------------Object#public_sendobj.public_send(symbol[,args...])=>objFromRuby1.9.1-----------------------------------------------

  2. javascript - JavaScript 中的隐私 - 2

    函数作用域提供了JavaScript中唯一的隐私。所以规范的:functionCtor(dep1,dep2){this._dep1=dep1;this._dep2=dep2;}Ctor.prototype.foo=function(){//usethis._dep1/2...}...有问题,因为它没有为注入(inject)的依赖项提供封装。提供真正封装的替代方案(尽管在foo的位置方面略有不同)可能是:functionfactory(dep1,dep2){return{foo:partial(foo,dep1,dep2),//orusebind(partialcouldbealibra

  3. javascript范围隐私破坏? - 2

    所以我刚才在处理一个javascript项目时遇到了一些非常奇怪的事情,这里有一个我感到困惑的情况的简化示例:functiondoSomething(){for(vard=0;d当您调用doSomething()时,可以在第二个for循环中访问shouldBePrivate变量。难道这不可能吗? 最佳答案 javascript中的所有局部变量都具有函数作用域而不是block作用域(至少在ECMAScript2015之前)。这意味着函数内声明的变量可用于整个函数。您指的是block作用域。不幸的是,在ECMA2015之前,Javasc

  4. 简单差分放大器和套筒式共源共栅放大器Cadence仿真 - 2

    选择SMIC180里带的n33,p33,在自己的工作库中,新建cell简单五管差分放大器 套筒式共源共栅放大器偏置电压输入范围需要算一下画图规范:1电路里不能加testbench,仿真前要先封装好2op要画成三角形3衬底电压接地接VDD要画出线,区分明显4NMOS接地应该用线标LABEL5一个节点不能连四个6输入可以VIPVIN,分清很重要主要问题:输入端的同乡输入,不能反向输入,test时候反向和输出短接。学习笔记:1运放每一级都有一个极点2cascode电压裕度不太够的时候,取VOV为100mv  正常情况电压裕度够,取VOV为300mv左右  正常情况电压裕度不够,取VOV为200mv左

  5. go - 在启用隐私的链代码之间传递查询 - 2

    我有两个链码——我们称它们为A和B——我试图让A在启用隐私的设置中调用B上的方法。下面显示了我尝试进行的那种调用的示例。func(e*ChaincodeA)someFuncOnChaincodeA(stub*shim.ChaincodeStub,args[]string)([]byte,error){//DostuffnewArgs:=[]string{"somevalue1","somevalue2"}msg,err:=stub.InvokeChaincode(chaincodeBName,"someFuncOnChaincodeB",args)iferr!=nil{fmt.Prin

  6. 区块链网络的隐私计算 - 2

    在数字化建设不断推进的过程中,数据成为了我们一笔全新的资产和财富,相应的,我们对于数据的隐私也越来越重视。区块链利用去中心化的特点,将数据归还给用户,使得数据的价值能够释放,而区块链对于数据的加密编码机制,更是为数据的隐私提供保护。隐私计算发展存在的矛盾区块链在最初建立之时,便是追求最大程度的去中心化和最大程度的“匿名”隐私保护。区块链的非对称加密生产了一对具有数学关系,但不可逆推的私钥和公钥。私钥保存在用户手中,公钥则用于对其他同样加密的数据进行识别和交互。区块链的这种机制,理论上来说,数据是拥有很高的隐私性。但是在实际中,由于加密技术的不完善,这种隐私保护并非是绝对性的,在当前,区块链中更

  7. go - 在启用安全和隐私的情况下开始对等时出错 - 2

    当我尝试使用启动对等体时peernodestart出现以下错误hyperledger@linux-box:/opt/gopath/src/github.com/hyperledger/fabric$peernodestart20:42:02.999[crypto]main->INFO001Loglevelrecognized'info',settoINFO20:42:03.017[main]serve->INFO002Securityenabledstatus:true20:42:03.017[main]serve->INFO004Privacyenabledstatus:true20

  8. windows - GitKraken 推送失败,隐私限制 - 2

    我想在Windows10上试用GitKraken,但我一直收到这个错误Pushfailedonrefs/heads/master:pushdeclinedduetoemailprivacyrestriction我不想更改GitHub上的隐私设置,你知道如何解决这个问题吗? 最佳答案 作为documentedatontheGitHubblog,发生这种情况是因为您尝试推送包含您的真实电子邮件地址的提交,并且您已将GitHub配置为阻止这样做的推送。首先,运行gitconfig--show-origin--getuser.email找出

  9. 刚刚和ChatGPT聊了聊隐私计算 - 2

    开放隐私计算ChatGPT最近太火了,作为一个背后有庞大数据支撑,而且还在不断进化的人工智能,每个人都想和它聊一聊。我们也不例外,于是刚刚和它聊了聊隐私计算那些事儿。先来几个行业问题,毕竟它背后有所有行业新闻、论文、产业消息。我:你觉得隐私计算这个行业未来前景怎么样?ChatGPT:作为一名AI,我认为隐私计算这个行业未来的前景非常好。在数字化时代,大量的个人数据被收集和存储,保护用户隐私已经成为一项重要的任务。隐私计算是一种新兴的技术,可以在保护隐私的前提下,对数据进行处理和分析。这种技术可以应用于各种场景,比如医疗、金融、智能家居等领域,有着广阔的市场前景。同时,隐私计算也符合当今社会的发

  10. “星河杯”隐私计算大赛新闻发布会在京召开 - 2

    4月24日下午,“星河杯”隐私计算大赛新闻发布会在京召开。本次大赛由中国信通院、中国通信学会、隐私计算联盟共同主办,中移动信息技术有限公司、联通数字科技有限公司、天翼电子商务有限公司、中国通信标准化协会大数据技术标准推进委员会联合协办,北京国际大数据交易所、贵阳大数据交易所、深圳数据交易所提供生态支持,FATE开源社区、隐语开源社区、隐私计算联盟开源工作组提供技术支持,DataFountain提供竞赛平台支持。当前大赛进展火热,截至会前,大赛已累计吸引1000余名选手、800余支团队参赛。本次发布会汇报了大赛进展情况,宣布了评审阶段正式启动,公布了大赛组委会和专家委员会名单。会上多位专家学者进

随机推荐