説明

データ送信装置、データ送信方法

【課題】 制御周期に影響を与えることなく大容量のデータ送信を可能にするデータ送信装置、データ送信方法を提供する。
【解決手段】 取得されたデータに対して所定の処理を施して通信データとして送信する処理実行部11,134,144と、送信すべき優先度の高いデータに対する優先度の低いデータについての処理を複数のブロックに分割する分割部134,144と、前記処理実行部による前記優先度が低いデータについての処理中に、前記優先度の高いデータを取得した場合、前記処理実行部により処理が行われているブロック以後に処理されるブロックに先んじて前記優先度の高いデータを処理させる優先制御部133,143とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IPネットワークを介してセンサから取得したデータの送信を行うデータ送信装置およびデータ送信方法に関する。
【背景技術】
【0002】
従来、プラントに設置されたフィールド機器等のデータ送信装置をファウンデーションフィールドバスのようなデジタル通信ネットワークで接続することにより、フィールド制御システムが構築されている。このフィールド制御システムにおいて、ネットワーク構成の柔軟性やコストパフォーマンスのよさから、IP(Internet Protocol)ネットワークへの各種フィールド機器およびコントローラ等の接続が試みられている。なお、フィールド機器としては差圧伝送器、流量計、圧力計および温度計等がある。
【0003】
オープンなIPネットワークをフィールド制御システムに利用するには高度なセキュリティを確保することが求められる。そのため、データ送信装置は、通信するデータに対する暗号化および復号化等の秘匿処理や、ハッシュ等の認証データの作成および認証データの照合等の認証処理を行う必要がある。これらの秘匿処理および認証処理は、膨大な演算を繰返し行うため、通信速度が低下する問題がある。通信速度の低下を防ぐためには、データ送信装置には高性能なマイクロプロセッサを搭載する必要がある。しかしながら、データ送信装置は、発火しやすい場所に設置されることがあり、低消費電力を求められるため、電力消費量の大きい高性能マイクロプロセッサを搭載することができない。このため、秘匿処理および認証処理を並列に動作させる専用のハードウェア(以後、アクセラレータと称する)を低速クロックで動作させ、電力消費の少ないマイクロプロセッサと組み合わせることにより、データの秘匿処理および認証処理を実現している。
【0004】
図12は、アクセラレータを有するデータ送信装置の構成を示すブロック図である。マイクロプロセッサ91は、プログラムおよびパラメータ等のデータが格納されているROM(Read Only Memory)911を有する。また、マイクロプロセッサ91は、バス92を介してRAM(Random Access Memory)93、秘匿処理のための暗号化および復号化を行う暗号・復号化アクセラレータ94、認証処理のためのハッシュデータを作成するハッシュ演算を行うハッシュ演算アクセラレータ95、対象データの送信を行うIPネットワーク通信I/F96が接続される。マイクロプロセッサ91には、センサ97から入力されたアナログ電圧をデジタルに変換するA/D変換器98が接続される。RAM93は、暗号化およびハッシュ演算され、外部装置に送信される対象データが格納される。
【0005】
データ送信装置9がIPネットワークに接続されたフィールド制御システムでは、リアルタイムな制御を実現するために、システム構築時に制御周期が設定される。制御周期は、例えば1秒である。このフィールド制御システムは、制御周期を、制御周期毎に処理が行われるスケジュール期間と制御周期毎に処理が行われる必要のないアンスケジュール期間とに分割し、IPネットワーク上の通信を行う。スケジュール期間では、例えば、センサ97が出力したセンサデータ等が暗号化およびハッシュ演算され、PID(Proportional Integral Derivative)制御などの各種制御アルゴリズムを処理する外部装置に送信される。センサデータが送信された外部装置は、センサデータに基づいてPIDなどの制御演算を行ない、結果データをバルブポジショナ等のフィールド機器に送信し、リアルタイムな制御を行う。一方、アンスケジュール期間では、例えば、HMI(Human-Machine Interface)等の外部装置によるデータ送信装置9内部におけるデータの監視、設定パラメータの変更等を行う際に、外部装置からの要求により設定パラメータ等を有する設定データ等の送信が行われる。
【0006】
図13は、データ送信装置における動作のタイミングを説明するための図である。図13に示される上段は、マイクロプロセッサ91が実行する処理を示し、中段は暗号・復号化アクセラレータ94が実行する処理を示す。また、下段はハッシュ演算アクセラレータ95が実行する処理を示し、図13における横軸は時間の経過を示す。スケジュール期間CおよびDでは、センサ97からの入力がA/D変換され、センサデータS1に対し暗号化Sa1、センサデータS2に対し暗号化Sa2がそれぞれ行われる。次に、暗号化Sa1およびSa2の結果に対し、ハッシュ演算Sa1およびSa2がそれぞれ行われる。次に、ハッシュ演算Sa1およびSa2により作成された各ハッシュデータが暗号化されたセンサデータS1およびS2にそれぞれ付加され、IPネットワーク上に送信される送信処理S11およびS21が行われる。
【0007】
センサデータS1およびS2のサイズは数バイトのため、暗号化およびハッシュ演算は短時間で処理される。このことから、送信処理S11およびS21からなる送信周期は、制御周期とほぼ等しくなる。なお、スケジュール期間内の送信・受信の相手先、順番およびタイミングは、フィールド制御システム構築時に、IPネットワークに接続されるデータ送信装置の種類、台数および制御アルゴリズム等によって決められ、各データ送信装置に設定される。データ送信装置9では、スケジュール期間内の処理を最優先に行うことで安定した制御を実現する。一方、外部装置からの要求により送信する設定データT1は、アンスケジュール期間Cで暗号化Ta1およびハッシュ演算Ta1が行われ、IPネットワーク上に送信される送信処理T11が行われる。
【0008】
関連する技術に、効率的にデータ処理を行う技術がある。(例えば、特許文献1、特許文献2および特許文献3参照)。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2005−167870号公報
【特許文献2】特開2007−329730号公報
【特許文献3】特開2008−67152号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
データ送信装置の多機能化により、大容量のデータの通信が必要となっている。大容量のデータに対し暗号化およびハッシュ演算を行うため、これらの処理時間が増大し、暗号化およびハッシュ演算が2つの制御周期に跨いで行われる可能性がある。例えば、アンスケジュール期間Cにおいてセンサデータのサイズより大きいサイズのデータに対し暗号化およびハッシュ演算が行われ、ハッシュ演算が次の制御周期におけるスケジュール期間Dに跨いで行われる場合、スケジュール期間Dにおけるハッシュ演算が待機状態となる。ハッシュ演算が待機状態となると、センサデータの送信が遅延するとともに送信周期が変化し制御周期に影響を与える問題が生じる。この問題は、暗号化およびハッシュ演算用のハードウェアをそれぞれスケジュール期間用とアンスケジュール期間用の2系統持つことで解決できる。しかしながら、暗号化およびハッシュ演算用のハードウェアは回路規模が大きく、2系統持たせる場合、データ送信装置のコストが高くなるという問題がある。
【0011】
本発明は上述した問題点を解決するためになされたものであり、制御周期に影響を与えることなく大容量のデータ送信を可能にするデータ送信装置、データ送信方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
上述した課題を解決するため、本発明の一態様は、取得されたデータに対して所定の処理を施して通信データとして送信する処理実行部と、送信すべき優先度の高いデータに対する優先度の低いデータについての処理を複数のブロックに分割する分割部と、前記処理実行部による前記優先度が低いデータについての処理中に、前記優先度の高いデータを取得した場合、前記処理実行部により処理が行われているブロック以後に処理されるブロックに先んじて前記優先度の高いデータを処理させる優先制御部とを有する。
【0013】
また、本発明の一態様は、処理するべき優先度の高いデータに対する優先度の低いデータについての処理を複数のブロックに分割し、前記分割されたブロックについての処理中に、前記優先度の高いデータを取得した場合、処理が行われているブロック以後に処理されるブロックに先んじて前記優先度の高いデータを処理し、通信データとして送信する。
【発明の効果】
【0014】
本発明に係るデータ送信装置およびデータ送信方法によれば、制御周期に影響を与えることなく大容量のデータ送信を可能にすることができる。
【図面の簡単な説明】
【0015】
【図1】実施の形態に係るデータ送信装置の構成を示すブロック図である。
【図2】実施の形態に係るデータ送信装置がIPネットワークに接続されたフィールド制御システムを説明するための図である。
【図3】実施の形態に係るブロック暗号化処理の動作を示すフローチャートである。
【図4】実施の形態に係るブロック暗号化処理におけるスケジュール処理の動作を示すフローチャートである。
【図5】実施の形態に係るブロック暗号化処理におけるアンスケジュール処理の動作を示すフローチャートである。
【図6】実施の形態に係るブロックハッシュ演算処理の動作を示すフローチャートである。
【図7】実施の形態に係るブロックハッシュ演算処理におけるスケジュール処理の動作を示すフローチャートである。
【図8】実施の形態に係るブロックハッシュ演算処理におけるアンスケジュール処理の動作を示すフローチャートである。
【図9】実施の形態に係るブロック暗号化処理およびブロックハッシュ演算処理の動作タイミングを説明するための図である。
【図10】本発明を適用しないデータ送信装置の構成を示すブロック図である。
【図11】本発明を適用しないデータ送信装置が行う一括暗号化処理および一括ハッシュ演算処理の動作タイミングを説明するための図である。
【図12】アクセラレータを有するデータ送信装置の構成を示すブロック図である。
【図13】データ送信装置における動作のタイミングを説明するための図である。
【発明を実施するための形態】
【0016】
図1は、実施の形態に係るデータ送信装置の構成を示すブロック図である。図1に示されるように、データ送信装置1は、マイクロプロセッサ11と、RAM12と、暗号・復号化アクセラレータ13と、ハッシュ演算アクセラレータ14と、IPネットワーク通信I/F15と、A/D変換部16と、イメージ処理部17とを有する。
【0017】
マイクロプロセッサ11は、プログラムおよびパラメータ等のデータが格納されているROM111を有する。マイクロプロセッサ11は、暗号・復号化アクセラレータ13およびハッシュ演算アクセラレータ14と協働して後述するブロック暗号化処理、ブロック復号化処理およびブロックハッシュ演算処理を実行する。RAM12は、マイクロプロセッサ11が各種処理を行うに際しワーク領域として使用される。また、RAM12は、暗
号化およびハッシュ演算され、コントローラ等の外部装置に送信される対象データが格納される。IPネットワーク通信I/F15は、IPネットワークと接続されるインタフェースである。このIPネットワーク通信I/F15を介してコントローラ等の外部装置へセンサデータおよび後述する画像データ等が通信データとして送信される。暗号・復号化アクセラレータ13およびハッシュ演算アクセラレータ14は後述する。
【0018】
A/D変換部16は、温度、圧力および流量等を検出するセンサ2と接続され、センサ2から入力されるアナログ電圧をデジタルに変換する。イメージ処理部17は、撮像を行うイメージセンサ3と接続され、イメージセンサ3から入力される信号をJPEG等の画像データに処理する。イメージセンサ3は、例えばCCD(Charge Coupled Device)イメージセンサ、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサである。マイクロプロセッサ11、RAM12、暗号・復号化アクセラレータ13、ハッシュ演算アクセラレータ14およびIPネットワーク通信I/F15は、バス18を介してそれぞれ接続されている。
【0019】
実施の形態において、IPネットワークを介した対象データの送信にはIPsec(Security Architecture for Internet Protocol)を使用する。IPsecで使用される暗号はブロック暗号と呼ばれ、暗号・復号化アクセラレータ13は、AES(Advanced Encryption Standard)に基づいて、128ビット(16バイト)単位のブロックを1ブロックとし、1ブロック毎に対象データを暗号化するブロック暗号化処理を行う。また、暗号・復号化アクセラレータ13は、暗号化と同様に1ブロック毎に対象データを復号化するブロック復号化処理を行う。つまり、暗号・復号化アクセラレータ13は、暗号化および復号化を1ブロック単位で行うことにより、対象データについての暗号化および復号化の処理自体を複数のブロック(以後、処理ブロックと称する)に分割して処理を行う。なお、暗号化および復号化は、AESを用いる処理に限定するものではなく、DES等の共通鍵暗号方式およびRSA等の公開鍵暗号方式を用いるようにしてもよい。
【0020】
ハッシュ演算アクセラレータ14は、SHA−1(Secure Hash Algorithm 1)に基づいて、512ビット(64バイト)単位のブロックを1ブロックとし、1ブロック毎に暗号化された対象データ(以後、暗号化データと称する)をハッシュ演算するブロックハッシュ演算処理を行う。つまり、ハッシュ演算アクセラレータ14は、ハッシュ演算を1ブロック単位で行うことにより、暗号化データについてのハッシュ演算の処理自体を複数の処理ブロックに分割して処理を行う。なお、ハッシュ演算は、SHA―1を用いる処理に限定するものではなく、MD5(Message Digest Algorithm 5)等を用いるようにしてもよい。また、通信手段をIPsecに限定するものではなく、IPネットワークを介した通信を行う手段であればよい。
【0021】
暗号・復号化アクセラレータ13は、スケジュール期間中に後述する暗号・復号処理情報が入力されるスケジュールキュー131と、アンスケジュール期間中に暗号・復号処理情報が入力されるアンスケジュールキュー132と、各キューから暗号・復号処理情報を取得し、暗号・復号化部134へ出力する暗号・復号化制御部133と、暗号・復号処理情報に基づいて対象データを1ブロック毎に暗号化および復号化を行う暗号・復号化部134とを有する。暗号・復号処理情報は、暗号化または復号化を行う対象データの格納場所、データサイズ、暗号化または復号化後におけるデータの格納場所および暗号化または復号化のいずれか等の情報を有する。ここで、暗号化を指示する情報を有する暗号・復号処理情報を暗号処理情報とし、復号化を指示する情報を有する暗号・復号処理情報を復号処理情報とする。また、スケジュールキュー131およびアンスケジュールキュー132は、マイクロプロセッサ11からバス18を介して暗号・復号処理情報が入力される。暗号・復号化制御部133は、バス18および暗号・復号化部134と双方向に接続される。
【0022】
ハッシュ演算アクセラレータ14は、スケジュール期間中に後述するハッシュ処理情報が入力されるスケジュールキュー141と、アンスケジュール期間中にハッシュ処理情報が入力されるアンスケジュールキュー142と、各キューからハッシュ処理情報を取得し、ハッシュ演算部144へ出力するハッシュ演算制御部143と、ハッシュ処理情報に基づいて暗号化データを1ブロック毎にハッシュ演算するハッシュ演算部144とを有する。ハッシュ処理情報は、ハッシュ演算が行われる暗号化データの格納場所、データサイズおよびハッシュ演算後におけるハッシュデータの格納場所等の情報を有する。スケジュールキュー141およびアンスケジュールキュー142は、マイクロプロセッサ11からバス18を介してハッシュ情報が入力される。ハッシュ演算制御部143は、バス18およびハッシュ演算部144と双方向に接続される。スケジュールキュー131および141、アンスケジュールキュー132および142は、いずれも入力された順にデータが出力されるキューの構造を有する。
【0023】
図2は、実施の形態に係るデータ送信装置がIPネットワークに接続されたフィールド制御システムを説明するための図である。データ送信装置1を複数有するフィールド制御システム4におけるIPネットワークには、PID制御などの各種制御アルゴリズムを処理するコントローラ5、HMIである操作監視装置6が接続される。データ送信装置1は、スケジュール期間においてIPネットワークを介して、例えばセンサデータを対象データとし、暗号化およびハッシュ演算を行い、コントローラ5に送信する。コントローラ5は、受信したセンサデータに基づいてPIDなどの制御演算を行ない、結果データをバルブポジショナ等のフィールド機器に送信し、リアルタイムな制御を行う。なお、操作監視装置6は、アンスケジュール期間において、データ送信装置1内部におけるデータの監視、設定パラメータの変更等を行う。
【0024】
次に、実施の形態に係るブロック暗号化処理の動作について説明する。図3は、実施の形態に係るブロック暗号化処理の動作を示すフローチャートである。マイクロプロセッサ11により、暗号化の対象となる対象データがRAM12上に格納される(S101)。格納後、マイクロプロセッサ11は、スケジュール期間であるか否かを判断する(S102)。スケジュール期間である場合(S102,YES)、マイクロプロセッサ11は、暗号処理情報をスケジュールキュー131に入力し(S103)、スケジュール期間でない場合(S102,NO)、暗号処理情報をアンスケジュールキュー132に入力する(S104)。次に暗号・復号化制御部133は、スケジュールキュー131に暗号処理情報が入力されていない空の状態であるか否かを判断する(S105)。
【0025】
暗号処理情報が入力されている場合(S105,NO)、暗号・復号化制御部133は、スケジュールキュー131から暗号処理情報を取得し(S106)、暗号・復号化部134へ出力する。暗号処理情報が入力された暗号・復号化部134は、後述するスケジュール処理を実行し(S107)、本フローは終了となる。一方、暗号処理情報が入力されていない場合(S105,YES)、暗号・復号化制御部133は、アンスケジュールキュー132から暗号処理情報を取得し(S108)、暗号・復号化部134へ出力する。暗号処理情報が入力された暗号・復号化部134は、暗号処理情報に基づいて後述するアンスケジュール処理を実行し(S109)、本フローは終了となる。
【0026】
次に、実施の形態に係るブロック暗号化処理におけるスケジュール処理の動作について説明する。図4は、実施の形態に係るブロック暗号化処理におけるスケジュール処理の動作を示すフローチャートである。ステップS106における暗号処理情報を取得する処理後、暗号・復号化部134は、暗号処理情報に基づいて対象データの1ブロック分を暗号化する(S201)。1ブロックの暗号化後、暗号・復号化部134は、対象データの1ブロック分を暗号化した暗号化データを暗号処理情報が示すRAM12の領域に格納する
とともに完了したことを暗号・復号化制御部133に通知する(S202)。
【0027】
通知後、暗号・復号化制御部133は、暗号処理情報が示すデータサイズ分の対象データを暗号化したか否かを判断する(S203)。暗号処理情報が示すデータサイズ分の対象データを暗号化した場合(S203,YES)、暗号・復号化制御部133は、ブロック暗号化処理が完了したことを示す完了フラグをセットするとともにマイクロプロセッサ11に通知し(S204)、本フローは終了となる。一方、暗号処理情報が示すデータサイズ分の対象データを暗号化していない場合(S203,NO)、暗号・復号化部134は、暗号処理情報に基づいて対象データの1ブロック分を暗号化するステップS201の処理を行う。
【0028】
次に、実施の形態に係るブロック暗号化処理におけるアンスケジュール処理の動作について説明する。図5は、実施の形態に係るブロック暗号化処理におけるアンスケジュール処理の動作を示すフローチャートである。ステップS108における暗号処理情報を取得する処理後、暗号・復号化部134は、暗号処理情報に基づいて対象データの1ブロック分を暗号化する(S301)。1ブロックの暗号化後、暗号・復号化部134は、対象データの1ブロック分を暗号化した暗号化データを暗号処理情報が示すRAM12の領域に格納するとともに完了したことを暗号・復号化制御部133に通知する(S302)。通知後、暗号・復号化制御部133は、スケジュールキュー131に暗号処理情報が入力されていない空の状態であるか否かを判断する(S303)。
【0029】
暗号処理情報が入力されていない場合(S303,YES)、暗号・復号化制御部133は、暗号処理情報が示すデータサイズ分の対象データを暗号化したか否かを判断する(S304)。暗号処理情報が示すデータサイズ分の対象データを暗号化した場合(S304,YES)、暗号・復号化制御部133は、ブロック暗号化処理が完了したことを示す完了フラグをセットするとともにマイクロプロセッサ11に通知し(S305)、本フローは終了となる。一方、暗号処理情報が示すデータサイズ分の対象データを暗号化していない場合(S304,NO)、暗号・復号化部134は、暗号処理情報に基づいて対象データの1ブロック分を暗号化するステップS301の処理を行う。
【0030】
ステップS303において、暗号処理情報が入力されている場合(S303,NO)、暗号・復号化制御部133は、暗号・復号化部134が暗号化しているブロックの処理後に暗号化を中断させる(S306)。中断後、暗号・復号化制御部133は、暗号化したブロックの前後における対象データの格納領域、暗号化の鍵情報、ブロックチェーンのための暗号データ等を示す暗号処理連続情報をRAM12に一時的に退避させる(S307)。なお、暗号処理連続情報を退避させる場所はRAM12に限定するものではなく、暗号・復号化制御部133または暗号・復号化部134に記憶部を設け、この記憶部に格納させるようにしてもよい。
【0031】
退避後、暗号・復号化制御部133は、スケジュールキュー131から暗号処理情報を取得し(S308)、暗号・復号化部134に対しステップS107のスケジュール処理を実行させる。アンスケジュールキュー132に入力された暗号処理情報が示すデータは、スケジュールキュー131に入力された暗号処理情報が示すデータより優先度が低いと判断される。これは、スケジュール期間において取得される対象データは、制御周期毎に送信する必要がある優先度の高いデータと判断され、アンスケジュール期間において取得される対象データは、制御周期毎に送信する必要のない優先度の低いデータであると判断されるためである。このため、アンスケジュールキュー132に入力された暗号処理情報に基づいた対象データの暗号化に先んじてスケジュールキュー131に入力された暗号処理情報が示す優先度の高い対象データを暗号化する。スケジュール処理実行後、暗号・復号化制御部133は、退避していた暗号処理連続情報をRAM12から取得し(S309
)、ステップS304における暗号処理情報が示すデータサイズ分の対象データを暗号化したか否かを判断する処理へ移行する。
【0032】
なお、実施の形態において、ステップS101にてマイクロプロセッサ11が対象データをRAM12に格納後にスケジュール期間であるか否かの判断を行っているが、RAM12への対象データの格納前にスケジュール期間であるか否かの判断を行ってもよい。
【0033】
実施の形態に係るブロック復号化処理は、ブロック暗号化処理と比べると暗号処理情報に代わり復号処理情報に基づいて対象データの1ブロック毎に復号化を行う処理であり、詳細な動作はブロック暗号化処理と同様となるため、説明は省略する。
【0034】
次に、実施の形態に係るブロックハッシュ演算処理の動作について説明する。ブロックハッシュ演算処理は、基本的にはブロック暗号化処理と同様の動作となる。図6は、実施の形態に係るブロックハッシュ演算処理の動作を示すフローチャートである。マイクロプロセッサ11は、暗号・復号化制御部133からブロック暗号化処理の完了を示す通知を取得する(S401)。取得後、マイクロプロセッサ11は、スケジュール期間であるか否かを判断する(S402)。スケジュール期間である場合(S402,YES)、マイクロプロセッサ11は、ハッシュ処理情報をスケジュールキュー141に入力し(S403)、スケジュール期間でない場合(S402,NO)、ハッシュ処理情報をアンスケジュールキュー142に入力する(S404)。入力後、ハッシュ演算制御部143は、スケジュールキュー141にハッシュ処理情報が入力されていない空の状態であるか否かを判断する(S405)。
【0035】
ハッシュ処理情報が入力されている場合(S405,NO)、ハッシュ演算制御部143は、スケジュールキュー141からハッシュ処理情報を取得し(S406)、ハッシュ演算部144へ出力する。ハッシュ処理情報が入力されたハッシュ演算部144は、後述するスケジュール処理を実行し(S407)、本フローは終了となる。一方、ハッシュ処理情報が入力されていない場合(S405,YES)、ハッシュ演算制御部143は、アンスケジュールキュー142からハッシュ処理情報を取得し(S408)、ハッシュ演算部144へ出力する。ハッシュ処理情報が入力されたハッシュ演算部144は、ハッシュ処理情報に基づいて後述するアンスケジュール処理を実行し(S409)、本フローは終了となる。
【0036】
次に、実施の形態に係るブロックハッシュ演算処理におけるスケジュール処理の動作について説明する。図7は、実施の形態に係るブロックハッシュ演算処理におけるスケジュール処理の動作を示すフローチャートである。ステップS406におけるハッシュ処理情報を取得する処理後、ハッシュ演算部144は、ハッシュ処理情報に基づいて対象データの1ブロック分をハッシュ演算する(S501)。1ブロックのハッシュ演算後、ハッシュ演算部144は、対象データの1ブロック分をハッシュ演算して作成したハッシュデータをハッシュ処理情報が示すRAM12の領域に格納するとともに完了したことをハッシュ演算制御部143に通知する(S502)。
【0037】
通知後、ハッシュ演算制御部143は、ハッシュ処理情報が示すデータサイズ分の暗号化データをハッシュ演算したか否かを判断する(S503)。ハッシュ処理情報が示すデータサイズ分の暗号化データをハッシュ演算した場合(S503,YES)、ハッシュ演算制御部143は、ブロックハッシュ演算処理が完了したことを示す完了フラグをセットするとともにマイクロプロセッサ11に通知し(S504)、本フローは終了となる。一方、ハッシュ処理情報が示すデータサイズ分の暗号化データをハッシュ演算していない場合(S503,NO)、ハッシュ演算部144は、ハッシュ処理情報に基づいて対象データの1ブロック分をハッシュ演算するステップS501の処理を行う。
【0038】
次に、実施の形態に係るブロックハッシュ演算処理におけるアンスケジュール処理の動作について説明する。図8は、実施の形態に係るブロックハッシュ演算処理におけるアンスケジュール処理の動作を示すフローチャートである。ステップS408におけるハッシュ処理情報を取得する処理後、ハッシュ演算部144は、ハッシュ処理情報に基づいて暗号化データの1ブロック分をハッシュ演算する(S601)。1ブロックのハッシュ演算後、ハッシュ演算部144は、暗号化データの1ブロック分をハッシュ演算して作成したハッシュデータをハッシュ処理情報が示すRAM12の領域に格納するとともに完了したことをハッシュ演算制御部143に通知する(S602)。通知後、ハッシュ演算制御部143は、スケジュールキュー141にハッシュ処理情報が入力されていない空の状態であるか否かを判断する(S603)。
【0039】
ハッシュ処理情報が入力されていない場合(S603,YES)、ハッシュ演算制御部143は、ハッシュ処理情報が示すデータサイズ分の暗号化データをハッシュ演算したか否かを判断する(S604)。ハッシュ処理情報が示すデータサイズ分の暗号化データをハッシュ演算した場合(S604,YES)、ハッシュ演算制御部143は、ブロックハッシュ演算処理が完了したことを示す完了フラグをセットするとともにマイクロプロセッサ11に通知し(S605)、本フローは終了となる。一方、ハッシュ処理情報が示すデータサイズ分の暗号化データをハッシュ演算していない場合(S604,NO)、ハッシュ演算部144は、ハッシュ処理情報に基づいて対象データの1ブロック分を暗号化するステップS601の処理を行う。
【0040】
ステップS603において、ハッシュ処理情報が入力されている場合(S603,NO)、ハッシュ演算制御部143は、ハッシュ演算部144がハッシュ演算しているブロックの処理後にハッシュ演算を中断させる(S606)。中断後、ハッシュ演算制御部143は、ハッシュ演算したブロックの前後における暗号化データの格納領域、鍵情報、ハッシュ演算結果等を示すハッシュ処理連続情報をRAM12に一時的に退避させる(S607)。なお、ハッシュ処理連続情報を退避させる場所はRAM12に限定するものではなく、ハッシュ演算制御部143またはハッシュ演算部144に記憶部を設け、この記憶部に格納させるようにしてもよい。
【0041】
退避後、ハッシュ演算制御部143は、スケジュールキュー141からハッシュ処理情報を取得し(S608)、ハッシュ演算部144に対しステップS407のスケジュール処理を実行させる。アンスケジュールキュー142に入力されたハッシュ処理情報が示すデータは、スケジュールキュー141に入力されたハッシュ処理情報が示すデータより優先度が低いと判断される。これは、スケジュール期間において取得される対象データは、制御周期毎に送信する必要がある優先度の高いデータと判断され、アンスケジュール期間において取得される対象データは、制御周期毎に送信する必要のない優先度の低いデータであると判断されるためである。このため、アンスケジュールキュー142に入力されたハッシュ処理情報に基づいた暗号化データのハッシュ演算に先んじてスケジュールキュー141に入力されたハッシュ処理情報が示す優先度の高い暗号化データをハッシュ演算する。スケジュール処理実行後、ハッシュ演算制御部143は、退避していたハッシュ処理連続情報をRAM12から取得し(S609)、ステップS604におけるハッシュ処理情報が示すデータサイズ分の暗号化データをハッシュ演算したか否かを判断する処理へ移行する。
【0042】
なお、ブロック暗号化処理およびブロックハッシュ演算処理において、スケジュールキュー131および141に入力された暗号処理情報およびハッシュ処理情報等の処理情報に基づいた暗号化およびハッシュ演算は、1ブロック毎に行うとした。しかしながら、スケジュールキュー131および141に入力された処理情報に基づいた暗号化およびハッ
シュ演算においては、1ブロック毎に処理を行なわず、データサイズ分を一括して処理するようにしてもよい。
【0043】
図9は、実施の形態に係るブロック暗号化処理およびブロックハッシュ演算処理の動作タイミングを説明するための図である。図9を用いて、スケジュール期間中に送信される優先度の高いデータとしてセンサデータS1およびS2を送信し、アンスケジュール期間中に送信される優先度の低いデータとして、センサデータS1およびS2より大きいデータサイズの画像データU1を送信する場合を説明する。図9に示される上段は、マイクロプロセッサ11が実行する処理を示し、中断は暗号・復号化アクセラレータ13が実行する処理を示す。また、下段はハッシュ演算アクセラレータ14が実行する処理を示し、図9における横軸は時間の経過を示す。スケジュール期間Aにおいて、センサ2からの入力がA/D変換されたセンサデータS1に対しブロック暗号化処理Sb1が行われる。ブロック暗号化処理後、センサデータS1が暗号化された暗号化データに対し、ブロックハッシュ演算処理Sb1が行われる。ブロックハッシュ演算処理後、暗号化データに対しブロックハッシュ演算処理にて作成されたハッシュデータが付加され、IPネットワーク上に送信される送信処理S11が行われる。
【0044】
アンスケジュール期間Aにおいて、イメージ処理部17から取得された画像データU1に対しブロック暗号化処理が行われる。画像データU1の1ブロックに対しそれぞれ暗号化が行われるため、暗号化は、複数の暗号化Ub1〜Ubnに分割され実行される。次に、暗号化Ub1〜Ubnにより作成された暗号化データに対しブロックハッシュ演算処理が行われる。ハッシュ演算においても暗号化と同様、複数のハッシュ演算Ub1〜Ubmに分割され実行される。ハッシュ演算Ub2は、アンスケジュール期間Aからスケジュール期間Bに跨いでいるが、ハッシュ処理情報がスケジュールキュー141に入力されるまでハッシュ演算は実行される。
【0045】
ここで、ブロックハッシュ演算処理が行われている最中にスケジュール期間Bに入っているため、センサ2からの入力がA/D変換されたセンサデータS2に対しブロック暗号化処理Sb2が実行される。ブロック暗号化処理Sb2が完了し、ハッシュ処理情報がスケジュールキュー141に入力されると、ハッシュ演算が行われているブロックの処理後にブロックハッシュ演算処理が中断される。ここでは、ハッシュ演算Ub3を終えた時点でブロックハッシュ演算処理が中断される。中断後、センサデータS2の暗号化データに対しブロックハッシュ演算処理Sb2が実行される。ハッシュ演算Sb2後、センサデータS2の暗号化データに対しブロックハッシュ演算処理Sb2にて作成されたハッシュデータが付加され、IPネットワーク上に送信される送信処理S21が行われる。画像データU1のハッシュ演算Ub4は、ブロックハッシュ演算処理Sb2が終了した時点で再開され、ハッシュ演算Ubmまで実行される。ハッシュ演算Ub1〜Ubm後、画像データU1の暗号化データに対しハッシュ演算Ub1〜Ubmにて作成されたハッシュデータが付加され、IPネットワーク上に送信される送信処理U11が行われる。
【0046】
以上のように、センサデータS2には、アンスケジュール期間Aでのハッシュ演算Ub1〜Ubnがスケジュール期間Bに跨ったとしても、ハッシュ演算Ub1〜Ubnが終了するのを待つことなくブロックハッシュ演算処理Sb2が行われる。また、送信処理S11および送信処理S21からなる送信周期は、制御周期と等しくなる。なお、実施の形態における暗号・復号化アクセラレータ14は、AESに基づいてブロック暗号化処理を行っているため、例えばコントローラ5および操作監視装置6が送信先であっても問題なく送信されたデータを復号化することができる。
【0047】
次に、比較例として本発明を適用しないデータ送信装置の構成と、後述する一括暗号化処理および一括ハッシュ演算処理の動作タイミングを説明する。図10は、本発明を適用
しないデータ送信装置の構成を示すブロック図である。図10に示すように、データ送信装置7は、データ送信装置1と比べ、マイクロプロセッサ11に代わりマイクロプロセッサ71を有する。また、暗号・復号化アクセラレータ13に代わり、対象データを1ブロック毎に暗号化せず、データサイズ分を一括して暗号化する一括暗号化処理および一括して復号化する一括復号化処理を行う暗号・復号化アクセラレータ72を有する。また、ハッシュ演算アクセラレータ14に代わり、暗号化データを1ブロック毎にハッシュ演算せず、データサイズ分を一括してハッシュ演算する一括ハッシュ演算処理を行うハッシュ演算アクセラレータ73を有する。マイクロプロセッサ71は、プログラムおよびパラメータ等のデータが格納されているROM711を有し、暗号・復号化アクセラレータ72およびハッシュ演算アクセラレータ73と協働して、一括暗号化処理および一括ハッシュ演算処理を実行する。
【0048】
図11は、本発明を適用しないデータ送信装置が行う一括暗号化処理および一括ハッシュ演算処理の動作タイミングを説明するための図である。図11に示されるように、画像データU1の一括ハッシュ演算処理Ua1中にスケジュール期間Bに入ると、センサデータS2の一括ハッシュ演算処理Sa2が待たされ、センサデータS2の送信処理S21が遅れる。このことから、画像データU1のような大容量のデータサイズを有するデータに対し一括暗号化処理および一括復号化処理を行うと、送信周期が制御周期と比べ大きくなる。一方、実施の形態におけるブロック暗号化処理およびブロックハッシュ演算処理によれば、画像データU1のような大容量のデータサイズを有するデータであっても送信周期および制御周期に影響を与えることなく処理が行われる。
【0049】
なお、実施の形態において、データ送信装置1が暗号・復号化アクセラレータ13およびハッシュ演算アクセラレータ14を有すると説明を行ったが、この2つのアクセラレータを必ず有する必要はない。例えば、データ送信装置1において暗号・復号化アクセラレータ13とハッシュ演算アクセラレータ73を有するようにし、ブロック暗号化処理後に一括ハッシュ演算処理を行うようにしてもよい。
【0050】
実施の形態によれば、対象データおよび暗号化データを1ブロック毎に暗号化およびハッシュ演算を行うことで暗号化およびハッシュ演算を複数の処理ブロックに分割できる。また、暗号化およびハッシュ演算を複数の処理ブロックに分割することにより、スケジュール期間およびアンスケジュール期間に基づくデータの優先度に従って、暗号化およびハッシュ演算の中断および復帰を行うことができる。このことから、センサデータ等のスケジュール期間に送信される優先度の高いデータを、画像データ等のアンスケジュール期間に送信される優先度の低いデータに先んじて送信することができ、制御周期に影響を与えることなく、大容量のデータ送信を可能にする効果を奏する。また、暗号・復号化アクセラレータおよびハッシュ演算アクセラレータを2系統持つことなく、上述した効果を奏することができる。
【0051】
また、本発明の一態様は、制御周期毎にデータを送信するスケジュール期間において、取得されたデータがメモリ(RAM12)に格納されたか否かを判断する格納判断部(マイクロプロセッサ11)と、前記スケジュール期間内に前記取得されたデータが格納された場合、前記取得されたデータの処理内容を示す処理情報(暗号処理情報またはハッシュ処理情報)を第1格納部(スケジュールキュー131,スケジュールキュー141)に入力し、前記スケジュール期間外(アンスケジュール期間)に前記取得されたデータが格納された場合、前記処理情報を第2格納部(アンスケジュールキュー132,アンスケジュールキュー142)に入力する入力部(マイクロプロセッサ11)と、前記第1格納部または前記第2格納部に入力された処理情報に基づいて、前記取得されたデータに対して所定の処理(ブロック暗号化処理,ブロックハッシュ演算処理)を施して通信データとして送信する処理実行部(マイクロプロセッサ11,暗号・復号化部134,ハッシュ演算部
144)と、前記第2格納部に入力された処理情報に対応するデータ(優先度の低いデータ,画像データ)についての処理を複数のブロックに分割する分割部(暗号・復号化部134,ハッシュ演算部144)と、前記処理実行部による前記第2格納部に入力された処理情報に対応するデータの処理中に、前記第1格納部に前記処理情報が入力された場合、前記処理実行部により処理が行われているブロック以後に処理されるブロックに先んじて前記第1格納部に入力された処理情報に対応するデータを処理させる優先制御部(暗号・復号化制御部133およびハッシュ演算制御部143)とを有する。
【0052】
請求項1に記載の処理実行部は、実施の形態におけるマイクロプロセッサ11、暗号・復号化部134およびハッシュ演算部144に対応する。また、分割部は、実施の形態における暗号・復号化部134およびハッシュ演算部144に対応する。また、優先制御部は、実施の形態における暗号・復号化制御部133およびハッシュ演算制御部143に対応する。また、ブロックは、実施の形態における処理ブロックに対応する。請求項3に記載の検出データは、実施の形態におけるセンサデータに対応し、撮像データは、実施の形態における画像データに対応する。
【0053】
本発明は、その精神または主要な特徴から逸脱することなく、他の様々な形で実施することができる。そのため、前述の実施の形態は、あらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には、何ら拘束されない。更に、特許請求の範囲の均等範囲に属する全ての変形、様々な改良、代替および改質は、全て本発明の範囲内のものである。
【符号の説明】
【0054】
1 データ送信装置、
2 センサ、
3 イメージセンサ、
11 マイクロプロセッサ、
12 RAM、
13 暗号・復号化アクセラレータ、
14 ハッシュ演算アクセラレータ、
15 IPネットワーク通信I/F、
16 A/D変換部、
17 イメージ処理部、
18 バス、
111 ROM、
131、141 スケジュールキュー、
132、133 アンスケジュールキュー、
133 暗号・復号化制御部、
134 暗号・復号化部、
143 ハッシュ演算制御部、
144 ハッシュ演算部。

【特許請求の範囲】
【請求項1】
取得されたデータに対して所定の処理を施して通信データとして送信する処理実行部と、
送信すべき優先度の高いデータに対する優先度の低いデータについての処理を複数のブロックに分割する分割部と、
前記処理実行部による前記優先度が低いデータについての処理中に、前記優先度の高いデータを取得した場合、前記処理実行部により処理が行われているブロック以後に処理されるブロックに先んじて前記優先度の高いデータを処理させる優先制御部と、
を備えるデータ送信装置。
【請求項2】
前記優先度の高いデータは、制御周期毎に前記通信データを送信するスケジュール期間において取得されるデータであり、前記優先度の低いデータは、制御周期毎に前記通信データを送信する必要のないアンスケジュール期間において取得されるデータである請求項1に記載のデータ送信装置。
【請求項3】
前記優先度の高いデータは、センサから出力される検出データであり、前記優先度の低いデータは、イメージセンサから出力される撮像データである請求項1または請求項2に記載のデータ送信装置。
【請求項4】
前記所定の処理は、前記取得されたデータを暗号化する暗号化処理または暗号化されたデータに対しハッシュの作成を行うハッシュ演算処理の少なくともいずれか一方である請求項1乃至請求項3のいずれかに記載のデータ送信装置。
【請求項5】
処理するべき優先度の高いデータに対する優先度の低いデータについての処理を複数のブロックに分割し、
前記分割されたブロックについての処理中に、前記優先度の高いデータを取得した場合、処理が行われているブロック以後に処理されるブロックに先んじて前記優先度の高いデータを処理し、
通信データとして送信するデータ送信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2010−283635(P2010−283635A)
【公開日】平成22年12月16日(2010.12.16)
【国際特許分類】
【出願番号】特願2009−135741(P2009−135741)
【出願日】平成21年6月5日(2009.6.5)
【出願人】(000006507)横河電機株式会社 (4,443)
【Fターム(参考)】