【差分隐私】基本原理与入门级应用 | 京东云技术团队

京东云开发者
• 阅读 365

差分隐私(Differential Privacy,DP)是密码学中的一种手段,可以提高从统计数据库进行数据查询的准确性,同时帮助最大限度减少识别其具体记录的机会。DP一般分为:CDP(Centralized Differential Privacy)、LDP(Local Differential Privacy)。

一、CDP

1.1 基本定义

【差分隐私】基本原理与入门级应用 | 京东云技术团队

保护效果:查询者无法判断特定样本是否在一个数据集当中。

1.2 应用举例

【差分隐私】基本原理与入门级应用 | 京东云技术团队

1.3 全局敏感度

【差分隐私】基本原理与入门级应用 | 京东云技术团队

1.4 数据裁剪

COUNT函数的GS始终为1,但是SUM函数的GS就不好说了,因为这要看SUM作用于哪个属性列,如:年龄和收入应用SUM就有很大差异。如1.2所述,我们应用Laplace扰动机制时需要f(x)(此处为SUM)的有界全局敏感度,但SUM显然不容易做到,因此需要对待处理的列进行裁剪处理,以得到f(x)的有界全局敏感度。有两点需要特别注意:

• 在裁剪造成的信息损失与满足差分隐私所需要的噪声间进行trade off,一般裁剪后要尽可能保留100%的信息。

• 不能通过查看数据集来确定裁剪边界,这可能会泄露信息,同时也不满足差分隐私的定义。

那我们应该如何对属性列进行裁剪动作,一般有如下两个做法:

• 根据数据集先天满足的一些性质来确定裁剪办界。如人的年龄一般在0~125岁之间。

• 采用差分隐私问询估计选择的边界是否合理。先通过数据变换把属性列映射为非负值,然后将裁剪下界置0,逐渐增加上界,直至问询输出不变。

【差分隐私】基本原理与入门级应用 | 京东云技术团队

1.5 向量值函数及其敏感度

【差分隐私】基本原理与入门级应用 | 京东云技术团队

1.6 Laplace机制

【差分隐私】基本原理与入门级应用 | 京东云技术团队

1.7 Gaussian机制

【差分隐私】基本原理与入门级应用 | 京东云技术团队

1.8 Laplace vs Gaussian

向量值Laplace机制需要使用L1敏感度,而向量值Gaussian机制L1和L2敏感度都可以使用。在L2敏感度远低于L1敏感度的场景下,Gaussian机制添加的噪声要小得多。向量值Laplace和Gaussian的发布规则为:

【差分隐私】基本原理与入门级应用 | 京东云技术团队

1.9 指数机制

前述Laplace和Gaussian机制的回复都是数值型的,只需要直接在回复的数值结果上添加噪声即可。如果我们想从一个备选回复集合中选出最佳结果,同时又保证回复过程满足差分隐私,那应该怎么办呢?一种可行的方法是使用指数机制。首先,定义一个备选回复集合;然后,再定义评分函数,评分函数输出备选集合中每个回复的分数;分数最高的回复就是最大回复。指数机制通过返回分数近似最大的回复来实现差分隐私保护。

【差分隐私】基本原理与入门级应用 | 京东云技术团队

报告噪声最大值

【差分隐私】基本原理与入门级应用 | 京东云技术团队

1.10 组合性与后处理性

【差分隐私】基本原理与入门级应用 | 京东云技术团队

二、LDP

2.1 LDP基本定义

【差分隐私】基本原理与入门级应用 | 京东云技术团队

2.2 LDP经典算法

【差分隐私】基本原理与入门级应用 | 京东云技术团队

2.3 LDP举例-随机应答

有n个用户,假设X病患者的真实比例为Π,我们希望对这个比例进行统计。于是我们发起一个敏感问题:“你是否为X病患者?”,每个用户的答案是yes or no。出于隐私性考虑,用户可能不会给出正确答案[5]。

我们可以对每位用户的回答加一些数据扰动。比如:用户正确回答的概率为p,错误回答概率为(1-p)。这样就不会准确知道每位用户的真实答案,相当于保护了用户隐私。按此规则我们统计回答yes与no的用户占比。

【差分隐私】基本原理与入门级应用 | 京东云技术团队

DP在机器学习领域的应用、基于Gaussian机制实现LDP的原理请听下回分享。

参考资料

1.Balle B, Wang Y X. Improving the gaussian mechanism for differential privacy: Analytical calibration and optimal denoising[C]//International Conference on Machine Learning. PMLR, 2018: 394-403.

2. https://programming-dp.com/

3.Cynthia Dwork, Aaron Roth, and others. The algorithmic foundations of differential privacy. Foundations and Trends® in Theoretical Computer Science, 9(3–4):211–407, 2014.

4.Xiong X, Liu S, Li D, et al. A comprehensive survey on local differential privacy[J]. Security and Communication Networks, 2020, 2020: 1-29.

5.LDP随机响应技术举例: https://zhuanlan.zhihu.com/p/472032115

作者:京东科技 李杰

内容来源:京东云开发者社区

点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
Peter20 Peter20
3年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Wesley13 Wesley13
3年前
Vtiger CRM 几处SQL注入漏洞分析,测试工程师可借鉴
本文由云社区发表0x00前言干白盒审计有小半年了,大部分是业务上的代码,逻辑的复杂度和功能模块结构都比较简单,干久了收获也就一般,有机会接触一个成熟的产品(vtigerCRM)进行白盒审计,从审计的技术难度上来说,都比公司内的那些业务复杂得多,而真正要提高自己技术水平,更应该看的也是这些代码。vtigerCRM是一个客
Stella981 Stella981
3年前
Kerberos无约束委派的攻击和防御
 0x00前言简介当ActiveDirectory首次与Windows2000Server一起发布时,Microsoft就提供了一种简单的机制来支持用户通过Kerberos对Web服务器进行身份验证并需要授权用户更新后端数据库服务器上的记录的方案。这通常被称为Kerberosdoublehopissue(双跃点问题),
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql中时间比较的实现
MySql中时间比较的实现unix\_timestamp()unix\_timestamp函数可以接受一个参数,也可以不使用参数。它的返回值是一个无符号的整数。不使用参数,它返回自1970年1月1日0时0分0秒到现在所经过的秒数,如果使用参数,参数的类型为时间类型或者时间类型的字符串表示,则是从1970010100:00:0
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
3年前
Noark入门之线程模型
0x00单线程多进程单线程与单进程多线程的目的都是想尽可能的利用CPU,减少CPU的空闲时间,特别是多核环境,今天咱不做深度解读,跳过...0x01线程池锁最早的一部分游戏服务器是采用线程池的方式来处理玩家的业务请求,以达最大限度的利用多核优势来提高处理业务能力。但线程池同时也带来了并发问题,为了解决同一玩家多个业务请求不被
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_