«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (5): 154-161  DOI: 10.19678/j.issn.1000-3428.0061414
0

引用本文  

朱黎明, 丁晓波, 龚国强. 图数据连续发布中的隐私保护方法[J]. 计算机工程, 2022, 48(5), 154-161. DOI: 10.19678/j.issn.1000-3428.0061414.
ZHU Liming, DING Xiaobo, GONG Guoqiang. Privacy Protection Method in Continuous Publishing of Graph Data[J]. Computer Engineering, 2022, 48(5), 154-161. DOI: 10.19678/j.issn.1000-3428.0061414.

基金项目

国家重点研发计划“网络空间安全”专项基金(2016YFB0800403)

作者简介

朱黎明(1995—),男,硕士研究生,主研方向为隐私保护;
丁晓波,副教授;
龚国强,副教授

文章历史

收稿日期:2021-04-21
修回日期:2021-08-18
图数据连续发布中的隐私保护方法
朱黎明1,2 , 丁晓波1,2 , 龚国强1,2     
1. 三峡大学 计算机与信息学院, 湖北 宜昌 443002;
2. 湖北省建筑质量检测装备工程技术研究中心, 湖北 宜昌 443000
摘要:随着互联网技术的发展和智能终端的普及,社交网络中产生了大量用户隐私数据,公开发布社交网络数据将提高用户隐私泄露的风险,需要对数据进行匿名化处理然后进行发布。传统社交网络k度匿名方法在图数据连续发布中的匿名方式,存在大量冗余计算及无法抵抗度时序推理攻击的问题,为此,提出一种连续发布图数据的改进k度匿名算法。通过定义度时序矩阵来一次性地构建满足k匿名性要求的k度时序矩阵,在k度时序矩阵的基础上提取不同时刻的k度向量,将其作为时刻图的匿名向量,通过图修改方法对前一时刻的匿名图进行处理,得到后续一系列的匿名图版本,从而缩短每一次重新匿名所消耗的时间,同时抵抗基于度变化实现的度时序背景知识攻击。在真实社交网络数据集上进行实验,结果表明,相对kDA算法,该算法的总体运行效率以及网络结构属性可用性均较优。
关键词图数据    隐私保护    k度匿名    社交网络    时序矩阵    
Privacy Protection Method in Continuous Publishing of Graph Data
ZHU Liming1,2 , DING Xiaobo1,2 , GONG Guoqiang1,2     
1. College of Computer and Information Technology, China Three Gorges University, Yichang, Hubei 443002, China;
2. Hubei Province Engineering Technology Research Center for Construction Quality Testing Equipment, Yichang, Hubei 443000, China
Abstract: With the development of Internet technology and popularity of intelligent terminals, a large amount of user privacy data have been generated in social networks.The public release of social network data increases the risk of user privacy disclosure.Therefore, anonymizing the data is necessary before publishing it.The traditional k-degree anonymity method in the continuous publishing of graph data requires numerous redundant calculations and cannot resist temporal reasoning attack.Therefore, an improved k-degree anonymity algorithm for continuous publishing of graph data is proposed.A k-degree time series matrix satisfying the requirements of k anonymity is constructed by defining the degree time series matrix.From this matrix, a k-degree vectors is extracted as the anonymous vector of the time chart.The anonymous graph at the previous time is processed using the graph modification method to obtain a series of subsequent anonymous graph versions to shorten the time consumed by each anonymity.Simultaneously, it resists the degree time series background knowledge attack using the degree change.The experiments on real social network datasets show that the overall operation efficiency and network attribute availability of this algorithm are better than the kDA algorithm.
Key words: graph data    privacy protection    k-degree anonymity    social network    time sequence matrix    

开放科学(资源服务)标志码(OSID):

0 概述

现有许多基于k度匿名的社交网络匿名模型都假设网络结构不变,仅考虑网络结构的一次性匿名发布。但是,真实社交网络图是不断变化的,攻击者很有可能根据社交网络图前后的变化进行关联攻击,此外,若每次对待发布数据重新进行一次匿名处理,将降低动态社交网络数据匿名的灵活性,因此,考虑社交网络发布数据的动态性十分有必要,研究人员在动态社区发现[1]、动态社交网络节点影响力[2]、动态社交网络表示学习[3]等领域,都需要对动态社交网络进行深入分析,而隐私保护问题与人们的日常生活密切相关,研究动态社交网络的隐私保护问题和隐私保护方法尤为重要。

针对单一社交网络隐私保护问题,LIU等[4]提出一种k度匿名保护方案,其通过构造k度向量来进行图重构,以防止节点度数攻击,但是,该图重构技术极大地破坏了原图中所有的节点关联关系,带来了很大的结构信息损失。TAI等[5]提出了$ {\mathrm{k}}^{2} $匿名方法,该方法通过构造k个具有相同度序列的邻居来防止依据好友身份进行的关联攻击。HAY等[6]提出了k-candidate匿名模型,用于防止顶点度数识别攻击,并提出了基于聚类的匿名保护方案。ZOU[7]和CHENG等[8]通过研究社交图的子图结构,以对子图分别进行k同构和自同构构造,它们的不足之处在于需要同构判断以及重构时的代价非常巨大。龚卫华等[9]根据k度匿名提出SimilarGraph模型,该模型先对度序列进行簇划分,然后通过边修改操作进行图重构,其操作与k度匿名模型类似。MITTAL等[10]提出基于随机游走的匿名技术以保护边链接隐私,用户ij之间的一条边被用户iu之间的边替代,其中,用户u是用户j随机游走到达的目的地。王路宁等[11]提出基于链路预测的方法,以对动态数据进行聚类泛化保护。MA等[12]提出KDVEM模型,其通过计算最小匿名代价,先对原图进行边修改操作,然后针对无法通过边修改操作达到k匿名性要求的节点,创建虚拟节点并与该节点建立边,从而实现原始图中所有节点的k度匿名。周克涛等[13]提出了改进的基于邻居度序列相似度的k度匿名保护方法,其能抵抗基于邻居度序列的背景知识攻击。CHESTER[14]提出基于虚拟节点的k度匿名方法,其通过添加虚拟节点使得任意节点满足k度匿名,并给出所添加节点数量的最小值以及为节点添加的最少下界,通过添加最少的下界使得原图满足k度匿名性,再对新添节点进行k度匿名。CASAS-ROMA等[15]为了适应大型社交网络的k匿名化,提出单变量微聚合k级匿名算法,该算法通过边缘相关性测度保留重要的边,减少了信息损失。CHEN等[16]在k度匿名的基础上进行改进,通过最小的边编辑方法给出所有图修改操作,使得匿名图尽可能与原图相似。谷勇浩等[17]针对社交网络动态变化的特性,提出基于聚类的动态社交网络隐私保护方法,该方法通过计算聚类间的距离,将变化后的节点重新分配到聚类集合中,然后对变化的节点进行匿名处理。

董祥祥等[18]针对社交网络动态变化的更新问题,提出动态社交网络发布的匿名数据方法,其通过匿名更新已经匿名的数据,保证前后匿名图具有相似的图结构,但是,该方法并未考虑前后匿名图存在的隐私泄露风险。金叶等[19]考虑网络中社区结构属性所带来的隐私泄露风险,将节点分为边缘节点和一般节点,然后对其进行匿名,从而保护度结构和社区结构。KIABOD等[20]考虑每次构造k度向量会浪费很多时间,其通过构造k度向量树来保证在需要得到不同k值时可以从k度向量树上直接得到k度向量,从而大幅节省重新获取k度向量的时间。刘振鹏等[21]提出动态社交网络差分隐私保护方法,其缩短了每一次更新匿名图的时间,但是,差分隐私对度背景知识攻击的抵抗性较差,需要添加较多的噪声节点。张晓琳等[22]针对有向社交网络提出大规模出入度匿名保护方法,其通过贪心算法分组并增加虚拟节点来匿名节点,在对虚拟节点进行合并删除的过程中依据层次社区结构划分保持节点所属社区不变,从而较好地保护图的基本属性和社区结构。

上述大多数度匿名研究集中在单一社交网络匿名保护方面,虽然可以对变化后的整个社交网络重新匿名再进行发布,但是这样的匿名方式会存在大量冗余计算,有少量节点和边发生变化时还是需要对整个社交网络进行全部匿名化处理。此外,攻击者在分析前后匿名图中的节点度变化时,根据前后不同时刻的匿名图进行关联攻击,这存在一定的隐私泄露风险。针对上述问题,本文提出一种图数据连续发布中的k度时序匿名方法。考虑连续图中节点度数变化会泄露隐私的问题,通过构造k度时序矩阵来保证前后匿名图中节点度变化相同的节点个数不少于k个,然后通过图修改方法得到一系列匿名图版本。

1 问题描述及相关定义

本文考虑的时序图是无向无权的简单图的连续变化过程,用$ G=\{{G}_{1}, {G}_{2}, \cdots , {G}_{T}\} $表示图的变化过程,在$ t $时刻的社交网络图为$ {G}_{t}=\{{V}_{t}, {E}_{t}\}(1 < t < T) $$ {V}_{t} $$ {E}_{t} $表示$ t $时刻图中的节点和边,对于每个节点而言,不同时间段其度可能发生变化。尽管当前社交网络已经满足k度匿名性要求,但是,在有新的节点加入时,会破坏原有匿名图的匿名性,这时需要重新对社交图进行匿名化处理。此外,根据前后匿名图,攻击者有一定几率能识别出特定的节点,导致该节点被唯一标识,进而导致隐私泄露,本文将其定义为度时序背景知识攻击。

定义1(度时序背景知识攻击)    度时序背景知识攻击也称度变化背景知识攻击,当攻击者具有较强的度背景知识时,通过已知节点在不同时刻社交网络中度数变化的唯一性,可以标识该节点。

定义1增强了攻击者的攻击能力,为了更好地说明度时序攻击的可能性,本文给出简单的示例,如图 1所示,$ {t}_{0} $时刻图$ {G}_{0} $节点度序列为$ [\mathrm{3, 3}, \mathrm{2, 2}, \mathrm{1, 1}] $,其为2度匿名图,当有新的节点$ {v}_{7} $$ {v}_{8} $加入时,得到$ {t}_{1} $时刻图$ {G}_{1} $$ {G}_{1} $的节点度序列为$ [\mathrm{3, 3}, \mathrm{3, 3}, \mathrm{2, 1}, \mathrm{2, 1}] $,也是一个2度匿名图。以度矩阵$ \boldsymbol{D} $的形式可以更直观地体现各个节点度的变化情况,后续将$ \boldsymbol{D} $定义成度时序矩阵,其中,各个节点的度变化依次为[3, 3]、[3, 3]、[2, 3]、[2, 3]、[1, 2]、[1, 1]、[0, 2]、[0, 1],共同组建成D,0表示该节点未出现在该时刻的图中。当攻击者知道节点$ {v}_{5} $的度数由1变成2、节点$ {v}_{7} $的度数由0变成2、节点$ {v}_{8} $的度数由0变成1时,由于这些节点度的变化在匿名图中唯一,则攻击者就能够以很高的概率唯一标识这些节点,导致这些节点标识隐私泄露,由此可见,满足k度匿名并不能抵抗度时序背景知识攻击。

Download:
图 1 不同时刻的2度匿名图 Fig. 1 2-degree anonymous graph at different times

由以上例子可以看出,在不同时间段,节点的度数会发生变化。为了更好地解决节点度数变化可能导致的隐私问题,本文将度变化定义成度时序,具体如定义2所示。在多个社交网络中,不同用户在不同时刻图中的度数组成度时序矩阵,具体如定义3所示。

定义2(度时序)    在连续的图数据发布中,节点的度数在不同时刻社交图中会出现不同的值,节点度会随着时间的变化而改变。节点i的度时序用$ {D}_{i·}=[{d}_{i1}, {d}_{i2}, \cdots , {d}_{it}, \cdots , {d}_{iT}] $表示,其中,$ {d}_{it} $表示在时间t发布的社交网络$ {G}_{t} $中节点i的度数。

定义3(度时序矩阵)    由各个节点的度时序向量共同组成的矩阵称为度时序矩阵$ {\boldsymbol{D}}^{n\times T} $,其中,n表示连续社交网络中节点的最大值,T表示连续社交网络中的图个数。图 1中的8×2矩阵$ \boldsymbol{D} $为度时序矩阵。

定义2和定义3是对原始多个待发布图的特征定义,考虑到攻击者会根据度变化的唯一性进行攻击,从而导致隐私泄露,因此,需要保证至少有k-1个节点的度时序相同,这样才能满足k匿名性要求。

定义4(k度时序匿名)    在连续发布图中,对于任意一个节点v的度时序,至少存在k-1个节点的度时序与之相同。

定义4是传统k匿名保护方法的扩展,其能抵抗更强的背景知识攻击,又同时具备原有k匿名方法的隐私保护能力。

定理1    若社交网络图满足k度时序匿名,则满足每个时刻的社交图是k度匿名的。

证明   在k度时序匿名的连续图中,对于任意一个节点v,由于其满足k度时序匿名,则必定存在k-1个节点的度时序向量是相同的,因此,在对应的时刻图中,节点v的度数至少与k-1个节点的度是相同的,满足k度匿名性,因此,k度时序匿名的时序图中每一时刻的社交图都是k度匿名的。

由定理1可知,满足k度时序匿名一定满足k度匿名,简单而言,就是在能够抵抗度攻击的基础上,还可以抵抗攻击者根据度变化进行的攻击。

定义5(k度时序矩阵)    如果连续图数据发布中的度时序矩阵是k度时序矩阵,那么在由节点度时序向量组成的度时序矩阵中,对于任意一个节点的度时序向量,至少有k-1个节点的度时序向量与之相同,即在度时序矩阵中,对于任意一行,至少有k-1行与其相同。

由定义5可以看出,本文参考k度匿名算法中的简易思想原理,通过提取每个节点的度时序组成度时序矩阵,使度时序矩阵中的每一个行向量都有至少k-1个行向量与之相同,那么连续图数据就是k度时序匿名的。在得到满足k匿名性的矩阵后,通过图修改技术对原始图进行边和节点的修改操作,就可以得到所需的匿名图并进行发布。

2 连续图中的k度时序匿名模型

为了满足图数据连续发布中的k度时序匿名性,本文提出连续图k度时序匿名模型,其算法分为两步:首先,获取整个连续图数据的度时序矩阵$ \boldsymbol{D} $,基于贪心策略进行度时序矩阵分组划分,获取连续图的目标度时序矩阵$ \boldsymbol{D}\text{'} $;其次,为了减少冗余计算,对已经匿名处理的图进行图修改操作,结合t-1时刻匿名图$ G{\text{'}}_{t-1} $t时刻的k度向量,对下一时刻的原图$ {G}_{t} $进行匿名化处理。为了更好地说明本文模型与传统模型之间的差别,给出两者的流程比较,如图 2所示。

Download:
图 2  2种匿名模型的对比 Fig. 2 Comparison of two anonymous models

图 2可以看出,对于多个待发布的图数据而言,其k度匿名模型需要对每一个待发布图都进行匿名处理,这在很大程度上浪费了时间,而且不能很好地抵抗度时序攻击,而k度时序匿名不仅可以抵抗度时序攻击,还可以更好地处理多个待发布图,在增强隐私的同时更具灵活性。

2.1 基于贪婪划分策略的k度时序矩阵构造

对于社交图的变化情况,本文考虑符合人们真实活动的社交网络,即某一用户在原社交圈认识新的朋友对应社交图中边的增加,有新的成员加入该社交圈子对应新节点的增加和新边的增加。对于图 1中的$ \boldsymbol{D} $而言,其不满足2度时序矩阵的要求,因此,首先要将其转换成2度时序矩阵,转化后各个节点的度变化依次为[3, 3]、[3, 3]、[2, 3]、[2, 3]、[1, 2]、[1, 2]、[0, 2]、[0, 2],这些变化共同组成$ \boldsymbol{D}\text{'} $。由此可见,$ \boldsymbol{D}\text{'} $中至少存在2个相同的向量,是一个2度时序矩阵,攻击者就无法以高于1/2的概率识别出具体节点,同时在每个时刻的图中也不可能进行度攻击。

基于以上考虑,对于度时序矩阵$ \boldsymbol{D} $,本文首先要将其划分成多个组,其中,每个组中至少包含k个行向量,使得每个行向量直接转换成相同向量产生的匿名代价最小,因此,可以参考k度匿名中对一维度序列的贪婪划分策略[4],将距离测度较小的向量合并到同一分组中,节点i和节点j的距离测度为:

$ \mathrm{d}\mathrm{i}\mathrm{s}\mathrm{t}(i, j)=\left|\right|{D}_{i·}-{D}_{j·}|{|}_{1} $ (1)

其中:$ {D}_{i·} $表示度时序矩阵的第i行;$ {D}_{j·} $表示第j行;$ \left|\right|\cdot |{|}_{1} $表示行向量的1范数。对于分组中含有不同的行向量,统一选取产生1范数最大的行向量作为整个组的匿名标准(这一点与k度匿名选取最大度作为分组的匿名标准相似),对分组进行统一匿名化,具体操作如算法1所示。

算法1    基于贪婪策略的分组划分算法

输入    度时序矩阵$ \boldsymbol{D} $,隐私程度k

输出    k度时序矩阵$ \boldsymbol{D}\text{'} $

1.sort D by$ \left|\right|{\mathrm{D}}_{\mathrm{i}·}|{|}_{1} $

2.Group $ \leftarrow $ Greedy(D) by min dist;

3.$ \mathrm{D}\mathrm{\text{'}}=\mathrm{D} $

4.for each pi in group do

5.$ {\mathrm{D}}_{\mathrm{m}\mathrm{a}\mathrm{x}} $ = max$ \left|\right|{\mathrm{D}}_{\mathrm{i}\cdot }|{|}_{1} $ in pi

6.for each $ {\mathrm{D}}_{\mathrm{i}·} $ in pi do

7.change $ {\mathrm{D}}_{\mathrm{i}·} $ to $ {\mathrm{D}}_{\mathrm{m}\mathrm{a}\mathrm{x}} $ in $ \mathrm{D}\mathrm{\text{'}} $

8.end for

9.end for

10.return $ \mathrm{D}\mathrm{\text{'}} $

2.2 基于图修改的k度时序匿名方法

在经过贪婪分组划分后,得到满足k匿名性的k度时序矩阵,接下来根据图修改方法将连续社交图$ G $转化成满足匿名性的连续图$ G\text{'} $。对第一时刻的匿名图$ {G}_{1} $,可以采用已有研究中的任何k度匿名算法进行匿名操作,如何降低其对后续社交网络的匿名处理时间是研究重点。首先,计算后续匿名图与已匿名图之间的差异,即k度时序矩阵中当前列与下一列的差值,当两者中的某些元素相同时,表示这些节点不需要进一步处理,当不相同时,需要对当前匿名图对应的节点进行匿名处理,从而得到下一时刻的匿名图。因此,首先计算当前匿名图的k度向量与下一个待匿名图对应节点的差值:

$ {d}_{\mathrm{d}\mathrm{e}\mathrm{f}}=D{\text{'}}_{i(t+1)}-D{\text{'}}_{it} $ (2)

其中:$ D{\text{'}}_{it} $表示k度时序矩阵中节点it时刻的社交图$ {G}_{t} $中的目标度;$ D{\text{'}}_{i(t+1)} $表示k度时序矩阵中节点i$ t+1 $时刻社交图$ {G}_{t+1} $中的目标度。

图 3所示,由于图 1中连续社交网络并不满足2度时序匿名性,因此需要对其进行匿名化处理。首先根据$ \boldsymbol{D}\text{'} $得到需要匿名的节点$ {v}_{6} $$ {v}_{8} $都需要增加1度,通过图修改方法可以直接在2个节点之间增加一条边,如图 3(b)所示,曲线即为添加的边。

Download:
图 3  2度时序匿名图 Fig. 3 2-degree time series anonymous graph

通过图修改操作来增加边的过程为:如果节点i和节点j都需要增加度,并且ij之间不存在边,则添加一条边(ij)。通过图修改操作来增加虚拟节点的过程为:如果节点i和节点j都需要增加度,但ij之间存在边,则创建虚拟节点k,其与节点ij都相连。具体匿名步骤如算法2所示。

算法2    k度时序匿名算法

输入    k度时序矩阵$ \boldsymbol{D}\text{'} $t时刻匿名图$ G{\text{'}}_{t} $t+1时刻待匿名图$ {G}_{t+1} $

输出t+1时刻匿名图$ G{\text{'}}_{t+1} $

1.$ \mathrm{D}{\mathrm{\text{'}}}_{\mathrm{g}\mathrm{t}}, \mathrm{D}{\mathrm{\text{'}}}_{\mathrm{g}(\mathrm{t}+1)}\leftarrow \mathrm{D}\mathrm{\text{'}} $

2.V={}

3.for i in len($ \mathrm{D}{\mathrm{\text{'}}}_{(\mathrm{t}+1)} $) do:

4.$ {\mathrm{v}}_{\mathrm{i}}, {\mathrm{d}}_{\mathrm{i}\mathrm{t}}={\mathrm{D}}_{\mathrm{i}\mathrm{t}}^{\mathrm{\text{'}}};{\mathrm{v}}_{\mathrm{i}}, {\mathrm{d}}_{\mathrm{i}(\mathrm{t}+1)}={\mathrm{D}}_{\mathrm{i}(\mathrm{t}+1)}^{\mathrm{\text{'}}} $

5.ddef = $ {\mathrm{d}}_{\mathrm{i}(\mathrm{t}+1)}-{\mathrm{d}}_{\mathrm{i}\mathrm{t}} $

6.if ddef > 0:

7.V.append($ {\mathrm{v}}_{\mathrm{i}} $,ddef)

8.end if

9.end for

10.for i=1 to len(V) do

11.for j =i+1 to len(V) do

12.if $ {{\mathrm{d}}_{\mathrm{d}\mathrm{e}\mathrm{f}}}_{{}_{\mathrm{i}}} $ > 0 and $ {{\mathrm{d}}_{\mathrm{d}\mathrm{e}\mathrm{f}}}_{{}_{\mathrm{j}}} $ > 0 and ($ {\mathrm{v}}_{\mathrm{i}} $$ {\mathrm{v}}_{\mathrm{j}} $) not in $ {\mathrm{G}}_{\mathrm{t}}^{\mathrm{\text{'}}} $

13.$ {\mathrm{G}}_{\mathrm{t}}^{\mathrm{\text{'}}} $.add edge($ {\mathrm{v}}_{\mathrm{i}} $$ {\mathrm{v}}_{\mathrm{j}} $)

14.$ {{\mathrm{d}}_{\mathrm{d}\mathrm{e}\mathrm{f}}}_{{}_{\mathrm{i}}} $$ - $=1

15.$ {{\mathrm{d}}_{\mathrm{d}\mathrm{e}\mathrm{f}}}_{{}_{\mathrm{j}}} $$ - $=1

16.end for

17.end for

18.delete ddef = 0 in V

19.for i in V do

20.for j=1 to ddef do

21.creat new node v

22.$ {\mathrm{G}}_{\mathrm{t}}^{\mathrm{\text{'}}} $. add edge($ {\mathrm{v}}_{\mathrm{i}} $,v)

23.end for

24.end for

25.return $ {\mathrm{G}}_{\mathrm{t}+1}^{\mathrm{\text{'}}} $

在算法2中:步骤3~步骤9主要计算各个已匿名节点达到下一时刻匿名要求的差值,并将其保存到候选节点中;步骤10~步骤23是对当前已经满足k度匿名性的图进行修改,包括添加边和添加虚拟节点,使其成为满足下一时刻匿名要求的k度匿名图。算法整体的时间复杂度为O($ n+{c}^{2}+c $),c表示下一时刻需要匿名的节点个数,待修改节点集合可以提前计算并保存,因此,图修改方法的时间复杂度为O($ {c}^{2}+c $)。而对于传统k度匿名重构算法而言,由于需要根据k度向量重新构造匿名图,因此每次都需要重新匿名处理,时间复杂度为O(T·kn),其中,kn为处理单个社交图的匿名算法的复杂度[4]T表示社交图个数。因此,在匿名算法复杂度方面,本文算法性能较优。

3 实验分析

本文从运行时间和数据属性实用性2个方面验证所提匿名算法的可行性,同时将其与传统kDA算法[4]进行比较。kDA算法是单一时刻社交网络图数据匿名算法,为了使其能够适应图数据连续发布中的度匿名保护,需要对每个时刻的社交图都进行一次kDA算法操作,以此得到整个连续社交图在各个匿名算法下的实验数据。所有实验都是在Windows10操作系统下进行,配置为16 GB的RAM、3.40 GHz的八核处理器i7-6700,编译环境为Python3.6。

3.1 数据集

本文实验使用Facebook数据集,该数据集从斯坦福大学数据库SNAP(http://snap.stanford.edu/data/index.html)中得到,共包含4 039个节点,88 234条边。由于该数据集是单个社交图,因此本文通过随机增加节点以及增加具有相同邻居的节点之间的边,以模拟图数据连续发布过程。处理后的数据集具体信息如表 1所示。

下载CSV 表 1  Facebook数据集信息 Table 1 Facebook dataset information
3.2 结果分析

为了验证本文算法的有效性,首先,从运行效率上将其与kDA算法[4]进行对比,运行时间为各个社交图匿名时间的总和。其次,本文将图结构的平均聚类系数、平均路径长度、传导性等[23]图结构属性作为评价指标,通过实验来验证本文算法的数据实用性。

图 4所示为本文算法和kDA算法的总体运行时间对比,其中,kDA算法的时间是匿名不同时刻社交图的时间总和。从图 4可以看出,随着隐私程度k值的不断增大,算法处理的节点数量不断增多,因此,2个算法的总体运行时间都在增加,但是本文所提算法的运行时间总体上都小于kDA算法,这是因为在后续处理匿名图时,本文算法可以在第一个匿名图的基础上进行图修改操作,以得到后续的匿名图,大幅减少了所处理节点的数量,而kDA算法要重新遍历整个原始图进行重构操作,在很大程度上浪费了时间。因此,本文所提算法总体运行时间优于kDA算法。图 5所示为本文算法和kDA算法在不同数据集上通过匿名操作引起的平均聚类系数变化。从图 5可以看出,随着隐私程度k的不断增大,2种算法都会改变原始图的平均聚类系数,但是,kDA算法中的重构匿名在较大程度上改变了原图的平均聚类系数,而本文所提算法在原始图的基础上进行图修改,改变平均聚类系数较少,虽然两者改变程度相似,但是本文算法对度时序背景知识攻击具有很好的抵抗性,相当于增强了原始图抵抗去匿名化的能力,本文通过图修改方法较少地改变了平均聚类系数属性,较好地保留了原始图结构,能够更好地抵抗度时序背景知识攻击。

Download:
图 4  2种算法的运行时间对比 Fig. 4 Comparison of running time of two algorithms
Download:
图 5 平均聚类系数变化情况 Fig. 5 Change of average clustering coefficient

图 6所示为在不同时刻社交图上通过匿名操作后引起的平均最短路径变化。从图 6可以看出,随着匿名程度的增加,2个算法引起平均最短路径的变化越来越大,但是,kDA算法引起的变化较大,这是因为在图重构算法中重构具有随机性,并且会存在强行改变原始图节点分布的情况,较大地改变了平均路径长度,而本文算法分析边操作满足不了k匿名性的问题,对无法通过边操作的节点,通过构建虚拟节点来满足k匿名性,这就增大或者减小了一些节点的最短路径长度,平均最短路径长度变化较小,从而较好地保留了数据实用性。

Download:
图 6 平均最短路径变化情况 Fig. 6 Change of average shortest path

图 7所示为2种算法中图的传导性相对于隐私程度k的变化情况。从图 7可以看出,随着k值的增加,2种算法都轻微地影响原图传导性的值,相对于其他图结构属性而言,传导性影响较小,但是,本文算法的影响程度总是小于kDA算法,其较好地保留了原图的结构属性。

Download:
图 7 传导性变化情况 Fig. 7 Change of conductivity

为了更好地说明本文匿名算法的性能,将2个算法的总体边变化率的平均值进行比较,如图 8所示。从图 8可以看出,kDA算法较大地改变了原始图中的边,这是因为重构算法是根据目标度序列重新生成匿名图,原有节点的边可能在重构中转换成与其他节点相连的边,这就导致图中原有边发生较大改变。而本文算法是在原图的基础上进行修改,保证了原有边不会发生改变,较好地保留了原始边,因此,在边的改变情况上体现出性能优势。

Download:
图 8 总体边变化率 Fig. 8 Overall edge change rate
4 结束语

传统k度匿名在连续社交网络发布中存在隐私泄露风险,为了保证节点度变化的k匿名性,本文提出一种k度时序匿名保护方法。通过提取每个节点在每个时刻图中的度时序矩阵,构建满足k匿名性要求的k度时序矩阵,利用图修改技术进行匿名化处理,完成每个时刻社交图的k度时序匿名,匿名后的图不仅在每个时刻都满足k度匿名的要求,而且可以抵抗攻击者基于节点度变化进行的推理攻击,加强了节点在连续发布图中的匿名强度。实验结果验证了该方法在运行效率上的优势以及在图结构属性上的可用性。本文方法在对社交图进行匿名保护时引起的结构属性变化较大,后续将研究如何通过较小的图结构属性改变来满足图数据连续发布中的匿名保护要求。

参考文献
[1]
王莉, 程学旗. 在线社会网络的动态社区发现及演化[J]. 计算机学报, 2015, 38(2): 219-237.
WANG L, CHENG X Q. Dynamic community in online social networks[J]. Chinese Journal of Computers, 2015, 38(2): 219-237. (in Chinese)
[2]
HAFIENE N, KAROUI W, BEN ROMDHANE L. Influential nodes detection in dynamic social networks: a survey[J]. Expert Systems with Applications, 2020, 159: 113642. DOI:10.1016/j.eswa.2020.113642
[3]
丁钰, 魏浩, 潘志松, 等. 网络表示学习算法综述[J]. 计算机科学, 2020, 47(9): 52-59.
DING Y, WEI H, PAN Z S, et al. Survey of network representation learning[J]. Computer Science, 2020, 47(9): 52-59. (in Chinese)
[4]
LIU K, TERZI E. Towards identity anonymization on graphs[C]//Proceedings of 2008 ACM SIGMOD International Conference on Management of Data. New York, USA: ACM Press, 2008: 93-106.
[5]
TAI C H, YU P S, YANG D N, et al. Privacy-preserving social network publication against friendship attacks[C]//Proceedings of the 17th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, USA: ACM Press, 2011: 14-26.
[6]
HAY M, MIKLAU G, JENSEN D, et al. Resisting structural re-identification in anonymized social networks[J]. The VLDB Journal, 2010, 19(6): 797-823. DOI:10.1007/s00778-010-0210-x
[7]
LEI Z, LEI C, TAMER Ö M. K-automorphism: a general framework for privacy preserving network publication[J]. Proceedings of the VLDB Endowment, 2009, 2(1): 946-957. DOI:10.14778/1687627.1687734
[8]
JAMES C, ADA W F, JIA L. K-isomorphism: privacy preserving network publication against structural attacks[EB/OL]. [2021-03-05]. https://www.cse.cuhk.edu.hk/~jcheng/papers/kIsomorphism_sigmod10.pdf.
[9]
龚卫华, 兰雪锋, 裴小兵, 等. 基于k-度匿名的社会网络隐私保护方法[J]. 电子学报, 2016, 44(6): 1437-1444.
GONG W H, LAN X F, PEI X B, et al. Privacy preservation method based on k-degree anonymity in social networks[J]. Acta Electronica Sinica, 2016, 44(6): 1437-1444. (in Chinese)
[10]
MITTAL P, PAPAMANTHOU C, SONG D. Preserving link privacy in social network based systems[EB/OL]. [2021-03-05]. https://www.princeton.edu/~pmittal/publications/link-privacy-ndss13.pdf.
[11]
王路宁. 动态社交网络下面向隐私保护的链路预测研究[D]. 大连: 大连理工大学, 2016.
WANG L N. Link prediction for privacy and anonymi-zation in dynamic social networks[D]. Dalian: Dalian University of Technology, 2016. (in Chinese)
[12]
MA T, ZHANG Y, CAO J, et al. KDVEM: a k-degree anonymity with vertex and edge modification algorithm[J]. Computing, 2015, 97(12): 1165-1184. DOI:10.1007/s00607-015-0453-x
[13]
周克涛, 刘卫国, 施荣华. 基于邻居度序列相似度的k-度匿名隐私保护方案[J]. 计算机工程与应用, 2017, 53(19): 102-108.
ZHOU K T, LIU W G, SHI R H. k-degree anonymity scheme for preserving privacy based on similarity of neighborhood degree sequence[J]. Computer Engineering and Applications, 2017, 53(19): 102-108. (in Chinese)
[14]
CHESTER S, KAPRON B M, RAMESH G, et al. Why Waldo befriended the dummy? k-anonymization of social networks with pseudo-nodes[J]. Social Network Analysis and Mining, 2013, 3(3): 381-399. DOI:10.1007/s13278-012-0084-6
[15]
CASAS-ROMA J, HERRERA-JOANCOMARTÍ J, TORRA V. k-degree anonymity and edge selection: improving data utility in large networks[J]. Knowledge and Information Systems, 2017, 50: 447-474. DOI:10.1007/s10115-016-0947-7
[16]
CHEN Y T, WU B Y. An efficient algorithm for minimal edit cost of graph degree anonymity[C]// Proceedings of 2018 IEEE International Conference on Applied System Invention. Washington D. C., USA: IEEE Press, 2018: 574-577.
[17]
谷勇浩, 林九川, 郭达. 基于聚类的动态社交网络隐私保护方法[J]. 通信学报, 2015, 36(S1): 126-130.
GU Y H, LIN J C, GUO D. Clustering-based dynamic privacy preserving method for social networks[J]. Journal on Communications, 2015, 36(S1): 126-130. (in Chinese)
[18]
董祥祥, 高昂, 梁英, 等. 动态社会网络数据发布隐私保护方法[J]. 计算机科学与探索, 2019, 13(9): 1441-1458.
DONG X X, GAO A, LIANG Y, et al. Method of privacy preserving in dynamic social network data publication[J]. Journal of Frontiers of Computer Science and Technology, 2019, 13(9): 1441-1458. (in Chinese)
[19]
金叶, 丁晓波, 龚国强, 等. 基于节点分类的k度匿名隐私保护方法[J]. 计算机工程, 2020, 46(3): 138-143.
JIN Y, DING X B, GONG G Q, et al. Privacy protection method for k degree anonymity based on node classification[J]. Computer Engineering, 2020, 46(3): 138-143. (in Chinese)
[20]
KIABOD M, DEHKORDI M N, BAREKATAIN B. TSRAM: a time-saving k-degree anonymization method in social network[J]. Expert Systems with Applications, 2019, 125: 378-396. DOI:10.1016/j.eswa.2019.01.059
[21]
刘振鹏, 王烁, 贺玉鹏, 等. 基于B+树索引的动态社会网络差分隐私保护[J]. 兰州理工大学学报, 2020, 46(6): 98-103.
LIU Z P, WANG S, HE Y P, et al. Dynamic social network differential privacy protection based on B+ tree index[J]. Journal of Lanzhou University of Technology, 2020, 46(6): 98-103. (in Chinese)
[22]
张晓琳, 刘娇, 毕红净, 等. 大规模社会网络K-出入度匿名方法[J]. 计算机工程, 2020, 46(11): 164-173.
ZHANG X L, LIU J, BI H J, et al. K-in & out-degree anonymity method for large scale social networks[J]. Computer Engineering, 2020, 46(11): 164-173. (in Chinese)
[23]
JI S L, MITTAL P, BEYAH R. Graph data anonymization, de-anonymization attacks, and de-anonymizability quantification: a survey[J]. IEEE Communications Surveys & Tutorials, 2017, 19(2): 1305-1326.