数据挖掘 | 数据隐私(2) | 差分隐私 | 数据重构化攻击(Reconstruction Attacks)
L2-Reconstruction Attacks
本节课的目的在于正式地讨论隐私,但是我们不讨论算法本身有多隐私,取而代之去讨论一个算法隐私性有多么的不可靠。并且聚焦于 Dinur 与 Nissim 在论文所提出的一些启发差分隐私的理论。
同时,我们会重点分析一种称为重构攻击(Reconstruction Attacks)的攻击形式。
裂解聚合(Cracking Aggregation)
聚合(Aggregation)是一种常用的隐私保护方式,例如说在人口中将相同特征的个体聚合在一起
这是一个典型的例子

其标为\(D\)的因为数量太少而被抛弃
- 首先注意到表中有4位黑人,三位女黑人,为此可以推断出有一位男黑人
- 然后再通过\(2B\)行通过排列组合以及中位数和平均数推断出三位公民的年龄大致处于

总结反思
- 虽然发动聚合裂解攻击都是一个\(NP\)难问题,但是通过人工启发式的做法就能排除掉大部分的无效数据
- 同理这种攻击在美国2010年人口普查中足以重构出\(46%\)的人口的小数据,同时对于\(71\)的人口,其误差不大于一年。通过一些附加的商业数据集,可以重新辨别出\(50\)万人的姓名
查询(Queries),全然非隐私(BNP)以及Dinur-Nissim攻击
从这里开始严谨完备地定义我们的模型。
- 给定一个带有几个数据(points)的列表
- 首先定义每一个数据为行(rows)
- 定义特征或者说每条数据的维度为列(columns)
- 有一些特征为唯一标识符,例如说名字,邮政编码以及出生年月日和性别等,这里的标识符都是完全公开的
- 其中一个二进制位特征作为使用的隐私符号
- 其中\(d\in \{0,1\}^n\)为隐私符的向量

模型架构
对于一个数据分析器(Data analyst)会对列表执行一系列的查询(Queries),而且一个管理者(Curator)则通过手段去保护数据集中每个人的隐私
对于一个具体的数据分析器有能力去询问有多少符合条件的人其隐私码为\(1\),例如说:“叫作爱丽丝或者查理再或者戴维”的查询结果为\(2\)。
再一步抽象起见,一个数据分析器有能力给出一个向量来查询指定的人,例如说给出一个向量\(S\in\{0,1\}^n\),其中的\(1\)为欲查询的个人而\(0\)为非查询的个人。称为子集查询(Subset queries),这种指定查询可能会异常复杂,但是我们暂且避之不谈,当然后面关于Cohen-Nissim攻击的部分会提到他。
对于查询\(S\)数学表述:
\]
当管理者接受到一个查询集\(S\),然后就会返回一个响应(response),称为\(r(S)\)。也就是说整个流程简化为:
\]
当然这意味着就会极易造成侵犯隐私,为此分析器只能执行当个查询\(S=\{i\}\),以揭示某个人\(i\)的隐私符。
理所当然,管理者会输出一个带噪音的\(A(S)\):具体来说,就是输出一个\(r(S)\),其中\(r(S)\)对于某个界限\(E\),符合\(|r(S)-A(S)|\le E\)。留意到其差值\(r(S)-A(S)\)并不一定是随机分布的,而管理者可能输出符合与\(A(S)\)存在距离\(E\)的\(r(S)\)
定义(1)
若一个算法是完全非隐私(Blatantly Non-Private,缩写为\(BNP\)),那么攻击者将可以重建一个数据库\(c\in \{0,1\}^n\),与真正数据库\(d\)完全匹配,而未能识别的条目数量为\(o(n)\)。
如果一个算法是\(BNP\)的,那么这个算法之下毫无隐私可言。这就是重构攻击(reconstruction attack),随后我们可以证明出一般的方案都是\(BNP\)
定理(2)
如果一个分析器可以访问\(2^n\)次的子集查询,而管理者可以加入界限\(E\)的噪音。那么攻击者有能力重构整个数据库,只不过带了\(4E\)的偏移
尤其当\(E=n/401\),攻击者就能复原出$99 % \(准确的数据库。也就是说,当\)E=o(n)\(,则该算法属于\)BNP$
定理证明:
假设攻击者发动了\(2^n\)次询问,也就是说其能输出查找所有可能的数据库查询组合\(S\)。随后我们遍历所有待定的数据库\(c\in \{0,1\}^n\),滤掉所有\(|\sum_{i\in S}c_i -r(S)|\le E\)的\(c\)。然后输出符合的\(c\)。
定理(3)
若数据分析有能力进行\(O(n)\)次子集查询,并且管理者会加入\(E=O(\alpha\sqrt n)\)的界限的噪音。那么一个计算高效的攻击者可以重构一个有\(O(\alpha^2)\)偏移的数据库
总结
- 第一种攻击需要\(2^n\)次的查询以消除\(O(n)\)的噪音
- 第二种攻击需要\(\Omega(n)\)次的查询以消除\(O(\sqrt n)\)的噪音(还有加强版本)
而差分隐私允许进行\(O(n)\)次查询的同时增加总模长为\(O(\sqrt n)\)的噪音,一般是通过拉普拉斯或者高斯机制去实现。
一般来说,如果数据分析仅请求\(m<<n\)次的查询,那么管理者只需要增加总模长为\(O(\sqrt{(m)})\)的噪音。
数据挖掘 | 数据隐私(2) | 差分隐私 | 数据重构化攻击(Reconstruction Attacks)的更多相关文章
- 使用Typescript重构axios(十六)——请求和响应数据配置化
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- 从ofo牵手理财平台看,用户隐私数据的使用有底线吗?
智慧生活的到来既是社会变迁的拐点,又不可避免地带来一种挥之不去的焦虑.这种焦虑的由来,是因个人隐私数据在智慧生活下变成一种"黑暗财富".随着相关数据挖掘.收集.分析技术的成熟,人们 ...
- MindSpore:基于本地差分隐私的 Bandit 算法
摘要:本文将先简单介绍Bandit 问题和本地差分隐私的相关背景,然后介绍基于本地差分隐私的 Bandit 算法,最后通过一个简单的电影推荐场景来验证 LDP LinUCB 算法. Bandit问题是 ...
- MindArmour差分隐私
MindArmour差分隐私 总体设计 MindArmour的Differential-Privacy模块,实现了差分隐私训练的能力.模型的训练主要由构建训练数据集.计算损失.计算梯度以及更新模型参数 ...
- 差分隐私(Differential Privacy)定义及其理解
1 前置知识 本部分只对相关概念做服务于差分隐私介绍的简单介绍,并非细致全面的介绍. 1.1 随机化算法 随机化算法指,对于特定输入,该算法的输出不是固定值,而是服从某一分布. 单纯形(simplex ...
- iOS10-配置获取隐私数据权限声明
iOS10中,苹果加强了对用户隐私数据的保护,在访问以下数据的时候都需要在info.list重配置privacy,进行声明,否则程序无法正常运行. Contacts, Calendar, Remind ...
- 数据视化Echarts+百度地图API实现市县区级下钻
开始 这两天公司有个页面需要做数据可视化的展示,数据视化采用的是Echarts+百度地图API做展示,需要用到县级区级下钻的一个联动效果发现网上关于Echarts做到县区级下钻的资料很少,有的话也不是 ...
- 使用sklearn进行数据挖掘-房价预测(3)—绘制数据的分布
使用sklearn进行数据挖掘系列文章: 1.使用sklearn进行数据挖掘-房价预测(1) 2.使用sklearn进行数据挖掘-房价预测(2)-划分测试集 3.使用sklearn进行数据挖掘-房价预 ...
- android 数据重构(仿淘宝浏览记录,足迹)
数据结构 ->数据重构 原因 处理这个数据的主要原因是,后台服务器返回的数据格式在ios那边因为其控件可以对数据进行分区显示,可以直接处理,而在android上我们显示控件就是listview, ...
- 《python for data analysis》第七章,数据规整化
<利用Python进行数据分析>第七章的代码. # -*- coding:utf-8 -*-# <python for data analysis>第七章, 数据规整化 imp ...
随机推荐
- 【Rive】Android与Rive交互
1 Android与Rive交互的常用接口 1.1 RiveAnimationView参数 <app.rive.runtime.kotlin.RiveAnimationView android: ...
- 【Java】关于Maven仓库地址
仓库 如果你没有配置阿里云仓库镜像源,可以到这里来找 https://mvnrepository.com/ 如果你配置了阿里云仓库镜像源,可以来这里找 https://developer.aliyun ...
- Qt编写的项目作品33-斗图神器(雨田哥作品)
一.功能特点 支持HTTP,HTTPS网络表情图片下载,本地缓存. 采用MV模式,支持大量图片表情预览查看. 采用多线程异步下载图片刷新. 图片搜索功能(因网络提供API无信息字段提供,占搜索不了.但 ...
- UML之模型、包及包的版型(构造型)
包是UML模型的组织结构,也是UML项目的配置管理结构.包存在多个层级,除了顶层包,所有包隶属于一个且仅隶属于一个上层包.在项目不同阶段实际推进与配置过程中,通常以不同层级的包为单位进行check-i ...
- 解决:The content of element type "web-app" must match "(icon?display
错误描述: The content of element type "web-app" must match"(icon?,display-name?,descripti ...
- WxPython跨平台开发框架之使用PyInstaller 进行打包处理
使用PyInstaller 打包Python项目是一个常见的需求,它可以将Python程序及其所有依赖项打包成一个独立的可执行文件或者安装文件,方便在没有安装Python环境的机器上运行.本随笔介绍W ...
- C++ STL学习笔记-C++ STL基础
仅自己回忆使用,若有侵权,联系删除 algorithm实用库函数 sort:迭代器类型必须为随机访问迭代器(first,last),应该支持< 运算符,可以自己写比较 nth_element() ...
- w3cschool-Linux shell教程
Shell 教程 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个 ...
- 分布式配置中心--Apollo
分布式配置中心--Apollo Apollo(阿波罗)是携程开源的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,支持配置热发布并实时推送到应用端,并且具备规范的权限及流程治理等特性,适用 ...
- Java线程的安全问题
当多个线程同时访问同一资源(变量,文件,记录),如果只有读操作,则不会有线程安全问题,如果有读和写操作,则会产生线程安全问题,必须保证共享数据同一时刻只能有同一个线程操作.Java采取的办法是sync ...