本发明涉及智能电网领域,尤其涉及一种基于强化学习的智能电网虚假数据注入攻击检测方法。
背景技术:
智能电网是一种将信息传输通道与电力传输通道分离,从而使电网拥有更高效的电力资源配置、更强的抗干扰能力的新型电网技术,随着信息技术的深入发展,其的信息安全成为了一个重要的关注点。虚假数据注入攻击在智能电网信息攻击研究中占有重要地位,其核心思想是通过传统检测方法的漏洞,使用构造出的攻击向量来影响电网系统的状态估计,进而破坏电力系统的安全稳定运行。传统的虚假数据注入攻击检测方法为坏数据检测法。该方法仅能够检测直接虚假数据注入攻击,无法检测隐匿虚假数据注入攻击,同时由于其采用单阈值因此检测成功率一般。当前机器学习的检测方法可实现隐匿虚假数据注入攻击的检测,但需保证攻击向量远远大于噪声,缺少攻击向量比过程噪声略大的检测方法。
技术实现要素:
本发明的目的在于针对现有技术的不足,提供一种基于强化学习的智能电网虚假数据注入攻击的检测方法,本发明使用sarsa算法实现了虚假数据注入攻击的检测,提高了虚假数据注入攻击的检测准确率与检测速度。
本发明的目的是通过以下技术方案来实现的:一种基于强化学习的虚假数据注入攻击检测方法,包括以下步骤:
步骤一:建立电网的一般线性模型:
xt=axt-1+vt(1)
yt=hxt+wt(2)
其中xt=[x1,t,…,xn,t,…,xn,t]为t时刻系统状态,xn,t表示为t时刻第n个节点上的相角,n表示系统的总状态数;t时刻测量值表示为yt=[y1,t,…,ym,t,…,ym,t],ym,t表示为t时刻第m个测量仪表的检测值,m表示总测量仪表值;
步骤二:虚拟攻击获得样本:对于直接攻击可以使用式(3)获得受攻击的测量值,对于隐匿攻击可以使用式(4)获得受攻击的测量值,
式中at表示t时刻直接攻击的攻击向量,hct表示隐匿攻击的攻击向量,由于h不会随着时间改变,因此使用ct表示隐匿攻击攻击向量,at与ct在样本训练中已知,在实际检测中未知,τ为系统受到攻击时间,
步骤三:观察值获取:计算测量值yt与其估计值
步骤四:使用ε贪婪策略得到t时刻检测器动作at:将系统划分为两个状态,分别为sn系统未受到攻击与sa系统受到攻击,将检测器动作也分为两个状态as为算法认为系统受到攻击发出警报,ac表示算法认为系统未受到攻击不发出警报,在t时刻得到直接攻击检测观察值
ε=max(ε-e-1,εmin)(5)
式中e为当且已经进行使用的样本值,εmin为人为设置的最小ε值;
步骤五:使用sarsa算法进行训练,使用式(6)更新q表,
式中含有上角标i的参数表示用于检测i类型攻击的参数,i=n或s,即当i=n时表示该参数用于检测直接攻击,当i=s表示该参数用于检测隐匿攻击,qi为检测i类型攻击所需要的q表,
式中r0与b为预先确定的超前警报回报值与滞后警报回报值系数,
步骤六:重复步骤一到步骤五直到到达阶段最大检测时间t,或
步骤七:重复步骤一到步骤六直到将总样本数e用尽,得到完整qd表与qs表;
步骤八:在检测时,使用步骤一到步骤三得到观察值
进一步地,所述步骤三通过以下子步骤来实现:
(3.1)设置阈值:根据不同的电网结构分别设置直接虚假数据注入攻击阈值
(3.2)获得检测值:从各个检测仪表获得t时刻检测值yt,调用t-1时刻检测值yt-1;
(3.3)实用卡尔曼滤波估计检测值:使用式(9)与式(10)所示的最小二乘算法得到t时刻状态估计值
式中
(3.4)计算偏差模方值:使用式(12)和(13)分别计算t时刻测量值与估计值的偏差模方值
(3.5)使用阈值分割法获得即时观察值:由
由于阈值分割方法一致,因此依旧使用上角标i代替上角标n和上角标s,即式(14)中i可以同时为n或s;
(3.6)使用滑窗法获得观察值:令t-1时刻直接虚假数据注入攻击观察值
本发明的有益效果是,本发明使用sarsa算法实现了虚假数据注入攻击的检测,提高了虚假数据注入攻击的检测准确率与检测速度,对于隐匿虚假数据注入攻击检测也有较好效果,并且方便的实现直接虚假数据注入攻击与隐匿虚假数据注入攻击的检测。
附图说明
图1是ieee-14节点图可根据该图获得h阵,
图2是训练q表流程图,
图3是检测流程图,
图4表示超前警报率检测测图,
图5表示滞后警报率检测图,
图6表示总警报失败率图,
图7表示超前警报率检测测图,
图8表示滞后警报率检测图,
图9表示总警报失败率图,
图10表示警报类别错误率图,
图11表示隐匿虚假数据注入攻击的即时检测成功率图,
图12表示直接虚假数据注入攻击的即时检测成功率图。
具体实施方式
为了加深对本发明的认识和理解,下面结合附图和实施方式详细的说明本发明。
实施例1:参见图1-图4,一种基于强化学习的智能电网虚假数据注入攻击检测方法,包括以下步骤:
步骤一:建立电网的一般线性模型:
xt=axt-1+vt(1)
yt=hxt+wt(2)
其中xt=[x1,t,…,xn,t,…,xn,t]为t时刻系统状态,xn,t表示为t时刻第n个节点上的相角,n表示系统的总状态数,取14;t时刻测量值表示为yt=[y1,t,…,ym,t,…,ym,t],ym,t表示为t时刻第m个测量仪表的检测值,m表示总测量仪表值,取23;
步骤二:虚拟攻击获得样本:对于直接攻击可以使用式(3)获得受攻击的测量值,对于隐匿攻击可以使用式(4)获得受攻击的测量值,
式中at表示t时刻直接攻击的攻击向量,hct表示隐匿攻击的攻击向量,由于h不会随着时间改变,因此使用ct表示隐匿攻击攻击向量,at与ct在样本训练中已知,在实际检测中未知,τ为系统受到攻击时间,设10<τ<200,
步骤三:观察值获取:计算测量值yt与其估计值
该步骤是本发明的核心,分为以下子步骤。
3.1)设置阈值。
根据不同的电网结构分别设置直接虚假数据注入攻击阈值
3.2)获得检测值。
从各个检测仪表获得t时刻检测值yt,调用t-1时刻检测值yt-1;
3.3)实用卡尔曼滤波估计检测值。
使用式(9)与式(10)所示的最小二乘算法得到t时刻状态估计值
式中
3.4)计算偏差模方值。
使用式(12)和(13)分别计算t时刻测量值与估计值的偏差模方值
3.5)使用阈值分割法获得即时观察值。
由
由于阈值分割方法一致,因此依旧使用上角标i代替上角标n和上角标s,即式(14)中i可以同时为n或s;
3.6)使用滑窗法获得观察值。
令t-1时刻直接虚假数据注入攻击观察值
步骤四:使用ε贪婪策略得到t时刻检测器动作at:将系统划分为两个状态,分别为sn系统未受到攻击与sa系统受到攻击,将检测器动作也分为两个状态as为算法认为系统受到攻击发出警报,ac表示算法认为系统未受到攻击不发出警报,在t时刻得到直接攻击检测观察值
ε=max(ε-e-1,εmin)(5)
式中e为当且已经进行使用的样本值,εmin=0.01为人为设置的最小ε值,ε初值设置为0.2;
步骤五:使用sarsa算法进行训练,使用式(6)更新q表,
式中含有上角标i的参数表示用于检测i类型攻击的参数,i=n或s,即当i=n时表示该参数用于检测直接攻击,当i=s表示该参数用于检测隐匿攻击,qi为检测i类型攻击所需要的q表,
式中r0与b为预先确定的超前警报回报值与滞后警报回报值系数,分别设置为r0=1、b=0.01,
步骤六:重复步骤一到步骤五直到到达阶段最大检测时间t=300,或
步骤七:重复步骤一到步骤六直到将总样本数e=40000用尽,得到完整qd表与qs表;
步骤八:在检测时,使用步骤一到步骤三得到观察值
结合附图可以看到,图4表示超前警报率检测测图,此图中at与ct均分别服从[0,0.075]、[0.075,0.15]、[0.1,0.175]、[0.15,0.225]、[0.175,0.25]的均匀分布,far表示超前警报率,即还未攻击就进行警报发生的频率,计算方式为超前警报的次数除以总检测次数,directattacktest表示使用本方法进行直接虚假数据注入攻击的检测结果,stea1thattacktest表示使用本方法进行隐匿虚假数据注入攻击的检测结果,bdd表示使用传统坏数据监测方法的结果,bdd只能检测直接虚假数据注入攻击(检测阈值设为0.006),lm为at与ct服从分布的区间下限,um为at与ct服从分布的区间上限。图5表示滞后警报率检测图,此图中at与ct均分别服从[0,0.075]、[0.075,0.15]、[0.1,0.175]、[0.15,0.225]、[0.175,0.25]的均匀分布,其中dar表示滞后警报率,即攻击后检测超过10次还未进行警报的频率,计算方式为滞后警报的次数除以总检测次数表示滞后警报率。图6表示总警报失败率图,此图中at与ct均分别服从[0,0.075]、[0.075,0.15]、[0.1,0.175]、[0.15,0.225]、[0.175,0.25]的均匀分布,其中tfr表示总警报失败率,即包括far、dar、cer在内的检测失败的总的频率,计算方式为总失败次数除以总检测次数。图7表示超前警报率检测测图,此图中at与ct均分别服从[0,0.15]、[0.01,0.25]、[0.15,0.3]、[0.2,0.35]、[0.25,0.4]的均匀分布。图8表示滞后警报率检测图,此图中at与ct均分别服从[0,0.15]、[0.01,0.25]、[0.15,0.3]、[0.2,0.35]、[0.25,0.4]的均匀分布。图9表示总警报失败率图,此图中at与ct均分别服从[0,0.15]、[0.01,0.25]、[0.15,0.3]、[0.2,0.35]、[0.25,0.4]的均匀分布。图10表示警报类别错误率图,此图中um-lm=0.075为at与ct服从图4分布,um-lm=0.1.5为at与ct服从图7分布,um-lm=0.075为at与ct分别服从[0.03,0.08]、[0.05,0.1]、[0.1,0.15]、[0.15,0.2]、[0.2,0.25]的均匀分布,cer表示警报类别错误率,即直接虚假数据注入攻击与隐匿虚假数据注入攻击检测类别是错误的频率,计算方式为类别检测错误的次数除以总检测次数。图11表示隐匿虚假数据注入攻击的即时检测成功率图,三个分布与图10相同,sdr表示即时检测成功率,即攻击后立刻进行警报的频率,计算方式为立刻警报的次数除以总检测次数。图12表示直接虚假数据注入攻击的即时检测成功率图,三个分布与图10相同。
需要说明的是上述实施例,并非用来限定本发明的保护范围,在上述技术方案的基础上所作出的等同变换或替代均落入本发明权利要求所保护的范围。