(57)【要約】【課題】  制御周期に影響を与えることなく大容量のデータ送信を可能にするデータ送信装置、データ送信方法を提供する。【解決手段】  取得されたデータに対して所定の処理を施して通信データとして送信する処理実行部１１，１３４，１４４と、送信すべき優先度の高いデータに対する優先度の低いデータについての処理を複数のブロックに分割する分割部１３４，１４４と、前記処理実行部による前記優先度が低いデータについての処理中に、前記優先度の高いデータを取得した場合、前記処理実行部により処理が行われているブロック以後に処理されるブロックに先んじて前記優先度の高いデータを処理させる優先制御部１３３，１４３とを有する。【選択図】図１
2010283635.tif 000002
【特許請求の範囲】
【請求項１】
取得されたデータに対して所定の処理を施して通信データとして送信する処理実行部と、
送信すべき優先度の高いデータに対する優先度の低いデータについての処理を複数のブロックに分割する分割部と、
前記処理実行部による前記優先度が低いデータについての処理中に、前記優先度の高いデータを取得した場合、前記処理実行部により処理が行われているブロック以後に処理されるブロックに先んじて前記優先度の高いデータを処理させる優先制御部と、
を備えるデータ送信装置。
【請求項２】
前記優先度の高いデータは、制御周期毎に前記通信データを送信するスケジュール期間において取得されるデータであり、前記優先度の低いデータは、制御周期毎に前記通信データを送信する必要のないアンスケジュール期間において取得されるデータである請求項１に記載のデータ送信装置。
【請求項３】
前記優先度の高いデータは、センサから出力される検出データであり、前記優先度の低いデータは、イメージセンサから出力される撮像データである請求項１または請求項２に記載のデータ送信装置。
【請求項４】
前記所定の処理は、前記取得されたデータを暗号化する暗号化処理または暗号化されたデータに対しハッシュの作成を行うハッシュ演算処理の少なくともいずれか一方である請求項１乃至請求項３のいずれかに記載のデータ送信装置。
【請求項５】
処理するべき優先度の高いデータに対する優先度の低いデータについての処理を複数のブロックに分割し、
前記分割されたブロックについての処理中に、前記優先度の高いデータを取得した場合、処理が行われているブロック以後に処理されるブロックに先んじて前記優先度の高いデータを処理し、
通信データとして送信するデータ送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰネットワークを介してセンサから取得したデータの送信を行うデータ送信装置およびデータ送信方法に関する。
【背景技術】
【０００２】
従来、プラントに設置されたフィールド機器等のデータ送信装置をファウンデーションフィールドバスのようなデジタル通信ネットワークで接続することにより、フィールド制御システムが構築されている。このフィールド制御システムにおいて、ネットワーク構成の柔軟性やコストパフォーマンスのよさから、ＩＰ(Internet Protocol)ネットワークへの各種フィールド機器およびコントローラ等の接続が試みられている。なお、フィールド機器としては差圧伝送器、流量計、圧力計および温度計等がある。
【０００３】
オープンなＩＰネットワークをフィールド制御システムに利用するには高度なセキュリティを確保することが求められる。そのため、データ送信装置は、通信するデータに対する暗号化および復号化等の秘匿処理や、ハッシュ等の認証データの作成および認証データの照合等の認証処理を行う必要がある。これらの秘匿処理および認証処理は、膨大な演算を繰返し行うため、通信速度が低下する問題がある。通信速度の低下を防ぐためには、データ送信装置には高性能なマイクロプロセッサを搭載する必要がある。しかしながら、データ送信装置は、発火しやすい場所に設置されることがあり、低消費電力を求められるため、電力消費量の大きい高性能マイクロプロセッサを搭載することができない。このため、秘匿処理および認証処理を並列に動作させる専用のハードウェア（以後、アクセラレータと称する）を低速クロックで動作させ、電力消費の少ないマイクロプロセッサと組み合わせることにより、データの秘匿処理および認証処理を実現している。
【０００４】
図１２は、アクセラレータを有するデータ送信装置の構成を示すブロック図である。マイクロプロセッサ９１は、プログラムおよびパラメータ等のデータが格納されているＲＯＭ（Read Only Memory）９１１を有する。また、マイクロプロセッサ９１は、バス９２を介してＲＡＭ（Random Access Memory）９３、秘匿処理のための暗号化および復号化を行う暗号・復号化アクセラレータ９４、認証処理のためのハッシュデータを作成するハッシュ演算を行うハッシュ演算アクセラレータ９５、対象データの送信を行うＩＰネットワーク通信Ｉ／Ｆ９６が接続される。マイクロプロセッサ９１には、センサ９７から入力されたアナログ電圧をデジタルに変換するＡ／Ｄ変換器９８が接続される。ＲＡＭ９３は、暗号化およびハッシュ演算され、外部装置に送信される対象データが格納される。
【０００５】
データ送信装置９がＩＰネットワークに接続されたフィールド制御システムでは、リアルタイムな制御を実現するために、システム構築時に制御周期が設定される。制御周期は、例えば１秒である。このフィールド制御システムは、制御周期を、制御周期毎に処理が行われるスケジュール期間と制御周期毎に処理が行われる必要のないアンスケジュール期間とに分割し、ＩＰネットワーク上の通信を行う。スケジュール期間では、例えば、センサ９７が出力したセンサデータ等が暗号化およびハッシュ演算され、ＰＩＤ（Proportional Integral Derivative）制御などの各種制御アルゴリズムを処理する外部装置に送信される。センサデータが送信された外部装置は、センサデータに基づいてＰＩＤなどの制御演算を行ない、結果データをバルブポジショナ等のフィールド機器に送信し、リアルタイムな制御を行う。一方、アンスケジュール期間では、例えば、ＨＭＩ(Human-Machine Interface)等の外部装置によるデータ送信装置９内部におけるデータの監視、設定パラメータの変更等を行う際に、外部装置からの要求により設定パラメータ等を有する設定データ等の送信が行われる。
【０００６】
図１３は、データ送信装置における動作のタイミングを説明するための図である。図１３に示される上段は、マイクロプロセッサ９１が実行する処理を示し、中段は暗号・復号化アクセラレータ９４が実行する処理を示す。また、下段はハッシュ演算アクセラレータ９５が実行する処理を示し、図１３における横軸は時間の経過を示す。スケジュール期間ＣおよびＤでは、センサ９７からの入力がＡ／Ｄ変換され、センサデータＳ１に対し暗号化Ｓａ１、センサデータＳ２に対し暗号化Ｓａ２がそれぞれ行われる。次に、暗号化Ｓａ１およびＳａ２の結果に対し、ハッシュ演算Ｓａ１およびＳａ２がそれぞれ行われる。次に、ハッシュ演算Ｓａ１およびＳａ２により作成された各ハッシュデータが暗号化されたセンサデータＳ１およびＳ２にそれぞれ付加され、ＩＰネットワーク上に送信される送信処理Ｓ１１およびＳ２１が行われる。
【０００７】
センサデータＳ１およびＳ２のサイズは数バイトのため、暗号化およびハッシュ演算は短時間で処理される。このことから、送信処理Ｓ１１およびＳ２１からなる送信周期は、制御周期とほぼ等しくなる。なお、スケジュール期間内の送信・受信の相手先、順番およびタイミングは、フィールド制御システム構築時に、ＩＰネットワークに接続されるデータ送信装置の種類、台数および制御アルゴリズム等によって決められ、各データ送信装置に設定される。データ送信装置９では、スケジュール期間内の処理を最優先に行うことで安定した制御を実現する。一方、外部装置からの要求により送信する設定データＴ１は、アンスケジュール期間Ｃで暗号化Ｔａ１およびハッシュ演算Ｔａ１が行われ、ＩＰネットワーク上に送信される送信処理Ｔ１１が行われる。
【０００８】
関連する技術に、効率的にデータ処理を行う技術がある。（例えば、特許文献１、特許文献２および特許文献３参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００５−１６７８７０号公報
【特許文献２】特開２００７−３２９７３０号公報
【特許文献３】特開２００８−６７１５２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
データ送信装置の多機能化により、大容量のデータの通信が必要となっている。大容量のデータに対し暗号化およびハッシュ演算を行うため、これらの処理時間が増大し、暗号化およびハッシュ演算が２つの制御周期に跨いで行われる可能性がある。例えば、アンスケジュール期間Ｃにおいてセンサデータのサイズより大きいサイズのデータに対し暗号化およびハッシュ演算が行われ、ハッシュ演算が次の制御周期におけるスケジュール期間Ｄに跨いで行われる場合、スケジュール期間Ｄにおけるハッシュ演算が待機状態となる。ハッシュ演算が待機状態となると、センサデータの送信が遅延するとともに送信周期が変化し制御周期に影響を与える問題が生じる。この問題は、暗号化およびハッシュ演算用のハードウェアをそれぞれスケジュール期間用とアンスケジュール期間用の２系統持つことで解決できる。しかしながら、暗号化およびハッシュ演算用のハードウェアは回路規模が大きく、２系統持たせる場合、データ送信装置のコストが高くなるという問題がある。
【００１１】
本発明は上述した問題点を解決するためになされたものであり、制御周期に影響を与えることなく大容量のデータ送信を可能にするデータ送信装置、データ送信方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決するため、本発明の一態様は、取得されたデータに対して所定の処理を施して通信データとして送信する処理実行部と、送信すべき優先度の高いデータに対する優先度の低いデータについての処理を複数のブロックに分割する分割部と、前記処理実行部による前記優先度が低いデータについての処理中に、前記優先度の高いデータを取得した場合、前記処理実行部により処理が行われているブロック以後に処理されるブロックに先んじて前記優先度の高いデータを処理させる優先制御部とを有する。
【００１３】
また、本発明の一態様は、処理するべき優先度の高いデータに対する優先度の低いデータについての処理を複数のブロックに分割し、前記分割されたブロックについての処理中に、前記優先度の高いデータを取得した場合、処理が行われているブロック以後に処理されるブロックに先んじて前記優先度の高いデータを処理し、通信データとして送信する。
【発明の効果】
【００１４】
本発明に係るデータ送信装置およびデータ送信方法によれば、制御周期に影響を与えることなく大容量のデータ送信を可能にすることができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態に係るデータ送信装置の構成を示すブロック図である。
【図２】実施の形態に係るデータ送信装置がＩＰネットワークに接続されたフィールド制御システムを説明するための図である。
【図３】実施の形態に係るブロック暗号化処理の動作を示すフローチャートである。
【図４】実施の形態に係るブロック暗号化処理におけるスケジュール処理の動作を示すフローチャートである。
【図５】実施の形態に係るブロック暗号化処理におけるアンスケジュール処理の動作を示すフローチャートである。
【図６】実施の形態に係るブロックハッシュ演算処理の動作を示すフローチャートである。
【図７】実施の形態に係るブロックハッシュ演算処理におけるスケジュール処理の動作を示すフローチャートである。
【図８】実施の形態に係るブロックハッシュ演算処理におけるアンスケジュール処理の動作を示すフローチャートである。
【図９】実施の形態に係るブロック暗号化処理およびブロックハッシュ演算処理の動作タイミングを説明するための図である。
【図１０】本発明を適用しないデータ送信装置の構成を示すブロック図である。
【図１１】本発明を適用しないデータ送信装置が行う一括暗号化処理および一括ハッシュ演算処理の動作タイミングを説明するための図である。
【図１２】アクセラレータを有するデータ送信装置の構成を示すブロック図である。
【図１３】データ送信装置における動作のタイミングを説明するための図である。
【発明を実施するための形態】
【００１６】
図１は、実施の形態に係るデータ送信装置の構成を示すブロック図である。図１に示されるように、データ送信装置１は、マイクロプロセッサ１１と、ＲＡＭ１２と、暗号・復号化アクセラレータ１３と、ハッシュ演算アクセラレータ１４と、ＩＰネットワーク通信Ｉ／Ｆ１５と、Ａ／Ｄ変換部１６と、イメージ処理部１７とを有する。
【００１７】
マイクロプロセッサ１１は、プログラムおよびパラメータ等のデータが格納されているＲＯＭ１１１を有する。マイクロプロセッサ１１は、暗号・復号化アクセラレータ１３およびハッシュ演算アクセラレータ１４と協働して後述するブロック暗号化処理、ブロック復号化処理およびブロックハッシュ演算処理を実行する。ＲＡＭ１２は、マイクロプロセッサ１１が各種処理を行うに際しワーク領域として使用される。また、ＲＡＭ１２は、暗
号化およびハッシュ演算され、コントローラ等の外部装置に送信される対象データが格納される。ＩＰネットワーク通信Ｉ／Ｆ１５は、ＩＰネットワークと接続されるインタフェースである。このＩＰネットワーク通信Ｉ／Ｆ１５を介してコントローラ等の外部装置へセンサデータおよび後述する画像データ等が通信データとして送信される。暗号・復号化アクセラレータ１３およびハッシュ演算アクセラレータ１４は後述する。
【００１８】
Ａ／Ｄ変換部１６は、温度、圧力および流量等を検出するセンサ２と接続され、センサ２から入力されるアナログ電圧をデジタルに変換する。イメージ処理部１７は、撮像を行うイメージセンサ３と接続され、イメージセンサ３から入力される信号をＪＰＥＧ等の画像データに処理する。イメージセンサ３は、例えばＣＣＤ（Charge Coupled Device）イメージセンサ、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサである。マイクロプロセッサ１１、ＲＡＭ１２、暗号・復号化アクセラレータ１３、ハッシュ演算アクセラレータ１４およびＩＰネットワーク通信Ｉ／Ｆ１５は、バス１８を介してそれぞれ接続されている。
【００１９】
実施の形態において、ＩＰネットワークを介した対象データの送信にはＩＰｓｅｃ(Security Architecture for Internet Protocol)を使用する。ＩＰｓｅｃで使用される暗号はブロック暗号と呼ばれ、暗号・復号化アクセラレータ１３は、ＡＥＳ(Advanced Encryption Standard)に基づいて、１２８ビット（１６バイト）単位のブロックを１ブロックとし、１ブロック毎に対象データを暗号化するブロック暗号化処理を行う。また、暗号・復号化アクセラレータ１３は、暗号化と同様に１ブロック毎に対象データを復号化するブロック復号化処理を行う。つまり、暗号・復号化アクセラレータ１３は、暗号化および復号化を１ブロック単位で行うことにより、対象データについての暗号化および復号化の処理自体を複数のブロック（以後、処理ブロックと称する）に分割して処理を行う。なお、暗号化および復号化は、ＡＥＳを用いる処理に限定するものではなく、ＤＥＳ等の共通鍵暗号方式およびＲＳＡ等の公開鍵暗号方式を用いるようにしてもよい。
【００２０】
ハッシュ演算アクセラレータ１４は、ＳＨＡ−１（Secure Hash Algorithm 1）に基づいて、５１２ビット（６４バイト）単位のブロックを１ブロックとし、１ブロック毎に暗号化された対象データ（以後、暗号化データと称する）をハッシュ演算するブロックハッシュ演算処理を行う。つまり、ハッシュ演算アクセラレータ１４は、ハッシュ演算を１ブロック単位で行うことにより、暗号化データについてのハッシュ演算の処理自体を複数の処理ブロックに分割して処理を行う。なお、ハッシュ演算は、ＳＨＡ―１を用いる処理に限定するものではなく、ＭＤ５（Message Digest Algorithm 5）等を用いるようにしてもよい。また、通信手段をＩＰｓｅｃに限定するものではなく、ＩＰネットワークを介した通信を行う手段であればよい。
【００２１】
暗号・復号化アクセラレータ１３は、スケジュール期間中に後述する暗号・復号処理情報が入力されるスケジュールキュー１３１と、アンスケジュール期間中に暗号・復号処理情報が入力されるアンスケジュールキュー１３２と、各キューから暗号・復号処理情報を取得し、暗号・復号化部１３４へ出力する暗号・復号化制御部１３３と、暗号・復号処理情報に基づいて対象データを１ブロック毎に暗号化および復号化を行う暗号・復号化部１３４とを有する。暗号・復号処理情報は、暗号化または復号化を行う対象データの格納場所、データサイズ、暗号化または復号化後におけるデータの格納場所および暗号化または復号化のいずれか等の情報を有する。ここで、暗号化を指示する情報を有する暗号・復号処理情報を暗号処理情報とし、復号化を指示する情報を有する暗号・復号処理情報を復号処理情報とする。また、スケジュールキュー１３１およびアンスケジュールキュー１３２は、マイクロプロセッサ１１からバス１８を介して暗号・復号処理情報が入力される。暗号・復号化制御部１３３は、バス１８および暗号・復号化部１３４と双方向に接続される。
【００２２】
ハッシュ演算アクセラレータ１４は、スケジュール期間中に後述するハッシュ処理情報が入力されるスケジュールキュー１４１と、アンスケジュール期間中にハッシュ処理情報が入力されるアンスケジュールキュー１４２と、各キューからハッシュ処理情報を取得し、ハッシュ演算部１４４へ出力するハッシュ演算制御部１４３と、ハッシュ処理情報に基づいて暗号化データを１ブロック毎にハッシュ演算するハッシュ演算部１４４とを有する。ハッシュ処理情報は、ハッシュ演算が行われる暗号化データの格納場所、データサイズおよびハッシュ演算後におけるハッシュデータの格納場所等の情報を有する。スケジュールキュー１４１およびアンスケジュールキュー１４２は、マイクロプロセッサ１１からバス１８を介してハッシュ情報が入力される。ハッシュ演算制御部１４３は、バス１８およびハッシュ演算部１４４と双方向に接続される。スケジュールキュー１３１および１４１、アンスケジュールキュー１３２および１４２は、いずれも入力された順にデータが出力されるキューの構造を有する。
【００２３】
図２は、実施の形態に係るデータ送信装置がＩＰネットワークに接続されたフィールド制御システムを説明するための図である。データ送信装置１を複数有するフィールド制御システム４におけるＩＰネットワークには、ＰＩＤ制御などの各種制御アルゴリズムを処理するコントローラ５、ＨＭＩである操作監視装置６が接続される。データ送信装置１は、スケジュール期間においてＩＰネットワークを介して、例えばセンサデータを対象データとし、暗号化およびハッシュ演算を行い、コントローラ５に送信する。コントローラ５は、受信したセンサデータに基づいてＰＩＤなどの制御演算を行ない、結果データをバルブポジショナ等のフィールド機器に送信し、リアルタイムな制御を行う。なお、操作監視装置６は、アンスケジュール期間において、データ送信装置１内部におけるデータの監視、設定パラメータの変更等を行う。
【００２４】
次に、実施の形態に係るブロック暗号化処理の動作について説明する。図３は、実施の形態に係るブロック暗号化処理の動作を示すフローチャートである。マイクロプロセッサ１１により、暗号化の対象となる対象データがＲＡＭ１２上に格納される（Ｓ１０１）。格納後、マイクロプロセッサ１１は、スケジュール期間であるか否かを判断する（Ｓ１０２）。スケジュール期間である場合（Ｓ１０２，ＹＥＳ）、マイクロプロセッサ１１は、暗号処理情報をスケジュールキュー１３１に入力し（Ｓ１０３）、スケジュール期間でない場合（Ｓ１０２，ＮＯ）、暗号処理情報をアンスケジュールキュー１３２に入力する（Ｓ１０４）。次に暗号・復号化制御部１３３は、スケジュールキュー１３１に暗号処理情報が入力されていない空の状態であるか否かを判断する（Ｓ１０５）。
【００２５】
暗号処理情報が入力されている場合（Ｓ１０５，ＮＯ）、暗号・復号化制御部１３３は、スケジュールキュー１３１から暗号処理情報を取得し（Ｓ１０６）、暗号・復号化部１３４へ出力する。暗号処理情報が入力された暗号・復号化部１３４は、後述するスケジュール処理を実行し（Ｓ１０７）、本フローは終了となる。一方、暗号処理情報が入力されていない場合（Ｓ１０５，ＹＥＳ）、暗号・復号化制御部１３３は、アンスケジュールキュー１３２から暗号処理情報を取得し（Ｓ１０８）、暗号・復号化部１３４へ出力する。暗号処理情報が入力された暗号・復号化部１３４は、暗号処理情報に基づいて後述するアンスケジュール処理を実行し（Ｓ１０９）、本フローは終了となる。
【００２６】
次に、実施の形態に係るブロック暗号化処理におけるスケジュール処理の動作について説明する。図４は、実施の形態に係るブロック暗号化処理におけるスケジュール処理の動作を示すフローチャートである。ステップＳ１０６における暗号処理情報を取得する処理後、暗号・復号化部１３４は、暗号処理情報に基づいて対象データの１ブロック分を暗号化する（Ｓ２０１）。１ブロックの暗号化後、暗号・復号化部１３４は、対象データの１ブロック分を暗号化した暗号化データを暗号処理情報が示すＲＡＭ１２の領域に格納する
とともに完了したことを暗号・復号化制御部１３３に通知する（Ｓ２０２）。
【００２７】
通知後、暗号・復号化制御部１３３は、暗号処理情報が示すデータサイズ分の対象データを暗号化したか否かを判断する（Ｓ２０３）。暗号処理情報が示すデータサイズ分の対象データを暗号化した場合（Ｓ２０３，ＹＥＳ）、暗号・復号化制御部１３３は、ブロック暗号化処理が完了したことを示す完了フラグをセットするとともにマイクロプロセッサ１１に通知し（Ｓ２０４）、本フローは終了となる。一方、暗号処理情報が示すデータサイズ分の対象データを暗号化していない場合（Ｓ２０３，ＮＯ）、暗号・復号化部１３４は、暗号処理情報に基づいて対象データの１ブロック分を暗号化するステップＳ２０１の処理を行う。
【００２８】
次に、実施の形態に係るブロック暗号化処理におけるアンスケジュール処理の動作について説明する。図５は、実施の形態に係るブロック暗号化処理におけるアンスケジュール処理の動作を示すフローチャートである。ステップＳ１０８における暗号処理情報を取得する処理後、暗号・復号化部１３４は、暗号処理情報に基づいて対象データの１ブロック分を暗号化する（Ｓ３０１）。１ブロックの暗号化後、暗号・復号化部１３４は、対象データの１ブロック分を暗号化した暗号化データを暗号処理情報が示すＲＡＭ１２の領域に格納するとともに完了したことを暗号・復号化制御部１３３に通知する（Ｓ３０２）。通知後、暗号・復号化制御部１３３は、スケジュールキュー１３１に暗号処理情報が入力されていない空の状態であるか否かを判断する（Ｓ３０３）。
【００２９】
暗号処理情報が入力されていない場合（Ｓ３０３，ＹＥＳ）、暗号・復号化制御部１３３は、暗号処理情報が示すデータサイズ分の対象データを暗号化したか否かを判断する（Ｓ３０４）。暗号処理情報が示すデータサイズ分の対象データを暗号化した場合（Ｓ３０４，ＹＥＳ）、暗号・復号化制御部１３３は、ブロック暗号化処理が完了したことを示す完了フラグをセットするとともにマイクロプロセッサ１１に通知し（Ｓ３０５）、本フローは終了となる。一方、暗号処理情報が示すデータサイズ分の対象データを暗号化していない場合（Ｓ３０４，ＮＯ）、暗号・復号化部１３４は、暗号処理情報に基づいて対象データの１ブロック分を暗号化するステップＳ３０１の処理を行う。
【００３０】
ステップＳ３０３において、暗号処理情報が入力されている場合（Ｓ３０３，ＮＯ）、暗号・復号化制御部１３３は、暗号・復号化部１３４が暗号化しているブロックの処理後に暗号化を中断させる（Ｓ３０６）。中断後、暗号・復号化制御部１３３は、暗号化したブロックの前後における対象データの格納領域、暗号化の鍵情報、ブロックチェーンのための暗号データ等を示す暗号処理連続情報をＲＡＭ１２に一時的に退避させる（Ｓ３０７）。なお、暗号処理連続情報を退避させる場所はＲＡＭ１２に限定するものではなく、暗号・復号化制御部１３３または暗号・復号化部１３４に記憶部を設け、この記憶部に格納させるようにしてもよい。
【００３１】
退避後、暗号・復号化制御部１３３は、スケジュールキュー１３１から暗号処理情報を取得し（Ｓ３０８）、暗号・復号化部１３４に対しステップＳ１０７のスケジュール処理を実行させる。アンスケジュールキュー１３２に入力された暗号処理情報が示すデータは、スケジュールキュー１３１に入力された暗号処理情報が示すデータより優先度が低いと判断される。これは、スケジュール期間において取得される対象データは、制御周期毎に送信する必要がある優先度の高いデータと判断され、アンスケジュール期間において取得される対象データは、制御周期毎に送信する必要のない優先度の低いデータであると判断されるためである。このため、アンスケジュールキュー１３２に入力された暗号処理情報に基づいた対象データの暗号化に先んじてスケジュールキュー１３１に入力された暗号処理情報が示す優先度の高い対象データを暗号化する。スケジュール処理実行後、暗号・復号化制御部１３３は、退避していた暗号処理連続情報をＲＡＭ１２から取得し（Ｓ３０９
）、ステップＳ３０４における暗号処理情報が示すデータサイズ分の対象データを暗号化したか否かを判断する処理へ移行する。
【００３２】
なお、実施の形態において、ステップＳ１０１にてマイクロプロセッサ１１が対象データをＲＡＭ１２に格納後にスケジュール期間であるか否かの判断を行っているが、ＲＡＭ１２への対象データの格納前にスケジュール期間であるか否かの判断を行ってもよい。
【００３３】
実施の形態に係るブロック復号化処理は、ブロック暗号化処理と比べると暗号処理情報に代わり復号処理情報に基づいて対象データの１ブロック毎に復号化を行う処理であり、詳細な動作はブロック暗号化処理と同様となるため、説明は省略する。
【００３４】
次に、実施の形態に係るブロックハッシュ演算処理の動作について説明する。ブロックハッシュ演算処理は、基本的にはブロック暗号化処理と同様の動作となる。図６は、実施の形態に係るブロックハッシュ演算処理の動作を示すフローチャートである。マイクロプロセッサ１１は、暗号・復号化制御部１３３からブロック暗号化処理の完了を示す通知を取得する（Ｓ４０１）。取得後、マイクロプロセッサ１１は、スケジュール期間であるか否かを判断する（Ｓ４０２）。スケジュール期間である場合（Ｓ４０２，ＹＥＳ）、マイクロプロセッサ１１は、ハッシュ処理情報をスケジュールキュー１４１に入力し（Ｓ４０３）、スケジュール期間でない場合（Ｓ４０２，ＮＯ）、ハッシュ処理情報をアンスケジュールキュー１４２に入力する（Ｓ４０４）。入力後、ハッシュ演算制御部１４３は、スケジュールキュー１４１にハッシュ処理情報が入力されていない空の状態であるか否かを判断する（Ｓ４０５）。
【００３５】
ハッシュ処理情報が入力されている場合（Ｓ４０５，ＮＯ）、ハッシュ演算制御部１４３は、スケジュールキュー１４１からハッシュ処理情報を取得し（Ｓ４０６）、ハッシュ演算部１４４へ出力する。ハッシュ処理情報が入力されたハッシュ演算部１４４は、後述するスケジュール処理を実行し（Ｓ４０７）、本フローは終了となる。一方、ハッシュ処理情報が入力されていない場合（Ｓ４０５，ＹＥＳ）、ハッシュ演算制御部１４３は、アンスケジュールキュー１４２からハッシュ処理情報を取得し（Ｓ４０８）、ハッシュ演算部１４４へ出力する。ハッシュ処理情報が入力されたハッシュ演算部１４４は、ハッシュ処理情報に基づいて後述するアンスケジュール処理を実行し（Ｓ４０９）、本フローは終了となる。
【００３６】
次に、実施の形態に係るブロックハッシュ演算処理におけるスケジュール処理の動作について説明する。図７は、実施の形態に係るブロックハッシュ演算処理におけるスケジュール処理の動作を示すフローチャートである。ステップＳ４０６におけるハッシュ処理情報を取得する処理後、ハッシュ演算部１４４は、ハッシュ処理情報に基づいて対象データの１ブロック分をハッシュ演算する（Ｓ５０１）。１ブロックのハッシュ演算後、ハッシュ演算部１４４は、対象データの１ブロック分をハッシュ演算して作成したハッシュデータをハッシュ処理情報が示すＲＡＭ１２の領域に格納するとともに完了したことをハッシュ演算制御部１４３に通知する（Ｓ５０２）。
【００３７】
通知後、ハッシュ演算制御部１４３は、ハッシュ処理情報が示すデータサイズ分の暗号化データをハッシュ演算したか否かを判断する（Ｓ５０３）。ハッシュ処理情報が示すデータサイズ分の暗号化データをハッシュ演算した場合（Ｓ５０３，ＹＥＳ）、ハッシュ演算制御部１４３は、ブロックハッシュ演算処理が完了したことを示す完了フラグをセットするとともにマイクロプロセッサ１１に通知し（Ｓ５０４）、本フローは終了となる。一方、ハッシュ処理情報が示すデータサイズ分の暗号化データをハッシュ演算していない場合（Ｓ５０３，ＮＯ）、ハッシュ演算部１４４は、ハッシュ処理情報に基づいて対象データの１ブロック分をハッシュ演算するステップＳ５０１の処理を行う。
【００３８】
次に、実施の形態に係るブロックハッシュ演算処理におけるアンスケジュール処理の動作について説明する。図８は、実施の形態に係るブロックハッシュ演算処理におけるアンスケジュール処理の動作を示すフローチャートである。ステップＳ４０８におけるハッシュ処理情報を取得する処理後、ハッシュ演算部１４４は、ハッシュ処理情報に基づいて暗号化データの１ブロック分をハッシュ演算する（Ｓ６０１）。１ブロックのハッシュ演算後、ハッシュ演算部１４４は、暗号化データの１ブロック分をハッシュ演算して作成したハッシュデータをハッシュ処理情報が示すＲＡＭ１２の領域に格納するとともに完了したことをハッシュ演算制御部１４３に通知する（Ｓ６０２）。通知後、ハッシュ演算制御部１４３は、スケジュールキュー１４１にハッシュ処理情報が入力されていない空の状態であるか否かを判断する（Ｓ６０３）。
【００３９】
ハッシュ処理情報が入力されていない場合（Ｓ６０３，ＹＥＳ）、ハッシュ演算制御部１４３は、ハッシュ処理情報が示すデータサイズ分の暗号化データをハッシュ演算したか否かを判断する（Ｓ６０４）。ハッシュ処理情報が示すデータサイズ分の暗号化データをハッシュ演算した場合（Ｓ６０４，ＹＥＳ）、ハッシュ演算制御部１４３は、ブロックハッシュ演算処理が完了したことを示す完了フラグをセットするとともにマイクロプロセッサ１１に通知し（Ｓ６０５）、本フローは終了となる。一方、ハッシュ処理情報が示すデータサイズ分の暗号化データをハッシュ演算していない場合（Ｓ６０４，ＮＯ）、ハッシュ演算部１４４は、ハッシュ処理情報に基づいて対象データの１ブロック分を暗号化するステップＳ６０１の処理を行う。
【００４０】
ステップＳ６０３において、ハッシュ処理情報が入力されている場合（Ｓ６０３，ＮＯ）、ハッシュ演算制御部１４３は、ハッシュ演算部１４４がハッシュ演算しているブロックの処理後にハッシュ演算を中断させる（Ｓ６０６）。中断後、ハッシュ演算制御部１４３は、ハッシュ演算したブロックの前後における暗号化データの格納領域、鍵情報、ハッシュ演算結果等を示すハッシュ処理連続情報をＲＡＭ１２に一時的に退避させる（Ｓ６０７）。なお、ハッシュ処理連続情報を退避させる場所はＲＡＭ１２に限定するものではなく、ハッシュ演算制御部１４３またはハッシュ演算部１４４に記憶部を設け、この記憶部に格納させるようにしてもよい。
【００４１】
退避後、ハッシュ演算制御部１４３は、スケジュールキュー１４１からハッシュ処理情報を取得し（Ｓ６０８）、ハッシュ演算部１４４に対しステップＳ４０７のスケジュール処理を実行させる。アンスケジュールキュー１４２に入力されたハッシュ処理情報が示すデータは、スケジュールキュー１４１に入力されたハッシュ処理情報が示すデータより優先度が低いと判断される。これは、スケジュール期間において取得される対象データは、制御周期毎に送信する必要がある優先度の高いデータと判断され、アンスケジュール期間において取得される対象データは、制御周期毎に送信する必要のない優先度の低いデータであると判断されるためである。このため、アンスケジュールキュー１４２に入力されたハッシュ処理情報に基づいた暗号化データのハッシュ演算に先んじてスケジュールキュー１４１に入力されたハッシュ処理情報が示す優先度の高い暗号化データをハッシュ演算する。スケジュール処理実行後、ハッシュ演算制御部１４３は、退避していたハッシュ処理連続情報をＲＡＭ１２から取得し（Ｓ６０９）、ステップＳ６０４におけるハッシュ処理情報が示すデータサイズ分の暗号化データをハッシュ演算したか否かを判断する処理へ移行する。
【００４２】
なお、ブロック暗号化処理およびブロックハッシュ演算処理において、スケジュールキュー１３１および１４１に入力された暗号処理情報およびハッシュ処理情報等の処理情報に基づいた暗号化およびハッシュ演算は、１ブロック毎に行うとした。しかしながら、スケジュールキュー１３１および１４１に入力された処理情報に基づいた暗号化およびハッ
シュ演算においては、１ブロック毎に処理を行なわず、データサイズ分を一括して処理するようにしてもよい。
【００４３】
図９は、実施の形態に係るブロック暗号化処理およびブロックハッシュ演算処理の動作タイミングを説明するための図である。図９を用いて、スケジュール期間中に送信される優先度の高いデータとしてセンサデータＳ１およびＳ２を送信し、アンスケジュール期間中に送信される優先度の低いデータとして、センサデータＳ１およびＳ２より大きいデータサイズの画像データＵ１を送信する場合を説明する。図９に示される上段は、マイクロプロセッサ１１が実行する処理を示し、中断は暗号・復号化アクセラレータ１３が実行する処理を示す。また、下段はハッシュ演算アクセラレータ１４が実行する処理を示し、図９における横軸は時間の経過を示す。スケジュール期間Ａにおいて、センサ２からの入力がＡ／Ｄ変換されたセンサデータＳ１に対しブロック暗号化処理Ｓｂ１が行われる。ブロック暗号化処理後、センサデータＳ１が暗号化された暗号化データに対し、ブロックハッシュ演算処理Ｓｂ１が行われる。ブロックハッシュ演算処理後、暗号化データに対しブロックハッシュ演算処理にて作成されたハッシュデータが付加され、ＩＰネットワーク上に送信される送信処理Ｓ１１が行われる。
【００４４】
アンスケジュール期間Ａにおいて、イメージ処理部１７から取得された画像データＵ１に対しブロック暗号化処理が行われる。画像データＵ１の１ブロックに対しそれぞれ暗号化が行われるため、暗号化は、複数の暗号化Ｕｂ１〜Ｕｂｎに分割され実行される。次に、暗号化Ｕｂ１〜Ｕｂｎにより作成された暗号化データに対しブロックハッシュ演算処理が行われる。ハッシュ演算においても暗号化と同様、複数のハッシュ演算Ｕｂ１〜Ｕｂｍに分割され実行される。ハッシュ演算Ｕｂ２は、アンスケジュール期間Ａからスケジュール期間Ｂに跨いでいるが、ハッシュ処理情報がスケジュールキュー１４１に入力されるまでハッシュ演算は実行される。
【００４５】
ここで、ブロックハッシュ演算処理が行われている最中にスケジュール期間Ｂに入っているため、センサ２からの入力がＡ／Ｄ変換されたセンサデータＳ２に対しブロック暗号化処理Ｓｂ２が実行される。ブロック暗号化処理Ｓｂ２が完了し、ハッシュ処理情報がスケジュールキュー１４１に入力されると、ハッシュ演算が行われているブロックの処理後にブロックハッシュ演算処理が中断される。ここでは、ハッシュ演算Ｕｂ３を終えた時点でブロックハッシュ演算処理が中断される。中断後、センサデータＳ２の暗号化データに対しブロックハッシュ演算処理Ｓｂ２が実行される。ハッシュ演算Ｓｂ２後、センサデータＳ２の暗号化データに対しブロックハッシュ演算処理Ｓｂ２にて作成されたハッシュデータが付加され、ＩＰネットワーク上に送信される送信処理Ｓ２１が行われる。画像データＵ１のハッシュ演算Ｕｂ４は、ブロックハッシュ演算処理Ｓｂ２が終了した時点で再開され、ハッシュ演算Ｕｂｍまで実行される。ハッシュ演算Ｕｂ１〜Ｕｂｍ後、画像データＵ１の暗号化データに対しハッシュ演算Ｕｂ１〜Ｕｂｍにて作成されたハッシュデータが付加され、ＩＰネットワーク上に送信される送信処理Ｕ１１が行われる。
【００４６】
以上のように、センサデータＳ２には、アンスケジュール期間Ａでのハッシュ演算Ｕｂ１〜Ｕｂｎがスケジュール期間Ｂに跨ったとしても、ハッシュ演算Ｕｂ１〜Ｕｂｎが終了するのを待つことなくブロックハッシュ演算処理Ｓｂ２が行われる。また、送信処理Ｓ１１および送信処理Ｓ２１からなる送信周期は、制御周期と等しくなる。なお、実施の形態における暗号・復号化アクセラレータ１４は、ＡＥＳに基づいてブロック暗号化処理を行っているため、例えばコントローラ５および操作監視装置６が送信先であっても問題なく送信されたデータを復号化することができる。
【００４７】
次に、比較例として本発明を適用しないデータ送信装置の構成と、後述する一括暗号化処理および一括ハッシュ演算処理の動作タイミングを説明する。図１０は、本発明を適用
しないデータ送信装置の構成を示すブロック図である。図１０に示すように、データ送信装置７は、データ送信装置１と比べ、マイクロプロセッサ１１に代わりマイクロプロセッサ７１を有する。また、暗号・復号化アクセラレータ１３に代わり、対象データを１ブロック毎に暗号化せず、データサイズ分を一括して暗号化する一括暗号化処理および一括して復号化する一括復号化処理を行う暗号・復号化アクセラレータ７２を有する。また、ハッシュ演算アクセラレータ１４に代わり、暗号化データを１ブロック毎にハッシュ演算せず、データサイズ分を一括してハッシュ演算する一括ハッシュ演算処理を行うハッシュ演算アクセラレータ７３を有する。マイクロプロセッサ７１は、プログラムおよびパラメータ等のデータが格納されているＲＯＭ７１１を有し、暗号・復号化アクセラレータ７２およびハッシュ演算アクセラレータ７３と協働して、一括暗号化処理および一括ハッシュ演算処理を実行する。
【００４８】
図１１は、本発明を適用しないデータ送信装置が行う一括暗号化処理および一括ハッシュ演算処理の動作タイミングを説明するための図である。図１１に示されるように、画像データＵ１の一括ハッシュ演算処理Ｕａ１中にスケジュール期間Ｂに入ると、センサデータＳ２の一括ハッシュ演算処理Ｓａ２が待たされ、センサデータＳ２の送信処理Ｓ２１が遅れる。このことから、画像データＵ１のような大容量のデータサイズを有するデータに対し一括暗号化処理および一括復号化処理を行うと、送信周期が制御周期と比べ大きくなる。一方、実施の形態におけるブロック暗号化処理およびブロックハッシュ演算処理によれば、画像データＵ１のような大容量のデータサイズを有するデータであっても送信周期および制御周期に影響を与えることなく処理が行われる。
【００４９】
なお、実施の形態において、データ送信装置１が暗号・復号化アクセラレータ１３およびハッシュ演算アクセラレータ１４を有すると説明を行ったが、この２つのアクセラレータを必ず有する必要はない。例えば、データ送信装置１において暗号・復号化アクセラレータ１３とハッシュ演算アクセラレータ７３を有するようにし、ブロック暗号化処理後に一括ハッシュ演算処理を行うようにしてもよい。
【００５０】
実施の形態によれば、対象データおよび暗号化データを１ブロック毎に暗号化およびハッシュ演算を行うことで暗号化およびハッシュ演算を複数の処理ブロックに分割できる。また、暗号化およびハッシュ演算を複数の処理ブロックに分割することにより、スケジュール期間およびアンスケジュール期間に基づくデータの優先度に従って、暗号化およびハッシュ演算の中断および復帰を行うことができる。このことから、センサデータ等のスケジュール期間に送信される優先度の高いデータを、画像データ等のアンスケジュール期間に送信される優先度の低いデータに先んじて送信することができ、制御周期に影響を与えることなく、大容量のデータ送信を可能にする効果を奏する。また、暗号・復号化アクセラレータおよびハッシュ演算アクセラレータを２系統持つことなく、上述した効果を奏することができる。
【００５１】
また、本発明の一態様は、制御周期毎にデータを送信するスケジュール期間において、取得されたデータがメモリ（ＲＡＭ１２）に格納されたか否かを判断する格納判断部（マイクロプロセッサ１１）と、前記スケジュール期間内に前記取得されたデータが格納された場合、前記取得されたデータの処理内容を示す処理情報（暗号処理情報またはハッシュ処理情報）を第１格納部（スケジュールキュー１３１，スケジュールキュー１４１）に入力し、前記スケジュール期間外（アンスケジュール期間）に前記取得されたデータが格納された場合、前記処理情報を第２格納部（アンスケジュールキュー１３２，アンスケジュールキュー１４２）に入力する入力部（マイクロプロセッサ１１）と、前記第１格納部または前記第２格納部に入力された処理情報に基づいて、前記取得されたデータに対して所定の処理（ブロック暗号化処理，ブロックハッシュ演算処理）を施して通信データとして送信する処理実行部（マイクロプロセッサ１１，暗号・復号化部１３４，ハッシュ演算部
１４４）と、前記第２格納部に入力された処理情報に対応するデータ（優先度の低いデータ，画像データ）についての処理を複数のブロックに分割する分割部（暗号・復号化部１３４，ハッシュ演算部１４４）と、前記処理実行部による前記第２格納部に入力された処理情報に対応するデータの処理中に、前記第１格納部に前記処理情報が入力された場合、前記処理実行部により処理が行われているブロック以後に処理されるブロックに先んじて前記第１格納部に入力された処理情報に対応するデータを処理させる優先制御部（暗号・復号化制御部１３３およびハッシュ演算制御部１４３）とを有する。
【００５２】
請求項１に記載の処理実行部は、実施の形態におけるマイクロプロセッサ１１、暗号・復号化部１３４およびハッシュ演算部１４４に対応する。また、分割部は、実施の形態における暗号・復号化部１３４およびハッシュ演算部１４４に対応する。また、優先制御部は、実施の形態における暗号・復号化制御部１３３およびハッシュ演算制御部１４３に対応する。また、ブロックは、実施の形態における処理ブロックに対応する。請求項３に記載の検出データは、実施の形態におけるセンサデータに対応し、撮像データは、実施の形態における画像データに対応する。
【００５３】
本発明は、その精神または主要な特徴から逸脱することなく、他の様々な形で実施することができる。そのため、前述の実施の形態は、あらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には、何ら拘束されない。更に、特許請求の範囲の均等範囲に属する全ての変形、様々な改良、代替および改質は、全て本発明の範囲内のものである。
【符号の説明】
【００５４】
１  データ送信装置、
２  センサ、
３  イメージセンサ、
１１  マイクロプロセッサ、
１２  ＲＡＭ、
１３  暗号・復号化アクセラレータ、
１４  ハッシュ演算アクセラレータ、
１５  ＩＰネットワーク通信Ｉ／Ｆ、
１６  Ａ／Ｄ変換部、
１７  イメージ処理部、
１８  バス、
１１１  ＲＯＭ、
１３１、１４１  スケジュールキュー、
１３２、１３３  アンスケジュールキュー、
１３３  暗号・復号化制御部、
１３４  暗号・復号化部、
１４３  ハッシュ演算制御部、
１４４  ハッシュ演算部。
【図１】
2010283635.tif 000003
【図２】
2010283635.tif 000004
【図３】
2010283635.tif 000005
【図４】
2010283635.tif 000006
【図５】
2010283635.tif 000007
【図６】
2010283635.tif 000008
【図７】
2010283635.tif 000009
【図８】
2010283635.tif 000010
【図９】
2010283635.tif 000011
【図１０】
2010283635.tif 000012
【図１１】
2010283635.tif 000013
【図１２】
2010283635.tif 000014
【図１３】
2010283635.tif 000015