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

文档序号:12720998阅读:来源:国知局

技术特征:

1.一种敏感数据发布中的隐私保护方法,其特征在于,包括以下步骤:

(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匿名组进行概化输出。

2.根据权利要求1所述的隐私保护方法,其特征在于,节点的信息包括节点所在的层数、节点的属性值、以及节点的父节点。

3.根据权利要求1所述的隐私保护方法,其特征在于,步骤(4)中,当元素为数字时,计算距离时是采用欧氏距离计算公式。

4.根据权利要求1所述的隐私保护方法,其特征在于,步骤(4)中,当元素是字符串时,如果元素的属性值相同则距离为0,属性值不同则距离为1。

5.根据权利要求1所述的隐私保护方法,其特征在于,步骤(4)中,当元素是节点信息时,距离的计算过程是:首先比较两个节点是否相同,相同则距离为1,不同则比较其所在的层数是否相同,如果层数相同则比较其父节点是否相同,父节点相同则距离值为1/r,其中r为所在层数,父节点不同则继续判断其各自上一级父节点是否相同,如果相同,则判断距离值等于该上一级父节点所在层数的倒数,否则继续判断其上一级父节点并重复本过程;如果层数不相同,则将层数大的节点的上一级父节点与另一个节点进行比较,看二者层数是否相同,如果层数相同,则依照上述层数相同时候的原则进行判断,如果还不相同,则继续寻找其上一级父节点,并重复本过程。

6.根据权利要求1所述的隐私保护方法,其特征在于,步骤(5)中,当簇中的某一列元素是数字时,中心点是通过对所有元素取平均值来获得;当簇中的某一列元素是字符串时,中心点就是出现次数最多的字符串;当簇中的某一列元素是节点信息时,首先对各节点的层数取平均值,然后向下取整,在概化输入树中搜素第一个与取整后的层数相匹配的节点作为新的中心点。

7.根据权利要求1所述的隐私保护方法,其特征在于,步骤(9)具体为,对于k匿名组中数字类型,是通过输出该匿名组中数字的取值范围进行概化;对于k匿名组中字符串型数据,如果该k匿名组中所有的字符串均相同,则输出该字符串,否则输出通配符;对于k匿名组中节点信息,首先比较两个节点是否相同,相同则输出当前节点,不同则比较其所在的层数是否相同,如果层数相同则比较其父节点是否相同,父节点相同则输出该父节点,父节点不同则继续判断其各自上一级父节点是否相同,如果相同,则输出该上一级父节点,否则继续判断其上一级父节点并重复本过程;如果层数不相同,则将层数大的节点的上一级父节点与另一个节点进行比较,看二者层数是否相同,如果层数相同,则依照上述层数相同时候的原则进行判断,如果还不相同,则继续寻找其上一级父节点,并重复本过程。

8.一种敏感数据发布中的隐私保护系统,其特征在于,包括:

第一模块,用于接收来自用户的数据集以及对应的多个概化输入树,该数据集具有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匿名组进行概化输出。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1