一种敏感数据发布中的隐私保护方法与流程

文档序号:12720998阅读:262来源:国知局
一种敏感数据发布中的隐私保护方法与流程
本发明属于计算机安全领域,更具体地,涉及一种敏感数据发布中的隐私保护方法。
背景技术
:随着互联网技术的迅猛发展,各种互联网应用如雨后春笋般喷涌而出。不可否认,这些互联网应用很大程度地方便了我们的生活。但是在使用这些应用的同时,我们的各种行为数据也将被各大应用厂商所储存。由于研究需要或其它目的,数据持有者需要将这些数据发布出去,从而导致用户的隐私信息泄漏,大数据环境下隐私泄露问题日益突出,加密和隐藏数据发布过程中的敏感数据变得非常重要。敏感数据需要进行隐私保护,其主要目标是,消除用户敏感数据和用户身份信息之间的对应关系。目前主流的隐私保护策略主要是采用k-匿名的隐私保护方法,实现k-匿名的算法有很多,例如有DATAFLY算法,该算法在实现k-匿名化的时候以表中的属性为一组对于数据表中的所有元组进行K-匿名化;还有MDAV算法,该算法即先对数据集中数据进行划分,针对每个k-匿名组再进行输出。上述采用k-匿名的隐私保护方法在选取构成k-匿名组的数据的时候是通过计算两组数据之间的相似性来判断的,要么对于属性值为混合型数据时并没有做过多探讨,要么是简单地认为当两组数据在当前坐标下的属性值相同则距离为0,属性值不同则距离为1。这样必然会造成两组数据之间的相似性计算不准确,导致k-匿名组分配的不合理。技术实现要素:针对现有技术的以上缺陷或改进需求,本发明提供了一种敏感数据发布中的隐私保护方法,其目的在于,通过使用一种基于语义的概化输入树来进行数据之间的距离计算和数据的概化输出,解决上述现有的方法中存在的由于相似性计算不准确,导致k-匿名组分配不合理的技术问题。为实现上述目的,按照本发明的一个方面,提供了一种敏感数据发布中的隐私保护方法,包括以下步骤:(1)接收来自用户的数据集以及对应的多个概化输入树,该数据集具有m组,每组数据具有n个属性;(2)遍历数据集中的每一组数据,并依次判断该组数据中的每一列数据是否存在对应的概化输入树,如果存在,则根据该数据的属性值在对应概化输入树中查找对应的节点,并将该节点的信息输入到坐标数组中,如果不存在,则直接将该数据的属性值输入坐标数组中,从而得到m行坐标数组,并为每个坐标数组添加初始值为0的标志位;(3)建立标志位分别为1,2,…,p的p个簇,从m行坐标数组中随机选择其中p行坐标数组分别作为建立的p个簇的中心点,其中0<p≤m;(4)依次对m行坐标数组中的每一行,分别获取其与p个中心点之间的距离,选取得到的p个结果中最小值对应的中心点对应的簇,将该行坐标数组添加到对应的簇中,并将当前行坐标数组的标志位设置为当前簇的标志位;(5)重新获取步骤(4)中得到的每个簇的中心点作为新的中心点;(6)判断步骤(5)获得的新的中心点是否与对应的原中心点是否相同,如果相同则进入步骤(7),否则返回步骤(4);(7)针对得到的每一个簇,判断该簇中坐标数组的个数是否大于2k,其中k是用户预先设置的匿名组的数量,是则计算出该簇的中心点,获取该簇中距离该中心点最远的坐标数组s,获取距离坐标数组s最远的坐标数组u,将距离坐标数组s最近的k-1个坐标数组与s归为一个k匿名组中,将距离坐标数组u最近的k-1个坐标数组与u归为一个k匿名组中,并将这些归入k匿名组中的坐标数组从簇中删除;否则判断该簇中坐标数组的个数是否大于k,如果是则将该簇中坐标数组归为一个k匿名组,并将这些归入k匿名组中的坐标数组从簇中删除,否则将该簇中坐标数组归入上一次归入的k匿名组中,并将这些归入k匿名组中的坐标数组从簇中删除;(8)重复步骤(7),直到簇中的坐标数组数量为0为止;(9)根据概化输入树对得到的多个k匿名组进行概化输出。优选地,节点的信息包括节点所在的层数、节点的属性值、以及节点的父节点。优选地,步骤(4)中,当元素为数字时,计算距离时是采用欧氏距离计算公式。优选地,步骤(4)中,当元素是字符串时,如果元素的属性值相同则距离为0,属性值不同则距离为1。优选地,步骤(4)中,当元素是节点信息时,距离的计算过程是:首先比较两个节点是否相同,相同则距离为1,不同则比较其所在的层数是否相同,如果层数相同则比较其父节点是否相同,父节点相同则距离值为1/r,其中r为所在层数,父节点不同则继续判断其各自上一级父节点是否相同,如果相同,则判断距离值等于该上一级父节点所在层数的倒数,否则继续判断其上一级父节点并重复本过程;如果层数不相同,则将层数大的节点的上一级父节点与另一个节点进行比较,看二者层数是否相同,如果层数相同,则依照上述层数相同时候的原则进行判断,如果还不相同,则继续寻找其上一级父节点,并重复本过程。优选地,步骤(5)中,当簇中的某一列元素是数字时,中心点是通过对所有元素取平均值来获得;当簇中的某一列元素是字符串时,中心点就是出现次数最多的字符串;当簇中的某一列元素是节点信息时,首先对各节点的层数取平均值,然后向下取整,在概化输入树中搜素第一个与取整后的层数相匹配的节点作为新的中心点。优选地,步骤(9)具体为,对于k匿名组中数字类型,是通过输出该匿名组中数字的取值范围进行概化;对于k匿名组中字符串型数据,如果该k匿名组中所有的字符串均相同,则输出该字符串,否则输出通配符;对于k匿名组中节点信息,首先比较两个节点是否相同,相同则输出当前节点,不同则比较其所在的层数是否相同,如果层数相同则比较其父节点是否相同,父节点相同则输出该父节点,父节点不同则继续判断其各自上一级父节点是否相同,如果相同,则输出该上一级父节点,否则继续判断其上一级父节点并重复本过程;如果层数不相同,则将层数大的节点的上一级父节点与另一个节点进行比较,看二者层数是否相同,如果层数相同,则依照上述层数相同时候的原则进行判断,如果还不相同,则继续寻找其上一级父节点,并重复本过程。按照本发明的另一方面,提供了一种敏感数据发布中的隐私保护系统,包括:第一模块,用于接收来自用户的数据集以及对应的多个概化输入树,该数据集具有m组,每组数据具有n个属性;第二模块,用于遍历数据集中的每一组数据,并依次判断该组数据中的每一列数据是否存在对应的概化输入树,如果存在,则根据该数据的属性值在对应概化输入树中查找对应的节点,并将该节点的信息输入到坐标数组中,如果不存在,则直接将该数据的属性值输入坐标数组中,从而得到m行坐标数组,并为每个坐标数组添加初始值为0的标志位;第三模块,用于建立标志位分别为1,2,…,p的p个簇,从m行坐标数组中随机选择其中p行坐标数组分别作为建立的p个簇的中心点,其中0<p≤m;第四模块,用于依次对m行坐标数组中的每一行,分别获取其与p个中心点之间的距离,选取得到的p个结果中最小值对应的中心点对应的簇,将该行坐标数组添加到对应的簇中,并将当前行坐标数组的标志位设置为当前簇的标志位;第五模块,用于重新获取第四模块中得到的每个簇的中心点作为新的中心点;第六模块,用于判断第五模块获得的新的中心点是否与对应的原中心点是否相同,如果相同则进入第七模块,否则返回第四模块;第七模块,用于针对得到的每一个簇,判断该簇中坐标数组的个数是否大于2k,其中k是用户预先设置的匿名组的数量,是则计算出该簇的中心点,获取该簇中距离该中心点最远的坐标数组s,获取距离坐标数组s最远的坐标数组u,将距离坐标数组s最近的k-1个坐标数组与s归为一个k匿名组中,将距离坐标数组u最近的k-1个坐标数组与u归为一个k匿名组中,并将这些归入k匿名组中的坐标数组从簇中删除;否则判断该簇中坐标数组的个数是否大于k,如果是则将该簇中坐标数组归为一个k匿名组,并将这些归入k匿名组中的坐标数组从簇中删除,否则将该簇中坐标数组归入上一次归入的k匿名组中,并将这些归入k匿名组中的坐标数组从簇中删除;第八模块,用于重复第七模块,直到簇中的坐标数组数量为0为止;第九模块,用于根据概化输入树对得到的多个k匿名组进行概化输出。总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:(1)本发明相似性计算准确,并可以保证k-匿名组分配合理性:由于本发明采用了步骤(4)和(7),在计算数据之间距离的时候采用基于概化输入树的距离计算方式因此保证了原始数据在语义上一定程度的保留(2)本发明减少了现有方法的执行时间;由于本发明通过步骤(5)和(6)实现了数据的聚类,并且本发明的步骤(4)、(5)和(7)均能部署在诸如Hadoop的大数据平台上,因此可减少本方法的执行时间,提高了执行效率。附图说明图1是本发明敏感数据发布中的隐私保护方法的流程图。图2是本发明中使用的概化输入树的示意图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。以下首先就本发明的技术术语进行解释和说明:标识符与准标识符。对于一组数据,能唯一标识用户身份的成为标识符,如姓名,身份证号等。不能唯一标识用户但存在属于用户自身信息的一条属性或属性组合的称为准标识符(Quasi-Identifiers,简称QI),准标识符能连通外部数据一起对缩小用户范围从而达到标识用户的目的。k-匿名。给定数据表T={t1,t2,t3,t4…..tn},QI为定义在T上的准标识符。当且仅当T[QI]每一组数据个数大于或等于k的时候称T满足k-匿名。总体而言,本发明是分成两部分来完成:1、预处理。所谓预处理即将数据分为g个簇,每个簇内相关性大,而簇与簇之间的相关性较小。由于在分类过程中并没有进行k-匿名化,故时间消耗较小。并且也不会影响到最后k-匿名时匿名组内数据的相关性。2、匿名化。将预处理后的每个簇分别进行k-划分。每个簇的匿名化互不影响,存在可以使用并行分布式工具高速处理的可能性。并且相比原始数据每个簇内的数据较小,每次需要比较的点间距离也就小的多,缩短了算法进行的时间。如图1所示,本发明敏感数据发布中的隐私保护方法包括以下步骤:(1)接收来自用户的数据集以及对应的多个概化输入树;具体而言,该数据集具有m组,每组数据具有n个属性,其中m和n都是自然数,概化输入树采用的是一种树形的结构(即父节点和子节点结合的方式),用于表示数据概化之间的关系,数据集中的不同列具有不同的属性,该列所对应的概化输入树就描述了该列属性对应的多个属性值之间的概化规则,该概化输入树的数量是小于或等于数据集中每组数据的属性数量;例如,输入的数据集如下表所示:输入4组数据,每组数据有4个属性值。年龄位置邮编性别22武汉430014男29宜昌430014男34长沙430014女23湖南430015女图2是一个概化输入树的示意图,可以很清楚的从该图看出,其是与上述实例中的“位置”属性相对应的概化输入图,且该输入树层数为3。(2)遍历数据集中的每一组数据,并依次判断该组数据中的每一列数据是否存在对应的概化输入树,如果存在,则根据该数据的属性值在对应概化输入树中查找对应的节点,并将该节点的信息输入到坐标数组中,如果不存在,则直接将该数据的属性值(其可能为数字或字符串)输入坐标数组中,从而得到m行坐标数组,并为每个坐标数组添加初始值为0的标志位;具体而言,节点的信息包括节点所在的层数、节点的属性值、以及节点的父节点;上述步骤(1)的例子,经过本步骤处理后变为:年龄位置邮编性别标志位22{“武汉“,3,湖北}430014男029{“宜昌”,3,湖北}430014男034{“长沙”,3,湖南}430014女023{“湖南”,2,中国}430015女0(3)建立标志位分别为1,2,...,p的p个簇(其中0<p≤m),从m行坐标数组中随机选择其中p行坐标数组分别作为建立的p个簇的中心点;上述步骤(1)的例子,经过本步骤处理后变为:簇1(4)依次对m行坐标数组中的每一行,分别获取其与p个中心点之间的距离(即每行坐标数组中所有元素与中心点中对应元素距离的和),选取得到的p个结果中最小值对应的中心点对应的簇,将该行坐标数组添加到对应的簇中,并将当前行坐标数组的标志位设置为当前簇的标志位;具体而言,计算每行坐标数组中的元素与中心点中对应元素之间的距离是采用如下原则:(i)元素为数字时,计算距离时是采用欧氏距离计算公式。(ii)元素是字符串时,即用户没有输入对应的概化输入树,此时计算两点间距离时,如果元素的属性值相同则间距为0,属性值不同则间距为1;(iii)元素是节点信息时,即用户对当前属性输入了其概化输入树,那么计算元素间间距的时候,在定义概化输入树的时候已经提到了不同节点之间的距离计算办法,具体实施办法是:首先比较两个节点是否相同,相同则距离为1,不同则比较其所在的层数是否相同,如果层数相同则比较其父节点是否相同,父节点相同则距离值为1/r,其中r为所在层数,父节点不同则继续判断其各自上一级父节点是否相同,如果相同,则判断距离值等于该上一级父节点所在层数的倒数,否则继续判断其上一级父节点并重复本过程;如果层数不相同,则将层数大的节点的上一级父节点与另一个节点进行比较,看二者层数是否相同,如果层数相同,则依照上述层数相同时候的原则进行判断,如果还不相同,则继续寻找其上一级父节点,并重复本过程。上述步骤(1)的例子,经过本步骤处理后变为:簇1簇2|(5)重新获取步骤(4)中得到的每个簇的中心点作为新的中心点;具体而言,当簇中的某一列元素是数字时,中心点是通过对所有元素取平均值来获得;当簇中的某一列元素是字符串时,中心点就是出现次数最多的字符串;当簇中的某一列元素是节点信息时,首先对各节点的层数取平均值,然后向下取整,在概化输入树中搜素第一个与取整后的层数相匹配的节点作为新的中心点。(6)判断步骤(5)获得的新的中心点是否与对应的原中心点是否相同,如果相同则进入步骤(7),否则返回步骤(4);(7)针对得到的每一个簇,判断该簇中坐标数组的个数是否大于2k,其中k是用户预先设置的匿名组的数量,是则计算出该簇的中心点,获取该簇中距离该中心点最远的坐标数组s(其中计算中心点和距离的过程均在上述文字中予以描述,在此不再赘述),获取距离坐标数组s最远的坐标数组u,将距离坐标数组s最近的k-1个坐标数组与s归为一个k匿名组中,将距离坐标数组u最近的k-1个坐标数组与u归为一个k匿名组中,并将这些归入k匿名组中的坐标数组从簇中删除;否则判断该簇中坐标数组的个数是否大于k,如果是则将该簇中坐标数组归为一个k匿名组,并将这些归入k匿名组中的坐标数组从簇中删除,否则将该簇中坐标数组归入上一次归入的k匿名组中,并将这些归入k匿名组中的坐标数组从簇中删除;上述步骤(1)的例子,经过本步骤处理后变为:匿名组122{“武汉“,3,湖北}430014男29“宜昌”,3,湖北}430014男匿名组234{“长沙”,3,湖南}430014女23{“湖南”,2,中国}430015女(8)重复步骤(7),直到簇中的坐标数组数量为0为止;(9)根据概化输入树对得到的多个k匿名组进行概化输出;具体而言,对于k匿名组中数字类型的概化,是通过输出该匿名组中数字的取值范围进行概化;对于k匿名组中字符串型数据,如果该k匿名组中所有的字符串均相同,则输出该字符串,否则输出通配符(例如*号等);对于k匿名组中节点信息的概化,首先比较两个节点是否相同,相同则输出当前节点,不同则比较其所在的层数是否相同,如果层数相同则比较其父节点是否相同,父节点相同则输出该父节点,父节点不同则继续判断其各自上一级父节点是否相同,如果相同,则输出该上一级父节点,否则继续判断其上一级父节点并重复本过程;如果层数不相同,则将层数大的节点的上一级父节点与另一个节点进行比较,看二者层数是否相同,如果层数相同,则依照上述层数相同时候的原则进行判断,如果还不相同,则继续寻找其上一级父节点,并重复本过程。上述步骤(1)的例子,经过本步骤处理后变为:年龄位置邮编性别[22-29]湖北430014男[22-29]湖北430014男[23-34]湖南43001*女[23-34]湖南43001*女本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1