(57)【要約】【課題】バス転送レートが低い低機能マイクロプロセッサであっても、バス帯域を圧迫せず高速なセキュリティ処理を実現する。【解決手段】パケット通信のネットワーク１０５に対するネットワークインターフェイス１０１が第１のデータバッファ１０１Ｂおよびバス１０３を介してマイクロプロセッサ１００に接続され、暗復号・メッセージ認証に使用する制御レジスタ１０２Ｃおよび第２のデータバッファ１０２Ｂがバス１０３を介してマイクロプロセッサ１００に接続される。暗復号・メッセージ認証専用回路１０２と第２のデータバッファ１０２Ｂがローカルバス１０４を介して直接に接続され、第１のデータバッファ１０１Ｂと第２のデータバッファ１０２Ｂの入出力の接続先が入れ替え可能に構成されている。処理途中でのバスを介してのデータ転送が省略され、バス帯域の圧迫を防ぐ。【選択図】  図１
2004328359.tif 000002
【特許請求の範囲】
【請求項１】
パケット通信のネットワークに対するネットワークインターフェイスが第１のデータバッファおよびバスを介してマイクロプロセッサに接続され、暗復号・メッセージ認証専用回路が暗復号・メッセージ認証に使用する制御レジスタおよび第２のデータバッファがそれぞれ前記バスを介して前記マイクロプロセッサに接続されたパケット処理装置であって、
前記暗復号・メッセージ認証専用回路と前記第２のデータバッファがローカルバスを介して直接に接続され、
前記第１のデータバッファと前記第２のデータバッファの入出力の接続先が前記マイクロプロセッサの指示によって入れ替え可能に構成されていることを特徴とするパケット処理装置。
【請求項２】
パケット通信のネットワークに対するネットワークインターフェイスがバッファメモリおよびバスを介してマイクロプロセッサに接続され、暗復号・メッセージ認証専用回路が暗復号・メッセージ認証に使用する制御レジスタが前記バスを介して前記マイクロプロセッサに接続されたパケット処理装置であって、
前記マイクロプロセッサは、前記バッファメモリを、通信に必要な容量に応じて、ネットワークインターフェイス用の第１のアクセス領域と暗復号・メッセージ認証専用回路用の第２のアクセス領域とに分割するように構成され、
前記暗復号・メッセージ認証専用回路と前記バッファメモリにおける前記第２のアクセス領域がローカルバスを介して直接に接続され、
前記第１のアクセス領域と前記第２のアクセス領域の入出力の接続先が前記マイクロプロセッサの指示によって入れ替え可能に構成されていることを特徴とするパケット処理装置。
【請求項３】
請求項１に記載のパケット処理装置において、
前記第１のデータバッファに格納されるパケットデータのヘッダ情報があらかじめ設定した特定通信相手検出用の比較基準ヘッダ情報と一致するか否かを検査し、前記暗復号・メッセージ認証専用回路に通知するヘッダ情報検査回路を備え、
前記暗復号・メッセージ認証専用回路は、特定通信相手に対してのみ使用する暗復号鍵とメッセージ認証鍵を有し、
暗復号・メッセージ認証専用回路は、前記ヘッダ情報検査回路による検査結果が一致のときに前記暗復号鍵とメッセージ認証鍵を使用してセキュリティ処理を行うように構成されているパケット処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、秘密通信のためのセキュリティ機能を備えたパケット処理装置にかかわり、より詳しくは、パケット通信のネットワークに対するネットワークインターフェイスが第１のデータバッファおよびバスを介してマイクロプロセッサに接続され、暗復号・メッセージ認証専用回路が暗復号・メッセージ認証に使用する制御レジスタおよび第２のデータバッファがそれぞれ前記バスを介して前記マイクロプロセッサに接続されたパケット処理装置に関し、特には、セキュリティ処理を高速化する技術に関する。
【０００２】
【従来の技術】
近年、インターネットに代表されるＴＣＰ／ＩＰネットワークが急速に普及している。これに伴って、電子音楽配信やＷｅｂ上での商取引、家電製品をネットワークに接続して外出先からの操作や監視を行うなど、様々な形態のネットビジネスが脚光を浴び、次々に展開されつつある。
【０００３】
このようなインターネット接続を行う場合、商取引ではサービス提供者側とユーザ側との間で、また、家電製品接続サービスではユーザーと宅内家電との間で、信頼のおける安全な通信が行われることが大前提となる。しかしながら、ＴＣＰ／ＩＰネットワーク上のデータは、クラッカーによる盗聴やなりすましなどの危険にさらされており、一般に安全でないネットワークと考えられている。
【０００４】
そこで重要になってくるのが、電子認証や通信データの暗号化、ファイアウォールなどに代表されるネットワークセキュリティ技術である。
【０００５】
ネットワークセキュリティ技術の中でＩＰパケットの機密性、完全性を確保するものにＩＰＳｅｃ（ＩＰ  Ｓｅｃｕｒｉｔｙ  Ｐｒｏｔｏｃｏｌ）がある。ＩＰｓｅｃでは共通鍵に基づく暗号技術を主に利用しており、データの暗号化には共通鍵暗号を、メッセージ認証には共通鍵暗号もしくは一方向性ハッシュ関数を利用したメッセージ認証コードが利用される。
【０００６】
これらは主にソフトウェアによる処理である（例えば、特許文献１参照）。また、将来的なＴＣＰ／ＩＰインフラストラクチャの広帯域化に備え、暗号処理やメッセージ処理において、ＩＰｓｅｃアクセラレータなどの暗復号・メッセージ認証専用回路にオフロードされる手法もある。暗復号処理のオフロードについては、プロトコルを処理するマイクロプロセッサ１００の専用コプロセッサとして設置する方式が一般的である（例えば特許文献２、及び非特許文献１参照）。
【０００７】
その一例を図６に示す。図６において、１００はマイクロプロセッサ、１０１は第１のデータバッファ１０１Ｂを介してバス１０３に接続されたネットワークインターフェイス、１０２はバス１０３に第２のデータバッファ１０２Ｂおよび制御レジスタ１０２Ｃを介して接続された暗復号・メッセージ認証専用回路（ＩＰｓｅｃアクセラレータ）、１０５はネットワークである。
【０００８】
パケットデータの送信の場合、マイクロプロセッサ１００はバス１０３を介して第２のデータバッファ１０２Ｂに送信パケットデータを格納し、マイクロプロセッサ１００から制御レジスタ１０２Ｃに設定した条件に基づいて暗復号・メッセージ認証専用回路１０２で送信パケットデータに対する暗号とメッセージ認証の処理を行わせ、次いで、第２のデータバッファ１０２Ｂからマイクロプロセッサ１００にバス１０３を介してデータ転送し、マイクロプロセッサ１００でしかるべきヘッダ処理を行った後に、第１のバス１０３を介して送信パケットデータをデータバッファ１０１Ｂに格納し、されにネットワークインターフェイス１０１を介してネットワーク１０５へ送信パケットデータを送出する。
【０００９】
パケットデータの受信の場合、ネットワーク１０５からネットワークインターフェイス１０１を介して第１のデータバッファ１０１Ｂに受け取った受信パケットデータをマイクロプロセッサ１００に渡し、ヘッダ情報から復号とメッセージ認証の情報を解析し、第１のデータバッファ１０１Ｂの受信パケットデータをバス１０３を介して第２のデータバッファ１０２Ｂにデータ転送し、必要な条件を制御レジスタ１０２Ｃに設定し、暗復号・メッセージ認証専用回路１０２で復号とメッセージ認証の処理を行わせ、処理後の復号データをバス１０３を介してマイクロプロセッサ１００に渡し、マイクロプロセッサ１００で上位プロトコルの処理を行う。
【００１０】
上記のような暗復号・メッセージ認証専用回路（ＩＰｓｅｃアクセラレータ）１０２を備えた従来のパケット処理装置によれば、暗号処理と認証計算処理が高速化される。
【００１１】
【特許文献１】
特開２００２−３０５５１７号公報
【特許文献２】
特開２００２−５２６８２２号公報
【非特許文献１】
Ｍｏｔｏｌｏｒａ  ＭＣＰ１６４  Ｆａｃｔ  Ｓｈｅｅｔ
ｈｔｔｐ：／／ｅ−ｗｗｗ．ｍｏｔｏｌｏｒａ．ｃｏｍ／ｂｒｄａｔａ／ＰＤＦＤＢ／ｄｏｃｓ／ＭＰＣ１８４ＦＡＣＴ．ｐｄｆ
【００１２】
【発明が解決しようとする課題】
しかしながら、従来技術の場合、暗復号・メッセージ認証専用回路１０２で処理が終わった後に、処理結果のパケットデータをマイクロプロセッサ１００のワークメモリへ転送するとともに、マイクロプロセッサ１００からネットワークインターフェイス１０１へ転送する処理が必要で、バス１０３の帯域を圧迫してしまうという問題がある。特に、機器の制約上、動作速度の遅い低機能なマイクロプロセッサを使用しなければならない場合（例えば一般家電製品など）には、セキュリティ処理（ＩＰｓｅｃ）を行った場合に、満足のいく通信速度が得られなくなってしまう。
【００１３】
本発明は、このような事情に鑑みて創作したものであり、バス転送レートが低い低機能マイクロプロセッサを用いる場合でも、バス帯域を圧迫することなく、セキュリティ処理を高速化できるパケット処理装置を提供することを目的としている。
【００１４】
【課題を解決するための手段】
上記の課題を解決するために、本発明は次のような手段を講じる。
【００１５】
第１の解決手段として、本発明は、パケット通信のネットワークに対するネットワークインターフェイスが第１のデータバッファおよびバスを介してマイクロプロセッサに接続され、暗復号・メッセージ認証専用回路が暗復号・メッセージ認証に使用する制御レジスタおよび第２のデータバッファがそれぞれ前記バスを介して前記マイクロプロセッサに接続されたパケット処理装置を前提とする。そして、次のような手段を講じることにより、上記の課題を解決する。すなわち、前記暗復号・メッセージ認証専用回路と前記第２のデータバッファがローカルバスを介して直接に接続され、さらに、前記第１のデータバッファと前記第２のデータバッファの入出力の接続先が前記マイクロプロセッサの指示によって入れ替え可能に構成されている。
【００１６】
この構成による作用は次のとおりである。セキュリティ処理した上でネットワークに送出すべきパケットデータが第２のデータバッファに格納され、暗号およびメッセージ認証に必要な各種設定がマイクロプロセッサによって暗復号・メッセージ認証専用回路の制御レジスタに格納される。暗復号・メッセージ認証専用回路は、制御レジスタの設定に基づいてローカルバスを介して第２のデータバッファから送信パケットデータを読み込み、暗号およびメッセージ認証の処理を行う。そして、暗号およびメッセージ認証の処理が終了した送信パケットデータをローカルバスを介して第２のデータバッファに戻す。次いで、マイクロプロセッサは、暗号およびメッセージ認証の処理が終了して第２のデータバッファに戻された送信パケットデータに対してヘッダ情報を付加する。さらに、マイクロプロセッサは、第１のデータバッファと第２のデータバッファの入出力の接続先を入れ替える。これで、暗号およびメッセージ認証の処理が終了しヘッダ情報が付加されたセキュリティ処理済みの送信パケットデータは第１のデータバッファに格納された状態となる。そして、第１のデータバッファのセキュリティ処理済みの送信パケットデータをネットワークインターフェイスを介してネットワークに送出する。
【００１７】
一方、ネットワークからネットワークインターフェイスを介して受信したパケットデータは、第１のデータバッファに格納され、マイクロプロセッサは第１のデータバッファの受信パケットデータがセキュリティ処理を施されたものか否かを検査し、そうであれば、マイクロプロセッサは、第１のデータバッファと第２のデータバッファの入出力の接続先を入れ替える。これで、セキュリティ処理が施された受信パケットデータは第２のデータバッファに格納された状態となる。また、復号およびメッセージ認証に必要な各種設定がマイクロプロセッサによって暗復号・メッセージ認証専用回路の制御レジスタに格納される。暗復号・メッセージ認証専用回路は、制御レジスタの設定に基づいてローカルバスを介して第２のデータバッファから受信パケットデータを読み込み、復号およびメッセージ認証の処理を行う。そして、復号およびメッセージ認証の処理が終了した受信パケットデータをローカルバスを介して第２のデータバッファに戻す。次いで、マイクロプロセッサは、復号およびメッセージ認証の処理が終了して第２のデータバッファに戻された受信パケットデータに対して上位プロトコルの処理を行う。
【００１８】
この発明によれば、暗復号・メッセージ認証専用回路と第２のデータバッファがローカルバスを介して直接に接続され、かつ、ネットワークインターフェイスに関連する第１のデータバッファと暗復号・メッセージ認証専用回路に関連する第２のデータバッファの入出力の接続先を入れ替え可能としてあるので、従来、必要としていたバスを介してのデータ転送を不要化することができる。したがって、バスの帯域を圧迫することなく、セキュリティ処理を施したパケットデータの高速な送受信が可能となる。
【００１９】
第２の解決手段として、本発明は、パケット通信のネットワークに対するネットワークインターフェイスがバッファメモリおよびバスを介してマイクロプロセッサに接続され、暗復号・メッセージ認証専用回路が暗復号・メッセージ認証に使用する制御レジスタが前記バスを介して前記マイクロプロセッサに接続されたパケット処理装置を前提とする。そして、次のような手段を講じることにより、上記の課題を解決する。すなわち、前記マイクロプロセッサは、前記バッファメモリを、通信に必要な容量に応じて、ネットワークインターフェイス用の第１のアクセス領域と暗復号・メッセージ認証専用回路用の第２のアクセス領域とに分割するように構成され、前記暗復号・メッセージ認証専用回路と前記バッファメモリにおける前記第２のアクセス領域がローカルバスを介して直接に接続され、前記第１のアクセス領域と前記第２のアクセス領域の入出力の接続先が前記マイクロプロセッサの指示によって入れ替え可能に構成されている。
【００２０】
この構成による作用は次のとおりである。パケットデータに対してセキュリティ処理を施した上でネットワークに送出するとき、マイクロプロセッサは、そのときの通信に必要な容量（最大通信パケット数）に応じてバッファメモリを第１のアクセス領域と第２のアクセス領域とに分割する。そして、ネットワークに送出すべきパケットデータが第２のアクセス領域に格納され、暗号およびメッセージ認証に必要な各種設定がマイクロプロセッサによって暗復号・メッセージ認証専用回路の制御レジスタに格納される。暗復号・メッセージ認証専用回路は、制御レジスタの設定に基づいてローカルバスを介して第２のアクセス領域から送信パケットデータを読み込み、暗号およびメッセージ認証の処理を行う。そして、暗号およびメッセージ認証の処理が終了した送信パケットデータをローカルバスを介して第２のアクセス領域に戻す。次いで、マイクロプロセッサは、暗号およびメッセージ認証の処理が終了して第２のアクセス領域に戻された送信パケットデータに対してヘッダ情報を付加する。さらに、マイクロプロセッサは、第１のアクセス領域と第２のアクセス領域の入出力の接続先を入れ替える。これで、暗号およびメッセージ認証の処理が終了しヘッダ情報が付加されたセキュリティ処理済みの送信パケットデータは第１のアクセス領域に格納された状態となる。そして、第１のアクセス領域のセキュリティ処理済みの送信パケットデータをネットワークインターフェイスを介してネットワークに送出する。
【００２１】
一方、ネットワークからネットワークインターフェイスを介して受信したパケットデータは、第１のアクセス領域に格納され、マイクロプロセッサは第１のアクセス領域の受信パケットデータがセキュリティ処理を施されたものか否かを検査し、そうであれば、マイクロプロセッサは、第１のデータバッファと第２のデータバッファの入出力の接続先を入れ替える。これで、セキュリティ処理が施された受信パケットデータは第２のアクセス領域に格納された状態となる。また、復号およびメッセージ認証に必要な各種設定がマイクロプロセッサによって暗復号・メッセージ認証専用回路の制御レジスタに格納される。暗復号・メッセージ認証専用回路は、制御レジスタの設定に基づいてローカルバスを介して第２のアクセス領域から受信パケットデータを読み込み、復号およびメッセージ認証の処理を行う。そして、復号およびメッセージ認証の処理が終了した受信パケットデータをローカルバスを介して第２のアクセス領域に戻す。次いで、マイクロプロセッサは、復号およびメッセージ認証の処理が終了して第２のアクセス領域に戻された受信パケットデータに対して上位プロトコルの処理を行う。
【００２２】
この発明によれば、暗復号・メッセージ認証専用回路とバッファメモリにおける第２のアクセス領域がローカルバスを介して直接に接続され、かつ、ネットワークインターフェイスに関連する第１のアクセス領域と暗復号・メッセージ認証専用回路に関連する第２のアクセス領域の入出力の接続先を入れ替え可能としてあるので、従来、必要としていたバスを介してのデータ転送を不要化することができる。したがって、バスの帯域を圧迫することなく、セキュリティ処理を施したパケットデータの高速な送受信が可能となる。
【００２３】
さらに、マイクロプロセッサが通信状況に応じた分割容量比において、バッファメモリをネットワークインターフェイス用の第１のアクセス領域と暗復号・メッセージ認証専用回路用の第２のアクセス領域とに領域分割するように構成してあるので、通信状況に応じて使用容量を変更することが可能となり、各種プロトコルに対応できる。すなわち、各種プロトコルのパケットデータサイズに依存することなく、かつバス負荷を増加させることなく、セキュリティ処理を高速に行うことができる。
【００２４】
第３の解決手段として、本発明によるパケット処理装置は、上記第１の解決手段において、前記第１のデータバッファに格納されるパケットデータのヘッダ情報があらかじめ設定した特定通信相手検出用の比較基準ヘッダ情報と一致するか否かを検査し、前記暗復号・メッセージ認証専用回路に通知するヘッダ情報検査回路を備え、前記暗復号・メッセージ認証専用回路は、特定通信相手に対してのみ使用する暗復号鍵とメッセージ認証鍵を有し、暗復号・メッセージ認証専用回路は、前記ヘッダ情報検査回路による検査結果が一致のときに前記暗復号鍵とメッセージ認証鍵を使用してセキュリティ処理を行うように構成されている。
【００２５】
この構成による作用は次のとおりである。第１のデータバッファに格納されたパケットデータが特定通信相手のものか否かを検査し、特定通信相手のものであるときに行うセキュリティ処理は、マイクロプロセッサから設定された暗復号鍵とメッセージ認証鍵で行うのではなく、あらかじめ保有している暗復号鍵とメッセージ認証鍵に基づいてセキュリティ処理を行うので、マイクロプロセッサにおける割り込み負荷をさらに軽減することができ、特定通信相手とのパケットデータ交換の処理速度をさらに高速化することができる。
【００２６】
【発明の実施の形態】
以下、本発明にかかわるパケット処理装置の実施の形態を図面に基づいて説明する。
【００２７】
（実施の形態１）
図１は本発明の実施の形態１におけるパケット処理装置の構成を示すブロック図である。
【００２８】
図１において、１００はマイクロプロセッサ、１０１はネットワークインターフェイス、１０２はＩＰｓｅｃアクセラレータなどで構成される暗復号・メッセージ認証専用回路、１０１Ｂはネットワークインターフェイス１０１用のデータバッファである第１のデータバッファ、１０２Ｂは暗復号・メッセージ認証専用回路１０２用のデータバッファである第２のデータバッファ、１０２Ｃは暗復号・メッセージ認証専用回路１０２における制御レジスタ、１０３はバス、１０４は暗復号・メッセージ認証専用回路１０２と第２のデータバッファ１０２Ｂを直接に接続するローカルバス、１０５はネットワークである。マイクロプロセッサ１００、第１のデータバッファ１０１Ｂ、第２のデータバッファ１０２Ｂおよび制御レジスタ１０２Ｃはバス１０３を介して互いに接続されている。このバス１０３については、マイクロプロセッサ１００に固有のバスの他、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）などの規格に則ったバスであっても構わない。
【００２９】
暗復号・メッセージ認証専用回路１０２は、第２のデータバッファ１０２Ｂに格納されたパケットデータをローカルバス１０４を介して取り込み、暗復号計算、ハッシュ計算を行い、その結果をローカルバス１０４を介して第２のデータバッファ１０２Ｂに書き戻すように構成されている。この場合に、マイクロプロセッサ１００は、暗復号・メッセージ認証専用回路１０２が暗復号とハッシュ計算を行う上で利用するデータ領域、使用する暗復号鍵・メッセージ認証鍵、結果を格納する場所などについて、個別に制御レジスタ１０２Ｃに設定する。
【００３０】
ネットワークインターフェイス１０１は、第１のデータバッファ１０１Ｂから送信用のパケットデータを受け取り、ネットワーク１０５に送出する一方、ネットワーク１０５から受信したパケットデータを第１のデータバッファ１０１Ｂに送出するように構成されている。第１のデータバッファ１０１Ｂには、送信用のデータバッファと受信用のデータバッファとが並設されている。
【００３１】
第１のデータバッファ１０１Ｂと第２のデータバッファ１０２Ｂとは、マイクロプロセッサ１００からの設定によって、その入出力の接続先を論理的に入れ替えることができるように構成されている。なお、物理的な入れ替えの方法としては、セレクタによる方式や、スイッチなどの方式が考えられる。
【００３２】
次に、上記のように構成された実施の形態１のパケット処理装置におけるセキュリティパケット送受信の動作を説明する。
【００３３】
まず、送信の場合の動作について説明する。
【００３４】
セキュリティ処理（ＩＰｓｅｃ）を行わないでパケット送信を行う場合、マイクロプロセッサ１００は、ＩＰ層の処理を終えた送信パケットデータを第１のデータバッファ１０１Ｂに送出し、さらに、ネットワークインターフェイス１０１はネットワーク１０５に対してパケット送信を行う。受信の場合は、逆の処理を行う。
【００３５】
一方、セキュリティ処理（ＩＰｓｅｃ）を行った上でパケット送信を行う場合、マイクロプロセッサ１００は、ＩＰ層の処理を終えた送信パケットデータを第２のデータバッファ１０２Ｂへ格納するとともに、暗復号・メッセージ認証専用回路１０２の制御レジスタ１０２Ｃに、暗号計算、ハッシュ計算を行うデータ領域、使用する暗復号鍵・メッセージ認証鍵、計算対象とするデータ領域、計算結果を格納するバッファ領域などを設定する。暗復号・メッセージ認証専用回路１０２は、制御レジスタ１０２Ｃにおける設定に基づいて、ローカルバス１０４を介して第２のデータバッファ１０２Ｂの送信パケットデータに対するセキュリティ処理（暗号・メッセージ認証）を行う。暗復号・メッセージ認証専用回路１０２がセキュリティ処理を実行している最中は、マイクロプロセッサ１００からのアクセスを禁止するように第２のデータバッファ１０２Ｂを設定する。暗復号・メッセージ認証専用回路１０２は、セキュリティ処理を終了すると、制御レジスタ１０２Ｃの設定に従って、処理結果の送信パケットデータをローカルバス１０４を介して第２のデータバッファ１０２Ｂに書き戻す。
【００３６】
セキュリティ処理が終了すると、マイクロプロセッサ１００は、第２のデータバッファ１０２Ｂに戻された送信パケットデータに対して必要なヘッダ情報の付加を行う。
【００３７】
図２にデータの変化の様子を示す。ここでは、暗号処理にＥＳＰ（Ｅｎｃａｐｓｕｌａｔｉｏｎ  Ｓｅｃｕｒｉｔｙ  Ｐａｙｌｏａｄ）を使用し、メッセージ認証にＡＨ（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｈｅａｄｅｒ）を使用している例を示す。
【００３８】
図２（ａ）は、第２のデータバッファ１０２Ｂに設定されるデータの様子を示す。図２（ｂ）は、暗復号・メッセージ認証専用回路１０２が処理を行った後のデータの様子を示す。ダミーヘッダと初期ベクトルＩＶは暗号化されず、そのまま保存される。メッセージ認証値ＩＣＶが新たにバッファ内に現れる。
【００３９】
図２（ｃ）は、図２（ｂ）のデータを基にしてヘッダ処理を終えたデータの様子を示す。ＩＣＶ値はＡＨヘッダの中に埋め込まれ、ＥＳＰヘッダが送信用のものに置き換わり、さらにＩＰヘッダが付属している。この図２（ｃ）に示すデータがネットワークインターフェイス１０１に引き渡せる状態のデータ形式である。
【００４０】
以上の処理が終了し、ネットワークインターフェイス１０１が処理している送受信データが無くなったところで、マイクロプロセッサ１００によって第１のデータバッファ１０１Ｂと第２のデータバッファ１０２Ｂの入出力の接続先を論理的に入れ替える。このとき、データバッファの外部回路であるマイクロプロセッサ１００、ネットワークインターフェイス１０１、暗復号・メッセージ認証専用回路１０２から見える接続関係は、データの内容のみが入れ替わったものとなる。
【００４１】
入出力の接続先を入れ替えた後は、第１のデータバッファ１０１Ｂには送信パケットデータが格納された状態となり、この送信パケットデータをネットワークインターフェイス１０１を介して順序にネットワーク１０５に送出する。
【００４２】
次に、受信の場合の動作について説明する。
【００４３】
ネットワーク１０５からネットワークインターフェイス１０１を介して受信したパケットデータを第１のデータバッファ１０１Ｂへ格納し、マイクロプロセッサ１００がその受信パケットデータのヘッダ情報からセキュリティ処理（ＩＰｓｅｃ）を行う必要があるか否かを判断する。セキュリティ処理を行わない場合は、マイクロプロセッサ１００は、第１のデータバッファ１０１Ｂの受信パケットデータをワークメモリへ転送し、さらに、上位プロトコルの処理を行う。
【００４４】
セキュリティ処理を行う場合は、第１のデータバッファ１０１Ｂと第２のデータバッファ１０２Ｂの入出力の接続先を論理的に入れ替える。これで、受信パケットデータは第２のデータバッファ１０２Ｂに格納された状態となる。そして、マイクロプロセッサ１００から復号およびメッセージ認証に必要な各種設定が暗復号・メッセージ認証専用回路１０２の制御レジスタ１０２Ｃに格納される。暗復号・メッセージ認証専用回路１０２は、制御レジスタ１０２Ｃの設定に基づいてローカルバス１０４を介して第２のデータバッファ１０２Ｂから受信パケットデータを読み込み、復号およびメッセージ認証の処理を行う。そして、復号およびメッセージ認証の処理が終了した受信パケットデータをローカルバス１０４を介して第２のデータバッファ１０２Ｂに戻す。次いで、マイクロプロセッサ１００は、復号およびメッセージ認証の処理が終了して第２のデータバッファ１０２Ｂに戻された受信パケットデータに対して上位プロトコルの処理を行う。
【００４５】
従来技術では、暗復号・メッセージ認証専用回路の処理が終わった後に、第２のデータバッファからマイクロプロセッサのワークメモリに対するデータ転送と、マイクロプロセッサから第１のデータバッファに対するデータ転送の処理が必要であった。これに対して、本実施の形態によれば、それらの処理を省略することが可能となっており、バス１０３の帯域の圧迫を抑制することができる。
【００４６】
（実施の形態２）
図３は本発明の実施の形態２におけるパケット処理装置の構成を示すブロック図である。
【００４７】
図３において、実施の形態１の図１におけるのと同じ符号は同一構成要素を指しているので、詳しい説明は省略する。実施の形態１の場合の第１のデータバッファ１０１Ｂおよび第２のデータバッファ１０２Ｂに代えて、バッファメモリ２００とそのアクセス制御回路２０１が設けられている。バッファメモリ２００およびアクセス制御回路２０１はバス１０３に接続されている。ネットワークインターフェイス１０１と暗復号・メッセージ認証専用回路１０２はバッファメモリ２００に接続されており、バッファメモリ２００は、ネットワークインターフェイス１０１と暗復号・メッセージ認証専用回路１０２の共通バッファメモリとして使用される。
【００４８】
バッファメモリ２００は、マイクロプロセッサ１００、ネットワークインターフェイス１０１、暗復号・メッセージ認証専用回路１０２からアクセスを受けることになる。バッファメモリ２００は、マイクロプロセッサ１００からの指示により通信状況に応じた分割容量比において、ネットワークインターフェイス１０１用の第１のアクセス領域２００ａと暗復号・メッセージ認証専用回路１０２用の第２のアクセス領域２００ｂとに領域分割されるように構成されている。すなわち、セキュリティ処理を施さずにパケットデータをネットワーク１０５へ送出する場合には、第１のアクセス領域２００ａに通信必要容量である最大通信パケット数を確保するように領域分割し、一方、セキュリティ処理を施した上でネットワーク１０５へ送出する場合には、第２のアクセス領域２００ｂに通信必要容量である最大通信パケット数を確保するように領域分割する。ただし、マイクロプロセッサ１００はバッファメモリ２００の全エリアにアクセス可能である。
【００４９】
例として、図４に、バッファメモリ２００が４Ｋバイトの領域を持っている場合に、ネットワークインターフェイス１０１用の第１のアクセス領域２００ａに２Ｋバイトが確保され、暗復号・メッセージ認証専用回路１０２用の第２のアクセス領域２００ｂにも２Ｋバイトが確保された状態を示す。このように、通信状況に応じてバッファメモリ２００の分割容量比をフレキシブルに変更するように構成している。なお、ここでは、メモリアドレスはメモリの独自アドレスであり、バイト単位で表示してある。
【００５０】
バッファメモリ２００に対しては複数のアクセスが同時に要求されることがある。これに対応するには、２ポートメモリやシングルポートメモリに優先順位付けによるアクセス制御、一定時間におけるアクセスタイミングのシェアなどの方式を採る必要がある。本実施形態では、アクセス制御回路２０１によってシングルポートメモリの優先順位付けを行っている。
【００５１】
また、アクセス制御回路２０１は、ネットワークインターフェイス１０１と暗復号・メッセージ認証専用回路１０２のアドレスをメモリアドレスに変換するアドレス変換回路を内蔵し、マイクロプロセッサ１００の設定によって変換アドレスを変更できるように構成されている。
【００５２】
次に、上記のように構成された実施の形態２のパケット処理装置におけるセキュリティパケット送受信の動作を説明する。
【００５３】
まず、送信の場合の動作について説明する。
【００５４】
マイクロプロセッサ１００は、パケット交換を行う相手に対して最大通信パケット数を設定し、それを基にしてバッファメモリ２００の境界を設定し、第１のアクセス領域２００ａと第２のアクセス領域２００ｂとに領域分割する。これにより、通信状況に応じた分割容量比においてフレキシブルな対応としている。
【００５５】
セキュリティ処理（ＩＰｓｅｃ）を行わずにネットワーク１０５に送出する場合、マイクロプロセッサ１００は、第１のアクセス領域２００ａに送信パケットデータを送出する。第１のアクセス領域２００ａに格納された送信パケットデータはネットワークインターフェイス１０１に転送され、ネットワーク１０５へ送出される。
【００５６】
セキュリティ処理（ＩＰｓｅｃ）を行う場合には、マイクロプロセッサ１００は、バッファメモリ２００における第２のアクセス領域２００ｂへ送信パケットデータを格納するとともに、暗復号・メッセージ認証専用回路１０２の制御レジスタ１０２Ｃに、暗号計算、ハッシュ計算を行うデータ領域、使用する暗復号鍵・メッセージ認証鍵、計算対象とするデータ領域、計算結果を格納するバッファ領域などを設定する。暗復号・メッセージ認証専用回路１０２は、制御レジスタ１０２Ｃにおける設定に基づいて、ローカルバス１０４を介して第２のアクセス領域２００ｂの送信パケットデータに対するセキュリティ処理（暗号・メッセージ認証）を行う。暗復号・メッセージ認証専用回路１０２がセキュリティ処理を実行している最中は、マイクロプロセッサ１００からのアクセスを禁止するように第２のアクセス領域２００ｂを設定する。暗復号・メッセージ認証専用回路１０２は、セキュリティ処理を終了すると、制御レジスタ１０２Ｃの設定に従って、処理結果の送信パケットデータをローカルバス１０４を介して第２のアクセス領域２００ｂに書き戻す。
【００５７】
セキュリティ処理が終了すると、マイクロプロセッサ１００は、第２のアクセス領域２００ｂに戻された送信パケットデータに対して必要なヘッダ情報の付加を行う。
【００５８】
ネットワークインターフェイス１０１が処理している送受信データが無くなったところで、マイクロプロセッサ１００は、第１のアクセス領域２００ａと第２のアクセス領域２００ｂの入出力の接続先を論理的に入れ替える。この入れ替えによっても、マイクロプロセッサ１００がアクセスするアドレス空間、ネットワークインターフェイス１０１が参照するバッファメモリ２００のアドレス空間、暗復号・メッセージ認証専用回路１０２が参照する第２のアクセス領域２００ｂのアドレス空間は変化しない。
【００５９】
入出力の接続先を入れ替えた後は、第１のアクセス領域２００ａには送信パケットデータが格納された状態となり、この送信パケットデータをネットワークインターフェイス１０１を介して順序にネットワーク１０５に送出する。
【００６０】
次に、受信の場合の動作について説明する。
【００６１】
ネットワーク１０５からネットワークインターフェイス１０１を介して受信したパケットデータをバッファメモリ２００の第１のアクセス領域２００ａへ格納し、マイクロプロセッサ１００がその受信パケットデータのヘッダ情報からセキュリティ処理（ＩＰｓｅｃ）を行う必要があるか否かを判断する。セキュリティ処理を行わない場合は、マイクロプロセッサ１００は、第１のアクセス領域２００ａの受信パケットデータをワークメモリへ転送し、さらに、上位プロトコルの処理を行う。
【００６２】
セキュリティ処理を行う場合は、バッファメモリ２００において、第１のアクセス領域２００ａと第２のアクセス領域２００ｂの入出力の接続先を論理的に入れ替える。これで、受信パケットデータは第２のアクセス領域２００ｂに格納された状態となる。そして、マイクロプロセッサ１００から復号およびメッセージ認証に必要な各種設定が暗復号・メッセージ認証専用回路１０２の制御レジスタ１０２Ｃに格納される。暗復号・メッセージ認証専用回路１０２は、制御レジスタ１０２Ｃの設定に基づいてローカルバス１０４を介して第２のアクセス領域２００ｂから受信パケットデータを読み込み、復号およびメッセージ認証の処理を行う。そして、復号およびメッセージ認証の処理が終了した受信パケットデータをローカルバス１０４を介して第２のアクセス領域２００ｂに戻す。次いで、マイクロプロセッサ１００は、復号およびメッセージ認証の処理が終了して第２のアクセス領域２００ｂに戻された受信パケットデータに対して上位プロトコルの処理を行う。
【００６３】
上記の実施の形態１では、第１のデータバッファ１０１Ｂ、第２のデータバッファ１０２Ｂともにバッファ容量は最大分用意する必要がある。これに対して本実施の形態では、例えばセキュリティ処理を使用しない通信相手とセキュリティ処理を行う通信相手との相違に応じて、アクセス領域を柔軟に変化させることが可能で、バッファメモリ２００の容量を削減する上で貢献する。また、各種プロトコル（例えばＩＰｖ４とＩＰｖ６など）が混在するネットワーク１０５の環境において、柔軟に対応することができるセキュリティ処理システムを実現できる。
【００６４】
（実施の形態３）
図５は本発明の実施の形態３におけるパケット処理装置の構成を示すブロック図である。
【００６５】
図５において、実施の形態１の図１におけるのと同じ符号は同一構成要素を指しているので、詳しい説明は省略する。新たな構成要素としての３００は、第１のデータバッファ１０１Ｂに格納されているパケットのヘッダ情報を解析するヘッダ情報検査回路であり、このヘッダ情報検査回路３００は、特定の通信相手を検出するための比較基準のヘッダ情報を格納するレジスタを有し、第１のデータバッファ１０１Ｂに格納されたパケットデータにおけるヘッダ情報と前記比較基準のヘッダ情報とを比較し、一致するときには特定の通信相手であると判断して暗復号・メッセージ認証専用回路１０２に通知し、セキュリティ処理（ＩＰｓｅｃ）を行うように構成されている。この場合、ヘッダ情報検査回路３００は、第１のデータバッファ１０１Ｂと第２のデータバッファ１０２Ｂの入出力の接続先を論理的に入れ替え、パケットデータが暗復号・メッセージ認証専用回路１０２からアクセスされる状態とする。また、ヘッダ情報検査回路３００は、暗復号対象データ領域と認証対応データ領域を自由に設定して、暗復号・メッセージ認証専用回路１０２にパケットデータを送るように構成されている。また、ヘッダ情報検査回路３００は、様々な通信プロトコルに対応できるものとなっている。
【００６６】
暗復号・メッセージ認証専用回路１０２は、特定の通信相手に対応するＳＡ情報を格納しておくＳＡ情報格納レジスタを有している。暗復号・メッセージ認証専用回路１０２は、ヘッダ情報検査回路３００から特定の通信相手であることを検出したことの通知を受けたときは、ＳＡ情報格納レジスタに格納しているＳＡ情報に基づいて暗復号、メッセージ認証のセキュリティ処理を行うように構成されている。この場合、マイクロプロセッサ１００からはＳＡ情報を転送することはない。
【００６７】
また、暗復号・メッセージ認証専用回路１０２は、実施の形態１と同様に、マイクロプロセッサ１００からの指示によって動作する場合には、その制御レジスタ１０２Ｃにマイクロプロセッサ１００からＳＡ情報が設定されるが、設定されたＳＡ情報を利用して暗復号、メッセージ認証のセキュリティ処理を行う。この場合、前述したＳＡ情報格納レジスタの値は保存されたままである。
【００６８】
また、暗復号・メッセージ認証専用回路１０２のメッセージ認証においては、特定の箇所を“０”に置き換える必要がある。この箇所のデータを暗復号・メッセージ認証専用回路１０２に取り込む際には、書き換える位置を設定するレジスタから情報を受け取り、“０”に置き換えて処理を行う。
【００６９】
次に、上記のように構成された実施の形態３のパケット処理装置におけるセキュリティパケット送受信の動作を説明する。
【００７０】
まず、送信の場合の動作について説明する。
【００７１】
送信の場合の動作については、実施の形態１の場合と同じ動作を基本とする。ヘッダ情報検査回路３００は、第１のデータバッファ１０１Ｂに格納された送信パケットデータのヘッダ情報を、特定通信相手検出用の比較基準ヘッダ情報と照合し、不一致の場合は、そのままネットワークインターフェイス１０１を介してネットワーク１０５に送信パケットデータを送出する。
【００７２】
一方、ヘッダ情報検査回路３００での照合の結果、一致するときは、自動的にセキュリティ処理（ＩＰｓｅｃ）を選択し、第１のデータバッファ１０１Ｂと第２のデータバッファ１０２Ｂの入出力の接続先を論理的に入れ替える。暗復号・メッセージ認証専用回路１０２は、ＳＡ情報格納レジスタに格納しているＳＡ情報に基づいて、第２のデータバッファ１０２Ｂの送信パケットデータに対するセキュリティ処理を行う。この場合、マイクロプロセッサ１００からは暗復号・メッセージ認証専用回路１０２にＳＡ情報を転送する必要はない。暗復号・メッセージ認証専用回路１０２は、セキュリティ処理を終了すると、処理結果の送信パケットデータをローカルバス１０４を介して第２のデータバッファ１０２Ｂに書き戻す。さらに、第２のデータバッファ１０２Ｂと第１のデータバッファ１０１Ｂの入出力の接続先を論理的に入れ替え、ネットワークインターフェイス１０１からネットワーク１０５へ送信パケットデータを送出する。
【００７３】
次に、受信の場合の動作について説明する。
【００７４】
ネットワーク１０５からネットワークインターフェイス１０１を介して受信したパケットデータは第１のデータバッファ１０１Ｂに格納される。ヘッダ情報検査回路３００は、第１のデータバッファ１０１Ｂに格納された受信パケットデータのヘッダ情報を、レジスタに設定されている特定通信相手検出用の比較基準ヘッダ情報と照合する。照合の結果、一致を示す場合には、セキュリティ処理（ＩＰｓｅｃ）を行うべく、第１のデータバッファ１０１Ｂと第２のデータバッファ１０２Ｂの入出力の接続先を論理的に入れ替える。これで、受信パケットデータは第２のデータバッファ１０２Ｂに格納された状態となる。暗復号・メッセージ認証専用回路１０２は、あらかじめ格納している特定通信相手のＳＡ情報の設定に基づいてローカルバス１０４を介して第２のデータバッファ１０２Ｂから受信パケットデータを読み込み、復号およびメッセージ認証の処理を行う。そして、復号およびメッセージ認証の処理が終了した受信パケットデータをローカルバス１０４を介して第２のデータバッファ１０２Ｂに戻す。次いで、マイクロプロセッサ１００は、復号およびメッセージ認証の処理が終了して第２のデータバッファ１０２Ｂに戻された受信パケットデータに対して上位プロトコルの処理を行う。
【００７５】
ヘッダ情報検査回路３００は、一致しない場合にはマイクロプロセッサ１００へ通知する。マイクロプロセッサ１００は、２次的な判断として、第１のデータバッファ１０１Ｂに格納されている受信パケットデータがセキュリティ処理（ＩＰｓｅｃ）を必要とするデータか否かを判断する。セキュリティ処理を行うべきデータである場合は、マイクロプロセッサ１００が第１のデータバッファ１０１Ｂと第２のデータバッファ１０２Ｂの入出力の接続先を論理的に入れ替え、必要なＳＡ情報を暗復号・メッセージ認証専用回路１０２の制御レジスタ１０２Ｃに転送し、次いで暗復号・メッセージ認証専用回路１０２による処理が行われる。
【００７６】
マイクロプロセッサ１００による２次的な判断で、第１のデータバッファ１０１Ｂに格納されている受信パケットデータがセキュリティ処理を必要としないデータである場合には、第１のデータバッファ１０１Ｂの受信パケットデータをマイクロプロセッサ１００のワークメモリに転送し、上位プロトコルの処理を実行する。
【００７７】
以上により、ヘッダ情報検査回路３００によって、特定の通信相手からの受信の場合には、マイクロプロセッサ１００への割り込み通知を省くことが可能となり、その結果、セキュリティ処理（ＩＰｓｅｃ）の高速化を図ることができる。これは、例えばＩＰＱｏＳなどを利用する場合に有効である。
【００７８】
なお、上記の実施の形態においては、検出すべきヘッダ情報を１つとしたが、複数の特定の通信相手を検出する場合にも適用可能であり、その場合には、暗復号・メッセージ認証専用回路１０２では特定通信相手のＳＡ情報として同じ数だけもつようにする。
【００７９】
また、本実施の形態ではヘッダ情報の処理をメッセージ認証の計算に適するようにマイクロプロセッサが設定し、メッセージ認証値を計算した後に、マイクロプロセッサが正規のヘッダ情報を入力することとしているが、メッセージ認証値の計算を行う回路で、自動的にヘッダ情報を置き換えることができる回路を付加することもできる。
【００８０】
【発明の効果】
以上のように本発明によれば、暗復号・メッセージ認証専用回路と第２のデータバッファがローカルバスを介して直接に接続され、かつ、ネットワークインターフェイスに関連する第１のデータバッファと暗復号・メッセージ認証専用回路に関連する第２のデータバッファの入出力の接続先を入れ替え可能としてあるので、従来、必要としていたバスを介してのデータ転送を不要化することができ、バスの帯域を圧迫することなく、セキュリティ処理を施したパケットデータの送受信を高速化することができる。
【００８１】
また、通信状況に応じた分割容量比において、バッファメモリをネットワークインターフェイス用の第１のアクセス領域と暗復号・メッセージ認証専用回路用の第２のアクセス領域とに領域分割するように構成してあるので、通信状況に応じて使用容量を変更することが可能となり、各種プロトコルに対応することができる。すなわち、各種プロトコルのパケットデータサイズに依存することなく、かつバス負荷を増加させることなく、セキュリティ処理を高速に行うことができる。
【００８２】
また、パケットデータが特定通信相手のものであるときに行うセキュリティ処理は、マイクロプロセッサから設定された暗復号鍵とメッセージ認証鍵で行うのではなく、あらかじめ保有している暗復号鍵とメッセージ認証鍵に基づいてセキュリティ処理を行うことにより、マイクロプロセッサにおける割り込み負荷をさらに軽減することができ、特定通信相手とのパケットデータ交換の処理速度をさらに高速化することができる。
【００８３】
以上のように、本発明によれば、低機能プロセッサを使用した場合においても、高速で柔軟性のあるセキュリティ処理システムを構成でき、低コスト化が図られる。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるパケット処理装置の構成を示すブロック図
【図２】本発明の実施の形態１におけるパケット処理の流れに沿ってのデータ構成図
【図３】本発明の実施の形態２におけるパケット処理装置の構成を示すブロック図
【図４】本発明の実施の形態２におけるバッファメモリの領域分割の一例を示す図
【図５】本発明の実施の形態３におけるパケット処理装置の構成を示すブロック図
【図６】従来技術におけるパケット処理装置の構成を示すブロック図
【符号の説明】
１００  マイクロプロセッサ
１０１  ネットワークインターフェイス
１０１Ｂ  第１のデータバッファ
１０２  暗復号・メッセージ認証専用回路（ＩＰｓｅｃアクセラレータ）
１０２Ｂ  第２のデータバッファ
１０２Ｃ  制御レジスタ
１０３  バス
１０４  ローカルバス
２００  バッファメモリ
２００ａ  第１のアクセス領域
２００ｂ  第２のアクセス領域
２０１  アクセス制御回路
３００  パケットヘッダ情報検査回路
【図１】
2004328359.tif 000003
【図２】
2004328359.tif 000004
【図３】
2004328359.tif 000005
【図４】
2004328359.tif 000006
【図５】
2004328359.tif 000007
【図６】
2004328359.tif 000008