2.845

2023影响因子

(CJCR)

  • 中文核心
  • EI
  • 中国科技核心
  • Scopus
  • CSCD
  • 英国科学文摘

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于门限和环签名的抗自适应攻击拜占庭容错共识算法

孙海锋 张文芳 王小敏 马征 黄路非 李暄

张正道, 杨佳佳, 谢林柏. 基于辅助信息补偿和控制信号编码的重放攻击检测方法. 自动化学报, 2023, 49(7): 1508−1518 doi: 10.16383/j.aas.c210092
引用本文: 孙海锋, 张文芳, 王小敏, 马征, 黄路非, 李暄. 基于门限和环签名的抗自适应攻击拜占庭容错共识算法. 自动化学报, 2023, 49(7): 1471−1482 doi: 10.16383/j.aas.c200694
Zhang Zheng-Dao, Yang Jia-Jia, Xie Lin-Bo. Replay attack detection method based on auxiliary information compensation and control signal coding. Acta Automatica Sinica, 2023, 49(7): 1508−1518 doi: 10.16383/j.aas.c210092
Citation: Sun Hai-Feng, Zhang Wen-Fang, Wang Xiao-Min, Ma Zheng, Huang Lu-Fei, Li Xuan. A robust Byzantine fault-tolerant consensus algorithm against adaptive attack based on ring signature and threshold signature. Acta Automatica Sinica, 2023, 49(7): 1471−1482 doi: 10.16383/j.aas.c200694

基于门限和环签名的抗自适应攻击拜占庭容错共识算法

doi: 10.16383/j.aas.c200694
基金项目: 国家自然科学基金(61872302), 四川省重点研发项目 (2021YFQ0056), 四川省科技计划项目(2017SZYZF0002, 2019YFH0097), 四川省卫生信息学会科研课题(2018002)资助
详细信息
    作者简介:

    孙海锋:西南交通大学信息科学与技术学院硕士研究生. 主要研究方向为区块链信息安全及共识机制. E-mail: alvislly@163.com

    张文芳:西南交通大学信息科学与技术学院副教授. 主要研究方向为云计算和分布式系统信息安全, 区块链安全及共识, 轨道交通信息安全. 本文通信作者.E-mail: wfzhang@swjtu.edu.cn

    王小敏:西南交通大学信息科学与技术学院教授. 主要研究方向为信息安全和轨道交通安全工程. E-mail: xmwang@swjtu.edu.cn

    马征:西南交通大学信息科学与技术学院教授. 主要研究方向为信息和通信工程. E-mail: zma@swjtu.edu.cn

    黄路非:成都市第三人民医院高级工程师. 主要研究方向为医疗信息工程. E-mail: lhuang78@163.com

    李暄:成都市第三人民医院高级工程师. 主要研究方向为医疗信息工程. E-mail: ally.xuan@hotmail.com

A Robust Byzantine Fault-tolerant Consensus Algorithm Against Adaptive Attack Based on Ring Signature and Threshold Signature

Funds: Supported by National Natural Science Foundation of China (61872302), Key Research and Development Program of Sichuan Province (2021YFQ0056), Science and Technology Program of Sichuan Province (2017SZYZF0002, 2019YFH0097), and Scientific Research Project of Health Information Association of Sichuan Province (2018002)
More Information
    Author Bio:

    SUN Hai-Feng Master student at the School of Information Science and Technology, Southwest Jiaotong University. His research interest covers information security and consensus mechanisms of blockchains

    ZHANG Wen-Fang Associate professor at the School of Information Science and Technology, Southwest Jiaotong University. Her research interest covers information security of cloud computing and distributed systems, security and consensus mechanisms of blockchains, and information security of rail transport. Corresponding author of this paper

    WANG Xiao-Min Professor at the School of Information Science and Technology, Southwest Jiaotong University. His research interest covers information security and safety engineering of rail transportation

    MA Zheng Professor at the School of Information Science and Technology, Southwest Jiaotong University. His research interest covers information and communication engineering

    HUANG Lu-Fei Senior engineer of Chengdu Third People's Hospital. His main research interest is medical informatics engineering

    LI Xuan Senior engineer of Chengdu Third People's Hospital. Her main research interest is medical informatics engineering

  • 摘要: 共识算法作为区块链底层关键技术, 可解决决策权分散的分布式系统中的一致性难题. 良好的共识算法可提升系统健壮性, 但大多数方案在网络故障或主动攻击下存在鲁棒性不可控、活性表现差、可扩展性不足等问题. 针对上述问题, 提出一种抗自适应攻击的健壮拜占庭容错共识算法(Robust Byzantine fault tolerance, RBFT). 该算法利用环签名的无条件强匿名性构造排序选主算法, 隐匿选举每一轮共识中的提案者, 进而达到模糊敌手攻击对象、有效抵抗自适应攻击的目的. 同时, 通过在多轮投票中合成代表法定人数投票意愿的门限签名, 将网络划分为众多最小连通性网络, 以保证在最小连通性网络环境中实现低延迟、高鲁棒性的拜占庭容错共识算法. 分析表明, 系统在提升可扩展性、减少视图更换、降低签名验证开销的同时, 能够有效保证系统活性.
  • 信息物理系统(Cyber physical system, CPS)是结合传感、通信、计算和控制过程形成的复杂系统[1-2]. CPS互联而开放的运行环境, 在极大提高运行效率的同时, 也引入了大量安全漏洞[3]. 攻击者可以通过入侵传输通道并且修改控制信号或者测量信号等多种方式破坏系统的正常运行, 造成严重损失[4]. 近年来, CPS的安全性问题, 特别是CPS的攻击检测问题, 已经成为学术热点问题[5-7].

    CPS遭受的网络攻击主要包括拒绝服务攻击(Denial-of-service attack, DoS)、虚假数据注入攻击(False data injection attack, FDI)和重放攻击(Replay attack)等3种类型[8]. DoS攻击的主要目标是阻止系统控制信号或者测量信号的正常传输, 实现对系统控制性能的破坏[9]. DoS攻击的检测可以通过网络安全领域的检测方法实现. FDI攻击和重放攻击主要由内部人员发起, 属于“合法用户取得非法权限”, 仅通过网络安全的手段难以预防.

    FDI攻击的主要特征是攻击者构造一个虚假数据替换系统的真实数据, 从而引导控制器发出错误的控制指令, 最终造成控制系统的性能退化或者瘫痪[10-11]. 重放攻击的主要特征是攻击者利用存储的系统历史时刻数据替换系统当前时刻的真实数据, 进而引导控制器发出错误的控制指令. 与FDI攻击相比, 重放攻击的攻击者无需预知控制系统的知识. 同时, 由于攻击者重放的通常是系统在稳定状态的测量数据, 本身具有隐匿性, 常用的攻击检测器难以检测[12]. 现有文献对重放攻击检测研究相对较少, 开展重放攻击检测研究意义重大.

    现有的重放攻击检测大致可分为添加水印和信号编码两类. 虽然本质上都是向控制信号或者测量信号中添加额外的随机信号, 但是信号编码方法在添加随机噪声后, 还需对测量信号进行相应解码操作. 文献[13]研究了测量信号编码的方法, 系统遭受重放攻击后, 利用编码和解码信息间的不同步检测攻击. 为了提高检测率, 测量值编码信息的方差可能会很大, 甚至远超系统测量信号, 使解码操作变得困难. 此外单纯的噪声编码信息也容易被攻击者识别, 进而实施可以避开相关检测的隐匿攻击. 文献[14]最早提出向控制信号中持续添加高斯随机噪声, 以使攻击前后的数据残差出现明显变化, 并据此检测重放攻击的方法. 但该方法改变了系统的最优控制信号, 需要以牺牲系统控制性能换取攻击检测率. 文献[15]进一步给出了所加高斯噪声方差大小与性能损失之间的线性关系, 并且基于期望检测性能和允许控制性能损失提出了相应的最优化问题. 为了减少所加噪声造成的系统性能损失, 文献[16]提出将原本持续性加入的水印信号改为周期性加入. 然而, 该方法在减少性能损失的同时也降低了攻击检测率. 文献[17]针对系统建模信息不完整造成建模有误差的情况, 提出一种最优的在线控制水印信号设计方法. 文献[18]针对系统可能存在数据丢包的情况, 提出控制信号编码检测方法. 针对不连续的重放攻击检测问题, 文献[19]设计了一种周期性的水印添加策略, 减少未发生重放攻击时的控制性能损失. 考虑攻击者的重放延迟为任意值的情况, 文献[20]提出了一种最佳周期性水印添加策略, 在给定允许系统性能损失范围内调整加入控制信号的噪声大小和周期, 以获得最高攻击检测率. 但是, 现有方法尚未明确给出检测率、性能损失和噪声方差之间的定量关系.

    针对现有方法存在的问题, 本文提出一种新的基于控制信号编码的重放攻击检测方法. 为了减少加入编码信号对控制信号的累积效应, 降低其对系统控制性能的影响, 在向控制信号添加编码信号的同时, 向状态估计端添加人为构造的辅助信号进行补偿. 在卡尔曼滤波器估计状态值时仍使用未加入编码信号之前的最优控制信号. 此时所添加的编码信号不参与控制信号的迭代过程. 通过理论证明, 给出了上述方法对重放攻击的可检测性以及检测率的定量表示. 同时证明了相对于持续添加控制噪声的方法, 本文方法具有更小的系统性能损失. 最后, 本文将编码信号方差、检测率和检测函数阈值之间的关系表示成一个可解的最优化问题, 给出了求解编码信号方差的明确方法. 通过仿真实验, 验证了所提方法的有效性.

    考虑CPS的受控对象为一个线性定常系统, 采用卡尔曼滤波器得到系统状态的估计值, 同时依据线性二次高斯控制器得到最优控制信号, 实现闭环反馈控制. 系统状态模型为

    $$\begin{split} & {{\boldsymbol{x}}_{k + 1}} = {\boldsymbol{A}}{{\boldsymbol{x}}_k} + {\boldsymbol{B}}{{\boldsymbol{u}}_k} + {{\boldsymbol{w}}_k} \\ &{{\boldsymbol{y}}_k} = {\boldsymbol{C}}{{\boldsymbol{x}}_k} + {{\boldsymbol{v}}_k} \end{split} $$ (1)

    式中, ${{\boldsymbol{x}}_k} \in {{\bf{R}}^n}$ 为系统状态向量, ${{\boldsymbol{y}}_k} \in {{\bf{R}}^m}$和${{\boldsymbol{u}}_k} \in {{\bf{R}}^{{n_u}}}$分别代表测量信号和控制输入信号, 矩阵${\boldsymbol{A}}$, ${\boldsymbol{B}}$和${\boldsymbol{C}}$是具有相应维度的系数矩阵, ${{\boldsymbol{w}}_k} \sim {\rm{MVN}} ( {\boldsymbol{0},{\boldsymbol{W}}} )$, ${{\boldsymbol{v}}_k} \sim {\rm{MVN}}( {\boldsymbol{0},{\boldsymbol{V}}} )$且相互独立, 分别表示过程噪声和测量噪声, 其中, MVN表示多变量正态分布, ${\boldsymbol{W}} $和${\boldsymbol{V}} $分别是过程噪声和量测噪声的协方差矩阵. 假设式(1)所示系统满足: $( {{\boldsymbol{A}},{\boldsymbol{B}}} )$完全可控, $( {{\boldsymbol{A}},{\boldsymbol{C}}} )$完全可观, $( {{\boldsymbol{A}},\sqrt {\boldsymbol{W}} } )$是能稳的, 系统初值${{\boldsymbol{x}}_0}$与过程噪声和测量噪声皆不相关, 且服从多变量正态分布${\rm MVN}( \bar{\boldsymbol {x}}_{0},\boldsymbol{\varepsilon} )$, 其中, $\bar{\boldsymbol {x}}_{0}$为均值向量, $\boldsymbol{\varepsilon} $为协方差.

    考虑到过程噪声存在的情况且系统真实状态无法获得, 本文采用卡尔曼滤波算法, 利用测量信息实时更新得到最佳状态估计值${{\hat{\boldsymbol x}}_{k\left| k \right.}}$, 滤波过程概括为

    $$\left\{\begin{aligned} &{{{\hat{\boldsymbol x}}}_{k|k - 1}} = {\boldsymbol{A}}{{{\hat{\boldsymbol x}}}_{k - 1|k - 1}} + {\boldsymbol{B}}{{\boldsymbol{u}}_{k - 1}} \\ &{{\boldsymbol{P}}_{k|k - 1}} = {\boldsymbol{A}}{{\boldsymbol{P}}_{k - 1\left| {k - 1} \right.}}{{\boldsymbol{A}}^{\rm{T}}} + {\boldsymbol{W}} \\ &{{\boldsymbol{G}}_k} = {{\boldsymbol{P}}_{k|k - 1}}{{\boldsymbol{C}}^{\rm{T}}}{\left( {\boldsymbol{C}{{\boldsymbol{P}}_{k|k - 1}}{{\boldsymbol{C}}^{\rm{T}}} + {\boldsymbol{V}}} \right)^{ - 1}} \\ &{{{\hat{\boldsymbol x}}}_{k|k}} = {{{\hat{\boldsymbol x}}}_{k|k - 1}} + {{\boldsymbol{G}}_k}{{\boldsymbol{z}}_k} \\ &{{\boldsymbol{P}}_{k\left| k \right.}} = {{\boldsymbol{P}}_{k|k - 1}} - {{\boldsymbol{G}}_k}{\boldsymbol{C}}{{\boldsymbol{P}}_{k|k - 1}} \end{aligned}\right. $$ (2)

    其中, 残差${{\boldsymbol{z}}_k} = {{\boldsymbol{y}}_k} - {\boldsymbol{C}}{{\hat{\boldsymbol x}}_{k|k - 1}}$. 在系统假设条件下, 式(2)中的滤波增益${{\boldsymbol{G}}_k}$、状态误差协方差${{\boldsymbol{P}}_{k\left| k \right.}}$、预测状态误差协方差${{\boldsymbol{P}}_{k\left| {k - 1} \right.}}$将很快收敛到稳定值${\boldsymbol{G}}$、${\bar{\boldsymbol P}}$和${\boldsymbol{P}}$, 且满足如下黎卡提方程:

    $$\left\{\begin{aligned} &{\boldsymbol{G}} = {\boldsymbol{P}}{{\boldsymbol{C}}^{\rm{T}}}{({\boldsymbol{CP}}{{\boldsymbol{C}}^{\rm{T}}} + {\boldsymbol{V}})^{ - 1}} \\ & {\bar{\boldsymbol P}} = ({\boldsymbol{I}_n} - {\boldsymbol{P}}{{\boldsymbol{C}}^{\rm{T}}}{({\boldsymbol{CP}}{{\boldsymbol{C}}^{\rm{T}}} + {\boldsymbol{V}})^{ - 1}}{\boldsymbol{C}}){\boldsymbol{P}} \\ & \boldsymbol{B} = {\boldsymbol{W}} + {\boldsymbol{AP}}{{\boldsymbol{A}}^{\rm{T}}} - {\boldsymbol{AP}}{{\boldsymbol{C}}^{\rm{T}}}{({\boldsymbol{CP}}{{\boldsymbol{C}}^{\rm{T}}} + {\boldsymbol{V}})^{ - 1}}{\boldsymbol{CP}}{{\boldsymbol{A}}^{\rm{T}}} \end{aligned}\right. $$ (3)

    考虑系统的随机过程噪声和测量噪声, 定义系统性能指标函数为

    $$J = \min \mathop {\lim }\limits_{T \to \infty } {\rm{E}}\Bigg[\frac{1}{T} \left[{\sum\limits_{k = 0}^{T - 1} {\left( {{\boldsymbol{x}}_k^{\rm{T}}{\boldsymbol{Q}}{{\boldsymbol{x}}_k} + {\boldsymbol{u}}_k^{\rm{T}}{\boldsymbol{R}}{{\boldsymbol{u}}_k}} \right)} } \right]\Bigg]$$ (4)

    式中, ${\boldsymbol{Q}}$, ${\boldsymbol{R}}$分别为状态变量和控制变量的系数矩阵, $\rm{E}[\cdot] $为期望运算. 在满足上述性能指标的情况下, 结合卡尔曼滤波算法得到最佳状态估计值${{\hat{\boldsymbol x}}_{k\left| k \right.}}$, 可得如下最优控制信号:

    $$\left\{\begin{aligned} &{{\boldsymbol{u}}_k} = - {\left( {{{\boldsymbol{B}}^{\rm{T}}}{\boldsymbol{SB}} + {\boldsymbol{R}}} \right)^{ - 1}}{{\boldsymbol{B}}^{\rm{T}}}{\boldsymbol{SA}}{{{\hat{\boldsymbol x}}}_{k\left| k \right.}} = {\boldsymbol{K}}{{{\hat{\boldsymbol x}}}_{k\left| k \right.}} \\ &{\boldsymbol{S}} = {{\boldsymbol{A}}^{\rm{T}}}{\boldsymbol{SA}} - {{\boldsymbol{A}}^{\rm{T}}}{\boldsymbol{SB}}{\left( {{{\boldsymbol{B}}^{\rm{T}}}{\boldsymbol{SB}} + {\boldsymbol{R}}} \right)^{ - 1}}{{\boldsymbol{B}}^{\rm{T}}}{\boldsymbol{SA}} + {\boldsymbol{Q}} \end{aligned} \right.$$ (5)

    本文研究测量信号重放的情况. 因此假设攻击者能够记录测量数据${{\boldsymbol{y}}_0},{{\boldsymbol{y}}_1}, \cdots ,{{\boldsymbol{y}}_k}$, 同时可将实际传感器信号${{\boldsymbol{y}}_k}$修改为任意值${\boldsymbol{y}}_k'$. 实施重放攻击通常分为如下步骤. 首先, 攻击者记录从时间${k_m}$到${k_m} + T$的传感器测量值${{\boldsymbol{y}}_k}$, 其中, $T$为攻击者记录数据的时间长度. 一般情况下$T$足够大, 否则, 可通过将记录的数据连续重放以达到攻击目的. 其次, 从时间${k_n}$到${k_n} + T$, 攻击者将系统真实的测量信号${{\boldsymbol{y}}_k}$修改为之前时刻记录的值, 即

    $$\left\{\begin{aligned} & {\boldsymbol{y}}_k' = {{\boldsymbol{y}}_{k - \Delta k}},\;\;\forall {k_n} \le k \leq {{k_n} + T} \\ &\Delta k = {k_n} - {k_m} \end{aligned} \right.$$ (6)

    由于受攻击时系统往往已处于稳态, 重放信号${\boldsymbol{y}}_k'$和实际信号${{\boldsymbol{y}}_k}$分布相同, 重放攻击有一定隐匿性. 文献[15]中分析了重放攻击的隐匿性条件, 并指出若滤波增益G和控制增益K非最优并使${\boldsymbol{\Psi }} = \left( {{\boldsymbol{A}} + {\boldsymbol{BK}}} \right)\left( {{{\boldsymbol{I}}_{n}} - {\boldsymbol{GC}}} \right)$不稳定时, 重放攻击能够被${\chi ^2}$检测器检测; 若${\boldsymbol{\Psi} }$是稳定的, 则重放攻击者可以绕过${\chi ^2}$检测, 实现隐匿攻击. 因此, 本文主要考虑隐匿攻击, 即${\boldsymbol{\Psi }}$稳定的情况.

    与现有控制信号编码检测方法不同, 本文方法在添加控制编码信号的同时, 向状态估计测量值输入端添加相应的补偿信号, 从而减小编码信号对系统性能指标的影响, 并且能使重放攻击前后检测信号出现明显协方差差异. 图1给出了本文方法的完整框图.

    图 1  本文所提方法的系统框图
    Fig. 1  System diagram of the proposed scheme in this paper

    为了检测重放攻击, 向系统最优控制信号中加入编码信号$\Delta {{\boldsymbol{u}}_k}$, 加入$\Delta {{\boldsymbol{u}}_k}$之后系统状态记为${\boldsymbol{x}}_k^*$, 测量值记为${\boldsymbol{y}}_k^*$, 此时系统为

    $$\left\{\begin{aligned} &{\boldsymbol{x}}_{k + 1}^{\rm{*}} = {\boldsymbol{Ax}}_k^* + {\boldsymbol{B}}\left( {{{\boldsymbol{u}}_k}{\rm{ + }}\Delta {{\boldsymbol{u}}_k}} \right) + {{\boldsymbol{w}}_k} \\ & {\boldsymbol{y}}_k^* = {\boldsymbol{Cx}}_k^* + {{\boldsymbol{v}}_k} \end{aligned} \right.$$ (7)

    同时, 构造如下辅助系统, 令${\boldsymbol{x}}_k^{\rm{s}}$的初值为0, 即

    $$\left\{\begin{aligned} &{\boldsymbol{x}}_{k + 1}^{\rm{s}} = {\boldsymbol{Ax}}_k^{\rm{s}} + {\boldsymbol{B}}\Delta {{\boldsymbol{u}}_k} \\ & {{\boldsymbol{s}}_k} = - {\boldsymbol{Cx}}_k^{\rm{s}} \end{aligned}\right. $$ (8)

    在状态估计端添加相应补偿信号${{\boldsymbol{s}}_k}$. 此时, 状态估计端获得的测量值为${\boldsymbol{y}}_k^{{e}} = {\boldsymbol{y}}_k^* + {{\boldsymbol{s}}_k}$, 则

    $$\begin{split} {\rm{ }}{\boldsymbol{y}}_k^{{e}} =\;& {\boldsymbol{y}}_k^* + {{\boldsymbol{s}}_k} = {\boldsymbol{C}}\left( {{\boldsymbol{x}}_k^* - {\boldsymbol{x}}_k^{\rm{s}}} \right) + {{\boldsymbol{v}}_k}= \\ & {\boldsymbol{C}}\left[ {{\boldsymbol{A}}\left( {{\boldsymbol{x}}_{k - 1}^* - {\boldsymbol{x}}_{k - 1}^{\rm{s}}} \right) + {\boldsymbol{B}}{{\boldsymbol{u}}_{k - 1}} + {{\boldsymbol{w}}_{k - 1}}} \right] + {{\boldsymbol{v}}_k}= \\ & {\boldsymbol{C}}\left[ {{{\boldsymbol{A}}^k}{{\boldsymbol{x}}_0} + \sum\limits_{i = 0}^{k - 1} {{{\boldsymbol{A}}^i}\left( {{\boldsymbol{B}}{{\boldsymbol{u}}_{k - 1 - i}} + {{\boldsymbol{w}}_{k - 1 - i}}} \right)} } \right] +\\ &{{\boldsymbol{v}}_k}={\boldsymbol{C}}{{\boldsymbol{x}}_k} + {{\boldsymbol{v}}_k} = {{\boldsymbol{y}}_k} \\[-10pt] \end{split} $$ (9)

    由式(9)可知, 此时估计端接收到的测量值与系统未加$\Delta {{\boldsymbol{u}}_k}$时相同.

    定义检测信号${{\boldsymbol{r}}_k}$为

    $$\begin{split} {{\boldsymbol{r}}_k} =\;& {\boldsymbol{y}}_k^{\rm{e}} - \boldsymbol{B}{{{\hat{\boldsymbol x}}}_{k\left| {k - 1} \right.}} = {\boldsymbol{y}}_k^* + {{\boldsymbol{s}}_k} - {\boldsymbol{C}}{{{\hat{\boldsymbol x}}}_{k\left| {k - 1} \right.}} =\\ &{{\boldsymbol{y}}_k} - {\boldsymbol{C}}{{{\hat{\boldsymbol x}}}_{k\left| {k - 1} \right.}} \end{split} $$ (10)

    式中, ${{\hat{\boldsymbol x}}_{k\left| {k - 1} \right.}}$是此方案下的预测状态估计值, 且

    $$\begin{split} {{{\hat{\boldsymbol x}}}_{k\left| {k - 1} \right.}} =\;& {\boldsymbol{A}}{{{\hat{\boldsymbol x}}}_{k - 1\left| {k - 1} \right.}} + \boldsymbol{B}{{\boldsymbol{u}}_{k - 1}} = \\ &\left( {{\boldsymbol{A}} + {\boldsymbol{BK}}} \right){{{\hat{\boldsymbol x}}}_{k - 1\left| {k - 1} \right.}}= \\ & \left( {{\boldsymbol{A}} + {\boldsymbol{BK}}} \right)\left[ {\left( {{{\boldsymbol{I}}_n} - {\boldsymbol{GC}}} \right){{{\hat{\boldsymbol x}}}_{k - 1\left| {k - 2} \right.}}}+ \right.\\ & \left. { {\boldsymbol{G}}{{\boldsymbol{y}}_{k - 1}}} \right]= {\boldsymbol{\Psi }}{{{\hat{\boldsymbol x}}}_{k - 1\left| {k - 2} \right.}} + {\boldsymbol{\Gamma }}{{\boldsymbol{y}}_{k - 1}} \end{split} $$ (11)

    其中, ${\boldsymbol{\Gamma }}= \left( {{\boldsymbol{A}} + {\boldsymbol{BK}}} \right){\boldsymbol{G}}$. 由式(9)可知, 此时的${{\hat{\boldsymbol x}}_{k\left| {k - 1} \right.}}$亦与未加$\Delta {{\boldsymbol{u}}_k}$时相同.

    引理 1. 如式(1)定义的带有卡尔曼滤波器和线性二次高斯(Linear-quadratic-Gaussian, LQG)控制器的线性定常系统, 卡尔曼滤波器的残差${{\boldsymbol{y}}_k} - {\boldsymbol{C}}{{\hat{\boldsymbol x}}_{k\left| {k - 1} \right.}}$服从均值为0、协方差为${{{\boldsymbol{\Sigma }}}_{{r}}}$的高斯分布, 其中, 协方差矩阵${{{{\boldsymbol{\Sigma}} }}_{{r}}} = {\boldsymbol{CP}}{{\boldsymbol{C}}^{\rm{T}}} + {\boldsymbol{V}}$.

    结合引理1和式(10)可知, 本文方案下的检测信号${{\boldsymbol{r}}_k}$服从多变量正态分布${\rm{MVN}}\left( {\boldsymbol{0},{{{{\boldsymbol{\Sigma}} }}_{{r}}}} \right)$.

    构造检测函数为

    $$g\left( k \right) = \frac{1}{t}\sum\limits_{i = k - t + 1}^k {{{\boldsymbol{r}}_i}^{ {\rm{T}}}} {{{\boldsymbol{\Sigma}} }}_{{r}}^{ - 1}{{\boldsymbol{r}}_i}$$ (12)

    式中, $t$为滑动窗口大小. 显然, 当系统未受攻击时, $g\left( k \right)$服从自由度为$m $的${\chi ^2}$分布.

    定理 1. 如式(1)所示线性定常系统, 定义检测函数如式(12)所示, 采用第2.1节所提方案对控制信号进行编码. 若加入的编码信号满足$\Delta {{\boldsymbol{u}}_{k - 1 - i}} \ne \Delta {\boldsymbol{u}}_{k - 1 - i}' ,\; {i = 0, \cdots ,k - 1} $, 则当系统遭受重放攻击后, 攻击是可检测的.

    证明. 当遭受重放攻击时, 系统当前时刻的测量信息被攻击者的记录值所替代. 令攻击者重放到系统中的信息为${\boldsymbol{y}}{_k^{*'}}$, ${\boldsymbol{y}}{_k^{*'}}$对应的系统状态值为${\boldsymbol{x}}{_k^{*'}}$, 攻击者重放的数据对应时刻的编码信号为$\Delta {\boldsymbol{u}}_k'$, 按式(9)向测量值中加入补偿信号${{\boldsymbol{s}}_k}$后的检测信号为${\boldsymbol{r}}_k^{\rm{a}}$, 可得

    $$\begin{split} {\boldsymbol{r}}_k^{\rm{a}} =\;& {\boldsymbol{y}}{_k^{*'}} + {{\boldsymbol{s}}_k} - {\boldsymbol{C}}{{{\hat{\boldsymbol x}}}_{k\left| {k - 1} \right.}}= \\ & \left( {{\boldsymbol{y}}_k^{*'} + {\boldsymbol{s}}_k' - {\boldsymbol{C\hat x}}_{k\left| {k - 1} \right.}'} \right) + {\boldsymbol{C}}\left( {{\hat{\boldsymbol x}}_{k\left| {k - 1} \right.}' - {\hat{\boldsymbol x}}_{k\left| {k - 1} \right.}^{\rm{a}}} \right) + \\ & \left( {{{\boldsymbol{s}}_k} - {\boldsymbol{s}}_k'} \right) = {\boldsymbol{r}}_k' + {\boldsymbol{C}}\left( {{\hat{\boldsymbol x}}_{k\left| {k - 1} \right.}' - {\hat{\boldsymbol x}}_{k\left| {k - 1} \right.}^{\rm{a}}} \right)+ \\ &{\boldsymbol{C}}\left[ {{\boldsymbol{A}}\left( {{\boldsymbol{x}}_{k - 1}^{\rm{s}} - {\boldsymbol{x}}{{_{k - 1}^{\rm{s}'}}}} \right) + {\boldsymbol{B}}\left( {\Delta {{\boldsymbol{u}}_{k{\rm{ - }}1}} - \Delta {\boldsymbol{u}}_{k - 1}'} \right)} \right] \end{split} $$ (13)

    其中

    $$\begin{split} &{\hat{\boldsymbol x}}_{k\left| {k - 1} \right.}' - {{{\hat{\boldsymbol x}}}^{\rm{a}}}_{k\left| {k - 1} \right.} = \left( {{\boldsymbol{A}} + {\boldsymbol{BK}}} \right)\left( {{\hat{\boldsymbol x}}_{k - 1}' - {{{\hat{\boldsymbol x}}}^{\rm{a}}}_{k - 1}} \right)= \\ & \quad\qquad( {{\boldsymbol{A}} + {\boldsymbol{BK}}})\Big[ {{\hat{\boldsymbol x}}_{k - 1\left| {k - 2} \right.}'} - {{{\hat{\boldsymbol x}}}^{\rm{a}}}_{k - 1\left| {k - 2} \right.}\; + \\ &\quad\qquad{\boldsymbol{G}}\left( {{\boldsymbol{y}}_{k - 1}^{\rm{a}} - {\boldsymbol{C\hat x}}_{k - 1\left| {k - 2} \right.}'} \right)-\\ &\quad \qquad { {\boldsymbol{G}}\left( {{\boldsymbol{y}}_{k - 1}^{\rm{a}} - {\boldsymbol{C\hat x}}_{k - 1\left| {k - 2} \right.}^{\rm{a}}} \right)} \Big] =\\ &\quad\qquad {\boldsymbol{\Psi }}\left( {{\hat{\boldsymbol x}}_{k - 1\left| {k - 2} \right.}' - {{{\hat{\boldsymbol x}}}^{\rm{a}}}_{k - 1\left| {k - 2} \right.}} \right) =\\ &\quad\qquad{{\boldsymbol{\Psi }}^k}\left( {{\hat{\boldsymbol x}}_{0\left| { - 1} \right.}' - {{{\hat{\boldsymbol x}}}^{\rm{a}}}_{0\left| { - 1} \right.}} \right)\\[-15pt] \end{split} $$ (14)

    由于$\boldsymbol{\Psi }$为稳定矩阵, 因此, 随 $k \to \infty $, $( {\hat{\boldsymbol x}}_{k\left| {k - 1} \right.}' - $${{\hat{\boldsymbol x}}^{\rm{a}}}_{k\left| {k - 1} \right.})\to 0 $.

    $$\begin{split} {\boldsymbol{x}}_{k - 1}^{\rm{s}} - {\boldsymbol{x}}{{_{k - 1}^{\rm{s}'}}} =\;& {\boldsymbol{Ax}}_{k - 2}^{\rm{s}} + {\boldsymbol{B}}\Delta {{\boldsymbol{u}}_{k - 2}}\; -\\ &\left( {{{\boldsymbol{Ax}}{{_{k - 2}^{\rm{s}'}}}} + {\boldsymbol{B}}\Delta {\boldsymbol{u}}_{k - 2}'} \right) =\\ &{{\boldsymbol{A}}^{k - 1}}\left( {\boldsymbol{x}}_0^{\rm{s}} - {\boldsymbol{x}}_0^{{\rm{s}}'} \right) + \\ &\sum\limits_{i = 0}^{k - 2} {{{\boldsymbol{A}}^i}{\boldsymbol{B}}} \left( {\Delta {{\boldsymbol{u}}_{k - 2 - i}} - \Delta {\boldsymbol{u}}_{k - 2 - i}'} \right) \end{split} $$ (15)

    记${{\boldsymbol{\Phi }}_{k{\rm{ - }}1}} = \Delta {{\boldsymbol{u}}_{k{\rm{ - }}1}} - \Delta {\boldsymbol{u}}_{k - 1}'$, ${\boldsymbol{\delta }} = {\boldsymbol{x}}_0^{\rm{s}} - {{\boldsymbol{x}}{_0^{\rm{s}}}'}$, 可以得到

    $${\boldsymbol{r}}_k^{\rm{a}} = {\boldsymbol{r}}_k' + {\boldsymbol{C}}\left[ {{{\boldsymbol{A}}^k}{\boldsymbol{\delta }} + \sum\limits_{i = 0}^{k - 1} {{{\boldsymbol{A}}^i}{\boldsymbol{B}}{{\boldsymbol{\Phi }}_{k - 1 - i}}} } \right]$$ (16)

    由于${\boldsymbol{x}}_k^{\rm{s}'}$是之前时刻补偿信号${{\boldsymbol{s}}_k}$递推的状态值, 其初始值与${\boldsymbol{x}}_k^{\rm{s}}$相同, 即有${\boldsymbol{x}}_0^{\rm{s}'} = {\boldsymbol{x}}_0^{\rm{s}}$, ${\boldsymbol{\delta }} = \boldsymbol{0}$. 此时, 检测函数变为

    $$\begin{split} & {g^{\rm{a}}}\left( k \right) = \frac{1}{t}\sum\limits_{i = k - t + 1}^k {\boldsymbol r}^{\rm a T}_{i} {\boldsymbol{\Sigma }}_{{r}}^{ - 1}{\boldsymbol r}^{\rm a}_i =\\ & \frac{1}{t}\sum\limits_{i = k - t + 1}^k \left\{\left\{ {{\boldsymbol{r}}_i' + {\boldsymbol{C}}\left[ {{{\boldsymbol{A}}^i}{\boldsymbol{\delta }} + \sum\limits_{j = 0}^{i - 1} {{{\boldsymbol{A}}^j}{\boldsymbol{B}}{{\boldsymbol{\Phi }}_{i - 1 - j}}} } \right]} \right.\right\}^{\rm{T}}\times \\ &\left. { {\boldsymbol{\Sigma }}_{{r}}^{ - 1}\left\{ {\boldsymbol{r}_i' + {\boldsymbol{C}}\left[ {{{\boldsymbol{A}}^i}{\boldsymbol{\delta }} + \sum\limits_{j = 0}^{i - 1} {{{\boldsymbol{A}}^j}{\boldsymbol{B}}{{\boldsymbol{\Phi }}_{i - 1 - j}}} } \right]} \right\}} \right\} = \end{split} $$
    $$\begin{split} & {g'}\left( k \right) + \frac{1}{t}\sum\limits_{i = k - t + 1}^k \left| {{\boldsymbol{\Sigma }}_{{r}}^{ - 1}} \right|\times\\ &\left\| {{\boldsymbol{C}}\sum\limits_{j = 0}^{i - 1} {{{\boldsymbol{A}}^j}{\boldsymbol{B}}\left( {\Delta {{\boldsymbol{u}}_{i - 1 - j}} - \Delta {\boldsymbol{u}}_{i - 1 - j}'} \right)} } \right\|_2^2 \\[-15pt] \end{split} \;\;\;\qquad\qquad$$ (17)

    其中, ${g'}\left( k \right)$是$k $时刻系统若处于正常情况下的检测函数值.

    显然, 检测重放攻击要求${g^{\rm{a}}}\left( k \right) > {g'}\left( k \right)$, 即$\| {{\boldsymbol{C}}\sum\nolimits_{i = 0}^{k - 1} {{{\boldsymbol{A}}^i}{\boldsymbol{B}}\left( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} - \Delta {\boldsymbol{u}}_{k - 1 - i}'} \right)} } \|_2^2 > 0$. 所以, 当$\Delta {{\boldsymbol{u}}_{k - 1 - i}} \ne \Delta {\boldsymbol{u}}_{k - 1 - i}'{\rm{ }},\; {i = 0, \cdots ,k - 1}$时, 重放攻击是可检测的. 且对于给定窗口, 有

    $$\begin{split} &{\rm{Prob}} \left( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} \ne \Delta {\boldsymbol{u}}_{k - 1 - i}',i = 0, \cdots ,k - 1} \right) =\\ & \quad\quad\quad 1 - \sum\limits_{i = 0}^{k - 1} {{\rm{Prob}} \left( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} = \Delta {\boldsymbol{u}}_{k - 1 - i}'} \right)} \\[-18pt] \end{split} $$ (18)

    因为$\Delta {{\boldsymbol{u}}_k}和$$\Delta {\boldsymbol{u}}_k'$都服从$(0, {\boldsymbol{\Sigma }}_{u})$的正态分布, ${\rm{Prob}} ( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} = \Delta {\boldsymbol{u}}_{k - 1 - i}'} ) = 0$, 其中, $i = 0, \cdots ,k - 1 $, 即

    $$\begin{split} &{\rm{Prob}} \left( {\left\| {{\boldsymbol{C}}\sum\limits_{i = 0}^{k - 1} {{{\boldsymbol{A}}^i}{\boldsymbol{B}}\left( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} - \Delta {\boldsymbol{u}}_{k - 1 - i}'} \right)} } \right\|_2^2 > 0} \right)= \\ & \quad{\rm{Prob}} \left( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} \ne \Delta {\boldsymbol{u}}_{k - 1 - i}',\; i = 0, \cdots ,k - 1} \right) = 1 \end{split} $$ (19)

    即对重放攻击的检测率为1.

    由于系统建模误差或者状态估计误差的存在, 使用定理1会导致误检发生. 为此, 可以给定一个检测函数的阈值$\tau ,$ 以及如下假设检验: 若$g\left( k \right) < \tau $, 则表明系统处于${{\rm{H}}_0}$(正常)状态, 反之则处于${{\rm{H}}_1}$(受攻击)状态. 此时, 本文方法对重放攻击的检测率满足定理2.

    定理 2. 如式(1)所示的线性定常系统, 采用如式(12)所示检测函数和第2.1节所提方案, 则一定存在检测函数的阈值$\tau $, 使得在未发生重放攻击时, 检测函数满足$g\left( k \right) < \tau $; 而当系统遭受重放攻击后, 检测函数增大, 且满足${g^{\rm{a}}}\left( k \right) > \tau $. 此时, 重放攻击检测率最大为

    $$\left\{ {\begin{aligned} &2 - 2{\boldsymbol{\Phi}} \left( {\sqrt {\frac{{\tau '}}{{{2^{{n_u}}}{k^2}\left\| {\boldsymbol{C}} \right\|_2^2 \times \left\| {\boldsymbol{B}} \right\|_2^2 \times \left\| {\boldsymbol{A}} \right\|_2^2\det ({{\boldsymbol{\Sigma }}_{{u}}})}}} } \right) ,\\ &\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad{{\left\| {\boldsymbol{A}} \right\|}_2} \leq 1 \\ &2 - 2{\boldsymbol{\Phi}} \left( {\sqrt {\frac{{\tau '}}{{{2^{{n_u}}}{k^2}\left\| {\boldsymbol{C}} \right\|_2^2 \times \left\| {\boldsymbol{B}} \right\|_2^2 \times \left\| {\boldsymbol{A}} \right\|_2^{2k}\det ({{\boldsymbol{\Sigma }}_{{u}}})}}} } \right) ,\\ &\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad{{\left\| {\boldsymbol{A}} \right\|}_2} > 1 \end{aligned}} \right.$$ (20)

    其中, ${ { {\boldsymbol{\Phi}} }} \left( \cdot \right)$为标准正态分布的概率分布函数.

    证明. 记${\tau '} = \left| {{{\boldsymbol{\Sigma }}_{{r}}}} \right|\left[ {\tau - g\left( k \right)} \right]$. 按照检测规则, 当$\| {{\boldsymbol{C}}\sum\nolimits_{i = 0}^{k - 1} {{{\boldsymbol{A}}^i}{\boldsymbol{B}}\left( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} - \Delta {\boldsymbol{u}}_{k - 1 - i}'} \right)} } \|_2^2 > \tau '$时, 可以检测重放攻击. 且攻击检测的概率为

    $$\begin{split} &{\rm{Prob}} \left( {\left\| {{\boldsymbol{C}}\sum\limits_{i = 0}^{k - 1} {{{\boldsymbol{A}}^i}{\boldsymbol{B}}\left( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} - \Delta {\boldsymbol{u}}_{k - 1 - i}'} \right)} } \right\|_2^2 > \tau '} \right) = \\ &\;\;1 - {\rm{Prob}} \left( {\left\| {{\boldsymbol{C}}\sum\limits_{i = 0}^{k - 1} {{{\boldsymbol{A}}^i}{\boldsymbol{B}} \left( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} - \Delta {\boldsymbol{u}}_{k - 1 - i}'} \right)} } \right\|_2^2 \leq\tau '} \right) \end{split} $$ (21)

    其中, ${\rm{Prob}}( \| {{\boldsymbol{C}}\sum\nolimits_{i = 0}^{k - 1} {{{\boldsymbol{A}}^i}{\boldsymbol{B}}( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} - \Delta {\boldsymbol{u}}_{k - 1 - i}'} )} }\|_2^2 \leq \tau ' )$为漏检率.

    由于

    $$\begin{split} & \left\| {{\boldsymbol{C}}\sum\limits_{i = 0}^{k - 1} {{{\boldsymbol{A}}^i}{\boldsymbol{B}}\left( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} - \Delta {\boldsymbol{u}}_{k - 1 - i}'} \right)} } \right\|_2^2 \leq\\ &\;\;\left\{ {\begin{aligned} &{k^2}\left\| {\boldsymbol{C}} \right\|_2^2 \times \left\| {\boldsymbol{B}} \right\|_2^2\times \left\| {\boldsymbol{A}} \right\|_2^2\times\\ &\mathop {\max }\limits_{i = 0, \cdots ,k - 1} \left( {\left\| {\Delta {{\boldsymbol{u}}_{k - 1 - i}} - \Delta {\boldsymbol{u}}_{k - 1 - i}'} \right\|_2^2} \right),\;{{{\left\| {\boldsymbol{A}} \right\|}_2} \leq 1} \\ &{k^2}\left\| {\boldsymbol{C}} \right\|_2^2 \times \left\| {\boldsymbol{B}} \right\|_2^2 \times \left\| {\boldsymbol{A}} \right\|_2^{2k}\times\\ &\mathop {\max }\limits_{i = 0, \cdots ,k - 1}\left( {\left\| {\Delta {{\boldsymbol{u}}_{k - 1 - i}} - \Delta {\boldsymbol{u}}_{k - 1 - i}'} \right\|_2^2} \right),\;{{{\left\| {\boldsymbol{A}} \right\|}_2} > 1} \end{aligned}} \right. \end{split} $$

    所以, 当${\left\| \boldsymbol{A} \right\|_2} \leq 1$时, 有

    $$\begin{split} &{\rm{Prob}} \left( {\left\| {{\boldsymbol B}\sum\limits_{i = 0}^{k - 1} {{{\boldsymbol{A}}^i}{\boldsymbol{B}} \left( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} - \Delta {\boldsymbol{u}}_{k - 1 - i}'} \right)} } \right\|_2^2 \leq \tau '} \right) \geq\\ &\;\;{\rm{Prob}}\Big( {k^2}\left\| {\boldsymbol{C}} \right\|_2^2 \times \left\| {\boldsymbol{B}} \right\|_2^2 \times \left\| {\boldsymbol{A}} \right\|_2^2\times\\ &\;\;\mathop {\max }\limits_{i = 0, \cdots ,k - 1}\left( {\left\| {\Delta {{\boldsymbol{u}}_{k - 1 - i}} - \Delta {\boldsymbol{u}}_{k - 1 - i}'} \right\|_2^2} \right) \leq \tau ' \Big) =\\ &\;\;{\rm{Prob}} \left( {{{\left\| {\Delta {{\boldsymbol{u}}_i} - \Delta {\boldsymbol{u}}_i'} \right\|}_2} \leq \sqrt {\frac{{\tau '}}{{{k^2}\left\| {\boldsymbol{C}} \right\|_2^2 \times \left\| {\boldsymbol{B}} \right\|_2^2 \times \left\| {\boldsymbol{A}} \right\|_2^2}}} } \right) \end{split} $$

    由于$\Delta {{\boldsymbol{u}}_k}$和$\Delta {\boldsymbol{u}}_k'$均服从$\left( {{0},{{\boldsymbol{\Sigma }}_{{u}}}} \right)$的正态分布, 所以$\Delta {{\boldsymbol{u}}_k} - \Delta {\boldsymbol{u}}_k'$服从$\left( {{0},2{{\boldsymbol{\Sigma }}_{{u}}}} \right)$的正态分布, 即

    $$\begin{split} &{\rm{Prob}} \left( {{{\left\| {\Delta {{\boldsymbol{u}}_i} - \Delta {\boldsymbol{u}}_i'} \right\|}_2} \leq \sqrt {\frac{{\tau '}}{{{k^2}\left\| {\boldsymbol{C}} \right\|_2^2 \times \left\| {\boldsymbol{B}} \right\|_2^2 \times \left\| {\boldsymbol{A}} \right\|_2^2}}} } \right) =\\ &\qquad {\rm{Prob}}\left( \frac{{{{\left\| {\Delta {{\boldsymbol{u}}_i} - \Delta {\boldsymbol{u}}_i'} \right\|}_2}}}{{\sqrt {\det (2{{\boldsymbol{\Sigma }}_{{u}}})} }} \leq\right.\\ &\qquad\left.\sqrt {\frac{{\tau '}}{{{k^2}\left\| {\boldsymbol{C}} \right\|_2^2 \times \left\| {\boldsymbol{B}} \right\|_2^2 \times \left\| {\boldsymbol{A}} \right\|_2^2\det (2{{\boldsymbol{\Sigma }}_{{u}}})}}} \right) =\\ & \qquad2{\boldsymbol{\Phi}} \left( {\sqrt {\frac{{\tau '}}{{{k^2}\left\| {\boldsymbol{C}} \right\|_2^2 \times \left\| {\boldsymbol{B}} \right\|_2^2 \times \left\| {\boldsymbol{A}} \right\|_2^2\det (2{{\boldsymbol{\Sigma }}_{{u}}})}}} } \right) - 1 \end{split} $$ (22)
    $$\begin{split} &{\rm{Prob}} \left( {\left\| {{\boldsymbol{C}}\sum\limits_{i = 0}^{k - 1} {{{\boldsymbol{A}}^i}{\boldsymbol{B}}\left( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} - \Delta {\boldsymbol{u}}_{k - 1 - i}'} \right)} } \right\|_2^2 \leq \tau '} \right) \geq\\ &\;\;2{\boldsymbol{\Phi}} \left( {\sqrt {\frac{{\tau '}}{{{2^{{n_u}}}{k^2}\left\| {\boldsymbol{C}} \right\|_2^2 \times \left\| {\boldsymbol{B}} \right\|_2^2 \times \left\| {\boldsymbol{A}} \right\|_2^2\det ({{\boldsymbol{\Sigma }}_{{u}}})}}} } \right) - 1, \\ &\qquad\qquad\qquad\qquad\qquad\quad\qquad\qquad\qquad {\left\| {\boldsymbol{A}} \right\|_2} \leq 1\\[-10pt] \end{split} $$ (23)

    同理可得, 当${\left\| {\boldsymbol{A}} \right\|_2} > 1$时,

    $$\begin{split} &{\rm{Prob}} \left( {\left\| {{\boldsymbol{C}}\sum\limits_{i = 0}^{k - 1} {{{\boldsymbol{A}}^i}{\boldsymbol{B}} \left( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} - \Delta {\boldsymbol{u}}_{k - 1 - i}'} \right)} } \right\|_2^2 \leq \tau '} \right) \geq\\ &\;\;2{\boldsymbol{\Phi}} \left( {\sqrt {\frac{{\tau '}}{{{2^{{n_u}}}{k^2}\left\| {\boldsymbol{C}} \right\|_2^2 \times \left\| {\boldsymbol{B}} \right\|_2^2 \times \left\| {\boldsymbol{A}} \right\|_2^{2k}\det ({{\boldsymbol{\Sigma }}_{{u}}})}}} } \right) -1,\\ &\qquad\qquad\qquad\qquad\quad\qquad\qquad\qquad\qquad {\left\| {\boldsymbol{A}} \right\|_2} > 1\\[-10pt] \end{split} $$ (24)

    结合式(21), 可得

    $$\begin{split} &{\rm{Prob}} \left( {\left\| {{\boldsymbol{C}}\sum\limits_{i = 0}^{k - 1} {{{\boldsymbol{A}}^i}{\boldsymbol{B}} \left( {\Delta {{\boldsymbol{u}}_{k - 1 - i}} - \Delta {\boldsymbol{u}}_{k - 1 - i}'} \right)} } \right\|_2^2 > \tau '} \right) \leq\\ &\;\;\left\{ {\begin{aligned} &2 - 2{\boldsymbol{\Phi}} \left( {\sqrt {\frac{{\tau '}}{{{2^{{n_u}}}{k^2}\left\| {\boldsymbol{C}} \right\|_2^2 \times \left\| {\boldsymbol{B}} \right\|_2^2 \times \left\| {\boldsymbol{A}} \right\|_2^2\det ({{{\boldsymbol{\Sigma}} }_{{u}}})}}} } \right),\\ &\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad{{\left\| {\boldsymbol{A}} \right\|}_2} \leq 1 \\ &2 - 2{\boldsymbol{\Phi }}\left( {\sqrt {\frac{{\tau '}}{{{2^{{n_u}}}{k^2}\left\| {\boldsymbol{C}} \right\|_2^2 \times \left\| {\boldsymbol{B}} \right\|_2^2 \times \left\| {\boldsymbol{A}} \right\|_2^{2k}\det ({{{\boldsymbol{\Sigma}} }_{{u}}})}}} } \right),\\ &\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad{{\left\| {\boldsymbol{A}} \right\|}_2} > 1 \end{aligned}} \right. \end{split} $$ (25)

    控制信号编码方法需要在系统的最优控制信号加入随机的控制编码信号, 从而造成了控制性能的损失.

    向控制信号多次添加编码信号后, 系统在$k$时刻的控制信号和状态估计分别记为${\boldsymbol{u}}_k^2$和${\hat{\boldsymbol x}}_{k\left| k \right.}^2$. 可以得到

    $$\begin{split} & {\hat{\boldsymbol x}}_{k\left| k \right.}^2 = {{{\hat{\boldsymbol x}}}_{k\left| k \right.}} + {\boldsymbol{B}}\Delta {{\boldsymbol{u}}_{k - 1}}\\ &{\boldsymbol{u}}_k^2 = {{\boldsymbol{u}}_k} +\left( {{\boldsymbol{KB}}\Delta {{\boldsymbol{u}}_{k - 1}} + \Delta {{\boldsymbol{u}}_k}} \right) \\ &{\hat{\boldsymbol x}}_{k + 1\left| {k + 1} \right.}^2 = {{{\hat{\boldsymbol x}}}_{k + 1\left| {k + 1} \right.}} + \left( {{\boldsymbol{A}} + {\boldsymbol{BK}}} \right){\boldsymbol{B}}\Delta {{\boldsymbol{u}}_{k - 1}} \;+\\ &\;\;\;\qquad\qquad{\boldsymbol{B}}\Delta {{\boldsymbol{u}}_k} \\ &{\boldsymbol{u}}_{k + 1}^2 = {{\boldsymbol{u}}_{k + 1}} + [ {\boldsymbol{K}}\left( {{\boldsymbol{A}} + {\boldsymbol{BK}}} \right){\boldsymbol{B}}\Delta {{\boldsymbol{u}}_{k - 1}}\;+ \\ &\;\;\;\;\;\qquad {\boldsymbol{KB}}\Delta {{\boldsymbol{u}}_k} + \Delta {{\boldsymbol{u}}_{k + 1}} ] \\ &\qquad\qquad\qquad\vdots \end{split} $$
    $$\begin{split} &{\boldsymbol{u}}_{k + n}^2 = {{\boldsymbol{u}}_{k + n}} \;+ \\ &\;\;\;\qquad\left( {\sum\limits_{i = 0}^n {{\boldsymbol{K}}{{\left( {{\boldsymbol{A}} + {\boldsymbol{BK}}} \right)}^i}{\boldsymbol{B}}\Delta {{\boldsymbol{u}}_{k + n - 1 - i}}} + \Delta {{\boldsymbol{u}}_{k + n}}} \right) \end{split} $$ (26)

    式(26)表明, 之前时刻向系统中添加的编码信号$ \cdots, \Delta {{\boldsymbol{u}}_{k - 2}},\Delta {{\boldsymbol{u}}_{k - 1}}$会影响下一时刻的最优控制信号${{\boldsymbol{u}}_k}$, 且编码信号的添加对控制信号有累积效应, 导致系统控制性能持续下降.

    为了分析本文所述编码方法造成的性能损失, 首先给出定理3.

    定理 3. 如式(1)所示的线性定常系统, 在向系统控制信号中多次添加编码信号$\Delta {{\boldsymbol{u}}_i},\;{i = 1, \cdots ,k} $时, 本文所提控制编码方法下, 系统$k$时刻的控制信号只与当前时刻加入的编码信号$\Delta {{\boldsymbol{u}}_k}$有关, 而与历史编码信号$\Delta {{\boldsymbol{u}}_i}, \; {i = 1, \cdots ,k - 1} $无关.

    证明. 由第1.1节可知, 系统在$k$时刻的最优控制信号为

    $$\begin{split} {{\boldsymbol{u}}_k} =\;& {\boldsymbol{K}}{{\hat{\boldsymbol x}}_{k\left| k \right.}}{\rm{ }}= {\boldsymbol{K}}[ \left( {{{\boldsymbol{I}}_n} - {\boldsymbol{GC}}} \right)( {\boldsymbol{A}} \;+\\ &{\boldsymbol{BK}} ){{{\hat{\boldsymbol x}}}_{k - 1\left| {k - 1} \right.}} + {\boldsymbol{G}}{{\boldsymbol{y}}_k} ] \end{split}$$ (27)

    不失一般性, 假设从$k - 1$时刻开始向控制信号中添加噪声信号. 采用本文方法后作用到系统上的控制信号记为${\boldsymbol{u}}_k^1$. 式(9)证明此时状态估计端采用的测量值${\boldsymbol{y}}_k^{{e}}$等于未加任何噪声信号时的${{\boldsymbol{y}}_k}$. 同时在向系统添加编码信号时, 状态估计器(2)仍可直接使用最优控制信号${{\boldsymbol{u}}_{k - 1}}$, 此时的估计状态${{\hat{\boldsymbol x}}_{k\left| {k - 1} \right.}}$与系统未加控制编码信号$\Delta {{\boldsymbol{u}}_{k - 1}}$时相同. 结合式(27)可知, 采用本文所提方法后控制器产生的控制信号与未加任何噪声信号时相同. 此时, 作用到系统上的信号${\boldsymbol{u}}_k^1 = {{\boldsymbol{u}}_k} + \Delta {{\boldsymbol{u}}_k}$, 仅受当前时刻$\Delta {{\boldsymbol{u}}_k}$影响.

    定理 4. 如式(1)系统, 定义性能指标如式(4), 则本文方法下, 系统的平均性能损失不大于单次控制编码信号造成性能损失的最大值, 且小于在向系统多次添加编码信号$\Delta {{\boldsymbol{u}}_i},\;{i = 1, \cdots ,k} $时系统的性能损失.

    证明. 如第1.1节所述, 记${{\boldsymbol{x}}_k}$为未加$\Delta {{\boldsymbol{u}}_k}$时的正常系统真实状态, ${{\boldsymbol{e}}_k}$为未加$\Delta {{\boldsymbol{u}}_k}$时正常系统的状态估计误差, ${{\boldsymbol{\zeta }}_k}$为添加了$\Delta {{\boldsymbol{u}}_k}$前后系统的真实状态之差. 现构造如下增广状态向量${{\boldsymbol{\tilde x}}_k}$

    $$\begin{split} &{{{\boldsymbol{\tilde x}}}_k} = \left\{ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_k}} \\ {{{\boldsymbol{\zeta }}_k}} \\ {{{\boldsymbol{e}}_k}} \end{array}} \right\},\;\;{{\boldsymbol{\varphi }}_k} = \left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{w}}_k}} \\ {{\boldsymbol{B}}\Delta {{\boldsymbol{u}}_k}} \\ {\left( {{{\boldsymbol{B}}_n} - {\boldsymbol{GC}}} \right){{\boldsymbol{w}}_k} - {\boldsymbol{G}}{{\boldsymbol{v}}_{k + 1}}} \end{array}} \right] \end{split} $$
    $$\begin{split} &{{{\boldsymbol{\tilde x}}}_{k + 1}} = \left[ {\begin{array}{*{20}{c}} {{\boldsymbol{A}} + {\boldsymbol{BK}}}&{\boldsymbol 0}&{ - {\boldsymbol{BK}}} \\ {\boldsymbol 0}&{\boldsymbol{A}}&{\boldsymbol 0} \\ {\boldsymbol 0}&{\boldsymbol 0}&{{\boldsymbol{A}} - {\boldsymbol{GCA}}} \end{array}} \right]{{{\boldsymbol{\tilde x}}}_k} + {{\boldsymbol{\varphi }}_k} =\\ &\qquad\;\;\;\; \; {\boldsymbol \Theta }{{{\boldsymbol{\tilde x}}}_k} + {{\boldsymbol{\varphi }}_k} \\[-13pt] \end{split} $$ (28)

    且${{\boldsymbol{\tilde x}}_k}$的协方差满足

    $${\rm{cov}} \left( {{\boldsymbol{\tilde x}}} \right) = {\boldsymbol\Theta }{\rm{cov}} \left( {{\boldsymbol{\tilde x}}} \right){{\boldsymbol \Theta }^{\rm{T}}} + {\rm E}\left[ {{\boldsymbol{\varphi }}{{\boldsymbol{\varphi }}^{\rm{T}}}} \right]$$ (29)

    向系统添加$\Delta {{\boldsymbol{u}}_k}$后, 系统状态由${{\boldsymbol{x}}_k}$变为${\boldsymbol{x}}_k^*$, 此时系统性能指标如式(30)所示 (见本页下方).

    由于

    $$\begin{split} J =\;& \mathop {\lim }\limits_{T \to \infty } \frac{1}{T}\sum\limits_{k = 1}^{T - 1} {\rm{E}} \Big\{ {{\boldsymbol{x}}{{_k^*}^{\rm{T}}}{\boldsymbol{Qx}}_k^*} + ( {{\boldsymbol{u}}_k} \;+\\ &\Delta {{\boldsymbol{u}}_k} )^{\rm{T}}{\boldsymbol{R}}\left( {{{\boldsymbol{u}}_k} + \Delta {{\boldsymbol{u}}_k}} \right) \Big\} \leq\\ &\mathop {\max }\limits_{k = 1, \cdots ,{{T}} - 1} {\rm{E}} \Big\{ {{\boldsymbol{x}}{{_k^*}^{\rm{T}}}{\boldsymbol{Qx}}_k^*} + ( {{\boldsymbol{u}}_k} \;+\\ &\Delta {{\boldsymbol{u}}_k} )^{\rm{T}}{\boldsymbol{R}}\left( {{{\boldsymbol{u}}_k} + \Delta {{\boldsymbol{u}}_k}} \right) \Big\} \end{split} \tag{31} $$

    所以本文方法的平均性能损失不大于单次控制编码造成的性能损失最大值.

    记多次向控制信号中添加噪声信号方法的性能指标为${J_1}$, 可得式(32) (见本页下方).

    所以, 在给定的${{\boldsymbol{\Sigma }}_{{u}}}$相同的情况下, 本文方法的性能损失小于向系统中多次添加控制噪声的方法.

    由式(17)可以看出, 为了有效地检测出攻击, 加入系统中的$\Delta {{\boldsymbol{u}}_k}$应越大越好. 然而, 此时的系统性能损失也就越大. 为了在二者之间找到一个平衡, 提出定理5.

    定理 5. 针对如上假设检验, 记攻击检测误报率(False alarm rate, FAR)为$\alpha $, 检测率(Alarm detection rate, ADR)为$\beta $, 正常情况下与受到重放攻击后检测信号的协方差分别为${{\boldsymbol{\Sigma }}_{{r}}}$和${\boldsymbol{\Sigma }}_{{r}}^{\rm{a}}$, 则编码信号的协方差${{\boldsymbol{\Sigma }}_{{u}}}$和检测阈值$\tau $满足如下最优化问题:

    $$\begin{split} &\min {\rm{tr}} \left( {{\rm{cov}} \left( {{\boldsymbol{\tilde x}}} \right){\boldsymbol{\Omega }} + {{\boldsymbol{\Sigma }}_{{u}}}{\boldsymbol{R}}} \right) \\ & {\rm{s}}{\rm{.t}}{\rm{.}}\left\{ {\begin{aligned} &{{\boldsymbol{\Sigma }}_{{r}}^{\rm{a}} = {{\boldsymbol{\Sigma }}_{{r}}} + 2{\boldsymbol{CH}}{{\boldsymbol{C}}^{\rm{T}}},{\boldsymbol{H}} - {\boldsymbol{AH}}{{\boldsymbol{A}}^{\rm{T}}} = {\boldsymbol{B}}{{\boldsymbol{\Sigma }}_{{u}}}{{\boldsymbol{B}}^{\rm{T}}}} \\ &{{\frac{{\lambda _{\max }}\left( {{{\boldsymbol{\Sigma }}_{{r}}}} \right)\tau } {{\lambda _{\min }}\left( {\boldsymbol{\Sigma }_{{r}}^{\rm{a}}} \right) }\leq \chi \beta },\;\;\tau \geq \chi \alpha } \\ &{{\rm{cov}} \left( {{\boldsymbol{\tilde x}}} \right) = {\boldsymbol\Theta }{\rm{cov}} \left( {{\boldsymbol{\tilde x}}} \right){{\boldsymbol\Theta }^{\rm{T}}} + {\rm E}\left[ {{\boldsymbol{\varphi }}{{\boldsymbol{\varphi }}^{\rm{T}}}} \right],\;\;{{\boldsymbol{\Sigma }}_{{u}}} > 0} \end{aligned}} \right. \end{split} $$ (33)

    证明. 由第 2.2节可知, 正常情况下检测信号的协方差${{\boldsymbol{\Sigma }}_{{r}}} = {\boldsymbol{CP}}{{\boldsymbol{C}}^{\rm{T}}} + {\boldsymbol{V}}$, 系统遭受重放攻击后, 协方差${\boldsymbol{\Sigma }}_{{r}}^{\rm{a}}$为

    $$\begin{split} &\mathop {\lim }\limits_{k \to \infty } {\rm{cov}} \left( {{\boldsymbol{r}}_k^{\rm{a}}} \right) = \mathop {\lim }\limits_{k \to \infty } {\rm{cov}} \left( {{\boldsymbol{r}}_k'} \right) + \sum\limits_{i = 0}^\infty {{\rm{cov}} \left( {{\boldsymbol{C}}{{\boldsymbol{A}}^i}{\boldsymbol{B}}{{\boldsymbol{\Phi }}_i}} \right)}=\\ &\qquad{\boldsymbol{CP}}{{\boldsymbol{C}}^{\rm{T}}} + {\boldsymbol{V}} + \sum\limits_{i = 0}^\infty {{\rm{cov}} \left( {{\boldsymbol{C}}{{\boldsymbol{A}}^i}{\boldsymbol{B}}{{\boldsymbol{\Phi }}_i}} \right)} =\\ & \qquad{{\boldsymbol{\Sigma }}_{{r}}} + 2\sum\limits_{i = 0}^\infty {{\boldsymbol{C}}{{\boldsymbol{A}}^i}{\boldsymbol{B}}{{\boldsymbol{\Sigma }}_{{u}}}} {{\boldsymbol{B}}^{\rm{T}}}{\left( {{{\boldsymbol{A}}^i}} \right)^{\rm{T}}}{{\boldsymbol{C}}^{\rm{T}}} \\[-15pt] \end{split} $$ (34)
    $$\begin{split} J =\;& \mathop {\lim }\limits_{T \to \infty } \frac{1}{T}\sum\limits_{k = 1}^{T - 1} {{\rm{E}} \left\{ {{\boldsymbol{x}}{{_k^*}^{\rm{T}}}{\boldsymbol{Qx}}_k^* + {{\left( {{{\boldsymbol{u}}_k} + \Delta {{\boldsymbol{u}}_k}} \right)}^{\rm{T}}}{\boldsymbol{R}}\left( {{{\boldsymbol{u}}_k} + \Delta {{\boldsymbol{u}}_k}} \right)} \right\}}= \\ &\mathop {\lim }\limits_{T \to \infty } \frac{1}{T}\sum\limits_{k = 1}^{T - 1} {{\rm{E}} \left\{ {{{\left( {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_k}} \\ {{{\boldsymbol{\zeta }}_k}} \\ {{{\boldsymbol{e}}_k}} \end{array}} \right)}^{\rm{T}}}\underbrace {\left[ {\begin{array}{*{20}{c}} {{\boldsymbol{Q + }}{{\boldsymbol{K}}^{\rm{T}}}{\boldsymbol{RK}}}&{\boldsymbol{Q}}&{ - {{\boldsymbol{K}}^{\rm{T}}}{\boldsymbol{RK}}} \\ {\boldsymbol{Q}}&{\boldsymbol{Q}}&{\boldsymbol 0} \\ { - {{\boldsymbol{K}}^{\rm{T}}}{\boldsymbol{RK}}}&{\boldsymbol 0}&{{{\boldsymbol{K}}^{\rm{T}}}{\boldsymbol{RK}}} \end{array}} \right]}_{\boldsymbol{\Omega }}\left( {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_k}} \\ {{{\boldsymbol{\zeta }}_k}} \\ {{{\boldsymbol{e}}_k}} \end{array}} \right){\rm{ + }}\Delta {\boldsymbol{u}}_k^{\rm{T}}{\boldsymbol {BR}}\Delta {{\boldsymbol{u}}_k}} \right\}}= \\ & \mathop {\lim }\limits_{T \to \infty } \frac{1}{T}\sum\limits_{k = 1}^{T - 1} {{\rm{E}} \left\{ {{\rm{tr}} \left( {{{\boldsymbol{\tilde x}}}_k^{\rm{T}}{\boldsymbol{\Omega }}{{{\boldsymbol{\tilde x}}}_k} + \Delta {\boldsymbol{u}}_k^{\rm{T}}{\boldsymbol{R}}\Delta {{\boldsymbol{u}}_k}} \right)} \right\}} = {\rm{tr}} \left( {{\rm{cov}} \left( {{\boldsymbol{\tilde x}}} \right){\boldsymbol{\Omega }} + {{\boldsymbol{\Sigma }}_{{u}}}{\boldsymbol{R}}} \right) \end{split}\tag{30} $$
    $$\begin{split} {J_1} = \;&\mathop {\lim }\limits_{T \to \infty } \frac{1}{T}\sum\limits_{k = 1}^{T - 1} {\rm{E}} \left\{ {{\left( {{{\boldsymbol{x}}_k} + {{\boldsymbol{\zeta }}_k}} \right)}^{\rm{T}}}{\boldsymbol{Q}}\left( {{{\boldsymbol{x}}_k} + {{\boldsymbol{\zeta }}_k}} \right) { + {{\left[ {{\boldsymbol{K}}\left( {{{\boldsymbol{x}}_k} + {{\boldsymbol{\zeta }}_k} - {{\boldsymbol{e}}_k}} \right) + \Delta {{\boldsymbol{u}}_k}} \right]}^{\rm{T}}}{\boldsymbol{R}}\left[ {{\boldsymbol{K}}\left( {{{\boldsymbol{x}}_k} + {{\boldsymbol{\zeta }}_k} - {{\boldsymbol{e}}_k}} \right) + \Delta {{\boldsymbol{u}}_k}} \right]} \right\}= \\ & \mathop {\lim }\limits_{T \to \infty } \frac{1}{T}\sum\limits_{k = 1}^{T - 1} {\rm{E}} \left\{ {\rm{tr}} \left[ {{{\boldsymbol{\tilde x}}}_k}^{\rm{T}}\left( {{\boldsymbol{\Omega }}{\rm{ + }}\underbrace {\left[ {\begin{array}{*{20}{c}} {\boldsymbol 0}&{{{\boldsymbol{K}}^{\rm{T}}}{\boldsymbol{RK}}}&{\boldsymbol 0} \\ {{{\boldsymbol{K}}^{\rm{T}}}{\boldsymbol{RK}}}&{{{\boldsymbol{K}}^{\rm{T}}}{\boldsymbol{RK}}}&{ - {{\boldsymbol{K}}^{\rm{T}}}{\boldsymbol{RK}}} \\ {\boldsymbol 0}&{ - {{\boldsymbol{K}}^{\rm{T}}}{\boldsymbol{RK}}}&{\boldsymbol 0} \end{array}} \right]}_{\boldsymbol{\Lambda }}} \right){{{\boldsymbol{\tilde x}}}_k} { + \Delta {\boldsymbol{u}}_k^{\rm{T}}{\boldsymbol{R}}\Delta {{\boldsymbol{u}}_k}} \right] \right\}= \\ & {\rm{tr}} \left[ {{\rm{cov}} \left( {{\boldsymbol{\tilde x}}} \right)\left( {{\boldsymbol{\Omega }} + {\boldsymbol{\Lambda }}} \right) + {{\boldsymbol{\Sigma }}_{{u}}}{\boldsymbol{R}}} \right] = J + {\rm{tr}} \left( {{\rm{cov}} \left( {{\boldsymbol{\tilde x}}} \right){\boldsymbol{\Lambda }}} \right) \end{split}\tag{32} $$

    记${\boldsymbol{H}} = \sum\nolimits_{i = 0}^\infty {{{\boldsymbol{A}}^i}{\boldsymbol{B}}{{\boldsymbol{\Sigma }}_{{u}}}{{\boldsymbol{B}}^{\rm{T}}}{{\left( {{{\boldsymbol{A}}^i}} \right)}^{\rm{T}}}}$, 则${\boldsymbol{H}}$满足如下黎卡提方程:

    $${\boldsymbol{H}} - {\boldsymbol{AH}}{{\boldsymbol{A}}^{\rm{T}}} = {\boldsymbol{B}}{{\boldsymbol{\Sigma }}_{{u}}}{{\boldsymbol{B}}^{\rm{T}}}$$ (35)

    可以得到

    $${\boldsymbol{\Sigma }}_{{r}}^{\rm{a}} = {{\boldsymbol{\Sigma }}_{{r}}} + 2{\boldsymbol{CH}}{{\boldsymbol{C}}^{\rm{T}}}$$ (36)

    根据检测要求, 误检率$R_{\rm{FAR}} $需满足

    $${R_{{\rm{FAR}}}} = {\rm{Prob}}\left( {{\boldsymbol{r}}_k^{\rm{T}}{\boldsymbol{\Sigma }}_{{r}}^{ - 1}{{\boldsymbol{r}}_k} > \tau \left| {{{\rm{H}}_0}} \right.} \right) \leq \alpha $$ (37)

    在假设${{\rm{H}}_0}$成立的情况下, ${\boldsymbol{r}}_k^{\rm{T}}{\boldsymbol{\Sigma }}_{{r}}^{ - 1}{{\boldsymbol{r}}_k}$服从标准${\chi ^2}$分布, 因此, 若$\tau \geq \chi \alpha$成立, 式(37)成立.

    此外, 检测率$R_{\rm{ADR}} $需满足

    $${R_{{\rm{ADR}}}} = {\rm{Prob}}\left( {{\boldsymbol{r}}_k^{\rm{T}}{\boldsymbol{\Sigma }}_{{r}}^{ - 1}{{\boldsymbol{r}}_k} > \tau \left| {{{\rm{H}}_1}} \right.} \right) \geq \beta $$ (38)

    结合${\boldsymbol{r}}_k^{\rm{T}}{( {{\boldsymbol{\Sigma }}_{{r}}^{\rm{a}}} )^{ - 1}}{{\boldsymbol{r}}_k} \leq ( {{{{\lambda _{\max }}( {{{\boldsymbol{\Sigma }}_{{r}}}} )} / {{\lambda _{\min }}( {{\boldsymbol{\Sigma }}_{{r}}^{\rm{a}}} )}}} ){\boldsymbol{r}}_k^{\rm{T}}{\boldsymbol{\Sigma }}_{{r}}^{ - 1}{{\boldsymbol{r}}_k}$, 有

    $$\begin{split} &{\rm{Prob}}\left( {{\boldsymbol{r}}_k^{\rm{T}}{\boldsymbol{\Sigma }}_{{r}}^{ - 1}{{\boldsymbol{r}}_k} > \tau \left| {{{\rm{H}}_1}} \right.} \right) \geq\\ &\quad{\rm{Prob}} \left( {\left( \frac{{\lambda _{\min }}\left( {{\boldsymbol{\Sigma }}_{{r}}^{\rm{a}}} \right)} {{\lambda _{\max }}\left( {{{\boldsymbol{\Sigma }}_{{r}}}} \right)} \right){\boldsymbol{r}}_k^{\rm{T}}{{\left( {{\boldsymbol{\Sigma }}_{{r}}^{\rm{a}}} \right)}^{ - 1}}{{\boldsymbol{r}}_k} > \tau \left| {{{\rm{H}}_1}} \right.} \right) \end{split} $$ (39)

    由式(39)可以看出, 式(38)成立只需

    $${\rm{Prob}}\Bigg( \left( \frac{{\lambda _{\min }}\left( {{\boldsymbol{\Sigma }}_{{r}}^{\rm{a}}} \right)} {{\lambda _{\max }}\left( {{{\boldsymbol{\Sigma }}_{{r}}}} \right)} \right){\boldsymbol{r}}_k^{\rm{T}}{{\left( {{\boldsymbol{\Sigma }}_{{r}}^{\rm{a}}} \right)}^{ - 1}}{{\boldsymbol{r}}_k} >\tau | {{{\rm{H}}_1}} \Bigg) \ge \beta $$ (40)

    在假设${{\rm{H}}_1}$成立的情况下, ${\boldsymbol{r}}_k^{\rm{T}}{\left( {{\boldsymbol{\Sigma }}_{{r}}^{\rm{a}}} \right)^{ - 1}}{{\boldsymbol{r}}_k}$服从标准${\chi ^2}$分布, 因此, 式(40)成立只需${{\lambda _{\max }}\left( {{{\boldsymbol{\Sigma }}_{{r}}}} \right)\tau } / {\lambda _{\min }}\left( {{\boldsymbol{\Sigma }}_{{r}}^{\rm{a}}} \right) \leq \chi \beta$. 此外, 第3.1节中, 式(30)和式(32)已经给出采用本文方法下的性能指标表达式.

    在本节中, 使用MATLAB的网络控制系统仿真平台Truetime进行实验. 以直流电机为例进行仿真验证, 根据电路原理和刚体旋转定律, 可得到如下状态空间模型

    $$\begin{split} &\left[ {\begin{array}{*{20}{c}} {{{{\boldsymbol{\dot x}}}_1}} \\ {{{{\boldsymbol{\dot x}}}_2}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {\dfrac{{{\rm{d}}i}}{{{\rm{d}}t}}} \\ {\dfrac{{{\rm{d}}w}}{{{\rm{d}}t}}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} { - \dfrac{{R}}{{L}}}&{ - \dfrac{{{{K}_{b}}}}{{L}}} \\ {\dfrac{{{{K}_{a}}}}{{J}}}&{-\dfrac{{B}}{J}} \end{array}} \right] \left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_1}} \\ {{{\boldsymbol{x}}_2}} \end{array}} \right] + \left[ {\begin{array}{*{20}{c}} {\dfrac{{\rm{1}}}{{L}}} \\ 0 \end{array}} \right]{\boldsymbol{u}} \\ & y = \left[ {\begin{array}{*{20}{c}} 1&0 \\ 0&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_1}} \\ {{{\boldsymbol{x}}_2}} \end{array}} \right] \\[-15pt] \end{split} $$ (41)

    采用文献[21]中的参数, 将上述系统按采样时间$0.1\;{\rm {s}}$进行离散化, 同时, 考虑过程噪声${{\boldsymbol{w}}_k}$和测量噪声${{\boldsymbol{v}}_k}$, 可得

    $$\begin{split} &{{\boldsymbol{x}}_{k + 1}} = \left[ {\begin{array}{*{20}{c}} { - 0.0019}&{ - 0.0039} \\ {0.4692}&{0.9731} \end{array}} \right] {{\boldsymbol{x}}_k}+ \left[ {\begin{array}{*{20}{c}} {0.2439} \\ {1.61} \end{array}} \right] {{\boldsymbol{u}}_k} + {{\boldsymbol{w}}_k} \\ & {{\boldsymbol{y}}_k} = \left[ {\begin{array}{*{20}{c}} 1&0 \\ 0&1 \end{array}} \right]{{\boldsymbol{x}}_k} + {{\boldsymbol{v}}_k} \\[-20pt] \end{split} $$ (42)

    其中, ${{\boldsymbol{w}}_k} \sim {\rm{MVN}}\left( {\boldsymbol{0},{\boldsymbol{W}}} \right)$, ${{\boldsymbol{v}}_k} \sim {\rm{MVN}}\left( {\boldsymbol{0},{\boldsymbol{V}}} \right)$, 且协方差矩阵${\boldsymbol{W}} = {\boldsymbol{V}} = \rm{diag}\left\{ {0.001,0.001} \right\}$.

    为了确保闭环系统稳定, 基于第1.1节中的滤波原理和控制理论, 滤波器和控制器的稳态增益为${\boldsymbol{G}} = \left[ {\begin{aligned} {0.5000}\;{ - 0.0005} \\ { - 0.0005}\;\;{0.6305}\; \end{aligned}} \right]$, ${\boldsymbol{K}} = \left[ {\begin{aligned} {-0.2190}\;\;{-0.4542} \end{aligned}} \right]$. 此时, 系统参数矩阵${\boldsymbol{\Psi }} = \left[ {\begin{aligned} { - 0.0277}\;\;{ - 0.0424} \\ {0.0584}\;\;\;{0.0894} \;\end{aligned}} \right]$. 显然, ${\boldsymbol{\Psi }}$的特征值均小于1, 无法利用${\chi ^2}$检测器检测重放攻击. 利用本文方法, 令${\boldsymbol{Q}} = {\boldsymbol{I}}_2$和$R = 1$, ${{\boldsymbol{I}}_2}$为二维单位矩阵. 设置检测率$\beta = 0.75$, 误报率$\alpha = 0.05$. 根据误报率要求, 通过计算系统在未受攻击情况下检测函数的值确定$\tau = 6$. 解式(33)的最优化问题可得所需控制信号噪声的方差为${{{\boldsymbol{\Sigma}} }_{{u}}} = 0.4353$. 此时, 由式(30)可知, 系统性能损失为$J = 23.2778$. 图2给出了正常情况下的检测函数图, 可以看出, 系统未遭受重放攻击时检测函数处于给定阈值范围内.

    图 2  直流电机系统正常运行时的检测函数曲线
    Fig. 2  The detection function curve of the normal DC motor system

    现假设攻击场景1为: 前60 s系统运行正常, 攻击者记录了20.1 s ~ 60 s的测量数据, 并在60.1 s开始重放记录的数据; 假设攻击场景2为: 系统从70.1 s开始重放40.1 s ~ 70 s的数据. 检测结果如图3图4所示. 由图3图4中可以看出, 重放攻击发生后, 系统检测函数明显增大并且很快超过了正常阈值, 由此可判定系统遭受了攻击. 并且由图中曲线可见, 针对不同重放数据长度和重放时间下的攻击, 本文方法均具有良好的检测性能, 检测率分别为83.75%和81.33%, 误报率分别为3.15%和4.3%. 对比设置检测率$\beta = 0.75$和误报率$\alpha = 0.05$可知, 本文方法的最终检测率高于设定值, 而最终误报率低于设定值. 这主要是因为在式(17)中计算受到攻击后的检测函数值时, 忽略了交叉项, 导致理论结果偏于保守. 因此, 实验所得攻击检测率略大于理论结果.

    图 3  攻击场景1下的检测函数曲线
    Fig. 3  The detection function curve under attack scenario 1
    图 4  攻击场景2下的检测函数曲线
    Fig. 4  The detection function curve under attack scenario 2

    此外, 本文考虑了系统遭受非连续重放攻击的情况. 假设攻击场景3为: 攻击者在第40.1 s和第70.1 s分别进行10 s的测量值重放, 检测结果如图5所示, 检测率为82.50%, 误报率为4.75%. 可以看出, 本文所提方法对于非连续重放攻击也具有良好的检测性能.

    图 5  攻击场景3下的检测函数曲线
    Fig. 5  The detection function curve under attack scenario 3

    为了进一步验证本文所提方案的有效性, 将本文方法与文献[15, 17-18]中的方案进行对比, 实验结果如图6表1所示. 由于这些论文中并没有详细给出检测率与所加水印信号方差的具体关系, 因此以下结果是重复50次实验后得到的平均值. 从图中可以看出, 随着检测率的增加, 不同方法的性能指标损失都逐渐增大, 但在相同检测率要求下, 本文方法的性能损失远小于对比方法.

    图 6  本文所提的方法与不同方法的性能损失函数曲线对比图
    Fig. 6  Comparison between the performance index of schemes in this paper and other papers
    表 1  噪声方差及性能指标比较
    Table 1  Comparison of noise variance and performance index of different schemes
    $R_{\rm{ADR}} $ (%)${ {{\boldsymbol{\Sigma}} }_{{u} } }$$J$
    本文方法750.435323.2778
    800.545029.1433
    文献[17]方法750.761548.9837
    800.996464.0928
    文献[18]方法71.021.001064.3244
    81.20 1.5000 96.4850
    文献[15]方法752.7166174.7383
    803.4018218.8113
    下载: 导出CSV 
    | 显示表格

    考虑系统可能受到非连续重放攻击的情况, 与文献[20]方法进行简单比较. 由于两种方法的前提条件不相同, 因此, 实验中仅在保证性能损失相同的情况下比较检测率结果. 采用文献[20]中所用模型, 通过采样周期${T_{{\rm{sp}}}} = 2~{\rm{s}}$, 将4倍水箱控制系统离散化而得到系统参数. 攻击者每次发动攻击的持续时间为: ${T_s} = {T_0} + X$, 其中, ${T_0}$为基本时长, $X > 0$为可控变量, 且$X$的概率密度函数为$f\left( X \right) = \xi {{\rm{e}}^{ - \xi X}}$. 现选取非连续攻击模型参数$\xi = {1 / 5},{{{T}}_0} = 10$, 比较${\gamma _1} = {\gamma _2}{\gamma _3}$时的情况. 求取100次仿真实验的平均结果, 检测率定义为攻击时间内检测器报警次数的百分比. 当采用周期水印策略为${q / p} = 0.5$时, 即有50%的时刻控制信号加入随机噪声, 此时系统性能指标值为$J = 25\;308$, 攻击检测率约为76% ~ 77%左右. 采用本文方法在保证相同性能指标的前提下, 检测率为77.50%. 采用周期水印策略为${q / p} = 0.8$时, 系统性能指标值为$J = 40\;404$, 攻击检测率约为86% ~ 87%. 采用本文方法, 检测率为87.56%. 文献[20]主要针对非连续重放攻击制定了攻击时间持续模型, 并根据此攻击模型制定最佳周期水印策略, 在给定允许牺牲系统性能范围内调整加入控制信号的噪声的周期, 以求达到最高攻击检测率的同时控制性能损失较小. 文献[20]所得结果是针对特定攻击模型下添加编码信号的最优周期, 即控制成本也为最优. 而在保证相同控制性能指标损失的前提下, 本文仅采用均匀概率向控制信号加入编码, 检测率略优于文献[20]所提方案, 由此也可证明本文方法的有效性和优越性.

    本文考虑了CPS中重放攻击的检测问题, 提出一种新的控制信号编码检测方法. 证明了该方法对于重放攻击的可检测性和检测率上界. 在保证较高检测效率的同时降低了对系统性能的影响, 同时, 给出了平衡检测效率和所需系统性能的最优化问题. 实验结果表明, 此方法能在牺牲较小系统性能的情况下有效地检测到重放攻击的发生. 本文方法也可以与周期水印方法、随机水印方法等相结合, 通过减少控制编码信号加入的次数, 达到进一步降低系统性能损失的目的.

  • 图  1  联盟链应用场景

    Fig.  1  Alliance chain application scenario

    图  2  RBFT算法示意图

    Fig.  2  RBFT algorithm diagram

    图  3  有序承诺序列

    Fig.  3  Ordered commitment sequence

    图  4  最小连通性网络

    Fig.  4  Minimum connectivity network

    图  5  状态一致性概率曲线

    Fig.  5  State consistency probability curve

    图  6  网络拓扑图

    Fig.  6  Network topology

    图  7  带宽占用量矩形图

    Fig.  7  Bandwidth occupation histogram

    图  8  带宽占用量变化曲线图

    Fig.  8  Bandwidth occupation curves

    图  9  吞吐率

    Fig.  9  throughput

    表  1  拜占庭容错算法性能对比

    Table  1  The performance comparison of Byzantine fault tolerant algorithm

    方案抗自适应攻击鲁棒性可扩
    展性
    通信复杂度
    PBFT[8]×××$ {\rm O}({n^2}) $
    Tendermint[16]×××$ {\rm O}({n^2}) $
    Algorand[19]×$ {\rm O}({n^2}) $
    SBFT[14]××$ {\rm O}(n) $
    HotStuff[15]××$ {\rm O}(n) $
    RBFT$ {\rm O}((f + 1)n) $
    注:× 代表不支持该性能(或差),√ 代表支持该性能(或强).
    下载: 导出CSV

    表  2  链码接口

    Table  2  Chain code interface

    接口名接口功能接口接收参数
    Open开户账户名、金额
    Query查询账户名
    Invoke转账账户名、账户名、金额
    Delete销户账户名
    下载: 导出CSV
  • [1] 袁勇, 王飞跃. 区块链技术发展现状与展望. 自动化学报, 2016, 42(4): 481-494 doi: 10.16383/j.aas.2016.c160158

    Yuan Yong, Wang Fei-Yue. Blockchain: The state of the art and future trends. Acta Automatica Sinica, 2016, 42(4): 481-494 doi: 10.16383/j.aas.2016.c160158
    [2] Nakamoto S. Bitcoin: A peer-to-peer electronic cash system [Online], available: https://pdos.csail.mit.edu/6.824/papers/bitcoin.pdf, October 31, 2008
    [3] 袁勇, 倪晓春, 曾帅, 王飞跃. 区块链共识算法的发展现状与展望. 自动化学报, 2018, 44(11): 2011-2022 doi: 10.16383/j.aas.2018.c180268

    Yuan Yong, Ni Xiao-Chun, Zeng Shuai, Wang Fei-Yue. Blockchain consensus algorithms: The state of the art and future trends. Acta Automatica Sinica, 2018, 44(11): 2011-2022 doi: 10.16383/j.aas.2018.c180268
    [4] Gervais A, Karame G O, Wüst K, Glykantzis V, Ritzdorf H, Capkun S. On the security and performance of proof of work blockchains. In: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. Vienna, Austria: ACM, 2016. 3−16
    [5] Vasin P. Blackcoin's proof-of-stake protocol v2 [Online], available: https://blackcoin.org/blackcoin-pos-protocol-v2-whitepaper.pdf, September 1, 2014
    [6] Larimer D. Delegated proof-of-stake (DPOS) [Online], available: https://bitcointalk.org/index.php?topic=558316.0, April 3, 2014
    [7] Lamport L, Shostak R, Pease M. The Byzantine generals problem. ACM Transactions on Programming Languages and Systems, 1982, 4(3): 382-401 doi: 10.1145/357172.357176
    [8] Castro M, Liskov B. Practical byzantine fault tolerance. In: Proceedings of the 3rd Symposium on Operating Systems Design and Implementation. New Orleans, USA: USENIX Association, 1999. 173−186
    [9] Kotla R, Alvisi L, Dahlin M, Clement A, Wong E. Zyzzyva: Speculative byzantine fault tolerance. ACM SIGOPS Operating Systems Review, 2007, 41(6): 45-58 doi: 10.1145/1323293.1294267
    [10] Xu H, Long Y, Liu Z Q, Liu Z, Gu D W. Dynamic practical Byzantine fault tolerance. In: Proceedings of the IEEE Conference on Communications and Network Security (CNS). Beijing, China: IEEE, 2018. 1−8
    [11] Correia M, Neves N F, Verissimo P. How to tolerate half less one byzantine nodes in practical distributed systems. In: Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems. Florianopolis, Brazil: IEEE, 2004. 174−183
    [12] Veronese G S, Correia M, Bessani A N, Lung L C, Verissimo P. Efficient byzantine fault-tolerance. IEEE Transactions on Computers, 2013, 62(1): 16-30 doi: 10.1109/TC.2011.221
    [13] Cowling J A, Myers D S, Liskov B, Rodrigues R, Shrira L. HQ replication: A hybrid quorum protocol for Byzantine fault tolerance. In: Proceedings of the 7th Symposium on Operating Systems Design and Implementation. Seattle, USA: USENIX Association, 2006. 177−190
    [14] Gueta G G, Abraham I, Grossman S, Malkhi D, Pinkas B, Reiter M, et al. SBFT: A scalable and decentralized trust infrastructure. In: Proceedings of the 49th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN). Portland, USA: IEEE, 2019. 568−580
    [15] Yin M F, Malkhi D, Reiter M K, Gueta G G, Abraham I. HotStuff: BFT consensus with linearity and responsiveness. In: Proceedings of the ACM Symposium on Principles of Distributed Computing. Toronto, Canada: ACM, 2019. 347−356
    [16] Kwon J. Tendermint: Consensus without mining [Online], available: http://diyhpl.us/~bryan/papers2/bitcoin/tendermint_v03.pdf, November 8, 2014
    [17] Pass R, Shi E. Hybrid consensus: Efficient consensus in the permissionless model. In: Proceedings of the 31st International Symposium on Distributed Computing. Vienna, Austria: Schloss Dagstuhl-Leibniz-Zentrum für Informatik, 2017. 1−16
    [18] Kokoris-Kogias E, Jovanovic P, Gailly N, Khoffi I, Gasser L, Ford B. Enhancing bitcoin security and performance with strong consistency via collective signing. In: Proceedings of the 25th USENIX Security Symposium. Washington, USA: USENIX Association, 2016. 279−296
    [19] Pass R, Shi E. Thunderella: Blockchains with optimistic instant confirmation. In: Proceedings of the 37th Annual International Conference on the Theory and Applications of Cryptographic Techniques. Tel Aviv, Israel: Springer, 2018. 3−33
    [20] Li P L, Wang G S, Chen X Q, Xu W. Gosig: Scalable byzantine consensus on adversarial wide area network for blockchains. arXiv preprint arXiv: 1802.01315, 2018.
    [21] Gilad Y, Hemo R, Micali S, Vlachos G, Zeldovich N. Algorand: Scaling byzantine agreements for cryptocurrencies. In: Proceedings of the 26th Symposium on Operating Systems Principles. Shanghai, China: ACM, 2017. 51−68
    [22] Rivest R L, Shamir A, Tauman Y. How to leak a secret. In: Proceedings of the 7th International Conference on the Theory and Application of Cryptology and Information Security. Gold Coast, Australia: Springer, 2001. 552−565
    [23] Liu J K, Wei V K, Wong D S. Linkable spontaneous anonymous group signature for ad hoc groups. In: Proceedings of the 9th Australasian Conference on Information Security and Privacy. Sydney, Australia: Springer, 2004. 325−335
    [24] Park C, Kurosawa K. New EIGamal type threshold digital signature scheme. IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, 1996, 79-A(1): 86-93
  • 期刊类型引用(4)

    1. 和文云. 基于数差控制模型的液压设备原位控制与检测. 液压气动与密封. 2024(08): 111-116 . 百度学术
    2. 钟晓旭,李岚. 基于空时分组/混沌编码的多天线多基频通信编码研究. 成都工业学院学报. 2024(05): 29-34 . 百度学术
    3. 张正道,王瑶瑶,谢林柏. 基于伪周期控制信号编码的重放攻击检测. 控制与决策. 2023(10): 2962-2968 . 百度学术
    4. 王东风,谷赫,黄宇,王嘉俊. 基于动态水印的核电厂蒸汽发生器液位控制系统重放攻击检测方法研究. 动力工程学报. 2023(09): 1174-1180+1189 . 百度学术

    其他类型引用(6)

  • 加载中
图(9) / 表(2)
计量
  • 文章访问数:  1365
  • HTML全文浏览量:  1030
  • PDF下载量:  181
  • 被引次数: 10
出版历程
  • 收稿日期:  2020-08-28
  • 网络出版日期:  2021-03-29
  • 刊出日期:  2023-07-20

目录

/

返回文章
返回