时间:2024-05-04
冯 晓 荣
(南通大学工程训练中心 江苏 南通 226019)
随着认知无线电网络(Cognitive Radio Network,CRN)的普及与广泛应用,其安全性成为了一个亟待解决的问题。模仿主用户(Primary User,PU)是一种典型的易于实现且对CRN影响巨大的攻击行为[1],一般一组恶意用户(Malicious Users,MU)发送与PU信号相似的模仿信号,二级用户(Secondary User,SU)收到模仿信号后则产生一次虚警,导致该频带被闲置。PUE攻击造成的危害极大,是CRN领域的一个研究热点[2]。
许多研究人员将PUE攻击定义为一个优化问题的模型[3],其主要目标是寻找最优解。随着人工智能算法的广泛应用,利用各种智能算法求解PUE攻击问题成为了有效的研究思路。目前萤火虫算法[4]、粒子群优化算法[5]、强力搜索算法(Intense Explore algorithm)[6]、在线学习优化算法[7]等已经被成功应用于PUE攻击检测问题中,并且取得了较好的效果。根据文献[8]的实验与分析结果,总结出人工蜂群算法(Artificial Bee Colony,ABC)的性能总体优于遗传算法(Genetic Algorithm,GA)、PSO与差分演化算法(Differential Evolution,DE)。ABC各阶段的搜索方程具有较强的全局搜索能力,但局部开发能力较弱,导致ABC的收敛速度与解质量依然具有提高的空间[9-10]。
ABC算法具有结构简洁、控制参数少、无需梯度信息等优点,目前被广泛地应用于网络的安全领域[11]。本文将ABC应用于认知无线电网络的攻击检测问题中,旨在提高攻击的检测率、降低攻击检测的虚警率。为了提高ABC的局部开发能力并且加快收敛速度,将蚁群优化(Ant Colony Optimization,ACO)引入ABC算法中,利用ACO的局部开发能力增强ABC的性能,并且ACO与ABC两者在迭代过程中相互促进,加快总算法的收敛速度。最终本文算法有效地提高CRN网络的攻击检测率、降低了虚警率。
考虑一个基本的CRN模型,如图1所示。CRN包含一个主基站(Base Station,BS)、一个PU、若干的SU、少量的MU以及一个融合中心(Fusion Center,FC)。
图1 PUE攻击的场景
图1是一个主用户仿真攻击(Primary User Emulation,PUE)的场景示意图。假设一个BS具有9个传输信道,表示为f1-f9。PU占用了5个频带f2、f3、f4、f6、f8,SU感知未被占用的4个频带为f1、f5、f7、f9,SU向FC发送报告消息,FC根据这些报告做出频谱分配的决策。在该过程中,MU也可能感知未被占用的频带,并且模拟空闲的主信号,从而误导SU检测频谱空洞。例如:MU3模拟f5频带,误导SU4发现信号,导致SU4放弃f5,并且声明发生一次虚警检测,继而寻找其他的空闲信道,MU3导致f5频带浪费。因此攻击检测的主要目标是降低PUE攻击的影响:
(1) 增强SU的信道感知能力,能够区分空闲主信号与模拟信号;
(2) 提高FC识别恶意用户的决策能力。
增强PUE的检测能力能够有效地提高空闲频谱的利用率、降低CRN的虚警率,并且提高检测率。
CRN网络的系统模型如图2所示,假设网络共包含K个SU,编号为i={1,2,…,K}。每个SU能够在时间t独立地实现本地频谱感知,根据信道状态判断信道是否被占用。然后K个SU向FC发送报告,FC综合所有的报告做出最终的决策。
图2 CRN网络的流程图
假设CRN的每个SU装备了一个能量检测器,能够基于接收的信号独立地感知本地频谱,每个SU给出一个关于信道状态的本地决策。根据PU、PUE两者是否存在共有4种信道状态,表示为:
(1)
式中:xi(t)是第i个SU在时间t接收的信号。共考虑了四种信号:H0PU表示不存在PU信号;H1PU表示存在PU信号;H0PUEA表示不存在PU信号但存在PUE攻击信号;H1PUEA表示PU信号与PUE攻击信号均存在。第i个SU接收的信号可定义为:
(2)
(3)
式中:Z是时间t采样的信号数量,第i个SU检测的信号能量应当获得一个高斯随机变量,并且该变量值应当满足H0PU、H1PU、H0PUEA、H0PUEA四个条件。
通过SU的能量检测计算PU与第i个SU之间的信噪比:
(4)
接收的信号强度(Received Signal Strength,RSS)[12]通过测量信号能量强度来检测是否存在PU、PUE信号。每个SU均支持测量RSS,如下所示:
(5)
式中:DisPU-SU为PU与SU之间的传播距离;hPU.i、hPUE.i、hSU.i分别为PU、PUE与SU的信道增益,信道增益考虑了信道损耗与信道衰落两个方面。每个SU将RSS能量SEi传输至FC,FC做出PU信号是否存在的全局决策:
YSUi=SEi+ni
(6)
在传统的频谱协作感知方案中,SU基于一个预设的阈值做出本地决策,并向FC报告一个“0”、“1”决策,表示PU信号是否可用。在CRN的频谱感知程序中检测攻击是极为重要的任务,PUE攻击者可能模拟PU的信号,所以单门限机制无法检测出PUE攻击信号。本系统模型中存在四个可能性:H0PU、H1PU、H0PUEA、H1PUEA,如表1所示。发送到FC的报告是一个2比特数据,表示四种信号状态。
表1 本系统模型中存在四个可能性
本文设置两个阈值θPU与βPUE分别表示PU与PUE是否存在:
(7)
式中:SEi为第i个SU接收的信号能量。阈值为PU与PUE信号提供了更高的区分概率。如果SEi小于阈值θPU、小于阈值βPUE,那么SU声明PU与PUE均不存在,向FC发送“00”;如果SEi小于βPUE、大于θPU,那么SU声明PU存在、PUE不存在,向FC发送“10”;如果SEi小于θPU、大于βPUE,那么SU声明仅PUE存在,向FC发送“01”;如果SEi大于θPU、大于βPUE,那么SU声明PU与PUE均存在,向FC发送“11”。
FC根据所有SU收集的报告,为每个报告分配一个非负权重Wi,FC计算全局值YFC:
(8)
式中:Wi是第i个SU的权重。FC针对PU频谱的可用性做出全局决策,并且使用本文的ACO-ABC算法检测网络的PUE攻击行为。通信检测系统中的优化目标主要是最大化网络的检测率Pd并且最小化虚警率PFA与漏检率Pmd。第i个SU的检测率为:
Pd-i=P{DPres|H1PU}=P{SEi≥θPU|H1PU}
(9)
第i个SU的虚警率为:
PFA-i=P{DPres|H0PU}=P{SEi≥θPU|H0PU}
(10)
第i个SU的漏检率为:
Pmd-i=P{DAbs|H1PU}=1-Pd-i
(11)
式中:DPres是PU信号存在的FC决策;DAbs是PU信号不存在的FC决策。总错误率PEr是FC产生错误决策的概率,定义为:
PEr-i=P{DAbs|H1PU}+P{DPres|H0PU}=Pmd-i+PFA-i
(12)
图3是错误率、虚警率与漏检率关于阈值θPU的变化情况,可以看出,当阈值增加,虚警率与错误率均降低,而漏检率升高。
图3 错误率、虚警率与漏检率关于阈值θPU的变化情况
初始化一个大小为K的种群,蚁群的种群大小等于SU数量,为所有的SU分配相应的信息素值。蚁群开始搜索前,每个蚂蚁分配一个随机的SU子集,每个蚂蚁基于以下的概率选择一个SU:
pi=τi·Δτi
(13)
式中:τi为SUi的信息素值;Δτi为选择该SU的蚂蚁比例。SU的信息素更新方法为:
τi=(1-φ)·τi+φ·τ0
(14)
式中:φ为相对重要性的参数,取值范围为0~1。在所有蚁群结束一次运行之后,蚁群选择的SU子集传递给雇佣蜂,作为初始化食物源的位置,蜂群的食物源表示为:
F(Sj)Sj∈RN
(15)
式中:食物源Sj表示第j个SU子集;F(Sj):j=1,2,…,SN表示蚁群选择的所有SU子集;N为蜂群的维度;RN表示全部SU空间。
蜂群的观察蜂阶段产生新SU子集,将该SU子集传递至蚁群。蜂群基于收到的SU子集更新全局信息素值,更新方法为:
(16)
式中:ρ是每个SU的信息素挥发比例;Kbest表示SU子集适应度最优的蚂蚁,称为最优蚂蚁。然后,蚂蚁基于新的信息素值进行开发操作,根据式(13)的概率生成新的SU子集。新生成的SU子集作为蜂群下一次迭代的新食物源。
提出针对PUE攻击检测的ACO-ABC算法,ACO-ABC算法结合了ACO的优点与ABC的优点,以最优的频谱空间容纳所有的SU。ACO-ABC算法的检测程序共分为6个阶段:(1) 信号预处理阶段;(2) 种群初始化阶段;(3) 雇佣蜂阶段;(4) 观察蜂阶段;(5) 侦察蜂阶段;(6) 结束阶段。
ACO-ABC算法的输入信号是CRN中SU发向FC的所有报告,因此需要对这些报告进行预处理。首先提取所有发向FC的报告,估计每个报告的噪声级别,采用文献[13]的MUSIC算法过滤噪声,每个SU使用能量检测方法式(5)计算RSS值。根据RSS值估计信号的位置,分析RSS值来区分PU与PUE攻击,从而检测出PUE攻击。然后,使用距离比检验(Distance Ratio Test,DRT)技术决定PU的准确位置。图4是CRN信号的预处理阶段流程。
图4 CRN信号的预处理阶段
假设SU在一个时间点检测频谱,感知时长与感知周期是决定频谱感知成本的两个主要因素。频谱感知的成本φ可定义为:
(17)
式中:SJ为感知周期,表示两次连续感知程序之间的时间间隔;SPi为感知时长,等于SU根据RSS产生决策所需的时间。
ACO-ABC中对标准ABC算法进行了修改,与ACO结合来优化PU频谱的检测率。ABC算法中共有三种蜂群:雇佣蜂、观察蜂与侦察蜂,所有蜂群的目标是最大化食物源的花蜜量,雇佣蜂负责开采食物源。规模为PopS的种群生成一组随机解,种群的规模等于网络中SU的数量,将这些解考虑为ACO-ABC算法的食物源,解的格式如图5所示。
图5 人工蜂群算法的解表示形式
每个解集为一个二维向量形式,设为Gij,其中i=1,2,…,PopS。每个解集包含若干个解,其中j=1,2,…,gn。初始化阶段产生一组随机解Gij,表示为:
Gij=GL0wj+R×(GUpj-GL0wj)
(18)
式中:R是区间[0,1]的一个随机数;GL0wj与GUpj分别为Gi解的上界与下界。在生成随机初始化解之后,ACO-ABC通过迭代程序搜索最优解,每次迭代搜索程序包括三个阶段:雇佣蜂阶段、观察蜂阶段与侦察蜂阶段。最大的迭代次数Maxit由用户定义。
雇佣蜂在随机解Gij中搜索新食物源NGij,可表示为:
NGij=Gij+αij(Gij-GQj)
(19)
式中:αij为[-1,1]区间的一个随机数;Q为[1,PopS]区间的一个随机数。每个信号(解)包括一个参数组,ACO-ABC中考虑了4个认知无线电参数,分别为:信噪比γi、接收的信号强度RSSi、距离比例测试(Distance Ratio Test,DRT)以及频谱感知的成本φi。每个参数的适应度为:
(20)
为各个适应度值分配不同的权重,计算每个解的适应度函数,适应度函数定义为:
(21)
雇佣蜂的数量等于解的数量。雇佣蜂与观察蜂共享其已知的蜂巢适应度值,雇佣蜂选择新的食物源,然后评估新的适应度值Fit(NGij)。将这些新的适应度值与旧值比较,如果新值大于旧值,那么雇佣蜂将旧值替换为新值;否则保留旧食物源,如图6所示。
图6 人工蜂群算法的雇佣蜂阶段
不同于原ABC算法,本文随机选择一个雇佣蜂作为一个邻居。然后使用基于轮盘赌机制的邻居选择(Neighbors Selection,NS)模块随机选择一个邻居解Gl。观察蜂计算指定各个蜂巢解的概率值Pi:
(22)
式中:Fit(Gi)表示解Gi的适应度。基于所有解的概率Pi,选择其中概率值最高的解作为邻居解。
选择一个解之后,观察蜂基于式(23)产生一个新解:
vj(Gj)=xj(Gj)+φ(xj(Gj)-xl(Gl))
(23)
式中:xj(Gj)是观察蜂当前解Gj的预测精度;xl(Gl)是邻居解Gl的预测精度;vj(Gj)是观察蜂在当前位置产生的新解,如果新解vj大于旧解xj,那么新解替换旧解,否则,保留旧解xj;φ是[0,1]区间的一个随机数,φ是邻居选择模块的一个参数。式(23)中xj(Gj)与xl(Gl)之间的差值越低,对xj(Gj)的干扰则越低,从而步长随着搜索过程自适应地降低,最终达到最优解。
记录当前发现的最优解,将最优解传递回蚁群。基于观察蜂阶段的最优解更新蚁群的全局信息素值,更新方法为:
(24)
式中:ρ为信息素的挥发速率;Kbest为当前蚁群的最优解,表示最优蚂蚁。然后,蚂蚁基于新的信息素值开始开发操作,并且使用式(13)计算概率,生成特征子集。
原ABC算法的局部开发能力较弱,而ACO的局部开发能力较强,两个算法的结合有助于解决该缺点。ABC侦察蜂阶段保留原ABC算法的处理方法。
评估结束条件如下:在侦察蜂阶段结束之后,检查当前迭代的序号,如果当前迭代的序号达到预设值(Maxit),那么选择新生成的解,即获得了适应度最高的解。然后更新数据库,基于最优解配置CRN,否则,重复ACO-ABC程序。
ACO与ABC两者之间的交互过程如下:
步骤1蚁群根据式(13)-式(14)选择SU子集,根据式(15)将蚁群生成的SU子集转化为蜂群的食物源位置。
步骤2蜂群的雇佣蜂阶段评估这些SU子集的适应度,将解的相关信息传递至观察蜂,观察蜂开发可行解,并且选择最优的SU子集。
步骤3将观察蜂的结果传递回蚁群,并且更新蚁群的全局信息素值。
ACO-ABC算法的优点主要为:(1) 蚁群采用雇佣蜂与观察蜂的全局搜索程序来决定最优蚂蚁与最优SU子集。(2) 雇佣蜂调节蚁群生成的SU子集。(3) 侦察蜂并未生成食物源,而是使用蚁群生成的新SU子集。(4) ACO-ABC的收敛速度快于ACO与ABC算法。
设计了三组实验来验证本文ACO-ABC算法的有效性。CRN、ACO、ABC的相关参数如表2所示。
表2 实验的参数
第一组实验首先评估了ACO-ABC的检测率、漏检率与错误率三个关键的CRN网络性能指标,并将本算法与基于双边邻居的检测方案(Double Sided Neighbor Detection,DSND)[14]、自适应攻击检测机制(Adaptive Attack Detection Mechanism,AADM)[15]两个算法进行比较,DSND与AADM是近期性能较好的CRN攻击检测算法。
实验结果如图7所示,可以看出,随着信噪比(Signal-to-Noise Ratio,SNR)γi的升高,三个算法的攻击检测率均升高,而漏检率与误检率则明显地降低。将本文算法与DSND、AADM两个算法比较,本文算法的三个性能指标均明显优于DSND与AADM。
(a) 检测率与SNR的关系
(b) 漏检率与SNR的关系
(c) 误检率与SNR的关系图7 三个算法的检测率、漏检率与误检率结果
为了评估本文算法的性能,将本文算法与原ABC算法[16]以及增强的ABC算法[17]进行比较,观察检测率的收敛情况,原ABC简称为RABC(Raw ABC),增强的ABC算法简称为EABC(Enhanced ABC),结果如图8所示。
图8 三个算法检测率的收敛曲线
因为ACO-ABC算法中每次迭代包括了ACO的局部开发操作与ABC的全局搜索操作,两者之间具有互相促进的效果。从图8中的曲线可看出,ACO-ABC算法的收敛速度快于其他两种ABC算法,并且检测率也高于其他两种算法。
通过ROC曲线比较本算法与其他四种算法的检测性能,其他四种算法分别为RABC、EABC、AADM与DSND。网络中设置10个SU,SNR为-5 dB,图9(a)是检测率与虚警率的ROC曲线,(b)是漏检率与虚警率的RCO曲线。可以看出,本文算法的检测性能优于其他四种算法,说明本文算法实现了更高的检测率,以及更低的漏检率与虚警率。
(a) 检测率与虚警率的ROC曲线
(b) 漏检率与虚警率的ROC曲线图9 攻击检测算法的ROC曲线
为了提高认知无线电网络的攻击检测效果,提出了一种基于人工蜂群算法的双门限认知无线电网络的攻击检测算法。将ACO引入ABC算法中,利用ACO的局部开发能力增强ABC的性能,并且ACO与ABC两者在迭代过程中相互促进,加快总算法的收敛速度。实验结果表明,本文算法的收敛速度快于其他两个ABC算法,并且攻击检测的准确率较高,虚警率与漏检率较低。
本文算法的适应度函数考虑了4个认知无线电的参数,分别为:信噪比、接收的信号强度、距离比例测试以及频谱感知的成本。未来将研究引入其他的认知无线电参数,并且考虑不同参数的权重分配机制,从而进一步优化攻击检测的性能。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!