(57)【要約】【課題】制御システム等において、異常が検出された場合に、その原因が装置、伝送路等の故障かサイバー攻撃かを高精度で判定することを課題とする。【解決手段】実施形態の冗長化処理装置は、第１制御部と、第２制御部と、を備える。第１制御部は、データ本体、第１誤り検出符号、第２誤り検出符号を含む制御データを受け取り、第１誤り検出符号を用いてデータ本体が正常か異常かの判定を行う。第２制御部は、制御データを受け取り、第２誤り検出符号を用いてデータ本体が正常か異常かの判定を行う。そして、第１制御部および第２制御部の少なくともいずれかは、第１制御部および第２制御部の一方がデータ本体を正常と判定し、かつ、他方がデータ本体を異常と判定した場合、他方の故障と判定し、第１制御部と第２制御部の両方がデータ本体を異常と判定した場合、制御データがサイバー攻撃によるデータであると判定する。【選択図】図１
2017192105.tif 000002
【特許請求の範囲】
【請求項１】
データ本体、第１誤り検出符号、第２誤り検出符号を含む制御データを受け取り、前記第１誤り検出符号を用いて前記データ本体が正常か異常かの判定を行う第１制御部と、
前記制御データを受け取り、前記第２誤り検出符号を用いて前記データ本体が正常か異常かの判定を行う第２制御部と、を備え、
前記第１制御部および前記第２制御部の少なくともいずれかは、
前記第１制御部が前記データ本体を正常と判定し、かつ、前記第２制御部が前記データ本体を異常と判定した場合、前記第２制御部の故障と判定し、
前記第１制御部が前記データ本体を異常と判定し、かつ、前記第２制御部が前記データ本体を正常と判定した場合、前記第１制御部の故障と判定し、
前記第１制御部と前記第２制御部の両方が前記データ本体を異常と判定した場合、前記制御データがサイバー攻撃によるデータであると判定する、冗長化処理装置。
【請求項２】
前記制御データは、逐次送出されるたびに数値が所定の規則に基づいて変化する第３誤り検出符号を含んでおり、
前記第１制御部および前記第２制御部の少なくともいずれかは、
前記第１制御部が前記データ本体を正常と判定し、かつ、前記第２制御部が前記データ本体を正常と判定した場合であっても、
前記制御データにおける第３誤り検出符号の数値が、１つ前に受け取った制御データにおける第３誤り検出符号の数値と同じである場合、前記制御データを送出する装置の故障と判定し、
前記制御データにおける第３誤り検出符号の数値が、１つ前に受け取った制御データにおける第３誤り検出符号の数値から前記所定の規則に基づかない変化をしている場合、前記制御データがサイバー攻撃によるデータであると判定する、請求項１に記載の冗長化処理装置。
【請求項３】
データ本体、第１誤り検出符号を含む第１制御データを第１伝送路から受け取り、前記第１誤り検出符号を用いて前記データ本体が正常か異常かの判定を行う第１制御部と、
前記データ本体、第２誤り検出符号を含む第２制御データを第２伝送路から受け取り、前記第２誤り検出符号を用いて前記データ本体が正常か異常かの判定を行う第２制御部と、を備え、
前記第１制御部および前記第２制御部の少なくともいずれかは、
前記第１制御部が前記データ本体を正常と判定し、かつ、前記第２制御部が前記データ本体を異常と判定した場合、前記第２制御部または前記第２伝送路の故障と判定し、
前記第１制御部が前記データ本体を異常と判定し、かつ、前記第２制御部が前記データ本体を正常と判定した場合、前記第１制御部または前記第１伝送路の故障と判定し、
前記第１制御部と前記第２制御部の両方が前記データ本体を異常と判定した場合、前記第１制御データ、前記第２制御データがサイバー攻撃によるデータであると判定する、冗長化処理装置。
【請求項４】
前記第１制御部および前記第２制御部の少なくともいずれかは、
前記第１制御部が前記データ本体を正常と判定し、かつ、前記第２制御部が前記第２制御データを受信しなかった場合、前記第２制御部または前記第２伝送路の故障と判定し、
前記第１制御部が前記第１制御データを受信せず、かつ、前記第２制御部が前記データ本体を正常と判定した場合、前記第１制御部または前記第１伝送路の故障と判定する、請求項３に記載の冗長化処理装置。
【請求項５】
前記第１制御部および前記第２制御部の少なくともいずれかは、
前記第１制御部が前記データ本体を異常と判定し、かつ、前記第２制御部が前記第２制御データを受信しなかった場合、および、
前記第１制御部が前記第１制御データを受信せず、かつ、前記第２制御部が前記データ本体を異常と判定した場合、
前記第１制御データ、前記第２制御データがサイバー攻撃によるデータであると判定する、請求項３または請求項４に記載の冗長化処理装置。
【請求項６】
前記第１制御データは、逐次送出されるたびに数値が所定の規則に基づいて変化する第３誤り検出符号を含んでおり、
前記第１制御部は、
前記第１制御部が前記データ本体を正常と判定し、かつ、前記第２制御部が前記データ本体を正常と判定した場合であっても、
前記第１制御データにおける第３誤り検出符号の数値が、１つ前に受け取った第１制御データにおける第３誤り検出符号の数値と同じである場合、前記第１制御データを送出する装置の故障と判定し、
前記第１制御データにおける第３誤り検出符号の数値が、１つ前に受け取った第１制御データにおける第３誤り検出符号の数値から前記所定の規則に基づかない変化をしている場合、前記第１制御データがサイバー攻撃によるデータであると判定する、請求項３から請求項５までのいずれか一項に記載の冗長化処理装置。
【請求項７】
第１制御部が、データ本体、第１誤り検出符号、第２誤り検出符号を含む制御データを受け取り、前記第１誤り検出符号を用いて前記データ本体が正常か異常かの判定を行うステップと、
第２制御部が、前記制御データを受け取り、前記第２誤り検出符号を用いて前記データ本体が正常か異常かの判定を行うステップと、
前記第１制御部および前記第２制御部の少なくともいずれかが、
前記第１制御部が前記データ本体を正常と判定し、かつ、前記第２制御部が前記データ本体を異常と判定した場合、前記第２制御部の故障と判定し、
前記第１制御部が前記データ本体を異常と判定し、かつ、前記第２制御部が前記データ本体を正常と判定した場合、前記第１制御部の故障と判定し、
前記第１制御部と前記第２制御部の両方が前記データ本体を異常と判定した場合、前記制御データがサイバー攻撃によるデータであると判定するステップと、を含む異常判定方法。
【請求項８】
第１制御部が、データ本体、第１誤り検出符号を含む第１制御データを第１伝送路から受け取り、前記第１誤り検出符号を用いて前記データ本体が正常か異常かの判定を行うステップと、
第２制御部が、前記データ本体、第２誤り検出符号を含む第２制御データを第２伝送路から受け取り、前記第２誤り検出符号を用いて前記データ本体が正常か異常かの判定を行うステップと、
前記第１制御部および前記第２制御部の少なくともいずれかが、
前記第１制御部が前記データ本体を正常と判定し、かつ、前記第２制御部が前記データ本体を異常と判定した場合、前記第２制御部または前記第２伝送路の故障と判定し、
前記第１制御部が前記データ本体を異常と判定し、前記第２制御部が前記データ本体を正常と判定した場合、前記第１制御部または前記第１伝送路の故障と判定し、
前記第１制御部と前記第２制御部の両方が前記データ本体を異常と判定した場合、前記第１制御データ、前記第２制御データがサイバー攻撃によるデータであると判定するステップと、を含む異常判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、冗長化処理装置、および、異常判定方法に関する。
【背景技術】
【０００２】
従来、例えば、プラントやフィールド機器を監視・制御する制御システム等においては、データを送受信するための送信装置、受信装置、伝送路等の異常（故障等）による影響のリスクを最小限にするために、異常を検出する仕組みが求められている。
【０００３】
異常を検出する手法としては、例えば、送信装置が、データ本体に、シーケンス番号や時刻情報（タイムスタンプ）など、通信フレームごとに増加する数値を付しておくものがある。この手法によれば、受信装置がその増加するべき値を監視することで、異常を検出することができる。例えば、送信装置が故障して、通信フレームごとに１ずつ増加するべきシーケンス番号が連続して同じ値になっていると、受信装置は、それを異常として検出し、送信装置の故障の可能性を認識することができる。
【０００４】
また、異常を検出する他の手法としては、例えば、送信装置が、データ本体に、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）などの誤り検出符号（誤り訂正符号）を付しておくものがある。この手法によれば、受信装置がその誤り検出符号をチェック（計算、照合）することで、異常（データの破損等）を検出することができる。
【０００５】
しかし、上記のいずれの手法でも、例えば、受信装置のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に故障が生じると、異常検出を正確に行えなくなる。その対策として、例えば、受信装置において異常検出を行う制御部を二重化（冗長化）しておき、それぞれの制御部がＣＲＣチェックを行う手法がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−４３２３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
制御システム等において異常が検出された場合に、その原因としては、装置、伝送路等の故障のほかに、例えば、情報セキュリティ上の脅威であるサイバー攻撃も考えられる。サイバー攻撃としては、例えば、介入者攻撃（中間者攻撃）がある。介入者攻撃があると、例えば、受信装置は、想定外のフレームフォーマットのデータを受信し、ＣＲＣチェックを実施する。そのような可能性も考えると、従来技術では、異常が検出された場合に、その原因が装置、伝送路等の故障かサイバー攻撃かの区別がつかないことが多い。また、例えば、制御システムは、社会基盤、産業基盤であるので連続運転することが重要となっており、故障以外の要因ではシステムの停止を避けたいという事情もある。
【０００８】
そこで、本発明は、このような状況に鑑みてなされたものであり、制御システム等において、異常が検出された場合に、その原因が装置、伝送路等の故障かサイバー攻撃かを高精度で判定することを課題とする。
【課題を解決するための手段】
【０００９】
実施形態の冗長化処理装置は、第１制御部と、第２制御部と、を備える。第１制御部は、データ本体、第１誤り検出符号、第２誤り検出符号を含む制御データを受け取り、第１誤り検出符号を用いてデータ本体が正常か異常かの判定を行う。第２制御部は、制御データを受け取り、第２誤り検出符号を用いてデータ本体が正常か異常かの判定を行う。そして、第１制御部および第２制御部の少なくともいずれかは、第１制御部がデータ本体を正常と判定し、かつ、第２制御部がデータ本体を異常と判定した場合、第２制御部の故障と判定する。また、第１制御部および第２制御部の少なくともいずれかは、第１制御部がデータ本体を異常と判定し、かつ、第２制御部がデータ本体を正常と判定した場合、第１制御部の故障と判定する。また、第１制御部および第２制御部の少なくともいずれかは、第１制御部と第２制御部の両方がデータ本体を異常と判定した場合、制御データがサイバー攻撃によるデータであると判定する。
【図面の簡単な説明】
【００１０】
【図１】図１は、第１実施形態の冗長化処理装置の構成例を示すブロック図である。
【図２】図２は、第１実施形態における制御データのフレームフォーマット例を示す図である。
【図３】図３は、第１実施形態における判定テーブル＃１の例を示す図である。
【図４】図４は、第１実施形態における主制御部と副制御部の動作例を示すフローチャートである。
【図５】図５は、第１実施形態における比較照合処理＃１の例を示すフローチャートである。
【図６】図６は、第２実施形態における制御データのフレームフォーマット例を示す図である。
【図７】図７は、第２実施形態における判定テーブル＃２の例を示す図である。
【図８】図８は、第２実施形態における主制御部と副制御部の動作例を示すフローチャートである。
【図９】図９は、第２実施形態における比較照合処理＃２の例を示すフローチャートである。
【図１０】図１０は、第３実施形態の冗長化処理装置の構成例を示すブロック図である。
【図１１】図１１は、第４実施形態の冗長化処理装置の構成例を示すブロック図である。
【図１２】図１２は、第４実施形態における制御データのフレームフォーマット例を示す図である。
【図１３】図１３は、第４実施形態における判定テーブル＃３の例を示す図である。
【図１４】図１４は、第４実施形態における制御部Ａと制御部Ｂの動作例を示すフローチャートである。
【図１５】図１５は、第４実施形態における比較照合処理＃３の例を示すフローチャートである。
【図１６】図１６は、第５実施形態における制御部Ａと制御部Ｂの動作例を示すフローチャートである。
【図１７】図１７は、第５実施形態における比較照合処理＃４の例を示すフローチャートである。
【図１８】図１８は、第６実施形態の冗長化処理装置の構成例を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、実施形態の冗長化処理装置、および、異常判定方法について、図面を参照して説明する。
【００１２】
（第１実施形態）
第１実施形態の冗長化処理装置について、図１〜図５を用いて説明する。図１は、第１実施形態の冗長化処理装置１００の構成例を示すブロック図である。冗長化処理装置１００は、例えば、プラントやフィールド機器を監視・制御する制御システム等における受信装置（各種装置における受信部等）である。冗長化処理装置１００は、主な構成として、伝送部１１０、主制御部１２０（第１制御部の一例）、副制御部１３０（第２制御部の一例）、出力部１４０、および、記憶部１５０を備える。
【００１３】
伝送部１１０は、制御データ（以下、単に「データ」という場合もある。）の送受信インタフェースである。また、出力部１４０は、主制御部１２０から受信した信号を出力（外部送信出力、表示出力等）する。記憶部１５０は、後述する判定テーブル＃１（図３）、判定テーブル＃２（図７）等の各種情報を記憶する。また、冗長化処理装置１００では、制御部が、主制御部１２０と副制御部１３０に二重化（冗長化）されている。主制御部１２０は、伝送部１１０および出力部１４０と接続されている。副制御部１３０は、主制御部１２０と接続されている。
【００１４】
主制御部１２０は、データ本体、第１誤り検出符号、第２誤り検出符号を含む制御データ（図２で後述）を受け取り、第１誤り検出符号を用いてデータ本体が正常か異常かの判定を行う等の動作をする。主制御部１２０は、暗号化／復号化部１２１、判定部１２２、演算部１２３、および、転送部１２４を備える。暗号化／復号化部１２１は、データの暗号化、復号化を行う。判定部１２２は、データに関する各種判定を行う（詳細は後述）。演算部１２３は、制御データに基づき演算等を行い、出力部１４０に対して信号を出力する。転送部１２４は、副制御部１３０との間でデータの転送を行う。
【００１５】
副制御部１３０は、制御データを受け取り、第２誤り検出符号を用いてデータ本体が正常か異常かの判定を行う等の動作をする。副制御部１３０は、暗号化／復号化部１３１、判定部１３２、および、転送部１３４を備える。暗号化／復号化部１３１は、データの暗号化、復号化を行う。判定部１３２は、データに関する各種判定を行う（詳細は後述）。転送部１３４は、主制御部１２０との間でデータの転送を行う。
【００１６】
なお、本実施形態では、主制御部１２０内の各部、および、副制御部１３０の各部は、それぞれバスで互いに接続しているが、これに限定されず、例えば、各部間が１対１で接続されていてもよい。
【００１７】
主制御部１２０および副制御部１３０の少なくともいずれかは、主制御部１２０がデータ本体を正常と判定し、かつ、副制御部１３０がデータ本体を異常と判定した場合、副制御部１３０の故障と判定する。また、主制御部１２０および副制御部１３０の少なくともいずれかは、主制御部１２０がデータ本体を異常と判定し、かつ、副制御部１３０がデータ本体を正常と判定した場合、主制御部１２０の故障と判定する。また、主制御部１２０および副制御部１３０の少なくともいずれかは、主制御部１２０と副制御部１３０の両方がデータ本体を異常と判定した場合、制御データがサイバー攻撃によるデータであると判定する。
【００１８】
図２は、第１実施形態における制御データのフレームフォーマット例を示す図である。図２（ａ）に示すデータ（暗号化前データ、復号化後データ）は、ターゲット、データ本体、ＣＲＣ「Ａ」（第１誤り検出符号）、ＣＲＣ「Ｂ」（第２誤り検出符号）からなる制御データである。ターゲットは、全フレームで共通の数ビット（例えば４ビット）のデータであり、例えば「１１１１」である。ＣＲＣ「Ａ」、ＣＲＣ「Ｂ」は、異なるアルゴリズムにより生成される。この制御データが暗号化されると、図２（ｂ）に示す暗号化データとなる。なお、暗号化、復号化の方式としては、共通鍵方式や秘密鍵方式などのようなシステム共通の方式を用いてもよいし、あるいは、通信セッション等の単位で固有の方式を用いてもよい。
【００１９】
図３は、第１実施形態における判定テーブル＃１の例を示す図である。判定テーブル＃１の左側の２列において、「正常」は、その制御部（主制御部１２０、副制御部１３０のいずれか）での判定結果（ターゲットを用いた判定の結果、ＣＲＣチェックによる判定の結果）が正常で、「異常」は、その制御部での制御データの判定結果が異常であったことを示す。
【００２０】
判定テーブル＃１に示すように、主制御部１２０、副制御部１３０の両方の判定結果が「正常」であると、最終判定（図では「判定」）は「正常」となる。また、主制御部１２０の判定結果が「正常」で、副制御部１３０の判定結果が「異常」であると、最終判定は「副制御部１３０の故障」となる。また、主制御部１２０の判定結果が「異常」で、副制御部１３０の判定結果が「正常」であると、最終判定は「主制御部１２０の故障」となる。また、主制御部１２０、副制御部１３０の両方の判定結果が「異常」であると、最終判定は「サイバー攻撃」となり、その制御データは破棄することになる。
【００２１】
図４は、第１実施形態における冗長化処理装置１００の主制御部１２０と副制御部１３０の動作例を示すフローチャートである。主制御部１２０は、伝送部１１０からの暗号化データの受信を待ち（ステップＳ１０１）、その後、伝送部１１０から暗号化データを受信する（ステップＳ１０２）。また、副制御部１３０は、主制御部１２０からの暗号化データの受信を待つ（ステップＳ２０１）。
【００２２】
次に、主制御部１２０は転送部１２４を用いて暗号化データを副制御部１３０に転送し（ステップＳ１０３）、副制御部１３０は転送部１３４を用いてその暗号化データを受信する（ステップＳ２０２）。
【００２３】
主制御部１２０は、暗号化データを復号処理する（ステップＳ１０４。図２）。この復号処理において、まず、暗号化／復号化部１２１は、暗号化データを復号化して復号化データにする。その後、判定部１２２は、復号化データにおけるターゲットが正常か異常かを判定する。
【００２４】
また、副制御部１３０は、暗号化データを復号処理する（ステップＳ２０３。図２）。この復号処理において、まず、暗号化／復号化部１３１は、暗号化データを復号化して復号化データにする。その後、判定部１３２は、復号化データにおけるターゲットが正常か異常かを判定する。なお、暗号化／復号化部１２１による復号化のアルゴリズムと、暗号化／復号化部１３１による復号化のアルゴリズムは、同じである。
【００２５】
次に、主制御部１２０の転送部１２４と、副制御部１３０の転送部１３４は、ターゲットによる判定結果を互いに転送しあう（ステップＳ１０５，Ｓ２０４）。
【００２６】
次に、主制御部１２０は、判定部１２２を用いて、ターゲットによる判定結果に基づく比較照合処理＃１を、判定テーブル＃１（図３）を使用して行う（ステップＳ１０６）。ステップＳ１０６について、図５を用いて以下に詳述する。図５は、第１実施形態における比較照合処理＃１の例を示すフローチャートである。
【００２７】
まず、判定部１２２は、主制御部１２０でのターゲットによる判定結果と、副制御部１３０でのターゲットによる判定結果とが、両方とも正常（ＯＫ）であったか否かを判定し（ステップＳ３０１）、Ｙｅｓの場合はステップＳ３０２に進み、Ｎｏの場合はステップＳ３０３に進む。ステップＳ３０２では、主制御部１２０は、後段処理へ遷移する、つまり、図４のステップＳ１０７に進む。
【００２８】
ステップＳ３０３において、判定部１２２は、主制御部１２０でのターゲットによる判定結果と、副制御部１３０でのターゲットによる判定結果とが、両方とも異常（ＮＧ）であったか否かを判定し、Ｙｅｓの場合はステップＳ３０４に進み、Ｎｏの場合はステップＳ３０６に進む。
【００２９】
ステップＳ３０４において、判定部１２２は、両方ＮＧということは、データが正しいフレームフォーマットで伝送されていない可能性が高い、つまり、サイバー攻撃（悪意ある第三者による不正パケットデータ送信）である可能性が高いと判定する。その後、判定部１２２は、その復号化データを破棄し（ステップＳ３０５）、スタート（図４の主制御部の「スタート」）に戻る（ステップＳ３０７）。
【００３０】
一方、ステップＳ３０６において、判定部１２２は、片方だけＮＧということは、ＮＧの側の制御部（主制御部１２０と副制御部１３０のいずれか）に故障が生じている可能性が高いと判定する。このステップＳ３０６では、例えば、主制御部１２０は、ユーザにその故障の旨を通知（表示、音声出力等）してもよいし、あるいは、システムを安全のために停止させてもよい。システムを停止させる場合は、例えば、アベイラビリティを考慮して、リトライ回数ｎを設け、連続ｎ回失敗した場合に停止するようにしてもよい。ステップＳ３０６の後、判定部１２２は、スタート（図４の主制御部の「スタート」）に戻る（ステップＳ３０７）。
【００３１】
副制御部１３０は、ステップＳ２０４の後、判定部１３２を用いて、ターゲットによる判定結果に基づく比較照合処理＃１を、判定テーブル＃１（図３）を使用して行う（ステップＳ２０５）。ステップＳ２０５は、ステップＳ１０６と同様であるので、説明を省略する。
【００３２】
次に、ステップＳ１０７において、主制御部１２０は、復号化データについてＣＲＣチェックを行う。ここで、判定部１２２は、図２（ａ）におけるＣＲＣ「Ａ」を用いて、計算と照合を行い、正常か異常かを判定する。ＣＲＣチェック自体については、公知技術であるので、詳細な説明を省略する。
【００３３】
また、ステップＳ２０６において、副制御部１３０は、復号化データについてＣＲＣチェックを行う。ここで、判定部１３２は、図２（ａ）におけるＣＲＣ「Ｂ」を用いて、計算と照合を行い、正常か異常かを判定する。
【００３４】
次に、主制御部１２０の転送部１２４と、副制御部１３０の転送部１３４は、ＣＲＣチェックによる判定結果を互いに転送しあう（ステップＳ１０８，Ｓ２０７）。
【００３５】
次に、主制御部１２０は、判定部１２２を用いて、ＣＲＣチェックによる判定結果に基づく比較照合処理＃１を、判定テーブル＃１（図３）を使用して行う（ステップＳ１０９）。ステップＳ１０９について、図５を用いて以下に詳述する。
【００３６】
まず、判定部１２２は、主制御部１２０でのＣＲＣチェックによる判定結果と、副制御部１３０でのＣＲＣチェックによる判定結果とが、両方とも正常（ＯＫ）であったか否かを判定し（ステップＳ３０１）、Ｙｅｓの場合はステップＳ３０２に進み、Ｎｏの場合はステップＳ３０３に進む。ステップＳ３０２では、主制御部１２０は、後段処理へ遷移する、つまり、図４のステップＳ１１０に進む。
【００３７】
次に、ステップＳ３０３において、判定部１２２は、主制御部１２０でのＣＲＣチェックによる判定結果と、副制御部１３０でのＣＲＣチェックによる判定結果とが、両方とも異常（ＮＧ）であったか否かを判定し、Ｙｅｓの場合はステップＳ３０４に進み、Ｎｏの場合はステップＳ３０６に進む。
【００３８】
ステップＳ３０４において、判定部１２２は、両方ＮＧということは、データが正しいフレームフォーマットで伝送されていない可能性が高い、つまり、サイバー攻撃（悪意ある第三者による不正パケットデータ送信）である可能性が高いと判定する。その後、判定部１２２は、その復号化データを破棄し（ステップＳ３０５）、スタート（図４の主制御部の「スタート」）に戻る（ステップＳ３０７）。
【００３９】
一方、ステップＳ３０６において、判定部１２２は、片方だけＮＧということは、ＮＧの側の制御部（主制御部１２０と副制御部１３０のいずれか）に故障が生じている可能性が高いと判定する。このステップＳ３０６では、例えば、主制御部１２０は、ユーザにその故障の旨を通知（表示、音声出力等）してもよいし、あるいは、システムを安全のために停止させてもよい。ステップＳ３０６の後、判定部１２２は、スタート（図４の主制御部の「スタート」）に戻る（ステップＳ３０７）。
【００４０】
副制御部１３０は、ステップＳ２０７の後、判定部１３２を用いて、ＣＲＣチェックによる判定結果に基づく比較照合処理＃１を、判定テーブル＃１（図３）を使用して行う（ステップＳ２０８）。ステップＳ２０８は、ステップＳ１０９と同様であるので、説明を省略する。ステップＳ２０８の後、ステップＳ２０１に戻る。
【００４１】
ステップＳ１１０において、主制御部１２０は、ステップＳ１０６とステップＳ１０９でともに両方ＯＫという判定であったということなので、演算部１２３を用いて復号化データに対して演算処理を行う。次に、主制御部１２０は、演算部１２３を用いて演算処理によって得られた信号を出力部１４０に出力し（ステップＳ１１１）、ステップＳ１０１に戻る。
【００４２】
このように、第１実施形態の冗長化処理装置１００によれば、制御部を主制御部１２０と副制御部１３０の二つに冗長化し、判定テーブル＃１（図３）を用いた処理を行うことで、制御システム等において、異常が検出された場合に、その原因が装置等の故障かサイバー攻撃かを高精度で判定することができる。それにより、故障以外でのシステム停止を抑制することができ、システム全体のアベイラビリティを高く維持することができる。
【００４３】
（第２実施形態）
次に、第２実施形態の冗長化処理装置１００について、図６〜図９を用いて説明する。冗長化処理装置１００の構成は第１実施形態の場合（図１）と同様である。第２実施形態は、第１実施形態と比べて、制御データに、逐次送出されるたびに数値が所定の規則に基づいて変化する第３誤り検出符号を含ませ、その第３誤り検出符号を用いて故障かサイバー攻撃かを判別する点で相違する。以下、主に第１実施形態との相違点について説明する。また、第３誤り検出符号としては、例えば、シーケンス番号、時刻情報（タイムスタンプ）等が考えられるが、以下では、逐次送出されるたびに数値が１増加するシーケンス番号を例にとる。
【００４４】
主制御部１２０および副制御部１３０（図１）の少なくともいずれかは、主制御部１２０が第１誤り検出符号を用いてデータ本体を正常と判定し、かつ、副制御部１３０が第２誤り検出符号を用いてデータ本体を正常と判定した場合であっても、次のように判定する。主制御部１２０および副制御部１３０の少なくともいずれかは、制御データにおける第３誤り検出符号の数値が、１つ前に受け取った制御データにおける第３誤り検出符号の数値と同じである場合、制御データを送出する装置の故障と判定する。また、主制御部１２０および副制御部１３０の少なくともいずれかは、制御データにおける第３誤り検出符号の数値が、１つ前に受け取った制御データにおける第３誤り検出符号の数値から所定の規則に基づかない変化をしている場合、制御データがサイバー攻撃によるデータであると判定する。
【００４５】
図６は、第２実施形態における制御データのフレームフォーマット例を示す図である。図６（ａ）に示すデータ（暗号化前データ、復号化後データ）は、ターゲット、データ本体、シーケンス番号、ＣＲＣ「Ａ」、ＣＲＣ「Ｂ」からなる制御データである。シーケンス番号は、制御データが逐次送出されるたびに数値が１ずつ増加する。この制御データが暗号化されると、図６（ｂ）に示す暗号化データとなる。
【００４６】
図７は、第２実施形態における判定テーブル＃２の例を示す図である。判定テーブル＃２に示すように、シーケンス番号の今回値が前回値よりも大きいと（今回値＞前回値）、判定は「正常」となる。また、シーケンス番号の今回値が前回値と同じであると（今回値＝前回値）、判定は「送信側（送信装置）の故障」となる。また、シーケンス番号の今回値が前回値よりも小さいと（今回値＜前回値）、判定は「サイバー攻撃」となり、その制御データは破棄することになる。
【００４７】
図８は、第２実施形態における主制御部１２０と副制御部１３０の動作例を示すフローチャートである。図８のフローチャートは、図４のフローチャートと比較して、ステップＳ１０６がステップＳ１０６１に置き換わり、ステップＳ２０５がステップＳ２０５１に置き換わっている点で相違する。
【００４８】
ステップＳ１０５の後、主制御部１２０は、判定部１２２を用いて、比較照合処理＃２を、判定テーブル＃１（図３）、判定テーブル＃２（図７）を使用して行う（ステップＳ１０６１）。ステップＳ１０６１について、図９を用いて以下に詳述する。図９は、第２実施形態における比較照合処理＃２の例を示すフローチャートである。ステップＳ３０１〜Ｓ３０７は、図５と同様であるので、説明を省略する。
【００４９】
ステップＳ３０１でＹｅｓの後、判定部１２２は、今回の制御データのシーケンス番号の値（今回値）が前回の制御データのシーケンス番号の値（前回値）よりも大きいか否かを判定し（ステップＳ４０１）、Ｙｅｓの場合はステップＳ３０２に進み、Ｎｏの場合はステップＳ４０２に進む。
【００５０】
ステップＳ４０２において、判定部１２２は、今回値と前回値が同じか否かを判定し、Ｙｅｓの場合はステップＳ４０３に進み、Ｎｏの場合はステップＳ４０４に進む。
【００５１】
ステップＳ４０３において、判定部１２２は、今回値と前回値が同じということは、送信側（送信装置）に故障が生じている可能性が高いと判定する。このステップＳ４０３では、例えば、主制御部１２０は、ユーザにその故障の旨を通知（表示、音声出力等）してもよいし、あるいは、システムを安全のために停止させてもよい。ステップＳ４０３の後、判定部１２２は、スタート（図８の主制御部の「スタート」）に戻る（ステップＳ４０６）。
【００５２】
一方、ステップＳ４０４において、判定部１２２は、今回値が前回値よりも小さい（今回値＜前回値）ということは、悪意ある第三者が正常な伝送パケットを傍受し、そのフレームを再び送信し、正規ユーザになりすまそうとするリプレイ攻撃等のサイバー攻撃をしている可能性が高いと判定する。その後、判定部１２２は、その復号化データを破棄し（ステップＳ４０５）、スタート（図８の制御部の「スタート」）に戻る（ステップＳ４０６）。
【００５３】
副制御部１３０によるステップＳ２０５１は、主制御部１２０によるステップＳ１０６１と同様であるので、説明を省略する。
【００５４】
このように、第２実施形態の冗長化処理装置１００によれば、第１実施形態の場合の効果に加えて、シーケンス番号等の第３誤り検出符号を用いることで、異常の原因が装置の故障かサイバー攻撃かをさらに高精度で判定することができる。
【００５５】
なお、本実施形態では、第３誤り検出符号は逐次送出されるたびに数値が１増加するとしたが、これに限定されない。第３誤り検出符号は、逐次送出されるたびに所定の規則に基づいて変化すればよく、例えば、２以上ずつ増加してもよいし、減少してもよいし、また、時刻情報（タイムスタンプ）として変化してもよい。なお、第３誤り検出符号の変化が減少である場合、今回値と前回値の大小判定（図８のステップＳ４０１）の符号が反転する。同様に図７の判定テーブル＃２の大小関係の符号についても反転する。
【００５６】
（第３実施形態）
第３実施形態の冗長化処理装置について、図１０を用いて説明する。図１０は、第３実施形態の冗長化処理装置１００ａの構成例を示すブロック図である。図１に示す第１実施形態の冗長化処理装置１００は制御部を二重化していたが、図１０に示す第３実施形態の冗長化処理装置１００ａは制御部を三重化している。つまり、冗長化処理装置１００ａは、１つの主制御部１２０と２つの副制御部１３０とを備えている。
【００５７】
このような冗長化処理装置１００ａによれば、２つの副制御部１３０のうちの片方が故障した場合でも、システムを停止せずに継続運用させることができる。なお、制御部は、三重化に限定されず、四重化以上としてもよい。
【００５８】
（第４実施形態）
第４実施形態の冗長化処理装置について、図１１〜図１５を用いて説明する。図１１は、第４実施形態の冗長化処理装置１０００の構成例を示すブロック図である。図１１の冗長化処理装置１０００は、図１の冗長化処理装置１００と比較して、伝送部、制御部、出力部、記憶部が制御モジュールとして構成されている点で相違する。
【００５９】
冗長化処理装置１０００は、制御モジュール１０１０と、制御モジュール１０２０とを備える。制御モジュール１０１０は、主な構成として、伝送部１１０、制御部１２０Ａ（以下、「制御部Ａ」ともいう。）（第１制御部の一例）、出力部１４０、および、記憶部１５０を備える。制御モジュール１０２０は、主な構成として、伝送部１１０、制御部１２０Ｂ（以下、「制御部Ｂ」ともいう。）（第２制御部の一例）、出力部１４０、および、記憶部１５０を備える。各部の機能は第１実施形態の場合と同様なので、説明を省略する。
【００６０】
制御モジュール１０１０は、伝送路Ａ１０３０（以下、「伝送路Ａ」ともいう。）（第１伝送路の一例）から制御データを受信する。制御モジュール１０２０は、伝送路Ｂ１０４０（以下、「伝送路Ｂ」ともいう。）（第２伝送路の一例）から制御データを受信する。なお、伝送路として伝送路Ａ１０３０と伝送路Ｂ１０４０の２系統を設けているが、例えば、システムとしての二重化伝送構成により実現してもよいし、あるいは、シングル構成の伝送路を途中で分岐したものとして実現してもよい。
【００６１】
また、２つの出力部１４０の後段には、ＡＮＤ回路などで構成される比較部１０５０が接続されている。なお、比較部１０５０は、図１１では冗長化処理装置１０００の外側に描いているが、冗長化処理装置１０００の構成の一部であってもよい。
【００６２】
図１２は、第４実施形態における制御データのフレームフォーマット例を示す図である。システムとして二重化伝送構成となっていれば、図１２に示すように、より安全に、伝送路Ａ，Ｂそれぞれで同じデータを互いに異なる暗号化アルゴリズムを用いて暗号化することが好ましい。なお、システムとしてシングル構成の伝送路の途中で分岐する構成となっていれば、制御部Ａ，Ｂ共通で図２に示す制御データを用いればよい。
【００６３】
図１２（ａ）（ａ１）に示す制御部Ａ用のデータ（暗号化前データ、復号化後データ）は、ターゲット、データ本体、ＣＲＣ「Ａ」（第１誤り検出符号）からなる制御データ（第１制御データ）である。この制御データがキー「Ａ」を用いて暗号化されると、図１２（ａ）（ａ２）に示す暗号化データ「Ａ」となる。
【００６４】
図１２（ｂ）（ｂ１）に示す制御部Ｂ用のデータ（暗号化前データ、復号化後データ）は、ターゲット、データ本体、ＣＲＣ「Ｂ」（第２誤り検出符号）からなる制御データ（第２制御データ）である。この制御データがキー「Ｂ」を用いて暗号化されると、図１２（ｂ）（ｂ２）に示す暗号化データ「Ｂ」となる。
【００６５】
図１３は、第４実施形態における判定テーブル＃３の例を示す図である。判定テーブル＃３の左側の２列において、「正常」は、その制御部（制御部Ａ、制御部Ｂのいずれか）での判定結果（ターゲットを用いた判定の結果、ＣＲＣチェックによる判定の結果）が正常で、「異常」は、その制御部での制御データの判定結果が異常であったことを示す。
【００６６】
判定テーブル＃３に示すように、制御部Ａ、制御部Ｂの両方の判定結果が「正常」であると、最終判定（図では「判定」）は「正常」となる。また、制御部Ａの判定結果が「正常」で、制御部Ｂの判定結果が「異常」であると、最終判定は「制御部Ｂ／伝送路Ｂ（制御部Ｂおよび伝送路Ｂの少なくともいずれか）の故障」となる。また、制御部Ａの判定結果が「異常」で、制御部Ｂの判定結果が「正常」であると、最終判定は「制御部Ａ／伝送路Ａ（制御部Ａおよび伝送路Ａの少なくともいずれか）の故障」となる。また、制御部Ａ、制御部Ｂの両方の判定結果が「異常」であると、最終判定は「サイバー攻撃」となり、その制御データは破棄することになる。
【００６７】
また、制御部Ａの判定結果が「正常」で、制御部Ｂに制御データが届かないと、最終判定は「制御部Ｂ／伝送路Ｂの故障」となる。また、制御部Ａに制御データが届かなくて、制御部Ｂの判定結果が「正常」であると、最終判定は「制御部Ａ／伝送路Ａの故障」となる。
【００６８】
また、制御部Ａの判定結果が「異常」で、制御部Ｂに制御データが届かないと、最終判定は「サイバー攻撃」となる。また、制御部Ａに制御データが届かなくて、制御部Ｂの判定結果が「異常」であると、最終判定は「サイバー攻撃」となる。
【００６９】
図１４は、第４実施形態における制御部Ａと制御部Ｂの動作例を示すフローチャートである。制御部Ａは、伝送路Ａ１０３０から伝送部１１０経由で暗号化データの受信を待ち（ステップＳ５０１）、その後、暗号化データを受信する（ステップＳ５０２）。
【００７０】
次に、制御部Ａは、暗号化データを復号処理する（ステップＳ５０３。図１２（ａ））。この復号処理において、まず、暗号化／復号化部１２１は、暗号化データを復号化して復号化データにする。その後、判定部１２２は、復号化データにおけるターゲットが正常か異常かを判定する。
【００７１】
一方、制御部Ｂは、伝送路Ｂ１０４０から伝送部１１０経由で暗号化データの受信を待ち（ステップＳ６０１）、その後、暗号化データを受信する（ステップＳ６０２）。
【００７２】
次に、制御部Ｂは、暗号化データを復号処理する（ステップＳ６０３。図１２（ｂ））。この復号処理において、まず、暗号化／復号化部１３１は、暗号化データを復号化して復号化データにする。その後、判定部１３２は、復号化データにおけるターゲットが正常か異常かを判定する。
【００７３】
なお、上記では、便宜上、ステップＳ５０２でデータ受信があり、ステップＳ６０２でデータ受信があるものとして説明したが、片方のデータ受信がない場合はありえるものとする。
【００７４】
次に、制御部Ａの転送部１２４と、制御部Ｂの転送部１３４は、ターゲットによる判定結果を互いに転送しあう（ステップＳ５０４，Ｓ６０４）。なお、データ受信がなかった場合はその旨を通知する。
【００７５】
次に、制御部Ａは、判定部１２２を用いて、ターゲットによる判定結果に基づく比較照合処理＃３を、判定テーブル＃３（図１３）を使用して行う（ステップＳ５０５）。ステップＳ５０５について、図１５を用いて以下に詳述する。図１５は、第４実施形態における比較照合処理＃３の例を示すフローチャートである。
【００７６】
まず、判定部１２２は、制御部Ａでのターゲットによる判定結果と、制御部Ｂでのターゲットによる判定結果とが、両方とも正常（ＯＫ）であったか否かを判定し（ステップＳ７０１）、Ｙｅｓの場合はステップＳ７０２に進み、Ｎｏの場合はステップＳ７０３に進む。ステップＳ７０２では、制御部Ａは、後段処理へ遷移する、つまり、図１４のステップＳ５０６に進む。
【００７７】
ステップＳ７０３において、判定部１２２は、制御部Ａでのターゲットによる判定結果と、制御部Ｂでのターゲットによる判定結果とが、両方とも異常（ＮＧ）であったか否かを判定し、Ｙｅｓの場合はステップＳ７０４に進み、Ｎｏの場合はステップＳ７０６に進む。
【００７８】
ステップＳ７０４において、判定部１２２は、両方ＮＧということは、データが正しいフレームフォーマットで伝送されていない可能性が高い、つまり、サイバー攻撃（悪意ある第三者による不正パケットデータ送信）である可能性が高いと判定する。ステップＳ７０４の後、判定部１２２は、その復号化データを破棄し（ステップＳ７０５）、スタート（図１４の制御部Ａの「スタート」）に戻る（ステップＳ７１０）。
【００７９】
また、ステップＳ７０６において、判定部１２２は、判定結果の一方がＯＫで他方がＮＧであったか（つまり、制御部Ａ，Ｂの両方にデータが届いたか）否かを判定し、Ｙｅｓの場合はステップＳ７０９に進み、Ｎｏの場合はステップＳ７０７に進む。
【００８０】
ステップＳ７０９において、判定部１２２は、判定結果の一方がＯＫで他方がＮＧであったということは、ＮＧの側の制御部（制御部Ａと制御部Ｂのいずれか）に故障が生じている可能性が高いと判定する。このステップＳ７０９では、例えば、制御部Ａは、ユーザにその故障の旨を通知（表示、音声出力等）してもよいし、あるいは、システムを安全のために停止させてもよい。ステップＳ７０９の後、判定部１２２は、スタート（図１４の制御部Ａの「スタート」）に戻る（ステップＳ７１０）。
【００８１】
ステップＳ７０７において、判定部１２２は、制御部Ａ，Ｂのうち、片方には制御データが届いていないということなので、届いたほうの制御部の判定結果はＯＫであったか否かを判定し、Ｙｅｓの場合はステップＳ７０８に進み、Ｎｏの場合はステップＳ７０４に進む。
【００８２】
ステップＳ７０８において、判定部１２２は、制御データが届いたほうの制御部の判定結果がＯＫということは、届いていないほうの制御部／伝送路に故障が生じている可能性が高いと判定する。このステップＳ７０８では、例えば、制御部Ａは、ユーザにその故障の旨を通知（表示、音声出力等）してもよいし、あるいは、システムを安全のため停止させてもよい。ステップＳ７０８の後、判定部１２２は、スタート（図１４の制御部Ａの「スタート」）に戻る（ステップＳ７１０）。
【００８３】
ステップＳ７０７でＮｏの後のステップＳ７０４において、判定部１２２は、制御データが届いたほうの制御部の判定結果がＮＧということは、データが正しいフレームフォーマットで伝送されておらず、さらに、片方の伝送路のみを対象とした意図しない伝送形態のため、サイバー攻撃である可能性が高いと判定する。ステップＳ７０４の後、判定部１２２は、その復号化データを破棄し（ステップＳ７０５）、スタート（図１４の制御部Ａの「スタート」）に戻る（ステップＳ７１０）。
【００８４】
制御部Ｂは、ステップＳ６０４の後、判定部１３２を用いて、ターゲットによる判定結果に基づく比較照合処理＃３を、判定テーブル＃３（図１３）を使用して行う（ステップＳ６０５）。ステップＳ６０５は、ステップＳ５０５と同様であるので、説明を省略する。
【００８５】
次に、ステップＳ５０６において、制御部Ａは、復号化データについてＣＲＣチェックを行う。ここで、判定部１２２は、図１２（ａ）（ａ１）におけるＣＲＣ「Ａ」を用いて、計算と照合を行い、正常か異常かを判定する。
【００８６】
また、ステップＳ６０６において、制御部Ｂは、復号化データについてＣＲＣチェックを行う。ここで、判定部１３２は、図１２（ｂ）（ｂ１）におけるＣＲＣ「Ｂ」を用いて、計算と照合を行い、正常か異常かを判定する。
【００８７】
次に、制御部Ａの転送部１２４と、制御部Ｂの転送部１３４は、ＣＲＣチェックによる判定結果を互いに転送しあう（ステップＳ５０７，Ｓ６０７）。なお、データ受信がなかった場合はその旨を通知する。
【００８８】
次に、制御部Ａは、判定部１２２を用いて、ＣＲＣチェックによる判定結果に基づく比較照合処理＃３を、判定テーブル＃３（図１３）を使用して行う（ステップＳ５０８）。ステップＳ５０８について、図１５を用いて以下に詳述する。
【００８９】
まず、判定部１２２は、制御部ＡでのＣＲＣチェックによる判定結果と、制御部ＢでのＣＲＣチェックによる判定結果とが、両方とも正常（ＯＫ）であったか否かを判定し（ステップＳ７０１）、Ｙｅｓの場合はステップＳ７０２に進み、Ｎｏの場合はステップＳ７０３に進む。ステップＳ７０２では、制御部Ａは、後段処理へ遷移する、つまり、図１４のステップＳ５０９に進む。
【００９０】
ステップＳ７０３において、判定部１２２は、制御部ＡでのＣＲＣチェックによる判定結果と、制御部ＢでのＣＲＣチェックによる判定結果とが、両方とも異常（ＮＧ）であったか否かを判定し、Ｙｅｓの場合はステップＳ７０４に進み、Ｎｏの場合はステップＳ７０６に進む。
【００９１】
ステップＳ７０４において、判定部１２２は、両方ＮＧということは、データが正しいフレームフォーマットで伝送されていない可能性が高い、つまり、サイバー攻撃（悪意ある第三者による不正パケットデータ送信）である可能性が高いと判定する。ステップＳ７０４の後、判定部１２２は、その復号化データを破棄し（ステップＳ７０５）、スタート（図１４の制御部Ａの「スタート」）に戻る（ステップＳ７１０）。
【００９２】
また、ステップＳ７０６において、判定部１２２は、判定結果の一方がＯＫで他方がＮＧであったか（つまり、制御部Ａ，Ｂの両方にデータが届いたか）否かを判定し、Ｙｅｓの場合はステップＳ７０９に進み、Ｎｏの場合はステップＳ７０７に進む。
【００９３】
ステップＳ７０９において、判定部１２２は、判定結果の一方がＯＫで他方がＮＧであったということは、ＮＧの側の制御部（制御部Ａと制御部Ｂのいずれか）に故障が生じている可能性が高いと判定する。このステップＳ７０９では、例えば、制御部Ａは、ユーザにその故障の旨を通知（表示、音声出力等）してもよいし、あるいは、システムを安全のために停止させてもよい。ステップＳ７０９の後、判定部１２２は、スタート（図１４の制御部Ａの「スタート」）に戻る（ステップＳ７１０）。
【００９４】
ステップＳ７０７において、判定部１２２は、制御部Ａ，Ｂのうち、片方には制御データが届いていないということなので、届いたほうの制御部の判定結果はＯＫであったか否かを判定し、Ｙｅｓの場合はステップＳ７０８に進み、Ｎｏの場合はステップＳ７０４に進む。
【００９５】
ステップＳ７０８において、判定部１２２は、制御データが届いたほうの制御部の判定結果がＯＫということは、届いていないほうの制御部／伝送路に故障が生じている可能性が高いと判定する。このステップＳ７０８では、例えば、制御部Ａは、ユーザにその故障の旨を通知（表示、音声出力等）してもよいし、あるいは、システムを安全のために停止させてもよい。ステップＳ７０８の後、判定部１２２は、スタート（図１４の制御部Ａの「スタート」）に戻る（ステップＳ７１０）。
【００９６】
ステップＳ７０７でＮｏの後のステップＳ７０４において、判定部１２２は、制御データが届いたほうの制御部の判定結果がＮＧということは、データが正しいフレームフォーマットで伝送されておらず、さらに、片方の伝送路のみを対象とした意図しない伝送形態のため、サイバー攻撃である可能性が高いと判定する。ステップＳ７０４の後、判定部１２２は、その復号化データを破棄し（ステップＳ７０５）、スタート（図１４の制御部Ａの「スタート」）に戻る（ステップＳ７１０）。
【００９７】
制御部Ｂは、ステップＳ６０７の後、判定部１３２を用いて、ターゲットによる判定結果に基づく比較照合処理＃３を、判定テーブル＃３（図１３）を使用して行う（ステップＳ６０８）。ステップＳ６０８は、ステップＳ５０８と同様であるので、説明を省略する。
【００９８】
ステップＳ５０９において、制御部Ａは、ステップＳ５０５とステップＳ５０８でともに両方ＯＫという判定であったということなので、演算部１２３を用いて復号化データに対して演算処理を行う。次に、制御部Ａは、演算部１２３を用いて演算処理によって得られた信号を出力部１４０に出力し（ステップＳ５１０）、ステップＳ５０１に戻る。
【００９９】
ステップＳ６０９において、制御部Ｂは、ステップＳ６０５とステップＳ６０８でともに両方ＯＫという判定であったということなので、演算部１３３を用いて復号化データに対して演算処理を行う。次に、制御部Ｂは、演算部１３３を用いて演算処理によって得られた信号を出力部１４０に出力し（ステップＳ６１０）、ステップＳ６０１に戻る。
【０１００】
ステップＳ５１０，Ｓ６１０の後、比較部１０５０は、制御モジュール１０１０の出力部１４０からの信号と、制御モジュール１０２０の出力部１４０からの信号が一致していた場合のみ、信号を出力する。
【０１０１】
このように、第４実施形態の冗長化処理装置１０００によれば、制御部を制御部Ａと制御部Ｂの二つに冗長化し、判定テーブル＃３（図１３）を用いた処理を行うことで、制御システム等において、異常が検出された場合に、その原因が装置／伝送路の故障かサイバー攻撃かを高精度で判定することができる。それにより、故障以外でのシステム停止を抑制することができ、システム全体のアベイラビリティを高く維持することができる。また、同一構成の制御モジュール１０１０，１０２０により冗長化をしているため、設計や製作が容易になる。
【０１０２】
（第５実施形態）
第５実施形態の冗長化処理装置について、図１６，図１７を用いて説明する。冗長化処理装置１０００の構成は第４実施形態の場合（図１１）と同様である。第５実施形態は、第４実施形態と比べて、制御データに、逐次送出されるたびに数値が所定の規則に基づいて変化する第３誤り検出符号を含ませ、その第３誤り検出符号を用いて故障かサイバー攻撃かを判別する点で相違する。以下、主に第４実施形態との相違点について説明する。また、第３誤り検出符号としては、例えば、シーケンス番号、時刻情報（タイムスタンプ）等が考えられるが、以下では、逐次送出されるたびに数値が１増加するシーケンス番号を例にとる。
【０１０３】
制御部Ａおよび制御部Ｂ（図１１）の少なくともいずれかは、制御部Ａが第１誤り検出符号を用いてデータ本体を正常と判定し、かつ、制御部Ｂが第２誤り検出符号を用いてデータ本体を正常と判定した場合であっても、次のように判定する。制御部Ａおよび制御部Ｂの少なくともいずれかは、制御データにおける第３誤り検出符号の数値が、１つ前に受け取った制御データにおける第３誤り検出符号の数値と同じである場合、制御データを送出する装置の故障と判定する。また、制御部Ａおよび制御部Ｂの少なくともいずれかは、制御データにおける第３誤り検出符号の数値が、１つ前に受け取った制御データにおける第３誤り検出符号の数値から所定の規則に基づかない変化をしている場合、制御データがサイバー攻撃によるデータであると判定する。
【０１０４】
図１６は、第５実施形態における制御部Ａと制御部Ｂの動作例を示すフローチャートである。図１６のフローチャートは、図１４のフローチャートと比較して、ステップＳ５０５がステップＳ５０５１に置き換わり、ステップＳ６０５がステップＳ６０５１に置き換わっている点で相違する。
【０１０５】
ステップＳ５０４の後、制御部Ａは、判定部１２２を用いて、比較照合処理＃４を、判定テーブル＃３（図１３）、判定テーブル＃２（図７）を使用して行う（ステップＳ５０５１）。ステップＳ５０５１について、図１７を用いて以下に詳述する。図１７は、第５実施形態における比較照合処理＃４の例を示すフローチャートである。ステップＳ７０１〜Ｓ７１０は、図１５と同様であるので、説明を省略する。
【０１０６】
ステップＳ７０１でＹｅｓの後、判定部１２２は、今回の制御データのシーケンス番号の値（今回値）が前回の制御データのシーケンス番号の値（前回値）よりも大きいか否かを判定し（ステップＳ８０１）、Ｙｅｓの場合はステップＳ７０２に進み、Ｎｏの場合はステップＳ８０２に進む。
【０１０７】
ステップＳ８０２において、判定部１２２は、今回値と前回値が同じか否かを判定し、Ｙｅｓの場合はステップＳ８０３に進み、Ｎｏの場合はステップＳ８０４に進む。
【０１０８】
ステップＳ８０３において、判定部１２２は、今回値と前回値が同じということは、送信側（送信装置）に故障が生じている可能性が高いと判定する。このステップＳ８０３では、例えば、制御部Ａは、ユーザにその故障の旨を通知（表示、音声出力等）してもよいし、あるいは、システムを安全のために停止させてもよい。ステップＳ８０３の後、判定部１２２は、スタート（図１６の制御部Ａの「スタート」）に戻る（ステップＳ８０６）。
【０１０９】
一方、ステップＳ８０４において、判定部１２２は、今回値が前回値よりも小さい（今回値＜前回値）ということは、悪意ある第三者が正常な伝送パケットを傍受し、そのフレームを再び送信し、正規ユーザになりすまそうとするリプレイ攻撃等のサイバー攻撃をしている可能性が高いと判定する。その後、判定部１２２は、その復号化データを破棄し（ステップＳ８０５）、スタート（図１６の制御部Ａの「スタート」）に戻る（ステップＳ８０６）。
【０１１０】
制御部ＢによるステップＳ６０５１は、制御部ＡによるステップＳ６０５１と同様であるので、説明を省略する。
【０１１１】
このように、第５実施形態の冗長化処理装置１０００によれば、第４実施形態の場合の効果に加えて、シーケンス番号等の第３誤り検出符号を用いることで、異常の原因が装置等の故障かサイバー攻撃かをさらに高精度で判定することができる。
【０１１２】
（第６実施形態）
第６実施形態の冗長化処理装置について、図１８を用いて説明する。図１８は、第６実施形態の冗長化処理装置１０００ａの構成例を示すブロック図である。図１１に示す第４実施形態の冗長化処理装置１０００は制御部を二重化していたが、図１８に示す第６実施形態の冗長化処理装置１０００ａは制御部を三重化している。つまり、冗長化処理装置１０００ａは、制御部Ａ、制御部Ｂ、および、制御部Ｃを備えている。制御部Ｃ（制御部１２０Ｃ）の伝送路は伝送路Ｃ１５００である。
【０１１３】
このような冗長化処理装置１０００ａによれば、３つの制御部のうちの１つが故障した場合でも、システムを停止せずに継続運用させることができる。また、同一構成の制御モジュール１０１０，１０２０，１５１０により冗長化をしているため、設計や製作が容易になる。なお、制御部は、三重化に限定されず、四重化以上としてもよい。
【０１１４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１１５】
例えば、制御データの暗号化、復号化は、本発明にとって必須ではない。つまり、制御データを暗号化、復号化しないで主制御部１２０と副制御部１３０で正常か異常かの判定を行い、それらの判定結果に基づいて、正常、故障、サイバー攻撃のいずれであるかを判定してもよい。
【０１１６】
また、図４、図８のステップＳ１０５，Ｓ２０４や、図１４、図１６のステップＳ５０４，Ｓ６０４において、ターゲットによる判定結果ではなく、復号化データを互いに転送しあい、その復号化データに基づいて判定を行うようにしてもよい。
【０１１７】
また、シーケンス番号について、今回値＞前回値という関係が成立しても、１つずつ増加するべきものが、一度に２以上増加している場合に、異常と判定してもよい。
【符号の説明】
【０１１８】
１００，１００ａ，１０００，１０００ａ  冗長化処理装置
１１０  伝送部
１２０  主制御部
１２０Ａ，１２０Ｂ，１２０Ｃ  制御部
１２１  暗号化／復号化部
１２２  判定部
１２３  演算部
１２４  転送部
１３０  副制御部
１３１  暗号化／復号化部
１３２  判定部
１３３  演算部
１３４  転送部
１４０  出力部
１５０  記憶部
１０１０，１０２０，１５１０  制御モジュール
１０３０  伝送路Ａ
１０４０  伝送路Ｂ
１０５０  比較部
１５００  伝送路Ｃ
【図１】
2017192105.tif 000003
【図２】
2017192105.tif 000004
【図３】
2017192105.tif 000005
【図４】
2017192105.tif 000006
【図５】
2017192105.tif 000007
【図６】
2017192105.tif 000008
【図７】
2017192105.tif 000009
【図８】
2017192105.tif 000010
【図９】
2017192105.tif 000011
【図１０】
2017192105.tif 000012
【図１１】
2017192105.tif 000013
【図１２】
2017192105.tif 000014
【図１３】
2017192105.tif 000015
【図１４】
2017192105.tif 000016
【図１５】
2017192105.tif 000017
【図１６】
2017192105.tif 000018
【図１７】
2017192105.tif 000019
【図１８】
2017192105.tif 000020