2. 中国民航大学 安全科学与工程学院, 天津 300300, 中国;
3. 亚利桑那大学 信息学院, 图森 85721, 美国
2. College of Safety Science and Engineering, Civil Aviation University of China, Tianjin 300300, China;
3. College of Information, University of Arizona, Tucson 85721, USA
近年来,复杂网络在网络安全等领域应用广泛,识别复杂网络中的关键节点,对于理解网络的结构和功能,维持网络的稳定运行具有重要作用[1]。在实际应用中,对复杂网络中的节点进行重要性排序能够为网络节点的风险评估、重要节点防护和网络中节点的风险处置优先级排序提供依据。然而,现有的关键节点识别方法存在准确性不高和计算复杂度高的问题,因此,设计快速高效的关键节点识别方法是复杂网络以及网络安全领域的研究热点。
目前,针对关键节点识别问题的研究方法有许多,其中,度中心性是基于局部特性的方法,但度中心性没有考虑节点位置及周围节点的影响,其分类效果并不理想[2]。介数中心性、接近中心性和K-shell方法等是基于全局特性的方法,前两者由于计算复杂度高,不适合节点和边数众多的网络[3]。K-shell方法为每个节点分配一个Ks值量化节点的重要性[4],该方法具有良好的时间复杂度,但难以区分同一层上的关键节点。为解决上述方法的不足,Liu等[5]根据节点和拥有最大Ks值的节点间最短距离进行排序。Zeng等[6]考虑网络中余留节点和移除节点的贡献提出混合度分解方法。Namtirtha等[7]提出了一种为网络中所有边分配权重的改进K-shell方法。Berahmand等[8]提出了一种局部排序方法识别关键节点,该方法基于重要位置参数衡量节点的重要性。Bae等[9]提出了扩展的K-shell,但该方法在部分网络中分辨率不足。上述方法分别从不同角度衡量节点的重要性,但是存在一些不足:1) 现有的网络拓扑结构多种多样,部分方法仅考虑网络的局部结构而忽略网络的全局结构;2) 计算复杂度高;3) 在不同的复杂网络中,需要预先设定参数值;4) 方法分辨率低,在网络中识别关键节点的能力较差。
针对上述问题,本文提出了一种基于K-shell的复杂网络关键节点识别方法(K-shell based key node recognition method, KBKNR),相比于传统方法,该方法综合考虑网络的全局和局部结构,在全局范围内应用K-shell方法将网络分层,在局部范围内提出综合度(comprehensive degree, CD)的概念,综合权衡邻居节点和次邻居节点的影响,从而区分节点重要性。由于KBKNR方法不含自由参数且无需预先测试参数值,因此降低了计算开销。该方法不仅在复杂网络中具有较高的准确性和分辨率,而且在网络安全的实际应用中有助于提高网络安全防护和应急处置效率。
1 相关方法及分析 1.1 K-shell方法K-shell方法[10]是一种基于网络全局结构的粗粒化分解方法,根据节点在网络中的位置判断节点的重要性。该方法的处理过程如下。
首先,不断删除网络图G中度为1的节点及其连边,直到网络图中不再出现此类节点,此时将所有被删节点归为1-shell层,并为其分配Ks值,该值为1。其次,不断删除网络中度为2的节点及其连边,将所删节点归为2-shell层,并为其分配Ks值,该值为2。重复上述过程,直到网络图中所有节点均被分层、分配Ks值。其中,Ks值最大的节点所属的层为网络的核心层,处于网络核心层的节点具有最大的影响力。
一个小型网络的K-shell分解示例如图 1所示。图 1中的网络由K-shell方法分成3层,节点1、2、3、4、5、6、9、14、16、17被分配相同的Ks值,但是难以区分其重要程度。针对此缺陷,本研究利用K-shell分解过程中同层节点的不同综合度,进一步区分不同节点的重要程度。
![]() |
图 1 K-shell分解示例图 |
1.2 θ方法
为解决K-shell方法难以区分同一壳层关键节点的缺陷,Liu等[5]提出θ方法,该方法根据节点与网络核心节点(拥有最大Ks值的节点)间最短距离进行排序,节点距离网络核心节点越近,该节点越重要。该方法可表示为
$ \theta\left(i \mid K_{\mathrm{s}}\right)=\left(K_{\mathrm{s}_{\mathrm{Max}}}-K_{\mathrm{s}}+1\right) \sum\limits_{j \in J} d_{i j}, \quad i \in S_{K_{\mathrm{s}}}. $ | (1) |
其中:KsMax为网络中Ks最大值,J为拥有最大Ks值的核心节点集,dij是节点i和节点j间的最短距离,SKs为所有节点的集合,θ(i|Ks)为节点i的重要性值。
1.3 混合度分解方法Zeng等[6]提出混合度分解(mixed degree decomposition, MDD)方法。在MDD方法中,用耗尽度衡量已经移除的节点对指定节点的影响,用剩余度衡量剩余的节点对指定节点的影响。这种采用混合Ks值的改进方法增加了网络分层的层数,但针对不同网络需要调节参数λ的值,以使该方法取得区分节点重要性的最佳效果,在本文所做的对比实验中,λ取0.7。该方法可表示为
$ K_{\mathrm{m}}(i)=K_{\mathrm{r}}(i)+\lambda \times K_{\mathrm{e}}(i). $ | (2) |
其中,Km(i)为混合Ks值,Kr(i)为剩余度,Ke(i)为耗尽度。
1.4 扩展的K-shell方法为改进K-shell方法的不足并区分同层节点的重要性,Bae等[10]提出了扩展的K-shell方法,即Ks+方法,该方法融合节点度及度的最大值对K-shell进行扩展,该方法可表示为
$ K_{\mathrm{s}} \mathrm{p}(i)=K_{\mathrm{s}} \times\left(K_{\mathrm{Max}}+1\right)+K. $ | (3) |
其中,K为节点度,KMax为度的最大值,Ksp(i)为扩展的Ks值。
2 关键节点识别方法 2.1 基于K-shell的关键节点识别方法设计为改进K-shell方法的不足并实现区分节点重要性的目标,本文针对网络的局部结构特点,提出综合度(comprehensive degree, CD)的概念,节点的综合度定义为
$ C(i)=K(i)+\mu_{i} D(i). $ | (4) |
其中,K(i)为节点的度,D(i)为节点的次邻居节点个数,μi为影响系数。
然后以K-shell和综合度为基础,提出一种基于K-shell的复杂网络关键节点识别方法(K-shell based key node recognition method, KBKNR)。在该方法中,全局结构的影响通过采用K-shell方法衡量,局部结构的影响则通过邻居和次邻居节点对指定节点的影响程度(综合度)衡量。
KBKNR的设计思路为:首先,在全局范围内采用K-shell方法将网络分层,得到每个节点的Ks值并通过其衡量网络的全局特性。其次,在局部范围内综合考虑邻居节点和次邻居节点的影响,计算每个节点的综合度并通过其衡量网络的局部特性。对于网络中的节点,不仅与其直接相连的邻居节点会影响该节点,距离较远的节点也会对其产生影响。为了实现有效区分节点重要性的目标,又降低计算的复杂度,在KBKNR中仅考虑两步邻域,即邻居节点和次邻居节点的影响。由于邻居节点距离指定节点较近,对其影响较大,而次邻居节点距离指定节点较远,对其影响较小,因此将影响系数μi设定为0~1并可动态调整,使KBKNR更符合实际情况。
KBKNR的具体过程设计如下。
步骤1:采用K-shell方法将网络分层,得到每个节点的Ks值。
步骤2:计算网络中所有节点的度K(i)和两步邻域内的节点总数N(i)。
步骤3:根据步骤2得到的K(i)和N(i),得到各个节点的影响系数μi,
$ \mu_{i}=\frac{K(i)}{N(i)}. $ | (5) |
步骤4:根据步骤2得到的K(i)和N(i),得到次邻居节点个数D(i),即
$ D(i)=N(i)-K(i). $ | (6) |
步骤5:根据步骤2得到的K(i)和步骤3、4得到的μi、D(i),得到节点的综合度C(i),即
$ C(i)=K(i)+\mu_{i} D(i). $ | (7) |
步骤6:由于同层节点的Ks值相同,难以判断其重要性,故将同层节点根据节点的综合度C(i)进一步区分其重要性:对于Ks值相等的节点,综合度较大的节点更重要。该方法伪代码如图 2所示。
![]() |
图 2 基于K-shell的复杂网络关键节点识别方法 |
由KBKNR的计算过程可见,该方法不含自由参数,无需预先测试参数值,降低了计算复杂度。
2.2 实例分析以包括14个节点和20条边的无向无权网络为例(如图 3所示),首先采用KBKNR对图 3中节点进行排序,然后与其他方法的排序效果进行比较。以节点8为例说明KBKNR的处理过程。
![]() |
图 3 算例分析的小型网络 |
1) 计算节点8的Ks值,得到Ks(8)=2。
2) 计算节点8的度K(8)和两步邻域内节点总数N(8),由于节点8的邻居节点为5、6、7、9、10、11,次邻居节点为3、12、13、14,因此K(8)=6,N(8)=10。
3) 由式(5)得到节点8的影响系数μ8,μ8=6/10=0.6。
4) 由式(6)得到次邻居节点个数D(8),D(8)=10-6=4。
5) 由式(7)得到节点8的综合度C(8),C(8)=6+0.6×4=8.4。
重复上述过程,得到图 3中网络全部节点的Ks值和综合度,图 3中网络综合度的计算过程如表 1所示。为了与其他方法进行对比,表 2、表 3分别列出度中心性(DC)[1]、接近中心性(CC)[2]、θ方法[5]、混合度分解(MDD)方法[6]、介数中心性(BC)[8]、扩展的K-shell方法(Ks+)[9]、K-shell方法[10]和本文方法(KBKNR)得到的节点重要性值和排序结果。表 1—3中,节点列的数字代表节点,K(i) 列为节点i的度,Ks列为节点i的Ks值,N(i)列为两步邻域内节点数,D(i)列为次邻居节点个数,μi列为影响系数,C(i)列为综合度。
节点 | K(i) | Ks | N(i) | D(i) | μi | C(i) |
1 | 1 | 1 | 5 | 4 | 0.2 | 1.8 |
2 | 1 | 1 | 5 | 4 | 0.2 | 1.8 |
3 | 5 | 2 | 8 | 3 | 0.625 | 6.875 |
4 | 1 | 1 | 5 | 4 | 0.2 | 1.8 |
5 | 4 | 2 | 10 | 6 | 0.4 | 6.4 |
6 | 4 | 2 | 11 | 7 | 0.364 | 6.545 |
7 | 2 | 2 | 7 | 5 | 0.286 | 3.429 |
8 | 6 | 2 | 10 | 4 | 0.6 | 8.4 |
9 | 4 | 2 | 9 | 5 | 0.444 | 6.222 |
10 | 5 | 2 | 9 | 4 | 0.556 | 7.222 |
11 | 3 | 2 | 9 | 6 | 0.333 | 5 |
12 | 1 | 1 | 3 | 2 | 0.333 | 1.667 |
13 | 1 | 1 | 5 | 4 | 0.2 | 1.8 |
14 | 2 | 2 | 6 | 4 | 0.333 | 3.333 |
节点 | DC | K-shell | MDD | θ | BC | CC | Ks+ | KBKNR |
1 | 1 | 1 | 1 | 52 | 0 | 0.325 | 8 | 1.8 |
2 | 1 | 1 | 1 | 52 | 0 | 0.325 | 8 | 1.8 |
3 | 5 | 2 | 3.7 | 17 | 33 | 0.464 | 19 | 6.875 |
4 | 1 | 1 | 1 | 52 | 0 | 0.325 | 8 | 1.8 |
5 | 4 | 2 | 3.7 | 13 | 13.1 | 0.52 | 18 | 6.4 |
6 | 4 | 2 | 3.7 | 12 | 20.1 | 0.542 | 18 | 6.545 |
7 | 2 | 2 | 2 | 15 | 0 | 0.433 | 16 | 3.429 |
8 | 6 | 2 | 4.2 | 10 | 28.9 | 0.565 | 20 | 8.4 |
9 | 4 | 2 | 3.7 | 12 | 10.3 | 0.5 | 18 | 6.222 |
10 | 5 | 2 | 3.8 | 13 | 16.3 | 0.464 | 19 | 7.222 |
11 | 3 | 2 | 2.7 | 15 | 12 | 0.433 | 17 | 5 |
12 | 1 | 1 | 1 | 48 | 0 | 0.310 | 8 | 1.667 |
13 | 1 | 1 | 1 | 44 | 0 | 0.325 | 8 | 1.8 |
14 | 2 | 2 | 2 | 17 | 0 | 0.382 | 16 | 3.333 |
排序 | DC | K-shell | MDD | θ | BC | CC | Ks+ | KBKNR |
1 | 8 | 10, 11, 14, 3, 5, 6, 7, 8, 9 | 8 | 8 | 3 | 8 | 8 | 8 |
2 | 10, 3 | 1, 12, 13, 2, 4 | 10 | 6, 9 | 8 | 6 | 10, 3 | 10 |
3 | 5, 6, 9 | 3, 5, 6, 9 | 10, 5 | 6 | 5 | 5, 6, 9 | 3 | |
4 | 11 | 11 | 11, 7 | 10 | 9 | 11 | 6 | |
5 | 14, 7 | 14, 7 | 14, 3 | 5 | 10, 3 | 14, 7 | 5 | |
6 | 1, 2, 4, 12, 13 | 1, 12, 13, 2, 4 | 13 | 11 | 11, 7 | 1, 12, 13, 2, 4 | 9 | |
7 | 12 | 9 | 14 | 11 | ||||
8 | 1, 2, 4 | 1, 12, 13, 14, 2, 4, 7 | 1, 13, 2, 4 | 7 | ||||
9 | 12 | 14 | ||||||
10 | 1, 13, 2, 4 | |||||||
11 | 12 | |||||||
12 | ||||||||
13 | ||||||||
14 |
由表 3可知,度中心性、介数中心性、接近中心性、K-shell等方法分辨率均不高,度中心性方法将整个网络划分成6层,K-shell方法将整个网络划分成2层,而本文的KBKNR将整个网络划分成11层,故KBKNR得到的节点重要性排序范围更广且分辨率更高。
3 实验结果与分析 3.1 实验数据集及实验设计为了对比分析经典方法和KBKNR在不同复杂网络中的节点识别准确性和分辨率,在6个经典复杂网络上进行关键节点识别(节点重要性排序)对比实验。6个经典复杂网络分别为:1) Zachary网络;2) Dolphins网络;3) Jazz Musicians网络;4) Blogs网络;5) NetScience网络;6) Powergrid网络。上述6个复杂网络的信息如表 4所示,其中,V表示网络节点数目,E表示网络边数,βth为流行阈值,β为感染概率。
网络 | V | E | βth | β |
Zachary | 34 | 78 | 0.129 | 0.15 |
Dolphins | 62 | 159 | 0.147 | 0.15 |
Jazz | 198 | 2 742 | 0.026 | 0.05 |
Blogs | 1 224 | 19 025 | 0.012 | 0.10 |
NetScience | 1 461 | 2 742 | 0.144 | 0.15 |
Powergrid | 4 941 | 6 594 | 0.258 | 0.30 |
在3.2节中,将以Dolphins网络为对象,对不同方法进行比较和分析。在3.3节中,将利用易感感染恢复(susceptible infected recovered, SIR)模型[11]、Kendall系数指标[12]以及单调性指标[13]对不同方法性能进行评价。在3.4节中,将验证KBKNR方法在网络安全应用中的有效性。
3.2 Dolphins网络实验与结果在识别复杂网络中的关键节点时,许多节点可能具有相同的重要性值,如在K-shell方法中,同一壳层的节点具有相同的Ks值,很难区分这些节点的重要性差异。故对于性能好的方法,不同的节点应该具有不同的重要性值和排序值。节点重要性值和排序值相同的节点越少,方法对节点的重要性排序范围越广,方法的分辨率越高。
为了比较不同方法的性能优劣,选取Dolphins网络作为实验对象,对DC、BC、CC、K-shell、MDD、θ、Ks+、KBKNR 8种方法进行实验分析,得到各节点的8个重要性值和每种方法得到的节点重要性排序结果,通过比较各个方法得到的节点重要性排序的等级数和具有相同重要性值的节点数目评估方法的性能。图 4—11为8种方法得到的Dolphins网络各节点的重要性值,表 5为8种方法得到的Dolphins网络节点重要性排序Top 10的节点。
![]() |
图 4 度中心性 |
![]() |
图 5 K-shell方法 |
![]() |
图 6 混合度分解方法 |
![]() |
图 7 θ方法 |
![]() |
图 8 介数中心性 |
![]() |
图 9 接近中心性 |
![]() |
图 10 扩展的K-shell方法 |
![]() |
图 11 KBKNR |
排序 | DC | K-shell | MDD | θ | BC | CC | Ks+ | KBKNR |
1 | 15 | 其他 | 15 | 41 | 37 | 37 | 15 | 15 |
2 | 38, 46 | 24, 26, 27, 28, 3, 35, 4, 45, 6 | 38, 46 | 37 | 2 | 41 | 38, 46 | 38 |
3 | 34, 52 | 33, 40, 47, 50, 54, 56, 57, 62 | 34 | 21 | 41 | 38 | 34, 52 | 46 |
4 | 18, 21, 30, 58 | 12, 13, 23, 32, 36, 49, 5, 59, 61 | 52 | 38 | 38 | 21 | 18, 21, 30, 58 | 34 |
5 | 14, 2, 39, 41 | 30 | 15 | 8 | 15 | 14, 2, 39, 41 | 52 | |
6 | 10, 16, 19, 37, 44, 51, 55 | 18, 58 | 29 | 18 | 2 | 10, 16, 19, 37, 44, 51, 55 | 21 | |
7 | 1, 17, 22, 25, 43, 48, 7, 9 | 21, 39, 41 | 8, 9 | 21 | 29, 34, 8 | 1, 17, 22, 25, 43, 48, 7, 9 | 30 | |
8 | 11, 28, 29, 31, 35, 42, 60, 8 | 44, 51 | 1, 2, 34, 51 | 55 | 9 | 11, 29, 31, 42, 60, 8 | 41 | |
9 | 20, 3, 45, 53, 6 | 14 | 46, 48 | 52 | 51 | 20, 53 | 18 | |
10 | 24, 26, 27, 33, 4, 62 | 19, 2, 37 | 16 | 58 | 1, 46 | 28, 35 | 58 |
由图 4—11和表 5可知,K-shell方法难以区分重要节点,多个节点的Ks值相同。DC方法比K-shell方法的排序范围广,但有很多节点(如节点10、16、19、37、44、51、55)重要性值相同,DC方法仅能将全部节点划分成12个等级。CC方法衡量某节点到其他所有节点距离的远近,其最大不足是得到的节点重要性值会比较接近,且该方法对网络拓扑结构的依赖性强。BC方法无法准确识别处于网络边界的节点的重要性,例如节点5、12、13、17、23、32、36、49、59、61的节点重要性值均为0。Ks+方法将62个节点分成15个等级,MDD方法将62个节点分成23个等级,θ方法将全部节点分成45个等级,因此,θ方法性能优于MDD方法和Ks+方法,但该方法分配给节点1、2、34、51相同的重要性值,而本文提出的KBKNR能够对这4个节点进行区分,将全部62个节点划分成51个不同等级,故KBKNR对网络节点的节点重要性排序范围更广、分辨率更高。此外,由实验结果可见,KBKNR相较于其他方法,在Top 10节点中不存在节点具有相同的重要性值,因此KBKNR在Dolphins网络中的性能最为理想。
3.3 方法性能评价为了评价不同方法的准确性和分辨率,选取DC、BC、CC、K-shell、MDD、θ、Ks+、KBKNR 8种方法在6个典型复杂网络中进行对比实验。首先,利用SIR模型检验网络中单个节点的传播效率,以此判断节点的重要性。其次,将8种方法得到的节点重要性排序结果与SIR模型得出的节点传播效率排序结果进行比较,计算Kendall相关系数。最后,利用单调性指标评估不同方法区分节点重要性的能力,即检验在节点重要性排序结果中是否存在大量节点具有相同重要性值的情况。
1) SIR模型。
SIR模型的目标是衡量节点在流行病传播过程中的相对重要性[14]。开始时,只有传播起始节点处于被感染状态,其余节点均处于易感染状态。之后,在每个时间步长,被感染节点以感染概率β将感染传播到邻居节点,最初被感染的节点变成恢复状态,处于恢复状态的节点不能再次被感染。当没有新的被感染节点出现时传播过程结束,此时恢复节点的数量反映初始节点的影响力。当感染概率较大时,流行病能在网络中大范围传播,当感染概率较小时,流行病仅能在小范围内传播。若要疾病在网络中传播并流行,感染概率必须大于流行阈值,流行阈值βth为
$ \beta_{\mathrm{th}} \approx \frac{\langle k\rangle}{\left\langle k^{2}\right\rangle}. $ | (8) |
其中,〈k〉是网络的平均度,〈k2〉是网络的平均二阶度。
2) Kendall相关系数。
Kendall相关系数用τ表示,用于检验两个排序序列的相关性,其取值范围为-1~1。τ的定义如下:
$ \tau=\frac{2(C-D)}{N \times(N-1)}. $ | (9) |
其中,C表示两个序列中拥有一致性的序列对数,D表示不一致的序列对数,N是网络的节点数目。
Qiu等[4]和Berahmand等[8]通过一个感染概率β,将不同方法和SIR模型仿真得到的排序结果进行比较,计算τ值。为了便于观察感染概率β和相关系数τ的变化趋势和相关程度,本文模拟SIR模型传播过程,使该模型感染概率在βth~2×βth变化,每次以0.1×βth的步长增加,计算τ值。SIR模型的感染概率β为
$ \beta=\beta_{\mathrm{th}}+\delta \times j. $ | (10) |
其中,δ为每一步感染概率的增量,j为步数,βth为传染病流行阈值。
3) 方法准确性实验结果。
采用DC、BC、CC、K-shell、MDD、θ、Ks+、KBKNR 8种方法和SIR模型对Zachary、Dolphins、Jazz、Blogs、NetScience和Powergrid网络进行计算,得到6个网络在不同感染概率下的Kendall相关系数τ(如表 7—12所示)。表 7—12中的β为感染概率,τ为Kendall相关系数值。然后,分别对6个网络中10个感染概率对应的τ求平均值得到每个网络的平均Kendall系数τA(如表 6所示)。
网络 | τA(DC) | τA(K-shell) | τA(MDD) | τA(θ) | τA(BC) | τA(CC) | τA(Ks+) | τA(KBKNR) |
Zachary | 0.714 758 | 0.654 716 | 0.729 684 | 0.680 758 | 0.607 338 | 0.721 938 | 0.735 141 | 0.763 870 |
Dolphins | 0.753 966 | 0.719 461 | 0.770 394 | 0.745 258 | 0.523 637 | 0.679 670 | 0.754 974 | 0.776 391 |
Jazz | 0.843 312 | 0.809 636 | 0.866 819 | 0.788 211 | 0.474 706 | 0.716 840 | 0.848 202 | 0.842 187 |
Blogs | 0.810 943 | 0.822 131 | 0.814 456 | 0.787 104 | 0.654 609 | 0.725 706 | 0.819 561 | 0.815 203 |
NetScience | 0.681 401 | 0.651 389 | 0.682 401 | 0.651 951 | 0.318 956 | -0.495 675 | 0.661 41 | 0.774 123 |
Powergrid | 0.430 629 | 0.398 385 | 0.451 766 | 0.349 011 | 0.294 519 | 0.417 078 | 0.446 726 | 0.506 745 |
β | τ(DC) | τ(K-shell) | τ(MDD) | τ(θ) | τ(BC) | τ(CC) | τ(Ks+) | τ(KBKNR) |
0.142 | 0.750 127 | 0.690 404 | 0.763 356 | 0.721 625 | 0.625 592 | 0.746 832 | 0.743 457 | 0.784 525 |
0.155 | 0.738 467 | 0.677 658 | 0.751 877 | 0.717 944 | 0.637 001 | 0.768 798 | 0.744 121 | 0.791 772 |
0.168 | 0.750 127 | 0.681 907 | 0.767 182 | 0.710 58 | 0.648 41 | 0.768 798 | 0.741 601 | 0.813 514 |
0.181 | 0.730 694 | 0.664 912 | 0.744 224 | 0.710 58 | 0.621 789 | 0.746 832 | 0.774 194 | 0.780 901 |
0.194 | 0.695 714 | 0.626 675 | 0.709 787 | 0.636 945 | 0.576 153 | 0.688 257 | 0.743 457 | 0.748 288 |
0.206 | 0.691 827 | 0.618 177 | 0.709 787 | 0.622 218 | 0.583 759 | 0.666 291 | 0.701 193 | 0.726 546 |
0.219 | 0.715 147 | 0.673 41 | 0.728 919 | 0.710 58 | 0.610 38 | 0.746 832 | 0.731 931 | 0.784 525 |
0.232 | 0.722 92 | 0.681 907 | 0.736 571 | 0.714 262 | 0.617 986 | 0.732 188 | 0.701 193 | 0.762 783 |
0.245 | 0.668 507 | 0.605 431 | 0.683 003 | 0.633 263 | 0.560 941 | 0.677 274 | 0.715 279 | 0.704 804 |
0.258 | 0.684 054 | 0.626 675 | 0.702 134 | 0.629 581 | 0.591 365 | 0.677 274 | 0.754 984 | 0.741 041 |
β | τ(DC) | τ(K-shell) | τ(MDD) | τ(θ) | τ(BC) | τ(CC) | τ(Ks+) | τ(KBKNR) |
0.162 | 0.791 649 | 0.737 859 | 0.808 82 | 0.741 762 | 0.551 159 | 0.651 238 | 0.783 889 | 0.814 566 |
0.176 | 0.779 809 | 0.734 964 | 0.796 133 | 0.754 874 | 0.544 072 | 0.668 633 | 0.782 79 | 0.804 258 |
0.191 | 0.757 655 | 0.705 268 | 0.771 186 | 0.737 839 | 0.519 511 | 0.679 28 | 0.779 492 | 0.773 447 |
0.206 | 0.763 194 | 0.725 515 | 0.778 778 | 0.747 421 | 0.528 054 | 0.680 345 | 0.750 907 | 0.787 259 |
0.22 | 0.745 471 | 0.722 816 | 0.763 593 | 0.745 292 | 0.520 579 | 0.679 28 | 0.747 608 | 0.763 886 |
0.235 | 0.737 717 | 0.713 367 | 0.756 001 | 0.747 421 | 0.520 579 | 0.695 251 | 0.743 211 | 0.760 698 |
0.25 | 0.745 471 | 0.717 417 | 0.762 509 | 0.741 033 | 0.513 104 | 0.677 151 | 0.737 713 | 0.766 01 |
0.265 | 0.736 609 | 0.703 919 | 0.752 747 | 0.742 098 | 0.514 172 | 0.693 122 | 0.741 012 | 0.761 761 |
0.279 | 0.732 179 | 0.713 367 | 0.750 577 | 0.746 357 | 0.507 765 | 0.694 186 | 0.745 409 | 0.760 698 |
0.294 | 0.749 902 | 0.720 116 | 0.763 593 | 0.748 486 | 0.517 376 | 0.678 216 | 0.737 713 | 0.771 323 |
β | τ(DC) | τ(K-shell) | τ(MDD) | τ(θ) | τ(BC) | τ(CC) | τ(Ks+) | τ(KBKNR) |
0.029 | 0.816 456 | 0.813 957 | 0.841 741 | 0.804 84 | 0.458 918 | 0.699 877 | 0.841 879 | 0.837 937 |
0.031 | 0.822 322 | 0.803 93 | 0.844 899 | 0.804 913 | 0.471 326 | 0.716 611 | 0.848 102 | 0.834 111 |
0.034 | 0.822 291 | 0.814 651 | 0.848 058 | 0.800 396 | 0.457 089 | 0.707 525 | 0.839 933 | 0.844 136 |
0.036 | 0.828 249 | 0.808 526 | 0.852 952 | 0.797 33 | 0.467 044 | 0.711 604 | 0.847 956 | 0.840 502 |
0.039 | 0.834 218 | 0.806 157 | 0.857 859 | 0.791 092 | 0.472 972 | 0.719 182 | 0.845 252 | 0.839 754 |
0.042 | 0.845 7 | 0.810 394 | 0.869 276 | 0.789 163 | 0.478 527 | 0.720 314 | 0.854 539 | 0.843 345 |
0.044 | 0.852 661 | 0.808 635 | 0.875 271 | 0.781 268 | 0.476 612 | 0.718 804 | 0.845 428 | 0.841 528 |
0.047 | 0.860 729 | 0.810 481 | 0.881 647 | 0.777 2 | 0.481 652 | 0.723 639 | 0.851 012 | 0.846 965 |
0.049 | 0.871 797 | 0.809 721 | 0.895 327 | 0.770 212 | 0.490 397 | 0.725 696 | 0.853 583 | 0.847 683 |
0.052 | 0.878 698 | 0.809 905 | 0.901 161 | 0.765 694 | 0.492 518 | 0.725 149 | 0.854 333 | 0.845 909 |
β | τ(DC) | τ(K-shell) | τ(MDD) | τ(θ) | τ(BC) | τ(CC) | τ(Ks+) | τ(KBKNR) |
0.013 | 0.774 905 | 0.782 642 | 0.777 355 | 0.748 1 | 0.636 856 | 0.698 9 | 0.772 064 | 0.775 165 |
0.014 | 0.770 249 | 0.780 477 | 0.772 658 | 0.760 577 | 0.637 85 | 0.695 032 | 0.784 197 | 0.772 963 |
0.016 | 0.784 104 | 0.797 321 | 0.787 068 | 0.771 999 | 0.642 932 | 0.710 194 | 0.791 403 | 0.789 819 |
0.017 | 0.785 25 | 0.799 323 | 0.788 629 | 0.779 91 | 0.642 286 | 0.712 49 | 0.794 922 | 0.792 022 |
0.018 | 0.804 624 | 0.820 563 | 0.808 75 | 0.786 525 | 0.645 56 | 0.724 406 | 0.815 329 | 0.812 776 |
0.019 | 0.814 963 | 0.827 232 | 0.818 362 | 0.796 097 | 0.656 909 | 0.733 714 | 0.826 965 | 0.822 097 |
0.02 | 0.825 798 | 0.837 122 | 0.829 57 | 0.799 684 | 0.660 892 | 0.735 781 | 0.842 285 | 0.830 347 |
0.022 | 0.844 501 | 0.855 446 | 0.848 506 | 0.807 914 | 0.675 948 | 0.747 216 | 0.848 846 | 0.848 931 |
0.023 | 0.850 828 | 0.859 725 | 0.855 185 | 0.809 183 | 0.674 599 | 0.751 82 | 0.857 507 | 0.853 578 |
0.024 | 0.854 206 | 0.861 455 | 0.858 473 | 0.811 053 | 0.672 262 | 0.747 51 | 0.862 092 | 0.854 33 |
β | τ(DC) | τ(K-shell) | τ(MDD) | τ(θ) | τ(BC) | τ(CC) | τ(Ks+) | τ(KBKNR) |
0.158 | 0.745 698 | 0.712 975 | 0.746 793 | 0.713 952 | 0.326 333 | -0.431 045 | 0.722 059 | 0.823 105 |
0.173 | 0.729 555 | 0.698 714 | 0.730 946 | 0.699 656 | 0.322 44 | -0.446 697 | 0.709 507 | 0.812 129 |
0.187 | 0.713 205 | 0.682 323 | 0.714 569 | 0.683 169 | 0.321 453 | -0.462 356 | 0.695 051 | 0.798 874 |
0.202 | 0.701 311 | 0.671 489 | 0.702 726 | 0.672 264 | 0.319 43 | -0.475 225 | 0.680 039 | 0.789 948 |
0.216 | 0.686 776 | 0.656 984 | 0.687 77 | 0.657 599 | 0.318 713 | -0.489 802 | 0.666 216 | 0.779 444 |
0.23 | 0.670 685 | 0.641 025 | 0.671 717 | 0.641 443 | 0.317 632 | -0.505 998 | 0.652 229 | 0.766 832 |
0.245 | 0.659 077 | 0.629 766 | 0.659 782 | 0.630 097 | 0.316 838 | -0.518 191 | 0.639 905 | 0.757 191 |
0.259 | 0.646 757 | 0.617 642 | 0.647 629 | 0.617 935 | 0.316 126 | -0.530 509 | 0.627 868 | 0.746 487 |
0.274 | 0.635 307 | 0.606 295 | 0.635 808 | 0.606 511 | 0.315 193 | -0.543 403 | 0.616 053 | 0.737 844 |
0.288 | 0.625 636 | 0.596 68 | 0.626 27 | 0.596 881 | 0.315 404 | -0.553 527 | 0.605 176 | 0.729 373 |
β | τ(DC) | τ(K-shell) | τ(MDD) | τ(θ) | τ(BC) | τ(CC) | τ(Ks+) | τ(KBKNR) |
0.284 | 0.579 15 | 0.506 131 | 0.600 473 | 0.329 617 | 0.410 987 | 0.336 157 | 0.592 691 | 0.668 843 |
0.31 | 0.540 532 | 0.481 194 | 0.562 458 | 0.330 682 | 0.381 637 | 0.356 723 | 0.555 184 | 0.628 452 |
0.335 | 0.501 955 | 0.454 982 | 0.524 491 | 0.333 808 | 0.352 793 | 0.374 474 | 0.519 006 | 0.588 222 |
0.361 | 0.468 408 | 0.430 092 | 0.490 546 | 0.336 624 | 0.326 717 | 0.392 884 | 0.483 926 | 0.550 75 |
0.387 | 0.435 398 | 0.405 606 | 0.457 287 | 0.341 564 | 0.300 007 | 0.410 275 | 0.452 789 | 0.514 904 |
0.413 | 0.404 055 | 0.379 43 | 0.425 553 | 0.346 494 | 0.274 033 | 0.429 61 | 0.420 882 | 0.480 124 |
0.439 | 0.375 598 | 0.357 64 | 0.396 881 | 0.355 782 | 0.250 518 | 0.446 088 | 0.392 185 | 0.447 529 |
0.464 | 0.350 908 | 0.337 121 | 0.371 254 | 0.363 411 | 0.229 969 | 0.462 18 | 0.368 555 | 0.417 877 |
0.49 | 0.332 51 | 0.321 978 | 0.352 209 | 0.371 814 | 0.214 919 | 0.474 624 | 0.349 102 | 0.394 99 |
0.516 | 0.317 776 | 0.309 679 | 0.336 504 | 0.380 313 | 0.203 609 | 0.487 767 | 0.332 936 | 0.375 756 |
由表 6可知,在Zachary、Dolphins、NetScience、Powergrid网络中,KBKNR得到的节点重要性排序结果和SIR模型得到的节点传播效率排序结果最接近,其平均Kendall系数高于其他方法。这是因为KBKNR不仅考虑节点的全局特征(Ks值),同时融合节点的局部特征(综合度),从而提高方法的准确性。6个网络中使感染概率β在βth~2×βth变化,每次以0.1×βth的步长增加,τ的变化趋势如图 12—17所示。τ值越大,则表明方法的准确性越高。由图 14和15可知,在Jazz和Blogs网络中,KBKNR与SIR模型的相关程度略低于其他方法,但平均τ值较高,且在Blogs网络中相关系数τ随着感染概率β的增大而升高,总体趋势是上升的,因此KBKNR在不同的复杂网络中具有较高的准确性。
![]() |
图 12 Zachary网络 |
![]() |
图 13 Dolphins网络 |
![]() |
图 14 Jazz网络 |
![]() |
图 15 Blogs网络 |
![]() |
图 16 NetScience网络 |
![]() |
图 17 Powergrid网络 |
4) 单调性指标。
对于复杂网络中节点的重要性排序,若每个节点具有不同的节点重要性排序值,则说明方法能够清晰地区分节点的重要性,相同节点重要性排序值的节点越少,则表明方法的分辨率越高。在实验中,使用单调性指标M(R)评价不同方法的分辨率。单调性指标M(R)为
$ M(\mathrm{R})=\left[1-\frac{\sum\limits_{\mathrm{r} \in \mathrm{R}} n_{\mathrm{r}}\left(n_{\mathrm{r}}-1\right)}{n(n-1)}\right]^{2}. $ | (11) |
其中,R代表节点重要性排序结果,n代表节点重要性排序结果中节点的个数,nr代表节点重要性排序结果中相同的节点个数。
用M(R)衡量节点重要性排序结果的单调性,如果节点重要性排序结果是完全单调的,则M(R)=1;如果节点重要性排序结果全部相同,则M(R)=0。
5) 方法分辨率实验结果。
在本实验中,通过DC、BC、CC、K-shell、MDD、θ、Ks+、KBKNR 8种方法生成的节点重要性排序列表的单调性检验不同方法的分辨率, 如表 13所示。
网络 | M(DC) | M(K-shell) | M(MDD) | M(θ) | M(BC) | M(CC) | M(Ks+) | M(KBKNR) |
Zachary | 0.707 878 | 0.495 757 | 0.753 585 | 0.879 115 | 0.772 268 | 0.899 285 | 0.741 256 | 0.940 312 |
Dolphins | 0.831 173 | 0.376 948 | 0.904 058 | 0.973 734 | 0.962 287 | 0.973 734 | 0.856 432 | 0.983 149 |
Jazz | 0.965 941 | 0.794 414 | 0.988 242 | 0.934 454 | 0.987 426 | 0.987 834 | 0.988 037 | 0.998 77 |
Blogs | 0.932 359 | 0.905 958 | 0.944 343 | 0.996 404 | 0.944 063 | 0.997 978 | 0.944 470 | 0.999 134 |
NetScience | 0.706 946 | 0.663 382 | 0.739 676 | 0.663 809 | 0.104 918 | 0.643 619 | 0.742 306 | 0.912 945 |
Powergrid | 0.592 651 | 0.245 995 | 0.692 831 | 0.960 374 | 0.831 824 | 0.999 829 | 0.660 014 | 0.952 429 |
由表 13可知,KBKNR得到的节点重要性排序结果在5个网络中具有最高的单调性,其中,在Zachary网络中为0.940 312,在Dolphins网络中为0.983 149,在Jazz网络中为0.998 77,在Blogs网络中为0.999 134,在NetScience网络中为0.912 945。在Powergrid网络中,KBKNR得到的节点重要性排序结果的单调性指标值为0.952 429,略低于θ方法和CC方法。可见,在绝大多数情况下,KBKNR对网络节点的分辨率较为理想。
3.4 网络安全应用中的方法性能验证为验证KBKNR方法在网络安全应用的可行性和有效性,对真实网络进行关键节点识别和风险评估对比验证实验。该实验包括网络节点风险评估和关键节点识别。实验对象为CAUC某系统的局域网,该局域网络由30台PC机、5台接入交换机、1台汇聚交换机、2台服务器组成,该网络的结构如图 18所示。
![]() |
图 18 实验网络结构图 |
在关键节点识别实验中,将该网络中的设备抽象为节点,采用KBKNR方法计算各节点的综合度,并对节点进行节点重要性排序,实验结果如表 14所示。由表 14可知,在该网络中,接入交换机(31, 32, 33, 34, 35)的功能相同,但由于接入交换机所连接的设备数量不同,因此各个接入交换机重要程度不同。汇聚交换机在整个网络中处于最重要的位置,一旦汇聚交换机遭受攻击,将影响整个网络的运行。
排序 | 综合度 | 节点(设备) |
1 | 12.676 | 38 |
2 | 12.6 | 35 |
3 | 11.429 | 34 |
4 | 10.231 | 33 |
5 | 9 | 32 |
6 | 7.727 | 31 |
7 | 1.889 | 23, 24, 25, 26, 27, 28, 29, 30 |
8 | 1.875 | 16, 17, 18, 19, 20, 21, 22 |
9 | 1.857 | 10, 11, 12, 13, 14, 15, 36, 37 |
10 | 1.833 | 5, 6, 7, 8, 9 |
11 | 1.8 | 1, 2, 3, 4 |
在风险评估部分,按照风险评估规范[15]计算得到该局域网中全部节点(设备)的风险值。数据源为4周的网络管理日志中的网络报警、故障信息以及网络安全软件中的网络攻击检测数据。在该部分实验中,依据资产、报警和故障信息、攻击报警信息,采用基于期望损失的风险评估方法[16]得到网络中各节点面临的威胁和风险严重程度指标,并计算得到每个节点(设备)的风险值。实验结果如表 15所示。
排序 | 风险值 | 节点(设备) |
1 | 0.941 | 38 |
2 | 0.824 | 35 |
3 | 0.733 | 34 |
4 | 0.711 | 33 |
5 | 0.623 | 32 |
6 | 0.542 | 31 |
7 | 0.507 | 23, 24, 25, 26, 27, 28, 29, 30 |
8 | 0.426 | 16, 17, 18, 19, 20, 21, 22 |
9 | 0.389 | 10, 11, 12, 13, 14, 15 |
10 | 0.354 | 5, 6, 7, 8, 9, 36, 37 |
11 | 0.276 | 1, 2, 3, 4 |
上述两个实验结果的排序对比如表 16所示。由表 16可见,由KBKNR方法得到的该网络的节点重要性排序与由风险评估得到的网络节点风险值排序的TOP 10是相同的。这个结果表明,由KBKNR方法得到的节点重要性排序结果,能够为网络节点的风险评估、重要节点防护和网络中节点的风险处置优先级排序提供依据。以节点重要性排序为依据,有助于提升网络安全防护和应急处置的效率。
排序 | 节点(设备) | |
风险评估 | KBKNR | |
1 | 38 | 38 |
2 | 35 | 35 |
3 | 34 | 34 |
4 | 33 | 33 |
5 | 32 | 32 |
6 | 31 | 31 |
7 | 23, 24, 25, 26, 27, 28, 29, 30 | 23, 24, 25, 26, 27, 28, 29, 30 |
8 | 16, 17, 18, 19, 20, 21, 22 | 16, 17, 18, 19, 20, 21, 22 |
9 | 10, 11, 12, 13, 14, 15 | 10, 11, 12, 13, 14, 15, 36, 37 |
10 | 5, 6, 7, 8, 9, 36, 37 | 5, 6, 7, 8, 9 |
11 | 1, 2, 3, 4 | 1, 2, 3, 4 |
4 结论
本文针对现有的复杂网络关键节点识别方法存在准确性不高和计算复杂性高的问题,提出一种识别复杂网络关键节点的方法KBKNR。首先,通过K-shell方法分解网络,得到能够衡量节点在网络中位置信息的Ks值。然后,根据邻居节点和次邻居节点对指定节点的不同影响程度计算节点的综合度。最后,同时考虑节点的Ks值和综合度区分节点的重要性,对于同一壳层(Ks值相同)的节点,综合度较大的节点更重要。通过在6个典型复杂网络中模拟SIR模型传播过程,利用Kendall相关系数评价方法的准确性,单调性指标评价方法的分辨率,在网络安全应用中验证方法的有效性。实验结果表明,与其他方法相比,本文方法不仅计算复杂度较低,而且针对不同复杂网络有着较高的准确性和分辨率,能够有效识别出复杂网络中的关键节点,提升网络安全防护和应急处置的效率,为下一步保护关键节点提高网络的安全性提供理论基础。
[1] |
YU E Y, FU Y, TANG Q, et al. A re-ranking algorithm for identifying influential nodes in complex networks[J]. IEEE Access, 2020, 8: 211281-211290. DOI:10.1109/ACCESS.2020.3038791 |
[2] |
YAN X L, CUI Y P, NI S J. Identifying influential spreaders in complex networks based on entropy weight method and gravity law[J]. Chinese Physics B, 2020, 29(4): 048902. DOI:10.1088/1674-1056/ab77fe |
[3] |
ULLAH A, WANG B, SHENG J F, et al. Identification of influential nodes via effective distance-based centrality mechanism in complex networks[J]. Complexity, 2021, 2021: 8403738. |
[4] |
QIU L Q, ZHANG J Y, TIAN X B. Ranking influential nodes in complex networks based on local and global structures[J]. Applied Intelligence, 2021, 51(7): 4394-4407. DOI:10.1007/s10489-020-02132-1 |
[5] |
LIU J G, REN Z M, GUO Q. Ranking the spreading influence in complex networks[J]. Physica A: Statistical Mechanics and its Applications, 2013, 392(18): 4154-4159. DOI:10.1016/j.physa.2013.04.037 |
[6] |
ZENG A, ZHANG C J. Ranking spreaders by decomposing complex networks[J]. Physics Letters A, 2013, 377(14): 1031-1035. DOI:10.1016/j.physleta.2013.02.039 |
[7] |
NAMTIRTHA A, DUTTA A, DUTTA B. Weighted K-shell degree neighborhood: A new method for identifying the influential spreaders from a variety of complex network connectivity structures[J]. Expert Systems with Applications, 2020, 139: 112859. DOI:10.1016/j.eswa.2019.112859 |
[8] |
BERAHMAND K, BOUYER A, SAMADI N. A new local and multidimensional ranking measure to detect spreaders in social networks[J]. Computing, 2019, 101(11): 1711-1733. DOI:10.1007/s00607-018-0684-8 |
[9] |
BAE J, KIM S. Identifying and ranking influential spreaders in complex networks by neighborhood coreness[J]. Physica A: Statistical Mechanics and its Applications, 2014, 395: 549-559. DOI:10.1016/j.physa.2013.10.047 |
[10] |
KITSAK M, GALLOS L K, HAVLIN S, et al. Identification of influential spreaders in complex networks[J]. Nature Physics, 2010, 6(11): 888-893. DOI:10.1038/nphys1746 |
[11] |
IBNOULOUAFI A, EL HAZITI M, CHERIFI H. M-centrality: Identifying key nodes based on global position and local degree variation[J]. Journal of Statistical Mechanics: Theory and Experiment, 2018, 2018(7): 073407. DOI:10.1088/1742-5468/aace08 |
[12] |
MAJI G. Influential spreaders identification in complex networks with potential edge weight based K-shell degree neighborhood method[J]. Journal of Computational Science, 2020, 39: 101055. DOI:10.1016/j.jocs.2019.101055 |
[13] |
MAJI G, MANDAL S, SEN S. A systematic survey on influential spreaders identification in complex networks with a focus on K-shell based techniques[J]. Expert Systems with Applications, 2020, 161: 113681. DOI:10.1016/j.eswa.2020.113681 |
[14] |
ZHANG D Y, WANG Y, ZHANG Z X. Identifying and quantifying potential super-spreaders in social networks[J]. Scientific Reports, 2019, 9(1): 14811. DOI:10.1038/s41598-019-51153-5 |
[15] |
中华人民共和国国家质量监督检验检疫总局, 中国国家标准化管理委员会. 信息安全技术信息安全风险评估规范: GB/T 20984-2007 [S]. 北京: 中国标准出版社, 2007. General Administration of Quality Supervision, Inspection and Quarantine of the People's Republic of China, Standardization Administration of the People's Republic of China. Information security technology-Risk assessment specification for information security: GB/T 20984-2007 [S]. Beijing: Standards Press of China, 2007. (in Chinese) |
[16] |
彭俊好, 徐国爱, 杨义先, 等. 基于效用的安全风险度量模型[J]. 北京邮电大学学报, 2006, 29(2): 59-61, 69. PENG J H, XU G A, YANG Y X, et al. Measure model of security risk based on utility[J]. Journal of Beijing University of Posts and Telecommunications, 2006, 29(2): 59-61, 69. (in Chinese) |