(57)【要約】【課題】処理時間の制約内で、通信データの完全性や秘匿性の高い暗号処理を実現する。【解決手段】制御装置が、制御装置で動作するアプリケーションやアプリケーションが利用するコマンドに対応した、通信データに対するセキュリティ要件を格納する要件リスト保管部と、各種暗号アルゴリズムの実行に伴う評価結果を格納する評価結果保管部と、制御装置の状態を示す環境情報を格納する自装置環境情報保管部と、第１の通信データを生成したアプリケーションおよびアプリケーションが通信データを生成するために利用したコマンドに対応して、セキュリティ要件と評価結果と第１の環境情報とを満足する、通信データを暗号化する暗号アルゴリズムを各種暗号アルゴリズムから選択する暗号選択部とを備える。【選択図】  図１
2014045237.tif 000002
【特許請求の範囲】
【請求項１】
通信時に利用する暗号アルゴリズムを動的に変更する動的暗号変更システムであって、
前記動的暗号変更システムは、
複数の制御装置と前記複数の制御装置を接続するネットワークから構成され、
前記複数の制御装置に含まれる制御装置は、
前記制御装置で動作するアプリケーションや前記アプリケーションが利用するコマンドに対応した、通信データに対するセキュリティ要件を格納する要件リスト保管部と、前記制御装置で各種暗号アルゴリズムの実行に伴う評価結果を格納する評価結果保管部と、前記制御装置の状態を示す第１の環境情報を格納する自装置環境情報保管部と、第１の通信データを生成した第１のアプリケーションおよび前記第１のアプリケーションが前記第１の通信データを生成するために利用した第１のコマンドに対応して、前記要件リスト保管部に格納されている前記セキュリティ要件と、前記評価結果保管部に格納されている前記評価結果と、前記自装置環境情報保管部に格納されている前記第１の環境情報とを満足する、前記第１の通信データを暗号化する暗号アルゴリズムを前記各種暗号アルゴリズムから選択する暗号選択部と、
を備えることを特徴とする動的暗号変更システム。
【請求項２】
請求項１に記載の動的暗号変更システムであって、
前記制御装置は、さらに、
前記選択した暗号アルゴリズムを用いて前記第１の通信データを暗号化する第１の暗復号処理部と、
前記選択した暗号アルゴリズムを示す暗号モードと、暗号化した前記第１の通信データとを、前記複数の制御装置のうちの他の制御装置に対して前記ネットワークを介して送信する第１の通信部とを備え、
前記他の制御装置は、
前記ネットワークを介して前記暗号モードと暗号化した前記第１の通信データとを受信する第２の通信部と、
受信した前記暗号モードが示す前記暗号アルゴリズムを用いて、暗号化した前記第１の通信データを復号する第２の暗復号処理部と、
を備えることを特徴とする動的暗号変更システム。
【請求項３】
請求項２に記載の動的暗号変更システムであって、
前記第２の暗復号処理部による、暗号化した前記第１の通信データの復号処理が、前記他の制御装置の制御処理へ影響する場合は、前記第２の通信部がエラーコードを前記制御装置に送信することを特徴とする動的暗号変更システム。
【請求項４】
請求項２及び３のいずれか１項に記載の動的暗号変更システムであって、
前記制御装置は、さらに、
前記他の制御装置の第２の環境情報を格納する環境情報リスト保管部を備えることを特徴とする動的暗号変更システム。
【請求項５】
請求項４に記載の動的暗号変更システムであって、
前記暗号選択部は、
前記第１の通信データを生成した前記第１のアプリケーションおよび前記第１のアプリケーションが前記第１の通信データを生成するために利用した前記第１のコマンドに対応して、前記要件リスト保管部に格納されている前記セキュリティ要件と、前記評価結果保管部に格納されている前記評価結果と、前記自装置環境情報保管部に格納されている前記第１の環境情報に加えて、前記環境情報リスト保管部に格納されている前記第２の環境情報を満足する、前記第１の通信データを暗号化する前記暗号アルゴリズムを前記各種暗号アルゴリズムから選択することを特徴とする動的暗号変更システム。
【請求項６】
請求項４及び５のいずれか１項に記載の動的暗号変更システムであって、
前記暗号選択部は、前記環境情報リスト保管部に前記第２の環境情報が格納されていない場合または前記第２の環境情報の有効日時を超えている場合に、前記第１の通信データを平文で送信することを選択し、
前記第１の通信部は、平文である前記第１の通信データとともに平文であることを示す前記暗号モードを送信することを特徴とする動的暗号変更システム。
【請求項７】
請求項６に記載の動的暗号変更システムであって、
前記他の制御装置は、さらに、
前記第２の通信部が前記第１のデータを平文で受信した平文受信回数を格納する平文通信回数保管部を備え、
前記第２の通信部が平文で受信した回数を、前記平文通信回数保管部の前記平文受信回数に格納し、前記平文受信回数が所定の回数以上になった場合に、前記第２の通信部はエラーコードを前記制御装置に送信することを特徴とする動的暗号変更システム。
【請求項８】
請求項４ないし７のいずれか１項に記載の動的暗号変更システムであって、
前記制御装置は、さらに、
前記環境情報リスト保管部に前記他の制御装置の前記第２の環境情報が格納されていない場合または前記第２の環境情報の有効日時を超えている場合に、前記他の制御装置の環境情報を推定する環境情報推定部を備えることを特徴とする動的暗号変更システム。
【請求項９】
請求項１ないし８のいずれか１項に記載の動的暗号変更システムであって、
前記暗号選択部は、前記第１の通信データを暗号化する暗号アルゴリズムとともに、前記第１の通信データの改ざんを検知する暗号アルゴリズムを前記各種暗号アルゴリズムから選択し、
前記第１の暗復号処理部は、前記選択した暗号アルゴリズムを用いて、前記第１の通信データを暗号化するとともに、前記第１の通信データの改ざんを検知するデータを前記第１の通信データに付与し、
前記第２の暗復号処理部は、受信した前記暗号モードが示す前記暗号アルゴリズムを用いて、暗号化した前記第１の通信データを復号するとともに、前記第１の通信データに付与されている改ざんを検知するデータを用いて前記第１の通信データが改ざんされていないことを検証することを特徴とする動的暗号変更システム。
【請求項１０】
通信時に利用する暗号アルゴリズムを動的に変更する制御装置であって、
前記制御装置は、
前記制御装置で動作するアプリケーションや前記アプリケーションが利用するコマンドに対応して、通信データに対するセキュリティ要件を格納する要件リスト保管部と、前記制御装置で各種暗号アルゴリズムの実行に伴う評価結果を格納する評価結果保管部と、前記制御装置の状態を示す第１の環境情報を格納する自装置環境情報保管部と、第１の通信データを生成した第１のアプリケーションおよび前記第１のアプリケーションが前記第１の通信データを生成するために利用した第１のコマンドに対応して、前記要件リスト保管部に格納されているセキュリティ要件と、前記評価結果保管部に格納されている前記評価結果と、前記自装置環境情報保管部に格納されている前記第１の環境情報とを満足する、前記第１の通信データを暗号化する暗号アルゴリズムとともに、前記第１の通信データの改ざんを検知する暗号アルゴリズムを前記各種暗号アルゴリズムから選択する暗号選択部とを備えることを特徴とする制御装置。
【請求項１１】
請求項１０に記載の制御装置であって、
前記制御装置は、ネットワークを介して他の制御装置と接続し、
前記選択した暗号アルゴリズムを用いて前記第１の通信データを暗号化するとともに前記第１の通信データに改ざん検知用のデータを付与する暗復号処理部と、
前記選択した暗号アルゴリズムを示す第１の暗号モードと、暗号化した前記第１の通信データとを、前記他の制御装置に対して前記ネットワークを介して送信する通信部と、
を備えることを特徴とする制御装置。
【請求項１２】
請求項１１に記載の制御装置であって、
前記制御装置は、
さらに、前記他の制御装置の第２の環境情報を格納する環境情報リスト保管部を備える、
ことを特徴とする制御装置。
【請求項１３】
請求項１２に記載の制御装置であって、
前記暗号選択部は、
前記第１の通信データを生成した前記アプリケーションおよび前記第１のアプリケーションが前記第１の通信データを生成するために利用した前記第１のコマンドに対応して、前記要件リスト保管部に格納されている前記セキュリティ要件と、前記評価結果保管部に格納されている前記評価結果と、前記自装置環境情報保管部に格納されている前記第１の環境情報と、前記環境情報リスト保管部に格納されている前記第２の環境情報満足する、前記第１の通信データを暗号化する前記暗号アルゴリズムを前記各種暗号アルゴリズムから選択することを特徴とする制御装置。
【請求項１４】
請求項１２及び１３のいずれか１項に記載の制御装置であって、
前記暗号選択部は、前記環境情報リスト保管部に前記第２の環境情報が格納されていない場合または前記第２の環境情報の有効日時を超えている場合に、前記第１の通信データを平文で送信することを選択し、
前記通信部は、平文である前記第１の通信データとともに平文であることを示す前記第１の暗号モードを送信することを特徴とする制御装置。
【請求項１５】
請求項１１ないし１４のいずれか１項に記載の制御装置であって、
前記制御装置は、
前記通信部による、前記他の制御装置からの第２の通信データと前記第２の通信データに対応する第２の暗号モードの受信に応答して、前記第２の暗号モードから前記第２の通信データを暗号化した第２の暗号アルゴリズムを特定し、前記第２の暗号アルゴリズムを用いて前記第２の通信データの改ざん検知や復号した場合に、該制御装置の処理への影響の有無を判定し、影響がある場合には、前記通信部によりエラーコードを前記他の制御装置に送信する
ことを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続して情報システムや制御システムといったシステム内の装置間で暗号通信を行う場合に利用するシステムに関する。
【背景技術】
【０００２】
電力、鉄道、水道、ガスといった社会インフラで利用される制御システムは、制御対象の装置の状態を示すセンサの情報をもとにバルブやアクチュエータなどを動作させ、制御対象の装置にあらかじめ設定されている圧力や温度を保つように制御することが要求される。制御システムは、この動作を実現するためには、定期的にセンサからの情報を取得し、制御対象の装置状態を確認し、必要であればバルブやアクチュエータなどの制御を行うことが必要となる。このため、制御システムでは周期的に処理を行うことが通例であり、システム内の各制御装置で実行される制御処理は１周期の中で完結することが要求される。また、常に１周期内で完結するために、装置状態の確認や制御などの各処理の処理時間が状況によって大きく変化しないようにすることも求められる。このような条件を満たすように構築されている現在の制御システムは、電力、鉄道、水道といった適用先によって周期や１周期内の空き時間が大きく異なっており、新たな処理を追加するためには、適用先毎に空き時間を見積もり、実装可能な処理内容を検討する必要がある。
【０００３】
一方、制御システムはこれまで専用ＯＳや専用プロトコルを利用しており、インターネット等の外部ネットワークからアクセスできないように孤立した状態で設置されているため、いわゆるコンピュータウィルスやＤｏＳ攻撃といったサイバー攻撃からは無縁であると考えられてきた。しかしながら、コスト削減のために汎用ＯＳや汎用プロトコルを利用するケースが増加しており、また、効率向上のために情報系システムとの接続も進んできている。さらに、近年では、制御システムをターゲットとしたコンピュータウィルスが発見されており、制御システムにおいても情報システムと同様にセキュリティ対策が必要となってきている。
【０００４】
このようなセキュリティ対策の一つとして暗号技術が知られている。暗号技術は、格納データや通信データの秘匿性を確保するだけではなく、通信先の認証やデータの改ざん検知も可能であるため、セキュリティ対策の根幹となる技術である。よって制御システムを保護するために今後制御システム内の制御装置に暗号技術を取り込んでゆくことが求められている。
【０００５】
しかしながら、前述したように制御システムは、限られた処理時間内に処理を完了させる必要があるため、情報システムのように、システムを構成するあらゆる装置に対して強固な（秘匿性の高い）暗号を導入することは困難である。
【０００６】
このような課題に対し、データの送信先に応じて使用する暗号アルゴリズムを使い分ける技術が知られている（たとえば、特許文献１参照）。
【０００７】
また、データの送信時に、受信時に使用する暗号アルゴリズムを指定する技術が知られている（たとえば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−１９８５３０号公報
【特許文献２】特開２００６−２７６０９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載されるような、データの送信先に応じて暗号アルゴリズムを使い分ける技術では、データの送信先の装置の処理性能が高い場合と処理性能が低い場合で、暗号アルゴリズムを使い分けることにより、各装置の処理能力に応じた暗号アルゴリズムを利用することが可能となるが、各装置で実行するアプリケーションや各装置を接続したシステムの、自装置（データの送信元の装置）の処理性能や送信するデータの秘匿性のレベルなどの要件といったデータの送信先の装置の処理性能以外の制約条件に応じて暗号アルゴリズムを使い分けることができなかった。また、特許文献２に記載されるような、データ送信時に利用する暗号アルゴリズムを指定できないため、利用する暗号アルゴリズムによっては、処理時間に制約がある制御装置では、１周期内で送信に関わる処理が完了せずにエラーが発生する可能性があった。
【００１０】
そこで、制御システムを構成する各制御装置において、処理時間などの制約内で、通信データの完全性や秘匿性の高い暗号処理の実現が必要になる。
【課題を解決するための手段】
【００１１】
開示する動的暗号変更システムは、複数の制御装置と複数の制御装置を接続するネットワークから構成され、複数の制御装置に含まれる制御装置は、制御装置で動作するアプリケーションやアプリケーションが利用するコマンドに対応した、通信データに対するセキュリティ要件を格納する要件リスト保管部と、制御装置で各種暗号アルゴリズムの実行に伴う評価結果を格納する評価結果保管部と、制御装置の状態を示す第１の環境情報を格納する自装置環境情報保管部と、第１の通信データを生成した第１のアプリケーションおよび第１のアプリケーションが第１の通信データを生成するために利用した第１のコマンドに対応して、要件リスト保管部に格納されているセキュリティ要件と、評価結果保管部に格納されている評価結果と、自装置環境情報保管部に格納されている第１の環境情報とを満足する、第１の通信データを暗号化する暗号アルゴリズムを各種暗号アルゴリズムから選択する暗号選択部と、を備える。
【発明の効果】
【００１２】
本発明によれば、処理時間などの制約内で、通信データの完全性や秘匿性の高い暗号処理を実行する制御装置を実現できる。
【図面の簡単な説明】
【００１３】
【図１】動的暗号変更システムの第一の実施形態の構成図である。
【図２】制御サーバのハードウェア構成を例示する図である。
【図３】制御装置のハードウェア構成を例示する図である。
【図４】第一の実施形態の動的暗号変更システムにおいて、送信元装置の環境情報を用いて暗号アルゴリズを選択し、暗号通信する場合の処理フローを例示する図である。
【図５】第二の実施形態の動的暗号変更システムにおいて、送信元装置と送信先装置の環境情報を用いて暗号アルゴリズムを選択し、暗号通信する場合であって、送信先環境情報が無効である場合の処理フローを例示する図である。
【図６】第二の実施形態の動的暗号変更システムにおいて、送信元装置と送信先装置の環境情報を用いて暗号アルゴリズムを選択し、暗号通信する場合であって、送信先環境情報が有効である場合の処理フローを例示する図である。
【図７】第一または第二の実施形態の動的暗号変更システムにおいて、各装置の環境情報が変化したことを他の装置に通知する処理フローを例示する図である。
【図８】動的暗号変更システムの第三の実施形態の構成図である。
【図９】動的暗号変更システムの第三の実施形態の処理フローである。
【図１０】動的暗号変更システムの第四の実施形態の構成図である。
【図１１】動的暗号変更システムの第四の実施形態の処理フローである。
【図１２】各装置が保有する評価結果の構成を例示する図である。
【図１３】各装置が保有する要件リストの構成を例示する図である。
【図１４】各装置が保有する環境情報リストの構成を例示する図である。
【図１５】各装置が保有する自装置環境情報の構成を例示する図である。
【図１６】各装置が保有する環境情報リストや自装置環境情報に含まれる環境情報の構成を例示する図である。
【図１７】暗号モードの構成を例示する図である。
【図１８】各装置で暗号アルゴリズムを選択する処理フローを例示する図である。
【発明を実施するための形態】
【００１４】
本発明の一実施形態について説明する。なお、これにより本発明が限定されるものではない。
【００１５】
図１は、動的暗号変更システムの第一の実施形態の構成図である。本実施形態の動的暗号変更システムは、図１に例示するように、制御サーバ１０と、制御装置２０１〜２０ｎと、Ｉ／Ｏ装置３０１〜３０ｎと、ネットワーク４０と、から構成される。Ｉ／Ｏ装置３０１〜３０ｎに接続する制御対象の装置の図示は省略する。
【００１６】
制御サーバ１０は、制御装置２０１〜２０ｎで使用する制御設定値（たとえば、制御対象の温度目標値などの、制御対象を制御するための所定値）を生成する制御設定値生成部１０１と、アプリケーションの要件や制御サーバ１０での暗号アルゴリズム評価結果や環境情報をもとに暗号アルゴリズムを選択する暗号選択部１０２と、暗号選択部１０２で選択された暗号アルゴリズムを用いて送信データの暗号化を行い、受信した暗号モードをもとに受信データの復号を行う暗復号処理部１０３と、データ受信時に暗号モードを取得する暗号モード取得部１０４と、制御サーバ１０や制御装置２０１〜２０ｎで暗号アルゴリズムの処理時間などの実行に伴う評価した結果を格納する評価結果保管部１０５と、各種アプリケーションで求められる要件が記載されている要件リスト保管部１０６と、ネットワーク４０を介して通信を行う通信部１０７と、制御サーバ１０内の環境情報や制御装置２０１〜２０ｎの環境情報を取得する環境情報取得部１０８と、制御サーバ１０内の環境情報や制御装置２０１〜２０ｎの環境情報が変化したことを認識する環境情報変更認識部１０９と、制御装置２０１〜２０ｎの環境情報を格納する環境情報リスト保管部１１０と、制御サーバ１０の環境情報を格納する自装置環境情報保管部１１１と、を含む。
【００１７】
制御装置２０１〜２０ｎの各々は、制御サーバ１０から取得した制御設定値をもとに制御対象の制御を行う制御業務処理部２０１１〜２０１ｎと、制御業務処理部２０１１〜２０１ｎを構成する各種アプリケーション（プログラム）の要件や制御装置２０１〜２０ｎでの暗号アルゴリズム評価結果や環境情報をもとに暗号アルゴリズムを選択する暗号選択部２０２１〜２０２ｎと、暗号選択部で選択された暗号アルゴリズムを用いて送信データに改ざん検知のためのデータの付与や送信データの暗号化を行い、受信した暗号モードをもとに受信データの改ざんの有無の検証や復号を行う暗復号処理部２０３１〜２０３ｎと、データ受信時に暗号モードを取得する暗号モード取得部２０４１〜２０４ｎと、制御装置２０１〜２０ｎや制御サーバ１０で暗号アルゴリズムの処理時間を評価した結果を格納する評価結果保管部２０５１〜２０５ｎと、各種アプリケーションで求められる要件が記載されている要件リスト保管部２０６１〜２０６ｎと、ネットワーク４０を介して通信を行う通信部２０７１〜２０７ｎと、制御装置２０１〜２０ｎの環境情報や他制御装置（自身以外の制御装置２０１〜２０ｎ）や制御サーバ１０の環境情報を取得する環境情報取得部２０８１〜２０８ｎと、制御装置２０内の環境情報や他制御装置や制御サーバ１０の環境情報が変化したことを認識する環境情報変更認識部２０９１〜２０９ｎと、他制御装置や制御サーバ１０の環境情報を格納する環境情報リスト保管部２１０１〜２１０ｎと、制御装置２０１〜２０ｎそれぞれ自身の環境情報を格納する自装置環境情報保管部２１１１〜２１１ｎと、制御装置２０１〜２０ｎが制御対象の制御を行うためのＩ／Ｏ装置とのデータ入出力を行う入出力部２１２１〜２１２ｎと、を含む。
【００１８】
Ｉ／Ｏ装置３０１〜３０ｎの各々は、バルブや弁といった制御対象の装置の動作を制御するアクチュエータ３０１１〜３０１ｎと、制御対象の装置の圧力や温度や回転数などの情報を取得するセンサ３０２１〜３０２ｎと、を含む。
【００１９】
図２は制御サーバ１０のハードウェア構成を例示する図である。制御サーバ１０は、通信装置１１と、入出力装置１２と、記憶装置１３と、ＣＰＵ１４と、メモリ１５と、記憶媒体１７の記憶内容を読み込む読取装置１６と、がバスなどの内部通信線１８で連結され、構成されている。
【００２０】
図３は制御装置２０１〜２０ｎのハードウェア構成を例示する図である。制御装置２０１〜２０ｎは、通信装置２１と、センサ２３からのデータを読み込み、アクチュエータ２４に対してデータを出力する入出力装置２２と、記憶装置２５と、ＣＰＵ２６と、メモリ２７と、がバスなどの内部通信線２８で連結され、構成されている。センサ２３およびアクチュエータ２４を含むＩ／Ｏ装置３０１〜３０ｎを、入出力装置２２との接続を分かり易くするために、図３に示してある。
【００２１】
本実施形態の動的暗号変更システムにおける処理フローについて説明する。以下に述べる処理フローは、制御サーバ１０や各制御装置２０１〜２０ｎの記憶装置１３、２５に格納されたプログラムがメモリ１５、２７にロードされ、ＣＰＵ１４、２６により実行されることにより、動的暗号変更システムが制御サーバ１０や各制御装置２０１〜２０ｎに具現化される各処理部により実行されるものである。また、各プログラムは予め記憶装置に格納されても良いし、他の記憶媒体または通信媒体（ネットワークまたはネットワークを伝搬する搬送波）を介して、必要なときに導入されても良い。
【００２２】
図４は、第一の実施形態の動的暗号変更システムにおいて、制御装置２０１が、他の装置（制御サーバ１０や他の制御装置２０２〜２０ｎ）と暗号通信を行う場合の処理フローを示した図である。
【００２３】
制御装置２０１は、他の装置に送信する通信データを生成する（Ｓ４０１）。具体的には、制御装置２０１で実行するアプリケーションがコマンドを発行することにより通信データが生成される。通信データを生成したアプリケーションやコマンドを示す通信データ情報を取得する（Ｓ４０２）。要件リスト保管部２０６１に格納されている要件リストを取得し（Ｓ４０３）、評価結果保管部２０５１に格納されている評価結果を取得する（Ｓ４０４）。ここで、要件リストとは、アプリケーションやコマンドを示す通信データ情報に対応して求められる処理性能要件やセキュリティ要件等の情報を示し、以降の図１３に詳細に記載する。また、評価結果とは、各種暗号アルゴリズムを各装置で実行した場合の処理時間や負荷率等の情報であり、以降の図１２に詳細に記載する。
【００２４】
自装置環境情報保管部２１１１から制御装置２０１の自装置環境情報を取得する（Ｓ４０５）。ここで、自装置環境情報とは、制御装置２０１の動作モードや負荷率等の情報であり、以降の図１５に詳細に記載する。
【００２５】
取得した要件リストと評価結果と自装置環境情報から、要件を満足した上で生成した通信データの完全性および秘匿性を確保できる暗号アルゴリズムの組み合わせ（通信データの、完全性を確保するための改ざん検知アルゴリズムと秘匿性を確保するための暗号アルゴリズムの少なくとも一方を含む組み合わせ）を選択する（Ｓ４０６）。具体的な暗号アルゴリズムの選択方法については以降の図１８に詳細に記載する。選択した暗号アルゴリズムを用いて生成した通信データの暗号化を実施し（Ｓ４０７）、制御サーバ１０や制御装置２０２〜２０ｎに対して暗号モードと暗号化した通信データ（Ａ４０１）を送信する。ここで、暗号モードとは、通信データに施した暗号処理を識別するための情報であり、以降の図１７に詳細に記載する。
【００２６】
制御サーバ１０および制御装置２０２〜２０ｎは、制御装置２０１からの受信データ（Ａ４０１）の宛先情報を確認し（Ｓ４０８、Ｓ４０９）、自装置宛でなければ、受信データ（パケット）を破棄する（Ｓ４１０、Ｓ４１１）。一方、自装置宛であれば、暗号モードを取得し（Ｓ４１２、Ｓ４１３）、受信データの復号処理が制御処理に影響を及ぼすかを検証する（Ｓ４１４、Ｓ４１５）。ここで、影響の有無は、例えば、復号処理が制御業務処理（制御サーバ１０の場合は、制御設定値生成などのアプリケーションの処理）を行う1周期の空き時間以内に収まるかどうかで判断する。また制御サーバ１０および制御装置２０２〜２０ｎの負荷率やメモリの容量不足の発生などを基準に影響の有無を検証してもよい。この結果、影響がある場合には、エラーコード（Ａ４０２、Ａ４０３）を制御装置２０１に対して送信する。一方、影響がない場合には、取得した暗号モードに示されている暗号アルゴリズムを用いて復号処理を行い（Ｓ４１６、Ｓ４１７）、制御データ処理（受信データに対応したアプリケーションの処理）を行う（Ｓ４１８、Ｓ４１９）。
【００２７】
制御装置２０１は、制御サーバ１０や制御装置２０２〜２０ｎからエラーコードが返送されていないかを確認し（Ｓ４２０）、エラーコードが返送されていない場合には処理を終了し、エラーコードが返送されている場合には、Ｓ４０６に戻り、再度暗号アルゴリズムの選択を行い、暗号化した上で、エラーコードを返送してきた制御サーバ１０や制御装置２０２〜２０ｎに通信データを再送する。
【００２８】
なお、通信データの宛先について説明を省略したが、アプリケーションが、生成した通信データに応じて、宛先（送信先）を決定する。したがって、制御システムは、ネットワーク４０に接続する制御サーバ１０および制御装置２０２〜２０ｎのすべてに送信するための宛先（ブロードキャスト用アドレス）と、制御サーバ１０および制御装置２０２〜２０ｎから１つ以上に選択的に送信するための宛先とをサポートしている。
【００２９】
図4の説明において明らかなように、本実施形態では、他の装置の環境情報を用いないので、図１に示す環境情報リスト保管部１１０、２１０1〜２１０２を必ずしも備える必要がない。
【００３０】
動的暗号変更システムの第二の実施形態の処理を説明する。図５は、第二の実施形態の動的暗号変更システムが、制御装置２０１から制御サーバ１０や制御装置２０２〜２０ｎに対して暗号通信を行う場合に、送信元である制御装置２０１の環境情報だけでなく、送信先である制御サーバ１０や制御装置２０２〜２０ｎの環境情報を用いて暗号アルゴリズムを選択する場合であって、送信先の環境情報が無効の場合について示す。
【００３１】
図５のＳ５０１〜Ｓ５０５の処理は、図４のＳ４０１〜Ｓ４０５の処理と同様であるので説明を省略する。
【００３２】
送信先装置の環境情報を環境情報リスト保管部２１０１から取得し、その有効性を判定する（Ｓ５０６）。その結果、送信先装置の環境情報が格納されていない場合や、格納されている場合でも、有効期限が切れているような場合には、送信先環境情報が無効であると判定し、送信先装置が高負荷であり、受信データの復号処理を実行できない場合を想定し、暗号処理を実施しない。ネットワーク４０内の他の装置に対して制御装置２０１の環境情報と暗号モードと平文通信データ（Ａ５０１）を送信する。ここで、暗号モードには、暗号処理がされていないという情報が含まれる。
【００３３】
制御サーバ１０および制御装置２０２〜２０ｎは、受信データに含まれる制御装置２０１の環境情報を環境情報リスト保管部（１１０、２１０２〜２１０ｎ）に格納する（Ｓ５０８、Ｓ５０９）。受信したデータの宛先情報を確認し（Ｓ５１０、Ｓ５１１）、自装置宛でなければ、受信データ（パケット）を破棄する（Ｓ５１２、Ｓ５１３）。一方、自装置宛であれば、暗号モード（ここでは平文を指す）を取得し（Ｓ５１４、Ｓ５１５）、復号処理が制御業務処理に影響を及ぼすかを検証する（Ｓ５１６、Ｓ５１７）。平文通信であり、影響がないので、制御データ処理を行う（Ｓ５１８、Ｓ５１９）。
【００３４】
図６は、図５のＳ５０６において、送信先の環境情報が有効である場合の処理フローを示した図である。
【００３５】
制御装置２０１は、送信先の環境情報が有効である場合、Ｓ５０３で取得した要件リスト、Ｓ５０４で取得した評価結果、自装置環境情報および送信先の環境情報を用いて、要件を満足した上で、Ｓ５０１で生成した通信データの秘匿性を確保できる暗号アルゴリズムの組み合わせを選択する（Ｓ６０１）。選択した暗号アルゴリズムを用いて生成した通信データの暗号化を実施し（Ｓ６０２）、制御サーバ１０や制御装置２０２〜２０ｎに対して制御装置２０１の環境情報と暗号モードと暗号化した通信データ（Ａ６０１）を送信する。
【００３６】
制御サーバ１０および制御装置２０２〜２０ｎは受信データに含まれる制御装置２０１の環境情報を環境情報リスト保管部（１１０、２１０２〜２１０ｎ）に格納する（Ｓ６０３、Ｓ６０４）。受信したデータの宛先情報を確認し（Ｓ６０５、Ｓ６０６）、自装置宛でなければ、受信データ（パケット）を破棄する（Ｓ６０７、Ｓ６０８）。一方、自装置宛であれば、暗号モードを取得し（Ｓ６０９、Ｓ６１０）、受信データの復号処理が制御業務処理に影響を及ぼすかを検証する（Ｓ６１１、Ｓ６１２）。ここで、影響の有無は、例えば、復号処理が制御業務を行う１周期の空き時間以内に収まるかどうかで判断する。この結果、影響がある場合には、制御サーバ１０はエラーコードおよび制御サーバ１０の環境情報（Ａ６０２）を、制御装置２０２−２０ｎはエラーコードおよび制御装置２０２−２０ｎ自身の環境情報（Ａ６０３）を制御装置２０１に対して送信する。一方、影響がない場合には、取得した暗号モードに示されている暗号アルゴリズムを用いて復号処理を行い（Ｓ６１３、Ｓ６１４）、制御データ処理を行う（Ｓ６１５、Ｓ６１６）。
【００３７】
次に、制御装置２０１は制御サーバ１０や制御装置２０２−２０ｎからエラーコードが返送されていないかを確認し（Ｓ６１７）、エラーコードが返送されていない場合には処理を終了し（Ｓ６１８）、エラーコードが返送されている場合には、受信した環境情報を環境情報リスト保管部２１０１に格納し（Ｓ６１９）、Ｓ６０１に戻り、再度暗号アルゴリズムの選択を行い、暗号化した上で、エラーコードを返送してきた制御サーバ１０や制御装置２０２〜２０ｎに個別に送信するか、ブロードキャストを用いて通信データを再送する。
【００３８】
第二の実施形態において、通信データの複数の送信先の環境情報や要件が異なる場合、最も厳しい要件の送信先に対応させて暗号アルゴリズムを選択する。
【００３９】
図７は、第一または第二の実施形態の動的暗号変更システムにおいて、各装置が保有する環境情報が変化したことを他の装置に対して通知する処理フローを示した図である。
【００４０】
制御装置２０１は、自身の環境情報を取得した前回より一所定時間経過したか判定する（Ｓ７０１）。その結果、経過していない場合には、所定時間ウェイトを行い（Ｓ７０２）、再度Ｓ７０１を実行する。なお、所定時間ごとの周期タイマにより本処理が起動されるように構成されれば、Ｓ７０１、Ｓ７０２は不要である。一方、経過している場合には、ＯＳ等より最新の環境情報を取得し（Ｓ７０３）、また自装置環境情報保管部２１１１に格納されている環境情報を取得する（Ｓ７０４）。最新の環境情報と自装置環境情報保管部２１１１に格納されている環境情報を比較し、一致するか検証する（Ｓ７０５）。その結果、一致しない場合には、制御装置２０１の最新の環境情報（Ａ７０１）を制御サーバ１０や制御装置２０２〜２０ｎに対して送信する。
【００４１】
制御サーバ１０や制御装置２０２〜２０ｎは、受信した制御装置２０１の環境情報を環境情報リスト保管部（１１０、２１０２〜２１０ｎ）に格納する（Ｓ７０６、Ｓ７０７）。
【００４２】
制御装置２０１は、Ｓ７０３で取得した最新の環境情報を自装置環境情報保管部２１１１に格納する（Ｓ７０８）。
【００４３】
一方、Ｓ７０５において一致する場合には、最新の環境情報（Ａ７０１）の他装置への通知は行わず、Ｓ７０３で取得した最新の環境情報を自装置環境情報保管部２１１１に格納する（Ｓ７０８）。なお、一致する場合でも、環境情報の有効期限が切れている場合には他装置へ通知する。
【００４４】
図８は、動的暗号変更システムの第三の実施形態の構成図である。本実施形態の動的暗号変更システムは、図８に例示するように、制御サーバ１０と、制御装置２０１〜２０ｎと、Ｉ／Ｏ装置３０１〜３０ｎと、ネットワーク４０と、から構成されている。Ｉ／Ｏ装置３０１〜３０ｎに接続する制御対象の装置の図示は省略する。
【００４５】
制御サーバ１０は、図１の第一の実施形態の構成に加えて、他の装置から平文通信を受信した回数を格納する平文通信回数保管部１１２と、平文通信を受信した回数が予め定めた回数を越えているか判定する平文通信判定部１１３と、を含む。
【００４６】
制御装置２０１〜２０ｎの各々は、図１の第一の実施形態の構成に加えて、他の装置から平文通信を受信した回数を格納する平文通信回数保管部２１３１〜２１３ｎと、平文通信を受信した回数が予め定めた回数を越えているか判定する平文通信判定部２１４１〜２１４ｎと、を含む。
【００４７】
Ｉ／Ｏ装置３０１〜３０ｎの各々は、図１の第一の実施形態の構成と同様である。
【００４８】
図９は、動的暗号変更システムの第三の実施形態の処理フローである。本実施形態は、前述の第二の実施形態において、送信先の環境情報が取得できず平文通信が続くことを回避するものである。
【００４９】
図９のＳ９０１〜Ｓ９１５の処理は、図５のＳ５０１〜Ｓ５１５の処理と同様であるので説明を省略する。受信した暗号モード（ここでは平文を指す）が平文通信を示している場合、その連続回数をカウントする（Ｓ９１６、Ｓ９１７）。次に、平文通信回数があらかじめ設定した閾値を越えていないかを判定する（Ｓ９１８、Ｓ９１９）。その結果、越えている場合には、制御サーバ１０はエラーコードと制御サーバ１０の環境情報（Ａ９０２）を、制御装置２０２−２０ｎは、エラーコードと制御装置２０２〜２０ｎ自身の環境情報（Ａ９０３）を制御装置２０１に送信する。一方、平文通信回数があらかじめ設定した閾値を越えていない場合には、平文通信回数を平文通信回数保管部（１１２、２１３２〜２１３ｎ）に格納し（Ｓ９２０、Ｓ９２１）、制御データ処理を行う（Ｓ９２２、Ｓ９２３）。なお、以上の説明からわかるように、平文通信回数保管部（１１２、２１３２〜２１３ｎ）はカウンタであり、受信した暗号モードが平文通信を示していない（暗号通信を示している）場合に、０にリセットすればよい。
【００５０】
次に、制御装置２０１は制御サーバ１０や制御装置２０２〜２０ｎからエラーコードが返送されていないか確認し（Ｓ９２４）、エラーコードが返送されていない場合には処理を終了し（Ｓ９２５）、エラーコードが返送されている場合には、受信した環境情報を環境情報リスト保管部２１０１に格納し（Ｓ９２６）、図６のＳ６０１に遷移し（Ｓ９２７）、暗号アルゴリズムの選択を行い、暗号化を実施した上で、通信データを再送する。
【００５１】
一方、Ｓ９０６において、送信先環境情報が有効である場合には、図５のＳ５０６と同様に、Ｓ６０１の処理に遷移する（Ｓ９０７）。
【００５２】
図１０は、動的暗号変更システムの第四の実施形態の構成図である。本実施形態の動的暗号変更システムは、図１０に例示するように、制御サーバ１０と、制御装置２０１〜２０ｎと、Ｉ／Ｏ装置３０１〜３０ｎと、ネットワーク４０と、から構成されている。Ｉ／Ｏ装置３０１〜３０ｎに接続する制御対象の装置の図示は省略する。
【００５３】
制御サーバ１０は、図１の構成に加えて、他の装置の環境情報を推定する環境情報推定部１１４を含む。
【００５４】
制御装置２０１〜２０ｎの各々は、図１の第一の実施形態の構成に加えて、他の装置の環境情報を推定する環境情報推定部２１５１〜２１５ｎを含む。
【００５５】
Ｉ／Ｏ装置３０１〜３０ｎの各々は、図１の第一の実施形態の構成と同様である。
【００５６】
図１１は、動的暗号変更システムの第四の実施形態の処理フローである。本実施形態は、前述の第二の実施形態において、送信先の環境情報が不明の場合に環境情報の推定を行い、推定した送信先の環境情報を基に暗号アルゴリズムを選択するものである。
【００５７】
図１１のＳ１１０１〜Ｓ１１０６の処理は、図５のＳ５０１〜Ｓ５０６の処理と同様であるので説明を省略する。Ｓ１１０６において送信先環境情報が無効である場合、送信先装置の環境情報を推定する（Ｓ１１０８）。ここで、環境情報を推定するとは、過去に取得した、ＣＰＵ負荷、メモリ空き容量、および送信先装置の動作モードなどから現時点での環境情報を類推することを意味する。次に、Ｓ１１０３で取得した要件リストと、Ｓ１１０４で取得した評価結果と、Ｓ１１０５で取得した自装置環境情報と、Ｓ１１０８で推定した送信先装置の環境情報を用いて、要件を満足した上で、Ｓ１１０１で生成した通信データの完全性および秘匿性を確保できる暗号アルゴリズムを選択する（Ｓ１１０９）。選択した暗号アルゴリズムを用いて生成した通信データの暗号化を実施し（Ｓ１１１０）、制御サーバ１０や制御装置２０２〜２０ｎに対して制御装置２０１の環境情報と暗号モードと暗号化した通信データ（Ａ１１０１）を送信する。
【００５８】
以降のＳ１１１１〜Ｓ１１２４の処理は、第二の実施形態の図６のＳ６０３〜Ｓ６１６の処理と同様であるので説明を省略する。
【００５９】
制御装置２０１は、制御サーバ１０や制御装置２０２〜２０ｎからエラーコードが返送されていないかを確認し（Ｓ１１２５）、エラーコードが返送されていない場合には、推定した環境情報が誤りでないと判断されるため、環境情報を再推定し（Ｓ１１２６）、環境情報を格納する（Ｓ１１２７）。ここで、推定した環境情報が誤りでないので、必ずしも再推定する必要はない。推定した環境情報が誤りでないとは、推定した環境情報が送信先装置の実際の環境情報より厳しいことを示し、推定した環境情報に対応して選択した暗号アルゴリズムより完全性や秘匿性の高い暗号アルゴリズムを使用できる余地を残している。したがって、環境情報の再推定は、例えば、Ｓ１１０８で推定したときの送信先の負荷より低い負荷を仮定する。具体的には、送信先装置の非常に高い負荷を初期値とし、エラーが発生しない度に、所定値だけ負荷を低下させるなどにより、環境情報を推定する。一方、エラーが発生している場合には、受信した送信先装置の環境情報を環境情報リスト保管部２１０１に格納し（Ｓ１１２８）、Ｓ１１０９に遷移し（Ｓ１１２９）、再度暗号アルゴリズムの選択を行い、選択した暗号アルゴリズムによって、暗号化もしくは平文で通信データを再送する。
【００６０】
図１２は、第一から第四の実施形態の動的暗号変更システムにおいて、評価結果保管部（１０５、２０５１〜２０５ｎ）に格納される評価結果の構成を例示する図である。
【００６１】
評価結果（Ａ１２０１）は、装置（制御サーバ１０や制御装置２０1〜２０ｎ）を識別する装置ＩＤ（Ａ１２０２）と、セキュリティ機能の種別を意味する機能種類（Ａ１２０３）と、暗号アルゴリズム（Ａ１２０４）と、暗号アルゴリズムで使用する鍵長（Ａ１２０５）と、暗号アルゴリズムを実行した際のＣＰＵ使用率を示すＣＰＵ負荷（Ａ１２０６）と、暗号アルゴリズムの実行に必要なメモリ量を示すメモリ使用量（Ａ１２０７）と、暗号アルゴリズムの実行に必要な処理時間（Ａ１２０８）から構成される。
【００６２】
装置ＩＤ（Ａ１２０２）は、たとえば制御サーバ１０に０００１、制御装置２０１に０００２、制御装置２０2に０００３、・・・というように割り当てられている。ＣＰＵ負荷（Ａ１２０６）は、暗号アルゴリズムの実行がＣＰＵに与える負荷であり、装置のＣＰＵ性能に依存して、同じ暗号アルゴリズムの実行であってもＣＰＵ負荷が異なる。処理時間（Ａ１２０８）は、暗号アルゴリズムの実行対象の単位データ量（図１２では、１byte）当たりの処理時間である。
【００６３】
ここで、評価結果（Ａ１２０１）の構成要素は上記に限定されるものではなく、少なくとも上記の要素が含まれていればよい。また、評価結果（Ａ１２０１）の構成要素の順序は上記に限定されるものではない。
【００６４】
図１３は、第一から第四の実施形態の動的暗号変更システムにおいて、要件リスト保管部（１０６、２０６１〜２０６ｎ）に格納される要件リストの構成を例示する図である。
【００６５】
要件リスト（Ａ１３０１）は、制御サーバ１０や制御装置２０１〜２０ｎに格納されるアプリケーションを識別するアプリケーションＩＤ（Ａ１３０２）と、アプリケーションが利用する通信コマンドを識別するコマンドＩＤ（Ａ１３０３）と、アプリケーションが正常に動作するために求められる処理時間要件（セキュリティ要件を満足するための処理に許容される処理時間）（Ａ１３０４）と、アプリケーションに対して求められる通信データの暗号化や改ざん検知などのセキュリティ要件（Ａ１３０５）から構成される。ここで、要件リスト（Ａ１３０１）の構成要素は上記に限定されるものではなく、少なくとも上記の要素が含まれていればよい。また、要件リスト（Ａ１３０１）の構成要素の順序は上記に限定されるものではない。
【００６６】
図１４は、第一から第四の実施形態の動的暗号変更システムにおいて、環境情報リスト保管部（１１０、２１０１〜２１０ｎ）に格納される環境情報リストの構成を例示する図である。
【００６７】
環境情報リスト（Ａ１４０１）は、装置を識別する装置ＩＤ（Ａ１４０２）と、環境情報を取得した方法を示す取得方法（Ａ１４０３）と、環境情報を取得した日時を示す取得日時（Ａ１４０４）と、環境情報が有効であると定めた期限を示す有効日時（Ａ１４０５）と、環境情報（Ａ１４０６）から構成される。ここで、環境情報とは各装置の動作状況を示すものであり、図１６を用いて説明する。また、有効日時（Ａ１４０５）は、環境情報が取得日時（Ａ１４０４）から変化しないと思われる期間後の日時を示し、取得日時（Ａ１４０４）から機械的に算出してもよいし、指定してもよい。なお、環境情報リスト（Ａ１４０１）の構成要素は上記に限定されるものではなく、少なくとも装置ＩＤ（Ａ１４０２）、取得方法（Ａ１４０３）、および、環境情報（Ａ１４０６）の要素が含まれていればよい。また、環境情報リスト（Ａ１４０１）の構成要素の順序は上記に限定されるものではない。
【００６８】
図１５は、第一から第四の実施形態の動的暗号変更システムにおいて、自装置環境情報保管部（１１１、２１１１〜２１１ｎ）に格納される自装置環境情報の構成を例示する図である。
【００６９】
自装置環境情報（Ａ１５０１）は、環境情報を取得した日時を示す取得日時（Ａ１５０２）と、環境情報が有効であると定めた期限を示す有効日時（Ａ１５０３）と、環境情報（Ａ１５０４）から構成される。ここで、有効日時（Ａ１５０３）は、環境情報が取得日時（Ａ１５０２）から変化しないと思われる期間後の日時を示し、取得日時（Ａ１５０２）から機械的に算出してもよいし、指定してもよい。なお、自装置環境情報（Ａ１５０１）の構成要素は上記に限定されるものではなく、少なくとも環境情報（Ａ１５０４）の要素が含まれていればよい。また、自装置環境情報（Ａ１５０１）の構成要素の順序は上記に限定されるものではない。
【００７０】
図１６は、第一から第四の実施形態の動的暗号変更システムにおいて、環境情報リスト保管部（１１０、２１０１〜２１０ｎ）や自装置環境情報保管部（１１１、２１１１〜２１１ｎ）に格納される環境情報の構成を例示する図である。
【００７１】
環境情報（Ａ１６０１）は、装置の動作モード（Ａ１６０２）と、装置のＣＰＵの負荷率（Ａ１６０３）と、装置のメモリ空き容量（１６０４）から構成される。動作モードとは、起動、停止、通常、故障、緊急等の装置の動作状態を示すものである。ここで、環境情報（Ａ１６０１）の構成要素は上記に限定されるものではなく、少なくとも上記の要素が含まれていればよい。また、環境情報（Ａ１６０１）の構成要素の順序は上記に限定されるものではない。
【００７２】
図１７は、第一から第四の実施形態の動的暗号変更システムにおいて、Ａ４０１、Ａ５０１、Ａ６０１、Ａ９０１、Ａ１１０１で送信される暗号モードの構成を例示する図である。
【００７３】
暗号モード（Ａ１７０１）は、改ざん検知の有無（Ａ１７０２）と、改ざん検知用暗号アルゴリズム（Ａ１７０３）と、改ざん検知用暗号アルゴリズム（Ａ１７０３）の鍵長（Ａ１７０４）と、改ざん検知用暗号アルゴリズム（Ａ１７０３）の鍵を識別する鍵ＩＤ（Ａ１７０５）と、改ざん検知用暗号アルゴリズム（Ａ１７０３）の初期ベクトルを示すＩＶ（Ａ１７０６）と、暗号の有無（Ａ１７０７）と、暗号の有無（Ａ１７０７）が有の場合に暗号化のための暗号アルゴリズム（Ａ１７０８）と、暗号アルゴリズム（Ａ１７０８）の鍵長（Ａ１７０９）と、暗号アルゴリズム（Ａ１７０８）の鍵を識別する鍵ＩＤ（Ａ１７１０）と、暗号アルゴリズム（Ａ１７０８）の初期ベクトルを示すＩＶ（Ａ１７１１）と、全データの中で暗号化を行っている箇所を示す暗号対象データ（Ａ１７１２）から構成される。ここで、暗号対象データは、例えば、全データが１６バイト単位で６４ブロックあり、各ブロックに1ビットを割り当て、暗号化を行っているブロックのビットを１で表現する。暗号対象データ（Ａ１７１２）を１６進表記する図１７の例では、６４ブロックのうち、１６ブロックを暗号化していることを示している。つまり、１１１１００００：１１１１００００：１１１１００００：１１１１００００という６４ビットをブロックと対応させ、１が立っているブロックが暗号化されているブロックであるとして、暗号対象データを表現しているが、このような表記方法に限定されるものではない。また、暗号モード（Ａ１７０１）の構成要素は上記に限定されるものではなく、少なくとも暗号を実施した部分のデータを特定できればよい。また、暗号モード（Ａ１７０１）の構成要素の順序は上記に限定されるものではない。
【００７４】
図１８は、第一から第四の実施形態の動的暗号変更システムにおいて、Ｓ４０６、Ｓ６０１、Ｓ１１０９において、要件リスト、評価結果、および、環境情報から、暗号アルゴリズムを選択する処理フローを示した図である。
【００７５】
通信データを生成したアプリケーションや送信コマンドに対応して、要件リスト（Ａ１３０１）に、セキュリティ要件が含まれるか判定する（Ｓ１８０１）。含まれない場合には、評価結果（Ａ１２０１）から、改ざん検知アルゴリズムを選択する（Ｓ１８０２）。ここで、選択する方法としては、評価結果（Ａ１２０１）内の改ざん検知アルゴリズムのうち、送信元装置や送信先装置の環境情報の制約の中で動作するものを選択する。なお、第一の実施形態のＳ４０６では送信先装置の環境情報を考慮しなくてよいので、送信元の環境情報の制約の中で動作するものを選択する。
【００７６】
具体的には、送信元装置が、制御サーバ１０（装置ＩＤが０００１）であり、その環境情報としてＣＰＵ負荷が５０％、メモリ空き容量が１５００Ｂの場合、評価結果（Ａ１２０１）のＣＰＵ負荷（Ａ１２０６）およびメモリ使用量（Ａ１２０７）が環境情報の制約を満足する改ざん検知アルゴリズムであるＨＭＡＣ with sha−1およびＨＭＡＣ with sha256を選択する。送信先装置についても、同様に環境情報の制約の中で動作するものを選択し、送信元装置および送信先装置の双方の環境情報の制約の中で動作するものを選択する。
【００７７】
さらに、複数の改ざん検知アルゴリズムが選択された場合、その中で処理時間（Ａ１２０８）が短いものから順に選択してゆく。次に、処理時間を見積もり、要件リストに記載されている処理時間以内であるか評価する（Ｓ１８０３）。送信元装置が制御サーバ１０（装置ＩＤが０００１）であり、改ざん検知アルゴリズムであるＨＭＡＣ with sha−1を選択し、通信データが５０byteの場合、評価結果Ａ１２０１を参照して５０μsecの処理時間となる。処理時間は、第一の実施例では、送信元の処理時間を算出し、その他の実施例では、送信元と送信先の両方の処理時間を算出する。その結果、送信元と送信先の各処理時間が、要件リストＡ１２０１のアプリケーションＩＤ（Ａ１３０２）およびコマンドＩＤ（Ａ１３０３）に対応した処理時間要件（Ａ１３０４）内に収まっている場合には、その暗号アルゴリズムを候補として記録し、Ｓ１８０２に戻り、次の改ざん検知アルゴリズムを選択する。一方、処理時間が規定内に収まっていない場合には、改ざん検知アルゴリズムとして候補となるアルゴリズムが取得されているか判定する（Ｓ１８０４）。具体的には、Ｓ１８０３において、候補として記録されている暗号アルゴリズムが存在するか判定する。その結果、候補がない場合には、いずれの改ざん検知アルゴリズムも実行せずに、平文で送信することを選択する（Ｓ１８０６）。一方、候補があると判断された場合には、その候補の中で最も安全性が高い暗号アルゴリズムを改ざん検知アルゴリズムとして決定する（Ｓ１８０５）。ここで、安全性が高いとは、例えば鍵長が最も長いものを意味する。
【００７８】
次に、暗号アルゴリズムを選択する（Ｓ１８０７）。暗号アルゴリズムの選択は、改ざん検知アルゴリズムの選択（Ｓ１８０２）と同様に、評価結果（Ａ１２０１）内の暗号アルゴリズムのうち、送信元装置や送信先装置の環境情報の制約の中で動作するものを選択し、さらに、その中で処理時間が短いものから順に選択してゆく。次に、改ざん検知アルゴリズムの処理時間の評価（Ｓ１８０３）と同様に、処理時間を見積もり、要件リストに記載されている処理時間以内であるか評価する（Ｓ１８０８）。ここで、処理時間は、送信元と送信先の両方の処理時間を算出し、また、Ｓ１８０５で選択した改ざん検知アルゴリズムの処理時間も含めて評価する。すなわち、改ざん検知アルゴリズムの処理時間と暗号アルゴリズムの処理時間との和が、通信データを生成したアプリケーションおよび送信コマンドに対応した、要件リスト（Ａ１３０１）の処理時間要件（Ａ１３０５）を満足するかを評価する。
【００７９】
また、暗号化の場合、部分的な暗号化でも、暗号箇所を適切に選択することにより、ある一定の秘匿性を確保可能であるので、通信データ全体の暗号処理時間が要件を満足できない場合には、部分データの暗号化による暗号処理時間を算出し、評価してもよい。その結果、処理時間が規定内に収まっていると判定された場合には、その暗号アルゴリズムを候補として記録し、Ｓ１８０７に戻り、次の暗号アルゴリズムを選択する。部分データを選択した場合、選択したデータ部分を示すように、暗号モード（Ａ１７０１）の暗号対象データ（Ａ１７１２）を設定する。通信データのすべてを暗号化する場合、暗号対象データ（Ａ１７１２）は前述の表記例に従えば、すべてのビットを１にする。
【００８０】
一方、処理時間が規定内に収まっていない場合には、暗号アルゴリズムとして候補が取得されているか判定する（Ｓ１８０９）。その結果、候補がないと判定された場合には、いずれの暗号アルゴリズムも実行せずに、平文で送信することを選択する（Ｓ１８１１）。候補がある場合には、その候補を暗号アルゴリズムとして選択し（Ｓ１８１０）、処理を終了する（Ｓ１８１２）。
【００８１】
Ｓ１８０１にてセキュリティ要件が含まれる場合には、セキュリティ要件の中に、セキュリティ機能禁止要件が含まれないかを判定する（Ｓ１８１３）。その結果、セキュリティ機能禁止要件が含まれる場合には、平文で送信することを選択する（Ｓ１８１４）。セキュリティ機能禁止要件が含まれないと判定された場合には、セキュリティ要件内の改ざん検知要件の有無を判定する（Ｓ１８１５）。その結果、改ざん検知要件が無の場合には、Ｓ１８２１に遷移する。
【００８２】
改ざん検知要件が有の場合の改ざん検知アルゴリズムの選択（Ｓ１８１６）、処理時間の評価（Ｓ１８１７）、改ざん検知アルゴリズムの候補の判定、候補がない場合の平文送信の選択する（Ｓ１８２０）、候補がある場合の改ざん検知アルゴリズムの決定（Ｓ１８１９）は、Ｓ１８０２〜Ｓ１８０６と同様の処理であるので説明を省略する。
【００８３】
セキュリティ要件内の暗号要件の有無を判定する（Ｓ１８２１）。その結果、暗号要件が無の場合には、Ｓ１８２７に遷移し、処理を終了する。
【００８４】
暗号要件が有の場合の、暗号アルゴリズムの選択（Ｓ１８２２）、処理時間の評価（Ｓ１８２３）、処理時間が規定内に収まっている場合の暗号アルゴリズムの候補の有無の判定（Ｓ１８２４）、暗号アルゴリズムの候補がない場合の平文で送信することの選択は、候補がある場合の暗号アルゴリズムの決定（Ｓ１８２５）、および処理の終了（Ｓ１８２７）は、Ｓ１８０７〜Ｓ１８１２と同様の処理であるので説明を省略する。なお、ここでは、装置の動作モードについて触れていないが、例えば緊急モードの場合には、暗号化や改ざん検知を実施しないなど、動作モードによって選択する暗号アルゴリズムを変更させてもよい。
【００８５】
これらの構成、手順およびデータ構造を実現することにより、性能要件が厳しい制御システムであっても、予め定められた要件を満足し、かつ、完全性や秘匿性の高い暗号アルゴリズムを用いて暗号通信を行うことが可能となる。また、送信元装置や送信先装置の環境情報を考慮して暗号アルゴリズムを選択することにより、制御業務処理に影響を及ぼすことなく暗号通信機能を導入することが可能となる。
【００８６】
なお、動的暗号変更システムは、上記の実施形態に限定されるものではなく、その要旨の範囲内で様々な変形が可能である。
【００８７】
たとえば、制御装置内にネットワークとの通信機能が含まれておらず、別の装置を経由してネットワークと通信を行う場合や、要件リストや評価結果や環境情報を装置内に保有せず、他の装置から取得する場合などである。
【００８８】
該実施形態の場合においてもシステム全体において行う処理に本質的な変化はない。
【符号の説明】
【００８９】
１０：制御サーバ、１１：通信装置、１２：入出力装置、１３：記憶装置、１４：ＣＰＵ、１５：メモリ、１６：読取装置、１７：記憶媒体、１８：内部信号線、２０１〜２０ｎ：制御装置、２１：通信装置、２２：入出力装置、２３：センサ、２４：アクチュエータ。
【図１】
2014045237.tif 000003
【図２】
2014045237.tif 000004
【図３】
2014045237.tif 000005
【図４】
2014045237.tif 000006
【図５】
2014045237.tif 000007
【図６】
2014045237.tif 000008
【図７】
2014045237.tif 000009
【図８】
2014045237.tif 000010
【図９】
2014045237.tif 000011
【図１０】
2014045237.tif 000012
【図１１】
2014045237.tif 000013
【図１２】
2014045237.tif 000014
【図１３】
2014045237.tif 000015
【図１４】
2014045237.tif 000016
【図１５】
2014045237.tif 000017
【図１６】
2014045237.tif 000018
【図１７】
2014045237.tif 000019
【図１８】
2014045237.tif 000020