基于度优先的KANONYMITY匿名算法的数据处理方法.pdf

上传人:1*** 文档编号:1070657 上传时间:2018-03-29 格式:PDF 页数:11 大小:461.61KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010176282.2

申请日:

2010.05.19

公开号:

CN101834872A

公开日:

2010.09.15

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 29/06申请日:20100519|||公开

IPC分类号:

H04L29/06; G06F21/00

主分类号:

H04L29/06

申请人:

天津大学

发明人:

胡翔天; 宫秀军; 陈海亮; 赵菲菲; 刘新觅

地址:

300072 天津市南开区卫津路92号

优先权:

专利代理机构:

天津市北洋有限责任专利代理事务所 12201

代理人:

李素兰

PDF下载: PDF下载
内容摘要

本发明公开了一种基于度优先的K-Anonymity数据匿名处理方法,该方法包括以下步骤:对发布数据进行预处理,建立Lattice泛化格;计算Lattice中所有节点的度,从Lattice泛化格中找到度最大的节点,获取全局最优节点,计算K-min集合中节点的信息损失量;将信息损失量最小的节点作为全局最优节点;将所有发布数据按照最优节点的泛化方式进行泛化处理,并且将所得泛化处理结果进行发布。与现有技术相比,本发明能够在尽可能少地牺牲单个数据记录准确性的隐私保护前提下,保证发布数据整体趋势,为发布数据提供更好的可用性。

权利要求书

1.  一种基于度优先的K-Anonymity数据匿名处理方法,该方法包括以下步骤:
对发布数据进行预处理:根据发布数据选择相应的准标识符,然后由准标识符确定泛化等级和建立与之对应的Lattice泛化格;
获取全局最优节点,包括以下步骤:
计算Lattice中所有节点的度,即该节点的父节点的个数和该节点子节点的个数的乘积;
从Lattice泛化格中找到度最大的节点,判断该节点是否满足K-匿名:
如果该节点满足K-匿名,则从Lattice泛化格中删除该节点及其所有祖先节点;
查找K-min集合,判断该集合中是否有该节点的祖先节点,若有,删除保存所有泛化策略最低高度的K匿名节点的集合K-min集合中的该节点的祖先节点,若无,则不操作;最后把该节点保存到K-min集合中;
如果该节点不满足K-匿名,则从Lattice中删除该节点,并删除该节点的所有子孙节点;
计算K-min集合中节点的信息损失量;
将信息损失量最小的节点作为全局最优节点;
将所有发布数据按照最优节点的泛化方式进行泛化处理,并且将所得泛化处理结果进行发布。

2.
  如权利要求1所述的基于度优先的K-Anonymity数据匿名处理方法,所述从Lattice泛化格中找到度最大的节点的步骤,还包括以下步骤:
通过指令getMaxDegreeNode():返回泛化格中度最大的节点,该指令的具体实现过程是:计算所有节点的度,一个节点的度为该节点的所有直接父节点数与所有直接子节点数的乘积;找出度最大的节点并将其返回。这里所说的父节点为与该节点直接相连的上一层节点、子节点为与该节点直接相连的下一层节点。

3.
  如权利要求1所述的基于度优先的K-Anonymity数据匿名处理方法,所述计算K-min集合中节点的信息损失量的步骤,还包括以下步骤:
通过指令MinInfoLoss():计算KminNode中信息损失量最小的节点,
信息损失量的计算公式为:
InfoLoss=Σi=1NhiDGHiN]]>
N:表示元组集中地属性个数,DGHi表示N个属性中第i个属性的泛化等级,hi表示属性i的泛化程度。

4.
  如权利要求1或2所述的基于度优先的K-Anonymity数据匿名处理方法,所述从Lattice泛化格中找到度最大的节点的步骤,还包括以下步骤:在每次调用基于度优先的K-Anonymity数据匿名处理方法时,重新计算泛化格中所有节点的度,并且找到其中度最大的节点。

说明书

基于度优先的K-Anonymity匿名算法的数据处理方法
技术领域
本发明涉及数据挖掘领域,尤其是涉及一种利用K-Anonymity(K-匿名)算法对隐私数据进行处理的方法。
背景技术
隐私数据匿名化的常用处理手段源于统计数据库中的数据处理方法,主要是通过以发布数据中的属性值的信息损失为代价,换取通过这些属性值再标识某些个体的准确性,同时尽可能保证发布数据的可用性,在发布数据的准确性和隐私保护之间达到一种平衡。与传统的保证发布数据整体趋势而牺牲单个数据记录准确性的隐私保护方法相比,为发布数据提供更好的可用性。常用的两种隐私数据匿名化算法包括:
1.K-Anonymity(K-匿名算法):
K-匿名(K-Anonymity)模型是不同于传统的访问控制等基于目标的隐私保护技术,将一个典型的微数据发布模型(微数据定义为一条表达和描述个体信息的数据记录作为个体信息的载体)。这些个体信息包括个体的标识信息(如姓名、身份证号等)、敏感信息(如病史等)、以及一些非敏感信息(如性别)。每个个体信息都是以个体属性和相应的属性值匹配的方式作为微数据(记录)的某个分量。该算法要求首先对原始数据进行预处理以满足匿名要求,然后将处理的数据予以发布;并且不限制对已发布数据的访问,相反尽可能的保持数据的可统计性。因而需要在该算法采用数据泛化(泛化是对于数据的一个属性,用概括值代替原来的值,使其意义更为抽象)这一常用的数据预处理手段。
K匿名就是要求在一个集合中(这里是指广义集合,即允许包含相同元素,类似于包(Bag)或簇(Cluster)的概念)中只能以不大于1/k(k是一个常数)的概率确定任何一个元素,即要求任何一个元素在集合中至少存在k-1个相同的副本元素。
用形式化的语言表述K匿名的概念,一般是将发布数据表中的个体记录的属性分为标识符、准标识符、敏感属性三类。以下是相关定义:
标识符(Identifiers):标识符属性是指能够直接标识出个体身份的属性,如姓名、身份证号码、社会保险号码等属性,通过这些属性值能够直接确定具体的个体。
准标识符(Quasi-Indentifiers,QI):给定实体集合U、实体表T(A1,A2,…An),fc:U→T以及fg:T→U′。其中实体表T的准标识符QI为属性组(A1,A2,…Aj),其中且满足fg(fc(pi[QI]))=pi。换言之,同时存在于发布数据表和外部数据源表中,利用此两种数据表进行连接的推演来表示个人隐私信息的一组属性称为准标识符属性。准标识符属性Quasi-Identifiers也叫做类标识符属性。不同的发布数据表可以根据不同的情况划分不同的准标识符属性,一般情况下准标识符由专家选择,而非用户随便选取。一般情况下可以以年龄、教育程度、性别作为准标识符。
敏感属性(Sensitive-Attributes,SA),个人隐私属性。发布数据中,个体不希望其他用户知道的信息属性。比如说个人的工资水平、患者的就诊记录中的所患疾病。发布数据时,为了防止个人敏感信息的泄露,标识符必须被删除,发布的数据记录只保留准表示副属性和敏感属性,称为匿名化处理。
等价组:在准标识符上的投影完全相同的记录组成的等价组,即:等价组中所有的记录在准标识符上的属性值完全相同,其他的属性值可以不同。
K-匿名描述:给定数据表T(A1,A2,…An),QI是与T相关联的准标识符,当且仅当在T[QI]中出现的每个值序列至少在T[QI]中出现K次,则T满足K-匿名。T[QI]表示T表元组在QI上的投影。
现实生活中,将医疗、投票、求职等信息公开的同时又要保证隐藏相关患者、投票人、和求职人等的个体标识信息并确保这些公布的数据不能用来推到出这些标识信息时,K匿名就是非常好的可选模型。当数据发布到公共数据库,数据的拥有者不再继续控制数据的使用方式和范围时,在这种情况下为了不暴露数据主体的身份移出所有涉及到个体标识的数据项信息De-Identification(即去标识)就是一种常用的方法。
2.OLA(Optimal Lattice Anonymization)算法(最优泛化格匿名化算法)
OLA算法是一种全局最优的K-匿名算法。其主要过程如下:
首先根据数据选择准标识符,然后由准标识符确定泛化层次和建立一个与之对应的Lattice(泛化格)。Lattice的每个节点代表数据集的一个实例(即泛化的一种方式)。然后从这些节点中选择一个最优的节点作为最后的泛化方式。
最优节点选择算法(最优节点是K匿名节点,然后该节点具有最小的信息损失量):
首先对于每一种泛化策略,通过二分查找的方法,查找出所有K-匿名节点。
对于每一种泛化策略,保存最低高度的K匿名节点(k-minimal node)。
对于多有的k-minimal节点,比较这些节点的信息损失量。信息损失量最小的节点就是需要查找的全局最优节点。
OLA最消耗时间的的两个步骤是:(a)判断一个节点是否为K匿名节点。(2)比较所有的k-minimal节点,找出信息损失量最小的节点。
发明内容
基于上述技术问题,本发明提出了一种基于度优先的K-Anonymity数据匿名处理方法,基于K-Anonymity匿名算法,采用度优先的方式获取隐私数据全局最优节点,对隐私数据进行匿名处理,以平衡数据挖掘中数据准确性和隐私保护的要求。
本发明所提出的基于度优先的K-Anonymity数据匿名处理方法,该方法包括以下步骤:
对发布数据进行预处理:根据发布数据选择相应的准标识符,然后由准标识符确定泛化等级和建立与之对应的Lattice泛化格;
获取全局最优节点,包括以下步骤:
计算Lattice中所有节点的度,即该节点的父节点的个数和该节点子节点的个数的乘积;
从Lattice泛化格中找到度最大的节点,判断该节点是否满足K-匿名:
如果该节点满足K-匿名,则从Lattice泛化格中删除该节点及其所有祖先节点;
查找K-min集合,判断该集合中是否有该节点的祖先节点,若有,删除保存所有泛化策略最低高度的K匿名节点的集合K-min集合中的该节点的祖先节点,若无,则不操作;最后把该节点保存到K-min集合中;
如果该节点不满足K-匿名,则从Lattice中删除该节点,并删除该节点的所有子孙节点;
计算K-min集合中节点的信息损失量;
将信息损失量最小的节点作为全局最优节点;
将所有发布数据按照最优节点的泛化方式进行泛化处理,并且将所得泛化处理结果进行发布;
所述从Lattice泛化格中找到度最大的节点的步骤,还包括包括以下步骤:
通过指令getMaxDegreeNode():返回泛化格中度最大的节点,该指令的具体实现过程是:计算所有节点的度,一个节点的度为该节点的所有直接父节点数与所有直接子节点数的乘积;找出度最大的节点并将其返回。这里所说的父节点为与该节点直接相连的上一层节点、子节点为与该节点直接相连的下一层节点;
所述计算K-min集合中节点的信息损失量的步骤,还包括以下步骤:
通过指令MinInfoLoss():计算KminNode中信息损失量最小的节点,
信息损失量的计算公式为:
InfoLoss=Σi=1NhiDGHiN]]>
N:表示元组集中地属性个数,DGHi表示N个属性中第i个属性的泛化等级,hi表示属性i的泛化程度;
在每次调用基于度优先的K-Anonymity数据匿名处理方法时,重新计算泛化格中所有节点的度,并且找到其中度最大的节点。
与现有技术相比,本发明能够在尽可能少地牺牲单个数据记录准确性的隐私保护前提下,保证发布数据整体趋势,为发布数据提供更好的可用性。
附图说明
图1为本发明的年龄的泛化方式举例;
图2为本发明的性别的泛化方式举例;
图3为本发明的泛化格举例;
图4为本发明的实施例三的装置架构图。
具体实施方式
下面结合附图对本发明的技术方案进行进一步的描述:
关于Lattice泛化格的建立,举例说明如下:
根据各个属性相应的泛化方式可以建立泛化格。令Ti(A1,…,Ak)和Tj(A1,…,Ak)是两个不同表,它们构成Lattice中的各节点,(A1,…,Ak)为被泛化处理数据的k个属性,令Tik为表格Ti(A1,…,Ak)的Ak属性的泛化等级或泛化高度,Tjk为表格Tj(A1,…,Ak)的Ak属性的泛化等级或泛化高度。如图一和图二所示分别为年龄和性别的泛化方式的举例。
泛化向量L(ai…ak),其中ai表示节点每个属性的泛化等级(或泛化高度)。
泛化等级表示该节点的在Lattice中的泛化等级(或泛化高度)。
距离矢量DVij=[d1,…dn],计算公式为dk=(Tjk-Tik),其中dk为泛化等级中属性间路径长度。
两个或多个属性进行不同等级的泛化得到的结果构成属性泛化序列。这些序列构成基于准标识符的泛化等级序列,称为泛化格。年龄Age和性别Sex的可以构成如图三所示的泛化格。泛化格中的每一个节点,表示一个属性一次泛化后的表,即为各属性泛化到此时对应的发布数据。
信息损失量:
数据经过泛化后就会出现一定程度的失真,泛化程度越高,那么数据失真度就越大。我们发布数据常常是用来分析或者研究某些问题,因此在发布数据的时候不仅要保护隐私的泄露,还要尽量保证发布的数据有较小的损失,否则即使达到了隐私保护的目的,发布的数据也失去了价值,隐私保护也没有任何意义。因此,需要进行泛化格最优节点的选择。建立好泛化格之后,按照最优节点选择算法选择出最优节点。最优节点选择算法的流程图如图四所示。具体包括以下步骤:
首先,对原始数据建立Lattice泛化格,步骤401;判断Lattice泛化格是否为空,步骤402;如果不为空,则取出泛化格中度最大的节点,步骤403;判断所取出的度最大的节点是否为K-匿名节点,步骤404;如果是K-匿名节点,在Lattice中删除该节点及其所有祖先节点,步骤405;判断K-min集合中是否有该节点的祖先节点,步骤406;如果否,则将该节点保存到K-min集合中,步骤407,返回步骤402;如果有,则删除该节点在K-min集合中的祖先节点,步骤408,之后,返回步骤407,即将该节点保存到K-min集合中,返回步骤402;如果步骤404的判断结果是所取出的度最大的节点不是K-匿名节点,则在Lattice泛化格中删除该节点及其所有子孙节点,步骤411,返回步骤402;
如果Latice泛化格为空,步骤402;则计算信息损失量最小的节点,作为最优节点,步骤409;按照最优节点方式进行泛化处理,并发布数据,步骤410。
在上述流程中,有几个具体的计算方法说明如下:
步骤403取出泛化格中度最大的节点,所采用的方法是通过指令getMaxDegreeNode():返回泛化格中度最大的节点。该指令的具体实现过程是:计算所有节点的度,一个节点的度为该节点的所有直接父节点数与所有直接子节点数的乘积;找出度最大的节点并将其返回。这里所说的父节点为与该节点直接相连的上一层节点、子节点为与该节点直接相连的下一层节点。
并且,由于在判断某个节点是否为K匿名节点时,会删除泛化格中的节点,删除某个节点时,与该节点相关联的边都会删掉。所以每次调用该方法时都需要重新计算泛化格中所有节点的度。
步骤409,则计算信息损失量最小的节点,作为最优节点;所采用的方法是通过指令MinInfoLoss():计算KminNode中信息损失量最小的节点。
信息损失量的计算公式为:
InfoLoss=Σi=1NhiDGHiN]]>
N:表示元组集中地属性个数,DGHi表示N个属性中第i个属性的泛化等级,hi表示属性i的泛化程度。由该公式可知泛化程度越高、信息损失量越大。泛化程度越低,信息损失量越小。最后将所有的数据按照最优节点的方式进行泛化。得到最后可以泛化的数据。
上述最优节点选择算法的伪代码如下:
ArrayList Kmin(Lattice lattice)
{
    Node node=lattice.getMaxDegreeNode();
    if(IsKAnonymous(node)==true)
        {
            DelAncestors(Lattice lattice,Node node);
            for(int i=0;i<KminNodes.size();i++)
                if(KminNodes.get(i).IsAncestorOf(node)
                    KminNOdes.remove(i);
            KminNodes.add(node);
            DelNode(Lattice lattice,Node node);
        }
    else(IsNotAnonymous(node)==true)
    {
        DelChildren(Lattice lattice,Node node);
DelNode(Lattice lattice,Node node);
    }
    return KminNodes;
}
Node OptimalNode(ArrayList list)
{
        return KminNode.MinInfoLoss();
        }
    KminNode:是保存所有泛化策略最低高度的K匿名节点的集合。
    ArrayList Kmin(Lattice lattice):获得每种泛化策略最低高度的K匿名节点集合。
    getMaxDegreeNode():获得该泛化格lattice中度最大的节点。
    IsKAnonymous(node):判断该节点是否为K匿名节点。
    DelAncestors(Lattice lattice,Node node):删除泛化格lattice中node的所有祖先。
    IsAncestorOf(node):判断该节点是否为node节点的祖先。
    DelNode(Lattice lattice,Node node):从该lattice中删除节点node;
    IsNotAnonymous(node):判断该节点是否为非匿名节点。
    DelChildren(Lattice lattice,Node node):从该泛化格lattice中删除node的所有后代。
    MinInfoLoss():从KminNode中计算出信息损失量最小的节点。
Node OptimalNode(ArrayList list):返回最优节点。

基于度优先的KANONYMITY匿名算法的数据处理方法.pdf_第1页
第1页 / 共11页
基于度优先的KANONYMITY匿名算法的数据处理方法.pdf_第2页
第2页 / 共11页
基于度优先的KANONYMITY匿名算法的数据处理方法.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《基于度优先的KANONYMITY匿名算法的数据处理方法.pdf》由会员分享,可在线阅读,更多相关《基于度优先的KANONYMITY匿名算法的数据处理方法.pdf(11页珍藏版)》请在专利查询网上搜索。

本发明公开了一种基于度优先的K-Anonymity数据匿名处理方法,该方法包括以下步骤:对发布数据进行预处理,建立Lattice泛化格;计算Lattice中所有节点的度,从Lattice泛化格中找到度最大的节点,获取全局最优节点,计算K-min集合中节点的信息损失量;将信息损失量最小的节点作为全局最优节点;将所有发布数据按照最优节点的泛化方式进行泛化处理,并且将所得泛化处理结果进行发布。与现有技术。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1