(57)【要約】  データベース・テーブル、テキスト・ファイル、データ・フィードなどをソルティング及びフィンガープリンティングするためのシステム及び方法は、最初に、データ・セット中の１つ又は複数のフィールドに従ってデータを再ソーティングする。ソルティング・レシピが選択され、ソーティングされたデータに適用される。データのフィンガープリントが、ソーティング及びソルティングの後にキャプチャされる。データは、次いで、信用できる第三者に送られる前に、それの元の順序に復元される。データ所有者が、ソーティング技法、ソルティング技法、及びフィンガープリントに関係する情報を保持するので、データ所有者は、ソルティングされたファイルからソルティングされていないファイルを再構成することができ、ワイルド・ファイルがデータ・ファイルからのデータを含んでいるかどうかを決定することができる。ソルティングは、バッド・アクターが、データがソルティングされていることに気づいている場合でも、バッド・アクターによって検出することが困難である。
2019508832.tif 000002
【特許請求の範囲】
【請求項１】
データ・ファイルをソルティング及びフィンガープリンティングするための方法であって、前記データ・ファイルが複数のレコードを含み、前記レコードの各々が少なくとも１つのフィールドを含み、前記方法は、
ａ．複数の利用可能なソーティング技法からソーティング技法を選択するステップと、
ｂ．前記選択されたソーティング技法に従って前記データ・ファイル中の前記レコードをソーティングするステップと、
ｃ．複数の利用可能なソルティング技法からソルティング技法を選択するステップと、
ｄ．前記ソーティングするステップが実行された後、前記選択されたソルティング技法を前記データ・ファイル中の１つ又は複数のレコードに適用するステップであって、前記ソルティング技法が、ソルティングされたデータ・ファイルを作成するために、前記ソーティングするステップの後の前記データ・ファイル中の前記レコードの順序に少なくとも部分的に基づく、適用するステップと、
ｅ．前記ソルティングするステップの後に前記ソルティングされたデータ・ファイルのフィンガープリントを構築するステップであって、前記フィンガープリントが、前記ソルティングされたデータ・ファイル中の前記複数のレコード中の前記レコードの少なくともサブセットの少なくとも１つのフィールドを含む、構築するステップと、
ｆ．再ソーティングされたソルティングされたデータ・ファイルを生成するために、前記ソーティングされた及びソルティングされたデータ・ファイルを、それが前記ソーティングするステップより前にそうであったようなそれの元のソート順序に復元するステップと、
ｇ．ファイル識別子を前記データ・ファイルに関連付けるステップと、ファイル・データベース中に前記ファイル識別子を、前記選択されたソーティング技法に関連付けられた識別子、前記選択されたソルティング技法に関連付けられた識別子、及び前記フィンガープリントとともに記憶するステップと、
ｈ．前記再ソーティングされたソルティングされたデータ・ファイルを、信用できる第三者（ＴＴＰ）に配信するステップと
を含む、方法。
【請求項２】
前記選択されたソーティング技法が複数レベル・ソーティング技法である、請求項１に記載の方法。
【請求項３】
前記選択されたソルティング技法が、前記複数の利用可能なソルティング技法の中からランダムに選定される、請求項１に記載の方法。
【請求項４】
前記選択されたソルティング技法がコーディング精度支援システム（ＣＡＳＳ）に準拠する、請求項１に記載の方法。
【請求項５】
前記ソルティング技法がバッド・アクターによって検出不可能である、請求項１に記載の方法。
【請求項６】
前記ソルティング技法が前記データ・ファイルの有用性を損なわない、請求項１に記載の方法。
【請求項７】
前記データ・ファイルの各レコードが複数のフィールドを含み、さらに、前記データ・ファイルの各レコードが、消費者に関係する情報を含む、請求項１に記載の方法。
【請求項８】
ワイルド・ファイル中の複数のデータ・ファイルのうちの１つから、１つ又は複数のレコードの存在を検出する方法であって、前記複数のデータ・ファイルと前記ワイルド・ファイルとが各々、各々複数のフィールドを含む複数のレコードを含み、前記方法は、
ａ．ソーティング技法のセットからの複数のソーティング技法を前記ワイルド・ファイルに適用するステップと、
ｂ．前記ワイルド・ファイルへの、前記複数のソーティング技法のうちの１つの各適用のために、ソルティング技法のセットから複数のソルティング技法を検索するステップと、前記複数のソルティング技法の各々について、マッチが生じるかどうかを決定するために、前記データ・ファイルのうちの少なくとも１つをソルティングすることの結果を前記ワイルド・ファイルと比較するステップと、
ｃ．前記少なくとも１つのデータ・ファイルをソルティングすることの前記結果を前記ワイルド・ファイルと比較した後にマッチが生じた場合、前記ワイルド・ファイル中の少なくとも１つのレコードの少なくとも１つのフィールドを複数のフィンガープリントのうちの少なくとも１つと比較するステップと、
ｄ．前記ワイルド・ファイル中の少なくとも１つのレコードの前記少なくとも１つのフィールドと、前記複数のフィンガープリントのうちの少なくとも１つとの前記比較がマッチを生じた場合、前記ワイルド・ファイルが前記データ・ファイルから導出されたという結果を返すステップと、
ｅ．前記ワイルド・ファイルへの、前記複数のソーティング技法のうちの１つの各適用及び前記複数のソルティング技法のうちの１つの各適用が、前記フィンガープリントとのマッチを生じない場合、前記ワイルド・ファイルが前記データ・ファイルから導出されなかったという結果を返すステップと
を含む、方法。
【請求項９】
前記複数のソーティング技法のうちの少なくとも１つが複数レベル・ソーティング技法である、請求項８に記載の方法。
【請求項１０】
前記複数のソルティング技法のうちの少なくとも１つがコーディング精度支援システム（ＣＡＳＳ）に準拠する、請求項８に記載の方法。
【請求項１１】
データ・ファイルをソルティング及びフィンガープリンティングするためのシステムであって、前記データ・ファイルが複数のレコードを含み、前記レコードの各々が少なくとも１つのフィールドを含み、
ａ．データ・ファイルを受信するように構成されたソーター・エンジンであって、前記データ・ファイルが、各々少なくとも１つのフィールドを含む複数のレコードを含み、前記ソーター・エンジンが、ソーティングされたデータ・ファイルを生成するために、ソーティング技法に従って前記データ・ファイル中の前記レコードをソーティングすることと、再ソーティングされたデータ・ファイルを生成するために、前記ソーティングされたデータ・ファイルをそれの元の順序に再ソーティングすることとを行うように構成された、ソーター・エンジンと、
ｂ．前記ソーター・エンジンと通信しているソーティング技法ストアであって、複数のソーティング技法を含む、ソーティング技法ストアと、
ｃ．前記ソーター・エンジンと通信しており、前記ソーティングされたデータ・ファイルを受信することと、ソルティングされたデータ・ファイルを生成するために、ソルティング技法に従ってソルトを前記ソーティングされたデータ・ファイルに適用することとを行うように構成されたソルティング・エンジンと、
ｄ．前記ソルティング・エンジンと通信しているソルティング技法ストアであって、複数のソルティング技法を含む、ソルティング技法ストアと、
ｅ．前記ソルティングされたデータ・ファイルのうちの少なくとも１つのレコードの少なくとも１つのフィールドからフィンガープリントを生成するように構成された、前記ソルティング・エンジンと通信しているフィンガープリント・エンジンと、
ｆ．前記ソーター・エンジン、前記ソルティング・エンジン、及び前記フィンガープリント・エンジンと通信しているファイル・データベースであって、データ・ファイル識別子と、選択されたソーティング技法識別子と、選択されたソルティング技法識別子と、前記フィンガープリントとを記憶するように構成された、ファイル・データベースと
を含む、システム。
【請求項１２】
前記ソーティング技法ストアにおける前記複数のソーティング技法のうちの少なくとも１つが、複数レベル・ソーティング技法である、請求項１１に記載のシステム。
【請求項１３】
前記ソーター・エンジンが、前記ソルティング技法ストアにおける前記複数の利用可能なソルティング技法の中から前記選択されたソルティング技法をランダムに選択するようにさらに構成された、請求項１１に記載のシステム。
【請求項１４】
前記ソルティング技法ストアにおける前記複数のソルティング技法のうちの少なくとも１つが、コーディング精度支援システム（ＣＡＳＳ）に準拠する、請求項１１に記載のシステム。
【請求項１５】
前記データ・ファイルの各レコードが複数のフィールドを含み、さらに、前記データ・ファイルの各レコードが、消費者に関係する情報を含む、請求項１１に記載のシステム。
【請求項１６】
前記ソーター・エンジンが、各々少なくとも１つのフィールドを含む複数のレコードを含むワイルド・ファイルを受信することと、前記ソーティング技法ストアからの前記複数のソーティング技法の各々を前記ワイルド・ファイルに適用することとを行うようにさらに構成され、前記ソルティング・エンジンが、前記ワイルド・ファイルへの、前記複数のソーティング技法のうちの１つの各適用のために、前記ソルティング技法ストアから前記複数のソルティング技法の各々を検索するようにさらに構成され、前記複数のソルティング技法の各々について、マッチが生じるかどうかを決定するために、前記データ・ファイルをソルティングすることの結果を前記ワイルド・ファイルと比較するように構成されたマッチ・エンジンをさらに含み、さらに、前記フィンガープリント・エンジンが、前記データ・ファイルをソルティングすることの前記結果を前記ワイルド・ファイルと比較した後にマッチが生じた場合、前記ワイルド・ファイル中の少なくとも１つのレコードの少なくとも１つのフィールドを複数のフィンガープリントのうちの少なくとも１つと比較することと、前記ワイルド・ファイル中の少なくとも１つのレコードの前記少なくとも１つのフィールドと、前記複数のフィンガープリントのうちの少なくとも１つとの前記比較がマッチを生じた場合、前記ワイルド・ファイルが前記データ・ファイルから導出されたという結果を返すこと、又は、前記ワイルド・ファイルへの、前記複数のソーティング技法のうちの１つの各適用と前記複数のソルティング技法のうちの１つの各適用とが、前記フィンガープリントとのマッチを生じない場合、前記ワイルド・ファイルが前記データ・ファイルから導出されなかったという結果を返すこととを行うようにさらに構成された、請求項１１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の分野は、データが不適切にコピー又は使用されたかどうかを決定するための、データのソルティング及びデータ・セットのフィンガープリンティングである。ソルティングは、データが漏洩された場合、データのサブセット中に含まれているデータがデータ所有者に識別され得るように、データのサブセットに一意のデータ（ソルト）を挿入する仕組みである。フィンガープリンティングは、データ・セットから、はるかに短いセット、それにもかかわらず、元のデータ・セットを識別するそのフィンガープリントを生成するプロセスである。
【背景技術】
【０００２】
データ漏洩は、所有者又は許可されたユーザ以外の誰かによるデータの不正の使用として定義され得る。データ漏洩の財政的影響は、世界的に毎年数億ドル単位であると推定され、したがって、データ・サービス産業における非常に重要な問題を表す。データ漏洩を防ぐことを試みるソリューションが、しばらくの間存在している。これらのソリューションは、データが組織のファイアウォール外に漏洩するのを防ぐか、又はデータがファイアウォールを出て「ワイヤ上の」オープン・ネットワーク上に移動するときにデータを暗号化する。グラフィカル、ビデオ、オーディオ、又はドキュメント（すなわち、テキスト又はｐｄｆ）データが、ファイアウォール外に平文で実際に暴露された後、そのデータの所有権を主張するためのソリューションも存在しており、組織は、悪用からそれらのデータを保護するためのものとして知られる、これらの「デジタル・ウォーターマーキング」ソリューションを使用する。（「ウォーターマーキング」という用語は、印刷媒体から借用され、ウォーターマークは、真正性を検証するための印刷文書上の転写画像又はパターンからなるが、デジタル・ウォーターマークは、同じ目的をはたすためにデジタル・ファイル中に埋め込まれた一種のマーカーである。）データ所有者が法廷においてウォーターマークを所有権及び著作権侵害の証拠として使用することができるので、ウォーターマークは、データ所有者が無認可使用についての損害を回復することを可能にする。同時に、そのような法的救済が存在することは、個人又はグループが、その著作物を無料で取得し、次いで使用することを希望することを阻止する。
【０００３】
不幸にも、テキスト及びデータベース・ファイルのデータ漏洩は、平文で受け渡されるのか使用の時点において解読されるのかにかかわらず、未解決の問題のままである。消費者データの所有者（「データ所有者」）は、しばしば、自身のデータを、金融サービスにおけるレギュレーションＢ或いは地域、州又は連邦政府によって設定されたプライバシー法など、契約上の要件又はデータ処理規則に従って、そのデータを法的様式でのみ使用すると確信される個人又は組織（「信用できる第三者」又は「ＴＴＰ」）に与えるか、リースするか、又は販売する。このデータは、通常、一連のデータベース・テーブル（たとえば、．ｓｑｌフォーマット）、テキスト・ファイル（たとえば、．ｃｓｖ、．ｔｘｔ、．ｘｌｓ、．ｄｏｃ、及び．ｒｔｐフォーマット）として、又はリアルタイム・データ・フィード（たとえば、ＸＭＬ又はＪＳＯＮ）として送信される。これにもかかわらず、データ所有者のデータが、承知の上で又は知らないでのいずれかで適切な許可なしにさらには違法にデータを使用する他人（「バッド・アクター（Ｂａｄ  Ａｃｔｏｒ）」）の手中に漏洩することがしばしば行われる（漏洩されたファイルは、本明細書では「漏洩されたサブセット」として定義される）。これは、たとえば、ＴＴＰが、承知の上でデータを公開し、それ自体がバッド・アクターであるか、ＴＴＰの従業員が承知の上で又は偶然にデータを公開するか、或いはデータ所有者自体の従業員が承知の上で又は知らないでデータを漏洩するので、起こり得る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
データベース、テキスト・ファイル、又はリアルタイム・データ・フィード（たとえば、ＸＭＬ又はＪＳＯＮ）のウォーターマーキングは、固有の課題を提示する。画像、ビデオ又はオーディオ・ファイルは、高密度で、高度に構造化される。これらのタイプのファイルは雑音耐性があるので、ファイルの情報コンテンツ又はユーザ・エクスペリエンスを劣化させることなしに、これらのファイル中にウォーターマークとして少量のデータを埋め込むことが容易である。雑音耐性ファイルは、（ウォーターマークなどの）わずかな雑音が、得られるデータを劣化させることなしに追加され得るファイルであり、たとえば、ウォーターマークは、閲覧者が変化に気づくことなしに、数ビットのデータを変更すること又は隣接フレームの順序を変更することによってビデオ・ファイルに追加され得る。同時に、このタイプのデータの高度に構造化された性質は、バッド・アクターがウォーターマークを除去することを困難にする。データベース、テキスト・ファイル、又はリアルタイム・データ・フィード（たとえば、ＸＭＬ又はＪＳＯＮ）は、それと比較して、比較的軽量であり、したがって、雑音の導入に耐えられない。たとえば、名前又は住所中の単一の文字を変更することさえ、そのレコード中のデータを無用にし得る。このタイプのデータの構造は、ウォーターマークをもろくし、検出しやすくし、したがって、データが不適切に使用されたことを立証しようとする当事者に認識不可能にするのを容易にするやり方（たとえば、列を並べ替えること、行を付加すること、行を削除すること）で、容易に操作され得る。たとえば、検出を回避するために、データ・テーブル内の要素が変更され得、データが他のデータ・ソースからのデータとマージされ得、データがサブセットに分割され及び／又は他のやり方で再構成され、操作され得る。その結果、データベース又はテキスト・ファイル（或いはそれのＪＳＯＮ又はＸＭＬ等価物）の所有権を主張すること及び／或いはデータを漏洩することの原因である当事者を検出することを希望するデータ所有者にとって著しい障害が存在する。データ所有者は、適用可能な証拠基準を満たす不法行為の証明を欠くので、訴訟（ａｃｔｉｏｎ  ａｔ  ｌａｗ）を通して収益減を容易に回復することもできない。その上、データ漏洩を検出するための現在の方法は、主に手動操作を通してであり、したがって、時間がかかり、労働集約的であり、費用がかかり、誤りを起こしやすい。したがって、これらのタイプのファイルにウォーターマークを入れるか又は「ソルティングする」改善されたシステム及び方法が、大いに利益になるであろう。
【課題を解決するための手段】
【０００５】
本発明は、データベース・テーブル、テキスト・ファイル、データ・フィード（たとえば、ＸＭＬ又はＪＳＯＮ）、及び同様のデータにソルティングする（又はそれらにウォーターマークを適用する）ための方法を対象とする。本発明のいくつかの実装形態では、データ・セットは、最初に、データ・セット中のフィールドに従って再ソーティングされる。（利用可能なソルティング・レシピのグループから選択され得る）ソルティング・レシピが、ソーティングされたデータに適用される。データのフィンガープリントが、次いで、ソーティング及びソルティングの後にキャプチャされる。データは、次いで、ＴＴＰに送られる前に、それの元の順序に復元される。データ所有者は、各ファイル及びいくつかの実装形態ではファイルの各公開について、ソーティング技法、ソルティング技法、及びフィンガープリントに関係する情報を保持するので、データ所有者は、ソルティングされたファイルからソルティングされていないファイルを再構成することができる。さらに、漏洩されたサブセット中に含まれているデータは、変更された場合でも、特有の受信側及び受信側が受信した特定のファイルに与えられたものとしてデータ所有者によって識別され得る。サード・パーティから取得されたワイルド・ファイルから特有の漏洩されたサブセット及びバッド・アクターを識別するこのプロセスは、罪の割当て（Ｇｕｉｌｔ  Ａｓｓｉｇｎｍｅｎｔ）と呼ばれる。罪の割当ては、データ所有者が、データのソルティングに基づいて、バッド・アクターをそれによって起訴する強い証拠事例を構築することを可能にする。ソルティングは、バッド・アクターによって検出することが困難であり、したがって、バッド・アクターが、データがソルティングされたか又はソルティングされ得たことに気づいている場合でも、バッド・アクターが除去することが困難又は不可能である。したがって、ソルティングは、潜在的バッド・アクターが最初に取得したデータを事実上不適切に使用する可能性を低減し、それは、そのような不適当な使用が検出され得、法的措置を生じることを知ることによるものである。
【０００６】
本発明のこれらの及び他の特徴、目的並びに利点は、以下で説明されるように、図面とともに、好ましい実施例の以下の詳細な説明及び添付の特許請求の範囲を考慮するとより良く理解されるようになるであろう。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施例による、ソルトが新しいファイル又はデータ・フィードに追加されるプロセスを示す図である。
【図２】本発明の一実施例による、出所不明（ｕｎｋｎｏｗｎ  ｏｒｉｇｉｎ）のファイル又はデータ・フィードが、ソルトの存在のために分析されるプロセスを示す図である。
【図３】本発明の一実施例による、ソルティング・システムのインフラストラクチャ及びアーキテクチャを示す図である。
【発明を実施するための形態】
【０００８】
本発明がさらに詳細に説明される前に、本発明の範囲は特許請求の範囲によってのみ限定されるので、本発明が、説明される特定の実施例及び実装形態に限定されないこと、並びに特定の実施例及び実装形態を説明する際に使用される用語が、それらの特定の実施例及び実装形態を説明するためのものにすぎず、限定するものではないことを理解されたい。
【０００９】
本発明のいくつかの実装形態の説明を始めるために、関連する技術的記述の正確な定義が以下のように提示される。Ｄを、限定はしないが、会社Ｃによって所有されるフラット・ファイル又はデータ・フィードを含む、データベースとする。Ｄは、リレーショナル形式又は構造化テキスト（たとえば、．ｃｓｖ、ＸＭＬ、ＪＳＯＮ、又はＳＱＬデータ）におけるタプルからなる。Ｓｉを、Ｄからのタプルのサブセットとする。Ｍを、Ｄ又はＤよりもはるかに小さいＳｉの表現Ｗを生成するための一意の方法とする。その場合、目的は、以下のようなＷを生成することである。
１．  Ｗは、所与のＭについての「ウォーターマーク」を含んでいる（すなわち、Ｍは、２つの異なるＤ又はＳｉのために同じＷを生成することができない）。
２．  Ｗは、統計的信頼性を用いて、Ｄのコピー、又はＳ１と部分的に重複する異なるＳｉを受信する他のエージェントＡ２、Ａ３、．．．Ａｎに対して、エージェントＡ１が、Ｄ又はＳ１を配信又は変更するバッド・アクターであると決定することができる。
３．  Ｗは、Ｄ’、すなわちＤの第２のコピー又はサブセットがＣの同意を得ることなく作成されたことを証明するための証拠基準を満たすのに十分にロバストであることになる。これは、フォールス・ネガティブ（Ｄ’が違法でないとき、それを違法であるとして識別すること）又はフォールス・ポジティブ（Ｄ’が合法的でないとき、それを合法的として識別すること）の確率が小さくなければならないことを意味する。
４．  Ｗは、特定のＡｉについて生成されるときにＤ又はＳｉからの情報の損失を生じてはならない。
５．  ＭがＤ中にＷを埋め込む場合、Ｗの復元は盲目的である。すなわち、Ｗは、Ｄ’とＤとが、又はそれぞれＤ及びＤ’から取られた厳密な重複ＳとＳ’とが等価である場合にのみ、Ｄを知らずにＤ’から取得され得る。
６．  Ｗがそれによって作成されるプロセスは、フォールス・ネガティブを生成することなしに、ＤとＤ’との間のタプルの顕著な差（たとえば、余分のブランクスペース、データ再ソーティング、タプル削除、タプル追加）に対処するのに十分にロバストでなければならない。
７．  Ｍは、ＣからのＤｉが定期的に更新され、Ｄｊになることを考慮に入れ、ＤｉをＤｊと区別する能力を可能にしなければならない。
８．  Ｍは、すぐに利用可能な計算機器を用いて計算的に実現可能でなければならない。
９．  Ｍは、Ｄ又はＳｉがＤ’又はＳｉ’になるとき、どんな変更がＤ又はＳｉに行われたかを正確に識別する必要はないが、Ｄ’又はＳｉ’の詳細な検査が、Ａｉのバッド・アクター・ステータスのインジケータとしてＷについての裏付けとなる証拠を提供することができ、それを提供するべきである。
【００１０】
これらの要件を満たす本明細書で説明されるソルティング方法を実装することによって、データ所有者は、ワイルド・ファイル中のデータを自身のデータ・セットから発生したものとしてより頻繁に識別し、さらに、そのデータがどのＴＴＰに最初に送られたかを識別することができる。これは、受信側に一意であり、ワイルド・ファイル中のある量のデータがそれから発生した漏洩されたデータ・セット中にわずかに埋め込まれた識別子（「ソルト」）が、発見され得たかどうかを決定するために、ワイルド・ファイル内のいくつかのデータ要素を分析することによって行われる。このソルトは、訓練されていない眼にはそれが見えないので、ソルティング機構の事前情報なしに検出され得ない。
【００１１】
上記で説明されたシステムの働き及び出力が、システムのいくつかの実装形態による、ファイルをソルティングする方法を示す、図１によって示され得る。第１の実例では、元のデータ・セット１０が、表１に示されているように、以下の要素を含んでいると仮定する（実際のデータ・セットは、はるかにより大きい可能性があるが、極めて小さいデータ・セットが実例として示されている）。
【００１２】
【表１】
2019508832.tif 000003
【００１３】
ファイルを、データ所有者によって作成された他のファイルと区別するために、ファイル識別子がファイルに関連付けられる。ファイル識別子は、様々な実装形態では、英数字及び／又は他の文字の任意のストリングであり得る。第１のステップでは、情報がソーター・エンジン１２においてソーティングされる。ソーティング技法は、任意の所望のソーティング方法であり得る。ソーティング技法は、ソーター・エンジン１２と通信しているソーティング技法ストア１４において記憶された多数の可能なソーティング技法から選択され得る。ソーティング技法は、次いで、ファイルにキーイングされ、ファイル識別子とともにファイル・データベース１６に記憶され、そのファイルについて、ソーター技法ストレージ１８において記憶される。任意の所与のデータ・セットへの特定のソーティング・アルゴリズムの割当ては、いくつかの実施例ではランダム化され得る。ソーティング・アルゴリズムは、複数レベルにおけるソート、すなわち、１次ソートとして１つのフィールドによってソーティングし、次いで、２次ソートとして第２のフィールドによってソーティングし、必要に応じた数のレベルまでソーティングすることであり得る。説明のための所与の実例では、データは、最初に列Ｈによってソーティングされ、次いで、列Ｅによってソーティングされ、次いで、列Ｄによってソーティングされる。表２は、この特定のソートを表１のデータに適用することの結果を与える。
【００１４】
【表２】
2019508832.tif 000004
【００１５】
第２のステップでは、ソルティング・レシピが、ソルティング・エンジン２０によって、ソーティングされたデータに適用される。ソルティング・レシピは、ファイル中のレコードの順序付けに少なくとも部分的に基づき、したがって、前のソーティング・ステップが、ソルティング・ステップの結果に結合される。特定のレシピが、ソルティング技法ストア２２において記憶された任意の数の潜在的レシピから選定され得、ソーティング技法と同様に、いくつかの実施例ではランダムに選定され得る。ソルティング・レシピはまた、ソルティング技法２４において、ファイル・データベース１６に記憶されたファイルにキーイングされる。この特定の実例では、ソルティング技法は、数字「２」で開始する、列Ｄの２つ及び３つのインスタンスごとに、列Ｃ中のワードが省略されるものである。このソルティング・レシピを表２のソーティングされたデータに適用し、結果は、以下の表３に示されている。
【００１６】
【表３】
2019508832.tif 000005
【００１７】
第３のステップでは、ソルティングされたデータ・セットの「フィンガープリント」が、フィンガープリント・エンジン２６によってキャプチャされる。フィンガープリントは、データ中の任意の単一の列又は２つ又はそれ以上の列のセットであり得ることに留意されたい。２つ以上の列が使用される場合、列が隣接する必要はない。フィンガープリントは、必ずしも、ソルティングされたデータを含んでいる列を含んでいることに限定されるとは限らず、必ずしも、ファイルの全深度（すなわち、列中のあらゆるデータ項目）をキャプチャすることを必要とされるとは限らない。フィンガープリンティング・レシピはまた、ソーティング技法及びソルティング・レシピと同様に、フィンガープリント技法２８において、ファイル・データベース１６中のファイルにキーイングされる。キャプチャされたフィンガープリントが上記の実例からの列Ｃである場合、フィンガープリントは、以下の表４に示されているものになる。
【００１８】
【表４】
2019508832.tif 000006
【００１９】
特有のソーティング技法、ソルティング・レシピ、及びフィンガープリンティング・レシピは、各々ファイルにキーイングされるので、データ・プロバイダは、次いで、ＴＴＰに配信され得るソルティングされたデータ・セット３０として、完成したソルティングされたファイルを作成するために、逆方向プロセスを適用する（すなわち、ファイルを、ソーター・エンジン１２の適用の前のそれの元の順序に復元する）ことができる。完成したデータ・ファイルにおける結果は、ソルティングが他の当事者から隠蔽された、ソルティングされたデータ・ファイルである。この特定の実例における結果は、以下の表５に示されている。
【００２０】
【表５】
2019508832.tif 000007
【００２１】
いくつかの実施例では、時間的に後で他の顧客に、又は同じ顧客に送られる同じデータ・セットの後続の発行は、様々なソーティング技法、ソルティング・レシピ、及びフィンガープリンティング・レシピの異なる組合せを受けるであろう。各そのようなインスタンスは、１つ又は複数のマスタ・データベース中で別個のファイル・データベース１６として維持される。場合によっては、ファイル日付３２も、ソルティングされたファイルの特定のインスタンスのための追加の識別情報として一部又は全部のファイル・データベース１６中に含まれ得る。
【００２２】
次に図２を参照すると、いくつかの実装形態による、プロバイダが事実上ファイルのソースであるかどうかを決定し、及びそうである場合、ファイルがいつ作成されたかを決定するために、疑わしいファイルがワイルド・ファイル・データ・セット３２として「ワイルドで」見つけられたときに適用されるプロセスが説明され得る。ファイルは、再びソーター・エンジン１２を用いて、可能なソーティング技法のうちの１つを使用してソーティングされ、次いで、ソルティング・エンジン２０とフィンガープリント・エンジン２６とを使用して、ソルト（すなわち、ファイル「ＤＮＡ」）とフィンガープリント・シグネチャとを検出するために検査される。ソルト及び／又はフィンガープリントが検出されない場合、次の可能なソーティング技法を用いてソートが実行され、プロセスが反復的に繰り返される。プロセスは、各ソーティング技法について、各ソルティング技法に関して、及び各フィンガープリントについて両方の各々に関して繰り返される。このプロセスは、ソルト及び／又はフィンガープリントがマッチ・エンジン３４において検出されるか或いはすべての可能性が試されるまで続く。前者の場合、プロバイダがデータのソースであることが知られ得、ソルトが検出されたことの出力３６が作成される。しかし、後者の場合、プロバイダがデータのソースでないことが知られ得、ソルトが検出されなかったことの出力３８を生じる。上記で説明されたように、ファイルが何らかの方法で変更された場合でも、大きいファイルの場合、この方法は、ソルティングされたデータの「断片」を復元することが可能であるので、依然としてデータ窃盗の可能性を生成することが明らかであろう。マッチ・エンジン３４において、データ中で見つけられるそのような断片の数に基づいてスコアが決定され得、したがって、プロバイダのデータの悪用のための信頼性ファクタにつながる。いずれの場合も、ファイル識別子を含む、ファイル・データベース１６中の情報は、ワイルド・ファイルがそれから部分的に又は完全に導出された特定のデータ・ファイルを識別するために使用され得る。
【００２３】
代替実施例では、本明細書で説明される特定の実例以外の様々なソルティング方法が採用され得る。消費者のために使用される又は他の方法でメーリング・アドレスを伴ういくつかの実装形態では、ソルティング方法は、コーディング精度支援システム（ＣＡＳＳ：Ｃｏｄｉｎｇ  Ａｃｃｕｒａｃｙ  Ｓｕｐｐｏｒｔ  Ｓｙｓｔｅｍ）規格に準拠し得る。ＣＡＳＳは、米国郵政公社（ＵＳＰＳ）が、ストリート・アドレスを訂正及びマッチングするシステムの精度を評価することを可能にする。ＣＡＳＳ認証は、ＵＳＰＳが、自身のアドレス・マッチング・システムの品質を評価し、自身のＺＩＰ＋４、キャリア・ルート、及び５桁コーディングの精度を改善することを望む、すべてのメーラー、サービス事務局、及びベンダーに提供される。ＣＡＳＳ準拠システムは、アドレスを訂正及び標準化し、また、アドレスが完全であることを保証するために、郵便番号、都市、及び州など、消失したアドレス情報を追加する。さらに、ＣＡＳＳ認証システムは、アドレスが配信可能なアドレスであるか否かを検証するために、配信ポイント確認を実行する。
【００２４】
次に図３を参照すると、上記で説明されたプロセスを実装するためのコンピュータ・ネットワーク・システムのための物理的構造が次に説明され得る。（インターネットなどの）ネットワーク５０が、システムにアクセスするために使用される。仮想プライベート・ネットワーク（ＶＰＮ）５２が、「ＤＭＺ」エリア、すなわち、システムのファイアウォールの背後での進入より前に外部（ｏｕｔｓｉｄｅ）ファイル又はデータ・フィードが隔離されるエリアへのセキュア接続を提供するために使用され得る。セキュア・ファイル転送プロトコル（ＳＦＴＰ）システムを使用して、ファイルがＳＦＴＰ外部ロード・バランサ５４に転送され得、ＦＴＰは、コンピュータ・ネットワーク上のクライアントとサーバとの間でコンピュータ・ファイルを転送するために使用されるよく知られているネットワーク・プロトコルである。さらに、データ・フィードは、ＡＰＩを介して或いはカスタマイズされたポート又は標準ポートを使用して、プライベート・プロトコル又は標準プロトコル（ＨＴＴＰ、ＨＴＴＰＳなど）を通してシステムにデータを継続的にストリーミングするために使用される。ＵＩ／ＡＰＰ外部ロード・バランサ５６が、コンピュータ・アプリケーションによって送られるファイルを受信するために使用され得、ＡＰ外部ロード・バランサ５８が、アプリケーション・ソフトウェア間の通信を可能にするサブルーチン定義、プロトコル、及びツールを開発するためのよく知られている概念である、アプリケーション・プログラミング・インターフェース（ＡＰＩ）に従って送られるファイル又はデータ・フィードを受信するために使用され得る。システムのロード・バランサは、システム中の個々のサーバがファイル又はデータ・フィード要求で過負荷をかけられないことを保証する。
【００２５】
次にシステムのフロント・エンド・レイヤに移動すると、それ自体のＳＦＴＰサーバ復元可能ストレージ６２に関連付けられたＳＦＴＰサーバ６０が、ファイルがＤＭＺエリアから移った後、ＦＴＰによって送られたファイルを受信する。同様に、ＵＩ／ＡＰＰ内部ロード・バランサ６４が、ファイルがＤＭＺエリアを出た後、ＵＩ／ＡＰＰ外部ロード・バランサ５６からファイルを受信し、それらを１つ又は複数のＵＩ／ＡＰＰ仮想マシン（ＶＭ）６６（２つが図３に示されている）に受け渡す。サービス・エリアに移動すると、これらのサブシステムは、データをＡＰＩ内部ロード・バランサ７０に受け渡し、次いで、ＡＰＩ内部ロード・バランサ７０は、１つ又は複数のＡＰＩ  ＶＭ７２（同じく、２つが図３に示されている）に情報を受け渡す。
【００２６】
システム・バックエンドにおいて、ＡＰＩ  ＶＭ７２からのデータは、１つ又は複数のマルチテナント・データストア８４にデータを記憶するように構成された処理クラスタ及びデータストア８２にデータを受け渡し、マルチテナント・データストア８４の各々は、データストア復元可能記憶エリア８６（各々の３つが図３に示されている）に関連付けられる。マルチテナント・データストア８４に記憶されたデータの実例としては、ファイル・データベース１６、ソーティング技法ストア１４、及びソルティング技法ストア２２がある。
【００２７】
説明される本発明の実装形態は、受信側に気づかせることなしに又はデータの有用性を妨げることなしに、所与のデータ・ファイル又はフィードの受信側を決定するための一意の方法を生じることがわかり得る。さらに、システムは、スケーラブルであり、流通している潜在的に何百万ものワイルド・ファイルのセットの間でファイル又はデータ・フィード及びそれの受信側の一意性を識別することが可能であり、また、システムによって取り込まれるデータのセキュリティを与える。実際的であるために、商用等級ウォーターマーキング・システムは、１日につき何百ものファイルを処理することが可能でなければならず、これは、処理インフラストラクチャ全体が拡張可能及びスケーラブルでなければならないことを意味する。ビッグ・データのこの世代では、処理されるべきデータ・ファイル又はフィードのサイズは、サイズが数メガバイトから数テラバイトまで著しく変動し、これらのファイル又はフィードがシステムに流れ込む方法が、極めて予測不可能であり得る。スケーラブル・システムを構成するために、システムがこの予測不可能性を扱うようにサイズ決定されることを保証するために、所与の時間における最大処理要件を推定するための予測モデルを構築しなければならない。
【００２８】
本明細書で説明される実装形態によるソルティング・システムは、無制限サイズのデータ・ファイル、データベース・テーブル、及びデータ・フィードをソルティングする能力を有する。しかしながら、顧客は、ファイルが配信される前にウォーターマーキングが行われるために数日又は数週間待つことができないので、処理速度も重要である。顧客は、毎日及び場合によっては一層速く、顧客の基礎をなすデータへの更新をリリースしていることがある。システムは、次のファイルの生成のサイクル時間内に、ファイルにウォーターマークを入れることが可能でなければならず、そうでなければシステムはボトルネックになり、ファイルはキューに分類され、それは、ビジネス・モデル全体を壊すことになる。ベースライン・リリースにおけるウォーターマークを検出するための処理時間は数秒である。最悪の場合のシナリオを除いて、ワイルド・ファイルが盗まれたかどうかを決定するために、完全なファイルをパースすること、次いで、ワイルド・ファイルをマスタ・データベースとマッチングすることが必要でないので、計算能力がたいていの場合低減される。さらに、特定の受信側に関係する検出されたウォーターマークが、データベースに記憶されたその受信側のファイルにマッチングすることが必要とされるにすぎないので、探索空間がさらに低減され、したがって、処理時間を改善する。ただし、ワイルド・ファイルが、複数の受信側に送られたデータを用いてウォーターマークを入れられないことを保証するために、ワイルド・ファイル全体をパースすることが必要であり得ることに留意されたい。とにかく、このシステムを使用するソルト検出の一部として人間の対話及び検査が必要とされない。この理由で、さらなる時間及びコスト削減が実現され、エラーが低減される。
【００２９】
データ・ウォーターマーキングに関する調査のほとんどすべてが、データの１人又は２人の所有者及び１人又は２人のバッド・アクターについてテストされたアルゴリズムに基づいている。商用等級システムは、完全に未知のソースをもつファイルが復元される状況において、多数の顧客及び未知数のバッド・アクターについて、ウォーターマークを生成し、記憶し、検索することが可能でなければならない。たとえば、商用ウォーターマーキング会社が、それのためにファイルにウォーターマークを入れる５０００人の顧客を有することについて考える。この実例では、ウォーターマーキング会社は、盗まれたデータをファイルが含んでいないことを検証することを望む第三者からのファイルを検索する。これを決定するために、ウォーターマーキング会社は、マッチを見つけるまで、各会社のウォーターマークに対してファイルをテストしなければならない。最悪の場合、ウォーターマーキング会社は、５０００回テストした後にマッチを見つけず、その場合、行われ得る唯一の主張は、データがシステム中の５０００人の所有者のうちのいずれからも盗まれていないことである。いくつかの実施例によるシステムは、顧客の数に対する限定を有さず、システムは、ウォーターマーク中に表された無限数の受信側をサポートすることが可能である。
【００３０】
本明細書で説明されるシステム及び方法は、何百万ものレコードを構文解析及び処理することとは対照的に、データ所有権を証明するためにごくわずかな時間しか必要としないロバストな機構である。大きいデータ・プロバイダの実例では、一般的なファイルは何億ものレコードを含んでいる。この機構によって適用されるソルトは見えないので、何らかのビジネスによって実際的であり、使用可能であると見なされる、時間フレーム内の雑音の中から信号を抽出することができる高度信号処理の仕組みがなければ、手動ソルト識別にとって実際的でなく、不可能である。
【００３１】
別段に明記されていない限り、本明細書で使用されるすべての技術用語及び科学用語は、本発明が属する技術分野の当業者によって一般的に理解される意味と同じ意味を有する。本明細書で説明される方法及び材料と同様又は等価の方法及び材料が、本発明の実施又はテストにおいても使用され得るが、限られた数の例示的な方法及び材料が本明細書で説明される。はるかに多くの変更が、本明細書の発明的概念から逸脱することなく可能であることが当業者には明らかであろう。
【００３２】
本明細書で使用されるすべての用語は、コンテキストに一致する最も広い可能な様式で解釈されるべきである。グループ化が本明細書で使用されるとき、グループのすべての個々のメンバー並びにグループの可能なすべての組合せ及び部分組合せが個々に含まれるものとする。本明細書で範囲が明記されるとき、範囲は、範囲内のすべてのサブ範囲及び個々の点を含むものとする。本明細書で引用されるすべての参照は、本明細書の本開示との不整合がない範囲で、参照により本明細書に組み込まれる。
【００３３】
本発明は、例にすぎないことが意図され、添付の特許請求の範囲に記載されたような本発明の完全な範囲に限定するものではない、いくつかの好ましい実施例及び代替実施例に関して説明された。
【図１】
2019508832.tif 000008
【図２】
2019508832.tif 000009
【図３】
2019508832.tif 000010
【国際調査報告】
2019508832.tif 000011