K匿名算法

在大数据的时代,很多机构需要面向公众或研究者发布其收集的数据,例如医疗数据,地区政务数据等。这些数据中往往包含了个人用户或企业用户的隐私数据,这要求发布机构在发布前对数据进行脱敏处理。K匿名算法是比较通用的一种数据脱敏方法。

举例来说,如下图是两张表,一张是用户的会员注册信息表,一张是对外发布的医疗信息表。

第二张医疗信息表中,虽然已经把用户姓名,身份证号等个人关联信息抹去,但如果直接发布这样简单匿名处理的数据,同样会带来数据泄露的风险。因为通过两张不同数据来源的表进行关联,对出生日期,性别,邮编的值进行匹配,可以定位出张三患有心脏病的隐私数据。这种通过某些属性与外部表链接的攻击称为链接攻击。

如上图两个表所示,每一行代表用户的一条记录,每一列表示一个属性。每一个记录与一个特定的用户/个体关联,这些属性可以分为三类:

标识符(Explicit Identifier):可以直接确定一个个体,如:身份证号,姓名等。

准标识符集(Quasi-identifier Attribute set): 可以和外部表链接来识别个体的最小属性集,如:邮编,生日,性别等。

敏感数据(Sensitive Attributes):用户不希望被人知道的数据,如:薪水,疾病历史,购买偏好等。

K-匿名(K-Anonymity)是Samarati和Sweeney在1998年提出的技术,该技术可以保证存储在发布数据集中的每条个体记录对于敏感属性不能与其他的K-1个个体相区分,即K-匿名机制要求同一个准标识符至少要有K条记录,因此观察者无法通过准标识符连接记录。

K-匿名的具体使用如下:隐私数据脱敏的第一步通常是对所有标识符列进行移除或是脱敏处理,使得攻击者无法直接标识用户。但是攻击者还是有可能通过多个准标识列的属性值识别到个人。攻击者可能通过(例如知道某个人的邮编,生日,性别等)包含个人信息的开放数据库获得特定个人的准标识列属性值,并与大数据平台数据进行匹配,从而得到特定个人的敏感信息。为了避免这种情况的发生,通常也需要对准标识列进行脱敏处理,如数据泛化等。数据泛化是将准标识列的数据替换为语义一致但更通用的数据,以上述医疗数据为例,对邮编和年龄泛化后的数据如下图所示。

经过泛化后,有多条纪录的准标识列属性值相同。所有准标识列属性值相同的行的集合被称为相等集。K-匿名要求对于任意一行纪录,其所属的相等集内纪录数量不小于K,即至少有K-1条纪录的准标识列属性值与该条纪录相同。

K-匿名技术就是每个相等集(或称为等价组)中的记录个数为K个,那么当针对大数据的攻击者在进行链接攻击时,对于任意一条记录的攻击同时会关联到相等集中的其他K-1条记录。这种特性使得攻击者无法确定与特定用户相关的记录,从而保护了用户的隐私。

K-匿名的实施,通常是通过概括(Generalization)和隐匿(Suppression)技术来实现。概括(Generalization)指对数据进行更加概括、抽象的描述,使得无法区分具体数值,例如年龄这个数据组,概括成一个年龄段(例如上表中的>=40岁)。而隐匿(Suppression)指不发布某些信息,例如上表中的用*号替换邮编的末三位。通过降低发布数据的精度,使得每条记录至少与数据表中其他的K-1条记录具有完全相同的准标识符属性值,从而降低链接攻击所导致的隐私泄露风险。

K-匿名技术能保证以下三点:

  • 攻击者无法知道某特定个人是否在公开的数据中
  • 给定一个人,攻击者无法确认他是否有某项敏感属性
  • 攻击者无法确认某条数据对应的是哪个人

但从另外一个角落来看,K-匿名技术虽然可以阻止身份信息的公开,但无法防止属性信息的公开,导致其无法抵抗同质攻击,背景知识攻击,补充数据攻击等情况:

  • 同质攻击: 如在上面的K-匿名医疗信息表中,第1-3条记录的敏感数据是一致的,因此这时候K-匿名就失效。观察者只要知道表中某一个用户的邮编是476***,年龄在20多岁,就可以确定他有心脏病。
  • 背景攻击: 如果观察者通过邮编和年龄确定用户王一在K-匿名医疗信息表的等价集3中,同时观察者知道王一患心脏病的可能很小,那么他就可以确定王一曾经骨折。

补充数据攻击:当公开的数据有多种类型,如果他们的K-匿名方法不同,那么攻击者可以通过关联多种数据推测用户信息。

  • 31
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值