法律状态公告日
法律状态信息
法律状态
2020-02-07
授权
授权
2017-09-12
实质审查的生效 IPC(主分类):H04L29/06 申请日:20170424
实质审查的生效
2017-08-18
公开
公开
技术领域
本发明涉及数据隐私保护技术领域,具体涉及一种社会网络动态发布中防止标签邻居攻击的匿名方法。
背景技术
近年来,随着互联网技术的蓬勃发展,社交网络软件也越来越流行,如微博微信和Facebook等,这些社交网络应用为人们提供了方便的沟通平台,同时也产生了大量的有关用户的信息。这些信息具有广泛的用途,如进行广告投放、商品推荐和社会行为预测等。社会网络数据中包含大量的敏感信息,包括个人的属性信息(比如职业,薪酬等),个人的行为信息(比如个人的社交关系等),这些信息如果不进行处理就发布共享,有可能会侵犯用户的隐私。因此,社会网络数据发布的隐私保护问题成为众多研究者关注的热点。
在社会网络数据中,通常用标签来表示用户的个人信息,例如姓名,性别,年龄,地址,职业等,用户可以自己选择想要隐藏的属性,被隐藏的属性是敏感的,而公开的属性是不敏感的,所以标签分为敏感和非敏感。最常用且直观的一种匿名方法为简单匿名,即移除能唯一标识用户的显式标识符属性,只保留用标签表示的属性。这样做虽然能够降低一部分隐私泄露,但是保护的强度不够,攻击者还是能够通过背景知识比如度、邻居结构信息来唯一识别个体。因此,在进行社会网络分析时,需要更进一步的考虑来保证隐私不被泄露,这些工作主要关注个体和关系泄露。
现有工作主要关注静态网络分析,但是很多应用涉及到网络的动态发展变化,与静态网络不同,面向动态网络数据的隐私保护提出了更高要求,它不仅是要保证某一时刻的数据满足匿名要求,由于不同时刻之间的数据还存在内在的关联关系,攻击者可通过先后时刻发布的数据进行比对而获得更多的隐私信息,还要保证多次发布隐私信息的安全,因此,现有的面向静态社会网络分析的隐私保护方法已不适用于动态发布的隐私保护的需求。本文针对以上问题,提出了在社会网络动态发布中防止标签邻居攻击的隐私保护模型。
发明内容
本发明所要解决的是现有隐私保护方仅基于社会网络静态发布而设计,而无法适用于社会网络动态发布的问题,提供一种社会网络动态发布中防止标签邻居攻击的匿名方法,其能够在发布数据时,可以满足动态网络的隐私要求。
为解决上述问题,本发明是通过以下技术方案实现的:
社会网络动态发布中防止标签邻居攻击的匿名方法,包括如下步骤:
步骤1、初始化当前时刻原始的社会网络图;
步骤2、对社会网络图中带敏感标签的节点根据结构相似度进行分组;
步骤3、对分过组后的带敏感标签的节点的邻居节点进行匹配,使得组内节点的邻居标签信息相同;
步骤4、对已经完成节点标签匹配操作的标签-邻居图进行随机化,得到随机化后的社会网络图;
步骤5、将随机化后的社会网络图发布。
上述步骤2的具体过程如下:
步骤3.1、将社会网络数据中带敏感标签节点集合
步骤3.2、选择新的节点集合中度数最大的带敏感标签的节点,并将该选中的节点从新的节点集合中去除;
步骤3.3、计算选中的带敏感标签的节点和新的节点集合中的每个节点的结构相似度,并将该选中的带敏感标签的节点及其结构相似度最相似的节点归为一组,直到该分组中所包含的节点个数达到隐私水平l;
步骤3.4、重复步骤3.2-3.3,直至新的节点集合中不再含有带敏感标签的节点,即完成分组工作。
上述步骤3.1中,将节点集合按度数降序排列,得到新的节点序列。
上述步骤4的具体过程如下:
步骤4.1、对已经完成节点标签匹配操作的标签-邻居图随机添加和/或删除边;即随机选取标签-邻居图中的任意2个节点,如果这2个节点之间的边存在于原始的社会网络图中,则从标签-邻居图中删除这条边;否则,将这条边添加到标签-邻居图中;
步骤4.2、为已随机添加和/或删除边后的标签-邻居图中的每一条边随机产生一个[0,1]的概率,并将该概率作为该条边存在于标签-邻居图的概率。
与现有技术相比,本发明具有如下特点:
1、采用基于邻居标签相似度设计的算法GSGA(Global Similarity-based GroupAnonymization)来为节点分配合适的分组,同时又考虑了原始社会网络中相同组中节点的邻居结构和度信息,用到的StruSim方法在此算法的基础上有所改进,来达到隐私要求;提高组内节点的结构相似度,为下一步的操作做准备,由此方法得到t时刻分组后的社会网络图。
2、采用随机扰乱的方法来改变图结构,随机添加删除边,然后采用模糊化的方法,每条边都有相应的概率存在于社会网络,使攻击者不能高于1/l的概率唯一确定带敏感标签的个体。
3、仅对带敏感标签的个体的标签邻居信息进行扰乱,减少了不确定图的数量,提高了数据的可用性。
附图说明
图1为社会网络动态发布中防止标签邻居攻击的匿名方法的原理图。
图2为数据匿名分组处理过程。
图3为数据匿名随机处理过程。
图4为不同时刻输入的原始社会网络图,其中(a)t=1时刻输入的原始社会网络图,(b)t=2时刻输入的原始社会网络图。
图5为分组过程图。
图6为重构过程图及发布图。
具体实施方式
本发明用到的社会网络数据是带标签的简单无向图,攻击者的背景知识可以是任意节点所在的特定的子图信息,即邻居标签信息。社会网络数据在发布前需要进行初步的匿名处理,即去掉唯一标识节点的显示标识属性,如姓名等,改用标签表示属性信息。发布的图用Gt(Vt;Et;Lt)表示动态网络t时刻的图,其中Vt为节点的集合,表示社会网络中的个人或其他实体;Et表示个体之间的关联,即图中边的集合,表示个人或实体间的关系,如朋友、合作关系。Lt表示个体的标签的集合。
本发明提出了一个动态网络多次发布隐私模型,即Dynamic-l-diversity,在这个模型中,给定一个在时刻t带标签的动态网络Gt(Vt;Vst;Et;Lt),和一个隐私阈值l。Vt表示节点的集合,Et表示边的集合,
参见图1,本发明中设计的数据处理方式主要为:首先是初始化数据,即去掉显示的标识属性,改用标签表示。除此之外,再将带敏感标签节点集合
(1)分组处理
当一个新的快照Gt,添加或删除边的时候,对带敏感标签的节点的子图结构如果发生变化,则对发生变化的节点进行分组,即调用L-Grouping(Gt);然后对分组后的节点的标签-邻居图进行随机化;如果有新的带敏感标签的节点添加到社会网络图中,则对新添加的所有带敏感标签节点进行分组,然后对分组后的节点的标签-邻居图进行随机化。如果带敏感标签的节点的标签在t+1时刻发生变化,如由B变为T,则在t+2时刻进行发布,即延迟发布,保证不被攻击者识别。针对动态社会网络多次发布防止标签邻居攻击用途中这一具体应用,本发明提出了一种满足动态社会网络数据隐私匿名方法。分组主要的实现过程如图2所示。
为了给节点分配合适的分组,在解决这一问题时用的是根据邻居标签相似度设计的算法GSGA(Global Similarity-based Group Anonymization)来达到隐私要求,即对于两个节点v1,v2,v1的邻居标签信息
但是此方法中在分组过程中并未考虑原始社会网络中节点的邻居结构信息,而本文中提出的StruSim方法在此算法的基础上有所改进,(StruSim)结构相似度定义如下:
定义(StruSim)对于两个节点v1,v2,Value1i表示带标签的节点v1的第i个邻居节点度信息,v2的第i个邻居节点度信息(Value2i),邻居标签相似度越大,表示两节点的邻居标签信息越相似。它们的邻居标签信息相似度可以计算如下:
步骤1:初始化数据集,输入社会网络Gt,参数隐私阈值l。
步骤2:将C置为空,将带敏感标签的节点集Vst按度数进行降序排列,以方便后续程序中节点的选择。
步骤3:判断当前的带敏感标签的节点集Vst是否大于l。若是,则根据标签相似度降序排列。新建组g,将第一个带敏感标签节点us,并到组中然后转到步骤4。否则转到步骤7。
步骤4:判断当前的分组中的节点个数是否小于l。如果小于l,则转到步骤5。否则转到步骤6。
步骤5:保证邻居标签相似度较大的情况下,找到与us结构相似度StruSim最大的节点umax,并到组中,同时从剩下的候选敏感标签节点集中移除umax。直到组中节点个数大于等于l,循环结束,转到步骤6。
在步骤5中,从以下方面防止动态发布邻居标签信息攻击,同时保证数据的效用性:在选择带敏感标签节点分组时,找到邻居标签相似度较大的情况下,找到结构相似度最大的节点,方便在随机化方法中尽可能小的信息损失量。
步骤6:将现有分组g合并到组集C中,判断剩余的带敏感节点集中的节点是否大于l,是转到步骤4。否则转到步骤7。
步骤7:判断当前未分组的带敏感标签节点个数是否为空集。如果是,则转到步骤9。否则转到步骤8。
步骤8:根据结构相似度,将g中节点按照结构相似度分到其他组。
步骤9:得到所有的组集中的组。
步骤10:判断当前组集是否为空,如果是,则转到步骤11。否则转到步骤12。
步骤11:取组集中的第一个组的一个带敏感标签的节点uf,对于任意的ui,计算出组内所有的邻居标签信息。然后再对组内所有的节点在社会网络中找到所有未匹配的节点,合并到当前的带敏感标签节点的标签-邻居图Cl(v)中。
在步骤11中,首先完成的功能是对于每个组,合并当前组中所有节点的邻居标签信息,我们用NLSg表示组中所有节点的邻居标签信息。将每个分组中的带敏感标签的节点的标签-邻居图的标签邻居信息与当前组的邻居标签信息NLSg比较,为当前簇Cl(v)找到未匹配的节点合并,节点匹配首先要满足标签相同,度相似,直到对于组内任意节点v,簇Cl(v)内的节点的邻居标签信息与当前组的邻居标签信息NLSg相同,节点匹配完成。这里已经完成节点标签匹配的节点的标签-邻居图我们简称为簇Cl(v).
步骤12:输出已经完成节点标签匹配后的社会网络图和组集C。
步骤13:结束。
(2)随机化处理
输入已经完成节点标签匹配后的社会网络图和组集C,将簇Cl(v)的边全部放到边集Es中,并随机选择簇Cl(v)中的节点u,v∈VCl(v),如果边(u,v)原本就存在ECl(v)中,从Es中删除(u,v);如果边(u,v)不存在ECl(v)中,就添加边(u,v),直到|Es|=β|ECl(v)|。β取值大于0,β的取值除了子图原本就是完全图的状态,取值范围为(0,1),因为边不能再添加了,除此之外,取值大于0即可。得到边为Es的子图后,对于
步骤1:输入已经完成节点标签匹配后的社会网络图,组集C和参数β。
步骤2:判断Gs是否不为空集。若是,则转到步骤3。否则转到步骤9。
步骤3:判断当前的带敏感标签的节点的邻居-标签图的集合是否不为空。若为空,则转到步骤2,否则转到步骤9。
步骤4:将已经匹配好的节点标签-邻居图的边全部放到Es中。转到步骤5。
步骤5:判断|Es|是否等于β|ECl(v)|。如果是,则转到步骤6。否则转到步骤7。
步骤6:得到边为Es的子图后,对子图的边产生0-1之间均匀分布的概率。
步骤7:并随机选择已经匹配好节点的标签-邻居图Cl(v)中的节点u,v∈VCl(v),转到步骤8。
步骤8:判断边(u,v)是否属于边集ECl(v),如果边(u,v)原本就已经存在边集ECl(v)中,从Es中删除(u,v);如果边(u,v)不存在ECl(v)中,就添加边(u,v)。直到|Es|等于β|ECl(v)|。
步骤9:输出t时刻的匿名后的社会网络图Gt’。
步骤10:结束。
下面通过一个具体实例,对本发明效果进行进一步说明:
原始图:Gt,l=2,t=1,2。图4为t=1时刻和t=2时刻输入的原始社会网络图,其中节点A,C是带敏感标签的节点。
为了使得每个组内的节点有相同的邻居标签信息,我们对节点进行适当的分组,所以在相同组内的1-邻居图和标签信息是同构的。带有非敏感标签的节点需要插入图中,使得节点的标签-邻居图在每个组内是同构的,并且组内节点不少于l个。我们用以下指标对节点进行分组:邻居标签相似度(NLSS)。对于两个节点,v1的邻居标签信息(NLSv1)和v2的邻居标签信息(NLSv2),他们的邻居标签信息相似度可以计算为:
初始化数据:将t=1时刻带敏感标签的节点按度数排序V:{4,3,3}。
敏感标签节点分组L-Grouping(Gt):
假设l=2。首先节点度降序排列后,节点A的邻居标签信息为{B,B,D,T},节点C的邻居标签信息为{B,B,D},节点F邻居标签信息为{B,B,D},我们首先考虑带敏感标签的节点A,根据邻居标签相似度降序排列带敏感标签的节点序列为{A,C,F},并且为节点A创建一个组g,根据这个例子,我们建立一个邻接矩阵如表1所示,通过StruSim得到:
表1:节点的one-hop邻域的邻接矩阵W
节点A和C结构相似度,
随机化处理:对于随机化处理,对同组内的已经完成节点标签匹配的节点的标签-邻居图进行随机化处理。节点F先不做考虑。例如,在图6的G1是t=1时刻的2-分组社会网络图,β=0.9,对组内带敏感标签的节点{A,C}的匹配过的标签-邻居图进行随机化,即对簇Cl(A)和Cl(C)进行随机化,对子图Cl(A),随机选择两个节点的边(u,v),并判断边是否存在簇Cl(A)中,不存在则添加边,否则删除边。直到Cl(A)中的边数为β|ECl(v)|=5(向下取整);对簇Cl(C),随机选择两个节点(u,v),并判断是否存在簇Cl(C)中,不存在则添加边,否则删除边。直到簇Cl(C)中的边数为4;图6中的G1’即为图G1中第一个分组随机化后的结果。由于t=2时刻,边发生变化,对发生变化的带敏感标签的子图进行重新分组,然后对节点进行随机化处理,同样的方法来重构图t=2时刻的G2,图6中的G2’即为最后要发布的匿名图。
随机化的过程中,只是随机添加删除少量的边,通过随机化的方法来混淆图,除此之外,每个分组都是大于等于l的,因此,对于社会网络图中的任意一个节点v来说,在发布的匿名图中至少有l-1个节点与之不可区分,所以,在发布的社会网络图中,攻击者能成功重识别目标节点的概率不会超过1/l,即达到了l匿名的隐私要求。同时对子图引入不确定边的方法,即使在动态发布的情况下,攻击者也不能唯一确定个体。同时,本发明提出的防止动态网络多次发布社会网络标签邻居攻击的方法可以方便用户直接对发布的数据进行分析,除此之后,此方法对原始社会网络中原始图结构保护效果明显。
匿名化处理:当一个新的快照Gt出现,分情况对社会网络图进行处理。情况1,带敏感标签节点子图添加或删除边的时候,对带敏感标签的节点的子图结构如果发生变化,则对发生变化的节点进行分组,即调用敏感节点分组算法L-Grouping(Gt);然后对分组后的节点的1-邻居子图进行随机化;情况2,如果有新的带敏感标签的节点添加到社会网络图中,则对新添加的所有带敏感标签节点进行分组,然后对分组后的节点的标签-邻居图进行随机化。情况3,如果带敏感标签的节点的标签在t+1时刻发生变化,如由B变为T,则在t+2时刻进行发布,即延迟发布,保证不被攻击者识别。
匿名方法程度检验:以下为本发明设计的算法在本例中的社会网络图数据匿名前后保护带敏感标签个体的情况。
t=1,t=2时刻如果攻击者知道个体A的标签-邻居图,通过随机化处理,个体A的匿名发布的标签-邻居图不再是原始图中标签-邻居图。并且个体C也有相似的标签-邻居图,t=2时刻也有标签-邻居图的变化。攻击者不能以高于1/2的概率识别个体A,通过比对两次发布的社会网络图,攻击者不能唯一确定个体A及她的属性L,因为A不是是唯一的节点度发生变化,并且匹配不到正确的标签-邻居图,也就找不到A个体,所以A及她的职业不会被泄露。
机译: 动态身份验证和身份验证,动态分布式密钥基础结构,用于身份管理的动态分布式密钥系统和方法,身份验证服务器,数据安全性和防止中间人攻击,旁通道攻击,僵尸网络攻击以及信用卡和金融交易欺诈,减轻生物特征识别误报和误报,并控制云中可访问数据的寿命
机译: 防止DOS攻击的邻居发现缓存的方法和设备
机译: 防止基于邻居发现的拒绝服务攻击