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\)数学表述:

\[A(S) = d \cdot S
\]

当管理者接受到一个查询集\(S\),然后就会返回一个响应(response),称为\(r(S)\)。也就是说整个流程简化为:

\[r(S)=A(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)的更多相关文章

  1. 使用Typescript重构axios(十六)——请求和响应数据配置化

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  2. 从ofo牵手理财平台看,用户隐私数据的使用有底线吗?

    智慧生活的到来既是社会变迁的拐点,又不可避免地带来一种挥之不去的焦虑.这种焦虑的由来,是因个人隐私数据在智慧生活下变成一种"黑暗财富".随着相关数据挖掘.收集.分析技术的成熟,人们 ...

  3. MindSpore:基于本地差分隐私的 Bandit 算法

    摘要:本文将先简单介绍Bandit 问题和本地差分隐私的相关背景,然后介绍基于本地差分隐私的 Bandit 算法,最后通过一个简单的电影推荐场景来验证 LDP LinUCB 算法. Bandit问题是 ...

  4. MindArmour差分隐私

    MindArmour差分隐私 总体设计 MindArmour的Differential-Privacy模块,实现了差分隐私训练的能力.模型的训练主要由构建训练数据集.计算损失.计算梯度以及更新模型参数 ...

  5. 差分隐私(Differential Privacy)定义及其理解

    1 前置知识 本部分只对相关概念做服务于差分隐私介绍的简单介绍,并非细致全面的介绍. 1.1 随机化算法 随机化算法指,对于特定输入,该算法的输出不是固定值,而是服从某一分布. 单纯形(simplex ...

  6. iOS10-配置获取隐私数据权限声明

    iOS10中,苹果加强了对用户隐私数据的保护,在访问以下数据的时候都需要在info.list重配置privacy,进行声明,否则程序无法正常运行. Contacts, Calendar, Remind ...

  7. 数据视化Echarts+百度地图API实现市县区级下钻

    开始 这两天公司有个页面需要做数据可视化的展示,数据视化采用的是Echarts+百度地图API做展示,需要用到县级区级下钻的一个联动效果发现网上关于Echarts做到县区级下钻的资料很少,有的话也不是 ...

  8. 使用sklearn进行数据挖掘-房价预测(3)—绘制数据的分布

    使用sklearn进行数据挖掘系列文章: 1.使用sklearn进行数据挖掘-房价预测(1) 2.使用sklearn进行数据挖掘-房价预测(2)-划分测试集 3.使用sklearn进行数据挖掘-房价预 ...

  9. android 数据重构(仿淘宝浏览记录,足迹)

    数据结构 ->数据重构 原因 处理这个数据的主要原因是,后台服务器返回的数据格式在ios那边因为其控件可以对数据进行分区显示,可以直接处理,而在android上我们显示控件就是listview, ...

  10. 《python for data analysis》第七章,数据规整化

    <利用Python进行数据分析>第七章的代码. # -*- coding:utf-8 -*-# <python for data analysis>第七章, 数据规整化 imp ...

随机推荐

  1. 刷到一个 MLSQL 语言

    在 https://www.infoq.cn/video/2vFUBYfxFcoFWmSm5WOj 刷到一个 MLSQL 语言,主页 https://www.mlsql.tech/home ,意思是用 ...

  2. 【C#】【报错解决】找不到请求的Net Framework Data ProVider。可能没有安装。

    如题报错截图如上,解决方法如下 第一步:找到[引用]中的MySql.Data中的版本号 第二步,在Web.config中添加如下配置 <system.data> <DbProvide ...

  3. Navicat Premium15安装与激活

    Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL.SQLite.Oracle 及 PostgreSQL 资料库,让管理不 ...

  4. Qt/C++最新地图组件发布/历时半年重构/同时支持各种地图内核/包括百度高德腾讯天地图

    一.前言说明 最近花了半年时间,专门重构了整个地图组件,之前写的比较粗糙,有点为了完成功能而做的,没有考虑太多拓展性和易用性.这套地图自检这几年大量的实际项目和用户使用下来,反馈了不少很好的建议和意见 ...

  5. Qt/C++音视频开发56-udp推流和拉流/组播和单播推流

    一.前言 之前已经实现了rtsp/rtmp推流,rtsp/rtmp/hls/flv/ws-flv/webrtc等拉流,这种一般都需要依赖一个独立的流媒体服务程序,有没有一种更便捷的方式不需要这种依赖, ...

  6. Qt编写物联网管理平台32-表格数据

    一.前言 用表格来展示采集到的数据,是很多组态系统中最常见的方法,一个表格能够展示的数据特别多,在本系统中,默认做的也是通过表格的形式来展示数据,目前是将所有的设备放在一个表格中,后期可能按照不同控制 ...

  7. 基于Xxl-Job,dataX设计的数据同步和可视化任务编排工具

    使用vue3对xxl-job进行重构,并集成datax工具实现不同数据源的数据同步,支持glue模式,并新增存储过程调用,api任务调度和可视化任务编排,支持单任务-单任务串并联,单任务-任务集串并联 ...

  8. [转]OpenLayer4地图全屏的实现

    第一种方式:自实现 1.首先将地图容器的长宽设置成100%. 2.对form 和body标签长宽设置成100%. 3.对浏览器进行全屏设置. 具体代码如下所示(fullextent 为全屏安全ID.) ...

  9. PHP 安装启用openssl(解决 wordpress可选的模组openssl未被安装或已被禁用)

    本教程仅适用Windows Servier IIS网站服务器. 我的博客使用IIS搭建,相比Linux,相关的教程格外少.因此让以后的小伙伴也能马上解决问题,分享此方法. 首先需要下载php对应版本的 ...

  10. WPF 加载外部字体

    例如将字体放入d:/Fonts 文件夹.然后就可以通过类似 btn.FontFamily = new FontFamily("file:///d:/Fonts/#Ashley"); ...