"アンチマルウェアシステムにおける動作方法であって、フィルタリング対象であるデータ以下、第1ターゲットデータとするとルールパターンとをマッチングさせることによって、前記第1ターゲットデータに対してフィルタリング動作を行うステップと、ウイルススキャニング対象になるデータ以下、第2ターゲットデータとするとウイルスパターンとをマッチングさせることによって、前記第2ターゲットデータに対してウイルススキャニング動作を行うステップとを含み、前記フィルタリング動作と前記スキャニング動作とは、システムオンチップ上で動作することを特徴とするアンチマルウェアシステムにおける動作方法。前記第1ターゲットデータは、前記システムオンチップが装着されるデバイスから受信したことであって、前記フィルタリング動作を行うステップは、前記デバイスから受信する第1ターゲットデータに対してフィルタリング動作を行うことを特徴とする請求項1に記載のアンチマルウェアシステムにおける動作方法。前記第1ターゲットデータは、前記システムオンチップが備える通信部を介して外部デバイスから受信したことであって、前記フィルタリング動作を行うステップは、前記通信部を介して受信する第1ターゲットデータに対して前記フィルタリング動作を行うことを特徴とする請求項1に記載のアンチマルウェアシステムにおける動作方法。前記ルールパターンと前記ウイルスパターンとを前記システムオンチップが有する格納部に格納するステップを含むことを特徴とする請求項1に記載のアンチマルウェアシステムにおける動作方法。前記第1ターゲットデータにフィルタリング動作を行うステップは、前記ルールパターンのハッシュ値と前記第1ターゲットデータの少なくとも一部のハッシュ値とをマッチングさせるステップと、前記ハッシュ値のマッチングが成功した場合、前記ルールパターンと前記第1ターゲットデータとをマッチングさせるステップとを含むことを特徴とする請求項1に記載のアンチマルウェアシステムにおける動作方法。前記ハッシュ値とをマッチングさせるステップは、前記第1ターゲットデータのヘッダに含まれたIPアドレス、プロトコル、及びポートのうち、少なくとも何れか一つのハッシュ値と、前記ルールパターンに含まれたIPアドレス、プロトコル、及びポートのうち、少なくとも何れか一つのハッシュ値とをマッチングさせることであることを特徴とする請求項5に記載のアンチマルウェアシステムにおける動作方法。前記第1ターゲットデータに対してフィルタリング動作を行うステップは、前記第1ターゲットデータに対してパケット分類プロセスを行うステップと、前記パケット分類プロセスの遂行結果、前記第1ターゲットデータに対するパターンマッチングを行うと判断された場合にのみ、前記第1ターゲットデータと前記ルールパターンに対するパターンマッチングを行うステップとを含むことを特徴とする請求項1に記載のアンチマルウェアシステムにおける動作方法。前記ルールパターンうち、すべてのIPに対してパスするルールパターンが一つでも存在すると、IPフラグをALLに設定するステップと、前記ルールパターンのうち、すべてのプロトコルに対してパスするルールパターンが一つでも存在すると、プロトコルフラグをALLに設定するステップと、前記ルールパターンにすべてのポートに対してパスするルールパターンが一つでも存在すると、ポートフラグをAllに設定するステップとをさらに含み、前記パケット分類プロセスは、前記フラグを利用して行われることを特徴とする請求項7に記載のアンチマルウェアシステムにおける動作方法。前記フラグがすべてALLに設定されているか、又は前記IPフラグと前記ポートフラグとがALLに設定された場合には、前記第1ターゲットデータに対するパターンマッチングを行うステップは行わないことを特徴とする請求項8に記載のアンチマルウェアシステムにおける動作方法。前記パケット分類プロセスを行うステップは、前記ルールパターンのうち、すべてのIPに対してパスするルールが全く存在しない場合には、前記第1ターゲットデータに含まれたIPアドレスと前記ルールパターンに各々含まれたIPとをマッチングさせるIPマッチングプロセス遂行ステップを含み、前記ルールパターンのうち、すべてのIPに対してパスするルールが一つでも存在する場合には、前記IPマッチングプロセスを行わないことを特徴とする請求項7に記載のアンチマルウェアシステムにおける動作方法。前記IPマッチングプロセスの遂行結果、IPマッチングが成功した場合にのみ前記第1ターゲットデータに対するパターンマッチングを行うことを特徴とする請求項10に記載のアンチマルウェアシステムにおける動作方法。前記IPマッチングプロセスは、前記IPマッチングが成功した場合、前記IPマッチングが成功したルールパターンがすべてのプロトコルに対して適用されるか否かを確認し、前記IPマッチングが成功したルールパターンが仮にすべてのプロトコルに対して適用されることであると、プロトコルフラグをALLに設定することを特徴とする請求項10に記載のアンチマルウェアシステムにおける動作方法。前記パケット分類プロセスを行うステップは、前記プロトコルフラグがALLに設定されていない場合、前記第1ターゲットデータに含まれたプロトコルと前記IPマッチングが成功したルールパターンに含まれたプロトコルとをマッチングさせるプロトコルマッチングプロセス遂行ステップをさらに含み、前記プロトコルフラグがALLに設定された場合には、前記プロトコルマッチングプロセスを行わないことを特徴とする請求項12に記載のアンチマルウェアシステムにおける動作方法。前記プロトコルマッチングプロセスの遂行結果、プロトコルマッチングが成功した場合にのみ前記第1ターゲットデータに対するパターンマッチングを行うことを特徴とする請求項13に記載のアンチマルウェアシステムにおける動作方法。前記プロトコルマッチングプロセスの遂行結果、プロトコルマッチングが成功した場合、前記プロトコルマッチングが成功したルールパターンがすべてのポートに対して適用されることであるか否かを確認し、仮に、前記プロトコルマッチングが成功したルールパターンがすべてのポートに対して適用されることであると、ポートフラグをALLに設定することを特徴とする請求項13に記載のアンチマルウェアシステムにおける動作方法。前記パケット分類プロセスを行うステップは、前記ポートフラグがALLに設定されていない場合、前記第1ターゲットデータに含まれたポートと前記IPマッチングが成功したルールパターンに含まれたポートとをマッチングさせるポートマッチングプロセス遂行ステップをさらに含み、前記ポートフラグがALLに設定された場合には、前記ポートマッチングプロセスを行わないことを特徴とする請求項15に記載のアンチマルウェアシステムにおける動作方法。前記ポートマッチングプロセスの遂行結果、ポートマッチングが成功し、そして前記IPマッチングが成功した場合にのみ前記第1ターゲットデータに対するパターンマッチングを行うことを特徴とする請求項16に記載のアンチマルウェアシステムにおける動作方法。前記第1ターゲットデータと前記ルールパターンに対するパターンマッチングを行うステップは、前記第1ターゲットデータに含まれたIPアドレスに対するハッシュ値と前記ルールパターンに各々含まれたIPアドレスに対するハッシュ値とをマッチングさせるハッシュ値マッチングステップと、前記ハッシュ値のマッチングが成功した場合、前記ハッシュ値のマッチングが成功したルールパターンに含まれたIPアドレスの中間値と最後値と、前記第1ターゲットデータに含まれたIPアドレスの中間値と最後値とを各々マッチングさせるライトパターンマッチングステップと、前記ライトパターンマッチングステップが成功した場合、前記ライトパターンマッチングが成功したルールパターンと前記第1ターゲットデータとをマッチングさせる精密パターンマッチングステップとを含むことを特徴とする請求項7に記載のアンチマルウェアシステムにおける動作方法。前記ハッシュ値マッチングステップは、ハッシュマッチャーテーブルと前記第1ターゲットデータのIPのハッシュ値とを互いにマッチングさせるステップであり、前記ハッシュマッチャーテーブルは、ルールパターンの各々に含まれたIPに対したハッシュ値と、そのハッシュ値の存在有無を表す項目を含んでいることを特徴とする請求項18に記載のアンチマルウェアシステムにおける動作方法。前記ライトパターンマッチングステップは、サブマッチャーテーブルと前記第1ターゲットデータに含まれたIPアドレスの一部値とを互いにマッチングさせるステップであり、前記サブマッチャーテーブルは、ルールパターンの各々に含まれたIPアドレスのハッシュ値を表す項目と、そのIPアドレスの一部を表す項目とを含んでいることを特徴とする請求項18に記載のアンチマルウェアシステムにおける動作方法。前記IPアドレスの一部は、IPアドレスの中間値と最後値であることを特徴とする請求項20に記載のアンチマルウェアシステムにおける動作方法。前記サブマッチャーテーブルは、ルールパターンが格納されたアドレスを表す項目をさらに含み、前記精密パターンマッチングステップは、前記ルールパターンが格納されたアドレスの中で、前記ライトパターンマッチングステップが成功したルールパターンが格納されているアドレスを参照し、参照したアドレスに格納されたルールパターンと前記第1ターゲットデータとをマッチングさせるステップであることを特徴とする請求項20に記載のアンチマルウェアシステムにおける動作方法。前記サブマッチャーテーブルは、Next項目をさらに含み、前記Next項目は、前記IPアドレスのハッシュ値を表す項目に記載されたIPのハッシュ値と衝突されるIPハッシュ値を有する他のルールパターンに対する情報を探索できるデータを表すことを特徴とする請求項20に記載のアンチマルウェアシステムにおける動作方法。前記他のルールパターンに対する情報を探索できるデータは、前記他のルールパターンに対する情報が格納されたアドレスであることを特徴とする請求項23に記載のアンチマルウェアシステムにおける動作方法。前記第2ターゲットデータをフィルタリングするステップは、前記ウイルスパターンのハッシュ値と前記第2ターゲットデータの少なくとも一部のハッシュ値とをマッチングさせるステップと、前記ハッシュ値のマッチングが成功した場合、前記ウイルスパターンと前記第2ターゲットデータとをマッチングさせるステップとを含むことを特徴とする請求項1に記載のアンチマルウェアシステムにおける動作方法。前記ハッシュ値をマッチングさせるステップは、前記第2ターゲットデータの一部に対するハッシュ値と、前記ウイルスパターンに対するハッシュ値をマッチングさせることを特徴とする請求項25に記載のアンチマルウェアシステムにおける動作方法。前記ウイルスパターンと前記第2ターゲットデータとをマッチングさせるステップは、前記ウイルスパターンの一部と前記第2ターゲットデータの一部とをマッチングさせるライトパターンマッチングステップと、前記ライトパターンマッチングが成功した場合、前記ウイルスパターンと前記第2ターゲットデータとをマッチングさせる精密マッチングステップとを含むことを特徴とする請求項25に記載のアンチマルウェアシステムにおける動作方法。前記ライトパターンマッチングステップは、前記第2ターゲットデータの第3位置の値及び第4位置の値と、前記ウイルスパターンの第3位置の値及び第4位置の値とをマッチングさせることであることを特徴とする請求項27に記載のアンチマルウェアシステムにおける動作方法。前記精密マッチングステップは、前記第2ターゲットデータとウイルスパターンとをマッチングさせることを特徴とする請求項27に記載のアンチマルウェアシステムにおける動作方法。ターゲットデータを受信してアンチマルウェアをスキャニングするか、又はフィルタリングするアンチマルウェアシステムであって、マルウェアパターンを格納する格納部と、前記ターゲットデータの少なくとも一部のハッシュ値と、前記マルウェアパターンのハッシュ値とをマッチングさせる第1ハッシュ値マッチング部と、前記ハッシュ値のマッチングが成功した場合、前記マルウェアパターンと前記ターゲットデータの一部とをマッチングさせる第1ライトパターンマッチング部とを備え、前記ライトパターンマッチングが成功した場合、前記マルウェアパターンと前記ターゲットデータの全てとをマッチングさせることを特徴とするアンチマルウェアシステム。前記マルウェアパターンは、ウイルスパターンとルールパターンとを含み、前記受信したターゲットデータがフィルタリング対象である場合、前記第1ハッシュ値マッチング部と第1ライトパターンマッチング部とは、前記ルールパターンと前記ターゲットデータに対して各々のマッチング動作を行うことを特徴とする請求項30に記載のアンチマルウェアシステム。前記受信されたターゲットデータがウイルススキャニング対象である場合、前記第1ハッシュ値マッチング部と第1ライトパターンマッチング部とは、前記ウイルスパターンと前記ターゲットデータに対して各々のマッチング動作を行うことを特徴とする請求項31に記載のアンチマルウェアシステム。前記ターゲットデータが入力されると、前記ターゲットデータをウイルススキャニング対象として認知するアンチマルウェアマネジャーをさらに備え、前記マルウェアは、ウイルスパターンとルールパターンとを備え、前記第1ハッシュ値マッチング部と第1ライトパターンマッチング部とは、前記アンチマルウェアマネジャーの指示により前記ルールパターンとターゲットデータとの間のマッチング動作を行うか、又は前記ウイルスパターンとターゲットデータとの間のマッチング動作を行うことを特徴とする請求項30に記載のアンチマルウェアシステム。前記ターゲットデータの少なくとも一部のハッシュ値と、前記マルウェアパターンのハッシュ値とをマッチングさせる第2ハッシュ値マッチング部と、前記ハッシュ値のマッチングが成功した場合、前記マルウェアパターンと前記ターゲットデータの一部とをマッチングさせる第2ライトパターンマッチング部とをさらに備え、前記マルウェアパターンは、ウイルスパターンとルールパターンとを備え、前記ターゲットデータがフィルタリング対象になる場合、前記第1ハッシュ値マッチング部と前記第1ライトパターンマッチング部とは、前記フィルタリング対象になるターゲットデータと前記ルールパターンとをマッチングさせ、前記ターゲットデータがウイルススキャニング対象になる場合、前記第2ハッシュ値マッチング部と前記第2ライトパターンマッチング部とは、前記ウイルススキャニング対象になるターゲットデータと前記ウイルスパターンとをマッチングさせることを特徴とする請求項30に記載のアンチマルウェアシステム。前記ウイルススキャニング対象になる前記ターゲットデータを受信するアンチウイルスマネジャーをさらに備え、前記マルウェアパターンは、ウイルスパターンとルールパターンとを備えることを特徴とする請求項34に記載のアンチマルウェアシステム。前記第2ハッシュ値マッチング部と前記第2ライトパターンマッチング部とは、前記アンチウイルスマネジャーが受信したターゲットデータと前記ウイルスパターンに対して各々の動作を行うことを特徴とする請求項35に記載のアンチマルウェアシステム。第1ハッシュ値マッチング部及び第1ライトパターンマッチング部は、ハードウェアにより具現化されることを特徴とする請求項30に記載のアンチマルウェアシステム。前記ハードウェアは、前記ターゲットデータを格納するバッファと、前記バッファに格納されたターゲットデータの一部に対するハッシュ値と、前記マルウェアパターンのハッシュ値とをマッチングさせるハッシュマッチャーと、前記ハッシュマッチャーによりハッシュ値がマッチングされた場合、前記ターゲットデータを格納するハッシュQバッファと、前記ハッシュQバッファに格納された前記ターゲットデータの第1位置の値及び第2位置の値と、前記マルウェアパターンの第1位置の値と第2位置の値とをマッチングさせるライトパターンマッチャーとを備えることを特徴とする請求項37に記載のアンチマルウェアシステム。前記ハッシュマッチャーは、前記マルウェアパターンのハッシュ値の存在有無を表すハッシュマッチャーテーブルと前記ターゲットデータの一部に対するハッシュ値とをマッチングさせ、マッチングが成功すると、前記ターゲットデータを前記ハッシュQバッファに格納することを特徴とする請求項38に記載のアンチマルウェアシステム。前記ハードウェアは、スキャンQバッファをさらに備え、前記ライトパターンマッチャーは、前記マルウェアパターンのハッシュ値、第1位置の値と第2位置の値とを有する少なくとも一つのレコードを含むサブマッチャーテーブルと前記ターゲットデータの第1位置の値と第2位置の値とをマッチングさせ、マッチングが成功すると、前記ターゲットデータを前記スキャンQバッファに格納することを特徴とする請求項39に記載のアンチマルウェアシステム。前記マルウェアパターンと前記ターゲットデータの全てとをマッチングさせる動作は、前記スキャンQバッファに格納されたターゲットデータに対して行われることを特徴とする請求項40に記載のアンチマルウェアシステム。前記ハードウェアは、前記サブマッチャーテーブルのレコードの中で、前記ハッシュQバッファに格納されるターゲットデータのハッシュ値を有したレコードを格納するアドレスを発生させるオフセットアドレスジェネレーターをさらに備えることを特徴とする請求項40に記載のアンチマルウェアシステム。前記オフセットアドレスジェネレーターにより発生したアドレスは、前記ハッシュQバッファに格納されるターゲットデータと関連されて、前記ハッシュQバッファに共に格納されることを特徴とする請求項42に記載のアンチマルウェアシステム。デバイスをさらに備え、前記格納部と前記第1ハッシュ値マッチング部とは、システムオンチップの形態で具現化され、前記システムオンチップは、デバイスに着脱自在に装着され、前記デバイスから前記ターゲットデータを受信してアンチマルウェアスキャニング又はフィルタリング動作を行い、遂行結果を前記デバイスに通知することを特徴とする請求項30に記載のアンチマルウェアシステム。本発明の一実施の形態によれば、高速でマルウェアをフィルタリングしスキャニングできるアンチマルウェアシステム及びその動作方法を提供することをその目的とする。本発明の他の実施の形態によれば、限定されたリソースを有したモバイルデバイスにおいて高速でマルウェアをフィルタリングしスキャニングできるアンチマルウェアシステム及びその動作方法を提供することをその目的とする。本発明の一実施の形態によれば、アンチマルウェアシステムにおける動作方法は、フィルタリング対象であるデータ以下、第1ターゲットデータとするとルールパターンとをマッチングさせることによって、前記第1ターゲットデータに対してフィルタリング動作を行うステップと、ウイルススキャニング対象になるデータ以下、第2ターゲットデータとするとウイルスパターンとをマッチングさせることによって、前記第2ターゲットデータに対してウイルススキャニング動作を行うステップとを含み、前記フィルタリング動作と前記スキャニング動作とは、システムオンチップ上で動作する。一方、本発明の他の実施の形態によれば、ターゲットデータを受信してアンチマルウェアをスキャニングするか、又はフィルタリングするアンチマルウェアシステムは、マルウェアパターンを格納する格納部と、前記ターゲットデータの少なくとも一部のハッシュ値と、前記マルウェアパターンのハッシュ値とをマッチングさせる第1ハッシュ値マッチング部と、前記ハッシュ値のマッチングが成功した場合、前記マルウェアパターンと前記ターゲットデータの一部とをマッチングさせる第1ライトパターンマッチング部とを備え、前記ライトパターンマッチングが成功した場合、前記マルウェアパターンと前記ターゲットデータの全てとをマッチングさせる。本発明の一実施の形態によれば、限定されたリソースを有したモバイルデバイスにおいて高速でマルウェアをフィルタリングしスキャニングできる。本発明の一実施の形態によれば、モバイルデバイスのメインCPU外のシステムオンチップ自体にCPUを使用することによって、メインCPUに負荷を与えずにアンチマルウェアシステムの役割を果たすことができる。本発明の一実施の形態によれば、本アンチマルウェアシステムは、SoC形態でハードウェアロジックとソフトウェアモジュールとの結合で複数の部品が集積化されることが可能なので、速い変化が要求されるソフトウェアの機能的な部分を満足させることができる。そして、ソフトウェアの変更事項を反映でき、ウイルスDB部分に対するアップデート処理に柔軟な対応が可能である。特に、ポータブルなデバイスで高性能及び低電力の要求事項を満足させるのに適している。また、本発明の一実施の形態によれば、SoC上においてハードウェアロジックである防火壁エンジンを利用して、パケットに対するフィルタリングを速かに処理でき、SoC上においてハードウェアロジックであるアンチウイルスエンジンを利用して、ファイルに対するパターンのマッチング結果を速かに処理できるという効果がある。また、SoC上においてソフトウェアが直接パターンマッチングに関連した作業を行って同じパターンを検出するために、必要によっていつでも容易にアルゴリズムをアップデートできるという効果がある。以上の本発明の目的、他の目的、特徴及び利点は、添付された図面と関連した以下の好ましい実施の形態により容易に理解されるはずである。しかしながら、本発明は、ここで説明される実施の形態に限定されずに他の形態で具体化されることもできる。むしろ、ここで紹介される実施の形態は、開示された内容が徹底かつ完全になるように、そして当業者に本発明の思想を十分に送信させるために提供されることである。本明細書において、ある構成要素が他の構成要素上にあると言及される場合に、それは、他の構成要素上に直接形成されうるか、又はそれらの間に第3の構成要素が介在されうることを意味する。本明細書で使用された用語は、実施の形態を説明するためのもので、本発明を制限しようとするものではない。本明細書において、単数型は、特に言及しない限り、複数型も含む。明細書で使用される含むcomprises及び/又は含むcomprisingと言及された構成要素は、一つ以上の他の構成要素の存在又は追加を排除しない。以下、図面を参照して本発明を詳細に説明する。以下の特定実施の形態を述べるにおいて、色々な特定な内容は、発明をさらに具体的に説明し理解を助けるために作成された。しかしながら、本発明を理解することができる程度のこの分野における知識を有した読者は、このような色々な特定な内容がなくても使用されうることを認知できる。ある場合には、発明を述べるにおいて周知で発明と大きく関連のない部分は、本発明を説明するにおいて特別な理由なしで混乱を引き起こすことを防止するために述べないことを予め言及しておく。本発明の実施の形態においてアンチマルウェアAnti-malware機能を行うアンチマルウェアシステムは、SoC基盤で単独チップ形態で具現化されたり、既存のアプリケーションプロセッサ内に一つのIPチップの形態で具現化されることができる。携帯電話、スマートフォン、タブレットPCなどをはじめとする多数のモバイルデバイスは、部品間のインターフェース規格が標準化しておらず、かつ機能別に多様なラインを有するモデルが多い。したがって、本発明において説明する構成の例は、一つの実施の形態に過ぎず、インターフェース状況別に本発明の具現例は異なり得る。また、本発明の実施の形態では、モバイルデバイスを例に挙げて説明するが、一般PCのようなコンピュータデバイスにも適用可能であることはもちろんである。図1は、本発明の実施の形態に係るアンチマルウェアシステムを含むモバイルデバイスを示すブロック図である。図1に示すように、アンチマルウェアシステム100は、単独チップ形態で具現化されてモバイルデバイスに装着されうる。アンチマルウェアシステム100は、モバイルプロセッサ10とデータ及びアドレス信号、リード及びライトreadandwrite信号、制御control信号をやり取りする。また、アンチマルウェアシステム100は、デバッグポート20とデバッギングdebuggingのためのUARTUniversalAsynchronousReceiverTransmitter、GPIOGeneralPurposeInput/OutputPinを介して通信する。アンチマルウェアシステム100は、NICNetworkInterfaceCard30を有する周辺装置と通信するためのSPISerialPeripheralInterfaceを備えることができる。アンチマルウェアシステム100は、ワイパイWiFi40を有する割込み処理のためのGPIOを含むことができる。図2は、本発明の実施の形態に係るアンチマルウェアシステムを示すブロック図である。図2に示すように、アンチマルウェアシステム100は、コンフィギュアバス101、125、CPU103、DMADirectMemoryAccessコントローラ105、ローカルバス107、131、SDRAMSynchronousDynamicRandomAccessMemoryコントローラ109、フラッシュコントローラ111、SRAMStaticRandomAccessMemoryコントローラ113、バッファ115、アンチウイルスH/W117、防火壁H/W119、バスマトリックス121及びブート123を備える。アンチマルウェアシステム100は、SDRAM127、フラッシュメモリ129、及びSRAM130をさらに備えることができる。CPU103は、アンチマルウェアシステム100を全般的に制御し、要求される作業を処理する。本発明の一実施の形態においてCPU103は、再構成可能なCPUであるが、これは、例示的なものであって、再構成可能なCPUでなくても本願発明に使用されることができる。DMAコントローラ105は、DMAを制御する役割を果たす。図2においてメモリコントローラは、SDRAMコントローラ109、フラッシュコントローラ111及びSRAMコントローラ113を備えることができる。SDRAMコントローラ109は、SDRAM127に対する入出力を制御する。フラッシュコントローラ111は、フラッシュメモリ129に対した入出力を制御する。SRAMコントローラ113は、SRAM130に対する入出力を制御する。バッファ115は、外部とのインターフェースを介してデータを一時格納する。アンチウイルスハードウェアH/W117は、ウイルススキャニング対象になるターゲットデータとウイルスパターンとの間にマッチング動作を行うことができる。例えば、ウイルスパターンDBDatabaseは、SRAM130に格納されていることができ、アンチウイルスH/W117は、ウイルスパターンDBとターゲットデータとの間のマッチング動作を行うことができる。防火壁ハードウェアH/W119もハードウェアで具現化されて、フィルタリング対象になるターゲットデータとルールパターンDBとをマッチングさせる動作を行うことができる。例えば、ルールパターンDBは、SRAM130に格納されていることができ、防火壁H/W119は、ルールパターンDBとターゲットデータとの間のマッチング動作を行うことができる。アンチウイルスH/W117を駆動するソフトウェアや防火壁H/W119を駆動するソフトウェアは、メモリ127、129、130のうちの何れか一つにロードされて、ハードウェア117、119を制御する。アンチマルウェアシステム100において各ブロック間のデータ送信のためのバスは、データの迅速な送信のためのローカルバス107、131と、コンフィギュレーションconfigurationのためのコンフィギュアconfigureバス101、125とに区分できる。本発明においてローカルバス107とコンフィギュアバス101、125とは、AHBAdvancedHighPerformanceBus規格からなっていることができる。バスマトリックス121は、AHB規格の制御信号とデータ信号をAPBAdvancedPeripheralBus規格の制御信号とデータ信号に変換したり、APB規格の制御信号とデータ信号をAHB規格の制御信号とデータ信号に変換して送信する役割を果たす。ブート123は、SoCにおいてアンチマルウェアシステム100が初期動作されるようにする役割を果たす。以下、図3~図11を参照して、本発明の多様な実施の形態に係るアンチマルウェアシステムについて説明する。図3~図11に示す第1~4アンチマルウェアシステム300、800、900、1200は、図1及び図2を参照して説明したアンチマルウェアシステム100の一実施の形態である。第1~4アンチマルウェアシステム300、800、900、1200は、SoC形態で具現化されたり、あるいはPC、モバイル機器などネットワーク通信が可能な機器自体に搭載されたりすることができる。したがって、第1~4アンチマルウェアシステム300、800、900、1200が搭載された機器は、第1~4アンチマルウェアシステム300、800、900、1200を使用するためのドライバー図示せずとアプリケーション部図示せずとを備えることができる。すなわち、第1~4アンチマルウェアシステム300、800、900、1200が機器内で動作するためには、ソフトウェア的階層構造に従って第1~4アンチマルウェアシステム300、800、900、1200上にドライバーがインストールされ、ドライバー上にアプリケーション部がインストールされることができる。図3は、本発明の一実施の形態に係る第1アンチマルウェアシステム300の機能を説明するための機能ブロック図である。図3に示すように、第1アンチマルウェアシステム300は、マネジャー310、ルールパターンDB320、ウイルスパターンDB330、防火壁FW:Firewallエンジン340、マッチング部350及びアンチウイルスAV:Anti-Virusエンジン360を備えることができる。マネジャー310は、ルール関連設定、ルールパターンDB320の生成/削除/追加/変更及びウイルスパターンDB330のアップデート生成/削除/追加/変更を担当し、ユーザ命令を処理する。ユーザ命令は、例えば、防火壁エンジンのアップデートやアンチウイルスエンジンと関連した命令でありうる。まず、マネジャー310がルールパターンDB320を生成する動作について説明する。マネジャー310は、資料構造であるコマンドリストCommandListとルールリストRuleListとを含み、このような資料構造を処理する防火壁コマンダーFWCommanderモジュールとルールマネジャーRuleManagerモジュールとを備えることができる。ユーザが防火壁アプリケーションが提供する防火壁UIUserInterfaceを介して防火壁ルール設定を行うと、防火壁コマンダーは、ユーザの設定に該当する命令語をマネジャー310のコマンドリストに追加し、マネジャー310を活性化wakeupさせる。コマンドリストに追加された命令語がルール追加命令であると、防火壁コマンダーは、ルール追加命令のデータフィールドにある情報に基づいてルールパターンを生成してルールリストに追加できる。そして、ルール適用命令がコマンドリストに追加されると、防火壁コマンダーは、ルールマネジャーを呼び出してルールリストに登録されたルールパターンに基づいてルールパターンDB320を生成又はアップデートできる。ルールパターンDB320は、パケットの通過有無を決めたルールパターンの集合体である。このようなルールパターンDB320は、マネジャー310がユーザアプリケーションからルールに関するリストを受信して生成したことでありうる。また、マネジャー310は、ルールパターンDBを防火壁エンジンが使用できるように所定のメモリ又はバッファにロードさせる機能を行うことができる。また、ユーザアプリケーションがルールパターンDB自体をマネジャー310に送信し、マネジャー310は、そういうルールパターンDBを受信した後防火壁エンジンが使用できるように、所定のメモリ又はバッファにロードさせる機能を行うように構成することも可能である。ルールパターンDB320は、ユーザにより直接設定されたルールパターンを決まった形態に変換してDB化したことでありうる。ルールパターンは、各々、ターゲットデータを許容ALLOWするか、又は遮断BLOCKするかに対する情報を有していることができる。したがって、ルールパターンDB320又はルールパターンは、FWエンジン340が外部から流入したターゲットデータを許容するか、又は遮断するかを判断するために用いられる。このようなルールパターンDB320は、FWエンジン340がルールパターンの各々のハッシュ値を生成するのに用いられ、ハッシュ値マッチング、LPMLightPatternMatching及びEPMExactPatternMatchingを行う際にも用いられることができる。ウイルスパターンDB330は、ウイルスパターンの集合体であって、AVエンジン360がウイルススキャニング動作を行う際に用いられることができる。マネジャー310は、AVアプリケーション図示せずからウイルスパターンDBを受信して、所定の格納部に格納することができる。マネジャー310は、既格納されたウイルスパターンDBをアップデートする機能を行うことができる。ウイルスパターンは、ターゲットデータのウイルス感染の有無を検出するために、AVエンジン360がターゲットデータとのマッチング動作を行う際に用いられることができる。ルールパターンDB320とウイルスパターンDB330とは、SoCに備えられたメモリ例えば、図2のフラッシュメモリ129に又は別に備えられたメモリ図示せずに格納されていることができる。具体的に、ウイルスパターンDB330は、AVエンジン360がウイルスパターンの各々のハッシュ値を生成する際に用いられるか、又はターゲットデータとウイルスパターンとを利用してLPM、EPM及びFPMを行う際に用いられることができる。ウイルスパターンDB330は、文法的に決まった簡単なウイルスパターンを集めたことでありえ、又は文法的に複雑なウイルスパターンを集めたことでもありえ、又は文法的に簡単なウイルスパターンと文法的に複雑なウイルスパターンとが混在したことでありうる。文法的に簡単なウイルスパターン又は複雑なウイルスパターンに対する定義は、韓国特許出願第10-2010-0049566号2010.5.27日付出願と韓国特許出願第10-2010-00529812010.6.4日付出願に記載されており、そういうパターンに対する定義と内容は、本願と相反しない範囲内で本願明細書の一部として結合される。本発明の一実施の形態に係るマネジャー310は、ユーザアプリケーションから受信される命令やデータなどを解析して、それに対応する動作を行うことができる。例えば、スキャニング動作と関連した命令を受信した場合には、AVエンジン360を動作させることができ、ウイルスパターンDBのアップデート命令を受信した場合には、ウイルスパターンDB330をアップデートさせることができる。また、マネジャー310は、スキャニング対象になるファイルをユーザアプリケーションから受信し、受信したスキャニング対象になるファイルに対してAVエンジン360がスキャニング動作を行うように指示でき、そしてAVエンジン360のスキャニング結果をユーザアプリケーションに送信することもできる。一方、FWエンジン340の動作と関連して、マネジャー310は、ユーザアプリケーションからフィルタリング結果報告指示を受信することができ、そういう指示に対応してFWエンジン340のフィルタリング結果をユーザアプリケーションに送信できる。マネジャー310は、アプリケーションから所定の命令又はデータを受信すると、それがスキャニングと関連したものであるか、フィルタリングと関連したものであるかを解析し、それに対応する動作を行う。例えば、マネジャー310は、スキャニング命令を受信した場合には、AVエンジン360を動作させてスキャニング動作を行うようにすることができる。ターゲットデータは、ウェブブラウザ又は各種ファイルを生成及び管理するアプリケーション部図示せずから入力されることができる。マネジャー310は、ターゲットデータがファイル形態であると、ウイルススキャニング対象であると判断し、ターゲットデータをAVエンジン360に提供できる。このとき、マネジャー310は、ターゲットデータに対してウイルススキャニングを行うように、AVエンジン360の動作を制御できる。また、マネジャー310は、アプリケーション部図示せずからアップデートするウイルスパターンが入力されると、入力されるウイルスパターンを利用してウイルスパターンDB330をアップデートできる。このようなマネジャー310は、FWエンジン340を管理又は制御するFWマネジャーとAVエンジン360を管理又は制御するAVマネジャーとに区分されることもできる。以下では、フィルタリング対象であるターゲットデータを第1ターゲットデータ、ウイルススキャニング対象であるターゲットデータを第2ターゲットデータとする。本発明の一実施の形態に係るマッチング部350は、選択的にルールパターンと第1ターゲットデータとの間のマッチング動作を行うか、又はウイルスパターンと第2ターゲットデータとの間のマッチング動作を行うことができる。マッチング部350は、ある瞬間には、FWエンジン340の一部として動作し、他の瞬間には、AVエンジン360の一部として動作できる。動作順序は、所定のスケジューラによって適切に行われることができる。第1ターゲットデータが受信されると、FWエンジン340は、ルールパターンDBに基づいて第1ターゲットデータを遮断するか、又は通過させるかを判断する。例えば、FWエンジン340は、ルールパターンDB320と第1ターゲットデータとが互いに一致しているか否かを判断し、一致すると判断された場合、FWエンジン340は、決まったルールに従って第1ターゲットデータを遮断又は通過させる。一方、第2ターゲットデータが受信されると、AVエンジン360は、ウイルスパターンDBを利用して第2ターゲットデータに対するスキャニング動作を行うことができる。本発明の一実施の形態によれば、スキャニング動作の対象になる第2ターゲットデータは、マネジャー310が受信することができ、AVエンジン360は、マネジャー310が受信した第2ターゲットデータに対してスキャニング動作を行う。図4は、図3のFWエンジン、AVエンジン及びマッチング部を説明するための図である。図4に示すように、本実施の形態に係るFWエンジン340とAVエンジン360とは、マッチング部350を共有する。ここで、FWエンジン340、AVエンジン360及びマッチング部350は、SoCの形態で具現化されることができる。FWエンジン340は、ルールパターンDB320、第1ハッシュマッチャーテーブル370、及び第1サブマッチャーテーブル375を利用してパケットのようなターゲットデータに対してフィルタリング動作を行うことができる。AVエンジン360は、ウイルスパターンDB330、第2ハッシュマッチャーテーブル380、及び第2サブマッチャーテーブル385を利用して、ファイルのようなターゲットデータに対してスキャニング動作を行うことができる。FWエンジン340がフィルタリング動作を行う際には、マッチング部350は、FWエンジン340の一部として動作し、AWエンジン360がスキャニング動作を行う際には、マッチング部350は、AVエンジン360の一部として動作する。好ましくは、マッチング部350は、ハードウェアとして構成され、本実施の形態においてマッチング部350は、ハッシュ値マッチング部351及びライトパターンマッチング部352を備えることができる。第1ハッシュマッチャーテーブル370及び第1サブマッチャーテーブル375は、ルールパターンDB320のルールパターンから生成されることができ、第2ハッシュマッチャーテーブル380及び第2サブマッチャーテーブル385は、ウイルスパターンDB330のウイルスパターンから生成されることができる。これらのテーブル370、375、380、385の生成方法については、図5~図7を参照して詳細に後述する。FWエンジン340のフィルタリング動作を説明する。本発明の一実施の形態によれば、FWエンジン340が行うフィルタリング動作は、パケット分類プロセスと、ルールパターンパターンマッチング動作から構成される。パケット分類プロセスには、IPマッチングプロセス、プロトコルマッチングプロセス、及び/又はポートマッチングプロセスが含まれ、これらのプロセスは、ハッシュ値マッチング部351及びライトパターンマッチング部352により行われる。パケット分類プロセスでは、精密パターンマッチング動作が行われない。IPマッチングプロセスを説明すれば、ハッシュ値マッチング部351は、パケットデータに含まれたIPアドレスのハッシュ値が第1ハッシュマッチャーテーブル370をマッチングさせ、マッチングが成功すると、ライトパターンマッチング部352は、パケットデータに含まれたIPアドレスの中間値及び最後値と第1サブマッチャーテーブル375とをマッチングさせる。ポートマッチングプロセスを説明すれば、ハッシュ値マッチング部351は、パケットデータに含まれたポートのハッシュ値と第1ハッシュマッチャーテーブル370とをマッチングさせ、マッチングが成功すると、ライトパターンマッチング部352は、ハッシュ値マッチングが成功したパケットデータに含まれたIPアドレスのハッシュ値、及びプロトコルのハッシュ値と第1サーバマッチャーテーブル375とをマッチングさせる。プロトコルマッチングプロセスを説明すれば、ハッシュ値マッチング部351は、パケットデータに含まれたプロトコルのハッシュ値と第1ハッシュマッチャーテーブル370とをマッチングさせる。本実施の形態において、プロトコルマッチングプロセスでは、ライトパターンマッチング部352によるライトパターンマッチング動作が行われず、ハッシュ値マッチング動作までのみ行う。以上説明したマッチングプロセスを、ハッシュ値マッチング部351とライトパターンマッチング部352とは、それぞれ順次行う。これらのIPマッチングプロセス、ポートマッチングプロセス、及びプロトコルマッチングプロセスについては、図21以下の図面を参照して詳細に後述する。FWエンジン340は、パケットデータに対するパケット分類プロセスを完了すると、ルールパターンマッチング動作を行う。ルールパターンマッチング動作は、すべてのパケットデータに対して行われることではなく、パケット分類プロセス結果、ルールパターンマッチングを行うことと分類されたパケットデータに対してのみ行われる。パケット分類プロセスについては、図21を参照して詳細に後述する。ルールパターンマッチング動作は、ハッシュ値マッチング部351及びライトパターンマッチング部352により行われ、ライトパターンマッチングが成功すると、精密パターンマッチング動作が行われる。以下、これらの動作を各々説明する。ルールパターンマッチング動作を行う際のハッシュ値マッチング部351は、パケットデータに含まれたIPアドレスのハッシュ値と第1ハッシュマッチャーテーブル370とをマッチングさせる。ハッシュ値マッチングが成功すると、ライトパターンマッチング部352は、ハッシュ値がマッチングされたパケットデータに含まれたIPアドレスの中間値及び最後値と第2サブマッチャーテーブル375とをマッチングさせる。ライトパターンマッチングが成功すると、FWエンジン340は、ライトパターンマッチングが成功したパケットデータのヘッダ情報ソースIPアドレス、デスティネーションIPアドレス、プロトコル、ソースポート、デスティネーションポート、入出力方向等と、実際ルールパターンとをマッチングさせる。以上説明したように、ハッシュ値マッチング部351とライトパターンマッチング部352とは、パケット分類プロセス動作とルールパターンマッチング動作とを順次行うことができる。第1ハッシュマッチャーテーブルと第1サブマッチャーテーブルとは、パケット分類プロセスとルールパターンマッチング動作に共通的に使用されうるが、これとは異なり、パケット分類プロセスのためのハッシュマッチャーテーブル及びサブマッチャーテーブルと、ルールパターンマッチング動作のためのハッシュマッチャーテーブル及びサブマッチャーテーブルを各々別に設けることも可能である。本発明の一実施の形態によれば、ルールパターンDBは、ソースIPアドレス、デスティネーションIPDestinationIPアドレス、プロトコル、ソースポート、デスティネーションポート、TCPフラグ及びパケットの入出力方向ののうち、少なくとも一つを含むことができる。ここで、パケットの入出力方向は、第1ターゲットデータが外部に送信されるか、又はNICを介して外部から受信されるかを示す。本発明の一実施の形態によれば、FWエンジン340は、ルールパターンDBを参照して図5のように第1ハッシュマッチャーテーブル370と第1サブマッチャーテーブル375とを生成できる。本実施の形態において、第1ハッシュマッチャーテーブル370と第1サブマッチャーテーブル375とをFWエンジン340が生成すると説明したが、これは例示に過ぎず、これらのテーブルを生成する構成要素を別に用意したり又は他の構成要素例えば、マネジャーが前記テーブルを生成するように構成することも可能である。図5は、本発明の一実施の形態に係る第1ハッシュマッチャーテーブル370と第1サブマッチャーテーブル375とを示した図である。図5に示すように、aは、ヘッダ情報を示した一例で、bは、ハッシュマッチャーテーブルの一例で、そしてcは、サブマッチャーテーブルの一例である。本実施の形態において、防火壁エンジンは、ルールパターンDBに格納されたパターンルールを利用して、ハッシュマッチャーテーブルを生成できる。具体的に、防火壁エンジンは、所定のハッシュ関数を利用してルールパターンに各々含まれたIPaddress各々に対してハッシュ値を全部求め、このように求めたハッシュ値を図5のbのようなハッシュマッチャーテーブルの形態で構成できる。図5のbに示すように、ハッシュマッチャーテーブルは、インデックスと、そのインデックスの存在有無を表す存在有無項目を含み、ここでインデックスは、前記所定のハッシュ関数を介して導出されうる可能なすべてのハッシュ値で決められ、前記ルールパターンが有した各々のIPaddressに対するハッシュ値と同じ値を有するインデックスに対して存在有無項目の値が1と設定される。ハッシュマッチャーテーブルは、また、プロトコルに対するハッシュ値とポートに対するハッシュ値をも含む。防火壁エンジンは、サブマッチャーテーブルも生成できる。防火壁エンジンは、ルールパターンDBがアップデートされるごとにサブマッチャーテーブルを新しく生成し、前記ハッシュマッチャーテーブルも新しく生成する。防火壁エンジンは、サブマッチャーテーブルをルールパターンDB及び/又はハッシュマッチャーテーブルから生成できる。サブマッチャーテーブルは、インデックス、mid項目、tail項目、ispro項目、isport項目、実際パターンメモリアドレス項目、及びnext項目を含む。理解の便宜のために、図5cを参照してサブマッチャーテーブルを説明するようにする。図5cの第1番目のレコードには、インデックスがXで、mid項目が0x03で、tail項目が0x21で、ispro項目が1で、isport項目が1で、実際パターンメモリアドレスがOx0001で、next項目がRである。サブマッチャーテーブルのインデックスに記載された値は、ハッシュマッチャーテーブルにおいて存在有無項目の値が1であるインデックス値から構成される。すなわち、サブマッチャーテーブルの第1番目のレコードのインデックスXは、ハッシュマッチャーテーブルにも存在するものであって、存在有無項目の値が1であることが分かる。一方、Rのようにハッシュマッチャーテーブルに存在しない値が、サブマッチャーテーブルのインデックス値として存在しているが、これは、ルールパターンは、互いに異なるが、IPaddressのハッシュ値は互いに同じである場合すなわち、ハッシュ衝突のために設けられたことである。例えば、ルールパターンAとルールパターンBとは、互いに異なるIPaddressを有しているが、ルールパターンAに含まれたIPaddressのハッシュ値とルールパターンBに含まれたIPaddressのハッシュ値とが互いに同じである場合すなわち、両方ともXというハッシュ値を有することができるが発生できるハッシュ衝突。このような場合、図5のcのサブマッチャーテーブルに示したように、ルールパターンAに対したIPaddressのハッシュ値をXと記載し、ルールパターンBに対したIPaddressのハッシュ値は、Rと記載した後、Next項目にRと記載する。このような場合、インデックスがXであるレコードに対してサブマッチングを行った結果、サブマッチングが成功されないと、インデックスがRであるレコードに対してサブマッチングを再度行う。本発明の一実施の形態によれば、next項目に記載されたRは、インデックスがXであるレコードが格納されたメモリアドレスと、インデックスがRであるレコードが格納されたメモリアドレス間の差と定義されうる。サブマッチャーテーブルにおいてインデックス項目に記載される値例えば、X、A、Bは、ハッシュマッチャーテーブルから導出されうるが、ハッシュマッチャーテーブルを使用せずにルールパターンDBから直接導出されることもできる。すなわち、ルールパターンDBのルールパターンが各々有するIPaddressに対するハッシュ値を求めると、これらのハッシュ値がサブマッチャーテーブルでのインデックスとして記載されることができる。サブマッチャーテーブルの第1番目のレコードのインデックスXは、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox0001 ́に格納されたルールパターンのIPaddressに対するハッシュ値である。サブマッチャーテーブルのmid項目の値0x03は、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox0001 ́に格納されたルールパターンのIPaddressの中間バイトの値である。サブマッチャーテーブルのtail項目の値0x21は、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox0001 ́に格納されたルールパターンのIPaddressの最後のバイトの値である。サブマッチャーテーブルのispro項目の値1であることは、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox0001 ́に格納されたルールパターンは、すべてのプロトコルに対して適用されるということを表す。サブマッチャーテーブルのisport項目の値1であることは、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox0001 ́に格納されたルールパターンは、すべてのポートに対して適用されるということを表す。以上説明した部分は、IPマッチングプロセスのためのものであって、図5cのサブマッチャーテーブルにおいてIPsubと表示した領域についての説明であった。これから、図5cのサブマッチャーテーブルにおいてPortsubと表示した領域を説明する。この領域の値は、ポートマッチングプロセスの遂行のために使用される。図5cのサブマッチャーテーブルにおいてインデックスAは、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox2000 ́に格納されたルールパターンのポートのハッシュ値がすべてのポートに対して適用されるということを表す。一方、IPhash項目に記載されたCは、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox2000 ́に格納されたルールパターンに含まれたIPaddressのハッシュ値である。Protohash項目に記載されたDは、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox2000 ́に格納されたルールパターンに含まれたポートのハッシュ値である。インデックスBは、IPaddressハッシュ値が衝突した場合のために用意した値である。以上説明したハッシュマッチャーテーブルとサブマッチャーテーブルとは、防火壁エンジンにより生成されうるが、防火壁エンジンでなくて別に備えられた他の構成要素により生成されることもできる。以下、AVエンジン360のスキャニング動作を説明する。AVエンジン360は、マネジャー310を介して受信される第2ターゲットデータに対してウイルスが存在しているか否かを判断するために、ウイルスパターンDB330を利用してスキャニング動作を行う。本発明の一実施の形態によれば、AVエンジン360のウイルススキャニング動作は、FWエンジン340のフィルタリング動作と交互に行われうる。又は、両エンジンの中で何れか一方のエンジンが動作に対する優先順位を持つことができ、優先順位は、デフォルトとして与えられるか、ユーザの設定により決まることができる。本発明の一実施の形態に係るAVエンジン360は、第2ターゲットデータを構成するサブデータとウイルスパターンとのパターンマッチング動作を行うことができる。このようなAVエンジン360は、ハードウェア及び/又はソフトウェアにより具現化されることができる。AVエンジン360は、ウイルスパターンDB330のウイルスパターンに対するハッシュ値を生成できる。AVエンジン360は、ウイルスパターンデータにハッシュ関数を適用して、ウイルスパターンのハッシュ値を生成できる。例えば、ウイルスパターンデータが23バイトからなっていると仮定すると、AVエンジンは、そういうウイルスパターンデータの第1番目のバイトから第3番目のバイト値までをハッシュ関数に入力してハッシュ値を求め、第2番目のバイトから第4番目のバイト値までをハッシュ関数に入力してハッシュ値を求め、このような方式で23バイトに対するすべてのハッシュ値を求めて、後述する第2ハッシュマッチャーテーブル380と第2サブマッチャーテーブル385とを生成できる。したがって、場合によっては、互いに異なるウイルスパターンに対して同じハッシュ値が生成されることもできる。本実施の形態において、AVエンジン360がマッチャーテーブル380、385を生成すると説明したが、これは、例示に過ぎず、これとは異なって構成することも可能である。例えば、マッチャーテーブル380、385を生成する別途の構成要素を備えるか、他の構成要素例えばマネジャーがマッチャーテーブル380、385を生成するように構成することが可能である。図6は、AVエンジン360が使用するパターンハッシュ値テーブルの一例を示す図である。図6に示すように、パターンハッシュ値テーブルにおいて、ウイルスパターンと、そのウイルスパターンから求めたハッシュ値は、互いに対応している。例えば、Xというハッシュ値を有するウイルスパターンは、abcdefgである。本発明の一実施の形態に係るAVエンジン360は、第2ターゲットデータに対するハッシュ値を生成できる。例えば、第2ターゲットデータが事前に定義された大きさに分割されたサブデータS1,S2,S3、...からなると仮定した場合、AVエンジン360は、これらのサブデータの各々に対するハッシュ値HSを生成できる。本発明の一実施の形態に係る、AVエンジン360は、サブデータの一部をハッシュ関数に入力することによってハッシュ値を求めることができる。例えば、サブデータが15バイトからなっていると仮定すると、AVエンジン360は、サブデータの第1番目のバイトから第3番目のバイトまでの値をハッシュ関数に入力してハッシュ値を生成でき、第2番目のバイトから第4番目のバイトまでの値をハッシュ関数に入力してハッシュ値を生成でき、第3番目のバイトから第5番目のバイトまでの値をハッシュ関数に入力してハッシュ値を生成でき、こういう方式で残りのバイトに対するハッシュ値を生成することもできる。本発明の一実施の形態によれば、第2ハッシュマッチャーテーブル380は、ハッシュ値マッチング部351で使用され、第2サブマッチャーテーブル385は、ライトパターンマッチング部352及び精密マッチング動作時に使用されることができる。本発明の一実施の形態に係るハッシュ値マッチング部351は、第2ターゲットデータの少なくとも一部に対するハッシュ値HT1と第2ハッシュ値マッチャーテーブルとをマッチングさせる。第2ターゲットデータがサブデータに分割された場合、ハッシュ値マッチング部351は、各サブデータの一部に対するハッシュ値と第2ハッシュ値マッチャーテーブルとをマッチングさせる。以下では、サブデータを例に挙げて説明する。図7に示すように、第2ハッシュマッチャーテーブル380のうち、1がチェックされたマッチングインデックスは、ウイルスパターンのハッシュ値HPのうちの何れか一つである。第2ハッシュマッチャーテーブル380のうち、1がチェックされたマッチングインデックス例えば、XとYと、サブデータのハッシュ値HSと一致するマッチングインデックスがあると、ハッシュ値マッチングが成功したと判断されうる。図7の実施の形態において、サブデータのハッシュ値HSがX又はYであうと、ハッシュ値マッチングが成功したと判断されうる。ハッシュ値のマッチングが成功すると、ライトパターンマッチング部352は、ハッシュ値マッチングが成功したサブデータ及び第2ハッシュマッチャーテーブル380を利用してLPMを行う。詳細に説明すれば、ライトパターンマッチング部352は、ハッシュ値HSと一致するマッチングインデックス例えば、Xに該当するウイルスパターンとサブデータのパターンとをマッチングする動作を行うことができる。LPMは、互いにマッチングされるハッシュ値HP1を有するウイルスパターンの中間値と最後値、そしてサブデータの中間値と最後値とを互いにマッチングさせる動作である。本発明の一実施の形態によれば、ライトパターンマッチング部352は、サブデータの中間値と最後値とを第2サブマッチャーテーブル385とマッチングさせる。LPMが失敗した場合、すなわち、中間値が互いに一致しないか、又は最後値が互いに一致しないと、サブデータには、ウイルスパターンが存在しないことを意味する。したがって、サブデータは、正常データであると判断されることができる。反面、LPMが成功した場合、AVエンジン360は、ウイルスパターン、サブデータ及び第2サブマッチャーテーブル385を利用してEPMを行うことができる。EPMは、ハッシュ値HP1を有するウイルスパターンとサブデータのすべての位置を比較してパターンをマッチングする動作である。詳細に説明すれば、AVエンジン360は、第2サブマッチャーテーブル385を参照してマッチングインデックスXにマッピング格納されたウイルスパターンのアドレスを確認する。AVエンジン360は、確認されたアドレスに格納されたウイルスパターンをウイルスパターンDB330から読み込む。AVエンジン360は、該当アドレスに格納されたウイルスパターンの全体パターンであるabcdefgと第2ターゲットデータの全体パターンとをマッチングさせる。EPMが成功した場合、すなわち、すべての位置の値が互いに一致する場合、AVエンジン360は、ターゲットデータにウイルスが存在すると判断できる。一方、あるサブデータに対してスキャニングした結果、EPMが成功しても、そのサブデータが文法的に複雑なウイルスパターンの一部である場合には、FPMを行う。例えば、AVエンジン360は、EPMが成功したサブデータが文法的に複雑なウイルスパターンの一部と一致した場合、残りのサブデータに対するマッチング動作を行う。AVエンジン360は、サブデータの各々に対するマッチング結果と、ウイルスパターンとを比較して文法的に複雑なウイルスパターンとマッチングされるか否かを判断できる。本発明の一実施の形態によれば、サブデータに対する各々のEPM結果は、サブパターンマトリックスに記録され、AVエンジン360は、そういうサブパターンマトリックスを参照して、ターゲットデータにウイルスが存在しているか否かを判断できる。このように、サブパターンマトリックスを参照して、ターゲットデータにウイルスが存在しているか否かを判断する過程は、フルマッチング動作の一実施の形態に該当する。FPM結果、互いにマッチングされないと、AVエンジン360は、第2ターゲットデータが正常データであると判断できる。反面、FPM結果、互いにマッチングされると、AVエンジン360は、第2ターゲットデータがウイルスに感染されたものと判断し、判断結果をマネジャー310に通知できる。以上説明した本実施の形態では、AVエンジン360の場合は、マネジャー310からスキャニングするターゲットデータを受信してスキャニング動作を行うが、FWエンジン340は、マネジャー310を経由せずに直にパケットデータを受信してフィルタリングする構成からなっている。FWエンジン340は、フィルタリング結果をマネジャー310に通知でき、マネジャー310は、通知されたフィルタリング結果を防火壁インターフェースアプリケーションに通知できる。このように、マネジャー310タスクとFWエンジン340のタスクとを区分させた理由は、以下のとおりである。第1に、マネジャー310がFWエンジン340を制御する状況は、FWエンジン340が第1ターゲットデータをフィルタリングする状況より少なく発生する。したがって、マネジャー310が行うタスクとFWエンジン340が行うタスクtaskとを区分することが効率的である。第2に、FWエンジン340は、第1ターゲットデータごとに速かに第1ターゲットデータが悪性データであるか否かを判断して、第1ターゲットデータの送信有無を決定しなければならない。仮に、ユーザが防火壁ルールを変更する場合、FWエンジン340が直接ルールパターンDB320を変更すると、すなわち、マネジャー310の代りにFWエンジン340がそういうルールパターンDB320を変更する作業を併行すると、FWエンジン340の第1ターゲットデータの処理動作が遅れるようになる。したがって、これを防止し、マネジャー310とFWエンジン340との間の仕事処理に優先順位を与えるために、互いに別途のモジュールから構成した。図8は、本発明の他の実施の形態に係る第2アンチマルウェアシステムの機能を説明するための機能ブロック図である。図8に示すように、第2アンチマルウェアシステム800は、マネジャー810、ルールパターンDB820、ウイルスパターンDB830、FWエンジン840、マッチング部850、AVエンジン860及び通信部870を備えることができる。図8に示すマネジャー810、ルールパターンDB820、ウイルスパターンDB830、FWエンジン840、マッチング部850及びAVエンジン860の動作は、図3及び図4を参照して説明したマネジャー310、ルールパターンDB320、ウイルスパターンDB330、FWエンジン340、マッチング部350及びAVエンジン360と同一なので、詳細な説明は省略する。また、FWエンジン840とAVエンジン860とは、マッチング部850を共有でき、マッチング部850は、ハードウェアロジックで具現化されることができる。第2アンチマルウェアシステム800は、通信部870をさらに備え、マネジャー810、ルールパターンDB820、ウイルスパターンDB830、FWエンジン840、マッチング部850及びAVエンジン860と共に一つのSoCで具現化されることができる。通信部870は、外部デバイスから第1ターゲットデータを受信し、外部デバイスに第1ターゲットデータを送信する通信モジュールであって、WiFiWirelessfidelityモジュール、LANLocalAreaNetworkモジュール、OTAOvertheairモジュール、ブルートゥースBluetoothモジュール、及び4Gモジュールののうち、少なくとも一つを備えることができる。通信部870を介して受信された第1ターゲットデータは、FWエンジン840に入力される。FWエンジン840は、受信された第1ターゲットデータのハッシュ値を生成し、図3を参照して説明したハッシュ値マッチング、LPM及びEPMを行うことができる。EPM結果、第1ターゲットデータが正常データと判断されると、FWエンジン840は、第1ターゲットデータがアプリケーション部図示せずに送信されるようにすることができる。図9は、本発明の他の実施の形態に係る第3アンチマルウェアシステムの機能を説明するための機能ブロック図である。図9に示すように、第3アンチマルウェアシステム900は、AMAnti-Malwareマネジャー905、FWマネジャー910、ルールパターンDB920、FWエンジン930、AVマネジャー940、ウイルスパターンDB950及びAVエンジン960を備えることができる。図9に示すAMマネジャー905、FWマネジャー910、ルールパターンDB920、FWエンジン930、AVマネジャー940、ウイルスパターンDB950及びAVエンジン960は、図3を参照して説明したマネジャー310、ルールパターンDB320、ウイルスパターンDB330、FWエンジン340、マッチング部350及びAVエンジン360と同一なので、詳細な説明は省略する。ただし、図3の実施の形態のマネジャー310は、図9の実施の形態では、3個のマネジャーAMマネジャー、AVマネジャー940、及びFWマネジャー910から構成される。上述した図3のマネジャー310は、AMマネジャー905、AVマネジャー940、及びFWマネジャー910の各々の機能をすべて行うと説明したが、本実施の形態では、これらの3個のマネジャーは、互いの作業を分担して行うことにしている。一方、マネジャーを1個で構成するか、又は3個で構成することは、本願発明の例示に過ぎないので、他の方式すなわち、マネジャーの個数をもっと増やして作業をより細分化する方式で具現が可能であることはもちろんである。図9に示すように、AMマネジャー905は、FWUIアプリケーションとAVUIアプリケーションと連動して動作できる。AMマネジャー905は、FWUIアプリケーションとAVUIアプリケーションから命令を受けて、FWと関連した命令であれば、FWマネジャー910に送信し、AVと関連した命令であれば、AVマネジャー940に送信する。FWマネジャー910とAVマネジャー940とは、指示された命令に対応する動作を行った後、その結果をAMマネジャー905に送信できる。AMマネジャー905は、FWマネジャー910とAVマネジャー940とから送信された結果を各々のアプリケーションに送信する。AMマネジャー905がFWUIアプリケーションから受信する命令は、例えば、ルールパターンDB920に対するアップデート命令でありうる。このような命令がある場合、AMマネジャー905は、ルールパターンDB920に対するアップデート生成、追加、削除、変更命令をFWマネジャー910に送信する。FWマネジャー910は、ルールパターンDB920に対するアップデート動作を行った後、その結果をAMマネジャー905に報告できる。AMマネジャー905がAVUIアプリケーション図示せずから受信する命令は、例えば、スキャニング命令又はウイルスパターンDB950のアップデート命令などになりうる。スキャニング命令がある場合、AMマネジャー905は、AVマネジャー940にスキャニング命令があるのを通知し、AMマネジャー905は、AVエンジン960にスキャニング命令があるのを通知する。AVエンジン960は、ターゲットデータ例えば、このデータは、スキャニング命令と共にAMマネジャー905が受信できるに対してスキャニング動作を行う。遂行結果は、逆にAVマネジャー940とAMマネジャー905とを経てAVUIアプリケーションに送信される。AMマネジャー905がAVUIアプリケーション図示せずから受信する命令は、ウイルスパターンDB950のアップデート命令になることができ、このような場合、AVマネジャー940がそういうアップデート動作を行うことができる。図10は、FWエンジン930を説明するための図である。図10に示すように、FWエンジン930は、第1マッチング部931を備える。第1マッチング部931は、図4に示すマッチング部350とほぼ同じ機能を行うので、図4の説明を参照しさらに詳細な説明は省略する。第1ハッシュマッチャーテーブル970及び第1サブマッチャーテーブル975は、ルールパターンDB920のルールパターンから生成されることができ、これらについては、図4及び図5の説明を参照すれば良い。図11に示すように、AVエンジン960は、第2マッチング部961を備える。第2マッチング部961は、図4に示すマッチング部350とほぼ同一なので、図4の説明を参照し、さらに詳細な説明は省略する。第2ハッシュマッチャーテーブル980及び第2サブマッチャーテーブル985は、ウイルスパターンDB950のウイルスパターンから生成される。第2ハッシュマッチャーテーブル980及び第2サブマッチャーテーブル985を生成する方法は、図4、図6及び図7の説明を参照し、さらに詳細な説明は省略する。AVエンジン960は、ウイルスパターンDB950のウイルスパターンのハッシュ値と第2ターゲットデータの少なくとも一部のハッシュ値を生成できる。第2マッチング部961は、第2ハッシュマッチャーテーブル980と第2サブマッチャーテーブル985とを利用して、ハッシュ値マッチングとLPMとを行うことができる。第2マッチング部961は、第2ハッシュ値マッチング部961a及び第2ライトパターンマッチング部961bを備える。第2ハッシュ値マッチング部961aは、AVエンジン960から生成されるウイルスパターンのハッシュ値と第2ターゲットデータの少なくとも一部のハッシュ値とをマッチングさせることができる。第2ハッシュ値マッチング部961aにおいて、ハッシュ値のマッチングが成功すると、第2ライトパターンマッチング部961bは、LPMを行う。LPMが成功した場合、AVエンジン960は、ウイルスパターン、第2ターゲットデータ及び第2サブマッチャーテーブル985を利用してEPMを行うことができる。EPMが成功した場合、AVエンジン960は、サブパターンマトリックスを利用してFPMを行う。FPM結果、互いにマッチングされないと、AVエンジン960は、第2ターゲットデータが正常データであると判断し、第2ターゲットデータを次のデスティネーションに送信する。反面、FPM結果、互いにマッチングされると、AVエンジン960は、第2ターゲットデータがウイルスに感染されたデータであると判断する。本実施の形態では、パターンDBがブラックリストを格納することを前提にして説明したが、ホワイトリストを格納することも可能である。ホワイトリストが格納された場合には、EPMやFPMの遂行結果、マッチングされなければ正常なデータとして判断されない。図12は、本発明の他の実施の形態に係る第4アンチマルウェアシステムの機能を説明するための機能ブロック図である。図12に示すように、第4アンチマルウェアシステム1200は、FWマネジャー1210、ルールパターンDB1220、FWエンジン1230、AVマネジャー1240、ウイルスパターンDB1250、AVエンジン1260及び通信部1270を備えることができる。図12に示す第4アンチマルウェアシステム1200は、図9に示すAMマネジャー905をさらに備えることもできる。図11に示すFWマネジャー1210、ルールパターンDB1220、FWエンジン1230、AVマネジャー1240、ウイルスパターンDB1250及びAVエンジン1260は、図9~図11を参照して説明したFWマネジャー910、ルールパターンDB920、FWエンジン930、AVマネジャー940、ウイルスパターンDB950及びAVエンジン960と同一なので、詳細な説明は省略する。ただし、通信部1270は、外部デバイスから第1ターゲットデータを受信し、外部デバイスに第1ターゲットデータを送信する通信モジュールである。第4アンチマルウェアシステム1200は、通信部1270をさらに備えて、FWマネジャー1210、ルールパターンDB1220、FWエンジン1230、AVマネジャー1240、ウイルスパターンDB1250及びAVエンジン1260と共に一つのSoCで具現化されることができる。通信部1270を介して受信された第1ターゲットデータは、FWエンジン1230に入力される。FWエンジン1230は、受信された第1ターゲットデータのハッシュ値を生成し、図3を参照して説明したハッシュ値マッチング、LPM及びEPMを行うことができる。EPM結果、第1ターゲットデータが正常データと判断されると、FWエンジン1230は、第1ターゲットデータがアプリケーション部図示せずに送信されるようにすることができる。アプリケーション部図示せずは、例えばウェブブラウザでありうる。図13は、本発明の一実施の形態に係るアンチマルウェアシステムにおける動作方法を説明するためのフローチャートである。図13の方法は、第1~第4アンチマルウェアシステム300、800、900、1200のうちの何れか一つにより動作されることができ、以下では、第1アンチマルウェアシステム100を例に挙げて説明する。マネジャー310は、ルールパターンからなるルールパターンDB320とウイルスパターンとからなるウイルスパターンDB330をアップデートして格納することができるS1302。マネジャー310は、基本に設定されたルールパターン又はユーザが防火壁UIを介して設定したルールパターンを利用して、ルールパターンDB320を生成できる。FWエンジン340は、ルールパターンのハッシュ値を利用して、第1ハッシュマッチャーテーブル第1HMT370と第1サブマッチャーテーブル第1SMT375を生成及び格納し、AVエンジン360は、ウイルスパターンのハッシュ値を利用して、第2ハッシュマッチャーテーブル第2HMT380と第2サブマッチャーテーブル第2SMT385とを生成及び格納することができるS1304。FWエンジン340がターゲットデータを受信するとS1306、FWエンジン340は、受信されたターゲットデータ以下、第1ターゲットデータとするをハッシュ関数に適用して、第1ターゲットデータの少なくとも一部のハッシュ値を生成できるS1308。マッチング部350のハッシュ値マッチング部351は、ステップS1302にて生成されるルールパターンのハッシュ値と、ステップS1308にて生成される第1ターゲットデータの少なくとも一部のハッシュ値とをマッチングできるS1310。ハッシュ値マッチングが成功するとS1312-Y、ライトパターンマッチング部352は、ルールパターン、第1ターゲットデータ及び第1ハッシュマッチャーテーブル370を利用して、LPMを行うことができるS1314。ステップS1314のLPMが成功した場合S1316-Y、FWエンジン340は、第1丁ミールマッチング部342は、ルールパターン、第1ターゲットデータ及び第1サブマッチャーテーブル375を利用して、EPMを行うことができるS1318。ステップS1318のEPMが成功した場合S1320-Y、FWエンジン340は、第1ターゲットデータを非正常データとして判別して遮断できるS1322。反面、ステップS1312にて互いにマッチングされるハッシュ値がない場合S1312-N、FWエンジン340は、第1ターゲットデータを正常データとして判断しフィルタリング許容を決定できるS1324。また、ステップS1314のLPMが失敗した場合S1316-N、FWエンジン340は、第1ターゲットデータを正常データとして判断できるS1324。また、ステップS1318のEPMが失敗した場合S1320-N、FWエンジン340は、第1ターゲットデータを正常データとして判断できるS1324。一方、マネジャー310がターゲットデータを受信すると、マネジャー310は、ターゲットデータがウイルススキャニング対象であるから、受信されたターゲットデータをAVエンジン360に送信できるS1326。AVエンジン360は、受信されたターゲットデータ以下、第2ターゲットデータとするをハッシュ関数に適用して、第2ターゲットデータのハッシュ値を生成できるS1328。ステップS1328にて、AVエンジン360は、第2ターゲットデータを一定大きさに分割したサブデータに対するハッシュ値を生成できる。マッチング部350のハッシュ値マッチング部351は、ステップS1302にて生成されるウイルスパターンのハッシュ値と、ステップS1328にて生成される第2ターゲットデータの少なくとも一部のハッシュ値とをマッチングできるS1330。ハッシュ値マッチングが成功するとS1332-Y、ライトパターンマッチング部352は、ウイルスパターン、第2ターゲットデータ及び第2ハッシュマッチャーテーブル380を利用して、LPMを行うことができるS1334。ステップS1334のLPMが成功した場合S1336-Y、AVエンジン360は、ウイルスパターン、第2ターゲットデータ及び第2サブマッチャーテーブル385を利用して、EPMを行うことができるS1338。ステップS1338のEPMが成功した場合S1340-Y、AVエンジン360は、FPMを行うS1342。ステップS1342のFPMが成功した場合S1344-Y、AVエンジン360は、第2ターゲットデータがウイルスに感染されたデータであると判断し、第2ターゲットデータを遮断するS1322。したがって、AVエンジン360は、ウイルススキャニング対象である第2ターゲットデータを外部デバイス又はこの第2ターゲットデータを使用するアプリケーション部図示せずに送信しない。反面、ステップS1332にて互いにマッチングされるハッシュ値がない場合S1332-N、AVエンジン360は、第2ターゲットデータを正常データとして判断し、フィルタリング許容を決定できるS1324。したがって、AVエンジン360は、ウイルススキャニング対象である第2ターゲットデータを外部デバイス又はこの第2ターゲットデータを使用するアプリケーション部に送信する。また、ステップS1334のLPMが失敗した場合S1336-N、AVエンジン360は、第2ターゲットデータを正常データとして判断できるS1324。また、ステップS1338のEPMが失敗した場合S1340-N、AVエンジン360は、第2ターゲットデータを正常データとして判断できるS1324。また、S1342のFPMが失敗した場合S1344-N、AVエンジン360は、第2ターゲットデータが正常データであると判断し、第2ターゲットデータを許容して次のデスティネーションに送信するS1324。以上、図13を参照して説明した実施の形態では、理解の便宜のためにパケット分類プロセスに対しては言及しておらず、ルールパターンマッチング動作についてのみ説明したことを明らかにする。すなわち、ステップS1308~S1324の動作は、ルールパターンマッチング動作に関するもので、パケット分類プロセス動作は、ステップS1308とS1306との間で行われうる。図14は、本発明の一実施の形態に係る図2に示すアンチウイルスH/Wのハードウェア構成を示したブロック図である。図14に示すように、本発明の一実施の形態に係るアンチウイルスH/Wは、システムインターフェース201、システムレジスタ203、メモリインターフェース205、メモリ207、バッファ209、ハッシュマッチャー211、オフセットアドレスジェネレーター213、ハッシュQQueueバッファ215、ライトパターンマッチャー217及びスキャンQバッファ219を備えることができる。本発明の一実施の形態によれば、図14のアンチウイルスH/Wは、図3、図4、図8、又は図9のマッチングユニットとして使用されることができる。システムインターフェース201は、アンチマルウェアシステム100と外部構成要素との間のインターフェースを支援し、メモリインターフェース205は、アンチマルウェアシステム100内に格納されたDB又はファイルの内容を読み込むために使用される。メモリ207には、ハッシュマッチャー211でハッシュマッチング動作を行うためのデータを提供するために、パターンハッシュ値テーブルがロードされうる。バッファ209は、メモリインターフェース205から読み込んだDB又はファイルの内容を格納する役割を果たす。バッファ209は、デュアルバンク方式で構成されることができる。ターゲットデータは、バッファ209の格納容量に合う大きさ分だけ分割されて2個のバッファ209に格納される。ここで、図14のアンチウイルスH/Wがアンチ-ウイルスエンジンの一部として使用される場合には、前記ターゲットデータは、ファイルのようなデータでありうる。一方、図14のアンチウイルスH/Wが防火壁エンジンの一部として使用される場合には、前記ターゲットデータは、パケットデータでありうる。ハッシュマッチャー211は、ターゲットデータのハッシュ値とハッシュマッチャーテーブルのマッチング動作を行う。ハッシュマッチャー211は、ハッシュ値マッチングが成功したターゲットデータをハッシュQバッファ215に格納する。オフセットアドレスジェネレーターoffsetaddressgenerator213は、ハッシュ値マッチングが成功した場合、サブマッチャーテーブルから前記マッチングされたハッシュ値が格納されたメモリアドレスを発生させる。ハッシュQQueueバッファ部215は、オフセットアドレスジェネレーター213から発生されたアドレスとターゲットデータとを互いに対応させて格納する。ライトパターンマッチャー217は、ハッシュQバッファ部215が格納したターゲットデータの一部例えば、ターゲットデータの中間値と最後値とウイルスパターン又はルールパターンのIPaddressハッシュ値、プロトコルハッシュ値、又はIPaddressの中間値とを互いにマッチングさせる。ライトパターンマッチャー217は、ライトパターンマッチングが成功したターゲットデータをスキャンQバッファ219に格納する。スキャンQQueueバッファ部219は、ライトパターンマッチングが成功したターゲットデータを格納することができる。図14のアンチウイルスH/Wがアンチウイルスエンジンの一部として使用されるとき、アンチウイルスエンジンは、スキャンQバッファ部219に格納されたターゲットデータとウイルスパターンとを精密にマッチングさせる精密パターンマッチング動作を行い、精密パターンマッチングが成功すると、フルパターンマッチングを行う。ここで、フルパターンマッチングは、複雑な文法を有したパターンである場合に行われ、簡単な文法を有したパターンは、精密パターンマッチングまでのみ行っても良い。一方、図14のアンチウイルスH/Wが防火壁エンジンの一部として使用されるときには、防火壁エンジンは、スキャンQバッファ部219に格納されたターゲットデータとルールパターンを精密にマッチングさせる精密パターンマッチング動作を行う。上記のマッチング動作の中で、ウイルスパターンマッチングに対するさらに詳細な説明は、韓国特許出願第10-2010-0049566号2010.5.27日付出願、韓国特許出願第10-2010-0052981号2010.6.4日付出願、韓国特許出願第10-2011-0049249号2011.5.24日付出願に記載されており、この特許出願に記載された内容は、本願明細書の内容と相反しない範囲内で本願明細書の一部として結合される。図15は、本発明の一実施の形態に係るアンチウイルスH/W117においてウイルススキャニング動作を説明するための図である。図15に示すように、ウイルスパターンDB41には、ウイルススキャニングに使用するウイルスパターンが格納されている。ウイルスパターンDB41は、図3~図12に示すウイルスパターンDB330、830、950、1250のうちの何れか一つでありうる。ハッシュマッチャーテーブル43は、ハッシュマッチャー211とデータをやり取りし、ハッシュマッチャー211においてハッシュマッチングを行うときに使用される。ハッシュマッチャーテーブル43は、図4及び図11に示すハッシュマッチャーテーブル380、980のうちの何れか一つでありうる。ウイルスパターンDB41に格納されているすべてのウイルスパターンがメモリ207にロードされた後、ハッシュ値生成器図示せずがメモリ207にロードされたすべてのウイルスパターンに対するハッシュ値を生成すると、生成されたハッシュ値からパターンハッシュ値テーブルが生成される。パターンハッシュ値テーブルは、メモリ207に格納されることができる。サブマッチャーテーブル44は、ライトパターンマッチャー217とデータをやり取りし、LPMとEPM動作の遂行に使用される。本発明の一実施の形態においてサブマッチャーテーブル44は、重複パターンのオフセット、中間値オフセット、中間値、最後値オフセット、最後値、実際パターン情報を含むことができる。サブマッチャーテーブル44は、図4及び図10に示すサブマッチャーテーブル375、975のうちの何れか一つでありうる。サブパターンマトリックス45は、ターゲットデータを構成する各々のサブデータに対するサブパターンマッチング結果を含む。サブパターンマトリックスは、FPM動作に使用される。ウイルスパターン全体とサブデータの全体に対してEPMが行われた結果、該当サブデータにウイルスパターンが存在しているか否かが確認されると、サブデータ別にその存在有無がサブパターンマトリックス45に記録される。バッファ209には、ターゲットデータのサブデータがロードされ、ロードされたサブデータは、ハッシュマッチャー211に提供される。このために、ハッシュマッチャー211は、メモリ207からはパターンハッシュ値テーブル42を、バッファ209からはサブデータを、メモリ図示せず例えば、図2のSRAM130からはハッシュマッチャーテーブル43が提供されて、ハッシュマッチングを行う。ハッシュQバッファ215は、ハッシュマッチャー211によりハッシュ値がマッチングされた場合、ターゲットデータを格納することができる。以後、ライトパターンマッチャー217では、サブマッチャーテーブル44を利用してサブデータの一部に対するマッチング動作を行う。ライトパターンマッチングが成功すると、ライトパターンマッチャー217は、成功したサブデータをスキャンQバッファ219側に出力する。スキャンQバッファ219からの出力結果は、EPM動作に使用される。EPMが成功した場合、アンチマルウェアシステムは、サブパターンマトリックス45を利用して、サブパターンマトリックスに含まれたサブデータとウイルスパターンとをフルマッチングする動作を行う。すなわち、ウイルスパターンとターゲットデータの全てとをマッチングさせる動作は、スキャンQバッファ219に格納されたターゲットデータに対して行われる。図16は、本発明の一実施の形態に係るアンチマルウェアシステムにおけるアンチウイルスH/W117の動作方法を示すフローチャートである。図16に示すように、アンチウイルスH/W117が初期化されるとS1601、ウイルスパターンが格納されたウイルスパターンDB41がメモリ207にロードされるS1603。ウイルススキャニング対象であるターゲットデータ例えば、図3の第2ターゲットデータがバッファ209の大きさ分だけバッファ209にロードされるS1605。ハッシュマッチャー211は、決まった大きさ分だけバッファ209からターゲットデータとメモリ207からパターンハッシュ値テーブルを読み込むS1607。ターゲットデータのパターンハッシュ値テーブルは、予め生成されてメモリ207に格納されていることができる。ハッシュマッチャー211は、ステップS1607にて読み込んだターゲットデータのハッシュ値とウイルスパターンのハッシュ値とをマッチングさせるS1609。読み込んだターゲットデータの大きさは、ターゲットデータカウントとして設定されるS1611。ターゲットデータカウントとバッファ209の大きさを比較して、互いに一致するとS1613-Y、アンチウイルスH/W117は、現在使用中のバッファを他のバッファに変更するS1615。バッファが変更された場合、変更されたバッファにターゲットデータをロードし、ステップS1605~ステップS1613を繰り返す。ターゲットデータカウントがバッファ209の大きさと一致しないとS1615-N、アンチウイルスH/W117は、ハッシュQバッファ215がフルfullであるか否かを確認するS1617。ハッシュQバッファ215がフルであると、アンチウイルスH/W117は、該当作業を終了し、フルでないと、ハッシュQバッファ215が分析されるまでステップS1607~ステップS1615を繰り返す。図17は、図16のステップS1609のハッシュマッチャー211のマッチング動作を説明するためのフローチャートである。図17に示すように、ハッシュマッチャー211は、ターゲットデータのハッシュ値がパターンハッシュ値テーブルに存在するか否かを確認するS1701。ターゲットデータのハッシュ値がハッシュマッチャーテーブルに存在すると、ハッシュマッチャー211は、ターゲットデータのハッシュ値にパターン表示があるか否かを確認するS1703。ターゲットデータのハッシュ値にパターン表示があると、ハッシュマッチャー211は、ハッシュQバッファ215がフルfullであるか否かを確認するS1705。ハッシュQバッファ215がフルでないとS1705-N、ハッシュマッチャー211は、最新情報にハッシュQバッファ215をアップデートするS1707。最新情報は、オフセットアドレスジェネレーター213から発生したデータであって、ハッシュマッチャー211のマッチング動作の遂行結果、マッチングが成功した場合にハッシュ値に対応する実際比較メモリ領域に対するメモリアドレス値を含むことができる。以後、ハッシュQバッファ215から読み出し動作があるとS1709-Y、ライトパターンマッチャー217は、LPM動作を行うS1711。反面、ハッシュQバッファ215がフルであるとS1705-Y、ハッシュマッチャー211は、ハッシュQバッファ215をフルに設定するS1713。図18は、ステップS1711のライトパターンマッチャー217のマッチング動作を説明するためのフローチャートである。図18に示すように、ライトパターンマッチャー217は、読み込んだターゲットデータのハッシュ値からオフセットが指定したメモリからパターンを読み込むS1801。すなわち、ライトパターンマッチャー217は、ハッシュ値に対応するターゲットデータのパターンのうち、中間値と最後値を読み込み、サブマッチャーテーブル44からウイルスパターンの中間値と最後値とを読み込むことができる。ライトパターンマッチャー217は、ターゲットデータの中間値とウイルスパターンの中間値とが同じであるか否かを確認するS1803。ターゲットデータの中間値がウイルスパターンの中間値と同一であるとS1803-Y、ライトパターンマッチャー217は、ターゲットデータの最後値とウイルスパターンの最後値とが同じであるか否かを確認するS1805。ターゲットデータの最後値とウイルスパターンの最後値とが同一であるとS1805-Y、ライトパターンマッチャー217は、スキャンQバッファ219がフルfullであるか否かを確認するS1807。スキャンQバッファ219がフルでないとS1807-N、ライトパターンマッチャー217は、最新情報にスキャンQバッファ219をアップデートするS1809。最新情報は、FPMを行うために必要な、ライトパターンマッチャー217のマッチング動作結果でありうる。スキャンQバッファ219がフルであるとS1807-Y、ライトパターンマッチャー217は、スキャンQバッファ219をフルに設定するS1811。図19は、本発明の一実施の形態に係る防火壁H/W119におけるパケットフィルタリング動作を説明するための図である。図19に示すように、ルールパターンDB51は、パケットルールを格納し、ルールパターンは、パケットの方向、IPaddress、プロトコル、ポート、許容/遮断情報と内容を含むことができる。ここで、パケットの方向は、パケットが伝えられる方向例えば受信、送信又は両方向を表し、IPaddressは、ソースIPaddressとデスティネーションIPaddressを表し、プロトコルは、使用するプロトコルの種類例えば、TCP、UDP、ICMP、Allを表し、ポートは、設定しようとするポート番号を表し、そして許容/遮断情報は、表示された情報のパケットを許容するか遮断するかを表す。本実施の形態においてハッシュマッチャー211は、ハッシュマッチャーテーブル53を利用してハッシュ値マッチング動作を行い、ライトパターンマッチャー217は、サブマッチャーテーブル54を利用してライトパターンマッチング動作を行う。ここで、ハッシュマッチャー211は、バッファ209に格納されたデータのハッシュ値と、ハッシュマッチャーテーブル53をハードウェアー的にマッチングさせる。ハッシュ値がマッチングされたデータは、ハッシュQバッファ215に格納され、ライトパターンマッチャー217は、ハッシュQバッファ215に格納されたデータとサブマッチャーテーブルとをハードウェアー的にマッチングさせる。ライトパターンマッチャー217によりマッチングが成功されると、マッチングされたデータは、スキャンQバッファ219に格納され、防火壁エンジン130は、ソフトウェア的にスキャンQバッファ219に格納されたデータとルールパターンDBとが全て一致しているか否かを判断する精密パターンマッチング動作を行う。以後、防火壁エンジン130は、精密パターンマッチングの結果に応じて、パケットデータを通過又は遮断する。図19を参照し続けると、防火壁エンジンは、フィルタリングするパケットデータを受けると、まずパケットデータに対するパケット分類プロセスを行い、パケット分類プロセスの分類結果にパターンマッチングする必要性がある場合にのみパケットデータとルールパターンDBとのマッチング動作を行う。防火壁エンジンは、パケット分類プロセスを行う際に、マッチング部119を少なくとも一回以上使用し、パケットデータとルールパターンDBとのマッチング動作を行うときにもマッチング部119を使用する。これについての詳細な説明は、後述する図20~図24の説明を参照すれば良い。一方、図19に示す防火壁エンジンの構成は、あくまでも例示的なものであり、パケットデータをフィルタリングできる構成であれば、いかなる構成でも本願発明に使用されることができる。図20は、本発明の一実施の形態に係るパケットフィルタリング方法を説明するためのフローチャートである。図20に示すように、防火壁エンジンは、フィルタリングする対象になるパケットデータが入力されるとS2001、パケットデータのヘッダheaderをパターン形態に変換しS2003、パケットデータのヘッダ情報を利用してパケットデータに対してパケット分類プロセスを実施するS2005。ステップS2003でのパターン形態は、例えば図5のaのような形態でありうる。本実施の形態において、ステップS2003は、例示的なものであって、フィルタリングする対象になるパケットデータのヘッダを必ず図9のaのような形態に変換する必要はない。例えば、図20の実施の形態は、ステップS2003の代りに、パケットデータからヘッダ情報を抽出するステップを含め、このように抽出したヘッダ情報を利用してステップS2005を行うように構成することも可能である。パケット分類プロセスについては、後述する図21において説明する。パケットデータに対してパケット分類プロセスが完了すると、後述するステップS2007のパターンマッチング動作を行うか否かが決定される。すなわち、防火壁エンジンは、入力されたすべてのパケットデータに対してパターンマッチング動作を行うのではなく、パケット分類プロセスS2005をパケットデータに適用することによって、パケットデータに対してパターンマッチング動作を行うか否かを決定し、パターンマッチング動作を行うことと決定した場合にのみ、後述するパターンマッチングステップS2007を行う。パターンマッチングステップでは、パケットデータをルールパターンDBに既格納されたルールパターンとのマッチングを行う。これにより、パケットデータがルールパターンとマッチングされるか否かを確認するS2007。例えば、防火壁エンジンは、図14に例示的に示すハードウェア117を利用して、パケットデータのヘッダ情報IPaddress、ポート番号、プロトコルとルールパターンとがマッチングされるか否かを確認することができる。図14のハードウェア117を利用してステップS2007を行うとき、ハッシュマッチャー211は、パケットデータに対するヘッダのハッシュ値と、ルールパターンのヘッダのハッシュ値とをマッチングさせ、ハッシュ値が互いにマッチングされると、ライトパターンマッチャー217は、パケットデータのヘッダの中間値と最後値と、ルールパターンのヘッダの中間値と最後値とを各々マッチングさせ、これらの値が互いにマッチングされると、防火壁エンジンは、パケットデータのヘッダの全てとルールパターンのヘッダの全てとをマッチングさせる精密マッチング動作を行う。精密マッチング結果、マッチングされると、防火壁エンジンは、後述するようにパケットデータを遮断することができる。パケットデータがルールパターンとマッチングされると、マッチングされたルールパターンに応じてパケットデータを許容Allow又は遮断BlockするS2009。反面、パケットデータがルールパターンとマッチングされないと、マッチングが失敗したという意味であるから、パケットデータを通過させるS2011。図21は、本発明の一実施の形態に係るパケット分類プロセスを説明するためのフローチャートである。図21に示すように、パケット分類プロセスは、ステップS2101~S2119からなり、防火壁エンジンは、パケット分類プロセス結果、パケットデータに対してパターンマッチングする必要があると決定した場合、パターンマッチングステップS2121を行う。本実施の形態によれば、防火壁エンジンが少なくとも一つ以上のフラグを使用してパケット分類プロセスを行う。フラグflagは、IPフラグ、プロトコルフラグ、ポートフラグ、IPマッチングと関連した分類有無フラグ、プロトコルマッチングと関連した分類有無フラグ、及びポートマッチングと関連した分類有無フラグを含むことができる。本実施の形態において、防火壁エンジンは、ルールパターンDB及び/又は図5のcに示すサブマッチャーテーブルを参照して、各フラグの値を設定できる。防火壁エンジンは、フラグ値をシステムレジスタ203に格納することができるが、システムレジスタ203でない他の格納部図示せずにも格納できることはもちろんである。防火壁エンジンは、ルールパターンのうち、すべてのIPaddressに対してパスするルールパターンが一つでもあれば、IPフラグをALLに設定する。同じ方式で、防火壁エンジンは、ルールパターンの中ですべてのプロトコルに対してパスするルールパターンが一つでもあれば、プロトコルフラグをALLに設定する。そして、防火壁エンジンは、ルールパターンの中ですべてのポートに対してパスするルールパターンが一つでもあれば、ポートフラグをALLに設定する。以上説明したフラグに対する設定動作は、パケットデータに対する分類プロセスが始まる前に行われても良く、分類プロセスの進行中に行われても良い。一方、分類有無フラグは、各々IPマッチング、プロトコルマッチング、ポートマッチング過程に防火壁エンジンにより、Yes又はNoに設定される。この部分についての説明は、各々図22、図23、図24で後述する。防火壁エンジンは、フィルタリングする対象になるパケットデータが入力されると、IPフラグをチェックしてIPフラグがAllに設定されているか否かを確認するS2101。IPフラグがAllでないと、前記パケットデータに対してIPマッチングプロセスを実施するS2103。IPマッチングプロセスについては、後述する図22で説明する。防火壁エンジンは、IPマッチングプロセスの完了後、IPマッチングと関連した分類有無フラグがNに設定された状態であるとS2105:N、プロトコルフラグがALLに設定されているか否かを確認するS2107。ここで、IPマッチングと関連した分類有無フラグは、図22を参照して後述するが、IPマッチングプロセス過程にY又はNのうちの何れか一つの値に設定される。プロトコルフラグがAllでないと、防火壁エンジンは、プロトコルマッチングプロセスを実施するS2109。プロトコルマッチングプロセスについては、後述する図24で説明する。プロトコルマッチングプロセスの完了後、防火壁エンジンは、プロトコルマッチングと関連した分類有無フラグがNに設定された状態であるとS2111:NポートフラグがALLに設定されているか否かを確認するS2113。仮にポートフラグがALLに設定された状態であると、IPフラグがALLに設定されているか否かを確認するS2119。ステップS2119の遂行結果、防火壁エンジンは、IPフラグがALLに設定された状態であると、該当パケットデータに対するルールパターンマッチング動作を終了するが、IPフラグがALLでない場合S2119:Nパターンマッチング動作を行うS2121。ステップS2113の遂行結果、ポートフラグがALLに設定された状態でないとS2113:N、防火壁エンジンは、パケットデータに対するポートマッチングプロセスを実施するS2115。ポートマッチングプロセスに対しては、後述する図24で説明する。ポートマッチングプロセスの完了後、防火壁エンジンは、ポートマッチングと関連した分類有無フラグがNに設定された状態であるとS2117:N、該当パケットに対するパターンマッチングを実施するS2121。一方、防火壁エンジンは、分類有無フラグがYに設定された状態であるとS2105:Y、S2111:Y、S2117:Y、該当パケットデータに対するルールパターンマッチング動作を終了する。図22は、本発明の一実施の形態に係るIPマッチングプロセスを説明するためのフローチャートである。防火壁エンジンは、パケットデータのヘッダに含まれたIPaddressに対するハッシュhash値とルールパターンDBに含まれたルールパターンのIPaddressのハッシュ値とが互いにマッチングされるか否かを行うハッシュマッチャーhashmatcherプロセスを実施するS2201。本発明の一実施の形態によれば、防火壁エンジンのハッシュマッチャー211は、パケットデータのヘッダに含まれたIPaddressに対するハッシュ値と、図5のbに例示されるハッシュマッチャーテーブルとを互いにマッチングさせる。例えば、パケットデータのヘッダに含まれたIPaddressに対するハッシュ値がXであると、ハッシュマッチャーテーブルにXが存在すると表示されているので、このような場合は、両者が互いにマッチングされるといえる。ハッシュマッチャープロセスにおいてマッチングされないとS2203、防火壁エンジンは、IPマッチングと関連した分類有無フラグを該当パケットが分類されたという意味すなわち、Yに変更するS2205。反面、ハッシュマッチャープロセスにおいてマッチングされるとS2203、防火壁エンジンは、パケットに対してサブマッチャーテーブルを利用してマッチングを行うサブマッチャーsubmatcherプロセスを実施するS2207。本発明の一実施の形態によれば、防火壁エンジンのライトパターンマッチャー217は、パケットデータのヘッダに含まれたIPaddressの中間値と最後値とを、図5のcに例示されるサブマッチャーテーブルと互いにマッチングさせる。サブマッチャープロセスにおいてマッチングされないとS2209、防火壁エンジンは、IPマッチングと関連した分類有無フラグを該当パケットが分類されたことであるという意味すなわち、Yに変更するS2205。反面、サブマッチャープロセスにおいてマッチングされるとS2209、防火壁エンジンは、サブマッチャーテーブルにおいてすべてのプロトコルに適用されるルールが存在しているか否かを表すisproの値と、すべてのポートに適用されるルールが存在しているか否かを表すisportの値とを確認するS2211。ここで、isportの値が1というのは、ルールパターンDBに存在するルールパターンの中ですべてのポートに適用されるルールパターンが少なくとも一つは存在するということを意味し、isproの値が1というのは、ルールパターンDBに存在するルールパターンの中ですべてのプロトコルに適用されるルールパターンが少なくとも一つは存在するということを意味する。ステップS2211の遂行結果、ispro値が1でないとS2213、防火壁エンジンは、プロトコルフラグをNotallに変更するS2217。一方、防火壁エンジンは、ispro値が1であるとS2213、isport値が1であるか否かを確認するS2215。防火壁エンジンは、isport値が1でないとS2215、ポートフラグをNotallに変更するS2219。一方、図22の実施の形態での分類有無フラグと、プロトコルフラグと、ポートフラグは、各々図21のステップS2105が行われるときに参照される分類有無フラグと、ステップS2107が行われるときに参照されるプロトコルフラグと、ステップS2113が行われるときに参照されるポートフラグに該当する。図23は、本発明の一実施の形態に係るプロトコルマッチングプロセスを説明するためのフローチャートである。防火壁エンジンは、パケットデータのヘッドに含まれたプロトコルに対するハッシュ値と、ルールパターンDBに含まれたルールパターンのプロトコルのハッシュ値とが互いにマッチングされるか否かを行うハッシュマッチャープロセスを実施するS2301。本発明の一実施の形態によれば、防火壁エンジンのハッシュマッチャー211は、パケットデータのヘッダに含まれたプロトコルに対するハッシュ値と、図5のbに例示されるハッシュマッチャーテーブルとを互いにマッチングさせる。例えば、パケットデータのヘッダに含まれたプロトコルに対するハッシュ値がZであれば、ハッシュマッチャーテーブルにZが存在しないと表示されているので、このような場合は、両者が互いにマッチングされないといえる。ハッシュマッチャープロセスにおいてマッチングされるとS2303、防火壁エンジンは、ハッシュマッチャープロセスを終了し、次のステップ例えば、図21のステップS2111を行う。反面、ハッシュマッチャープロセスにおいてマッチングされないと、防火壁エンジンは、プロトコルマッチングと関連した分類有無フラグを該当パケットが分類されたことであるという意味すなわち、Yに変更するS2305。ここで、分類有無フラグは、図21のステップS2111にて参照される分類有無フラグに該当する。本実施の形態においてプロトコルマッチングは、場合の数が多くないので、サブマッチャープロセスを行わずに、ハッシュマッチャープロセスのみを使用して検証した。しかしながら、これは、本願発明の例示に過ぎず、プロトコルマッチングにおいてもサブマッチャープロセスを行うように構成することも当然可能である。図24は、本発明の一実施の形態に係るポートマッチングプロセスを説明するためのフローチャートである。防火壁エンジンは、パケットデータのヘッドに含まれたポートに対するハッシュ値とルールパターンDBに含まれたルールパターンのポートのハッシュ値とが互いにマッチングされるか否かを行うハッシュマッチャープロセスを実施するS2401。本発明の一実施の形態によれば、防火壁エンジンのハッシュマッチャー211は、パケットデータのヘッダに含まれたポートに対するハッシュ値と、図5のbに例示されるハッシュマッチャーテーブルとを互いにマッチングさせる。例えば、パケットデータのヘッダに含まれたプロトコルに対するハッシュ値がAであると、ハッシュマッチャーテーブルにAが存在すると表示されているので、このような場合は、両者のハッシュ値が互いにマッチングされるといえる。ハッシュマッチャープロセスにおいてマッチングされないとS2403、防火壁エンジンは、ポートマッチングと関連した分類有無フラグを該当パケットが分類されたことであるという意味すなわち、Yに変更するS2409。ハッシュマッチャープロセスにおいてマッチングされるとS2403、防火壁エンジンは、データパケットに対してサブマッチャープロセスを実施するS2405。本発明の一実施の形態によれば、防火壁エンジンのライトパターンマッチャー217は、パケットデータのヘッダに含まれたIPaddressのハッシュ値とプロトコルのハッシュ値とを、図5のcに例示されるサブマッチャーテーブルと互いにマッチングさせる。サブマッチャープロセスにおいてマッチングされないとS2407、ポートマッチングと関連した分類有無フラグを該当パケットが分類されたことであるという意味すなわち、Yに変更するS2409。一方、サブマッチャープロセスにおいてマッチングされると、防火壁エンジンは、ポートマッチングプロセスを終了し、図21のステップS2117を行う。一方、図24のステップS2409における分類有無フラグは、図21のステップS2117にて参照される分類有無フラグに該当する。本実施の形態において、アンチウイルスH/Wと防火壁H/Wとは、ハードウェアロジックから構成されて、単純でかつ速い作業を行うことができ、ビットテーブルであるハッシュマッチャーは、大きさが小さく、ハッシュ関数を介して求められたハッシュ値をマッチング対象にするために、比較速度が速いという長所がある。また、ライトパターンマッチャーは、ハッシュ値をインデックスとして接近するために、速いマッチング結果を出力できる。また、マルチパターンによりハッシュ値が衝突する場合には、衝突に対するサブマッチャーテーブルを構成して、衝突されるハッシュ値に対する処理を可能にした。以上、本発明は、限定された実施の形態と図面により説明されたが、本発明は、上記の実施の形態に限定されるものではなく、本発明が属する分野における通常の知識を有した者であればこのような記載から多様な修正及び変形が可能である。したがって、本発明の範囲は、説明された実施の形態に限って決まってはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものによって決まらねばならない。"