(57)【要約】【課題】  マルチスレッド環境で、データ処理を行う場合に、効率的かつ安定的にデータ処理を行う。【解決手段】  １又は複数のスレッドを生成し、スレッドを用いて、処理データに対して暗号キーに基づく暗号化又は復号のデータ処理を行う手段と、スレッドからの依頼に基づいて、暗号キーに基づく擬似乱数の生成を行う擬似乱数生成手段と、擬似乱数生成手段が処理に用いるキャッシュ領域を１又は複数保持し、スレッドに割り当てる手段とを備え、それぞれのスレッドは、擬似乱数生成手段に暗号キーに基づく擬似乱数の生成を依頼する際に、当該スレッドに割り当てられたキャッシュ領域を指定し、擬似乱数生成手段は、スレッドから指定されたキャッシュ領域を利用して擬似乱数生成処理を行うことを特徴とする。【選択図】      図１
2013205779.tif 000002
【特許請求の範囲】
【請求項１】
１又は複数のスレッドを生成し、上記スレッドを用いて、暗号キーに基づく暗号化又は復号のデータ処理を処理データに対して行うデータ処理手段と、
上記スレッドからの依頼に基づいて、暗号キーに基づく擬似乱数の生成を行う擬似乱数生成手段と、
上記擬似乱数生成手段が処理に用いる１又は複数のキャッシュ領域を、上記スレッドに割り当てるキャッシュ領域管理手段とを備え、
それぞれの上記スレッドは、上記擬似乱数生成手段に暗号キーに基づく擬似乱数の生成を依頼する際に、当該スレッドに割り当てられたキャッシュ領域を指定し、
上記擬似乱数生成手段は、上記スレッドから指定されたキャッシュ領域を利用して擬似乱数生成処理を行う
ことを特徴とするデータ処理装置。
【請求項２】
上記キャッシュ領域には、少なくとも暗号キーと、上記データ処理手段が当該暗号キーに基づいて生成した、擬似乱数の生成に用いるテーブル情報とが格納されることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
コンピュータを
１又は複数のスレッドを生成し、上記スレッドを用いて、暗号キーに基づく暗号化又は復号のデータ処理を処理データに対して行うデータ処理手段と、
上記スレッドからの依頼に基づいて、暗号キーに基づく擬似乱数の生成を行う擬似乱数生成手段と、
上記擬似乱数生成手段が処理に用いる１又は複数のキャッシュ領域を、上記スレッドに割り当てるキャッシュ領域管理手段として機能させ、
それぞれの上記スレッドは、上記擬似乱数生成手段に暗号キーに基づく擬似乱数の生成を依頼する際に、当該スレッドに割り当てられたキャッシュ領域を指定し、
上記擬似乱数生成手段は、上記スレッドから指定されたキャッシュ領域を利用して擬似乱数生成処理を行う
ことを特徴とするデータ処理プログラム。
【請求項４】
送信又は受信するデータについて暗号化又は復号のデータ処理を行うデータ処理装置を備える通信装置において、
上記データ処理装置として請求項１又は２に記載のデータ処理装置を適用したこと
を特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ処理装置及びプログラム、並びに、通信装置に関し、例えば、マルチスレッド環境でデータ処理を行う無線通信装置に適用し得る。
【背景技術】
【０００２】
従来、センサネットワーク等で用いられるＺｉｇＢｅｅ（ＩＥＥＥ８０２．１５．４；非特許文献１）等に対応した無線通信装置では、セキュア通信（暗号通信）にＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）方式の暗号を採用している。ＡＥＳに基づくデータ処理（暗号化処理又は復号処理）では、暗号キーに基づく擬似乱数が利用される。そして、ＡＥＳをセキュア通信に採用した無線通信装置では、ＡＥＳの擬似乱数を高速に算出するために、暗号キーから暗号キーテーブルを生成し、その暗号キーテーブルを参照して擬似乱数を生成するのが一般的である。
【０００３】
上述のＡＥＳ処理に基づくデータ処理で利用される暗号キーテーブルは、暗号キー固有の内容である。よって、ＡＥＳに基づくデータ処理を行う場合、暗号キーテーブルおよびそれを生成する際に利用した暗号キーをキャッシュしておけば、同じ暗号キーに基づく擬似乱数生成を行う場合、暗号キーテーブルの生成を省略し、必要な処理量を低減することができる。ＡＥＳをセキュア通信に採用した無線通信装置では、セキュア通信のたびに暗号キーに基づいた擬似乱数を生成する処理が実施される。よって、ＡＥＳをセキュア通信に採用した無線通信装置において、暗号キーテーブルの生成時間が短縮されることは通信時間の短縮につながり非常に有用である。
【先行技術文献】
【特許文献】
【０００４】
【非特許文献１】ＩＥＥＥ  Ｓｔｄ  ８０２．１５．４−２００６
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のＺｉｇＢｅｅに対応した無線通信装置では、アプリケーションの動作や開発の効率化のために、データ処理（上述の擬似乱数生成処理を含むデータ処理等）を実行するプラットフォーム（ＯＳ等のミドルウェア）として、マルチスレッドの環境が採用される場合がある。しかし、ＺｉｇＢｅｅに対応した無線通信装置（特にセンサネットワークを構成する無線通信装置）では、省電力化が求められることが多く、少ないリソース（処理量やメモリ量等）で、データ処理を実現することが望ましい。そこで、従来のＺｉｇＢｅｅに対応した無線通信装置では、通信処理の中でも多くのリソースを消費する擬似乱数の生成処理について、並列的に実行する数を制限する場合がある。すなわち、ＺｉｇＢｅｅに対応した無線通信装置では、各スレッド間で、擬似乱数を生成する処理を実行するプログラム（以下、「ＡＥＳ処理部」とも呼ぶ）自体をリソースとして管理する必要がある。
【０００６】
上述の通り、従来のＺｉｇＢｅｅに対応した無線通信装置では、マルチスレッド環境で動作する場合があるが、通常マルチスレッド環境でリソース管理するＯＳでは、各スレッドの優先順位に基づいてリソースを割り当てる。また、従来のＺｉｇＢｅｅに対応した無線通信装置では、場合によって優先度の低い第１のスレッドが利用中のリソース（例えば、ＡＥＳ処理部）を、より優先度の高い第２のスレッドに振替える割り込み制御を行う場合がある。
【０００７】
従来のＺｉｇＢｅｅに対応した無線通信装置において、上述のようなＡＥＳ処理部をリソースとする割込み制御が発生すると、第２のスレッドが解放した後のＡＥＳ処理部では、キャッシュの内容が第２のスレッドのものに書き換えられている。したがって、上述のような場合、第１のスレッドで処理を再開すると、正しい擬似乱数が生成できないという不具合が発生するおそれがある。
【０００８】
従来のＺｉｇＢｅｅに対応した無線通信装置においては、このような不具合に対して、セマフォ等を用いてリソースとしてのＡＥＳ処理部を管理し、実質的に上述のような割込み制御が発生しない構成とすることも考えられる。しかし、その場合、優先度の低い第１のスレッドが一旦ＡＥＳ処理部の利用権限を取得してしまうと、優先度の高い第２のスレッドが実行可能状態となっても、第１のスレッドの処理が終わるまで待機しなければならず、本来優先的に処理されなければならない第２のスレッドの処理が遅れて、無線通信装置における通信品質が低下してしまうおそれがある。
【０００９】
そのため、マルチスレッド環境で、データ処理を行う場合に、効率的かつ安定的にデータ処理を行うことができるデータ処理装置及びプログラム、並びに、通信装置が望まれている。
【課題を解決するための手段】
【００１０】
第１の本発明のデータ処理装置は、（１）１又は複数のスレッドを生成し、上記スレッドを用いて、暗号キーに基づく暗号化又は復号のデータ処理を処理データに対して行うデータ処理手段と、（２）上記スレッドからの依頼に基づいて、暗号キーに基づく擬似乱数の生成を行う擬似乱数生成手段と、（３）上記擬似乱数生成手段が処理に用いる１又は複数のキャッシュ領域を、上記スレッドに割り当てるキャッシュ領域管理手段とを備え、（４）それぞれの上記スレッドは、上記擬似乱数生成手段に暗号キーに基づく擬似乱数の生成を依頼する際に、当該スレッドに割り当てられたキャッシュ領域を指定し、（５）上記擬似乱数生成手段は、上記スレッドから指定されたキャッシュ領域を利用して擬似乱数生成処理を行う。
【００１１】
第２の本発明のデータ処理プログラムは、コンピュータを、（１）１又は複数のスレッドを生成し、上記スレッドを用いて、暗号キーに基づく暗号化又は復号のデータ処理を処理データに対して行うデータ処理手段と、（２）上記スレッドからの依頼に基づいて、暗号キーに基づく擬似乱数の生成を行う擬似乱数生成手段と、（３）上記擬似乱数生成手段が処理に用いる１又は複数のキャッシュ領域を、上記スレッドに割り当てるキャッシュ領域管理手段として機能させ、（４）それぞれの上記スレッドは、上記擬似乱数生成手段に暗号キーに基づく擬似乱数の生成を依頼する際に、当該スレッドに割り当てられたキャッシュ領域を指定し、（５）上記擬似乱数生成手段は、上記スレッドから指定されたキャッシュ領域を利用して擬似乱数生成処理を行うことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、マルチスレッド環境で、データ処理を行う場合に、効率的かつ安定的にデータ処理を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係るデータ処理部を備える無線通信装置の機能的構成について示したブロック図である。
【図２】実施形態に係る無線通信装置を備える通信システムの全体構成について示したブロック図である。
【図３】実施形態に係るデータ処理部を構成するスレッド管理テーブルの構成例について示した説明図である。
【図４】実施形態に係るデータ処理部の動作の遷移について示した説明図である。
【図５】実施形態に係るデータ処理部を構成するスレッド管理テーブルの遷移について示した説明図である。
【発明を実施するための形態】
【００１４】
（Ａ）主たる実施形態
以下、本発明によるデータ処理装置及びプログラム、並びに、通信装置の一実施形態を、図面を参照しながら詳述する。この実施形態のデータ処理装置はデータ処理部である。またこの実施形態の通信装置は、無線通信装置である。
【００１５】
（Ａ−１）実施形態の構成
図２は、この実施形態の通信装置１０を備える通信システム１の全体構成を示すブロック図である。
【００１６】
図２では、通信システム１に、３台の無線通信装置１０（１０−１〜１０−３）が配置されている。ただし、通信システム１において配置される無線通信装置１０の数や、接続構成については限定されないものである。
【００１７】
この実施形態では、無線通信装置１０は、ＺｉｇＢｅｅ（ＩＥＥＥ  ８０２．１５．４；非特許文献１参照）に基づく無線通信が可能な構成を備えた通信装置であり、相互に無線通信可能な構成であるものとして説明する。
【００１８】
次に、無線通信装置１０の内部構成について、図１を用いて説明する。この実施形態では、各無線通信装置１０の内部構成は、全て同じであるものとして説明するが、異なる構成としても良い。また、この実施形態では、通信システム１を構成する全ての無線通信装置が本発明を適用した無線通信装置１０であるものとして説明するが、一部について従来の無線通信装置に置き換えるようにしても良い。
【００１９】
図１に示すように、無線通信装置１０は、信号送受信部２０、制御部３０、データ処理部４０を有している。
【００２０】
信号送受信部２０は、他の無線通信装置と無線通信するためのネットワークインタフェースの機能を担っている。
【００２１】
制御部３０は、無線通信装置１０における各種情報処理や制御処理（各構成要素の制御や通信制御処理を含む）を行う機能等を担っている。制御部３０は、送受信するデータのデータ処理（送信データの暗号化処理や受信データの復号処理）をデータ処理部４０に依頼する処理も行う。
【００２２】
データ処理部４０は、制御部３０からの依頼に基づいて、データ処理（暗号化処理及び復号処理）を行うものである。データ処理部４０が対応する暗号アルゴリズムについては限定されないものであるが、この実施形態では、ＡＥＳ方式のアルゴリズムに基づいてデータ処理を行うものとして説明する。なお、無線通信装置１０において、データ処理部４０以外の構成については、既存の無線通信装置の種々の構成を適用することができる。
【００２３】
データ処理部４０では、一部又は全部の処理についてハードウェア的に（例えば、専用チップ等を用いた処理）実現しても良いが、この実施形態では、全てソフトウェア的に構成されているものとして説明する。すなわち、データ処理部４０は、プロセッサやメモリ等のプログラムの実施構成に、実施形態のデータ処理プログラム等をインストールすることにより実現することができる。その場合でも、データ処理部４０内部の機能的構成（概念的構成）については図１のように示すことができる。また、データ処理部４０については、無線通信装置１０の他の構成要素（例えば、制御部３０）とプログラムの実施構成を共用する（例えば、プロセッサやメモリを共用する）ようにしてもよいし、データ処理部４０が独自のハードウェアを備えるようにしても良い。
【００２４】
データ処理部４０では、制御部３０から依頼されたデータ処理をスレッド単位で実行する。データ処理部４０では、制御部３０からデータ処理を依頼されると、そのデータ処理を実行するスレッドとして１つのスレッド処理部４１を生成して、そのスレッド処理部４１にデータ処理を実行させる。また、データ処理部４０では、スレッド処理部４１を生成する際に当該スレッド処理部４１に対応するＡＥＳ処理のキャッシュ領域として、ＡＥＳキャッシュ４２を割り当てる。
【００２５】
データ処理部４０では、複数のスレッド処理部４１を同時に実行可能であり、図１では、Ｎ個のスレッド処理部４１（４１−１〜４１−Ｎ）及びＡＥＳキャッシュ４２（４２−１〜４２−Ｎ）が生成された状態について示している。
【００２６】
ＡＥＳ処理部４３は、スレッド処理部４１の依頼に応じて、ＡＥＳ処理（暗号キーに基づいた擬似乱数を生成する処理）を行い、生成した擬似乱数のデータを返答するものである。ＡＥＳ処理部４３は、スレッド処理部４１から指示されたＡＥＳキャッシュ４２に格納された暗号キーに基づいて、スレッド処理部４１から指示されたＡＥＳキャッシュ４２を作業領域（ワークメモリ）として暗号キーテーブルを生成し、生成した暗号キーテーブルに基づいた疑似乱数のデータを得る。ただし、ＡＥＳ処理部４３は、利用するＡＥＳキャッシュ４２に、既に暗号キーテーブルのデータが登録されている場合には、暗号キーテーブルの生成を省略して、その暗号キーテーブルを利用した擬似乱数の生成を行う。
【００２７】
ＡＥＳ情報キャッシュ１４は、ＡＥＳ処理部４３のＡＥＳ処理で用いるデータを、保持するキャッシュ領域である。上述の通り、ＡＥＳ情報キャッシュ１４は、ＡＥＳ処理部４３が暗号キーに基づいた擬似乱数を生成する際に利用するキャッシュ領域として利用されるものである。個々のＡＥＳ情報キャッシュ１４は、例えば、データ処理部４０上に対応するメモリ領域を確保することにより論理的に実現するようにしても良い。１つのＡＥＳ情報キャッシュ１４には、少なくとも、１つの暗号キーと当該暗号キーに基づいて生成された暗号キーテーブルが格納される。
【００２８】
そして、この実施形態では、データ処理部４０において、暗号キーごとにＡＥＳ情報キャッシュ１４が生成されるものとして説明する。例えば、データ処理部４０において、内容が異なる２つの暗号キーＫ１、Ｋ２に基づいてデータ処理が行われた場合には、暗号キーＫ１、Ｋ２のそれぞれに対応するＡＥＳキャッシュ４２−１、４２−１が生成されることになる。そして、データ処理部４０では、一旦生成されたＡＥＳキャッシュ４２は保持され、同じ暗号キーを用いたデータ処理を行うスレッド処理部４１が発生した場合には、対応するＡＥＳキャッシュ４２が、当該スレッド処理部４１に割り当てられる。なお、データ処理部４０において、同じ暗号キーに基づいて複数のスレッド処理部４１が発生する構成となっている場合には、同じ暗号キーについて複数のＡＥＳキャッシュ４２を生成するようにしても良い。データ処理部４０において、同じ暗号キーについて複数のＡＥＳキャッシュ４２を生成する場合には、２回目以降に生成するＡＥＳキャッシュ４２に、先に生成した暗号キーテーブルをコピーするようにしても良い。
【００２９】
スレッド管理テーブル４４では、スレッド管理テーブル４４により、各スレッドに関する情報を管理している。図３は、スレッド管理テーブル４４の構成例について示した説明図である。スレッド管理テーブル４４において、各スレッドに関する情報を管理する方式については、無線通信装置のＯＳ等により採用される形式が異なるため限定されないものであるが、この実施形態では、図３のようなテーブルを用いて管理するものとして説明する。
【００３０】
図３に示すように、この実施形態のスレッド管理テーブル４４では、スレッド処理部４１の識別子を示すスレッドＩＤごとに、優先度の情報が管理されているものとする。図３では、スレッド処理部４１−１〜４１−Ｎに対応するスレッドＩＤは、それぞれＳ１、Ｓ２、Ｓ３、…、ＳＮであるものとして示している。
【００３１】
データ処理部４０では、新たなデータ処理の依頼があると、当該データ処理を行うためのスレッド処理部４１を生成して、スレッド管理テーブル４４に当該スレッドの情報を追加（行を追加）する処理を行う。そして、データ処理部４０は、あるスレッドについてデータ処理が終了すると、当該スレッドのデータ処理結果を依頼元（制御部３０）に引き渡し、スレッド管理テーブル４４から当該スレッドの情報を削除（行を削除）して処理を終了する。
【００３２】
また、図３では、優先度は数値で表わされており、少ない数値であるほど、当該スレッドの優先度が高いものとなっている。そして、データ処理部４０では、各スレッドの優先度に応じて、優先的にリソース（例えば、ＡＥＳ処理部４３）を割り当てるものとする。例えば、第１のスレッド処理部４１の依頼に基づいてＡＥＳ処理部４３が処理中に、第１のスレッド処理部４１よりも高い優先度が設定された第２のスレッド処理部４１が生成され、その第２のスレッド処理部４１でＡＥＳ処理部４３の利用が必要となった場合には、データ処理部４０は、ＡＥＳ処理部４３に対して、第１のスレッド処理部４１に関する処理を中止させて、第２のスレッド処理部４１の処理を優先させる割り込み制御を行うものとする。各スレッドに付与される優先度は、制御部３０がスレッド処理部４１に対して処理を依頼するときに付与されるものである。各スレッドに優先度を付与する方式については限定されないものであるが、例えば、リアルタイム性の高い種類のデータ（例えば防犯データ等の緊急性の高いデータ）のデータ処理については、優先度を高く設定するようにしても良い。また、例えば、本装置（内部／外部）に接続する振動センサ（図示せず）が自身など異常な揺れを検知した場合、その検知した以降に送信されてくるデータ（振動データなど）に係るデータ処理については、検知前に送信されてきたデータに係るデータ処理よりも優先度が高いように設定されてもよい。上記振動センサ以外にも温度センサ、圧力センサなどの場合も同様である。
【００３３】
また、この実施形態のデータ処理部４０は、優先度が同じスレッド間では、上述のような割り込み制御は行われないが、空きリソースについては、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）で、割り当てられるものとして説明する。例えば、ＡＥＳ処理部４３で１つのＡＥＳ処理が終了し実行可能状態となったタイミングで、２つのスレッド処理部４１（優先度は同一）がＡＥＳ処理部４３の空きを待っている場合、先に生成されたスレッド処理部４１に対して優先的にＡＥＳ処理部４３を割り当てるものとする。
【００３４】
（Ａ−２）実施形態の動作
次に、以上のような構成を有するこの実施形態の通信システム１を構成する無線通信装置１０の動作を説明する。
【００３５】
図４は、データ処理部４０内の動作状況（スレッド処理部４１及びＡＥＳキャッシュ４２の動作状況）の遷移を概念的に示した説明図である。図５は、図４に示すようにデータ処理部４０が動作した場合のスレッド管理テーブル４４の内容の遷移について示している。
【００３６】
まず、ここでは制御部３０の制御により、データ処理部４０に対して、優先度を「２」とする新たなデータ処理（暗号キーＫ１を用いてデータＤ１を暗号化する処理）が依頼されたものとする。そして、データ処理部４０では、データＤ１のデータ処理を行うためのスレッド処理部４１−１が生成される。また、データ処理部４０では、まだ暗号キーＫ１に対応するＡＥＳキャッシュ４２が生成されていないため、暗号キーＫ１に対応するＡＥＳキャッシュ４２−１を生成（確保）して、暗号キーＫ１のデータを格納し、スレッド処理部４１−１に割り当てる処理が行われる。そして、データ処理部４０では、スレッド処理部４１−１に対してスレッドＩＤとして「Ｓ１」が付与され、図５（ａ）に示すように、スレッド管理テーブル４４にスレッドＩＤをＳ１、優先度を「２」とする情報(行)が追加される。
【００３７】
そして、スレッド処理部４１−１において、ＡＥＳ処理部４３へのＡＥＳ処理の依頼が実行可能な状態になったものとする。この時点では、データ処理部４０においてＡＥＳ処理部４３を利用しようとするスレッド処理部４１が、他にないため、スレッド処理部４１−１にＡＥＳ処理部４３が割り当てられたものとする。そして、ＡＥＳ処理部４３は、スレッド処理部４１−１からの依頼に基づいて、ＡＥＳキャッシュ４２−１の暗号キーＫ１を利用して、ＡＥＳキャッシュ４２−１を作業メモリとする処理を開始したものとする。具体的には、ＡＥＳ処理部４３は、ＡＥＳキャッシュ４２−１上で、暗号キーＫ１に基づいて暗号キーテーブルＴ１を生成し、暗号キーテーブルＴ１に基づく擬似乱数生成処理を開始する。なお、この実施形態では、ＡＥＳ処理部４３は、暗号キー及び暗号キーテーブル以外の擬似乱数生成に必要な中間データ（例えば、生成途中の擬似乱数のデータ）についても、ＡＥＳキャッシュ４２の領域を用いて行い、結果をスレッド処理部４１に供給した後に消去（暗号キー及び暗号キーテーブル以外のデータを消去）する処理を行うものとする。
【００３８】
この時点のデータ処理部４０の状態は図４（ａ）に示す状態となる。図４（ａ）では、データ処理部４０内で、ＡＥＳ処理部４３が、スレッド処理部４１−１の依頼に基づいてＡＥＳ処理を行っている途中の状態を示している。
【００３９】
そして、データ処理部４０の状態が図４（ａ）、図５（ａ）に示す状態で、制御部３０からデータ処理部４０に対して、優先度を「１」とする新たなデータ処理（暗号キーＫ２を用いてデータＤ２を暗号化する処理）が依頼されたものとする。そして、データ処理部４０では、データＤ２のデータ処理を行うためのスレッド処理部４１−２が生成される。また、データ処理部４０では、まだ暗号キーＫ２に対応するＡＥＳキャッシュ４２が生成されていないため、暗号キーＫ２に対応するＡＥＳキャッシュ４２−２を生成（確保）して、暗号キーＫ２のデータを格納し、スレッド処理部４１−２に割り当てる処理が行われる。そして、データ処理部４０では、スレッド処理部４１−２に対してスレッドＩＤとして「Ｓ２」が付与され、図５（ｂ）に示すように、スレッド管理テーブル４４にスレッドＩＤをＳ２、優先度を「１」とする情報(行)が追加される。
【００４０】
そして、スレッド処理部４１−２において、ＡＥＳ処理部４３へのＡＥＳ処理の依頼が実行可能な状態になったものとする。この時点では、図５（ｂ）に示すように、現在ＡＥＳ処理部４３を利用しているＡＥＳキャッシュ４２−１（スレッドＩＤ：Ｓ１）よりも優先度が高いＡＥＳキャッシュ４２−２（スレッドＩＤ：Ｓ２）が存在するため、データ処理部４０では、ＡＥＳ処理部４３の処理を一旦中断させて、ＡＥＳ処理部４３をスレッド処理部４１−２に利用させるように割り込み制御が行われる。
【００４１】
そして、ＡＥＳ処理部４３は、スレッド処理部４１−２からの依頼に基づいて、ＡＥＳキャッシュ４２−２の暗号キーＫ２を利用して、ＡＥＳキャッシュ４２−２を作業メモリとする処理を開始したものとする。具体的には、ＡＥＳ処理部４３は、ＡＥＳキャッシュ４２−２上で、暗号キーＫ２に基づいて暗号キーテーブルＴ２を生成し、暗号キーテーブルＴ２に基づく擬似乱数生成処理を開始する。
【００４２】
この時点のデータ処理部４０の状態は図４（ｂ）に示す状態となる。図４（ｂ）では、データ処理部４０内で、ＡＥＳ処理部４３が、スレッド処理部４１−２の依頼に基づいてＡＥＳ処理を行っている途中の状態を示している。
【００４３】
そして、データ処理部４０の状態が図４（ｂ）、図５（ｂ）に示す状態で、ＡＥＳ処理部４３によるＡＥＳ処理（スレッド処理部４１−２の依頼に基づく処理）が終了（擬似乱数の生成が完了）すると、データ処理部４０では、ＡＥＳ処理部４３がリリースされる。そして、この時点では、データ処理部４０においてＡＥＳ処理部４３を利用しようとするスレッド処理部４１が、他にないため、スレッド処理部４１−１にＡＥＳ処理部４３が再度割り当てられたものとする。そして、ＡＥＳ処理部４３は、スレッド処理部４１−１からの依頼に基づいて、ＡＥＳキャッシュ４２−１の暗号キーＫ１に基づく擬似乱数生成を再開する。この時点では、前回（図４（ａ）の状態のとき）行ったＡＥＳ処理の作業途中の内容（暗号キーテーブルＴ１等）が、ＡＥＳキャッシュ４２−１に残っているため、ＡＥＳ処理部４３は、前回の続きからＡＥＳ処理を行うことができる。
【００４４】
一方、スレッド処理部４１−２では、ＡＥＳ処理部４３からＡＥＳ処理に基づく擬似乱数のデータを取得した後、その擬似乱数に基づいてデータＤ２を暗号化するデータ処理が開始される。
【００４５】
この時点のデータ処理部４０の状態は図４（ｃ）に示す状態となる。図４（ｃ）では、データ処理部４０内で、ＡＥＳ処理部４３が、スレッド処理部４１−１の依頼に基づいてＡＥＳ処理を再開した状態を示している。
【００４６】
そして、その後、スレッド処理部４１−２は、データＤ２のデータ処理（暗号化処理）が終了すると、そのデータ処理後のデータ（暗号化データ）を制御部３０に返答する。そして、データ処理部４０では、スレッド処理部４１−２が消去（スレッドを終了）される。
【００４７】
そして、スレッド処理部４１−１も同様に、ＡＥＳ処理部４３からＡＥＳ処理に基づく擬似乱数のデータを取得し、その擬似乱数に基づいてデータＤ１を暗号化するデータ処理を行う。そして、スレッド処理部４１−１は、そのデータ処理後のデータ（暗号化データ）を制御部３０に返答し、処理を終了（スレッドを終了）することになる。
【００４８】
（Ａ−３）実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
【００４９】
データ処理部４０では、複数のスレッド処理部４１（スレッド）により、ＡＥＳ処理部４３を共有して、割込み制御を伴う優先制御を行っているが、各スレッド処理部４１にはＡＥＳキャッシュ４２が個別に割り当てられているため、従来技術のような問題が発生することなく、安定的かつ効率的な（高速な）データ処理を実現することができる。
【００５０】
ところで、ＺｉｇＢｅｅ（ＩＥＥＥ８０２．１５．４）に対応する無線通信装置は、センサネットワークを構成するノードに利用されている。センサネットワークで利用されるフレームはおおむね１０バイト以下とＩＰフレームなどと比べて非常に小さいサイズである。セキュア通信において、セキュア処理（データ処理）のオーバヘッドはフレームサイズが小さいほど相対的に大きくなるので、この実施形態のように、マルチスレッド環境下で、暗号キーテーブルをキャッシュして、効率的なデータ処理を行う構成は、センサネットワークで利用する際には特に高い効果を奏する。
【００５１】
（Ｂ）他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【００５２】
（Ｂ−１）上記の実施形態では、データ処理部が行うデータ処理には、暗号化処理及び復号処理の両方が含まれているが、いずれか一方の処理だけを行う構成としても良い。すなわち、本発明のデータ処理装置を、暗号化処理装置又は復号処理装置に適用するようにしても良い。
【００５３】
（Ｂ−２）上記の実施形態では、本発明通信装置をＺｉｇＢｅｅに対応した無線通信装置に適用した例について示したが、本発明の通信装置は、本発明のデータ処理装置（データ処理部）を備えていれば、その通信方式は限定されないものであり、他の無線通信方式や有線通信の方式であっても良い。
【００５４】
（Ｂ−３）上記の実施形態では、スレッド処理部とＡＥＳキャッシュとが１対１の関係になるようにしているが、複数のスレッド処理部で１つのＡＥＳキャッシュを共用するようにしても良い。ただし、その場合には、同時に複数のスレッド処理部が１つのＡＥＳキャッシュを利用しないように、排他制御（優先制御等）が実現されている必要がある。これにより、データ処理部で必要とするメモリ使用量を低減することができる。
【００５５】
（Ｂ−４）上記の実施形態では、データ処理部は、ＡＥＳに基づくデータ処理（暗号化処理及び復号処理）を行うものとして説明したが、その他の擬似乱数を用いたブロック暗号方式のデータ処理に置き換えるようにしても良い。例えば、データ処理部において、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）やトリプルＤＥＳに基づくデータ処理を行うようにしても良い。
【００５６】
（Ｂ−５）上記の実施形態では、説明を簡易にするために、データ処理部に備えるＡＥＳ処理部は１つであるものとして説明したが、複数備えてリソース管理するようにしても良い。
【００５７】
（Ｂ−６）上記の実施形態では、本発明のデータ処理装置を、無線通信装置に搭載する例について説明したが、本発明のデータ処理装置は独立した装置として構築するようにしても良い。例えば、ＰＣやワークステーション等のコンピュータに、本発明のデータ処理プログラムをインストールしてデータ処理装置として構築するようにしても良い。
【符号の説明】
【００５８】
１…通信システム、１０、１０、１０−１〜１０−３…無線通信装置、２０…信号送受信部、３０…制御部、４０…データ処理部、４１、４１−１〜４１−Ｎ…スレッド処理部４１、４２、４２−１〜４２−Ｎ…ＡＥＳキャッシュ、４３…ＡＥＳ処理部、４４…スレッド管理テーブル。
【図１】
2013205779.tif 000003
【図２】
2013205779.tif 000004
【図３】
2013205779.tif 000005
【図４】
2013205779.tif 000006
【図５】
2013205779.tif 000007