【密码学】Differential Privacy差分隐私

Differential Privacy差分隐私

    • 什么是差分隐私
    • 形式化描述差分隐私
    • 实现差分隐私
    • 不足
    • 引用

什么是差分隐私

差分隐私,英文名称为differential privacy。目的为保护数据源中因微小的改动而导致的隐私泄漏问题。比如一家医院统计关于糖网病患者人数,那么其中某人是否为糖网病患者就属于差分隐私问题。

差分隐私算法要保证不法分子难以根据数据结果反推出数据的真实情况,因而泄漏隐私。

形式化描述差分隐私

我们可以用更形式化的方法描述差分隐私。首先定义两个相邻数据集,现在给定两个数据集D和D’,若它们有且仅有一条数据不一样,那我们就称此二者为相邻数据集。以上面数据集为例:假定医院患者共有n个人,他们是否为糖网病患者,形成一个集合{a1,a2,…,an}(其中ai = 0或1,0表示未患糖网病,1表示患有糖网病),那么另一个集合当中只有一个人改变了患病状态,形成另一个集合{a1’,a2’,…,an’}。也就是只存在一个i,使得ai ≠ \neq =ai ',那么这两个集合便是相邻集合。
对于一个随机化算法A(所谓随机化算法,是指对于特定的输入,该算法的输出不是固定值,而是服从某一分不,具体得到的输出有概率因素),其分别作用于两个相邻数据集得到的两个输出难以区分。差分隐私形式化的定义为:

Pr{A(D) = O} ≤ \leq e^ ϵ \epsilon ϵ . Pr{A(D’) = O}

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

实现差分隐私

那如何才能实现差分隐私呢?最简单的方法就是加噪音,也就是在输入或输出上加入随机化的噪音,以期将真实的数据掩盖掉。比较常用的是加拉普拉斯噪音(Laplace noise)。由于拉普拉斯的数学性质正好与差分隐私的定义相契合,因此很多研究和应用都采用了此噪音。还是以前面那个数据集为例,假设我们想知道到底有多少人是糖网病患者,我们只需要计算 ∑ \sum ai,那么为了掩盖具体的数据,实际输出值应为O= ∑ \sum ai’ + r’。这使得观察者分不清最终的输出是由哪个数据集产生的。
前面描述的是差分隐私的严格定义。还有一种稍微放宽一点的定义为:

Pr{A(D) = O} ≤ \leq e^ ϵ \epsilon ϵ . Pr{A(D’) = O} + δ \delta δ

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

不足

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

引用

差分隐私Differential Privacy介绍

差分隐私(一) Differential Privacy 简介

你可能感兴趣的:(密码学,密码学,算法,安全函数)