(57)【特許請求の範囲】
【請求項１】
パケットに対して暗号処理、復号処理及び認証処理の少なくとも１つを施すセキュリティ通信パケット処理装置であって、
Ｂ1ビットのデータブロックの単位で暗号処理又は復号処理をする１以上の暗号処理手段と、
前記暗号処理手段による暗号処理又は復号処理と並行して、Ｂ2（＝ｎ×Ｂ1）ビットのデータブロックの単位で認証処理をし、認証処理の結果を示す認証値を出力する１以上の認証処理手段と、
前記暗号処理手段による暗号処理が施されたデータブロックを蓄積し、その蓄積量がＢ2ビットに等しくなると、それらのデータブロックを前記認証処理手段に出力する１以上のデータブロック蓄積手段と、
前記暗号処理手段から暗号処理又は復号処理が施されたデータブロックを受け取り、前記認証処理手段から認証値を受け取り、受け取ったデータブロック及び認証値を含むパケットを構築するパケット構築手段と、
入力されたパケットをＢ1ビットのデータブロックに分割し、順次、前記暗号処理手段に出力する制御手段と
を備えることを特徴とするセキュリティ通信パケット処理装置。
【請求項２】
前記制御手段は、入力されたパケットが、暗号処理及び認証処理が必要な第１タイプのパケット、復号処理及び認証処理が必要な第２タイプのパケット、暗号処理又は復号処理だけが必要な第３タイプのパケット、並びに、認証処理だけが必要な第４タイプのパケットのいずれであるかを判断し、
前記第１タイプのパケットであると判断した場合には、そのパケットをＢ1ビットのデータブロックに分割し、順次、前記暗号処理手段に出力し、
前記第２タイプのパケットであると判断した場合には、そのパケットをＢ1ビットのデータブロックに分割し、順次、前記暗号処理手段に出力するとともに、前記パケット又は前記パケットの複製をＢ2ビットのデータブロックに分割し、順次、前記認証処理手段に出力し、
前記第３タイプのパケットであると判断した場合には、そのパケットをＢ1ビットのデータブロックに分割し、順次、前記暗号処理手段に出力し、
前記第４タイプのパケットであると判断した場合には、そのパケットをＢ2ビットのデータブロックに分割し、順次、前記認証処理手段に出力する
ことを特徴とする請求項１記載のセキュリティ通信パケット処理装置。
【請求項３】
前記暗号処理手段及び前記認証処理手段の少なくとも一方の数は、２以上であり、
前記データブロック蓄積手段の数は、前記暗号処理手段の数と等しい
ことを特徴とする請求項１記載のセキュリティ通信パケット処理装置。
【請求項４】
前記制御手段は、２以上の暗号処理手段又は２以上の認証処理手段の中から、処理可能状態となっている暗号処理手段又は認証処理手段を特定し、特定した暗号処理手段又は認証処理手段に前記データブロックを出力する
ことを特徴とする請求項３記載のセキュリティ通信パケット処理装置。
【請求項５】
前記セキュリティ通信パケット処理装置は、さらに、
前記制御手段の出力部と前記暗号処理手段の入力部、前記制御手段の出力部と前記認証処理手段の入力部、前記暗号処理手段の出力部と前記データブロック蓄積手段の入力部、前記データブロック蓄積手段の出力部と前記認証処理手段の入力部とをそれぞれ独立して接続することが可能なデータパス接続切替手段を備える
ことを特徴とする請求項１記載のセキュリティ通信パケット処理装置。
【請求項６】
前記制御手段は、入力されたパケットが、暗号処理及び認証処理が必要な第１タイプのパケット、復号処理及び認証処理が必要な第２タイプのパケット、暗号処理又は復号処理だけが必要な第３タイプのパケット、並びに、認証処理だけが必要な第４タイプのパケットのいずれであるかを判断し、
前記第１タイプのパケットであると判断した場合には、前記データパス接続切替手段を制御することにより、前記制御手段の出力部と前記暗号処理手段の入力部、前記暗号処理手段の出力部と前記データブロック蓄積手段の入力部、及び、前記データブロック蓄積手段の出力部と前記認証処理手段の入力部とを接続させ、
前記第２タイプのパケットであると判断した場合には、前記データパス接続切替手段を制御することにより、前記制御手段の出力部と前記暗号処理手段の入力部、及び、前記制御手段の出力部と前記認証処理手段の入力部とを接続させ、
前記第３タイプのパケットであると判断した場合には、前記データパス接続切替手段を制御することにより、前記制御手段の出力部と前記暗号処理手段の入力部とを接続させ、
前記第４タイプのパケットであると判断した場合には、前記データパス接続切替手段を制御することにより、前記制御手段の出力部と前記認証処理手段の入力部とを接続させる
ことを特徴とする請求項５記載のセキュリティ通信パケット処理装置。
【請求項７】
前記暗号処理手段及び前記認証処理手段の少なくとも一方の数は、２以上であり、
前記データブロック蓄積手段の数は、前記暗号処理手段の数と等しい
ことを特徴とする請求項６記載のセキュリティ通信パケット処理装置。
【請求項８】
前記制御手段は、２以上の暗号処理手段又は２以上の認証処理手段の中から、処理可能状態となっている暗号処理手段又は認証処理手段を特定し、特定した暗号処理手段又は認証処理手段を前記データパス接続切替手段によって接続させる
ことを特徴とする請求項７記載のセキュリティ通信パケット処理装置。
【請求項９】
前記セキュリティ通信パケット処理装置は、さらに、
前記暗号処理手段、前記認証処理手段及び前記データブロック蓄積手段の少なくとも１つの処理部について、その処理部で処理されているデータブロックを一時的に退避させるための記憶領域をその処理部に対応させて個別に有する処理データ退避手段を前記処理部ごとに対応させて備える
ことを特徴とする請求項１記載のセキュリティ通信パケット処理装置。
【請求項１０】
前記制御手段は、新たにパケットが入力されると、パケットのデータブロックを処理中の前記処理部の中から、最も優先度の低いパケットのデータブロックを処理している処理部を特定し、その処理部で処理されているデータブロックを前記処理データ退避手段に退避させた後に、その処理部に、新たに入力された前記パケットのデータブロックを処理させる
ことを特徴とする請求項９記載のセキュリティ通信パケット処理装置。
【請求項１１】
前記セキュリティ通信パケット処理装置は、さらに、
前記制御手段の出力部と前記暗号処理手段の入力部、前記制御手段の出力部と前記認証処理手段の入力部、前記暗号処理手段の出力部と前記データブロック蓄積手段の入力部、前記データブロック蓄積手段の出力部と前記認証処理手段の入力部とをそれぞれ独立して接続することが可能なデータパス接続切替手段を備える
ことを特徴とする請求項１０記載のセキュリティ通信パケット処理装置。
【請求項１２】
前記暗号処理手段及び前記認証処理手段の少なくとも一方の数は、２以上であり、
前記データブロック蓄積手段の数は、前記暗号処理手段の数と等しい
ことを特徴とする請求項１１記載のセキュリティ通信パケット処理装置。
【請求項１３】
前記セキュリティ通信パケット処理装置は、さらに、
前記暗号処理手段、前記認証処理手段及び前記データブロック蓄積手段の少なくとも２つの処理部について、それらの処理部で処理されているデータブロックを一時的に退避させるための共通の記憶領域を有する処理データ退避手段を備える
ことを特徴とする請求項１記載のセキュリティ通信パケット処理装置。
【請求項１４】
前記制御手段は、新たにパケットが入力されると、パケットのデータブロックを処理中の前記処理部の中から、最も優先度の低いパケットのデータブロックを処理している処理部を特定し、その処理部で処理されているデータブロックを前記処理データ退避手段に退避させた後に、その処理部に、新たに入力された前記パケットのデータブロックを処理させる
ことを特徴とする請求項１３記載のセキュリティ通信パケット処理装置。
【請求項１５】
前記セキュリティ通信パケット処理装置は、さらに、
前記制御手段の出力部と前記暗号処理手段の入力部、前記制御手段の出力部と前記認証処理手段の入力部、前記暗号処理手段の出力部と前記データブロック蓄積手段の入力部、前記データブロック蓄積手段の出力部と前記認証処理手段の入力部とをそれぞれ独立して接続することが可能なデータパス接続切替手段を備える
ことを特徴とする請求項１４記載のセキュリティ通信パケット処理装置。
【請求項１６】
前記暗号処理手段及び前記認証処理手段の少なくとも一方の数は、２以上であり、
前記データブロック蓄積手段の数は、前記暗号処理手段の数と等しい
ことを特徴とする請求項１５記載のセキュリティ通信パケット処理装置。
【請求項１７】
前記Ｂ1は、６４であり、
前記Ｂ2は、５１２である
ことを特徴とする請求項１記載のセキュリティ通信パケット処理装置。
【請求項１８】
制御手段と暗号処理手段とデータブロック蓄積手段と認証処理手段とパケット構築手段とを備えるセキュリティ通信パケット処理装置によって、パケットに対して暗号処理、復号処理及び認証処理の少なくとも１つを施すセキュリティ通信パケット処理方法であって、
制御手段により、入力されたパケットをＢ1ビットのデータブロックに分割する分割ステップと、
暗号処理手段により、分割されたＢ1ビットのデータブロックに対して暗号処理又は復号処理をする暗号処理ステップと、
データブロック蓄積手段により、前記暗号処理が施されたデータブロックを蓄積し、その蓄積量がＢ2（＝ｎ×Ｂ1）ビットに等しくなると、それらのデータブロックを出力するデータブロック蓄積ステップと、
認証処理手段により、前記暗号処理又は復号処理と並行して、前記Ｂ2ビットのデータブロックに対して認証処理をし、認証処理の結果を示す認証値を出力する認証処理ステップと、
パケット構築手段により、前記暗号処理又は復号処理が施されたデータブロックを受け取り、前記認証値を受け取り、受け取ったデータブロック及び認証値を含むパケットを構築するパケット構築ステップと
を含むことを特徴とするセキュリティ通信パケット処理方法。
【請求項１９】
前記セキュリティ通信パケット処理方法は、さらに、
前記制御手段により、入力されたパケットが、暗号処理及び認証処理が必要な第１タイプのパケット、復号処理及び認証処理が必要な第２タイプのパケット、暗号処理又は復号処理だけが必要な第３タイプのパケット、並びに、認証処理だけが必要な第４タイプのパケットのいずれであるかを判断し、前記第１タイプのパケットであると判断した場合に、前記制御手段による前記分割ステップでの分割、前記暗号処理手段による前記暗号処理ステップでの暗号処理、前記データブロック蓄積手段による前記データブロック蓄積ステップでの蓄積、前記認証処理手段による前記認証処理ステップでの認証処理、及び、前記パケット構築手段による前記パケット構築ステップでの構築を実行させる制御ステップを含む
ことを特徴とする請求項１８記載のセキュリティ通信パケット処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データパケットによる秘密通信のためのセキュリティ通信パケット処理装置及びその方法に関し、特に、安全性を確保するための処理の高速化及び遅延の低減化技術に関する。
【０００２】
【従来の技術】
近年、インターネットに代表されるＴＣＰ／ＩＰネットワークが急速に普及しており、これに伴い電子音楽配信やＷｅｂ上での商品の売買など、様々な形態のネットビジネスが脚光を浴び、次々に展開されつつある。このようなネットビジネスはサービス提供者側とユーザ側との間で信頼のおける安全な取引が行われることが大前提であるが、インターネットは常にクラッカーによる盗聴やなりすましなどからの危険にさらされており、一般に安全でないネットワークと考えられている。そこで重要になってくるのが、電子認証や通信データの暗号化、ファイアウォールなどに代表されるネットワークセキュリティ技術である。これらは主にソフトウェアによる処理としてなされてきたが、将来的なＴＣＰ／ＩＰインフラストラクチャの広帯域化に備え、暗号処理チップや暗号ボードなどのハードウェアによる高速処理の需要が高まりつつある。
【０００３】
従来、ＩＰＳｅｃ（IP Security Protocol Suite）に代表されるようなセキュリティ通信機能を有するコンピュータ又はネットワーク接続機器において、暗号処理と認証処理の両方を必要とするパケットに対しその処理を行う場合、図１８のフローチャートに示される暗号及び認証処理のように、暗号処理が必要なパケット（ＩＰパケット等）に対しては（ステップ７０１）、まず平文パケットを暗号処理用データブロックに分割し（ステップ７０２）、これを暗号処理した後（ステップ７０３）、暗号化パケットとして再構築し（ステップ７０４）、続いて認証処理が必要な場合には（ステップ７０５）、この暗号化パケットを認証処理用データブロックとして分割し（ステップ７０６）、これを認証処理した後（ステップ７０７）、認証処理済パケットとしてパケットの再構築を行っている（ステップ７０８）。
【０００４】
【発明が解決しようとする課題】
しかしながら、上述の方法では、暗号処理と認証処理の両方を必要とするパケットに対しては、２回のパケット構築処理（図１８のステップ７０４及び７０８）が必要となり、そのために、暗号及び認証の両処理を行う場合の処理の低速化、スループットの低減、暗号処理部又は認証処理部の非効率的な使用につながるという問題点がある。また、このような方法では、あるパケットを暗号処理中に別の優先処理すべき平文パケットがある場合であっても、これを優先処理できないという問題点がある。さらに、暗号処理部と認証処理部を各１つずつしか実装していないケースでは、複数のパケットの同時処理による高速スループットの実現が不可能になるという問題もある。
【０００５】
そこで、本発明は、上記事情を考慮してなされたもので、暗号処理及び認証処理の両方を行う場合の高速化、低遅延化、スループットの向上及び暗号処理部と認証処理部の効率的な使用を図ることができるセキュリティ通信パケット処理装置を提供することを第１の目的とする。
【０００６】
また、本発明は、複数のパケットに対して、暗号（又は復号）処理及び認証処理の少なくとも１つを同時・並行に実行することが可能なセキュリティ通信パケット処理装置を提供することを第２の目的とする。
【０００７】
また、本発明は、１以上の暗号処理部及び認証処理部の中から、パケットの種類に応じた必要な処理部だけを用いて実行させることが可能な処理効率の高いセキュリティ通信パケット処理装置を提供することを第３の目的とする。
【０００８】
また、本発明は、暗号（復号を含む）処理及び認証処理について、パケットの優先処理制御が可能なセキュリティ通信パケット処理装置を提供することを第４の目的とする。
【０００９】
【課題を解決するための手段】
上記第１の目的を達成するために、本発明に係るセキュリティ通信パケット処理装置は、暗号処理用データブロックを処理するための暗号処理部と、認証処理用データブロックを処理するための認証処理部と、前記暗号処理用データブロックと暗号処理に必要な情報とを前記暗号処理部に出力し、前記認証処理用データブロックと認証処理に必要な情報とを前記認証処理部に出力し、前記暗号処理部と前記認証処理部とを制御するための暗号認証処理制御部とを含むセキュリティ通信機能を有するネットワーク接続装置又は前記セキュリティ通信機能を有するコンピュータにおいて、前記暗号処理部において処理されたデータブロックを認証処理用の最小データブロックサイズに等しくなるまで逐次的に蓄積し、前記認証処理用の最小データブロックサイズに等しくなるとこれを前記認証処理部に出力するデータブロック蓄積部を具備し、前記データブロック蓄積部の出力したデータブロックを前記認証処理部が処理している間に、前記暗号処理部は次の暗号処理用データブロックを処理し、前記データブロック蓄積部は次の認証処理用暗号処理済データブロックを蓄積することを特徴とするセキュリティ通信パケット処理装置である。
【００１０】
また、上記第２の目的を達成するために、本発明に係るセキュリティ通信パケット処理装置は、上記セキュリティ通信パケット処理装置において、暗号処理部と認証処理部の少なくともどちらか一方は２個以上設け、前記暗号処理部の数と等しいデータブロック蓄積部とを設けることを特徴とする。
【００１１】
また、上記第３の目的を達成するために、本発明に係るセキュリティ通信パケット処理装置は、上記セキュリティ通信パケット処理装置において、暗号認証処理制御部の処理命令により、前記暗号認証処理制御部より出力するデータブロックが暗号処理用データブロックであれば前記暗号認証処理制御部の出力部と暗号処理部の入力部を接続し、前記暗号認証処理制御部より出力するデータブロックが認証処理用データブロックであれば前記暗号認証処理制御部の出力部と認証処理部の入力部を接続し、前記暗号処理部で処理したデータブロックが更に認証処理も必要であれば前記暗号処理部の出力部とデータブロック蓄積部の入力部とを接続し、前記データブロック蓄積部で蓄積されたデータが出力できる状態になれば前記データブロック蓄積部の出力部と前記認証処理部の入力部とを接続するデータパス接続切替部を設けることを特徴とする。
【００１２】
また、上記第４の目的を達成するために、本発明に係るセキュリティ通信パケット処理装置は、上記セキュリティ通信パケット処理装置において、暗号処理部又は認証処理部において処理されているデータブロック及びデータブロック蓄積部に蓄積されているデータブロックを、暗号認証処理処理制御部の指示によりそのデータブロックに関する情報と共に一時的に退避させる処理データ退避部を、暗号処理部、認証処理部及びデータブロック蓄積部の一部、又は全てに対して個別に設けることを特徴とする。
【００１３】
また、本発明に係るセキュリティ通信パケット処理装置は、上記セキュリティ通信パケット処理装置において、暗号処理部又は認証処理部において処理されているデータブロック及びデータブロック蓄積部に蓄積されているデータブロックを、暗号認証処理制御部の指示によりそのデータブロックに関する情報と共に一時的に退避させる処理データ退避部を、暗号処理部、認証処理部、データブロック蓄積部の任意の組み合わせで共通に設けた構成とすることもできる。
【００１４】
ここで、上記セキュリティ通信パケット処理装置において、暗号処理用データブロックと６４ビットとし、認証処理用データブロックを５１２ビットとすることができる。
【００１５】
なお、本発明は、上記セキュリティ通信パケット処理装置が備える特徴的な処理部を処理ステップとするセキュリティ通信パケット処理方法として実現したり、それらの処理ステップをコンピュータに実行させるためのプログラムとして実現したりすることもできる。そして、そのプログラムは、ＣＤ−ＲＯＭ等の記録媒体や通信ネットワーク等の伝送媒体を介して流通させることができるのは言うまでもない。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
（実施の形態１）
まず、本発明の実施の形態１に係るセキュリティ通信パケット処理装置について説明する。
図１は、本発明の実施の形態１におけるセキュリティ通信パケット処理装置１００の構成を示すブロック図である。本実施の形態におけるセキュリティ通信パケット処理装置１００は、入力されたＩＰパケット等のパケットに対して必要な暗号（復号を含む）処理及び認証処理をブロック単位で施した後にパケットとして再構築し、出力する装置であり、わずか１回のパケット再構築処理だけで暗号（又は復号）処理と認証処理の両方を完遂することが可能な必要最低限の基本構成を有する点に特徴を有し、接続形態が固定された４つの回路ブロック、即ち、暗号認証処理制御部１０１、暗号処理部１０２、データブロック蓄積部１０３、認証処理部１０４及びパケット構築部１０５から構成される。
【００１７】
なお、本実施の形態においては、暗号認証処理制御部１０１に入力されるパケットは、そのパケットに対して施すべき処理内容から、４つの種類に分類される。すなわち１種類目として暗号処理と認証処理の両方が必要なパケット（送信パケット）、２種類目として復号処理と認証処理の両方が必要なパケット（受信パケット）、３種類目として暗号処理又は復号処理のみが必要なパケット、そして最後に４種類目として認証処理のみが必要なパケットである。
【００１８】
暗号認証処理制御部１０１は、外部から処理すべきパケットとそのパケットに施すべき処理に必要な情報（以下、「処理情報」という。）とを受け取り、その処理情報に基づいて、他の構成要素１０２〜１０５を制御（動作のＯＮ／ＯＦＦなどを制御）したり、データの経路を決定する制御をしたり、パケットを暗号処理部１０２の処理単位であるＢ1（例えば、６４）ビット長の暗号処理用（又は復号処理用）データブロックに分割し、その処理情報を含めた形で暗号処理部１０２に出力したり、パケットを認証処理部１０４の処理単位であるＢ2（例えば、５１２）ビット長の認証処理用データブロックに分割し、その処理情報を含めた形で認証処理部１０４に出力したりする。
【００１９】
ここで「処理情報」とは、暗号処理の是非、認証処理の是非、暗号処理を行うのであれば、そのアルゴリズム、鍵情報、ＩＶ（Initial Vector）、暗号処理を行うのか復号処理を行うのかという情報、認証処理を行うのであればそのアルゴリズムや必要に応じてその鍵情報、認証値などを含む。なお、暗号アルゴリズムとしてはＤＥＳ（Data Encryption Standard）や３ＤＥＳを含む。また認証アルゴリズムとしてはＨＭＡＣ−ＭＤ５−９６やＨＭＡＣ−ＳＨＡ−１−９６を含む。また、パケットとその処理情報は識別番号などで対応づけられており、複数のパケットが連続的に暗号認証処理制御部１０１に入力されてもそれらを混同しないような仕組みが保証されている。
【００２０】
図２は、暗号認証処理制御部１０１によるデータの経路制御を説明する図である。暗号認証処理制御部１０１は、処理情報に基づいて、対応するパケットが上述の１種類目の送信パケット、即ち、暗号処理と認証処理の両方を必要とするパケットであると判断すると、図２のデータ経路図１１１に示されるようなデータの流れが形成されるように、各構成要素１０２〜１０５を制御する。つまり、このとき、パケットは、データブロックの単位で、暗号処理部１０２による暗号処理と認証処理部１０４による認証処理とが順次に施され、その結果（認証値）がパケット構築部１０５に入力されるとともに、暗号処理部１０２による暗号処理の結果（暗号処理済みデータブロック）がパケット構築部１０５に入力される。
【００２１】
また、暗号認証処理制御部１０１は、パケットが上述の２種類目の受信パケット、即ち、復号処理と認証処理の両方を必要とするパケットであると判断すると、図２のデータ経路図１１２に示されるようなデータの流れが形成されるように、各構成要素１０２〜１０５を制御する。つまり、このとき、パケットは、データブロックの単位で、暗号処理部１０２による復号処理と認証処理部１０４による認証処理とが並行して施され、それぞれの結果（復号処理済みデータブロック及び認証値）がパケット構築部１０５に入力される。
【００２２】
また、暗号認証処理制御部１０１は、パケットが上述の３種類目のパケット、即ち、暗号処理又は復号処理のみが必要なパケットであると判断すると、図２のデータ経路図１１３に示されるようなデータの流れが形成されるように、各構成要素１０２〜１０５を制御する。つまり、このとき、パケットは、データブロックの単位で、暗号処理部１０２による暗号処理又は復号処理と認証処理部１０４による認証処理とが並行して施され、それぞれの結果（復号処理済みデータブロック及び認証値）がパケット構築部１０５に入力される。
【００２３】
また、暗号認証処理制御部１０１は、パケットが上述の４種類目のパケット、即ち、認証処理のみが必要なパケットであると判断すると、図２のデータ経路図１１４に示されるようなデータの流れが形成されるように、各構成要素１０２〜１０５を制御する。つまり、このとき、パケットは、パケット構築部１０５に転送されるとともに、データブロックの単位で、認証処理部１０４による認証処理が施され、その結果（認証値）がパケット構築部１０５に入力される。
【００２４】
暗号処理部１０２は、ＤＥＳや３ＤＥＳ等の暗号アルゴリズムに従ったブロック暗号及び復号を実行する回路等であり、暗号認証処理制御部１０１から送られてくるＢ1ビットの暗号（又は復号）処理用データブロックを所定のステップ（クロックサイクル）で暗号（又は復号）処理し、その結果を暗号（又は復号）処理済みデータブロックとして、データブロック蓄積部１０３又はパケット構築部１０５に出力する。
【００２５】
図３（ａ）は、暗号処理部１０２の詳細な構成例を示すブロック図である。暗号処理部１０２は、入力されたＢ1ビットの暗号（又は復号）処理用データブロックを保持する入力ブロックバッファ１２１と、ブロック暗号（及び復号）とその暗号（又は復号）に用いられる鍵の処理を実行するブロック暗号器１２２と、暗号（又は復号）処理の結果（Ｂ1ビットの暗号（又は復号）処理済みデータブロック）を保持する出力ブロックバッファ１２３とから構成される。
【００２６】
図３（ｂ）は、図３（ａ）に示されたブロック暗号器１２２での暗号（又は復号）処理の一例を示す図である。入力ブロックバッファ１２１から出力されたＢ1ビットのデータブロックは、固定的なビット置換（初期置換）を経た後に、鍵によって定まる１６ラウンドのスクランブル処理を受け、最後に固定的なビット置換（最終置換）を受ける。暗号認証処理制御部１０１から送られてくる処理情報に含まれるＫ1ビットの秘密鍵は、スケジュール鍵生成のための一定の処理を受けてＫ2ビットの１６個の部分鍵に分離され、対応する各スクランブル処理においてデータブロックと排他的論理和がとられたり、ビット置換の処理内容を決定するのに用いられる。
【００２７】
データブロック蓄積部１０３は、暗号処理部１０２から出力される暗号処理済みデータブロックを蓄積し、その蓄積量が認証処理部１０４による認証処理が可能なデータブロック（Ｂ2ビット）に達したときに、そのＢ2ビットのデータを認証処理用データブロックとして認証処理部１０４に出力するキューバッファ等である。
【００２８】
図４（ａ）は、データブロック蓄積部１０３の機能を示すデータフロー図である。ここでは、認証処理部１０４に入力される認証処理用データブロックのビット長Ｂ2は、暗号処理部１０２から出力される暗号処理済みデータブロックのビット長Ｂ1のｎ倍となっている。図４（ｂ）は、データブロック蓄積部１０３の処理手順を示すフローチャートである。データブロック蓄積部１０３は、例えば、カウンタ付きのＢ1ビット幅のレジスタファイル等で実現され、カウンタをリセットした後に（ステップ１３１）、暗号処理部１０２から出力される暗号処理済みデータブロックを蓄積し（ステップ１３２、１３３）、その数がｎに達したときに（ステップ１３３）、それらｎ個の暗号処理済みデータブロックを、例えば、Ｂ2ビットの並列データとして、認証処理部１０４に出力する（ステップ１３４）という処理を繰り返す（ステップ１３１〜１３４）。
【００２９】
認証処理部１０４は、ＨＭＡＣ−ＭＤ５−９６やＨＭＡＣ−ＳＨＡ−１−９６等の認証アルゴリズムに従った認証処理（ＩＣＶ（Integrity Check Value）の算出及びその整合性の検証を含む処理）を実行する回路等であり、暗号認証処理制御部１０１又はデータブロック蓄積部１０３から送られてくるＢ2ビットの認証処理用データブロックを所定数のステップ（クロックサイクル）で認証処理し、その結果を認証値として、パケット構築部１０５に出力する。
【００３０】
図５（ａ）は、認証処理部１０４の詳細な構成例を示すブロック図である。認証処理部１０４は、入力されたＢ2ビットの認証処理用データブロックを保持する入力ブロックバッファ１４１と、その入力ブロックバッファ１４１から送られてくる認証処理用データブロックに対して一定のハッシュ処理を施すことによって、１個のパケットを構成するｍ個の認証処理用データブロックに対するＡ（例えば、９６）ビットのハッシュ値を算出するハッシュ回路１４２と、算出されたハッシュ値を認証値として保持する認証値出力バッファ１４３とから構成される。
【００３１】
図５（ｂ）は、図５（ａ）に示されたハッシュ回路１４２でのハッシュ処理の概要を示す図である。入力ブロックバッファ１４１に入力されたＢ2ビットのデータブロックは、その時にハッシュ回路１４２が保持するＡ1ビットの認証値を元に所定の処理を受け、このＡ1ビットの認証値を更新する。次に入力されたＢ2ビットのデータブロックは、直前に更新されたＡ1ビットのハッシュ値を元に所定の処理を受け、ハッシュ回路が保持するＡ1ビットの認証値をさらに更新する。この処理を繰り返し、最後のＢ2ビットのデータブロックに対して更新されたＡ1ビットのハッシュ値の一部がこのパケットに対するＡ2ビットの認証値として使用されることになる。
【００３２】
パケット構築部１０５は、暗号認証処理制御部１０１から通知される処理情報等に従って、暗号処理部１０２から出力される暗号（又は復号）処理済みデータブロックを一定順序で並べながら蓄積するとともに、認証処理部１０４から出力される認証値を所定位置に組み込むことによって、暗号認証処理制御部１０１に入力された１つのパケットに対応する処理済みパケットを構築する。具体的には、上述の第１の種類の送信パケットに対しては、暗号処理部１０２から出力される暗号処理済みデータブロックを蓄積するとともに、認証処理部１０４から出力される認証値を組み入れることによって所定フォーマットの暗号及び認証処理済みパケットを再構築し、上述の第２の種類の受信パケットに対しては、暗号処理部１０２から出力される復号処理済みデータブロックを蓄積し、所定のフォーマットにしたがって復号及び認証処理済みパケットを再構築し、上述の第３の種類のパケットに対しては、暗号処理部１０２から出力される暗号（又は復号）処理済みデータブロックを蓄積することによって所定フォーマットの暗号（又は復号）処理済みパケットを再構築し、上述の第４の種類のパケットに対しては、このセキュリティ通信パケット処理装置１００に入力されたパケットを所定のフォーマットにしたがって認証処理済みパケットとして構築する。
【００３３】
なお、暗号処理済みデータブロックについては、ＩＰＳｅｃで規定される暗号ペイロード（ESP : Encapsulating Security Payload）に対するトンネルモードとトランスポートモードに対応するフォーマットでの再構築化が含まれる。同様に、認証値についても、ＩＰＳｅｃで規定される認証ヘッダ（AH : Authentication Header）に対するトンネルモードとトランスポートモードに対応するフォーマットでの再構築化が含まれる。パケットの種類としては、例えば、ＩＰv4とＩＰv6等が含まれる。
【００３４】
次に、以上のように構成された本実施の形態におけるセキュリティ通信パケット処理装置１００の動作について、上述の４種類のパケットが入力された場合それぞれに分けて説明する。
【００３５】
まず、第１の種類のパケット、すなわち暗号処理と認証処理の両方が必要な送信パケットがセキュリティ通信パケット処理装置１００に入力された場合の処理過程（図２のデータ経路図１１１に相当する処理過程）について説明する。
【００３６】
第１のステップとして、暗号認証処理制御部１０１は処理すべきパケットとその処理情報を受け取る。暗号認証処理制御部１０１は、その処理情報から、そのパケットが暗号処理と認証処理の両方が必要な送信パケットであると判断し、そのパケットを暗号処理用データブロックに分割し、そのパケットの処理情報を含めた形で順次、暗号処理部１０２に送る。
【００３７】
第２のステップとして、暗号処理部１０２は、処理情報と暗号処理用データブロックを暗号認証処理制御部１０１から受け取ると、処理情報から、そのブロックに対して適用すべき暗号アルゴリズム、鍵、ＩＶ、暗号化の処理方法などを判断し、その処理方法にしたがって暗号処理用データブロックを暗号化する。なお、暗号処理部１０２では複数の暗号アルゴリズムの処理が可能なように実現されていてもよい。処理された暗号処理済データブロックは、パケット構築部１０５に出力されると同時に、続く認証処理のために、認証処理に必要な処理情報と共にデータブロック蓄積部１０３にも出力される。なお、暗号処理部１０２は、次の暗号処理用データブロックが入力される度に、このような処理を繰り返して実行する。
【００３８】
第３のステップとして、データブロック蓄積部１０３は、暗号処理部１０２より出力された暗号処理済データブロックを認証処理に必要なデータブロックサイズに等しくなるまで逐次的に蓄積し、認証処理に必要なデータブロックサイズに等しくなると、その処理情報とともに認証処理部１０４に出力する。データブロック蓄積部１０３は、蓄積された暗号処理済データブロックの蓄積量が認証用データブロックのサイズに等しいか否かの蓄積状況を、データブロック蓄積部１０３が持つ蓄積ブロックカウンタ等によりカウントすることで判断する。なお、別の方法としては、蓄積ブロックカウンタを暗号認証処理制御部１０１が持つという方法で実現してもよい。
【００３９】
データブロック蓄積部１０３は、次の暗号処理済みデータブロックが入力される度に、それを蓄積し、ｎ個に達しているか否かの判断を繰返し、ｎ個に達している場合には、それまでのデータブロックを認証処理部１０４に出力する。
【００４０】
第４のステップとして、認証処理部１０４は、データブロック蓄積部１０３から暗号処理済の認証処理用データブロックとその処理情報を受け取り、その処理情報に従って認証処理を行い、その認証値を計算する。認証処理部１０４は現在処理中のパケットに対する認証値をその出力値とする。
【００４１】
以上の第１〜第４のステップは、この暗号処理と認証処理の両方が必要な送信パケットのうち暗号処理と認証処理が必要な全てのデータブロックについて繰り返し適用される。
【００４２】
最後に、第５のステップとして、パケット構築部１０５は、暗号認証処理制御部１０１から通知される処理情報等に従って、暗号処理部１０２から出力される暗号処理済みデータブロックを所定順序で並べながら蓄積するとともに、認証処理部１０４から出力される認証値を所定位置に組み込むことによって、暗号認証処理制御部１０１に入力された１つのパケットに対応する暗号及び認証処理済みパケットを構築する。
【００４３】
図６は、暗号処理部１０２での暗号処理と認証処理部１０４での認証処理の動作タイミングを示す図である。ここでは、１つのパケットは、ｍ＊ｎ個の暗号処理用データブロックに分割され、ｎ個の暗号処理用データブロック（暗号処理済みデータブロック）が１個の認証処理用データブロックに相当する。したがって、１つのパケットは、ｍ個の認証処理用データブロックに分割される。
【００４４】
本図に示されるように、暗号処理部１０２での暗号処理が施された暗号処理済みデータブロックは、逐次、データブロック蓄積部１０３に蓄積されていく。データブロック蓄積部１０３にｎ個の暗号処理済みデータブロックが蓄積されると、それらｎ個の暗号処理済みデータブロックは、データブロック蓄積部１０３から取り出されて認証処理部１０４に転送され、認証処理部１０４において、第１番目の認証処理用データブロックとして認証処理が施される。このような暗号処理と認証処理とは、並行して繰り返されていく。その結果、この１つの送信パケットに対して、暗号処理については、ｍ＊ｎ回実行され、認証処理については、ｍ回実行されることになる。なお、このセキュリティ通信パケット処理装置１００に入力される送信パケットの長さや暗号及び認証アルゴリズム等は固定されていないので、そのパケットに付随する処理情報に基づいて、暗号処理及び認証処理の回数は動的に決定され得る。
【００４５】
次に、上述の第２の種類のパケット、すなわち復号処理と認証処理の両方が必要な受信パケットがセキュリティ通信パケット処理装置１００に入力された場合の処理過程（図２のデータ経路図１１２に相当する処理過程）について説明する。
【００４６】
第１のステップとして、暗号認証処理制御部１０１は処理すべきパケットとその処理情報を受け取り、その処理情報から復号処理と認証処理の両方が必要な受信パケットであることを判断すると、このパケットを複製し、１つは復号処理用のパケットとして復号処理用のデータブロックに分割し、暗号処理部１０２にその処理情報と共に出力する。もう１つのパケットは、認証処理用のパケットとして認証処理用のデータブロックに分割し、認証処理部１０４にその処理情報と共に出力する。
【００４７】
第２のステップとして、以下の２つの処理を並行して行う。すなわち１つ目として、暗号処理部１０２は受け取った復号処理用のデータブロックを、その処理情報に基づいて復号し、パケット構築部１０５に出力する。２つ目として認証処理部１０４は受け取った認証処理用のデータブロックを認証処理し、その認証値を計算する。
【００４８】
以上の第１及び第２のステップは、この復号処理と認証処理の両方が必要な受信パケットのうち復号処理と認証処理が必要な全てのデータブロックについて繰り返し適用される。
【００４９】
最後に、第３のステップとして、パケット構築部１０５は、暗号認証処理制御部１０１から通知される処理情報等に従って、暗号処理部１０２から出力される復号処理済みデータブロックを所定順序で並べながら蓄積するとともに、認証処理部１０４から出力される認証値を所定位置に組み込むことによって、暗号認証処理制御部１０１に入力された１つのパケットに対応する復号及び認証処理済みパケットを構築する。
【００５０】
次に、上述の第３の種類のパケット、すなわち暗号処理又は復号処理の必要なパケットがセキュリティ通信パケット処理装置１００に入力された場合の処理過程（図２のデータ経路図１１３に相当する処理過程）についてその詳細を説明する。
【００５１】
第１のステップとして、暗号認証処理制御部１０１は処理すべきパケットとその処理情報を受け取り、その処理情報から暗号処理又は復号処理のみが必要なパケットであることを判断すると、これを暗号処理用データブロックに分割し、その処理情報と共に暗号処理部１０２に出力する。
【００５２】
第２のステップとして暗号処理用データブロックとその処理情報を受け取った暗号処理部１０２は、その処理情報に従って、暗号処理又は復号処理を行い、パケット構築部１０５に処理済データブロックとして出力する。
【００５３】
以上の第１及び第２のステップは、この暗号処理又は復号処理のみが必要なパケットのうち暗号処理あるいは復号処理が必要な全てのデータブロックについて繰り返し適用される。
【００５４】
最後に、第３のステップとして、パケット構築部１０５は、暗号認証処理制御部１０１から通知される処理情報等に従って、暗号処理部１０２から出力される暗号（又は復号）処理済みデータブロックを所定順序で並べながら蓄積することによって、暗号認証処理制御部１０１に入力された１つのパケットに対応する暗号（又は復号）処理済みパケットを構築する。
【００５５】
次に、上述の第４の種類のパケット、すなわち認証処理のみが必要なパケットがセキュリティ通信パケット処理装置１００に入力された場合の処理過程（図２のデータ経路図１１４に相当する処理過程）について説明する。
【００５６】
第１のステップとして、暗号認証処理制御部１０１は処理すべきパケットとその処理情報を受け取り、その処理情報から認証処理のみが必要なパケットであることを判断すると、これを認証処理用データブロックに分割し、その処理情報と共に認証処理部１０４に出力する。
【００５７】
第２のステップとして認証処理用データブロックとその処理情報を受け取った認証処理部１０４はその処理情報に従って認証処理を行い、認証値を計算する。以上の第１及び第２のステップは、この認証処理のみが必要なパケットのうち認証処理が必要な全てのデータブロックについて繰り返し適用される。
【００５８】
最後に、第３のステップとして、パケット構築部１０５は、暗号認証処理制御部１０１から通知される処理情報等に従って、認証処理部１０４から出力される認証値をこのセキュリティ通信パケット処理装置１００に入力されたパケットに組み入れることによって、暗号認証処理制御部１０１に入力された１つのパケットに対応する認証処理済みパケットを構築する。
【００５９】
以上のように、本実施の形態におけるセキュリティ通信パケット処理装置１００によれば、セキュリティ通信パケット処理装置１００に入力されたパケットは、４種類のいずれのタイプであるか判断され、必要なサイズのデータブロックに分割された後に必要な暗号（又は復号）処理及び認証処理が施され、わずか１回のパケット再構築によって処理済みパケットに復元される。
【００６０】
つまり、従来では、暗号処理と認証処理の両方が必要な送信パケットに対して、まず暗号処理を行い、暗号処理済のパケットとして一度構築した後に再度認証処理用のデータブロックに分割し認証処理を行っているので、暗号処理後と認証処理後の２回パケットを構築する必要があり、認証処理部１０４は暗号処理済データブロックがパケットとして再構築されるまで待つ必要があるが、本実施の形態では、暗号処理部１０２と認証処理部１０４の間にデータブロック蓄積部１０３が設けられ、暗号処理部１０２及び認証処理部１０４には常にその処理に必要十分なサイズのデータブロックが入力される仕組みになっており、分割されたパケットの再構築はどのようなセキュリティ処理に対しても１回で済んでいる。つまり、データブロック蓄積部１０３は、暗号処理済データブロックを、認証処理に必要なデータブロックのサイズに等しくなるまで蓄積すると、これらを認証処理部に出力するため、認証処理部１０４での入力待ち時間が従来の方法に比べ大幅に短縮される。したがって、パケットのセキュリティ処理のスループットの向上、低遅延化、高速化及び暗号処理部と認証処理部の効率的な使用が可能となる。
【００６１】
図７は、本実施の形態におけるセキュリティ通信パケット処理装置１００の製品への適用の一例を説明するための図であり、ここでは、ルータやファイヤフォールとして機能するセキュリティゲートウェイ１６０の外観が示されている。このセキュリティゲートウェイ１６０は、インターネット等の公衆通信網であるＷＡＮ１６１と、企業等の内部で使用される複数のコンピュータ等を接続する非公開な通信網であるＬＡＮ１６２とを安全に相互接続する通信装置である。具体的には、このセキュリティゲートウェイ１６０は、例えば、ＩＥＴＦ（Internet Engineering Task Force）が発行するRequest For Comments 2401〜2410で公開されているＩＰＳｅｃの仕様に対応したＩＰレベルでのゲートウェイであり、ＬＡＮ１６２からＷＡＮ１６１に出ていくＩＰパケットについては、必要に応じて、暗号処理と認証処理、暗号処理だけ、又は、認証処理だけを施し、一方、ＷＡＮ１６１からＬＡＮ１６２に入ってくるＩＰパケットについては、必要に応じて、復号処理と認証処理、復号処理だけ、又は、認証処理だけを施すことによって、ＷＡＮ１６１を介した複数の通信装置を、第３者による盗聴やなりすましによる不正行為を排除することが可能な安全な通信路で接続する。
【００６２】
図８（ａ）は、図７に示されたセキュリティゲートウェイ１６０の構成を示す機能ブロック図であり、図８（ｂ）は、そのセキュリティゲートウェイ１６０の通信機能を示すプロトコルスタックを示す。このセキュリティゲートウェイ１６０は、ＬＳＩ等で実現した本実施の形態におけるセキュリティ通信パケット処理装置１００と、ＷＡＮ１６１に接続される通信インターフェースであるＷＡＮインターフェース１６５と、ＬＡＮ１６２に接続される通信インターフェースであるＬＡＮインターフェース１６６と、それら２つのインターフェース１６５及び１６６を介して入出力されるデータを図８（ｂ）に示されるプロトコルスタックに従って変換したり、ＩＰパケットに対する暗号（又は復号）処理及び認証処理をセキュリティ通信パケット処理装置１００に実行させる制御を行うネットワークコントローラ１６７とから構成される。
【００６３】
このようなセキュリティゲートウェイ１６０によって、インターネットを介した秘密通信等は高速化され、例えば、リアルタイム性の要求されるインターネット電話、電子決済等の双方向の対話型通信、動画像等のデジタル著作物の配信等における通信速度と安全性とが飛躍的に向上される。
【００６４】
なお、本実施の形態におけるセキュリティ通信パケット処理装置１００では、各構成要素間のデータの受け渡しやデータ経路については、暗号認証処理制御部１０１による制御の下で決定・制御されたが、これに代えて、あるいは、これに加えて、暗号認証処理制御部１０１、暗号処理部１０２、データブロック蓄積部１０３及び認証処理部１０４の間のデータの受け渡し方法については、例えば各処理部間での２ＷＡＹハンドシェイクによって実現してもよい。
【００６５】
また、本実施の形態におけるセキュリティ通信パケット処理装置１００は、ＬＳＩやＦＰＧＡ（Field Programmable Gate-Array）により実現されても良いし、暗号処理部１０２や認証処理部１０４がＤＳＰ（Digital Signal Processor）により実現されてもよい。
また、本実施の形態においては、データブロック蓄積部１０３は認証処理部１０４と独立な構成として設けられたが、本発明は必ずしもこのような構成に限定されるものではなく、データブロック蓄積部１０３が認証処理部１０４に含まれる形で実現されてもよい。
【００６６】
（実施の形態２）
次に、本発明の実施の形態２に係るセキュリティ通信パケット処理装置について説明する。
図９は、本発明の実施の形態２におけるセキュリティ通信パケット処理装置２００の構成を示すブロック図である。本実施の形態におけるセキュリティ通信パケット処理装置２００は、実施の形態１における暗号処理部又は認証処理部の少なくとも一方が２つ以上であり、かつ、暗号処理部と等しい数のデータブロック蓄積部を有する装置の一例であり、ここでは、１つの暗号処理部、１つのデータブロック蓄積部及び１つの認証処理部を組み合わせたもの（以下、これらの組み合わせを「パケット処理モジュール」という。）を２組並列に並べた構成、即ち、実施の形態１おけるセキュリティ通信パケット処理装置１００の２台に相当する構成を有する。具体的には、このセキュリティ通信パケット処理装置２００は、暗号処理部２０２ａ、データブロック蓄積部２０３ａ、認証処理部２０４ａ及びパケット構築部２０５ａからなるパケット処理モジュールと、暗号処理部２０２ｂ、データブロック蓄積部２０３ｂ、認証処理部２０４ｂ及びパケット構築部２０５ｂからなるパケット処理モジュールと、暗号認証処理制御部２０１とから構成される。
【００６７】
なお、暗号処理部２０２ａ及び２０２ｂ、データブロック蓄積部２０３ａ及び２０３ｂ、認証処理部２０４ａ及び２０４ｂ、パケット構築部２０５ａ及び２０５ｂは、それぞれ、実施の形態１における暗号処理部１０２、データブロック蓄積部１０３、認証処理部１０４、パケット構築部１０５と同一の機能を有する。また、これら各暗号処理部２０２ａ及び２０２ｂ、各認証処理部２０４ａ及び２０４ｂ、各データブロック蓄積部２０３ａ及び２０３ｂには、それぞれを一意に識別するためのＩＤ番号が割り当てられている。以下、本実施の形態について、実施の形態１と異なる部分を中心に説明する。
【００６８】
暗号認証処理制御部２０１は、実施の形態１における暗号認証処理制御部１０１の機能に加えて、２組のパケット処理モジュールをリソースとして効率的に使用する制御機能を有する。具体的には、暗号認証処理制御部２０１は、各処理部２０２ａ〜２０５ａ、２０２ｂ〜２０５ｂが処理中（ＢＵＳＹ）であるか処理可能状態（ＲＥＡＤＹ）であるかといった処理状況を、例えば処理中であることを意味するＢＵＳＹ信号や処理可能状態であることを意味するＲＥＡＤＹ信号を各処理部から受け取ることにより把握している。ここで、例えば２つの暗号処理部２０２ａ及び２０２ｂがいずれも処理可能状態（ＲＥＡＤＹ）にある場合、デフォールトとして、ＩＤ番号の小さい暗号処理部を優先して使用することにしている。２つの認証処理部が同時に処理可能状態にある場合についても同様である。
【００６９】
ただし、暗号認証処理制御部２０１は、暗号処理と認証処理の両方が必要な送信パケットについては、暗号処理が例えば暗号処理部２０２ｂで行われた場合には、そこから出力される暗号処理済データブロックがデータブロック蓄積部２０３ｂに蓄積された後に、認証処理部２０４ｂに入力され、パケット構築部２０５ｂにおいて再構築されるように制御する。即ち、暗号処理と認証処理の両方が必要な送信パケットについては、対象となるデータブロック蓄積部、認証処理部及びパケット構築部は、どの暗号処理部に処理されたかに依存して自ずと決定される。つまり、同一パケット処理モジュールの処理部によって、暗号（又は復号）処理、データブロックの蓄積、認証処理及びパケットの再構築が行われる。
【００７０】
図１０は、本実施の形態におけるセキュリティ通信パケット処理装置２００の動作手順を示すフローチャートである。暗号認証処理制御部２０１は、暗号処理、認証処理、又はその両方の処理が必要なパケットとそのパケットに対する処理情報を受け取ると、そのパケットが暗号処理の必要なパケットであれば、処理可能状態にある暗号処理部２０２ａ又は２０２ｂを特定し、その暗号処理部２０２ａ又は２０２ｂにその処理情報とパケット（分割したデータブロック）を出力し、一方、認証処理のみが必要であれば処理可能状態にある認証処理部２０４ａ又は２０４ｂを特定し、その認証処理部２０４ａ又は２０４ｂにその処理情報とパケット（分割したデータブロック）を出力する（ステップ２１１）。以降の処理は実施の形態１で述べた方法、つまり、パケットの種類に応じた４種類のいずれかのデータ経路に従った手順に沿って、暗号（又は復号）処理や認証処理が行われる（ステップ２１２）。
【００７１】
以上のように、本実施の形態におけるセキュリティ通信パケット処理装置２００によれば、暗号処理部又は認証処理部の少なくともどちらか一方が２つ以上設けられ、暗号認証処理制御部によって、複数のパケットがアイドル状態の暗号処理部又は認証処理部に振り分けられ、複数のパケットに対する暗号処理及び認証処理が並列に実行される。したがって、暗号処理又は認証処理の必要なパケットが連続して入力されたために１つのパケット処理モジュールであればパケットが処理可能状態となって伝送遅延が生じてしまうという不具合が回避され、秘密通信の伝送速度が向上する。
【００７２】
なお、本実施の形態では１組の暗号処理部、認証処理部、データブロック蓄積部を２つ並列に並べた構成について説明したが、必ずしも上記の構成に限定されるものではなく、例えば、暗号処理部の処理性能の和と認証処理部の処理性能の和が等しくなるように暗号処理部と認証処理部を設けるような構成が挙げられる。この場合、暗号処理部と認証処理部それぞれの数の比は、暗号処理用データブロックのサイズをＢ1、認証処理用データブロックのサイズをＢ2（＝ｎＢ1）、暗号処理部の１ブロックあたりの処理ステップ数をＴ1、認証処理部の１ブロックあたりの処理ステップ数をＴ2とすると、暗号処理部の数：認証処理部の数＝ｎＴ1：Ｔ2として求められる。なお、Ｂ、ｎ、Ｔ1、Ｔ2は全て自然数である。
【００７３】
（実施の形態３）
次に、本発明の実施の形態３に係るセキュリティ通信パケット処理装置について説明する。
図１１は、本発明の実施の形態３におけるセキュリティ通信パケット処理装置３００の構成を示すブロック図である。本実施の形態におけるセキュリティ通信パケット処理装置３００は、接続形態が固定されないで動的に決定することが可能な複数の暗号処理部、複数のデータブロック蓄積部及び複数の認証処理部を有する点に特徴を有する装置の一例であり、１つの暗号認証処理制御部３０１と、１つのデータパス接続切替部３０２と、２つの暗号処理部３０３ａ及び３０３ｂと、２つのデータブロック蓄積部３０４ａ及び３０４ｂと、２つの認証処理部３０５ａ及び３０５ｂと、１つのパケット構築部３０６とから構成される。
【００７４】
なお、暗号処理部３０３ａ及び３０３ｂ、データブロック蓄積部３０４ａ及び３０４ｂ、認証処理部３０５ａ及び３０５ｂ、パケット構築部３０６は、それぞれ、実施の形態１における暗号処理部１０２、データブロック蓄積部１０３、認証処理部１０４、パケット構築部１０５と同一の機能を有する。また、これら各暗号処理部３０３ａ及び３０３ｂ、各認証処理部３０５ａ及び３０５ｂ、各データブロック蓄積部３０４ａ及び３０４ｂには、それぞれを一意に識別するためのＩＤ番号が割り当てられている。以下、本実施の形態について、実施の形態１と異なる部分を中心に説明する。
【００７５】
データパス接続切替部３０２は、暗号認証処理制御部３０１からの制御に従って、暗号認証処理制御部３０１の出力部と暗号処理部３０３ａ又は３０３ｂの入力部、暗号認証処理制御部３０１の出力部と認証処理部３０５ａ又は３０５ｂの入力部、暗号処理部３０３ａの出力部とデータブロック蓄積部３０４ａ又は３０４ｂの入力部、暗号処理部３０３ｂの出力部とデータブロック蓄積部３０４ａ又は３０４ｂの入力部、データブロック蓄積部３０４ａの出力部と認証処理部３０５ａ又は３０５ｂの入力部、データブロック蓄積部３０４ｂの出力部と認証処理部３０５ａ又は３０５ｂの入力部とをそれぞれ独立して接続する（又は、接続しないでおく）ことが可能なセレクタ回路等である。
【００７６】
暗号認証処理制御部３０１は、実施の形態１における暗号認証処理制御部１０１の機能に加えて、６つの構成要素３０３ａ、３０３ｂ、３０４ａ、３０４ｂ、３０５ａ及び３０５ｂをリソースとして効率的に使用するために、それらの構成要素の中から必要なものだけを動的に接続するようにデータパス接続切替部３０２を制御する機能を有する。
【００７７】
図１２は、このセキュリティ通信パケット処理装置３００による動作手順を示すフローチャートである。まず、暗号認証処理制御部３０１は、処理すべきパケットとその処理情報を外部から受け取り、処理情報の内容から、パケットの種類、即ち、暗号（又は復号）処理及び認証処理それぞれの必要性を判断し、必要な処理を実行することが可能な（処理可能状態となっている）暗号処理部３０３ａ又は３０３ｂ、データブロック蓄積部３０４ａ又は３０４ｂ、認証処理部３０５ａ及び３０５ｂを特定する（ステップ３１１）。
【００７８】
そして、暗号認証処理制御部３０１は、特定した各処理部がパケットの種類に応じた接続形態となるように、データパス接続切替部３０２に対して接続命令を発する（ステップ３１２）。ここで「接続命令」とは、接続すべき各処理部のＩＤ番号により表されたものや、セレクタの制御信号のようなものであっても良い。例えば、パケットが第１の種類の送信パケットであると判断した場合には、暗号認証処理制御部３０１は、データパス接続切替部３０２に対して、暗号認証処理制御部３０１の出力部と暗号処理部３０３ｂの入力部を接続する命令、暗号処理部３０３ｂの出力部とデータブロック蓄積部３０４ｂの入力部を接続する命令及びデータブロック蓄積部３０４ｂの出力部と認証処理部３０５ｂの入力部を接続する命令を出す。
【００７９】
それに対して、データパス接続切替部３０２は、接続が完了すると、暗号認証処理制御部３０１に接続完了の意味を表すＲＥＡＤＹ信号を出力する（ステップ３１３）。
【００８０】
ＲＥＡＤＹ信号を受け取った暗号認証処理制御部３０１は、処理すべきパケットを必要なデータブロックに分割し、データパス接続切替部３０２を介して、各処理部３０３ａ、３０３ｂ、３０５ａ及び３０５ｂにその処理情報と共に出力する。これによって、実施の形態１で述べた処理手順に従った方法で必要な暗号（又は復号）処理、必要な認証処理及びパケットの再構築が行われる（ステップ３１４）。
【００８１】
次に、実施の形態１で述べた４種類のパケットがこのセキュリティ通信パケット処理装置３００に入力された場合それぞれに分けて具体的な動作を説明する。まず、第１の種類のパケットとして、暗号処理と認証処理の両方が必要な送信パケットがセキュリティ通信パケット処理装置３００に入力された場合の処理過程について説明する。まず、第１のステップとしてまず暗号認証処理制御部３０１は処理すべきパケットとその処理情報を受け取り、処理情報の内容から、暗号処理と認証処理の両方が必要な送信パケットであることを判断すると、どの暗号処理部、データブロック蓄積部、認証処理部が処理可能状態にあるかを実施の形態２で述べた方法により判断する。
【００８２】
ここで例えば暗号処理部３０３ｂ、データブロック蓄積部３０４ｂ及び認証処理部３０５ｂが処理可能状態にあったとすると、第２のステップとして暗号認証処理制御部３０１は、データパス接続切替部３０２に対し、暗号認証処理制御部３０１の出力部と暗号処理部３０３ｂの入力部を接続する命令、暗号処理部３０３ｂの出力部とデータブロック蓄積部３０４ｂの入力部を接続する命令及びデータブロック蓄積部３０４ｂの出力部と認証処理部３０５ｂの入力部を接続する命令を出す。
【００８３】
これに対し、第３のステップとして、データパス接続切替部３０２は、指示された接続命令に従って各処理部を接続し、その接続が完了すると暗号認証処理制御部３０１に接続完了の意味を表すＲＥＡＤＹ信号を出力する。
【００８４】
第４のステップとして、暗号認証処理制御部３０１は、データパス接続切替部３０２からＲＥＡＤＹ信号を受け取ると処理すべきパケットを暗号処理用データブロックに分割し、これを接続された暗号処理部３０３ｂにその処理情報と共に出力する。以降の処理は実施の形態１で述べた第１の種類の送信パケットに対する処理方法にしたがって行われる。
【００８５】
次に第２の種類のパケット、つまり復号処理と認証処理の両方が必要な受信パケットがセキュリティ通信パケット処理装置３００に入力された場合について、その処理過程を説明する。まず、第１のステップとしてまず暗号認証処理制御部３０１は処理すべきパケットとその処理情報を受け取り、処理情報の内容から、復号処理と認証処理の両方が必要な受信パケットであることを判断すると、どの暗号処理部、認証処理部が処理可能状態にあるかを判断する。
【００８６】
ここで例えば暗号処理部３０３ｂ及び認証処理部３０５ｂが処理可能状態にあったとすると、第２のステップとして暗号認証処理制御部３０１は、データパス接続切替部３０２に対し、暗号認証処理制御部３０１の出力部と暗号処理部３０３ｂの入力部を接続する命令、暗号認証処理制御部３０１の出力部と認証処理部３０５ｂの入力部を接続する命令を出す。
【００８７】
第３のステップとして、命令を受けたデータパス接続切替部３０２は命令情報を元に暗号認証処理制御部３０１と暗号処理部３０３ｂを接続し、また暗号認証処理制御部３０１と認証処理部３０５ｂを接続し、接続完了後に、暗号認証処理制御部３０１に対し、ＲＥＡＤＹ信号を出力する。
【００８８】
第４のステップとして、暗号認証処理制御部３０１は実施の形態１で述べた方法と同様にパットを複製して、１つは暗号処理用データブロックに分割し暗号処理部３０３ｂへ、もう１つは認証処理用データブロックに分割して認証処理部３０５ｂへ出力する。以降の処理は実施の形態１で述べた第２の種類のパケットに対する処理方法にしたがって行われる。
【００８９】
次に第３の種類のパケット、つまり暗号又は復号処理の必要なパケットがセキュリティ通信パケット処理装置３００に入力された場合について、その処理過程を説明する。まず、第１のステップとしてまず暗号認証処理制御部３０１は処理すべきパケットとその処理情報を受け取り、処理情報の内容から、暗号処理又は復号処理の必要なパケットであることを判断すると、どの暗号処理部が処理可能状態にあるかを判断する。
【００９０】
ここで例えば暗号処理部３０３ｂが処理可能状態にあったとすると、第２のステップとして暗号認証処理制御部３０１は、データパス接続切替部３０２に対し、暗号認証処理制御部３０１の出力部と暗号処理部３０３ｂの入力部を接続する命令を出す。
【００９１】
第３のステップとして、命令を受けたデータパス接続切替部３０２は命令情報を元に暗号認証処理制御部３０１と暗号処理部３０３ｂを接続し、接続完了後に、暗号認証処理制御部３０１に対し、ＲＥＡＤＹ信号を出力する。
【００９２】
第４のステップとして、暗号認証処理制御部３０１はパケットを暗号処理用データブロックに分割してこれを暗号処理部３０３ｂに出力する。以降の処理は実施の形態１で述べた第３の種類のパケットに対する処理方法にしたがって行われる。
【００９３】
最後に第４の種類のパケット、つまり認証処理の必要なパケットがセキュリティ通信パケット処理装置３００に入力された場合について、その処理過程を説明する。まず、第１のステップとしてまず暗号認証処理制御部３０１は処理すべきパケットとその処理情報を受け取り、処理情報の内容から、認証処理の必要なパケットであることを判断すると、どの認証処理部が処理可能状態にあるかを判断する。
【００９４】
ここで例えば認証処理部３０５ｂが処理可能状態にあったとすると、第２のステップとして暗号認証処理制御部３０１は、データパス接続切替部３０２に対し、暗号認証処理制御部３０１の出力部と認証処理部３０５ｂの入力部を接続する命令を出す。
【００９５】
第３のステップとして、命令を受けたデータパス接続切替部３０２は命令情報を元に暗号認証処理制御部３０１と認証処理部３０５ｂを接続し、接続完了後に、暗号認証処理制御部３０１に対し、ＲＥＡＤＹ信号を出力する。
【００９６】
第４のステップとして、暗号認証処理制御部３０１はパケットを暗号処理用データブロックに分割してこれを認証処理部３０５ｂに出力する。以降の処理は実施の形態１で述べた第４の種類のパケットに対する処理方法にしたがって行われる。
【００９７】
以上のように、本実施の形態におけるセキュリティ通信パケット処理装置３００によれば、各処理部を様々な経路で接続する接続データパス接続切替部３０２が設けられ、これによって、必ずしも１つの暗号処理部と１つのデータブロック蓄積部及び１つの認証処理部がセットとなって固定的に占有されることなく、ある暗号処理部の出力は処理可能状態にある任意のデータブロック蓄積部へと出力でき、またデータブロック蓄積部の出力は処理可能状態にある任意の認証処理部へと入力することが可能な柔軟性の高い構成になっており、暗号処理部、データブロック蓄積部及び認証処理部の組合わせの自由度が高く、効率的な使用が可能となっている。また、暗号処理部や、認証処理部を複数設けたり、ある暗号アルゴリズムを実装した暗号処理部を別の暗号アルゴリズムを実装した暗号処理部で置き換えるなどの操作も容易に実現される。
【００９８】
（実施の形態４）
次に、本発明の実施の形態４に係るセキュリティ通信パケット処理装置について説明する。
図１３は、本発明の実施の形態４におけるセキュリティ通信パケット処理装置４００の構成を示すブロック図である。本実施の形態におけるセキュリティ通信パケット処理装置４００は、実施の形態３のセキュリティ通信パケット処理装置３００において、２つの暗号処理部、２つのデータブロック蓄積部及び２つの認証処理部それぞれに接続される６個のデータ退避領域（処理データ退避部）を追加した構成を備える。つまり、セキュリティ通信パケット処理装置４００は、１つの暗号認証処理制御部４０１と、１つのデータパス接続切替部４０２と、２つの暗号処理部４０３ａ及び４０３ｂと、２つのデータブロック蓄積部４０４ａ及び４０４ｂと、２つの認証処理部４０５ａ及び４０５ｂと、６つの処理データ退避部４０６ａ、４０６ｂ、４０６ｃ、４０６ｄ、４０６ｅ及び４０６ｆと、１つのパケット構築部４０７とから構成される。以下、本実施の形態について、実施の形態３と異なる部分を中心に説明する。
【００９９】
６つの処理データ退避部４０６ａ、４０６ｂ、４０６ｃ、４０６ｄ、４０６ｅ及び４０６ｆは、それぞれ、対応する暗号処理部４０３ａ、４０３ｂ、データブロック蓄積部４０４ａ、４０４ｂ、認証処理部４０５ａ、４０５ｂにおいて処理中の全てのデータを一時的に保存するだけの記憶領域を有するメモリ等である。
【０１００】
なお、本実施の形態では、暗号認証処理制御部４０１は、実施の形態１で述べた４種類のパケットと、その処理情報を受け取るが、その処理情報にはそのパケットの処理の優先度に関する情報が含められているものとする。「優先度に関する情報」とは、例えば数字で表現される。この数字は、例えばＩＰヘッダに含まれるType of Service（ＴｏＳ）ビットの情報に対応づけて割り当てられる。
【０１０１】
暗号認証処理制御部４０１は、実施の形態３における暗号認証処理制御部３０１の機能に加えて、入力されたパケットが持つ優先度に応じたリソース（暗号処理部、データブロック蓄積部及び認証処理部）の割り当て処理を行う。具体的には、パケットが入力されたときに、暗号（又は復号）処理及び認証処理に必要な全てのリソースが処理中であった場合には、その中で最も優先度の低いパケットを処理しているリソースを特定し、処理中のデータを処理データ退避部に退避させることによってそのリソースを開放させ、いま入力された、より優先度の高いパケットの処理を先に実行させるという制御を行う。
【０１０２】
図１４は、このセキュリティ通信パケット処理装置４００による動作手順を示すフローチャートである。
まず、暗号認証処理制御部４０１は、処理すべきパケットとその処理情報を受け取ると、その処理情報からパケットの処理に必要な処理部が処理可能状態にあるか否か判断する（ステップ４１１）。その結果、必要な処理部が処理可能状態にある場合には（ステップ４１１でＹｅｓ）、その処理部にデータブロックとその処理情報を出力し、以降、実施の形態３の処理過程（図１２のステップ３１１〜３１４）に従って処理を進めさせる（ステップ４１２）。
【０１０３】
一方、パケットの処理に必要な処理部がすべて処理中である場合（ステップ４１１でＮｏ）、暗号認証処理制御部４０１は、最も優先度の低いパケットを処理している処理部に対し、現在処理中のデータをその処理部に接続された処理データ退避部に退避させる命令を出す（ステップ４１３）。その退避命令を受けた処理部は、現在処理中のデータとその処理情報を処理データ退避部に退避させ、退避処理完了後に、暗号認証処理制御部４０１にＲＥＡＤＹ信号を出力する（ステップ４１４）。
【０１０４】
そのＲＥＡＤＹ信号を受け取った暗号認証処理制御部４０１は、その処理部にデータブロックとその処理情報を出力し、以降、実施の形態３の処理過程（図１２のステップ３１１〜３１４）に従って処理を進めさせる（ステップ４１５）。優先したパケットに対する全ての処理が完了した後には、その処理部は、退避していた処理中のデータを処理データ退避部から読み出し、中断していたパケットに対する処理を再開する（ステップ４１６）。
【０１０５】
以上のように、本実施の形態におけるセキュリティ通信パケット処理装置４００によれば、実施の形態３の構成に加えて、処理データ退避部４０６ａ、４０６ｂ、４０６ｃ、４０６ｄ、４０６ｅ、４０６ｆが設けられ、これによって、実施の形態３で述べた効果に加え、パケットの優先処理制御が可能となる。
【０１０６】
なお、本実施の形態では、全ての暗号処理部、データブロック蓄積部及び認証処理部にそれぞれ処理データ退避部を設けた構成となっているが、本発明は、必ずしも上記の構成に限定されるものではなく、例えば全ての暗号処理部のみにそれぞれ処理データ退避部を設けるなど、任意の処理部にそれぞれ処理データ退避部を設けても良い。また、本実施の形態は実施の形態２におけるセキュリティ通信パケット処理装置２００にも適用できる。この場合の処理方法については上記と同様の方法によって可能である。
【０１０７】
また、本実施の形態では、暗号認証処理制御部３０１にパケットが入力されたときに、必要な全ての処理部が処理中である場合に、入力されたパケットの優先度とは無関係に、処理中のパケットの中で最も優先度の低いパケットを処理している処理部が強制的に開放されたが、入力されたパケットの優先度との関係を条件に加えてもよい。つまり、入力されたパケットの優先度よりも低く、かつ、処理中のパケットの中で最も優先度の低いパケットを処理している処理部を強制的に開放することにしてもよい。
【０１０８】
また、強制的に開放させる処理部を決定するパラメータとして、パケットの優先度だけでなく、パケットの大きさ、処理に要するステップ数、処理中のパケットの処理が完了するまでの残りステップ数等を用いてもよい。
【０１０９】
（実施の形態５）
次に、本発明の実施の形態５に係るセキュリティ通信パケット処理装置について説明する。
図１５は、本発明の実施の形態５におけるセキュリティ通信パケット処理装置５００の構成を示すブロック図である。本実施の形態におけるセキュリティ通信パケット処理装置５００は、実施の形態２のセキュリティ通信パケット処理装置２００において、２つの暗号処理部、２つのデータブロック蓄積部及び２つの認証処理部に共通のデータ退避領域（処理データ退避部）を追加した構成を備える。つまり、セキュリティ通信パケット処理装置５００は、暗号処理部５０２ａ、データブロック蓄積部５０３ａ、認証処理部５０４ａ及びパケット構築部５０６ａからなるパケット処理モジュールと、暗号処理部５０２ｂ、データブロック蓄積部５０３ｂ、認証処理部５０４ｂ及びパケット構築部５０６ｂからなるパケット処理モジュールと、暗号認証処理制御部５０１と、処理データ退避部５０５とから構成される。
【０１１０】
処理データ退避部５０５は、暗号処理部５０２ａ及び５０２ｂ、データブロック蓄積部５０３ａ及び５０３ｂ、認証処理部５０４ａ及び５０４ｂと接続され、それらの処理部において処理中の全てのデータを一時的に保存するだけの記憶領域を有するメモリ等である。
【０１１１】
なお、本実施の形態では、実施の形態４と同様に、暗号認証処理制御部５０１は、実施の形態１で述べた４種類のパケットと、その処理情報を受け取るが、その処理情報にはそのパケットの処理の優先度に関する情報が含められているものとする。
【０１１２】
暗号認証処理制御部５０１は、実施の形態２における暗号認証処理制御部２０１の機能に加えて、入力されたパケットが持つ優先度に応じたリソース（パケット処理モジュール）の割り当て処理を行う。具体的には、パケットが入力されたときに、暗号（又は復号）処理及び認証処理に必要な全てのリソースが処理中であった場合には、その中で最も優先度の低いパケットを処理しているリソースを特定し、処理中のデータを処理データ退避部５０５に退避させることによってそのリソースを開放させ、いま入力された、より優先度の高いパケットの処理を先に実行させるという制御を行う。
【０１１３】
図１６は、このセキュリティ通信パケット処理装置５００による動作手順を示すフローチャートである。まず、暗号認証処理制御部５０１は、処理すべきパケットとその処理情報を受け取ると、その処理情報からパケットの処理に必要な処理部が処理可能状態にあるか否か判断する（ステップ５１１）。その結果、必要な処理部が処理可能状態にある場合には（ステップ５１１でＹｅｓ）、その処理部にデータブロックとその処理情報を出力し、以降、実施の形態２の処理過程（図１０のステップ２１１〜２１２）に従って処理を進めさせる（ステップ５１２）。
【０１１４】
一方、パケットの処理に必要な処理部がすべて処理中である場合（ステップ５１１でＮｏ）、暗号認証処理制御部５０１は、最も優先度の低いパケットを処理している処理部に対し、現在処理中のデータを処理データ退避部５０５に退避させる命令を退避先のアドレスを含めた形で出す（ステップ５１３）。その退避命令を受けた処理部は、現在処理中のデータとその処理情報を処理データ退避部５０５の指定されたアドレスに退避させ、退避処理完了後に、暗号認証処理制御部５０１にＲＥＡＤＹ信号を出力する（ステップ５１４）。
【０１１５】
そのＲＥＡＤＹ信号を受け取った暗号認証処理制御部５０１は、その処理部にデータブロックとその処理情報を出力し、以降、実施の形態２の処理過程（図１０のステップ２１１〜２１２）に従って処理を進めさせる（ステップ５１５）。優先したパケットに対する全ての処理が完了した後、あるいは、他の処理部が処理可能状態に至った場合には、その処理部は、退避されていた処理中のデータを処理データ退避部５０５から読み出し、中断していたパケットに対する処理を再開する（ステップ５１６）。
【０１１６】
以上のように、本実施の形態におけるセキュリティ通信パケット処理装置５００によれば、実施の形態２の構成に加えて、暗号処理部５０２ａ及び５０２ｂ、データブロック蓄積部５０３ａ及び５０３ｂ、認証処理部５０４ａ及び５０４ｂが共通に使用できる処理データ退避部５０５が設けられ、これによって、実施の形態２で述べた効果に加え、パケットの優先処理制御が可能になるとともに、各処理部それぞれに専用の処理データ退避部を設けた実施の形態４に比べ、処理データ退避部の効率的な使用が可能となる。
【０１１７】
なお、本実施の形態では、全ての暗号処理部、データブロック蓄積部及び認証処理部に共通に処理データ退避部を設けた構成となっているが、必ずしも上記の構成に限定されるものではなく、例えば全ての暗号処理部のみに共通に処理データ退避部を設けるなど、任意の組み合わせの処理部で処理データ退避部を共通に設けても良い。
【０１１８】
また、本実施の形態におけるデータ退避領域の共通化という技術は、実施の形態３におけるセキュリティ通信パケット処理装置３００にも適用することができる。具体的には、図１７に示されるセキュリティ通信パケット処理装置６００のように、暗号処理部６０３ａ及び６０３ｂ、データブロック蓄積部６０４ａ及び６０４ｂ、認証処理部６０５ａ及び６０５ｂに共通のデータ退避領域（処理データ退避部６０６）を追加した構成とすることができる。この場合、暗号認証処理制御部６０１がデータパス接続切替部６０２に、処理中のデータを退避させる対象となる処理部と処理データ退避部６０６とを接続する命令を出すことにより、データの退避が可能となる。
【０１１９】
以上のように、本発明の５つの実施の形態から分かるように、本発明によれば、暗号処理と認証処理の両方の処理を行う場合の処理単位を、その処理を行うのに必要十分なデータブロックサイズとすることにより、同処理単位をパケットとしていた従来技術と比べ、暗号及び認証処理の高速化及び低遅延化が実現できる。
【０１２０】
また、本発明によれば、暗号処理と認証処理の両方の処理を行う場合、暗号処理後のデータブロックは認証処理に必要十分なデータブロックサイズになるまで蓄積され、認証処理用のデータブロックに等しくなるとこれを認証処理するため、暗号処理後に一度パケットとして組み直していた従来技術と比べ、暗号処理後のデータブロックをバッファリングするためのメモリ資源の節約にも寄与できる。
【０１２１】
また、本発明によれば、暗号処理部及び認証処理部の少なくともどちらか一方を２つ以上設けることにより、複数のパケットの同時処理を可能にし、パケットのセキュリティ処理のスループット向上を実現できる。
【０１２２】
また、本発明によれば、データパス接続切替部を設けることにより、暗号処理部又は認証処理部又はその両方が複数個ある場合でも、必ずしも暗号処理部とデータブロック蓄積部と認証処理部それぞれは固定的に対応させる必要はなく、暗号処理後に認証処理の必要なデータブロックは、任意のデータブロック蓄積部へと出力することができ、データブロック蓄積部の出力は任意の認証処理部へと出力できるため、暗号処理部とデータブロック蓄積部と認証処理部のより効率的な使用が可能となり、また暗号処理部と認証処理部の拡張、入替が容易になるという効果がある。
【０１２３】
また、本発明によれば、処理データ退避部を設けることにより、パケット処理は必ずしもセキュリティ通信パケット処理装置に入力された順に処理されるわけではなく、パケットの優先度などに応じ、その処理順序を操作することができる。
【０１２４】
また、本発明によれば、処理データ退避部を暗号処理部、認証処理部及びデータブロック蓄積部の任意の組み合わせで共有することにより、処理データ退避部を共有する処理可能状態にある任意の暗号処理部あるいは認証処理部は、処理データ退避部に処理すべきデータブロックがあればこれを処理することが可能なため、暗号処理部及び認証処理部のより効率的な利用が可能となる。
【０１２５】
以上、本発明に係るセキュリティ通信パケット処理装置について、５つの実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではない。
【０１２６】
つまり、５つの実施の形態における特徴を組み合わせることによって、様々な態様の他の実施の形態を実現することができる。例えば、実施の形態４における特徴（各処理部ごとに処理データ退避部を設けること）を実施の形態２に適用することによって、図９に示されたセキュリティ通信パケット処理装置２００の各処理部２０２ａ、２０２ｂ、２０３ａ、２０３ｂ、２０４ａ及び２０４ｂそれぞれに専用の処理データ退避部が接続されたセキュリティ通信パケット処理装置を実現することができる。
【０１２７】
また、実施の形態２〜５のセキュリティ通信パケット処理装置についても、実施の形態１と同様に、製品への適用として、セキュリティゲートウェイ等の通信装置やコンピュータ装置に組み入れることができるのは言うまでもない。
【０１２８】
なお、本発明の産業上の利用可能性は以下の通りである。つまり、本発明に係るセキュリティ通信パケット処理装置は、各種通信網を接続する中継装置として、また、ルータやファイヤフォールとして機能するセキュリティゲートウェイとして、さらに、インターネット等の公衆通信網であるＷＡＮと企業等の内部で使用される複数のコンピュータ等を接続する非公開な通信網であるＬＡＮとを安全に相互接続する通信装置として用いるのに適している。
【０１２９】
【発明の効果】
以上の説明から明らかなように、本発明に係るセキュリティ通信パケット処理装置は、暗号処理用データブロックを処理するための暗号処理部と、認証処理用データブロックを処理するための認証処理部と、前記暗号処理用データブロックと暗号処理に必要な情報とを前記暗号処理部に出力し、前記認証処理用データブロックと認証処理に必要な情報とを前記認証処理部に出力し、前記暗号処理部と前記認証処理部とを制御するための暗号認証処理制御部とを含むセキュリティ通信機能を有するネットワーク接続装置又は前記セキュリティ通信機能を有するコンピュータにおいて、前記暗号処理部において処理されたデータブロックを認証処理用の最小データブロックサイズに等しくなるまで逐次的に蓄積し、前記認証処理用の最小データブロックサイズに等しくなるとこれを前記認証処理部に出力するデータブロック蓄積部を具備し、前記データブロック蓄積部の出力したデータブロックを前記認証処理部が処理している間に、前記暗号処理部は次の暗号処理用データブロックを処理し、前記データブロック蓄積部は次の認証処理用暗号処理済データブロックを蓄積することを特徴とするセキュリティ通信パケット処理装置である。これによって、暗号処理と認証処理が必要なパケットに対してもその処理単位を暗号処理又は認証処理に必要十分なデータブロックを処理単位とすることにより、低遅延、スループットの向上が図られ、かつ暗号処理部と認証処理部の効率的な使用が可能となる。
【０１３０】
また、本発明に係るセキュリティ通信パケット処理装置は、上記セキュリティ通信パケット処理装置において、暗号処理部と認証処理部の少なくともどちらか一方は２個以上設け、前記暗号処理部の数と等しいデータブロック蓄積部とを設けることを特徴とする。これによって、複数のパケットの並列処理が可能となり、スループットの高いセキュリティ処理が実現される。
【０１３１】
また、本発明に係るセキュリティ通信パケット処理装置は、上記セキュリティ通信パケット処理装置において、暗号認証処理制御部の処理命令により、前記暗号認証処理制御部より出力するデータブロックが暗号処理用データブロックであれば前記暗号認証処理制御部の出力部と暗号処理部の入力部を接続し、前記暗号認証処理制御部より出力するデータブロックが認証処理用データブロックであれば前記暗号認証処理制御部の出力部と認証処理部の入力部を接続し、前記暗号処理部で処理したデータブロックが更に認証処理も必要であれば前記暗号処理部の出力部とデータブロック蓄積部の入力部とを接続し、前記データブロック蓄積部で蓄積されたデータが出力できる状態になれば前記データブロック蓄積部の出力部と前記認証処理部の入力部とを接続するデータパス接続切替部を設けることを特徴とする。これによって、暗号処理部又は認証処理部又はその両方が複数個ある場合でも、必ずしも暗号処理部とデータブロック蓄積部と認証処理部はそれぞれ１対１に対応する必要はなく、暗号処理後に認証処理の必要なデータブロックは、任意のデータブロック蓄積部へと出力することができ、データブロック蓄積部の出力は任意の認証処理部へと出力できるため、暗号処理部とデータブロック蓄積部と認証処理部のより効率的な使用が可能となり、また暗号処理部と認証処理部の拡張、入替が容易となる。
【０１３２】
また、本発明に係るセキュリティ通信パケット処理装置は、上記セキュリティ通信パケット処理装置において、暗号処理部又は認証処理部において処理されているデータブロック及びデータブロック蓄積部に蓄積されているデータブロックを、暗号認証処理処理制御部の指示によりそのデータブロックに関する情報と共に一時的に退避させる処理データ退避部を、暗号処理部、認証処理部及びデータブロック蓄積部の一部、又は全てに対して個別に設けることを特徴とする。これによって、パケットの優先処理が可能となる。
【０１３３】
また、本発明に係るセキュリティ通信パケット処理装置は、上記セキュリティ通信パケット処理装置において、暗号処理部又は認証処理部において処理されているデータブロック及びデータブロック蓄積部に蓄積されているデータブロックを、暗号認証処理制御部の指示によりそのデータブロックに関する情報と共に一時的に退避させる処理データ退避部を、暗号処理部、認証処理部、データブロック蓄積部の任意の組み合わせで共通に設けた構成とすることもできる。これによって、処理データ退避部に接続された任意の暗号処理部、認証処理部又はデータブロック蓄積部は１つの処理データ退避部を利用することができ、また処理データ退避部にある処理途中のデータブロックは処理データ退避部に接続された任意の暗号処理部、認証処理部又はデータブロック蓄積部によって処理を再開できることが可能となり、上記セキュリティ通信パケット処理装置とは異なる構成で、パケットの優先処理が可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるセキュリティ通信パケット処理装置の構成を示すブロック図である。
【図２】暗号認証処理制御部によるデータの経路制御を説明する図である。
【図３】（ａ）は、暗号処理部の詳細な構成例を示すブロック図である。（ｂ）は、（ａ）に示されたブロック暗号器での暗号（又は復号）処理の一例を示す図である。
【図４】（ａ）は、データブロック蓄積部の機能を示すデータフロー図である。（ｂ）は、データブロック蓄積部の処理手順を示すフローチャートである。
【図５】（ａ）は、認証処理部の詳細な構成例を示すブロック図である。（ｂ）は、（ａ）に示されたハッシュ回路でのハッシュ処理の概要を示す図である。
【図６】暗号処理部での暗号処理と認証処理部での認証処理の動作タイミングを示す図である。
【図７】本発明のセキュリティ通信パケット処理装置の製品への適用の一例を示す図である。
【図８】（ａ）は、図７に示されたセキュリティゲートウェイの構成を示す機能ブロック図であり、（ｂ）は、そのセキュリティゲートウェイの通信機能を示すプロトコルスタックを示す。
【図９】本発明の実施の形態２におけるセキュリティ通信パケット処理装置の構成を示すブロック図である。
【図１０】同セキュリティ通信パケット処理装置の動作手順を示すフローチャートである。
【図１１】本発明の実施の形態３におけるセキュリティ通信パケット処理装置の構成を示すブロック図である。
【図１２】同セキュリティ通信パケット処理装置による動作手順を示すフローチャートである。
【図１３】本発明の実施の形態４におけるセキュリティ通信パケット処理装置の構成を示すブロック図である。
【図１４】同セキュリティ通信パケット処理装置による動作手順を示すフローチャートである。
【図１５】本発明の実施の形態５におけるセキュリティ通信パケット処理装置の構成を示すブロック図である。
【図１６】同セキュリティ通信パケット処理装置による動作手順を示すフローチャートである。
【図１７】変形例に係るセキュリティ通信パケット処理装置のブロック図である。
【図１８】暗号処理と認証処理の両方を必要とするパケットに対する従来の処理手順を示すフローチャートである。
【符号の説明】
１００    セキュリティ通信パケット処理装置
１０１    暗号認証処理制御部
１０２    暗号処理部
１０３    データブロック蓄積部
１０４    認証処理部
１０５    パケット構築部
１２１    入力ブロックバッファ
１２２    ブロック暗号器
１２３    出力ブロックバッファ
１４１    入力ブロックバッファ
１４２    ハッシュ回路
１４３    認証値出力バッファ
１６０    セキュリティゲートウェイ
１６１    ＷＡＮ
１６２    ＬＡＮ
１６５    ＷＡＮインターフェース
１６５    インターフェース
１６６    ＬＡＮインターフェース
１６７    ネットワークコントローラ
２００    セキュリティ通信パケット処理装置
２０１    暗号認証処理制御部
２０２ａ、２０２ｂ  暗号処理部
２０３ａ、２０３ｂ  データブロック蓄積部
２０４ａ、２０４ｂ  認証処理部
２０５ａ、２０５ｂ  パケット構築部
３００    セキュリティ通信パケット処理装置
３０１    暗号認証処理制御部
３０２    データパス接続切替部
３０３ａ、３０３ｂ  暗号処理部
３０４ａ、３０４ｂ  データブロック蓄積部
３０５ａ、３０５ｂ  認証処理部
３０６    パケット構築部
４００    セキュリティ通信パケット処理装置
４０１    暗号認証処理制御部
４０２    データパス接続切替部
４０３ａ、４０３ｂ  暗号処理部
４０４ａ、４０４ｂ  データブロック蓄積部
４０５ａ、４０５ｂ  認証処理部
４０６ａ〜４０６ｆ  処理データ退避部
４０７    パケット構築部
５００    セキュリティ通信パケット処理装置
５０１    暗号認証処理制御部
５０２ａ、５０２ｂ  暗号処理部
５０３ａ、５０３ｂ  データブロック蓄積部
５０４ａ、５０４ｂ  認証処理部
５０５    処理データ退避部
５０６ａ、５０６ｂ  パケット構築部
６００    セキュリティ通信パケット処理装置
６０１    暗号認証処理制御部
６０２    データパス接続切替部
６０３ａ、６０３ｂ  暗号処理部
６０４ａ、６０４ｂ  データブロック蓄積部
６０５ａ、６０５ｂ  認証処理部
６０６    処理データ退避部
【図１】
0003990565.tif 000002
【図２】
0003990565.tif 000003
【図３】
0003990565.tif 000004
【図４】
0003990565.tif 000005
【図５】
0003990565.tif 000006
【図６】
0003990565.tif 000007
【図７】
0003990565.tif 000008
【図８】
0003990565.tif 000009
【図９】
0003990565.tif 000010
【図１０】
0003990565.tif 000011
【図１１】
0003990565.tif 000012
【図１２】
0003990565.tif 000013
【図１３】
0003990565.tif 000014
【図１４】
0003990565.tif 000015
【図１５】
0003990565.tif 000016
【図１６】
0003990565.tif 000017
【図１７】
0003990565.tif 000018
【図１８】
0003990565.tif 000019