k-anonymity匿名算法

前言:九月的最后一天开的这个深坑,可能会需要好几天才能弄清楚这个算法,如果有不对的地方欢迎批评指正,但是!千万不要喷我!我会生气!!!

k-anonymity匿名算法_第1张图片

  • 数据发布中隐私保护对象主要是用户敏感数据与个体身份之间的对应关系。通常使用删除标识符的方式发布数据是无法真正阻止隐私泄露的,攻击者可以通过链接攻击获取个体的隐私数据。
  • 链式攻击是指攻击者通过对发布的数据和其他渠道获取的外部数据进行链接操作,以推理出隐私数据,从而造成隐私泄露,相当于一种个人信息维度的扩充。最简单的例子就是数据库里两张表通过主键关联,得到更多的信息。
  • 为解决链接攻击所导致的隐私泄露问题,引入k-匿名 (k-anonymity) 方法。k-匿名通过概括(对数据进行更加概括、抽象的描述)和隐匿(不发布某些数据项)技术,发布精度较低的数据,使得每条记录至少与数据表中其他k-1 条记录具有完全相同的准标识符属性值,从而减少链接攻击所导致的隐私泄露。
  • 首先对用户数据类型进行一个分类:
  1. 显式标识符(ID,能够唯一地确定一条用户记录)
  2. 准标识符(QI,能够以较高的概率结合一定的外部信息确定一条用户记录):单列并不能定位个人,但是多列信息可用来潜在的识别某个人
  3. 敏感属性(需要保护的信息)
  4. 非敏感属性(一般可以直接发布的信息)

 

隐私数据泄露可以分为多种类型,根据不同的类型,通常可以采用不同的隐私数据泄露风险模型来衡量防止隐私数据泄露的风险,以及对应不同的数据脱敏算法对数据进行脱敏。一般来说,隐私数据泄露类型包括:

 

  • 个人标识泄露。当数据使用人员通过任何方式确认数据表中某条数据属于某个人时,称为个人标识泄露。个人标识泄露最为严重,因为一旦发生个人标识泄露,数据使用人员就可以得到具体个人的敏感信息。

  • 属性泄露,当数据使用人员根据其访问的数据表了解到某个人新的属性信息时,称为属性泄露。个人标识泄露肯定会导致属性泄露,但属性泄露也有可能单独发生。

  • 成员关系泄露。当数据使用人员可以确认某个人的数据存在于数据表中时,称为成员关系泄露。成员关系泄露相对风险较小,个人标识泄露与属性泄露肯定意味着成员关系泄露,但成员关系泄露也有可能单独发生。

 

k-匿名算法

  • 隐私数据脱敏的第一步是对所有可标识列进行移除或是脱敏,使得攻击者无法直接标识用户。但是攻击者还是有可能通过多个准标识列的属性值识别个人。攻击者可能通过社工(知道某个人的姓名,邮编,生日,性别等)或是其他包含个人信息的以开放数据库获得特定个人的半标识列属性值,并与大数据平台数据进行匹配,从而得到特定个人的敏感信息。
  • 为了避免这种情况的发生,通常需要对准标识列进行脱敏处理,如数据泛化等。数据泛化是将准标识列的数据替换为语义一致但更通用的数据,已上述数据为例,对邮编和年龄泛化后的数据如图所示。经过泛化后,有多条纪录的准标识列属性值相同,所有准标识列属性值相同的行的集合被称为相等集。K-Anonymity要求对于任意一行纪录,其所属的相等集内纪录数量不小于k,即至少有k-1条纪录半标识列属性值与该条纪录相同。

                                                                                    k-anonymity匿名算法_第2张图片

  • k-匿名技术就是每个等价组(相等集)中的记录个数为k个,即针对大数据的攻击者在进行链接攻击时,对于任意一条记录的攻击同时会关联到等价组中的其他k-1条记录。这种特性使得攻击者无法确定与特定用户相关的记录,从而保护了用户的隐私。
  • 用T(Q1,Q2,...,Qd,S1,S2,...,Sm)来表达一张待发布的数据表,简称为T(d),其中d是准标识符的个数,而m是敏感属性的个数。k-匿名机制要求表中的每一条记录都至少和表中的k-1条记录的准标识符QI一致。令是表T(d)在属性集合QI上的投影。表T(d)在属性集QI下满足k-匿名,当且仅当中的任意一条记录都至少重复出现k次。在II运算符下,有相同QI值的所有记录组成一个匿名组。对于一个给定的k,每一个这样的匿名组都是一个k-匿名组或者叫做一个等价类。 

k-anonymity能保证以下三点:

  1. 攻击者无法知道某个人是否在公开的数据中
  2. 给定一个人,攻击者无法确认他是否有某项敏感属性
  3. .攻击者无法确认某条数据对应的是哪个人(这条假设攻击者除了准标识符信息之外对其他数据一无所知,举个例子,如果所有用户的偏好都是购买电子产品,那么 k-anonymity 也无法保证隐私没有泄露)

k-匿名算法存在着一些攻击方式:

  1. 同质化攻击:某个k-匿名组内对应的敏感属性的值也完全相同,这使得攻击者可以轻易获取想要的信息。
  2. 背景知识攻击:即使k-匿名组内的敏感属性值并不相同,攻击者也有可能依据其已有的背景知识以高概率获取到其隐私信息。
  3. 未排序匹配攻击:当公开的数据记录和原始记录的顺序一样的时候,攻击者可以猜出匿名化的记录是属于谁。例如如果攻击者知道在数据中小明是排在小白前面,那么他就可以确认,小明的购买偏好是电子产品,小白是家用电器。解决方法也很简单,在公开数据之前先打乱原始数据的顺序就可以避免这类的攻击。
  4. 补充数据攻击:假如公开的数据有多种类型,如果它们的k-anonymity方法不同,那么攻击者可以通过关联多种数据推测用户信息。

 

 

现在的排名是39万。

明天要出去玩,所以假期不更新啦

你可能感兴趣的:(隐私保护)