(57)【特許請求の範囲】
【請求項１】
他の通信装置に対して通信フレームデータ（自）を送信する送信部と、
前記他の通信装置から通信フレームデータ（他）を受信する受信部と、を備え、
前記送信部は、
制御装置から受信する制御通信データ（自）に基づいて生成される第１のチェックコード（自）、前記通信フレームデータ（自）の送信順を示す第１のシーケンス番号（自）、及び乱数（自）を、それぞれ所定単位で分離し、所定の順序で並び替えたビット数列集合からなるブロック（自）を、可逆な変換テーブルであるエンコーダにより変換した電子署名（自）を生成する電子署名生成部と、
前記電子署名（自）を前記制御通信データ（自）に付加した前記通信フレームデータ（自）を他の通信装置に送信する送信ポートと、を備え、
前記電子署名生成部は、
第１の計時カウンタ情報（自）を生成する第１の計時カウンタ情報生成部と、
前記制御通信データ（自）から前記第１のチェックコード（自）を生成する第１のチェックコード生成部と、
前記通信フレームデータ（自）が送信される度にインクリメントされる前記第１のシーケンス番号（自）を生成するシーケンス番号生成部と、
前記乱数（自）を生成する乱数生成部と、
前記第１の計時カウンタ情報（自）、前記第１のチェックコード（自）、前記第１のシーケンス番号（自）、及び前記乱数（自）からそれぞれ単ビット単位、又は複数ビット単位で分離した単位固定長のビットを並べ替えて前記ブロック（自）を生成するブロック生成部と、
前記ブロック生成部により前記第１の計時カウンタ情報（自）、前記第１のチェックコード（自）、前記第１のシーケンス番号（自）、及び前記乱数（自）が少なくとも１ビット以上格納された前記ブロック（自）を前記エンコーダにより変換して前記電子署名（自）を生成する符号化部と、を有し、
前記受信部は、
前記他の通信装置から受信した前記通信フレームデータ（他）から、前記通信フレームデータ（他）に付加された電子署名（他）を取り出す受信ポートと、
前記電子署名（他）を、可逆な逆変換テーブルであるデコーダにより逆変換したブロック（他）に少なくとも１ビット以上含まれる第１のチェックコード（他）、第１のシーケンス番号（他）、及び乱数（他）を、前記ブロック（他）から前記所定の順序で並び替えて抽出する情報抽出部と、
前記ブロック（他）から抽出された前記第１のチェックコード（他）と前記通信フレームデータ（他）の制御通信データ（他）から生成された第２のチェックコード（他）を比較した結果と、前記ブロック（他）から抽出された前記第１のシーケンス番号（他）と、前周期の前記通信フレームデータ（他）に付加された第２のシーケンス番号（他）とを比較した結果とに基づいて、前記通信フレームデータ（他）を正常と判定した場合に、前記制御装置による前記制御通信データ（他）の取り込みを許可する判定部と、を備え、
前記情報抽出部は、
前記通信フレームデータ（他）から取出された前記電子署名（他）を前記デコーダにより逆変換して、前記ブロック（他）に復号する復号部と、
前記ブロック（他）から抽出した単位固定長のビットを前記所定の順序で並べ替えて、前記第１のチェックコード（他）、前記第１のシーケンス番号（他）、及び前記乱数（他）を取り出すビット抽出部と、
前記通信フレームデータ（他）の前記制御通信データに基づいて前記第２のチェックコード（他）を生成する第２のチェックコード生成部と、
前周期の前記通信フレームデータ（他）から取り出された前記第１のシーケンス番号を記憶するシーケンス番号記憶部と、
現周期の前記通信フレームデータ（他）から抽出された第１の計時カウンタ情報（他）を記憶する第１の計時カウンタ情報記憶部と、
前周期の前記通信フレームデータ（他）から抽出された前記第１の計時カウンタ情報（他）を記憶する第２の計時カウンタ情報記憶部と、を有し、
前記判定部は、
前記通信フレームデータ（他）から抽出された第１のチェックコード（他）と、前記通信フレームデータ（他）の前記制御通信データ（他）から生成された第２のチェックコード（他）との相違を判定するチェックコード判定部と、
現周期の前記通信フレームデータ（他）から抽出された前記通信フレームデータ（他）の送信順を示す第１のシーケンス番号（他）と、前記シーケンス番号記憶部に記憶された、前周期の前記通信フレームデータ（他）から抽出された前記第２のシーケンス番号（他）との相違を判定するシーケンス番号判定部と、
前記第１の計時カウンタ情報記憶部に記憶される現周期の前記第１の計時カウンタ情報（他）と、前記第２の計時カウンタ情報記憶部にシフトされた前周期の前記第１の計時カウンタ情報（他）との差分が第１の誤差の範囲内であるかを判定する周期間差分判定部と、
前記チェックコード判定部、前記シーケンス番号判定部及び前記周期間差分判定部の判定結果が正常であれば、前記制御装置による前記制御通信データ（他）の取り込みを許可し、前記判定結果が異常であれば、前記通信フレームデータ（他）を破棄する認証判定部と、を有する
通信装置。
【請求項２】
前記電子署名生成部は、複数の前記エンコーダを有し、前記電子署名（自）を生成するために用いられた前記エンコーダに関する情報を前記電子署名（自）に付加する
請求項１に記載の通信装置。
【請求項３】
前記情報抽出部は、第２の計時カウンタ情報（他）を生成する第２の計時カウンタ情報生成部を備え、
前記判定部は、前記通信フレームデータ（他）から抽出された前記第１の計時カウンタ情報（他）と、前記第２の計時カウンタ情報（他）との差が第２の誤差範囲内にあるか否かを判定する現周期差分判定部を備え、
前記認証判定部は、前記現周期差分判定部、前記チェックコード判定部及び前記シーケンス番号判定部の判定結果に基づいて前記通信フレームデータ（他）に対する処理を行う
請求項１又は２に記載の通信装置。
【請求項４】
前記第１のチェックコード（他）及び前記第２のチェックコード（他）が一致し、かつ前記第１のシーケンス番号（他）及び前記第２のシーケンス番号（他）が異なっている場合に、前記情報抽出部は、前記第１の計時カウンタ情報記憶部に記憶される前周期の前記第１の計時カウンタ情報（他）を前記第２の計時カウンタ情報記憶部にシフトし、現周期の前記第１の計時カウンタ情報（他）を前記第１の計時カウンタ情報記憶部に記憶する
請求項３に記載の通信装置。
【請求項５】
マスタとなる前記他の通信装置によって生成された前記第１の計時カウンタ情報（他）と、前記第２の計時カウンタ情報（他）との同期がされていない同期未完状態であり、
前記第１の計時カウンタ情報記憶部に記憶される現周期の前記第１の計時カウンタ情報（他）と、前記第２の計時カウンタ情報記憶部にシフトされた前周期の前記第１の計時カウンタ情報（他）との差分が前記第１の誤差の範囲内である場合に、
前記第２の計時カウンタ情報生成部は、前記第１の計時カウンタ情報記憶部に記憶される現周期の前記第１の計時カウンタ情報（他）を自身に複写することで、前記第１の計時カウンタ情報（他）に前記第２の計時カウンタ情報（他）を同期させる
請求項４に記載の通信装置。
【請求項６】
前記情報抽出部は、複数の前記デコーダを有し、前記電子署名（他）に付加された前記エンコーダに関する情報に基づいて選択した前記デコーダを用いて前記電子署名（他）を復号する
請求項５に記載の通信装置。
【請求項７】
前記電子署名生成部は、前記制御通信データ（自）の一部を含めて生成された前記電子署名（自）を符号化し、
前記判定部は、前記電子署名（他）を復号して得た前記制御通信データ（他）の一部を前記通信フレームデータ（他）の判定に用いない
請求項１に記載の通信装置。
【請求項８】
制御装置から受信する制御通信データ（自）に基づいて生成される第１のチェックコード（自）、通信フレームデータ（自）の送信順を示す第１のシーケンス番号（自）及び乱数（自）を、それぞれ所定単位で分離し、所定の順序で並び替えたビット数列集合からなるブロック（自）をエンコーダにより変換した電子署名（自）を生成する電子署名生成部と、
前記電子署名（自）を前記制御通信データ（自）に付加した前記通信フレームデータ（自）を他の通信装置に送信する送信ポートと、を備え、
前記電子署名生成部は、
第１の計時カウンタ情報（自）を生成する第１の計時カウンタ情報生成部と、
前記制御通信データ（自）から前記第１のチェックコード（自）を生成する第１のチェックコード生成部と、
前記通信フレームデータ（自）が送信される度にインクリメントされる前記第１のシーケンス番号（自）を生成するシーケンス番号生成部と、
前記乱数（自）を生成する乱数生成部と、
前記第１の計時カウンタ情報（自）、前記第１のチェックコード（自）、前記第１のシーケンス番号（自）、及び前記乱数（自）からそれぞれ単ビット単位、又は複数ビット単位で分離した単位固定長のビットを並べ替えて前記ブロック（自）を生成するブロック生成部と、
前記ブロック生成部により前記第１の計時カウンタ情報（自）、前記第１のチェックコード（自）、前記第１のシーケンス番号（自）、及び前記乱数（自）が少なくとも１ビット以上格納された前記ブロック（自）を前記エンコーダにより変換して前記電子署名（自）を生成する符号化部と、を有する
送信装置。
【請求項９】
他の通信装置によって送信された通信フレームデータ（他）を受信し、前記通信フレームデータ（他）から電子署名（他）を取り出す受信ポートと、
前記電子署名（他）を、可逆な逆変換テーブルであるデコーダにより逆変換したブロック（他）に少なくとも１ビット以上含まれる第１のチェックコード（他）、第１のシーケンス番号（他）及び乱数（他）を、前記ブロック（他）から所定の順序で並び替えて抽出する情報抽出部と、
前記ブロック（他）から抽出された前記第１のチェックコード（他）と前記通信フレームデータ（他）の制御通信データ（他）から生成された第２のチェックコード（他）を比較した結果と、前記ブロック（他）から抽出された前記第１のシーケンス番号（他）と、前周期の前記通信フレームデータ（他）に付加された第２のシーケンス番号（他）とを比較した結果とに基づいて、前記通信フレームデータ（他）を正常と判定した場合に、制御装置による前記制御通信データ（他）の取り込みを許可する判定部と、を備え、
前記情報抽出部は、
前記通信フレームデータ（他）から取出された前記電子署名（他）を前記デコーダにより逆変換して、前記ブロック（他）に復号する復号部と、
前記ブロック（他）から抽出した単位固定長のビットを前記所定の順序で並べ替えて、前記第１のチェックコード（他）、前記第１のシーケンス番号（他）、及び前記乱数（他）を取り出すビット抽出部と、
前記通信フレームデータ（他）の前記制御通信データに基づいて前記第２のチェックコード（他）を生成する第２のチェックコード生成部と、
前周期の前記通信フレームデータ（他）から取り出された前記第１のシーケンス番号を記憶するシーケンス番号記憶部と、
現周期の前記通信フレームデータ（他）から抽出された第１の計時カウンタ情報（他）を記憶する第１の計時カウンタ情報記憶部と、
前周期の前記通信フレームデータ（他）から抽出された前記第１の計時カウンタ情報（他）を記憶する第２の計時カウンタ情報記憶部と、を有し、
前記判定部は、
前記通信フレームデータ（他）から抽出された第１のチェックコード（他）と、前記通信フレームデータ（他）の前記制御通信データ（他）から生成された第２のチェックコード（他）との相違を判定するチェックコード判定部と、
現周期の前記通信フレームデータ（他）から抽出された前記通信フレームデータ（他）の送信順を示す第１のシーケンス番号（他）と、前記シーケンス番号記憶部に記憶された、前周期の前記通信フレームデータ（他）から抽出された前記第２のシーケンス番号（他）との相違を判定するシーケンス番号判定部と、
前記第１の計時カウンタ情報記憶部に記憶される現周期の前記第１の計時カウンタ情報（他）と、前記第２の計時カウンタ情報記憶部にシフトされた前周期の前記第１の計時カウンタ情報（他）との差分が第１の誤差の範囲内であるかを判定する周期間差分判定部と、
前記チェックコード判定部、前記シーケンス番号判定部及び前記周期間差分判定部の判定結果が正常であれば、前記制御装置による前記制御通信データ（他）の取り込みを許可し、前記判定結果が異常であれば、前記通信フレームデータ（他）を破棄する認証判定部と、を有する
受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、プラント等の制御システムにおけるセキュアな制御通信を行うために好適な通信装置、送信装置及び受信装置に関する。
【背景技術】
【０００２】
近年、制御分野では、ＩｏＴ（Internet Of Things）に代表される、情報と制御を融合したプラント制御ソリューションが世界的に注目されるようになっている。昨今では特にＦＡ（Factory Automation）やＰＡ（Process Automation）分野において、本プラント制御ソリューションの適用が拡大しつつある。
【０００３】
プラント制御ソリューションに用いられる技術は、プラント制御の稼動効率、及び生産効率を飛躍的に向上させると考えられる。一方で、情報系のネットワークを経由することで、プラント外部とプラント制御システムが従来以上に密接に結合するため、ネットワークにおいて新たなセキュリティホールの発生が懸念される。
【０００４】
従来、情報処理分野では、悪意ある第三者からのセキュリティ攻撃に対して、ＡＥＳ（Advanced Encryption Standard）等に代表される暗号化技術を用いて財産となる情報を保護する技術が用いられていた。
【０００５】
例えば、特許文献１には、通信装置間の認証方法として、計時情報に基づいて生成された乱数から共通鍵を使ってフレームを出力する方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２２１２０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、制御システムで用いられるネットワークには、刻々と変動する物理現象を数値化したプロセス入出力値が制御通信データとして伝送されることが大半であるため、情報処理システムとは異なり、データの秘匿が必ずしも要求されない。例えば、バルブの開閉情報は、データの秘匿性が高くない。一方、制御伝送では、各通信装置がリアルタイムでデータを送受信できることが必須である。
【０００８】
しかし、特許文献１に開示された技術は、数学的に解読困難な形態に情報（乱数）をエンコード及びデコードすることでセキュリティを実現するため、計算機の処理に多くの時間を要する。その結果、特許文献１に開示されたような暗号化技術をリアルタイム性が重視される制御システムにそのまま流用することは困難であった。また、特許文献１に開示された技術では、攻撃者がデータフレームを取得してなりすましを行うような攻撃がされたとしても、特許文献１には有効な対策が開示されていなかった。
【０００９】
本発明はこのような状況に鑑みて成されたものであり、リアルタイム性を損なうことなく安全にデータを通信することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る通信装置は、電子署名生成部と送信ポートとを有する送信部と、受信ポートと情報抽出部と判定部とを有する受信部を備える。
送信部の電子署名生成部は、制御装置から受信する制御通信データ（自）に基づいて生成される第１のチェックコード（自）、通信フレームデータ（自）の送信順を示す第１のシーケンス番号（自）及び乱数（自）を、それぞれ所定単位で分離し、所定の順序で並び替えたビット数列集合からなるブロック（自）をエンコーダにより変換した電子署名（自）を生成する。
送信ポートは、電子署名（自）を制御通信データ（自）に付加した通信フレームデータ（自）を他の通信装置に送信する。
電子署名生成部は、
第１の計時カウンタ情報（自）を生成する第１の計時カウンタ情報生成部と、
制御通信データ（自）から第１のチェックコード（自）を生成する第１のチェックコード生成部と、
通信フレームデータ（自）が送信される度にインクリメントされる第１のシーケンス番号（自）を生成するシーケンス番号生成部と、
乱数（自）を生成する乱数生成部と、
第１の計時カウンタ情報（自）、第１のチェックコード（自）、第１のシーケンス番号（自）、及び乱数（自）からそれぞれ単ビット単位、又は複数ビット単位で分離した単位固定長のビットを並べ替えてブロック（自）を生成するブロック生成部と、
ブロック生成部により第１の計時カウンタ情報（自）、第１のチェックコード（自）、第１のシーケンス番号（自）、及び乱数（自）が少なくとも１ビット以上格納されたブロック（自）をエンコーダにより変換して電子署名（自）を生成する符号化部と、を有する。
受信部の受信ポートは、他の通信装置から受信した通信フレームデータ（他）から電子署名（他）を取り出す。
情報抽出部は、電子署名（他）をデコーダにより逆変換したブロック（他）から、少なくとも１ビット以上含まれる第１のチェックコード（他）、第１のシーケンス番号（他）及び乱数（他）を所定の順序で抽出する。
判定部は、抽出された第１のチェックコード（他）と通信フレームデータ（他）の制御通信データ（他）から生成した第２のチェックコード（他）を比較した結果と、抽出された第１のシーケンス番号（他）と、前周期の通信フレームデータ（他）に付加された第２のシーケンス番号（他）とを比較した結果とに基づいて、通信フレームデータ（他）を正常と判定した場合に、制御装置による制御通信データ（他）の取り込みを許可する。
情報抽出部は、
通信フレームデータ（他）から取出された電子署名（他）をデコーダにより逆変換して、ブロック（他）に復号する復号部と、
ブロック（他）から抽出した単位固定長のビットを所定の順序で並べ替えて、第１のチェックコード（他）、第１のシーケンス番号（他）、及び乱数（他）を取り出すビット抽出部と、
通信フレームデータ（他）の制御通信データに基づいて第２のチェックコード（他）を生成する第２のチェックコード生成部と、
前周期の通信フレームデータ（他）から取り出された第１のシーケンス番号を記憶するシーケンス番号記憶部と、
現周期の通信フレームデータ（他）から抽出された第１の計時カウンタ情報（他）を記憶する第１の計時カウンタ情報記憶部と、
前周期の通信フレームデータ（他）から抽出された第１の計時カウンタ情報（他）を記憶する第２の計時カウンタ情報記憶部と、を有する。
判定部は、
通信フレームデータ（他）から抽出された第１のチェックコード（他）と、通信フレームデータ（他）の制御通信データ（他）から生成された第２のチェックコード（他）との相違を判定するチェックコード判定部と、
現周期の通信フレームデータ（他）から抽出された通信フレームデータ（他）の送信順を示す第１のシーケンス番号（他）と、シーケンス番号記憶部に記憶された、前周期の通信フレームデータ（他）から抽出された第２のシーケンス番号（他）との相違を判定するシーケンス番号判定部と、
第１の計時カウンタ情報記憶部に記憶される現周期の第１の計時カウンタ情報（他）と、第２の計時カウンタ情報記憶部にシフトされた前周期の第１の計時カウンタ情報（他）との差分が第１の誤差の範囲内であるかを判定する周期間差分判定部と、
チェックコード判定部、シーケンス番号判定部及び周期間差分判定部の判定結果が正常であれば、制御装置による制御通信データ（他）の取り込みを許可し、判定結果が異常であれば、通信フレームデータ（他）を破棄する認証判定部と、を有する。
【発明の効果】
【００１１】
本発明によれば、通信フレームデータに付加される電子署名には乱数が含まれており、受信部は通信フレームデータに対する改ざん等を速やかに検出することが可能である。このため、不正な通信フレームデータを検出した場合には、この通信フレームデータを破棄する等の対応により有効な制御通信データだけを取り込むことが可能となる。
上記した以外の課題、構成及び効果は、以下の実施の形態例の説明により明らかにされる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施の形態例に係る通信システムのシステム構成図である。
【図２】本発明の第１の実施の形態例に係る２つの通信装置の概略構成図である。
【図３】本発明の第１の実施の形態例に係る送信部の内部構成例を示すブロック図である。
【図４】本発明の第１の実施の形態例に係る通信フレームデータの構成図である。
【図５】本発明の第１の実施の形態例に係る送信部の各信号路における信号の流れを示すタイムチャートである。
【図６】本発明の第１の実施の形態例に係る受信部の内部構成例を示すブロック図である。
【図７】本発明の第１の実施の形態例に係る認証判定回路の状態遷移の例を示す説明図である。
【図８】本発明の第２の実施の形態例に係る認証判定回路の状態遷移の例を示す説明図である。
【図９】本発明の実施の形態の変形例に係る通信システムのシステム構成図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態例について、添付図面を参照して説明する。本明細書及び図面において、実質的に同一の機能又は構成を有する構成要素については、同一の符号を付することにより重複する説明を省略する。
【００１４】
［１．第１の実施の形態例］
図１は、通信システム１のシステム構成図である。
【００１５】
通信システム１は、ネットワークＮに接続された複数の通信装置２Ａ〜２Ｍを備える。通信装置２Ａ〜２Ｍは、互いに通信することが可能である。図１の例では、通信装置２ＡがネットワークＮを介して通信装置２Ｂに通信フレームデータを送信する様子と、通信装置２ＡがネットワークＮを介して通信装置２Ｅから通信フレームデータを受信する様子が示されている。図１では、ネットワークＮとしてリング型ネットワークの接続形態とした例を示すが、ネットワークＮは他の接続形態としてもよい。
【００１６】
図２は、２つの通信装置２Ａ、２Ｂの概略構成図である。
【００１７】
通信装置２Ａは、他の通信装置に対して通信フレームデータを送信したり、他の通信装置から通信フレームデータを受信したりする機能を有している。
【００１８】
通信装置２Ａは、制御装置３と、送信部４と、受信部５を備える。
通信装置２Ａの制御装置３は、通信装置２Ｂに制御通信データを含む通信フレームデータを送信部４に出力し、受信部５が通信装置２Ｂから受信した制御通信データを受け取る。
通信装置２Ａの送信部４は、制御装置３から入力した通信フレームデータを所定の処理により暗号化し、ネットワークＮを介して通信装置２Ｂに通信フレームデータを送信する。この制御通信データには、例えばプラントの機器を制御するための命令、プラントからのプロセス入出力値が含まれる。
通信装置２Ａの受信部５は、通信装置２Ｂより受信した暗号化された通信フレームデータを復号し、復号された通信フレームデータをチェックした結果が正常であれば制御装置３に制御通信データを出力する。
【００１９】
通信装置２Ｂは、通信装置２Ａと同様に、制御装置３と、送信部４と、受信部５を備える。
通信装置２Ｂの制御装置３は、制御通信データを含む通信フレームデータを送信部４に出力し、受信部５が通信装置２Ａから受信した制御通信データを受け取る。
通信装置２Ｂの送信部４は、制御装置３から入力した通信フレームデータを所定の処理により暗号化し、ネットワークＮを介して通信装置２Ａに通信フレームデータを送信する。
通信装置２Ｂの受信部５は、通信装置２Ａより受信した暗号化された通信フレームデータを復号し、復号された通信フレームデータをチェックした結果が正常であれば制御装置３に制御通信データを出力する。
【００２０】
次に、送信部４、受信部５の構成例及び動作例について説明する。始めに、送信部について説明する。
【００２１】
図３は、送信部４の内部構成例を示すブロック図である。
送信部４は、通信装置２Ａの構成要素のうち、電子署名を生成する回路（電子署名生成部６）と、電子署名を通信フレームデータに付加して送信する回路（送信ポート１２）とを抽出したものである。
【００２２】
始めに、送信部４の各部の構成を説明する。
送信部４は、フレーム送信制御回路１１、送信ポート１２、計時カウンタ回路１３、チェックコード生成回路１４、フレームシーケンス番号生成回路１５、乱数生成器１６、ブロック生成部１７、マルチプレクサ１８、変換テーブル１９、ＰＳ変換回路２０を備える。本実施の形態例では、送信部４内の送信ポート１２を除く各構成要素をまとめて電子署名生成部６と呼ぶ。
【００２３】
フレーム送信制御回路１１は、制御装置３から信号路ｄ１を通じて、制御通信データを含む通信フレームデータを取り込む。そして、フレーム送信制御回路１１は、計時カウンタ回路１３、チェックコード生成回路１４、フレームシーケンス番号生成回路１５、乱数生成器１６、ブロック生成部１７、マルチプレクサ１８、ＰＳ変換回路２０に所定の信号を送信し、各部の制御を行う。
【００２４】
ここで、通信フレームデータの構成について説明する。
図４は、通信フレームデータの構成例を示すフレームフォーマットである。
【００２５】
本実施の形態例に係る通信フレームデータは、ヘッダ情報（通信ヘッダｆ１、ＩＰヘッダｆ２、ＵＤＰヘッダｆ３）、制御装置３から受け取る制御通信データｆ４、電子署名ｆ５、ＦＣＳ（Frame Check Sequence）ｆ６の各フィールドで構成される。ヘッダ情報は、送信される各通信フレームデータに共通して設けられるものであり、フレーム送信制御回路１１によって生成される。また、通信フレームデータ内における電子署名ｆ５の実装場所は限定されない。この電子署名ｆ５には、符号化された計時カウンタ情報ｆ１１、チェックコードｆ１２、シーケンス番号ｆ１３及び乱数ｆ１４が含まれる。以下の説明では、通信ヘッダｆ１、ＩＰヘッダｆ２、ＵＤＰヘッダｆ３、制御通信データｆ４をまとめて「フレーム情報」と呼ぶ場合がある。
【００２６】
チェックコードｆ１２は、ヘッダ情報と制御通信データｆ４をチェック範囲として生成される。このようなチェック範囲としたのは、チェックコードの目的は、制御通信データに改ざんがなされたことを検出するためである。
ＦＣＳ ｆ６は、フレーム情報と電子署名ｆ５をチェック範囲として生成される。このようなチェック範囲としたのは、ＦＣＳの目的が、通信フレームデータのデータ化けを検出することであり、電子署名ｆ５のデータ化けもその対象に含まれるからである。
以下の説明において、電子署名ｆ５、ＦＣＳ ｆ６が付されていない状態のヘッダ情報及び制御通信データｆ４についても通信フレームデータと呼ぶ場合がある。
【００２７】
再び図３の説明を続ける。
電子署名生成部６は、制御装置３から受信する制御通信データｆ４に基づいて生成されるチェックコードｆ１２、通信フレームデータの送信順を示すシーケンス番号ｆ１３、及び乱数ｆ１４を、それぞれ所定単位で分離する。そして、これらの情報を所定の順序で並び替えたビット数列集合からなるブロックｄ８〜ｄ１０を変換テーブル１９により変換した電子署名ｆ５を生成する。
【００２８】
計時カウンタ回路１３は、計時動作により送信部４における計時カウンタ情報ｆ１１を生成し、信号路ｄ４に出力する。計時カウンタ回路１３が生成する計時カウンタ情報ｆ１１は、他の通信装置が計時する計時カウンタ情報に同期させたものである。後述する図６に示す計時カウンタ回路３７が他の通信装置との間で同期したことをもって、計時カウンタ回路３７に計時カウンタ回路１３を同期させることが可能である。
【００２９】
チェックコード生成回路１４（第１のチェックコード生成部の一例）は、フレーム送信制御回路１１から受け取ったヘッダ情報と制御通信データｆ４によりチェックコードｆ１２を生成し、信号路ｄ５に出力する。
フレームシーケンス番号生成回路１５（シーケンス番号生成部の一例）は、通信フレームデータの送信順を示すシーケンス番号ｆ１３を生成し、信号路ｄ６に出力する。このシーケンス番号ｆ１３は、前周期に送信された通信フレームデータのシーケンス番号（ｎ−１）を“１”だけインクリメントした値（ｎ）となる。
【００３０】
乱数生成器１６（乱数生成部の一例）は、乱数ｆ１４を生成し、信号路ｄ７に出力する。本実施の形態例に係る電子署名符号化方法は、乱数ｆ１４を用いて実現される。乱数生成器１６が乱数を生成する方法として、例えば、Ｍ系列（ＬＦＳＲ）や、Ｘｏｒｓｈｉｆｔによる擬似乱数の生成方法が用いられる。他には、例えば、特許第４９８２７５０号公報に記載されるようなフリップフロップのメタスタビリティを利用したリングオシレータ型の真性乱数に準じる生成方法を用いてもよく、一つの方法に限定されない。ただし、電子署名符号化方法は、通信フレームデータの送信に際して、高速性を阻害せず、安価であるものが採用される。
【００３１】
ブロック生成部１７は、計時カウンタ情報ｆ１１、チェックコードｆ１２、シーケンス番号ｆ１３、及び乱数ｆ１４から単ビット単位、又は複数ビット単位で分離した単位固定長のビットを抽出する。そして、ブロック生成部１７は、分離した単位固定長のビットを並び替えてまとめたビット数列集合からなる複数のブロックｄ８〜ｄ１０を生成する。
【００３２】
マルチプレクサ１８（選択回路の一例）は、ブロック生成部１７によって生成された複数のブロックｄ８〜ｄ１０のいずれかを順に選択して変換テーブル１９に出力する。
変換テーブル１９（エンコーダの一例）は、マルチプレクサ１８から順に入力する複数のブロックｄ８〜ｄ１０を変換して符号化する。
ＰＳ（Parallel/Serial）変換回路２０は、符号化されたビット数列集合をシリアルデータに変換して電子署名ｆ５を生成し、この電子署名ｆ５を送信ポート１２に出力する。
このようにマルチプレクサ１８、変換テーブル１９、ＰＳ変換回路２０は、複数のブロックｄ８〜ｄ１０を変換テーブル１９により変換して電子署名ｆ５を生成する符号化部２１として用いられる。
【００３３】
送信ポート１２は、フレーム送信制御回路１１から受け取った通信フレームデータ（ヘッダ情報及び制御通信データｆ４）に、電子署名ｆ５と、送信ポート１２が生成したＦＣＳ ｆ６とを付加する。そして、送信ポート１２は、ネットワークＮを通じて通信装置２Ｂに通信フレームデータを送信する。
【００３４】
次に、送信部４の各部の動作について、図５のタイムチャートに即して説明する。
図５は、送信部４の各信号路における信号の流れを示すタイムチャートである。
【００３５】
通信装置２Ａの通信フレームデータの送信処理は、制御装置３から送信部４になされる送信要求を契機として開始される。
フレーム送信制御回路１１は、通信フレームデータの信号路ｄ１経由で通信フレームデータを取り込みながら（図５Ａ）、チェックコード生成回路１４にチェックコード生成制御信号ｄ３を発行する（図５Ｂ）。チェックコード生成回路１４は、チェックコード生成制御信号ｄ３を受けると、フレーム情報に基づいてチェックコードｆ１２を生成する（図４、図５Ｄ）。
【００３６】
なお、チェックコード生成回路１４は、回路リソースが少なくて済むＣＲＣ（Cyclic Redundancy Check）を用いて、チェックコードｆ１２を生成するが、ＣＲＣ以外の方法によりチェックコードｆ１２を生成してもよい。チェックコードｆ１２の生成、及びチェック範囲は、図４に示す通り、通信ヘッダｆ１から制御通信データｆ４までを対象とする。
【００３７】
チェックコード生成回路１４がチェックコードｆ１２を生成している間、フレーム送信制御回路１１は、送信ポート１２に対してネットワークＮにフレーム情報を送信させる（図５Ｋ）。
【００３８】
送信ポート１２がフレーム情報を送信した後、送信ポート１２への制御通信データｆ４の入力が完了するタイミングになると、フレーム送信制御回路１１は、フレームシーケンス番号のインクリメント及びラッチ制御信号ｄ２を発行する（図５Ｃ）。フレームシーケンス番号生成回路１５は、フレームシーケンス番号のインクリメント及びラッチ制御信号ｄ２が入力したタイミングで、現在のフレームシーケンス番号を“１”だけインクリメントする（図５Ｆ）。そして、フレームシーケンス番号生成回路１５は、インクリメントされたフレームシーケンス番号を、フレームシーケンス番号の信号路ｄ６に送出する。
【００３９】
計時カウンタ回路１３が計時する動作は常時行われる（図５Ｅ）。このため、計時カウンタ情報の信号路ｄ４には、計時カウンタ回路１３が計時した計時カウンタ情報が常に流れている。同様に乱数生成器１６が乱数を生成する動作についても常時行われる（図５Ｇ）。このため、乱数情報の信号路ｄ７には、乱数生成器１６が生成した乱数が常に流れている。
【００４０】
また、通信要求が発生し、フレームシーケンス番号のインクリメント及びラッチ制御信号ｄ２が発行されると、ブロック生成部１７は、信号路ｄ４〜ｄ７を流れる計時カウンタ情報、チェックコード、フレームシーケンス番号、乱数を取得する。そして、ブロック生成部１７は、これらの情報を、それぞれ１ビット以上の単位で分離する。さらに、ブロック生成部１７は、分離した計時カウンタ情報、チェックコード、フレームシーケンス番号、乱数を並べ替えたビット数列を生成し、このビット数列から任意長としたビット数列集合からなる複数のブロックｄ８〜ｄ１０に分割する。
【００４１】
複数のブロックｄ８〜ｄ１０には、それぞれ計時カウンタ情報、チェックコード、フレームシーケンス番号、乱数が共に１ビット以上格納されていることを要件とする。この要件を満足できるのであれば、ブロックのビット長の長さに上限も下限もない。１ブロックあたりの乱数のビット数が多いほど、後述する符号化コードの不規則変化の複雑性が増す。
【００４２】
複数のブロックｄ８〜ｄ１０は、各々に計時カウンタ情報の信号路ｄ４の任意の１ビット、チェックコードの信号路ｄ５の任意の１ビット、フレームシーケンス番号の信号路ｄ６の任意の１ビット、及び乱数情報の信号路ｄ７の３ビット（計６ビット）で構成される。
複数のブロックｄ８〜ｄ１０を構成する任意のビットは、送信側、受信側で同じ配置にしなければ、非可逆なコードとなり復号できなくなる。可逆性が保てるのであれば、任意のビットを複数個所のブロックに使っても良い。複数のブロックｄ８〜ｄ１０が不規則に変化できるパターンが多くなるほど、ネットワークＮで観測される符号化コードの発生パターンも増し、通信フレームデータの暗号化強度をより高めることができる。
【００４３】
続いて、フレーム送信制御回路１１は、複数のブロックｄ８〜ｄ１０の選択制御信号ｄ１２を活性化させる（図５Ｈ）。これによりフレームシーケンス番号生成回路１５は、フレームシーケンス番号のインクリメント及びラッチ制御信号ｄ２に従い、Ｎ個の複数のブロックｄ８〜ｄ１０の現状態をラッチする。
【００４４】
そして、マルチプレクサ１８は、入力する複数のブロックｄ８〜ｄ１０の順番を切替えて、変換テーブル１９に複数のブロックｄ８〜ｄ１０を出力する。変換テーブル１９により、複数のブロックｄ８〜ｄ１０がそれぞれ符号化される。符号化された複数のブロックｄ８〜ｄ１０は、選択された符号化コードの信号路ｄ１４を通じて、変換テーブル１９からＰＳ変換回路２０に出力される（図５Ｉ）。
【００４５】
変換テーブル１９は、いわゆる「共通鍵」の扱いとなる。変換テーブル１９の入力と出力の関係は、数学的な規則性を持たせる必要はなく、不規則な値で構わない。ただし、変換テーブル１９によって変換されるデータは可逆性を持たせる必要がある。すなわち、変換テーブル１９から出力されたデータは、逆変換により、元の入力データを復元できることが必要となる。このような変換テーブル１９をＲＡＭ（Random Access Memory）やフラッシュＲＯＭ（Read Only Memory）等の書き換え可能な記憶部に記憶させておくことで、定期的な内容変更に対応可能とする。これにより、変換テーブル１９の情報が外部に漏えいした場合であっても、変換テーブル１９を迅速に切り替えることによって外部からの攻撃によるデータの損失を必要最小限に抑えることが可能となる。
【００４６】
次に、フレーム送信制御回路１１は、符号化コードのパラレルシリアル変換制御信号ｄ１３を活性化させる（図５Ｊ）。ＰＳ変換回路２０は、符号化された各複数のブロックｄ８〜ｄ１０をパラレルデータからシリアルデータに変換する。シリアルデータに変換された各複数のブロックｄ８〜ｄ１０は、電子署名ｆ５として送信ポート１２に逐次送られる。また、電子署名ｆ５は、フレーム送信制御回路１１にも送られ、フレーム送信制御回路１１によりＦＣＳ ｆ６が生成される。
【００４７】
送信ポート１２は、シリアルデータに変換された各複数のブロックｄ８〜ｄ１０を、フレーム送信制御回路１１から受信した通信フレームデータの末尾に電子署名ｆ５として付加する。次に、送信ポート１２は、通信フレームデータのフレーム情報及び電子署名ｆ５をチェック範囲としてフレーム送信制御回路１１により生成されたＦＣＳ ｆ６を電子署名ｆ５の末尾に付加する。そして、送信ポート１２は、電子署名ｆ５とＦＣＳ ｆ６が付加された通信フレームデータを、ネットワークＮを介して宛先の通信装置２Ｂに送信する。
【００４８】
次に、通信装置２Ｂの受信部５の構成例及び動作例について説明する。
図６は、受信部５の内部構成例を示すブロック図である。
【００４９】
受信部５は、通信装置２Ｂの構成要素のうち、受信した通信フレームデータから電子署名ｆ５を取り出す回路（受信ポート３１）と、電子署名ｆ５を復号して各情報を抽出する回路（情報抽出部７）と、情報を判定する回路（判定部８）とを抽出したものである。電子署名ｆ５を復号することにより、通信フレームデータから、計時カウンタ情報ｆ１１、チェックコードｆ１２、シーケンス番号ｆ１３、乱数ｆ１４が抽出される。
【００５０】
この受信部５は、受信ポート３１、フレーム受信制御回路３２、ＳＰ（Serial/Parallel）変換回路３３、逆変換テーブル３４、デマルチプレクサ３５、ビット抽出部３６を備える。また、受信部５は、計時カウンタ回路３７、チェックコード生成回路３９、シーケンス番号前周期記憶回路４１、第１記憶回路４３、第２記憶回路４４を備える。本実施の形態例では、これらの回路をまとめて情報抽出部７と呼ぶ。
【００５１】
また、受信部５は、第１判定回路３８、第２判定回路４０、第３判定回路４２、第４判定回路４５、認証判定回路４６を備える。本実施の形態例では、第１判定回路３８、第２判定回路４０、第３判定回路４２、第４判定回路４５、認証判定回路４６をまとめて判定部８と呼ぶ。
【００５２】
受信ポート３１は、通信装置２Ａが送信した通信フレームデータを、ネットワークＮを介して受信し、フレーム受信制御回路３２に通信フレームデータを出力すると共に、通信フレームデータから取り出した電子署名ｆ５をＳＰ変換回路３３に出力する。
【００５３】
フレーム受信制御回路３２は、信号路ｄ２１を通じて、受信ポート３１が受信した通信フレームデータを制御装置３に送信する。そして、フレーム受信制御回路３２は、ＳＰ変換回路３３、逆変換テーブル３４、デマルチプレクサ３５、ビット抽出部３６、計時カウンタ回路３７、チェックコード生成回路３９、判定回路に所定のデータ、信号を送信し、各部の制御を行う。
【００５４】
情報抽出部７は、電子署名ｆ５を逆変換テーブル３４により逆変換したブロックｄ２７〜ｄ２９から、送信部４の電子署名生成部６が並び替えた所定の順序でチェックコードｆ１２、シーケンス番号ｆ１３、及び乱数ｆ１４を抽出する。
【００５５】
このとき、ＳＰ変換回路３３は、受信ポート３１から入力する電子署名ｆ５をパラレルデータに変換する。
逆変換テーブル３４（デコーダの一例）は、パラレルデータに変換された電子署名ｆ５を復号する。
デマルチプレクサ３５（分配回路の一例）は、逆変換テーブル３４によって復号された電子署名ｆ５を、ビット数列集合からなる複数のブロックｄ２７〜ｄ２９に分配する。
このようにＳＰ変換回路３３、逆変換テーブル３４、デマルチプレクサ３５は、電子署名ｆ５を逆変換テーブル３４により逆変換して複数のブロックｄ２７〜ｄ２９に復号する復号部３０として用いられる。
【００５６】
ビット抽出部３６は、ブロックｄ２７〜ｄ２９からそれぞれ単位固定長とした１ビット以上の任意ビットを抽出し、この任意ビットを所定の順序で並べ替えて、計時カウンタ情報ｆ１１、チェックコードｆ１２、シーケンス番号ｆ１３、及び乱数ｆ１４を取り出す。取り出された計時カウンタ情報ｆ１１、チェックコードｆ１２、シーケンス番号ｆ１３、及び乱数ｆ１４は、それぞれ信号路ｄ３０，ｄ３１，ｄ３２，ｄ３３に出力される。
【００５７】
そして、判定部８は、計時カウンタ情報、チェックコード、シーケンス番号の比較結果に基づいて、通信フレームデータを正常と判定した場合に、制御装置３による制御通信データの取り込みを許可する。具体的には、判定部８は、以下のような比較を行う。
【００５８】
計時カウンタ回路３７（第２の計時カウンタ情報生成部の一例）は、計時動作によって生成した計時カウンタ情報（第２の計時カウンタ情報の一例）を第１判定回路３８に出力する。
第１判定回路３８（現周期差分判定部の一例）は、自身が計時する計時カウンタ情報と、他の通信装置によって計時された計時カウンタ情報とを比較する。例えば、第１判定回路３８は、計時カウンタ回路３７によって生成された計時カウンタ情報と、ビット抽出部３６によってブロックｄ２７〜ｄ２９から抽出された計時カウンタ情報ｆ１１との差が所定の誤差（第２の誤差の一例）の範囲内にあるか否かを判定する。そして、第１判定回路３８は、判定結果を認証判定回路４６に出力する。
【００５９】
チェックコード生成回路３９（第２のチェックコード生成部の一例）は、受信ポート３１が受信した通信フレームデータのフレーム情報に基づいて生成したチェックコード（第２のチェックコードの一例）を第２判定回路４０に出力する。
第２判定回路４０（チェックコード判定部の一例）は、通信フレームデータのチェックコードの改ざん有無を判定する。例えば、第２判定回路４０は、チェックコード生成回路３９によって生成されたチェックコードと、ビット抽出部３６によってブロックｄ２７〜ｄ２９から抽出されたチェックコードｆ１２との相違を判定し、判定結果を認証判定回路４６に出力する。
【００６０】
シーケンス番号前周期記憶回路４１（シーケンス番号記憶部の一例）は、前周期の受信処理で電子署名ｆ５から復号された前周期のシーケンス番号ｆ１３を記憶しており、前周期のシーケンス番号ｆ１３を第３判定回路４２に出力する。
第３判定回路４２（シーケンス番号判定部の一例）は、前周期と現周期の通信フレームデータに付加されたシーケンス番号の一致又は不一致を判定する。例えば、第３判定回路４２は、シーケンス番号前周期記憶回路４１に記憶された前周期の通信フレームデータから抽出されたシーケンス番号ｆ１３と、ビット抽出部３６によって現周期の通信フレームデータから抽出されたシーケンス番号ｆ１３との相違を判定する。そして、第３判定回路４２は、判定結果を認証判定回路４６に出力する。
【００６１】
第１記憶回路４３（第１の計時カウンタ情報記憶部の一例）は、現周期の通信フレームデータから抽出された計時カウンタ情報ｆ１１を記憶する。
第２記憶回路４４（第２の計時カウンタ情報記憶部の一例）は、前周期の通信フレームデータから抽出された計時カウンタ情報ｆ１１を記憶する。
第１記憶回路４３に格納された前周期の計時カウンタ情報ｆ１１は、受信ポート３１が次の通信フレームデータを受信した際に、第２記憶回路４４にシフトして格納される。そして、第１記憶回路４３には、ブロックｄ２７〜ｄ２９から抽出された現周期の計時カウンタ情報ｆ１１が格納される。
【００６２】
第４判定回路４５（周期間差分判定部の一例）は、前周期と現周期の計時カウンタ情報ｆ１１の差分が許容誤差（第１の誤差の一例）の範囲内であるか否かを判定する。例えば、第４判定回路４５は、第１記憶回路４３に記憶される現周期の計時カウンタ情報ｆ１１と、第２記憶回路４４にシフトされた前周期の計時カウンタ情報ｆ１１との差分が許容誤差の範囲内であるかを判定し、判定結果を認証判定回路４６に出力する。
【００６３】
認証判定回路４６（認証判定部の一例）は、第１判定回路３８、第２判定回路４０、第３判定回路４２、第４判定回路４５から入力した判定結果に基づいて、電子署名ｆ５を認証し、制御通信データｆ４の取り込み許可又は不許可の判定を行う。認証判定回路４６は、許可判定した場合には、制御装置３による制御通信データｆ４の取り込みを許可し、制御通信データｆ４の取り込みを不許可判定した場合には、通信フレームデータを破棄する。認証判定回路４６が行う電子署名ｆ５の認証処理の詳細な例は、図７にて後述する。そして、認証判定回路４６は、判定結果を制御装置３に出力する。制御装置３は、この判定結果に基づいて、通信フレームデータから制御通信データを取り込む。
【００６４】
正規の通信装置２Ａが送信した通信フレームデータであることを判定部８が認証するためには、以下の３つの要件（１）〜（３）を全て満たすことが必要である。
（１）受信部５は、通信フレームデータから抽出した計時カウンタ情報ｆ１１と、自身の計時カウンタ回路３７が計時した計時カウンタ情報とを比較して計時カウンタ情報の差分を求め、この差分が予め決められた許容誤差の範囲内であること。
（２）通信フレームデータから抽出したチェックコードｆ１２と、受信した通信フレームデータのフレーム情報に基づいて演算したチェックコードの内容が一致していること。
（３）現周期のシーケンス番号ｆ１３が、前周期の通信フレームデータに付されたシーケンス番号ｆ１３と同一でないこと。
なお、ビット抽出部３６によって抽出された乱数ｆ１４は、ネットワークＮ上の暗号強度を高める目的で実装したデコイ（囮）であるため、破棄される。
【００６５】
以下、受信部５が行う通信フレームデータの受信処理の例について説明する。
フレーム受信制御回路３２は、受信ポート３１が通信フレームデータを受信開始したことを契機として、通信フレームデータの受信処理を開始し、チェックコード生成回路３９に対してチェックコード生成制御信号ｄ２３を発行する。チェックコード生成回路３９は、チェックコード生成制御信号ｄ２３を受けると、フレーム受信制御回路３２から信号路ｄ２１を通じて受け取った通信フレームデータのフレーム情報に基づいてチェックコードｆ１２を生成する。そして、フレーム受信制御回路３２は、制御通信データｆ４の入力が完了するタイミングになると、チェックコード生成制御信号ｄ２３を取り下げ、チェックコード生成回路３９によるチェックコードｆ１２の生成を完了させる。
【００６６】
続いて、受信ポート３１に電子署名ｆ５が入力すると、この電子署名ｆ５がフレーム受信制御回路３２とＳＰ変換回路３３に出力される。フレーム受信制御回路３２は、符合化コードのシリアルパラレル変換制御信号ｄ２４を活性化させると、ＳＰ変換回路３３が符号化コード（電子署名ｆ５）をパラレルデータに変換する。そして、ＳＰ変換回路３３は、パラレルデータに変換された符号化コードを逆変換テーブル３４（デコーダの一例）に逐次入力する。逆変換テーブル３４に入力するパラレルデータ化された符号化コードは、ビット数列集合に復号される。
【００６７】
符号化コードがビット数列集合に復号されると、フレーム受信制御回路３２は、ビット数列集合をブロックに振り分けるための振り分け制御信号ｄ２５を活性化させる。デマルチプレクサ３５（振り分け回路の一例）に振り分け制御信号ｄ２５を供給する。デマルチプレクサ３５は、復号されたビット数列集合をＮ個の複数のブロックｄ２７〜ｄ２９に振り分けて格納する。
【００６８】
複数のブロックｄ２７〜ｄ２９へのビット数列集合の格納が完了すると、フレーム受信制御回路３２は、ビット抽出部３６にビット抽出信号ｄ２６を発行し、判定回路に認証判定実施信号ｄ２２を発行する。ビット抽出部３６は、ビット抽出信号ｄ２６に従い、複数のブロックｄ２７〜ｄ２９から、計時カウンタ情報ｆ１１、チェックコードｆ１２、シーケンス番号ｆ１３に対応する任意ビットを信号路ｄ３０，ｄ３１，ｄ３２を通じて抽出する。なお、信号路ｄ３３を通じて抽出される乱数ｆ１４に対応するビットは破棄される。
【００６９】
また、フレーム受信制御回路３２から認証判定実施信号ｄ２２を受けた判定回路は、以下の判定処理を実施する。これらの判定処理の結果に応じて後述する図７に示すように認証判定回路４６の状態が遷移する。
【００７０】
次に、通信装置２Ｂ（自装置）と、通信装置２Ａ（他装置）との間で行われる、計時カウンタ回路３７が生成する計時カウンタ情報の同期方法について説明する。
本発明の実施の形態では、通信装置２Ａ、２Ｂ間で同期が行われていない、いわゆる同期未完の状態では、電子署名による認証を行うことができない。
【００７１】
しかし、計時カウンタ情報を同期するために用いられる情報を転送する通信フレームデータ自体にも電子署名認証が行えないと、計時カウンタ情報を同期するために用いられる情報が攻撃者によってなりすまされるセキュリティリスクがある。このため、計時カウンタ情報を同期するために用いられる情報についても電子署名認証を実施する必要がある。そこで、本実施の形態例において、同期が外れている同期未完状態の受信部５は、以下に示す判定方式により電子署名ｆ１５を認証する。
【００７２】
この判定方式の前提として、計時カウンタ情報のマスタとなる通信装置（例えば、通信装置２Ａ）は、予め決められた一定の任意周期で通信フレームデータを送出する必要がある。送出される通信フレームデータは、同期専用のものでも、通常の通信フレームデータを流用したものでも構わない。
【００７３】
同期未完状態の受信部５は、通信装置２Ａから通信フレームデータを受信すると、ＳＰ変換回路３３、逆変換テーブル３４、デマルチプレクサ３５、ビット抽出部３６を介して復号された計時カウンタ情報ｆ１１を抽出する。同じく通信フレームデータから抽出されたチェックコードｆ１２が第２判定回路４０によって判定され、シーケンス番号ｆ１３が第３判定回路４２によって判定された後、計時カウンタ情報ｆ１１が第１記憶回路４３に一旦格納される。
【００７４】
次に、受信部５は、通信装置２Ａから現周期（ｎ＋１周期）の通信フレームデータを受信すると再び復号処理を実施し、現周期目の通信フレームデータから計時カウンタ情報ｆ１１を抽出し、チェックコードｆ１２及びシーケンス番号ｆ１３のチェックを実施する。情報抽出部７は、以下の第１及び第２要件を満たす場合に、現周期（ｎ＋１周期）の計時カウンタ情報ｆ１１を第１記憶回路４３に記憶し、第１記憶回路４３に記憶されていた前周期（ｎ周期）の計時カウンタ情報ｆ１１を第２記憶回路４４にシフトして格納する。第１要件は、通信フレームデータから抽出されたチェックコードｆ１２と、通信フレームデータのフレーム情報から生成されたチェックコードが一致することである。第２要件は、通信フレームデータから抽出されたシーケンス番号ｆ１３と、シーケンス番号前周期記憶回路４１に記憶された前周期のシーケンス番号ｆ１３とが異なっていることである。
【００７５】
そして、第４判定回路４５は、第１記憶回路４３と第２記憶回路４４にそれぞれ格納された前周期と現周期の計時カウンタ情報ｆ１１の差分をフレーム送信間隔時間の許容誤差（第１の誤差の一例）の範囲と比較する。第４判定回路４５は、この差分がフレーム送信間隔時間の許容誤差の範囲内に収まっていれば、計時カウンタ回路３７を他の通信装置の計時カウンタ回路と同期しても良いと判断する。そして、計時カウンタ回路３７は、第１記憶回路４３に記憶される現周期の計時カウンタ情報ｆ１１を自身に複写することで、計時カウンタ情報ｆ１１に、計時カウンタ回路３７が計時する計時カウンタ情報を同期することが可能となる。
【００７６】
図７は、認証判定回路４６の状態遷移の例を示す説明図である。
【００７７】
上述したように受信部５の計時カウンタ回路３７は、マスタとなる通信装置との間で同期未完状態（非同期状態）と、同期状態の２つの状態を遷移する。そして、認証判定回路４６は、計時カウンタ回路３７が同期未完状態であれば、計時カウンタ回路３７が同期未完状態から同期状態に遷移するまでに２段階の認証ステップ（第１及び第２の認証ステップ）を必要とする。
このように認証判定回路４６が２段階の認証ステップを要するのは以下の理由による。
制御通信では、
ネットワークＮに生じた一過性ノイズ等の外乱に通信フレームデータが晒されることにより、通信フレームデータの一部が一時的に欠損する現象（不確実性）が発生する場合がある。不確実性が発生すると、一過性ノイズによる前周期のフレーム欠損が原因となって、本来は正常に判定できるはずの現周期の通信フレームデータをも認証判定回路４６が破棄する可能性がある。このように現周期の通信フレームデータを破棄する動作は、通信における一過性のエラー耐性を不必要に弱めることに他ならず、通信フレームデータを連続して送受信することができなくなるため許容できない。よって、受信部５は、計時カウンタ回路３７が同期未完状態であれば、第１記憶回路４３と第２記憶回路４４を用いてマスタとなる通信装置との間で計時カウンタ回路３７が生成する計時カウンタ情報を同期する同期処理を実施する。この同期処理において、受信部５の認証判定回路４６は、２段階の認証ステップを採用する。第１の認証ステップは、第２判定回路４０と第３判定回路４２がいずれもＯＫ判定であり、第４判定回路４５がＮＧ判定であれば、認証判定回路４６の状態を認証未判定５３から認証中間判定ＯＫ５１に遷移することを認証する処理である。第２の認証ステップは、第２判定回路４０、第３判定回路４２、第４判定回路４５がいずれもＯＫ判定であれば、認証判定回路４６の状態を認証未判定５３から認証判定ＯＫ５２に遷移することを認証する処理である。
以下に、マスタとなる他の通信装置によって生成される計時カウンタ情報と、受信部５の計時カウンタ回路３７が生成する計時カウンタ情報との同期がされていない同期未完状態において、認証判定回路４６が同期状態に遷移する状態遷移について説明する。
【００７８】
本実施の形態例において認証判定回路４６の状態は、計時カウンタ同期未完状態５０と計時カウンタ同期状態６０に分けられる。計時カウンタ同期未完状態５０では、認証判定回路４６が、認証中間判定ＯＫ５１、認証判定ＯＫ５２、認証未判定５３、認証判定ＮＧ５４の各状態を遷移する。また、計時カウンタ同期状態６０では、認証判定回路４６が、認証判定ＯＫ６１、認証未判定６２、認証未判定６３の各状態を遷移する。
【００７９】
まず、計時カウンタ情報が同期未完である初期状態の認証未判定５３から説明を始める。認証未判定５３は、計時カウンタ同期未完状態５０の中にあり、この時点では、計時カウンタ回路３７が生成する計時カウンタ情報の許容誤差判定を行う第１判定回路３８は機能していない。
【００８０】
第２判定回路４０は、信号路ｄ３１を通じて入力する、復号されたチェックコードｆ１２と、チェックコード生成回路３９が通信フレームデータから生成したチェックコードとを比較し、チェックコードが一致しているか否かを判定する（第２判定処理）。第２判定回路４０は認証判定回路４６に対して、チェックコードが一致していればＯＫ判定を出力し、不一致であればＮＧ判定を出力する。チェックコードが不一致であるとは、攻撃者によってフレーム情報が書き替えられた可能性があることを意味する。
【００８１】
第３判定回路４２は、信号路ｄ３２を通じて入力する、復号された現周期のシーケンス番号ｆ１３と、シーケンス番号前周期記憶回路４１に記憶された前周期のシーケンス番号ｆ１３とを比較する。そして、第３判定回路４２は、これらのシーケンス番号が不一致であるか否かを判定する（第３判定処理）。第３判定回路４２は認証判定回路４６に対して、シーケンス番号が不一致であればＯＫ判定を出力し、一致していればＮＧ判定を出力する。シーケンス番号が一致するとは、攻撃者がネットワークＮ上で通信フレームデータを窃取し、複写した可能性がある通信フレームデータを受信したことを意味する。
【００８２】
第４判定回路４５は、信号路ｄ３０を通じて入力する、第１記憶回路４３に記憶された計時カウンタ情報と、第２記憶回路４４に記憶された計時カウンタ情報との差分が許容誤差範囲内であるかを判定する（第４判定処理）。第４判定回路４５は認証判定回路４６に対して、計時カウンタ情報の差分が許容誤差の範囲内であればＯＫ判定を出力し、範囲外であればＮＧ判定を出力する。計時カウンタ情報の差分が許容誤差の範囲外であるとは、受信した通信フレームデータは定周期に受信したものではなく、制御通信データを利用できないことを意味する。なお、初期状態では、第１記憶回路４３に計時カウンタ情報が格納されるものの、第２記憶回路４４には何も格納されていないため、第４判定回路４５はＮＧ判定を出力する。
【００８３】
第２判定回路４０と第３判定回路４２がそれぞれチェックコードとシーケンス番号の判定結果をＯＫ判定とし、第４判定回路４５が計時カウンタ情報をＮＧと判定したならば、認証判定回路４６の状態は、認証未判定５３から認証中間判定ＯＫ５１に遷移する（第１の認証ステップ）。第２判定回路４０又は第３判定回路４２にてチェックコード又はシーケンス番号のいずれかをＮＧと判定したならば、認証判定回路４６の状態は認証判定ＮＧ５４に遷移する。このとき、認証判定回路４６は、受信した通信フレームデータを破棄する。
【００８４】
認証中間判定ＯＫ５１に遷移した後、認証判定回路４６は認証判定報告信号ｄ３４を第１記憶回路４３と第２記憶回路４４に出力する。認証判定報告信号ｄ３４が入力すると、第１記憶回路４３に格納されていた計時カウンタ情報が第２記憶回路４４にシフトされる。
計時カウンタ情報がシフトされた後、受信した通信フレームデータは破棄され、認証判定回路４６の状態は再び認証未判定５３に戻る。
【００８５】
認証判定回路４６の状態が認証判定ＮＧ５４であれば、第１記憶回路４３に格納されていた計時カウンタ情報は第２記憶回路４４にシフトしない。この理由は、第２判定回路４０又は第３判定回路４２のいずれかがＮＧと判定したということは、受信した通信フレームデータが悪意ある第三者（攻撃者）によって送信されたことが明確であるからである。このため、受信した通信フレームデータに格納された計時カウンタ情報で第２記憶回路４４を上書きしてはならず、受信した通信フレームデータは破棄された後、認証判定回路４６の状態が認証未判定５３に戻る。
【００８６】
受信部５が次の周期の通信フレームデータを受信した際にも、現周期で通信フレームデータを受信したときと同様の受信処理が行われる。これにより、第４判定回路４５は、第１記憶回路４３に新たに格納された現周期の計時カウンタ情報と、第２記憶回路４４にシフトして記憶される前周期の計時カウンタ情報との差分を比較することが可能となる。
【００８７】
そして、第４判定回路４５は、計時カウンタ情報の差分が許容誤差範囲内であれば、認証判定回路４６にＯＫ判定を出力する。同時に第２判定回路４０、第３判定回路４２もそれぞれ認証判定回路４６にＯＫ判定を出力すれば、認証判定回路４６の状態は、認証未判定５３から認証判定ＯＫ５２に遷移する（第２の認証ステップ）。そして、認証判定回路４６は、制御装置３に対して認証判定報告信号ｄ３４をＯＫ出力する。これにより、制御装置３は、フレーム受信制御回路３２から通信フレームデータの制御通信データｆ４を取り込むことができる。
【００８８】
なお、認証判定報告信号ｄ３４は、計時カウンタ回路３７にも入力される。これにより、計時カウンタ回路３７が計時する計時カウンタ情報は、受信した通信フレームデータから抽出された計時カウンタ情報ｆ１１の値で書き換えられる。これにより、送信側の通信装置２Ａと、受信側の通信装置２Ｂは、計時カウンタ情報の同期を完了する。
【００８９】
通信フレームデータの受信処理と、計時カウンタ情報の同期処理が完了すると、認証判定回路４６の状態は、計時カウンタ同期状態６０の中の認証未判定６２に遷移する。以降の受信処理では、第４判定回路４５ではなく第１判定回路３８が動作し、認証処理を引き継ぐことになる。
【００９０】
第１判定回路３８では、信号路ｄ３０を通じて入力する、受信した通信フレームデータから復号された計時カウンタ情報ｆ１１と、計時カウンタ回路３７が出力する計時カウンタ情報とを比較し、計時カウンタ情報の誤差が許容誤差範囲内であるかを判定する。
【００９１】
フレーム受信制御回路３２により認証判定実施信号ｄ２２が発行されたタイミングで、第１判定回路３８、第２判定回路４０、第３判定回路４２の全ての判定結果がＯＫであれば、認証判定回路４６の状態は、認証未判定６２から認証判定ＯＫ６１に遷移する。そして、認証判定回路４６は、制御装置３に認証判定報告信号ｄ３４をＯＫ出力することで、通信フレームデータの受信処理と計時カウンタ回路３７の同期処理を同時に行う。また、制御装置３は、フレーム受信制御回路３２から通信フレームデータの制御通信データｆ４を取り込むことができる。
【００９２】
第１判定回路３８、第２判定回路４０、第３判定回路４２の判定結果に一つでもＮＧがあると、認証判定回路４６の状態は、認証未判定６２において認証判定ＮＧ６３に遷移し、認証判定回路４６は受信した通信フレームデータを破棄する。
【００９３】
正常な通信が継続している限り、計時カウンタ回路３７は定期的に認証判定報告信号ｄ３４を認証判定回路４６から受信し、計時カウンタ情報の同期を行う。しかし、計時カウンタ情報のズレが許容できなくなるほど、認証判定報告信号ｄ３４の受信が滞ると、計時カウンタ回路３７は計時カウンタ同期タイムアウト発生信号ｄ３５を認証判定回路４６に出力する。計時カウンタ回路３７から計時カウンタ同期タイムアウト発生信号ｄ３５を受けると、認証判定回路４６の状態は、認証未判定６２から計時カウンタ同期未完状態５０の認証未判定５３に遷移する。これにより再び計時カウンタ情報の同期処理が行われることとなる。
【００９４】
以上説明した第１の実施の形態例に係る通信システム１によれば、通信フレームデータを送信する度に、乱数ｆ１４を用いて電子署名ｆ５を生成する。この乱数ｆ１４は、通信フレームデータの制御通信データｆ４とは何の関連もないため、ネットワークＮ上に出現する電子署名ｆ５の内容が不規則に変化する。このため、第三者の盗聴による電子署名ｆ５の解読を困難とすることができる。
【００９５】
また、攻撃者が通信フレームデータをキャプチャし、なりすましによってキャプチャした通信フレームデータを通信装置に連続発行して制御システムの動作を停滞させるリスクに対応可能である。この場合、通信フレームデータに格納された電子署名ｆ５内の計時カウンタがフリーズ状態で受信部５に受信され続ける。このため、受信部５は、計時カウンタ情報を比較処理することにより、フリーズ状態の計時カウンタ情報を許容誤差の範囲外と判定し、通信フレームデータを破棄することができる。
【００９６】
また、攻撃者が計時カウンタ情報の許容誤差範囲の時間内で高速に通信フレームデータをキャプチャし、電子署名ｆ５だけをそのままにして、制御通信データｆ４を改ざんする場合がある。この場合であっても、受信部５はチェックコードｆ１２が不一致であることにより、通信フレームデータを破棄することができる。
【００９７】
また、高速に動作する攻撃者が、過負荷状態にする目的で時間局所的にキャプチャした通信フレームデータを連続発行した場合には、シーケンス番号ｆ１３がインクリメントされずにフリーズして見えるため、シーケンス番号チェックにより、通信フレームデータを破棄することができる。
【００９８】
以上の認証処理は、ＦＣＳチェックを通過した通信フレームデータに対して実施される。このため、認証破棄される通信フレームデータを検知するということは、人為的に不正介入した第三者が存在している可能性があると判断することができる。
【００９９】
よって、システム管理者は、認証破棄状態の検知が単位時間あたりに頻発するようであればセキュリティ攻撃を受けているとみなす。そして、攻撃を受けていると疑われる通信装置２Ａ〜２Ｍのいずれかを制御システムからの切り離し、それに準ずる縮退運転、運転系の切替え、又は制御システム自体を一旦停止する、等の保全措置を講じることができる。
【０１００】
また、本実施の形態例は、シンプル、かつ小規模なハードリソースで実現可能であり、ＦＰＧＡ（Field Programmable Gate Array）等に容易に実装できる。本実施の形態例に係る機能をソフトウェアにより実装することも可能であるが、ハードウェアであれば、通常のフレーム処理と認証処理を並列に実施できるため、時間的なオーバヘッドが皆無となる。また、ハードウェアで実現する際、認証判定回路４６の機能をＯＳＩ参照モデルでいうレイヤ２以下で実装可能なため、過負荷攻撃があったとしてもレイヤ３以上の処理が圧迫されることがない、といった特徴をもつ。
【０１０１】
また、電子文書に署名を付加する方式として、ＩＳＯ／ＩＥＣ１８０１４で標準化された電子文書のタイムスタンプサービスを用いたものがある。このサービスでは、ＴＳＡ（Time-Stamping Authority）が電子文書のハッシュ値とタイムスタンプを結合させたタイムスタンプトークンを生成し、発行することで電子文書作成日付の信頼性を保証することができる。このサービスでは電子署名ｆ５を生成するために「計時」を用いる点で本実施の形態例に係る動作と類似しているが、本実施の形態例に係る受信部５では受信したデータの有効期限を認証判定条件に設けている点が異なる。つまり、電子署名ｆ５の効力に、時間局在性を持たせている点が本発明の特徴である。例えば、電子署名ｆ５に符号化された計時カウンタ情報ｆ１１が含まれることにより、計時カウンタ情報ｆ１１の許容範囲外となるタイミングで受信した通信フレームデータは破棄される。これにより古い制御通信データを含む通信フレームデータを制御装置３が取り込むことがなくなり、制御装置３が誤った処理を行わなくなる。
【０１０２】
また、本実施の形態例に係る認証処理は、制御システムの直接的なリスクである「制御停止、停滞」、及び「制御の暴走」を防止することをセキュリティ要件として掲げる。そして、本認証処理は、リアルタイム性を損なうことなく悪意ある第三者からの「過負荷アクセス攻撃」、「偽装アクセス攻撃（データ改ざん）」から制御システムを保護することが可能となる。また、フレーム情報に対して、乱数によってランダマイズされた計時情報付きの電子署名ｆ５を付加することで、制御システムを保護することが可能となる。
【０１０３】
なお、送受信に際して通信フレームデータに秘匿を要する任意のデータがある場合、任意のデータのみを暗号化対象に含めれば、データの一部だけを暗号化する「部分暗号」に本実施の形態例に係る方法を応用可能である。このとき、送信部４の電子署名生成部６は、制御通信データｆ４の一部を電子署名ｆ５に含ませることで、制御通信データｆ４の一部をも暗号化対象とする。そして、受信部５の判定部８は、電子署名ｆ５を復号して得た制御通信データｆ４の一部を通信フレームデータの判定に用いないようにする。これにより秘匿を要するデータだけを暗号化し、復号することが可能となる。
【０１０４】
［２．第２の実施の形態例］
次に、本発明の第２の実施の形態例に係る受信部５の動作例について説明する。
図８は、第２の実施の形態例に係る認証判定回路４６の状態遷移の例を示す説明図である。ここでは、計時カウンタ情報の同期を考慮しない方法について説明する。
【０１０５】
この場合、送信部４は、計時カウンタ回路１３を備えていない。ブロック生成部１７は、チェックコードｆ１２、シーケンス番号ｆ１３、及び乱数ｆ１４からそれぞれ単ビット単位、又は複数ビット単位で分離した単位固定長のビットを並べ替えてブロックｄ８〜ｄ１０を生成する。そして、符号化部２１は、ブロックｄ８〜ｄ１０に基づいて、電子署名ｆ５を生成する。
【０１０６】
また、受信部５は、計時カウンタ回路３７、第１判定回路３８を備えていない。このため、情報抽出部７は、第２判定回路４０、第３判定回路４２、第４判定回路４５により所定の判定を行い、認証判定回路４６は、これらの判定回路の判定結果に基づいて状態が遷移し、通信フレームデータに対する処理を行う。
【０１０７】
認証判定回路４６の状態は、認証中間判定ＯＫ７１、認証判定ＯＫ７２、認証未判定７３、認証判定ＮＧの各状態を遷移する。初期状態である認証未判定７３から認証中間判定ＯＫ７１、認証判定ＯＫ７２、認証判定ＮＧ７４に遷移する条件は、図７に示した認証未判定５３から認証中間判定ＯＫ５１、認証判定ＯＫ５２、認証判定ＮＧ５４に遷移する条件と同じである。
【０１０８】
ただし、図８では計時カウンタ情報の同期状態６０に該当する状態がなく、代わりに認証判定ＯＫ７２から認証未判定７３に遷移する遷移条件が追加された点が異なる。この遷移条件は、フレーム受信処理と、第１記憶回路４３の前周期の計時カウンタ情報ｆ１１を、第２記憶回路４４にシフトする処理が完了した時である。以降、他の通信装置から通信フレームデータを受信する通信間隔時間が、第４判定回路４５が判定する許容誤差範囲内であれば、認証判定回路４６は、認証未判定７３と認証判定ＯＫ７２の状態遷移を繰り返す。
【０１０９】
このように計時カウンタ情報の許容誤差の範囲を広くしても支障がないと運用者が判断できるのであれば、通信装置間の同期をとることなく、通信フレームデータの送受信に必要とされるセキュリティを実現することが可能となる。
【０１１０】
本実施の形態例によれば、計時カウンタ回路３７及び第１判定回路３８の実装が不要となるため、受信部５を構成するハードウェアの実装が簡素化されて製造コストを低減することができる。
【０１１１】
なお、本実施の形態例において、先述した一過性ノイズによるフレーム欠損の影響を第４判定回路４５にて予め考慮しておく必要がある。具体的には許容誤差を大きくしなければならなくなる点である。例えば、通信フレームデータの受信間隔がＴミリ秒とする。一過性のノイズがないときは、第１記憶回路４３と第２記憶回路４４に格納された計時カウンタ情報の差分は常にＴミリ秒程度となるため、第４判定回路４５には、Ｔミリ秒に多少のマージンを加えた値でよい。しかし、一過性ノイズがＮ回連続する可能性があると想定した場合には、この許容誤差をＮ×Ｔミリ秒にマージンを加えた値にしなくてはならず、電子署名ｆ５の有効期限である時間局在性が弱くなることにつながる。この点に注意すれば、本実施の形態例においても十分に実用性が高いと言える。
【０１１２】
［３．変形例］
なお、上述した第１及び第２の実施の形態例に係る送信部４及び受信部５は、それぞれ送信機能だけを有する送信装置、受信機能だけを有する受信装置として用いてもよい。
図９は、通信システム１Ａのシステム構成図を示す。
通信システム１Ａは、送信装置９と受信装置１０を備えており、送信装置９から受信装置１０に通信フレームデータを片方向に送受信する。
送信装置９は、制御装置３と送信部４を備え、ネットワークＮを介して受信装置１０に通信フレームデータを送信する。
受信装置１０は、制御装置３と受信部５を備え、ネットワークＮを介して送信装置９から通信フレームデータを受信する。
このような構成とした通信システム１Ａであっても、通信フレームデータを安全に送受信することが可能である。
【０１１３】
また、電子署名生成部６は、複数の変換テーブル１９を有し、電子署名ｆ５を生成するために用いられた変換テーブル１９に関する情報を電子署名ｆ５に付加する。そして、情報抽出部７は、複数の逆変換テーブル３４を有し、電子署名ｆ５に付加された変換テーブル１９に関する情報に基づいて選択した逆変換テーブル３４を用いて電子署名ｆ５を復号する。このように複数の変換テーブル１９と、複数の逆変換テーブル３４を用いることにより、一つの変換テーブル１９、逆変換テーブル３４の情報が外部に流出したとしても、直ちに他の変換テーブル１９、逆変換テーブル３４に切替えて処理を継続することができる。
【０１１４】
また、本発明は上述した実施の形態例に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
例えば、上述した実施の形態例は本発明を分かりやすく説明するために装置及びシステムの構成を詳細且つ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態例の構成の一部を他の実施の形態例の構成に置き換えることは可能であり、さらにはある実施の形態例の構成に他の実施の形態例の構成を加えることも可能である。また、各実施の形態例の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１１５】
１…通信システム、２Ａ〜２Ｍ…通信装置、３…制御装置、４…送信部、５…受信部、６…電子署名生成部、７…情報抽出部、８…判定部、１２…送信ポート、２１…符号化部、３０…復号部、３１…受信ポート
【図１】
0006480291.tif 000002
【図２】
0006480291.tif 000003
【図３】
0006480291.tif 000004
【図４】
0006480291.tif 000005
【図５】
0006480291.tif 000006
【図６】
0006480291.tif 000007
【図７】
0006480291.tif 000008
【図８】
0006480291.tif 000009
【図９】
0006480291.tif 000010