Programming Differential Privacy第四章

差分隐私的属性

1.定义差分隐私
2.解释差分隐私参数𝜖 的重要性
3.使用拉普拉斯算法强制实施不同的隐私查询
差分隐私是一个算法的属性,并非一个数据集的属性。
我们可以证明一个算法满足差异隐私;为了证明数据集满足不同的隐私,我们必须证明生成它的算法满足差异隐私。
定义满足不同隐私的功能通常称为mechanism
我们说一种机制𝐹 满足所有相邻数据集的差异隐私𝑥 和𝑥′ , 和所有可能的输出𝑆 在以下条件aaa
如果两个数据集在单个个体之间存在差异,则它们被视为邻居。请注意𝐹 通常是随机的函数,以便描述其输出的概率分布不仅仅是点分布。
Imagine that my data is present in 𝑥 but not in 𝑥′ . If an adversary can’t determine which of 𝑥 or 𝑥′ was the input to 𝐹 , then the adversary can’t tell whether or not my data was present in the input - let alone the contents of that data.
此时我们不知道是x还是x`是输入,就达到预防的效果。
𝜖 参数被称作隐私参数或者隐私预算,𝜖 提供一个旋钮来调节定义提供的“隐私量”。
给定相似输入时,小值𝜖 要求𝐹提供非常相似的输出,从而提供更高级别的隐私;大值𝜖 在输出中允许较少的相似性,因此提供较少的隐私。
我们应该如何设置𝜖 在实践中防止不良结果?没有人知道。普遍共识是𝜖 应约为1或更小,且值为𝜖 超过10可能对保护隐私没有多大作用,但这条经验法则可能非常保守。

4.1The Laplace Mechanism

差异隐私通常用于回答特定的查询。让我们考虑一下对人口普查数据的查询,而不考虑差分隐私。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')
adult = pd.read_csv("adult_with_pii.csv")

adult[adult['Age'] >= 40].shape[0]
14237

实现此查询的差异隐私的最简单方法是在其答案中添加随机噪声。关键的挑战是添加足够的噪音来满足不同隐私的定义,但不要太多,否则答案会变得太吵而不实用。为了简化这一过程,在差异隐私领域已经开发了一些基本机制,这些机制准确描述了要使用的噪声种类和数量。其中一个被称为拉普拉斯机制。
根据拉普拉斯机制定义,对于函数𝑓(𝑥) 它返回一个数字,定义如下𝐹(𝑥) 满足𝜖 -差异隐私:𝐹(𝑥)=𝑓(𝑥)+𝖫𝖺𝗉(𝑠/𝜖)
𝑠 是𝑓的灵敏度 , 和𝖫𝖺𝗉(𝑆) 表示拉普拉斯分布的采样,中心为0,刻度为𝑆 .

当ϵ越小时,数据效用越低,隐私保护程度越高;当ϵ 越大时,数据效用越高,隐私保护程度越低。

函数的灵敏度𝑓 是金额𝑓 '当输入变化1时,输出也会发生变化。现在,我们只需指出计数查询的灵敏度始终为1:如果一个查询计算数据集中具有特定属性的行数,然后我们只修改数据集中的一行,那么查询的输出最多可以更改1。因此,我们可以通过使用灵敏度为1的拉普拉斯机制和𝜖 我们的选择。现在,让我们选择𝜖=0.1.我们可以使用Numpy的random.Laplace从Laplace分布中取样。

sensitivity = 1
epsilon = 0.1
adult[adult['Age'] >= 40].shape[0] + np.random.laplace(loc=0, scale=sensitivity/epsilon)
14236.704369996492

adult[adult['Age'] >= 40].shape[0] + np.random.laplace(loc=0, scale=sensitivity/epsilon)
14243.42338442985

每次输出都会发生变化,但大多数情况下,答案都非常接近真实答案(14235),因此非常有用。

4.2多少噪音才够

我们如何知道拉普拉斯机制添加了足够的噪声来阻止数据集中个体的重新识别?首先,我们可以尝试打破它!让我们写下一个恶意计数查询,它专门用于确定Karrie Trusslove的收入是否超过5万美元。

karries_row = adult[adult['Name'] == 'Karrie Trusslove']
karries_row[karries_row['Target'] == '<=50K'].shape[0]
1

这个结果肯定侵犯了Karrie的隐私,因为它揭示了Karree的行的收入列的价值。由于我们知道如何确保使用拉普拉斯机制计算查询时的差异隐私,因此我们可以对该查询执行以下操作:

sensitivity = 1
epsilon = 0.1

karries_row = adult[adult['Name'] == 'Karrie Trusslove']
karries_row[karries_row['Target'] == '<=50K'].shape[0] + np.random.laplace(loc=0, scale=sensitivity/epsilon)

7.400192316344078

正确答案是0还是1?噪音太大,无法可靠分辨。这就是不同隐私的工作原理——这种方法不会拒绝被确定为恶意的查询;相反,它会增加足够的噪音,使得恶意查询的结果对对手毫无用处,防止恶意查询。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
局部差分隐私的操纵攻击是指攻击者试图影响隐私保护机制以获取敏感信息的行为。该攻击针对局部差分隐私机制的特性和缺点进行利用,以窃取隐私数据或干扰数据发布的结果。 局部差分隐私的目标是在保护个体隐私的前提下,提供对于整体数据集的有意义的分析结果。然而,攻击者可通过操纵自己的个体数据或其他数据的投入,来影响数据分析结果。例如,攻击者可能故意修改或篡改自己的数据,以改变数据发布的结论,或者通过协作或串通他人进行攻击。 操纵攻击的目的是干扰数据发布的结果,以推断出更多的隐私信息或获得误导性的数据分析结果。攻击者可能通过加入虚假的数据或者删除真实的数据来扰乱数据集的特性,使得发布的结果偏离真实情况。这种攻击可能会导致分析人员得出错误的结论或泄露隐私信息。 对抗局部差分隐私操纵攻击的方法包括对数据进行更严格的验证和校验、采用更复杂的算法进行数据发布,以及增加对攻击行为的监测和检测。此外,用户和数据发布者在数据分享和数据发布过程中需要保持警惕,增强对潜在攻击的认识和防范意识。 总之,局部差分隐私的操纵攻击是一种针对隐私保护机制的攻击行为,可通过操纵个体数据或其他数据的投入来干扰数据发布的结果。为了应对这种攻击,需要采取相应的安全措施和对攻击行为进行检测和防范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值