一、引言
在大数据的时代,越来越多的服务和产品是围绕用户数据(隐私)建立的。这样虽然带来了个性化的服务,提高了服务质量和精度,但是在数据收集、使用以及公布的过程中,用户隐私不可避免的暴露在外。历史上就有很多公开的数据暴露了用户隐私的案例,比如 AOL 和 Netflix 隐私泄露事件。
我们的第一篇文章 [6] 主要回顾了几种典型的保护隐私的方法和不足:k- anonymity(k-匿名化),l-diversity(l-多样化),t-closeness,并简单介绍 了 ε-differential privacy(差分隐私)。这篇文章,我们着重讲解 ε-differential privacy(差分隐私) 的背景和典型应用。文章从第二章开始,主要讲解差分隐私的定义和典型架构,典型的噪音添加方法,中心化差分隐私和本地化差分隐私的区别,以及合成定理。接下来,文章在第三章主要讲解本地化差分隐私的方法和在工业界的应用。其中重点讲解 Google 的 RAPPOR 差分隐私系统 [11] 和苹果的差分隐私系统 [9]。
二、差分隐私背景介绍
差分隐私的概念最早由 Cynthia Dwork 等人在 2006 年提出。区别以往的 ad-hoc 隐私保护方案(比如 k-anonymity,l-diversity,t-closeness),差分隐私的主要贡献就是提供了个人隐私泄露的数学的定义。差分隐私的主要目的就是提供最大化 utility 的查询结果的同时还保证个人隐私的泄露不超过预先设定的 ε。
差分隐私分为中心化差分隐私和本地化差分隐私。两种差分隐私都可以保障单一用户的 ε-差分要求,但应用的场景略有不同。
2.1 中心化和本地化差分隐私
图 1: (中心化)差分隐私处理流程框架。数据收集者从用户那里收集数据, 供数据分析者使用。
中心化差分隐私. 概况来讲,差分隐私就是保证一个统计数据库的查询结果不会受到任何单一用户的隐私数据的影响。因此,攻击者就无法推测任何单一用户的数据。通常模型里面会考虑两个相邻的数据库(neighboring databases)D 和 D′,其中只有一个用户的数据不同(增加或者删减一个记录)。ε-差分隐私(ε-DP)的定义如下:
Definition 2.1. ε-Differefial Privacy (ε-DP) A randomized function Agives ε-differential privacy iff for any two neighboring databases D and D′and for any output O of A,
这里的随机函数 A 是运行在服务器上面的,本地用户不需要运行任何差分隐私算法。ε 可以看做是隐私预算,它用来量化一个用户隐私泄露的风险。ε 的值越大,隐私泄露的风险就越大,反之,ε 越小,隐私泄露的风险就越小。在现实中,个人用户的隐私还会有随着查询的次数增加的风险。这个问题就是所谓的组合定理 [3, 8]。
一个典型的差分隐私的架构由三部分组成(见图2):(1)数据源,一般为拥有数据的个人用户;(2)数据收集者,一般为大型组织或公司;和(3) 数据分析者,包含任何对数据有兴趣的个体和组织。这样的差分隐私又称作中心化差分隐私。
图 2: 本地化差分隐私的处理流程框架。区别于中心化差分隐私需要可信的 数据收集者,本地化差分隐私不需要可信的数据收集者。本地化差分隐私. 与中心化差分隐私对应的就是本地化差分隐私。ε-本地化差分隐私(ε-LDP)的定义如下:
Definition 2.2. ε-Local Differefial Privacy (ε-LDP) A randomized function A gives ε-differential privacy iff for any two inputs x and x′ and for any output y of A,
这里的随机函数 A 是单独运行在每一个用户本地,中央数据库不需要运行任何差分隐私算法。本地化差分隐私没有数据库 D 和相邻数据库 D′的概念。因此需要特定的噪音算法来应对 ε-LDP 的要求(算法见2.2章节)。
2.2 典型算法
概况来讲,差分隐私的主要方法就是扰动(perturbation)和采样(sampling)。对于扰动方案,就是对输入数据 (input),中间数据 (intermediate)或者输出数据 (output) 进行扰动,加入噪音(见图3),使其满足 ε-差分隐私。对于输入数据扰动的典型方案就是随机响应(Randomized Response), 对于输出数据扰动的典型方案就是拉普拉斯算法(Laplace algorithm)。中间数据可以看做前面一个子阶段的输出,也可以看做是后面子阶段的输入,因此可以灵活选择输入或者输出扰动的算法。
图 3: 扰动方法加入噪音的三种位置:1)输入数据 (input),2)中间数据(intermediate),和 3)输出数据 (output)
对于采样方法,典型的算法分为两步。假设查询函数为 f。1. 把数据分成k份,对每份数据运行查询函数f,得到查询结果f(d1),f(d2),...,f(dk)。
2. 对查询结果应用任何一个满足 ε-差分隐私的算法(例如拉普拉斯算法 或随机响应),得到最后结果。
这样做的好处就是最后 ε-差分隐私的算法运行在一个较小的数据集 f (d1 ), f (d2 ), . . . , f (dk )上面,可以提高差分隐私的运行效率。详细资料可以参考文章 [7]。
2.2.1 拉普拉斯算法
<