説明

セキュア通信装置、セキュア通信方法及びプログラム

【課題】ネットワークスタック処理を含む高速暗復号認証処理を行うことができるセキュア通信装置、セキュア通信方法及びプログラムを提供すること。
【解決手段】セキュア通信装置300の暗復号認証処理制御部340は、暗復号認証処理部350から、暗復号処理又は認証処理が完了している1つ前のパケットの処理結果を取得し、1つ前のパケットのネットワークプロトコルの後半処理と次のパケットのネットワークプロトコルの前半処理とを連続して行うようにネットワークプロトコル処理部320を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュア通信装置、セキュア通信方法及びプログラムに関する。
【背景技術】
【0002】
ネットワーク上を流れる情報を暗号化するための手段としてIPセキュア通信が一般的である。IPv6においては暗号化通信を行うIPsecが標準機能としてRFC(Request For Comment)にて規格化されている。
【0003】
IPセキュア通信を行うには高負荷処理である暗復号認証処理をリアルタイムに実行する必要があるため、サーバやルータ等のように特別に高速化が求められる場合や、組み込み機器のように非力なマシンで実現する場合、暗号認証処理を行う特別なハードウェア(以後、HWエンジンと呼ぶ)を用いて実現することがある(例えば、特許文献1参照)。なお、以後ハードウェアのことをHWと略記する場合がある。
【0004】
通常、HWエンジンが暗復号認証処理を行うためには、ソフトウェアによるHWエンジンへのセットアップなどの事前処理と、HWエンジンから演算結果などを取得する事後処理が必要である。したがって、あらかじめ1つめのパケットの事後処理を済まさなければ、2つめのパケットの事前処理を行えないことが一般的である。
【0005】
特許文献2には、暗復号認証エンジン内に、暗復号ユニットと複数の認証ユニットとを搭載し、それらのユニットをパイプライン処理で動作させることで、1つめのパケットに対する、暗復号ユニットもしくは認証ユニットのどちらか一方における処理が完了した時点で、2つめに対するパケットの事前処理を行えるようにする方法が提案されている。
【0006】
図11は、HW暗号認証を行う場合の通信スタック処理を説明する図であり、図11(a)は通常の通信スタック処理を、図11(b)はHW暗号認証を行う場合の通信スタック処理を示す。
【0007】
図11において、セキュア通信装置10は、レイヤ処理1及びレイヤ処理2を実行する通信スタック部11と、受信/送信情報を一時的に格納するバッファ12と、HWエンジンにHW処理リクエストを発行して暗号認証処理を実行する暗号認証処理部13とを備えて構成される。
【0008】
図11(a)に示すように、通常の通信スタック処理では、通信スタック部11は、送信指示又は受信割込みによりバッファ12を介してレイヤ処理1及びレイヤ処理2を実行する。
【0009】
図11(b)に示すように、HW暗号認証を行う場合には、通信スタック部11は、送信指示又は受信割込みを受けると、レイヤ処理1で暗号認証処理部13に処理を指示し、暗号認証処理部13は後述するHW暗復号認証処理部14(図12)にHW処理リクエストを発行する。HW暗復号認証処理部14(図12)は、このHW処理リクエストを受け取り、HWによる暗復号認証処理を行って暗号認証処理完了の遅延処理を暗号認証処理部13を介して通信スタック部11に返す。通信スタック部11は、暗号認証処理部13による暗号認証処理結果を受け取りバッファ12を介してレイヤ処理2を実行する。
【0010】
通信スタック部11は、レイヤ処理1及びレイヤ処理2による送受信処理中、HW暗復号認証処理部14(図12)による暗復号認証処理を行う場合、前半処理と後半処理を非同期に処理する。通信スタック部11は、前半処理と後半処理とを非同期に処理することで、HW暗復号認証処理部14(図12)や図示しないネットワークデバイスの利用効率を高めることができる。
【0011】
図12は、上記暗号認証処理部13の詳細な構成を示す図である。図13は、上記暗号認証処理部13及びHW暗復号認証処理部14の動作タイミングを示すタイミングチャートである。図12及び図13中、番号(1)−(7)は処理の流れを説明するための符号である。
【0012】
図12において、セキュア通信装置10は、通信スタック部11と、暗号認証処理部13と、HWエンジンにより暗復号認証処理を実行するHW暗復号認証処理部14とを備えて構成される。また、暗号認証処理部13は、リクエスト制御部21、HW前処理部22、HW後処理部23、及びキュー24を備える。
【0013】
リクエスト制御部21は、通信スタック部11のレイヤ処理1により暗号認証処理が指示されると、そのリクエストをキュー24に積む((1)参照)。リクエスト制御部21は、HWビジーでない場合にはHW前処理部22にHW前処理を指示する((2)参照)。
【0014】
HW前処理部22は、キュー24からリクエストを取得し((3)参照)、取得したリクエストに従ってHW暗復号認証処理部14にHW処理リクエストを発行する((4)参照)。
【0015】
HW暗復号認証処理部14は、暗号認証処理部13からのHW処理リクエストに従ってHWによる暗復号認証処理を行う。HW暗復号認証処理部14は、該当HW処理リクエストによる暗復号認証処理が終わると、HW割込み信号を発生し(図13参照)、このHW割込み信号に基づく遅延処理開始指示をHW後処理部23に出力する((5)参照)。
【0016】
暗号認証処理部13は、HW暗復号認証処理部14からの遅延処理開始指示を受けてHW後処理を開始する。図13に示すように、レイヤ処理1から見て、HW前処理部22によるHW前処理が終了してHW後処理部23がHW後処理を起動するまでの時間は、HW後処理部23がHW後処理を行えない、利用できない時間となる。暗号認証処理部13は、HW暗復号認証処理部14からHW処理結果を取得して((6)参照)HW後処理を実行する。暗号認証処理部13は、HW後処理を終了すると、レイヤ処理2に後半処理を指示する。暗号認証処理部13は、レイヤ処理2を実行する。これにより、図13に示すように、キュー24から取得したリクエストによる暗号認証処理が終わり、同様にして次のHW前処理が実行される。
【特許文献1】特表2005−503699号公報
【特許文献2】米国特許第6,983,366号明細書
【発明の開示】
【発明が解決しようとする課題】
【0017】
しかしながら、このような従来のHW暗号認証方法にあっては、通信スタック部11が、前半処理と後半処理とを非同期に処理することで、HW暗復号認証処理部14やネットワークデバイスの利用効率を高めることができるものの、事前処理の前に行うべきネットワークスタック処理(以下、スタック前半処理という)と、事後処理の後に行うべきネットワークスタック処理(以下、スタック後半処理という)とが、暗復号認証処理(事前処理、HWエンジン処理、及び事後処理)で分断されるため、2つの処理は不連続で実行される。
【0018】
2つの処理が不連続で実行されると、パケットのバースト受信時に、優先度の高いスタック前半処理のみが連続実行されて後半処理がいつまでも実行されなくなってしまうことがある。このため、CPUやHWエンジンの負荷に偏りが生じ、結果的にパケット伝送のスループットが低下してしまう問題がある。
【0019】
また、事後処理やスタック後半処理を実行するためのソフトウェア遅延割り込みを起床する必要があるので、余計なオーバーヘッドが発生するという問題もある。
【0020】
例えば、図12及び図13に示すように、HWによるIPSec処理では、レイヤ処理1とレイヤ処理2のコンテキストが分断されているため、レイヤ処理1のコンテキストが終了してからレイヤ処理2のコンテキストが開始されるまで間が開き、パフォーマンスが低下してしまう。また、図13に示すように、遅延処理開始指示((5)参照)によってHW後処理部23が起動するまで次のパケットのリクエストを送信することができず、HW暗復号認証処理部14の利用効率が下がってパフォーマンスが低下したり、キューがあふれてしまう問題がある。
【0021】
本発明は、上記に鑑みてなされたものであり、処理分断によるオーバーヘッドなしに、CPUやHWエンジンの負荷の偏りが起こりにくい暗復号処理又は認証処理を行うことができ、ネットワークスタック処理を含む高速暗復号認証処理を行うことができるセキュア通信装置、セキュア通信方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0022】
本発明のセキュア通信装置は、通信パケットを送受信する通信手段と、ネットワークプロトコルの前半処理及び後半処理を行うネットワークプロトコル処理手段と、暗復号処理又は認証処理を行う暗復号認証処理手段と、前記暗復号認証処理手段から、暗復号処理又は認証処理が完了しているパケットの処理結果を取得し、前記パケットのネットワークプロトコルの後半処理と次のパケットのネットワークプロトコルの前半処理とを連続して行うように前記ネットワークプロトコル処理手段を制御する暗復号認証処理制御手段と、を備える構成を採る。
【0023】
本発明の暗号化情報通信方法は、通信パケットを送受信するステップと、ネットワークプロトコルの前半処理及び後半処理を行うネットワークプロトコル処理ステップと、暗復号処理又は認証処理を行う暗復号認証処理ステップと、暗復号処理又は認証処理が完了しているパケットの処理結果を取得し、前記パケットのネットワークプロトコルの後半処理と次のパケットのネットワークプロトコルの前半処理とを連続して行うように制御する制御ステップとを有する。
【0024】
また他の観点から、本発明は、上記セキュア通信方法の各ステップをコンピュータに実行させるためのプログラムである。
【発明の効果】
【0025】
本発明によれば、同じコンテキストで上位レイヤまでの処理を実現することにより、処理分断によるオーバーヘッドなしに、CPUやHWエンジンの負荷の偏りが起こりにくい暗復号処理又は認証処理を行うことができ、セキュア通信における、ネットワークプロトコル処理も含めた暗復号処理又は認証処理の高速化を実現することができる。
【発明を実施するための最良の形態】
【0026】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0027】
(原理説明)
まず、本発明の基本的な考え方について説明する。
【0028】
図1乃至図3は、本発明の基本的な考え方を説明する図であり、図1はプロトコルレベルで記述した全体構成を、図2は負荷の平準化を、図3は負荷の平準化を用いた高速制御方式をそれぞれ示す。
【0029】
図1において、セキュア通信装置100は、IPセキュアプロトコル110、クリプトマネージャ(Crypto Manager)120、及びHW暗復号認証エンジン130を備えて構成される。
【0030】
IPセキュアプロトコル110は、アプリケーション/ミドルソフトウェア(application/middle software)を実行するIP層以上の処理(例えばレイヤ処理1)と、ネットワークデバイスに接続されIP層以下の処理(例えばレイヤ処理2)とを有する。
【0031】
クリプトマネージャ120は、上記IP層以下の処理によりHWエンジンを初期化するためのリクエストを生成するリクエスト生成HW初期化部121と、HW暗復号認証結果を取得・格納し、上記IP層以上の処理に渡すHW後処理結果格納部122とを備えている。クリプトマネージャ120は、後述する負荷の平準化と、この負荷の平準化を用いた高速制御方式を用いることにより、事前処理の前に行うべきネットワークスタック処理(スタック前半処理)と、事後処理の後に行うべきネットワークスタック処理(スタック後半処理)とを、暗復号認証処理(事前処理、HWエンジン処理、及び事後処理)で分断することなく、2つの処理を連続して実行する。すなわち、クリプトマネージャ120は、IPセキュアプロトコル110のIP層以上の処理(例えばレイヤ処理1)とIP層以下の処理(例えばレイヤ処理2)に対して、前記図12の従来例の暗号認証処理部13のように、HW前処理部22とHW後処理部23とを非同期で動作させる構成ではなく、2つの処理を連続して実行する。
【0032】
HW暗復号認証エンジン130は、クリプトマネージャ120のリクエスト生成HW初期化部121からのHW処理リクエストに従ってHWによる暗復号認証処理を行う。HW暗復号認証エンジン130は、該当HW処理リクエストによるHW暗復号認証処理が終わると、暗復号認証結果をクリプトマネージャ120のHW後処理結果格納部122に出力する。
【0033】
以下、上述のように構成されたセキュア通信装置100の動作について説明する。
【0034】
図1中、番号(1)−(3)で示される矢印は処理の流れを示す。
【0035】
図1に示すように、クリプトマネージャ120は、IPセキュアプロトコル110のIP層以上の処理(例えばレイヤ処理1)とIP層以下の処理(例えばレイヤ処理2)に対して、スタック前半処理とスタック後半処理とを、暗復号認証処理(事前処理、HWエンジン処理、事後処理)で分断することなく連続して実行する。
【0036】
具体的には、IPセキュアプロトコル110は、IP層以下の処理がネットワークデバイスからの優先度の高い処理をクリプトマネージャ120のリクエスト生成HW初期化部121に渡す。リクエスト生成HW初期化部121は、IP層以下の処理から渡された優先度の高い要求を基に、HWエンジンを初期化するためのリクエストを生成する。ここまでの処理が、(1)ネットワークプロトコルの前半処理(以下、前半処理という)に相当する。
【0037】
HW暗復号認証エンジン130は、クリプトマネージャ120のリクエスト生成HW初期化部121からのHW処理リクエストに従ってHWによる暗復号認証処理を行い、暗復号認証結果をクリプトマネージャ120のHW後処理結果格納部122に出力する。ここでの処理が、(2)HW暗復号認証処理に相当する。
【0038】
HW後処理結果格納部122は、HW暗復号認証結果を取得・格納し、IPセキュアプロトコル110のIP層以上の処理に渡し、このIP層以上の処理はアプリケーション/ミドルソフトウェアの要求に基づくIP層以上の処理を実行する。ここまでの処理が、(3)ネットワークプロトコルの後半処理(以下、後半処理という)に相当する。
【0039】
図2は、負荷の平準化を説明する図であり、図2(a)は特別な制御を行わない場合の図1の(1)前半処理、(2)HW暗復号認証処理、(3)後半処理を示し、図2(b)は負荷の平準化を行った場合の図1の(1)前半処理、(2)HW暗復号認証処理、(3)の後半処理を示す。また図2中、「」内の数字は、パケットの到着順序を示す。また、番号150の破線矢印は、ネットワークプロトコルの前半処理のタイミングを、番号151の破線矢印は、HW割込みコンテキストに基づく遅延処理開始指示をそれぞれ示す。
【0040】
まず、図2(a)の特別な制御を行わない場合には、リクエスト生成HW初期化部121は、(1)前半処理でパケット「1」−「4」について優先度の高い前半処理を行い、パケット「1」−「4」のリクエストをHW暗復号認証エンジン130に発行する。HW暗復号認証エンジン130は、(2)HW暗復号認証処理で、発行されたパケット「1」−「4」のリクエストのうちパケット「1」についてのリクエストのHW暗復号認証処理を行う。HW後処理結果格納部122は、(3)ネットワークプロトコルの後半処理でパケット「1」についてHW暗復号認証結果を取得・格納し、IP層以上の処理に渡す。図示は省略しているが、その後、HW暗復号認証エンジン130は、(2)HW暗復号認証処理で、パケット「2」−「4」についてのリクエストのHW暗復号認証処理を順次行い、HW後処理結果格納部122は、(3)後半処理でパケット「2」−「4」についてHW暗復号認証結果を取得・格納する。図2(a)に示すように、パケット「1」−「4」についてここまでの処理が終了してはじめて、リクエスト生成HW初期化部121は、(1)前半処理で次のパケット「5」−「7」のリクエストをHW暗復号認証エンジン130に発行することができる。
【0041】
このように、図1の構成を採ったとしても図2(a)のように特別な制御を行わない場合には、ビットレート低下や負荷上昇による再生品質低下が考えられる。
【0042】
そこで、図1の構成に加え図2(b)に示す負荷の平準化を行う。
【0043】
図2(b)の負荷の平準化では、まず、IPセキュアプロトコル110とリクエスト生成HW初期化部121は、(1)前半処理でパケット「1」のネットワークプロトコルの前半処理(IP層以下の処理)を行い、パケット「1」のリクエストをHW暗復号認証エンジン130に発行する。HW暗復号認証エンジン130は、(2)HW暗復号認証処理で、発行されたパケット「1」のリクエストのHW暗復号認証処理を行う。IPセキュアプロトコル110とHW後処理結果格納部122は、(3)後半処理でパケット「1」のHW暗復号認証結果を取得・格納し、ネットワークプロトコルの後半処理(IP層以上の処理)を行う。次いで、IPセキュアプロトコル110とリクエスト生成HW初期化部121は、(1)前半処理でパケット「2」のネットワークプロトコルの前半処理(IP層以下の処理)を行い、パケット「2」のリクエストをHW暗復号認証エンジン130に発行する。HW暗復号認証エンジン130は、(2)HW暗復号認証処理で、発行されたパケット「2」のリクエストのHW暗復号認証処理を行う。IPセキュアプロトコル110とHW後処理結果格納部122は、(3)後半処理でパケット「2」のHW暗復号認証結果を取得・格納し、ネットワークプロトコルの後半処理(IP層以上の処理)を行う。次いで、IPセキュアプロトコル110とリクエスト生成HW初期化部121は、(1)前半処理でパケット「3」のネットワークプロトコルの前半処理(IP層以下の処理)を行い、パケット「3」のリクエストをHW暗復号認証エンジン130に発行する。HW暗復号認証エンジン130は、(2)HW暗復号認証処理で、発行されたパケット「3」についてのリクエストのHW暗復号認証処理を行う。IPセキュアプロトコル110とHW後処理結果格納部122は、(3)後半処理でパケット「3」のHW暗復号認証結果を取得・格納し、ネットワークプロトコルの後半処理(IP層以上の処理)を行う。
【0044】
このように、図2(b)の負荷の平準化を行うと、図2(a)の特別な制御を行わない場合に比べ、(1)前半処理でリクエストが滞留することがなくなるため、処理の均質化及びビットレート低下抑制を図ることができる。
【0045】
しかし、上述した負荷の平準化では、番号150の破線矢印に示すようにネットワークプロトコルの前半処理のタイミングで暗復号認証処理を動作させるため、順序維持のためにHW/SWを並列処理できない。本発明は、合成・細分化・並び替えにより、処理順序を維持しつつ、HW/SWの並列処理を実現するものである。
【0046】
図3(a)は、図2(b)の負荷の平準化をより詳細に説明する図である。
【0047】
図3(a)の負荷の平準化では、IPセキュアプロトコル110とリクエスト生成HW初期化部121は、(1)前半処理でパケット「2」について「ネットワークプロトコルの前半処理(IP層以下の処理)」を行うとともに、「暗復号認証前半処理(リクエスト生成とHW初期化)」を行う。HW暗復号認証エンジン130は、(2)HW暗復号認証処理で、発行されたパケット「2」のリクエストのHW暗復号認証処理を行う。IPセキュアプロトコル110とHW後処理結果格納部122は、(3)後半処理でパケット「2」について「暗復号認証後半処理(HW後処理と結果格納)」を行うとともに、「ネットワークプロトコルの後半処理(IP層以上の処理)」を行う。
【0048】
図3(b)(c)は、本高速制御方式を説明する図である。図3(b)は、負荷平準化後に高速制御を行うための高速制御方式の方式Aを、図3(c)は、方式Aを更に細分化した高速制御方式の方式Bをそれぞれ示す。
【0049】
本高速制御方式は、前半処理と後半処理を一連のコンテキストで行う。すなわち、直前のパケットの後半処理(レイヤ2以降の処理)と次のパケットの処理(レイヤ1の処理)とを合体させることで、関数の時間として待ち時間なしでパケットの処理を行う。
【0050】
図3(b)の高速制御方式の方式Aでは、1つ前のパケットの(3)ネットワークプロトコルの後半処理と次のパケットの(1)ネットワークプロトコルの前半処理を合体した、(1)(3)前半処理/後半処理を実現する。図3(b)の場合、(1)(3)前半処理/後半処理で1つ前のパケット「1」の(3)後半処理と次のパケット「2」の(1)前半処理を合体する。(2)HW暗復号認証処理はそのままである。このため、方式Aの(1)(3)前半処理/後半処理では、 図3(a)の番号151の破線矢印に示すHW割込みコンテキストに基づく遅延処理開始指示よりも先に、図3(b)の番号152の破線矢印に示すネットワークプロトコルの前半処理開始のタイミングで(1)(3)前半処理/後半処理を開始できることになる。このため、方式Aは、図3(b)の番号152の破線矢印に示すネットワークプロトコルの前半処理開始のタイミングか、図3(a)の番号151の破線矢印に示すHW割込みコンテキストに基づく遅延処理開始指示のうち、いずれか早い方で処理を開始することができ、処理時間を短縮することができる。ここで、(1)前半処理と(3)後半処理の優先度が異なる場合であっても処理が滞ることなくスムーズな処理を実現することができる。
【0051】
図3(c)の方式Bは、方式Aの各処理を並び替えることで、HW/SWの並行処理を実現し、より高速制御を図るものである。各処理の並び替えは以下(i)−(iv)の通りである。
【0052】
(i)ネットワークプロトコルの前半処理
(ii)暗復号認証後半処理
(iii)暗復号認証前半処理
(iv)ネットワークプロトコルの後半処理
上記各処理の並べ替えを具体的に説明すると、図3(c)の場合、図3(b)のパケット「1」とパケット「2」は以下の並べ替え処理となる。
【0053】
(i)2番目のパケット「2」の前半処理
(ii)1番目のパケット「1」のHW後半処理
(iii)2番目のパケット「2」のHW前半処理
(iv)1番目のパケット「1」のレイヤ2以降の処理
HW暗復号処理が終わってから実際に後半処理が開始されるまでには若干のロス(余分な処理)がある。なにか別の処理が入ってきたり、またカーネルの処理が含まれる。図3(c)の方式Bは、各処理の並び替えにより1つのシーケンスで、上記(i)ネットワークプロトコル前半処理の直後に、上記(ii)暗復号認証後半処理を行う。続いて、上記上記(iii)暗復号認証前半処理の直後に、上記(iv)ネットワークプロトコルの後半処理を連続して行うことで、番号151のHW割込みコンテキストに基づく遅延処理開始指示が削減される。すなわち、上位プログラムによる関数呼び出しがあると、上記(i)−(iv)をロスなしで連続で実行するので、番号151の遅延処理開始指示が必要なくなる。図3(a)の負荷の平準化では、HW割り込みが発生して後半処理を開始するために、番号151の遅延処理開始指示が出される。しかし実際には、それよりも前に次のパケットが到着することも有りうる。このような場合、図3(c)の方式Bでは、開始指示を待つ前に開始できるようになるので、その分速度改善につながる。パケットの送信指示が先かHW処理完了(割り込みHW割り込み)が先かの競争が行われ、早い方で処理を開始するものである。このように、各処理を並び替えることで、HW/SWの並行処理を実現することができる。
【0054】
(実施の形態1)
図4は、上記基本的な考え方に基づく本発明の実施の形態1に係る暗号化情報通信システムのセキュア通信装置の構成を示す図である。
【0055】
図4において、セキュア通信装置200は、レイヤ処理1及びレイヤ処理2を実行する通信スタック部210と、受信/送信情報を一時的に格納するバッファ220と、HWエンジンにHW処理リクエストを発行して暗号認証処理を実行する暗号認証処理部230と、HWエンジンにより暗復号認証処理を実行するHW暗復号認証処理部240とを備えて構成される。また、暗号認証処理部230は、リクエスト制御部231、HW前後処理部232、及びキュー233を備える。
【0056】
HW前後処理部232は、図3(b)の方式A又は図3(c)の方式Bにより前半処理と後半処理を一連のコンテキストで行う。HW前後処理部232は、図3(c)の方式Bを採用した場合、(i)ネットワークプロトコル前半処理、(ii)暗復号認証後半処理、(iii)暗復号認証前半処理、乃至(iv)ネットワークプロトコル後半処理を連続して行う。具体的には、HW前後処理部232は、取得したリクエストに従ってHW暗復号認証処理部240にHW処理リクエストを発行する((5)参照)一方で、HW暗復号認証処理部240からHW割込みコンテキストに基づく遅延処理開始指示を受け取り、さらに、HW暗復号認証処理部240からHW処理結果を取得して((6)参照)HW後処理を実行する。ここで、レイヤ処理1及びレイヤ処理2は、図3(b)の各処理の並べ替え処理となる。例えば、(i)2番目のパケット「2」の前半処理、(ii)1番目のパケット「1」のHW後半処理、(iii)2番目のパケット「2」のHW前半処理、乃至(iv)1番目のパケット「1」のレイヤ2以降の処理である。
【0057】
以下、上述のように構成されたセキュア通信装置200の動作について説明する。
【0058】
図5は、上記暗号認証処理部230及びHW暗復号認証処理部240の動作タイミングを示すタイミングチャートである。図4及び図5中、番号(1)−(6)は処理の流れを説明するための符号である。
【0059】
通信スタック部210は、通常の通信スタック処理では、送信指示又は受信割込みによりバッファ120を介してレイヤ処理1及びレイヤ処理2を実行する。レイヤ処理1は、ネットワークプロトコルの前半処理であり、TCPプロトコル処理及びIPプロトコル処理の一部を含む優先度の高い上位レイヤ処理である。レイヤ処理2は、ネットワークプロトコルの後半処理であり、IPプロトコル処理の一部やそれ以下のレイヤ処理を含む下位レイヤ処理である。
【0060】
通信スタック部210は、HW暗号認証を行う場合には、送信指示又は受信割込みを受けると、レイヤ処理1で暗号認証処理部230に処理を指示し、暗号認証処理部230はHW暗復号認証処理部240に対しHW処理リクエストを発行する。
【0061】
HW暗復号認証処理部240は、このHW処理リクエストを受け取り、HWによる暗復号認証処理を行って暗号認証処理完了の遅延処理を暗号認証処理部230を介して通信スタック部210に返す。通信スタック部210は、暗号認証処理部230による暗号認証処理結果を受け取りバッファ220を介してレイヤ処理2を実行する。
【0062】
具体的には、暗号認証処理部230は、以下の動作を行う。
【0063】
リクエスト制御部231は、通信スタック部210のレイヤ処理1により暗号認証処理が指示されると、そのリクエストをキュー233に積む((1)参照)。リクエスト制御部231は、HWビジーでない場合にはHW前後処理部232にHW前処理を指示する((2)参照)。
【0064】
HW前後処理部232は、処理済みのリクエストがあればHW暗復号認証処理部240からHW処理結果を取得して((3)参照)HW後処理を実行する。HW前後処理部232は、HW後処理を終了すると、レイヤ処理2に後半処理を指示する((6)参照)。
【0065】
また、HW前後処理部232は、キュー233にリクエストが積まれていれば、キュー233からリクエストを取得し((4)参照)、取得したリクエストに従ってHW暗復号認証処理部240にHW処理リクエストを発行する((5)参照)。
【0066】
HW暗復号認証処理部240は、HW前後処理部232からのHW処理リクエスト((5)参照)に従ってHWによる暗復号認証処理を行う。HW暗復号認証処理部240は、該当HW処理リクエストによる暗復号認証処理が終わると、HW割込みコンテキストを発生し(図5参照)、このHW割込みコンテキストに基づく遅延処理開始指示をHW前後処理部232に出力する((0)参照)。
【0067】
図5a.に示すように、HW前後処理部232は、HW暗復号認証処理部240からの遅延処理開始指示((0)参照)、又はレイヤ処理1からの指示のうち、いずれか早い方で処理を開始する。HW前後処理部232は、いずれかの指示によりHW前後処理をすぐに実行できるため、レイヤ処理1から見た場合、レイヤ処理1が利用できない時間はなくなる。
【0068】
HW前後処理部232は、HW暗復号認証処理部240からHW処理結果を取得して((3)参照)HW後処理を実行する。HW前後処理部232は、HW後処理を終了すると、レイヤ処理2に後半処理を指示する。通信スタック部210は、レイヤ処理2を実行する。
【0069】
図5b.に示すように、暗号認証処理部230は、HW処理待ち時間なしに、レイヤ処理1とレイヤ2を同じコンテキストで実行する。
【0070】
このように、暗号認証処理部230のHW前後処理部232は、処理済みのリクエストがある場合はHW処理結果取得((3)参照)と後半処理指示((6)参照)を行う。キュー233にリクエストが積まれていれば、HW前処理((4)(5)参照)を行う。また、HW前後処理部232は、HW暗復号認証処理部240からの遅延処理開始指示時((0)参照)も、キュー233を見て同様の処理を行う。
【0071】
したがって、暗号認証処理部230は、レイヤ処理2以降をレイヤ処理1と同じシーケンスで実行できるので、利用できない時間が減り、パフォーマンスが向上する。従来例では、図13に示すようにHW前処理部22によるHW前処理が終了してHW後処理部23がHW後処理を起動するまでの時間は、HW後処理部23がHW後処理を行えない、利用できない時間となっていた。これに対して、暗号認証処理部230は、遅延処理開始依頼によってHW後処理部23(図12の従来例)を起動するよりも早くHW後処理、次のHW処理リクエストを実行することができ、HW暗復号認証処理部240の利用効率を高めることができる。
【0072】
(実施の形態2)
図6は、本発明の実施の形態2に係る暗号化情報通信システムのセキュア通信装置の構成を示すブロック図である。
【0073】
図6において、セキュア通信装置300は、上位プログラム310、ネットワークプロトコル処理部320、通信部330、暗復号認証処理制御部340、暗復号認証処理部350、及び暗復号認証リクエスト蓄積部360を備えて構成される。
【0074】
上記上位プログラム310、ネットワークプロトコル処理部320及び暗復号認証処理制御部340は、CPUにより実行される。
【0075】
セキュア通信装置300は、セキュア通信を行う相手側セキュア通信装置と、通信部330により接続され、セキュア通信装置間で通信可能になっている。
【0076】
上位プログラム310は、実際に暗号化されたデータの送受信を行おうとしているアプリケーション、もしくは、その他のプログラムである。
【0077】
ネットワークプロトコル処理部320は、トランスポート層やネットワーク層などのネットワークプロトコル処理を行う。より具体的には、ネットワークプロトコル処理部320は、上位プログラム310の指示によって、任意のデータのネットワークプロトコルの上位レイヤ処理(TCPプロトコル処理やIPプロトコル処理の一部等)を行い、処理が完了した平文パケットを、暗復号認証処理に必要なパラメータとともに暗復号認証リクエストとして、暗復号認証処理制御部340に依頼して暗号認証処理を行う。
【0078】
また、ネットワークプロトコル処理部320は、暗復号認証処理制御部340からの指示で、暗号認証処理が完了した暗号化パケットのネットワークプロトコルの下位レイヤ処理(IPプロトコル処理の一部やそれ以下の処理等)を行い、通信部330に処理が完了した暗号化パケットの送信処理を指示する。
【0079】
また、ネットワークプロトコル処理部320は、通信部330で受信した暗号化パケットを受け取り、ネットワークプロトコルの下位レイヤ処理を行い、処理が完了した暗号化パケットを、暗復号認証処理に必要なパラメータとともに暗復号認証リクエストとして、暗復号認証処理制御部340に依頼して暗号認証処理を行う。
【0080】
また、ネットワークプロトコル処理部320は、暗復号認証処理制御部340からの指示で、暗号認証処理が完了した平文パケットのネットワークプロトコルの上位レイヤ処理を行い、上位プログラム310の受信バッファに処理が完了した平文パケットを格納する。
【0081】
通信部330は、ネットワークプロトコル処理部320の指示で任意のパケットの送信処理を行う。また、通信部330は、対向のセキュア通信装置が送信したデータを受信し、ネットワークプロトコル処理部320に転送する。具体的には、有線LANや無線LANなどの、IP通信が行えるネットワークデバイスが望ましい。
【0082】
暗復号認証処理制御部340は、ネットワークプロトコル処理部320からの暗復号認証指示に基づき、暗復号認証リクエストに格納されている平文・暗号化データを、暗復号認証処理部350に指示して暗復号認証処理を行う。
【0083】
また、暗復号認証処理制御部340は、暗復号認証リクエスト蓄積部360に暗復号認証リクエストが格納されている場合には、先に格納されている暗復号認証リクエストの暗復号認証処理を暗復号認証処理部350に依頼し、ネットワークプロトコル処理部320から依頼された暗復号認証リクエストについては暗復号認証リクエスト蓄積部360に格納する。
【0084】
また、暗復号認証処理制御部340は、暗復号認証処理部350が処理中の場合には、暗復号認証リクエストを暗復号認証リクエスト蓄積部360に格納して処理を終了する。
【0085】
特に、暗復号認証処理制御部340は、暗復号認証処理部350から、暗復号処理又は認証処理が完了している1つ前のパケットの処理結果を取得し、1つ前のパケットのネットワークプロトコルの後半処理と次のパケットのネットワークプロトコルの前半処理とを連続して行うようにネットワークプロトコル処理部320を制御する。
【0086】
また、暗復号認証処理制御部340は、暗復号認証処理部350において既に処理が完了した暗復号認証リクエストが存在する場合には、既に処理が完了している暗復号認証リクエストの暗復号認証完了処理を先に行い、次に新たに指示を受けた暗復号認証リクエストの暗復号認証処理要求を暗復号認証処理部350に対して行う。その後、暗復号認証完了処理を行った暗号データのネットワークプロトコル後半処理(上位レイヤ処理から指示を受けている場合は下位レイヤ処理、下位レイヤ処理から指示を受けている場合は上位レイヤ処理)を同じCPUコンテキストで行うよう、ネットワークプロトコル処理部320に指示し、ネットワークプロトコル後半処理が完了すると、暗復号認証処理制御部340の処理を終了する。処理の詳細については後述する。
【0087】
暗復号認証処理部350は、暗復号認証処理制御部340の、暗復号認証開始指示によって暗復号認証処理を開始し、暗復号認証処理が完了した時点で暗復号認証処理制御部340に処理完了通知を行う。具体的には、ハードウェア割り込み処理にて起床されたソフトウェア割り込みによって処理完了通知をすることが望ましい。その後、暗復号認証処理制御部340の、暗復号認証完了処理指示によって、結果や付随データを取得するための完了処理を行う。
【0088】
暗復号認証リクエスト蓄積部360は、ネットワークプロトコルの前半処理が完了したパケットを、パケット毎に優先度を設定し、暗復号処理又は認証処理に必要なパラメータとともに暗復号認証リクエストとして蓄積し、該暗復号認証リクエストを優先度順に前記暗復号認証処理部350に受け渡す。暗復号認証リクエスト蓄積部360は、暗復号認証リクエストを出し入れするためのキュー構造である。通常FIFO(First-In First-Out)で構成されるが、例えばパケットのTOS(Type of Service)フィールドや、送受信アドレス、送受信ポート、プロトコルなどの情報を元に、デキューする暗復号認証リクエストに優先度をつけるようにするなど、その他の構成であってもよい。なお、TOSフィールドは、IPヘッダに含まれる長さ8ビットの情報であり、上位3ビットが優先度を表示するIPプレシデンスである。
【0089】
以下、上述のように構成されたセキュア通信装置300の動作について説明する。
【0090】
まず、セキュア通信装置300が暗号化パケットの受信側として機能する場合について説明する。
【0091】
図7は、セキュア通信装置300が受信側として機能する場合のセキュア通信処理時の動作を説明する制御シーケンス図である。図7において、上位プログラム310、ネットワークプロトコル処理部320及び暗復号認証処理制御部340は、CPUにより実行される。
【0092】
ステップS101では、上位プログラム310は、ソケットを生成し、対向のセキュア通信装置のアドレス情報やポート番号をバインドする。
【0093】
ステップS102では、上位プログラム310は、暗号化したい平文データを、ソケットを通してネットワークプロトコル処理部320に処理を依頼する。
【0094】
ステップS103では、ネットワークプロトコル処理部320は、受け取った平文データを最大送信単位ごとに平文パケットとして再構成し、ネットワークプロトコルの上位レイヤ処理(TCPプロトコル処理やIPプロトコル処理の一部等)を行う。
【0095】
ステップS104では、ネットワークプロトコル処理部320は、平文パケットを暗復号認証処理に必要なパラメータとともに暗復号認証リクエストとして暗復号認証リクエスト蓄積部360に格納し、暗復号認証処理制御部340に暗号認証処理を指示する。CPUにより実行されるここまでの処理が、例えば図3(b)の(i)2番目のパケット「2」についてのネットワークプロトコルの前半処理に相当する。
【0096】
ステップS105では、暗復号認証処理制御部340は、暗復号認証処理部350が処理中でないかを判別する。暗復号認証処理部350が処理中であった場合は、処理を終了する。
【0097】
ステップS106では、暗復号認証処理制御部340は、暗復号認証処理部350において既に暗復号認証処理が終了している暗復号認証リクエストがないか否かを判別する。
【0098】
ステップS107では、暗復号認証処理制御部340は、暗復号認証処理部350において既に暗復号認証処理が終了している暗復号認証リクエストの暗復号認証完了処理を行う。CPUにより実行されるステップS105乃至ステップS107までの処理が、例えば図3(b)の(ii)1番目のパケット「1」のHW後半処理に相当する。
【0099】
ステップS108では、暗復号認証処理制御部340は、暗復号認証リクエスト蓄積部360に暗復号認証リクエストが格納されているか否かを判別する。
【0100】
暗復号認証リクエスト蓄積部360に暗復号認証リクエストが存在する場合、ステップS109で暗復号認証処理制御部340は、暗復号認証処理部350のセットアップを行う。具体的には、暗復号認証処理制御部340は、暗復号認証リクエストに格納されている平文・暗号化データと暗復号認証処理に必要なパラメータを用いて、暗復号認証処理を暗復号認証処理部350に指示する。CPUにより実行されるステップS108及びステップS109の処理が、例えば図3(b)の(iii)2番目のパケット「2」のHW前半処理に相当する。
【0101】
ステップS110では、暗復号認証処理部350は、暗復号認証処理制御部340の指示に基づき、暗復号認証処理を開始する。ここで、暗復号認証処理は非同期に実行され、処理の完了を待ち合わせることはしない。
【0102】
ステップS111では、暗復号認証処理制御部340は、上記ステップS107において暗復号認証完了処理を行った暗復号認証リクエストがあれば、ネットワークプロトコル処理部320に対して、ネットワークプロトコル後半処理(上位レイヤ処理から指示を受けている場合は下位レイヤ処理、下位レイヤ処理から指示を受けている場合は上位レイヤ処理)を同じCPUコンテキストで行うように指示する。
【0103】
ステップS112では、ネットワークプロトコル処理部320は、ネットワークプロトコルの下位レイヤ処理を行い、処理が完了した暗号化パケットを送信するように通信部330に指示する。CPUにより実行されるステップS111及びステップS112の処理が、例えば図3(b)の(iv)1番目のパケット「1」のレイヤ2以降の処理に相当する。
【0104】
ステップS113では、通信部330は、ネットワークプロトコル処理部320から受け取った暗号化パケットを対向のセキュア通信装置(相手側セキュア通信装置)に送信する。
【0105】
このように、ステップS101からステップS112に至るまで、前半処理と後半処理を一連のCPUコンテキストで行う。直前のパケットの後半処理(レイヤ2以降の処理)と次のパケットの処理(レイヤ1の処理)をシームレスに連続させることで、関数の時間としては待ち時間なしでパケットの処理が行えることになる。すなわち、暗復号認証処理制御部340は、リクエストの通知だけで関数をリターンせずにレイヤ2以降の処理を実行して(換言すれば、同じCPUコンテキストにて)、その後に関数をリターンする。暗復号認証処理制御部340が、途中で関数をリターンしないことで1つのシーケンスで実行される。したがって、受信したパケットをネットワークプロトコル処理する際、暗復号認証処理による処理の分断なしに、同じコンテキストで上位レイヤまでの処理を実現することができる。
【0106】
次に、セキュア通信装置300が、送信側の暗号化情報通信装置である場合を例に動作を説明する。この場合は、暗復号認証処理部350で暗復号認証処理が終了した際の動作に対応する。
【0107】
図8は、セキュア通信装置300によるセキュア通信処理時の動作を説明する制御シーケンス図である。
【0108】
ステップS201では、暗復号認証処理部350は、暗復号認証処理制御部340に対してステップS202以降の処理を開始するようソフトウェア遅延割り込み処理の開始を指示する。
【0109】
ステップS202では、暗復号認証処理制御部340は、暗復号認証処理部350が処理中でないかを判別する。暗復号認証処理部350が処理中であった場合は、処理を終了する。
【0110】
ステップS203では、暗復号認証処理制御部340は、暗復号認証処理部350において既に暗復号認証処理が終了している暗復号認証リクエストがないか否かを判別する。
【0111】
ステップS204では、暗復号認証処理制御部340は、暗復号認証処理部350において既に暗復号認証処理が終了している暗復号認証リクエストの暗復号認証完了処理を行う。
【0112】
ステップS205では、暗復号認証処理制御部340は、暗復号認証リクエスト蓄積部360に暗復号認証リクエストが格納されているか否かを判別する。
【0113】
暗復号認証リクエスト蓄積部360に暗復号認証リクエストが存在する場合、ステップS206で暗復号認証処理制御部340は、暗復号認証処理部350のセットアップを行う。具体的には、暗復号認証処理制御部340は、暗復号認証リクエストに格納されている平文・暗号化データと暗復号認証処理に必要なパラメータを用いて、暗復号認証処理を暗復号認証処理部350に指示する。
【0114】
ステップS207では、暗復号認証処理部350は、暗復号認証処理制御部340の指示に基づき、暗復号認証処理を開始する。ここで、暗復号認証処理は非同期に実行され、処理の完了を待ち合わせることはしない。
【0115】
ステップS208では、暗復号認証処理制御部340は、上記ステップS207において暗復号認証完了処理を行った暗復号認証リクエストがあれば、ネットワークプロトコル処理部320に対して、ネットワークプロトコル後半処理(上位レイヤ処理から指示を受けている場合は下位レイヤ処理、下位レイヤ処理から指示を受けている場合は上位レイヤ処理)を同じCPUコンテキストで行うように指示する。
【0116】
ステップS209では、ネットワークプロトコル処理部320は、ネットワークプロトコルの下位レイヤ処理を行い、処理が完了した暗号化パケットを送信するように通信部330に指示する。
【0117】
ステップS210では、通信部330は、ネットワークプロトコル処理部320から受け取った暗号化パケットを対向のセキュア通信装置(相手側セキュア通信装置)に送信する。
【0118】
以上詳細に説明したように、本実施の形態によれば、セキュア通信装置300の暗復号認証処理制御部340は、暗復号認証処理部350から、暗復号処理又は認証処理が完了している1つ前のパケットの処理結果を取得し、1つ前のパケットのネットワークプロトコルの後半処理と次のパケットのネットワークプロトコルの前半処理とを連続して行うようにネットワークプロトコル処理部320を制御する。例えば、暗復号認証処理制御部340は、ネットワークプロトコル処理部320から、ネットワークプロトコルの前半処理を終えた次のパケットの暗復号処理又は認証処理を依頼された際、同じCPUコンテキストにより、直前に暗復号処理又は認証処理が完了している1つ前のパケットの処理結果を暗復号認証処理部350から取得し、1つ前のパケットのネットワークプロトコルの後半処理をネットワークプロトコル処理部320が処理するように制御する。これにより、受信したパケットをネットワークプロトコル処理する際、暗復号認証処理による処理の分断なしに、同じコンテキストで上位レイヤまでの処理を実現することができる。その結果、処理分断によるオーバーヘッドなしに、CPUやHWエンジンの負荷の偏りが起こりにくい暗復号処理又は認証処理を行うことができる。したがって、ルータやゲートウェイなど、特別に高速化が求められる機器や、組み込み機器など非力なリソースしか持たない端末同士であっても、高速なセキュア送信処理を実現することができる。
【0119】
また、本実施の形態では、暗復号認証処理制御部340は、1つ前のパケットの処理結果を暗復号認証処理部350から取得した後、1つ前のパケットのネットワークプロトコル後半処理をネットワークプロトコル処理部320において処理する前に、同じCPUコンテキストにより、次のパケットの暗復号処理又は認証処理を暗復号認証処理部350に対して依頼する。この構成により、CPUコンテキストの切り替えを行うことなく、1つ目のパケット処理完了後に2つ目のパケットの暗復号処理又は認証処理の依頼を行うことができ、暗復号処理又は認証処理の高速化を図ることができる。また、暗復号認証処理部350が動作していない時間を最小にすることができ、暗復号処理又は認証処理の高速化や、暗復号認証処理手段の効率的な利用を図ることができる。
【0120】
また、本実施の形態では、暗復号認証処理制御部340は、暗復号認証処理部350からの完了ハードウェア割り込みコンテキスト、又は、ソフトウェア遅延割り込みコンテキストにより、処理が完了した1つ前のパケットの処理結果を暗復号認証処理部350から取得する暗復号認証後半処理を行い、ネットワークプロトコルの前半処理が完了した次のパケットがある場合は、同じCPUコンテキストにより、次のパケットの暗復号処理又は認証処理を暗復号認証処理部350に依頼する暗復号認証前半処理を行い、1つ前のパケットのネットワークプロトコル後半処理をネットワークプロトコル処理部320が処理するように制御する。この構成により、ネットワークプロトコルの前半処理、完了ハードウェア割り込み(又はソフトウェア遅延割り込み)のうち、いずれか早いタイミングで暗復号認証処理制御部340を動作させることができ、暗復号処理又は認証処理の高速化を図ることができる。
【0121】
また、本実施の形態では、暗復号認証処理制御部340は、各処理を、(i)次のパケットのネットワークプロトコルの前半処理、(ii)1つ前のパケットの暗復号認証後半処理、(iii)次のパケットの暗復号認証前半処理、及び(iv)1つ前のパケットのネットワークプロトコルの後半処理、の順に並び替えてネットワークプロトコル処理部320と暗復号認証処理部350とを並列処理させるので、合成・細分化・並び替えにより、処理順序を維持しつつ、HW/SWの並行処理を実現することができる。
【0122】
さらに、本実施の形態では、ネットワークプロトコルの前半処理が完了したパケットを、パケット毎に優先度を設定し、暗復号処理又は認証処理に必要なパラメータとともに暗復号認証リクエストとして蓄積し、暗復号認証リクエストを優先度順に暗復号認証処理部350に受け渡す暗復号認証リクエスト蓄積部360を備えているので、例えばAVストリーミングのように、高い優先度で処理を行わなければならない送受信パケットの高速化を図ることができる。
【0123】
(実施の形態3)
実施の形態3は、セキュア通信装置の別の動作例について説明する。
【0124】
本発明の実施の形態3に係るセキュア通信装置のハード的構成は、図6同一構成であるため説明を省略する。
【0125】
図9は、セキュア通信装置300が受信側として機能する場合のセキュア通信処理時の動作を説明する制御シーケンス図である。図7に示すフローと同一処理を行うステップには同一ステップ番号を付して説明を省略する。
【0126】
ステップS301では、通信部330は、対向のセキュア通信装置から受信した暗号化パケットを処理するため、ステップS302以降の処理を行うためのソフトウェア遅延割り込み処理の開始指示を行う。
【0127】
ステップS302では、ネットワークプロトコル処理部320は、受け取った暗号化パケットの、ネットワークプロトコルの下位レイヤ処理(IPプロトコル処理の一部とそれ以下のレイヤ処理)を行う。
【0128】
ステップS104からステップS111までの処理は図7の対応する処理と同じである。
【0129】
ステップS303では、ネットワークプロトコル処理部320は、ネットワークプロトコルの上位レイヤ処理(TCPプロトコル処理やIPプロトコル処理の一部等)を行い、処理が完了した平文パケットを上位プログラム310の受信バッファに格納する。
【0130】
次に、セキュア通信装置300が、送信側の暗号化情報通信装置である場合を例に動作を説明する。この場合は、暗復号認証処理部350で暗復号認証処理が終了した際の動作に対応する。
【0131】
図10は、セキュア通信装置300によるセキュア通信処理時の動作を説明する制御シーケンス図である。図8に示すフローと同一処理を行うステップには同一ステップ番号を付して説明を省略する。
【0132】
ステップS201では、暗復号認証処理部350は、暗復号認証処理制御部340に対してステップS202以降の処理を開始するようソフトウェア遅延割り込み処理の開始を指示する。
【0133】
ステップS202からステップS208までの処理は図8の対応する処理と同じである。
【0134】
ステップS401では、ネットワークプロトコル処理部320は、ネットワークプロトコルの上位レイヤ処理(TCPプロトコル処理やIPプロトコル処理の一部等)を行い、処理が完了した平文パケットを上位プログラム310の受信バッファに格納する。
【0135】
このように、本実施の形態のセキュア通信装置によれば、実施の形態2と同様の効果、すなわち受信したパケットをネットワークプロトコル処理する際、暗復号認証処理による処理の分断なしに、同じコンテキストで上位レイヤまでの処理を実現することができ、ルータやゲートウェイなど、特別に高速化が求められる機器や、組み込み機器など非力なリソースしか持たない端末同士であっても、高速なセキュア受信処理を実現することができる。
【0136】
以上の説明は本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。例えば、IPv6ネットワークを介してIPsecプロトコルにより暗号化通信を行う暗号化情報通信システムに適用可能であるが、IPvネットワークであればよく、IPv6ネットワークの機能を含む上位バージョンが策定された場合はこれも包含するものである。
【0137】
また、ネットワークプロトコル処理部320、暗復号認証処理制御部340等の各機能ブロックは典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0138】
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0139】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【0140】
また、本実施の形態ではセキュア通信装置及びセキュア通信方法という名称を用いたが、これは説明の便宜上であり、暗号化情報通信装置、暗号化情報通信システム、セキュリティアソシエーション方法等であってもよいことは勿論である。
【0141】
さらに、上記セキュア通信装置を構成する各部、例えばネットワークプロトコル処理部の種類、その数及び接続方法などはどのようなものでもよい。
【0142】
以上説明したセキュア通信方法は、このセキュア通信方法を機能させるためのプログラムでも実現される。このプログラムはコンピュータで読み取り可能な記録媒体に格納されている。
【産業上の利用可能性】
【0143】
以上のように、本発明に係るセキュア通信装置、セキュア通信方法及びプログラムは、ソフトウェア処理、又は、ハードウェア処理によって高速なIPセキュア通信処理を行うことができる効果を有し、セキュア通信機器及びセキュア通信方法等に有用である。
【図面の簡単な説明】
【0144】
【図1】本発明の基本的な考え方を説明するプロトコルレベルで記述した全体構成図
【図2】本発明の基本的な考え方を説明する負荷の平準化を示す図
【図3】本発明の基本的な考え方を説明する負荷の平準化を用いた高速制御方式を示す図
【図4】本発明の実施の形態1に係るセキュア通信装置の構成を示す図
【図5】上記実施の形態1に係るセキュア通信装置の暗号認証処理部及びHW暗復号認証処理部の動作タイミングを示すタイミング図
【図6】本発明の実施の形態2に係るセキュア通信装置の構成を示すブロック図
【図7】上記実施の形態2に係るセキュア通信装置が受信側として機能する場合のセキュア通信処理時の動作を説明する制御シーケンス図
【図8】上記実施の形態2に係るセキュア通信装置によるセキュア通信処理時の動作を説明する制御シーケンス図
【図9】本発明の実施の形態3に係るセキュア通信装置が受信側として機能する場合のセキュア通信処理時の動作を説明する制御シーケンス図
【図10】上記実施の形態3に係るセキュア通信装置によるセキュア通信処理時の動作を説明する制御シーケンス図
【図11】従来のHW暗号認証を行う場合の通信スタック処理を説明する図
【図12】従来のセキュア通信装置の暗号認証処理部の詳細な構成を示す図
【図13】従来のセキュア通信装置の暗号認証処理部及びHW暗復号認証処理部の動作タイミングを示すタイミング図
【符号の説明】
【0145】
100,200,300 セキュア通信装置
110 IPセキュアプロトコル
120 クリプトマネージャ
130 HW暗復号認証エンジン
210 通信スタック部
220 バッファ
230 暗号認証処理部
231 リクエスト制御部
232 HW前後処理部
233 キュー
240 HW暗復号認証処理部
310 上位プログラム
320 ネットワークプロトコル処理部
330 通信部
340 暗復号認証処理制御部
350 暗復号認証処理部
360 暗復号認証リクエスト蓄積部


【特許請求の範囲】
【請求項1】
通信パケットを送受信する通信手段と、
ネットワークプロトコルの前半処理及び後半処理を行うネットワークプロトコル処理手段と、
暗復号処理又は認証処理を行う暗復号認証処理手段と、
前記暗復号認証処理手段から、暗復号処理又は認証処理が完了しているパケットの処理結果を取得し、前記パケットのネットワークプロトコルの後半処理と次のパケットのネットワークプロトコルの前半処理とを連続して行うように前記ネットワークプロトコル処理手段を制御する暗復号認証処理制御手段と、
を備えるセキュア通信装置。
【請求項2】
前記暗復号認証処理制御手段は、前記ネットワークプロトコル処理手段から、ネットワークプロトコルの前半処理を終えた次のパケットの暗復号処理又は認証処理を依頼された際、同じCPUコンテキストにより、直前に暗復号処理又は認証処理が完了している1つ前のパケットの処理結果を前記暗復号認証処理手段から取得し、1つ前のパケットのネットワークプロトコルの後半処理を前記ネットワークプロトコル処理手段が処理するように制御する請求項1記載のセキュア通信装置。
【請求項3】
前記暗復号認証処理制御手段は、1つ前のパケットの処理結果を前記暗復号認証処理手段から取得した後、1つ前のパケットのネットワークプロトコル後半処理を前記ネットワークプロトコル処理手段において処理する前に、同じCPUコンテキストにより、次のパケットの暗復号処理又は認証処理を前記暗復号認証処理手段に対して依頼する請求項1記載のセキュア通信装置。
【請求項4】
前記暗復号認証処理制御手段は、前記暗復号認証処理手段からの完了ハードウェア割り込みコンテキスト、又は、ソフトウェア遅延割り込みコンテキストにより、処理が完了した1つ前のパケットの処理結果を前記暗復号認証処理手段から取得する暗復号認証後半処理を行い、ネットワークプロトコルの前半処理が完了した次のパケットがある場合は、同じCPUコンテキストにより、次のパケットの暗復号処理又は認証処理を前記暗復号認証処理手段に依頼する暗復号認証前半処理を行い、1つ前のパケットのネットワークプロトコル後半処理を前記ネットワークプロトコル処理手段が処理するように制御する請求項1記載のセキュア通信装置。
【請求項5】
前記暗復号認証処理制御手段は、前記各処理を、(i)次のパケットのネットワークプロトコルの前半処理、(ii)1つ前のパケットの暗復号認証後半処理、(iii)次のパケットの暗復号認証前半処理、及び(iv)1つ前のパケットのネットワークプロトコルの後半処理、の順に並び替えて前記ネットワークプロトコル処理手段と前記暗復号認証処理手段とを並列処理させる請求項4記載のセキュア通信装置。
【請求項6】
ネットワークプロトコルの前半処理が完了したパケットを、パケット毎に優先度を設定し、暗復号処理又は認証処理に必要なパラメータとともに暗復号認証リクエストとして蓄積し、該暗復号認証リクエストを優先度順に前記暗復号認証処理手段に受け渡す暗復号認証リクエスト蓄積手段をさらに備える請求項1記載のセキュア通信装置。
【請求項7】
前記ネットワークプロトコルの前半処理は、IPプロトコル処理の一部やそれ以下のレイヤ処理を含む下位レイヤ処理であり、前記ネットワークプロトコルの後半処理は、TCPプロトコル処理及びIPプロトコル処理の一部を含む上位レイヤ処理である請求項1記載のセキュア通信装置。
【請求項8】
通信パケットを送受信するステップと、
ネットワークプロトコルの前半処理及び後半処理を行うネットワークプロトコル処理ステップと、
暗復号処理又は認証処理を行う暗復号認証処理ステップと、
暗復号処理又は認証処理が完了しているパケットの処理結果を取得し、前記パケットのネットワークプロトコルの後半処理と次のパケットのネットワークプロトコルの前半処理とを連続して行うように制御する制御ステップと
を有するセキュア通信方法。
【請求項9】
前記制御ステップでは、ネットワークプロトコルの前半処理を終えた次のパケットの暗復号処理又は認証処理を依頼された際、同じCPUコンテキストにより、直前に暗復号処理又は認証処理が完了している1つ前のパケットの処理結果を取得し、1つ前のパケットのネットワークプロトコルの後半処理を前記ネットワークプロトコル処理ステップにおいて処理する請求項8記載のセキュア通信方法。
【請求項10】
前記制御ステップでは、1つ前のパケットの処理結果を取得した後、1つ前のパケットのネットワークプロトコル後半処理を前記ネットワークプロトコル処理ステップにおいて処理する前に、同じCPUコンテキストにより、次のパケットの暗復号処理又は認証処理を前記暗復号認証処理ステップに対して依頼する請求項8記載のセキュア通信方法。
【請求項11】
前記制御ステップでは、前記暗復号認証処理ステップからの完了ハードウェア割り込みコンテキスト、又は、ソフトウェア遅延割り込みコンテキストにより、処理が完了した1つ前のパケットの処理結果を前記暗復号認証処理ステップから取得する暗復号認証後半処理を行い、ネットワークプロトコルの前半処理が完了した次のパケットがある場合は、同じCPUコンテキストにより、次のパケットの暗復号処理又は認証処理を前記暗復号認証処理手段に依頼する暗復号認証前半処理を行い、1つ前のパケットのネットワークプロトコル後半処理を前記ネットワークプロトコル処理ステップにおいて処理する請求項8記載のセキュア通信方法。
【請求項12】
前記制御ステップでは、前記各処理を、(i)次のパケットのネットワークプロトコルの前半処理、(ii)1つ前のパケットの暗復号認証後半処理、(iii)次のパケットの暗復号認証前半処理、及び(iv)1つ前のパケットのネットワークプロトコルの後半処理、の順に並び替える請求項11記載のセキュア通信方法。
【請求項13】
ネットワークプロトコルの前半処理が完了したパケットを、パケット毎に優先度を設定し、暗復号処理又は認証処理に必要なパラメータとともに暗復号認証リクエストとして蓄積し、該暗復号認証リクエストを優先度順に前記暗復号認証処理ステップに受け渡すステップをさらに備える請求項8記載のセキュア通信方法。
【請求項14】
請求項8乃至請求項13のいずれかに記載のセキュア通信方法の各ステップをコンピュータに実行させるためのプログラム。


【図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−57122(P2010−57122A)
【公開日】平成22年3月11日(2010.3.11)
【国際特許分類】
【出願番号】特願2008−222554(P2008−222554)
【出願日】平成20年8月29日(2008.8.29)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】