数据脱敏:k-anonymity,l-diversity,t-closeness
数据时代,很多机构需要面向公众或研究者发布其收集的数据。然而,这些数据中可能包含这用户的隐私信息。这要求发布者在发布前进行脱敏处理。本文介绍三种数据脱敏方法/标准:k-anonymity、l\mathcal{l}l -diversity 和 t-closeness。
连接攻击
考虑如下两张表:
下面一张是某医院收集的病人信息,其中已经抹去了姓名、身份证号等信息。但是,直接发布这样简单处理的数据并不安全。因为接受者(recipient)可能知道其他信息,比如上面一张投票信息表。那么recipient就可以通过比对Birthdate、Sex 和 Zipcode 的值得知 Andre 患有 Flu。这种通过某些属性与外部表连接的攻击称为连接攻击。
基本概念
数据以表的形式表示,每一行表示一条记录(record),每一列表示一个属性(attribute)。每一个记录与一个特定用户/个体关联。这些属性可以分为三类:
- 标识符(explicit identifiers):可以直接确定一个个体。如:身份证号,姓名等。
- 准标识符集(quasi-identifler attribute set ):可以和外部表连接来识别个体的最小属性集。如Figure1中的 { 邮编、生日、性别 }。
- 敏感数据:用户不希望被人知道的数据。如:薪水、年龄等。可以认为数据表中除了标识符和准标识符之外都是敏感数据。
当公开数据表时,应避免用户的敏感数据被公开(disclosure),也即不能让观察者(observer)者将某条记录和一个确定的用户联系起来。信息公开(information disclosure)可以分为两类:
- 身份公开(identity disclosure):指可以将用户和特定记录联系起来(link)。
- 属性公开(attribute disclosure):当新公开的信息可以使观察者更准确地推测用户的特征时,称发生了属性公开。
另外需要注意的是,我们应当尽量使观察者无法将记录与用户进行连接,而不是使观察者获得错误的信息。因为即使错误的信息也可能给用户带来困扰(比如一个积极阳光的社会主义好青年,天天被推送小电影,这不是坑害祖国的花朵吗!)。
kkk-anonymityanonymityanonymity(kkk-匿名)
准标识符假设
k-anonymity想法十分简单。其首先做了如下假设:
准标识符假设:
数据持有者可以识别出其所持有数据表中可能出现在外部数据中的属性,因此其可以准确的识别出准标识符集合。
显然这个假设可能不成立:比如持有者误判了哪些属性是连接敏感的并将其公开。然而,由于数据持有者并不清楚观察者知道哪些信息,这个问题并不好在算法上予以解决。我们只能依赖算法以外的东西——政策、合同等。反正k-anonymity认为这一假设是合理的。
k-anonymity Property
k-anonymity要求同一个准标识符至少要有k条记录。因此观察者无法通过准标识符连接记录。
上图table1是原数据,table2满足 3-anonymity,准标识符 QI={ZIPCode,Age}QI=\{ZIP Code,Age\}QI={ZIPCode,Age}。Disease是敏感数据。
我们把拥有相同准标识符的所有记录称为一个等价类(equivalence class)。k-anonymity 即是要求同一等价类中的记录不少于k条。把等价类的大小组成的集合称为频率集(frequency fet)。
等价类是一个多重集(multiset),即其中可以有相同的元素。频率集应该也是多重集?
k-anonymity 使得观察者无法以高于1k\frac{1}{k}k1的置信度通过准标识符来识别用户。
k-anonymity 的缺点
k-anonymity 可以阻止身份公开,但无法防止属性公开。比如其无法抵抗一致性攻击和背景知识攻击。
- 同质攻击(homogeneity attack):如在table2中,第1-3条记录的敏感数据是一致的,因此这时候k-anonymity就失效了。观察者只要知道表中某一用户的ZIP Code是476**,年龄在20多岁就可以确定他有心脏病。
- 背景攻击(background knowledge attack):如果观察者通过ZIP Code和Age确定用户Carl在table2的等价类3中,同时观察者知道Carl患心脏病的可能很小,那么他就可以确定Carl有癌症。
l\mathcal{l}l-diversitydiversitydiversity
l\mathcal{l}l-diversity
如果一个等价类里的敏感属性至少有l\mathcal{l}l个 良表示(well-represented) 的取值,则称该等价类具有l\mathcal{l}l-diversity。如果一个数据表里的所有等价类都具有l\mathcal{l}l-diversity,则称该表具有l\mathcal{l}l-diversity。
良表示
良表示有三种定义:
1. 可区分良表示(Distinct l\mathcal{l}l-diversity
最简单的l\mathcal{l}l-diversity要求同一等价类中的敏感属性要有至少l\mathcal{l}l个可区分的取值。但是,如果某一个取值的频率明显高于其他取值,这将使得观察者可以以较高的置信度认为这一等价类中的敏感属性都取这个值。这导致了下面两种良表示定义。
2. 熵良表示(Entropy l\mathcal{l}l-diversity)
记SSS为敏感属性的取值集合,p(E,s)p(E,s)p(E,s)为等价类EEE中敏感属性取值sss的概率,entropy l\mathcal{l}l-diversity要求下式成立:
Entropy(E)=−∑s∈Sp(E,s)logp(E,s)≥loglEntropy(E)=-\sum_{s\in S}p(E,s)\log p(E,s)\ge\log l Entropy(E)=−s∈S∑p(E,s)logp(E,s)≥logl
若每一等价类都满足Entropy l\mathcal{l}l-diversity,那么整张数据表的熵也必然不小于logl\log llogl。这个要求太严格了,比如敏感属性的取值集合中某些取值的频率较高,这将导致整张表的熵比较低。
3. 递归良表示(Recursive (c, l\mathcal{l}l)-diversity)
设等价类EEE中敏感属性有mmm种取值,记rir_iri为出现次数第iii多的取值的频次,如果EEE满足:
r1<c(rl+rl+1+…rm)r_1<c(r_l+r_{l+1}+\dots r_m) r1<c(rl+rl+1+…rm)
则称等价类EEE具有recursive (c, l\mathcal{l}l)-diversity。如果数据表中所有等价类都具有recursive (c, l\mathcal{l}l)-diversity,则称数据表具有recursive (c, l\mathcal{l}l)-diversity。
l\mathcal{l}l-diversity 的缺点
1. 可能难以实现且无必要实现
比如疾病检测报告,假设敏感属性只有”阳性“和”阴性“,10000条记录中分别占1%和99%。阴性人群并不在乎被人知道其检测结果为阴性,但阳性人群可能很敏感。这时候如果一个等价类中均为阴性,是没有必要实现可区分的2-diversity的。同时,注意到整体的熵很小,要实现熵良表示也是很难的,lll必须取很小的值。
2. 不足以阻止属性公开
下面列举两种攻击:
Skewness Attack:继续考虑疾病检测报告的例子。假设一个等价类中恰好有一半阳性,一半阴性。那么此时这个等价类满足可区分的2-diversity、熵2-diversity和任意(c,l)(c,l)(c,l)-diversity。但是,此时,相比于整体1%阳性的概率,该等价类中的个体都有1/2的概率被认为是阳性。
再考虑另一种情况:一个等价类中有49个阳性和1个阴性,这符合可区分的2-diversity。同时,由于其熵大于整体的熵,必然也将满足任何可以实现的熵良表示。但是,在这个等价类中,每个个体都有98%的概率被认为是阳性,远高于整体的1%!这代表了一种很严重的隐私风险。
另外,上述情况和49个阴性一个阳性具有完全相同的diversity,但是这两种情况却具有完全不同的隐私风险 。
Similarity Attack:lll-diversity并没有考虑语义信息,这将带来风险。比如如果敏感属性是”工资“,某一等价类中的取值全在3k-5k之间,那么观察者只要知道用户在这一等价类中就可以知道其工资处于较低水平,具体数值观察者并不关心。
t-closeness
t-closeness认为,在数据表公开前,观察者有对于客户敏感属性的先验信念(prior belief),数据表公开后观察者获得了后验信念(posterior belief)。这二者之间的差别就是观察者获得的信息(information gain)。t-closeness将信息获得又分为两部分:关于整体的和关于特定个体的。
建模
首先考虑如下思想实验:
记观察者的先验信念为B0B_0B0,我们先发布一个抹去准标识符信息的数据表,这个表中敏感属性的分布记为QQQ,根据QQQ,观察者得到了B1B_1B1;然后发布含有准标识符信息的数据表,那么观察者可以由准标识符识别特定个体所在等价类,并可以得到该等价类中敏感属性的分布PPP,根据PPP,观察者得到了B2B_2B2。
lll-diversity其实就是限制B2B_2B2与B0B_0B0之间的区别。然而,我们发布数据是因为数据有价值,这个价值就是数据整体的分布规律,可以用B0B_0B0与B1B_1B1之间的差别表示。二者差别越大,表明数据的价值越大,这一部分不应被限制。也即整体的分布Q应该被公开。因为这正是数据的价值所在。而B1B_1B1与B2B_2B2之间的差别,就是我们需要保护的隐私信息,应该被尽可能限制。
t-closeness通过限制PPP与QQQ的距离来限制B1B_1B1与B2B_2B2的区别。其认为如果P=QP=QP=Q,那么应有B1=B2B_1=B_2B1=B2。P、QP、QP、Q越近,B1、B2B_1、B_2B1、B2也应越近。
The t-closeness Principle:如果等价类E中的敏感属性取值分布与整张表中该敏感属性的分布的距离不超过阈值ttt,则称E满足t-closeness。如果数据表中所有等价类都满足t-closeness,则称该表满足t-closeness。
EMD 距离
可以看出,t-closeness的一个关键在于如何定义两个分布之间的距离。原论文中采用了搬土距离(Earth Mover Distance,EMD)。EMD的好处在于其考虑了属性之间的语义关系。这里不详述。
平衡
显然,t-closeness 限制了准标识符和敏感属性之间的联系,损失了一些信息。但这正是发布者需要抑制的,如果观察者知道太多准标识符和敏感属性间的信息,那么很可能发生属性泄露。通过阈值ttt的设置可以平衡隐私保护和数据价值。
匿名模型的实现算法
Samarati’s Algorithm
**基本过程:**记泛化结构高度为h,检查高为h/2的结点能否满足k-匿名,满足则继续检查h/4高度的结点;否则检查3h/4高度的结点。重复这一过程直到找到满足k-匿名的最低层
**特点:**最早的k-匿名实现算法。基于二分查找的全局泛化算法,需要预先定义的泛化结构。
参考文献:
Samarati P . Protecting Respondents’ Identities in Microdata Release[J]. IEEE Trans.knowl.data Eng, 2001, 13(6):1010-1027.
Mondrian
**基本过程:**Mondrian算法针对数值型数据。以单个属性为例,以所有记录在该属性取值的中位数将记录划分为两部分,然后每一部分继续以中位数划分为两个区间。重复这个过程,直到每个区间包含的记录数在k-2k之间。此时每个区间都是一个等价类,区间内的值的泛化为该区间范围值。多属性情况类似,就是多维空间里的区间划分问题。
**特点:**局部泛化;不需要泛化结构;等价类大小均衡;只适用于数值型数据;泛化区间可能重叠
参考文献:
Kristen LeFevre, David J DeWitt and Raghu Ramakrishnan. Mondrian multidimensional k-anonymity,
In Proc. of the International Conference on Data Engineering (ICDE’06), Atlanta, Georgia, April 2006.
Incognito
**基本过程:**这个算法是把关联规则挖掘里的apriori算法套过来了。见如下算法描述:
**特点:**全局泛化;可以找出所有可行的全局泛化方案;其缺点在于效率相对较低。
参考文献:
Lefevre K, Dewitt D J and Ramakrishnan R. Incognito:Efficient full-domain k-anonymity, In Proceedings of
ACM SIGMOD. ACM, New York, 2005
K-OPTIMIZE
**基本过程:**算法将k-匿名方法的寻找转换为集合枚举问题。其假设准标识符集合里的属性间有序,每个属性的取值间也有序。比如下图表示了准标识符集合{age、sex、zipcode}的一种有序排列。那么字母表I={1,2,…,9}的子集{1,4,5,9}就表示一种泛化方案: 1,2,3合并,6,7,8合并。带星号的可以省略,因此 {1,4,5,9}={5,9}。
那么k-匿名的寻找就变成幂集搜索问题了。K-OPTIMIZE设计了一种集合枚举树的搜索算法,如下图:
参考文献:
R J Bayardo, R Agarwal. Data privacy through optimal k-anonymization, In Proc. of the 21st International Conference on Data Engineering(ICDE’05), Tokyo,Japan, 2005, pp 217-228
数据脱敏:k-anonymity,l-diversity,t-closeness相关推荐
- 隐私计算:数据脱敏、匿名化、假名化、差分隐私和同态加密
随着数据挖掘技术的普遍应用,一些厂商通过发布用户数据集的方式鼓励研究人员进一步深入挖掘数据的内在价值,在数据集发布的过程中,就存在安全隐患,可能导致用户隐私的泄露.2016年欧盟通过< ...
- python个人数据脱敏_数据脱敏的处理方法及查询
[摘要] 关键词:集算器.SPL.数据脱敏.报表 1).数据脱敏是"指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护.在涉及客户安全数据或者一些商业性敏感数据的情况下, ...
- 手机号,身份证,银行卡号数据脱敏
手机号,身份证,银行卡号数据脱敏 主体 /*** <p>* 数据脱敏* (1)手机号(联系方式类型为:手机):* 正常显示前3位后4位,其他位用*补齐,例如:159****5865* (2 ...
- 数据脱敏的处理方法及查询
[摘要] 关键词:集算器.SPL.数据脱敏.报表 1).数据脱敏是"指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护.在涉及客户安全数据或者一些商业性敏感数据的情况下, ...
- 基于Mybatis插件方式实现数据脱敏处理
一.项目介绍 1.项目背景 有时候我们数据库中存储一些敏感的信息比如手机号.银行卡号,我们希望我们查询出来的的时候对一些敏感信息做一些脱敏处理. 当面项目是基于自定义Mybatis插件方式实现数据脱敏 ...
- Pandas解决excel数据脱敏和导入新sheet不覆盖原sheet
做个存档 实验数据集目录下是某高校学生修读课程的成绩情况,需要对数据库相关(注:表格中<数据库系统技术及应用>和<数据库课程设计>是同一门课)课程成绩进行分析.请编写程序完成以 ...
- 大厂也在用的 6种 数据脱敏方案,别做泄密内鬼
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 最近连着几天晚上在家总是接到一些奇奇怪怪的电话," ...
- C什么k什么_G、D、C、Z、T、K、L、Y,这些字母和火车级别有什么关系
"高XXX次列车开始检票-" 当我们乘坐火车出行 车站广播总会提前预告 你知道火车车次前头的字母有什么含义吗? 不同字母代表什么? 它们之间又有什么区别呢? 我国的铁路旅客列车,按 ...
- java 数据库数据脱敏_Sharding-JDBC-数据脱敏
数据脱敏 该章节主要介绍如何使用数据脱敏功能,如何进行相关配置.数据脱敏功能即可与数据分片功能共同使用,又可作为单独功能组件,独立使用. 与数据分片功能共同使用时,会创建ShardingDataSou ...
- 互联网金融售前心得数据脱敏分析 | PMCAFF微分享
本期主题 | 互联网金融售前心得&数据脱敏分析 分享嘉宾 | Gina 文字整理 | Mayi-天享 入群请联系管理员37°C微信号:erhuoyimei Gina 本期嘉 ...
最新文章
- F - Count the Colors - zoj 1610(区间覆盖)
- Ubuntu 开发环境搭建
- Framework学习(一)深入Android 系统架构
- SqlServer 查询表
- java 路径不存在则创建_java中判断目录是否存在,若不存在则创建
- centos7卸载docker_新手快速入门Docker,轻松掌握Docker安装与使用
- 人月神话-软件开发现状
- Scala语言精华版笔记整理
- uniapp文件体积超过 500KB报错
- 手机图片怎么转文本?
- 视频文件压缩成什么格式最小?
- HTTP:实时消息推送
- java 初始化数组_java如何实现数组初始化
- 几款U盘数据恢复的软件使用测评
- SQLServer学习笔记 --- (20008, 'DB-Lib error message 20008, severity 9:\nUnable to open socket\nNet-Li
- BuKu web18 秋名山车神
- Java语言程序设计 例题9.8(Fan类)
- 类和对象(一)this指针详解
- 常见的滚动widget
- 矿产行业供应链协同系统解决方案:构建数智化平台,保障矿产资源安全供应
热门文章
- 霍尔传感器的工作原理、分类及应用
- 风向风速传感器原理及应用
- [4G5G专题-106]:部署 - LTE无线网络规划与设计概览
- linux进入终端tty3,Linux中终端界面与图形界面之间的切换关系
- 计算机病毒是如何入侵你的电脑吗,怎么样正确处理被病毒侵入的电脑
- [12-22]XP系统城市更新[www.xp366.com]
- HP CQ40-512TX不刷BIOS安装XP系统
- 打印服务器 支持 佳能 2900+打印机,Deepin20(1002版本)安装佳能Canon LBP2900+打印机
- 4399曹政:中国互联网的发展逻辑
- 浪潮之巅: 中国企业高管硅谷交流会