(57)【要約】    【課題】      暗号化／復号化処理並びに認証処理についてはハードウエア化による演算時間の短縮を実現すると共に、データ転送回数の削減、転送待ち時間の削減を実現して、全体としてパケット処理能力の改善を図ること。    【解決手段】  受信パケットのパケット処理では、ＣＰＵ１１がＩＰｓｅｃ対応の受信パケットのヘッダ解析を行い、ヘッダ解析した受信パケットをＩＰｓｅｃパケットデータ処理部２０へ入力する。ＩＰｓｅｃパケットデータ処理部２０内において受信パケットから認証範囲に対応した認証データを切り出して認証回路３１へ入力する一方、暗号化されている場合は受信パケットから暗号化データを切り出して暗号／復号回路３２へ入力する。認証回路３１においてヘッダ解析結果に対応した方法で認証演算を行い、暗号化されている場合は暗号／復号回路３２においてヘッダ解析結果に対応した方法で暗号化データを復号する。  【選択図】      図１
2006140958.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰｓｅｃ対応の受信パケットを格納するメモリと、このメモリに格納された受信パケットのヘッダ解析を行うプロセッサと、受信パケットデータに対する認証処理及び復号化処理を実行可能なパケット処理回路とを具備し、前記パケット処理回路は、ヘッダ解析結果に対応した方法で認証演算を行う認証回路と、暗号化されている場合はヘッダ解析結果に対応した方法で暗号化データを復号する復号回路と、当該受信パケットから認証範囲に対応した認証データを切り出して前記認証回路へ入力し、暗号化されている場合は当該受信パケットから暗号化データを切り出して前記復号回路へ入力する前処理回路とを具備したパケット制御装置。
【請求項２】
前記前処理回路は、受信パケットから不要部位の削除、ＩＰヘッダの切り出し、暗号化データの切り出し、認証範囲に対応した認証データの切り出しを行う複数のレジスタから構成されていて、前記プロセッサからヘッダ解析結果に基づいて切り出し位置がレジスタに設定される請求項１記載のパケット制御装置。
【請求項３】
前記パケット処理回路は、前記前処理回路が受信パケットから切り出したＩＰヘッダと前記復号回路が出力する復号化データとを結合する後処理回路を具備する請求項２記載のパケット制御装置。
【請求項４】
ＩＰｓｅｃ対応のパケットヘッダを作成するプロセッサと、作成されたパケットヘッダが付加された送信パケットを格納するメモリと、送信パケットデータの認証処理及び暗号化処理を実行可能なパケット処理回路とを具備し、自装置と相手装置によって決定される暗号化方法で送信データを暗号化する暗号回路と、前記暗号化方法で認証データから認証値を計算する認証回路と、暗号化する場合は当該送信パケットから送信データを切り出して前記暗号回路へ入力すると共に認証範囲に対応した送信データ以外の認証部分を切り出し、当該認証部分と前記暗号化データとを結合した認証データを前記認証回路へ入力し、暗号化しない場合は認証範囲に対応したデータを切り出して前記認証回路へ入力する前処理回路とを具備したパケット制御装置。
【請求項５】
前記前処理回路は、送信パケットから不要部位の削除、ＩＰヘッダの切り出し、暗号化前の送信データの切り出し、認証範囲に対応した送信データ以外の認証部位の切り出しを行う複数のレジスタから構成されていて、前記プロセッサからパケットヘッダの設定内容に基づいて切り出し位置がレジスタに設定される請求項４記載のパケット制御装置。
【請求項６】
前記パケット処理回路は、前記暗号化データと前記認証部位とを結合したデータと、前記前処理回路が送信パケットから切り出したＩＰヘッダとを結合する後処理回路を具備する請求項５記載のパケット制御装置。
【請求項７】
ＩＰｓｅｃ対応の受信パケットのヘッダ解析を行うステップと、ヘッダ解析した受信パケットをパケット処理回路へ入力するステップと、前記パケット処理回路内において受信パケットから認証範囲に対応した認証データを切り出して認証回路へ入力する一方、暗号化されている場合は前記受信パケットから暗号化データを切り出して復号回路へ入力するステップと、前記認証回路においてヘッダ解析結果に対応した方法で認証演算を行うステップと、暗号化されている場合は前記暗号回路においてヘッダ解析結果に対応した方法で暗号化データを復号するステップと、を具備したパケット制御方法。
【請求項８】
ＩＰｓｅｃ対応のパケットヘッダを作成するステップと、作成されたパケットヘッダが付加された送信パケットをパケット処理回路へ入力するステップと、前記パケット処理回路内において暗号化する場合は当該送信パケットから送信データを切り出して暗号回路へ入力すると共に当該送信パケットから認証範囲に対応した送信データ以外の認証部分を切り出し、当該認証部分と前記暗号化データとを結合した認証データを認証回路へ入力し、暗号化しない場合は認証範囲に対応したデータを切り出して前記認証回路へ入力するステップと、を具備したパケット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ＩＰ層のセキュリティ機能を強化したプロトコルであるＩＰｓｅｃに対応したＩＰパケット（以下、「ＩＰｓｅｃパケット」という）を処理するパケット制御装置及びパケット制御方法に関する。
【背景技術】
【０００２】
従来のデータ通信装置は、ネットワークインターフェース（以下、ネットワークＩ／Ｆ部という）を介してＩＰネットワークに接続し、ＣＰＵがデータバッファを利用して送受信パケットの処理を行っていた。しかし、全てのパケット処理をＣＰＵによるソフトウエア処理で行う方式は、ＣＰＵの負荷が大きくなりすぎて処理効率が低下する欠点がある。特に、ＩＰｓｅｃの場合、暗号化／復号化処理並びに認証処理が含まれるため、ＣＰＵの負荷は一層大きなものとなる（例えば特許文献１参照）。
【０００３】
このため、パケット処理の中でも特に演算負荷が大きい暗号化／復号化処理並びに認証処理を専用の演算回路で実行する構成が考えられている。
【特許文献１】特開２００３−３３３４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＣＰＵによるソフトウエア処理と専用の演算回路によるハードウエア処理との組合せでパケット処理を行う方式の場合、メモリ、ＣＰＵ及び演算回路間のデータ転送が頻繁に発生し、データ転送に使用するデータバスに掛かる負荷が大きくなる傾向にあり、パケット処理能力の向上を妨げる要因となっていた。
【０００５】
本発明は、以上のような実情に鑑みてなされたもので、暗号化／復号化処理並びに認証処理についてはハードウエア化による演算時間の短縮を実現すると共に、データ転送回数を削減すると共に転送待ち時間を削減し、全体としてパケット処理能力の改善を図り得るパケット制御装置及びパケット制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、受信パケットのパケット処理では、プロセッサがＩＰｓｅｃ対応の受信パケットのヘッダ解析を行い、ヘッダ解析した受信パケットをパケット処理回路へ入力する。そして、パケット処理回路内において受信パケットから認証範囲に対応した認証データを切り出して認証回路へ入力する一方、暗号化されている場合は前記受信パケットから暗号化データを切り出して復号回路へ入力する。認証回路においてヘッダ解析結果に対応した方法で認証演算を行い、暗号化されている場合は暗号回路においてヘッダ解析結果に対応した方法で暗号化データを復号する。
【０００７】
また本発明は、送信パケットのパケット処理では、プロセッサがＩＰｓｅｃ対応のパケットヘッダを作成し、作成されたパケットヘッダが付加された送信パケットをパケット処理回路へ入力する。暗号化する場合は、パケット処理回路内において送信パケットから暗号化前の送信データを切り出して暗号回路へ入力し、暗号回路において自装置と相手装置によって決定される暗号化方法で送信データを暗号化する。また、当該送信パケットから認証範囲に対応した送信データ以外の認証部分を切り出して当該認証部分と前記暗号化データとを結合した認証データを認証回路へ入力し、認証回路においてパケットヘッダの設定内容に基づいて認証データから認証値を計算する。暗号化しない場合は、当該送信パケットから認証範囲に対応した送信データ以外の認証部分を切り出して当該認証部分と前記暗号化データとを結合したデータを切り出して認証回路へ入力し、認証回路においてパケットヘッダの設定内容に基づいて認証データから認証値を計算する。
【発明の効果】
【０００８】
本発明によれば、暗号化／復号化処理並びに認証処理についてはハードウエア化による演算時間の短縮を実現すると共に、データ転送回数を削減すると共に転送待ち時間を削減し、全体としてパケット処理能力の改善を図り得るパケット制御装置及びパケット制御方法を提供できる。
【発明を実施するための最良の形態】
【０００９】
本発明の第１の態様は、ＩＰｓｅｃ対応の受信パケットを格納するメモリと、このメモリに格納された受信パケットのヘッダ解析を行うプロセッサと、受信パケットデータに対する認証処理及び復号化処理を実行可能なパケット処理回路とを具備し、前記パケット処理回路は、ヘッダ解析結果に対応した方法で認証演算を行う認証回路と、暗号化されている場合はヘッダ解析結果に対応した方法で暗号化データを復号する復号回路と、当該受信パケットから認証範囲に対応した認証データを切り出して前記認証回路へ入力し、暗号化されている場合は当該受信パケットから暗号化データを切り出して前記復号回路へ入力する前処理回路と、を具備したパケット制御装置である。
【００１０】
このように構成されたパケット制御装置では、ハードウエア回路である復号回路及び認証回路に受信パケットデータを与える前段で、前処理回路においてヘッダ解析結果に基づいてハードウエア的に当該受信パケットから前記暗号化データを切り出して前記復号回路へ入力すると共に当該受信パケットから認証範囲に対応した認証データを切り出して前記認証回路へ入力する。これにより、プロセッサによるデータ転送命令に基づいて、データがメモリと復号回路、認証回路との間を繰り返しデータ転送されることなく、パケット受信時のパケット処理が完了する。
【００１１】
本発明の第２の態様は、第１の態様のパケット制御装置において、前記前処理回路は、受信パケットから不要部位の削除、ＩＰヘッダの切り出し、暗号化データの切り出し、認証範囲に対応した認証データの切り出しを行う複数のレジスタから構成されていて、前記プロセッサからヘッダ解析結果に基づいて切り出し位置がレジスタに設定されるものとした。
【００１２】
本発明の第３の態様は、第２の態様のパケット制御装置において、前記パケット処理回路は、前記前処理回路が受信パケットから切り出したＩＰヘッダと前記復号回路が出力する復号化データとを結合する後処理回路を具備するものとした。
【００１３】
これにより、受信パケットから切り出したＩＰヘッダと復号回路が出力する復号化データとをハードウエア的に結合する後処理回路を具備するので、パケット処理回路の内部で閉じた形でパケット処理が完結するものとなる。
【００１４】
本発明の第４の態様は、ＩＰｓｅｃ対応のパケットヘッダを作成するプロセッサと、作成されたパケットヘッダが付加された送信パケットを格納するメモリと、送信パケットデータの認証処理及び暗号化処理を実行可能なパケット処理回路とを具備し、自装置と相手装置によって決定される暗号化方法で送信データを暗号化する暗号回路と、前記暗号化方法で認証データから認証値を計算する認証回路と、暗号化する場合は当該送信パケットから送信データを切り出して前記暗号回路へ入力すると共に認証範囲に対応した送信データ以外の認証部分を切り出し、当該認証部分と前記暗号化データとを結合した認証データを前記認証回路へ入力し、暗号化しない場合は認証範囲に対応したデータを切り出して前記認証回路へ入力する前処理回路とを具備したパケット制御装置である。
【００１５】
このように構成されたパケット制御装置では、ハードウエア回路である暗号回路及び認証回路に送信パケットデータを与える前段で、前処理回路において当該送信パケットから暗号化前の送信データを切り出して暗号回路へ入力すると共に認証範囲に対応した送信データ以外の認証部分を切り出し、当該認証部分と前記暗号化データとを結合した認証データを認証回路へ入力する。これにより、プロセッサによるデータ転送命令に基づいて、データがメモリと暗号回路、認証回路との間を繰り返しデータ転送されることなく、パケット送信時のパケット処理が完了する。
【００１６】
本発明の第５の態様は、第４の態様のパケット制御装置において、前記前処理回路は、送信パケットから不要部位の削除、ＩＰヘッダの切り出し、暗号化前の送信データの切り出し、認証範囲に対応した送信データ以外の認証部位の切り出しを行う複数のレジスタから構成されていて、前記プロセッサからパケットヘッダの設定内容に基づいて切り出し位置がレジスタに設定されるものとする。
【００１７】
本発明の第６の態様は、第５の態様のパケット制御装置において、前記パケット処理回路は、前記暗号化データと前記認証部位とを結合したデータと、前記前処理回路が送信パケットから切り出したＩＰヘッダとを結合する後処理回路を具備するものとした。
【００１８】
これにより、送信パケットから切り出したＩＰヘッダとを結合する後処理回路を具備するので、パケット処理回路の内部で閉じた形でパケット処理が完結するものとなる。
【００１９】
本発明の第７の態様は、ＩＰｓｅｃ対応の受信パケットのヘッダ解析を行うステップと、ヘッダ解析した受信パケットをパケット処理回路へ入力するステップと、前記パケット処理回路内において受信パケットから認証範囲に対応した認証データを切り出して認証回路へ入力する一方、暗号化されている場合は前記受信パケットから暗号化データを切り出して復号回路へ入力するステップと、前記認証回路においてヘッダ解析結果に対応した方法で認証演算を行うステップと、暗号化されている場合は前記暗号回路においてヘッダ解析結果に対応した方法で暗号化データを復号するステップと、を具備したパケット制御方法である。
【００２０】
本発明の第８の態様は、ＩＰｓｅｃ対応のパケットヘッダを作成するステップと、作成されたパケットヘッダが付加された送信パケットをパケット処理回路へ入力するステップと、前記パケット処理回路内において暗号化する場合は当該送信パケットから送信データを切り出して暗号回路へ入力すると共に当該送信パケットから認証範囲に対応した送信データ以外の認証部分を切り出し、当該認証部分と前記暗号化データとを結合した認証データを認証回路へ入力し、暗号化しない場合は認証範囲に対応したデータを切り出して前記認証回路へ入力するステップと、を具備したパケット制御方法である。
【００２１】
以下、本発明の実施の形態について図面を参照して具体的に説明する。
【００２２】
図１は、一実施の形態に係るデータ通信装置に備えたパケット処理装置の全体構成を示す図である。同図に示すパケット処理装置は、ＣＰＵ１１、ＬＳＩ内部ブロック１２、ＤＡ変換機能を有するＰＨＹ部１３−１〜１３−３を主な構成要素としている。ＰＨＹ部１３−１〜１３−３の先には、各ネットワークケーブルに物理的に接続するコネクタが設置されることになる。本実施の形態では、当該データ通信装置をインターネット等のネットワークに接続するものとするが、このような形態に限定されるものではない。
【００２３】
ＬＳＩ内部ブロック１２は、パケット処理の一部（暗号化／復号化処理並びに認証処理を含む）をハードウエア処理するＩＰｓｅｃパケットデータ処理部２０を備える。さらにＬＳＩ内部ブロック１２は、パケット処理の過程で送受信データが格納されるメモリ２１と、当該データ通信装置が接続されるネットワークのプロトコルに対応したネットワークＩ／Ｆ部２２−１〜２２−３とを備える。ＬＳＩ内部ブロック１２内部の構成要素はデータバス２３で接続している。ＬＳＩ内部ブロック１２は、ＣＰＵ１１からの命令で後述するレジスタ制御などの動作制御を受ける。なお、本実施例ではＬＳＩ内部ブロックとして説明したが、ＦＰＧＡ（Field programmable gate alley）で構成してもよい。 
【００２４】
ＩＰｓｅｃパケットデータ処理部２０の内部の構成について説明する。ＩＰｓｅｃパケットデータ処理部２０は、認証回路３１及び暗号／復号回路３２を備える。認証回路３１は、受信パケットの内容が改竄されているか否か検査する専用のハードウエア回路である。暗号／復号回路３２は、受信パケット内の暗号化データ（暗号文）を復号化する一方、送信パケット内の送信データ（平文）を暗号化する専用のハードウエア回路である。受信パケット又は送信パケットを認証回路３１又は暗号／復号回路３２に入力する前にデータ転送回数を削減するための前処理を行うのがパケット前処理回路３３である。パケット前処理回路３３は、複数のレジスタから構成されていて、受信パケット又は送信パケットに対して削除、コピー、シフト等の編集を加える。認証回路３１及び暗号／復号回路３２から出力されるデータを結合して後工程へ出力するのがパケット後処理回路３４である。パケット後処理回路３４は、出力バッファ３６、レジスタ３７を備える。なお、パケット前処理回路３３へのデータ入力は入力バッファ３５を介して行う。
【００２５】
ここで、ＩＰｓｅｃの場合における受信パケットの復号化及び暗号化について簡単に説明する。
【００２６】
図２はＩＰｓｅｃに基づいて暗号化された受信パケットであって、ＥＳＰ形式の受信パケットに対するパケット処理の概念図である。同図に示すように、ＥＳＰ形式の受信パケットは、送信元ＩＰアドレス及び送信先ＩＰアドレスが記述されたＩＰヘッダ、暗号化方法及び認証方法に関する情報をテーブルから検索するためのインデックス情報が記述されたＥＳＰヘッダ、暗号演算（復号化）で使用する復号化初期値（ＩＶ）、暗号化データ等から構成されている。送信側で送信パケットに付加した認証値は受信側の認証演算結果ｔｐ比較することにより、データ改竄等の検出に利用される。この受信パケットに対するパケット処理では、ＥＳＰヘッダの先頭から暗号化データの末尾までが認証範囲となる。また、暗号化データ部分が復号化範囲となる。認証範囲に対しては認証演算を実行してデータ改竄が無いことなどを確認した後、復号化範囲である暗号化データ部分に対して復号化演算を実行する。受信パケットのＩＰヘッダ（そのまま）と復号化データとを結合してパケット受信時のパケット処理を終了する。
【００２７】
図３はＩＰｓｅｃに基づいて暗号化する送信パケットであって、ＥＳＰ形式の送信パケットに対するパケット処理の概念図である。同図に示すように、送信パケットは、送信元ＩＰアドレス及び送信先ＩＰアドレスが記述されたＩＰヘッダ、暗号化方法及び認証方法に関する情報をテーブルから検索するためのインデックス情報が記述されたＥＳＰヘッダ、暗号演算（暗号化）で使用する暗号化初期値（ＩＶ）、送信データから構成されている。送信データ部分に対して暗号演算を実行して暗号化データを生成する。ＩＰヘッダから暗号化初期値（ＩＶ）までのデータと暗号化データとを結合してパケット送信時のパケット処理を終了する。なお、暗号化初期値（ＩＶ）と復号化初期値（ＩＶ）は同じ値である。
【００２８】
図４はＡＨ形式の受信パケットに対するパケット処理の概念図である。同図に示すように、受信パケットは、送信元ＩＰアドレス及び送信先ＩＰアドレスが記述されたＩＰヘッダ、認証方法に関する情報をテーブルから検索するためのインデックス情報が記述されたＡＨヘッダ、暗号化されていない送信データから構成されている。ＩＰヘッダの先頭からデータの末尾までが認証範囲となる。ＡＨ形式は暗号化機能をサポートしていない。ＡＨ形式の受信パケットのパケット処理は、認証範囲に対して認証演算を行ってデータが改竄されていないことを確認した後、ＡＨヘッダを削除して、ＩＰヘッダとデータ部分とを結合する。
【００２９】
図５はＡＨ形式の送信パケットに対するパケット処理の概念図である。同図に示すように、送信パケットは、送信元ＩＰアドレス及び送信先ＩＰアドレスが記述されたＩＰヘッダ、認証方法に関する情報をテーブルから検索するためのインデックス情報が記述されたＡＨヘッダ、暗号化されていない送信データから構成されている。
【００３０】
次に、以上のように構成された本実施の形態におけるパケット処理の具体的な動作について説明する。
【００３１】
図６は、本パケット処理装置がパケットを受信した場合のパケット処理のフロー図である。本パケット処理装置は、ネットワークから受信した受信信号を、対応するＰＨＹ部１３−１〜１３−３でデジタル信号に変換してから対応するネットワークＩ／Ｆ部２２−１〜２２−３へ入力する。ネットワークＩ／Ｆ部（２２−１〜２２−３）はプロトコルに従ってどのような信号が受信されたかを確認する。受信パケットのＭＡＣアドレス等から取り込むべきパケットであると認識すると、受信パケットをメモリ２１へ書き込む（Ｓ１０１）。
【００３２】
ＣＰＵ１１は、メモリ２１に書き込まれた受信パケットのヘッダを解析する（Ｓ１０２）。受信パケットのヘッダ解析結果を基にテーブルを参照し（Ｓ１０３）、データ長、暗号方式、復号化初期値、鍵、認証方式、認証値等を把握する（Ｓ１０４）。ＣＰＵ１１は、把握したこれらの情報に基づいて、認証、場合によっては復号化が必要なパケットであれば（Ｓ１０５）、ＩＰｓｅｃパケットデータ処理部２０の構成要素（レジスタ等）に必要な設定を行うと共に、受信パケットデータを転送する。
【００３３】
パケット前処理回路３３における処理内容及びレジスタ設定について具体的に説明する。図２に示すように、受信パケットのＩＰヘッダはそのまま出力データとなり、後に暗号化データ部分の復号化データと結合される。このとき、ＥＳＰ形式の認証範囲はＥＳＰヘッダ及び復号化初期値（ＩＶ）、並びに暗号化データ部分である。本実施の形態では、図７に示すように、受信パケットからＩＰヘッダより前のデータ（ＭＡＣアドレスなど）を削除し、ＩＰヘッダをパケット後処理回路３４へコピーし、ＥＳＰヘッダ及び復号化初期値（ＩＶ）が認証範囲と復号範囲の差分となるので暗号化データ部分を抽出するように差分だけシフトを行う。
【００３４】
図８は、上記「削除」「コピー」「シフト」の各操作をハードウエア回路で行うためのレジスタ構成及び認証回路３１、暗号／復号回路３２等を図示している。入力バッファ３５に転送されてきた受信パケットデータはレジスタ５１に順次書き込まれる。このとき、ＣＰＵ１１からの命令によりＩＰヘッダの先頭から書き込まれるように書き込み開始位置を制御することにより「削除」を実現する。レジスタ５１に書き込まれた受信パケットデータの中からＩＰヘッダ部分だけを出力バッファ３６に書き込むように制御することにより「コピー」を実現する（Ｓ１０６）。さらに、レジスタ５１に書き込まれた受信パケットデータからＩＰヘッダ、ＥＳＰヘッダ及び復号化初期値（ＩＶ）を取り除いた暗号化データ部分だけが残るように制御することにより「シフト」を実現する（Ｓ１１０）。
【００３５】
なお、ＥＳＰ形式のパケットが対象の場合はステップＳ１１０が実行されるが、ＡＨ形式の場合はステップＳ１１２が実行される。ここでは、ＥＳＰ形式のパケットを受信したものとして説明する。
【００３６】
「シフト」で得られた暗号化データは暗号／復号回路３２のレジスタ５３へ書き込まれる。暗号／復号回路３２は、ＣＢＣモードが選択されている場合はＣＢＣ用回路５４を用いて、レジスタ５３の暗号化データに対して暗号／復号回路３２（復号化側）において復号化演算を実行する（Ｓ１１１）。本例では演算結果を再利用して復号するＣＢＣモードを示しているがこれに限定されない。また、暗号／復号方式、復号化初期値、鍵等の復号化に関する情報はＣＰＵ１１からＳ１０４の設定時に与えられている。
【００３７】
暗号／復号回路３２で復号化されたデータは出力バッファ３６に書き込まれる。このとき、書き込み位置はＣＰＵ１１からレジスタ設定により指定されている。例えば、先にコピーされたＩＰヘッダの末尾から復号化データの先頭が書き込み開始されるように制御される。この結果、ＩＰｓｅｃパケットデータ処理部２０の内部に閉じたままで（データバス２３に対するデータ転送を生じることなく）ＩＰヘッダと復号化データとを結合した出力データが得られる。
【００３８】
なお、図８に示す出力バッファ３６でＩＰヘッダと復号化データの結合を行っており、本例ではパケット後処理回路３４は出力バッファ３６と一体化している。
【００３９】
一方、認証範囲はＥＳＰ形式ではＥＳＰヘッダの先頭から暗号化データの末尾までが対象となる。そのため、入力バッファ３５に転送されてきた受信パケットデータの中から認証範囲のデータを認証回路３１のレジスタ５５に書き込む（Ｓ１０７）。認証方式により、認証演算に必要なデータ量が決まっている。ステップＳ１０７で切り出した認証範囲のデータに対し、認証アルゴリズムに応じたパディング処理を実行する（Ｓ１０８）。パディング処理は切り出したデータの末尾にデータを追加して規定値にする処理のことである。例えば、認証アルゴリズムとしてＳＨＡ１を使用する場合、データ終了直後のビットに１を立て、残りを０で埋め、最後にデータ長を追加する。認証回路３１は、ＨＭＡＣ用回路５６を使用して認証演算を実行する（Ｓ１０９）。認証値はレジスタ３７を介してＣＰＵ１１へ通知される。ＣＰＵ１１は、通知された認証値を確認し（Ｓ１１４）、受信パケットに付加されていた認証値と一致すればデータを取り込み（Ｓ１１５，Ｓ１１６）、逆に一致しなければデータを廃棄する（Ｓ１１５，Ｓ１１７）。
【００４０】
このように、受信パケットを復号および認証の前段で前処理してデータ転送を生じることなく復号及び認証を完了することができるので、復号及び認証はハードウエア回路による高速化を実現しつつ、データ転送回数を削減でき、転送待ち時間を削減して全体としてパケット処理能力を改善することができる。
【００４１】
なお、以上の説明は図２に示すＥＳＰ形式の受信パケットに対するパケット処理の例である。図４に示すＡＨ形式の受信パケットの場合は、復号化処理が発生しない。すなわち、図６に示すフロー図において、Ｓ１０５でＩＰｓｅｃありと判定すると、ステップＳ１０６、Ｓ１０７、Ｓ１１２を実行する。Ｓ１１２においてレジスタ５１を使用して受信パケットからデータ部分を切り出すが、暗号化機能をサポートしない方式なのでその切り出したデータ部分を出力バッファ３６へ書き込むことになる。その他の処理は上記同様である。
【００４２】
次に、本パケット処理装置がパケットを送信する場合の動作について説明する。
【００４３】
図９は、本パケット処理装置がパケットを送信する場合のパケット処理のフロー図である。ＣＰＵ１１は、ホストから送信データを受け取り（Ｓ２０１）、当該送信データに対してＩＰヘッダ、ＥＳＰヘッダ又はＡＨヘッダ等のヘッダを作成する（Ｓ２０２）。次に、送信先ＩＰアドレス等の情報からテーブルを参照して（Ｓ２０３）、データ長、暗号方式、暗号化初期値、鍵、認証方式を把握し、ＩＰｓｅｃパケットデータ処理部２０の各構成要素に対する設定を行う（Ｓ２０４）。ＩＰｓｅｃパケットデータ処理部２０の各構成要素はこの設定に従って以下のように動作する。
【００４４】
パケット送信時のパケット前処理回路３３における処理内容及びレジスタ設定について具体的に説明する。図１０に示すように、送信パケットにおいてＩＰヘッダより前のデータ（ＭＡＣアドレスなど）を削除し、ＩＰヘッダをパケット後処理回路３４へコピーし、ＥＳＰヘッダ及び暗号化初期値が認証範囲と暗号範囲の差分となるので差分だけシフトして暗号化データ部分を抽出する。また、認証範囲はＥＳＰヘッダの先頭から暗号化データの末尾までであるので、暗号化する送信データとは別にＥＳＰヘッダ及び暗号化初期値を切り出して出力データに組み込んでいる。
【００４５】
図１１は、上記「削除」「コピー」「シフト」の各操作をハードウエア回路で行うためのレジスタ構成及び認証回路３１、暗号／復号回路３２等を図示している。入力バッファ３５に転送されてきた送信パケットデータはレジスタ５１に順次書き込まれる。このとき、ＣＰＵ１１により設定されたレジスタの内容によりＩＰヘッダの先頭から書き込まれるように書き込み開始位置を制御することにより「削除」を実現する。レジスタ５１に書き込まれた送信パケットデータの中からＩＰヘッダ部分だけを出力バッファ３６に書き込むように制御することにより「コピー」を実現する（Ｓ２０５）。ＥＳＰヘッダ及び暗号化初期値はレジスタ５７に書き込むと共に、レジスタ５２内部ではＩＰヘッダ、ＥＳＰヘッダ及び暗号化初期値を取り除いた送信データ部分だけをレジスタ５３へ出力するように制御することにより「シフト」を実現する（Ｓ２０６）。
【００４６】
なお、ＥＳＰ形式のパケットが対象の場合はステップＳ２０７が実行されるが、ＡＨ形式の場合はステップＳ２０８が実行される。ここでは、ＥＳＰ形式のパケットを受信したものとして説明する。
【００４７】
「シフト」で得られた暗号化データは暗号／復号回路３２のレジスタ５３へ書き込まれる。暗号／復号回路３２は、ＣＢＣモードが選択されている場合はＣＢＣ用回路５４を用いて、レジスタ５３の送信データ（平文）に対して暗号／復号回路３２（暗号化側）において暗号演算を実行する（Ｓ２０９）。本例では演算結果を再利用して暗号するＣＢＣモードを示しているがこれに限定されない。また、暗号方式、暗号化初期値、鍵等の暗号化に関する情報はＣＰＵ１１からＳ２０４の設定時に与えられている。
【００４８】
暗号／復号回路３２で送信データ（平文）を暗号化して得られた暗号化データはレジスタ５７に書き込まれる。レジスタ５７において先に切り出したＥＳＰヘッダ及び暗号化初期値と上記暗号化データとを組み合わせて認証範囲に対応した認証データを生成する（Ｓ２１０）。レジスタ５７から認証回路３１のレジスタ５５へ認証データが書き込まれる（Ｓ２１１）。
【００４９】
レジスタ５５へ認証データを書き込む際に、今回の認証方法に規定されたデータ形式となるように認証データの末尾にデータを追加するパディング処理が実行される（Ｓ２１２）。認証回路３１は、ＨＭＡＣ用回路５６を使用して認証演算を実行する（Ｓ２１３）。認証値はレジスタ３７に書き込まれる。本実施例では、ＨＭＡＣモードを示しているがこれに限定されない。
【００５０】
出力バッファ３６には、先にＩＰヘッダが書き込まれていて、さらにレジスタ５７から認証範囲に対応したデータ書き込まれている（Ｓ２１４）。最後に、認証値がレジスタ３７へ書き込まれる（Ｓ２１５）。すなわち、図３に示すように、ＩＰヘッダ、ＥＳＰヘッダ、暗号化初期値、暗号化データを同図に示す順番で組立てて（Ｓ２１４）、送信パケットが完成する。暗号化した送信パケットは出力バッファ３６からメモリ２１へ転送された後、ＣＰＵ１１により認証値が付加されて対応するネットワークＩ／Ｆ部（２２−１〜２２−３）から送信される（Ｓ２１６）。
【００５１】
なお、以上の説明は図３に示すＥＳＰ形式の送信パケットに対するパケット処理の例である。図５に示すＡＨ形式の送信パケットの場合は、暗号化処理が発生しない。すなわち、図９に示すフロー図において、Ｓ２０４でＩＰｓｅｃありと判定すると、ステップＳ２０５、Ｓ２０６、Ｓ２０８を実行する。Ｓ２０８においてレジスタ５１、５２を使用して送信パケットからデータ部分を切り出すが、暗号化に対応していない形式なのでその切り出したデータ部分をレジスタ５７へ書き込むことになる。
【００５２】
このように、本実施の形態によれば、送信パケットのパケット処理（暗号化、認証）を行うに当たり、データ転送が生じないように事前に前処理してから暗号／復号回路３２、認証回路３１へ入力し、かつ暗号化データをヘッダと組み合わせてから出力バッファ３６を通してＩＰｓｅｃパケットデータ処理部２０へ出力し、また認証値をレジスタ３７を通してＩＰｓｅｃパケットデータ処理部２０へ出力するようにしたので、暗号及び認証はハードウエア回路による高速化を実現しつつ、データ転送回数を削減でき、転送待ち時間を削減して全体としてパケット処理能力を改善することができる。
【産業上の利用可能性】
【００５３】
本発明は、ＩＰｓｅｃに対応したＩＰパケットを処理するパケット制御装置及びパケット制御方法に適用可能であり、ハードウエア回路による高速化とパケット処理能力の改善を図ることができる。
【図面の簡単な説明】
【００５４】
【図１】一実施の形態に係るデータ通信装置に備えたパケット処理装置の構成図
【図２】ＥＳＰ形式の受信パケットの認証範囲及び復号範囲を示す概念図
【図３】ＥＳＰ形式の送信パケットの認証範囲及び暗号化範囲を示す概念図
【図４】ＡＨ形式の受信パケットの認証範囲を示す概念図
【図５】ＡＨ形式の送信パケットの認証範囲を示す概念図
【図６】上記パケット処理装置における受信パケットに対するパケット処理のフロー図
【図７】上記パケット処理装置における受信パケットに対するパケット処理の概念図
【図８】受信パケットに対するパケット処理時のＩＰｓｅｃパケットデータ処理部のレジスタ構成等を示す図
【図９】上記パケット処理装置における送信パケットに対するパケット処理のフロー図
【図１０】上記パケット処理装置における送信パケットに対するパケット処理の概念図
【図１１】送信パケットに対するパケット処理時のＩＰｓｅｃパケットデータ処理部のレジスタ構成等を示す図
【符号の説明】
【００５５】
１１  ＣＰＵ
１２  ＬＳＩ内部ブロック
１３−１、１３−２、１３−３  ＰＨＹ部
２０  ＩＰｓｅｃパケットデータ処理部
２１  メモリ
２２−１、２２−２、２２−３  ネットワークＩ／Ｆ部
３１  認証回路
３２  暗号／復号回路
３３  パケット前処理回路
３４  パケット後処理回路
３５  入力バッファ
３６  出力バッファ
５１、５２、５３、５５、５７  レジスタ
【図１】
2006140958.tif 000003
【図２】
2006140958.tif 000004
【図３】
2006140958.tif 000005
【図４】
2006140958.tif 000006
【図５】
2006140958.tif 000007
【図６】
2006140958.tif 000008
【図７】
2006140958.tif 000009
【図８】
2006140958.tif 000010
【図９】
2006140958.tif 000011
【図１０】
2006140958.tif 000012
【図１１】
2006140958.tif 000013