(57)【要約】パーソナルコンピューター装置に記憶されている事前選択されたデータを検出するための方法及び装置について説明している。或る実施形態では、パーソナルコンピューター装置のデータ記憶媒体の内容は、事前選択された機密データを求めて探索される。或る実施形態では、事前選択された機密データの少なくとも一部が検出されると、事前選択された機密データの検出の通知が、ネットワークを介してシステムに送られる。別の実施形態では、事前選択された機密データの少なくとも一部が検出されると、このデータへのアクセスが阻止される。
2005539334.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上で電子的に送信されるメッセージを、埋め込まれている事前選択されたデータに関してモニターする段階と、
前記事前選択されたデータから導き出された抽象的データ構造を使って、前記メッセージの内容探索を実行して、前記埋め込まれている事前選択されたデータの存在を検出する段階と、から成ることを特徴とする方法。
【請求項２】
前記事前選択されたデータは、データベースのデータを含むことを特徴とする、請求項１に記載の方法。
【請求項３】
前記抽象的データ構造はインデックスを含むことを特徴とする、請求項１に記載の方法。
【請求項４】
前記インデックスは、前記事前選択されたデータのコピーを含んでいないことを特徴とする、請求項３に記載の方法。
【請求項５】
前記インデックスは、或るデータベース内の要素の、前記データベース内の他の要素に対する相対位置を含むことを特徴とする、請求項３に記載の方法。
【請求項６】
前記インデックスは、データベースのデータのセルのストリング値から導き出されたハッシュ表を含むことを特徴とする、請求項３に記載の方法。
【請求項７】
前記インデックスは、前記データベース内のフラグメントに関係付けられた行番号、列番号、及び列の型式を含むことを特徴とする、請求項３に記載の方法。
【請求項８】
データベースに問い合わせる段階と、
前記データベースから、前記事前選択されたデータの少なくとも１つのコピーを抽出する段階と、
前記データベースから抽出された前記事前選択されたデータに基づいて前記抽象的データ構造を作成する段階と、を更に備えていることを特徴とする、請求項１に記載の方法。
【請求項９】
データベースから抽出された前記事前選択されたデータに基づいて前記抽象的データ構造を作成する段階を更に備えていることを特徴とする、請求項１に記載の方法。
【請求項１０】
前記抽象的データ構造を作成する段階は、
行番号、列番号、及びデータベース表内の各セル毎のデータ型式インジケーターをハッシュ表内に記憶する段階と、
前記ハッシュ表を所定の順序に基づいて衝突リスト内に記憶する段階と、を含んでいることを特徴とする、請求項９に記載の方法。
【請求項１１】
前記順序は昇順辞書式順序であることを特徴とする、請求項１０に記載の方法。
【請求項１２】
前記事前選択されたデータから導き出された抽象的データ構造を使って、前記メッセージの内容探索を実行する段階は、
前記メッセージの１つの中のテキストの個々のラインを解析して、前記１つのメッセージを個々の単語に解析する段階と、
或るラインの前記個々の単語それぞれにハッシュ関数を適用して、前記個々のラインそれぞれの前記個々の単語それぞれ毎に個々のハッシュ表衝突リストを作成する段階と、
前記個々のハッシュ表衝突リスト内のデータセットを、事前選択されたデータと同じ行番号及び異なる列番号で識別する段階と、を含んでいることを特徴とする、請求項１に記載の方法。
【請求項１３】
前記事前選択されたデータは、ポリシーに基づいて選択されることを特徴とする、請求項１に記載の方法。
【請求項１４】
前記ポリシーを指定するユーザー入力を受け入れる段階を更に含んでいることを特徴とする、請求項１に記載の方法。
【請求項１５】
前記ポリシーを指定するユーザー入力を受け入れる段階は、グラフィカルユーザーインターフェースで情報を受け取る段階を含んでいることを特徴とする、請求項１４に記載の方法。
【請求項１６】
前記ポリシーは、前記データの指定と前記データのネットワーク位置を含んでいることを特徴とする、請求項１３に記載のアーキテクチャ。
【請求項１７】
前記データの指定は、表の名前を含んでいることを特徴とする、請求項１６に記載のアーキテクチャ。
【請求項１８】
前記データの指定は、データベース識別子を含んでいることを特徴とする、請求項１６に記載のアーキテクチャ。
【請求項１９】
前記ネットワーク位置は、サーバーのＩＰアドレスを含んでいることを特徴とする、請求項１６に記載のアーキテクチャ。
【請求項２０】
前記ネットワーク位置は、サーバーの識別子を含んでいることを特徴とする、請求項１９に記載のアーキテクチャ。
【請求項２１】
前記メッセージをモニターする段階は、前記ネットワークの複数の出口で発生することを特徴とする、請求項１に記載の方法。
【請求項２２】
データベースに定期的に問い合わせる段階と、
保護対象のデータベースのデータのコピーを抽出する段階と、
抽出されたデータに基づく抽象的データ構造と、その前記データベース内の位置とを導き出す段階と、を更に含んでいることを特徴とする、請求項１に記載の方法。
【請求項２３】
前記抽象的データ構造をメッセージモニタリングシステムに送る段階を更に含んでいることを特徴とする、請求項１に記載の方法。
【請求項２４】
事前選択されたデータベースの内容を含んでいるメッセージが漏洩するのを防ぐ段階を更に含んでいることを特徴とする、請求項１に記載の方法。
【請求項２５】
データベースの内容を含んでいるメッセージをログする段階を更に含んでいることを特徴とする、請求項１に記載の方法。
【請求項２６】
前記ポリシーの違反を報告する段階を更に含んでいることを特徴とする、請求項１に記載の方法。
【請求項２７】
１つ又は複数のメッセージを遮る段階と、
前記１つ又は複数のメッセージを新しい宛先に経路変更する段階と、を更に含んでいることを特徴とする、請求項１に記載の方法。
【請求項２８】
ポリシーを設定するポリシー管理システムと、
ネットワーク上で電子的に送信されるメッセージを、埋め込まれている事前選択されたデータに関してモニターする段階と、前記事前選択されたデータから導き出された抽象的データ構造を使って、前記メッセージの内容探索を実行して、前記埋め込まれている事前選択されたデータの存在を検出する段階とによって、前記ポリシーを実行するメッセージモニタリングシステムと、を備えていることを特徴とするアーキテクチャ。
【請求項２９】
前記ポリシーは、前記データの指定と、前記データのネットワーク位置を含んでいることを特徴とする、請求項２８に記載のアーキテクチャ。
【請求項３０】
前記データの指定は、表の名前を含んでいることを特徴とする、請求項２９に記載のアーキテクチャ。
【請求項３１】
前記データの指定は、データベース識別子を含んでいることを特徴とする、請求項２９に記載のアーキテクチャ。
【請求項３２】
前記ネットワーク位置は、サーバーのＩＰアドレスを含んでいることを特徴とする、請求項２９に記載のアーキテクチャ。
【請求項３３】
前記ネットワーク位置は、サーバーの識別子を含んでいることを特徴とする、請求項３２に記載のアーキテクチャ。
【請求項３４】
前記ネットワーク位置は、列フォーマットされたデータのファイル名を含んでいることを特徴とする、請求項３２に記載のアーキテクチャ。
【請求項３５】
前記ポリシー管理システムと前記メッセージモニタリングシステムは、同じ物理システムに統合されていることを特徴とする、請求項２８に記載のアーキテクチャ。
【請求項３６】
前記ポリシー管理システムと前記メッセージモニタリングシステムは、同じ論理システムに統合されていることを特徴とする、請求項２８に記載のアーキテクチャ。
【請求項３７】
前記ポリシー管理システムと前記メッセージモニタリングシステムは、同じローカルエリアネットワーク（ＬＡＮ）上には無いことを特徴とする、請求項２８に記載のアーキテクチャ。
【請求項３８】
前記ポリシー管理システムと前記メッセージモニタリングシステムは、インターネットを介して一体に連結されている２つの異なるＬＡＮ上に在ることを特徴とする、請求項２８に記載のアーキテクチャ。
【請求項３９】
情報内容を受け取る段階と、
前記情報内容の中で、事前選択されたデータの一部を含んでいるかもしれない内容フラグメントのシーケンスを検出する段階と、
前記事前選択されたデータの表構造を定義している抽象的データ構造を使って、前記シーケンス内の内容フラグメントのサブセットが、事前記前選択されたデータの何れかのサブセットと一致しているか否かを判定する段階と、から成ることを特徴とする方法。
【請求項４０】
前記事前選択されたデータは、エクセルのスプレッドシート、フラットファイル、及びデータベースの内の少なくとも１つに記憶されることを特徴とする、請求項３９に記載の方法。
【請求項４１】
各内容フラグメントは、単語又は句の何れかに対応することを特徴とする、請求項３９に記載の方法。
【請求項４２】
前記内容フラグメントのシーケンスは、或るファイルに含まれている情報内容の中の一式の隣接するトークンであることを特徴とする、請求項３９に記載の方法。
【請求項４３】
前記内容フラグメントのシーケンスは、ネットワーク上で送信されるデータのブロック内に含まれている情報内容の中の一式の隣接するトークンであることを特徴とする、請求項３９に記載の方法。
【請求項４４】
事前選択されたデータの一部を含んでいるかもしれない内容フラグメントのシーケンスを検出する前記段階は、
前記情報内容の中のラインを識別する段階と、
前記ライン内の内容フラグメントのシーケンスが、同様な番号の内容フラグメントと、同様なデータ型式の内容フラグメントとを有していると判定する段階と、を含んでいることを特徴とする、請求項３９に記載の方法。
【請求項４５】
事前選択されたデータの一部を含んでいるかもしれない内容フラグメントのシーケンスを検出する前記段階は、
前記情報内容を所定のフォーマットを有する表現を求めて探索する段階と、
前記表現を取り囲んでいる領域は、事前選択されたデータの一部を含んでいるかもしれないと判定する段階と、を含んでいることを特徴とする、請求項３９に記載の方法。
【請求項４６】
所定のフォーマットを有する前記表現は、口座番号、社会保障番号、クレジットカード番号、電話番号、郵便番号、ｅメールアドレス、番号、現金量又は運転免許証番号の何れかであることを特徴とする、請求項４５に記載の方法。
【請求項４７】
事前選択されたデータの一部を含んでいるかもしれない内容フラグメントのシーケンスを検出する前記段階は、
前記情報内容の中で、所定の統計的パターンに似ている前記内容フラグメントのシーケンスを見つけ出す段階を含んでいることを特徴とする、請求項３９に記載の方法。
【請求項４８】
前記所定の統計的パターンとの類似は、単語の配置又は単語の用法の何れかに基づいていることを特徴とする、請求項４７に記載の方法。
【請求項４９】
事前選択されたデータの一部を含んでいるかもしれない内容フラグメントのシーケンスを検出する前記段階は、
以前の違反の履歴に基づいて、前記情報内容と関係付けられた１つ又は複数の特性が、前記情報内容の中に前記事前選択されたデータが含まれている可能性があることを示していると判定する段階を含んでいることを特徴とする、請求項３９に記載の方法。
【請求項５０】
前記１つ又は複数の特性は、前記情報内容の宛先、前記情報内容の起点、前記情報内容に関わる送信の時間、前記情報内容に関わる送信のサイズ、前記送信に含まれているファイルの型式で構成されるグループから選択されることを特徴とする、請求項４９に記載の方法。
【請求項５１】
前記抽象的データ構造は、前記事前選択されたデータから導き出されたタプル記憶構造を備えていることを特徴とする、請求項３９に記載の方法。
【請求項５２】
前記抽象的データ構造は、複数のタプルを備えており、前記複数のタプルは、それぞれ、前記事前選択されたデータの表構造の対応するセル内のデータ項目の行番号を含んでいることを特徴とする、請求項５１に記載の方法。
【請求項５３】
前記複数のタプルは、それぞれ、列番号と、随意的に前記対応するセル内の前記データ項目の列型式と、を更に含んでいることを特徴とする、請求項５２に記載の方法。
【請求項５４】
前記シーケンス内の内容フラグメントのサブセットが、事前記前選択されたデータの何れかのサブセットと一致しているか否かを判定する前記段階は、
前記シーケンス内の各内容フラグメント毎に、前記抽象的データ構造内で一致タプルのセットを見つけ出す段階と、
前記シーケンス内の全内容フラグメントに対して、見つけ出された一致タプルのセットを組み合わせる段階と、
前記一致タプルの組み合わせられたセットを、行番号によって一致タプルのセットの群に分類する段階と、を含んでいることを特徴とする、請求項５３に記載の方法。
【請求項５５】
前記シーケンス内の内容フラグメントのサブセットが、事前記前選択されたデータの何れかのサブセットと一致しているか否かを判定する前記段階は、更に、
前記一致タプルのセットの群を、各群内に含まれている前記一致タプルのセットの数でソートする段階と、
列番号が異なる前記一致タプルのセットを有する群を選択する段階と、
前記選択された群の何れかが、所定の閾値を越える数の一致タプルのセットを有しているか否か判定する段階と、を含んでいることを特徴とする、請求項５４に記載の方法。
【請求項５６】
前記抽象的データ構造の内容は、ハッシュ関数又は暗号キー付の暗号化関数の何れかを使って、暗号的に取り扱われることを特徴とする、請求項３９に記載の方法。
【請求項５７】
情報内容を受け取るための手段と、
前記情報内容の中で、事前選択されたデータの一部を含んでいるかもしれない内容フラグメントのシーケンスを検出するための手段と、
前記事前選択されたデータの表構造を定義する抽象的データ構造を使って、前記シーケンス内の内容フラグメントのサブセットが、前記事前選択されたデータの何れかのサブセットと一致しているか否か判定するための手段と、を備えていることを特徴とする装置。
【請求項５８】
事前選択されたデータの表構造を定義する抽象的データ構造を含んでいるメモリと、
前記メモリに連結されている少なくとも１つのプロセッサーであって、前記プロセッサーに、情報内容を受け取らせ、前記情報内容の中で、前記事前選択されたデータの一部を含んでいるかもしれない内容フラグメントのシーケンスを検出させ、前記抽象的データ構造を使って、前記シーケンス内の内容フラグメントのサブセットが、前記事前選択されたデータの何れかのサブセットと一致しているか否か判定させる、一式の指示を実行するプロセッサーと、を備えているシステム。
【請求項５９】
プロセッサー上で実行されると、前記プロセッサーに、
情報内容を受け取る段階と、
前記情報内容の中で、事前選択されたデータの一部を含んでいるかもしれない内容フラグメントのシーケンスを検出する段階と、
前記事前選択されたデータの表構造を定義する抽象的データ構造を使って、前記シーケンス内の内容フラグメントのサブセットが、前記事前選択されたデータの何れかのサブセットと一致しているか否か判定する段階と、から成る方法を実行させることになる指示を提供するコンピューター読み取り可能媒体。
【請求項６０】
事前選択された機密データを求めて、パーソナルコンピューター装置の複数のデータ記憶媒体の内容を探索する段階と、
前記事前選択された機密データの少なくとも一部が検出された場合、前記事前選択された機密データの検出に関する通知を、ネットワークを介してシステムに送る段階と、を備えていることを特徴とする方法。
【請求項６１】
前記事前選択された機密データの少なくとも一部が検出された場合、前記検出されたデータへのアクセスを防ぐ段階を更に含んでいることを特徴とする、請求項６０に記載の方法。
【請求項６２】
前記内容は、定期的に探索されることを特徴とする、請求項６０に記載の方法。
【請求項６３】
前記内容は、前記パーソナルコンピューター装置がネットワークと切断されているときに探索されることを特徴とする、請求項６０に記載の方法。
【請求項６４】
前記通知を送る段階は、
前記事前選択された機密データを検出すると、前記事前選択された機密データの検出の通知を含んでいるメッセージを作成する段階と、
前記メッセージを送信キューに置く段階と、
前記パーソナルコンピューター装置が前記システムに再接続された後、前記メッセージを前記システムに送信する段階と、を含んでいることを特徴とする、請求項６３に記載の方法。
【請求項６５】
前記パーソナルコンピューター装置に関する探索の範囲を定義する指示を前記システムから受け取る段階を更に備えていることを特徴とする、請求項６０に記載の方法。
【請求項６６】
前記パーソナルコンピューター装置内の複数のデータ記憶媒体の内容を探索する前記段階は、
前記事前選択された機密データと関係付けられた抽象的データ構造を受け取る段階と、
前記事前選択された機密データを求めて、パーソナルコンピューター装置の複数のデータ記憶媒体の内容を探索するときに、前記抽象的データ構造を使用する段階と、を含んでいることを特徴とする、請求項６０に記載の方法。
【請求項６７】
前記パーソナルコンピューター装置の複数のデータ記憶媒体の内容を探索する前記段階は、前記事前選択された機密データの少なくとも一部の存在に関して、１つ又は複数の特定のデータオペレーションをモニターする段階を含んでいることを特徴とする、請求項６０に記載の方法。
【請求項６８】
前記１つ又は複数の特定のデータオペレーションの少なくとも１つは、ファイル読み取り、ファイル書き込み、ファイル更新、取り外し可能な媒体装置からの読み取り、取り外し可能な媒体装置への書き込み、及び、前記パーソナルコンピューター装置上を走っているプログラムによる前記複数のデータ記憶媒体の何れかに記憶されているデータへのアクセス、から成るグループから選択されることを特徴とする、請求項６７に記載の方法。
【請求項６９】
前記事前選択された機密データは、表フォーマットを有していることを特徴とする、請求項６０に記載の方法。
【請求項７０】
前記事前選択された機密データは、前記事前選択された機密データの要素間の関係に基づいて、表フォーマットに再構築することができることを特徴とする、請求項６０に記載の方法。
【請求項７１】
前記事前選択された機密データは、スプレッドシート、フラットファイル、及びデータベースの内の少なくとも１つで、組織によって維持されていることを特徴とする、請求項６０に記載の方法。
【請求項７２】
前記抽象的データ構造は、前記事前選択されたデータから導き出されたタプル記憶構造を備えていることを特徴とする、請求項７１に記載の方法。
【請求項７３】
前記抽象的データ構造は複数のタプルを備えており、前記複数のタプルは、それぞれ前記事前選択されたデータの表構造の対応するセル内のデータ項目の行番号を含んでいることを特徴とする、請求項７２に記載の方法。
【請求項７４】
前記複数のタプルは、それぞれ、列番号と、随意的に、前記対応するセル内の前記データ項目の列型式を更に含んでいることを特徴とする、請求項７３に記載の方法。
【請求項７５】
前記複数のデータ記憶媒体は、メインメモリ、スタティックメモリ、及び大容量記憶メモリから成るグループから選択されることを特徴とする、請求項６０に記載の方法。
【請求項７６】
前記複数のデータ記憶媒体の内容を探索する段階は、
前記複数のデータ記憶媒体内の各揮発性記憶装置の内容を探索する段階と、
前記複数のデータ記憶媒体内の各永久記憶装置の内容を探索する段階と、を含んでいることを特徴とする、請求項６０に記載の方法。
【請求項７７】
前記パーソナルコンピューター装置上で走っているアプリケーションによって、前記事前選択されたデータの使用を検出する段階を更に含んでいることを特徴とする、請求項７６に記載の方法。
【請求項７８】
前記事前選択されたデータを使っている前記アプリケーションを識別する段階と、
前記識別されたアプリケーションを報告する段階と、を更に含んでいることを特徴とする、請求項７６に記載の方法。
【請求項７９】
事前選択された機密データを求めて、パーソナルコンピューター装置の複数のデータ記憶媒体の内容を探索するための手段と、
前記事前選択された機密データの少なくとも一部が検出された場合、前記事前選択された機密データの検出の通知を、ネットワークを介してシステムに送るための手段と、を備えていることを特徴とする装置。
【請求項８０】
前記内容は、定期的に探索されることを特徴とする、請求項７９に記載の装置。
【請求項８１】
前記内容は、前記パーソナルコンピューター装置がネットワークから切断されているときに探索されることを特徴とする、請求項７９に記載の装置。
【請求項８２】
前記通知を送るための手段は、
前記事前選択された機密データを検出すると、前記事前選択された機密データの検出の通知を含むメッセージを作成するための手段と、
前記メッセージを送信キューに置くための手段と、
前記パーソナルコンピューター装置が前記システムに再接続された後、前記メッセージを前記システムに送信するための手段と、を含んでいることを特徴とする、請求項７９に記載の装置。
【請求項８３】
前記パーソナルコンピューター装置に関する探索の範囲を定義する指示を前記システムから受け取るための手段を更に備えていることを特徴とする、請求項７９に記載の装置。
【請求項８４】
前記パーソナルコンピューター装置の複数のデータ記憶媒体の内容を探索するための前記手段は、前記事前選択された機密データの少なくとも一部の存在に関して、１つ又は複数の特定のデータオペレーションをモニターするための手段を含んでいることを特徴とする、請求項７９に記載の装置。
【請求項８５】
前記１つ又は複数の特定のデータオペレーションの少なくとも１つは、ファイル読み取り、ファイル書き込み、ファイル更新、取り外し可能な媒体装置からの読み取り、取り外し可能な媒体装置への書き込み、及び、前記パーソナルコンピューター装置上を走っているプログラムによる前記複数のデータ記憶媒体の何れかに記憶されているデータへのアクセス、から成るグループから選択されることを特徴とする、請求項８４に記載の装置。
【請求項８６】
前記複数のデータ記憶媒体は、メインメモリ、スタティックメモリ、及び、大容量記憶メモリから成るグループから選択されることを特徴とする、請求項７９に記載の装置。
【請求項８７】
前記複数のデータ記憶媒体の内容を探索するための前記手段は、
前記複数のデータ記憶媒体内の各揮発性記憶装置の内容を探索するための手段と、
前記複数のデータ記憶媒体内の各永久記憶装置の内容を探索するための手段と、を含んでいることを特徴とする、請求項７９に記載の装置。
【請求項８８】
前記パーソナルコンピューター装置上で走っているアプリケーションによって、前記事前選択されたデータの使用を検出するための手段を更に含んでいることを特徴とする、請求項８７に記載の装置。
【請求項８９】
前記事前選択されたデータを使っている前記アプリケーションを識別するための手段と、
前記識別されたアプリケーションを報告するための手段と、を更に含んでいることを特徴とする、請求項８７に記載の装置。
【請求項９０】
様々なデータを記憶する複数の記憶媒体と、
前記複数の記憶媒体に連結されている少なくとも１つのプロセッサーであって、前記プロセッサーに、事前選択された機密データを求めて前記複数のデータ記憶媒体の内容を探索させ、前記事前選択された機密データの少なくとも一部が検出された場合は、前記事前選択された機密データの検出の通知を、ネットワークを介してシステムに送信させる、一式の指示を実行するプロセッサーと、を備えていることを特徴とするパーソナルコンピューター装置。
【請求項９１】
プロセッサー上で実行されると、前記プロセッサーに、
事前選択された機密データを求めてパーソナルコンピューター装置の複数のデータ記憶媒体の内容を探索する段階と、
前記事前選択された機密データの少なくとも一部が検出された場合は、前記事前選択された機密データの検出の通知を、ネットワークを介してサーバーに送る段階と、から成る方法を実行させることになる指示を提供するコンピューター読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを処理する分野に関しており、具体的には、本発明は、情報コンテンツ内で事前選択された（例えば所有権のある）データを検出することに関する。
【背景技術】
【０００２】
多くの組織は、リレーショナルデータベース内に大量の安全機密情報を保存している。この型式のデータは、通常、物理的な保護、アクセス制御、周辺の保安制約、及び場合によっては暗号化を含む非常に徹底した保安方策に委ねられている。データベースのデータへのアクセスは、企業内の多くの従業員の仕事を機能させるには必要不可欠なので、この情報が盗難にあったり偶然に配布されたりする可能性は大いにある。情報の盗難は、知的財産の価値という点からも、法令遵守に関連する法律上の信頼性の点からも重大な経営的危険性を意味する。
【０００３】
リレーショナルデータベースシステム
リレーショナルデータベースシステムは、膨大な範囲のアプリケーションに有用である。関係する構造体は、データを問い合わせるのに自然な直感的方法を提示し、下層のディスク記憶システムの詳細をユーザーから隠すという付加的利点を有する様式でデータを保持している。データベースシステムの典型的なアプリケーションは、自然に表構造にフォーマットされる大量の小さなデータを記憶し検索することである。殆どの人が関心を持っている問い合わせの型式は、以下に概要を述べるが、周知のインデックス構造を使って最適化することができるので、リレーショナルデータベースは非常に有用である。
【０００４】
リレーショナルデータベースシステムに要求される問い合わせは、ユーザーが自分の探している表データを簡潔に要求できるようにする構造化問い合わせ言語（ＳＱＬ）と呼ばれる自然な直感的述語論理を使用する。データベース表には、殆ど常に、ＳＱＬに基づく問い合わせを更に効率的にするインデックスが備えられている。これらのインデックスは、Ｂツリーと呼ばれるデータ構造を使ってメモリ内に記憶されている。現下の議論に最も関係のある、Ｂツリーの顕著な特長は、以下の通りである。
【０００５】
Ｂツリーは、バイナリツリーに基づく抽象的データ構造であり；
Ｂツリーには、インデックス付けする複数のコピーを含んでいなければならず；
Ｂツリーは、以下に概説するする問い合わせ例を使うのが最も効率的である。
【０００６】
多数の問い合わせ例があり、
A=v の形態の正確な一致問い合わせで、ここに；
A は、所与のデータベース表の列又は「属性」であり、
V は、特定の属性値であり、
例えば、SELECT*FROM CUSTOMERS WHERE  Income＝30,000
v1<A<v2 の形態の範囲問い合わせで、ここに；
A は、所与のデータベース表の列又は「属性」であり、
例えば、SELECT*FROM CUSTOMERS WHERE  30<Income<40
A MATCHESs*の形態の接頭語の問い合わせで、ここに、
「s」は特定のストリング値であり、
「s*」は正規表現であり、
例えば、Last_Name MATCHES”Smith*”
【０００７】
データベースシステムの分野における初期の著作に関して沢山の参考文献がある。第１は、Ｅ．Ｆ．Ｃｏｄｄ「大きな共有型データバンク用のデータの関係モデル」ＡＣＭ通信１３（６）、３７７−３８７、１９７０年、によるリレーショナルデータベースに関する独創作業である。
【０００８】
第２の参考文献は、上に概要を述べた型式の効率的な問い合わせを可能にする基礎的なデータ構造である「Ｂツリー」データ構造に関する最初に出版された著作の内の１つである。Ｒｕｄｏｌｆ  ＢａｙｅｒとＥｄｗａｒｄ  Ｍ．ＭｃＣｒｅｉｇｈｔによる「大量の順序付けされたインデックスの編集と管理」、データ記述とアクセスに関する１９７０ＡＣＭ  ＳＩＧＦＩＤＥＴワークショップの記録、１９７０年１１月１５−１６日、米国、テキサス州ヒューストン、Ｒｉｃｅ大学（補遺付き第２版）、１０７−１４１頁、ＡＣＭ、１９７０、を参照されたい。
【０００９】
情報検索システム
情報検索は、文書内に見られるテキストデータの記憶と検索を取り扱う広範な分野である。これらのシステムは、表データではなく主に標準的な文書に焦点を当てており、データベースシステムのものとは異なっている。このシステムの初期の例は、コーネル大学でＳＭＡＲＴシステムの一部として開発された。今日、最も良く知られている情報検索アプリケーションは、Ｇｏｏｇｌｅ、Ｉｎｋｔｏｍｉ及びＡｌｔａＶｉｓｔａの様なウェブベースの探索エンジンである。これらのシステムを使用する一般的な方法は、もっと大きなデジタル文書セットの一部である文書への参照を発見することである。これらのアプリケーションに関するユーザー経験は、通常は、一連の問い合わせと、結果のブラウジングが交錯して構成されている。問い合わせの結果は、関連性が高い順に示されており、ユーザーは、更にブラウジングした後で、問い合わせを精緻化することができる。リレーショナルデータベースについて、これらのシステムが並外れて人気があるのは、人々が最も有用であると分かっている問い合わせの型式に対し迅速に応答するという、基礎をなすインデックスの能力によるものである。
【００１０】
これらのシステムの大部分は、インデックスが付いた文書の集まりから構築される、いわゆる「用語索引」から導き出されたインデックスに基づいている。これらの用語索引は、各用語について、各文書内でその用語が発生した各場所を一覧表にしているデータ構造を含んでいる。そのようなデータ構造によって、特定の用語を含んでいる全ての文書を迅速に探索できるようになる。用語の集まりを含んでいる全ての文書に問い合わせるユーザーの問い合わせに対して、インデックスは、高次のユークリッド空間内の多数のベクトルを表すように構成される。次いでユーザーの問い合わせ用語のリストも、この空間内のベクトルとして再翻訳される。問い合わせは、文書空間内のどのベクトルが問い合わせベクトルに最も近いかを発見することによって実行される。この最後の段階には、正確さと速度を求めて様々な最適化が施され、「余弦計量」と呼ばれている。
【００１１】
先に述べたように、この種のシステムとの典型的なユーザーの対話は、問い合わせ、ブラウジング、精査、そして再度問い合わせに戻る、繰り返しのサイクルである。問い合わせの結果は、通常は、関連性が高い順にランク付けされた多数の文書であり、間違いの可能性の割合が非常に高いこともある。問い合わせに関する幾つかの標準的な例がある。
【００１２】
ａ）「データベース」と「インデックス」という用語を含んでいる全ての文書
ｂ）「データベース」又は「インデックス」という用語を含むが「サイベース」は含んでいない全ての文書、のようなブール問い合わせ。
【００１３】
ａ）「犬」という用語を含んでいる文書でリンクされている全ての文書
ｂ）「犬」という用語を含んでいる、最も「人気のある」（即ちリンクされている）文書、のようなリンクベースの問い合わせ。
【００１４】
情報検索システムの最初の重要な実行プロジェクトの内の１つは、コーネル大学のＳＭＡＲＴシステムである。このシステムは、今日でも使用されている情報検索システムの多くの基本的な構成要素を含んでいる：Ｃ．Ｂｕｃｋｌｅｙによる「ＳＭＡＲＴ情報検索システムの実行」技術レポートＴＲ８５−６８６、コーネル大学、１９８５年。
【００１５】
ＷＡＩＳプロジェクトは、シンキングマシン社製の大量並列処理スーパーコンピューターの初期のアプリケーションだった。これは、インターネット上で利用可能になった最初の情報検索システムの内の１つである。この仕事に関して最初に言及しているのが、Ｂｒｅｗｓｔｅｒ  ＫａｈｌｅとＡｒｔ  Ｍｅｄｌａｒの「企業ユーザー用の情報システム：広域情報サーバー」技術レポートＴＭＣ−１９９、シンキングマシン社、１９９１年４月、３．１９版である。
【００１６】
多くの現在のインターネット探索サービスの市販者の中に、Ｇｏｏｇｌｅがある。探索の精度におけるＧｏｏｇｌｅの真のブレークスルーは、インデックスが付けられた文書のテキストとハイパーリンク構造の両方からデータを取り込める能力である。Ｓｅｒｇｅｙ  Ｂｒｉｎ、Ｌａｗｒｅｃｅ  Ｐａｇｅの「大型ハイパーテキストのウェブ探索エンジンの構造」http://dbpubs.stanford.edu:8090/pub/1998-8を参照されたい。
【００１７】
ファイルシングリングシステム
インターネットと、デジタル文書をコピーし配信する手頃な手段の成長は、不法又は不適切な文書のコピーを検出するのを助ける技術における研究の関心を高めた。この仕事に関する主要なアプリケーションは、著作権法の違反を検出することであり、盗用を検出することである。この問題は、無差別ｅメール（ＡＫＡ要求しないのに送られてくる宣伝用のｅメール）の検出及び自動削除にも関係するので、相当な関心がある。これらの技法の大部分を記述するのに利用する技術用語は、文書フラグメントの隣接するシーケンスが、ハッシュコードによって「シングル」されて減少し、文書内で発見されたのと同じシーケンスでルックアップ表内に記憶される「ファイルシングリング」である。
【００１８】
ファイルシングリングは、２つの文書の間の類似性を探す非常に迅速な方法を提供する。特定の文書（例えばテキストファイル）を保護するために、文書は、文書を文章毎にハッシングし、これらのハッシングした文章を、迅速に探索するための表内に記憶させることによってシングルされる。新しい文書が著作権で保護された内容のフラグメントを含んでいるかどうかを試験して調べるために、試験メッセージの各フラグメントに同じハッシュ関数が適用され、そのフラグメントが著作権で保護された内容で現れるのと同様の順序で現れるかどうかを見る。その技法は、個々のフラグメントを探索するのに必要な時間が極めて短いので、迅速である。
【００１９】
ファイルシングリングシステムとの典型的なユーザーの対話は、能動的ではなく受動的である。ファイルシングリングシステムは、普通は、文書を自動的に処理し、問い合わせ結果を非同期的にユーザーに配信するように設定されている。典型的なファイルシングリングアプリケーションでは、一式のメッセージを用いて組織が組織自体のｅメールシステムに配信したくない制約された内容のインデックスを作る、無差別掲示防止になっている。このシナリオでは、「問い合わせ」は、自動的なｅメールメッセージの処理と、適切な自動的経路指定に過ぎない。
【００２０】
文書等価性の問い合わせについては、各試験文書ｔで、ｔと同じ内容を有するインデックス付き文書の集まりの中の全文書ｄを突き止める。無差別掲示検出の場合、セットｄを、全ての既知の積極的な無差別掲示メッセージとし、文書ｔを、入信ｅメールメッセージとすればよい。
【００２１】
カットアンドペースト検出の問い合わせについては、各試験文書ｔで、何らかのｄのフラグメントがｔで発生しているインデックス付き文書の集まりの中の全文書ｄを突き止める。剽窃を検出する場合、セットｄを、特定のクラスに関して先に提出された全エッセイにし、文書ｔを、剽窃の疑いのある学生が書いた新しい文書にすればよい。
【００２２】
ファイルシングリングにおける主要な発行済み調査プロジェクトは、ＫＯＡＬＡ、ＣＯＰＳ及びＳＣＡＭと呼ばれている。それら全てが、性能及び精度を最適にする変数と共に上に述べた基本的なファイルシングリング法の変数を使用している。ＫＯＡＬＡの情報に関しては、Ｎ．Ｈｅｉｎｔｚｅによる「計測可能な文書諮問押捺制度」（電子商取引における第２回ＵＳＥＮＩＸワークショップの会議録、１９９６年１１月）を参照されたい。ｈｔｔｐ：／／ｗｗｗ−２．ｃ．ｓ．ｃｍｕ．ｅｄｕ／ａｆｓ／ｃｓ／ｕｓｅｒ／ｎｃｈ／ｗｗｗ／ｋｏａｌａ／ｍａｉｎ．ｈｔｍｌ．ＣＯＰＳの情報については、Ｓ．Ｂｒｉｎ、Ｊ．Ｄａｖｉｓ及びＨ．Ｇａｒｃｉａ−Ｍｏｌｉｎａによる「デジタル文書のためのコピー検出機構」（ＡＣＭ  ＳＩＧＭＯＤ年次会議の会議録、１９９５年５月）を参照されたい。ＳＣＡＭの情報については、Ｎ．Ｓｈｉｖａｋｕｍａｒ及びＨ．Ｇａｒｃｉａ−Ｍｏｌｉｎａによる「ＳＣＡＭ：デジタル文書のためのコピー検出機構」（デジタルライブラリの理論及び実践（ＤＬ’９５）における第２回国際会議の会議録、１９９５年６月）ｈｔｔｐ：／／ｗｗｗ−ｄｂ．ｓｔａｎｆｏｒｄ．ｅｄｕ／〜ｓｈｉｖａ／ＳＣＡＭ／ｓｃａｍｉｎｆｏ．ｈｔｍｌ．と、Ｎ．Ｓｈｉｖａｋｕｍａｒ及びＨ．Ｇａｒｃｉａ−Ｍｏｌｉｎａによる「計測可能で正確なコピー検出機構の構築」（デジタルライブラリ（ＤＬ’９５）に関する第１回ＡＣＭ会議の会議録、１９９６年３月）ｈｔｔｐ：／／ｗｗｗ−ｄｂ．ｓｔａｎｆｏｒｄ．ｅｄｕ／ｐｕｂ／ｐａｐｅｒ／ｐｅｒｆｏｒｍａｎｃｅ．ｐｓ．を参照されたい。
【００２３】
インターネットの内容ろ過システム
内容ろ過システムと呼ばれる様々な市販のアプリケーションが保護手段を実行する。この範疇には、ウェブサイト制約／モニタリングソフトウェアとｅメール内容制御の２つの主要なアプリケーション型式がある。どちらの場合も、現在使用されているメインアルゴリズムは、データの誤使用を示すテキストフラグメントの集まりのセットに関して行う正規表現のセットに対するパターンマッチングである。例えば、テキストフラグメント「ＸＸＸ」を含むＵＲＬでの全てのブラウジングを制限することである。ｅメールの内容制御カテゴリの代表的な例は、「所有権」及び「秘密」という用語を含んでいるが、「ジョーク」又は「冗談」という用語を含んでいない全ｅメールを停止し、阻止することである。
【００２４】
【非特許文献１】Ｅ．Ｆ．Ｃｏｄｄ「大きな共有型データバンク用のデータの関係モデル」
【非特許文献２】Ｒｕｄｏｌｆ  ＢａｙｅｒとＥｄｗａｒｄ  Ｍ．ＭｃＣｒｅｉｇｈｔによる「大量の順序付けされたインデックスの編集と管理」
【非特許文献３】Ｃ．Ｂｕｃｋｌｅｙによる「ＳＭＡＲＴ情報検索システムの実行」
【非特許文献４】Ｂｒｅｗｓｔｅｒ  ＫａｈｌｅとＡｒｔ  Ｍｅｄｌａｒの「企業ユーザー用の情報システム：広域情報サーバー」
【非特許文献５】Ｓｅｒｇｅｙ  Ｂｒｉｎ、Ｌａｗｒｅｃｅ  Ｐａｇｅの「大型ハイパーテキストのウェブ探索エンジンの構造」
【非特許文献６】Ｎ．Ｈｅｉｎｔｚｅによる「計測可能な文書諮問押捺制度」
【非特許文献７】Ｓ．Ｂｒｉｎ、Ｊ．Ｄａｖｉｓ及びＨ．Ｇａｒｃｉａ−Ｍｏｌｉｎａによる「デジタル文書のためのコピー検出機構」
【非特許文献８】Ｎ．Ｓｈｉｖａｋｕｍａｒ及びＨ．Ｇａｒｃｉａ−Ｍｏｌｉｎａによる「ＳＣＡＭ：デジタル文書のためのコピー検出機構」
【非特許文献９】Ｎ．Ｓｈｉｖａｋｕｍａｒ及びＨ．Ｇａｒｃｉａ−Ｍｏｌｉｎａによる「計測可能で正確なコピー検出機構の構築」
【発明の開示】
【課題を解決するための手段】
【００２５】
パーソナルコンピューター装置に記憶されている事前選択されたデータを検出するための方法と装置について説明している。或る実施形態では、本方法は、埋め込まれている事前選択されたデータに関してネットワーク上を電子的に送信されたメッセージをモニターする段階と、メッセージ上で内容探索を実行し、事前選択されたデータから導き出された抽象的データ構造を使って、埋め込まれている事前選択されたデータの存在を検出する段階と、を含んでいる。
【発明を実施するための最良の形態】
【００２６】
本発明は、本発明の様々な実施形態に関する以下の詳細な説明及び添付図面から良く理解頂けるであろうが、これらは、本発明を特定の実施形態に限定するものではなく、説明と理解のためのものに過ぎない。
【００２７】
パーソナルコンピューター装置上のあらゆる場所における機密情報の使用を追跡及びモニターするシステム及び方法をここに説明している。或る実施形態では、このモニタリングは、デスクトップコンピューター又はポータブルコンピューターのようなパーソナルコンピューター装置のデータ記憶媒体の内容探索を実行することによって実施される。別の実施形態では、モニタリングは、メッセージがパーソナルコンピューター装置で送受信されるときに、メッセージの内容探索を実行することによって実施される。更に別の実施形態では、モニタリングは、パーソナルコンピューター装置上で実行されているあらゆるアプリケーション内で潜在的機密情報が使用される前、使用されている間、及び使用された後に内容探索を実行することによって実施される。或る実施形態では、ここで説明しているシステムは、大量のデータベースのデータを取り扱える安全且つ測定可能な方法で、この情報を検出することができる。データベースのデータは、限定するわけではないが、リレーショナルデータベース、スプレッドシート、フラットファイルなどを含む様々なシステム内に記憶されているあらゆる形態の表様式データを備えている。
【００２８】
以下の説明では、本発明を徹底的に説明するため膨大な詳細事項を記載している。しかしながら、当業者には自明のように、本発明は、これら特定の詳細事項を備えていなくても実施することができる。別の例では、本発明が分かり難くならないように、周知の構造と装置は、詳しく示さずブロック図の形で示している。
【００２９】
以下の詳細な説明の幾つかの部分は、コンピューターメモリ内のデータビットに関するオペレーションのアルゴリズムと記号的表現で表示されている。これらのアルゴリズム的記述及び表現は、データ処理技術分野の当業者が、他の当業者に、彼等の仕事の本質を最も効果的に伝えるために用いる手段である。ここでは、そして一般的に、アルゴリズムは、所望の結果に辿り着く自己一貫したステップのシーケンスであると考えられる。このステップは、物理量の物理的な操作を要するステップである。通常は、必ずというわけではないが、これらの量は、記憶し、伝送し、結合し、比較し、或いは操作することのできる電気又は磁気信号の形態を取っている。時々、主として共通に使用する目的で、これらの信号をビット、数値、要素、記号、文字、用語、数字などで表すのが便利であると分かっている。
【００３０】
しかしながら、以上の及び同様の用語は、全て適切な物理量と関係しており、これらの量に適用する便宜的ラベルに過ぎないことが頭をよぎる。特記しないかぎり、以下の議論から明らかなように、記述全体を通して、「処理」、「演算」、「計算」、「判断」又は「表示」などの様な用語を使用している議論は、コンピューターシステムのレジスタ及びメモリ内で物理（電子）量で表されているデータを、コンピューターシステムメモリ又はレジスタ或いは他のそのような情報記憶装置か、変換又は表示装置内の物理量として同様に表される他のデータに操作及び変換する、コンピューターシステム、又は同様の電子演算装置の動作と処理を指すものと理解されたい。
【００３１】
本発明は、更に、ここに述べるオペレーションを実行するための装置に関する。この装置は、必要な目的のために特別に作ってもよいし、コンピューターに記憶されているコンピュータープログラムによって選択的に起動又は再構成される汎用コンピューターを備えていてもよい。そのようなコンピュータープログラムは、限定するわけではないが、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ及び磁気光ディスクを含む何らかの型式のディスクか、読み取り専用メモリ（ＲＯＭ）か、ランダムアクセスメモリ（ＲＡＭ）か、ＥＰＲＯＭか、ＥＥＰＲＯＭか、磁気又は光カードか、電子的命令を記憶するのに適している何らかの型式の媒体の様なコンピューター読み取り可能記憶媒体内に記憶され、それぞれが、コンピューターシステムのバスに連結されている。
【００３２】
ここに呈示されているアルゴリズム及び表示は、本来的に、何れかの特定のコンピューター又は他の装置に関係してはいない。様々な汎用システムを、ここでの教示によるプログラムと共に使用してもよいし、必要な方法ステップを実行するため、更に特別仕様の装置を構築すると便利なことも分かっている。これらの様々なシステムに必要な構造は、以下の説明から明らかになるであろう。更に、本発明は、何れかの具体的なプログラミング言語に関連付けて説明してはいない。ここに記載している本発明の教示を実行するのに、様々なプログラミング言語を使用できるものと理解されたい。
【００３３】
機械読み取り可能な媒体は、情報を、機械（例えばコンピューター）によって読み取り可能な形態で記憶又は送信するためのあらゆる機構を含んでいる。例えば、機械読み取り可能な媒体には、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、或いは、電気、光、音響又は他の形態の伝播信号（例えば、搬送波、赤外線信号、デジタル信号など）などが含まれる。
【００３４】
代表的な実施形態の構成要素
或る実施形態では、ここに記載されている検出方式を実行するためのシステムは、ポリシー管理システム（ＰＭＳ）とメッセージモニタリングシステム（ＭＭＳ）の２つの主要な構成要素で構成されている。ＰＭＳは、ネットワーク上で送られるメッセージに含まれるか、ポータブルコンピューター、デスクトップコンピューター、パーソナルデジタルアシスタント、携帯電話などの様なパーソナルコンピューター装置のデータ記憶媒体に記憶されているデータ（例えばデータベースのデータ）の使用と送信のための情報保護ポリシーを定めるユーザー入力の受け入れを担当している。従って、このデータは、事前に選択されている。ここで使用する「パーソナルコンピューター装置のデータ記憶媒体」という用語は、パーソナルコンピューター装置内に在るか、一時的又は永久的にパーソナルコンピューター装置用のデータを記憶するパーソナルコンピューター装置がアクセス可能なあらゆる記憶装置を指す。
【００３５】
ＭＭＳは、ネットワーク上で送られるメッセージ、パーソナルコンピューター装置で処理されるデータ、又はパーソナルコンピューター装置のデータ記憶媒体に記憶されるデータの内容探索の実行と、ユーザーによるＰＭＳに対するポリシーの指定の実施とを担当している。或る実施形態では、これらのシステムは、両方共、情報交換のためあらゆる標準的プロトコルで交信するコンピューターネットワークに連結されている。
【００３６】
この実施形態では、通常のオペレーションの途上で、ユーザーは、或る人間によるデータベースのデータの使用又は送信を制限する所与のポリシーを実行するよう決定し、次いでグラフィカルユーザーインターフェースと１つ又は複数のユーザー入力装置（例えば、マウス、キーボードなど）を使って、このポリシーをＰＭＳに手動で入力する。ユーザーインターフェースは、入力を受け取り、ＰＭＳを備えたコンピューターシステム又は個々の機械で実行されている。例えば或るポリシーは、顧客サービスにおける所与のグループの個々人が、事前選択されたデータを含むデータファイルを、パーソナルコンピューター装置に取り付けられている取り外し可能な媒体装置に保存するのを停止させる。或る実施形態では、ポリシーは、所望される保護の特性（例えば従業員の或るサブセットだけを制限する）、保護を要するデータの型式（例えばデータベースのデータ）、及び保護を要するデータベースのデータのネットワーク位置（例えば、データベース表の名前、サーバーのＩＰアドレス、サーバー又はファイル名）を含んでいる。ここでも、この情報は全て、ユーザーに特定の情報を正しいフィールドに入力するよう促す標準的グラフィカルユーザーインターフェースを使って指定される。
【００３７】
或る実施形態ではユーザーが調節できるが、デフォルトでは指定された間隔（例えば１日）毎に一回である、或る規則的な間隔で、ＰＭＳは、データベースに問い合わせ、保護対象となるデータベースのデータのコピーを抽出し、そのデータから、以下に詳しく説明する抽象的データ構造（以後「インデックス」と呼ぶ）を導き出す。
【００３８】
ＰＭＳは、次に、このインデックスを、実施すべきポリシーの詳細事項と共にＭＭＳへ送り、ＭＭＳがそのポリシーの強制を開始できるようにする。ＭＭＳは、インデックスを、強制すべきポリシーの詳細と共にＰＭＳから受け取る。ＭＭＳは、インデックスとポリシーの情報を使って、ユーザーが指定したポリシーを強制する。或る実施形態では、ＭＭＳは、このインデックスを使って、以下に詳しく論じるように、保護対象のデータベースのデータに関し、出力される各メッセージ（例えばｅメール、ウェブメールメッセージなど）を探索する。別の実施形態では、ＭＭＳは、このインデックスを使用して、以下に詳しく論じるように、保護対象のデータベースのデータに関し、パーソナルコンピューター装置のデータ記憶媒体の内容、及び／又はユーザーとパーソナルコンピューター装置の間の対話の内容を探索する。
【００３９】
代表的なワークフローの概要を図１に示すが、ここでは、最高価値の情報が識別され、ポリシーが生み出され、監視と強制が実行され、訴訟の対象となるビジネス情報に結びつくようになっている。
【００４０】
ネットワークベースのオペレーションのモード
或る実施形態では、メッセージモニタリングシステムは、「監視モード」と「強制モード」の２つの方法の内の一方で構成されている。図２は、２つのネットワーク構成を示している。監視モードでは、ＭＭＳは、ポリシー違反に関してトラフィック及びレポートを観察できるネットワーク上のどこかに配置されているが、メッセージが出て行くときに阻止するようには構成されていない。これは、ＰＭＳが情報にアクセスしている図２Ａに示されている。ＰＭＳは、スイッチ、タップ及びファイアウォールを介してインターネットに連結されている。ＭＭＳは、タップを使ってネットワークメッセージをモニターする。「強制モード」では、ＭＭＳは、違反に関しトラフィックとレポートを観察できるが、更に、メッセージを遮って経路を変更し、メッセージの最終的な宛先を変えることができる。これは、ＰＭＳが情報にアクセスして、スイッチとファイアウォールを介してインターネットに連結されている図２Ａに示されている。この実施形態では、ＭＭＳは、一連のサーバーを使ってトラフィックをモニターし、メッセージが事前選択された情報を含んでいるようだと判断した場合は、例えば、特定のサーバーへとトラフィックの経路を変更する。ＭＭＳは、様々な層のプロトコル毎に異なるサーバーを使用することができる。
【００４１】
メッセージの経路変更は、強制ではない。替わりに、ＭＭＳは、出て行くメッセージを遮って停めるよう構成することもできる。「強制モード」のポリシーの一つの例では、適切な懲戒行為を行えるように、ポリシーに違反する全てのメッセージを、ポリシーに違反した人のマネージャーに送るようになっている。
【００４２】
両方のオペレーションのモードでは、多くのＭＭＳをインストールして、それぞれが内容を検出するのに必要なインデックスに関する固有のコピーを備えておくようにすることができる。この平行処理形態は、尺度の問題と、情報の出口について可能性のある複数のポイントの防御とに役立つ。
【００４３】
両方の形態において、ＭＭＳは、様々なアプリケーション層のプロトコル（例えば、ＳＭＴＰ、ＨＴＴＰ、ＦＴＰ、ＡＩＭ、ＩＣＱ、ＳＯＡＰなど）を使って移送されるメッセージを積極的に解析する。
【００４４】
或る実施形態では、２つのサブシステム（ＰＭＳとＭＭＳ）は、１つのローカルエリアネットワーク（ＬＡＮ）上で走る。しかしながら、ＰＭＳとＭＭＳは、同じ物理的又は論理的システム内に統合できる。この統合された形態は、システムを作るのに必要な商品経費を制御できるため、より適している。
【００４５】
更に別の代替実施形態では、ＰＭＳとＭＭＳは、必ずしも同じＬＡＮ上にはない。ＰＭＳは、データベースの情報と同じＬＡＮ上に在るが、ＭＭＳは、ＰＭＳが在るＬＡＮとは異なるＬＡＮ上に在る。この構成では、２つの異なるＬＡＮは、インターネットによって最終的には１つに連結されるが、ファイアウォール、ルータ及び／又は他のネットワーク装置によって分離される。これは、或る会社が、（法律事務所又は調査代理店の様な）彼等のデータベースのデータを必要としている他の会社を、最初の会社のデータベースのデータのポリシーに違反することから制限したい場合に好都合な構成である。
【００４６】
図３は、データベースのデータを保護するためのプロセスの或る実施携帯のフロー図である。このプロセスは、ハードウェア（回路、専用論理など）、（汎用コンピューターシステム又は専用機上を走っているような）ソフトウェア、又は両者の組み合わせを備えた処理論理によって実行される。
【００４７】
図３に示すように、処理論理は、事前選択されたデータに関してメッセージをモニターする。（処理ブロック３０１）。次に、処理論理は、メッセージが事前選択されたデータを有しているか否かを判断する（処理ブロック３０２）。有していなければ、処理は、ブロック３０１１へ移る。有していれば、処理論理は、個人的な送信／受信メッセージが、メッセージ内の情報を送信／受信する承認を受けているか否かを判断する（処理ブロック３０３）。承認を受けていれば、プロセスは終了し、処理は処理ブロック３０１へ移る。承認を受けていなければ、処理論理は、メッセージを遮り、メッセージの経路を変更し、メッセージをログするなどの１つ又は複数のアクションを取り（処理ブロック３０４）、処理は、処理ブロック３０１へ移る。
【００４８】
クライアントベースのオペレーションのモード
クライアントベースのオペレーションのモードは、データーの潜在的な誤使用を含むユーザーのオペレーションを検出するために、パーソナルコンピューター装置のユーザーが取るモニタリング動作に向けられている。これらのユーザーのオペレーションは、例えば、演算システムの何れかの記憶装置上の制限されているデータベースのデータをセーブ又はアクセスする段階と、アプリケーション内で制限されているデータベースのデータを使用する段階と、制限されているデータベースのデータを印刷する段階と、何れかのネットワーク通信プロトコルで制限されているデータベースのデータを使用する段階などを含んでいる。或る実施形態では、ユーザーの動作のモニタリングは、パーソナルコンピューター装置の局所記憶システムにアクセス又はセーブされる内容、或いは様々なアプリケーション層プロトコル（例えば、ＳＭＴＰ、ＨＴＴＰ、ＦＴＰ、ＡＩＭ、ＩＣＱ、ＳＯＡＰなど）を使って移送される内容の何れかを解析し探索することによって実行される。別の実施形態では、ユーザーの動作のモニタリングは、ユーザーとパーソナルコンピューター装置の間で交換されるデータを捕らえて解釈することによって実行される。
【００４９】
図９は、事前選択された機密データのクライアントベースの保護に関するシステムの１つの実施形態のブロック図である。
【００５０】
図９に示すように、サーバー９０２は、ネットワーク９０６を介してクライアントのコンピューター（クライアントと呼ぶ）９１０と交信する。ネットワーク９０６は、専用ネットワーク（例えば、ローカルエリアネットワーク（ＬＡＮ））でもよいし、公開ネットワーク（例えば、ワイドエリアネットワーク（ＷＡＮ））でもよい。クライアント９１０は、組織内の異なる従業員に属するコンピューターである。各クライアント９１０は、例えば、デスクトップコンピューター、ポータブルコンピューター（例えばラップトップ）、又は間欠的なネットワーク接続によって作動する他の何らかのコンピューターである。内容モニタリングシステム（ここでは、メッセージモニタリングシステム又はＭＭＳとも呼ぶ）９１２は、各クライアント９１２上に在り、事前選択された機密データに関するこのクライアントのデータ記憶媒体の内容を探索することと、ユーザーとクライアント９１２の間で交換された内容を捕らえて解釈することを担当している。データ記憶媒体は、例えば、メインメモリ、スタティックメモリ、大容量記憶メモリ（例えばハードディスク）、又は、クライアントコンピューター用のファイル又は他の文書を一時的又は永久的に記憶する何らかの他の記憶装置を含んでいる。或る実施形態では、ＭＭＳ９１２は、ファイルの読み取り、ファイルの書き込み、ファイルの更新のような特定のデータオペレーションをモニターし、取り外し可能な媒体装置（例えば、フロッピー（登録商標）ドライブ、ユニバーサルシリアルバス（ＵＳＢ）装置、コンパクトディスクレコーダブル（ＣＤＲ）装置など）の読み取り書き込みを行う。ＭＭＳ９１２のオペレーションは、取り外し可能で移動可能な装置による機密データの喪失を防止し易くする。例えば、ＭＭＳ９１２のオペレーションは、ユーザーが、クライアント９１０に記憶されている機密データをフロッピー（登録商標）ディスクにコピーし、機密データを有するファイルをＵＳＢベースの取り外し可能な記憶装置に移し、ラップトップ又はデスクトップコンピューターから機密データを印刷又はｅメールし、機密データを承認されていないアプリケーションで使用するなどの場合に発生する機密データの漏洩を防ぐ。
【００５１】
サーバー９０２は、組織の中で、ここに記載している検出方式の構築を担当している。サーバー９０２は、ＰＭＳ９０４とメッセージコレクタ９１４を含んでいる。ＰＭＳ９０４は、機密データの使用を制御する一式の安全ポリシーを維持している。一式の安全ポリシーは、機密データの潜在的な誤使用についてその人のコンピューターをモニターしなければならない従業員を識別し、探索を実行する機密データを指定し、探索の範囲を定義する（例えば、特定の記憶媒体、データオペレーションなど）。この情報に基づいて、ＰＭＳ９０４は、対応するクライアント９１０を探索するか否かについて各ＭＭＳに指示し、探索に用いるインデックスを送る。インデックスは、安全ポリシーに基づいて１つ又は複数のクライアント９１２に対して事前選択された特定の機密データから導き出される。メッセージコレクタ９１４は、クライアント９１０のユーザーによるデータの誤使用を通知する、ＭＭＳ９１２から受信するメッセージの収集を担当している。
【００５２】
或る実施形態では、各ＭＭＳ９１２は、サーバー９０２とのネットワーク接触を維持できないとき（例えば、ラップトップ９１０が週末に家に持ち帰られたり、他のネットワークに移されたり、盗まれるなど）、スタンドアローンで作動することができる。例えば、ユーザーがラップトップ９１０をネットワーク９０６から切断すると、ラップトップ９１０上で走っているＭＭＳ９１２は、ユーザーが家庭でラップトップで作業している間に、ラップトップ９１０のデータ記憶媒体の定期的な内容探索を実行する。具体的には、ＭＭＳ９１２は、ラップトップ９１０のローカルファイルシステム、ｅメールメッセージアーカイブなどを探索する。更に、ＭＭＳ９１２は、ＰＭＳ９０２に指示された場合は、特定のデータオペレーション（例えば、ファイルの読み取り、ファイルの書き込み、ファイルの更新、フロッピー（登録商標）ディスクの様な取り外し可能な媒体装置に対する読み取り書き込み）をモニターする。或る実施形態では、ＭＭＳ９１２は、クライアント９１０の何れかのデータ記憶媒体上で事前選択されたデータを検出すると、事前選択されたデータの検出の通知を含むメッセージを作成し、このメッセージを送信キューに配置する。後で、ネットワークへの接続が最確立されたときに、送信キューからのメッセージがメッセージコレクタ９１４へ送信される。或る実施形態では、ＰＭＳ９０４が維持しているポリシーは、事前選択されたデータが検出されると、ＭＭＳ９１２が事前選択されたデータへのアクセスを防ぐよう要求する。
【００５３】
図１０は、パーソナルコンピューター装置ベースの、事前選択されたデータの保護のためのプロセスの或る実施形態のフロー図である。このプロセスは、ハードウェア（回路、専用論理など）、（汎用コンピューターシステム又は専用機上を走っているような）ソフトウェア、又は両方の組み合わせを備えた処理論理によって実行される。処理論理は、クライアント９１０のようなパーソナルコンピューター装置上に在る。
【００５４】
図１０に示すように、処理論理は、パーソナルコンピューター装置で実行される内容探索の範囲を定義する指示を受け取る（処理ブロック１００２）。或る実施形態では、指示は、探索しなければならないデータ記憶媒体と探索の周期を指定している。或る実施形態では、指示は、事前選択された機密データの存在に関してモニターすべきデータのオペレーションも指定している。
【００５５】
次に、処理論理は、事前選択された機密データから導き出された抽象的データ構造即ちインデックスを受け取る（処理ブロック１００４）。幾つかの抽象的データ構造の実施形態について、以下に更に詳細に論じる。
【００５６】
処理ブロック１００６では、処理論理は、抽象的データ構造を使って、事前選択された機密データに関して、パーソナルコンピューター装置のデータ記憶媒体の内容を探索する。内容探索の範囲は、サーバーから受け取った指示で定義されている。探索は、このパーソナルコンピューター装置のデータのデータ記憶媒体の内容、及び／又は、ユーザーとパーソナルコンピューター装置の間でやり取りされた内容に対して行われる。或る実施形態では、内容探索は、所定の時間間隔で周期的に実行される。処理論理に用いられる探索技法の幾つかの実施形態について、以下に更に詳しく論じる。「パーソナルコンピューター装置のデータ記憶媒体」という用語は、例えば、磁気ディスク、揮発性ランダムアクセスメモリ、取り外し可能な媒体、テープバックアップシステム、遠隔ネットワークアドレス指定可能記憶装置などを含むパーソナルコンピューター装置がアクセス可能なあらゆる形態のデータ記憶装置を指す。或る実施形態では、処理論理は、パーソナルコンピューター装置上で走っているアプリケーションによって、事前選択されたデータの使用を検出するため、揮発性記憶装置を探索する。使用が検出されれば、処理論理は、事前選択されたデータを使用しているアプリケーションを特定する。
【００５７】
処理論理が事前選択されたデータ（又はその一部）の存在を検出すれば（処理ボックス１００８）、処理論理は、ＰＭＳにより維持されているポリシーが、事前選択されたデータへのアクセスの阻止を要求しているか否かを判断する（処理ボックス１００９）。或る実施形態では、検出されたデータへのアクセスが、このデータへのアクセスを試みているアプリケーションに対して阻止される。
【００５８】
阻止が必要な場合、処理論理は、事前選択されたデータへのアクセスを阻止（処理ブロック１０１０）し、更に、パーソナルコンピューター装置が、サーバー又は何れかの他の指定された装置とのネットワーク接触を維持できるか否かを判断する（処理ボックス１０１１）。この判断が正である場合、処理論理は、検出の通知を含むメッセージをサーバーへ送る（処理ブロック１０１２）。通知は、パーソナルコンピューター装置と検出されたデータを特定する。或る実施形態では、通知は、パーソナルコンピューター装置上で走っているときに事前選択されたデータを使っていたアプリケーションを特定する。
【００５９】
パーソナルコンピューター装置とサーバーの間が接続されていない場合、処理論理は、将来ネットワークとの接続が再確立されたときにサーバーへ送信するために、このメッセージをキュー内に置く（処理ブロック１０１４）。
【００６０】
先に論じたように、パーソナルコンピューター装置ベースのモニタリングは、パーソナルコンピューター装置に保存され処理される内容の監視を考慮している。プロトコルに基づいてフィルタリングを実行する既存のデスクトップベースのファイアウォールとは違って、ここで説明している内容探索は、ファイルシステムやメモリバンク内の事前選択されたデータベースのデータ、又はアプリケーションがアクセスしているプロセス内のデータの追跡に関する具体的な探索の問題に取り組んでいる。
【００６１】
要求者に資格証明書（例えばパスワード）を促すことによって、未承認のアクセスを禁止するアクセス制御技法に関して、ここで説明している機密データのクライアントベースの保護は、パーソナルコンピューター装置内に保存されている内容を、この内容がダウンロードされたか又はアクセス制御システムを介してアクセスされた後でモニターする。
【００６２】
デスクトップベースの暗号化／暗号解読パッケージシステムは、一般的に、サーバーベースの機構を頼りにデータを暗号化し、デスクトップベースの機構を頼りにデータを解読して閲覧するが、このシステムは、データを解読する暗号キーへのアクセスを制限することによって、データの誤使用を防ぐ働きをしている。ここで説明している機密データのクライアントベースの保護は、暗号作成法の包路線の「全くの」外側に残されており、従って第三者によって盗まれ易いデータを保護するのに使用することができる。
【００６３】
添付書類内の敵意を隠したコードの存在を検出するのに通常用いられるアンチウイルスの解決法に対し、ここに説明している機密データのクライアントベースの保護は、隠されたコードの存在ではなく、事前選択されたデータベースのデータの存在を検出することに向けられている。
【００６４】
そのパーソナルコンピューター装置に送られてくる全ての内容をモニターする内容フィルターを使ってハードウェアのオペレーションを駆動するよう書かれているソフトウェアの形態をしたドライバフィルターは、事前選択されたデータに関してパーソナルコンピューター装置のデータ記憶媒体の探索を実行できる能力に欠けている。
【００６５】
１つ又は複数のシステム実施形態に関する安全要件
この検出システムの実施形態は情報の安全ポリシーを強制するのに用いられるので、このシステムの安全特性は最高のものである。或る実施形態では、このシステムの主要目的は、データベースのデータに関わる安全ポリシーを強制することである。これは、このシステムがデータベースのデータを扱う方法が非常に安全であることを示唆している。データベースのデータを保護する過程で、システムがデータベースのデータを盗むための新しい道を開けば、最終的な目的が覆される。
【００６６】
或る実施形態では、ＭＭＳは、ネットワークを流れる膨大な数のメッセージをモニター及び／又は阻止するやり方で展開される。これは、トラフィックが集中しているネットワークの様々なポイント（例えば、ルーター、メールシステム、ファイアウォール、デスクトップコンピューター、ｅメールアーカイブシステムなど）にＭＭＳをインストールすることを意味している。これは、ＭＭＳが、ネットワーク上のこれらの集中ポイントの１つの後ろか前の何れかにインストールされることを意味している。システムのこのような配置は、システムがメッセージの例外的な閲覧をできるようにし、本システムを使っている組織の効用を増大させる。不都合なことに、このような配置によって、ＭＭＳは、第三者が未承認のネットワークアクセスを使用してネットワークを取り囲んでいる機密保護ぺリメーターを犯し、ネットワーク内に含まれているデータを盗むネットワークベースの攻撃（一般的に「ハッキング」と呼ばれている）を、非常に被り易くもなる。このような配置によって、ＭＭＳは、ＭＭＳがモニターしている同じ従業員による「ハッキング」攻撃を受け易くなる。
【００６７】
別の実施形態では、ＭＭＳは、パーソナルコンピューター装置上に局所的に展開され、局所的な記憶媒体の使用、パーソナルコンピューター装置上で走っているアプリケーションによる分類されたデータの使用、及び装置に対するネットワーク通信に関する監視の実行を担当している。このようなシステムの配置によって、システムは、コンピューター装置を操作している人間がアクセスし使用する情報を例外的に閲覧できるようになり、そのシステムを使用している組織の効用を高める。しかしながら、このような配置によって、ＭＭＳは、ＭＭＳがモニターしている同じ従業員による「ハッキング」攻撃を受け易くなる。
【００６８】
ＰＭＳの機密に関する懸念も、そのソフトウェアがＭＭＳの使用するインデックスを作るために情報源に直接問い合わせる点で、高い。
【００６９】
従って、或る実施形態ではネットワーク上のＭＭＳの配置、或いは別の実施形態ではパーソナルコンピューター装置上のＭＭＳの配置が、ＭＭＳを攻撃に曝すことになる。或る実施形態では、これらの攻撃は、ローカルエリアネットワーク（ＬＡＮ）の内側から、又は組織が維持しているＷＡＮ及び／又はインターネットリンクを通してＬＡＮの外側から来る。別の実施形態では、攻撃がパーソナルコンピューター装置のユーザーから来ることもある。ここでの具体的な機密に関する懸念は、ＭＭＳが、保護しようとしているリレーショナルデータベースからの貴重なデータベースのデータを含んでいることである。懸念は、ハッカー又はパーソナルコンピューター装置のユーザーが、リレーショナルデータベースが実際に走っている、もっと徹底的にガードされたコンピューターからではなく、ＭＭＳからデータを盗もうとすることである。
【００７０】
アプリケーションに対する第２のそして関係する機密に関する懸念は、ＭＭＳが、ＰＭＳが展開されているＬＡＮとは異なるＬＡＮで展開されている場合に発生する。先に述べたように、これは、データベースのデータを共有する２つの組織に亘って安全ポリシーを実施するのを助ける重要な構成である。ＭＭＳに記憶されている情報は、ここでも、情報安全の脅威に曝される。
【００７１】
様々な実施形態が、これらの安全の脅威を直接取り扱う。ここに説明しているこれらの実施形態の画期性の１つの態様は、ＰＭＳ／ＭＭＳの対が、保護しようとしているデータのコピーを含んでいないインデックスを交換することである。上に述べたように、ＰＭＳは、ＭＭＳがポリシーを強制できるように、データベースのデータから導き出した抽象的データ構造をＭＭＳへ送る。この保護を実現するために考えられる１つの方法は、単にデータベースをＭＭＳにコピーするだけか、又は（同じく安全の観点から）内容がポリシーと矛盾していないことを確認するためにＭＭＳがデータベースに直接問い合わせできるようにすることである。この方法の問題は、この方法が、それまでは無かった相当な安全の脆弱性を持ち込むことである。この危険な方法では、回復させることは病気より難しい。
【００７２】
或る実施形態では、ＰＭＳは、データベースのデータのコピーを含んでいないか、又はデータベースのデータの暗号化された又はハッシュされたコピーだけを含んでいるデータベースからインデックスを作成する。そのようなインデックスは、データベースのデータのフラグメントに関係する多くのタプルを記憶するためのデータ構造を提供するタプル記憶機構を使って作成される。タプル記憶機構の例には、ハッシュ表、ベクトル、アレイ、ツリー、リスト又はリレーショナルデータベース管理システムの表が含まれる。以下に記載のプロセスでは、インデックスに記憶されているデータは、他の要素に対するデータベース内のその要素の相対位置を保持しているに過ぎない。例えば、ハッシュ表の場合、インデックスは、データベースのデータの各フラグメント（データベースセル内のデータフラグメント）毎に、フラグメントのハッシュコードを、その行番号、列番号及び列の型式と共に記憶している。
【００７３】
この同じ解決法の他の実施形態は、保護されている知的財産のフラグメントを含んでいるインデックスを使用して、その情報を安全の脅威に曝すことにより解決法の価値を下げている。或る実施形態では、ここで具体的に述べている技法は、ＭＭＳを走らせるホストにハッカーが侵入した場合に、盗難に曝されるデータが非論理的となるように、データ自身のあらゆる表現を記憶しないようにしている。
【００７４】
以下に述べるプロセスで説明する代替実施形態を実施すれば、機能を強化することができる。この代替実施形態では、システム内のデータの大部分を表しているデータベースからの頻繁に用いられるストリングと数字の少量のコピーだけが、インデックス内に、データベースの表内のデータの相対位置に関する情報の残りと共に、直接記憶される。これは、ハッシュコードの替わりに、これらの一般的なストリング自体のコピーを記憶することによって行われる。この代替方法では、システムは、（これらの一般的な用語に関して）行番号、列番号及びデータベースのデータの型式を記憶するが、ここではハッシュコードを記憶する代わりに、ストリング自体を記憶する。それほど一般的ではないデータベースの残りのセルでは、具体的にはこれらのストリングのコピーを記憶しないで、行番号、列番号及びデータベースのデータの型式だけが記憶される。この方法は、データベース内のストリングと数字のデータの統計的な分布は、最も一般的な用語が記憶されているデータの全体量の非常に大きな割合を占めるようにスキューされることが多いという事実を利用している。少数の一般的な用語が問い合わせの大部分を占めるので、これらの一般的な用語を別々のインデックスに記憶すれば、インデックスの問い合わせが効率的になり、これらの問い合わせは、文献（例えば、ハッシュ表ルックアップ、ビットマップなど）から標準的で迅速な技法を使って走らせることができる。これが安全上の脆弱性ではないという理由は、データベースのデータの量の不均衡な共有部分を占めるこの少数の用語は、最も価値の少ないデータであるからである。「ジョン」及び「スミス」という用語は、名前を含むデータベースの中では非常に一般的であるが、これらの用語の盗難は比較的価値が低い。この実施形態では、システムは、より高い値の、一般的でない用語のデータ（例えばクレジットカード番号、ＳＳＮ、一般的でない名前など）のコピーの記憶を慎重に回避している。この実施形態では、先に述べた実施形態でのように、システムは、データベース内のセルの配置に関係する情報のハッシュコードとタプルのみを記憶することによって、機密情報のあらゆるコピーの記憶を回避する。
【００７５】
事前選択されたデータの検出
或る実施形態では、事前選択されたデータの検出のプロセスは、索引付けと探索の２つの主なオペレーション又は段階を含んでいる。索引付け段階では、システムが、事前選択されたデータからインデックスを構築する。事前選択されたデータは、関係を表フォーマットに構成できるようなデータであればどの様なデータでもよい。つまり、事前選択されたデータは、表フォーマットで記憶される（例えば、リレーショナルデータベース内のデータ、エクセルのスプレッドシート内のデータなど）か、表フォーマットで記憶するのではないが、表フォーマットで記憶できるような関係（例えば、フラットファイル又はパスワードデータベース内にカンマ分離値として記憶されるデータ、オブジェクト志向データベース内のリレーショナルデータなど）を有している。
【００７６】
図４は、事前選択されたデータに索引を付けるためのプロセスの１つの実施形態のフロー図である。このプロセスは、ハードウェア（回路、専用論理など）、（汎用コンピューターシステム又は専用機上を走っているような）ソフトウェア又はそれらの組み合わせを備えた処理論理によって実行される。
【００７７】
図４に示すように、処理論理は、事前選択されたデータが標準的表フォーマットに記憶されているか否かを判断する段階（処理ボックス４０２）で始まる。記憶されていなければ、処理論理は、事前選択されたデータを標準的表フォーマットに変換する（処理ブロック４０４）。出来た表内の各セルは、事前選択されたデータのフラグメントを記憶している。或る実施形態では、各データフラグメントはトークンである。トークンは、単一の単語でも単語のクラスタ（例えば、引用符でくくられた単語）でもよい。例えば、「ｔｈｉｓ」という単語はデータベースのセル内に記憶されているトークンを表すが、「ｔｈｉｓ  ｔｏｋｅｎ」という句は、単一のストリングとしてデータベースのセル内に記憶されている場合、独立したトークンを表す。
【００７８】
次に、処理論理は、事前選択されたデータから導き出された、タプル記憶構造を作成する（処理ブロック４０６）。タプル記憶構造は、事前選択されたデータのフラグメントと関連付けられた多くのタプルを記憶するための機構を提供する。タプル記憶構造の例には、ハッシュ表、ベクトル、アレイ、ツリー又はリストが含まれる。タプル記憶構造の各型式は、何れかの所与の内容フラグメントに関して一式のタプル（タプル記憶構造内に一致するものが無ければ、その一式のタプルは空となる）を検索するための方法に関係付けられている。
【００７９】
更に、処理論理は、対応するタプルのデータベース内の各データフラグメントの位置に関する情報を記憶する（処理ブロック４０８）。或る実施形態では、データフラグメントの位置に関する情報は、データベース内のデータフラグメントを記憶している行の番号を含んでいる。別の実施形態では、この情報は、データベース内のデータフラグメントを記憶している列の番号と、随意的に列のデータ型式も含んでいる。
【００８０】
その後、処理論理は、タプルを所定の順序（例えば、昇順辞書式順序）にソートする（処理ブロック４１０）。
【００８１】
従って、出来上がった抽象的データ構造（即ち、インデックス）は、大きな全体の文脈内におけるデータ記録の相対位置に関する情報を含んでいるだけであり、事前選択されたデータ自体のフラグメントは何も含んでいない。
【００８２】
或る実施形態では、インデックスの内容は、更にインデックスを盗難から守るために、暗号法的に（例えば、ハッシュ関数で、又は暗号キーを備えた暗号関数を使って）取り扱われている。
【００８３】
事前選択されたデータの検出プロセスの「探索」段階について、更に詳しく論じる。図５は、事前選択されたデータに関する情報内容を探索するためのプロセスの１つの実施形態のフロー図である。このプロセスは、ハードウェア（回路、専用論理など）、（汎用コンピューターシステム又は専用機上を走っているような）ソフトウェア、又は両方の組み合わせを備えた処理論理によって実行される。
【００８４】
図５に示すように、処理論理は、情報内容を受け取る段階で始まる（処理ブロック５０２）。情報内容は、ファイル（例えば、コンピューターのハードドライブに記憶されているアーカイブ済ｅメールメッセージ）、又は、ネットワークで送信されたデータのブロック（何れかの型式のネットワークプロトコルを使って、ネットワーク上を送信されたｅメールメッセージ）に含まれている。
【００８５】
次に、処理論理は、情報内容の中で、事前選択されたデータの一部を含んでいる可能性のある内容フラグメントのシーケンスを検出する（処理ブロック５０４）。先に述べたように、事前選択されたデータは、保護する必要のある所有権のあるデータベースのデータであるか、固有の表構造を有する何か他の種類のデータである。つまり、事前選択されたデータは、表フォーマットで記憶してもよい（例えば、リレーショナルデータベース内のデータ、エクセルのスプレッドシート内のデータなど）し、表フォーマットで記憶するのではないが、表フォーマットで記憶できるような関係（例えば、フラットファイル又はパスワードデータベース内にカンマ分離値として記憶されているデータ、オブジェクト志向データベース内のリレーショナルデータなど）を有しているものでもよい。
【００８６】
或る実施形態では、検出された内容フラグメントのシーケンスは、情報内容内の一式の隣接するトークンである。各トークンは、単語又は句に対応する。検出された内容フラグメントのシーケンスは、受け取った情報内容の一部か又は情報内容全体である。
【００８７】
或る実施形態では、処理論理は、内容フラグメントのシーケンスが列フォーマット済データに似ていると判定する際に、内容フラグメントのシーケンスが、事前選択されたデータの一部を含んでいる可能性があると判断する。この判定は、受信した情報内容を解析して分離線を識別し（例えば、タグ＜ｃｒ＞又は＜ｃｒ＞＜１ｆ＞で表示される）、これらの分離線が同数のトークンと、随意的に同様のトークンのデータ形式を含んでいることを見つけ出すことによって、行われる。
【００８８】
別の実施形態では、処理論理は、全情報内容を解析し、事前選択されたデータに関して隣接するトークンのブロックを探索する際に、内容フラグメントのシーケンスが、事前選択されたデータの一部を含んでいる可能性があると判断する。或る実施形態では、隣接するトークンのブロックは、各ブロックのユーザーが指定した幅、及び、情報内容の中の各ブロックのユーザーが指定した位置（例えば、ユーザーは、２つの隣接するブロックを、或る数のトークンで分離することを要求する）の様なユーザーが指定したパラメーターに基づいて定義される。
【００８９】
更に別の実施形態では、処理論理は、情報内容の中に事前に定義されたフォーマットの表現を見つけ出す際に、内容フラグメントのシーケンスが、事前選択されたデータの一部を含んでいる可能性があると判断する。そのような表現は、例えば、口座番号、社会保障番号、クレジットカードの番号、電話番号、郵便番号、ｅメールアドレス、金融値又は数値を示すテキストフォーマット（例えば、数字を伴う「＄」印）などである。この表現が見つけ出されると、処理論理は、この表現の回りのテキストの領域は、事前選択されたデータの一部を含んでいる可能性があると判断する。この領域の大きさは、見つけ出された表現の各側の所定のトークンの数によって定められる。
【００９０】
更に別の実施形態では、処理論理は、情報内容（又は情報内容の或る部分）の中の単語の使用又は単語の分布が、事前選択されたデータが情報内容の中に含まれていることを示す統計的なパターンと似ていると判定する際に、内容フラグメントのシーケンスが、事前選択されたデータの一部を含んでいる可能性があると判断する。
【００９１】
更に別の実施形態では、処理論理は、受信した情報内容に関係付けられた或る特性が、以前の違反の履歴に基づいて、情報内容の中に事前選択されたデータを含んでいる可能性があることを示していると判定する際に、内容フラグメントのシーケンスが、事前選択されたデータの一部を含んでいると判断する。これらの特性には、例えば、情報内容の宛先（例えば、電子メッセージの受信者）、情報内容の起点、情報内容に関係付けられた送信の時間、情報内容に関係付けられた送信のサイズ、送信に含まれているファイルの型式（例えば、多目的インターネットメールエクステンション（ＭＩＭＥ）型のファイル）などが含まれる。或る実施形態では、以前の違反の履歴は、事前選択されたデータの検出の度に、事前選択されたデータが検出された情報内容の特性を識別し、これらの特性を以前の違反のデータベース内に記録することによって保持される。その後、処理論理は、新しい情報内容の中の内容フラグメントのシーケンスが事前選択されたデータの一部を含んでいるか否かを判定するときに、新しい情報内容の特性を識別し、これらの特性について以前の違反のデータベースを探索する。一致が見つかれば、処理論理は、一致特性に関係付けられた以前の違反が、新しい情報内容の中に事前選択されたデータが含まれている可能性を表示しているか否かを判定する。この表示は、一致特性に関係付けられた以前の違反の数、又は一致特性に関係付けられた以前の違反の頻度に基づいていてもよい。例えば、この表示は、特定の送信者が犯した違反の合計数に基づいていてもよいし、それらの違反の所与の期間に亘る頻度に基づいていてもよい。
【００９２】
その後、事前選択されたデータの一部を含んでいる可能性がある内容フラグメントのシーケンスを検出する際に、処理論理は、これらの内容フラグメントの何れかのサブセットが、事前選択されたデータのサブセットと一致するか否かを判定する（処理ブロック５０６）。この判定は、事前選択されたデータの表構造を定義するインデックス（ここでは抽象的データ構造と呼ぶ）を使って行われる。
【００９３】
図６は、事前選択されたデータから導き出された抽象的データ構造内の内容フラグメントのサブセットに対する一致を見つけ出すためのプロセスの１つの実施形態のフロー図である。このプロセスは、ハードウェア（回路、専用論理など）、（汎用コンピューターシステム又は専用機上を走っているような）ソフトウェア又はそれらの組み合わせを備えた論理を処理することによって実行される。
【００９４】
図６に示すように、処理論理は、図５の処理ブロック５０４で識別された内容フラグメントのシーケンスを内容フラグメント（例えば、トークン）に解析する段階で始まる。次いで、処理論理は、各内容フラグメント毎に、一式の一致タプルに対して抽象的データ構造を探索する（処理ブロック６０２）。例えば、情報内容に含まれている「Ｓｍｉｔｈ」という単語が、抽象的データ構造内に反映されている事前選択されたデータ内に複数回発生しているかもしれない。具体的には、これらの発生のそれぞれは、抽象的データ構造内に対応するタプルを有している。処理論理は、探索の間に、事前選択されたデータ内の「Ｓｍｉｔｈ」という単語の発生に対応する一式のタプルを検索する。各タプルは、事前選択されたデータを記憶しているデータベース又は表の中のこのデータフラグメントの位置に関する情報を記憶する。或る実施形態では、位置情報は、データフラグメントを記憶しているセルの行番号を含んでいる。別の実施形態では、位置情報は、このセルの列番号と、随意的にその列のデータ型式も含んでいる。
【００９５】
次に、処理論理は、全内容フラグメントで見つけ出された一致タプルのセットを組み合わせ（処理ブロック６０４）、次に、組み合わせられた一致タプルのセットを、行番号でグループＬに分類する（処理ブロック６０６）。その結果、各グループＬ（ここではアキュムレータと呼ぶ）は、全てが同じ列番号を有する一致タプルのセットを含み、即ち、各グループＬの一致タプルのセットは、全てがデータベース内の同じ行から出ているように見える事前選択されたデータのフラグメントに対応している。
【００９６】
更に、処理論理は、各グループに含まれている一致タプルのセットの数によってグループＬをソートし（処理ブロック６０８）、或る実施形態では、際立った列の数を備えたタプルのセットを有するグループを選択する（処理ブロック６１０）。その後、処理論理は、選択されたグループが十分に大きい数の一致タプルのセットを有しているか否かを判断する（処理ブロック６１２）。例えば、１つのグループの一致タプルのセットの数が「３」を上回っている場合、情報内容が、データベース内の同じ行の４つ又はそれ以上の列からのデータを含んでいる公算が高い。
【００９７】
探索プロセスの代表的な実施形態について述べる。図７Ａ―７Ｃは、事前選択されたデータのハッシュ表インデックスを使って入信してくるメッセージを探索するためのプロセスの代替実施形態のフロー図である。このプロセスは、ハードウェア（回路、専用論理など）、（汎用コンピューターシステム又は専用機上を走っているような）ソフトウェア又はそれらの組み合わせを備えた処理論理によって実行される。
【００９８】
図７Ａに示すように、処理論理は、入信してくるメッセージを解析する段階で始まる（処理ブロック７０２）。次に、処理論理は、入信してくるメッセージの解析された部分が列フォーマットされたデータを含んでいるか否か判定する（処理ブロック７０４）。或る実施形態では、語彙解析を使用して、（例えば、ラインを分離するのに使用されるタグ＜ｃｒ＞又は＜ｃｒ＞＜１ｆ＞を見つけ出すことによって）入信してくるメッセージの解析された部分のラインを識別し、隣接するラインの中で見つけ出されたトークンの数が数と型式において同じであることを検出する。或る実施形態では、処理論理は、各トークンの型式をトークンの総数と共に記憶する。
【００９９】
処理ボックス７０４でなされた判断が否であれば、処理は、処理ブロック７０２に移る。そうでなければ、処理は処理ブロック７０６へ移り、そこで処理論理がｉを、列フォーマットされたデータに似ている最初のラインと等しくなるよう設定する。
【０１００】
次に、処理論理は、ラインｉ内の各トークンにハッシュ関数Ｈ（ｋ）を適用し（処理ブロック７０８）、ラインｉ内の各トークンに関しハッシュ表内のＨ（ｋ）で一式のタプルを見つけ出し、そのタプルをリストＬに加え、リストＬを、各アキュムレータのタプルが同じ行数値を有する一式のアキュムレータに再分類する（処理ブロック７１２）。更に、処理論理は、各Ａｉの長さによってそのリストＬをソートし（処理ブロック７１４）、ソートされたリストＬ内の固有の列の出現を確認する（処理ブロック７１６）。処理ブロック７１０では、随意の事前処理論理を実行してリストＬに挿入する前にトークンをろ過し、元のトークンｋの語彙型式に一致する型式を備えたタプルだけがＬに加えられるようにする。実施形態の中には、固有の列の出現を確認する段階が速度又は簡潔さの理由で省略されるものもある。更に別の実施形態では、タプルは、行番号のみを含んでいる（即ち、列番号も型式のインジケーターも含んでいない）単なる「単集合」である。
【０１０１】
その後、入信してくるメッセージが、列フォーマットされたデータに似たもっと多くのラインを含んでいる場合（処理ボックス７１８）、処理論理は、列フォーマットされたデータと似た次のラインにｉを逐増し（処理ブロック７２２）、処理は処理ブロック７０６へ移る。そうでない場合、処理論理は、所定のサイズを上回り且つ固有の列番号を有しているＡｉを備えたテキストのラインを報告する（処理ブロック７２０）。
【０１０２】
図７Ｂに示すように、処理論理は、ユーザーが指定した「幅」（Ｗ）と「ジャンプ」（Ｊ）のパラメーターを受け取り（処理ブロック７３２）、入信してくるメッセージを解析する（処理ブロック７３４）段階で始まる。パラメーターＷは、一回繰り返す間に、探索することになる隣接するトークンの各ブロック内の隣接するトークンの数を指定し、パラメーターＪは、２つの隣接するブロックの間の必要なトークン数を指定する。
【０１０３】
次に、処理論理は、位置変数（Ｓt）の値をゼロに設定し（処理ブロック７３６）、Ｓtで始まるＷの隣接するメッセージのトークンを集めることによって、探索するブロック（「テキストブロック」）を定義する（処理ブロック７３８）。
【０１０４】
更に、処理論理は、テキストブロック内の各トークンにハッシュ関数Ｈ（ｋ）を適用し（処理ブロック７４０）、テキストブロック内の各トークン毎にハッシュ表内のＨ（ｋ）で一式のタプルを見つけ出し、テキストブロック内の対応するトークンと同じ型式を有するタプルをリストＬに追加し（処理ブロック７４２）、リストＬを、一式のアキュムレータに再分類し（処理ブロック７４４）、各Ａｉの長さでそのリストＬをソートし（処理ブロック７４６）、ソートされたリストＬ内の、固有の列の出現を確認する（処理ブロック７４８）。
【０１０５】
その後、処理論理は、トークンのＪ数だけＳtを漸増し（処理ブロック７５０）、位置Ｓtがなおメッセージ内にあるか否か判定する（処理ボックス７５２）。判断が正であれば、処理は処理ブロック７３８へ移る。そうでない場合、処理論理は、所定のサイズを上回り且つ固有の列番号を有しているＡｉを備えているテキストブロックを報告する（処理ブロック７５８）。
【０１０６】
図７Ｃに示すように、処理論理は、入信してくるメッセージを解析し（処理ブロック７６４）、ユーザーの指定したフォーマットを有する最初の表現を探す（処理ブロック７６６）段階で始まる。そのような表現は、例えば、口座番号、社会保障番号、クレジットカード番号、金融値又は数値を示すテキストフォーマット（例えば、数字を伴う「＄」印）などである。一致表現が見付からなければ、処理は処理ブロック７６４へ移る。見つけ出されれば、処理は、処理ブロック７６８へ移り、そこで処理論理は、一致表現の前後のＷの隣接するトークンを集めることによって、探索するブロック（「テキストブロック」）を定義する。例えば、テキストブロックは、一致表現の直前の１０個のトークンと、一致表現自体と、一致表現の直後の１０個のトークンで構成される。
【０１０７】
更に、処理論理は、テキストブロック内の各トークンにハッシュ機能Ｈ（ｋ）を適用し（処理ブロック７７０）、テキストブロック内の各トークン毎にハッシュ表内のＨ（ｋ）で一式のタプルを見つけ出し、テキストブロック内の対応するトークンと同じ型式を有するタプルをリストＬに追加し（処理ブロック７７２）、リストＬを、一式のアキュムレータに再分類し（処理ブロック７７４）、各Ａｉの長さでそのリストＬをソートし（処理ブロック７７６）、ソートされたリストＬ内の、固有の列の出現を確認する（処理ブロック７７８）。
【０１０８】
その後、処理論理は、メッセージがユーザーの指定したフォーマットの表現をそれ以上有しているか否か判定する（処理ボックス７８０）。判定が正であれば、処理は処理ブロック７６８へ移る。そうでない場合、処理論理は、所定のサイズを上回り且つ固有の列番号を有しているＡｉを備えているテキストブロックを報告する（処理ブロック７８２）。
【０１０９】
代表的なアプリケーション
或る実施形態では、通常のオペレーションの途上では、（保護が必要な記録が常駐している）組織のデータベースとの安全な通信が行えるように、ＰＭＳは会社のネットワーク上に配置されていると想定されている。通常のオペレーションの途上では、更に、ＭＭＳが、組織の全ての外部とのｅメール通信をモニター及び／又は遮断できるように配置されていると想定されている。
【０１１０】
この例では、組織が、１）名前、２）姓、３）クレジットカード番号、４）残高の４つの列が含まれている「カスタマーレコード」と呼ばれるデータベース表を保護しようとしていると想定する。この組織の従業員は、ＰＭＳが提供するユーザーインターフェースアプリケーションを使用して、カスタマーレコード表がｅメールによる盗難に対する保護を必要としていると指定することになる。すると、ＰＭＳは、データベース内のセルのストリング値から導き出されたハッシュ表で構成されているカスタマーレコード表内の記録のインデックスを作る。つまり、セル内の数値を使ってハッシュ表内の数値を調べる。ハッシュ表自体には、各行番号、列番号及びセル自体のデータ型式の記録が含まれている。ハッシュ表にしばしば見られる衝突の場合、「衝突リスト」は、行番号、列番号及び型式に関するそのような記録を多数保持している。データベース表内の全セルがそのような構造にハッシュされると、インデックスが作成され、ＭＭＳへの送信の準備が整う。インデックスにはデータベースのデータ自体の記録は含まれていないことに注目されたい。これは、このシステムが満たす重要な安全上の制約である。
【０１１１】
ＭＭＳは、インデックスを受け取った後で、メッセージを解析し、メモリ内のハッシュ表を、ＰＭＳで作成されたのと同じ様式で再度作成する。
【０１１２】
ＭＭＳは、外部とのｅメールメッセージをピックアップしてそれを解析する際には、以下に説明するやり方でこのインデックスを使用し、これらのｅメールの何れかに、データベースからのデータが含まれているか否かを検出する。これは、ｅメールメッセージからのテキストの個々のラインを解析することによって行われる。これには、周囲のファイル型式をデコードする段階と、全てのものを生のテキストに変換する段階（例えば、マイクロソフトのワードファイルから全てのフォーマット情報を剥ぎ取り、テキスト自体のみを残す）が含まれている。テキストのこの一連のラインは、「スペース」符号又は他の形態の句読点の様な分離マークを探すことによって個々の単語に解析される。これらの単語はテキストのトークンである。このシステムは、テキストトークンの各ラインに対して、ハッシュ関数を各トークンに適用することによって、インデックスを調べる。このオペレーションの結果が、そのライン上の各トークンに関するハッシュ表の衝突リストとなる。先に説明したように、各衝突リストは、それ自体が、可能性のある行番号、列番号及び型式のトリプレットを記憶する一式のデータ要素である。全トリプレットのユニオンが全ての衝突リストから取られていれば、そして一式のトリプレットが、同じ行番号だが異なる列番号を備えていることが分かれば、高い確率で、ｅメールメッセージからのテキストのこのラインにはデータベースからの記録が含まれている。なお、ここで使用する「タプル」という用語は、行番号、列番号及び型式のトリプレットの特定の場合に限定されず、これら３つのパラメーターの全ては含まれていないデータ構造を指す。例えば、或る実施形態では、或るタプルには、行番号は含まれているが、列番号とデータベースのデータの型式は含まれていない。
【０１１３】
先行技術との比較
データベース問い合わせ機構は、ここで説明している教示と大幅に異なっている。１つの相違点は、Ｂツリーには、実際に、Ｂツリーがインデックスを付けるデータベース表のフラグメントが含まれていることである。上記の方法では、インデックスの内側にはデータベースのデータのコピーは記憶されていない。これが重要なのは、上記の通り、ＭＭＳは、データを漏洩から守るためにインデックスのコピーを持たなければならないが、同時に、相当な脅威に曝されるネットワーク内の位置に最も良く展開されるからである。ＭＭＳが使用するインデックスを、データベースのデータの何れの構成要素からも自由に保つことが、重要な要件である。
【０１１４】
標準的なデータベース問い合わせ機構とここに概説する本発明との間のもう１つの相違点は、必要な問い合わせの型式と関係がある。リレーショナルデータベースに用いられる標準的な問い合わせのセットは、ＡＮＤ又はＯＲのような連結語を使用する述語論理に基づいている。この基本システムは、通常、ｅメール及びウェブメールのメッセージへとカットアンドペーストされるデータベースのデータを検出するのには上手く働かない。ｅメールメッセージへとカットアンドペーストされるデータベースのデータは、通常、レポートからのもので、各ラインに、異質で、データベース表の内側には見られないデータが含まれていることが多い。一つの例は、例えば、一群の消費者に対する会計情報が含まれているｅメールメッセージである。そのようなメッセージには、例えば、名前、姓、社会保障番号など、保護を必要とするコアデータベースからの多量の記録が含まれているが、コアデータベース表に無い情報も含まれている。代表的例は、他のデータベースから「連結された」情報である。もう１つの例は、データベースのデータのフィールドを分離する単純なラインフォーマットトークンである。これらの各ライン上で見られるこの余分なデータの可能性の故に、出て行くメッセージのライン上の各トークンに適用されるＡＮＤ及びＯＲのような標準的な述語論理の接続語が、（ＯＲの場合）過剰なヒットか、（ＡＮＤの場合）ゼロヒットを作り出す。ここでの説明では、本システムは、ｎがライン内のトークンの総数より大幅に少なくても、全てデータベース表の同じ行からのｎ個又はそれ以上のトークンの存在を検出できる。これは、本発明と、データベース及び文書問い合わせ機構に関する上記先行技術との間のもう１つの重要な相違点である。
【０１１５】
上記技法と情報検索技術の間には、幾つかの重大な相違点がある。第１に、これらのシステムのインデックスは、保護対象のデータベース内に記憶されている同じ用語を（用語索引内に）含んでいる。ここでも、システムはハッカーの脅威を受ける可能性のあるネットワーク上の位置にこのインデックスを展開するので、明らかな欠点となる。第２に、これらの問い合わせシステムは、ＡＮＤ及びＯＲのような述語論理の形態を使って、ブール問い合わせを実行する。先に述べたように、この方法は、他の表からの異質なデータと「連結されている」可能性のあるデータベースの記録を検出するには、明らかに不利である。
【０１１６】
ファイルシングリングの技法は、ここに述べる技法と似ているが、実質的に異なっている。ファイルシングリングでは、関心事の主体はテキストデータ（散文、ソフトウェア、概要など）である。ここに述べる技法では、データベースのデータを保護することに焦点が絞られている。１つの相違点は、所与のデータベース表からのデータベースのデータは、試験メッセージで任意に並べ換えられる行順又は列順で現われることである。これらの並べ換えは、通常、データベースのデータを抽出するために適用される問い合わせ機構の単純な結果である。データベースの問い合わせは、任意の列順、及び任意の行順で出てくるデータベースのデータのブロックになる。このため、ファイルシングリングの基本的な技法をデータベースのデータに適用しても、働かない。ファイルシングリングは、保護されている文書と試験文書との間に同じ線形シーケンスが続くことを前提としている。
【０１１７】
インターネットの内容ろ過システムとここに述べる教示との間には、多くの重要な相違点がある。先に述べたように、インターネットの内容ろ過システムは、キーワード探索に基づいている。上に述べた最新の技法は、保護したいデータベースから、抽象的データ構造を構築する。この抽象的データ構造は、保護しようとしているテキストのフラグメントを含んでいない。キーワードろ過システムは、探索しているテキストの幾つかの表現を、そのテキストに関する問い合わせを実行するために、含んでいなければならない。第２の重要な相違点は、これらのインターネットの内容ろ過システムには、データベースのデータを保護する意図がないことである。データベースのデータに関する組織の機密ポリシーに対する違反を検出するために通常の表現一致を使用すると、検出の方法が非常に不正確になる。これらのシステムは、主に、インターネットがポルノ又は虐待的な内容及び言語に関係している際に、従業員がインターネットを悪用するのを止めるのに利用される。そのようなシステムは、データベースのデータの保護に適用すると、データベースの記録と整合を取るのに、通常の表現を使用する。このことも、データベースのデータのフラグメントを、安全の危険性が最大であるネットワーク上のコンピューターに伝送することになる。
【０１１８】
代表的なコンピューターシステム
図８は、ここで述べた１つ又は複数のオペレーションを実行する代表的なコンピューターシステムのブロック図である。図８に示すように、コンピューターシステム８００は、代表的なクライアント８５０又はサーバー８００のコンピューターシステムを備えている。コンピューターシステム８００は、情報を伝達するための通信機構又はバス８１１と、情報を処理するためにバス８１１に連結されているプロセッサー８１２とを備えている。プロセッサー８１２は、限定するわけではないが、例えばＰｅｎｔｉｕｍTM、ＰｏｗｅｒＰＣTM、ＡｌｐｈａTMなどのようなマイクロプロセッサーを含んでいる。
【０１１９】
システム８００は、ランダムアクセスメモリ（ＲＡＭ）、又は、プロセッサー８１２によって実行される情報及び指示を記憶するためのバス８１１に連結されている他のダイナミック記憶装置８０４（メインメモリと呼ばれている）を更に備えている。メインメモリ８０４は、プロセッサー８１２が指示を実行している間に、一時的な変数又は中間情報を記憶するのにも用いられる。
【０１２０】
コンピューターシステム８００は、読み取り専用メモリ（ＲＯＭ）、及び／又はプロセッサー８１２用のスタティック情報及び指示を記憶するためにバス８１１に連結されている他のスタティック記憶装置８０６と、磁気ディスク又は光ディスクのようなデータ記憶装置８０７及びその対応するディスクドライブを更に備えている。データ記憶装置８０７は、情報及び指示を記憶するためバス８１１に連結されている。
【０１２１】
コンピューターシステム８００は、更に、情報をコンピューターのユーザーに表示するためバス８１１に連結されている陰極線管（ＣＲＴ）又は液晶表示装置（ＬＣＤ）の様な表示装置８２１に連結されている。英数字及び他のキーを含んでいる英数字入力装置８２２も、プロセッサー８１２に情報及びコマンド選択を伝達するためバス８１１に連結されている。追加のユーザー入力装置は、指示情報及びコマンド選択をプロセッサー８１２に伝達し、ディスプレイ上のカーソルの動きを制御するためバス８１１に連結されている、マウス、トラックボール、トラックパッド、スタイラス又はカーソル方向キーの様なカーソルコントロール８２３である。
【０１２２】
バス８１１に連結されているもう１つの装置は、紙、フィルム又は同様の型式の媒体の様な媒体上に指示、データ又は他の情報を印刷するために用いられるハードコピー装置８２４である。更に、スピーカー及び／又はマイクロホンの様な音声記録及び再生装置も、コンピューターシステム８００と音響的インターフェースを取るために、随意的にバス８１１に連結される。この他、バス８１１に連結される装置には、電話又は携帯装置と通信するための有線／無線通信機器８２５がある。
【０１２３】
なお、システム８００及び関連ハードウェアの構成要素の何れか又は全てを、本発明で用いることができる。しかしながら、他の構成のコンピューターシステムが、本装置の一部又は前部を含んでいてもよい。
【０１２４】
以上の説明を読んだ後では、当業者には、本発明に関する多くの変更及び修正が疑いもなく明白になったことであろうが、分かり易くするために図示し説明している具体的な実施形態は、本発明を限定するものではない。従って、様々な実施形態の詳細についての言及は、本発明に必須であると見なされる特徴のみを列挙している請求項の範囲を限定する意図はない。
【図面の簡単な説明】
【０１２５】
【図１】ワークフローの１つの実施形態を示している。
【図２Ａ】代表的なオペレーションのモードを示している。
【図２Ｂ】代表的なオペレーションのモードを示している。
【図３】データベースのデータを保護するためのプロセスの１つの実施形態のフロー図である。
【図４】データベースのデータに索引を付けるためのプロセスの１つの実施形態のフロー図である。
【図５】事前選択されたデータの情報内容を探索するためのプロセスの１つの実施形態のフロー図である。
【図６】事前選択されたデータから導き出された抽象的データ構造内の内容フラグメントのサブセットに一致するものを見つけ出すためのプロセスの１つの実施形態のフロー図である。
【図７Ａ】事前選択されたデータのハッシュ表インデックスを使って、入信してくるメッセージを探索するためのプロセスの代替実施形態のフロー図である。
【図７Ｂ】事前選択されたデータのハッシュ表インデックスを使って、入信してくるメッセージを探索するためのプロセスの代替実施形態のフロー図である。
【図７Ｃ】事前選択されたデータのハッシュ表インデックスを使って、入信してくるメッセージを探索するためのプロセスの代替実施形態のフロー図である。
【図８】本明細書で説明している１つ又は複数のオペレーションを実行する代表的なコンピューターシステムのブロック図である。
【図９】事前選択された機密データをクライアントベースで保護するためのシステムの１つの実施形態のブロック図である。
【図１０】事前選択された機密データをクライアントベースで保護するためのプロセスの１つの実施形態のフロー図である。
【図１】
2005539334.tif 000003
【図２Ａ】
2005539334.tif 000004
【図２Ｂ】
2005539334.tif 000005
【図３】
2005539334.tif 000006
【図４】
2005539334.tif 000007
【図５】
2005539334.tif 000008
【図６】
2005539334.tif 000009
【図７Ａ】
2005539334.tif 000010
【図７Ｂ】
2005539334.tif 000011
【図７Ｃ】
2005539334.tif 000012
【図８】
2005539334.tif 000013
【図９】
2005539334.tif 000014
【図１０】
2005539334.tif 000015
【国際調査報告】
2005539334.tif 000016
2005539334.tif 000017
2005539334.tif 000018
2005539334.tif 000019
2005539334.tif 000020