基于匿名的网络最短路径隐私保护方法与流程

文档序号:17817434发布日期:2019-06-05 21:55阅读:291来源:国知局
基于匿名的网络最短路径隐私保护方法与流程

本发明属于针对复杂网络中加权用户关系图的信息安全保护技术领域,尤其涉及用于复杂网络中最短路径的搜索以及对最短路径进行匿名化保护。



背景技术:

网络因为其固有的特性,寻找其最短路径,实则为在建立好的图模型的基础上寻找一条目标源点到目标终点的边权值相加最小的路径。现在,主要运用于网络搜索最短路径的算法包括dijkstra算法和floyd算法等。

dijkstra算法基于贪心策略,每一次选取与目标源点距离最近的结点,先暂时确定目标源点与该结点之间的最短路径,然后检测其他结点是否能够通过该结点进行更新最短距离,最后得到目标源点到每一个结点的最短路径。

floyd算法采用了动态规划算法。对于图g中包含的边eij,从任意结点vi到任意结点vj的最短路径dij只存在两种可能:

(1)直接从vi到vj,此时dij=eij;

(2)从vi经过若干个结点到vj。对于结点vk,检查dij>dik+dkj是否成立,若成立,则令dij=dik+dkj。由此得到的状态转移方程:dij=min{dij,dik+dkj}。

dijkstra算法在存在负权值的图中,无法找到最短距离。floyd算法在计算任意两个结点之间的最短路径,故其时间复杂度为o(n3),由于floyd算法时间复杂度较高不适合计算大规模数据。

复杂网络数据主要由结点属性和用户关系构成,目前各种恶意攻击导致用户隐私数据泄露,威胁社会安全。随着人们对隐私泄露问题越来越多的重视,隐私保护技术日益成熟。现在常用的方法有数据扰动、匿名化和差分隐私等等。

数据扰动技术是在复杂网络中,随机修改或者扰动数值信息,使得攻击者难以获得网络的真实信息,从而无法实施准确的攻击,实现了对网络数据的隐私保护目的;匿名化最典型的代表为k-匿名,在经过处理后的网络图中,结点再次受到攻击而造成隐私泄露的概率不大于1/k;差分隐私技术采用随机添加噪声的方法,实现数据失真的效果,并且保证向数据集添加删除记录不会改变查询结果。

现有的隐私保护仅仅是对网络图中单一的结点与边进行保护,目前人们对结点间的最短路径保护方法还比较缺乏。



技术实现要素:

针对现有的最短路径搜索方法和隐私保护中加权用户关系图的特点,本方法提供了一种针对网络图的最短路径搜索及匿名化隐私保护方法,快速求解源点到目标结点的最短路径,根据最短路径和需要保护的结点对,对所有结点分类,并依据不同情况,增加干扰结点和干扰边,从而达到对最短路径的匿名化保护。

为了实现上述目的,本发明采用的技术方案为:基于匿名的网络最短路径隐私保护方法,包括以下步骤:

步骤1、将现实世界中的复杂网络建模为加权无向图g=(v,e)形式,采用邻接矩阵表示,并采用边权值矩阵w表示加权无向图g的边权值,找出边权值矩阵w中的最小值wmin,并根据最小值wmin的大小更新边权值矩阵;

步骤2、根据边权值创建虚拟边集和虚拟结点集,将虚拟边集和虚拟结点集加入到原有的加权无向图g中,建立距离矩阵d,表示任意两个结点之间的最短距离,并对距离矩阵d进行初始化;

步骤3、对于每一个结点,创建队列q,对每个结点进行遍历,采用动态规划的思想,对每个结点和目标源点进行更新最短距离;

步骤4、计算加权无向图g中每个结点的覆盖计数,并根据覆盖计数的数值,对结点进行分类;

步骤5、若存在全覆盖结点,则直接增加干扰结点和干扰边;若不存在全覆盖结点,判断有无特殊情况,然后根据半覆盖结点增加干扰结点和干扰边。

所述步骤1中,根据边权值矩阵w中的最小值wmin更新边权值矩阵w时,若wmin≤0则,对边权值矩阵中的每一个元素根据公式wij=wij+abs(wmin)+1更新,其中abs(wmin)表示wmin的绝对值。

所述步骤2中,虚拟边集和虚拟结点集是根据边权值矩阵w创建的,对于每一条边<vi,vj>,创建wij条边权值为1的虚拟边和wij-1个虚拟结点,其中虚拟边和虚拟结点依次连接并且与结点i和结点j相连,每个虚拟结点的度为2,然后,删除边<vi,vj>,并且将虚拟边和虚拟结点加入到边集e和结点集v中。

所述步骤2中,距离矩阵d记录结点集v中每一个结点到其他结点的最短距离,距离矩阵d中dij表示结点i和结点j之间的最短距离,初始化距离矩阵d中每一个元素的值为∞。

所述步骤3中,对于结点集v中的每一个结点v需要进行以下操作:

1)选择一个结点vi,将dii设为0,创建一个结点队列q,将结点vi加入到队列q;

2)采用公式dij=min(dik)+1计算队首结点的所有邻接结点与结点i的最短距离,其中结点j属于队首结点的所有邻接结点,结点k属于结点j的所有邻接结点;将队首结点的邻接结点中没有加入过队列q的结点加入队列q,并且将队列q的队首结点出队;

3)重复操作2),直至队列q空时为止。

6、根据权利要求5所述的基于匿名的网络最短路径隐私保护方法,其特征在于:所述步骤3对于结点集v中的每一个结点v,重复1)-3)操作更新距离矩阵d,删除虚拟边集和虚拟结点集。

所述步骤4中,定义需要保护的结点对(vs,vt)之间的最短路径序列为pst,其中vs和vt分别表示需要保护的起始结点和最终结点,所有需要保护的结点对构成集合h。

所述步骤4中,对于图g中的任意一个结点vi,若需保护结点对集合h中有n对结点对的最短路径序列经过它,则称n为该结点的覆盖计数,记为ci=n,0≤ci≤|h|,其中|h|为结点对集合h中的结点对数,若ci=|h|,则该结点为全覆盖结点;若ci=0,则该结点为半覆盖结点;若0<ci<|h|,则该结点为半覆盖结点。

所述步骤4中,最短路径序列不包含结点对的起始结点vs和最终结点vt。

所述步骤5中,若图g中存在全覆盖结点,则直接根据全覆盖结点增加干扰结点和干扰边,干扰结点与全覆盖结点存在相同的邻接结点,并且与各邻接结点的边权值相同;若图g中不存在全覆盖结点,则先判断有无需要保护的结点对的最短路径序列只包含起始结点和最终结点,若有,则将该最短路径中唯一的边删去,增加两个干扰结点和四条干扰边,边权值根据原有边权值进行随机值修改,然后选取覆盖计数值最大的半覆盖结点,增加干扰结点和干扰边,干扰结点与半覆盖结点存在相同的邻接结点,并且与各邻接结点的边权值相同,删除结点对集合h中所有最短路径序列含有该半覆盖结点的结点对,计算剩余结点对中覆盖计数最大的半覆盖结点,重复上述操作,直至结点对集合h变成空集为止。

本发明的技术特点及效果:

(1)本发明根据原有的边集,找出距离矩阵中最小值,并根据其值得大小更新距离矩阵,引入虚拟边集和虚拟结点集的办法重新组织加权无向图g,使得算法能够根据图g快速搜索出最短距离并且对于负权图也能够很好适应;

(2)本发明在最短距离的搜索中使用动态规划思想,能够求出任意两个结点权值相加最小的路径,达到搜索到最短路径的效果;

(3)本发明引入覆盖结点计数的概念,对加权无向图g中所有结点进行归类,根据不同类别的结点,添加干扰结点和干扰边,使得需要保护的结点对之间存在多条最短路径,从而达到了对复杂网络隐私保护的目的。

附图说明

下面对本发明说明书中每幅附图表达的内容作简要说明:

图1为基于匿名的网络最短路径隐私保护方法流程图;

图2为使用虚拟结点和虚拟边调整加权无向图;

图3为存在全覆盖结点时,对需保护结点对间的最短路径进行匿名化保护,其中需保护的结点对集h={(v1,v5),(v3,v5),(v4,v5)};

图4为当需要保护的结点对最短路径序列中只包含起始结点和最终结点时,对结点对间最短路径进行匿名化保护,其中结点对集h={(v1,v2)};

图5为存在半覆盖结点时,对需要保护结点对间的最短路径进行匿名化保护,其中需保护的结点对集h={(v1,v5),(v3,v5)}。

具体实施方式

下面对照附图,通过对实施例的描述,本发明的具体实施方式如所涉及的各构件的形状、构造、各部分之间的相互位置及连接关系、各部分的作用及工作原理、制造工艺及操作使用方法等,作进一步详细的说明,以帮助本领域技术人员对本发明的发明构思、技术方案有更完整、准确和深入的理解。

如图1所示,基于匿名的网络最短路径隐私保护方法包括以下步骤:

步骤1、将现实世界中的复杂网络建模为加权无向图g=(v,e)形式,其中v表示结点集,e表示边集,采用邻接矩阵表示图g。采用w表示图g中顶点的边权值矩阵,其中wij表示结点i与结点j之间的边权值。找出边权值矩阵w中的最小值wmin,若wmin≤0则,对边权值矩阵中的每一个元素根据公式wij=wij+abs(wmin)+1更新,其中abs(wmin)表示wmin的绝对值。

步骤2、根据边权值矩阵创建虚拟结点集和虚拟边集。对于边集e中的每一条边<vi,vj>,根据其边权值wij,创建wij条虚拟边和wij-1个虚拟结点,其中wij条虚拟边的边权值均为1,wij-1个虚拟结点与wij条虚拟边依次顺序连接并与结点i和结点j相连,每个虚拟结点的度为2。删除边<vi,vj>,并且将wij条虚拟边和wij-1个虚拟结点分别添加入边集e和结点集v,更新邻接矩阵。

创建一个距离矩阵d,记录结点集v中每一个结点到其他结点的最短距离,其中dij表示结点i和结点j之间的最短距离。初始化距离矩阵d中每一个元素的值为∞。

步骤3、选择结点集v中的一个结点vi,设dii的值为0,将结点vi加入队列q,根据公式dij=min(dik)+1更新队首结点的所有邻接结点与结点i的最短距离,其中结点j属于队首结点的所有邻接结点,结点k属于结点j的所有邻接结点,将队首结点的邻接结点中没有加入过队列q的结点加入队列q,将队列q中的队首结点出队,重复上述更新操作,直到队列q为空为止。最后,对于结点集v中的每一个结点v,重复上述操作更新距离矩阵d。删除虚拟边集和虚拟结点集。

步骤4、定义需要保护的结点对(vs,vt)之间的最短路径序列为pst,其中vs和vt分别表示需要保护的起始结点和最终结点,所有需要保护的结点对构成集合h。对于图g中的任意一个结点vi,若集合h中有n对结点对的最短路径序列(不包含结点对的起始结点vs和最终结点vt)经过它,则称n为该结点的覆盖计数,记为ci=n,0≤ci≤|h|,其中|h|为结点对集合h中的结点对数。

步骤5、若图g中结点的覆盖计数等于结点对集合h的结点对总数,即ci=|h|,则称这样的结点为全覆盖结点;若图g中结点的覆盖计数等于0,即ci=0,则称这样的结点为零覆盖结点;若图g中结点的覆盖计数不为0也不为h,即0<ci<|h|,则称这样的结点为半覆盖结点。

若图g中存在全覆盖结点,则对于每一个全覆盖结点vi,增加干扰结点vj,即v=v∪{vj},对于全覆盖结点vi的每一个邻接结点vk,增加边ejk,即e=e∪{ejk},其边权值wjk=wik。

若图g中不存在全覆盖结点,判断是否存在这样的情况,需要保护的结点对(vs,vt)的最短路径序列只包含结点vs和vt,若有,则顺序执行步骤a、步骤b和步骤c;若无,则直接执行步骤b和步骤c。

步骤a:删去边est,即e=e\{est},增加干扰结点vj和vm,即v=v∪{vj,vm},增加边esj、esm、ejt和emt,即e=e∪{esj,esm,ejt,emt},随机选取r,使得wsj=wsm=r,wjt=wmt=wst-r,其中r需满足条件0<r<wst。删除结点集h中的结点对(vs,vt)。

步骤b:选取覆盖计数n最大的结点vi,增加干扰结点vj,即v=v∪{vj},对于全覆盖结点vi的每一个邻接结点vk,增加边ejk,即e=e∪{ejk},其边权值wjk=wik。删除结点对集合h中最短路径序列包含结点vi的结点对,然后根据结点对集合h更新所有结点的覆盖计数。

步骤c:重复步骤b,直至结点对集合h变成空集为止。

上面结合附图对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。

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