差分隐私(Differential Privacy)

文章介绍了差分隐私的概念,旨在保护个体数据隐私,防止通过数据分析推断出个人敏感信息。差分隐私通过引入随机噪声来模糊查询结果,确保即使知道大部分数据,也无法确定单个个体的具体信息。拉普拉斯机制和高斯机制是两种常用的实现方法,前者适用于单个敏感度的查询,后者在满足(ε,δ)-差分隐私时更具灵活性。文章还详细解释了这两种机制的工作原理和数学证明。
该文章已生成可运行项目,

目录

一、对于隐私的理解

二、对于差分隐私的理解

三、 前提知识

3.1 符号说明

3.2 数据库

3.3 数据库的距离

3.4 概率单纯形

3.5 随机算法

四、 差分隐私的定义

五、差分隐私中常用的随机化算法(机制)

5.1 敏感度

5.2 拉普拉斯机制(Laplace mechanism)

1.拉普拉斯分布

2.实现拉普拉斯机制

3.拉普拉斯机制满足 (ε,0)-差分隐私的数学证明

5.3 高斯机制

1.高斯分布(正态分布)

2.高斯机制

3.拉普拉斯机制满足 (ε,δ)-差分隐私的数学证明

一、对于隐私的理解

        在不同的考量下,隐私的定义也不一样。

        百度百科给出的定义:隐私就是一种与公共利益、群体利益无关,当事人不愿意他人知道或他人不便于知道的信息。

        目前普遍比较接受的定义是:“单个用户的某一些属性” 可以被看做是隐私。注意该说法所强调的是“单个用户”,也就是说,如果是一群用户的某一些属性,那么可以不看做隐私。

        比如,医院发布调查报告说,抽烟的人会有更高几率得肺癌,这个不泄露任何隐私。但是如果医生说,张三因为抽烟,所以有x%的概率得肺癌,这就是个人隐私的泄露。

        如果我们拥有一个数据库,那么对精确的个体信息的查询与检索都会泄露隐私,因此对于个人数据的加密是最基本的保护隐私策略。然而,就算我们对个人数据进行了加密,对一群用户的某些属性的查询,以及对查询结果进行加工与建模,也就是“数据分析”,往往也会泄露个人隐私。

        那通过分析数据怎么获取个人隐私呢?

        比如要查询一个大型医疗数据库,如果我们知道A的信息在数据库中,就可以利用一种叫差分攻击的方法得到个体的信息。可以查询有多少人患糖尿病,假如有100个人,然后条件查询,有多少不叫A的人患糖尿病,假如有99个人,这样经过差分,就得到了A患糖尿病。

        差分隐私就是针对差分攻击的隐私保护框架。

二、对于差分隐私的理解

        差分隐私想做的事情就是即使攻击者知道发布的100个人的信息,以及A之外另外99个人的信息,也没有办法对比这两个信息之后获取A的信息。

        那如何做到这一点呢?

        差分隐私就是要用一种方法让攻击者查询100个信息和查询99个信息得到的结果是一致的,这样攻击者就无法找出A的信息。

        那如何做到让查询结果一致呢?

        就是在查询结果里加入随机性/噪声。 让查询者无法根据返回的带噪声的结果推断出原始数据。

三、 前提知识

3.1 符号说明

  •  f(x)表示一个查询函数,比如查询count值,最大值,均值,梯度等等。
  • R 表示一个实数的概念,上标如果不写表示一维数据,比如最大值;如果是R^n表示n维数据,比如梯度。 x_{i}\in R^{n} 代表x_{i} 是n维实数集,即x_{1},x_{2}, ... ,x_{n},每个元素是n维向量,向量中的每个分量是实数
  • O是一个离散集合,|O|代表集合中元素的数量
  • Y_i和θ都表示一个随机噪声,可以服从拉普拉斯分布或者高斯分布。
  • x,x′ 表示两个数据库,且只相差了一个样本。
  • M(x) 表示最终的一个确定的查询结果f(x)加上一个不确定的随机噪声Y_i/θ得到的最终结果。
  • ε表示一个很小的值,用来衡量隐私预算。 δ 是一个松弛项,表示可以接受差分隐私在一定程度上的不满足。

 3.2 数据库

        将数据库x视为来自全集 \chi 的记录的集合,,其中每一个x_i表示全集\chi中第i个数据在x数据库中的数量。(设\mathbb{N}表示所有非负整数的集合,包括0)。在这种表示中,可以度量两个数据库x和y的ℓ1距离。

举例:

全集\chi

        令  ,即\chi中第1个数据在x中的数量为1,第2个数据的数量为0,第3个数据的数量为2....

则数据库x为:

3.3 数据库的距离

        衡量两个数据库X和Y的差异是用L1距离来表示。

        数据库x的L1范数用||x||_1表示,其定义为:

         数据库 x 和 y的 L1 距离是||x-y||_1 。

         ||x||_1​描述了数据库x 的大小,即该数据库包含了多少条记录。而||x-y||_1​表示了x 和y 之间的差距是多大。对于两个数据库 x 和 y ,若||x-y||_1=1 ,则它们被称为相邻数据库,也就是它们仅在某一个类型的数据上有差异。 

         ||x||_1 的直观理解是数据库中各种类型的记录之和,所以实际上就是数据库x 的记录数量。  而||x-y||_1表示了两个数据库之间,各种类型的记录的数量之差。比如 x 有A型数据2条,B型数据3条;y 有A型数据2条,B型数据4条。则 ||x||_1=5 , ||y||_1=6||x-y||_1=|2−2|+|3−4|=1 

3.4 概率单纯形

       单纯形(simplex):一个k维单纯形是指包含k+1个顶点的凸多面体,一维单纯形是一条线段,二维单纯形是一个三角形,三维单纯形是一个四面体,以此类推推广到任意维。“单纯”意味着基本,是组成更复杂结构的基本构件。

       概率单纯形(probability simplex):是一个数学空间,上面每个点代表有限个互斥事件之间的概率分布。该空间的每条坐标轴代表一个互斥事件,k−1维单纯形上的每个点在k维空间中的坐标就是其k个互斥事件上的概率分布。每一点的坐标(向量)包含k个元素,各元素非负且和为1。

       如下图所示,三个事件发生的概率分布形成一个二维的概率单纯形,上面每个点在三个事件上发生的概率之和为1。

         形式化定义:

        给定一个数目有限的离散集O,可以将O看作是有限数量的互斥事件,定义O上的概率单纯形为Δ(O),满足

        Δ(O)是一个集合,集合中每一个元素是一个|O|维向量该向量代表了一个离散型随机变量的概率分布。 Δ(O)代表了一个有|O|种取值的离散型随机变量的所有可能的概率分布,其实就是在事件集O上所有可能的概率分布的集合。

        比如O={1,2,3,4,5},Δ(O)就是随机变量取值为1,2,3,4,5的概率分布的集合,这里假设Δ(O)中包含三个元素,分别为,即:

         表示取值分别为1,2,3,4,5的概率。

3.5 随机算法

        随机算法指,对于特定输入,该算法的输出不是固定值,而是服从某一分布。

        原论文中的定义:一个随机算法M有定义域A、离散的值域B和一个映射M:A→Δ(B)。一个输入a∈A,算法M的输出为M(a)=b,以概率(M(a))b成立,其中b∈B。

本文章已经生成可运行项目
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值