(57)【特許請求の範囲】
【請求項１】
弁別条件として予め登録されたエントリパターンと、走査対象となる通信ネットワーク上のトラヒックのパケットから抽出したトラヒックパターンとをパターン照合することにより、これらパケットのデータが所定のデータ集合に属するか否かを弁別するトラヒック走査装置で用いられるトラヒック走査方法であって、
ハッシュ演算部が、前記エントリパターンまたは前記トラヒックパターンからなるキーの射像となるハッシュ値を生成するハッシュ演算ステップと、
エントリ登録部が、前記エントリパターンからなるキーをもとにハッシュ値の生成を前記ハッシュ演算ステップに要求し、得られたハッシュ値をパターン照合時に陽性と判定される照合データとして照合データ記憶部に登録するエントリ登録ステップと、
パターン照合部が、前記トラヒックの各パケットから順次抽出した前記トラヒックパターンごとに、当該トラヒックパターンからなるキーをもとにハッシュ値の生成を前記ハッシュ演算ステップに要求し、得られたハッシュ値と前記照合データ記憶部から読み出した前記照合データとを比較することにより前記パターン照合を行うパターン照合ステップと、
照合結果弁別部が、前記パターン照合の結果、前記トラヒックパターンのハッシュ値のうちから前記照合データと一致する被疑パターンが検出された場合に、当該トラヒックパターンにかかるパケットのデータを陽性と弁別し、当該被疑パターンが検出されなかった場合に当該トラヒックパターンにかかるパケットのデータを陰性と弁別する照合結果弁別ステップとを備え、
前記エントリ登録部は、特定用途向けプロセッサにより構成されるとともに、当該特定用途向けプロセッサに、前記照合データ記憶部への照合データの登録に用いるレジスタファイルを、パターン照合に用いる照合ハッシュ種別ごとにそれぞれ内蔵し、
前記エントリ登録ステップは、前記照合ハッシュ種別ごとにエントリ登録専用命令をそれぞれ有し、これらエントリ登録専用命令を前記特定用途向けプロセッサで実行することにより、当該照合ハッシュ種別と対応する前記レジスタファイルを介して、前記ハッシュ演算ステップで生成された当該照合ハッシュ種別のハッシュ値を前記照合データとして前記照合データ記憶部へ登録する
ことを特徴とするトラヒック走査方法。
【請求項２】
請求項１に記載のトラヒック走査方法において、
前記特定用途向けプロセッサは、前記照合ハッシュ種別ごとのレジスタファイルとして、登録する照合データのハッシュ種別を指定するためのハッシュ種別指定用レジスタ、当該照合データを保持するための照合データ保持用レジスタ、および当該照合データの登録先アドレスを保持するためのアドレス指定用レジスタを備えることを特徴とするトラヒック走査方法。
【請求項３】
請求項１または請求項２に記載のトラヒック走査方法において、
前記特定用途向けプロセッサは、前記照合データ記憶部で照合データ保持する照合データ用記憶空間の大きさを設定するためのメモリサイズ設定用レジスタを備え、
前記エントリ登録ステップは、メモリサイズ設定専用命令を前記特定用途向けプロセッサで実行することにより、入力パラメータで指定されたメモリサイズを、前記メモリサイズ設定用レジスタを用いて前記照合データ用記憶空間の大きさを設定する
ことを特徴とするトラヒック走査方法。
【請求項４】
弁別条件として予め登録されたエントリパターンと、走査対象となる通信ネットワーク上のトラヒックのパケットから抽出したトラヒックパターンとをパターン照合することにより、これらパケットのデータが所定のデータ集合に属するか否かを弁別するトラヒック走査装置であって、
前記エントリパターンまたは前記トラヒックパターンからなるキーの射像となるハッシュ値を生成するハッシュ演算部と、
前記エントリパターンからなるキーをもとにハッシュ値の生成を前記ハッシュ演算部に要求し、得られたハッシュ値をパターン照合時に陽性と判定される照合データとして照合データ記憶部に登録するエントリ登録部と、
前記トラヒックの各パケットから順次抽出した前記トラヒックパターンごとに、当該トラヒックパターンからなるキーをもとにハッシュ値の生成を前記ハッシュ演算部に要求し、得られたハッシュ値と前記照合データ記憶部から読み出した前記照合データとを比較することにより前記パターン照合を行うパターン照合部と、
前記パターン照合の結果、前記トラヒックパターンのハッシュ値のうちから前記照合データと一致する被疑パターンが検出された場合に、当該トラヒックパターンにかかるパケットのデータを陽性と弁別し、当該被疑パターンが検出されなかった場合に当該トラヒックパターンにかかるパケットのデータを陰性と弁別する照合結果弁別部とを備え、
前記エントリ登録部は、特定用途向けプロセッサにより構成されるとともに、当該特定用途向けプロセッサに、前記照合データ記憶部への照合データの登録に用いるレジスタファイルを、パターン照合に用いる照合ハッシュ種別ごとにそれぞれ内蔵し、前記照合ハッシュ種別ごとにエントリ登録専用命令を当該特定用途向けプロセッサで実行することにより、当該照合ハッシュ種別と対応する前記レジスタファイルを介して、前記ハッシュ演算部で生成された当該照合ハッシュ種別のハッシュ値を前記照合データとして前記照合データ記憶部へ登録する
ことを特徴とするトラヒック走査装置。
【請求項５】
請求項４に記載のトラヒック走査装置において、
前記特定用途向けプロセッサは、前記照合ハッシュ種別ごとのレジスタファイルとして、登録する照合データのハッシュ種別を指定するためのハッシュ種別指定用レジスタ、当該照合データを保持するための照合データ保持用レジスタ、および当該照合データの登録先アドレスを保持するためのアドレス指定用レジスタを備えることを特徴とするトラヒック走査装置。
【請求項６】
請求項４または請求項５に記載のトラヒック走査装置において、
前記特定用途向けプロセッサは、前記照合データ記憶部で照合データ保持する照合データ用記憶空間の大きさを設定するためのメモリサイズ設定用レジスタを備え、
前記エントリ登録部は、メモリサイズ設定専用命令を前記特定用途向けプロセッサで実行することにより、入力パラメータで指定されたメモリサイズを、前記メモリサイズ設定用レジスタを用いて前記照合データ用記憶空間の大きさを設定する
ことを特徴とするトラヒック走査装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パターン照合問題、とりわけ通信ネットワーク上で転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを、特定用途向けプロセッサで効率的かつ柔軟に弁別するためのトラヒック走査技術に関する。
【背景技術】
【０００２】
パターン照合問題は、幅広いアプリケーションで生じる重要な問題である。例えば、次に示す応用範囲に限定されるものではないが、インターネットのテキスト検索システムや遺伝子工学、データベース、通信工学などの分野において、種々の技術課題の克服が必要とされている。とりわけ、通信ネットワーク上で転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを効率的に弁別する技術は、異常トラヒックを早期に検出・遮断して安定化を図ることで保安上のリスク低減に繋がるため、安心・安全な通信インフラを支え続けていくにあたって不可欠な要素技術である。
【０００３】
一般に、このようなデータ弁別技術では、予め弁別に用いる条件を登録する機能部と、各パケットから抽出したパターンを照合するための機能部で構成され、直接照合の負担を軽減するためにハッシュ演算が用いられることがある。
【０００４】
具体的には、照合したいパターンのハッシュ値を生成するハッシュ演算部を設けて、予め条件となるハッシュ値をハッシュ演算部で生成し、これを照合データとして照合データ記憶部に格納しておく。そして、実際にパケットデータを弁別する際、弁別対象となるトラヒックからパケットバイパケットに抽出した各トラヒックのパターンについて、同ハッシュ演算部でハッシュ値を生成し、照合データ記憶部から読み出した照合データとパターン照合することになる。
【０００５】
このため、パターン照合問題では、ハッシュ演算部において、いかに効率よくハッシュ値を生成するかが重要となる。
図１１は、従来のハッシュ演算部の要部構成を示す説明図である。従来、トラヒック弁別技術で用いるハッシュ演算部について、非特許文献１に示すような、照合するパターンの検査データ長に応じて複数のブルームフィルタ（Ｂｌｏｏｍｆｉｌｔｅｒ）を並列に構成し、トラヒックパターンの弁別をハードウェアで高速に処理する技術が提案されている。
【０００６】
ブルームフィルタは、非特許文献２に示す通り、データベースのようなデータサイエンス分野で考案された古典的なデータ構造であり、実用上問題ない水準において所定の偽陽性確率を許容することで、空間計算量を効率化する工夫がなされている。応用範囲として、データサイエンス分野に限定されるものではないため、通信分野においても、非特許文献１に代表されるような数多くの提案がなされている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許登録第３８６０５７５号公報
【非特許文献】
【０００８】
【非特許文献１】S. Dharmapurikar, et al., "Deep Packet Inspection Using Parallel Bloom Filters", IEEE Micro, January/February 2004, Volume24, Issue1, p.52-61.
【非特許文献２】Burton H. Bloom, "Space/Time Trade-offs in Hash Coding with Allowable Errors", Communications of the ACM, 1970.
【非特許文献３】S. Dharmapurikar, et al., "Longest Prefix Matching Using Bloom Filters", Proceedings of the 2003 conference on ACM SIGCOMM 2003, p.201-212.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
このような従来技術によれば、ハッシュ演算部において、異なる検査データ長ごとにハッシュ値を一斉並列に生成する構成となっているため、検査データ長１バイトごとに個別のブルームフィルタを備えることになり、回路規模が増大するという問題点があった。また、ブルームフィルタは通常、複数のハッシュ演算の組み合わせで構成されるが、ハードウェアで別種のハッシュ演算アルゴリズムを実装するには複数の回路構成を持たせなければならないため、さらに回路希望が増大することになる。
【００１０】
ハッシュ種別については、一般に約数十種類ほど存在し、トラヒック走査に要求される照合精度（偽陽性確率の高低）に応じて、いずれかのハッシュ種別を複数組み合わせることにより、照合に用いるハッシュ値を生成することになる。
また、データ長については、標準的なパケットでは１５００バイトであるが、９０００バイトや１６０００バイトのデータ長を有する、いわゆるジャンボフレームと呼ばれるパケットも弁別対象となる場合もある。
【００１１】
したがって、従来技術を用いて各種のトラヒック走査を行う場合、ハッシュ種別数をＮｈとしデータ長をＷとすると、ハッシュ演算部に備えるべきブルームフィルタの数は、おおよそＮｈ×Ｗ個（ただし、Ｗ＝通常時〜１５００、最悪の場合１６０００）となり、極めて膨大な数のブルームフィルタを実装する必要がある。このため、多数のハッシュ演算部の出力を一時的に保持するレジスタ数も膨大なものとなるだけでなく、得られた複数の演算結果から適切な値を選択するためのセレクタ回路も多数の信号線を要するという問題がある。
【００１２】
このようなハッシュ値を照合データ記憶部に登録するエントリ登録部の具体例としては、ハッシュ演算部の外部にＣＰＵを設けて、ハッシュ演算部で生成された各ハッシュ値のうちから、指定されたハッシュ種別および検査データ長に応じたハッシュ値を選択して登録する構成が考えられる。
しかしながら、このような外部ＣＰＵを用いたエントリ登録部の構成例では、エントリ登録処理を実行する外部ＣＰＵにかかるハードウェアに加えて、この外部ＣＰＵとハッシュ演算部や照合データ記憶部との間でハッシュ値をやり取りするための周辺回路が必要となるため、エントリ登録部においても回路規模および消費電力が大幅に増大するという問題点があった。
【００１３】
本発明はこのような課題を解決するためのものであり、エントリ登録に要する回路規模および消費電力を削減できるトラヒック弁別技術を提供することを目的としている。
【課題を解決するための手段】
【００１４】
このような目的を達成するために、本発明にかかるトラヒック走査方法は、弁別条件として予め登録されたエントリパターンと、走査対象となる通信ネットワーク上のトラヒックのパケットから抽出したトラヒックパターンとをパターン照合することにより、これらパケットのデータが所定のデータ集合に属するか否かを弁別するトラヒック走査装置で用いられるトラヒック走査方法であって、ハッシュ演算部が、前記エントリパターンまたは前記トラヒックパターンからなるキーの射像となるハッシュ値を生成するハッシュ演算ステップと、エントリ登録部が、前記エントリパターンからなるキーをもとにハッシュ値の生成を前記ハッシュ演算ステップに要求し、得られたハッシュ値をパターン照合時に陽性と判定される照合データとして照合データ記憶部に登録するエントリ登録ステップと、パターン照合部が、前記トラヒックの各パケットから順次抽出した前記トラヒックパターンごとに、当該トラヒックパターンからなるキーをもとにハッシュ値の生成を前記ハッシュ演算ステップに要求し、得られたハッシュ値と前記照合データ記憶部から読み出した前記照合データとを比較することにより前記パターン照合を行うパターン照合ステップと、照合結果弁別部が、前記パターン照合の結果、前記トラヒックパターンのハッシュ値のうちから前記照合データと一致する被疑パターンが検出された場合に、当該トラヒックパターンにかかるパケットのデータを陽性と弁別し、当該被疑パターンが検出されなかった場合に当該トラヒックパターンにかかるパケットのデータを陰性と弁別する照合結果弁別ステップとを備え、前記エントリ登録部は、特定用途向けプロセッサにより構成されるとともに、当該特定用途向けプロセッサに、前記照合データ記憶部への照合データの登録に用いるレジスタファイルを、パターン照合に用いる照合ハッシュ種別ごとにそれぞれ内蔵し、前記エントリ登録ステップは、前記照合ハッシュ種別ごとにエントリ登録専用命令をそれぞれ有し、これらエントリ登録専用命令を前記特定用途向けプロセッサで実行することにより、当該照合ハッシュ種別と対応する前記レジスタファイルを介して、前記ハッシュ演算ステップで生成された当該照合ハッシュ種別のハッシュ値を前記照合データとして前記照合データ記憶部へ登録するようにしたものである。
【００１５】
また、本発明にかかる上記トラヒック走査方法の一構成例は、前記特定用途向けプロセッサが、前記照合ハッシュ種別ごとのレジスタファイルとして、登録する照合データのハッシュ種別を指定するためのハッシュ種別指定用レジスタ、当該照合データを保持するための照合データ保持用レジスタ、および当該照合データの登録先アドレスを保持するためのアドレス指定用レジスタを備えるものである。
【００１６】
また、本発明にかかる上記トラヒック走査方法の一構成例は、前記特定用途向けプロセッサが、前記照合データ記憶部で照合データ保持する照合データ用記憶空間の大きさを設定するためのメモリサイズ設定用レジスタを備え、前記エントリ登録ステップは、メモリサイズ設定専用命令を前記特定用途向けプロセッサで実行することにより、入力パラメータで指定されたメモリサイズを、前記メモリサイズ設定用レジスタを用いて前記照合データ用記憶空間の大きさを設定するようにしたものである。
【００１７】
また、本発明にかかるトラヒック走査装置は、弁別条件として予め登録されたエントリパターンと、走査対象となる通信ネットワーク上のトラヒックのパケットから抽出したトラヒックパターンとをパターン照合することにより、これらパケットのデータが所定のデータ集合に属するか否かを弁別するトラヒック走査装置であって、前記エントリパターンまたは前記トラヒックパターンからなるキーの射像となるハッシュ値を生成するハッシュ演算部と、前記エントリパターンからなるキーをもとにハッシュ値の生成を前記ハッシュ演算部に要求し、得られたハッシュ値をパターン照合時に陽性と判定される照合データとして照合データ記憶部に登録するエントリ登録部と、前記トラヒックの各パケットから順次抽出した前記トラヒックパターンごとに、当該トラヒックパターンからなるキーをもとにハッシュ値の生成を前記ハッシュ演算部に要求し、得られたハッシュ値と前記照合データ記憶部から読み出した前記照合データとを比較することにより前記パターン照合を行うパターン照合部と、前記パターン照合の結果、前記トラヒックパターンのハッシュ値のうちから前記照合データと一致する被疑パターンが検出された場合に、当該トラヒックパターンにかかるパケットのデータを陽性と弁別し、当該被疑パターンが検出されなかった場合に当該トラヒックパターンにかかるパケットのデータを陰性と弁別する照合結果弁別部とを備え、前記エントリ登録部は、特定用途向けプロセッサにより構成されるとともに、当該特定用途向けプロセッサに、前記照合データ記憶部への照合データの登録に用いるレジスタファイルを、パターン照合に用いる照合ハッシュ種別ごとにそれぞれ内蔵し、前記照合ハッシュ種別ごとにエントリ登録専用命令を当該特定用途向けプロセッサで実行することにより、当該照合ハッシュ種別と対応する前記レジスタファイルを介して、前記ハッシュ演算部で生成された当該照合ハッシュ種別のハッシュ値を前記照合データとして前記照合データ記憶部へ登録するようにしたものである。
【００１８】
また、本発明にかかる上記トラヒック走査装置の一構成例は、前記特定用途向けプロセッサは、前記照合ハッシュ種別ごとのレジスタファイルとして、登録する照合データのハッシュ種別を指定するためのハッシュ種別指定用レジスタ、当該照合データを保持するための照合データ保持用レジスタ、および当該照合データの登録先アドレスを保持するためのアドレス指定用レジスタを備えるものである。
【００１９】
また、本発明にかかる上記トラヒック走査装置の一構成例は、前記特定用途向けプロセッサは、前記照合データ記憶部で照合データ保持する照合データ用記憶空間の大きさを設定するためのメモリサイズ設定用レジスタを備え、前記エントリ登録部は、メモリサイズ設定専用命令を前記特定用途向けプロセッサで実行することにより、入力パラメータで指定されたメモリサイズを、前記メモリサイズ設定用レジスタを用いて前記照合データ用記憶空間の大きさを設定するようにしたものである。
【発明の効果】
【００２０】
本発明によれば、特定用途向けプロセッサにエントリ登録部を内蔵する構成をとることにより、エントリ登録専用命令が実行されて、任意のハッシュ種別に関するハッシュ値が、高々１０個程度の専用レジスタを介することにより、照合データとして照合データ記憶部へ登録される。
したがって、本実施の形態によれば、従来のようにハッシュ演算部の一時出力を受けるための多数のレジスタや巨大なセレクタ回路を必要とすることなく、また外部ＣＰＵを付加する構成と比較して、より小規模な回路でエントリ登録部を実現することができ、エントリ登録に要する回路規模を大幅に削減することができる。
【図面の簡単な説明】
【００２１】
【図１】第１の実施の形態にかかるトラヒック走査装置の構成を示すブロック図である。
【図２】一般的なＲＩＳＣプロセッサの構成を示すブロック図である。
【図３】エントリ登録処理を示すフローチャートである。
【図４】パターン照合処理および照合結果弁別処理を示すフローチャートである。
【図５】第１の実施の形態にかかる全体的なトラヒック走査方法を示す説明図である。
【図６】ハッシュ演算専用命令セットの具体的な構成を示す説明図である。
【図７】エントリ登録専用命令セットを示す説明図である。
【図８】エントリ登録専用命令による動作を示すミュレーション例である。
【図９】第２の実施の形態にかかるトラヒック走査装置の構成を示すブロック図である。
【図１０】第２の実施の形態にかかる全体的なトラヒック走査方法を示す説明図である。
【図１１】従来のハッシュ演算部の要部構成を示す説明図である。
【発明を実施するための形態】
【００２２】
次に、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
まず、図１を参照して、本発明の第１の実施の形態にかかるトラヒック走査装置１０について説明する。図１は、第１の実施の形態にかかるトラヒック走査装置の構成を示すブロック図である。
【００２３】
このトラヒック走査装置１０は、弁別条件として予め登録されたエントリパターンと、走査対象となる通信ネットワーク上のトラヒックのパケットから抽出したトラヒックパターンとをパターン照合することにより、これらパケットのデータが所定のデータ集合に属するか否かを弁別する機能を有している。本実施の形態では、これらエントリパターンのハッシュ値からなる照合データの登録に、ＲＩＳＣ（Reduced Instruction Set Computer：縮小命令セットコンピュータ）プロセッサなどの特定用途向けプロセッサ（ＡＳＩＰ：Application Specific Instruction Processor）を用いる点が特徴になる。
【００２４】
まず、本実施の形態にかかるトラヒック走査方法が前提とする一般的な特定用途向けプロセッサについて説明する。図２は、一般的なＲＩＳＣプロセッサの構成を示すブロック図である。このようなＲＩＳＣプロセッサの構成に対して、例えば特許文献１（構成可能な実行ユニットを有する高性能のハイブリッドプロセッサ）に開示されているＡＳＩＰ設計手法を適用することにより、特定用途向けの専用命令を実行するための演算ユニットないしレジスタを追加できることは、当業者であれば容易に理解することができる。
【００２５】
一般に、プロセッサが備えるロードストア命令はメモリおよびレジスタファイル間のデータ移動を伴うため、高性能な処理を指向する際に支配的なボトルネックとなる。本実施形態によれば、ＲＩＳＣプロセッサのパイプラインにおける実行ステージで結合された、算術論理演算ユニットおよびレジスタファイルを拡張してトラヒック走査専用命令を実行することができるため、一般的なＲＩＳＣプロセッサで多発するようなロードストア命令の発行を抑制することができる。
また、算術論理演算ユニット内部は、アプリケーション設計者が独自に走査処理の効率化を加味した命令および並列化論理を構成できるため、結果としてトラヒック走査に要する処理サイクル数を大幅に削減することができる。
【００２６】
次に、図１を参照して、本実施の形態にかかるトラヒック走査装置１０の構成について詳細に説明する。
図１に示すように、トラヒック走査装置１０には、主な機能部として、ハッシュ演算部１１、エントリ登録部１２、照合データ記憶部１３、走査パラメータ指定部１４、パターン照合部１５、照合結果弁別部１６、信号入出力部１７、および信号制御部１８が設けられている。
【００２７】
ハッシュ演算部１１は、エントリパターンまたはトラヒックパターンからなる検査キーデータの射像となるハッシュ値を生成する機能を有している。本実施の形態では、ハッシュ演算部１１を特定用途向けプロセッサに内蔵する構成を例として説明する。
【００２８】
エントリ登録部１２は、エントリパターンからなるキーをもとにハッシュ値の生成をハッシュ演算部１１に要求し、得られたハッシュ値をパターン照合時に陽性と判定される照合データとして照合データ記憶部１３に登録する機能を有している。本実施の形態は、エントリ登録部１２を特定用途向けプロセッサ内部に構成したものであり、詳細について後述する。この特定用途向けプロセッサは、ハッシュ演算部１１と兼用してもよく、別個に実装してもよい。
【００２９】
照合データ記憶部１３は、エントリ登録部１２により登録された各種照合データを記憶する機能を有している。
走査パラメータ指定部１４は、走査データ長や演算するハッシュ種別などの各種入力パラメータを、信号制御部１８の制御に基づいて予め静的に指定する機能を有している。指定した走査データ長に応じて、エントリ登録部１２およびパターン照合部１５のキー長が変更される。
【００３０】
パターン照合部１５は、走査対象となるトラヒックの各パケットから順次抽出したトラヒックパターンごとに、当該トラヒックパターンからなるキーをもとにハッシュ値の生成をハッシュ演算部１１に要求し、得られたハッシュ値と照合データ記憶部１３から読み出した照合データとを比較してパターン照合を行うことにより、各トラヒックパターンが目的のエントリパターンに合致するか否かを検査する機能とを有している。
【００３１】
照合結果弁別部１６は、パターン照合部１５でのパターン照合の結果、トラヒックパターンのハッシュ値のうちから照合データと一致する被疑パターンが検出された場合に、当該トラヒックパターンにかかるパケットのデータを陽性と弁別し、当該被疑パターンが検出されなかった場合に当該トラヒックパターンにかかるパケットのデータを陰性と弁別する機能を有している。
【００３２】
信号入出力部１７は、信号線Ｌを介して各機能部間においてトラヒックおよび各種値を転送する機能を有している。
信号制御部１８は、信号線Ｌを介して各機能部の値を設定し、動作命令全体を制御する機能を有している。各機能部のパラメータは、信号制御部１８により走査パラメータ指定部が制御され、図２の汎用レジスタにロードされる。
本実施の形態は、これらの機能部を用いて、所定の処理手順により、柔軟かつ高速にトラヒックを走査するようにしたものである。
本実施の形態では、エントリ登録部１２とハッシュ演算部１１の両方が、特定用途向けプロセッサから構成されている場合を例として説明する。
【００３３】
［第１の実施の形態の動作］
次に、図３〜図５を参照して、本実施の形態にかかるトラヒック走査装置１０の動作について説明する。図３は、エントリ登録処理を示すフローチャートである。図４は、パターン照合処理および照合結果弁別処理を示すフローチャートである。図５は、第１の実施の形態にかかる全体的なトラヒック走査方法を示す説明図である。
【００３４】
トラヒック走査装置１０では、対象となるトラヒックを走査する場合、まず、エントリ登録部１２によりエントリ登録処理を実行して、弁別条件であるエントリパターンの登録を行った後、パターン照合部１５によりパターン照合処理を実行して、登録済のエントリパターンとトラヒックのパケットから抽出したトラヒックパターンとのパターン照合を行うことにより、各パケットのデータが所定のデータ集合に属するか否かを弁別する。なお、照合に先だって、トラヒック走査装置１０の信号制御部１８は、走査データ長や演算するハッシュ種別が走査パラメータ指定部１４により予め静的に指定されているものとし、登録・照合時には、図２に示す一般的な汎用レジスタにそれらをロードした値を用いる構成をとる。
【００３５】
まず、図３を参照して、エントリ登録処理の全体的な流れについて説明する。
エントリ登録部１２は、まず、信号制御部１８の照合設定情報からハッシュ種別および走査データ長を取得するとともに（ステップ１００）、エントリパターンを取得する（ステップ１０１）。図５の例では、エントリパターンとして「１０１０１０１０」、「０１０１０１０１」、および「１１１１１１１１」という３つのエントリパターンが用いられている。
【００３６】
続いて、エントリ登録部１２は、これらエントリパターンに関するハッシュ値の生成をハッシュ演算部１１に要求する（ステップ１０２）。この際、ハッシュ演算部１１には、予めパターン照合に使用されうるハッシュ種別ごとにハッシュ演算専用命令が設けられており、エントリ登録部１２は、走査パラメータ指定部１４が指定するハッシュ種別のハッシュ演算専用命令を用いて、ハッシュ値を生成するよう要求する。
【００３７】
ハッシュ演算部１１は、指定されたハッシュ演算命令を特定用途向けプロセッサの内部に構成した専用の演算器およびレジスタで実行することにより、ハッシュ値ｈentryを生成して出力する。
図５の例では、ｓａｘ、ｓｄｂｍ、およびｂｅｒｎｓｔｅｉｎからなる３種類のハッシュ種別について、それぞれのハッシュ値を生成するためのハッシュ演算専用命令ｓａｘ＿ｈａｓｈ、ｓｄｂｍ＿ｈａｓｈ、およびｂｅｒｎｓｔｅｉｎ＿ｈａｓｈが、ハッシュ種別ごとに個別に設けられている。
【００３８】
したがって、これらハッシュ演算専用命令により、例えばエントリパターン「１０１０１０１０」をｋｅｙとして、照合ハッシュ種別として指定されたｓａｘ、ｓｄｂｍ、およびｂｅｒｎｓｔｅｉｎからなる異なる３種類のハッシュ演算が３回繰り返された後、１つのハッシュ値ｈentryが生成される。
【００３９】
エントリ登録部１２は、このようにしてハッシュ演算部１１で生成されたハッシュ値ｈentryを受け取り、これらハッシュ値ｈentryを、パターン照合時における陽性判定となる被疑パターンを示す照合データ（ｐｏｓｉｔｉｖｅ値）として照合データ記憶部１３にそれぞれ登録し（ステップ１０３）、一連のエントリ登録処理を終了する。
【００４０】
次に、図４を参照して、パターン照合処理の全体的な流れについて説明する。
パターン照合部１５は、まず、エントリ登録処理と同様にして、走査パラメータ指定部１４により信号制御部１８に指定された値からハッシュ種別および走査データ長を取得する（ステップ１１０）。
続いて、パターン照合部１５は、照合データ記憶部１３から前述したエントリ登録処理で予め登録されている照合データを取得する（ステップ１１１）。この照合データは、走査パラメータであるハッシュ種別および走査データ長に基づき生成されたものである。
【００４１】
次に、パターン照合部１５は、信号入出力部１７により、走査対象となるトラヒックからパケットバイパケットにトラヒックパターンを抽出し（ステップ１１２）、このトラヒックパターンに関するハッシュ値の生成をハッシュ演算部１１に要求する（ステップ１１３）。この際、パターン照合部１５は、エントリ登録処理１２と同様にして、ハッシュ演算部１１にハッシュ値の生成を要求する。
【００４２】
これにより、エントリ登録処理と同様にして、ハッシュ演算部１１により、照合ハッシュ種別および検査データ長に応じた１つのハッシュ値ｈcheckが生成される。
パターン照合部１５は、このようにしてハッシュ演算部１１で生成されたハッシュ値ｈcheckを受け取り、これらハッシュ値ｈcheckを、被疑パターンを示す照合データ（ｐｏｓｉｔｉｖｅ値）と照合する（ステップ１１４）。
【００４３】
この照合において、ハッシュ値ｈcheckと照合データとが一致せず、被疑パターンが検出されなかった場合（ステップ１１５：ＮＯ）、照合結果弁別部１６は、当該トラヒックパターンに関する照合結果が陰性であると判定し（ステップ１１６）、ステップ１１２へ移行して新たなパケットに関するパターン照合を開始する。
【００４４】
一方、ハッシュ値ｈcheckと照合データとが一致し、被疑パターンが検出された場合（ステップ１１５：ＹＥＳ）、照合結果弁別部１６は、当該トラヒックパターンに関する照合結果が陽性であると判定し（ステップ１１７）、ステップ１１２へ移行して新たなパケットに関するパターン照合を繰り返す。当該装置の利用者が照合プログラムの停止を指示するとき、一連のパターン照合処理を終了する。
これにより、被疑パターンを検出でき、信号制御部１８を用いて該当トラヒックの分離や遮断、規制、廃棄等の制御を行うことができる。
【００４５】
［ハッシュ演算部の詳細］
次に、図５を参照して、本実施の形態にかかるハッシュ演算部１１の詳細を説明する。
通信トラヒックの走査において目的とするトラヒックパターンを検出するため、弁別条件として、予め検出したいパターンを示すエントリパターンを、エントリ登録部１２により照合データ記憶部１３に登録しておく必要がある。この際、登録できるエントリパターンの数は実装するプロセッサ、論理回路およびシステムによって区々であるが、エントリパターン数ｎと記憶空間上のハッシュテーブルのサイズｍが決定しているとき、偽陽性確率ｐを最小化できるようなハッシュ演算数ｋが定式化され、広く知られている。非特許文献１および非特許文献２に詳述されているため、詳細は割愛するが、関係式は次の式（１）の通りである。また、偽陽性確率ｐは次の式（２）のようになる。
【００４６】
【数１】
0005952240.tif 000002
【００４７】
【数２】
0005952240.tif 000003
【００４８】
ブルームフィルタを用いることにより、照合データ（ｐｏｓｉｔｉｖｅ値）中に偽陽性確率ｐの分だけ、擬陽性（ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ）が生じることを許容することにより、記憶空間の効率（ｍ／ｎ）を高めながらハッシュ演算量ｋを決めることができる。ただし、非特許文献１および非特許文献２に示されているブルームフィルタによれば、エントリパターンの登録はできても削除ができない。このため、エントリパターンの登録数ｎが増えるにしたがってハッシュテーブルサイズｍが大きくなり、偽陽性確率ｐが増えてしまうという課題がある。
【００４９】
このような課題に関する対処手法も広く知られており、ＣＢＦ（Counting Bloom Filter）と呼ばれる。オリジナルのブルームフィルタにおけるハッシュテーブルの最小構成要素が１ビットのメモリであるのに対し、ＣＢＦは数ビットに拡張してカウンタを構成し、カウンタをインクリメントおよびデクリメントすることによりエントリの削除ができるように拡張したデータ構造を有している。非特許文献３は、通信トラヒックのデータ内部の走査とは異なるアプリケーションであるが、パケットのヘッダ部分を最長一致検索する際にＣＢＦを応用している。
【００５０】
説明を簡略化するため、図５に例示したトラヒック走査方法において、ブルームフィルタをＣＢＦにした場合のエントリの削除手段については図示していない。ただし、当業者であれば容易にエントリの削除手段の実装方法を着想することができるため、本実施の形態にかかるエントリ登録部１２および照合データ記憶部１３は、エントリの削除に対応することを含意する。
【００５１】
ハッシュ演算部１１は、エントリ登録部１２から入力されたエントリパターンの値をキーとして、単一種類のハッシュ演算手順をｋ回繰り返す。あるいは、複数種類のハッシュ演算手順を組み合わせてｋ回演算してもよい。いずれにせよ、入力されたエントリパターンに対し、射影関係となるハッシュ値を１つ生成し、エントリ登録部１２に出力する機能を持つ。
【００５２】
一方、パターン照合部１５から入力されたトラヒックパターンについて、エントリパターンに対応する長さのフィールドの値をキーとして、単一種類のハッシュ演算手順をｋ回繰り返す。あるいは、複数種類のハッシュ演算を組み合わせてｋ回演算してもよい。いずれにせよ、入力されたトラヒックパターンに対して射影関係となるハッシュ値を生成し、パターン照合部１５に出力する機能を持つ。
【００５３】
ハッシュ値の演算手順に関しては、アルゴリズム単体でも数十種類の方式があるため、本実施の形態では、図５に示すよう、ｓａｘ＿ｈａｓｈ，ｓｄｂｍ＿ｈａｓｈ，ｂｅｒｎｓｔｅｉｎ＿ｈａｓｈからなる３種類のハッシュ演算アルゴリズムを例として用いる。ハッシュ演算専用の命令セットを構成する際には、もちろん３種類のみに限定されるものではなく、他の方式を採用することによりハッシュ値の分散特性を改善させることができ、偽陽性確率ｐの低減に繋がる。本実施の形態では、例として３種類のハッシュ演算手順を組み合わせてｈentryおよびｈcheckを求めている。
【００５４】
図６は、ハッシュ演算専用命令セットの具体構成を示す説明図である。ここでは、専用命令ごとに、当該処理を実現するハッシュ演算用回路の基本構成例が示されている。命令フォーマットのビット幅は一般的には３２ビット長であることが多いが、選択するＡＳＩＰ設計技術によって１６ビットや２４ビットなど複数の実装解があり得る。選択したＡＳＩＰ設計技術が提供する専用言語を用いて図６に示すハッシュ演算回路を記述する。尚、演算ハッシュ種別および走査データ長は、走査パラメータ指定部１４により図２の汎用レジスタにロードされた値が用いられる。
【００５５】
図６において、機械語へのマッピングを担う命令は、ｓａｘ＿ｈａｓｈ，ｓｄｂｍ＿ｈａｓｈ，ｂｅｒｎｓｔｅｉｎ＿ｈａｓｈである。各ハッシュ演算用回路では、入力レジスタファイルから各々３２ビットのキー（ｋｅｙ）および暫定ハッシュ値（ｈ）を取得し、所定の手順を経て最終的にはｈentryおよびｈcheckとして用いられるハッシュ値を出力レジスタファイルに出力する。
【００５６】
［エントリ登録部］
次に、図７を参照して、本実施の形態にかかるエントリ登録部１２の詳細を説明する。図７は、エントリ登録専用命令セットを示す説明図である。
本実施の形態にかかるエントリ登録部１２は、パターン照合に用いるハッシュ種別ごとに、エントリ登録専用の命令セットを備えている。
【００５７】
図７の例では、前述したｓａｘ＿ｈａｓｈ，ｓｄｂｍ＿ｈａｓｈ，ｂｅｒｎｓｔｅｉｎ＿ｈａｓｈからなる３種類のハッシュ種別ごとに、ｓａｘ＿ｓｅｔ＿ｂｉｔ，ｓｄｂｍ＿ｓｅｔ＿ｂｉｔ，ｂｅｒｎｓｔｅｉｎ＿ｓｅｔ＿ｂｉｔからなる専用命令が設けられており、これら専用命令ごとに、当該専用命令を備える対応機能部、当該専用命令の拡張レジスタファイル構成、当該レジスタファイルのビット幅、および当該レジスタファイルに対する外部アクセスの可否が示されている。
【００５８】
これらのビット操作命令は、図６に示すように、各々独立した３２ビットの拡張レジスタファイルを有する。これらはエントリ登録部１２だけでなく、ハッシュ演算部１１からもアクセスされるため、エントリ登録時の利用に限定されるものではなく、パターン照合部１５においても間接的に利用される。
【００５９】
照合データ記憶部１３に登録する照合データのハッシュ種別を指定するためのハッシュ種別指定用レジスタＥｘ＿ｈａｓｈ＿ｓｅｌは、ｓａｘ，ｓｄｂｍ，ｂｅｒｎｓｔｅｉｎ各々について利用され、プログラムにより切り替えるため、外部アクセス可能となっている。照合データ記憶部１３に登録する照合データを保持するための照合データ保持用レジスタＥｘ＿ｓａｘ＿ｈａｓｈ＿ｂｉｔ、Ｅｘ＿ｓｄｂｍ＿ｈａｓｈ＿ｂｉｔ、Ｅｘ＿ｂｅｒｎｓｔｅｉｎ＿ｈａｓｈ＿ｂｉｔ、および、照合データ記憶部１３における照合データ登録先アドレスを保持するためのアドレス指定用レジスタＥｘ＿ｓａｘ＿ｈａｓｈ＿ａｄｄｒ、Ｅｘ＿ｓｄｂｍ＿ｈａｓｈ＿ａｄｄｒ、Ｅｘ＿ｂｅｒｎｓｔｅｉｎ＿ｈａｓｈ＿ａｄｄｒは内部レジスタであり、プログラムからの直接アクセスはできない。
【００６０】
これらエントリ登録専用命令は、それぞれのレジスタを用いて、ハッシュ演算部１１で生成された各ハッシュ値のうちから、自己の命令と対応するハッシュ種別のハッシュ値を選択し、照合データとして照合データ記憶部１３へ登録する。
図８は、エントリ登録専用命令による動作を示すミュレーション例である。ここでは、ハッシュ演算部およびエントリ登録部の各命令の動作関係について、１０００件のエントリを登録した場合のシミュレーション結果が示されている。
【００６１】
これらエントリ登録専用命令は、エントリパターン登録の都度、独立並行にレジスタアクセスおよびメモリのロードストアを実施する。
命令の起動順序は、各ハッシュ演算専用命令の実行直後にエントリ登録専用命令がハッシュ演算種別ごとに起動される。つまり、ｓａｘ＿ｈａｓｈとｓａｘ＿ｓｅｔ＿ｂｉｔを実行後、ｓｄｂｍ＿ｈａｓｈとｓｄｂｍ＿ｓｅｔ＿ｂｉｔを実行し、最後にｂｅｒｎｓｔｅｉｎ＿ｈａｓｈとｂｅｒｎｓｔｅｉｎ＿ｓｅｔ＿ｂｉｔを実行する。これらの専用命令は、Ｃ言語等の高級言語で実装されたエントリ登録用の関数から、組み込み関数として起動することができる。
【００６２】
また、図７には、照合データ記憶専用命令であるｓｅｔ＿ｓｉｚｅについても示されている。照合データ記憶部１３は、ブルームフィルタにおける陽性の照合データを保持する記憶空間の大きさを規定するため、３２ビットの拡張レジスタファイルＥｘ＿ｂｌｏｏｍ＿ｓｉｚｅを有する。このレジスタは、外部アクセスが可能なため、ハードウェアとして別途指定したメモリ容量の範囲内で、プログラム側から照合データ記憶専用命令であるｓｅｔ＿ｓｉｚｅにより、予め記憶空間の大きさを任意に設定することができる。
【００６３】
以下は、例示であって限定するものではないが、本実施形態においては２５６Ｋｂｉｔ×８を指定し、１０００件の固定長エントリを登録後、５００００件のパケットデータを用いたシミュレーションを実施したところ、偽陽性出現率は０であった。いずれにせよ、偽陽性確率ｐおよびハッシュテーブルのサイズｍを考慮の上、Ｅｘ＿ｂｌｏｏｍ＿ｓｉｚｅを決定すればよい。命令の起動順序としては、ブルームフィルタの構築時にｓｅｔ＿ｓｉｚｅ命令が起動され、レジスタＥｘ＿ｂｌｏｏｍ＿ｓｉｚｅの初期設定を実施する。
【００６４】
図６の各レジスタファイルを追加することによるハードウェア規模の増加率は、全体の１０％程度に抑えることができるため、効率的なエントリ登録および照合データ記憶が可能となっている。
【００６５】
以下、本発明のトラヒック走査方法における、エントリ登録部１２以降の処理動作について説明する。
エントリ登録部１２に入力されたｈentryは、エントリパターンがハッシュ値に射影された縮約表現と見なすことができ、トラヒックパターン照合時に陽性を示すための照合データ、すなわちｐｏｓｉｔｉｖｅ値となる。エントリ登録部１２は、この照合データをビット操作により照合データ記憶部１３に登録する。
【００６６】
パターン照合部１５は、走査対象となるトラヒックからパケットバイパケットに抽出したトラヒックパターンのうち、エントリパターンに対応するフィールドの値をキーとして指定してハッシュ演算部１１にハッシュ値の生成を要求し、演算結果としてハッシュ値ｈcheckを得る。
照合結果弁別部１６は、このｈcheckを照合データ記憶部１３から読み出した照合データと比較照合した結果、陽性と判別された場合、被疑パターンの検出を完了し、信号制御部１８を用いてトラヒックの分離や遮断、規制、廃棄等の制御を行うことができる。
【００６７】
エントリパターンに該当列が存在していることから陽性判定は明らかであるが、図５では簡単のため「Ｆｉｅｌｄ  ”１０１０１０１０”  ｉｓ  ｐｒｏｂａｂｌｙ  ａ  ｍｅｍｂｅｒ．」と表記している。実際にそのようなメッセージが出力されるとは限らない。ただし、本実施例では偽陽性無しの真の陽性と判別されているが、ブルームフィルタの原理として、あくまでも該当列が存在している「可能性がある」ことだけが分かる。つまり、偽陽性（ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ）が含まれる可能性もある。
【００６８】
一方、陰性の場合は、被疑パターンの検出無しを意味する「Ｆｉｅｌｄ“１１１０１１１０”ｉｓ  ｄｅｆｉｎｉｔｅｌｙ  ｎｏｔ  ａ  ｍｅｍｂｅｒ．」と表記している。この場合、ブルームフィルタの原理より、被疑パターンはエントリの集合には絶対に存在しないことが分かる。すなわち、偽陰性（ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ）の可能性は一切ない。そのため、陰性のトラヒックは信号制御部１８を用いて透過する等の制御を実施することができる。
【００６９】
［第１の実施の形態の効果］
このように、本実施の形態は、エントリ登録部１２を特定用途向けプロセッサにより構成するとともに、この特定用途向けプロセッサに、照合データ記憶部１３への照合データの登録に用いるレジスタファイルを、パターン照合に用いる照合ハッシュ種別ごとにそれぞれ内蔵し、この特定用途向けプロセッサで、照合ハッシュ種別ごとに設けたエントリ登録専用命令を実行することにより、当該照合ハッシュ種別と対応するレジスタファイルを介して、ハッシュ演算部１１で生成された当該照合ハッシュ種別のハッシュ値を照合データとして照合データ記憶部１３へ登録するようにしたものである。
【００７０】
この際、より具体的には、特定用途向けプロセッサに、照合ハッシュ種別ごとのレジスタファイルとして、登録する照合データのハッシュ種別を指定するためのハッシュ種別指定用レジスタ、当該照合データを保持するための照合データ保持用レジスタ、および当該照合データの登録先アドレスを保持するためのアドレス指定用レジスタを備えるようにしたものである。
【００７１】
これにより、特定用途向けプロセッサに内蔵するエントリ登録部１２において、エントリ登録専用命令が実行されて、任意のハッシュ種別に関するハッシュ値が、高々１０個程度の専用レジスタを介することにより、照合データとして照合データ記憶部１３へ登録される。
したがって、本実施の形態によれば、従来のようにハッシュ演算部の一時出力を受けるための多数のレジスタや巨大なセレクタ回路を必要とすることなく、また外部ＣＰＵを付加する構成と比較して、より小規模な回路でエントリ登録部を実現することができ、エントリ登録に要する回路規模を大幅に削減することができる。
【００７２】
また、本実施の形態において、エントリ登録部１２の特定用途向けプロセッサに、照合データ記憶部１３で照合データ保持する照合データ用記憶空間の大きさを設定するためのメモリサイズ設定用レジスタを設け、メモリサイズ設定専用命令を特定用途向けプロセッサで実行することにより、入力パラメータで指定されたメモリサイズを、メモリサイズ設定用レジスタを介して照合データ用記憶空間の大きさを設定するようにしてもよい。
これにより、ハードウェアとして別途指定したメモリ容量の範囲内で、プログラム側からメモリサイズ設定専用命令により、記憶空間の大きさを任意に設定できるため、所望の擬陽性確率でトラヒック走査を実行することができる。
【００７３】
また、本実施の形態において、ハッシュ演算部１１を特定用途向けプロセッサにより構成するとともに、この特定用途向けプロセッサに、特定の照合ハッシュ種別に関するハッシュ演算手順を実行することにより当該照合ハッシュ種別に関するハッシュ値を算出するハッシュ演算用回路を、パターン照合に用いる照合ハッシュ種別ごとにそれぞれ内蔵し、この特定用途向けプロセッサで、照合ハッシュ種別ごとに設けたハッシュ演算専用命令を実行することにより、入力パラメータとして指定されたキーおよび検査データ長に基づいて当該ハッシュ演算用回路の動作を制御して、当該照合ハッシュ種別のハッシュ値を生成して出力するようにしてもよい。
【００７４】
これにより、特定用途向けプロセッサからなるハッシュ演算部１１において、ハッシュ演算専用命令が実行されて、ハッシュ種別ごとに１つずつ設けられているハッシュ演算用回路で、任意のハッシュ種別および検査データ長に関するハッシュ値が生成される。したがって、従来技術のように、ハッシュ種別ごとのブルームフィルタを検査データ長ごとに別個に設ける必要がなくなるため、本実施の形態によれば、ハッシュ演算に要する回路規模を大幅に削減することができる。
【００７５】
このため、ハッシュ種別数をＮｈとしデータ長をＷとするとき、従来のハッシュ演算部に備えるべきブルームフィルタの数は、おおよそＮｈ×Ｗ個（ただし、Ｗ＝通常時〜１５００、最悪の場合１６０００）であったのに対し、本発明によればＮｈ×Ｗ個（ただし、Ｗ＝数個）で構成することができる。したがって、９０００バイトや１６０００バイトのデータ長を有する、いわゆるジャンボフレームと呼ばれるパケットを弁別対象とする場合でも、１５００バイトのデータ長を有する標準的なパケットと同様、ハッシュ種別ごとに１つずつ設けた少数のハッシュ演算用回路で対応することができ、極めて高い実装効率を実現することが可能となる。
【００７６】
［第２の実施の形態］
次に、図９を参照して、本発明の第２の実施の形態にかかるトラヒック走査装置１０について説明する。図９は、第２の実施の形態にかかるトラヒック走査装置の構成を示すブロック図である。
第１の実施の形態と比較して、本実施の形態にかかるトラヒック走査装置１０には、走査パラメータ指定部１４に代えて、走査ウィンドウ設定部１９が追加されている。
【００７７】
走査ウィンドウ設定部１９は、パターン照合部１５において、トラヒックパターンのハッシュ値と、照合データ記憶部１３から読み出した照合データ（ｐｏｓｉｔｉｖｅ値）とをパターン照合する際、予め登録されているプログラムに従って、プログラムに従って、演算するハッシュ種別（アルゴリズム）や走査位置（オフセット）および走査データ長（マスク）を動的に変更する機能を有している。
【００７８】
図１０は、第２の実施の形態にかかる全体的なトラヒック走査方法を示す説明図である。
走査ウィンドウ設定部１９は、前述したアルゴリズムやオフセットおよびマスクを、対応する各機能部に指定する。
これに応じて、パターン照合部１５は、ハッシュ値および照合データの全ビットをパターン照合するのではなく、プログラムで指定された走査ウィンドウ内のビットについてのみパターン照合する。このため、走査ウィンドウ設定部１９によりマスクされたビット部分については、パターン照合されなくなる。
【００７９】
また、被疑パターンが検出されて、照合結果が陽性であると判定されるまでの一連のパターン照合処理において、処理の途中で走査位置および走査データ長を変更することができる。
したがって、トラヒック走査パラメータを動的に調整することが可能となり、極めて柔軟性の高いトラヒック走査を実現することが可能となる。
【００８０】
また、従来技術のようにハードウェアからなるブルームフィルタを並列に配置する構成では、所望の検査データ長を設定する方法として、対応するレジスタを制御ＣＰＵ等を用いて直接再指定するなどの対応が考えられるが、柔軟性が高い構成とは言い難い。本実施の形態によれば、ハッシュ種別やマスク、オフセット等のパラメータを走査ウィンドウ設定部１９で動的に変更することができ、極めて柔軟性の高い構成を実現することが可能となる。
【００８１】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【００８２】
以上、実施の形態の説明において「〜部」と記載した各機能部については、「〜手段」、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜処理」であってもよい。
【００８３】
また、本実施の形態で示した従来技術に比べて極めてコンパクトな回路構成による走査処理の効率性、およびプログラムによるトラヒック走査設定の柔軟性の両立を可能とするような命令セットを、特定用途向けプロセッサが具備する構成を最良の形態と見なしているものの、「〜部」と記載した各機能部は、ＲＯＭに記憶されたファームウェアおよび再構成型デバイス・素子・基板・配線などのハードウェアで実現されていても構わない。
【００８４】
また、各機能部は、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵにより読み出されて実行される。すなわち、プログラムは、本実施の形態にかかる各機能部としてコンピュータを機能させるものである。あるいは、各機能部の手順や方法をコンピュータに実行させるものである。
【符号の説明】
【００８５】
１０…トラヒック走査装置、１１…ハッシュ演算部、１２…エントリ登録部、１３…照合データ記憶部、１４…走査パラメータ設定部、１５…パターン照合部、１６…照合結果弁別部、１７…信号入出力部、１８…信号制御部、１９…走査ウィンドウ設定部、Ｌ…信号線。
【図１】
0005952240.tif 000004
【図２】
0005952240.tif 000005
【図３】
0005952240.tif 000006
【図４】
0005952240.tif 000007
【図５】
0005952240.tif 000008
【図６】
0005952240.tif 000009
【図７】
0005952240.tif 000010
【図８】
0005952240.tif 000011
【図９】
0005952240.tif 000012
【図１０】
0005952240.tif 000013
【図１１】
0005952240.tif 000014