ターゲットデータを構成する複数のサブデータのうち、少なくとも一つのサブデータを予め格納されたパターンデータとマッチングさせるサブパターンマッチングステップと、前記サブパターンマッチング結果を参照して、前記ターゲットデータと前記予め格納されたパターンデータとが一致するか否かを判断するフルパターンマッチングステップとを含み、前記フルパターンマッチングステップは、前記パターンデータの種類によって行われるか、又は行われないことを特徴とするパターンマッチング方法。前記予め格納されたパターンデータの種類を決定するステップをさらに含み、前記サブデータとマッチングされた前記予め格納されたパターンデータが文法的に簡単なパターンである場合と判断された場合には、前記フルパターンマッチングステップを行わないことを特徴とする請求項1に記載のパターンマッチング方法。前記予め格納されたパターンデータの種類を決定するステップをさらに含み、前記サブパターンマッチングステップのマッチング結果、前記サブデータとマッチングされた前記予め格納されたパターンデータが文法的に複雑なパターンの一部と判断された場合には、前記サブパターンマッチングステップのマッチング結果をサブパターンマトリクスに記録することを特徴とする請求項1に記載のパターンマッチング方法。前記フルパターンマッチングステップは、前記サブパターンマッチング動作が前記サブパターンマトリクスに含まれたすべてのサブパターンをマッチングさせたか否かを確認するステップであることを特徴とする請求項3に記載のパターンマッチング方法。前記サブパターンマッチングステップの結果をサブパターンマトリクスに記録するステップをさらに含み、前記フルパターンマッチングステップは、前記パターンマッチング動作が前記サブパターンマトリクスに含まれたすべてのサブパターンをマッチングさせたか否かを確認するステップであることを特徴とする請求項1に記載のパターンマッチング方法。前記サブパターンマッチングステップは、前記一つのサブデータの一部と前記予め格納されたパターンデータをマッチングさせるライトLightパターンマッチングステップと、前記一つのサブデータの一部が前記予め格納されたパターンと一致するか、又は前記予め格納されたパターンに含まれた場合、前記一つのサブデータの全体と前記ライトパターンマッチングされたパターンデータ全体をマッチングさせる精密パターンマッチングステップとを含む請求項1に記載のパターンマッチング方法。前記一つのサブデータの一部は、前記サブデータの最初値、中間値、及び最後値のうち、少なくとも何れか一つであることを特徴とする請求項6に記載のパターンマッチング方法。ハッシュhash値が記載されるハッシュ値項目と、前記予め格納されたパターンデータが記載される項目とを含むハッシュマッチャーテーブル又は前記ハッシュ値が記載されるハッシュ値項目と、前記予め格納されたパターンデータのハッシュ値と前記ハッシュ値項目に記載されたハッシュ値との一致有無を表す項目とを含むハッシュマッチャーテーブルを構成することを特徴とする請求項1に記載のパターンマッチング方法。前記ハッシュ値が記載されるハッシュ値項目、前記ハッシュ値項目に記載されたハッシュ値に対応するパターンデータが記載されるパターンデータ項目とを含むサブマッチャーテーブルを構成するサブマッチャーテーブル構成ステップをさらに含むことを特徴とする請求項8に記載のパターンマッチング方法。前記サブマッチャーテーブルは、前記予め格納されたパターンデータの中間値を記載する中間値項目と、最後値を記載する最後値項目とをさらに含むことを特徴とする請求項9に記載のパターンマッチング方法。前記パターンデータ項目には、前記予め格納されたパターンデータが格納されたアドレス又は前記予め格納されたパターンデータが記載されることを特徴とする請求項9に記載のパターンマッチング方法。前記サブマッチャーテーブルは、前記予め格納されたパターンデータのハッシュ値のうちの何れか一つと、前記予め格納されたパターンデータの残りのハッシュ値とが互いに衝突されるか否かを表す衝突パターンのオフセット値を記載する衝突パターンオフセット項目をさらに含むことを特徴とする請求項9に記載のパターンマッチング方法。前記予め格納されたパターンデータのハッシュ値が前記予め格納されたパターンデータの残りのハッシュ値と互いに衝突された場合、前記衝突パターンオフセット項目には、前記ハッシュ値項目に記載された値のうち、何れか一つの値が記載されることを特徴とする請求項12に記載のパターンマッチング方法。前記一つのサブデータのハッシュ値を生成するステップと、前記一つのサブデータのハッシュ値を前記ハッシュマッチャーテーブルに存在する一つのサブデータと比較するステップとをさらに含み、前記サブパターンマッチングステップは、前記一つのサブデータのハッシュ値が前記ハッシュマッチャーテーブルに存在する場合にのみ行われることを特徴とする請求項7に記載のパターンマッチング方法。前記サブパターンマッチングステップは、前記サブマッチャーテーブルのハッシュ値項目に記載されたハッシュ値のうち、前記一つのサブデータのハッシュ値と一致するハッシュ値を検索するステップと、前記検索されたハッシュ値に対応するパターンデータと、前記一つのサブデータとを比較するステップとを含むことを特徴とする請求項9に記載のパターンマッチング方法。前記比較するステップは、前記サブデータの一部と前記パターンデータとをマッチングさせるライトパターンマッチングステップと、前記一つのサブデータの一部が、前記予め格納されたパターンデータと同一であるか、又は前記予め格納されたパターンデータに含まれた場合にのみ、前記つのサブデータの全体と、前記予め格納されたパターンデータとをマッチングさせる精密パターンマッチングステップとを含むことを特徴とする請求項15に記載のパターンマッチング方法。前記サブマッチャーテーブルは、前記予め格納されたパターンデータのハッシュ値のうちの何れか一つが予め格納されたパターンデータのハッシュ値のうち、残りの一つと互いに衝突されるか否かを表す衝突パターンのオフセット値を記載する衝突パターンオフセット項目をさらに含み、衝突パターンオフセット項目にオフセット値が存在すると、そのオフセット値が表すパターンデータと前記一つのサブデータとを比較するステップをさらに含むことを特徴とする請求項15に記載のパターンマッチング方法。ターゲットデータを構成する複数のサブデータのうち、何れか一つのサブデータの一部と予め格納されたパターンデータベースのパターンデータとをマッチングさせるライトパターンマッチングステップと、前記一つのサブデータの一部が前記パターンデータと同一であるか、又は前記パターンデータに含まれる場合、前記サブデータの全体と前記ライトパターンマッチングが成功したパターンデータとをマッチングさせる精密パターンマッチングステップとを含むパターンマッチング方法。ハッシュ値が記載されるハッシュ値項目と、前記パターンデータベースのパターンデータが記載される項目を含むハッシュマッチャーテーブル、又はハッシュ値が記載されるハッシュ値項目と、前記パターンデータベースのパターンデータのハッシュ値と前記ハッシュ値項目に記載されたハッシュ値とが一致しているか否かを表す項目を含むハッシュマッチャーテーブルを構成するステップをさらに含むことを特徴とする請求項18に記載のパターンマッチング方法。前記ハッシュ値が記載されるハッシュ値項目、前記ハッシュ値項目に記載されたハッシュ値に対応するパターンデータが記載されるパターンデータ項目を含むサブマッチャーテーブルを構成するステップをさらに含むことを特徴とする請求項18に記載のパターンマッチング方法。前記サブマッチャーテーブルは、前記パターンデータのハッシュ値が互いに衝突されるか否かを表す衝突パターンのオフセット値を記載する衝突パターンオフセット項目をさらに含むことを特徴とする請求項20に記載のパターンマッチング方法。パターンデータに対するハッシュ値を含むハッシュマッチャーテーブルを格納する格納部と、前記ハッシュマッチャーテーブルと、ターゲットデータを構成する複数のサブデータのうち、少なくとも一つのサブデータのハッシュ値をマッチングするハッシュ値マッチング部と、前記サブデータのハッシュ値とマッチングされたパターンデータと、前記一つのサブデータとをマッチングするサブパターンマッチング部とを備えることを特徴とするパターンマッチングシステム。前記サブパターンマッチング部は、前記サブマッチャーテーブルと前記一つのサブデータの一部とをマッチングさせうるライトパターンマッチング部と、前記一つのサブデータが前記サブマッチャーテーブルのものと同一であると、前記サブデータ全体と前記パターンデータとをマッチングする精密パターンマッチング部とを備えることを特徴とする請求項22に記載のパターンマッチングシステム。前記ハッシュマッチャーテーブルに含まれたハッシュ値を生成するパターンハッシュ値生成器をさらに備えることを特徴とする請求項23に記載のパターンマッチングシステム。前記サブパターンマッチング部のマッチング結果を参照して、前記ターゲットデータと前記パターンデータとをマッチングさせうるフルパターンマッチング部をさらに備えることを特徴とする請求項22に記載のパターンマッチングシステム。決定部をさらに備え、前記決定部は、前記サブパターンマッチング部の動作以後、前記一つのサブデータのハッシュ値とマッチングされたパターンデータと前記一つのサブデータとが一致すると、前記フルパターンマッチング部を動作せず、前記ターゲットデータにパターンデータが含まれていると判断することを特徴とする請求項25に記載のパターンマッチングシステム。ターゲットデータを構成する複数のサブデータのうち、少なくとも一つのサブデータを予め格納されたパターンデータとマッチングさせるサブパターンマッチング部と、前記ターゲットデータを予め格納されたパターンデータ全体とマッチングさせうるフルパターンマッチング部と、前記予め格納されたパターンデータの種類に応じて前記フルパターンマッチング部の動作有無を決定する決定部とを備えることを特徴とするパターンマッチングシステム。前記予め格納されたパターンの種類は、文法的に決まった複雑なパターン又は文法的に決まった簡単なパターンであることを特徴とする請求項27に記載のパターンマッチングシステム。前記決定部は、前記予め決定されたパターンデータの種類が前記文法的に決まった簡単なパターンのデータである場合、前記フルパターンマッチング部を動作させないことを特徴とする請求項28に記載のパターンマッチングシステム。前記決定部は、前記予め決定されたパターンデータの種類が前記文法的に決まった複雑なパターンのデータである場合、前記サブパターンマッチング部の動作以後、前記フルパターンマッチング部が動作するようにすることを特徴とする請求項29に記載のパターンマッチングシステム。本発明の実施の形態によれば、文法的に複雑であるか、又は単純な多様なマルウェアパターンに対して、速かにパターンマッチング動作を行うことができるパターンマッチング方法及びシステムを提供することを目的とする。本発明の実施の形態によれば、パターンマッチングの対象になるターゲットデータが大きくなっても、ハッシュマッチングとサブマッチングが成功した場合にのみフルマッチングを行うので、依然として速かにパターンマッチング動作を行うことができるパターンマッチング方法及びシステムを提供することを一つの目的とする。上記の目的を達成すべく、本発明の一実施の形態によれば、ターゲットデータを構成する複数のサブデータのうち、少なくとも一つのサブデータを予め格納されたパターンデータとマッチングさせるサブパターンマッチングステップと、前記サブパターンマッチング結果を参照して、前記ターゲットデータと前記予め格納されたパターンデータとが一致するか否かを判断するフルパターンマッチングステップとを含み、前記フルパターンマッチングステップは、前記パターンデータの種類によって行われるか、又は行われないことを特徴とするパターンマッチング方法が提供される。また、本発明の他の実施の形態によれば、ターゲットデータを構成する複数のサブデータのうち、何れか一つのサブデータの一部と予め格納されたパターンデータベースのパターンデータとをマッチングさせるライトパターンマッチングステップと、前記一つのサブデータの一部が前記パターンデータと同一であるか、又は前記パターンデータに含まれる場合、前記サブデータの全体と前記ライトパターンマッチングが成功したパターンデータとをマッチングさせる精密パターンマッチングステップとを含むパターンマッチング方法が提供される。また、本発明の他の実施の形態によれば、パターンデータに対するハッシュ値を含むハッシュマッチャーテーブルを格納する格納部と、前記ハッシュマッチャーテーブルと、ターゲットデータを構成する複数のサブデータのうち、少なくとも一つのサブデータのハッシュ値をマッチングするハッシュ値マッチング部と、前記サブデータのハッシュ値とマッチングされたパターンデータと、前記一つのサブデータとをマッチングするサブパターンマッチング部とを備えることを特徴とするパターンマッチングシステムが提供される。また、本発明の他の実施の形態によれば、ターゲットデータを構成する複数のサブデータのうち、少なくとも一つのサブデータを予め格納されたパターンデータとマッチングさせるサブパターンマッチング部と、前記ターゲットデータを予め格納されたパターンデータ全体とマッチングさせうるフルパターンマッチング部と、前記予め格納されたパターンデータの種類に応じて前記フルパターンマッチング部の動作有無を決定する決定部とを備えることを特徴とするパターンマッチングシステムが提供される。本発明の一実施の形態によれば、文法的に複雑であるか、又は単純な多様なマルウェアパターンに対して、速かにパターンマッチング動作を行うことができる。本発明の一実施の形態によれば、パターンマッチングの対象になるターゲットデータが大きくなっても、ハッシュマッチングとサブマッチングが成功した場合にのみフルマッチングを行うので、依然として速かにパターンマッチング動作を行うことができる。本発明の一実施の形態によれば、SOCの形態でもパターンマッチングシステムの具現が可能なので、速度やバッテリーに制限のあるモバイルデバイスのリソース問題を解決することができる。以上の本発明の目的、他の目的、特徴及び利点は、添付された図面と関連した以下の好ましい実施の形態により容易に理解されるはずである。しかしながら、本発明は、ここで説明される実施の形態に限定されずに他の形態で具体化されることもできる。むしろ、ここで紹介される実施の形態は、開示された内容が徹底かつ完全になるように、そして当業者に本発明の思想を十分に伝達させるために提供されることである。本明細書において、ある構成要素が他の構成要素上にあると言及される場合に、それは、他の構成要素上に直接形成されうるか、又はそれらの間に第3の構成要素が介在されうることを意味する。本明細書で使用された用語は、実施の形態を説明するためのもので、本発明を制限しようとするものではない。本明細書において、単数型は、特に言及しない限り、複数型も含む。明細書で使用される含むcomprises及び/又は含むcomprisingと言及された構成要素は、一つ以上の他の構成要素の存在又は追加を排除しない。以下、図面を参照して本発明を詳細に説明する。以下の特定実施の形態を述べるにおいて、色々な特定な内容は、発明をさらに具体的に説明し理解を助けるために作成された。しかしながら、本発明を理解することができる程度のこの分野における知識を有した読者は、このような色々な特定な内容がなくても使用されうることを認知できる。ある場合には、発明を述べるにおいて周知で発明と大きく関連のない部分は、本発明を説明するにおいて特別な理由なしで混乱を引き起こすことを防止するために述べないことを予め言及しておく。図1は、本発明の一実施の形態にかかるパターンマッチングシステムのブロック図で、図2は、図1に示す格納部の構成を示した図である。図1に示すように、本発明の一実施の形態にかかるパターンマッチングシステムは、決定部10、サブパターンsubpatternマッチング部20、ハッシュ値生成部30、格納部40、フルパターンfullpatternマッチング部50、ハッシュ値マッチング部60、及びテーブル生成部70を備えることができる。決定部10は、サブパターンマッチングされたターゲットデータがどんな種類のパターンとマッチングされたかを決定でき、決定結果にしたがって、フルパターンマッチング動作が行われるか、又は行われない。本発明の一実施の形態によれば、サブデータが、文法的に複雑なパターンデータの一部とマッチングされた場合には、フルパターンマッチング動作が行われうる。一方、サブデータが、複雑でないパターンデータとマッチングされた場合には、サブパターンマッチング動作まで行われ、フルパターンマッチング動作は行われない。本発明の一実施の形態にかかる決定部10は、ターゲットデータがどんな種類のパターンデータにマッチングされたかを決定するために、マルウェアパターンデータがどんな種類に該当するかを表す情報以下、パターンデータ種類情報とするを参照できる。本発明の一実施の形態によれば、パターンデータ種類情報は、ハッシュマッチャーテーブル43、サブマッチャーテーブル44、及び/又はサブパターンマトリクス45に含まれていることができるが、別途のテーブルとして格納されることもできる。別途のテーブルとして設けられた場合、格納部40に格納されるか、又は別途に設けられた他の格納部図示せずに格納されていることができる。サブパターンマッチング部20は、ターゲットデータを構成する複数のサブデータを順次に予め格納されたパターンデータベースDataBase:DB41のパターンデータとマッチングさせる。本発明の一実施の形態によれば、サブパターンマッチング部20は、ハッシュマッチテーブル43とサブマッチャーテーブル44とを利用してサブパターンマッチング動作を行うことができる。一方、サブパターンマッチング部20の機能は、ハードウェア及び/又はソフトウェアにより具現されることができる。サブパターンマッチング部20は、2段階のマッチング動作すなわち、ライトパターンマッチング動作と精密パターンマッチング動作を含むことができる。ここで、サブパターンマッチング部20は、サブデータのハッシュ値がサーバマッチャーテーブルにあるハッシュ値と同一であるとすわなち、ハッシュ値マッチング部60によるハッシュ値マッチングが成功的になされた場合行われる。本発明の一実施の形態によれば、サブパターンマッチング部20は、ライトLightパターンマッチング部22、及び精密パターンマッチング部24を備えることができる。ライトパターンマッチング部22は、サブパターンマッチング部20の第1番目のあるライトパターンマッチング過程を行うものであって、サブデータの一部とパターンデータとをマッチングさせる過程を行う。このために、ライトパターンマッチング部22は、サブマッチャーテーブル44を使用することができる。図3のサブマッチャーテーブル44を参照すれば、サブマッチャーテーブル44は、中間値middlevalueと最後値tailvalueを含み、これらの値を利用してサブデータとパターンデータとをマッチングさせることができる。すなわち、ライトパターンマッチング動作は、サブデータとパターンデータとをマッチングさせるにおいて、まず中間値と最後値とが互いに一致しているか否かを確認する。本願発明の一実施の形態によれば、少なくともこれらの中間値と最後値とが一致してこそ、残りの値も一致する可能性があることから、マッチング速度を上げるために、ライトパターンマッチング動作を行うことである。仮に、中間値と最後値とが一致すると、初めてサブデータとパターンデータとをすべて比較する精密パターンマッチング動作を行う。一方、ハッシュ衝突がある場合には、互いに異なるパターンデータであってもハッシュ値は、互いに同一でありうる。図3に示すように、パターンabcdefgとパターンabcxyzのハッシュ値が両方ともXであることが分かる。このように、ハッシュが衝突される場合に備えて、サブパターンマッチャーテーブルに衝突パターンのOffsetという項目をさらに含めることができる。図3のサブパターンマッチャーテーブルを参照すると、インデックスXとZは、衝突パターンのOffset項目として互いにリンクされていることが分かる。例えば、あるサブデータに対するハッシュ値をXとしよう。この場合、ライトパターンマッチング部22は、まずIndexがXである項目に対してまずライトパターンマッチング動作を行う。すなわち、サブデータの中間値及び最後値と、X中間値d及び最後値9をそれぞれマッチングさせる。そのマッチングが成功的でない場合、ライトパターンマッチング部22は、IndexXの衝突パターンのOffset項目に記載されたZ項目に対して、ライトパターンマッチング動作を行う。すなわち、サブデータの中間値及び最後値と、Zの中間値c及び最後値zをそれぞれマッチングさせる。マッチングが成功的な場合に、精密パターンマッチング動作が行われる。精密パターンマッチング動作の遂行結果、マッチングされることがないと、インデックスZの衝突パターンのOffset項目に記載された値があるか否かを再び検討するようになる。仮に、記載された値があると、上述のように、サブパターンマッチング動作が再度行われる。精密パターンマッチング部24は、サブパターンマッチング部20の第2番目のステップである精密マッチング過程を行い、サブデータ全部とパターンデータとをマッチングさせる過程を行う。本発明の一実施の形態によれば、精密パターンマッチング部24は、ライトパターンマッチングが成功したサブデータに対してのみ、精密パターンマッチング動作を行うことができる。本発明の一実施の形態にかかる精密パターンマッチング部24は、サブマッチャーテーブルとパターンDBとを参照して、精密パターン動作を行うことができる。図3に示すように、精密パターンマッチング部24は、サブマッチャーテーブルに含まれたRealPatternAddressが指定するアドレスに格納されたパターンデータと、サブデータとを比較して、精密パターンマッチング動作を行うことができる。サブマッチャーテーブルに含まれたRealPatternAddressが指定するアドレスは、パターンDBが格納されたメモリのアドレスであるか、又はパターンハッシュ値テーブルが格納されたメモリのアドレスでありうる。又は、パターンデータが格納された他の別途のメモリのアドレスでありうる。ハッシュ値生成部30は、ターゲットデータを構成するサブデータに対するハッシュ値を生成する。ハッシュ値生成部30は、ハッシュ関数を適用してサブデータに対するハッシュ値を生成し、できる限り、ハッシュ衝突Hashcollisionが少なく発生するハッシュ関数とハッシュ係数とを使用することができる。本発明の一実施の形態によれば、ハッシュ値生成部30は、サブデータの全て又は一部を入力値としてハッシュ値を生成でき、生成したハッシュ値は、ハッシュ値マッチング部60において使用される。サブデータの一部を入力値としてハッシュ値を生成する場合には、一つのサブデータに対して複数のハッシュ値が生成されることができる。例えば、サブデータが総8バイトからなるとすれば、ハッシュ値生成部30は、第1番目のバイト、第2番目のバイト、第3番目のバイトを入力値としてハッシュ値を生成できる。続けて、ハッシュ値生成部30は、第2番目のバイト、第3番目のバイト、及び第4番目のバイトを入力値としてハッシュ値を生成できる。続けて、第3番目のバイト、第4番目のバイト及び第5番目のバイトを入力値としてハッシュ値を生成できる。このような過程は、残りのバイトに対しても行われることができる。ハッシュ値生成部30は、ハードウェア及び/又はソフトウェアで具現されることができ、例えばハッシュ関数がレジスタのような格納場所に格納されている途中にメモリ図示せずにロードされてハッシュ値を生成する方式でも具現可能である。ハッシュ関数を利用してハッシュ値を生成することは、公知の技術に該当するので、これについての具体的な説明は省略する。格納部40は、本パターンマッチングシステムに必要なすべてのデータを格納することができる。図2を参照して格納部40の構成を説明する。格納部40は、パターンDB41を具備でき、既に決まった格納領域には、各々パターンハッシュ値テーブル42、ハッシュマッチャーテーブル43、サブマッチャーテーブル44、サブパターンマトリクス45が格納されることができる。本実施の形態において格納部40は、ハードディスク、揮発性メモリ、及び/又は不揮発性メモリ、ROMなどのような格納媒体のうちの何れか一つでありうる。本実施の形態において、パターンハッシュ値テーブル42、ハッシュマッチャーテーブル43、サブマッチャーテーブル44、サブパターンマトリクス45が一つの格納部40に格納されると説明したが、これは、例示に過ぎず、これらのが互いに異なる格納媒体に格納されることも当然に可能である。例えば、上のテーブルは、揮発性メモリに格納され、パターンDB41は、ハードディスクのような格納媒体に格納されることができる。パターンDB41は、サブパターンマッチング部20及びフルパターンマッチング部50がマッチング動作の遂行に使用するパターンデータに対するデータベースである。本実施の形態において、パターンDB41は、文法的に決まった簡単なパターンのパターンデータを集めたものでありえ、あるいは文法的に複雑なパターンのパターンデータを集めたものでありえ、あるいは、文法的に簡単なパターンのパターンデータと文法的に複雑なパターンのパターンデータとが混在しているものでありうる。一方、本パターンDB41は、パターンデータの種類を表す情報をさらに含むことができる。パターンハッシュ値テーブル42は、パターンDB41に格納されているパターンデータのハッシュ値を含む。パターンハッシュ値テーブル42において、一つのパターンデータに対して少なくとも一つ以上のハッシュ値が対応していることができる。例えば、16バイトのパターンデータがあるとすれば、ハッシュ値生成部は、パターンデータにおいて順次に第1番目のバイト、第2番目のバイト、及び第3番目のバイトを入力値としてハッシュ値を生成し、次に第2番目のバイト、第3番目のバイト、及び第4番目のバイトを入力値としてハッシュ値を生成し、残りのバイトに対しても同じ方式で一つのバイトずつ移動しながらハッシュ値を生成できる。このように生成されたハッシュ値は、パターンデータに対応されてパターンハッシュ値テーブル42に含まれる。パターンデータに対するハッシュ値を生成するハッシュ値生成部は、図1のハッシュ値生成部30又は別途に設けられたハッシュ値生成部図示せずでありうる。ハッシュマッチャーテーブル43は、パターンデータに対するハッシュ値の存在有無を表すためのテーブルである。本発明の一実施の形態によれば、ハッシュマッチャーテーブル43は、次の形態で構成されることができる。第一に、ハッシュマッチャーテーブル43は、下記の表1のようにハッシュ値が記載されるハッシュ値項目と、パターンDB41のパターンデータが記載される項目とを含む形態でありうる。第2に、ハッシュマッチャーテーブル43は、ハッシュ値が記載されるハッシュ値項目と、パターンDB41のパターンデータのハッシュ値とハッシュ値項目に記載されたハッシュ値とが一致しているか否かを表す項目を含む形態図2と図3のハッシュマッチャーテーブルでありうる。図2と図3には、第2番目の形態のハッシュマッチャーテーブル43が示されている。キー値項目には、特定ハッシュ関数により生成可能なハッシュ値が記載される。一致有無項目では、キー値のうち、パターンデータのハッシュ値と一致する値を有したキーに対してのみ1と表示した。前記特定ハッシュ関数は、ハッシュ値生成部30において使用されるハッシュ関数と同一である。サブマッチャーテーブル44は、サブパターンマッチング部20に含まれているライトパターンマッチング部22においてマッチング動作を行う際に使用されるテーブルに該当する。本発明の一実施の形態によれば、サブマッチャーテーブル44は、ハッシュ値が記載されるハッシュ値項目、ハッシュ値項目に記載されたハッシュ値に対応するパターンデータが記載されるパターンデータ項目を含むことができる。このとき、パターンデータ項目には、パターンデータが格納されたアドレスaddress、あるいは、パターンデータ自体が記載されることができる。また、サブマッチャーテーブル44は、パターンデータの中間値を記載する中間値項目と、最後値を記載する最後値項目をさらに含むことができる。図2に示すように、サブマッチャーテーブル44は、パターンデータ項目は、重複パターンのオフセット項目、中間値オフセット項目、中間値項目、最後値オフセット項目、最後値項目、及び実際パターン情報項目を含むことができる。ここで、実際パターン情報項目には、実際パターンデータ自体、あるいは、パターンデータが格納されたアドレスが記載されることができる。サブパターンマトリクス45は、ターゲットデータを構成する各々のサブデータに対するサブパターンマッチング結果を含む。本発明の一実施の形態によれば、サブパターンマトリクス45は、ターゲットデータを構成するサブデータに対する各々のマッチング結果を含むことができる。例えば、ターゲットデータが5個のサブデータから構成されていると仮定すれば、サブパターンマトリクス45は、5個の各々に対するパターンマッチング結果を含むことができる。サブパターンマトリクス45は、フルパターンマッチング動作に使用されるものであって、パターンデータとフルパターンマッチング動作のために必要なサブデータのパターンマッチング結果をすべて含むことができる。本発明の一実施の形態にかかるサブパターンマトリクス45は、サブデータに対する精密パターンマッチングの遂行結果、複雑なパターンの一部と決定された場合に、そのサブデータに対するマッチング結果を含む。フルパターンマッチング部50は、サブパターンマトリクス45を利用してサブパターンマトリクス45に含まれたサブデータとパターンデータとをフルマッチングする動作を行う。本発明の一実施の形態にかかるフルパターンマッチング部50は、サブパターンマッチング部20によるマッチングが成功するごとに、フルパターンマッチング動作を行うことができる。又は、フルパターンマッチング部50は、サブパターンマッチング部20の成功有無と無関係にサブパターンマッチング部20によるマッチング結果が出るごとに、フルパターンマッチング動作を行うことができる。本発明の一実施の形態にかかるフルパターンマッチング部50は、ターゲットデータを構成するサブデータの各々のサブパターンマッチング結果と、パターンデータ全体とのパターンマッチング動作を行うことができる。このようなフルパターンマッチング部50は、ハードウェア及び/又はソフトウェアにより具現されることができる。ハッシュ値マッチング部60は、ハッシュ値生成部30により生成されたハッシュ値とハッシュマッチャーテーブル43との間のマッチング動作を行う。ハッシュ値マッチング部60のマッチング動作の遂行結果は、サブパターンマッチング部20のサブパターンマッチング動作時に利用される。例えば、サブデータに対するハッシュ値がXという値が出たと仮定し、図3を参照してハッシュ値マッチング部60の動作を説明する。図3に示すように、ハッシュ値マッチング部60は、ハードウェア的及び/又はソフトウェア的にハッシュマッチャーテーブル43を利用してハッシュ値Xを有するパターンがあることが分かり、一致又は成功という結果を出力することができる。テーブル生成部70は、本パターンマッチングシステムのパターンマッチング動作に必要なテーブル、例えば、パターンハッシュ値テーブル、ハッシュマッチャーテーブル43、サブマッチャーテーブル44、及び/又はサブパターンマトリクス45を生成することができる。テーブル生成部70により生成されたテーブルは、格納部40の該当格納領域に格納されることができる。テーブル生成部70により生成されるテーブルは、図2を参照して説明したとおりである。本実施の形態において、上のテーブル43、44、45が一つのテーブル生成部70から生成されると説明したが、これは、例示的なもので、別途に設けられるテーブル生成部によって生成されることも可能である。テーブル生成部70は、パターンDB41内のパターンデータに対するすべての場合のハッシュ値を記載するパターンハッシュ値テーブルを生成できる。本発明の一実施の形態によれば、テーブル生成部70は、ハッシュ値生成部30又は別途に設けられるハッシュ値生成部図示せずを利用して、パターンデータに対するハッシュ値を生成し、該生成したハッシュ値をパターンハッシュ値テーブルの形態図3において、ハッシュ値HASHValue項目とパターンPattern項目からなるテーブルで構成できる。本発明の一実施の形態によれば、パターンハッシュ値テーブルは、テーブル生成部70にてハッシュマッチャーテーブル43を生成する際に使用されることができる。本発明の一実施の形態にかかるテーブル生成部70は、ハッシュマッチャーテーブルを構成できる。例えば、テーブル生成部70は、ハッシュ値生成部30又は別途に設けられるハッシュ値生成部図示せずを利用してパターンデータに対するハッシュ値を生成し、該生成したハッシュ値をハッシュマッチャーテーブルの形態を有するように構成できる。又は、前記パターンハッシュ値テーブルを参照して、ハッシュマッチャーテーブルを構成できる。一方、本発明の一実施の形態にかかるテーブル生成部70は、前記ハッシュマッチャーテーブル、パターンハッシュ値テーブル、及びパターンDBを参照してサブマッチャーテーブルを構成できる。パターンDB41が変更されると、テーブル生成部70は、上のテーブルを新しく作成することができる。このとき、変更された部分のみを新しく作成するか、又は全て新しく作成することができる。以上のように、図1を参照して説明したパターンマッチングシステムは、複雑なパターンと簡単なパターンとを区分してパターンマッチング動作を行うと説明した。すなわち、本実施の形態によれば、ターゲットデータに対するサブパターンマッチングの結果、マッチングされ、そのサブデータが単純なパターンに該当する場合には、フルパターンマッチング動作を行わずにターゲットデータに対するマッチング動作を終了する。一方、ターゲットデータに対するサブパターンマッチングの結果、マッチングされ、そのサブデータが複雑なパターンの一部に該当する場合には、フルパターンマッチング動作を行う。理解の便宜のために、5個のサブデータから構成されたターゲットデータがあるとしよう。仮に、第1番目のサブデータに対するサブパターンマッチングの結果が成功的で、かつそのサブデータが単純なパターンに該当すると、残りの4個のサブデータに対するパターンマッチング動作は行われず、フルパターンマッチング動作も行われない。一方、第1番目のサブデータに対するサブパターンマッチングの結果が成功的で、かつそのサブデータが複雑なパターンの一部に該当する場合、第1番目のサブデータに対するマッチング結果をサブパターンマトリクスに含め、第2番目のサブデータに対するサブパターンマッチング動作が行われる。続けて、残りのサブデータに対するサブパターンマッチング動作が行われて、その結果がサブパターンマトリクスに含まれる。このサブパターンマトリクスを利用してフルパターンマッチング動作が行われる。図1に示す実施の形態は、多様な形態で変形が可能である。第1番目の変形例として、パターンデータが文法的に簡単なパターンのみがあると仮定して構成する場合である。すなわち、フルパターンマッチング部50を含めずに、サブパターンマトリクスも生成しないように構成することであって、すべてのターゲットデータに対してサブパターンマッチング動作のみを行うように構成されることができる。このような場合、パターンDBには、文法的に簡単なパターンデータのみが格納されていることができる。第2番目の変形例として、パターンデータが文法的に複雑なパターンのみがあると仮定して構成する場合である。この場合は、ターゲットデータに対してフルパターンマッチングされるまで、そのサブデータを構成するサブデータに対してフルパターンマッチング動作をすべて行う。すなわち、サブデータのサブパターンマッチング動作がなされるごとに、フルパターンマッチング動作が行われるか、又はサブパターンマッチング動作の結果が成功的であるごとにフルパターンマッチング動作が行われることができる。以上説明した図1に示す決定部10、サブパターンマッチング部20、ハッシュ値生成部30、格納部40、フルパターンマッチング部50、ハッシュ値マッチング部60、及びテーブル生成部70を備えるパターンマッチングシステムは、SoCSystemonChipに搭載されて具現されることができ、あるいは、PC及びスマートカードに搭載されることもできる。図3は、本発明の一実施の形態にかかるテーブル構成を説明するための図である。本発明の一実施の形態にかかるハッシュ値生成部30は、パターンDB41からパターンデータをロードして特定ハッシュ関数Hashfunctionを利用してパターンデータ別ハッシュ値を生成し、パターンデータ別に生成されたハッシュ値は、パターンハッシュ値テーブル42に格納される。パターンハッシュ値テーブル42は、ハッシュ値生成部30ではない別途に設けられたハッシュ値生成部図示せずにより生成されたハッシュ値から構成されることも可能である。ただし、別途に設けられたハッシュ値生部が使用するハッシュ関数とそのハッシュ係数は、前記ハッシュ値生成部30のものと同一でなければならない。テーブル生成部70は、パターンハッシュ値テーブル42を利用してハッシュマッチャーテーブル43とサブマッチャーテーブル44とを生成できる。ハッシュマッチャーテーブル43は、ハッシュ値マッチング部60において同じハッシュ値を有するパターンデータが存在するか否かをまず判断するための用途として使用される。一方、サブマッチャーテーブル44は、ハッシュマッチングが成功した場合にのみ使用される。ハッシュマッチャーテーブル43とサブマッチャーテーブル44とを利用したマッチング動作の遂行結果、これらのマッチングが全部成功されたサブデータとパターンデータの全体がマッチングされる動作が行われる。以上、図3に示すテーブルは、例示的なものであって、本願発明がこれらのテーブルの構成に限定されるものでない。図3には、パターンデータ種類情報が含まれていないが、パターンデータ種類情報がさらに含まれるように構成することも可能である。例えば、サブマッチャーテーブルに、パターンデータ種類情報がさらに含まれるように構成することによって、決定部10は、そういうサブマッチャーテーブルを参照してフルパターンマッチング動作が行われるようにするか否かを決定できる。図4は、本発明の一実施の形態にかかるパターンマッチングシステムをSoC形態で具現した例を示したブロック図である。図4に示すように、本パターンマッチングシステムをSoC形態で具現すれば、コンフィギュアバス101、123、CPUCentralProcessingUnit103、DMADirectMemoryAccessコントローラ105、ローカルバス107、SDRAMSynchronousDynamicRandomAccessMemoryコントローラ109、フラッシュコントローラ111、SRAMStaticRandomAccessMemoryコントローラ113、バッファ115、検索エンジン117、バスマトリクス119、及びブートboot121を備えることができる。本パターンマッチングシステムにおいて、各ブロック間のデータ送信のためのバスは、データの迅速な送信のためのローカルバス107と、コンフィギュレーションconfigurationのためのコンフィギュアconfigureバス101、123とに区分できる。本実施の形態においてローカルバス107とコンフィギュアバス101、123とは、AHBAdvancedHighPerformanceBus規格でありうるが、これは、例示的なものであって、本願発明は、必ずコンフィギュアバスである必要がなく、他の規格のバスも使用することができる。一方、本実施の形態においてコンフィギュアバス101と123とは、互いに接続していることができる。CPU103は、本パターンマッチングシステムを全般的に制御し、要求される作業を中央演算処理する機能を果たす。CPU103は、リコンフィギュラブルreconfigurableCPUでありうるが、これは、例示的なものであって、リコンフィギュラブルCPUでなくても良い。DMAコントローラ105は、DMAを制御する機能を果たし、バッファ115は、外部とのインタフェースを介してデータを一時格納する機能を果たす。検索エンジン117は、ターゲットデータとパターンデータとを受け取ってパターンマッチング動作を行うハードウェアでありうる。例えば、検索エンジン117は、図2に例示されたテーブルを参照してターゲットデータに対するパターンマッチング動作を行うことができる。バスマトリクス119は、AHB規格の制御信号とデータ信号とをAPBAdvancedPeripheralBus規格の制御信号とデータ信号に変換するか、又はAPB規格の制御信号とデータ信号をAHB規格の制御信号とデータ信号に変換して伝達する役割を果たす。ブート121は、SoCにおいてパターンマッチングシステムが初期動作されるようにする役割を果たす。本実施の形態において、メモリとしては、SDRAM125、フラッシュflashメモリ127、及びSRAM129を含んでいることを示した。これにより、SDRAM125に対する入出力を制御するためのSDRAMコントローラ109、フラッシュメモリ127に対した入出力を制御するためのフラッシュコントローラ111、SRAM129に対する入出力を制御するためのSRAMコントローラ113を含んでなる。SDRAM125、フラッシュflashメモリ127、及びSRAM129は、図1に示す格納部40に含まれることができる。図1を参照して説明したパターンマッチングシステムとその変形例において決定部10、サブパターンマッチング部20、ハッシュ値生成部30、フルパターンマッチング部50、ハッシュ値マッチング部60、及びテーブル生成部70は、ソフトウェア及び/又はハードウェアで具現されることができ、検索エンジン117は、その中でハッシュ値マッチング動作、サブパターンマッチング動作をハードウェアで具現したのである。一方、ソフトウェアで具現される部分は、SDRAM125やSRAM129のような格納媒体に格納されている途中でマッチング動作を行う際に検索エンジン117を制御してマッチング動作を行うことができる。図5は、図4に示す検索エンジンのハードウェア構成を示したブロック図である。図5に示すように、検索エンジン117は、システムインタフェース部201、システムレジスタ203、メモリインタフェース部205、メモリ207、バッファ209、ハッシュマッチャー211、オフセットアドレスジェネレーター部213、ハッシュQバッファ215、ライトパターンマッチャー217、スキャンQバッファ219を備えることができる。本発明の一実施の形態によれば、検索エンジン117は、ハッシュ値マッチング動作とサブパターンマッチング動作とを行い、フルパターンマッチング動作は、図6に例示的に示すように、ソフトウェア的に具現されることができる。システムインタフェース部201は、本パターンマッチングシステムと外部間のインタフェースを支援し、メモリインタフェース部205は、本パターンマッチングシステム内に格納されたDB又はファイルの内容を読み込むために使用される。メモリ207は、図1~図3の実施の形態を参照して説明したパターンハッシュ値テーブルを格納することができ、必要な場合には、システムレジスタ203に移動されることができる。メモリ207に格納されるパターンハッシュ値テーブルは、ハッシュ値生成器図示せずにより生成されたことでありうる。本発明の一実施の形態によれば、ハッシュ値生成器図示せずは、ソフトウェア的に具現されることができる。例えば、システムレジスタ203にハッシュ関数が格納されており、ハッシュ値生成器がレジスタに格納されたハッシュ関数を利用して、パターンデータに対するハッシュ値を生成することができる。バッファ209は、メモリインタフェース部205から順次に読み込んだターゲットデータを格納する。本発明の一実施の形態によれば、バッファ209は、ターゲットデータを構成する各々のサブデータを順次に受け取って格納することができる。一方、本実施の形態において、バッファ209は、デュアルバンク方式で構成されたが、これは、例示的なものであって、一つのバッファで具現することも可能である。ただし、デュアルバンク方式で具現する場合には、2個のバッファで交互にサブデータをハッシュマッチャー211側に提供することであるから、マッチング速度がより速くありうる。ハッシュマッチャー211に入力されるデータは、サブデータとそのハッシュ値とが入力される。すなわち、バッファ209から出力されるサブデータは、ハッシュ値生成器図示せずに入力されて、そのハッシュ値が生成され、生成されたハッシュ値がサブデータと共にハッシュマッチャー211に入力される。ハッシュマッチャー211は、サブデータのハッシュ値とハッシュマッチャーテーブル43のマッチング動作を行う。ここで、ハッシュマッチャーテーブル43は、システムレジスタ203に格納されているか、又は別途に設けられたメモリ図示せずに格納されていることができる。ここで、ハッシュマッチャーテーブルは、図1~図3を参照して説明したハッシュマッチャーテーブルに該当することで、テーブル生成器図示せずによって生成されたものでありうる。ハッシュマッチャー211は、ハッシュ値が互いにマッチングされる場合すなわち、マッチングが成功する場合にのみ、ハッシュマッチングが成功したサブデータをハッシュQバッファ215に格納する。オフセットアドレスジェネレーター部offsetaddressgenerator213は、ハッシュマッチャーのマッチング動作の遂行結果、ハッシュマッチングが成功した場合に、所定のメモリアドレス値を発生させる。具体的に、サブパターンマッチングテーブルにおいて、前記ハッシュマッチングが成功したハッシュ値が格納されたメモリアドレス値を発生させる。図3の例を挙げて説明し、ハッシュマッチング結果、サブデータのハッシュ値がXであると、オフセットアドレスジェネレーター部213は、サブマッチャーテーブルにおいてインデックスINDEXがXであるレコードを格納するメモリアドレスを生成する。ハッシュQQueueバッファ部215は、ハッシュマッチングが成功したサブデータと、オフセットアドレスジェネレーター部213から発生したアドレスを互いに対応させて格納する。ライトパターンマッチャー217は、ハッシュQバッファ部215が格納するサブデータに対してライトパターンマッチング動作を順次に行うハードウェアである。本発明の一実施の形態によれば、ライトパターンマッチャー217は、図1に示すライトパターンマッチング部22の機能と対応できる。ライトパターンマッチャー217は、ハッシュQバッファ部215に格納されたサブデータと、そのサブデータに対応されたメモリアドレスに格納されたデータ例えば、インデックスがXであるレコードを読み込んで、両者をマッチングさせることができる。ここで、メモリから読み込んだデータは、サブパターンマッチャーテーブルに含まれたデータである。本発明の一実施の形態によれば、ライトパターンマッチャー217は、メモリから読み込んだデータに衝突パターンオフセットが含まれている場合には、その衝突パターンオフセットが指定するデータを追加的に読み込んで、ライトパターンマッチング動作を再度行う。ただし、本発明の一実施の形態によれば、ライトパターンマッチャー217は、例えばサブマッチャーテーブルにおいてインデックスがXであるパターンデータに対してライトパターンマッチングが失敗するか、又は精密パターンマッチングが失敗した場合に、衝突パターンのオフセットが指示する値Zが表すパターンデータすなわち、インデックスZであるパターンデータを読むようになる。スキャンQQueueバッファ部219は、ライトパターンマッチャー217のマッチング動作以後、ライトパターンマッチングが成功したサブデートを順次格納することができる。以後、ここに格納されたサブデータに対しては、精密パターンマッチング動作が行われる。図5に示されていないが、ハッシュマッチャーによるハッシュマッチング動作とライトパターンマッチャーによるライトパターンマッチング動作に使用されるハッシュマッチャーテーブルとサブマッチャーテーブルは、システムレジスタ203や別途に設けられたメモリ図示せずに格納されていることができる。一方、上述した図4と図5に示されたように、本願発明がSOC形態で具現された場合、アプリケーションにおいてソフトウェアレベルでパターンマッチングをする場合より、その速度が数倍以上速く、ひいては、速度やバッテリーに制限があるモバイルデバイスのリソース問題を解決することができる。図6は、図5に示すパターンマッチングシステムの全般的な動作を説明するための図である。ハッシュマッチャーテーブル43は、メモリ図示せずに格納されてハッシュマッチャー211にてマッチング動作を行うために使用される。本発明の一実施の形態においてハッシュマッチャーテーブル43は、インデックスとして使用するためのハッシュ値であるキー値とそのキー値を使用するパターンの一致有無情報を含むことができる。ハッシュ値生成器図示せずがパターンDB41においてパターンDBをロードしてハッシュ値を生成すると、そのハッシュ値に基づいてハッシュマッチャーテーブル44とパターンハッシュ値テーブルとが生成されることができる。パターンハッシュ値テーブルは、メモリ207に格納されていることができる。サブマッチャーテーブル44は、メモリ図示せずに格納されてライトパターンマッチャー217と精密パターンマッチングのために使用される。バッファ209には、ターゲットデータのサブデータがロードされ、ロードされたサブデータとそのハッシュ値がハッシュマッチャー211に提供される。ハッシュマッチャー211は、バッファ209からサブデータ及びそのハッシュ値を、図示していないメモリからはハッシュマッチャーテーブル43を提供されてハッシュマッチングを行う。以後、ライトパターンマッチャー217では、サブマッチャーテーブル44を利用してサブデータの一部に対するマッチング動作を行い、サブデータの一部が前記パターンデータと同一であるか、又はパターンデータに含まれた場合すなわち、ライトパターンマッチングが成功した場合、その成功したサブデータをスキャンQバッファ219側に出力する。そして、スキャンQバッファ219に格納されたサブデータに対して精密パターンマッチング動作が行われ、このような動作は、例えば、前述した精密パターンマッチング部24により行われることができる。本実施の形態における検索エンジン117は、ハードウェアロジックから構成されて単純でかつ速い作業を行うことができ、ビットテーブルであるハッシュマッチャー211は、大きさが小さく、ハッシュ関数を通じて出てきたハッシュ値をマッチング対象にするから、比較速度が速いという長所がある。また、ライトパターンマッチャー217は、ハッシュ値をインデックスとして接近するから、速いマッチング結果を出力することができる。図7は、本発明の一実施の形態にかかる文法的に決まった複雑なパターンデータを説明するための図である。図7には、文法的に決まった複雑なパターンデータ以下、マルチパターンデータとするの形態を例示した。このようなマルチパターンデータは、図4~図6にて説明したパターンマッチングシステムによっては、正確なパターンマッチング結果を得ることができない。したがって、一つのマルチパターンを複数のサブパターンに分離してパターンマッチング動作を行う必要がある。図7に示すように、一つのマルチパターンデータを予め決まった規則に従って複数のサブパターンに分離できる。図8は、図5に示すパターンマッチングシステムにおいて文法的に決まった複雑なパターンデータを処理する動作を説明するための図である。図8に示す動作は、図6にて説明した動作と似ている。ただし、図6では、文法的に決まった簡単なパターンデータを処理する動作を説明したものであり、図8は、文法的に決まった複雑なパターンデータ、すなわち、マルチパターンデータを処理する動作を説明したものである。図8のマルチパターンデータを処理する動作は、図6に一部動作が追加されたことに該当するので、ここでは、追加された動作についてのみ説明する。パターンDB41に格納されているパターンデータを複数のサブパターンに分離する動作を行う。このような動作をマルチパターン構成プロセスとすることにする。マルチパターン構成プロセスは、図7にて示したとおりである。図8に示すように、マルチパターンデータに対してハッシュマッチャーテーブル43、及びサブマッチャーテーブル44、パターンハッシュ値テーブルが構成されている。ハッシュマッチャー211によるマッチング動作と、ライトパターンマッチャー217によるマッチング動作と、精密パターンマッチングは、前述した図5及び6の説明と同一なので、それに関する説明は省略する。図8の実施の形態によれば、精密パターンマッチングの結果は、サブパターンマトリクス45に含まれて格納され、ここでサブパターンマトリクス45は、メモリ図示せずに格納されていることができる。図1~図3を参照して説明した通り、サブパターンマトリクス45を参照して、フルパターンマッチング動作がなされることができる。図9は、本発明の文法的に決まった簡単なパターンデータを利用したパターンマッチング方法の第1の実施の形態を説明するためのフローチャートである。ターゲットデータは、複数のサブデータに区分されることができる。サブデータが本パターンマッチングシステムに入力されるとS301、ハッシュ値生成部30は、サブデータに対するハッシュ値を生成するS303。ハッシュ値マッチング部60は、予め格納されたハッシュマッチャーテーブル43とサブデータのハッシュ値とを順次マッチングするハッシュマッチング動作を行うS305。ハッシュ値マッチング部60のハッシュマッチング動作の遂行結果、現在マッチング対象である一つのサブデータのハッシュ値がハッシュマッチャーテーブルと一致する場合S307-Y、ライトパターンマッチング部22が該当サブデータの一部に対するライトパターンマッチングを行うS309。ライトパターンマッチングの遂行時には、テーブル生成部70により予め生成されたサブマッチャーテーブル44が利用される。ライトパターンマッチングの遂行結果、該当サブデータの一部とサブマッチャーテーブル44の値が一致する場合S311-Y、該当サブデータの全体に対してマッチングする精密パターンマッチング動作を行うS313。精密パターンマッチング動作の遂行結果、現在マッチング対象であるサブデータ全体に対する値がサブマッチャーテーブル44の値と一致する場合S315-Y、決定部10は、パターンが存在すると判断するS317。ステップS315にて、サブデータとパターンデータとが一致しない場合S315-N、現在マッチング対象であるサブデータが最後のサブデータである場合S319-Y、ターゲットデータにパターンが存在しないと最終決定するS321。ステップS311にて、サブデータの一部がサブマッチャーテーブル44の値と一致しない場合S311-N、現在マッチング対象であるサブデータが最後のサブデータである場合S319-Y、ターゲットデータにパターンが存在しないと最終決定するS321。ステップS319にて、現在マッチング対象であるサブデータが最後のサブデータでない場合S319-N、ステップS303にフィードバックして次のマッチング対象であるサブデータに対するハッチング動作を繰り返す。図9において、ステップS307とステップS319からステップS303にフィードバックする過程を示したが、これは、例示的なものであって、他の具現も可能である。すなわち、ステップS301の動作は、一定の時刻間隔を隔てて入力され続けることができ、ステップS307やステップS319のフィードバック動作はないことも可能である。ステップS307にてハッシュ値が互いに一致しない場合S307-Nには、現在ハッシュマッチング中のサブデータとそのハッシュ値を捨てる動作を行うことができる。また、ステップS319にて最後のサブデータでない場合S319-N、現在精密パターンマッチング又はライトパターンマッチングしたサブデータを捨てる動作を行うことができる。図9にて説明したパターンマッチング方法は、本パターンマッチングシステムに入力されるターゲットデータが文法的に決まった簡単なパターンのデータであることを前提としたもので、図1のパターンマッチングシステムにおいてサブパターンマッチング部20、ハッシュ値生成部30、格納部40、ハッシュ値マッチング部60、及びテーブル生成部70のみの構成でも動作可能である。図10は、本発明の文法的に決まった簡単なパターンデータを利用したパターンマッチング方法の第2の実施の形態を説明するためのフローチャートである。図10は、図9に示す文法的に決まった簡単なパターンデータを利用したパターンマッチング方法の第1の実施の形態の一部を変形した例に該当する。パターンデータが入力されるとS401、ハッシュ値生成部30は、パターンデータに対するハッシュ値を生成し、テーブル生成部70は、ハッシュ値生成部30により生成されたハッシュ値を利用してパターンハッシュ値テーブル42、ハッシュマッチャーテーブル43、及びサブマッチャーテーブル44を構成するS403。以後、マッチング動作を行うために、本パターンマッチングシステムに複数のサブデータから構成されたターゲットデータが入力されるS405。ターゲットデータが入力されると、サブパターンマッチング部20は、サブデータのはじめからパターンマッチングを行う。サブデータの最初位置は、ポジションが0である地点を意味するS407。サブデータのポジションを移動してパターンマッチングを行う過程において、現在マッチング対象であるサブデータのポジションがデータの終わりでない場合S409-N、サブデータの現在ポジションから予め決まった大きさ分だけを読み込んでハッシュ関数を適用してハッシュ値を生成するS411。仮に、ステップS409にて、サブデータのポジションがデータの終わりである場合S409-Y、現在サブデータには、パターンが存在しないと決定するS423。以後、ステップS411にて生成したハッシュ値がハッシュマッチャーテーブル43に存在しているか否かを確認するS413。ステップS413にて、ハッシュマッチャーテーブル43に予め生成したハッシュ値が存在すると確認されるとS413-Y、サブマッチャーテーブル44から中間値、最後値を比較して、結果が同じであるか否かを確認するS415。ステップS415での結果が同じであると、サブマッチャーテーブル44を利用してパターンデータ全体に対するパターンマッチングを行ってパターンデータ全体が一致するとS417-Y、ターゲットデータにパターンが存在すると決定するS419。ターゲットデータにパターンが存在すると決定される場合は、ターゲットデータにウイルスを含んだマルウェアが存在することを意味できる。仮に、ステップS417にて、パターンデータ全体が一致しないとS417-N、ターゲットデータにパターンが存在しないと決定するS423。ターゲットデータにパターンが存在すると決定される場合は、ターゲットデータにウイルスを含んだマルウェアが存在しないのを意味できる。また、ステップS413にてハッシュマッチャーテーブル43にマッチング対象に対するハッシュ値が存在しない場合S413-N、又はステップS415にてサブマッチャーテーブル44での中間値と最後値との比較結果が同じでない場合S415-N、サブデータの現在ポジションに1バイトを足してポジションを変更した後S421、ステップS409にフィードバックして繰り返す。図11は、本発明の文法的に決まった複雑なパターンデータの処理過程を説明するためのフローチャートである。図11は、文法的に決まった複雑なパターンデータの処理過程に使用されるサブパターンマトリクスを構成する方法を説明するためのものである。パターンデータが入力されるとS501、入力されたパターンデータをサブパターンに分離するS503。分離された各サブパターンごとにステップS507~S515を繰り返したか否かを確認して、パターン分だけ繰り返した場合には終了し、そうでない場合には次のステップに進むS505。以後、分離されたサブパターンに対するインデックスとして使用するために、サブパターンに対するハッシュ値を生成しS507、各サブパターン別ハッシュ値をインデックスとしてハッシュマッチャーテーブル305に該当情報を記録しS509、各サブパターン別ハッシュ値をインデックスとしてサブマッチャーテーブル307にも該当情報を記録するS511。また、全体パターンと文法処理のための追加情報をサブマッチャーテーブルに格納しS513、全体パターンに再組合できるようにサブパターンの情報をサブパターンマトリクス45に格納するS515。図12は、本発明の文法的に決まった複雑なパターンデータに対するパターンマッチング方法の第1の実施の形態を説明するためのフローチャートである。ターゲットデータを構成する各々のサブデータが本パターンマッチングシステムに入力されるS601。以後、ハッシュ値生成部30は、サブデータに対するハッシュ値を生成するS603。ハッシュ値マッチング部60は、ハッシュマッチャーテーブル43と前記サブデータのハッシュ値とをマッチングするハッシュマッチング動作を行うS605。ハッシュ値マッチング部60のハッシュマッチング動作の遂行結果、現在マッチング対象である一つのサブデータのハッシュ値がハッシュマッチャーテーブルと一致する場合S607-Y、ライトパターンマッチング部22が該当サブデータの一部に対するライトパターンマッチングを行うS609。ライトパターンマッチングの遂行時には、テーブル生成部70により予め生成されたサブマッチャーテーブル44が利用される。ライトパターンマッチングの遂行結果、該当サブデータの一部とサブマッチャーテーブル44に記載されたパターンデータとが一致する場合S611-Y、該当サブデータの全体に対してマッチングする精密パターンマッチング動作を行うS613。精密パターンマッチング動作の遂行結果、現在マッチング対象であるサブデータ全体とサブマッチャーテーブル44の値とが一致する場合S615-Y、このパターンマッチング結果をサブパターンマトリクス45に格納するS617。以後、サブパターンマトリクス45とパターンデータとを比較する動作を行うフルパターンマッチングS619。フルパターンマッチング結果、パターンデータとターゲットデータとのマッチングが成功した場合S621-Y、決定部10は、ターゲットデータにパターンが存在すると決定するS623。仮に、ステップS615及びステップS621にて、各マッチング動作の遂行結果、一致しないと判断されるとS615-N、S621-N、現在マッチング対象であるサブデータが最後のサブデータであるか否かを決定するS625。現在マッチング対象であるサブデータが最後のサブデータである場合S625-Y、決定部10は、ターゲットデータにパターンが存在しないと最終決定するS627。仮に、現在マッチング対象であるサブデータが最後のサブデータでない場合S625-N、次のサブデータに対するマッチング動作を行うためにステップS603にフィードバックして同一動作が繰り返される。本実施の形態でのステップS601~ステップS615は、図9のステップS301~S315と同一である。すなわち、マルチパターンデータを処理する動作は、文法的に決まった簡単なパターンデータを処理する動作を行った後、フルパターンマッチング動作をさらに行うことである。図13は、本発明の文法的に決まった複雑なパターンデータに対するパターンマッチング方法の第2の実施の形態を説明するためのフローチャートである。パターンデータをロードしS701、該ロードしたパターンデータをサブパターンに分離してマルチパターンデータを構成するS703。ここで、マルチパターンデータを構成する方法は、図11にて説明したとおりである。以後、マッチング対象になるターゲットデータを受け取るS705。受け取ったデータのはじめから1バイトずつ移動しつつパターンマッチングを実施する。すなわち、受け取ったデータのポジションが0の地点から1バイトずつ移動しつつパターンマッチングを実施するS707。受け取ったターゲットデータのポジションがデータの終わりなのか確認しS709、現在ポジションがデータの終わりであるとS709-Y、受け取ったデータに一致するパターンがないと判断するS711。仮に、受け取ったターゲットデータのポジションがデータの終わりでないとS709-N、ターゲットデータの現在ポジションから決まった大きさ分だけ読んでハッシュ関数を適用してハッシュ値を生成するS713。ハッシュ値マッチング部60は、ステップS713にて計算したハッシュ値がハッシュマッチャーテーブルに存在しているか否かを確認するS715。ここで、ステップS713にて計算したハッシュ値がキー値として存在するとS715-Y、サブパターンマッチング動作、例えばサブデータの中間値及び最後値と、サブマッチャーテーブル44での中間値と最後値とを比較して、結果が同じであるか否かを確認するS717。反面、該当サブデータのハッシュ値がキー値として存在しないとS715-N、サブデータの現在ポジションで1バイトを足してステップS709に戻るS731。次に、サブパターンマッチングが成功するとS717-Y、サブマッチャーテーブル44を利用して実際パターンデータ全体に対するマッチング動作を行うS719。反面、ステップS717にてマッチングが成功しないと、サブデータの現在ポジションで1バイトを足してステップS709に戻るS731。次に、ステップS719にてサブマッチャーテーブル44を参考にした実際パターン情報に対する精密パターンマッチングを実施して、パターン全体が一致すると、サブパターンマトリクス45に該当情報を記録するS721。次に、複雑なパターンを構成するサブパターンがすべて見付けられたか否かを確認するS723。ステップS723にて複雑なパターンを構成するサブパターンがすべて見付けられると、全体パターンが一致すると見なし、報告該当データにパターンがあると決定するS725、S727。反面、ステップS723にて、複雑なパターンを構成するサブパターンがすべて見付けられないと、一部サブパターンが見付けられたとし、サブデータの現在ポジションで1バイトを足してステップS709に戻るS729、S731。図14は、本発明の文法的形式が決まらないパターンデータに対するパターンマッチング方法を説明するためのフローチャートである。本パターンマッチングシステムにサブデータが入力されるS801。ハッシュ値生成部30は、ハッシュ関数を適用してサブデータに対するハッシュ値を生成するS803。ハッシュ値マッチング部60は、ハッシュマッチャーテーブル43を利用してハッシュマッチング動作を行う。すなわち、サブデータに対するハッシュ値がハッシュマッチャーテーブル43に存在しているか否かを確認するためのマッチングを行うS805。ハッシュ値マッチング部60のハッシュマッチング動作の遂行結果、現在マッチング対象であるサブデータがハッシュマッチャーテーブル43と一致すると判断されるとS807-Y、サブパターンマッチング部20にてサブパターンマッチング動作を行うS809。ステップS809は、ライトパターンマッチングと精密パターンマッチングとを含むことができる。サブパターンマッチング部20のサブパターンマッチングの遂行結果、現在マッチング対象であるサブデータがサブマッチャーテーブル44と一致すると判断されるとS811-Y、サブデータとマッチングされたパターンデータが複雑なパターンに該当するか否かを判断するS813。ステップS813にて、サブデータが複雑なパターンに該当するパターンデータに該当すると判断されるとS813-Y、サブパターンマトリクス45にパターンマッチング結果を格納するS815。以後、フルパターンマッチング部50にてサブパターンマトリクス45を参照してパターンデータを構成するすべてのサブパターンが存在しているか否かを確認しS817、すべてのサブパターンが存在すると判断されるとすなわち、サブデータとパターンデータとが一致すると判断されるとS819-Y、決定部10は、ターゲットデータにパターンが存在すると判断するS821。ステップS819にて、サブパターンマトリクス45にパターンデータを構成するすべてのサブデータが存在しない場合S819-N、決定部10は、現在マッチング対象であるサブデータが最後のサブデータである場合S823-Yには、ターゲットデータにパターンが存在しないと判断するS825。また、ステップS811にて、サブデータがサブマッチャーテーブル44と一致しないと判断されるとS811-N、現在マッチング対象であるサブデータが最後のサブデータであるか否かを判断して、最後のサブデータである場合には、ターゲットデータにパターンが存在しないと判断するS825。上述したように、図14に示すパターンマッチング方法は、本パターンマッチングシステムに入力されるターゲットデータのパターン種類が規定されないケースに該当することで、1次的に文法的に決まった簡単なパターンに該当することであるか否かを判断して、これに該当する場合、もうこれ以上ステップを進めず、これに該当しない場合、2次的に文法的に決まった複雑なパターンに該当することであるか否かを判断する。したがって、ターゲットデータのパターン種類が規定されていなくても、パターンマッチングを正確に行うことができる。以上、本発明は、限定された実施の形態と図面により説明されたが、本発明は、上記の実施の形態に限定されるものではなく、本発明が属する分野における通常の知識を有した者であればこのような記載から多様な修正及び変形が可能である。したがって、本発明の範囲は、説明された実施の形態に限って決まってはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものによって決まらねばならない。