(57)【特許請求の範囲】
【請求項１】
アクチュエータが作用する制御対象の各時刻の状態を表す各時刻のセンサデータに基づいて、各時刻のセンサデータを出力するセンサへの攻撃が開始された攻撃開始時刻を特定する攻撃開始時刻特定部と、
前記攻撃開始時刻以降のセンサデータ系列と前記攻撃開始時刻以降のアクチュエータ制御信号系列との少なくともいずれかに基づいて、前記制御対象の状態を前記攻撃開始時刻の前の時刻における状態に戻すためのアクチュエータ制御信号系列である攻撃打消信号系列を生成する攻撃打消信号生成部と、
を備える攻撃打消装置。
【請求項２】
前記攻撃打消信号生成部は、前記攻撃開始時刻以降のセンサデータ系列を、各センサデータ値が基準値に対して反転して且つ時系列における各センサデータ値の順序が逆転した攻撃打消データ系列に変換し、前記攻撃打消データ系列に基づいて前記攻撃打消信号系列を生成する
請求項１に記載の攻撃打消装置。
【請求項３】
前記攻撃打消信号生成部は、前記攻撃開始時刻以降のアクチュエータ制御信号系列に基づいて前記制御対象の状態を推定し、前記攻撃開始時刻の前の時刻のセンサデータが表す状態から、推定された状態へ、の状態変化量に基づいて前記攻撃打消信号系列を生成する
請求項１に記載の攻撃打消装置。
【請求項４】
前記攻撃打消信号生成部は、
前記攻撃開始時刻以降のセンサデータ系列を、各センサデータ値が基準値に対して反転して且つ時系列における各センサデータ値の順序が逆転した攻撃打消データ系列に変換し、前記攻撃打消データ系列に基づいて攻撃打消信号系列として第１候補系列を生成し、
前記攻撃開始時刻以降のアクチュエータ制御信号系列に基づいて前記制御対象の状態を推定し、前記攻撃開始時刻の前の時刻のセンサデータが表す状態から、推定された状態へ、の状態変化量に基づいて攻撃打消信号系列として第２候補系列を生成し、
前記第１候補系列と前記第２候補系列とを用いて前記攻撃打消信号を生成する
請求項１に記載の攻撃打消装置。
【請求項５】
前記攻撃打消装置は、各時刻のセンサデータに基づいて前記センサへの攻撃を検知する攻撃検知部を備え、
前記攻撃開始時刻特定部は、前記攻撃検知部における検知基準よりも低い基準を用いることによって、攻撃検知時刻よりも早い時刻を前記攻撃開始時刻として特定する
請求項１から請求項４のいずれか１項に記載の攻撃打消装置。
【請求項６】
入力されたセンサデータ系列または入力されたアクチュエータ制御信号系列に基づいて、前記センサへの攻撃が行われない場合の予測のアクチュエータ制御信号系列である仮制御信号系列を生成する仮制御信号生成部を備える
請求項１から請求項５のいずれか１項に記載の攻撃打消装置。
【請求項７】
前記仮制御信号生成部は、前記攻撃開始時刻以前のセンサデータ系列に基づいて前記攻撃開始時刻以降の予測のセンサデータ系列を生成し、生成した予測のセンサデータ系列に基づいて前記仮制御信号系列を生成する
請求項６に記載の攻撃打消装置。
【請求項８】
前記仮制御信号生成部は、前記攻撃開始時刻以降のセンサデータ系列から前記アクチュエータの制御に利用できる情報を取り出し、取り出した情報に基づいて前記攻撃開始時刻以降の予測のセンサデータ系列を生成し、生成した予測のセンサデータ系列に基づいて前記仮制御信号系列を生成する
請求項６に記載の攻撃打消装置。
【請求項９】
前記仮制御信号生成部は、前記攻撃開始時刻以前のアクチュエータ信号系列に基づいて前記仮制御信号系列を生成する
請求項６に記載の攻撃打消装置。
【請求項１０】
攻撃開始時刻特定部が、アクチュエータが作用する制御対象の各時刻の状態を表す各時刻のセンサデータに基づいて、各時刻のセンサデータを出力するセンサへの攻撃が開始された攻撃開始時刻を特定し、
攻撃打消信号生成部が、前記攻撃開始時刻以降のセンサデータ系列と前記攻撃開始時刻以降のアクチュエータ制御信号系列との少なくともいずれかに基づいて、前記制御対象の状態を前記攻撃開始時刻の前の時刻における状態に戻すためのアクチュエータ制御信号系列である攻撃打消信号系列を生成する
攻撃打消方法。
【請求項１１】
アクチュエータが作用する制御対象の各時刻の状態を表す各時刻のセンサデータに基づいて、各時刻のセンサデータを出力するセンサへの攻撃が開始された攻撃開始時刻を特定する攻撃開始時刻特定処理と、
前記攻撃開始時刻以降のセンサデータ系列と前記攻撃開始時刻以降のアクチュエータ制御信号系列との少なくともいずれかに基づいて、前記制御対象の状態を前記攻撃開始時刻の前の時刻における状態に戻すためのアクチュエータ制御信号系列である攻撃打消信号系列を生成する攻撃打消信号生成処理と、
をコンピュータに実行させるための攻撃打消プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサへの攻撃を打消すための技術に関するものである。
【背景技術】
【０００２】
ＭＥＭＳセンサは、機械的な部品と電子回路とを一つに集積した構成となっているセンサである。ＭＥＭＳは、Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍの略称である。
ＭＥＭＳセンサは、小型であり、精度が良く、コストが安いため、よく用いられる。例えば、自動車の自動運転またはロボットの自律制御のために、ＭＥＭＳジャイロセンサおよびＭＥＭＳ加速度センサがよく用いられる。【０００３】
センサを用いた計測または制御においては、センサデータの信頼性がシステムの信頼性に直結する。そのため、センサへの攻撃は脅威となる。
但し、マルウェアを用いてセンサデータをソフトウェア的に騙す攻撃は、従来の情報セキュリティ技術で対処可能である。【０００４】
一方で、物理的な信号をセンサに照射し、物理的にセンサの状態を変動させるハードウェア的な攻撃は、従来の情報セキュリティ技術では対処できない。
非特許文献１および非特許文献２では、超音波によりＭＥＭＳジャイロセンサとＭＥＭＳ加速度センサとをそれぞれ騙す攻撃方法を開示している。
音波攻撃では、ＭＥＭＳセンサがばねとおもりとで構成されることが着目される。すなわち、ばねとおもりとで構成される物体が共振周波数を持つ、という特性が利用される。攻撃者は、ＭＥＭＳセンサが持つ共振周波数と同じ周波数の音波をＭＥＭＳセンサに対して照射することにより、ＭＥＭＳセンサの機械部分を強制的に共振させる。その結果、異常なセンサ出力が得られる。【０００５】
ＭＥＭＳセンサへの音波攻撃の対策として、次の防御方法がある。
非特許文献１には、ハードウェアによる対策方式が開示されている。具体的には、物理的にセンサを遮蔽すること、センサの共振周波数を変更すること、同じセンサを複数用意してセンサデータを比較すること、が開示されている。
非特許文献２には、ハードウェアによる対策方式が開示されている。具体的には、センサを構成する部品を超音波攻撃の影響を受け辛いものに変更すること、が開示されている。さらに、非特許文献２には、ソフトウェアによる対策方式が開示されている。具体的には、センサのサンプリング間隔を変更すること、が開示されている。【０００６】
ＭＥＭＳセンサへの音波攻撃の対策として、次の検知方法がある。
非特許文献３は、ＭＥＭＳジャイロセンサおよびＭＥＭＳ加速度センサが地磁気センサと一緒に使われることが多いことに着目し、ソフトウェアによる攻撃検知手法を開示している。具体的には、各種センサによって観測された物理状態の整合性を見て攻撃を検知すること、が開示されている。【０００７】
非特許文献４から非特許文献６については実施の形態において言及する。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Ｓｏｎ，  Ｙｕｎｍｏｋ，  ｅｔ  ａｌ．  “Ｒｏｃｋｉｎｇ  ｄｒｏｎｅｓ  ｗｉｔｈ  ｉｎｔｅｎｔｉｏｎａｌ  ｓｏｕｎｄ  ｎｏｉｓｅ  ｏｎ  ｇｙｒｏｓｃｏｐｉｃ  ｓｅｎｓｏｒｓ．”  ２４ｔｈ  ＵＳＥＮＩＸ  Ｓｅｃｕｒｉｔｙ  Ｓｙｍｐｏｓｉｕｍ  （ＵＳＥＮＩＸ  Ｓｅｃｕｒｉｔｙ  １５）．  ２０１５．
【非特許文献２】Ｔｉｍｏｔｈｙ  Ｔｒｉｐｐｅｌ，  Ｏｆｉｒ  Ｗｅｉｓｓｅ，  Ｗｅｎｙｕａｎ  Ｘｕ，  Ｐｅｔｅｒ  Ｈｏｎｅｙｍａｎ，  ａｎｄ  Ｋｅｖｉｎ  Ｆｕ．  ２０１７．  ＷＡＬＮＵＴ：  Ｗａｇｉｎｇ  ｄｏｕｂｔ  ｏｎ  ｔｈｅ  ｉｎｔｅｇｒｉｔｙ  ｏｆ  ｍｅｍｓ  ａｃｃｅｌｅｒｏｍｅｔｅｒｓ  ｗｉｔｈ  ａｃｏｕｓｔｉｃ  ｉｎｊｅｃｔｉｏｎ  ａｔｔａｃｋｓ．  Ｉｎ  Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｐｒｉｖａｃｙ  （ＥｕｒｏＳ＆Ｐ），  ２０１７  ＩＥＥＥ  Ｅｕｒｏｐｅａｎ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ．  ＩＥＥＥ，  ３−１８．
【非特許文献３】ＮＡＳＨＩＭＯＴＯ，  Ｓｈｏｅｉ，  ｅｔ  ａｌ．  Ｓｅｎｓｏｒ  ＣＯＮ−Ｆｕｓｉｏｎ：  Ｄｅｆｅａｔｉｎｇ  Ｋａｌｍａｎ  Ｆｉｌｔｅｒ  ｉｎ  Ｓｉｇｎａｌ  Ｉｎｊｅｃｔｉｏｎ  Ａｔｔａｃｋ．  Ｉｎ：  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２０１８  ｏｎ  Ａｓｉａ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｅｃｕｒｉｔｙ．  ＡＣＭ，  ２０１８．  ｐ．  ５１１−５２４．
【非特許文献４】Ｕｒｂｉｎａ，  Ｄａｖｉｄ  Ｉ．，  ｅｔ  ａｌ．  “Ａｔｔａｃｋｉｎｇ  Ｆｉｅｌｄｂｕｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｉｎ  ＩＣＳ：  Ａｐｐｌｉｃａｔｉｏｎｓ  ｔｏ  ｔｈｅ  ＳＷａＴ  Ｔｅｓｔｂｅｄ．”ＳＧ−ＣＲＣ．  ２０１６．
【非特許文献５】Ｌｊｕｎｇ，  Ｌｅｎｎａｒｔ．  “Ｓｙｓｔｅｍ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ．”  Ｓｉｇｎａｌ  ａｎａｌｙｓｉｓ  ａｎｄ  ｐｒｅｄｉｃｔｉｏｎ．  Ｂｉｒｋｈａｕｓｅｒ，  Ｂｏｓｔｏｎ，  ＭＡ，  １９９８．  １６３−１７３．
【非特許文献６】ＧＲＥＷＡＬ，  ＭＯＨＩＮＤＥＲ  Ｓ．，  ａｎｄ  ＡＮＧＵＳ  Ｐ．  ＡＮＤＲＥＷＳ．  “Ｋａｌｍａｎ  Ｆｉｌｔｅｒｉｎｇ：  Ｔｈｅｏｒｙ  ａｎｄ  Ｐｒａｃｔｉｃｅ  Ｕｓｉｎｇ  ＭＡＴＬＡＢ．”  （２００１）．
【発明の概要】
【発明が解決しようとする課題】
【０００９】
非特許文献１または非特許文献２にはハードウェアによる対策方式が開示されている。しかし、その対策方式では、センサ自体を加工する必要があるため、コストが高くなる。また、センサを覆う方法は、他のセンサに影響を及ぼす可能性がある。したがって、計測性能に悪影響を及ぼすおそれがある。【００１０】
非特許文献２にはソフトウェアによる対策方式が開示されている。しかし、その対策方式には、限られたセンサにしか適用できない、という汎用性の課題がある。具体的には、サンプリング間隔を変更するという対策方式では、センサの利用者がセンサのサンプリング間隔を設定できることが前提となる。【００１１】
非特許文献３にはソフトウェアによる攻撃検知方法が開示されている。しかし、非特許文献３には、攻撃が検知された場合の対処方法は開示されていない。そのため、攻撃が検知された制御対象が異常化する。【００１２】
本発明は、センサへの攻撃を打消すことをできるようにすることを目的とする。
【課題を解決するための手段】
【００１３】
本発明の攻撃打消装置は、
アクチュエータが作用する制御対象の各時刻の状態を表す各時刻のセンサデータに基づいて、各時刻のセンサデータを出力するセンサへの攻撃が開始された攻撃開始時刻を特定する攻撃開始時刻特定部と、
前記攻撃開始時刻以降のセンサデータ系列と前記攻撃開始時刻以降のアクチュエータ制御信号系列との少なくともいずれかに基づいて、前記制御対象の状態を前記攻撃開始時刻の前の時刻における状態に戻すためのアクチュエータ制御信号系列である攻撃打消信号系列を生成する攻撃打消信号生成部と、を備える。
【発明の効果】
【００１４】
本発明によれば、攻撃打消信号系列を生成することができる。そして、生成された攻撃打消信号系列に従ってアクチュエータが動作することにより、制御対象が攻撃前の状態に戻る。つまり、センサへの攻撃を打消すことができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１における攻撃打消システム１００の構成図。
【図２】実施の形態１における攻撃打消装置２００の構成図。
【図３】実施の形態１におけるアクチュエータ１１１とセンサ１１２とに関するシーケンス図。
【図４】実施の形態１におけるコントローラ１１３に関するシーケンス図。
【図５】実施の形態１における攻撃スコア算出部２１１と攻撃判定部２１２と攻撃開始時刻特定部２２３とに関するシーケンス図。
【図６】実施の形態１における攻撃打消信号生成部２２４に関するシーケンス図。
【図７】実施の形態１における制御信号出力部２３０に関するシーケンス図。
【図８】実施の形態１における攻撃開始時刻と特定閾値との説明図。
【図９】実施の形態１における攻撃開始時刻特定部２２３の動作を示すフローチャート。
【図１０】実施の形態１における攻撃開始時刻特定部２２３の動作を示すフローチャート。
【図１１】実施の形態１における攻撃打消信号系列の説明図。
【図１２】実施の形態１における攻撃打消信号生成部２２４の動作＜第１の方法＞のフローチャート。
【図１３】実施の形態１における攻撃打消信号生成処理（Ｓ２１０）のフローチャート。
【図１４】実施の形態１における攻撃打消信号生成処理（Ｓ２２０）のフローチャート。
【図１５】実施の形態１におけるデータ系列変換処理（Ｓ２２２）のフローチャート。
【図１６】実施の形態１における攻撃打消信号生成部２２４の動作＜第２の方法＞のフローチャート。
【図１７】実施の形態１における攻撃打消信号生成処理（Ｓ３２０）のフローチャート。
【図１８】実施の形態２における攻撃打消システム１００の構成図。
【図１９】実施の形態２における攻撃打消装置２００の構成図。
【図２０】実施の形態２における仮制御信号生成部２４１に関するシーケンス図。
【図２１】実施の形態２における仮制御信号生成部２４１の動作［第１の方法］のフローチャート。
【図２２】実施の形態２における仮制御信号生成処理（Ｓ４２０）のフローチャート。
【図２３】実施の形態２における仮制御信号生成部２４１の動作［第２の方法］のフローチャート。
【図２４】実施の形態２における仮制御信号生成処理（Ｓ５２０）のフローチャート。
【図２５】実施の形態２における制御信号出力部２３０に関するシーケンス図。
【図２６】実施の形態における攻撃打消装置２００のハードウェア構成図。
【発明を実施するための形態】
【００１６】
実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【００１７】
実施の形態１．
攻撃打消システム１００について、図１から図１７に基づいて説明する。
【００１８】
＊＊＊構成の説明＊＊＊
図１に基づいて、攻撃打消システム１００の構成を説明する。
攻撃打消システム１００は、制御システム１１０と攻撃打消装置２００とを備える。
【００１９】
制御システム１１０は、制御対象１０１とアクチュエータ１１１とセンサ１１２とコントローラ１１３とを備える。
制御対象１０１は、制御される対象となる物（特に機器）である。例えば、制御対象１０１はドローンである。
アクチュエータ１１１は、制御対象１０１に作用するアクチュエータである。例えば、制御対象１０１がドローンである場合、アクチュエータ１１１はローターである。
センサ１１２は、制御対象１０１の状態を観測するためのセンサである。例えば、制御対象１０１がドローンである場合、センサ１１２は、ドローンの傾きおよびドローンの姿勢を計測する傾きセンサである。
コントローラ１１３は、制御対象１０１を制御するコントローラである。例えば、制御対象１０１がドローンである場合、コントローラ１１３はフライトコントローラである。
【００２０】
攻撃打消装置２００は、攻撃スコア算出部２１１と攻撃判定部２１２とセンサデータ格納部２２１と制御信号格納部２２２と攻撃開始時刻特定部２２３と攻撃打消信号生成部２２４と制御信号出力部２３０とを備える。
要素間のデータおよび信号の流れについては後述する。
【００２１】
図２に基づいて、攻撃打消装置２００の構成を説明する。
攻撃打消装置２００は、プロセッサ２０１とメモリ２０２とセンサデータ入力インタフェース２０３と制御信号入力インタフェース２０４と制御信号出力インタフェース２０５といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【００２２】
プロセッサ２０１は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、他のハードウェアを制御する。例えば、プロセッサ２０１はＣＰＵまたはＤＳＰである。ＣＰＵはＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称である。ＤＳＰはＤｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒの略称である。
メモリ２０２は、データを記憶する。例えば、メモリ２０２は、ＲＡＭ、ＲＯＭ、フラッシュメモリ、ＨＤＤ、ＳＳＤまたはそれらの組み合わせである。ＲＡＭはＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略称である。ＲＯＭはＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略称である。ＨＤＤはＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略称である。ＳＳＤはＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅの略称である。
センサデータ入力インタフェース２０３は、センサデータを受け付けるためのインタフェースである。例えば、センサデータ入力インタフェース２０３は、Ｉ２Ｃインタフェース、ＳＰＩまたはＥｔｈｅｒｎｅｔインタフェースである。Ｉ２ＣはＩｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称である。ＳＰＩはＳｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅの略称である。
制御信号入力インタフェース２０４は、アクチュエータ制御信号を受け付けるためのインタフェースである。例えば、制御信号入力インタフェース２０４は、Ｉ２Ｃインタフェース、ＳＰＩまたはＥｔｈｅｒｎｅｔインタフェースである。
制御信号出力インタフェース２０５は、アクチュエータ制御信号を出力するためのインタフェースである。例えば、制御信号出力インタフェース２０５は、ＤＡＣ（Ｄｉｇｉｔａｌ  Ａｎａｌｏｇ  Ｃｏｎｖｅｒｔｅｒ）である。
【００２３】
アクチュエータ制御信号は、アクチュエータ１１１を制御するための信号である。
【００２４】
「Ｅｔｈｅｒｎｅｔ」は登録商標である。
【００２５】
攻撃打消装置２００は、攻撃検知部２１０と攻撃打消部２２０と制御信号出力部２３０といった要素を備える。これらの要素はソフトウェアで実現される。
攻撃検知部２１０は、攻撃スコア算出部２１１と攻撃判定部２１２とを備える。
攻撃打消部２２０は、センサデータ格納部２２１と制御信号格納部２２２と攻撃開始時刻特定部２２３と攻撃打消信号生成部２２４とを備える。
【００２６】
メモリ２０２には、攻撃検知部２１０と攻撃打消部２２０と制御信号出力部２３０としてコンピュータを機能させるための攻撃打消プログラムが記憶されている。
プロセッサ２０１は、ＯＳを実行しながら、攻撃打消プログラムを実行する。ＯＳはＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍの略称である。
攻撃打消プログラムを実行して得られるデータは、メモリ２０２、プロセッサ２０１内のレジスタ、または、プロセッサ２０１内のキャッシュメモリといった記憶装置に記憶される。
【００２７】
攻撃打消装置２００は、プロセッサ２０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ２０１の役割を分担する。
【００２８】
攻撃打消プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録（格納）することができる。
【００２９】
＊＊＊動作の説明＊＊＊
攻撃打消システム１００（特に攻撃打消装置２００）の動作は攻撃打消方法に相当する。また、攻撃打消方法の手順は攻撃打消プログラムの手順に相当する。
【００３０】
図３から図７に基づいて、攻撃打消システム１００の動作を説明する。
図３に基づいて、アクチュエータ１１１とセンサ１１２とセンサデータ格納部２２１とのそれぞれの動作を説明する。
アクチュエータ１１１は、後述する制御信号出力部２３０から出力されるアクチュエータ制御信号に従って動作する。これにより、アクチュエータ１１１は制御対象１０１に作用する。
【００３１】
センサ１１２は、各時刻に制御対象１０１の状態を計測する。これにより、センサ１１２は、制御対象１０１の状態の変化を観測する。
センサ１１２は、各時刻にセンサデータを出力する。センサデータは、時刻と状態値とを示す。状態値は、制御対象１０１の状態を表す。
センサ１１２から出力されたセンサデータは、コントローラ１１３と攻撃スコア算出部２１１とセンサデータ格納部２２１とのそれぞれに入力される。
【００３２】
センサデータ格納部２２１には、各時刻にセンサ１１２からセンサデータが入力される。センサデータ格納部２２１は、入力されたセンサデータを受け付ける。
センサデータ格納部２２１は、受け付けたセンサデータを逐次にメモリ２０２に格納する。
【００３３】
メモリ２０２の容量は有限であるため、センサデータ格納部２２１は、リングバッファのような格納方法を利用してもよい。
リングバッファは次のようなデータ構造を持つ。リングバッファでは、格納されたデータのサイズが規定サイズになるまで、すべてのデータが格納される。しかし、格納されたデータのサイズが規定サイズを超えた場合、古いデータから順番に上書きされる。
【００３４】
センサデータ格納部２２１は、メモリ２０２に格納されたセンサデータ系列を出力する（図６参照）。
センサデータ格納部２２１から出力されたセンサデータ系列は、攻撃打消信号生成部２２４に入力される。
センサデータ系列は、時刻順に並んだ１つ以上のセンサデータである。
【００３５】
図４に基づいて、コントローラ１１３と制御信号格納部２２２とのそれぞれの動作を説明する。
コントローラ１１３には、アクチュエータ１１１を制御するための制御アルゴリズムが予め設定されている。
コントローラ１１３には、各時刻にセンサ１１２からセンサデータが入力される。コントローラ１１３は、入力されたセンサデータを受け付ける。
コントローラ１１３は、受け付けたセンサデータに対して制御アルゴリズムを実行する。これにより、アクチュエータ制御信号が生成される。
【００３６】
制御対象１０１がドローンであり、アクチュエータ１１１がローターであり、センサ１１２が傾きセンサであると仮定する。この場合、コントローラ１１３には、ドローンの傾きを示す傾きデータが入力される。そして、コントローラ１１３は、傾きデータに基づいて、ローターへの制御信号を生成する。ローターへの制御信号は、ＰＷＭ信号または交流信号である。ＰＷＭはＰｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎの略称である。
【００３７】
コントローラ１１３によって生成されるアクチュエータ制御信号を「通常制御信号」と称する。
コントローラ１１３は、生成した通常制御信号を出力する。
コントローラ１１３から出力された通常制御信号は、制御信号格納部２２２と制御信号出力部２３０とのそれぞれに入力される。
【００３８】
制御信号格納部２２２には、各時刻にコントローラ１１３から通常制御信号が入力される。制御信号格納部２２２は、入力された通常制御信号を受け付ける。
制御信号格納部２２２は、受け付けた通常制御信号をメモリ２０２に格納する。なお、信号はデータに変換されて格納される。
【００３９】
メモリ２０２の容量は有限であるため、制御信号格納部２２２は、リングバッファのような格納方法を利用してもよい。
【００４０】
制御信号格納部２２２は、メモリ２０２から格納された通常制御信号系列を出力する（図６参照）。
制御信号格納部２２２から出力された通常制御信号系列は、攻撃打消信号生成部２２４に入力される。
通常制御信号系列は、時刻順に並んだ１つ以上の通常制御信号である。
【００４１】
図５に基づいて、攻撃スコア算出部２１１と攻撃判定部２１２と攻撃開始時刻特定部２２３とのそれぞれの動作を説明する。
攻撃スコア算出部２１１には、各時刻にセンサ１１２からセンサデータが入力される。攻撃スコア算出部２１１は、入力されたセンサデータを受け付ける。
攻撃スコア算出部２１１は、受け付けたセンサデータから攻撃特徴を抽出し、抽出した攻撃特徴に基づいて攻撃スコアを算出する。
攻撃特徴は、攻撃が行われている場合にセンサデータに表れる特徴である。
攻撃スコアは、攻撃が行われている可能性の高さを表す。
【００４２】
攻撃スコアは、従来方法で算出することができる。例えば、攻撃スコア算出部２１１は、非特許文献３に開示された方法で攻撃スコアを算出する。
非特許文献３に開示された方法では、各種センサが用いられ、各種センサデータに基づいて物理状態の不整合が検証される。
具体的には、非特許文献３には、ＡＨＲＳと呼ばれる傾きセンサを用いた攻撃検知方法が開示されている。ＡＨＲＳは、ジャイロセンサと加速度センサと磁気センサとで構成される。ＡＨＲＳはＡｔｔｉｔｕｄｅ  Ｈｅａｄｉｎｇ  Ｒｅｆｅｒｅｎｃｅ  Ｓｙｓｔｅｍの略称である。ジャイロセンサと加速度センサとのそれぞれは重力を計測することができる。ジャイロセンサと磁気センサとのそれぞれは地磁気を計測することができる。そのため、二通りの方法で計測された二つの重力の誤差と、二通りの方法で計測された二つの地磁気の誤差と、を求めることができる。そして、センサが攻撃された場合には各誤差が大きくなるため、攻撃を検知することができる。したがって、非特許文献３の攻撃検知方法の場合、攻撃スコアとは、二通りの方法で計測された二つの重力の誤差、および、二通りの方法で計測された二つの地磁気の誤差となる。
【００４３】
攻撃スコア算出部２１１は、算出した攻撃スコアを出力する。
攻撃スコア算出部２１１から出力された攻撃スコアは、攻撃判定部２１２と攻撃開始時刻特定部２２３とのそれぞれに入力される。
【００４４】
攻撃判定部２１２には、各時刻に攻撃スコア算出部２１１から攻撃スコアが入力される。攻撃判定部２１２は、入力された攻撃スコアを受け付ける。
攻撃判定部２１２は、受け付けた攻撃スコアに基づいて、センサ１１２への攻撃の有無を判定する。各時刻の攻撃スコアは各時刻のセンサデータに基づいて算出されるので、攻撃判定部２１２は各時刻のセンサデータに基づいて各時刻における攻撃の有無を判定する、と言い換えることができる。
【００４５】
例えば、判定閾値があらかじめ設定される。そして、攻撃判定部２１２は、攻撃スコアを判定閾値と比較し、比較結果に基づいて攻撃の有無を判定する。
例えば、攻撃スコアが判定閾値より高い場合、攻撃判定部２１２は「攻撃有り」と判定する。「攻撃有り」は攻撃が行われていることを意味する。
非特許文献４には、センサデータに基づく攻撃スコアの算出、および、閾値を用いた攻撃判定の方法が説明されている。
【００４６】
攻撃判定部２１２は、攻撃判定結果を出力する。
攻撃判定部２１２から出力された攻撃判定結果は、攻撃打消信号生成部２２４と制御信号出力部２３０とのそれぞれに入力される。
【００４７】
攻撃開始時刻特定部２２３には、各時刻に攻撃スコア算出部２１１から攻撃スコアが入力される。攻撃開始時刻特定部２２３は、入力された攻撃スコアを受け付ける。
攻撃開始時刻特定部２２３は、各時刻の攻撃スコアに基づいて、センサ１１２への攻撃が開始された時刻を特定する。各時刻の攻撃スコアは各時刻のセンサデータに基づいて算出されるので、攻撃開始時刻特定部２２３は各時刻のセンサデータに基づいて攻撃開始時刻を特定する、と言い換えることができる。
【００４８】
例えば、特定閾値があらかじめ設定される。そして、攻撃開始時刻特定部２２３は、攻撃スコアを特定閾値と比較し、比較結果に基づいて攻撃の有無を判定する。
例えば、攻撃開始時刻特定部２２３は、攻撃スコアが特定閾値を超えた時刻を攻撃開始時刻として特定する。
この場合、攻撃開始時刻特定部２２３によって使用される特定閾値は、攻撃判定部２１２によって使用される判定閾値よりも低い。つまり、攻撃開始時刻特定部２２３の閾値は、攻撃判定部２１２の閾値よりも感度が高い。
【００４９】
攻撃開始時刻特定部２２３が攻撃判定部２１２における方法と同様の方法で攻撃開始時刻を特定する場合、攻撃開始時刻特定部２２３の閾値は、攻撃判定部２１２の閾値よりも感度が高くなくてはならない。閾値の感度の違いは、次の事実に由来する。
攻撃検知では誤検知を減らす必要がある。そのため、閾値にある程度の余裕を持たせることが必要である。しかし、その場合、攻撃が顕在化した時刻は分かるものの、攻撃が開始された時刻は分からない。そこで、攻撃開始時刻を特定するための閾値の感度を上げる。これにより、攻撃が実際に開始された時刻により近い時刻を特定できる。
なお、攻撃検知の閾値は、制御対象１０１が攻撃を受けても制御対象１０１が異常化しないという条件において最も誤検知が低くなる値が設定されることが予想される。しかし、攻撃検知後に攻撃に対処しない場合、制御対象１０１の状態が異常化する可能性がある。それは、攻撃開始以降、センサ１１２が全く使用できない状態になるので、自然な回復が期待できないためである。
【００５０】
図８に基づいて、判定閾値と特定閾値との違いを説明する。
判定閾値は、攻撃判定部２１２によって使用される閾値である。言い換えると、判定閾値は、攻撃検知部２１０における検知基準である。
特定閾値は、攻撃開始時刻特定部２２３によって使用される閾値である。言い換えると、特定閾値は、攻撃開始時刻特定部２２３における特定基準である。
［攻撃開始時刻］は、実際に攻撃が開始された時刻である。
［攻撃終了時刻］は、実際に攻撃が終了した時刻である。
横軸は時間を表し、縦軸は攻撃スコアを表している。
【００５１】
図８において、ある時刻に攻撃が開始され、ある時刻に攻撃が検知され、ある時刻に制御対象１０１が異常化し、ある時刻に攻撃が終了している。
特定閾値は判定閾値よりも低いため、つまり、特定閾値の感度が高いため、正常な時間帯に攻撃開始時刻が特定される。実際に攻撃が開始されると攻撃スコアが上昇し、ある時刻で攻撃スコアが判定閾値を超え、攻撃が検知される。
図８に示すように、特定される攻撃開始時刻が、実際の攻撃開始時刻よりも前の時刻になる可能性がある。しかし、特定された攻撃開始時刻における制御対象１０１の状態は正常である。そのため、制御対象１０１の状態を、特定された攻撃開始時刻における状態に回復することに問題はない。逆に、特定される攻撃開始時刻が、実際の攻撃開始時刻よりも後の時刻である場合、特定された攻撃開始時刻における制御対象１０１の状態は異常である。そのため、制御対象１０１の状態を、特定された攻撃開始時刻における状態に回復することに問題がある。したがって、実際の攻撃開始時刻以前の時刻が攻撃開始時刻として特定される必要がある。
そこで、判定閾値よりも感度が高い閾値が特定閾値として用いられる。
【００５２】
さらに、攻撃開始時刻特定部２２３は、攻撃スコアが特定閾値を超えた時刻を一定時間記憶する。その理由は以下の通りである。
攻撃開始後に攻撃スコアが変動して特定閾値を少しでも下回った場合、攻撃開始以前において攻撃スコアが超えた時刻を一定時間記憶しておかないと、攻撃スコアが特定閾値を超えた時刻がリセットされる。そのため、特定される攻撃開始時刻が実際の攻撃開始時刻の後の時刻になってしまう。
【００５３】
そこで、攻撃開始時刻特定部２２３は、閾値超えカウンタを使用する。
閾値超えカウンタは、攻撃スコアが特定閾値を超えた時刻を一定時間記憶するためのカウンタである。
攻撃スコアが特定閾値を超えなかった場合、攻撃開始時刻特定部２２３は、閾値超えカウンタをデクリメントする。
一定時間、攻撃スコアが特定閾値を超えなかった場合、攻撃開始時刻特定部２２３は、攻撃開始時刻をリセットする。
これにより、一度特定された攻撃開始時刻を一定時間記憶できる。
【００５４】
図９および図１０に基づいて、攻撃開始時刻特定部２２３の動作の手順を説明する。
ステップＳ１０１において、攻撃開始時刻特定部２２３は、攻撃スコアを受け付ける。
【００５５】
ステップＳ１０２において、攻撃開始時刻特定部２２３は、攻撃スコアを特定閾値と比較する。
攻撃スコアが特定閾値より高い場合、処理はステップＳ１１１に進む。
攻撃スコアが特定閾値以下である場合、処理はステップＳ１２１に進む。
【００５６】
ステップＳ１１１において、攻撃開始時刻特定部２２３は、閾値超えカウンタに規定値を設定する。
【００５７】
ステップＳ１１２において、攻撃開始時刻特定部２２３は、攻撃開始時刻がリセット状態（０）であるか判定する。
攻撃開始時刻がリセット状態である場合、攻撃が続いていると考えられる。この場合、攻撃開始時刻は変更されず、処理はステップＳ１１３に進む。
攻撃開始時刻がリセット状態でない場合、つまり、攻撃開始時刻がある時刻である場合、処理はステップＳ１１４に進む。
【００５８】
ステップＳ１１３において、攻撃開始時刻特定部２２３は、現在時刻を攻撃開始時刻とする。
【００５９】
ステップＳ１１４において、攻撃開始時刻特定部２２３は、攻撃開始時刻を出力する。
ステップＳ１１４の後、処理は終了する。
【００６０】
ステップＳ１２１において、攻撃開始時刻特定部２２３は、閾値超えカウンタをデクリメントする。
【００６１】
ステップＳ１２２において、攻撃開始時刻特定部２２３は、閾値超えカウンタの値をカウンタ閾値と比較する。カウンタ閾値は予め決められた値である。例えば、カウンタ閾値は０である。
閾値超えカウンタの値がカウンタ閾値より小さい場合、処理はステップＳ１２３に進む。
閾値超えカウンタの値がカウンタ閾値以上である場合、処理はステップＳ１２４に進む。
【００６２】
ステップＳ１２３において、攻撃開始時刻特定部２２３は、攻撃開始時刻をリセットする。具体的には、攻撃開始時刻特定部２２３は、「０」を攻撃開始時刻とする。
【００６３】
ステップＳ１２４において、攻撃開始時刻特定部２２３は、攻撃開始時刻を出力する。
ステップＳ１２４の後、処理は終了する。
【００６４】
図５に戻り、攻撃開始時刻特定部２２３の説明を続ける。
攻撃開始時刻特定部２２３は、特定した攻撃開始時刻を出力する。
攻撃開始時刻特定部２２３から出力された攻撃開始時刻は、攻撃打消信号生成部２２４に入力される。
【００６５】
図６に基づいて、攻撃打消信号生成部２２４の動作を説明する。
攻撃打消信号生成部２２４には、各時刻に攻撃判定部２１２から攻撃判定結果が入力される。攻撃打消信号生成部２２４は、入力された攻撃判定結果を受け付ける。
攻撃打消信号生成部２２４には、各時刻に攻撃開始時刻特定部２２３から攻撃開始時刻が入力される。攻撃打消信号生成部２２４は、入力された攻撃開始時刻を受け付ける。
攻撃打消信号生成部２２４には、センサデータ格納部２２１からセンサデータ系列が入力される。攻撃打消信号生成部２２４は、入力されたセンサデータ系列を受け付ける。
攻撃打消信号生成部２２４には、制御信号格納部２２２から通常制御信号系列が入力される。攻撃打消信号生成部２２４は、入力された通常制御信号系列を受け付ける。
【００６６】
攻撃打消信号生成部２２４は、攻撃判定結果と攻撃開始時刻とセンサデータ系列と通常制御信号系列とに基づいて、攻撃打消信号系列を生成する。
攻撃打消信号系列は、時系列に並んだ１つ以上の攻撃打消信号である。
攻撃打消信号は、制御対象１０１の状態を正常時の状態に戻すためのアクチュエータ制御信号である。
【００６７】
但し、攻撃打消信号生成部２２４は、センサデータ系列と通常制御信号系列とのうちの片方を用いて、攻撃打消信号系列を生成してもよい。
通常制御信号系列を用いずにセンサデータ系列を用いる方法を＜第１の方法＞と称する。＜第１の方法＞では、制御信号格納部２２２は不要である。
センサデータ系列を用いずに通常制御信号系列を用いる方法を＜第２の方法＞と称する。＜第２の方法＞において、センサデータ系列の全体は不要であるが、攻撃開始時刻の前の時刻のセンサデータが必要である。
センサデータ系列と通常制御信号系列との両方を用いる方法を＜第３の方法＞と称する。
【００６８】
＜第１の方法＞を説明する。
＜第１の方法＞では、センサデータ系列が反転され、反転後のセンサデータ系列を逆順に辿りながらアクチュエータ制御信号が生成される。生成される１つアクチュエータ制御信号が攻撃打消信号系列である。
【００６９】
図１１に基づいて、＜第１の方法＞の概要を説明する。
点線の波形は、受け付けられたセンサデータ系列を表している。
実線の波形は、加工後のセンサデータ系列を表している。
横軸は時間を表し、縦軸はセンサデータの値を表している。
【００７０】
まず、制御対象１０１が起動した後、制御対象１０１を待機させ、制御対象１０１を安定な状態にする。
そして、攻撃打消信号生成部２２４は、待機中のセンサデータ系列に基づいて、基準値を決定する。
基準値は、待機中における制御対象１０１の状態を表す値である。
【００７１】
次に、攻撃打消信号生成部２２４は、受け付けたセンサデータ系列から、攻撃開始時刻以降のセンサデータ系列を抽出する。抽出されるセンサデータ系列を「異常データ系列」と称する。
【００７２】
次に、攻撃打消信号生成部２２４は、基準値軸に対して異常データ系列を折り返す。これにより、物理的な意味が反転した異常データ系列が得られる。
さらに、攻撃打消信号生成部２２４は、時間軸において異常データ系列を逆順にする。つまり、攻撃打消信号生成部２２４は、異常データ系列における各値の並び順を古い順から新しい順に変える。
加工後の異常データ系列を「攻撃打消データ系列」と称する。
【００７３】
そして、攻撃打消信号生成部２２４は、攻撃打消データ系列に対して制御アルゴリズムを実行する。これにより、攻撃打消信号系列が生成される。
攻撃打消信号生成部２２４によって実行される制御アルゴリズムは、コントローラ１１３によって実行される制御アルゴリズムと同じである。
攻撃打消信号系列は、時系列に並んだ１つ以上の攻撃打消信号である。攻撃打消信号系列は、異常データ系列と同様に時間幅を有する。
【００７４】
＜第１の方法＞は、センサデータ系列が線形性を有する場合に特に有効である。センサデータ系列が線形性を有する場合、加法性が成り立つためである。
【００７５】
図１２に基づいて、＜第１の方法＞の手順を説明する。
ステップＳ２０１において、攻撃打消信号生成部２２４は、制御対象１０１が安定化するまで待機する。
具体的には、攻撃打消信号生成部２２４は、制御対象１０１が起動後から一定時間が経過するまで待機する。
【００７６】
ステップＳ２０２において、攻撃打消信号生成部２２４は、待機中のセンサデータ系列を受け付ける。
【００７７】
ステップＳ２０３において、攻撃打消信号生成部２２４は、待機中のセンサデータ系列に基づいて、基準値を決定する。
例えば、攻撃打消信号生成部２２４は、待機中のセンサデータ系列における平均値、中央値または最頻値を算出する。算出される値が基準値である。
【００７８】
ステップＳ２０１からステップＳ２０３は、制御対象１０１の起動時にだけ実行すればよい。
【００７９】
ステップＳ２１０において、攻撃打消信号生成部２２４は、決定した基準値を用いて、攻撃打消信号系列を生成する。
【００８０】
図１３に基づいて、攻撃打消信号生成処理（Ｓ２１０）の手順を説明する。
ステップＳ２１１において、攻撃打消信号生成部２２４は、攻撃判定結果を受け付ける。
【００８１】
ステップＳ２１２において、攻撃打消信号生成部２２４は、攻撃判定結果に基づいて攻撃の有無を判定する。
「攻撃有り」と判定された場合、処理はステップＳ２１３に進む。
「攻撃無し」と判定された場合、処理はステップＳ２１５に進む。
【００８２】
ステップＳ２１３において、攻撃打消信号生成部２２４は、攻撃開始時刻とセンサデータ系列とを受け付ける。
【００８３】
ステップＳ２２０において、攻撃打消信号生成部２２４は、ステップＳ２１３で受け付けられた攻撃開始時刻と、ステップＳ２１３で受け付けられたセンサデータ系列と、ステップＳ２０３で決定された基準値とに基づいて、攻撃打消信号系列を生成する。
攻撃打消信号生成処理（Ｓ２２０）の手順について後述する。
【００８４】
ステップＳ２１４において、攻撃打消信号生成部２２４は、攻撃打消信号系列を出力する。
具体的には、攻撃打消信号生成部２２４は、攻撃打消信号系列に含まれる１つ以上の攻撃打消信号を時系列順に１つずつ出力する。
ステップＳ２１４の後、攻撃打消信号生成処理（Ｓ２１０）は終了する。
【００８５】
ステップＳ２１５において、攻撃打消信号生成部２２４は、攻撃打消信号系列としてダミー信号系列を出力する。
ダミー信号系列は、１つ以上のダミー値である。ダミー値はどのような値であってもよい。例えば、ダミー値は「０」である。
ステップＳ２１５の後、攻撃打消信号生成処理（Ｓ２１０）は終了する。
【００８６】
図１４に基づいて、攻撃打消信号生成処理（Ｓ２２０）の手順を説明する。
ステップＳ２２１において、攻撃打消信号生成部２２４は、ステップＳ２１３で受け付けたセンサデータ系列から、攻撃開始時刻以降のセンサデータ系列を抽出する。
抽出されるセンサデータ系列を「異常データ系列」と称する。
【００８７】
但し、攻撃打消信号生成部２２４は、攻撃開始時刻よりも前の時刻以降のセンサデータ系列を抽出してもよい。これにより、制御対象１０１の状態を攻撃開始時刻よりも前の時刻の状態に戻すことができる。
【００８８】
ステップＳ２２２において、攻撃打消信号生成部２２４は、異常データ系列を攻撃打消データ系列に変換する。
【００８９】
図１５に基づいて、データ系列変換処理（Ｓ２２２）を説明する。
ステップＳ２２２１において、攻撃打消信号生成部２２４は、異常データ系列の各センサデータ値を基準値に対して反転させる。
【００９０】
具体的には、攻撃打消信号生成部２２４は、異常データ系列の各センサデータ値を基準値に対して次のように変転させる。
まず、攻撃打消信号生成部２２４は、センサデータ値から基準値を減算する。
次に、攻撃打消信号生成部２２４は、減算後のセンサデータ値の符号（正負）を反転する。
そして、攻撃打消信号生成部２２４は、符号反転後のセンサデータ値から基準値を減算する。
減算後のセンサデータ値が、基準値に対して反転させたセンサデータ値である。
【００９１】
式（１）を計算することにより、異常データ系列の各センサデータ値を基準値に対して反転させることができる。
「Ｓ’」は、基準値に対して反転させたセンサデータ値である。
「Ｓ」は、異常データ系列のセンサデータ値である。
「ｓｔｄ」は、基準値である。
【００９２】
Ｓ’＝−（Ｓ−ｓｔｄ）＋ｓｔｄ
＝２ｓｔｄ−Ｓ                  （１）
【００９３】
ステップＳ２２２２において、攻撃打消信号生成部２２４は、時系列における各センサデータ値の順序を逆転させる。
ステップＳ２２２２後の異常データ系列が攻撃打消データ系列である。
【００９４】
図１４に戻り、ステップＳ２２３を説明する。
ステップＳ２２３において、攻撃打消信号生成部２２４は、攻撃打消データ系列に対して制御アルゴリズムを実行する。これによって生成されるアクチュエータ制御信号系列が攻撃打消信号系列である。
ステップＳ２２３で実行される制御アルゴリズムは、コントローラ１１３における制御アルゴリズムと同じである。
【００９５】
＜第２の方法＞を説明する。
＜第２の方法＞では、制御対象１０１の正常な状態と、攻撃による誤った制御によって異常化した制御対象１０１の状態と、を互いに比べることによって、異常な状態を正常な状態に戻すようなアクチュエータ制御信号系列が生成される。生成されるアクチュエータ制御信号系列が攻撃打消信号系列である。
【００９６】
制御対象１０１の正常な状態を判断するために、攻撃打消信号生成部２２４は、受け付けたセンサデータ系列から、攻撃開始時刻の直前のセンサデータ値を抽出する。
制御対象１０１の異常な状態を推測するために、攻撃打消信号生成部２２４は、受け付けた通常制御信号系列から、攻撃開始時刻以降の通常制御信号系列を抽出する。抽出される通常制御信号系列を「異常制御信号系列」と称する。
そして、攻撃打消信号生成部２２４は、状態推定アルゴリズムを利用することによって、制御対象１０１の状態がどのような異常な状態であるかを特定する。
さらに、攻撃打消信号生成部２２４は、制御対象１０１が異常な状態から正常な状態に戻るために、アクチュエータ制御信号系列を生成する。生成されるアクチュエータ制御信号系列が攻撃打消信号系列である。
【００９７】
＜第２の方法＞は、センサデータ系列が非線形性を有する場合に特に有効である。
【００９８】
図１６に基づいて、＜第２の方法＞の手順を説明する。
ステップＳ３１１において、攻撃打消信号生成部２２４は、攻撃判定結果を受け付ける。
【００９９】
ステップＳ３１２において、攻撃打消信号生成部２２４は、攻撃判定結果に基づいて攻撃の有無を判定する。
「攻撃有り」と判定された場合、処理はステップＳ３１３に進む。
「攻撃無し」と判定された場合、処理はステップＳ３１５に進む。
【０１００】
ステップＳ３１３において、攻撃打消信号生成部２２４は、攻撃開始時刻と通常制御信号系列とセンサデータ系列とを受け付ける。
【０１０１】
ステップＳ３２０において、攻撃打消信号生成部２２４は、攻撃開始時刻と通常制御信号系列とセンサデータ系列とに基づいて、攻撃打消信号系列を生成する。
攻撃打消信号生成処理（Ｓ３２０）の手順について後述する。
【０１０２】
ステップＳ３１４において、攻撃打消信号生成部２２４は、攻撃打消信号系列を出力する。
具体的には、攻撃打消信号生成部２２４は、攻撃打消信号系列に含まれる１つ以上の攻撃打消信号を時系列順に１つずつ出力する。
ステップＳ３１４の後、処理は終了する。
【０１０３】
ステップＳ３１５において、攻撃打消信号生成部２２４は、攻撃打消信号系列としてダミー信号系列を出力する。
ダミー信号系列は、１つ以上のダミー値である。ダミー値はどのような値であってもよい。例えば、ダミー値は「０」である。
ステップＳ３１５の後、処理は終了する。
【０１０４】
図１７に基づいて、攻撃打消信号生成処理（Ｓ３２０）の手順を説明する。
ステップＳ３２１において、攻撃打消信号生成部２２４は、ステップＳ３１３で受け付けた通常制御信号系列から、攻撃開始時刻以降の通常制御信号系列を抽出する。
抽出される通常制御信号系列を「異常制御信号系列」と称する。
【０１０５】
但し、攻撃打消信号生成部２２４は、攻撃開始時刻よりも前の時刻以降の通常制御信号系列を抽出してもよい。これにより、制御対象１０１の状態を攻撃開始時刻よりも前の時刻の状態に戻すことができる。
【０１０６】
ステップＳ３２２において、攻撃打消信号生成部２２４は、異常制御信号系列を用いて状態推定アルゴリズムを実行する。これにより、現在の制御対象１０１の状態、すなわち、制御対象１０１の異常な状態が推定される。異常な状態を表す値を「異常状態値」と称する。
【０１０７】
例えば、状態推定アルゴリズムの実行のために、システム同定に基づいた状態推定器、または、カルマンフィルタ、を利用することができる。
システム同定に基づいた状態推定器については、非特許文献５で説明されている。
カルマンフィルタについては、非特許文献６で説明されている。
【０１０８】
ステップＳ３２３において、攻撃打消信号生成部２２４は、ステップＳ３１３で受け付けられたセンサデータ系列から、攻撃開始時刻の前の時刻のセンサデータを抽出する。具体的には、攻撃打消信号生成部２２４は、攻撃開始時刻の直前のセンサデータを抽出する。
抽出されるセンサデータは、制御対象１０１の正常な状態を表す。正常な状態を表す値を「正常状態値」と称する。
【０１０９】
但し、攻撃打消信号生成部２２４は、ステップＳ３１３でセンサデータ系列を受け付ける代わりに、攻撃開始時刻の前の時刻のセンサデータを受け付けてもよい。
【０１１０】
ステップＳ３２４において、攻撃打消信号生成部２２４は、異常状態値と正常状態値との差分を算出する。算出される差分を「状態変化量」と称する。
状態変化量は、ステップＳ３２３で抽出されたセンサデータが表す状態から、ステップＳ３２２で推定された状態へ、の変化量である。
【０１１１】
ステップＳ３２５において、攻撃打消信号生成部２２４は、状態変化量に基づいて攻撃打消信号系列を生成する。
具体的には、攻撃打消信号生成部２２４は、状態変化量を打ち消すようなアクチュエータ制御信号系列を生成する。つまり、攻撃打消信号生成部２２４は、制御対象１０１の状態を状態変化量だけ戻すためのアクチュエータ制御信号系列を生成する。生成されるアクチュエータ制御信号系列が攻撃打消信号系列である。
【０１１２】
制御対象１０１がドローンであり、アクチュエータ１１１がローターであり、センサ１１２が傾きセンサであると仮定する。
傾きセンサは、世界座標系におけるドローンの傾きを計測する。世界座標系におけるドローンの傾きは、ロールとピッチとヨーとの３つの値で表される。この場合、ロール軸まわりとピッチ軸まわりとヨー軸まわりとにおいてドローンが回転した量が、状態変化量となる。
攻撃打消信号生成部２２４は、ロール軸まわりとピッチ軸まわりとヨー軸まわりとにおいてドローンを状態変化量だけ逆回転させるようにローターを動作させる１つ以上のアクチュエータ制御信号を生成する。生成される１つ以上のアクチュエータ制御信号が攻撃打消信号系列である。
例えば、ロール軸とピッチ軸とヨー軸とのいずれかの軸まわりのプラス１０度の回転が状態変化量である場合、その軸まわりにマイナス１０度回転させるためのアクチュエータ制御信号が攻撃打消信号である。
【０１１３】
＜第３の方法＞を説明する。＜第３の方法＞では、センサデータ系列と通常制御信号系列とを用いて攻撃打消信号系列が生成される。
【０１１４】
攻撃打消信号生成部２２４は、攻撃打消信号系列を以下のように生成する。
まず、攻撃打消信号生成部２２４は、センサデータ系列を用いて＜第１の方法＞により、攻撃打消信号系列を生成する。生成される攻撃打消信号系列を「第１候補系列」と称する。
また、攻撃打消信号生成部２２４は、通常制御信号系列を用いて＜第２の方法＞により、攻撃打消信号系列を生成する。生成される攻撃打消信号系列を「第２候補系列」と称する。
そして、攻撃打消信号生成部２２４は、第１候補系列と第２候補系列とを用いて、攻撃打消信号系列を生成する。
例えば、攻撃打消信号生成部２２４は、時系列に第１候補系列における攻撃打消信号の信号値と第２候補系列における攻撃打消信号の信号値との平均を求める。求めた平均の時系列が攻撃打消信号系列となる。
【０１１５】
図６に戻り、攻撃打消信号生成部２２４の説明を続ける。
攻撃打消信号生成部２２４は、生成した攻撃打消信号系列を出力する。
攻撃打消信号生成部２２４から出力された攻撃打消信号系列は、制御信号出力部２３０に入力される。
【０１１６】
図７に基づいて、制御信号出力部２３０の動作を説明する。
制御信号出力部２３０には、各時刻に攻撃判定部２１２から攻撃判定結果が入力される。制御信号出力部２３０は、入力された攻撃判定結果を受け付ける。
制御信号出力部２３０には、各時刻にコントローラ１１３から通常制御信号が入力される。制御信号出力部２３０は、入力された通常制御信号を受け付ける。
制御信号出力部２３０には、攻撃打消信号生成部２２４から攻撃打消信号系列が入力される。制御信号出力部２３０は、入力された攻撃打消信号系列を受け付ける。
【０１１７】
制御信号出力部２３０は、攻撃判定結果に基づいて、通常制御信号と攻撃打消信号系列とのうちのいずれか一方を選択する。
攻撃判定結果が「攻撃無し」を示す場合、制御信号出力部２３０は、通常制御信号を選択する。
攻撃判定結果が「攻撃有り」を示す場合、制御信号出力部２３０は、攻撃打消信号系列を選択する。
【０１１８】
通常制御信号が選択された場合、制御信号出力部２３０は、通常制御信号を出力する。制御信号出力部２３０から出力された通常制御信号は、アクチュエータ１１１に入力される。
アクチュエータ１１１は、入力された通常制御信号を受け付け、受け付けた通常制御信号に従って動作する。これにより、アクチュエータ１１１は制御対象１０１に作用し、制御対象１０１は状態を変化させる。
【０１１９】
攻撃打消信号系列が選択された場合、制御信号出力部２３０は、攻撃打消信号系列を出力する。具体的には、制御信号出力部２３０は、仮制御信号生成部２４１からダミー信号が入力されるまで、仮制御信号生成部２４１から出力される順に攻撃打消信号を出力する。
制御信号出力部２３０から出力された攻撃打消信号は、アクチュエータ１１１に入力される。
アクチュエータ１１１は、入力された攻撃打消信号を受け付け、受け付けた攻撃打消信号に従って動作する。これにより、アクチュエータ１１１は制御対象１０１に作用し、制御対象１０１は状態を変化させる。
【０１２０】
＊＊＊実施の形態１の効果＊＊＊
実施の形態１では、攻撃開始時刻とセンサデータ系列との組、または、攻撃開始時刻とアクチュエータ制御信号系列との組が用いられる。そして、攻撃によりどのように制御対象１０１の状態が変化したか、あるいは誤って行った制御により制御対象１０１がどのような状態になったかが特定され、制御対象１０１を正常状態に戻すような制御を行うための攻撃打消信号が生成される。これにより、制御対象１０１を攻撃による異常状態から回復させることができる。
攻撃打消装置２００には、制御システム１１０からセンサデータとアクチュエータ制御信号とを入力すればよい。そのため、センサ１１２を加工する必要はない。また、センサ１１２に悪影響を及ぼすこともない。
センサ１１２は、特定のセンサに限定されない。温度センサ、光センサまたは圧力センサなど、例に挙げた傾きセンサ以外のセンサ１１２に対しても実施の形態１は適用することができる。また、センサ１１２にサンプル周期を設定することが可能である、といった特別な条件もない。
攻撃打消装置２００は、異常なセンサデータ、あるいは、異常なアクチュエータ制御信号を利用して攻撃打消信号を生成する。そのため、正常なセンサデータが全く利用できない状況であっても、制御対象１０１を攻撃による異常状態から回復させることができる。
【０１２１】
＊＊＊他の構成＊＊＊
攻撃検知部２１０と攻撃打消部２２０とのそれぞれが、攻撃スコア算出部（２１１）を備えてもよい。
それぞれの攻撃スコア算出部（２１１）は、同じ方法で攻撃スコアを算出してもよいし、異なる方法で攻撃スコアを算出してもよい。
攻撃判定部２１２は、攻撃検知部２１０の攻撃スコア算出部２１１によって算出された攻撃スコアを用いる。
攻撃開始時刻特定部２２３は、攻撃打消部２２０の攻撃スコア算出部によって算出された攻撃スコアを用いる。
【０１２２】
攻撃打消装置２００とコントローラ１１３とを統合してもよい。
攻撃打消装置２００は、複数台の装置で構成されてもよい。例えば、攻撃検知部２１０が外部の攻撃検知装置によって実現してもよい。
＜第１の方法＞で攻撃打消信号が生成される場合、攻撃打消装置２００は、制御信号格納部２２２を備えなくてもよい。
【０１２３】
実施の形態２．
制御対象１０１を異常状態から回復させた後も続く攻撃に対処する形態について、主に実施の形態１と異なる点を図１８から図２５に基づいて説明する。
【０１２４】
＊＊＊構成の説明＊＊＊
図１８に基づいて、攻撃打消システム１００の構成を説明する。
攻撃打消システム１００は、実施の形態１で説明したように、制御システム１１０と攻撃打消装置２００とを備える。
【０１２５】
攻撃打消装置２００は、実施の形態１で説明した要素に加えて、仮制御信号生成部２４１を備える。
【０１２６】
図１９に基づいて、攻撃打消装置２００の構成を説明する。
攻撃打消装置２００は、実施の形態１で説明した要素に加えて、仮制御部２４０を備える。
仮制御部２４０は、仮制御信号生成部２４１を備える。
攻撃打消プログラムは、さらに、仮制御部２４０としてコンピュータを機能させる。
【０１２７】
＊＊＊動作の説明＊＊＊
図２０に基づいて、仮制御信号生成部２４１の動作を説明する。
仮制御信号生成部２４１には、各時刻に攻撃判定部２１２から攻撃判定結果が入力される。仮制御信号生成部２４１は、入力された攻撃判定結果を受け付ける。
仮制御信号生成部２４１には、各時刻に攻撃開始時刻特定部２２３から攻撃開始時刻が入力される。仮制御信号生成部２４１は、入力された攻撃開始時刻を受け付ける。
仮制御信号生成部２４１には、センサデータ格納部２２１からセンサデータ系列が入力される。仮制御信号生成部２４１は、入力されたセンサデータ系列を受け付ける。
仮制御信号生成部２４１には、制御信号格納部２２２から通常制御信号系列が入力される。仮制御信号生成部２４１は、入力された通常制御信号系列を受け付ける。
【０１２８】
仮制御信号生成部２４１は、攻撃判定結果と攻撃開始時刻とセンサデータ系列と通常制御信号系列とに基づいて、仮制御信号系列を生成する。
仮制御信号系列は、センサ１１２への攻撃が行われない場合の予測のアクチュエータ制御信号系列である。
仮制御信号系列は、時系列に並んだ１つ以上の仮制御信号から成る。
仮制御信号は、予測された正常なアクチュエータ制御信号である。
【０１２９】
但し、仮制御信号生成部２４１は、センサデータ系列と通常制御信号系列とのうちの片方を用いて、仮制御信号系列を生成する。
通常制御信号系列を用いずにセンサデータ系列を用いる方法を［第１の方法］と称する。
センサデータ系列を用いずに通常制御信号系列を用いる方法を［第２の方法］と称する。
【０１３０】
［第１の方法］を説明する。
［第１の方法］では、正常なセンサデータ系列に基づいて未来の系列が予測され、予測されたセンサデータ系列に対応するアクチュエータ制御信号系列が生成される。生成されるアクチュエータ制御信号系列が仮制御信号系列である。
【０１３１】
図２１に基づいて、［第１の方法］の手順を説明する。
ステップＳ４１１において、仮制御信号生成部２４１は、攻撃判定結果を受け付ける。
【０１３２】
ステップＳ４１２において、仮制御信号生成部２４１は、攻撃判定結果に基づいて攻撃の有無を判定する。
「攻撃有り」と判定された場合、処理はステップＳ４１３に進む。
「攻撃無し」と判定された場合、処理はステップＳ４１７に進む。
【０１３３】
ステップＳ４１３において、仮制御信号生成部２４１は、攻撃開始時刻とセンサデータ系列とを受け付ける。
【０１３４】
ステップＳ４２０において、仮制御信号生成部２４１は、攻撃開始時刻とセンサデータ系列とに基づいて、仮制御信号系列を生成する。
仮制御信号生成処理（Ｓ４２０）の手順について後述する。
【０１３５】
ステップＳ４１４において、仮制御信号生成部２４１は、仮制御信号系列を出力する。
具体的には、仮制御信号生成部２４１は、仮制御信号系列に含まれる１つ以上の仮制御信号を時系列順に１つずつ出力する。
【０１３６】
ステップＳ４１５において、仮制御信号生成部２４１は、次の攻撃判定結果を受け付ける。
【０１３７】
ステップＳ４１６において、仮制御信号生成部２４１は、次の攻撃判定結果に基づいて攻撃の有無を判定する。
「攻撃有り」と判定された場合、処理はステップＳ４１４に進む。
「攻撃無し」と判定された場合、処理は終了する。
【０１３８】
ステップＳ４１７において、仮制御信号生成部２４１は、仮制御信号系列としてダミー信号系列を出力する。
ダミー信号系列は、１つ以上のダミー値である。ダミー値はどのような値であってもよい。例えば、ダミー値は「０」である。
ステップＳ４１７の後、処理は終了する。
【０１３９】
図２２に基づいて、仮制御信号生成処理（Ｓ４２０）の手順を説明する。
ステップＳ４２１において、仮制御信号生成部２４１は、受け付けたセンサデータ系列から、攻撃開始時刻以前のセンサデータ系列を抽出する。
抽出されるセンサデータ系列を「正常データ系列」と称する。
【０１４０】
ステップＳ４２２において、仮制御信号生成部２４１は、正常データ系列に対して予測アルゴリズムを実行する。これにより、予測データ系列が生成される。
予測アルゴリズムは、過去のセンサデータ系列に基づいて未来のセンサデータ系列を予測するためのアルゴリズムである。
予測データ系列は、攻撃開始時刻以降の予測のセンサデータ系列である。
【０１４１】
予測アルゴリズムとして、回帰分析が挙げられる。回帰分析は、時系列データ分析としてよく用いられる。
例えば、予測アルゴリズムにより、正常データ系列に基づいてＡＲＩＭＡモデルが推定される。そして、ＡＲＩＭＡモデルに基づいて予測データ系列が生成される。ＡＲＩＭＡはＳｅａｓｏｎａｌ  Ａｕｔｏｒｅｇｒｅｓｓｉｖｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｍｏｖｉｎｇ  Ａｖｅｒａｇｅの略称である。
【０１４２】
攻撃開始時刻以降のセンサデータであっても、完全には異常化していなければ、利用することができる。仮制御信号生成部２４１は、攻撃開始時刻以降のセンサデータから、アクチュエータ１１１の制御に利用できる情報を部分的に取り出し、取り出した情報（正常な部分の情報）を利用してもよい。
例えば、攻撃により各センサデータにバイアスが乗るだけであることが分かっている場合、仮制御信号生成部２４１は、抽出したセンサデータ系列を過去のセンサデータ系列と比較し、比較結果に基づいて、抽出したセンサデータ系列からバイアスを除去し、バイアスが除去されたセンサデータ系列に基づいて予測データ系列を生成する。
例えば、各センサデータが示す３軸の値のうちの１軸の値に対して攻撃が行われている場合、仮制御信号生成部２４１は、各センサデータが示す残り２軸の値を利用してもよい。
【０１４３】
ステップＳ４２３において、仮制御信号生成部２４１は、予測データ系列に対して制御アルゴリズムを実行する。これによって生成されるアクチュエータ制御信号系列が仮制御信号系列である。
ステップＳ４２３で実行される制御アルゴリズムは、コントローラ１１３における制御アルゴリズムと同じである。
【０１４４】
［第２の方法］を説明する。
［第２の方法］では、正常なアクチュエータ制御信号系列に基づいて未来のアクチュエータ制御信号系列が予測される。予測されたアクチュエータ制御信号系列が仮制御信号系列である。
【０１４５】
図２３に基づいて、［第２の方法］の手順を説明する。
ステップＳ５１１において、仮制御信号生成部２４１は、攻撃判定結果を受け付ける。
【０１４６】
ステップＳ５１２において、仮制御信号生成部２４１は、攻撃判定結果に基づいて攻撃の有無を判定する。
「攻撃有り」と判定された場合、処理はステップＳ５１３に進む。
「攻撃無し」と判定された場合、処理はステップＳ５１７に進む。
【０１４７】
ステップＳ５１３において、仮制御信号生成部２４１は、攻撃開始時刻と通常制御信号系列とを受け付ける。
【０１４８】
ステップＳ５２０において、仮制御信号生成部２４１は、攻撃開始時刻と通常制御信号系列とに基づいて、仮制御信号系列を生成する。
仮制御信号生成処理（Ｓ５２０）の手順について後述する。
【０１４９】
ステップＳ５１４において、仮制御信号生成部２４１は、仮制御信号系列を出力する。
具体的には、仮制御信号生成部２４１は、仮制御信号系列に含まれる１つ以上の仮制御信号を時系列順に１つずつ出力する。
【０１５０】
ステップＳ５１５において、仮制御信号生成部２４１は、次の攻撃判定結果を受け付ける。
【０１５１】
ステップＳ５１６において、仮制御信号生成部２４１は、次の攻撃判定結果に基づいて攻撃の有無を判定する。
「攻撃有り」と判定された場合、処理はステップＳ５１４に進む。
「攻撃無し」と判定された場合、処理は終了する。
【０１５２】
ステップＳ５１７において、仮制御信号生成部２４１は、仮制御信号系列としてダミー信号系列を出力する。
ダミー信号系列は、１つ以上のダミー値である。ダミー値はどのような値であってもよい。例えば、ダミー値は「０」である。
ステップＳ４１７の後、処理は終了する。
【０１５３】
図２４に基づいて、仮制御信号生成処理（Ｓ５２０）の手順を説明する。
ステップＳ５２１において、仮制御信号生成部２４１は、受け付けた通常制御信号系列から、攻撃開始時刻以前の通常制御信号系列を抽出する。
抽出される通常制御信号系列を「正常制御信号系列」と称する。
【０１５４】
ステップＳ５２２において、仮制御信号生成部２４１は、正常制御信号系列に対して予測アルゴリズムを実行する。これにより、予測制御信号系列が生成される。生成される予測制御信号系列が仮制御信号系列である。
予測アルゴリズムは、過去のアクチュエータ制御系列に基づいて未来のアクチュエータ制御信号系列を予測するためのアルゴリズムである。
予測制御信号系列は、正常制御信号系列に基づいて予測された未来のアクチュエータ制御信号系列である。
【０１５５】
予測アルゴリズムとして、回帰分析が挙げられる。回帰分析は、時系列データ分析としてよく用いられる。
例えば、予測アルゴリズムにより、正常制御信号系列に基づいてＡＲＩＭＡモデルが推定される。そして、ＡＲＩＭＡモデルに基づいて予測制御信号系列が生成される。
【０１５６】
［第１の方法］においてセンサデータ系列を部分的に利用するのと同様に、仮制御信号生成部２４１は、通常制御信号系列を部分的に利用してもよい。
【０１５７】
ステップＳ４２３において、仮制御信号生成部２４１は、予測データ系列に対して制御アルゴリズムを実行する。これによって生成されるアクチュエータ制御信号系列が仮制御信号系列である。
ステップＳ４２３で実行される制御アルゴリズムは、コントローラ１１３における制御アルゴリズムと同じである。
【０１５８】
図２０に戻り、仮制御信号生成部２４１の説明を続ける。
仮制御信号生成部２４１は、生成した仮制御信号系列を出力する。
仮制御信号生成部２４１から出力された仮制御信号系列は、制御信号出力部２３０に入力される。
【０１５９】
図２５に基づいて、制御信号出力部２３０の動作を説明する。
制御信号出力部２３０には、各時刻に攻撃判定部２１２から攻撃判定結果が入力される。制御信号出力部２３０は、入力された攻撃判定結果を受け付ける。
制御信号出力部２３０には、各時刻にコントローラ１１３から通常制御信号が入力される。制御信号出力部２３０は、入力された通常制御信号を受け付ける。
制御信号出力部２３０には、攻撃打消信号生成部２２４から攻撃打消信号系列が入力される。制御信号出力部２３０は、入力された攻撃打消信号系列を受け付ける。
制御信号出力部２３０には、仮制御信号生成部２４１から仮制御信号系列が入力される。制御信号出力部２３０は、入力された仮制御信号系列を受け付ける。
【０１６０】
制御信号出力部２３０は、攻撃判定結果に基づいて、通常制御信号と、攻撃打消信号系列と仮制御信号系列との組とのいずれか一方を選択する。
攻撃判定結果が「攻撃無し」を示す場合、制御信号出力部２３０は、通常制御信号を選択する。
攻撃判定結果が「攻撃有り」を示す場合、制御信号出力部２３０は、攻撃打消信号系列と仮制御信号系列との組を選択する。
【０１６１】
通常制御信号が選択された場合、制御信号出力部２３０は、通常制御信号を出力する。制御信号出力部２３０から出力された通常制御信号は、アクチュエータ１１１に入力される。
アクチュエータ１１１は、入力された通常制御信号を受け付け、受け付けた通常制御信号に従って動作する。これにより、アクチュエータ１１１は制御対象１０１に作用し、制御対象１０１は状態を変化させる。
【０１６２】
攻撃打消信号系列と仮制御信号系列との組が選択された場合、制御信号出力部２３０は、攻撃打消信号系列を出力した後に仮制御信号系列を出力する。
具体的には、制御信号出力部２３０は、仮制御信号生成部２４１からダミー信号が入力されるまで、仮制御信号生成部２４１から出力される順に各攻撃打消信号を出力する。攻撃打消信号系列の出力が開始されたときから仮制御信号系列の出力が終了するまでの間、制御信号出力部２３０は、仮制御信号生成部２４１から出力された順に仮制御信号をバッファに格納する。攻撃打消信号系列の出力が終了した後、制御信号出力部２３０は、バッファに格納された順に各仮制御信号を出力する。
制御信号出力部２３０から出力された各攻撃打消信号は、アクチュエータ１１１に入力される。アクチュエータ１１１は、入力された各攻撃打消信号を受け付け、受け付けた各攻撃打消信号に従って動作する。これにより、アクチュエータ１１１は制御対象１０１に作用し、制御対象１０１は状態を変化させる。
制御信号出力部２３０から出力された各仮制御信号は、アクチュエータ１１１に入力される。アクチュエータ１１１は、入力された各仮制御信号を受け付け、受け付けた各仮制御信号に従って動作する。これにより、アクチュエータ１１１は制御対象１０１に作用し、制御対象１０１は状態を変化させる。
【０１６３】
＊＊＊実施の形態２の効果＊＊＊
攻撃の影響から制御対象１０１を回復させた後にもセンサ１１２への攻撃が継続する場合、攻撃打消装置２００は、仮制御信号によってアクチュエータ１１１を動作させる。これにより、攻撃によりセンサ１１２が利用できない状況であっても、制御対象１０１に対する制御を継続させることが可能である。
【０１６４】
＊＊＊実施の形態の補足＊＊＊
図２６に基づいて、攻撃打消装置２００のハードウェア構成を説明する。
攻撃打消装置２００は処理回路２０９を備える。
処理回路２０９は、攻撃検知部２１０と攻撃打消部２２０と制御信号出力部２３０と仮制御部２４０とを実現するハードウェアである。
処理回路２０９は、専用のハードウェアであってもよいし、メモリ２０２に格納されるプログラムを実行するプロセッサ２０１であってもよい。
【０１６５】
処理回路２０９が専用のハードウェアである場合、処理回路２０９は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。
ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称であり、ＦＰＧＡはＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略称である。
攻撃打消装置２００は、処理回路２０９を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路２０９の役割を分担する。
【０１６６】
攻撃打消装置２００において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
【０１６７】
このように、処理回路２０９はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【０１６８】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【０１６９】
攻撃打消装置２００の要素である「部」は、「回路」、「工程」、「手順」または「処理」に読み替えてもよい。
【符号の説明】
【０１７０】
１００  攻撃打消システム、１０１  制御対象、１１０  制御システム、１１１  アクチュエータ、１１２  センサ、１１３  コントローラ、２００  攻撃打消装置、２０１  プロセッサ、２０２  メモリ、２０３  センサデータ入力インタフェース、２０４  制御信号入力インタフェース、２０５  制御信号出力インタフェース、２０９  処理回路、２１０  攻撃検知部、２１１  攻撃スコア算出部、２１２  攻撃判定部、２２０  攻撃打消部、２２１  センサデータ格納部、２２２  制御信号格納部、２２３  攻撃開始時刻特定部、２２４  攻撃打消信号生成部、２３０  制御信号出力部、２４０  仮制御部、２４１  仮制御信号生成部。
【図１】
0006824491.tif 000002
【図２】
0006824491.tif 000003
【図３】
0006824491.tif 000004
【図４】
0006824491.tif 000005
【図５】
0006824491.tif 000006
【図６】
0006824491.tif 000007
【図７】
0006824491.tif 000008
【図８】
0006824491.tif 000009
【図９】
0006824491.tif 000010
【図１０】
0006824491.tif 000011
【図１１】
0006824491.tif 000012
【図１２】
0006824491.tif 000013
【図１３】
0006824491.tif 000014
【図１４】
0006824491.tif 000015
【図１５】
0006824491.tif 000016
【図１６】
0006824491.tif 000017
【図１７】
0006824491.tif 000018
【図１８】
0006824491.tif 000019
【図１９】
0006824491.tif 000020
【図２０】
0006824491.tif 000021
【図２１】
0006824491.tif 000022
【図２２】
0006824491.tif 000023
【図２３】
0006824491.tif 000024
【図２４】
0006824491.tif 000025
【図２５】
0006824491.tif 000026
【図２６】
0006824491.tif 000027