(57)【要約】【課題】従来のＩＰｓｅｃ通信を提供する暗号通信装置では、メインメモリ上のＳＡＤを使用する場合には高速処理を提供できず、ハードウェア上に実装されたＳＡＤを使用する場合には同時に多くの通信相手とＩＰｓｅｃ通信をすることができなかった。【解決手段】高速処理可能だが登録可能なセキュリティパラメータの少ないセキュア処理部と処理が低速であるが登録可能なセキュリティパラメータの多いセキュア処理部を有することで、高速処理が不要なセキュリティ通信を提供しつつ、高速処理が必要なセキュリティ通信も同時に提供することが可能となる。【選択図】  図２
2004304696.tif 000002
【特許請求の範囲】
【請求項１】
パケットのヘッダ情報に対応したセキュリティパラメータが登録された第１のセキュリティデータベースと、
前記第１のセキュリティデータベースに登録されたセキュリティパラメータに基づいて、通常のパケットをセキュアなパケットに変換して送信し、受信したセキュアなパケットを通常のパケットに変換する第１のセキュア処理部を有するネットワークインターフェースと、
パケットのヘッダ情報に対応したセキュリティパラメータが登録された１つないし複数の（ｎ−１）個（ｎは２以上の整数）の第２〜第ｉのセキュリティデータベースと、
前記第ｉのセキュリティデータベースに登録されたセキュリティパラメータに基づいて、通常のパケットをセキュアなパケットに変換して前記ネットワークインターフェースに転送し、受信したセキュアなパケットを通常のパケットに変換する第ｉのセキュア処理部（ｉ＝２〜ｎ）と、
セキュリティパラメータのサービスクラスに基づいてセキュリティパラメータを前記第１〜第ｎのセキュリティデータベースのいずれかに登録する制御部と
を有する暗号通信装置。
【請求項２】
パケットのヘッダ情報に対応したセキュリティアソシエーションが登録された第１のＳＡＤと、
前記第１のＳＡＤに登録されたセキュリティアソシエーションに基づいて、ＩＰパケットをＩＰｓｅｃパケットに変換し、ＩＰｓｅｃパケットをＩＰパケットに変換する第１のＩＰｓｅｃ処理部を有するネットワークインタフェースと、
パケットのヘッダ情報に対応したセキュリティアソシエーションが登録された１つないし複数の（ｎ−１）個（ｎは２以上の整数）の第２〜第ｉのＳＡＤと、
前記第ｉのＳＡＤに登録されたセキュリティアソシエーションに基づいて、ＩＰパケットをＩＰｓｅｃパケットに変換して前記ネットワークインタフェースに転送し、受信したＩＰｓｅｃパケットをＩＰパケットに変換する第ｉのＩＰｓｅｃ処理部（ｉ＝２〜ｎ）と、
セキュリティアソシエーションのサービスクラスに基づいてセキュリティアソシエーションを前記第１〜第ｎのＳＡＤのいずれかに登録する制御部と
を有する暗号通信装置。
【請求項３】
ＩＰパケットの宛先アドレスと前記ＩＰパケットの転送先を定めた経路情報に基づいてＩＰパケットを転送する経路制御部を有し、制御部がセキュリティアソシエーションを登録したＳＡＤに応じて前記経路情報を設定する請求項２記載の暗号通信装置。
【請求項４】
制御部が削除したセキュリティアソシエーションに対応した経路情報も削除する請求項３記載の暗号通信装置。
【請求項５】
サービスクラスとして、セキュリティアソシエーションを第１のＳＡＤに登録することを示す第１のクラスと、セキュリティアソシエーションを第ｉのＳＡＤに登録することを示す第ｉのクラスを有する請求項２〜４記載の暗号通信装置。
【請求項６】
サービスクラスとして、セキュリティアソシエーションを第１のＳＡＤに空きエントリが存在すれば前記第１のＳＡＤに登録し、空きエントリが存在しなければ第２のＳＡＤに登録することを示すクラスＡを有する請求項２〜５記載の暗号通信装置。
【請求項７】
制御部が第１のＳＡＤからセキュリティアソシエーションを削除し、第ｉのＳＡＤに登録されたクラスＡに属するセキュリティアソシエーションを１つ選択して削除し、前記第１のＳＡＤに登録する請求項６記載の暗号通信装置。
【請求項８】
制御部が、第１のＳＡＤの空きエントリが存在しない場合に、前記第１のＳＡＤからクラスＡに属するセキュリティアソシエーションを１つ選択し、選択された前記セキュリティアソシエーションを前記第１のＳＡＤから削除して第２のＳＡＤに登録し、第１のクラスに属するセキュリティアソシエーションを前記第１のＳＡＤに登録する請求項６記載の暗号通信装置。
【請求項９】
制御部がセキュリティアソシエーションに対応したアドレス情報とサービスクラスを含むサービスクラス情報を保持するサービスクラス管理表を有し、前記制御部が前記サービスクラス管理表からセキュリティアソシエーションに対応したサービスクラスを獲得する請求項２〜８記載の暗号通信装置。
【請求項１０】
サービスクラスとして、サービスクラス情報をサービスクラス管理表に登録する際に第１のＳＡＤの空きエントリを予約し、予約された前記第１のＳＡＤの空きエントリにセキュリティアソシエーションを登録することを示すクラスＢを有する請求項９記載の暗号通信装置。
【請求項１１】
サービスクラス情報がサービスクラス情報の識別子であるサービスクラス情報識別子を含み、制御部が第１のＳＡＤのエントリごとに前記サービスクラス情報識別子を保持する第１のＳＡＤ管理表を有し、サービスクラス管理表に登録されたクラスＢのサービスクラス情報のサービスクラス情報識別子を前記第１のＳＡＤ管理表に登録することで前記第１のＳＡＤの空きエントリが予約される請求項１０記載の暗号通信装置。
【請求項１２】
制御部がクラスＢのサービスクラス情報をサービスクラス管理表から削除することで第１のＳＡＤの空きエントリの予約を解消する請求項１０記載の暗号通信装置。
【請求項１３】
サービスクラス情報がサービスクラス情報の識別子であるサービスクラス情報識別子を含み、制御部が第１のＳＡＤのエントリごとに前記サービスクラス情報識別子を保持する第１のＳＡＤ管理表を有し、前記サービスクラス情報識別子を前記第１のＳＡＤ管理表から削除することで前記第１のＳＡＤの空きエントリの予約が解消される請求項１２記載の暗号通信装置。
【請求項１４】
制御部が、第１のＳＡＤの空きエントリが存在しない場合に、前記第１のＳＡＤからクラスＡに属するセキュリティアソシエーションを削除して第２のＳＡＤに登録し、前記第１のＳＡＤにクラスＢに属するセキュリティアソシエーションに対する予約を行う請求項１０、１１記載の暗号通信装置。
【請求項１５】
制御部が、第１のＳＡＤからクラスＢに属するセキュリティアソシエーションに対する予約の解消後、第ｉのＳＡＤからクラスＡに属するセキュリティアソシエーションを削除して前記第１のＳＡＤに登録する請求項１２、１３記載の暗号通信装置。
【請求項１６】
第２のＳＡＤがセキュリティアソシエーションごとにセキュリティアソシエーションが登録されているＳＡＤを指し示す登録先を保持し、制御部が第１のＳＡＤに登録したセキュリティアソシエーションを登録先と共に前記第２のＳＡＤに登録する請求項２〜１５記載の暗号通信装置。
【請求項１７】
ネットワークインタフェースが制御部からのバイパス指示に従って第１のＩＰｓｅｃ処理部を前記ネットワークインタフェースから切り離す切り替え部を有し、前記制御部が前記第１のＩＰｓｅｃ処理部の異常を検出すると前記切り替え部にバイパス指示を出して第２のＳＡＤに登録された全てのセキュリティアソシエーションの登録先を前記第２のＳＡＤに設定する請求項１６記載の暗号通信装置。
【請求項１８】
制御部が第１のＩＰｓｅｃ処理部の特定レジスタにアクセスすることで異常を検出する請求項１７記載の暗号通信装置。
【請求項１９】
制御部が起動時に第１のＩＰｓｅｃ処理部の特定レジスタにアクセスする請求項１８記載の暗号通信装置。
【請求項２０】
制御部が一定時間ごとに第１のＩＰｓｅｃ処理部の特定レジスタにアクセスする請求項１８記載の暗号通信装置。
【請求項２１】
第１のＩＰｓｅｃ処理部が前記第１のＩＰｓｅｃ処理部の異常を検出する自己診断部を有して制御部に異常の検出を通知する請求項１７記載の暗号通信装置。
【請求項２２】
第１のＩＰｓｅｃ処理部の自己診断部が起動時に前記第１のＩＰｓｅｃ処理部の異常検出を行う請求項２１記載の暗号通信装置。
【請求項２３】
第１のＩＰｓｅｃ処理部の自己診断部が一定時間ごとに前記第１のＩＰｓｅｃ処理部の異常検出を行う請求項２１記載の暗号通信装置。
【請求項２４】
パケットのヘッダ情報に対応したセキュリティアソシエーションが登録された第１のＳＡＤと、
前記第１のＳＡＤに登録されたセキュリティアソシエーションに基づいてＩＰパケットをＩＰｓｅｃパケットに変換し、ＩＰｓｅｃパケットをＩＰパケットに変換する第１のＩＰｓｅｃ処理部を有したネットワークインタフェースと、
パケットのヘッダ情報に対応したセキュリティアソシエーションが登録された１つないし複数の（ｎ−１）個（ｎは２以上の整数）の第２〜第ｉのＳＡＤと、
前記第ｉのＳＡＤに登録されたセキュリティアソシエーションに基づいて、ＩＰパケットをＩＰｓｅｃパケットに変換して前記ネットワークインタフェースに転送し、ＩＰｓｅｃパケットをＩＰパケットに変換する第ｉのＩＰｓｅｃ処理部（ｉ＝２〜ｎ）と、
前記第ｉのＩＰｓｅｃ処理部に対するＱＯＳパラメータ値の閾値である第ｉの閾値を保持し、セキュリティアソシエーションのＱＯＳパラメータと前記第ｉの閾値との比較結果に基づいて前記セキュリティアソシエーションを前記第１〜第ｎのＳＡＤのいずれかに登録する制御部と
を有する暗号通信装置。
【請求項２５】
ＱＯＳパラメータとしてスループット値を用いる請求項２４記載の暗号通信装置。
【請求項２６】
ＱＯＳパラメータとして遅延時間を用いる請求項２４記載の暗号通信装置。
【請求項２７】
パケットのヘッダ情報に対応したセキュリティアソシエーションが登録された第１のＳＡＤと、
前記第１のＳＡＤに登録されたセキュリティアソシエーションに基づいて、ＩＰパケットをＩＰｓｅｃパケットに変換し、ＩＰｓｅｃパケットをＩＰパケットに変換する第１のＩＰｓｅｃ処理部を有したネットワークインタフェースと、
パケットのヘッダ情報に対応したセキュリティアソシエーションが登録された１つないし複数の（ｎ−１）個（ｎは２以上の整数）の第２〜第ｉのＳＡＤと、
前記第ｉのＳＡＤに登録されたセキュリティアソシエーションに基づいて、ＩＰパケットをＩＰｓｅｃパケットに変換して前記ネットワークインタフェースに転送し、ＩＰｓｅｃパケットをＩＰパケットに変換する第ｉのＩＰｓｅｃ処理部（ｉ＝２〜ｎ）と、
前記第ｉのＳＡＤのエントリ数から定まる第ｉの閾値を保持し、セキュリティアソシエーションごとに優先順位の高いものから順に指定される優先度と前記第ｉの閾値との比較結果に基づいてセキュリティアソシエーションを前記第１〜第ｎのＳＡＤのいずれかに登録する暗号通信装置。
【請求項２８】
通信相手と相互通信を行ってセキュリティアソシエーションを決定する鍵交換部を有し、前記鍵交換部が送信元アドレス情報と宛先アドレス情報とサービスクラスの組を含む設定ファイルから前記セキュリティアソシエーションのサービスクラスを特定して制御部に前記セキュリティアソシエーションと前記サービスクラスを通知する請求項２〜８記載の暗号通信装置。
【請求項２９】
通信相手と相互通信を行ってセキュリティアソシエーションを決定する鍵交換部を有し、前記鍵交換部が送信元アドレス情報と宛先アドレス情報とサービスクラスの組を含む設定ファイルから制御部にセキュリティアソシエーションとそのサービスクラス情報を通知する請求項９〜２３記載の暗号通信装置。
【請求項３０】
第１のＩＰｓｅｃ処理部が暗号認証処理機能部を有し、第ｉ（ｉは２以上の整数）のＩＰｓｅｃ処理部が前記第１のＩＰｓｅｃ処理部の有する暗号認証処理機能を共用する請求項２〜２９記載の暗号通信装置。
【請求項３１】
第ｉ（ｉは３以上の整数）のＳＡＤが第２のＳＡＤと同一である請求項２〜２９記載の暗号通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＰパケットの暗号化や認証、シーケンス番号の付与を行い、インターネット上において安全な情報の送受信を可能にするＩＰｓｅｃプロトコルにおいて、ＩＰパケットからＩＰｓｅｃパケットを組み立てる機能、およびＩＰｓｅｃパケットからＩＰパケットを復元する機能を有する暗号化通信装置および暗号化通信方法に関する。
【０００２】
【従来の技術】
近年、パーソナルコンピュータやインターネットの普及により、容易かつ安価にインターネット上に公開されるホームページによる情報提供や情報収集が可能になってきている。
【０００３】
また、インターネットや企業間のイントラネットを介した電子メールの交換や、映像の配信、電子商取引や電子決済が一般化しつつある。
【０００４】
このようなサービスを利用する場合、特に重要な情報を含む通信や個人のプライバシーに関わる情報の通信には、専用線並みのセキュリティの確保が求められる。
【０００５】
上述したようなセキュリティを確保する技術の一例として、ＩＰｓｅｃがあげられる。ＩＰｓｅｃとは、ネットワーク層（ＯＳＩ参照モデル第３層）で暗号化、認証を行うセキュリティプロトコルであって、インターネット技術標準化委員会（ＩＥＴＦ）で標準化されている（ＲＦＣ２４０１から２４１２、２４５１）。
【０００６】
ＩＰｓｅｃ機能を搭載したコンピュータやルータ等のネットワーク接続装置を介してインターネットに接続することにより、インターネットのような広域ネットワーク上に仮想施設網（ＶＰＮ）を構築できる。つまり、ユーザはセキュリティを意識することなく、安全にインターネットを利用することができる。
【０００７】
ＩＰｓｅｃを利用した通信を行うにあたって、どのような暗号アルゴリズムや認証アルゴリズムを使用するか、あるいは、どのような暗号鍵や認証鍵を使用するかなどを事前に送信側と受信側のＩＰｓｅｃ機能を搭載したコンピュータやネットワーク接続装置間で整合をとっておく必要がある。
【０００８】
この暗号アルゴリズムや認証アルゴリズム等のセキュリティパラメータの整合をとるためにＩＫＥ（Ｉｎｔｅｒｎｅｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ）と呼ばれるアプリケーションによって相互通信が行なわれる。その結果、整合のとれた暗号アルゴリズムや認証アルゴリズム等のセキュリティパラメータ値は、ＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉｓａｔｉｏｎ）と呼ばれる枠組みによって保持され、ＩＰｓｅｃ処理部に通知される。ＳＡは送信用と受信用の２つで１組であり、送信用と受信用とが同じ値である必要はない。また、ＩＫＥを用いて相互通信を行う代わりに、何からの方法（例えば、送信側と受信側とが電話等を用いてセキュリティパラメータを通知し合う等）によって整合のとれたＳＡを手動でそれぞれのＩＰｓｅｃ処理部に設定しても構わない。
【０００９】
ＩＰｓｅｃ処理部はＳＡで規定された暗号アルゴリズム、認証アルゴリズム、暗号鍵、認証鍵等に基づいて、送信するＩＰパケットをＩＰｓｅｃパケットに変換したり、受信したＩＰｓｅｃパケットをＩＰパケットに復元したりする。以下、ＩＰパケットは、非暗号化パケット、すなわち、暗号化されない、あるいは、復号化されたパケットを指し、ＩＰｓｅｃパケットは、暗号化されたパケットを指すことにする。
【００１０】
以下に、図２５を用いて従来のＩＰｓｅｃを用いた通信方法について説明する。
【００１１】
図２５は、従来のＩＰｓｅｃを用いた暗号通信装置の構成図である。図２５に示すように、暗号通信装置３００は、鍵交換部３１０、パケット送受信部３２０、ＩＰｓｅｃ処理部３３０、ネットワークインタフェース３４０から構成される。
【００１２】
上記ＩＫＥに相当する鍵交換部３１０は、ＩＰｓｅｃ通信の通信相手と相互通信を行なってセキュリティパラメータ値の整合をとり、これらのセキュリティパラメータ値をＳＡとしてＩＰｓｅｃ処理部３３０に通知する。
【００１３】
ＩＰｓｅｃ処理部３３０はＳＡを格納するためのデータベースであるＳＡＤ３３１を有しており、鍵交換部３１０から受け取ったＳＡをＳＡＤ３３１に登録する。
【００１４】
ＳＡＤとはＳＰＩ（Ｓｅｃｕｒｉｔｙ  Ｐａｒａｍｅｔｅｒ  Ｉｎｄｅｘ）やＩＰヘッダ情報をキーとしてＳＡを検索できるデータベースである。ＳＡはセレクタとセキュリティパラメータから構成される。セレクタとはＩＰパケットのヘッダ情報から適用するＳＡを特定するための情報であり、セキュリティパラメータとは暗号アルゴリズムや暗号鍵、認証アルゴリズムや認証鍵、ＩＰｓｅｃプロトコル（ＡＨまたはＥＳＰの識別）、モード（トランスポートモードまたはトンネルモードの識別）等のＩＰパケットをセキュアなＩＰｓｅｃパケットに変換するための識別子やパラメータ値の集合である。
【００１５】
ここで、ＡＨとはそのＩＰパケット全体の認証を行うプロトコルであり、ＥＳＰとはペイロードの暗号・認証を行うプロトコルである。
【００１６】
また、トランスポートモードとは、ホスト間のＩＰｓｅｃ通信で用いられるモードである。ホストは暗号化、復号化の機能を有しており、ホスト自身が、元のＩＰパケットにＩＰｓｅｃプロトコルに応じたヘッダを付加してＩＰｓｅｃパケットとするモードである。トランスポートモードで作成される電文は、暗号化された送信電文に、ＩＰｓｅｃヘッダを付加し、その上に、送信元のＩＰアドレスと宛先のＩＰアドレスの対を含むＩＰヘッダを付与した形となっている。トランスポートモードによる電文の各段階の形態を図２７に示す。ホストとして機能する暗号通信装置ＳＧＷ＃１のパケット送受信部が、ＩＰヘッダと電文本体であるペイロードとから構成される送信電文を作成し、ＳＧＷ＃１内のＩＰｓｅｃ処理部が、ペイロードを暗号化し、ＩＰｓｅｃヘッダを付加し、その上に、元のＩＰヘッダを付与したものを、ネットワークに送出する。受信側のホストである暗号通信装置ＳＧＷ＃２では、ＩＰヘッダの宛先がＳＧＷ＃２自身である電文を受信し、受信した電文のＩＰｓｅｃヘッダ内のＳＰＩ値を使ってペイロードの暗号化を解き、ＳＧＷ＃２のパケット送受信部は、元の電文を受け取る。暗号化や復号化の詳細については後述する。
【００１７】
一方、トンネルモードとは、ゲートウェイなどのネットワーク接続装置間のＩＰｓｅｃ通信に用いられるモードであり、ネットワーク接続装置が、元の非暗号化ＩＰパケットを別のＩＰヘッダを持つＩＰｓｅｃパケットでカプセル化することでＩＰｓｅｃパケットとするモードである。トンネルモードで作成される電文は、ＩＰヘッダを含む送信電文全体が暗号化された後、ＩＰｓｅｃヘッダが付加され、その上に、暗号化処理を行った送信元と宛先を含むＩＰヘッダが新たに付加された形となる。送られる電文の各段階の形態を、図２８に示す。
【００１８】
セレクタには送信元のＩＰアドレス、宛先のＩＰアドレス、ＩＰヘッダ内のプロトコル情報等が含まれる。ＩＰアドレスの代わりに、サブネットワークを指すネットワークアドレスとサブネットマスクの組み合わせが使用される場合もある。したがって、ＩＰパケットのヘッダ情報が、セレクタの設定値に一致するかセレクタで定められたサブネットワークに含まれるＩＰアドレスに含まれるならば、そのセレクタを持つＳＡが検索結果として得られることになる。
【００１９】
一方、ＳＰＩはＳＡを識別するための識別子である。宛先アドレスが等しいＳＡは必ず異なるＳＰＩ値を持ち、全てのＩＰｓｅｃパケットは必ずＳＰＩ値を有する。
【００２０】
したがって、ある宛先アドレスを持つＩＰｓｅｃパケットに適用されているＳＡは、その宛先アドレスを持つホスト装置やネットワーク接続装置上では、ＳＰＩ値をキーとしてＳＡＤを検索することにより誤りなく特定できる。
【００２１】
次に、パケットの送信処理について説明する。
【００２２】
パケット送受信部３２０が送信用ＩＰパケットを生成すると、ＩＰｓｅｃ処理部３３０に転送される。ＩＰｓｅｃ処理部３３０はＳＡＤ３３１、パケット処理部３３２、暗号認証処理部３３３を有する。パケット処理部３３２はＩＰパケットを受け取ると、ＩＰヘッダ情報をキーとしてＳＡＤを検索してＩＰパケットに対応したＳＡを獲得する。さらに、ＳＡに記録されたセキュリティパラメータに従ってＩＰｓｅｃパケットを生成する。また、この生成において、ＩＰｓｅｃパケットヘッダが付加される。ＩＰパケットヘッダには、使用したＳＡに対応してあらかじめ決められたＳＰＩ値を書き込まれる。ＳＰＩ値は、受信の際に使用する。ＩＰｓｅｃパケットの生成処理において、セキュリティパラメータに基づく暗号化や認証処理は暗号認証処理部３３３が行う。生成されたＩＰｓｅｃパケットはネットワークインタフェース３４０に転送されて通信相手に送信される。
【００２３】
次に、パケットの受信処理について説明する。
【００２４】
ネットワークインタフェース３４０がパケットを受信すると、ＩＰｓｅｃ処理部３３０に転送され、パケット処理部３３２がパケットのヘッダ情報を解析して自分宛のパケットであることを確認した後、ＩＰｓｅｃパケットであるか否かを確認する。
【００２５】
ＩＰｓｅｃパケットであれば、パケットからＳＰＩ値を獲得し、そのＳＰＩ値をキーとしてＳＡＤ３３１を検索してパケットに対応したＳＡを獲得する。さらに、パケットを暗号認証処理部３３３に送ってＳＡに定められたセキュリティパラメータに基づいて復号化や認証処理を行い、ＩＰパケットを復元する。復元されたＩＰパケットは、パケット送受信部３２０に送られる。パケット送受信部３２０は、受け取ったＩＰパケットから電文データを取り出し、図示しない所定のアプリケーションに渡す。アプリケーションは、受け取った電文データを利用する。
【００２６】
以上説明したように、ＩＰｓｅｃ処理部３３０はＳＡＤ３３１を有し、送信するＩＰパケットのＩＰヘッダ情報をキーにＳＡＤ３３１を検索することで、ＩＰパケットに対応するＳＡを特定する。また、受信したＩＰｓｅｃパケットに含まれるＳＰＩ値をキーにＳＡＤを検索することで、ＩＰｓｅｃパケットに対応したＳＡを特定する。
【００２７】
このように、ＩＰｓｅｃ処理部３３０は上記検索によって獲得したＳＡで定められたセキュリティパラメータに基づいて、ＩＰパケットを暗号化してＩＰｓｅｃパケットを生成したり、ＩＰｓｅｃパケットからＩＰパケットの復元を行ったりする。
【００２８】
また、ＩＰｓｅｃ処理にはＳＡで規定されたセキュリティパラメータに基づくパケットの暗復号化や認証処理が含まれる。この暗復号化や認証処理はパケットごとに実行され、ＣＰＵに非常に大きな負荷をかけたり、多くのシステムバス帯域を消費する。このため、ＩＰｓｅｃ処理部３３０の実装方法として、全ての処理をソフトウェアで行う実装や暗号認証処理部３３３をハードウェア化した実装がある。これらの実装方法では、ＳＡＤ３３１をメインメモリ上に構築するため多くのＳＡを登録することができ、一度に多くの通信相手と通信することができる。
【００２９】
しかし、全ての処理をソフトウェアで行う実装では、ＣＰＵ負荷が高いためにスループットが低く、ＩＰｓｅｃ処理による遅延時間も大きくなる。
【００３０】
また、暗号認証処理部３３３のみをハードウェア化した実装では、メインメモリ上にある暗復号化や認証処理前のパケットデータをハードウェア化された暗号認証処理部３３３に転送して暗復号化や認証処理を行った後に、ハードウェア化された暗号認証処理部３３３から暗復号化や認証処理後のパケットデータをメインメモリ上に転送し、ＣＰＵにより暗号認証処理以外のＩＰｓｅｃ処理を行う必要があり、ＩＰｓｅｃ処理を行わないＩＰパケットの処理の場合に比べてＣＰＵ負荷は高くなり、システムバス帯域の消費も多くなってスループットの向上も限られる。
【００３１】
そこで、ＣＰＵ負荷やシステムバス帯域の消費を低減して高スループットを実現するために、ＩＰｓｅｃ処理全体を実行するハードウェアと専用のＳＡＤを有したネットワークインタフェースが開発されている。
【００３２】
図２６は、このようなネットワークインタフェースを用いた従来の暗号通信装置の構成図である。
【００３３】
図２６において、ＩＰｓｅｃ処理部３５０は、ＳＡＤ３５１および図２５におけるパケット処理部３３２や暗号認証処理部３３３に相当する機能部を有している。
【００３４】
図２６における暗号通信装置では、ＩＰｓｅｃ処理がネットワークインタフェース３４０上で実行されるため、ＣＰＵがＩＰｓｅｃ処理を行う必要がなく、このため、暗復号化や認証処理のためのシステムバスの消費やＣＰＵ周辺のデータ転送の必要性がない。
【００３５】
したがって、上記のようなネットワークインタフェースを有する暗号通信装置では、通常のＩＰパケットを送受信する場合と同じＣＰＵ負荷、同じシステムバス帯域の消費でＩＰｓｅｃ通信を行なえ、ＣＰＵ能力やシステムバス帯域が低くても高スループットを実現することができる。
【００３６】
また、別の従来例として、ＣＰＵをスレッドごとに切り分けてマルチタスクを実行するようにし、優先度の高い暗号通信には、カーネル部での処理を割り当て、更に、割り当てるスレッドの数を優先度に応じて制御することにより、見かけのＣＰＵ数を優先度に対応して制御する方法がある（例えば、特許文献１参照）。
【００３７】
【特許文献１】
特開２００１−３４４２２８号公報  （第３−５頁、第１図）
【００３８】
【発明が解決しようとする課題】
しかしながら、図２６に示したような従来の暗号通信装置では、ＳＡＤがハードウェア化されたＩＰｓｅｃ処理部内の専用メモリであるため、登録できるＳＡ数が限られてしまう。例えば、ＳＡＤのエントリ数が送信用、受信用共に２の場合、同時に登録できるＳＡ数も共に２となり、同時に２箇所の通信相手としかＩＰｓｅｃ通信が行えない。すなわち、高スループットが必要でなくとも、同時に３箇所以上の通信相手とのＩＰｓｅｃ通信が行えないことになる。また、ＳＡＤに登録可能なＳＡ数を増加させるために多くのメモリを搭載すると、コストアップにつながってしまう。
【００３９】
一方、ソフトウェアのみによる実装や、暗復号や認証処理のみを行うハードウェアを用いた実装では、ＳＡＤがメインメモリ上に構築されているため、ＳＡＤに一度に多くのＳＡを登録でき、多くの通信相手とＩＰｓｅｃ通信を行うことができるが、高スループットや低遅延を実現することは困難であり、高スループットや低遅延を必要とするＩＰｓｅｃ通信には対応できない。
【００４０】
以上に述べたように、従来の暗号通信装置では、多くの通信相手にＩＰｓｅｃ通信を提供するためにメインメモリ上のＳＡＤを使用する場合は高速処理が必要なＩＰｓｅｃ通信を提供することができず、一方、高速処理が必要なＩＰｓｅｃ通信を提供するためにハードウェア上に実装されたＳＡＤを使用する場合はＳＡ数が制限されて多くの通信相手にＩＰｓｅｃ通信を提供することができない。
【００４１】
また、特許文献１では、ＣＰＵを見かけ上複数にしているので、全体として処理能力の大幅な向上は容易ではない。
【００４２】
そこで、本発明は、多くの通信相手に高速処理が不要なＩＰｓｅｃ通信を提供しつつ高速処理が必要なＩＰｓｅｃ通信を提供し、さらに、高速処理可能なＳＡ数も増加させた暗号通信装置を提供することを目的とする。
【００４３】
【課題を解決するための手段】
上記課題を解決するために、請求項１記載の発明によれば、ネットワークインタフェース上に実装した、高速処理可能だが登録可能なセキュリティパラメータの少ない第１のセキュリティデータベースを有した第１のセキュア処理部に加え、第ｎ（ｎ＝２、３、…）のセキュリティデータベースを備え、第１のセキュア処理部に比べて処理が低速であるが多くのセキュリティパラメータを登録できる第ｎのセキュア処理部と、セキュリティパラメータごとに定められたサービスクラスに基づき、各セキュリティパラメータを第１から第ｎのセキュリティデータベースに登録する制御部を有する。この結果、高速処理が必要なセキュリティパラメータと高速処理が不要なセキュリティパラメータに異なるサービスクラスを設定することにより、高速処理が必要なセキュリティパラメータだけを第１のセキュリティデータベースに、それ以外を第ｎのセキュリティデータベースに登録でき、高速処理が不要なセキュリティ通信を提供しつつ、高速処理が必要なセキュリティ通信を同時に提供することが可能となる。
【００４４】
また、請求項２記載の発明によれば、ネットワークインタフェース上に実装した、高速処理が可能だが登録可能なＳＡ数の少ない第１のＳＡＤを有した第１のＩＰｓｅｃ処理部に加え、第１のＩＰｓｅｃ処理部に比べて処理が低速であるが登録可能なＳＡ数が多い第ｎ（ｎ＝２、３、…）のＩＰｓｅｃ処理部を備え、ＳＡごとに規定されたサービスクラスに基づいて各ＳＡを第１から第ｎのＳＡＤに登録する制御部を有する。その結果、高速処理を必要としないＩＰｓｅｃ通信のＳＡを第ｎのＩＰｓｅｃ処理部に登録してＩＰｓｅｃ通信の処理を実行させることで、高スループットや低遅延での処理が可能な第１のＩＰｓｅｃ処理部に登録できるＳＡ数を増加させることが可能となる。
【００４５】
また、請求項３記載の発明によれば、経路制御部を設け、制御部がＳＡの登録先に応じて経路情報を経路制御部に通知することにより、第１のＩＰｓｅｃ処理部にてＩＰｓｅｃ処理が実行されるべきＩＰパケットを、第ｎのＩＰｓｅｃ処理部を介することなく第１のＩＰｓｅｃ処理部に転送できるため、暗号通信装置のＣＰＵ負荷を低減させることが可能となる。
【００４６】
また、請求項６記載の発明によれば、サービスクラスとしてクラスＡを設け、制御部がクラスＡに属するＳＡを、第１のＳＡＤに空きエントリがある場合は第１のＳＡＤに登録し、空きエントリが無い場合は第２のＳＡＤに登録し、第ｊ（２≦ｊ≦ｎ−１）のＳＡＤにも空きエントリが無い場合は第ｊ＋１のＳＡＤに登録することで、第１のＳＡＤに空きエントリがある場合のみ、当該ＳＡは第１のＩＰｓｅｃ処理部にて処理されるため、暗号通信装置のＣＰＵ負荷を低減させることが可能となる。
【００４７】
また、請求項１０記載の発明によれば、サービスクラスとしてクラスＢを設け、クラスＢのサービスクラス情報登録時に制御部は第１のＳＡＤの空きエントリを予約することで、後に第１のＳＡＤにクラスＢのＳＡ登録を実行する際には必ず空きエントリが確保されており、第１のＳＡＤへのＳＡ登録を保証することが可能となる。
【００４８】
また、請求項１６記載の発明によれば、第２のＳＡＤが、第２のＳＡＤに登録されたＳＡに加えて、第１のＳＡＤに登録されたＳＡも併せて保持することで、第１のＳＡＤから第２のＳＡＤにＳＡを移動する場合、登録先を変更するのみで良く、ＳＡそのものを移動する必要がない。このため、ＳＡ移動の処理時間を短縮することが可能となる。
【００４９】
また、請求項１７記載の発明によれば、ネットワークインタフェース内に切り替え部を設け、制御部からの指示によりネットワークインタフェースから第１のＩＰｓｅｃ処理部を切り離すことにより、第１のＩＰｓｅｃ処理部が故障した場合でも、第２のＳＡＤに登録されていたＳＡを用いることで、サービス品質は低下するものの、サービスを継続することが可能となる。
【００５０】
また、請求項２４記載の発明によれば、制御部はＳＡで指定されたＱＯＳパラメータ値と第ｍ（１≦ｍ≦ｎ−１）の閾値との比較結果から、登録するＳＡＤを特定することで、ユーザはＩＰｓｅｃ通信に求めるスループットや遅延時間等のＱＯＳパラメータ値を指定するだけでサービスクラスを判断する必要がなく、自動的にＳＡがＱＯＳパラメータ値を満たすＩＰｓｅｃ処理部のＳＡＤに登録される。
【００５１】
【発明の実施の形態】
（実施の形態１）
図１は、本実施の形態に係る暗号通信装置を用いたセキュリティ通信システムの構成図である。
【００５２】
図１に示したように、暗号通信装置１００は、インターネット等のＷＡＮ１０３で他の暗号通信装置１０１、１０２と接続されている。ここで、暗号通信装置１００〜１０３は、パーソナルコンピュータやＩＰ電話機などの通信機能を持った端末であればよい。
【００５３】
本実施の形態では、暗号通信装置１００が、暗号通信装置１０１、１０２とＩＰｓｅｃ通信を行う通信端末である場合、すなわち、トランスポートモードの場合を例にとって説明する。すなわち、ＩＰｓｅｃ処理は暗号通信装置１００〜１０２において実行される。
【００５４】
図２は、本実施の形態に係る暗号通信装置１００の構成図である。まず、各構成要素の機能について説明し、そのあと、全体的な動作について説明する。
【００５５】
図２において、パケット送受信部４０は、送信データをＩＰパケットとして生成したり、受信したＩＰパケットから受信データを抽出したりする。
【００５６】
ネットワークインタフェース２０は、第１のＩＰｓｅｃ処理部２１を有する。ここで、第１のＩＰｓｅｃ処理部２１はハードウェアで構成されており、第１のＳＡＤ２１１を有する。第１のＳＡＤ２１１は、送信用、受信用にそれぞれ２つのエントリを持ち、合計４つのＳＡを登録することができる。
【００５７】
第１のＩＰｓｅｃ処理部２１は、パケット送受信部４０が生成した送信用ＩＰパケットをネットワークインタフェース２０から受け取ると、ＩＰヘッダ情報をキーに第１のＳＡＤ２１１を検索して対応するＳＡの有無を確認する。対応するＳＡが存在すれば、ＳＡに従ってＩＰパケットからＩＰｓｅｃパケットを生成してネットワークインタフェース２０に渡す。ネットワークインタフェース２０は、ＷＡＮ１０３を介して、渡されたＩＰｓｅｃパケットを送信する。
【００５８】
また、第１のＩＰｓｅｃ処理部２１は、ネットワークインタフェース２０がＷＡＮ１０３を介して受信したＩＰｓｅｃパケットを受け取ると、自分宛のパケットの場合、ＩＰｓｅｃパケット内のＳＰＩ値をキーに第１のＳＡＤ２１１を検索して対応するＳＡの有無を確認する。対応するＳＡが存在すれば、ＳＡに基づいてＩＰｓｅｃパケットからＩＰパケットを生成してネットワークインタフェース２０を介して第２のＩＰｓｅｃ処理部３０に渡す。ＳＡが存在する場合、あるいは、しない場合の全体の動作については後述する。
【００５９】
なお、第１のＩＰｓｅｃ処理部２１は、ネットワークインタフェース２０から送信用のＩＰｓｅｃパケットを受け取ってもヘッダ情報から、暗号化済のＩＰｓｅｃパケットであることが判明するため、ＩＰｓｅｃ処理を行うことはない。同様に、ネットワークインタフェース２０からＷＡＮ１０３を介して受信したＩＰパケットを受け取ってもＳＰＩ値が含まれないため、誤ってＩＰｓｅｃ処理を行うことはない。
【００６０】
第２のＩＰｓｅｃ処理部３０は、主にソフトウェアで構成されており、第２のＳＡＤ３１を有する。第２のＳＡＤには、メインメモリのサイズが許す限りでＳＡを登録することができる。
【００６１】
送信の場合、第２のＩＰｓｅｃ処理部３０は、パケット送受信部４０から送信用ＩＰパケットを受け取ると、ＩＰヘッダ情報をキーに第２のＳＡＤ３１を検索して対応するＳＡの有無を確認する。対応するＳＡが存在すれば、ＳＡに基づいてＩＰパケットからＩＰｓｅｃパケットを生成してネットワークインタフェース２０に渡す。
【００６２】
また、受信の場合、第２のＩＰｓｅｃ処理部３０は、ネットワークインタフェース２０からＷＡＮ１０３を介して受信したＩＰｓｅｃパケットを受け取ると、ＩＰｓｅｃパケット内のＳＰＩ値をキーに第２のＳＡＤ３１を検索して対応するＳＡの有無を確認する。対応するＳＡが存在すれば、ＳＡに基づいてＩＰｓｅｃパケットからＩＰパケットを生成してパケット送受信部４０に渡す。ＳＡが存在する場合、あるいは、しない場合の全体の動作については後述する。
【００６３】
なお、第２のＩＰｓｅｃ処理部３０は、ＷＡＮ１０３を介して受信したＩＰパケットをネットワークインタフェース２０から受け取ると、ＩＰパケットにはＳＰＩ値がないのでそのままパケット送受信部４０に渡す。
【００６４】
セキュリティ制御部１０は、鍵交換部１１と制御部１２から構成される。鍵交換部１１は通信相手の暗号通信装置１０１、１０２とセキュリティ通信を行うためのＩＰｓｅｃで使用するプロトコル、モード、暗号アルゴリズム、暗号鍵、認証アルゴリズム、認証鍵等のパラメータをネゴシエーションし、セキュリティアソシエーション（ＳＡ）として制御部１２に通知する。ネゴシエーションは、鍵交換部１１が、ＷＡＮ１０３を介して、通信相手の暗号通信装置１０１、１０２と所定のプロトコルを用いて所定の手順により行われる。
【００６５】
ＳＡはセレクタとセキュリティパラメータから構成される。セレクタとはＳＡを適用するＩＰパケットを特定する情報であり、少なくとも送信元のＩＰアドレス、宛先のＩＰアドレスが含まれる。ＩＰアドレスの代わりに、サブネットを示すサブネットアドレスとサブネットマスクの組が用いられる場合もある。セキュリティパラメータとは、ＩＰパケットからどのようなＩＰｓｅｃパケットを生成するかを決定する情報であり、ＳＡの識別子として使用するＳＰＩ（セキュリティパラメータインデックス）、ＩＰｓｅｃプロトコル種別（ＡＨまたはＥＳＰ）、モード（トランスポートモードまたはトンネルモード）、暗号アルゴリズム、暗号鍵、認証アルゴリズム、認証鍵、有効期限等から構成される。
【００６６】
鍵交換部１１は、ＳＡとＳＡごとに定められたサービスクラスを制御部１２に通知する。サービスクラスとは、ＳＡによって提供されるＩＰｓｅｃ通信に求められるスループットや遅延時間等の要求条件に基いて、そのＩＰｓｅｃ通信を第１のＩＰｓｅｃ処理部で実行するか、第２のＩＰｓｅｃ処理部で実行するか、を定めたものである。
【００６７】
本実施の形態では、サービスクラスとしては、第１のＩＰｓｅｃ処理部を用いてＩＰｓｅｃ通信を行う第１のクラスと第２のＩＰｓｅｃ処理部を用いてＩＰｓｅｃ通信を行う第２のクラスがあるものとする。
【００６８】
制御部１２は、鍵交換部１１からサービスクラスとＳＡを受け取ると、サービスクラスに基づいてＳＡを第１のＳＡＤ２１１または第２のＳＡＤ３１のいずれかに登録する。
【００６９】
図３は、本実施の形態におけるパケットの通過経路を示す図である。
【００７０】
以下に、図３を用いてパケット送信時の動作について説明する。
【００７１】
図３において、パケット送受信部４０が、ＩＰパケットＸを生成して第２のＩＰｓｅｃ処理部３０に渡す。第２のＩＰｓｅｃ処理部３０は、ＩＰパケットＸのヘッダ情報に基づき第２のＳＡＤ３１を検索する。ＩＰパケットＸのＩＰヘッダに記載された送信元ＩＰアドレス、宛先ＩＰアドレスが第２のＳＡＤ３１に登録されているＳＡのセレクタに設定された値と一致するか、あるいは、セレクタに範囲を示す値が設定されているときにはその範囲内の値である場合にそのＳＡがＩＰパケットＸに対応するＳＡとなる。
【００７２】
まず、ＩＰパケットＸに対応するＳＡが第２のＳＡＤ３１に登録されている場合について説明する。
【００７３】
第２のＩＰｓｅｃ処理部３０は、ＳＡで定められたセキュリティパラメータに基づいてＩＰパケットＸの暗号化や認証処理を行ってＩＰｓｅｃパケットＸ’を生成してネットワークインタフェース２０に渡し、ネットワークインタフェース２０は、ＩＰｓｅｃパケットＸ’を第１のＩＰｓｅｃ処理部２１に渡す。
【００７４】
第１のＩＰｓｅｃ処理部２１は、受け取ったＩＰｓｅｃパケットＸ’のヘッダ情報に基づき第１のＳＡＤ２１１を検索する。ここで、ＩＰｓｅｃパケットＸ’のＩＰヘッダのプロトコルフィールドにはＥＳＰまたはＡＨのいずれかが設定されており、ＡＨやＥＳＰが一般のＩＰパケットとは区別できるＩＰｓｅｃパケット特有のプロトコルであるために誤ったＳＡが検索されることはない。なぜなら、ＡＨやＥＳＰにより、すでに暗号化されたＩＰｓｅｃパケットであることが分り、ＳＡを検索する必要がないし、検索しても、対応するＳＡは、第２のＳＡＤ３１にあって、第１のＳＡＤ２１１にはないため、見つからないからである。そのため、第１のＩＰｓｅｃ処理部２１はＩＰｓｅｃパケットＸ’をそのままネットワークインタフェース２０に渡し、ネットワークインタフェース２０は、ＷＡＮ１０３を介してＩＰｓｅｃパケットＸ’を送信する。
【００７５】
次に、ＩＰパケットＸに対応するＳＡが第２のＳＡＤ３１に登録されていない場合について説明する。
【００７６】
第２のＩＰｓｅｃ処理部３０は、ＳＡが第２のＳＡＤ３１に登録されていないため、ＩＰｓｅｃ処理を行うことなく、ＩＰパケットＸをそのままネットワークインタフェース２０に渡す。
【００７７】
ネットワークインタフェース２０は、ＩＰパケットＸを第１のＩＰｓｅｃ処理部２１に渡し、ＩＰパケットＸのヘッダ情報に基づき第１のＳＡＤ２１１を検索する。ＩＰパケットＸのＩＰヘッダに記載された送信元ＩＰアドレス、宛先ＩＰアドレスが第１のＳＡＤ２１１に登録されているＳＡのセレクタの設定値に一致するか、あるいは、セレクタに範囲を示す値が設定されているときにはその範囲内の値である場合にそのＳＡがＩＰパケットＸに対応するＳＡとなる。
【００７８】
ここで、ＩＰパケットＸに対応するＳＡが第１のＳＡＤ２１１に登録されていて見つかれば、第１のＩＰｓｅｃ処理部２１はＳＡのセキュリティパラメータに基づいてＩＰパケットＸからＩＰｓｅｃパケットＸ’を生成し、ネットワークインタフェース２０を介してＷＡＮ１０３に送信する。
【００７９】
一方、ＩＰパケットＸに対応するＳＡが第１のＳＡＤ２１１に登録されていなければ、暗号通信が不要なパケットであると判断して、第１のＩＰｓｅｃ処理部２１はネットワークインタフェース２０を介してＩＰパケットＸをそのままＷＡＮ１０３に送信する。
【００８０】
次に、図３を用いてパケット受信時の動作について説明する。
【００８１】
ネットワークインタフェース２０は、ＷＡＮ１０３を介して受信したＩＰｓｅｃパケットＸ’を第１のＩＰｓｅｃ処理部２１に渡す。第１のＩＰｓｅｃ処理部２１は、ＩＰｓｅｃパケットＸ’のヘッダ情報を解析してＩＰｓｅｃパケットであるか否かを判断する。ＩＰｓｅｃパケットである場合には、ＩＰｓｅｃパケットのＩＰｓｅｃヘッダ内に含まれるＳＰＩ値に基づき第１のＳＡＤ２１１を検索する。同じＳＰＩ値を持つＳＡが登録されていれば、そのＳＡがＩＰｓｅｃパケットＸ’に対応したＳＡとなる。第１のＩＰｓｅｃ処理部２１は、そのＳＡのセキュリティパラメータに基づいてＩＰｓｅｃパケットＸ’からＩＰパケットＸを復元し、ネットワークインタフェース２０を介してパケット送受信部４０に転送する。パケット送受信部４０は、ＩＰパケットＸのヘッダ解析を行って通常のＩＰパケットであることが判明するとＩＰパケットＸを受信し、抽出した電文を対応するアプリケーションに電文を渡す。
【００８２】
次に、ＩＰｓｅｃパケットＸ’に対応するＳＡが第１のＳＡＤ２１１に登録されていない場合について説明する。この場合は、第１のＩＰｓｅｃ処理部２１は、ネットワークインタフェース２０を介してＩＰｓｅｃパケットＸ’をそのままパケット送受信部４０に転送する。パケット送受信部４０はＩＰｓｅｃパケットＸ’のヘッダ解析を行った結果、プロトコルにＡＨまたはＥＳＰが設定されていることを検出するとＩＰｓｅｃパケットＸ’がＩＰｓｅｃパケットであると判定して第２のＩＰｓｅｃ処理部３０に転送する。第２のＩＰｓｅｃ処理部３０はＩＰｓｅｃパケットＸ’のヘッダ情報を解析してＩＰｓｅｃパケットであるか否かを判断する。ＩＰｓｅｃパケットである場合には、パケットに含まれるＳＰＩ値に基づいて第２のＳＡＤ３１を検索する。ＩＰｓｅｃパケットに対応するＳＡが見つかれば、そのＳＡのセキュリティパラメータに基づいてＩＰｓｅｃパケットＸ’からＩＰパケットＸを復元し、パケット送受信部４０に転送する。パケット送受信部４０は、ＩＰパケットＸのヘッダ解析を行って、ＡＨ、ＥＳＰが設定されていない通常のＩＰパケットであると判断するとそのＩＰパケットＸを受信し、電文を抽出しアプリケーションに渡す。
【００８３】
また、ネットワークインタフェース２０が暗号化されていないＩＰパケットＸを受信した場合には、第１のＩＰｓｅｃ処理部２１がヘッダ解析を行ってＩＰｓｅｃパケットでないと判断するとネットワークインタフェース２０を介してそのＩＰパケットＸをパケット送受信部４０に転送する。パケット送受信部４０はヘッダ解析を行ってＸがＩＰパケットであると判断するとそのＩＰパケットＸを受信し、電文を抽出しアプリケーションに渡す。
【００８４】
以上のように、ＩＰパケットからのＩＰｓｅｃパケット生成やＩＰｓｅｃパケットからのＩＰパケット復元が、第１のＩＰｓｅｃ処理部２１で行われるか、第２のＩＰｓｅｃ処理部３０で行われるかは、ＩＰパケットやＩＰｓｅｃパケットに対応したＳＡが第１のＳＡＤ２１１に登録されているか、第２のＳＡＤ３１に登録されているか、で決定される。
【００８５】
第１と第２のＩＰｓｅｃ処理部のどちらを使用するかについては、サービスクラスにより選択する。サービスクラスは、ネゴシエーションにおいて生成したＳＡをＳＡＤに登録する際に決定する。制御部１２のサービスクラスに基づくＳＡの登録処理を図４、５を用いて説明する。
【００８６】
なお、ＳＡとサービスクラスの組は送信用と受信用の２組から成るが、登録処理は送信用でも受信用でも同じであるため、送信用についてのみ説明する。
【００８７】
＜ＳＡの登録処理＞
ステップ１で、制御部１２が鍵交換部１１からサービスクラスとＳＡの組を受け取る。ステップ２で、制御部１２がサービスクラスを確認し、第１のクラスならばステップ３に進む。ステップ３で、制御部１２が第１のＳＡＤ２１１の空きエントリの有無を調べ、空きエントリがあればステップ４に進み、空きエントリがなければＳＡ登録をエラー終了する。ステップ４で、第１のＳＡＤ２１１の空きエントリにＳＡを登録し、処理を終了する。
【００８８】
ステップ２の判定において、サービスクラスが第２のクラスならば、ステップ５で、第２のＳＡＤ３１にＳＡを登録し、処理を終了する。
【００８９】
以上のように、制御部１２が、鍵交換部１１からＳＡとサービスクラスの組を受け取ると、サービスクラスに基づいてＳＡを第１のＳＡＤ２１１または第２のＳＡＤ３１に登録し、第１のＩＰｓｅｃ処理部２１または第２のＩＰｓｅｃ処理部３０が登録されたＳＡに基づいてＩＰパケットからＩＰｓｅｃパケットを生成する。
【００９０】
これによって、暗号通信装置１００は、暗号通信装置１０１、１０２との間でサービスクラスに従ったＩＰｓｅｃ通信を実現できる。
【００９１】
次に、制御部１２のＳＡの削除処理を図６を用いて説明する。
【００９２】
なお、削除するＳＡは鍵交換部１１から指定されたものとする。
【００９３】
＜ＳＡの削除処理＞
ステップ１で、制御部１２が鍵交換部１１から削除するＳＡ、または、ＳＡのセレクタを受け取る。
【００９４】
ステップ２で、制御部１２が第１のＳＡＤ２１１を検索して指定されたＳＡが登録されているか否かを確認し、登録されていればステップ３へ、登録されていなければステップ４へ移る。
【００９５】
ステップ３で、制御部１２が指定されたＳＡを第１のＳＡＤ２１１から削除し、処理を終了する。
【００９６】
ステップ２で、ＳＡが第１のＳＡＤに登録されていなければ、ステップ４で、制御部１２が指定されたＳＡを第２のＳＡＤ３１から削除し、処理を終了する。
【００９７】
以上、本実施の形態で説明したように、制御部１２がサービスクラスに基づいてＳＡを第１のＳＡＤ２１１または第２のＳＡＤ３１に登録することで、第１のＩＰｓｅｃ処理部２１または第２のＩＰｓｅｃ処理部３０はＳＡに基づくＩＰｓｅｃ処理を行うことができる。さらに詳細に述べると、第１のクラスに属するＳＡは第１のＩＰｓｅｃ処理部２１によって、第２のクラスに属するＳＡは第２のＩＰｓｅｃ処理部３０によってＩＰｓｅｃ処理されることになる。
【００９８】
すなわち、高スループットや低遅延を要するＩＰｓｅｃ通信用のＳＡを第１のクラスに、それ以外のＳＡを第２のクラスに設定することで、高スループットや低遅延が求められるＩＰｓｅｃ通信とそれ以外の多数のＩＰｓｅｃ通信とを両立させることができる。
【００９９】
（実施の形態２）
以下に、本実施の形態について図２を用いて説明する。本実施の形態２では、新たなサービスクラスであるクラスＡを導入し、より柔軟なＩＰｓｅｃ処理部の選択を可能にする。
【０１００】
図２において、制御部１２以外は実施の形態１と同じ構成である。制御部１２はＳＡ登録先管理表を有する。ＳＡ登録先管理表とは、第１のＳＡＤ２１１または第２のＳＡＤ３１に登録したすべてのＳＡについて、送信元ＩＰアドレスと宛先ＩＰアドレスの対、ＳＰＩ、サービスクラス、登録先（第１のＳＡＤまたは第２のＳＡＤ）の組を登録先情報として管理するための管理表である。送信元ＩＰアドレスと宛先ＩＰアドレスの対の代わりに、ＳＡ端点の宛先ＩＰアドレスを用いてもよい。ここで、ＳＡ端点とは、暗号化、復号化のためにＳＡを使用する暗号通信装置の位置のことであって、送信ＳＡ端点と受信ＳＡ端点があり、それぞれ、送信元ＩＰアドレスと宛先ＩＰアドレスにより位置を表現できる。
【０１０１】
また、本実施の形態では、サービスクラスとして実施の形態１で説明した第１のクラス、第２のクラスに、クラスＡを加える。クラスＡでは、第１のＩＰｓｅｃ処理部２０で実行可能な場合は、第１のＩＰｓｅｃ処理部で実行し、それ以外の場合は第２のＩＰｓｅｃ処理部３０で実行する。
【０１０２】
まず、図７のフローチャートを用いて制御部１２によるＳＡの登録処理について説明する。
【０１０３】
＜ＳＡの登録処理＞
ステップ１で、制御部１２が鍵交換部１１からサービスクラスとＳＡを受け取る。
【０１０４】
ステップ２で、制御部１２が登録するＳＡのサービスクラスを確認し、第１のクラスまたはクラスＡであればステップ３に移る。第２のクラスであればステップ８に移り、ステップ８において、第２のＳＡＤに受理したＳＡを登録し、ＳＡ登録先管理表にＳＡのＳＰＩ、ＳＡのサービスクラス、登録先（第１のＳＡＤ２１１）の組を登録して、処理を終了する。
【０１０５】
ステップ３で、制御部１２が第１のＳＡＤ２１１の空きエントリの有無を確認し、空きエントリがあればステップ４に進み、空きエントリがなければステップ５に移る。
【０１０６】
ステップ４で、制御部１２がステップ１で受け取ったＳＡを第１のＳＡＤ２１１の空きエントリに登録し、ＳＡ登録先管理表にＳＡのＳＰＩ、ＳＡのサービスクラス、登録先（第１のＳＡＤ２１１）の組を登録して、処理を終了する。
【０１０７】
ステップ３において第１のＳＡＤに空きエントリがない場合、ステップ５で、制御部１２が登録するＳＡのサービスクラスを確認し、第１のクラスであればステップ６に進む。クラスＡであればステップ８に移り、第２のＳＡＤに受理したＳＡを登録し、ＳＡ登録先管理表にＳＡのＳＰＩ、ＳＡのサービスクラス、登録先（第１のＳＡＤ２１１）の組を登録して、処理を終了する。
【０１０８】
ステップ６では、受理したクラスが第１のクラスであるので、制御部１２がＳＡ登録先管理表を参照して第１のＳＡＤ２１１にクラスＡに属するＳＡが登録されているか否かを確認し、登録されていればそれらのＳＡの中から１つを選びＳＡ’としてステップ７に進み、登録されていなければＳＡの登録が不可能であるので、エラーとして鍵交換部１１にエラー応答を返す。
【０１０９】
ステップ７で、ステップ６で選択されたＳＡ’を第１のＳＡＤ２１１から削除して第２のＳＡＤ３１に登録し、ＳＡ登録先管理表の内容を更新する。具体的には、ＳＡ’のＳＰＩ値に基づきＳＡ登録先管理表を検索し、ＳＡ’の登録先情報の登録先を「第２のＳＡＤ３１」と更新する。これによって、第１のＳＡＤ２１１に空きエントリができる。次に、ステップ４に移り、上記ステップ４の処理を行い、登録処理を終了する。
【０１１０】
以上説明したように、クラスＡに属するＳＡは、第１のＳＡＤ２１１に空きエントリがある場合には第１のＳＡＤ２１１に登録され、第１のＩＰｓｅｃ処理部２１でＩＰｓｅｃ処理されるので暗号通信装置のＣＰＵ負荷が軽減される。一方、第１のＳＡＤ２１１に空きエントリが無い場合には第２のＳＡＤ３１に登録され、第２のＩＰｓｅｃ処理部３０でＩＰｓｅｃ処理されるので第１のＳＡＤ２１１に空きエントリが無くてもＩＰｓｅｃによる通信は可能となる。
【０１１１】
また、第１のクラスに属するＳＡを登録する場合、第１の実施の形態におけるＳＡの登録処理に対してステップ６、７が追加されているため、第１のＳＡＤ２１１に空きエントリが無くても第１のＳＡＤ２１１にクラスＡに属するＳＡ’が登録されていれば、そのＳＡ’を第２のクラスに移して第１のクラスに空きを作ることにより、第１のクラスに属するＳＡを第１のＳＡＤ２１１に登録することができる。
【０１１２】
次に、図８のフローチャートを用いて制御部１２によるＳＡの削除処理について説明する。
【０１１３】
＜ＳＡの削除処理＞
ステップ１で、制御部１２が鍵交換部１１から削除するＳＡを受け取る。
【０１１４】
ステップ２で、制御部１２が削除するＳＡのＳＰＩ値に基づいてＳＡ登録先管理表を検索して削除するＳＡの登録先を取得し、登録先が第１のＳＡＤ２１１ならステップ３に、第２のＳＡＤ３１ならステップ６に移る。
【０１１５】
ステップ３で、制御部１２が削除するＳＡを第１のＳＡＤ２１１から削除し、さらに、ＳＡ登録先管理表から削除したＳＡの登録先情報を削除してステップ４に移る。
【０１１６】
ステップ４で、制御部１２がＳＡ登録先管理表を参照して第２のＳＡＤ３１にクラスＡに属するＳＡが登録されているか否かを確認し、登録されていればそれらのＳＡの中から１つを選びＳＡ’としてステップ５に移り、登録されていなければ処理を終了する。
【０１１７】
ステップ５で、制御部１２がＳＡ’を第２のＳＡＤ３１から削除して第１のＳＡＤ２１１に登録し、ＳＡ’のＳＰＩ値に基づきＳＡ登録先管理表のＳＡ’の登録先を「第１のＳＡＤ」に更新して処理を終了する。
【０１１８】
ステップ６で、制御部１２が第２のＳＡＤ３１からＳＡを削除し、ＳＡのＳＰＩ値に基づきＳＡ登録先管理表からＳＡの登録先情報を削除して処理を終了する。
【０１１９】
以上説明したように、第１の実施の形態におけるＳＡの削除処理にステップ４、５が追加されているため、第２のＳＡＤ３１にクラスＡに属するＳＡ’が登録されている場合に第１のＳＡＤ２１１から第１のクラスに属するＳＡを削除するとＳＡ’が第２のＳＡＤ３１から第１のＳＡＤ２１１に登録される。その結果、第１のＩＰｓｅｃ処理部２１がＳＡ’の処理を行うことになって暗号通信装置１００のＣＰＵ負荷が軽減される。
【０１２０】
（実施の形態３）
図９は、本実施の形態に係るセキュリティ通信システムの構成図である。
【０１２１】
図９において、ホスト２０２はＬＡＮ２０７でホスト２０３および暗号通信装置２００と接続されており、暗号通信装置２００を経由して外部のインターネットやイントラネット等のＷＡＮ２０６に接続されている。このＷＡＮ２０６には他の暗号通信装置２０１が接続されており、暗号通信装置２０１にはＬＡＮを介してホスト２０４、２０５が接続されている。ここで、暗号通信装置２００、２０１はルータ、ゲートウェイ等のＶＰＮ専用装置等である。またホスト２０２〜２０５はパーソナルコンピュータ、ＩＰ電話機等の通信機能を持った端末であればよく、セキュリティ通信機能を有する必要はない。
【０１２２】
以下では、暗号通信装置２００、２０１間でトンネルモードのＩＰｓｅｃ通信を行うものとして説明を行う。
【０１２３】
図１０は、暗号通信装置２００の構成図である。
【０１２４】
図１０で示された暗号通信装置２００は、セキュリティ制御部１０、ネットワークインタフェース２０、第２のＩＰｓｅｃ処理部３０、パケット送受信部４０、ネットワークインタフェース５０で構成されている。まず、各構成要素の基本的な機能について説明する。その後で、全体的な動作について説明する。
【０１２５】
ネットワークインタフェース５０は、ＬＡＮ２０７と接続されてホスト２０２、２０３とＩＰパケットの送受信を行う。ネットワークインタフェース２０は実施の形態１で説明したネットワークインタフェースと同様の機能を有し、更に切り替え部２２を備え、ＷＡＮ２０６と接続されている。切り替え部２２は、通常、ネットワークインタフェース２０が受け取ったＩＰパケットやＩＰｓｅｃパケットを第１のＩＰｓｅｃ処理部２１に転送するが、制御部１２からのバイパス指示があるとＩＰパケットやＩＰｓｅｃパケットを第１のＩＰｓｅｃ処理部２１を介さずにＷＡＮ２０６やパケット送受信部４０に転送する。第２のＩＰｓｅｃ処理部３０は、実施の形態１で説明した第２のＩＰｓｅｃ処理部と同様の機能を有する。パケット送受信部４０は、実施の形態１で説明したパケット送受信部の機能を備え、さらに、経路制御部４１を有する。経路制御部４１は、ルーティングテーブルを有しており、ネットワークインタフェース２０、５０が受信したＩＰパケットやパケット送受信部４０が生成したＩＰパケットをそのルーティングテーブルに基づいて転送する。転送先は、ネットワークインタフェース２０、第２のＩＰｓｅｃ処理部３０、ネットワークインタフェース５０、パケット送受信部４０自身のいずれかである。セキュリティ制御部１０は、鍵交換部１１と制御部１２から構成される。鍵交換部１１は、あらかじめ鍵交換部用設定ファイル等に記述されたサービスクラス情報や暗号通信装置２０１とのネゴシエーションによって決定したＳＡを制御部１２に通知する。鍵交換部用設定ファイルの例を図２４に示す。制御部１２は、サービスクラス管理表と第１のＳＡＤ管理表を有し、サービスクラス管理表にはセレクタ、サービスクラス、サービスクラス情報識別子の組がサービスクラス情報として登録されており、セレクタはＳＡで規定されたセレクタの送信元ＩＰアドレスと宛先ＩＰアドレスとから構成される。なお、ＩＰアドレスの代わりにサブネットを示すサブネットアドレスとサブネットマスクの組を用いても良い。
【０１２６】
本実施の形態では、サービスクラスとして実施の形態２で説明したクラスＡに加え、クラスＢを追加する。クラスＢでは、サービスクラス情報登録時に第１のＳＡＤ２１１の空きエントリを予約しておき、ＳＡ登録時に予約した空きエントリにＳＡを実際に登録することでサービスクラス情報登録時に第１のＳＡＤ２１１へのＳＡ登録を保証するサービスクラスである。なお、本実施の形態では、第１のＳＡＤ２１１上で予約できる空きエントリ数を送信用、受信用共に１とする。また、サービスクラス情報識別子とは、サービスクラス情報を区別するために用いる識別子であって０以外の値を持つ。なお、本実施の形態では、送信と受信では異なるサービスクラスを使用するものとすることで、サービスクラス管理表は送信用、受信用のエントリを持ち、送信用と受信用とでは送信元ＩＰアドレスと宛先ＩＰアドレスが逆になる点を除いて構成は同じになる。送信側のサービスクラス管理表の一例を図２０（２）に示す。
【０１２７】
第１のＳＡＤ管理表は、第１のＳＡＤ２１１のエントリごとにＳＡ登録の有無、サービスクラス情報識別子、ＳＰＩ値の組を保持する管理表であり、ＳＡ登録の有無には、そのエントリにＳＡが登録されていれば「有」に、登録されていなければ「無」に設定される。サービスクラス情報識別子には、そのエントリがクラスＢによって予約されていればそのサービスクラス情報識別子が、そうでなければ「０」が設定される。ＳＰＩ値には、そのエントリにＳＡが登録されていればそのＳＰＩ値が、登録されていなければ「０」が設定される。宛先アドレスを追加してもよい。第１のＳＡＤ管理表の一例を図２３（１）に示す。
【０１２８】
以下に、本実施の形態におけるサービスクラスおよびＳＡの登録処理について図１１を用いて説明する。
【０１２９】
鍵交換部１１は、暗号通信装置２００の起動時や新たなサービスクラス情報の定義時にサービスクラス情報を制御部１２に通知し、制御部１２は通知されたサービスクラス情報をサービスクラス管理表に登録する。制御部１２は登録されるサービスクラスにクラスＢが含まれていれば、第１のＳＡＤ２１１の空きエントリをサービスクラス情報ごとに定められたサービスクラス情報識別子で予約する。鍵交換部１１は、暗号通信装置２００、２０１間でのＳＡのネゴシエーションで決められたＳＡを制御部１２に通知する。制御部１２は、サービスクラス管理表を検索して通知されたＳＡのセレクタと一致するセレクタを持つサービスクラス情報を得、さらに、サービスクラス情報からＳＡのサービスクラスを得て第１のＳＡＤ２１１または第２のＳＡＤ３１にＳＡを登録する。制御部１２は、登録したＳＡのセレクタで定められた送信元ＩＰアドレスと宛先ＩＰアドレス（あるいは、送信元サブネットアドレスとサブネットマスクおよび宛先サブネットアドレスとサブネットマスク）を有するＩＰパケットが登録先に応じてネットワークインタフェース２０または第２のＩＰｓｅｃ処理部３０に転送されるように、ルーティング情報を経路制御部４１のルーティングテーブルに設定する。また、制御部１２は、ＳＡを第１のＳＡＤ２１１に登録した場合、同時に、そのＳＡを第２のＳＡＤ３１にも登録する。
【０１３０】
次に、図１２を用いて暗号通信装置２００のパケット送信動作を説明する。
【０１３１】
ネットワークインタフェース５０は、ＬＡＮ２０７を介して受信したＩＰパケットＸを経路制御部４１に転送する。経路制御部４１はルーティングテーブルに基づいてＩＰパケットＸを第２のＩＰｓｅｃ処理部３０またはネットワークインタフェース２０に転送する。ルーティングテーブルについては、後述する。
【０１３２】
第２のＩＰｓｅｃ処理部３０に転送された場合には、第２のＩＰｓｅｃ処理部３０がＩＰパケットＸのヘッダ情報から第２のＳＡＤ３１を検索して対応するＳＡに基づいてＩＰパケットＸからＩＰｓｅｃパケットＸ’を生成し、ネットワークインタフェース２０に転送する。ネットワークインタフェース２０は、Ｘ’のヘッダからＩＰｓｅｃパケットであることを確認し、暗号化済みであるので、パケットＸ’を再度暗号化することなく、ＩＰｓｅｃパケットＸ’をＷＡＮ２０６に送信する。
【０１３３】
一方、経路制御部４１からネットワークインタフェース２０に転送された場合には、第１のＩＰｓｅｃ処理部２１は、ＩＰパケットＸのヘッダ情報から第１のＳＡＤ２１１を検索して対応するＳＡが登録されているか否かを確認し、登録されていればそのＳＡに基づいてＩＰパケットＸからＩＰｓｅｃパケットＸ’を生成してＷＡＮ２０６に送信し、ＳＡが登録されていなければＩＰパケットＸを、ＷＡＮ２０６上の暗号通信装置２００のＩＰアドレスと暗号通信装置２０１のＩＰアドレスをそれぞれ送信元、宛先とするＩＰヘッダを付加して、ＷＡＮ２０６に送信する。
【０１３４】
次に、図１３を用いて暗号通信装置２００のパケット受信動作を説明する。
【０１３５】
ネットワークインタフェース２０は、ＷＡＮ２０６を介して受信したＩＰｓｅｃパケットＸ’を第１のＩＰｓｅｃ処理部２０に転送する。第１のＩＰｓｅｃ処理部２０は、ＩＰｓｅｃパケットＸ’のヘッダ情報からＳＰＩ値を得て、そのＳＰＩ値で第１のＳＡＤ２１１を検索し、対応するＳＡが登録されていればそのＳＡに基づいてＩＰｓｅｃパケットＸ’からＩＰパケットＸを生成して、ネットワークインタフェース２０から、経路制御部４１に転送する。対応するＳＡが登録されていなければＩＰｓｅｃパケットＸ’をそのまま、ネットワークインタフェース２０からパケット送受信部４０に転送する。パケット送受信部４０は、転送されたＩＰパケットＸまたはＩＰｓｅｃパケットＸ’のヘッダ情報にＥＳＰもしくはＡＨが含まれていれば第２のＩＰｓｅｃ処理部３０に転送し、そうでなければ経路制御部４１内のルーティングテーブルに従った宛先、例えば、ＩＰパケットＸの宛先がホスト２０２の場合には、ネットワークインタフェース５０に転送する。第２のＩＰｓｅｃ処理部３０に転送された場合には、第２のＩＰｓｅｃ処理部３０は、Ｘ’のヘッダ情報から得たＳＰＩ値で第２のＳＡＤ３１を検索し、対応するＳＡが登録されていればそのＳＡに基づきＩＰｓｅｃパケットＸ’からＩＰパケットＸを生成してパケット送受信部４０に転送する。パケット送受信部４０はＩＰパケットＸを受け取るとネットワークインタフェース５０に転送し、ネットワークインタフェース５０がＩＰパケットＸをＬＡＮ２０７に送信して、パケット受信処理が終了する。復号されたＩＰパケットＸには、送信元と宛先のＩＰアドレスが付加されているので、新たにＩＰアドレスを付加する必要はない。なお、第２のＳＡＤ３１を検索しても、対応するＳＡが見つからない場合は、エラーである。
【０１３６】
次に、本実施の形態におけるサービスクラス情報の登録処理、ＳＡの登録処理、ＳＡの削除処理、サービスクラス情報の削除処理について図１４〜図１７を用いて説明する。
【０１３７】
＜サービスクラス情報の登録処理＞
図１４は、サービスクラス情報（ＳＣ）の登録処理を示すフローチャートである。
【０１３８】
ステップ１で、制御部１２はＳＣを鍵交換部１１から受け取り、受理する。ＳＣに対応するサービスクラス情報識別子が未生成の場合、識別子を生成する。
【０１３９】
ステップ２で、制御部１２は、受理したＳＣ内のサービスクラスがクラスＢであるか否かを確認し、クラスＢであればステップ３に、それ以外のクラスであればステップ５に移る。
【０１４０】
ステップ３で、制御部１２は第１のＳＡＤ管理表を参照して第１のＳＡＤ２１１の空きエントリがあるか否かを確認し、空きエントリがあればステップ４に、なければステップ６に移る。ここで、空きエントリとはＳＡが登録されておらず、かつ、予約もされていないエントリのことである。
【０１４１】
ステップ４で、制御部１２は、登録要求されたサービスクラスＢに対応したサービスクラス情報識別子を第１のＳＡＤ管理表の空きエントリに登録する。
【０１４２】
ステップ５で、制御部１２は、ステップ２において受理したサービスクラスＳＣをサービスクラス管理表に登録し、サービスクラス情報識別子も併せて登録して、処理を終了する。
【０１４３】
空きエントリがない状態のステップ６で、制御部１２は第１のＳＡＤ管理表を参照してクラスＡに属するＳＡが第１のＳＡＤ２１１に登録されているか否かを確認し、登録されていればそれらのＳＡの中から１つを選びＳＡ’としてステップ７に移り、登録されていなければ予約は失敗して鍵交換部１１にエラーを返す。
【０１４４】
ステップ７で、制御部１２はＳＡ’を第１のＳＡＤ２１１から削除し、第２のＳＡＤ３１にＳＡ’を登録する。さらに、経路制御部４１に対して、ＳＡ’に対応するＩＰパケットが第２のＩＰｓｅｃ処理部３０に転送されるように経路情報の転送先を、第１のＩＰｓｅｃ処理部２１から第２のＩＰｓｅｃ処理部３０に更新して、ステップ４に移る。
【０１４５】
以上のように、クラスＢに対して第１のＳＡＤ２１１の空きエントリを予約することで、後に実行されるＳＡ登録時に第１のＳＡＤ２１１へのＳＡ登録が保証される。
【０１４６】
＜ＳＡの登録処理＞
図１５は、ＳＡの登録処理を示すフローチャートである。
【０１４７】
ステップ１で、制御部１２は鍵交換部１１からＳＡを受け取り、ステップ９に移る。
【０１４８】
ステップ９で、制御部１２は受理したＳＡのセレクタに基づき制御部１２内に設けた後述するサービスクラス管理表を検索してＳＡのサービスクラス情報を獲得し、サービスクラス情報のサービスクラスがクラスＢならばステップ１０に移り、それ以外ならばステップ１５０に示すように、図７のステップ２〜ステップ８と同様の処理を行う。
【０１４９】
ステップ１０で、制御部１２はサービスクラス管理表を参照して、サービスクラス情報（ＳＣ）からクラスＢに対応するサービスクラス情報識別子を獲得し、獲得したサービスクラス情報識別子と同じ識別子を保持する、すなわち予約済みのエントリを第１のＳＡＤ２１１から検索し、そのエントリにＳＡを登録して処理を終了する。
【０１５０】
以上のように、制御部１２はサービスクラス情報識別子を用いることで、クラスＢに属するＳＡをクラスＢに属する他のＳＡおよび第１、第２のクラスやクラスＡに属するＳＡと区別でき、予約しておいたエントリに正しく登録することができる。なお、上記サービスクラス情報の登録のフロ−チャートにおいて、予約ができなかった場合は、ＳＡの登録ができないことは言うまでもない。
【０１５１】
＜ＳＡの削除処理＞
図１６は、ＳＡの削除処理を示すフローチャートである。
【０１５２】
ステップ１で、制御部１２は鍵交換部１１から削除するＳＡを受け取る。
【０１５３】
ステップ２で、制御部１２は鍵交換部１１から受け取ったＳＡのＳＰＩ値に基づいて第１のＳＡＤ２１１を検索してＳＡの登録先を得、ＳＡの登録先が第１のＳＡＤ２１１の場合にはステップ３に移る。第２のＳＡＤ３１の場合にはステップ６に移り、ステップ６において、第２のＳＡＤ３１からＳＡとその登録先情報を削除して処理を終了する（なお、ＳＡ登録先管理表から登録先を知ってもよい。）。
【０１５４】
ステップ３で、制御部１２は、ＳＡの存在する第１のＳＡＤ２１１からＳＡを削除し、第１のＳＡＤ管理表を更新してＳＡ登録の有無を「無」に、ＳＰＩ値を「０」に設定し、ステップ４に移る。なお、サービスクラス情報識別子はそのままとし、更新しない。
【０１５５】
ステップ４で、制御部１２は、第２のＳＡＤ３１を検索してクラスＡに属するＳＡが登録されているか否かを確認し、登録されていればそれらのＳＡから１つを選んでＳＡ”としてステップ５に移り、登録されていなければ処理を終了する。
【０１５６】
ステップ５で、制御部１２は、選択したＳＡ”を第１のＳＡＤ２１１に登録し、第２のＳＡＤ３１上のＳＡ”の登録先情報を「第１のＳＡＤ」に更新し、ＳＡ”に対応するＩＰパケットがネットワークインタフェース２０に転送されるように経路制御部４１のルーティングテーブルを更新して処理を終了する。
【０１５７】
以上のように、ＳＡを削除しても、第２のＳＡＤ３１にクラスＡのＳＡが登録されていない場合にはＳＡの第１のＳＡＤへの移動がないので、第１のＳＡＤ管理表１２３にはサービスクラス情報識別子が登録されたままである。したがって、今回削除したＳＡと同じセレクタを持つクラスＢに属するＳＡを登録する場合、上記サービスクラス情報識別子が登録されたエントリに登録することができる。また、ステップ５において、第２のＳＡＤ３１にクラスＡのＳＡが第１のＳＡＤ２１１に移動登録された場合でも、第２のＳＡＤ３１に再び戻すことができるので、実質的にクラスＢを予約しているのと同じになり、クラスＢのＳＡを登録することが可能である。
【０１５８】
＜サービスクラス情報の削除処理＞
図１７は、サービスクラス情報（ＳＣ）の削除処理を示すフローチャートである。
【０１５９】
ステップ１で、制御部１２は鍵交換部１１から削除するサービスクラス情報ＳＣを受理する。
【０１６０】
ステップ２で、制御部１２は鍵交換部１１から受け取ったＳＣのサービスクラスを確認し、サービスクラスがクラスＢの場合にはステップ３に、それ以外の場合にはステップ６に移り、ステップ６で、制御部１２は、サービスクラス管理表からＳＣを削除して処理を終了する。
【０１６１】
ＳＣがクラスＢの場合、ステップ３において、制御部１２は、鍵交換部１１から受け取ったクラスＢのＳＣに対応する第１のＳＡＤ管理表のサービスクラス情報識別子を０に設定することでエントリの予約を解除する。
【０１６２】
ステップ４で、制御部１２は、第２のＳＡＤ３１を検索してクラスＡに属するＳＡが登録されているか否かを確認し、登録されていればそれらのＳＡから１つを選んでＳＡ”としてステップ５に移り、登録されていなければステップ６に移り、制御部１２は、サービスクラス管理表からＳＣを削除して処理を終了する。
【０１６３】
ステップ５で、制御部１２は、選択されたＳＡ”を第１のＳＡＤ２１１に登録して第２のＳＡＤ３１上のＳＡ”の登録先情報を「第１のＳＡＤ」に更新し、ＳＡ”に対応するＩＰパケットがネットワークインタフェース２０に転送されるよう経路制御部４１のルーティングテーブルのルーティング先を更新して処理を終了する。
【０１６４】
以上のように、クラスＢを削除すると第１のＳＡＤ上に予約していた領域が解放されることで、第２のＳＡＤ３１に登録されているクラスＡに属するＳＡを第１のＳＡＤ２１１に移動することができ、暗号通信装置２００のＣＰＵ負荷を低減することができる。
【０１６５】
以下に、図１８を用いてサービスクラスおよびＳＡの登録・削除処理を説明する。
【０１６６】
図１８は、本実施の形態における第１のＳＡＤおよび第２のＳＡＤの状態遷移図である。なお、括弧内は、登録先とサービスクラス識別子である。登録先１は、第１のＳＡＤ２１１、登録先２は、第２のＳＡＤ３１を示す。第１のサービスクラスは“１”、第２のクラスは“２”、クラスＡは“３”、クラスＢは“４”の識別子をそれぞれ使用する。
【０１６７】
初期状態では、第１のＳＡＤ２１１には第１のクラスであるＳＡ１とクラスＡであるＳＡ２が、第２のＳＡＤ３１には第２のクラスであるＳＡ３が登録されているものとする。ＳＡ１とＳＡ２については第２のＳＡＤ３１にも登録しておき、登録先情報とサービスクラスをＳＡと併せて保持することにする。ここでは、ＳＡ１の登録先およびサービスクラスは第１のＳＡＤおよび第１のクラスであり、ＳＡ２の登録先およびサービスクラスは第１のＳＡＤおよびクラスＡとなる。また、経路制御部４１には、ＳＡ１およびＳＡ２を適用するパケットはネットワークインタフェース２０に、ＳＡ３を適用するパケットは第２のＩＰｓｅｃ処理部３０に転送するように経路情報が設定し、サービスクラス管理表にはＳＡ１からＳＡ３のサービスクラス情報を登録する。以上を初期状態とする。
【０１６８】
次に、制御部１２が、クラスＢであるＳＡ４のサービスクラス情報ＳＣ４の登録要求を受信すると、まず、サービスクラスＳＣ４の登録作業に入る。すなわち、第１のＳＡＤ管理表を参照して第１のＳＡＤ２１１の空きエントリの有無を確認する。図１８の初期状態では、第１のＳＡＤ２１１にはＳＡ１、ＳＡ２が登録されており、空きエントリは存在しない。そこで、制御部１２はＳＡ２がクラスＡであることを検出するとＳＡ２を第１のＳＡＤ２１１から削除して第２のＳＡＤ３１のＳＡ登録先情報を更新し、ＳＡ２用パケットが第２のＩＰｓｅｃ処理部３０に転送されるように経路情報を更新する。これによって、第１のＳＡＤ２１１上で得られた空きエントリをＳＣ４用のサービスクラス情報識別子を用いて予約する。
【０１６９】
制御部１２は、ＳＡ４の登録要求に対し、ＳＡ４がＳＣ４に属するクラスＢであることを確認するとＳＣ４用のサービスクラス情報識別子で第１のＳＡＤ管理表を検索して予約されたエントリにＳＡ４を登録する。さらに、第２のＳＡＤ３１にもＳＡ４を登録先情報とサービスクラスと共に登録し、サービスクラス管理表にはサービスクラス情報ＳＣ４を追加し、更に、ＳＡ４用のパケットがネットワークインタフェース２０に向かうように経路情報を設定する。
【０１７０】
次に、ＳＡ４の削除要求が発生すると、制御部１２は、ＳＡ４の削除要求に対し、ＳＡ４のサービスクラスを調べ、ＳＡ４がＳＣ４に属するクラスＢであることを確認すると、第１のＳＡＤ管理表を検索してＳＡ４が第１のＳＡＤ２１１に登録されていることを確認し、ＳＡ４を第１のＳＡＤ２１１から削除する。さらに、第２のＳＡＤ３１からＳＡ４を登録先情報やサービスクラスと共に削除し、ＳＡ４用のパケットの経路情報を削除する。なお、第１のＳＡＤ２１１には、サービスクラスＳＣ４は、削除せず残すので、ＳＣ４はＳＡ４が削除された時点では予約状態である。
【０１７１】
制御部１２は、ＳＣ４の削除要求を受信すると、サービスクラス管理表を検索してクラスＢであることを確認し、ＳＣ４のサービスクラス情報識別子を獲得する。さらに、ＳＣ４のサービスクラス情報識別子を用いて第１のＳＡＤ管理表を検索してＳＣ４の予約を解除する。これにより、第１のＳＡＤに空きエントリが生じるため、制御部１２は第２のＳＡＤ３１を検索してクラスＡに属するＳＡ２を検出し、ＳＡ２を第１のＳＡＤ２１１に登録する。さらに、第２のＳＡＤ３１上のＳＡ２の登録先を更新し、ＳＡ２用のパケットがネットワークインタフェース２０に転送されるように経路情報を更新する。
【０１７２】
以上説明したように、クラスＢに属するＳＡのサービスクラス情報を登録しておくことで、ＳＡの登録前に第１のＳＡＤ２１１上に空きエントリを確保してＳＡの登録を保証することができる。
【０１７３】
また、クラスＢを含むサービスクラス情報を登録する際に、クラスＡに属するＳＡが第１のＳＡＤ２１１に登録されており、かつ、第１のＳＡＤ２１１に空きエントリが無い場合には、クラスＡに属するＳＡを第１のＳＡＤ２１１から削除して第２のＳＡＤ３１に登録する。これにより、第１のＳＡＤ２１１に空きエントリが生成されてクラスＢを含むサービスクラス情報が登録可能となる。
【０１７４】
また、第４のサービスクラス情報（ＳＣ４）を削除することで生じた第１のＳＡＤ２１１上の空きエントリに第２のＳＡＤ３１に登録されたクラスＡのＳＡを登録することにより、第２のＩＰｓｅｃ処理部３０が実行するＳＡ数が減少して暗号通信装置２００のＣＰＵ負荷が低減される。
【０１７５】
以下に、制御部１２が第１のＩＰｓｅｃ処理部２１の異常を検出した場合の動作について説明する。なお、異常の検出方法の一例としては、制御部１２が一定時間ごとに第１のＩＰｓｅｃ処理部２１内のレジスタにアクセスして正しい反応が返ってこない時点で異常とみなす方法がある。
【０１７６】
まず、第２のＳＡＤ３１に登録されている全てのＳＡについて登録先を第２のＳＡＤに変更し、登録先が第１のＳＡＤであったＳＡに対応するＩＰパケットが第２のＩＰｓｅｃ処理部３０に転送されるように経路制御部４１のルーティングテーブルを更新する。
【０１７７】
次に、切り替え部２２をバイパス側に設定することで、ネットワークインタフェース２０によって全てのパケットが第１のＩＰｓｅｃ処理部２１を経由しないようにする。
【０１７８】
以上のように、全てのＳＡが第２のＳＡＤ３１にも登録されているため、第１のＩＰｓｅｃ処理部２１に異常が発生した場合でも第１のＩＰｓｅｃ処理部２１で処理されていたＳＡはすべて第２のＩＰｓｅｃ処理部３０で処理される。
【０１７９】
その結果、第１のＩＰｓｅｃ処理部２１で提供されていた高速処理は実現できないが、ＩＰｓｅｃ通信そのものは継続することができる。
【０１８０】
なお、本実施の形態３においては、トンネルモードを想定して説明したが、暗号通信装置２００、２０１の一方、または両方が、ＩＰパケットを生成または利用、消費するトランスポートモードの装置、すなわち、ホストとして動作する場合においても、上記説明の構成や動作手順を適用できる。
【０１８１】
（実施の形態４）
次に、上記各実施の形態で説明した各表について、その一例を具体的に説明する。
【０１８２】
図１９は、ネットワーク構成の別の例である。セキュリティゲートウェイＳＧＷ＃１、ＳＧＷ＃２、ＳＧＷ＃３、および、ＳＧＷ＃４は、ハブを介してサブネットワーク間で暗号通信を行う。ＳＧＷ＃１、ＳＧＷ＃２、ＳＧＷ＃３、ＳＧＷ＃４のハブとは反対の側には、暗号通信を行わないサブネットワークがそれぞれ接続されている。それらのサブネットワークアドレスは、それぞれ、図１９に示すように、１９２．１６８．１．０、１９２．１６８．２．０、１９２．１６８．３．０、１９２．１６８．４．０とする。ＳＧＷ＃１、ＳＧＷ＃２、ＳＧＷ＃３、ＳＧＷ＃４のハブ側のＩＰアドレスは、それぞれ、１３２．１８２．１．１、１３２．１８２．１．２、１３２．１８２．１．３、１３２．１８２．１．４とする。ＳＧＷ＃１、ＳＧＷ＃２、ＳＧＷ＃３、ＳＧＷ＃４は、それぞれ、（実施の形態３）において説明した暗号通信装置である。以下、ＳＧＷ＃１に着目して、ＳＡ登録先管理表、サービスクラス管理表、第１のＳＡＤ管理表、ルーティングテーブル、鍵交換部設定ファイルの例につき説明する。
【０１８３】
図１９のネットワークにおいて、ＳＧＷ＃１−ＳＧＷ＃２の間は、クラスＢ、ＳＧＷ＃１−ＳＧＷ＃３の間は第１のクラス、ＳＧＷ＃１−ＳＧＷ＃４の間は第２のクラスの各サービスクラスを適用する場合、鍵交換部設定ファイルには、図２４に示すようなデータが記述されている。図２４においては、各暗号通信装置間の暗号通信のサービスクラス定義の他に、暗号通信のモード、使用する暗号化プロトコル、装置自身の接続サブネットＩＤ、相手の装置の接続サブネットＩＤなどが記述されている。
【０１８４】
図２０は、（１）ＳＡ登録先管理表、（２）サービスクラス管理表の例を示している。ＳＡ登録先管理表では、ＳＧＷ＃１から見た暗号通信の相手であるＳＡ端点の宛先ＩＰアドレス、その相手との暗号通信に使用するＳＡのＳＰＩ値、使用するサービスクラス、および、ＳＡの登録先が、一覧表になっている。サービスクラス管理表では、セレクタとしてサブネットワークの送信元と宛先のＩＰアドレスの対、適用するサービスクラス、および、その識別子が一覧表になっている。
【０１８５】
図２１は、図２０に示した（１）ＳＡ登録先管理表と（２）サービスクラス管理表とを統合した統合管理表の例を示している。図２２に示すように、参照するデータ部分を選択することにより、ＳＡ登録先管理表としても、サービスクラス管理表としても使用することができる。ＳＡ端点の宛先の代わりに、ＩＰアドレス送信元ＩＰアドレスと宛先ＩＰアドレスの対をセレクタ用に記載している。
【０１８６】
図２３は、（１）第１のＳＡＤ管理表、（２）ルーティングテーブルの例である。第１のＳＡＤ管理表は、第１のＳＡＤ２つのエントリに格納されているＳＡのデータ、パラメータなどの情報に対応して、ＳＡ登録の有無、サービスクラス情報識別子、宛先ＩＰアドレス、ＳＰＩ値が表になっている。同様の表は、第２のＳＡＤに対しても、第２のＳＡＤ管理表として用意される。図２３の（２）ルーティングテーブルは、ＳＧＷ＃１が、どの経路を介して、外部に接続されているかを示す。図２３（２）において、１行目と２行目は、ネットワークインタフェース２０と５０が、それぞれ、サブネットワーク１３２．１８２．１．０と１９２．１６８．１．０に接続されていることを示す。５行目は、宛先アドレスが、ＳＧＷ＃４の場合、第２のＩＰｓｅｃ処理部３０を介して、処理が行われることを示す。
【０１８７】
サービスクラスＡやＢを適用しない場合は、図２０、図２１、図２２、図２３の各表におけるサービスクラス情報識別子とサービスクラスの欄は省略できる。また、図２０（２）のサービスクラス管理表（統合前）は、不要である。
【０１８８】
図２０、図２１、図２２、図２３に示した各表のうち、図２３（１）のルーティングテーブル以外は、上記実施の形態１で説明したトランスポートモードの構成の場合にも、同様の形式が採用できる。
【０１８９】
また、図２０、図２１、図２２、図２３に示した各表は、一例であって、同様の機能を果たすものであれば、他の形式の表でも、また、データの集合体であってもよい。
【０１９０】
（実施の形態５）
次に、図２において、鍵交換部１１と制御部１２を、実施の形態１から変えた例について説明する。図２において、鍵交換部１１と制御部１２以外は実施の形態１と同様の動作を行うので説明は省略する。
【０１９１】
鍵交換部１１は実施の形態１と同様、通信相手の暗号通信装置とのセキュリティ通信に用いるパラメータをネゴシエーションし、ＳＡおよびユーザがセレクタごとに規定したＱＯＳパラメータを制御部１２に通知する。
【０１９２】
なお、本実施の形態では、ＱＯＳパラメータとして平均スループット値がセレクタごとに設定ファイル等に記載されており、鍵交換部１１が起動時等に設定ファイル等を読み込んで制御部１２に通知するものとする。
【０１９３】
制御部１２は、ＳＡの登録先を決定するためのＱＯＳパラメータの閾値を保持している。
【０１９４】
なお、本実施の形態では、ＱＯＳパラメータの閾値は第２のＩＰｓｅｃ処理部３０で処理可能な平均スループット値である。
【０１９５】
制御部１２は、鍵交換部１１からＳＡとＱＯＳパラメータである平均スループット値を受け取る。受け取った平均スループット値を閾値と比較し、閾値を上回れば受け取ったＳＡを第１のクラスであると判断し、下回れば受け取ったＳＡを第２のクラスであると判断する。これによって、ＳＡのサービスクラスが決定されるので、制御部１２は実施の形態１で説明した登録処理に従って受け取ったＳＡを第１のＳＡＤ２１１または第２のＳＡＤ３１に登録する。
【０１９６】
以上のように、ＩＰｓｅｃ通信に求められるＱＯＳパラメータに従ってサービスクラスを決定することで、高スループットが必要なＩＰｓｅｃ通信のＳＡは第１のクラスに、それ以外のＳＡは第２のクラスに設定される。その結果、高スループットが求められるＩＰｓｅｃ通信は第１のＩＰｓｅｃ処理部が、それ以外は第２のＩＰｓｅｃ処理部がＩＰｓｅｃ処理を行うようになることで、高スループットが必要なＩＰｓｅｃ通信を提供し、同時に、それ以外の多数のＩＰｓｅｃ通信を提供することができる。
【０１９７】
（実施の形態６）
次に、図２において、鍵交換部１１と制御部１２を、実施の形態１からさらに変えた例について説明する。図２において、鍵交換部１１と制御部１２以外は実施の形態１と同様の動作を行うので説明は省略する。
【０１９８】
鍵交換部１１は実施の形態１と同様、通信相手の暗号通信装置とのセキュリティ通信に用いるパラメータをネゴシエーションし、ＳＡおよび管理者がセレクタごとに規定したＳＡの優先度を制御部１２に通知する。
【０１９９】
なお、本実施の形態では、優先度は全てのセレクタについて優先度の高いものから１、２、３、…と設定され、セレクタごとに鍵交換部１１用の設定ファイルに記載されており、鍵交換部１１は起動時または設定ファイルの更新時に設定ファイルを読み込んでＳＡと共に制御部１２に通知するものとする。
【０２００】
制御部１２は、第１のＳＡＤ２１１のエントリ数に従った閾値（本実施の形態では２）を保持している。制御部１２は、鍵交換部１１からＳＡと共に受け取った優先度を保持している閾値と比較し、優先度が閾値と以下の場合には受け取ったＳＡを第１のクラスであると判断し、優先度が閾値よりも大きい場合には受け取ったＳＡを第２のクラスであると判断する。これによって、ＳＡのサービスクラスが決定されるので、制御部１２は実施の形態１で説明した登録処理に従い受け取ったＳＡを第１のＳＡＤ２１１または第２のＳＡＤ３１に登録する。
【０２０１】
以上のように、ＳＡはその優先度に基づいて第１のＳＡＤ２１１または第２のＳＡＤ３１に登録されるので、優先度の高いＳＡは第１のＩＰｓｅｃ処理部２１で、優先度の低いＳＡは第２のＩＰｓｅｃ処理部３０で処理されることになる。その結果、高スループットや低遅延が必要なＳＡの優先度を高く、それ以外のＳＡの優先度を低く設定することで、高スループットや低遅延が必要なＩＰｓｅｃ通信を提供し、同時に、それ以外の多数のＩＰｓｅｃ通信を提供することができる。
【０２０２】
（実施の形態７）
上記各実施の形態において、ネットワークインタフェース２０を複数個設け、これらのネットワークインタフェースを、それぞれ、第２のＩＰｓｅｃ処理部３０、パケット送受信部４０に結合し、別々のサブネットワークに接続した暗号処理装置としてもよい。各ネットワークインタフェースは、各サブネットワークに対して用意されるので、複数のサブネットワークとの暗号通信を同時並列的に処理可能となる。制御部１２には、各ネットワークインタフェースと、接続されているサブネットワークのＩＰアドレスを対比するＩＰアドレス管理表を設け、接続時あるいは起動時にこの管理表を設定する。送信元ＩＰアドレスと宛先ＩＰアドレスの対、ＳＡ端点の宛先ＩＰアドレス、ＳＰＩ値などの検索キーに対応して、使用するネットワークインタフェースを指定する識別子をＳＡ登録先管理表、ルーティングテーブルなどに登録記載できるようにする。
【０２０３】
ＳＡを登録する場合、まず、ＳＡ端点の宛先ＩＰアドレスをキーに、ＩＰアドレス管理表を検索し、ＳＡを登録すべきＩＰｓｅｃ処理部を複数の中から選択し特定する。ＳＡ登録先管理表には、登録先として、選択したＩＰｓｅｃ処理部の識別子を記載する。ＳＡ端点のＩＰアドレスとしては、送信用では送信元のＩＰアドレスを、受信用では宛先のＩＰアドレスを使用する。登録すべきＩＰｓｅｃ処理部が特定されれば、あとは、すでに説明した手順により、ＳＡが登録できる。
【０２０４】
ＳＡの削除時には、ＳＡ登録先管理表から、削除したいＳＡが第１のＩＰｓｅｃ処理部に登録されていることを確認後、削除したいＳＡのＳＡ端点の宛先ＩＰアドレスとＳＰＩ値の組、あるいは、一方をキーにして、ＳＡ登録先管理表から、登録先のＳＡＤの番号を知る。そのＳＡＤを検索し、ＳＡを削除する。なお、すべての第１のＳＡＤ管理表を検索するようにしてもよい。
【０２０５】
（実施の形態８）
また、本発明の実施の形態において、すでに説明した第１のＩＰｓｅｃ処理部２１、第２のＩＰｓｅｃ処理部３０に加えて、暗復号処理および認証処理を行う第ｉ（ｉ＝３、４、…、ｎ）のハードウェアと第ｉ（ｉ＝３、４、…、ｎ）のＳＡＤを有した（ｎ−２）個のＩＰｓｅｃ処理部ｉ（ｉ＝３〜ｎ）を有し、サービスクラスとして第ｎのＳＡＤにＳＡを登録することを示す第ｎのクラスを設け、制御部がＳＡごとに設定されたサービスクラスに応じて第１または第２のＳＡＤあるいは第ｎのＳＡＤにＳＡを登録しても良い。また、ｎ個のＩＰｓｅｃ処理部を設けた場合に、ＳＡごとに設定されたＱＯＳパラメータを第１から第（ｎ−１）の閾値と比較し、ＳＡのサービスクラスを第１のクラス、第２のクラス、…、第ｎのクラスとして決定するようにしても良い。ここで、ＱＯＳパラメータとして、ＩＰｓｅｃ通信が要求するスループット値やＩＰｓｅｃ処理の遅延時間を用いても良い。例えば、ＱＯＳパラメータがＩＰｓｅｃ通信で要求するスループット値の場合、スループット値が第１の閾値よりも大きければ第１のクラスに、第１の閾値と第２の閾値との間であれば第２のクラスに、同様に、第ｊ（２≦ｊ≦ｎの最大値−１）の閾値と第（ｊ＋１）の閾値との間であれば第（ｊ＋１）のクラスにサービスクラスが設定される。
【０２０６】
（その他の実施の形態、および、補足）
本発明の実施の形態では、セキュリティを確保する技術としてＩＰｓｅｃを用いて説明したが、パケット単位でセキュア化され、セキュア化のためのセキュリティパラメータがパケットのヘッダ情報に基づいて検索可能なものであれば、ＩＰｓｅｃ以外の技術についても有効である。
【０２０７】
また、本発明の実施の形態では、第１のＳＡＤの送信用、受信用のエントリをそれぞれ２個としたが、第１のＳＡＤのエントリ数を制限する必要はない。
【０２０８】
また、本発明の実施の形態では、予約するエントリ数を送信用、受信用共に１個としたが、１個より多くても構わず、また、送信用、受信用で同じ個数である必要はない。
【０２０９】
また、本発明の実施の形態では、第２のＩＰｓｅｃ処理部は主にソフトウェアで構成されていると説明したが、暗復号処理および認証処理を行うハードウェアを含んでいても構わない。この時、第１のＩＰｓｅｃ処理部に含まれる暗復号処理や認証処理を行うハードウェアを共用しても良い。
【０２１０】
また、本発明の実施の形態では、鍵交換部がＳＡとサービスクラスを通知するものとして説明したが、鍵交換部以外の管理アプリケーションがＳＡまたはサービスクラス、もしくは、その両方を制御部に通知しても良い。
【０２１１】
また、本発明の実施の形態では、サービスクラスは送信用と受信用とで必ずしも等しいクラスである必要はなく、異なるクラスであっても良い。また、送信用と受信用のサービスクラスが必ず等しい場合には、送信用と受信用でサービスクラス情報管理表を１つにして共用しても良い。この場合、削除した側のサービスクラス情報は、ＳＡのセレクタに含まれる送信元ＩＰアドレスと宛先ＩＰアドレスを入れ替えることで決定できる。
【０２１２】
また、本発明の実施の形態において、暗号通信装置は端末の形態であっても経路制御部を有したゲートウェイ装置の形態であっても良い。この場合、制御部は、ＳＡの登録先に応じて経路情報を設定する。
【０２１３】
また、本発明の実施の形態では、制御部が第１のＩＰｓｅｃ処理部内のレジスタに一定時間おきにアクセスして正しい応答が返ってこないことで第１のＩＰｓｅｃ処理部の異常を検出したが、第１のＩＰｓｅｃ処理部自身が異常か否かを判断するセルフチェック回路を有して異常の発生を制御部に通知しても良い。また、異常の検出は一定時間おきに実行する以外に、起動直後や終了処理時に実行しても良い。
【０２１４】
また、本発明の実施の形態では、ＱＯＳパラメータとして平均スループット値を用いたが最大スループット値や必要なスループット値の最小値でも良い。
【０２１５】
また、本発明の実施の形態において、第１のＩＰｓｅｃ処理部の平均スループット値を閾値とし、制御部はＱＯＳパラメータが閾値を上回った場合には第１のクラスと、閾値を下回った場合には第２のクラスと設定しても良い。
【０２１６】
また、本発明の実施の形態おいて、ＱＯＳパラメータとしてＳＡを用いたセキュリティ通信に求められる遅延時間を用い、閾値として第１のＩＰｓｅｃ処理部の処理時間または第２のＩＰｓｅｃ処理部の処理時間を用いても良い。
【０２１７】
また、本発明の実施の形態において、暗号アルゴリズムや認証アルゴリズムおよびその組み合わせごとに閾値を設けて、ＳＡに設定された暗号アルゴリズムや認証アルゴリズムおよびその組み合わせに対応した閾値とＱＯＳパラメータとを比較してもよい。
【０２１８】
また、本発明の実施の形態において、鍵交換部がＲＦＣ２３６７で定められたＰＦ＿ＫＥＹメッセージやその独自拡張メッセージを用いて制御部にＳＡを通知しても良い。
【０２１９】
また、本発明の実施の形態において、鍵交換部がＲＦＣ２３６７で定められたＰＦ＿ＫＥＹメッセージの独自拡張メッセージを用いて制御部にサービスクラス情報を通知しても良い。
【０２２０】
上記各実施の形態での説明では、サービスクラスをサービスクラス管理表に追加登録、あるいは、削除するようにしたが、使用する可能性のあるサービスクラスについては、全部登録しておき、削除はせず、サービスクラス名とサービスクラス情報識別子との対応が常時取れるようにしてもよい。
【０２２１】
上記説明では、すべてのサービスクラスに対して、サービスクラス識別子を設けるようにしたが、クラスＢのみに、サービスクラス識別子を設けるようにしてもよい。また、サービスクラスＳＣは、サービスクラス名とサービスクラス識別子とが１対１で対応するものであるから、サービスクラス名に対して、識別子を別に設けずに、サービスクラス名を識別子として使用してもよい。たとえば、サービスクラス第１に対して“１”、第２に対して“２”、クラスＡに対して“Ａ”、クラスＢに対して“Ｂ”としてもよい。この場合は、サービスクラス情報の登録により、実質的にサービスクラス識別子も登録されるので、別途サービスクラス識別子を登録する必要はない。
【０２２２】
上記各実施の形態においては、複数のＳＡＤ、たとえば、第１のＳＡＤ２１１と第２のＳＡＤ３１とを設けたが、第１のＩＰｓｅｃ処理部２１の中に、第１のＳＡＤ２１１の代わりにＳＡメモリを設け、第１のＳＡＤの内容は第２のＳＡＤに統合してもよい。この場合、各表におけるＳＡＤの登録先欄の代わりに、使用ＩＰｓｅｃ処理部欄を設け、使用ＩＰｓｅｃ処理部が第１のＩＰｓｅｃ処理部か、第２のＩＰｓｅｃ処理部か、を識別する識別子を設けて、この識別子を使用ＩＰｓｅｃ処理部欄に記載する。サービスクラスＳＣ１は、第１のＩＰｓｅｃ処理部使用、サービスクラスＳＣ２は、第２のＩＰｓｅｃ処理部使用、サービスクラスＡは、第１または第２のＩＰｓｅｃ処理部使用、サービスクラスＢは、第１のＩＰｓｅｃ処理部使用予約可能となる。暗号通信を行う前に、各表と、統合ＳＡＤを参照して、第１のＩＰｓｅｃ処理部を使用できる状態であれば、使用すべきＳＡを統合ＳＡＤから取り出し、第１のＩＰｓｅｃ処理部に設けたＳＡメモリに書き写して、以降、ＳＡメモリ内のＳＡのデータを使用して暗復号化処理を行う。
【０２２３】
３つ以上のＩＰｓｅｃ処理部を備える場合にも、それぞれにＳＡＤを設けずに、統合ＳＡＤを設けて、ＳＡを登録するとともに、そのＳＡをどのＩＰｓｅｃ処理部で使用するかの使用識別子を登録して置き、セレクタであるＩＰアドレス対やＳＰＩ値により、ＳＡを検索するとともに、使用識別子を検出し、検索したＳＡを指定されたＩＰｓｅｃ処理部に送って、そのＩＰｓｅｃ処理部において、暗復号処理を行うようにしてもよい。
【０２２４】
統合したＳＡＤを設ける場合、第１のＩＰｓｅｃ処理部２１が空いていれば、サービスクラスにかかわらず、これを優先的に使用しておき、優先度がより高いＳＡを使用する暗号通信の要求が発生した段階で、第１のＩＰｓｅｃ処理部２１で行っている暗号通信の処理を第２のＩＰｓｅｃ処理部３０に移して、第１のＩＰｓｅｃ処理部２１を空け、新たな暗号通信要求を実行するようにしてもよい。このような場合、サービスクラス１、２やクラスＡ、Ｂを設けてもよいが、クラス１だけにしてもよい。クラス１の場合だけ、優先的に第１のＩＰｓｅｃ処理部２１を使用することができ、クラス１でなければ、クラス１の暗号通信の要求が発生すると、第２のＩＰｓｅｃ処理部３０に移動することになり、クラスＡと同様の扱いとなる。なお、第１のＩＰｓｅｃ処理部２１と第２のＩＰｓｅｃ処理部３０の間の処理の移動は、パケット毎に処理が完了した時点で行うことが好ましい。このようにすれば、高々１個のパケット処理が完了するのを待てば、より高速なＩＰｓｅｃ処理部を使用することが可能になり、全体として柔軟なＩＰｓｅｃ処理が行える。
【０２２５】
上記各実施の形態の説明において、さらに、第３のＩＰｓｅｃ処理部を設ける場合、ＩＰｓｅｃ処理の重複を避けるため、第２のＩＰｓｅｃ処理部は、プロトコルがＡＨやＥＳＰでないことを確認しなければならない。また、ＩＰｓｅｃの処理方式では、送信元アドレスと宛先アドレスの組に加えて、上記プロトコルと（ＴＣＰやＵＤＰの）ポート番号も検索キーに含める方法も規定されているが、この場合、ＩＰヘッダ内にある、プロトコルやポート番号も検索キーに含んだ形で検索を行う。プロトコルとポート番号は、送信側・受信側、それぞれを設定することができる。
【０２２６】
上記各実施の形態における各種パケットの経路のうち、第２のＩＰｓｅｃ処理部３０とネットワークインタフェース２０の間は、前者から後者へ向けての経路のみとし、ネットワークインタフェース２０から第２のＩＰｓｅｃ処理部３０へ向けてパケットを送る場合は、経路制御部４１の制御により、パケット送受信部４０を経由するようにした。後者から前者への逆の方向の経路も設けておき、受信パケットについて、第１のＳＡＤにＳＡが見つからなかった場合、ネットワークインタフェース２０から第２のＩＰｓｅｃ処理部３０へパケットを送るようにしてもよい。
【０２２７】
次に、ＩＰアドレス対、セレクタ、ＳＡ、ＳＰＩ値について、補足説明する。トランスポートモードの暗号通信では、暗号通信装置自身がホストであり、自身のＩＰアドレス対をセレクタとし、ＳＡ、ＳＰＩ値が決められる。トンネルモードでは、セレクタとして使うＩＰアドレス対には、いくつかの形態があるので補足する。図９のようなネットワークにおいて、ホスト２０２は、暗号化対象電文を発行し、暗号通信装置２００が、暗号化対象電文を暗号化して送信し、暗号通信装置２０１が、受信した電文の復号化を行い、ホスト２０４が、復号化された暗号化対象電文を受信して、電文を利用する。このような場合、暗号通信装置２００と暗号通信装置２０１が使用するＳＡを生成するネゴシエーションには、様々な形態がある。以下に、その形態を列挙しておく。
【０２２８】
ホスト２０２が、ホスト２０４宛の暗号通信を必要とするアプリケーションを起動した段階で、暗号通信装置２００と暗号通信装置２０１とにネゴシエーションを実行させて、ＳＡを生成するような形態の場合は、暗号通信装置２００と暗号通信装置２０１は、ホスト２０２とホスト２０４のＩＰアドレスの対をセレクタとし、生成したＳＡに対応するＳＰＩ値を割り振る。
【０２２９】
ホスト２０２が、ホスト２０４宛の暗号通信を必要とするアプリケーションを起動する以前に、あらかじめ、暗号通信装置２００と暗号通信装置２０１とにネゴシエーションを実行させて、ＳＡを生成しておくような形態の場合にも、暗号通信装置２００と暗号通信装置２０１は、ホスト２０２とホスト２０４のＩＰアドレスの対をセレクタとし、生成したＳＡに対応するＳＰＩ値を割り振る。
【０２３０】
ホスト２０２が属するサブネットワークＬＡＮ２０７上の任意の機器から、ホスト２０４が属するサブネットワークＬＡＮ２０８上の任意の機器宛の暗号通信を行うアプリケーションに対してＳＡを生成する場合は、あらかじめ、暗号通信装置２００と暗号通信装置２０１とにネゴシエーションを実行させ、暗号通信装置２００と暗号通信装置２０１は、２つのサブネットワークのＩＰアドレスの対をセレクタとし、生成したＳＡに対応するＳＰＩ値を割り振るようにする。この場合、複数のＳＡを生成しておき、その中から適宜選択して使用するようにしてもよい。
【０２３１】
暗号通信装置２００と暗号通信装置２０１の間を通るすべての暗号通信に使用するＳＡを生成する場合は、あらかじめ、暗号通信装置２００と暗号通信装置２０１がネゴシエーションを実行しておき、暗号通信装置２００と暗号通信装置２０１は、暗号通信装置２００、２０１のＩＰアドレスの対をセレクタとし、生成したＳＡに対応するＳＰＩ値を割り振る。この場合、複数のＳＡを生成しておき、その中から適宜選択して使用するようにしてもよい。
【０２３２】
ホスト２０２が、ホスト２０４宛の暗号通信を必要とするアプリケーションを起動した段階で、暗号通信装置２００と暗号通信装置２０１とにネゴシエーションを実行させて、ＳＡを生成するような形態の場合に、暗号通信装置２００と暗号通信装置２０１は、暗号通信装置２００と暗号通信装置２０１の、ＷＡＮ２０６側のＩＰアドレスの対をセレクタとし、生成したＳＡに対応するＳＰＩ値を割り振るようにしてもよい。
【０２３３】
上記をまとめると、暗号化対象電文を発行する機器を電文送信端点、復号化済電文を受信する機器を電文受信端点、暗号化処理する機器を送信ＳＡ端点、復号化処理する機器を受信ＳＡ端点と名づけた場合、アプリケーションや暗号化対象電文が発行される機器やサブネットワークの範囲、および、復号化済電文を受信し使用する機器やサブネットワークの範囲によって、電文送信端点と送信ＳＡ端点のいずれかの送信元ＩＰアドレスと、受信ＳＡ端点と電文受信端点のいずれかの宛先ＩＰアドレスと、を対とする組が、セレクタと成りうることになる。
【０２３４】
さらに、送信元ＩＰアドレスと宛先ＩＰアドレスの組に加え、送信元の上位プロトコルとポート番号、宛先の上位プロトコルとポート番号をセレクタに加えてもよい。上位プロトコルとはＴＣＰやＵＤＰなど、ＩＰの上位に位置するプロトコルである。上位プロトコルとポート番号をセレクタに加えた場合、同じ宛先アドレスでも、上位プロトコルやポート番号が異なれば、複数のＳＡを登録できる。このため、同じ宛先アドレスに対する複数のＳＡについて、一方は第１のＳＡＤに、もう一方は第２のＳＡＤに登録される場合が存在する。ルーティングは宛先アドレスごとにしか指定することはできないので、両者をルーティングだけで区別することはできない。そこで、いずれのＳＡＤも参照するようにルーティングを設定しなければならない。
【０２３５】
すなわち、上位プロトコルとポート番号をセレクタに含むＳＡを登録する場合は、常に第２のＩＰＳＥＣ処理部に当該パケットが転送されるようにルーティングを設定する。こうすることで、仮にＳＡが第１のＳＡＤに登録されたとしても、当該パケットは第２のＩＰＳＥＣ処理部を通過し、ネットワーク−インタフェースを介して第１のＩＰＳＥＣ処理部に達する。そして、第１のＩＰＳＥＣ処理部が上記ＳＡを適用し、ＩＰＳＥＣパケットを生成することができる。
【０２３６】
また、上位プロトコルとポート番号をセレクタに含んでいても、同じ宛先アドレスを持つＳＡが存在しない場合は、そのＳＡを登録したＳＡＤに応じて、ルーティングを設定しても構わない。この場合、同じ宛先アドレスを持つ、別のＳＡを登録する際には、第２のＩＰＳＥＣ処理部に登録しなければならないことに注意する必要がある。この点について、もう少し詳しく説明する。上位プロトコルとポート番号をセレクタに含んでいても、同じ宛先アドレスを持つＳＡ（複数存在しても良い）が、暗号通信装置内の同じＳＡＤ内に存在している場合は、宛先アドレスによってＳＡの登録先が特定できるので、そのＳＡが登録されているＳＡＤに応じて、ルーティングを設定しても良い。例えば、上記ＳＡを第１のＳＡＤに登録している場合、ネットワークインタフェース２０にルーティングすることにより、送信時に第２のＩＰＳＥＣ処理部を経由する必要がなくなり、負荷を軽減することがでる。しかしながら、同じ宛先アドレスを持つＳＡが、暗号通信装置内の複数のＳＡＤにまたがって登録されている場合は、宛先アドレスによってＳＡの登録先が特定できないため、第２のＩＰＳＥＣ処理部にルーティングするよう設定する。その結果、送受信とも第１のＩＰＳＥＣ処理部および第２のＩＰＳＥＣ処理部を通るので、いずれのＳＡＤに該当するＳＡが登録されていたとしても、そのＳＡを検出することができることになる。
【０２３７】
一方、上位プロトコルとポート番号をセレクタに含むＳＡを削除する場合、当該ＳＡと同じ宛先アドレスを持つＳＡが、当該ＳＡが登録されているＳＡＤに登録されていないか確認しなければならない。もし、別のＳＡが登録されていなければ、ルーティングは削除してもよいが、別のＳＡが登録されている場合、ルーティングは削除してはならない。この点について、もう少し詳しく説明する。上記２通りのルーティング設定方法に対応して、２通りの削除方法を選択できる。
（１）常に第２のＩＰＳＥＣ処理部にルーティング設定を行う場合において、上位プロトコルとポート番号をセレクタに含むＳＡの削除については、削除するＳＡ以外に、削除するＳＡと同じ宛先アドレスを持つＳＡが、暗号通信装置内のいずれのＳＡＤにも登録されていなければ、ルーティング設定を削除してよい。一方、登録されている場合は、ルーティング設定を削除してはならない。また、（２）ＳＡの登録状況によって、第１または第２のＩＰＳＥＣ処理部にルーティングを設定する場合では、削除するＳＡと同じ宛先アドレスを持つＳＡが、暗号通信装置内のＳＡＤに登録されているか、否かを確認したうえで、以下の（イ）〜（ニ）の処理を行えばよい。（イ）該当するＳＡが登録されていない場合には、ルーティング設定を削除する。（ロ）該当するＳＡが、削除するＳＡが登録されたＳＡＤのみに登録されている場合には、ルーティング設定は削除しない。（ハ）該当するＳＡが、削除するＳＡとは別のＳＡＤのみに登録されている場合には、別のＳＡＤに転送されるよう、ルーティングを設定しなおす。（ニ）該当するＳＡが、複数のＳＡＤにまたがって登録されている場合には、ルーティング設定は削除しない。
【０２３８】
上記各実施の形態の説明では、生成したＳＡをセレクタに対応づけ、次に、第１のＳＡＤ２１１、第２のＳＡＤ３１のどちらで使用するかによって、ＳＡＤの登録先を、ＳＡに対応して決めるようにした。別のやり方として、セレクタに対応してＳＡを生成するとともに、セレクタに対応して登録先を決めるようにしてもよい。この場合、リキー処理などにより、使用するＳＡを暗号通信の途中で、定期的に切り替えるような場合にも、ＳＡのみを更新し、ＳＡＤの登録先は、そのままとすることができる。
【０２３９】
本発明は、パケットのヘッダ情報に対応したセキュリティパラメータが登録された第１のセキュリティデータベースと、前記第１のセキュリティデータベースに登録されたセキュリティパラメータに基づいて、通常のパケットをセキュアなパケットに変換して送信し、受信したセキュアなパケットを通常のパケットに変換する第１のセキュア処理部を有するネットワークインターフェースと、パケットのヘッダ情報に対応したセキュリティパラメータが登録された１つないし複数の（ｎ−１）個（ｎは２以上の整数）の第ｉ（ｉ＝２〜ｎ）のセキュリティデータベースと、前記第ｉのセキュリティデータベースに登録されたセキュリティパラメータに基づいて、通常のパケットをセキュアなパケットに変換して前記ネットワークインターフェースに転送し、受信したセキュアなパケットを通常のパケットに変換する第ｉのセキュア処理部（ｉ＝２〜ｎ）と、セキュリティパラメータのサービスクラスに基づいてセキュリティパラメータを前記第１〜第ｎのセキュリティデータベースのいずれかに登録する制御部とを有する暗号通信装置である。セキュア処理部としては、ＩＰｓｅｃ処理部が代表的であるが、これに限定はされず、他の処理方式でもよい。ＳＡＤのようなセキュリティデータベースに登録するセキュリティパラメータも、ＳＡに限定せず同様の機能を果たすパラメータなら適用できる。
【０２４０】
【発明の効果】
以上、本発明によれば、
（１）複数のセキュア処理部を備え、階層化して使用することにより、高速の暗号通信や低速の暗号通信要求に対して、セキュア処理部を柔軟に使い分けることができ、速度要求を満たすことが容易になり、ＣＰＵの処理能力も有効に活用できる。
【０２４１】
（２）サービスクラスを設け、さらに、クラスＡ、Ｂを設けることが可能になり、高速の暗号通信の要求に更に柔軟に対処できる。
【０２４２】
（３）第１のセキュア処理部で使用するＳＡを第２〜第ｎのＳＡＤにも登録し、登録先情報も記載しておくことにより、ＳＡの検索や、ＳＡのデータの移動の処理負担が低減できる。
【図面の簡単な説明】
【図１】実施の形態１に係るセキュリティ通信システムの構成図
【図２】実施の形態１、実施の形態４および実施の形態５に係る暗号通信装置の構成図
【図３】実施の形態１におけるパケットの通過経路を示す図
【図４】実施の形態１におけるＳＡの通過経路を示す図
【図５】実施の形態１における制御部のＳＡの登録処理を示すフローチャート
【図６】実施の形態１における制御部のＳＡの削除処理を示すフローチャート
【図７】実施の形態２における制御部のＳＡの登録処理を示すフローチャート
【図８】実施の形態２における制御部のＳＡの削除処理を示すフローチャート
【図９】実施の形態３に係るセキュリティ通信システムの構成図
【図１０】実施の形態３に係る暗号通信装置の構成図
【図１１】実施の形態３におけるサービスクラスおよびＳＡの登録処理の動作説明図
【図１２】実施の形態３におけるパケット送信の動作説明図
【図１３】実施の形態３におけるパケット受信の動作説明図
【図１４】実施の形態３におけるサービスクラス登録処理を示すフローチャート
【図１５】実施の形態３におけるＳＡ登録処理を示すフローチャート
【図１６】実施の形態３におけるＳＡ削除処理を示すフローチャート
【図１７】実施の形態３におけるサービスクラス削除処理を示すフローチャート
【図１８】実施の形態３における第１のＳＡＤおよび第２のＳＡＤの状態遷移図
【図１９】実施の形態３に係るセキュリティ通信ネットワークの構成図
【図２０】ＳＡ登録先管理表とサービスクラス管理表の例を示す図
【図２１】統合管理表の例を示す図
【図２２】統合管理表のＳＡ登録先管理表部分とサービスクラス管理表部分の例を示す図
【図２３】第１のＳＡＤ管理表とルーティングテーブルの例を示す図
【図２４】鍵交換部設定ファイルのデータの例を示す図
【図２５】従来のＩＰｓｅｃを用いた暗号通信装置の構成図
【図２６】従来のＩＰｓｅｃを用いた他の暗号通信装置の構成図
【図２７】トランスポートモードによるＩＰｓｅｃ暗号通信の電文構成例を示す図
【図２８】トンネルモードによるＩＰｓｅｃ暗号通信の電文構成例を示す図
【符号の説明】
１０  セキュリティ制御部
１１  鍵交換部
１２  制御部
２０  ネットワークインタフェース
２１  第１のＩＰｓｅｃ処理部
２２  切り替え部
２１１  第１のＳＡＤ
３０  第２のＩＰｓｅｃ処理部
３１  第２のＳＡＤ
４０  パケット送受信部
４１  経路制御部
５０  ネットワークインタフェース
１００〜１０２  暗号通信装置
１０３  ＷＡＮ
２００，２０１  暗号通信装置
２０２〜２０５  ホスト
２０６  ＷＡＮ
２０７  ＬＡＮ
２０８  ＬＡＮ
３００  暗号通信装置
３１０  鍵交換部
３２０  パケット送受信部
３３０  ＩＰｓｅｃ処理部
３３１  ＳＡＤ
３３２  パケット処理部
３３３  暗号認証処理部
３４０  ネットワークインタフェース
３５０  ＩＰｓｅｃ処理部
３５１  ＳＡＤ
【図１】
2004304696.tif 000003
【図２】
2004304696.tif 000004
【図３】
2004304696.tif 000005
【図４】
2004304696.tif 000006
【図５】
2004304696.tif 000007
【図６】
2004304696.tif 000008
【図７】
2004304696.tif 000009
【図８】
2004304696.tif 000010
【図９】
2004304696.tif 000011
【図１０】
2004304696.tif 000012
【図１１】
2004304696.tif 000013
【図１２】
2004304696.tif 000014
【図１３】
2004304696.tif 000015
【図１４】
2004304696.tif 000016
【図１５】
2004304696.tif 000017
【図１６】
2004304696.tif 000018
【図１７】
2004304696.tif 000019
【図１８】
2004304696.tif 000020
【図１９】
2004304696.tif 000021
【図２０】
2004304696.tif 000022
【図２１】
2004304696.tif 000023
【図２２】
2004304696.tif 000024
【図２３】
2004304696.tif 000025
【図２４】
2004304696.tif 000026
【図２５】
2004304696.tif 000027
【図２６】
2004304696.tif 000028
【図２７】
2004304696.tif 000029
【図２８】
2004304696.tif 000030