(57)【特許請求の範囲】
【請求項１】
位置エンジンを調節するためにコンピュータネットワークを介して複数のサーバ間で転送される位置データを暗号的に保護するシステムであって、
メモリに格納された位置データベースから、前記データ処理システムの前記位置エンジンにより行われた複数の位置判定を取り出すための、データ処理システムの１つまたは複数のプロセッサにより実行されるブリッジ・モジュールであって、各位置判定は各第１の識別子に関連付けられた、ブリッジ・モジュールと、
第２の識別子および各位置判定のタイムスタンプから形成されたタプルに適用される第１のハッシュ関数を用いて位置判定ごとの第１のハッシュ値を決定するための、前記１つまたは複数のプロセッサにより実行される第１の暗号化モジュールと、
前記コンピュータネットワークを介して、前記第１の暗号化されたデータ・セットを、電子トランザクションを処理するように構成された１つまたは複数のサーバに送信するための前記データ処理システムの通信インタフェースと、
第１の二重暗号化されたデータ・セットを第２の二重暗号化されたデータ・セットと比較して、正確な位置判定の総数、位置判定の総数、および実際の位置イベントの総数に基づいて精度メトリックおよびリコール・メトリックを決定するための前記１つまたは複数のプロセッサにより実行されるチューナと、
を備え、
前記ブリッジ・モジュールは、マッピング関数を用いて各第１の識別子を各第２の識別子にマップするように構成され、
前記第１の暗号化モジュールは、第１の暗号化プロトコルを用いて位置判定ごとの前記第１のハッシュ値を暗号化して、第１の暗号化されたデータ・セットを生成するように構成され、
前記通信インタフェースは、前記１つまたは複数のサーバから、前記電子トランザクションに対する第２の暗号化モジュールにより生成された第２のハッシュ値を含む第２の暗号化されたデータ・セットを受信するように構成され、前記第２のハッシュ値の各々は、前記電子トランザクションの各々の識別子およびタイムスタンプから形成されたタプルへの第２のハッシュ関数の適用を介して前記第２の暗号化モジュールにより生成され、前記第２の暗号化されたデータ・セットは、第２の暗号化プロトコルで前記第２の暗号化モジュールにより暗号化され、前記第１の暗号化プロトコルおよび前記第２の暗号化プロトコルは交換可能暗号化プロトコルであり、
前記第１の暗号化モジュールは、前記第１の暗号化プロトコルを使用して、前記１つまたは複数のサーバから受信された前記第２の暗号化されたデータ・セットを暗号化して前記第１の二重暗号化されたデータ・セットを生成するように構成され、
前記通信インタフェースは、前記１つまたは複数のサーバから、前記データ処理システムにより前記１つまたは複数のサーバに送信された前記第１の暗号化されたデータ・セットへの前記第２の暗号化プロトコルの適用を介して前記第２の暗号化モジュールにより生成された前記第２の二重暗号化されたデータ・セットを受信するように構成され、
前記チューナは、前記精度メトリックまたは前記リコール・メトリックのうち少なくとも１つに基づいて前記位置エンジンのチューニング・パラメータを調節するように構成された、
システム。
【請求項２】
前記位置エンジンは、
ポータブルデバイスのネットワークインタフェースを介して、前記ポータブルデバイスのセンサにより決定された地理座標を受信し、
前記地理座標に基づいて、前記ポータブルデバイスの位置を決定し、
前記位置データベースに、前記ポータブルデバイスの前記位置を格納する
ように構成される、請求項１に記載のシステム。
【請求項３】
前記通信インタフェースは、ポータブルデバイスのネットワークインタフェースを介して、前記ポータブルデバイスの全地球測位センサ、前記ポータブルデバイスのワイヤレスネットワークインタフェース、携帯電話塔三角測量、またはビーコンのうち少なくとも２つを介して決定された位置情報を受信するように構成され、
前記位置エンジンは、前記位置情報に基づいて、前記ポータブルデバイスの位置を決定するように構成され、
前記位置エンジンは、前記位置データベースに、前記ポータブルデバイスの前記位置を格納するように構成された、
請求項１または２に記載のシステム。
【請求項４】
前記チューナは、
前記第１の二重暗号化されたデータ・セットのエントリにマッチする前記第２の二重暗号化されたデータ・セットのエントリの数に基づいて正確な位置判定の前記総数を決定し、
前記第２の二重暗号化されたデータ・セットのエントリの数に基づいて位置判定の前記総数を決定し、
正確な位置判定の前記総数を位置判定の前記総数で除すことで前記精度メトリックを決定する、
ように構成される、請求項１乃至３の何れか１項に記載のシステム。
【請求項５】
前記チューナは、
前記第１の二重暗号化されたデータ・セットのエントリにマッチする前記第２の二重暗号化されたデータ・セットのエントリの数に基づいて正確な位置判定の前記総数を決定し、
前記第２の二重暗号化されたデータ・セットのエントリの数に基づいて位置判定の前記総数を決定し、
正確な位置判定の前記総数を位置判定の前記総数および電子トランザクション率の積で除すことで前記精度メトリックを決定する
ように構成される、請求項１乃至３の何れか１項に記載のシステム。
【請求項６】
前記チューナは、
前記第１の二重暗号化されたデータ・セットのエントリにマッチする前記第２の二重暗号化されたデータ・セットのエントリの数に基づいて正確な位置判定の前記総数を決定し、
前記第１の二重暗号化されたデータ・セットのエントリの数に基づいて実際の位置イベントの前記総数を決定し、
正確な位置判定の前記総数を実際の位置イベントの前記総数で除すことで前記リコール・メトリックを決定する
ように構成される、請求項１乃至３の何れか１項に記載のシステム。
【請求項７】
前記第１の暗号化モジュールは、位置判定ごとの前記ハッシュ値の判定の前に所定の量子化を各位置判定の前記タイムスタンプに適用するように構成される、請求項１乃至６の何れか１項に記載のシステム。
【請求項８】
前記第２のハッシュ値を含む前記第２の暗号化されたデータ・セットは、前記第２のハッシュ値の生成の前に前記所定の量子化を前記電子トランザクションの各々の前記タイムスタンプに適用するように構成された前記第２の暗号化モジュールにより生成される、請求項７に記載のシステム。
【請求項９】
前記第１の暗号化モジュールは、前記所定の量子化を前記１つまたは複数のサーバから受信するように構成される、請求項７に記載のシステム。
【請求項１０】
前記チューナは、
前記精度メトリックが閾値より小さいと判定し、
前記精度メトリックが前記閾値より小さいことに応答して、前記位置エンジンの前記チューニング・パラメータを調節して、前記位置エンジンに前記複数の位置判定を行うために前記位置エンジンにより使用される位置情報ソースの最小数または品質を高めさせる、
ように構成された、請求項１乃至９の何れか１項に記載のシステム。
【請求項１１】
前記チューナは、
前記精度メトリックが閾値より小さいと判定し、
前記精度メトリックが前記閾値より小さいことに応答して、前記位置エンジンの前記チューニング・パラメータを調節して、前記複数の位置判定を行うために前記位置エンジンにより使用されるクラスタ時間閾値を増大させる
ように構成される、請求項１乃至９の何れか１項に記載のシステム。
【請求項１２】
前記チューナは、
閾値より小さい前記リコール・メトリックを決定し、
前記閾値より小さい前記リコール・メトリックを決定するに応答して、前記位置エンジンの前記チューニング・パラメータを調節して、前記位置エンジンに、前記複数の位置判定を行うために前記位置エンジンにより使用される位置ピングの頻度を増大させる、
ように構成される、請求項１乃至１１の何れか１項に記載のシステム。
【請求項１３】
前記チューナは、
閾値より小さい前記リコール・メトリックを決定し、
前記閾値より小さい前記リコール・メトリックを決定するに応答して、前記位置エンジンの前記チューニング・パラメータを調節して前記複数の位置判定を行うために前記位置エンジンにより使用されるクラスタ距離閾値を減少させる
ように構成される、請求項１乃至１１の何れか１項に記載のシステム。
【請求項１４】
位置エンジンを調節するためにコンピュータネットワークを介して複数のサーバ間で転送される位置データを暗号的に保護する方法であって、
データ処理システムの１つまたは複数のプロセッサにより実行されるブリッジ・モジュールにより、メモリに格納された位置データベースから、前記データ処理システムの前記位置エンジンにより行われた複数の位置判定を取り出すステップであって、各位置判定は各第１の識別子に関連付けられる、ステップと、
前記ブリッジ・モジュールにより、マッピング関数を用いて各第１の識別子を各第２の識別子にマップするステップと、
前記１つまたは複数のプロセッサにより実行される第１の暗号化モジュールにより、前記第２の識別子および各位置判定のタイムスタンプから形成されたタプルに適用される第１のハッシュ関数を用いて位置判定ごとの第１のハッシュ値を決定するステップと、
前記第１の暗号化モジュールにより、第１の暗号化プロトコルを用いて位置判定ごとの前記第１のハッシュ値を暗号化して、第１の暗号化されたデータ・セットを生成するステップと、
前記データ処理システムの通信インタフェースにより、前記コンピュータネットワークを介して、前記第１の暗号化されたデータ・セットを、電子トランザクションを処理するように構成された１つまたは複数のサーバに送信するステップと、
前記通信インタフェースにより、前記１つまたは複数のサーバから、前記電子トランザクションに対する第２の暗号化モジュールにより生成された第２のハッシュ値を含む第２の暗号化されたデータ・セットを受信するステップであって、前記第２のハッシュ値の各々は、前記電子トランザクションの各々の識別子およびタイムスタンプから形成されたタプルへの第２のハッシュ関数の適用を介して前記第２の暗号化モジュールにより生成され、前記第２の暗号化されたデータ・セットは、第２の暗号化プロトコルで前記第２の暗号化モジュールにより暗号化され、前記第１の暗号化プロトコルおよび前記第２の暗号化プロトコルは交換可能暗号化プロトコルである、ステップと、
前記第１の暗号化モジュールにより、前記第１の暗号化プロトコルを使用して、前記１つまたは複数のサーバから受信された前記第２の暗号化されたデータ・セットを暗号化して第１の二重暗号化されたデータ・セットを生成するステップと、
前記通信インタフェースにより、前記１つまたは複数のサーバから、前記データ処理システムにより前記１つまたは複数のサーバに送信された前記第１の暗号化されたデータ・セットへの前記第２の暗号化プロトコルの適用を介して前記第２の暗号化モジュールにより生成された第２の二重暗号化されたデータ・セットを受信するステップと、
前記１つまたは複数のプロセッサにより実行されたチューナにより、前記第１の二重暗号化されたデータ・セットを前記第２の二重暗号化されたデータ・セットと比較して、正確な位置判定の総数、位置判定の総数、および実際の位置イベントの総数に基づいて精度メトリックおよびリコール・メトリックを決定するステップと、
前記チューナにより、前記精度メトリックまたは前記リコール・メトリックのうち少なくとも１つに基づいて前記位置エンジンのチューニング・パラメータを調節するステップと、
を含む、方法。
【請求項１５】
前記データ処理システムによりポータブルデバイスのネットワークインタフェースを介して、前記ポータブルデバイスのセンサにより決定された地理座標を受信するステップと  前記データ処理システムにより、前記地理座標に基づいて、前記ポータブルデバイスの位置を決定するステップと、
前記データ処理システムにより前記位置データベースに、前記ポータブルデバイスの前記位置を格納するステップと、
を含む、請求項１４に記載の方法。
【請求項１６】
前記データ処理システムによりポータブルデバイスのネットワークインタフェースを介して、前記ポータブルデバイスの全地球測位センサ、前記ポータブルデバイスのワイヤレスネットワークインタフェース、携帯電話塔三角測量、またはビーコンのうち少なくとも２つを介して決定された位置情報を受信するステップと、
前記データ処理システムにより前記位置情報に基づいて、前記ポータブルデバイスの位置を決定するステップと、
前記データ処理システムにより前記位置データベースに、前記ポータブルデバイスの前記位置を格納するステップと、
を含む、請求項１４または１５に記載の方法。
【請求項１７】
前記データ処理システムにより、前記第１の二重暗号化されたデータ・セットのエントリにマッチする前記第２の二重暗号化されたデータ・セットのエントリの数に基づいて正確な位置判定の前記総数を決定するステップと、
前記データ処理システムにより、前記第２の二重暗号化されたデータ・セットのエントリの数に基づいて位置判定の前記総数を決定するステップと、
前記データ処理システムにより、正確な位置判定の前記総数を位置判定の前記総数で除すことで前記精度メトリックを決定するステップと、
を含む、請求項１４乃至１６の何れか１項に記載の方法。
【請求項１８】
前記データ処理システムにより、前記第１の二重暗号化されたデータ・セットのエントリにマッチする前記第２の二重暗号化されたデータ・セットのエントリの数に基づいて正確な位置判定の前記総数を決定するステップと、
前記データ処理システムにより、前記第２の二重暗号化されたデータ・セットのエントリの数に基づいて位置判定の前記総数を決定するステップと、
前記データ処理システムにより、正確な位置判定の前記総数を位置判定の前記総数および電子トランザクション率の積で除すことで前記精度メトリックを決定するステップと、
を含む、請求項１４乃至１６の何れか１項に記載の方法。
【請求項１９】
前記データ処理システムにより、前記第１の二重暗号化されたデータ・セットのエントリにマッチする前記第２の二重暗号化されたデータ・セットのエントリの数に基づいて正確な位置判定の前記総数を決定するステップと、
前記データ処理システムにより、前記第１の二重暗号化されたデータ・セットのエントリの数に基づいて実際の位置イベントの前記総数を決定するステップと、
前記データ処理システムにより、正確な位置判定の前記総数を実際の位置イベントの前記総数で除すことで前記リコール・メトリックを決定するステップと、
を含む、請求項１４乃至１６の何れか１項に記載の方法。
【請求項２０】
前記データ処理システムにより、位置判定ごとの前記ハッシュ値の判定の前に、所定の量子化を各位置判定の前記タイムスタンプに適用するステップを含む、請求項１４乃至１９の何れか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１５年７月２４年出願の米国特許出願第１４／８０８、６３４号の一部継続出願として合衆国法典第３５巻１２０のもとで優先権の利益を主張する、２０１６年２月１２日出願の米国特許出願第１５／０４３、３９４号に対する優先権の利益を主張し、その全体は引用により本明細書に組み込まれる。
【背景技術】
【０００２】
インターネットのようなコンピュータネットワークされた環境において、人または企業のようなエンティティは、ウェブサーバを通じてオンラインコンテンツ上に公に表示するための情報を提供することができる。クライアントデバイスが、オンラインコンテンツに対する要求を当該エンティティの様々なウェブサーバに送信し、オンラインコンテンツを当該エンティティの各ウェブサーバから受信すると、当該ウェブサーバは、様々な形式に従ってかかるコンピューティング・デバイスのネットワーク活動と対話のログを維持することができる。
【発明の概要】
【課題を解決するための手段】
【０００３】
少なくとも１つの態様は、位置エンジンを調節するためにコンピュータネットワークを介して複数のサーバ間で転送される位置データを暗号的に保護するシステムに関する。当該システムはブリッジ・モジュール、第１の暗号化モジュール、通信インタフェース、およびチューナを含むことができる。当該ブリッジ・モジュール、第１の暗号化モジュール、通信インタフェースおよびチューナをデータ処理システムの１つまたは複数のプロセッサにより実行することができる。当該ブリッジ・モジュールは、メモリに格納された位置データベースから、当該データ処理システムの当該位置エンジンにより行われた複数の位置判定を取り出すことができる。各位置判定を各第１の識別子に関連付けることができる。当該ブリッジ・モジュールはマッピング関数を用いて各第１の識別子を各第２の識別子にマップすることができる。第１の暗号化モジュールは、第２の識別子および各位置判定のタイムスタンプから形成されたタプルに適用される第１のハッシュ関数を用いて位置判定ごとの第１のハッシュ値を決定することができる。第１の暗号化モジュールは、第１の暗号化プロトコルを用いて位置判定ごとに第１のハッシュ値を暗号化して第１の暗号化されたデータ・セットを生成することができる。当該通信インタフェースは、当該コンピュータネットワークを介して、第１の暗号化されたデータ・セットを１つまたは複数のサーバに送信することができる。当該サーバは電子トランザクションを処理することができる。当該通信インタフェースは、当該１つまたは複数のサーバから、当該電子トランザクションに対する第２の暗号化モジュールにより生成された第２のハッシュ値を含む第２の暗号化されたデータ・セットを受信することができる。第２のハッシュ値の各々を、当該電子トランザクションの各々の識別子およびタイムスタンプから形成されたタプルへの第２のハッシュ関数の適用を介して、第２の暗号化モジュールにより生成することができる。第２の暗号化されたデータ・セットを、第２の暗号化プロトコルで第２の暗号化モジュールにより暗号化することができる。第１の暗号化プロトコルおよび第２の暗号化プロトコルは交換可能暗号化プロトコルである。第１の暗号化モジュールは第１の暗号化プロトコルを使用して当該１つまたは複数のサーバから受信された第２の暗号化されたデータ・セットを暗号化して第１の二重暗号化されたデータ・セットを生成することができる。当該通信インタフェースは、当該１つまたは複数のサーバから、当該データ処理システムにより当該１つまたは複数のサーバに送信された第１の暗号化されたデータ・セットへの第２の暗号化プロトコルの適用を介して第２の暗号化モジュールにより生成された第２の二重暗号化されたデータ・セットを受信することができる。当該チューナは第１の二重暗号化されたデータ・セットを第２の二重暗号化されたデータ・セットと比較して、正確な位置判定の総数、位置判定の総数、および実際の位置イベントの総数に基づいて精度メトリックおよびリコール・メトリックを決定することができる。当該チューナは精度メトリックまたはリコール・メトリックのうち少なくとも１つに基づいて当該位置エンジンのチューニング・パラメータを調節することができる。
【０００４】
少なくとも１つの態様は、位置エンジンを調節するためにコンピュータネットワークを介して複数のサーバ間で転送される位置データを暗号的に保護する方法に関する。当該方法は、データ処理システムの１つまたは複数のプロセッサにより実行されるブリッジ・モジュールにより、当該データ処理システムの当該位置エンジンにより行われた複数の位置判定を取り出すステップを含むことができる。各位置判定を各第１の識別子に関連付けることができ、当該ブリッジ・モジュールは、メモリに格納された位置データベースから決定される当該複数の位置を受信することができる。当該方法は、当該ブリッジ・モジュールがマッピング関数を用いて各第１の識別子を各第２の識別子にマッピングするステップを含むことができる。当該方法は、当該１つまたは複数のプロセッサにより実行される第１の暗号化モジュールが第２の識別子および各位置判定のタイムスタンプから形成されたタプルに適用される第１のハッシュ関数を用いて位置判定ごとの第１のハッシュ値を決定するステップを含むことができる。当該方法は、第１の暗号化モジュールが第１の暗号化プロトコルを用いて位置判定ごとに第１のハッシュ値を暗号化して第１の暗号化されたデータ・セットを生成するステップを含むことができる。当該方法は、当該データ処理システムの通信インタフェースが、当該コンピュータネットワークを介して、第１の暗号化されたデータ・セットを、電子トランザクションを処理するように構成された１つまたは複数のサーバに送信するステップを含むことができる。当該方法は、当該通信インタフェースが、当該１つまたは複数のサーバから、当該電子トランザクションに対する第２の暗号化モジュールにより生成された第２のハッシュ値を含む第２の暗号化されたデータ・セットを受信するステップを含むことができる。第２のハッシュ値の各々を、当該電子トランザクションの各々の識別子およびタイムスタンプから形成されたタプルへの第２のハッシュ関数の適用を介して第２の暗号化モジュールにより生成でき、第２の暗号化されたデータ・セットは、第２の暗号化プロトコルで第２の暗号化モジュールにより暗号化される。第１の暗号化プロトコルおよび第２の暗号化プロトコルは交換可能暗号化プロトコルであることができる。当該方法は、第１の暗号化モジュールが、第１の暗号化プロトコルを用いて当該１つまたは複数のサーバから受信された第２の暗号化されたデータ・セットを暗号化して第１の二重暗号化されたデータ・セットを生成するステップを含むことができる。当該方法は、当該通信インタフェースが、当該１つまたは複数のサーバから、当該データ処理システムにより当該１つまたは複数のサーバに送信された第１の暗号化されたデータ・セットへの第２の暗号化プロトコルの適用を介して第２の暗号化モジュールにより生成された第２の二重暗号化されたデータ・セットを受信するステップを含むことができる。当該方法は、当該１つまたは複数のプロセッサにより実行されるチューナが、第１の二重暗号化されたデータ・セットを第２の二重暗号化されたデータ・セットと比較して、正確な位置判定の総数、位置判定の総数、および実際の位置イベントの総数に基づいて精度メトリックおよびリコール・メトリックを決定するステップを含むことができる。当該方法は、当該チューナが、精度メトリックまたはリコール・メトリックのうち少なくとも１つに基づいて当該位置エンジンのチューニング・パラメータを調節するステップを含むことができる。
【０００５】
少なくとも１つの態様は、複数のデータ・セットの間の識別子をマッチする方法に関する。当該方法は、第１の識別子ベクトルをサードパーティ・サーバに送信するステップを含むことができる。第１の識別子ベクトルは第１の識別子、複数の第１のパラメータ、および複数の第２のパラメータを含むことができる。当該方法は、サードパーティ・サーバに関連付けられたサードパーティ暗号化に基づいて暗号化された第１の識別子ベクトルを受信するステップを含むことができる。当該方法は、サードパーティ・サーバから、サードパーティ・サーバに関連付けられた当該サードパーティ暗号化に基づいて暗号化された第２の識別子ベクトルを受信するステップを含むことができる。第２の識別子ベクトルは第２の識別子、複数の第３のパラメータ、および複数の第４のパラメータを含むことができる。当該方法は複数の第１のパラメータの一部および複数の第３のパラメータの一部の間のマッチおよび複数の第２のパラメータの一部および複数の第４のパラメータの一部の間のマッチに基づいて第１の識別子ベクトルおよび第２の識別子ベクトルの間の相関関係カウントを決定するステップを含むことができる。当該方法は、第１の識別子ベクトルおよび第２の識別子ベクトルの間の当該相関関係カウントが決定された閾値より大きいことに基づいて、第１の識別子が第２の識別子に対応すると判定するステップを含むことができる。当該方法は、第１の識別子が第２の識別子に対応すると判定したことに応答して、第１の識別子および第２の識別子の両方に対する１つの識別子キーを生成するステップを含むことができる
【０００６】
少なくとも１つの態様は複数のデータ・セットの間の識別子をマッチするためのシステムに関する。当該システムはマッピング・モジュールを備えたデータ処理システムを含むことができる。当該データ処理システムは第１の識別子ベクトルをサードパーティ・サーバに送信することができる。第１の識別子ベクトルは第１の識別子、複数の第１のパラメータ、および複数の第２のパラメータを含むことができる。当該データ処理システムは、サードパーティ・サーバから、サードパーティ・サーバに関連付けられたサードパーティ暗号化に基づいて暗号化された第１の識別子ベクトルを受信することができる。当該データ処理システムは、サードパーティ・サーバに関連付けられた当該サードパーティ暗号化に基づいて暗号化された第２の識別子ベクトルを受信することができる。第２の識別子ベクトルは第２の識別子、複数の第３のパラメータ、および複数の第４のパラメータを含むことができる。当該データ処理システムは、第１の識別子ベクトルおよび第２の識別子ベクトルの間の相関関係カウントを、複数の第１のパラメータの一部および複数の第３のパラメータの一部の間のマッチおよび複数の第２のパラメータの一部および複数の第４のパラメータの一部の間のマッチに基づいて決定することができる。当該データ処理システムは、第１の識別子ベクトルおよび第２の識別子ベクトルの間の当該相関関係カウントが決定された閾値より大きいことに基づいて、第１の識別子が第２の識別子に対応すると判定することができる。当該データ処理システムは、第１の識別子が第２の識別子に対応すると判定したことに応答して、第１の識別子および第２の識別子の両方に対する１つの識別子キーを生成することができる。
【０００７】
これらのおよび他の態様および実装を以下で説明する。以上の情報および以下の詳細な説明は様々な態様および実装の例示的な例を含み、クレームした態様および実装の性質と特徴を理解するための概要またはフレームワークを提供する。当該図面は当該様々な態様および実装の例示とさらなる理解を提供し、本明細書に組み込まれ本明細書の一部を構成する。
【０００８】
本明細書で説明する主題の１つまたは複数の実装の詳細を以下の添付図面および詳細な説明で説明する。当該主題の他の特徴、態様、および利点は当該説明、当該図面、および添付の特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【０００９】
【図１】１実装に従う、ネットワークを介して位置エンジンを調節する位置データを暗号的に保護するためのシステムの機能ブロック図である。
【図２】１実装に従うネットワークを介して位置エンジンを調節する位置データを暗号的に保護するためのシステムの例示を示す図である。
【図３】１実装に従う異なるデータ・セットの間の識別子をマッチングする方法を示す流れ図である。
【図４】１実装に従う、ネットワークを介して位置エンジンを調節するための位置データを暗号的に保護する方法を示す流れ図である。
【図５】１実装に従う、図１および２に示すシステムの様々な要素、および図３および４に示す方法を実施するために使用しうるコンピュータシステムための汎用アーキテクチャを示すブロック図である。
【発明を実施するための形態】
【００１０】
当該様々な図面における同じ参照番号および指定は同じ要素を示す。
【００１１】
本開示のシステムおよび方法は、ネットワークを介してエンティティまたはサーバの間で送信された位置データを暗号的に保護し、当該位置データを評価して、１つまたは複数のパラメータを用いて位置エンジンを調節することに関する。例えば、本開示のデータ処理システムは、サードパーティにより使用される暗号化プロトコルを隠蔽する方式で暗号化されたているサードパーティ・エンティティからの情報を用いて、位置エンジンの性能を評価することができる。当該データ処理システムは、当該評価に基づいて当該位置エンジンを自動的に調節して、当該位置エンジンにより行われた位置判定の精度を高めることができる。
【００１２】
GPS、携帯電話三角測量Wi-Fi三角測量のような位置決め技術は制限された解像度を有しうる。例えば、モバイルデバイスが密集領域内の特定の店内にあるかどうかを、特定の位置技術を用いてを用いて正確に識別するのは困難でありうる。さらに、様々な位置エンジン、サーバ、コンピューティング・デバイスまたはエンティティにより収集または決定されたデータを相互参照するのは困難でありうる。なぜならば、各エンティティは、それらの独自の暗号化プロトコルを用いてそれらのデータを暗号化するかまたは隠蔽するからである。したがって、位置エンジンが正確に位置を決定し、当該位置判定を他のソースと比較して当該位置判定を検証するのは技術的に困難でありうる。本技術的解決策は、当該データの少なくとも幾つかを復号化することなく当該エンティティのデータを暗号的に保護する方式で、位置エンジンを調節するために使用できるリコール・メトリックおよび精度メトリックを決定することで、この技術的課題を解決する。
【００１３】
位置エンジンの性能を決定するために、データ処理システムは、リコール・メトリックおよび精度メトリックを決定するために位置判定に関連付けられたグランド・トルース・データを受信またはアクセスすることができる。グランド・トルース・データは物理世界における実際の位置イベントを示す。例えば、クレジットカード・トランザクション・プロセッサのようなサードパーティのサービス・プロバイダは、ネットワークを介して、マーチャントの物理的な店に配置された販売端末デバイスからのカード・トランザクションを処理するための電子的要求を受信することができる。当該電子トランザクションに関連付けられたデータ・パケットは当該マーチャントの識別子または位置を識別するので、当該マーチャントで当該販売端末デバイスにより開始されたカード・トランザクションはグランド・トルース位置イベントを示すことができる。当該カード・トランザクション・プロセッサは当該グランド・トルース位置イベントを格納し、当該グランド・トルース・データ・セットをデータ処理システムに提供することができる。
【００１４】
リコール・メトリックを、データ処理システムの位置エンジンにより行われた正確な位置判定の数を、カード・トランザクション・プロセッサのようなサードパーティから受信したトルース・データに基づく位置レコードの総数で除したものとして定義することができる。精度メトリックを、データ処理システムの位置エンジンにより行われた正確な位置判定の数を、データ処理システムの位置エンジンにより行われた位置判定の総数により除したものとして定義することができる。
【００１５】
当該カード・トランザクション・プロセッサのカード・トランザクション・データならびに位置エンジンにより行われた位置判定を暗号的に保護するために、データ処理システムは、二重暗号化技術を使用して、ユーザの匿名性を維持し、当該データを暗号化するために使用される暗号化技術を隠蔽することができる。例えば、データ処理システムは、以下の技術を使用して、リコール・メトリックおよび精度メトリックを決定することができる。
・データ処理システムはデータ処理システムの位置エンジンにより行われた複数の位置判定を受信することができる。各位置判定はそれぞれの第１の識別子に関連付けられる。
・データ処理システムは位置トランザクション・レコードをカード・トランザクション・プロセッサのようなサードパーティ・エンティティから受信することができる。各位置トランザクション・レコードは各第２の識別子に関連付けられる。
・データ処理システムは、所定のマッピング、ブリッジ、またはマッチング機能を用いて第１の各識別子を第２の各識別子にマップ、ブリッジ、またはマッチすることができる。
・交換のためにデータを準備するために、データ処理システムは、各レコードの第２の識別子およびタイムスタンプから形成された２つのタプルに適用される第１のハッシュ関数を用いてレコードごとにハッシュ値を決定することができる。
・当該サードパーティ・エンティティは、第２のハッシュ関数を第２の識別子およびタイムスタンプから形成された２つのタプルに適用することでレコードごとの第２のハッシュ値を決定することにより、交換のための当該データを同様に準備することができる。
・データ処理システムは第１の暗号化を第１のハッシュ値に適用でき、当該サードパーティ・エンティティは第２の暗号化を第２のハッシュ値に適用でき、第１のおよび第２の暗号化機能は異なるが両方とも交換可能である。
・データ処理システムは、第２の暗号化機能で暗号化された第２のハッシュ値を当該サードパーティ・エンティティから受信し、次いで第１の暗号化機能を適用し、第１の二重暗号化されたデータ・セットを生成することができる。
・当該サードパーティ・エンティティは、第１の暗号化機能で暗号化された第１のハッシュ値を受信し、次いで第２の暗号化機能を適用し、第２の二重暗号化されたデータ・セット、を生成することができる。
・データ処理システムは、第２の二重暗号化されたデータ・セットを受信し、それを第１の二重暗号化されたデータ・セットと比較して、１）正確な位置判定の総数、２）決定された位置の総数、および３）実際の位置イベントの総数を識別することができる。
・データ処理システムは、上の１乃至３を用いて、精度メトリックおよびリコール・メトリックを生成することができる。
・データ処理システムは、１）当該リコールおよび精度メトリックに基づいて位置エンジンのチューニング・パラメータを調節して位置エンジンの性能を高め、または２）当該リコールおよび精度メトリックを用いてリアルタイムコンテンツ選択を促進することができる。
【００１６】
図１は、１実装に従う、ネットワークを介して位置エンジンを調節する位置データを暗号的に保護するためのシステムの機能ブロック図を示す。環境１００は、マーチャント１７０Ａ乃至Ｎのような１つまたは複数のマーチャントを含む。マーチャントは小売店、店舗販売店位置、レストラン、代理店、薬局、事業所、サービスプロバイダ、コインランドリー、モールまたはプラザ内の小売店、電子キオスク、または自動販売機を指すことができる。マーチャント１７０Ａ乃至Ｎは地理的に分散するかまたは密集することができる。例えば、都市環境またはモールにおいて、マーチャント１７０Ａ乃至Ｎは互いに近いかまたは互いに隣接することができる。
【００１７】
マーチャント１７０Ａは、トランザクション・カード１２５と対話する販売端末デバイス１１５を用いて電子トランザクションを行うことができる。販売端末デバイス１１５は、マーチャント、薬局、小売店、医療品店、または商品もしくはサービスを提供する他のエンティティのようなエンティティを含むユーザインタフェースを介して入力を受信したことに応答して、電子トランザクションを開始することができる。当該トランザクションは当該販売端末またはデバイス１１５を介して発生することができる。販売端末デバイス１１５は、チェックアウトデバイス、電子販売端末デバイスまたはトランザクションを促進するためのハードウェアおよびソフトウェアを含む他のデバイスを含むことができる。販売端末デバイス１１５は、ユーザインタフェース介したトランザクション・カード１２５を介して金融トランザクション情報を受信するように構成されることができる。トランザクション・カード１２５は、プラスチッククレジットカードまたは電子ワイヤレス支払い方法を指し、それらを含むことができる。例えば、ユーザは、デビット・カード、ピン番号、モバイル支払いデバイス、近接場通信可能デバイス、Bluetooth（登録商標）、スマートフォン、スマートウォッチ、ウェラブル通信デバイス、ＲＦＩＤ、または他のモバイル電気通信デバイス）のようなトランザクション・カード１２５を介して識別された金融アカウントに対応する情報を受信し、当該金融トランザクション情報を認証するために１つまたは複数のサーバ１６０またはデータベースと通信し、当該顧客の対応する電子アカウントを識別し、当該顧客アカウントからマーチャント１７０Ａへの資金転送を開始または促進するように構成されることができる。当該トランザクションをアカウント識別子、タイムスタンプ、マーチャント識別子、マーチャント位置、またはトランザクション量のような情報に関連付けることができる。この情報を、カード・トランザクション・プロセッサ１６０のサーバにより維持され管理されるトランザクション・リポジトリにリアルタイムで提供することができる。
【００１８】
カード・トランザクション・プロセッサ１６０またはカード・トランザクションサーバ１６０は、ネットワーク１０５を介して、電子トランザクションを行うことに応答して販売端末デバイス１１５により生成されたデータ・パケットを受信することができる。当該データ・パケットはヘッダ情報およびペイロード情報を含むことができる。複数のデータ・パケットを順番に１列に並べることができる。当該ヘッダ情報は、ソースポート、宛先ポート、シーケンス番号、確認応答番号、またはウィンドウサイズのようなフィールドを含むTCP/IPヘッダを指すことができる。当該データ・パケットのペイロード情報は当該トランザクション、マーチャント、または顧客に関連する情報を含むことができる。サーバ１６０は、ヘッダ情報およびペイロード情報を有するデータ・パケットを受信し、当該パケットを処理してさらなる処理のための情報を取得することができる。当該ペイロードは、当該電子トランザクションのマーチャント、電子アカウント、タイムスタンプ、マーチャント位置、または合計金額を識別するデータを含むことができる。サーバ１６０は当該位置情報またはタイムスタンプをバケット化または量子化することができる。サーバ１６０は、当該電子トランザクションのアカウント識別子を、当該アカウント識別子を匿名化する第２の識別子にマップすることができる。サーバ１６０はハッシュ値を当該アカウント識別子、第２の識別子タイムスタンプ、または位置情報のうち１つまたは複数で生成し、暗号化プロトコルを用いて当該ハッシュ値を暗号化する第２の暗号化モジュール１６５を含むことができる。サーバ１６０は、当該暗号化されたトランザクション・データをサーバ１６０のデータ・リポジトリに格納することができる。
【００１９】
モバイルデバイスのようなコンピューティング・デバイス１１０は、ネットワーク１０５を介して、データ処理システム１２０と対話することができる。データ処理システム１２０はコンピューティング・デバイス１１０をピングでき、または、コンピューティング・デバイス１１０はデータ処理システム１２０との通信を開始することができる。データ処理システム１２０は、当該対話に基づいてコンピューティング・デバイス１１０の位置を決定または識別する位置エンジン１３５を含むことができる。例えば、コンピューティング・デバイス１１０は位置情報（例えば、アドレス、地理座標、地図タイル識別子）をデータ処理システム１２０に提供してもよく、または、データ処理システム１２０は受信された情報（例えば、携帯電話塔三角測量、IPアドレス、またはＷＩＦＩ三角測量）に基づいて当該位置を決定することができる。データ処理システム１２０は、コンピューティング・デバイス１１０に関連付けられたタイムスタンプまたはコンピューティング・デバイス識別子を決定することができる。データ処理システム１２０は当該タイムスタンプまたは位置情報をバケット化または量子化することができる。データ処理システム１２０は、当該コンピューティング・デバイス識別子を、当該コンピューティング・デバイス識別子を匿名化する第２の識別子にマップすることができる。データ処理システム１２０は（例えば、第１の暗号化モジュール１４５を介して）、当該位置判定、タイムスタンプ、または第２の識別子のうち１つまたは複数を用いてハッシュ値を生成し、暗号化プロトコルを用いて当該ハッシュ値を暗号化することができる。データ処理システム１２０は当該暗号化された位置判定および対応する情報をデータ・リポジトリ１５５に格納することができる。
【００２０】
データ処理システムの通信インタフェース１２０は、データ処理システム１２０の位置エンジン１３５により決定された暗号化された位置判定を含む第１の暗号化されたデータ・セットを送信することができる。データ処理システム１２０は、当該データを暗号化するために使用される暗号化プロトコル、またはそのパラメータの識別を提供してもよいししなくてもよい。
【００２１】
データ処理システム１２０の通信インタフェース１０は、ネットワーク１０５を介して、当該暗号化されたデータ・セットをサーバ１６０から受信する。通信インタフェース１３０は二重暗号化されたデータ・セットをサーバ１６０から受信する。例えば、第２の暗号化モジュール１６５はデータ処理システム１２０から受信されたデータ・セットを暗号化することができる。第２の暗号化モジュール１６５および第１の暗号化モジュール１４５により使用される暗号化プロトコルは同一または異なることができる。当該暗号化プロトコルは、交換可能プロパティを有することができ、交換可能暗号化プロトコルであることができる。暗号化は、暗号化の順序の変更が結果を変更しない場合は、交換可能な性質を有することができる。例えば、第１の暗号化プロトコルはハッシュ関数h(location_data)からのハッシュ値をA(h(location_data))として暗号化するために使用できるA()であることができる。第２の暗号化プロトコルB()を、当該ハッシュ値をB(h(location_data))として暗号化するために使用することができる。第１のA()および第２のB()暗号化プロトコルは異なってもよいが、二重暗号化されたデータ・セットがA(B(h(location_data))) = B(A(h(location_data)))のように等しい場合には交換可能な性質を有しうる。交換可能暗号化プロトコルまたは暗号化システムは数値理論に基づく暗号化プロトコルを含むことができる。当該数値理論は交換可能代数構造に依存しうる。例えば、交換可能暗号化プロトコルは、（例えば、暗号化キーが公開され、隠蔽されるかまたは秘密に保たれる復号鍵とは異なり、この非対称性のため、２つの大きな素数の積を因数分解する困難性のため復号鍵なしに復号化することが技術的に困難である）ＲＳＡ暗号化システム、または楕円曲線暗号化（例えば、有限体上の楕円曲線の代数構造に基づく公開鍵暗号化）のような公開鍵暗号化システムを含むことができる。
【００２２】
データ処理システム１２０は、カード・トランザクションサーバ１６０から、第２の暗号化モジュール１６５により生成された二重暗号化されたデータ・セットを受信することができる。当該二重暗号化されたデータ・セットを受信すると、データ処理システム１２０は、当該受信された二重暗号化されたデータ・セットを、データ処理システム１２０の第１の暗号化モジュール１４５により生成された二重暗号化されたデータ・セットと比較することができる。２つの暗号化プロセスは当該二重暗号化されたデータ・セットを生成するために当該データ・セットの各々に適用され、差異は当該暗号化が当該データ・セットに適用される順序にあってもよい。幾つかのケースでは、当該２つの暗号化プロトコルが、同一の暗号化プロトコル、異なる暗号化プロトコル、または異なるパラメータを有する同一の暗号化方式または技術であってもよい。
【００２３】
データ処理システム１２０は（例えば、チューナ１５０を介して）、当該２つの二重暗号化されたデータ・セットを比較して、当該データ・セット間のマッチングエントリまたはレコードの数を識別することができる。マッチングエントリまたはレコードの数はデータ処理システム１２０の位置エンジン１３５により行われた正確な位置判定の数を示すことができる。サーバ１６０により生成されたトランザクション・データ・セット内の総エントリ数は、当該マーチャントの位置で生じたトランザクションであるので、実際の訪問またはグランド・トルース・データの数を示すことができる。データ処理システム１２０は（例えば、チューナ１５０を介して）、リコール・メトリックを、データ処理システムの位置エンジンにより行われた正確な位置判定の数を、カード・トランザクション・プロセッサのようなサードパーティから受信したトルース・データに基づく位置レコードの総数により除したものとして決定することができる。データ処理システム１２０は（例えば、チューナ１５０を介して）、精度メトリックを、データ処理システムの位置エンジンにより行われた正確な位置判定の数を、データ処理システム１２０の位置エンジン１３５により行われた位置判定の総数により除したものとして決定することができる。
【００２４】
図２は、１実装に従う、ネットワークを介して位置エンジンを調節する位置データを暗号的に保護するためのシステムを示す。システム２００はコンテンツ選択インフラを含むことができる。システム２００は、ネットワーク１０５を介してコンテンツプロバイダ２２５、コンテンツパブリッシャ２１５またはコンピューティング・デバイス１１０のうち１つまたは複数と通信するデータ処理システム１２０を含むことができる。ネットワーク１０５は、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、メトロポリタン・ネットワーク、または他の領域ネットワーク、イントラネット、衛星ネットワーク、および音声またはデータモバイル電話ネットワークのような他の通信ネットワークのようなコンピュータネットワークを含むことができる。ネットワーク１０５を、ラップトップ、デスクトップ、タブレット、携帯情報端末、スマートフォン、またはポータブルコンピュータのような少なくとも１つのコンピューティング・デバイス１１０に表示できるウェブページ、ウェブサイト、ドメイン名、またはユニフォーム・リソース・ロケータのような情報リソースにアクセスするために使用することができる。例えば、ネットワーク１０５を介してコンピューティング・デバイス１１０のユーザは、少なくとも１つのウェブサイトオペレータまたはコンテンツパブリッシャ２１５により提供されたウェブページにアクセスすることができる。本例では、コンピューティング・デバイス１１０のウェブブラウザは、コンピューティング・デバイス１１０のモニタに表示するためのウェブページを取り出すために、ウェブサイトオペレータまたはコンテンツパブリッシャ２１５のウェブサーバにアクセスすることができる。当該ウェブサイトオペレータまたはコンテンツパブリッシャ２１５は一般にウェブページを動作させるエンティティを含む。１実装では、当該ウェブサイトオペレータまたはコンテンツパブリッシャ２１５は、ネットワーク１０５と通信して当該ウェブページをコンピューティング・デバイス１１０に利用可能とする少なくとも１つのウェブページサーバを含む。
【００２５】
ネットワーク１０５は、任意のタイプまたは形態のネットワークであってもよく、ポイント・ツー・ポイントネットワーク、ブロードキャストネットワーク、広帯域ネットワーク、ローカル・エリア・ネットワーク、電気通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ＡＴＭ(Asynchronous Transfer Mode)ネットワーク、ＳＯＮＥＴ(Synchronous Optical Network)ネットワーク、ＳＤＨ(Synchronous Digital Hierarchy)ネットワーク、ワイヤレスネットワークおよび有線ネットワークのうち何れかを含んでもよい。ネットワーク１０５は赤外線チャネルまたは衛星帯域のような無線リンクを含んでもよい。ネットワーク１０５のトポロジはバス、星形、またはリング・ネットワークトポロジを含んでもよい。当該ネットワークは、高度携帯電話プロトコル（「ＡＭＰＳ」）、時分割多重アクセス（「ＴＤＭＡ」）、符号分割多重アクセス（「ＣＤＭＡ」）、グローバル・システム・フォー・モバイル・コミュニケーション（「GSM（登録商標）」）、汎用パケット無線サービス（「ＧＰＲＳ」）またはユニバーサル・モバイル電気通信システム（「ＵＭＴＳ」）を含む、モバイルデバイスの間で通信するために使用される任意の１つまたは複数のプロトコルを用いた携帯電話ネットワークを含んでもよい。様々なタイプのデータが異なるプロトコルを介して送信されてもよい、または同一のタイプのデータが異なるプロトコルを介して送信されてもよい。
【００２６】
システム２００は少なくとも１つのデータ処理システム１２０を含むことができる。データ処理システム１２０は、ネットワーク１０５を介して、例えばコンピューティング・デバイス１１０、ウェブサイトオペレータまたはコンテンツパブリッシャコンピューティング・デバイス２１５（またはコンテンツパブリッシャ２１５）、および少なくとも１つのコンテンツプロバイダコンピューティング・デバイス２２５（またはプロバイダデバイス２２５またはコンテンツプロバイダ２２５）と通信するためのプロセッサを有するコンピューティング・デバイスのような少なくとも１つの論理デバイスを含むことができる。データ処理システム１２０は少なくとも１つのサーバを含むことができる。例えば、データ処理システム１２０は少なくとも１つのデータセンタに配置された複数のサーバを含むことができる。データ処理システム１２０は、複数の、論理的にグループ化されたサーバを含むことができ、分散コンピューティング技術を促進する。サーバの当該論理グループをサーバ・ファームまたはマシン・ファームと称してもよい。当該サーバはまた、地理的に分散されることができる。マシン・ファームを単一のエンティティとして管理してもよく、または当該マシン・ファームは複数のマシン・ファームを含むことができる。各マシン・ファーム内の当該サーバは不均一であることができる。すなわち、当該サーバまたはマシンのうち１つまたは複数が１つまたは複数のタイプのオペレーティング・システムプラットフォームに従って動作することができる。
【００２７】
当該マシン・ファーム内のサーバを、関連付けられた記憶システムとともに高密度ラック・システムに格納でき、エンタープライズデータセンタに配置することができる。例えば、当該サーバをこのように統合することで当該システムのシステム管理可能性、データセキュリティ、物理セキュリティを高めることができ、高性能ネットワーク上にサーバおよび高性能記憶システムを配置することでシステム性能を高めることができる。当該サーバおよび記憶システムを集約し、それらを高度なシステム管理ツールと結合することでサーバリソースのより効率的な利用が可能となる。
【００２８】
データ処理システム１２０は少なくとも１つのサーバを有するコンテンツ配置システムを含むことができる。データ処理システム１２０は少なくとも１つの通信インタフェース１３０、少なくとも１つの位置エンジン１３５、少なくとも１つのブリッジ・モジュール１４０、少なくとも１つの第１の暗号化モジュール１４５、少なくとも１つのチューナ１５０、または少なくとも１つのデータ・リポジトリ１５５のうち１つまたは複数を含むことができる。通信インタフェース１３０、位置エンジン１３５、ブリッジ・モジュール１４０、第１の暗号化モジュール１４５およびチューナ１５０はそれぞれ、プログラム可能論理アレイエンジンのような少なくとも１つの処理ユニットまたは他の論理デバイス、または当該データベースリポジトリまたはデータベース１５５と通信するように構成されたモジュールを含むことができる。通信インタフェース１３０、位置エンジン１３５、ブリッジ・モジュール１４０、第１の暗号化モジュール１４５およびチューナ１５０は別々のコンポーネント、単一のコンポーネント、またはデータ処理システム１２０の一部であることができる。データ処理システムのようなシステム２００およびそのコンポーネントは１つまたは複数のプロセッサ、論理デバイス、または回路のようなハードウェア要素を含んでもよい。データ・リポジトリ１５５は、１つまたは複数のデータ構造またはデータベースを、メモリまたは、位置データ構造またはデータベース２３０、地図データ構造またはデータベース２３５、ハッシュデータ構造またはデータベース２４０、パラメータデータ構造またはデータベース２４５およびメトリックデータ構造またはデータベース２５０のような他の記憶デバイスに格納することができる。幾つかの実装では、データ処理システム１２０は、第２の暗号化モジュール１６５を含むカード・トランザクション・プロセッサのサーバのようなサードパーティ・サーバ１６０にアクセスすることができる。サードパーティ・サーバ１６０は、１つまたは複数の販売端末デバイスを介してマーチャントで行われた電子トランザクションを処理することができる。
【００２９】
データ処理システム１２０は複数のコンピューティング・デバイス１１０に関連付けられた匿名コンピュータネットワーク活動情報を取得することができる。コンピューティング・デバイス１１０のユーザは、データ処理システム１２０を肯定的に認証して、ユーザのコンピューティング・デバイス１１０に対応するネットワーク活動情報を取得することができる。例えば、データ処理システム１２０は、１つまたは複数のタイプのネットワーク活動情報を取得することに対する同意に関してコンピューティング・デバイス１１０のユーザを促すことができる。コンピューティング・デバイス１１０のユーザのアイデンティティは匿名のままであってもよく、コンピューティング・デバイス１１０は一意な識別子（例えば、データ処理システムまたは当該コンピューティング・デバイスのユーザにより提供された、当該コンピューティング・デバイスのユーザの一意な識別子）に関連付けられてもよい。データ処理システムは各観測を対応する一意な識別子に関連付けることができる。
【００３０】
本明細書で説明するシステムがユーザに関する個人情報を収集するかまたは個人情報を利用しうる状況に対して、ユーザに、個人情報（例えば、ユーザのソーシャルネットワーク、ソーシャルアクションまたはアクティビティ、ユーザの嗜好、またはユーザの現在の位置に関する情報）を収集しうるプログラムまたは機能かどうかを制御する、またはユーザにより関連するコンテンツを当該コンテンツサーバから受信するかどうかまたはその方法を制御するための機会を与えてもよい。さらに、パラメータ（例えば、人口パラメータ）を生成するときにユーザに関する特定の情報が除去されるように、特定のデータを、それが格納または使用される前に１つまたは複数の方法で処理してもよい。例えば、ユーザのアイデンティティを、ユーザに対して識別情報を決定できないように扱ってもよく、またはユーザの特定の位置を決定できないように、ユーザの地理的位置を位置情報が取得される場所に（例えば都市、郵便番号、または州レベルに）一般化してもよい。したがって、ユーザは、どのように情報がユーザについて収集されコンテンツサーバにより使用されるかを制御することができる。
【００３１】
幾つかの実装では、データ処理システム１２０はコンテンツセレクタを含むことができる。当該コンテンツセレクタは、当該候補コンテンツ・アイテムの主題がウェブページに対応するかどうかを決定するために、候補コンテンツ・アイテムの主題を分析、解析、または処理することができる。当該コンテンツセレクタは、画像処理技術、文字認識技術、またはデータベース検索を用いて当該候補コンテンツ・アイテムの用語、文字、テキスト、記号、または画像を識別、分析、または認識することができる。当該候補コンテンツ・アイテムは当該候補コンテンツ・アイテムの主題を示すメタデータを含んでもよい。この場合、当該コンテンツセレクタは当該候補コンテンツ・アイテムの主題が当該ウェブページまたは検索クエリに対応するかどうかを決定するために当該メタデータを処理することができる。
【００３２】
コンテンツプロバイダ２２５は、コンテンツ・アイテムを含むコンテンツキャンペーンをセットアップするとき、追加のインジケータを提供することができる。コンテンツプロバイダ２２５は、当該コンテンツセレクタが当該候補コンテンツ・アイテムに関する情報を用いて検索を実施することで識別しうる当該コンテンツキャンペーンまたはコンテンツグループのレベルで情報を提供してもよい。例えば、当該候補コンテンツ・アイテムは一意な識別子を含んでもよく、当該一意な識別子をコンテンツグループ、コンテンツキャンペーン、またはコンテンツプロバイダにマップしてもよい。当該コンテンツセレクタを、当該コンテンツプロバイダに関するデータ・リポジトリ１５５に格納された情報に基づいて決定することができる。
【００３３】
データ処理システム１２０は様々な技術を用いて当該コンテンツを選択することができる。例えば、データ処理システム１２０は、パートナコンテンツ選択ネットワークからの照会またはリードからコンテンツを選択することができる。幾つかの実装では、当該コンテンツは、キーワードまたはマッチング技術を用いて選択されないが、照会またはリードに基づいて選択されてもよい。
【００３４】
例えば、データ処理システム１２０はコンテンツに対する要求を受信することができる。当該要求は、検索クエリ入力のような、データ処理システムの検索エンジンへのキーワードまたはクエリを含んでもよい。当該入力クエリは、例えばテキスト、文字、または記号を含んでもよい。データ処理システム１２０は当該入力クエリを、ネットワーク１０５を介してコンピューティング・デバイス１１０から受信することができる。当該入力クエリは、コンピューティング・デバイス１１０のユーザにより話された単語およびネットワーク１０５およびインタフェースを介したデータ処理システムの検索エンジンへの入力のような音声を含んでもよい。当該要求は、当該要求に応答してコンテンツの選択を促進する情報を含んでもよいかまたはそれに関連付けられてもよい。当該情報は、例えば、電子ドキュメント、ウェブページ、電子アプリケーション、または選択されたコンテンツが表示される有機的な非広告リンクに関する文脈情報を含んでもよい。データ処理システム１２０は、入力テキストボックス、ボタン、ドロップ・ダウン、またはクライアントのユーザがそれを通じて検索のカテゴリを選択または示すウィジェットを表示するインタフェースを提供することができる。
【００３５】
コンテンツ（例えば、電子広告）に対する検索クエリまたは他の要求に応答して、データ処理システム１２０は（例えば、コンテンツセレクタを介して）、当該要求を行うコンピューティング・デバイス１１０、または当該コンテンツの要求に関連付けられた幾つかの他のコンピューティング・デバイス１１０を介して提供または提示されるコンテンツを識別、選択、または取得することができる。幾つかの実装では、データ処理システム１２０は、要求を受信したことに応答せずにコンテンツを識別、選択、または取得することができる。当該コンテンツは、例えば、テキスト、文字、記号、画像、ビデオ、オーディオ、またはマルチメディアコンテンツを含んでもよい。当該コンテンツは電話番号、仮想電話番号、または内線番号を含んでもよい。当該コンテンツ・アイテムは、コンテンツプロバイダにより提供され検索結果ページとともに表示するために（例えば、コンテンツセレクタを介して）データ処理システムにより含まれるスポンサードリンクの形で広告を含んでもよい。当該コンテンツ・アイテムは、コンテンツプロバイダへのデータ報告の提供を促進する電話番号へのリンクまたはボタンを含んでもよい。当該コンテンツ・アイテムが仮想電話番号または内線番号を含む場合には、当該コンテンツ・アイテムを電話コンテンツ・アイテムと称してもよい。当該コンテンツ要求は、オンライン広告、記事、プロモーション、クーポン、または製品説明の要求を含むことができる。データ処理システム１２０は当該要求を、例えば、コンピューティング・デバイス１１０のようなコンピューティング・デバイスから受信することができる。例えば、データ処理システム１２０は、モバイルデバイス（例えば、スマートフォンまたはタブレット）で実行されているモバイルアプリケーションのようなコンピューティング・デバイス１１０で実行されているアプリケーションを介して当該要求を受信することができる。幾つかのケースでは、データ処理システム１２０は、コンテンツに対する別々の要求を受信しなくてもよく、その代わり、当該検索クエリに応答してまたは検索結果とともに当該コンテンツ（例えば、広告）を選択し提供してもよい。幾つかの事例では、モバイルデバイス１１０のユーザが（例えば、モバイルデバイス１１０を介して）ウェブページを訪問したことに応答して、当該ウェブページがコンテンツをデータ処理システム１２０に要求してもよい。
【００３６】
当該コンテンツ要求はコンテンツ選択を促進する情報を含むことができる。例えば、データ処理システム１２０は、コンテンツ識別またはコンテンツ選択を促進するための情報をコンピューティング・デバイス１１０に要求することができる。データ処理システム１２０は、コンテンツに対する要求をコンピューティング・デバイス１１０から受信したことに応答して、情報を要求または取得することができる。当該情報は、コンピューティング・デバイス１１０上に当該コンテンツを表示することに関する情報（例えば、コンテンツのスロット・サイズまたは位置）または当該コンテンツを表示もしくは操作するためのコンピューティング・デバイス１１０の利用可能なリソースを含んでもよい。
【００３７】
データ処理システム１２０は、当該コンテンツ要求に応答するか、またはオンラインドキュメント（例えば、ウェブページ）に表示するための候補である複数のコンテンツ・アイテム（例えば、第１の候補コンテンツ・アイテムおよび第２の候補コンテンツ・アイテム）を識別することができる。データ処理システムは、オンラインオークションプロセスを開始または利用して、当該オンラインドキュメントに表示するための当該複数のコンテンツ・アイテムの１つまたは複数を選択することができる。オークションシステムは、オンラインドキュメントに表示されるコンテンツ・アイテムのための複数の入札を決定してもよい。当該オークションシステムは、１つまたは複数の最高ランキング入札または落札を決定するためのオークションプロセスを通じて入札を実行することができる。当該最高ランキングまたは落札に対応するコンテンツ・アイテムを選択して、当該オンラインドキュメント上にまたはそれとともに表示してもよい。
【００３８】
データ処理システム１２０は、コンピューティング・デバイス１１０の位置を受信、識別、または決定するように設計および構成された位置エンジン１３５を含むことができる。位置エンジン１３５は、コンピューティング・デバイス１１０に関連付けられたジオロケーション・データ・ポイントを受信し、コンピューティング・デバイス１１０の位置を決定するために使用できる１つまたは複数のパラメータまたはチューニング・パラメータで構成することができる。データ処理システム１２０は、コンピュータネットワーク１０５のTCP/IPプロトコル、携帯電話データネットワーク、または別の通信プロトコルを介してコンピュータネットワークを介して１０５当該データ・ポイントを受信することができる。当該データ・ポイントは位置情報および時刻情報を含むことができ、またはデータ処理システム１２０は、当該データ・ポイントをコンピューティング・デバイス１１０から受信した際に、受信されたデータ・ポイントに関連付けられた当該位置または時刻情報を決定することができる。データ処理システム１２０はまた、一意なコンピューティング・デバイス識別子のような当該データ・ポイントに関連付けられた第１の識別子、またはコンピューティング・デバイス１１０で実行されているアプリケーションに関連付けられたユーザ名を受信することができる。コンピューティング・デバイス１１０で実行されているアプリケーション（例えば、モバイルアプリケーション、モバイルオペレーティング・システム、ウェブブラウザ、またはマップアプリケーション）は当該位置情報を含むジオロケーション・データ・ポイントを送信することができる。モバイルコンピューティング・デバイス１１０は、位置または時刻情報を提供するデータ処理システム１２０または他の中間システムを定期的にピングしてもよい。幾つかのケースでは、スマートフォンまたは他のセルラ可能コンピューティング・デバイス１１０は、携帯電話塔システムをピングすることができる。当該携帯電話塔システムはついで、位置または時刻情報をデータ処理システム１２０に提供しうる。
【００３９】
データ処理システム１２０は、ジオロケーション・データ・ポイントまたはピングを、リアルタイムで、または定期的（例えば、１０分、５分、１分、３０秒、または本明細書で開示したシステムおよび方法を促進できる別の期間）のような所定の時間間隔で受信することができる。位置エンジンのチューニング・パラメータ１３５は当該所定の時間間隔を含むことができる。データ処理システム１２０は、定期的に実行するバッチプロセスで当該データ・ポイントを受信することができる。この場合、コンピューティング・デバイス１１０または複数のコンピューティング・デバイス１１０に関連付けられた複数のジオロケーション・データ・ポイントをデータ処理システム１２０に単一のアップロードプロセスで提供することができる。幾つかのケースでは、コンピューティング・デバイス１１０は当該データ・ポイントをデータ処理システム１２０にリアルタイムに、定期的に、またはバッチプロセスでプッシュすることができる。
【００４０】
当該データ・ポイントは当該ジオロケーション・データ・ポイントの地理的位置情報を含んでもよく、またはデータ処理システム１２０が、当該ジオロケーション・データ・ポイントの地理的位置情報を、当該ジオロケーション・データ・ポイントの地理的位置情報、例えば、GPS、Wi-Fi、IPアドレス、Bluetooth（登録商標）、ビーコン技術、無線周波数識別（ＲＦＩＤ）、近接場通信技術、または携帯電波塔三角測量技術に基づいて決定してもよい。幾つかの実装では、データ処理システム１２０は、緯度および経度座標を決定し、当該緯度および経度座標を含む大きな地理的領域またはセルを識別することができる。当該地理的位置は緯度または経度座標に対応してもよく、または、当該地理的位置は例えば大きなまたは小さな領域に対応してもよい。
【００４１】
幾つかの実装では、受信されたデータ・ポイントは、例えば、緯度および経度座標、地理的情報システム（「ＧＩＳ」）情報、国、州、都市、国、町、または境内を含む地理的位置情報を含んでもよく、またはデータ処理システム１２０がそれを決定してもよい。データ処理システム１２０は、コンピューティング・デバイス１１０に関連付けられた地理的位置情報へのスクリプトされたアクセスを提供できるアプリケーションプログラミングインタフェース（「ＡＰＩ」）を介して、コンピューティング・デバイス１１０に関連付けられた地理的位置情報を受信または識別してもよい。例えば、地理的ＡＰＩ仕様は、ワールド・ワイド・ウェブ・コンソーシアム（「Ｗ３Ｃ」）に関連付けられた仕様を含んでもよい。１実装では、コンピューティング・デバイス１１０のユーザは、位置にチェックインすることでまたはコンピューティング・デバイス１１０で実行されているアプリケーションにまたはユーザが或る位置にいるデータ処理システムに宣言することで、積極的に位置を宣言する。
【００４２】
幾つかの実装では、コンピューティング・デバイス１１０の地理的位置を、全地球測位システム（「GPS」）、携帯電波塔三角測量、またはWi-Fiホットスポットのうち少なくとも１つを介して決定することができる。幾つかの実装では、データ処理システム１２０は、決定されたジオロケーション・データ・ポイントの精度を決定するために、地理的位置を決定するために使用される技術を識別または決定することができる（例えば、GPSベースの位置情報はIPベースの位置情報より正確であるかもしれない）。データ処理システム１２０はまた、情報リソースとのユーザの対話に基づいて地理的位置情報を決定することができる。幾つかの実装では、コンピューティング・デバイス１１０は全地球測位システム（「GPS」）を含んでもよい。幾つかの実装では、データ処理システム１２０はインターネットプロトコル（「IP」）アドレスに基づいて地理的位置を決定してもよい。例えば、コンピューティング・デバイス１１０は、GPSセンサまたはアンテナを含んでもよく、コンピューティング・デバイス１１０のGPS位置を決定するように構成されてもよい。データ処理システム１２０はまた、１つまたは複数の携帯電波塔より取得された情報を用いてコンピューティング・デバイス１１０の位置を三角測量することで当該地理的位置を決定することができる。例えば、１つの携帯電波塔、２つの携帯電波塔または３つの携帯電波塔から受信された１つの情報に基づいて決定された地理的位置がコンテンツ選択に十分であるかもしれない。幾つかの実装では、Wi-Fiホットスポットは、Wi-Fiホットスポットが静止しておりランドマークとして使用できるので、地理的位置の決定を促進しうる。例えば、Wi-Fiホットスポットに対するコンピューティング・デバイス１１０の関係はコンピューティング・デバイス１１０の地理的位置の決定を促進することができる。
【００４３】
幾つかのケースでは、位置エンジン１３５は、コンピューティング・デバイス１１０の位置を決定するためにコンピューティング・デバイス１１０から受信されるかまたはそれに関連付けられた位置ピングまたは位置データ・ポイントをクラスタすることができる。位置エンジン１３５は、時間間隔、距離閾値、または当該時間間隔と距離閾値の両方に基づいて当該位置ピングまたはデータ・ポイントをクラスタすることができる。
【００４４】
例えば、位置エンジン１３５は、第１のデータ・ポイント（または初期データ・ポイント）および後続のデータ・ポイントを含む位置クラスタを生成することができる。データ・ポイントは、緯度および経度座標、タイムスタンプ、またはコンピューティング・デバイス識別子を含むかまたは識別することができる。第１のデータ・ポイントは重心データ・ポイントを参照してもよい。データ処理システム１２０は当該重心データ・ポイントを使用して、位置クラスタを生成するために、後続のデータ・ポイントのうちどれが距離閾値を満たすかを識別することができる。後続のデータ・ポイントと称されるが、当該後続のデータ・ポイントを、第１のデータ・ポイントに対して後の時点でデータ処理システム１２０により受信してもよいがその必要はない。データ処理システム１２０は時間因子、位置因子、または他の論理に基づいて第１のデータ・ポイントを識別することができる。データ処理システム１２０は第１のデータ・ポイントを、半径（例えば、１０マイル、２０マイル、５０マイル）内の最も早く受信されたデータ・ポイントとして識別することができる。別の実装では、データ処理システム１２０は、所定の時間間隔内で受信された複数のデータ・ポイント（例えば、５分、１０分、１５分、３０分、または１時間の範囲で受信された全てのデータ・ポイント）を識別し次いで（例えば、当該データ・ポイントをマッピングすることおよび中心に最も近いデータ・ポイントを識別することにより）当該複数のデータ・ポイントの重心データ・ポイントを識別することに基づいて第１のデータ・ポイントを識別してもよい。
【００４５】
１実装では、第１のデータ・ポイントが時間に基づく第１のデータ・ポイントである場合、後続のデータ・ポイントは、第１のデータ・ポイントの後に受信された（またはタイムスタンプを含む）データ・ポイントを指す。当該後続のデータ・ポイントは、第１のデータ・ポイントの直後のタイムスタンプを有する１つまたは複数のデータ・ポイントを指すことができる。第１のデータ・ポイントを識別すると、データ処理システム１２０は、各後続のデータ・ポイントが距離閾値を満たすかどうかを判定することで、当該後続のデータ・ポイントを有するクラスタを生成することができる。データ処理システム１２０は、第１のデータ・ポイントを識別し、次いで第１のデータ・ポイントの位置を第２のデータ・ポイントの位置と比較することができる。第２のデータ・ポイントが第１のデータ・ポイントの距離閾値内にある場合、データ処理システム１２０は、第１のデータ・ポイントおよび第２のデータ・ポイントを含む位置クラスタを生成する。データ処理システム１２０は、第２のデータ・ポイントに続く第３のデータ・ポイントを識別し、第３のデータ・ポイントを第１のデータ・ポイントと比較することができる。本例では、データ処理システム１２０は各後続のデータ・ポイントの距離を第１のデータ・ポイントと比較する。第１のデータ・ポイントと第３のデータ・ポイントの間の距離が当該閾値距離を満たす場合、データ処理システム１２０は、第３のデータ・ポイントでクラスタを生成するか、または第３のデータ・ポイントを生成されているクラスタに追加することができる。第３のデータ・ポイントが当該閾値距離を満たさない（例えば、当該閾値距離を超過する）場合、データ処理システム１２０は当該データ・ポイントを当該位置クラスタに含めなくてもよい。幾つかのケースでは、データ処理システム１２０は第３のポイントを第２の位置クラスタの新たな初期または新たな第１のデータ・ポイントとして識別し、第３のデータ・ポイントに後続するデータ・ポイントを上と同様な方式で処理することに進んでもよい。
【００４６】
位置エンジン１３５を、異なる距離（例えば、１０メートル、２０メートル、３０メートル、５０メートル、またはコンピューティング・デバイス１１０の位置判定を促進する他の距離閾値）に対応する１つまたは複数の距離閾値（例えば、第１の、第２の、第３の、第４の距離閾値）で構成することができる。当該様々な距離閾値を用いて、当該システムは異なるサイズの複数の位置クラスタを生成することができる。これが、地方および都市環境のような異なる環境で、またはデパート、スタジアム、コンベンションセンタ、またはブティックのような異なるサイズ商業エンティティに関連して、妥当なクラスタを生成することを促進してもよい。位置エンジン１３５を、距離閾値に対応するチューニング・パラメータを用いて調節することができる。例えば、チューニング・パラメータは当該距離閾値であることができ、チューナ１５０は、当該コンピューティング・デバイスの位置を決定するために位置エンジン１３５により使用される距離閾値チューニング・パラメータを調節することで位置エンジン１３５を調節することができる。
【００４７】
当該距離閾値は静的または動的であることができる。当該閾値距離は静的値（例えば、５０メートル、１００メートル、または２００メートル）であることができる。別の実装では、当該閾値距離は、メトリック、フィードバックまたは最適化技術に基づいてチューナ１５０により精密に調節することができる。例えば、データ処理システム１２０は、ユーザが店を訪問することを示さず、満足できないリコール・メトリックまたは精度メトリックに関連付けられ、したがってより低い閾値距離値に関連付けられるので、クラスタサイズが大きすぎると判定してもよい。別の実装では、データ処理システム１２０は（例えば、チューナ１５０を介して）、あまりにも多くのクラスタが商業エンティティに対して生成されたので、当該閾値距離が商業エンティティのサイズに関してあまりに小さいと判定することができる。
【００４８】
データ処理システム１２０は、リコール・メトリック、精度メトリック、または利用可能な位置情報の粒度に基づいて、当該閾値距離を変更することができる。例えばWi-Fi、セル三角測量およびGPSは精度または解像度が変化する位置情報を提供する。当該データ・ポイントは使用されている位置決め技術に関する情報を含んでもよく、または、データ処理システム１２０は、当該データ・ポイントに含まれるデータのタイプに基づいて使用されている位置技術を決定してもよい。当該位置情報が１００メートル内まで正確である場合、当該閾値距離は１００メートルであってもよい。当該位置情報が５０メートル内まで正確である場合、当該閾値距離は５０メートルであってもよい。
【００４９】
１実装では、データ処理システム１２０は（例えば、チューナ１５０を介して）、クラスタに対する最小または最大数のデータ・ポイントに対応するチューニング・パラメータを調節することができる。当該最小および最大値は静的または動的であってもよい（例えば、最適化プロセスに基づいて変化する所定の数、地理的位置（例えば、都市領域対田舎領域）に基づいて変化する数）。幾つかのケースでは、データ処理システム１２０は、位置クラスタが最小数のデータ・ポイント（例えば、３、４、５または妥当なクラスタの生成を促進する別の値）を含まない場合には、クラスタを当該位置クラスタとして識別しなくてもよい。データ処理システム１２０はまた、第２のクラスタを生成する前にクラスタに対する最大数のデータ・ポイントを設定することができる。当該最大数を、静的値（例えば、３、４、５、１０、２０、または妥当なクラスタの生成を促進する別の値）に基づいて、または動的に（例えば、当該地理的位置に基づいて）設定してもよい。
【００５０】
したがって、位置エンジンのパラメータまたはチューニング・パラメータは、例えば、位置ピングをコンピューティング・デバイスから受信するための時間間隔、コンピューティング・デバイスの位置を決定するために使用される位置ピングの時間間隔または頻度、使用される位置情報のソース（例えば、GPS、Wi-Fi、携帯電話三角測量、またはビーコン）、使用される１つまたは複数のソースの組合せ、クラスタ距離閾値、クラスタ時間閾値、クラスタを形成するための最小データ・ポイントの数、またはクラスタを形成するための最大データ・ポイントの数を含むことができる。
【００５１】
データ処理システム１２０は、メモリに格納された位置データベースから、データ処理システムの位置エンジンにより行われた複数の位置判定を取り出すように設計され構成されたブリッジ・モジュール１４０を含むことができる。各位置判定を各第１の識別子に関連付けることができる。第１の識別子は、コンピューティング・デバイス１１０を識別するためにデータ処理システム１２０によりまたは位置エンジン１３５により使用される識別子に対応することができる。第１の識別子は、隠蔽されるか、または、データ処理システム１２０に一意であってもよい。異なるエンティティは、異なる識別子または異なるタイプの識別子を使用して、コンピューティング・デバイス１１０またはトランザクションを識別することができる。例えば、データ処理システム１２０は第１の識別子を使用して、コンピューティング・デバイス１１０およびマーチャント１７０Ａでのコンピューティング・デバイス１１０の位置を識別することができる。しかし、トランザクション・プロセッサ１６０のサードパーティ・サーバ１６０はサードパーティ識別子を使用して、トランザクション・カード１２５に関連付けられたトランザクションを識別することができる。トランザクション・カード１２５のユーザはコンピューティング・デバイス１１０と同一のユーザであってもよい。幾つかのケースでは、トランザクション・カード１２５のユーザはコンピューティング・デバイス１１０と異なってもよい。データ処理システム１２０は第１の識別子を暗号化または隠蔽することができる。カード・トランザクション・プロセッサ１６０は当該サードパーティ識別子を暗号化または隠蔽することができる。データ処理システム１２０は対応する第１の識別子での位置判定を第１のデータ・セットに格納でき、カード・トランザクション・プロセッサ１６０は対応するサードパーティ識別子によるトランザクションから行われた位置判定を格納することができる。サードパーティ・サーバは当該サードパーティ識別子を匿名の第２の識別子にマップすることができる。この匿名の第２の識別子をサードパーティ・サーバ１６０またはカード・トランザクション・プロセッサにより使用される恒久的なサードパーティ識別子にマップすることができる。
【００５２】
ブリッジ・モジュール１４０は、データ処理システム１２０に知られた１組の第１の識別子およびサードパーティ・エンティティ１６０に知られた１組の第２の識別子の間のマッピングを決定することができる。その両方とも、両方とも第１の識別子および第２の識別子に関連付けられた同一のコンピューティング・デバイス１１０またはユーザを指すかまたはそれらに関連付けられる。ブリッジ・モジュール１４０は、暗号化された位置および時刻情報を用いて、データ処理システム１２０とサードパーティ１６０の間の直接ブリッジリンクを確立することができる。当該２つのデータにわたる複数の機会で同じ場所および同じ時刻にコンピューティング・デバイス１１０を観測することで、データ処理システム１２０は第１の識別子から第２の識別子へのマッピング関数を生成することができる。
【００５３】
第１の識別子はブリッジ・モジュール１４０により生成された第１のブリッジ識別子を指すことができる。第１の識別子は、コンピューティング・デバイス１１０の実際の識別子に対応する匿名識別子を指すことができる。ブリッジ・モジュール１４０は、コンピューティング・デバイス１１０に関連付けられた実際の識別子（例えば、ユーザ名、電話番号、スクリーン名、ログイン識別子、またはプロフィール名）を暗号化することで第１の識別子を生成することができる。
【００５４】
第２の識別子は、サードパーティ・サーバ１６０またはカード・トランザクション・プロセッサにより生成された第２のブリッジ識別子を指すことができる。第２の識別子は、コンピューティング・デバイス１１０またはコンピューティング・デバイス１１０のユーザに関連付けられた実際の識別子に対応する匿名識別子を指すことができる。サードパーティ・サーバ１６０は、コンピューティング・デバイス１１０に関連付けられた実際の識別子（例えば、アカウント識別子、ユーザ名、電話番号、スクリーン名、ログイン識別子、またはプロフィール名）を暗号化することで第２の識別子を生成することができる。データ処理システム１２０およびサードパーティ・サーバ１６０は異なる暗号化技術を使用してもよいので、第１の識別子および第２の識別子は異なる識別子であってもよい。
【００５５】
したがって、データ処理システム１２０は、どのようにカード・トランザクション・プロセッサ１６０がコンピューティング・デバイス１１０または当該カード・トランザクションに関連付けられたユーザを識別するかに関する情報を有さなくてもよい。データ処理システム１２０、カード・トランザクション・プロセッサ１６０、またはその管理者は専有情報または機密情報を送信したくないかもしれない。
【００５６】
例えば、コンピューティング・デバイス１１０は、データ処理システム１２０を介して提供されたオンラインリソースまたはドキュメント（例えば、ウェブページ、コンテンツ・アイテム、または広告）にアクセスすることができる。データ処理システム１２０はコンピューティング・デバイス１１０に対する第１の識別子を割り当てることができる。データ処理システム１２０は、コンピューティング・デバイス１１０がデータ処理システム１２０を介してリソースまたはドキュメントにアクセスしたことに応答して、コンピューティング・デバイス１１０に対する第１の識別子を割り当てることができる。データ処理システム１２０は、コンピューティング・デバイスの識別子を暗号化または隠蔽して第１の識別子を生成することができる。第１の識別子は、コンピューティング・デバイス１１０の実際の識別子に対応する暗号化された識別子であることができる。
【００５７】
コンピューティング・デバイス１１０のユーザは、カード・トランザクションをマーチャントＡの販売端末デバイス１１５で行うことができる。カード・トランザクション・プロセッサ１６０は当該トランザクションに関連付けられたサードパーティ識別子を決定することができる。カード・トランザクション・プロセッサ１６０は、匿名の第２の識別子を用いて当該サードパーティ識別子を暗号化するかまたは隠蔽する第２の識別子を生成することができる。第２の識別子は当該カード・トランザクションまたはユーザに関連付けられた実際のサードパーティ識別子に対応する暗号化された識別子であることができる。
【００５８】
データ処理システム１２０は、暗号化技術を用いて暗号化されたそれらの各識別子（例えば、第１の識別子および第２の識別子）の間の相関関係を様々なパーティが決定することを可能とするためのブラインド暗号化技術を使用することができる。データ処理システム１２０およびサードパーティ・サーバ１６０（例えば、１つまたは複数のプロセッサを有するコンピューティングシステム）は、コンピューティング・デバイスの対話のログ・データを含む受信された識別子ベクトルを暗号化でき、当該暗号化された識別子ベクトルを交換することができる。幾つかのケースでは、マーチャント位置に対するデータを交換する前に、データ処理システム１２０は店ごとのプライバシ閾値を適用することができる。例えば、データ処理システム１２０は、データ・セット内の識別子またはエントリの数を閾値（例えば、１００、５００、または１０００）または時間間隔上の閾値（例えば、２４時間、４８時間、７２時間、１週間、３０日、または６０日）と比較して、エントリの数が当該閾値以下である場合には当該交換をブロックしてもよい。コンピューティング・デバイスの対話は、例えば、サーバからのオンラインコンテンツの要求、ウェブサイトへの訪問、およびコンピューティング・デバイス識別子認証、または当該コンピューティング・デバイスおよび当該サーバの間の任意の他の活動を含むことができる。交換され暗号化された識別子ベクトルを用いて、ブリッジ・モジュール１４０またはサードパーティ・サーバ１６０は、他の識別子のうちどれがそれらの識別子に対応するかを、マッピング関数を用いて決定し、識別子ごとに識別子キーを生成することができる。
【００５９】
例えば、データ処理システム１２０は第１の識別子ベクトルをサードパーティ・サーバ１６０に送信することができる。第１の識別子ベクトルは１つまたは複数の第１の識別子（例えば、暗号化技術を用いて暗号化された実際の識別子またはユーザ名）、１組の第１のパラメータ、および１組の第２のパラメータを含むことができる。当該１つまたは複数の第１の識別子は１つまたは複数のコンピューティング・デバイス１１０に対応することができる。第１の識別子ベクトルはまた、各第１のパラメータおよび各第２のパラメータの組合せに基づいて第１の識別子および１組のキーの暗号化を含むことができる。第１の識別子は、例えば、特定のコンピューティング・デバイスに関連付けられたデバイス識別子、または、プロフィール、アドレス、またはアカウントに関連付けられたアカウント識別子を含むことができるかまたはそれに対応することができる。当該キーは各第１のパラメータおよび各第２のパラメータの組合せに基づくことができる。データ処理システム１２０は第１のパラメータおよび第２のパラメータに適用されるハッシュ関数を用いて当該キーを生成することができる。第１のパラメータおよび第２のパラメータの各々は、例えば、当該対応する記録されたコンピューティング・デバイス対話の位置および時間を示すログ行エントリの一部であることができる。
【００６０】
データ処理システム１２０は、ネットワーク１０５を介して、第１の識別子ベクトルをサードパーティ・サーバ１６０に送信することができる。サードパーティ・サーバ１６０は暗号化アルゴリズムを用いて第１の識別子ベクトルを暗号化することができる。サードパーティ・サーバ１６０は、当該暗号化された第１の識別子ベクトルをデータ処理システム１２０に送信し戻すことができる。データ処理システム１２０は、当該暗号化された第１の識別子ベクトルをサードパーティ・サーバ１６０から受信し戻すことができる。
【００６１】
さらに、データ処理システム１２０は、サードパーティ・サーバ１６０のログ・データに基づいて第２の識別子ベクトルをサードパーティ・サーバから受信することができる。第２の識別子ベクトルは１つまたは複数の第２の識別子、１組の第３のパラメータ、および１組の第４のパラメータを含むことができる。当該１つまたは複数の第２の識別子は、サードパーティ・サーバ１６０により収集または決定されたグランド・トルース・データに関連付けられた１つまたは複数のトランザクション・カード１２５または他の識別子に対応する暗号化されたサードパーティ識別子に対応することができる。第２の識別子ベクトルはまた、第２の識別子（例えば、実際のサードパーティ識別子の暗号化）および各第３のパラメータおよび各第４のパラメータの組合せに基づく１組のキーを含むことができる。サードパーティ・サーバ１６０により使用される第２の識別子はデータ処理システム１２０により使用される第１の識別子と異なってもよい。サードパーティ・サーバ１６０により適用される暗号化は、データ処理システム１２０により適用された暗号化と異なってもよい。サードパーティ・サーバ１６０により適用される暗号化は、データ処理システム１２０により適用された暗号化と同一または類似であってもよい。サードパーティ・サーバ１６０またはデータ処理システム１２０は使用されている暗号化のタイプを隠蔽してもよい。第３のパラメータは、第１のパラメータと同一のタイプのログ情報に対応することができる。第４のパラメータは第３のパラメータと同一のタイプのログ情報に対応することができる。第３のパラメータおよび第４のパラメータの各々は例えば、対応する記録されたコンピューティング・デバイス対話の位置および時間を指定するログ行エントリを含むことができる。当該位置および時刻情報は粒度または解像度に基づいてバケット化または量子化されることができる。例えば、当該時刻を最も近い１分、３０秒、１０秒、５秒、１秒、または１ミリ秒に丸めることができる。当該位置を、５０メートル半径、１００メートル半径、１０メートル半径、または５メートル半径のような次元を有するタイルまたは地理的領域（例えば、長方形、正方形、または正方形）にマップすることができる。
【００６２】
データ処理システム１２０は、暗号化アルゴリズムをサードパーティ・サーバ１６０から受信された第２の識別子ベクトルに適用することができる。データ処理システム１２０は、第１の識別子ベクトルと第２の識別子ベクトルの間の相関関係またはマッピングを、第１のパラメータおよび第３のパラメータの間のマッチおよび第２のパラメータおよび第４のパラメータの間のマッチに基づいて決定することができる。例えば、第１のパラメータおよび第３のパラメータはユーザ対話に関する位置情報を含み、第２のパラメータおよび第４のパラメータはユーザ対話に関する時刻情報を含む。本例では、データ処理システム１２０は、各パラメータの間のマッチが定義された閾値距離および時間フレームの中にあるとき、当該マッチがあると判定することができる。データ処理システム１２０は、かかるマッチの数が定義された閾値より大きいとき、第１の識別子および第２の識別子は互いに対応する判定することができる。この対応関係を用いて、データ処理システム１２０は、ブリッジを生成するかまたは識別子キーをマッチし、当該キーをデータ・リポジトリ１５５内の地図データ構造２３５に格納することができる。
【００６３】
依然としてブリッジ・モジュール１４０を参照すると、データ処理システム１２０は第１の識別子ベクトルをサードパーティ・サーバ１６０に送信することができる。第１の識別子ベクトルは１つまたは複数のコンピューティング・デバイス１１０、複数の第１のパラメータ、および複数の第２のパラメータに対応する１つまたは複数の第１の識別子を含むことができる。第１の識別子、複数の第１のパラメータ、および複数の第２のパラメータを１つまたは複数のデータベース１５５に格納でき、そこから取得することができる。第１の識別子ベクトルは例えば、インデックス化されたタプル、１次元または多次元の配列、コンテナ、リンクリスト、ツリー、または第１の識別子、複数の第１のパラメータ、および複数の第２のパラメータのようなログされたユーザ対話を格納またはインデックス付けするのに適した任意のデータ構造の形であることができる。第１の識別子は、例えば、暗号化されたアカウント識別子、暗号化されたデバイス識別子、暗号化された電話番号、またはそれらの組合せ、またはコンピューティング・デバイス１１０に関連付けられた任意の他の暗号化された識別子を含むことができる。第１の識別子は例えば、とりわけ、アルファベット文字列、ランダムにまたは準ランダムに生成された数、または文字列の形であることができる。複数の第１のパラメータおよび複数の第２のパラメータはそれぞれ、ネットワーク１０５を介して、１つまたは複数のコンピューティング・デバイス１１０によるデータ処理システム１２０、コンテンツプロバイダコンピューティング・デバイス２２５、またはコンテンツパブリッシャコンピューティング・デバイス２１５との対話のログ・データをカタログまたはインデックス付けすることができる。当該１つまたは複数のクライアントデバイス１２５による対話の当該ログ・データを１つまたは複数のデータベース１５５に格納しそこから取得することができる。複数の第１のパラメータは当該関連付けられた記録された対話の位置識別子を含むことができる。複数の第２のパラメータは当該関連付けられた記録された対話のタイムスタンプを含むことができる。複数の第１のパラメータおよび複数の第２のパラメータは、当該１つまたは複数のクライアントデバイス１２５により対話のログ・データをカタログまたは記録するために使用される他のパラメータまたはデータを含むことができる。数学的に表すと、第１の識別子ベクトルは例えば以下の形であることができる。
【００６４】
【数１】
0006391853.tif 000002
【００６５】
Xは第１の識別子ベクトルであり、IDXは第１の識別子であり、ｐｎはｎ番目の記録された対話に対する第１のパラメータであり、ｑｎはｎ番目の記録された対話に対する第２のパラメータである。例えば、第１のパラメータは記録された対話の位置識別子であることができ、第２のパラメータは記録された対話のタイムスタンプであることができる。さらに、デバイス識別子「x345q$」を有するコンピューティング・デバイス１１０は、２０１５年７月１４日の１５：３４：１１にカリフォルニア州サンノゼからウェブページの要求を送信し、２０１５年７月１５日９：１２：３４にカリフォルニア州フォルソムから別のウェブページに対する別の要求を送信しており、両方の要求はデータ処理システム１２０により１つまたは複数のデータベース１５５で記録される。本例では、IDAは「x345q$」であり、p1は「カリフォルニア州サンノゼ」であり、q1は「２０１５年７月１４日１５：３４：１１」であり、p2は「カリフォルニア州フォルソム」であり、q2は「２０１５年７月１５日９：１２：３４」である。
【００６６】
ブリッジ・モジュール１４０は、複数の第１のパラメータの夫々の値または複数の第２のパラメータの夫々の値に基づいて、複数の第１のパラメータおよび複数の第２のパラメータを複数の第１のカテゴリに分類することができる。ブリッジ・モジュール１４０は、複数の第１のパラメータの第１の量子化に基づいて、複数の第１のパラメータおよび複数の第２のパラメータを複数の第１のカテゴリに分類することができる。ブリッジ・モジュール１４０は、複数の第２のパラメータの第２の量子化に基づいて、複数の第１のパラメータおよび複数の第２のパラメータを複数の第２のカテゴリに分類することができる。第１の量子化は、複数の第１のパラメータのうちどれが当該各第１のカテゴリに分類されるかを定義または規定することができる。第２の量子化は複数の第２のパラメータのうちどれが当該各第２のカテゴリに分類されるかを定義または規定することができる。第１の量子化および第２の量子化を、第１のパラメータおよび第２のパラメータをそれぞれより一般化されたカテゴリに割り当て、分類、または分けるために使用することができる。ブリッジ・モジュール１４０は複数の第１のカテゴリ値および複数の第２のカテゴリ値を生成することができる。複数の第１のカテゴリの各々および複数の第２のカテゴリの各々を、例えば、ランダムに生成された英数字値のようなカテゴリ値またはインデックスに関連付けることができる。以前の例から、第１の量子化が都市によるものであり、第２の量子化が日付によるものである場合、ブリッジ・モジュール１４０は、当該各カテゴリに対する量子化に基づいて、２０１５年７月１４日の１５：３４：１１にカリフォルニア州サンノゼからのウェブページの要求を、２０１５年７月１５日９：１２：３４にカリフォルニア州フォルソムからの他のウェブページの要求と異なるカテゴリに分類することができる。さらに、これらのカテゴリの各々に異なるランダムな英数字値を割り当てることができる。数学的に表すと、第１の識別子ベクトルは例えば以下の形であることができる。
【００６７】
【数２】
0006391853.tif 000003
【００６８】
Xは第１の識別子ベクトルであり、IDXは第１の識別子であり、pnはｎ番目の記録された対話に対する第１のパラメータであり、qnはｎ番目の記録された対話に対する第２のパラメータであり、<…>iは、第１のパラメータpnおよび第２のパラメータqnが第１のパラメータ値または第２のパラメータ値、またはそれらの組合せに基づいて分類されたｉ番目の各カテゴリ値を示す。データ処理システム１２０は、第１の識別子および複数の第１のカテゴリ値または複数の第２のカテゴリ値を含む第１の識別子ベクトルをサードパーティ・サーバ１６０に送信することができる。データ処理システム１２０は、第１の識別子および複数の第１のカテゴリまたは複数の第２のカテゴリを含む第１の識別子ベクトルをサードパーティ・サーバ１６０に送信することができる。
【００６９】
ブリッジ・モジュール１４０は複数の第１のパラメータおよび複数の第２のパラメータの複数の第１の組合せを生成することができる。複数の第１の組合せの各々を、例えば、複数の第１のパラメータの各々および複数の第２のパラメータの各々のハッシュ関数または暗号化関数に基づいて生成することができる。数学的に表すと、位置識別子を第１のパラメータとしタイムスタンプを第２のパラメータとしたハッシュ関数を用いて、第１の識別子ベクトルは例えば以下の形であることができる。
【００７０】
【数３】
0006391853.tif 000004
【００７１】
Xは第１の識別子ベクトルであり、IDXは第１の識別子であり、lnはｎ番目の記録された対話に対する位置識別子であり、tnはｎ番目の記録された対話に対するタイムスタンプであり、<…>iは、当該位置識別子lnおよび当該タイムスタンプtnが当該位置識別子または当該タイムスタンプに基づいて分類されたｉ番目の各カテゴリ値を示し、h(・)は当該ハッシュ関数である。データ処理システム１２０は第１の識別子および複数の第１の組合せを含む第１の識別子ベクトルをサードパーティ・サーバ１６０に送信することができる。
【００７２】
ブリッジ・モジュール１４０は、第１の暗号化に基づいて、第１の識別子、複数の第１のパラメータ、および複数の第２のパラメータを第１の暗号化に基づいて暗号化することができる。ブリッジ・モジュール１４０は第１の識別子、複数の第１のパラメータおよび複数の第１の組合せを暗号化することができる。幾つかのケースでは、ブリッジ・モジュール１４０は、第１の暗号化モジュール１４５を呼び出して、第１の暗号化に基づいて、当該第１の識別子、複数の第１のパラメータ、および複数の第２のパラメータを暗号化することができる。ブリッジ・モジュール１４０は、第１の識別子、複数の第１のパラメータ、および複数の第２のパラメータを暗号化のために第１の暗号化モジュール１４５に提供または送信することができる。幾つかのケースでは、ブリッジ・モジュール１４０は、第１の暗号化モジュール１４５を起動して、第１の暗号化に基づいて第１の識別子、複数の第１のパラメータ、および複数の第２のパラメータを暗号化するか、または、第１の暗号化モジュール１４５にそうさせることができる。
【００７３】
データ処理システム１２０は、第１の暗号化または１つまたは複数の暗号化アルゴリズムを用いてデータを暗号化するように設計され構成された第１の暗号化モジュール１４０を含むことができる。例えば、第１の暗号化は、非対称暗号化アルゴリズム、暗号化ハッシュ関数、指紋、または交換可能でありうる任意の他の暗号化アルゴリズムを含むことができる。第１の暗号化モジュール１４５はＲＳＡ暗号化システム技術を使用でき、この場合、当該暗号化キーは全てのコンピューティング・デバイスに知られていてもよく、秘密に保たれ得る復号鍵と異なってもよい。本例では、当該非対称性が２つの大きな素数の積を因数分解する困難性に基づいてもよい。数学的に表すと、位置識別子を第１のパラメータとし、タイムスタンプを第２のパラメータとしたハッシュ関数を用い、第１の暗号化に基づいて暗号化された第１の識別子ベクトルは例えば以下の形であることができる。
【００７４】
【数４】
0006391853.tif 000005
【００７５】
【数５】
0006391853.tif 000006
【００７６】
は暗号化された第１の識別子ベクトルであり、Xは第１の識別子ベクトルであり、Aは第１の暗号化行列であり、IDXは第１の識別子であり、lnはｎ番目の記録された対話に対する位置識別子であり、tnはｎ番目の記録された対話に対するタイムスタンプであり、<…>iは位置識別子lnおよびタイムスタンプtnが分類されたｉ番目の各カテゴリ値を示し、h(・は当該ハッシュ関数である。本例では、第１の暗号化行列Aを用いて、第１の暗号化モジュール１４５は、第１の識別子および複数の第１のカテゴリの各カテゴリ値および複数の第２のカテゴリの各カテゴリ値の各々または一部に対して同一のまたは異なる暗号化アルゴリズムを適用することができる。データ処理システム１２０は、第１の暗号化に基づいて第１の識別子、複数の第１のパラメータ、および複数の第２のパラメータを暗号化したことに引き続いてまたはそれに応答して、第１の暗号化に基づいて暗号化された第１の識別子ベクトルをサードパーティ・サーバ１６０に送信することができる。
【００７７】
データ処理システム１２０は。サードパーティ・サーバ１６０から、サードパーティ・サーバ１６０に関連付けられたサードパーティ暗号化に基づいて暗号化された第１の識別子ベクトルを受信することができる。サードパーティ・サーバ１６０は、第１の識別子ベクトルをデータ処理システム１２０から受信したことに応答して、第１の識別子ベクトルを暗号化していてもよい。例えば、サードパーティ・サーバ１６０による第１の識別子ベクトルの受信により、サードパーティ・サーバ１６０またはサードパーティ・サーバ１６０に関連付けられた１つまたは複数のエンティティまたはデバイスに、当該サードパーティの暗号化に基づいて当該受信された第１の識別子ベクトルを暗号化させるかまたはそのようにトリガしてもよい。第１の識別子ベクトルをサードパーティ・サーバ１６０に送信することに続いてまたはそれと同時に、データ処理システム１２０はまた、第１の識別子ベクトルを暗号化するための要求をサードパーティ・サーバ１６０に送信することができる。第１の識別子ベクトルを暗号化するための当該要求はまた、サードパーティ・サーバ１６０またはサードパーティ・サーバ１６０に関連付けられた１つまたは複数のエンティティに、当該サードパーティの暗号化に基づいて第１の識別子ベクトルを暗号化させるかまたはそのようにトリガすることができる。当該サードパーティ暗号化の例は、非対称暗号化アルゴリズム、暗号化ハッシュ関数、指紋、または交換可能でありうる任意の他の暗号化アルゴリズムを含むことができる。数学的に表すと、位置識別子を第１のパラメータとし、タイムスタンプを第２のパラメータとしたのハッシュ関数を用いて、当該サードパーティの暗号化に基づいてさらに暗号化された第１の識別子ベクトルは例えば以下の形であることができる。
【００７８】
【数６】
0006391853.tif 000007
【００７９】
【数７】
0006391853.tif 000008
【００８０】
は第１の暗号化およびサードパーティ暗号化により二重に暗号化された第１の識別子ベクトルであり、
【００８１】
【数８】
0006391853.tif 000009
【００８２】
は第１の暗号化により暗号化された第１の識別子ベクトルであり、Xは第１の識別子ベクトルであり、Bはサードパーティ暗号化行列であり、Aは第１の暗号化行列であり、IDX は第１の識別子であり、lnはｎ番目の記録された対話に対する位置識別子であり、tnはｎ番目の記録された対話に対するタイムスタンプであり、<…>iは、当該位置識別子lnおよび当該タイムスタンプtnが当該位置識別子または当該タイムスタンプに基づいて分類されたｉ番目の各カテゴリ値を示し、h(・)はハッシュ関数である。
【００８３】
データ処理システム１２０はサードパーティ・サーバ１６０から、サードパーティ・サーバ１６０に関連付けられたサードパーティ暗号化に基づいて暗号化された第２の識別子ベクトルを受信することができる。第２の識別子ベクトルは第２の識別子、複数の第３のパラメータ、および複数の第４のパラメータを含むことができる。第２の識別子、複数の第３のパラメータ、および複数の第４のパラメータを、サードパーティ・サーバ１６０にあるかまたはそれに関連付けられた１つまたは複数のデータベースに格納しそこから取得することができる。複数の第３のパラメータおよび複数の第１のパラメータは第１のタイプのパラメータであることができる。複数の第４のパラメータおよび複数の第２のパラメータは第２のタイプのパラメータであることができる。例えば、複数の第１のパラメータおよび複数の第２のパラメータがそれぞれ、１つまたは複数のデータベース１５５により記録された対話の位置および時間を識別する位置識別子およびタイムスタンプであった場合、複数の第３のパラメータおよび複数の第４のパラメータはまた、それぞれ、サードパーティ・サーバ１６０により記録された対話の位置識別子およびタイムスタンプであることができる。第２の識別子ベクトルは例えば、インデックス化されたタプル、１次元または多次元の配列、コンテナ、リンクリスト、ツリー、または第２の識別子、複数の第３のパラメータ、および複数の第４のパラメータのような記録されたユーザの対話を格納またはインデックス付けするのに適した任意のデータ構造の形であることができる。第２の識別子は、例えば、アカウント識別子、ユーザ名、カード識別子、デバイス識別子、電話番号、またはそれらの組合せ、または特定のユーザまたはコンピューティング・デバイス１１０を識別するための任意の他の識別子を含むことができる。幾つかのケースでは、第２の識別子は、例えば、暗号化されたアカウント識別子、暗号化されたユーザ名、暗号化されたカード識別子、暗号化されたデバイス識別子、暗号化された電話番号、またはそれらの組合せ、または特定のユーザまたはコンピューティング・デバイス１１０を識別するための任意の他の識別子を含むことができる。複数の第３のパラメータおよび複数の第４のパラメータはそれぞれ、対話のログ・データを、１つまたは複数のコンピューティング・デバイス１１０により、ネットワーク１０５を介してサードパーティ・サーバ１６０、コンテンツプロバイダコンピューティング・デバイス２２５、またはコンテンツパブリッシャコンピューティング・デバイス２１５でカタログまたはインデックス付けすることができる。１つまたは複数のコンピューティング・デバイス１１０による対話のログ・データを、サードパーティ・サーバ１６０にあるかまたはそれに関連付けられた１つまたは複数のデータベースに格納しそこから取得することができる。複数の第３のパラメータは当該関連付けられた記録された対話の位置識別子を含むことができる。複数の第４のパラメータは当該関連付けられた対話のタイムスタンプを含むことができる。複数の第３のパラメータおよび複数の第４のパラメータは、１つまたは複数のコンピューティング・デバイス１１０による対話のログ・データをカタログまたは記録するために使用される他のパラメータまたはデータを含むことができる。
【００８４】
データ処理システム１２０は第２の識別子ベクトルの要求をサードパーティ・サーバ１６０に送信することができる。サードパーティ・サーバ１６０への第２の識別子ベクトルの要求の受信は、サードパーティ・サーバ１６０に、第２の識別子ベクトルを暗号化して、当該暗号化された第２の識別子ベクトルをデータ処理システム１２０に送信させるかまたはそのようにトリガすることができる。サードパーティ・サーバ１６０による第１の識別子ベクトルの受信はまた、サードパーティ・サーバ１６０に、第２の識別子ベクトルを暗号化して、当該暗号化された第２の識別子ベクトルをデータ処理システム１２０に送信させるかまたはそのようにトリガすることができる。データ処理システム１２０はまた、第２の識別子ベクトルまたは第１の識別子ベクトルに対する要求をサードパーティ・サーバ１６０に送信する前に、サードパーティ・サーバ１６０に関連付けられたサードパーティ暗号化に基づいて暗号化された第２の識別子ベクトルをサードパーティ・サーバ１６０から受信することができる。当該サードパーティ暗号化の例は、非対称暗号化アルゴリズム、暗号化ハッシュ関数、指紋、または交換可能でありうる任意の他の暗号化アルゴリズムを含むことができる。数学的に表すと、当該サードパーティの暗号化に基づいて暗号化された第２の識別子ベクトルは例えば以下の形であることができる。
【００８５】
【数９】
0006391853.tif 000010
【００８６】
【数１０】
0006391853.tif 000011
【００８７】
は暗号化された第２の識別子ベクトルであり、Yは第２の識別子ベクトルであり、Bはサードパーティ暗号化行列であり、IDYは第２の識別子であり、rmはｍ番目の記録された対話に対する第３のパラメータであり、smはｍ番目の記録された対話に対する第４のパラメータである。サードパーティ暗号化行列Bを用いると、異なる暗号化アルゴリズムを、暗号化された第２の識別子、複数の第３のパラメータ、および複数の第４のパラメータの各々または幾つかに適用してもよい。例えば、第３のパラメータは記録された対話の位置識別子であることができ、第４のパラメータは記録された対話のタイムスタンプであることができる。さらに、アカウント識別子「cr3a1q@例_mail.com」に関連付けられた１つまたは複数のコンピューティング・デバイス１１０は、カリフォルニア州サンノゼに配置された物理的な店（例えば、マーチャント１７０Ａ）から２０１５年７月１５日８：５０：０２に購入を行い、カリフォルニア州フォルソムから２０１５年７月１５日９：１９：５９にウェブページからユーザのコンピューティング・デバイス１１０で別の購入注文を行っている可能性があり、両方の購入注文はサードパーティ・サーバ１６０にある１つまたは複数のデータベースに記録される。本例では、IDYは「cr3a1q@例_mail.com」であることができ、r1は「カリフォルニア州サンノゼ」であり、s1は「２０１５年７月１５日８：５０：０２」であり、r2は「カリフォルニア州フォルソム」であり、s2は「２０１５年７月１５日９：１９：５９」である。
【００８８】
データ処理システム１２０はサードパーティ・サーバ１６０から、第２の識別子および複数の第３のカテゴリ値または複数の第４のカテゴリ値を含む第２の識別子ベクトルを受信することができる。複数の第３のカテゴリ値または複数の第４のカテゴリ値は複数の第３のカテゴリおよび複数の第４のカテゴリに基づくことができる。複数の第３のパラメータおよび複数の第４のパラメータを、複数の第３のパラメータの夫々の値または複数の第４のパラメータの夫々の値、またはそれらの組合せに基づいて、複数の第３のカテゴリに割り当て、分類し、または分けることができる。複数の第３のパラメータおよび複数の第４のパラメータを、複数の第３のパラメータの第３の量子化に基づいて複数の第３のカテゴリに割り当て、分類し、または分けることができる。複数の第３のパラメータおよび複数の第４のパラメータを、複数の第４のパラメータの第４の量子化に基づいて複数の第４のカテゴリに割り当て、分類し、または分けることができる。第３の量子化はどの複数の第３のパラメータが当該各第３のカテゴリに分類されるかを定義または規定することができる。第４の量子化はどの複数の第４のパラメータが当該各第４のカテゴリに分類されるかを定義または規定することができる。複数の第３のカテゴリの各々および複数の第４のカテゴリの各々を、例えば、ランダムに生成された英数字値のようなカテゴリ値またはインデックスに関連付けることができる。以前の例を用いて、第４の量子化が、７月１５に１２：００：００より前に行われた全ての購入注文が単一のカテゴリに分類されるべきであったと規定した場合、２０１５年７月１５日の８：５０：０２に行われた当該購入注文および２０１５年７月１５日の９：１９：５９に行われた購入注文を同一のカテゴリに分類でき、同一のカテゴリインデックスに関連付けることができる。数学的に表すと、位置識別子を第３のパラメータとして用い、タイムスタンプを第４のパラメータとして用いると、第２の識別子ベクトルは例えば以下の形であることができる。
【００８９】
【数１１】
0006391853.tif 000012
【００９０】
【数１２】
0006391853.tif 000013
【００９１】
は暗号化された第２の識別子ベクトルであり、Yは第２の識別子ベクトルであり、Bは当該サードパーティ暗号化行列であり、IDYは第２の識別子であり、rmはｍ番目の記録された対話に対する第３のパラメータであり、smはｍ番目の記録された対話に対する第４のパラメータであり、<…>jは、第３のパラメータrmおよび第４のパラメータsmが第３のパラメータまたは第４のパラメータの当該値またはそれらの組合せに基づいて分類されるｊ番目の各カテゴリ値を示す。
【００９２】
データ処理システム１２０はサードパーティ・サーバ１６０から第２の識別子および複数の第３のパラメータおよび複数の第４のパラメータの複数の第２の組合せを含む第２の識別子ベクトルを受信することができる。複数の第２の組合せの各々を、例えば、複数の第１のパラメータの各々および複数の第２のパラメータの各々のハッシュ関数または暗号化関数に基づいて生成することができる。数学的に表すと、位置識別子を第３のパラメータとし、タイムスタンプを第４のパラメータとしたのハッシュ関数を用いて、第２の識別子ベクトルは例えば以下の形であることができる。
【００９３】
【数１３】
0006391853.tif 000014
【００９４】
【数１４】
0006391853.tif 000015
【００９５】
は暗号化された第２の識別子ベクトルであり、Yは第２の識別子ベクトルであり、IDYは第２の識別子であり、Bはサードパーティ暗号化行列であり、λmはｍ番目の記録された対話に対する当該位置識別子であり、τmはｍ番目の記録された対話に対するタイムスタンプであり、<…>jは第３のパラメータλmおよび当該タイムスタンプτmが当該位置識別子または当該タイムスタンプの何れかまたはそれらの組合せに基づいて分類されるｊ番目の各カテゴリ値を示し、χ(・)はハッシュ関数である。サードパーティ・サーバ１６０により適用される当該ハッシュ関数、χ(・)は当該暗号化モジュール１４０により適用されるハッシュ関数h(・)と同一であるかまたは異なることができる。データ処理システム１２０は、第２の識別子および複数の第２の組合せを含む第２の識別子ベクトルをサードパーティ・サーバ１６０から受信することができる。
【００９６】
第１の暗号化モジュール１４５は、第２の識別子ベクトルをサードパーティ・サーバ１６０から受信したことに応答して、第１の暗号化に基づいて第２の識別子ベクトルを暗号化することができる。第１の暗号化モジュール１４５は第１の暗号化に基づいて第２の識別子、複数の第３のパラメータ、および複数の第４のパラメータを暗号化することができる。第１の暗号化モジュール１４５は、第１の暗号化モジュール１４５が第１の識別子、複数の第１のパラメータ、および複数の第２のパラメータを暗号化するために使用される同一の暗号化技術に基づいて、第２の識別子、複数の第３のパラメータ、および複数の第４のパラメータを暗号化することができる。数学的に表すと、位置識別子を第３のパラメータとし、タイムスタンプを第４のパラメータとしたのハッシュ関数を用いて、第１の暗号化に基づいてさらに暗号化された第２の識別子ベクトルは例えば以下の形であることができる。
【００９７】
【数１５】
0006391853.tif 000016
【００９８】
【数１６】
0006391853.tif 000017
【００９９】
は第１の暗号化およびサードパーティ暗号化により二重に暗号化された第２の識別子ベクトルであり、
【０１００】
【数１７】
0006391853.tif 000018
【０１０１】
は第１の暗号化により暗号化された第２の識別子ベクトルであり、Yは第２の識別子ベクトルであり、Bはサードパーティ暗号化行列であり、Aは第１の暗号化行列であり、IDYは第２の識別子であり、λmはｍ番目の記録された対話に対する位置識別子であり、τm はｍ番目の記録された対話に対するタイムスタンプであり、<…>jは、第３のパラメータλmおよび当該タイムスタンプτmは当該位置識別子または当該タイムスタンプの何れかまたはそれらの組合せに基づいて分類されるｊ番目の各カテゴリ値を示し、χ(・)はハッシュ関数である。
【０１０２】
ブリッジ・モジュール１４０は、複数の第１のパラメータの一部および複数の第３のパラメータの一部の間のマッチおよび複数の第２のパラメータおよび複数の第４のパラメータの一部のうち幾つかの間のマッチに基づいて、第１の識別子ベクトルおよび第２の識別子ベクトルの間の相関関係カウントを決定することができる。ブリッジ・モジュール１４０は、複数の第１のカテゴリおよび複数の第２のカテゴリ対複数の第３のカテゴリおよび複数の第４のカテゴリの間のマッチに基づいて、当該複数のカテゴリの各カテゴリに対する相関関係カウントを決定することができる。マッチは、アイデンティティ、類似性、相関関係、または複数の第１のパラメータの一部の間および複数の第３のパラメータの一部および複数の第２のパラメータの一部および複数の第４のパラメータの一部の間の他の対応関係を示すことができる。例えば、第１の識別子ベクトルは、位置パラメータを第１のパラメータとして、タイムスタンプを、カリフォルニア州サンノゼから２０１５年７月１５日の１４：００：００から１６：００：００の間に発生するウェブサイト要求のカテゴリに分類された第２のパラメータとして含むことができる。さらに、第２の識別子ベクトルは、位置パラメータを第３のパラメータとして、タイムスタンプを、カリフォルニア州サンノゼから２０１５年７月１５日の１４：００：００から１６：００：００の間に発生した購入注文のカテゴリに分類された第４のパラメータとして含むことができる。本例では、第１の識別子ベクトルおよび第２の識別子ベクトルの両方は、同一の第１の暗号化および同一のサードパーティ暗号化に基づいて二重に暗号化されていることができる。第１の暗号化およびサードパーティ暗号化は両方とも交換可能であるので、ブリッジ・モジュール１４０は、当該暗号化された第１のパラメータおよび当該暗号化された第３のパラメータの間のマッチおよび当該暗号化された第２のパラメータおよび暗号化された第４のパラメータの間のマッチを、当該カテゴリからの暗号化の同一のマッチに基づいて決定することができる。当該複数の暗号化された第１のパラメータおよび当該複数の暗号化された第３のパラメータの間のマッチおよび当該複数の暗号化された第２のパラメータおよび当該複数の暗号化された第４のパラメータの間のマッチが存在すると判定したことに応答して、ブリッジ・モジュール１４０は当該相関関係カウントを増大させることができる。
【０１０３】
ブリッジ・モジュール１４０は、複数の第１のパラメータの一部が複数の第３のパラメータの第１のマージン内にあることおよび複数の第２のパラメータの幾つかが複数の第４のパラメータの第２のマージン内にあることに基づいて、当該相関関係カウントを決定することができる。ブリッジ・モジュール１４０は、複数の第１のカテゴリ値の幾つかが複数の第３のカテゴリ値のカテゴリマージン内にあることおよび複数の第２のカテゴリ値の幾つかが複数の第４のパラメータの第２のマージン内にあることに基づいて、当該相関関係カウントを決定することができる。ブリッジ・モジュール１４０は、複数の第１のパラメータの幾つかが複数の第３のパラメータの一部の閾値距離内にあることおよび複数の第２のパラメータの一部が時間ウィンドウを有することに基づいて、当該相関関係カウントを決定することができる。例えば、第１の識別子ベクトルは、位置パラメータを第１のパラメータとして、タイムスタンプを、２０１５年７月１５日１４：００：００から１６：００：００の間に郵便番号９５６３０から発生するウェブサイト要求のカテゴリに分類された第２のパラメータとして含むことができる。さらに、第２の識別子ベクトルは、位置パラメータを第３のパラメータとして、タイムスタンプを、２０１５年７月１５日に１６：００：００から１８：００：００の間に郵便番号９５７６３から発生する購入注文のカテゴリに分類された第４のパラメータとして含むことができる。第１の識別子ベクトルおよび第２の識別子ベクトルの各カテゴリインデックスは、第１の暗号化および当該サードパーティ暗号化により二重に暗号化されていることができる。本例では、当該閾値距離を隣接する郵便番号として指定でき、当該タイムスタンプを連続的な時間フレームとして指定することができる。ブリッジ・モジュール１４０は、郵便番号のリストを１つまたは複数のデータベース１５５からアクセスし、郵便番号９５６３０および郵便番号９５７６３が互いに隣接すると判定することができる。ブリッジ・モジュール１４０は、当該時間フレーム１４：００：００乃至１６：００：００が１６：００、００乃至１８：００：００と連続すると判定することができる。これらの判定に応答して、当該マッピング・モジュール１３５は、第１のパラメータおよび第３のパラメータの間のマッチおよび第２のパラメータおよび第４のパラメータの間のマッチがあると判定し、当該各カテゴリに対する当該相関関係カウントを増大させることができる。
【０１０４】
ブリッジ・モジュール１４０は、第１の識別子ベクトルおよび第２の識別子ベクトルの間の相関関係カウントが決定された閾値より大きいことに基づいて、第１の識別子が第２の識別子に対応すると判定することができる。当該決定された閾値はとりわけ整数、分数、またはパーセントに基づくことができる。当該決定された閾値はまた、とりわけ一定、可変であるか、またはランダムに生成されることができる。ブリッジ・モジュール１４０は当該決定された閾値に基づいて複数の第１のパラメータ、複数の第２のパラメータ、複数の第３のパラメータ、および複数の第４のパラメータの長さを決定することができる。例えば、複数の第１のパラメータおよび複数の第２のパラメータの長さはそれぞれ１５、０００であることができる。さらに、複数の第３のパラメータおよび複数の第４のパラメータの長さはそれぞれ３、０００であることができる。本例では、ブリッジ・モジュール１４０は、複数の第１のパラメータおよび複数の第２のパラメータの長さ対複数の第３のパラメータおよび複数の第４のパラメータの長さの比率を計算することができる。ブリッジ・モジュール１４０は次いで、当該長さの間の比率の分数倍因子に基づいて相関関係カウントに対する決定された閾値を決定することができる。本例では、ブリッジ・モジュール１４０は次いで、第１の識別子（例えば、「x345q$」）は当該相関関係カウントが当該決定された閾値より大きいことに基づいて、第２の識別子（例えば、「cr3a1q@例_mail.com」）に対応すると判定することができる。
【０１０５】
ブリッジ・モジュール１４０は、第１の識別子が第２の識別子に対応すると判定したことに応答して第１の識別子および第２の識別子の両方に対する１つの識別子キーを生成することができる。当該１つの識別子キーは例えば、とりわけアルファベット文字列、ランダムに生成された数、または文字列の形であることができる。当該１つの識別子キーはデータ処理システム１２０のデータベースリポジトリ１５５に格納された第１の識別子を含むことができる。例えば、第１の識別子が電子メールアドレスのようなアカウント識別子であった場合、ブリッジ・モジュール１４０は当該電子メールアドレスを当該１つの識別子キーとして設定することができる。当該識別子キーをデータ・リポジトリ１５５のマップデータ構造２３５に格納することができる。
【０１０６】
したがって、ブリッジ・モジュール１４０は、当該識別子キーに基づくマッピング関数を用いて、第１の識別子を第２の識別子にマップすることができる。データ処理システム１２０は、特定のサードパーティ・サーバ１６０またはカード・トランザクション・プロセッサに対するマッピング関数および識別子キーをデータベース１５５に格納することができる。ブリッジ・モジュール１４０は、対応するカード・トランザクション・プロセッサ１６０に対するマッピング関数および識別子キーを選択し、第１の識別子をカード・トランザクション・プロセッサ１６０により使用される第２の識別子にマップすることができる。
【０１０７】
ブリッジ・モジュール１４０は当該マッピング関数を使用して、データ処理システム１２０により使用される第１の識別子をカード・トランザクション・プロセッサ１６０により使用される第２の識別子にマップすることができる。ブリッジ・モジュール１４０は、表１に示すように第２の識別子を含む、位置エンジン１３５により行われた位置判定を有するデータ構造を生成することができる。
【０１０８】
【表１】
0006391853.tif 000019
【０１０９】
表１に示すように、位置エンジン１３５は位置判定を行い、当該位置判定を第１の識別子に関連づける。当該位置判定は位置（例えば、Location_A）およびタイムスタンプ（例えば、Time_1）を含むことができる。当該位置はバケット化または量子化された位置であることができる。当該タイムスタンプはバケット化または量子化されたタイムスタンプであることができる。ブリッジ・モジュール１４０は当該マッピング関数を使用して、第１の識別子を第２の識別子にマップすることができる。ブリッジ・モジュール１４０は第２の識別子にマップされた位置判定を生成し、または、第２の識別子にマップされた位置判定をデータ・リポジトリ１５５に格納することができる。幾つかのケースでは、ブリッジ・モジュール１４０は第２の識別子を含めるために当該位置データ構造を更新する。幾つかのケースでは、ブリッジ・モジュール１４０は第１の識別子を第２の識別子で置き換える。
【０１１０】
第１の暗号化モジュール１４５はマップされた第２の識別子を有する１つまたは複数の位置判定を取り出すことができる。第１の暗号化モジュール１４５は位置に基づいて検索を実施することで位置判定を取り出すことができる。例えば、第１の暗号化モジュール１４５は、最後の３０日に対応するかまたは２０１５年１１月１日および２０１５年１２月３１日の間にあるタイムスタンプを有するマーチャント１７０Ａに対応する全ての位置判定に対する検索をデータ・リポジトリ１５５内で実施することができる。別の例では、第１の暗号化モジュール１４５は、最後の３０日に対応するかまたは２０１５年１１月１日および２０１５年１２月３１日の間にあるタイムスタンプを有するマーチャント１７０Ａ乃至Ｎに対応する全ての位置判定に対する検索をデータ・リポジトリ１５５内で実施することができる。
【０１１１】
第１の暗号化モジュール１４５は、第２の識別子および各位置判定のタイムスタンプから形成されたタプルに適用される第１のハッシュ関数を用いて位置判定ごとの第１のハッシュ値を決定することができる。幾つかのケースでは、第１の暗号化モジュール１４５は、各位置判定の第２の識別子、タイムスタンプ、および位置から形成されたタプルに適用される第１のハッシュ関数を用いて位置判定ごとの第１のハッシュ値を決定することができる。第１の暗号化モジュール１４５は、単一のハッシュ値を生成するために、第１のハッシュ関数を当該１つまたは複数のフィールドに適用することができる。幾つかのケースでは、第１の暗号化モジュール１４５は、第１の暗号化プロトコルを用いて位置判定ごとの第１のハッシュ値を暗号化して第１の暗号化されたデータ・セットを生成することができる。
【０１１２】
【表２】
0006391853.tif 000020
【０１１３】
表２は第１の暗号化モジュール１４５が、第２の識別子、タイムスタンプまたは位置から形成されたタプルを用いて位置判定ごとにハッシュ値を生成することを示す。第１の暗号化モジュール１４５は次いで、表３に示すように暗号化されたデータ・セットを形成するために当該ハッシュ値を暗号化することができる。
【０１１４】
【表３】
0006391853.tif 000021
【０１１５】
表３は、第１の暗号化モジュール１４５が、第１の暗号化プロトコル（例えば、Ｇ（ｘ））を用いてハッシュ値を暗号化して、暗号化されたハッシュ値を生成することを示す。第１の暗号化プロトコルは交換可能暗号化プロトコルを含むことができる。第１の暗号化モジュール１４５は、表３の第２のカラムで示された暗号化されたハッシュ値を用いて第１の暗号化されたデータ・セットを形成することができる。
【０１１６】
第１の暗号化モジュール１４５は第１の暗号化されたデータ・セットを格納または送信することができる。第１の暗号化モジュール１４５は、第１の暗号化されたデータ・セットを後の処理または使用のためにデータ・リポジトリ１５５に格納することができる。データ処理システム１２０はネットワーク１０５を介して第１の暗号化されたデータ・セットを送信することができる。例えば、データ処理システム１２０は、コンピュータネットワーク１０５を介して、第１の暗号化されたデータ・セットをサードパーティ・サーバ１６０に送信するように設計され構成された通信インタフェース１３０を含むことができる。サードパーティ・サーバ１６０は、マーチャントにある１つまたは複数の販売端末デバイスを介して行われた電子トランザクションを処理してもよく、または、サードパーティ・サーバ１６０は、販売端末デバイスを介して行われた当該電子トランザクションを処理したカードプロセッサに関連付けられてもよい。
【０１１７】
通信インタフェース１３０は、またはネットワークカードネットワーク１０５および記コンテンツプロバイダ２２５、コンテンツパブリッシャ２１５、コンピューティング・デバイス１１０またはサードパーティ・サーバ１６０の１つまたは複数と通信するように構成された１つまたは複数の通信ポート、ネットワークポート、ネットワークインタフェースを含むことができる。通信インタフェース１３０は、ネットワーク１０５を介してサードパーティ・サーバ１６０とのセキュア通信チャネルを確立することができる。通信インタフェース１３０はセキュアTCP/IP通信チャネルを確立することができる。通信インタフェース１３０は認証証明書を用いてセキュア通信チャネルを確立することができる。通信インタフェース１３０は、第１の暗号化されたデータ・セットをサードパーティ・サーバにプッシュ、送信、または提供することができる。幾つかのケースでは、データ処理システム１２０は（例えば、通信インタフェース１３０を介して）、第１の暗号化されたデータ・セットをデータ・リポジトリ１５５からプルするようにサードパーティ・サーバ１６０に指示することができる。
【０１１８】
サードパーティ・サーバ１６０は第２の暗号化されたデータ・セットを生成することができる。サードパーティ・サーバ１６０は（例えば、第２の暗号化モジュール１６５を介して）第２の暗号化されたデータ・セットを生成することができる。第２の暗号化されたデータ・セットは、データ処理システム１２０により生成された第１の暗号化されたデータ・セットと同様な１つまたは複数のフィールドを含むことができる。例えば、サードパーティ・サーバ１６０は、サードパーティ・サーバ１６０のデータベースから、サードパーティ・サーバ１６０またはサードパーティ・サーバ１６０に関連付けられたサーバにより処理された電子トランザクションに関する情報を取り出すことができる。当該電子トランザクションを表４に示すようにデータ・レコードに格納することができる。各データ・レコードは第２の識別子、位置、またはタイムスタンプを有することができる。サードパーティ・サーバ１６０は、第２の識別子、位置、およびタイムスタンプを含むタプルに第２のハッシュ関数を適用することでハッシュ値を生成することができる。第２のハッシュ関数は、第１の暗号化されたデータ・セットに含まれるハッシュ値を生成するためにデータ処理システム１２０により使用される第１のハッシュ関数と同一であることができる。サードパーティ・サーバ１６０は、第２の暗号化プロトコル（例えば、Ｔ（ｘ））を用いて当該ハッシュ値を暗号化することで第２の暗号化されたデータ・セットを生成することができる。第２の暗号化プロトコルは第１の暗号化プロトコルと異なることができる。第２の暗号化プロトコルは交換可能であることができる。したがって、当該ハッシュ値を生成するためにデータ処理システム１２０およびサードパーティ・サーバ１６０により使用されるハッシュ関数は一貫することができ、データ処理システム１２０およびサードパーティ・サーバ１６０によりハッシュ値に適用される暗号化プロトコルは異なってもよい。
【０１１９】
【表４】
0006391853.tif 000022
【０１２０】
表４は、サードパーティ・サーバ１６０により維持または管理される電子トランザクション・データ・レコードを示す。当該電子トランザクション・レコードは第２の識別子フィールド、位置フィールド、およびタイムスタンプフィールドを含む。サードパーティ・サーバ１６０は、カラムに示すように、レコードごとにこれらのフィールドの値からハッシュ値を生成することができる。サードパーティ・サーバ１６０は、同一のまたは異なるハッシュ関数を使用して当該ハッシュ値を生成することができる。サードパーティ・サーバ１６０は次いで、第２の暗号化プロトコルを用いてカラム４内のハッシュ値を暗号化することで第２の暗号化されたデータ・セットを生成することができる。当該暗号化されたハッシュ値が表４のカラム５に例示されている。サードパーティ・サーバ１６０は、カラム５に示した当該暗号化されたハッシュ値から第２の暗号化されたデータ・セットを生成することができる。
【０１２１】
通信インタフェース１３０は、サードパーティ・サーバ１６０から、当該電子トランザクションに対する第２の暗号化モジュールにより生成された第２のハッシュ値を含む第２の暗号化されたデータ・セットを受信することができる。通信インタフェース１３０は、第２の暗号化されたデータ・セットを第１の暗号化モジュール１４５に転送または提供することができる。第１の暗号化モジュール１４５は、第２の暗号化されたデータ・セットを暗号化して、第１の二重暗号化されたデータ・セットを生成することができる。当該二重暗号化は、サードパーティ・サーバ１６０およびデータ処理システム１２０のような２つの異なるパーティにより暗号化されているデータ・セットを指すことができる。第１の暗号化モジュール１４５は、第１の暗号化されたデータ・セットを暗号化するために使用された第１の暗号化プロトコル（例えば、Ｇ（ｘ））を用いて第２の暗号化されたデータ・セットを暗号化することができる。したがって、第１の暗号化されたデータ・セットは、第１の二重暗号化されたデータ・セット＝Ｇ（第２の暗号化されたデータ・セット）＝Ｇ（Ｔ（ハッシュ値））＝Ｇ（Ｔ（ｈ（第２の識別子、位置、タイムスタンプ）））であることができる。
【０１２２】
サードパーティ・サーバ１６０はまた（例えば、第２の暗号化モジュール１６５を介して）、二重暗号化されたデータ・セットを生成することができる。例えば、サードパーティ・サーバ１６０は、第２の暗号化プロトコル（例えば、Ｔ（ｘ））を用いてデータ処理システム１２０から受信された第１の暗号化されたデータ・セットを暗号化して、第２の二重暗号化されたデータ・セットを第２の二重暗号化されたデータ・セット＝Ｔ（第１の暗号化されたデータ・セット）＝Ｔ（Ｇ（ハッシュ値））＝Ｔ（Ｇ（ｈ（第２の識別子、位置、タイムスタンプ）））のように生成することができる。サードパーティ・サーバ１６０は第２の二重暗号化されたデータ・セットをデータ処理システム１２０に提供することができる。
【０１２３】
データ処理システム１２０は（例えば、通信インタフェース１３０を介して）、サードパーティ・サーバ１６０からネットワーク１０５を介して、第２の二重暗号化されたデータ・セットを受信することができる。データ処理システム１２０は、さらなる処理のために第２の二重暗号化されたデータ・セットをデータ・リポジトリ１５５に格納することができる。表５は第１の二重暗号化されたデータ・セットおよび第２の二重暗号化されたデータ・セットを示す。
【０１２４】
【表５】
0006391853.tif 000023
【０１２５】
データ処理システム１２０は、第１の二重暗号化されたデータ・セットを処理し、分析し、または第１の二重暗号化されたデータ・セットを第２の二重暗号化されたデータ・セットと比較するように設計されたチューナ１５０を含むことができる。チューナ１６０は、第１の二重暗号化されたデータ・セットおよび第２の二重暗号化されたデータ・セットを処理して、精度メトリックおよびリコール・メトリックのような１つまたは複数のメトリックを決定することができる。チューナ１６０は正確な位置判定の総数、位置判定の総数、および実際の位置イベントの総数に基づいてメトリックを決定することができる。当該メトリックを用いて、当該チューナは精度メトリックまたはリコール・メトリックのうち少なくとも１つに基づいて位置エンジンのチューニング・パラメータを調節することができる。
【０１２６】
チューナ１５０は、位置エンジン１３５により行われた正確な位置の総数を決定することができる。第１の二重暗号化されたデータ・セットおよび第２の二重暗号化されたデータ・セットは両方とも同一の２つの交換可能暗号化プロトコル（例えば、Ｇ（ｘ）およびＴ（ｘ）、または第１の暗号化プロトコルおよび第２の暗号化プロトコル）により暗号化されたので、第１の暗号化されたデータ・セットおよび第２の暗号化されたデータ・セット内のエントリは互いに、ハッシュ関数を第２の識別子およびタイムスタンプ（または第２の識別子、タイムスタンプ、および位置）に適用することにより生成された同一のハッシュ値にそれらが対応する場合には、マッチすることができる。したがって、チューナ１６０は、第２の二重暗号化されたデータ・セット内のエントリにマッチする第１の二重暗号化されたデータ・セット内のエントリの数を決定することができる。チューナ１５０は、正確な位置判定を示すためのマッチングエントリ（例えば、厳密なまたは同一のマッチ）を決定することができる。
【０１２７】
表５に示すように、第１の二重暗号化されたデータ・セット内の第１のレコードは第２の二重暗号化されたデータ・セット内の第１のレコードにマッチする（例えば、ＡＡ１＝ＡＡ１）。チューナ１５０は、このレコードマッチングに応答して、このエントリが正確な位置判定に対応すると判定することができる。チューナ１５０はさらに、第２のレコードがマッチしない（例えば、ＤＣ２がＤＢ２にマッチしない）と判定することができる。チューナ１５０は、当該レコードがマッチングしないことに応答して、第２のレコードが正確な位置にあると判定することができる。チューナ１５０は第２の二重暗号化されたデータ・セット内の正確な位置判定の総数が１であると判定することができる。
【０１２８】
チューナ１５０は、第２の二重暗号化されたデータ・セット（例えば、サイズ（第２の二重暗号化されたデータ・セット））内のエントリの数を決定することで、このデータ・セットに対して位置エンジン１３５により行われた位置判定の総数を決定することができる。エントリの数は、或る時間間隔中に特定の位置に対して行われた位置判定の数に対応することができる。例えば、位置判定の数は２であることができる。
【０１２９】
チューナ１５０は、グランド・トルース・データを用いて特定の位置での実際の位置イベントの総数を決定することができる。第１の二重暗号化されたデータ・セットはサードパーティ・サーバにより処理された電子トランザクションから生成されたハッシュ値に対応するので、第１の二重暗号化されたデータ・セット（または第２の暗号化されたデータ・セット）をグランド・トルース・データと称することができる。チューナ１５０は、第１の二重暗号化されたデータ・セットのサイズを決定することで実際の位置イベントの数を決定することができる。例えば、実際のイベントの数は２であることができる。
【０１３０】
正確な位置判定の数、全体位置判定の数、および実際の位置イベントの数を決定する際、チューナ１５０は、精度メトリックおよびリコール・メトリックのような１つまたは複数のメトリックを以下のように決定することができる。
精度＝正確な位置判定の数／位置判定の総数
リコール＝正確な位置判定の数／実際の位置イベントの総数
【０１３１】
例えば、第１の暗号化されたデータ・セットに対する精度メトリックは＝1/2＝５０％であることができ、リコール・メトリックは1/2＝５０％であることができる。サードパーティ・サーバ１６０により観測または記録された実際の位置イベントの数が増加したが（例えば、１０）正確な位置判定の数が同一である場合、精度メトリックが同一（例えば、1/2）に留まってもよく、リコール・メトリックを１／１０＝１０％に減らしてもよい。別の例では、位置判定の数が増大し（例えば、５）正確な位置判定の数が同一にとどまる場合、リコール・メトリックが同一（例えば、1/2）に留まってもよく、精度メトリックを１／５＝２０％に減らしてもよい。
【０１３２】
幾つかの実装では、精度メトリックを、精度＝正確な位置判定の数／（位置判定の総数＊電子トランザクション率）と決定することができる。当該電子トランザクション率は、電子トランザクションをもたらすマーチャントへの訪問数を示すことができる。データ処理システム１２０は当該電子トランザクション率をサードパーティ・サーバ１６０から受信することができる。データ処理システム１２０は、ネットワーク１０５を介してデータベースにアクセスして当該電子トランザクション率を取り出すことができる。サードパーティ・サーバ１６０は、或る時間間隔中にマーチャントで発生した電子トランザクションの数をその時間間隔中の当該マーチャントへの訪問数で除すことで、当該電子トランザクション率を決定することができる。幾つかのケースでは、当該マーチャントは、サードパーティ・サーバ１６０に、当該マーチャントへの訪問数または電子トランザクションの数を提供してもよい。
【０１３３】
チューナ１５０は精度メトリック、リコール・メトリック、またはその両方に基づいてパラメータを調節することができる。チューナ１６０は、パラメータを調節して、位置エンジン１３５の性能、精度、またはリコールを高めることができる。チューナ１５０は、当該コンテンツ選択がオンラインコンテンツ・アイテムオークションにおける精度またはリコール・メトリックを用いてコンピューティング・デバイス１１０に表示するためのコンテンツ・アイテムを選択できるようにすることで、コンテンツセレクタのパラメータを調節することができる。例えば、コンテンツプロバイダ２２５は、コンテンツ・アイテムキャンペーンを位置ベースのコンテンツ・アイテムでセットアップし、位置エンジン１３５が精度閾値より大きい精度メトリック（またはリコール閾値より大きいリコール・メトリック）で正確な位置を決定できる、地理的位置に関連付けられたコンピューティング・デバイスに表示するためのコンテンツキャンペーンのコンテンツ・アイテムを選択するようにデータ処理システム１２０に指示してもよい
【０１３４】
チューナ１５０は、位置ピングをコンピューティング・デバイスから受信するための時間間隔、コンピューティング・デバイスの位置を決定するために使用される位置ピングの時間間隔または頻度、使用される位置情報のソース（例えば、GPS、Wi-Fi、携帯電話三角測量、またはビーコン）、使用される１つまたは複数のソースの組合せ、クラスタ距離閾値、クラスタ時間閾値、クラスタを形成するための最小データ・ポイントの数、またはクラスタを形成するための最大データ・ポイントの数のような位置エンジン１３５のチューニング・パラメータを調節することができる。
【０１３５】
例えば、データ処理システム１２０は当該チューニング・パラメータを調節して精度またはリコール・メトリックを高めることができる。データ処理システム１２０は、当該チューニング・パラメータを調節して、コンピューティング・デバイス１１０のリソース消費（例えば、バッテリ消費、プロセッサ利用、記憶利用、またはネットワークデータ利用）を減らすことができる。データ処理システム１２０は、チューニング・パラメータを調節して、データ処理システム１２０のリソース消費を減らす（例えば、プロセッサ利用、記憶消費、またはネットワークデータ利用を減らす）ことができる。
【０１３６】
例えば、チューナ１５０は精度メトリックが精度閾値（例えば、５０％、６０％、７０％、９０％、または９５％）より大きい、またはリコール・メトリックがリコール閾値（例えば、５０％、６０％、７０％、９０％、または９５％）より大きいと判定することができる。チューナ１５０は、当該メトリックが当該閾値より大きいので、データ処理システム１２０は、コンピューティング・デバイス１１０から受信された位置ピングの当該頻度を減らし、依然として満足できる精度およびリコール・メトリックを達成できると判定することができる。チューナ１５０は、当該メトリックが当該閾値より大きいので、データ処理システム１２０はデータ・リポジトリ１５５に格納された位置エントリの数を減らし、依然として満足できる精度およびリコール・メトリックを達成できると判定することができる。チューナ１５０は、当該メトリックが当該閾値より大きいので、データ処理システム１２０が、位置を決定するために使用されるかまたはコンピューティング・デバイス１１０から受信された位置情報のソース（例えば、GPS、Wi-Fi、携帯電話三角測量、またはビーコン）の数を減らし、依然として満足できる精度およびリコール・メトリックを達成できると判定することができる。チューナ１６０はまた、クラスタ閾値を調節して、当該クラスタ処理技術をより効率的とすることができる（例えば、小さなクラスタをフィルタして除外するために、クラスタを生成するためのより多くのデータ・ポイントを必要とする）。
【０１３７】
チューナ１５０は、精度メトリックが精度閾値（例えば、３０％、４０％、５０％、６０％、７０％、９０％、または９５％）より小さい、またはリコール・メトリックがリコール閾値（例えば、３０％、４０％、５０％、６０％、７０％、９０％、または９５％）より小さいと判定することができる。メトリックが閾値より小さいと判定したことに応答して、チューナ１５０は、チューニング・パラメータを調節して位置エンジン１３５の性能を高めることができる。例えば、精度メトリックが閾値より小さい場合、チューナ１５０は、位置エンジン１３５が満足できない数の不正確な位置判定を行っていると判定することができる。精度メトリックは位置判定の総数により除した正確な位置判定の数であるので、チューナ１５０はパラメータを調節して、正確な判定の数を増やすこと、行われる位置判定の数を減らすこと、またはその両方を促進することができる。
【０１３８】
例えば、チューナ１５０は、クラスタが位置エンジンにより行われた位置判定の総数を減らすために使用されるクラスタ時間閾値、クラスタ距離閾値、または最小数のデータ・ポイントを増大させることができる。チューナ１５０は、当該閾値を繰り返し増大または調節することができる。例えば、チューナ１５０は、更新されたメトリックを決定するために或るパラメータを調節し、追加のデータを収集し、次いで当該更新されたメトリックが満足できない（例えば、精度メトリックが依然として当該精度閾値を下回る）場合、当該パラメータを再調節するかまたは新たなパラメータを調節することができる。当該クラスタ時間閾値を増大することで、位置エンジン１３５により生成された妥当なクラスタの数を減らしてもよく、それにより、行われる位置判定の数が減り、精度メトリックが増大する。
【０１３９】
幾つかのケースでは、チューナ１５０は、チューニング・パラメータを調節して正確な位置判定の数を増やすことができる。例えば、チューナ１５０は、位置判定を行うために位置エンジン１３５により使用される位置ソースの数またはタイプに対応するチューニング・パラメータを調節することができる。チューナ１５０は、少なくとも２つの位置ソース（または３または４、例えば）を使用して位置判定を行うように位置エンジン１３５に指示することができる。チューナ１５０は、GPS、Wi-Fi三角測量、携帯電話塔三角測量、ビーコン技術、またはIPアドレスのうち１つまたは複数のような、当該位置判定を行うための特定のタイプの位置ソースを使用するように位置エンジン１３５に指示することができる。例えば、チューナ１５０は、少なくとも２つの位置ソースを使用するように位置エンジン１３５に指示することができる、当該２つの位置ソースのうち１つは携帯電話塔三角測量を含む。
【０１４０】
チューナ１５０はリコール・メトリックが閾値より小さいと判定することができる。リコール・メトリックが当該閾値より小さいことに応答して、チューナ１５０は、当該複数の位置判定を行うために位置エンジンにより使用される位置ピングの頻度を増大することができる。位置エンジンにより使用される位置ピングの頻度を増やすことで、チューナ１５０は、位置エンジン１３５がより高品質のデータ・ポイントまたは増大した数のデータ・ポイントへのアクセスを有しうるので、正確な位置判定の数を増大することができる。
【０１４１】
幾つかのケースでは、当該チューナは、当該複数の位置判定を行うために位置エンジンにより使用されるクラスタ距離閾値を減らして、リコール・メトリックを増やすことができる。クラスタ距離を減らすことで、位置エンジン１３５はより大きな数の位置クラスタを生成してもよい。より多くの位置クラスタを生成することが、正確な位置クラスタの数の増大に対応してもよい。例えば、第１の位置クラスタはマーチャントＡに対応することができ、第２の位置クラスタはマーチャントＡに隣接してまたはそれの近くに配置されたマーチャントＢに対応することができる。当該クラスタ距離閾値を減らすことで、位置エンジン１３５は当該２つのマーチャントを区別でき、したがって位置エンジン１３により行われた正確な位置判定の数が増大する。
【０１４２】
図３は、例示的な実装に従う、異なるデータ・セットの間の識別子をマッチングする例示的な方法３００を示す流れ図である。方法３００を実施して、第１の識別子を第２の識別子にブリッジまたはマップすることができる。方法３００を実施して、第１の識別子を第２の識別子にマップするために使用されるマッピング関数またはキーを決定することができる。第１の識別子はデータ処理システムにより生成された識別子に対応することができ、第２の識別子はサードパーティ・サーバにより生成された識別子に対応することができる。方法３００に関して本明細書で説明した機能を、図１、２、または５に示したシステム１００、システム２００、データ処理システム１２０、または任意の他のモジュールまたはコンポーネントにより実施または実行することができる。方法３００を、数秒または数分ごとに１回から所定の日数ごとに１回の範囲の、様々な時間間隔で実施または実行することができる。方法３００は、所定の数の複数の第１のパラメータおよび複数の第２のパラメータの蓄積のような、例えば、データ処理システム１２０により決定されたまたは受信された条件の満足に応じて実施または実行することができる。方法３００をデータ処理システム１２０からの要求に応答して実施することができる。
【０１４３】
ブロック３０５で、データ処理システムは第１の識別子ベクトルをサードパーティ・サーバに送信することができる。例えば、データ処理システムは、ネットワークを介して、第１の識別子ベクトルをサードパーティ・サーバに送信することができる。データ処理システムは第１の暗号化に基づいて暗号化された第１の識別子ベクトルを送信することができる。第１の識別子ベクトルは第１の識別子、複数の第１のパラメータ、および複数の第２のパラメータを含むことができる。複数の第１のパラメータの各々および複数の第２のパラメータの各々は、第１の識別子に関連付けられた当該１つまたは複数のコンピューティング・デバイスによるデータ処理システムとのネットワーク活動または対話のログ・データを含むことができる。
【０１４４】
ブロック３１０で、データ処理システムはサードパーティ・サーバにより暗号化された第１の識別子ベクトルを受信することができる。例えば、データ処理システムはネットワークを介してサードパーティ・サーバにより暗号化された第１の識別子ベクトルを受信することができる。第１の識別子ベクトルに適用される暗号化技術はサードパーティ・サーバに関連付けられたサードパーティ暗号化であってもよい。
【０１４５】
ブロック３１５で、データ処理システムはサードパーティ・サーバにより暗号化された第２の識別子ベクトルを受信することができる。例えば、データ処理システムはネットワークを介して第２の識別子ベクトルをサードパーティ・サーバから受信することができる。第２の識別子ベクトルは第２の識別子、複数の第３のパラメータ、および複数の第４のパラメータを含むことができる。複数の第３のパラメータの各々および複数の第４のパラメータの各々は第２の識別子に関連付けられた当該１つまたは複数のコンピューティング・デバイスによるサードパーティ・サーバとの当該ネットワーク活動または対話のログ・データを含むことができる。第２の識別子ベクトルに適用される暗号化技術はサードパーティ・サーバに関連付けられたサードパーティ暗号化であってもよい。
【０１４６】
ブロック３２０で、データ処理システムは第１の識別子ベクトルおよび第２の識別子ベクトルの間の相関関係カウントを決定することができる。例えば、データ処理システムは、複数の第１のパラメータの一部および複数の第３のパラメータの一部の間のマッチおよび複数の第２のパラメータおよび複数の第４のパラメータの一部のうち幾つかの間のマッチがあるかどうかを判定したことに基づいて、第１の識別子ベクトルおよび第２の識別子ベクトルの間の相関関係カウントを決定することができる。データ処理システムは、例えば、複数の第１のパラメータの１つが複数の第２のパラメータの１つの第１のマージン内にあり、複数の第３のパラメータの１つが複数の第４のパラメータの１つの第２のマージン内にあるときに、当該各パラメータの間のマッチがあると判定することができる。
【０１４７】
ブロック３２５で、データ処理システムは、当該相関関係カウントに基づいて第１の識別子が第２の識別子に対応すると判定することができる。例えば、データ処理システムは、当該相関関係カウントが決定された閾値より大きいことに基づいて第１の識別子が第２の識別子に対応すると判定することができる。データ処理システムは、複数の第１のパラメータ、複数の第２のパラメータ、複数の第３のパラメータ、および複数の第４のパラメータの長に基づいて当該閾値を決定することができる。
【０１４８】
ブロック３３０で、データ処理システムは第１の識別子および第２の識別子の両方に対する１つの識別子キーを生成することができる。例えば、データ処理システムは、第１の識別子が第２の識別子に対応すると判定したことに応答して、当該第１の識別子および第２の識別子の両方に対する１つの識別子キーを生成することができる。データ処理システムは第１の識別子を当該１つの識別子キーとして設定することができる。
【０１４９】
図４は、１実装に従う、ネットワークを介して位置エンジンを調節するための位置データを暗号的に保護する方法を示す流れ図である。方法４００を、図１、図２、または図５に示した、を含む１つまたは複数のシステム、コンポーネントまたはインタフェース、例えば、データ処理システム、通信インタフェース、位置エンジン、ブリッジ・モジュール、第１の暗号化モジュール、チューナ、またはデータ・リポジトリを介して実施することができる。簡単な概要では、および幾つかの実装では、方法４００は、４１０で、データ処理システムがそれぞれ第１の識別子に関連付けられた位置判定を取り出し、マッピング関数を用いて第１の識別子を第２の識別子にマッピングすることを含む。４１５で、データ処理システムは位置判定ごとの第１のハッシュ値を決定する。４２０で、データ処理システムは第１のハッシュ値を暗号化して第１の暗号化されたデータ・セットを生成し、第１の暗号化されたデータ・セットをサードパーティ・サーバに送信する。４２５で、データ処理システムは、サードパーティ・サーバにより生成された第２のハッシュ値を含む第２の暗号化されたデータ・セットをサードパーティ・サーバから受信する。４３０で、データ処理システムは第２の暗号化されたデータ・セットを暗号化して、第１の二重暗号化されたデータ・セットを生成する。４３５で、データ処理システムは、第２の二重暗号化されたデータ・セットをサードパーティ・サーバから受信する。４４０で、データ処理システムは、第１の二重暗号化されたデータ・セットを第２の二重暗号化されたデータ・セットと比較して、メトリックを決定する。データ処理システムは、当該メトリックを使用して、コンテンツ選択を促進するかまたは位置エンジンの性能を高めることができる。
【０１５０】
依然として図４をさらに詳細に参照すると、方法４００は４１０で、データ処理システムが、それぞれが第１の識別子に関連付けられた位置判定を取り出し、マッピング関数を用いて第１の識別子を第２の識別子にマッピングすることを含む。例えば、データ処理システムのブリッジ・モジュールは、メモリに格納された位置データベースから、データ処理システムの位置エンジンにより行われた位置判定を取り出すことができる。各位置判定を各第１の識別子に関連付けることができる。当該位置は、小売店、レストラン、サービスプロバイダ、または他のエンティティのようなマーチャントのコンピューティング・デバイスの位置に対応することができる。データ処理システムは、或る時間間隔中に１つまたは複数のコンピューティング・デバイスから受信された位置情報を用いて当該位置を決定することができる。
【０１５１】
データ処理システムは、或る基準を満たす位置判定を取り出すための検索をデータベースにおいて実施することができる。例えば、データ処理システムは、特定のマーチャント、地理的領域、都市、州、または郵便番号に対応する位置判定を取り出すための検索をデータベースにおいて実施することができる。データ処理システムは、或る時間間隔内にまたは第１の日付またはタイムスタンプ、および第２の日付またはタイムスタンプの間に発生した位置判定を取り出すための検索を実施することができる
【０１５２】
例えば、データ処理システムは、コンピューティング・デバイスのセンサ（例えば、ポータブルコンピューティング・デバイス）により決定された地理座標を受信することができる。データ処理システムは、ネットワーク１０５上で通信するように構成された通信インタフェースのようなポータブルデバイスのネットワークインタフェースから、当該地理座標を受信することができる。データ処理システムは、当該地理座標に基づいて、ポータブルデバイスの位置を決定することができる。データ処理システムは、将来の処理のために当該ポータブルの位置を位置データベースに格納することができる。
【０１５３】
幾つかのケースでは、データ処理システムは、複数の位置ソースを用いて決定された、ポータブルデバイスのための位置情報を受信することができる。例えば、データ処理システムはポータブルデバイスの全地球測位センサ、ポータブルデバイスのワイヤレスネットワークインタフェース、携帯電話塔三角測量、またはビーコンのうち少なくとも２つを介してポータブルデバイスにより決定された位置情報を受信することができる。幾つかのケースでは、ポータブルデバイスは、当該複数のソースにより決定された当該位置情報を分析および合成し、データ処理システムに、当該位置判定を提供することができる。幾つかのケースでは、データ処理システムは、特定の数の利用可能な位置ソース、または特定のタイプの位置ソースを使用するようにポータブルデバイスに指示することができる。
【０１５４】
幾つかのケースでは、ポータブルデバイスは各ソースにより決定された別々の位置情報を提供でき、データ処理システムは当該位置情報を分析して位置判定を行うことができる。位置エンジンは、当該位置情報に基づいて当該ソースの各々から、ポータブルデバイスの位置を決定することができる。例えば、データ処理システムの位置エンジンは、当該複数のソースから受信された位置データ・ポイントを比較し、当該位置データ・ポイントを重み付けして重心位置を決定することができる。例えば、位置エンジンは、ビーコンまたは携帯電話塔三角測量データ・ポイントより低いGPSデータ・ポイントを重み付けると決定することができる。GPSデータ・ポイントを低く重み付けることによって、データ処理システムは当該携帯電話塔三角測量データ・ポイントに当該位置判定を駆動させることができる。
【０１５５】
データ処理システムは（例えば、ブリッジ・モジュールを介して）、マッピング関数を用いて、各第１の識別子を各第２の識別子にマップすることができる。例えば、データ処理システムは第１の識別子を第２の識別子にマップするマッピング関数を使用することができる。第２の識別子は、サードパーティ・サーバにより使用される共通の識別子に対応でき、データ処理システムに既知であることができる。データ処理システムは、第１の識別子を第２の識別子に変換、翻訳、またはマップするためのマッピング関数またはブリッジ技術を使用することができる。
【０１５６】
４１５で、データ処理システムは位置判定ごとの第１のハッシュ値を決定する。データ処理システムは（例えば、第１の暗号化モジュールを介して）、第２の識別子および各位置判定のタイムスタンプから形成されたタプルに適用される第１のハッシュ関数を用いて、位置判定ごとの第１のハッシュ値を決定することができる。幾つかのケースでは、データ処理システムは、各位置判定の第２の識別子、タイムスタンプ、および位置から形成されたタプルに適用される第１のハッシュ関数を用いて位置判定ごとの第１のハッシュ値を決定することができる。当該タイムスタンプまたは当該位置は、バケット化または量子化されることができる。例えば、当該タイムスタンプを、最も近い１０秒、３０秒、６０秒、または２分にバケット化または丸めることができる。当該位置を、緯度および経度精度、アドレス、地図タイル、地図の象限、半径、２５立方メートル、５０立方メートル、または１００立方メートルにバケット化または丸めることができる。データ処理システムは、位置判定ごとの当該ハッシュ値の判定の前に所定の量子化を各位置判定の当該タイムスタンプに適用することができる。
【０１５７】
４２０で、データ処理システムは第１のハッシュ値を暗号化して第１の暗号化されたデータ・セットを生成し、第１の暗号化されたデータ・セットをサードパーティ・サーバに送信する。データ処理システム（例えば、第１の暗号化モジュール）は、第１の暗号化プロトコルを用いて位置判定ごとの第１のハッシュ値を暗号化して第１の暗号化されたデータ・セットを生成することができる。データ処理システムは、同一の暗号化プロトコルを各ハッシュ値に適用するか、または異なる暗号化プロトコルを当該ハッシュ値の幾つかに適用することができる。
【０１５８】
データ処理システム（例えば、通信インタフェース）は、第１の暗号化されたデータ・セットをサードパーティ・サーバに送信することができる。例えば、サードパーティ・サーバは、マーチャントでの１つまたは複数の販売端末デバイスを介して実施された電子トランザクションを処理する１つまたは複数のサーバを含むかまたはそれに関連付けられることができる。サードパーティ・サーバは、データ処理システムが性能メトリックを決定するために使用できるグランド・トルース・データを提供することができる。
【０１５９】
４２５で、データ処理システムは、サードパーティ・サーバにより生成された第２のハッシュ値を含む第２の暗号化されたデータ・セットをサードパーティ・サーバから受信する。サードパーティ・サーバは、ハッシュ関数を第２の識別子およびタイムスタンプに適用することで第２のハッシュ値を生成することができる。サードパーティ・サーバはハッシュ関数を第２の識別子、タイムスタンプ、および位置に適用することで、第２のハッシュ値を生成することができる。サードパーティ・サーバは、データ処理システムが第１のハッシュ値を生成するのと同一の方法で第２のハッシュ値を生成することができる。例えば、データ処理システムは、サードパーティ・サーバが第２のハッシュ値を生成するために使用したのと同一のハッシュ関数を使用して第１のハッシュ値を使用することができる。データ処理システムおよびサードパーティ・サーバはまた、同一の第２の識別子を使用することができる。データ処理システムおよびサードパーティ・サーバはまた、当該タイムスタンプまたは当該位置に対して同一のバケットサイズまたは量子化を使用することができる。
【０１６０】
例えば、サードパーティ・サーバは、第２のハッシュ値の生成の前に所定の量子化を当該電子トランザクションの各々のタイムスタンプに適用する。幾つかのケースでは、データ処理システムは、当該所定の量子化をサードパーティ・サーバに提供することができる。幾つかのケースでは、データ処理システムは、当該所定の量子化をサードパーティ・サーバから受信し、当該所定の量子化を使用して第１のハッシュ値を生成することができる。
【０１６１】
サードパーティ・サーバは、第２の暗号化プロトコルを第２のハッシュ値に適用することで第２の暗号化されたデータ・セットを生成することができる。第２の暗号化プロトコルは第１の暗号化プロトコルと異なることができる。例えば、第２の暗号化プロトコルおよび第１の暗号化プロトコルは異なるアルゴリズム、キー、またはパラメータを使用することができる。データ処理システムおよびサードパーティ・サーバは、当該暗号化されたデータ・セットを生成するために使用される暗号化プロトコルのタイプを隠蔽してもよい。第１のおよび第２の暗号化プロトコルは両方とも交換可能暗号化プロトコルであることができる。第１のおよび第２の暗号化プロトコルは、当該暗号化プロトコルが適用される順序が当該結果を変更しない場合は、当該交換可能プロパティを有することができる。例えば、Ｇ（Ｔ（ｈ（ｘ）））＝Ｔ（Ｇ（ｈ（ｘ）））であり、Ｇは第１の暗号化プロトコルであり、Ｔは第２の暗号化プロトコルである。
【０１６２】
４３０で、データ処理システムは第２の暗号化されたデータ・セットを暗号化して、第１の二重暗号化されたデータ・セットを生成する。データ処理システムは（例えば、第１の暗号化モジュールを介して）、第１の暗号化プロトコルを使用してサードパーティ・サーバから受信された第２の暗号化されたデータ・セットを暗号化して、第１の二重暗号化されたデータ・セットを生成することができる。第１の二重暗号化されたデータ・セットは、それが電子トランザクションに対応するので、グランド・トルース・データに対応することができる。
【０１６３】
４３５で、データ処理システムは第２の二重暗号化されたデータ・セットをサードパーティ・サーバから受信する。データ処理システムは（例えば、通信インタフェースを介して）第２の二重暗号化されたデータを受信することができる。サードパーティ・サーバは（例えば、第２の暗号化モジュールを介して）、第２の暗号化プロトコルをデータ処理システムによりサードパーティ・サーバに送信された第１の暗号化されたデータ・セットに適用することで第２の二重暗号化されたデータ・セットを生成することができる。
【０１６４】
４４０で、データ処理システムは、第１の二重暗号化されたデータ・セットを第２の二重暗号化されたデータ・セットと比較して、メトリックを決定する。データ処理システムは、当該メトリックを使用して、コンテンツ選択を促進するかまたは位置エンジンの性能を改善することができる。データ処理システムは（例えば、チューナを介して）、第１の二重暗号化されたデータ・セットを第２の二重暗号化されたデータ・セットと比較して、正確な位置判定の総数、位置判定の総数、および実際の位置イベントの総数に基づいて精度メトリックおよびリコール・メトリックを決定することができる。当該チューナは精度メトリックまたはリコール・メトリックのうち少なくとも１つに基づいて位置エンジンのチューニング・パラメータを調節することができる。
【０１６５】
精度メトリックを決定するために、データ処理システムは第１の二重暗号化されたデータ・セットのエントリにマッチする第２の二重暗号化されたデータ・セットのエントリの数に基づいて正確な位置判定の総数を決定することができる。当該マッチは、当該２つのエントリが同一であるように正確なマッチであることができる。データ処理システムは第２の二重暗号化されたデータ・セットのエントリの数に基づいて位置判定の総数を決定することができる。データ処理システムは正確な位置判定の総数を位置判定の総数で除すことで精度メトリックを決定することができる。幾つかのケースでは、データ処理システムは正確な位置判定の総数を位置判定の総数および電子トランザクション率の積で除すことで精度メトリックを決定することができる。当該電子トランザクション率は、当該マーチャントに対する訪問ごとに発生するトランザクションの数（例えば、２０個のうち１つ、５％、または３／１００）を指すことができる。
【０１６６】
リコール・メトリックを決定するために、データ処理システムは第１の二重暗号化されたデータ・セットのエントリの数に基づいて実際の位置イベントの総数を決定することができる。データ処理システムは正確な位置判定の総数を実際の位置イベントの総数で除すことでリコール・メトリックを決定することができる。
【０１６７】
データ処理システムは、位置エンジンのパラメータを調節するためにまたは他の目的のために、当該性能メトリックを使用することができる。例えば、データ処理システムは、１つまたは複数のマーチャントまたは地理的領域に対する性能メトリックでレポートを生成することができる。例えば、データ処理システムは、互いに隣接して配置されたマーチャントの数に起因して密集都市が貧弱な性能メトリックを有すると判定することができる。別の例では、データ処理システムは、複数の小売店を有する屋内モール内の位置判定に対して位置エンジンが貧弱に動作すると判定することができる。これは、GPSアクセスがないこと、貧弱な電波受信または携帯電話の電波受信がないこと、位置ソースの欠如、または不正確な位置ソース（例えば、GPS信号がオブジェクトから跳ね返り、不正確な時間読取値をもたらす）によるものかもしれない。データ処理システムは、貧弱な性能メトリックを識別したことに応答して、当該性能を高めるかまたはデータ処理システムの機能を調節するための技術を決定することができる。
【０１６８】
例えば、データ処理システムは、位置精度を高めるために当該マーチャント位置にあるＷＩＦＩルータを提供し構成するようにマーチャントに指示することで、性能を高めることができる。別の例では、データ処理システムは、低品質位置を説明するためにコンテンツ選択を調節することができる。例えば、データ処理システムは、位置エンジンが、コンピューティング・デバイスがコーヒー店または税務署内にあるかどうかを十分な確信度をもって決定できないと判定することができる。コーヒー店の位置に基づいて選択された広告は税務署に基づいて選択された広告と異なってもよいので、データ処理システムは、位置基準を用いずに当該広告を選択すると判定することができる。幾つかのケースでは、データ処理システムは、両方の位置基準にマッチする広告を選択すると判定することができる。
【０１６９】
したがって、本開示のシステムおよび方法は、性能メトリックを決定するためにデータ処理システムおよびサードパーティ・サーバの間で転送される位置データを暗号的に保護し、データ処理システムのコンポーネントまたは機能を調節して当該コンポーネントまたは機能を高めることができる。例えば、データ処理システムは、当該性能メトリックを使用して、位置エンジンの精度またはリコールを高め、コンテンツ選択を改善し、またはコンピューティング・デバイスまたはデータ処理システムのリソース消費を減らすことができる。
【０１７０】
図５は、例示的な実装に従うコンピュータシステム５００のブロック図である。当該コンピュータシステムまたはコンピューティング・デバイス５００を、当該システム１００、システム２００、コンテンツプロバイダ２２５、コンピューティング・デバイス１１０、コンテンツパブリッシャ２１５、データ処理システム１２０、通信インタフェース１３０、位置エンジン１３５、ブリッジ・モジュール１４０、第１の暗号化モジュール１４５、チューナ１５０、データ・リポジトリ１５５、サードパーティ・サーバ１６０、第２の暗号化モジュール１６５、販売端末デバイス１１５、またはトランザクション・カード１２５を実装するために使用することができる。コンピューティングシステム５００は、情報を通信するためのバス５０５または他の通信コンポーネントおよび情報を処理するためにバス５０５に接続するためのプロセッサ５１０または処理回路を含む。コンピューティングシステム５００はまた、情報を処理するために当該バスに接続された１つまたは複数のプロセッサ５１０または処理回路を含むことができる。コンピューティングシステム５００はまた、情報、およびプロセッサ５１０により実行される命令を格納するためにバス５０５に接続されたランダム・アクセスメモリ（ＲＡＭ）または他の動的記憶デバイスのようなメイン・メモリ５１５を含む。メイン・メモリ５１５をまた、プロセッサ５１０による命令の実行中に位置情報、一時的変数、または他の中間情報を格納するために使用することができる。コンピューティングシステム５００はさらに、プロセッサ５１０のための静的情報および命令を格納するためにバス５０５に接続される読取専用メモリ（ＲＯＭ）５２０または他の静的記憶デバイスを含んでもよい。固体状態デバイス、磁気ディスクまたは光ディスクのような記憶デバイス５２５は情報および命令を永続的に格納するためにバス５０５に接続される。
【０１７１】
コンピューティングシステム５００を、情報をユーザに表示するために、バス５０５を介して液晶ディスプレイ、またはアクティブ行列ディスプレイのようなディスプレイ５３５に接続してもよい。英数字および他のキーを含むキーボードのような入力デバイス５３０、が、情報およびコマンド選択をプロセッサ５１０に通信するためにバス５０５に接続されてもよい。入力デバイス５３０はタッチ・スクリーンディスプレイ５３５を含むことができる。入力デバイス５３０はまた、方向情報およびコマンド選択をプロセッサ５１０に通信し、当該ディスプレイ５３５上のカーソル移動を制御するための、マウス、トラックボール、またはカーソル方向キーのようなカーソル・コントロールを含むことができる。
【０１７２】
本明細書で説明したプロセス、システムおよび方法、プロセッサ５１０がメイン・メモリ５１５に含まれる命令の配置を実行したことに応答してコンピューティングシステム５００により実装することができる。かかる命令を当該記憶デバイス５２５のような別のコンピュータ可読媒体からメイン・メモリ５１５に読み込むことができる。メイン・メモリ５１５に含まれる命令の配置の実行は、コンピューティングシステム５００に本明細書で説明した例示的なプロセスを実施させる。マルチプロセッシング配置における１つまたは複数のプロセッサをまた、メイン・メモリ５１５に含まれる命令を実行するために使用することができる。代替的な実装ではドワイヤード回路を、例示的な実装に影響を及ぼすためにソフトウェア命令の代わりにまたはそれと組み合わせて使用してもよい。したがって、実装はハードウェア回路およびソフトウェアの任意の特定の組合せに限定されない。
【０１７３】
例示的なコンピューティングシステムを図５で説明したが、本明細書で説明した主題および機能動作の実装を、本明細書で開示した構造およびそれらの構造的均等物を含む他のタイプのデジタル電子回路で、またはコンピュータソフトウェア、ファームウェア、またはハードウェアで、またはそれらの１つまたは複数の組合せで実装することができる。
【０１７４】
本明細書で説明した主題および当該動作の実装を、本明細書で開示した構造およびそれらの構造的均等物を含むデジタル電子回路で、またはコンピュータソフトウェア、ファームウェア、またはハードウェアで、またはそれらの１つまたは複数の組合せで実装することができる。本明細書で説明した主題を、データ処理装置による実行のためにまたは当該装置の動作を制御するために１つまたは複数のコンピュータ記憶媒体で符号化された、１つまたは複数のコンピュータプログラム、例えば、コンピュータプログラム命令の１つまたは複数の回路として実装することができる。代替的にまたは追加として、当該プログラム命令を、人工的に生成された伝播信号、例えば、データ処理装置による実行のために適切な受信器装置に送信するための情報を符号化するために生成されたマシン−生成された電気、光、または電磁気信号で符号化することができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムなまたはシリアル・アクセスメモリ・アレイまたはデバイス、またはそれらの１つまたは複数の組合せであることができ、または、それらに含まれることができる。さらに、コンピュータ記憶媒体は伝播信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝播信号で符号化されたコンピュータプログラム命令のソースまたは宛先であることができる。当該コンピュータ記憶媒体はまた、１つまたは複数の別々のコンポーネントまたは媒体（例えば、複数のＣＤ、ディスク、または他の記憶デバイス）であることができ、または、それに含まれることができる。
【０１７５】
本明細書で説明した動作を、１つまたは複数のコンピュータ可読記憶デバイスに格納されるかまたは他のソースから受信されたデータに対してデータ処理装置により実施することができる。
【０１７６】
「データ処理装置」または「コンピューティング・デバイス」という用語は、データを処理するための様々な装置、デバイス、およびマシンを包含し、それらは、例として、プログラム可能プロセッサ、コンピュータ、システム・オン・チップ、または以上のうち複数または組合せを含む。当該装置は、特殊目的論理回路、例えば、ＦＰＧＡ（フィールドプログラム可能ゲート・アレイ）またはＡＳＩＣ（特殊用途向け集積回路）を含むことができる。当該装置はまた、ハードウェアに加えて、着目するコンピュータプログラムに対する実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコル・スタック、データベース管理システム、オペレーティング・システム、クロス・プラットフォームランタイム環境、仮想マシン、またはそれらの１つまたは複数の組合せを構成するコードを含むことができる。当該装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッド・コンピューティングインフラのような様々な異なるコンピューティングモデルインフラを実現することができる。
【０１７７】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる）を、コンパイル型言語またはインタプリタ型言語、宣言型または手続型言語を含む任意の形態のプログラミング言語で書くことができ、スタンドアロンプログラムまたは回路、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境で使用するのに適した他のユニットを含む任意の形態で展開することができる。コンピュータプログラムがファイルシステム内のファイルに対応してもよいがその必要はない。プログラムを、他のプログラムまたはデータを保持するファイル部分（例えば、マークアップ言語ドキュメントに格納された１つまたは複数のスクリプト）に、着目するプログラム専用の単一のファイルに、または複数の協調ファイルに（例えば、１つまたは複数の回路、サブプログラム、またはコード部分を格納するファイル）格納することができる。コンピュータプログラムを、１つのコンピュータ上でまたは１つのサイトに配置されるかまたは複数のサイトにわたって分散され通信ネットワークにより相互接続された複数のコンピュータ上で実行されるように展開することができる。
【０１７８】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用目的マイクロプロセッサおよび特殊目的マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の１つまたは複数のプロセッサを含む。一般に、プロセッサは読取専用メモリまたはランダム・アクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令に従って動作を実施するためのプロセッサおよび命令およびデータを格納するための１つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを格納するための１つまたは複数の大容量記憶デバイス、例えば、磁気、磁気光ディスク、または光ディスクを含むかまたはそれに動作可能に接続され、データをそれらと送受信する。しかし、コンピュータがかかるデバイスを有する必要はない。さらに、コンピュータを別のデバイス、例えば、幾つか例を挙げれば、モバイル電話、携帯情報端末（ＰＤＡ）、モバイルオーディオまたはビデオプレイヤ、ゲーム・コンソール、全地球測位システム（GPS）受信器、またはポータブル記憶デバイス（例えば、ユニバーサル・シリアル・バス（ＵＳＢ）フラッシュ・ドライブ）に組み込むことができる。コンピュータプログラム命令およびデータを格納するのに適したデバイスは、例として半導体メモリデバイス、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュ・メモリデバイス、磁気ディスク、例えば、内部ハードディスクまたは取外し可能ディスク、磁気光ディスク、およびＣＤＲＯＭおよびＤＶＤ−ＲＯＭディスクを含むあらゆる形態の非揮発性メモリ、媒体およびメモリデバイスを含む。当該プロセッサおよび当該メモリを特殊目的論理回路で補完するかまたはそれに組み込むことができる。
【０１７９】
ユーザとの対話を提供するために、本明細書で説明した主題の実装を、情報をユーザに表示するためのディスプレイデバイス、例えば、ＣＲＴ（カソード・レイ・チューブ）またはＬＣＤ（液晶ディスプレイ）モニタおよびユーザがそれにより当該コンピュータに入力を提供できるキーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールを有するコンピュータで実装することができる。他の種類のデバイスを、ユーザとの対話を提供するために使用することができる。例えば、ユーザに提供されるフィードバックは任意の形態のセンサフィードバック、例えば、視覚フィードバック、可聴フィードバック、または触覚フィードバックであることができ、ユーザからの入力を音響、会話、または触覚入力を含む任意の形態で受信することができる。
【０１８０】
例示的なコンピューティングシステムを図５で説明したが、本明細書で説明した主題および機能動作の実装を、本明細書で開示した構造およびそれらの構造的均等物を含む他のタイプのデジタル電子回路で、またはコンピュータソフトウェア、ファームウェア、またはハードウェアで、またはそれらの１つまたは複数の組合せで実装することができる。
【０１８１】
本明細書で説明した主題および当該動作の実装を、本明細書で開示した構造およびそれらの構造的均等物を含むデジタル電子回路で、またはコンピュータソフトウェア、ファームウェア、またはハードウェアで、またはそれらの１つまたは複数の組合せで実装することができる。本明細書で説明した主題を、データ処理装置による実行のためにまたは当該装置の動作を制御するために１つまたは複数のコンピュータ記憶媒体で符号化された、１つまたは複数のコンピュータプログラム、例えば、コンピュータプログラム命令の１つまたは複数の回路として実装することができる。代替的にまたは追加として、当該プログラム命令を、人工的に生成された伝播信号、例えば、データ処理装置による実行のために適切な受信器装置に送信するための情報を符号化するために生成されたマシン生成された電気、光、または電磁気信号で符号化することができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムなまたはシリアル・アクセスメモリ・アレイまたはデバイス、またはそれらの１つまたは複数の組合せであることができ、または、それらに含まれることができる。さらに、コンピュータ記憶媒体は伝播信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝播信号で符号化されたコンピュータプログラム命令のソースまたは宛先であることができる。当該コンピュータ記憶媒体はまた、１つまたは複数の別々のコンポーネントまたは媒体（例えば、複数のＣＤ、ディスク、または他の記憶デバイス）であることができ、または、それに含まれることができる。
【０１８２】
本明細書は実装の多数の詳細を含むが、これらを任意の発明の範囲またはクレームしたものへの限定として解釈すべきではなく、特定の発明の特定の実装に固有な特徴の説明として解釈すべきである。別々の実装の文脈で本明細書で説明した特定の特徴をまた単一の実装における組合せで実装することができる。反対に、単一の実装の文脈で説明した様々な特徴をまた複数の実装で別々にまたは任意の適切な部分的組合せで実装することができる。さらに、特徴が特定の組合せで動作するとして上述しそのように最初にクレームされているかもしれないが、クレームした組合せからの１つまたは複数の特徴を幾つかのケースでは当該組合せから実施してもよく、クレームした組合せは部分的組合せまたは部分的組合せの変形に関してもよい。
【０１８３】
当該主題の特定の実装を説明した。他の実装は添付の特許請求の範囲内にある。動作を当該図面において特定の順序で説明したが、これが、かかる動作が示した特定の順序または逐次的な順序で実施されること、または全ての図示した動作を実施する必要があることを要求するものとして理解されるべきではない。本明細書で説明した動作を異なる順序で実施することができる。さらに、添付図面で示したプロセスは必ずしも所望の結果を実現するために図示した特定の順序、または逐次的な順序を要求しない。特に実装、マルチタスキングおよび並列処理は有利でありうる。
【０１８４】
様々なシステムコンポーネントの分離は全ての実装における分離を要求しないが、当該説明したプログラムコンポーネントを単一のハードウェアまたはソフトウェア製品に含めることができる。例えば、ブリッジ・モジュール１４０および第１の暗号化モジュール１４５は、１つまたは複数の処理回路、またはオンラインコンテンツ・アイテム配置システムの一部を有する単一のモジュール、論理デバイスであることができる。
【０１８５】
幾つかの例示的な実装を説明したので、以上は、例示的であり限定的ではなく、例として提示されていることは明らかである。特に、本明細書で提示した例の多くは方法の動作またはシステム要素の特定の組合せを含むが、これらの動作およびこれらの要素を他の方法で組み合わせて同一の目的を実現してもよい。１実装と関連して説明した動作、要素および特徴は他の実装または実装における類似の役割から排除されるものではない。
【０１８６】
本明細書で使用したフレーズおよび用語は説明の目的のためであり限定として解釈されるべきではない。「〜を含む」、「〜を備える」、「〜を有する」、「〜を包含する」、「〜が関与する」、「〜により特徴付けられる」、「〜の点で特徴付けられる」、およびその本明細書における変形の使用は、その後に列挙された項目、その均等物、および追加の項目、ならびに排他的にその後に列挙された項目からなる代替的な実装を含むことを意味する。１実装では、本明細書で説明するシステムおよび方法は当該説明した要素、動作、またはコンポーネントの１つ、複数の各組合せ、または全てから成る。
【０１８７】
本明細書で単一形で参照されるシステムおよび方法の実装または要素または動作に対する任意の言及は複数のこれらの要素を含む実装を含んでもよく、本明細書の任意の実装または要素または動作への複数形の任意の参照は単一の要素のみを含む実装を含んでもよい。単一形または複数形における参照は本明細書で開示したシステムまたは方法、それらのコンポーネント、動作、または要素を単一のまたは複数の構成に限定しようとするものではない。任意の情報、動作または要素に基づく任意の動作または要素への参照は当該動作または要素は任意の情報、動作、または要素に少なくとも部分的に基づく実装を含んでもよい。
【０１８８】
本明細書で開示した任意の実装を任意の他の実装または実施形態と組み合わせてもよく「実装」、「幾つかの実装」、「代替的な実装」、「様々な実装」、「１実装」等への言及は必ずしも相互に排他的ではなく、当該実装と関連して説明した特定の特徴、構造、または特性が少なくとも１つの実装または実施形態に含まれてもよいを示すことを意図している。本明細書で使用した用語は必ずしも全て同一の実装を参照しない。任意の実装を、任意の他の実装と、包含的にまたは排他的に、本明細書で開示した態様および実装と一貫する任意の方式で結合してもよい。
【０１８９】
「または」に対する言及は、「または」を用いて説明された任意の用語が当該説明した用語のうち１つ、複数、および全ての何れかを示しうるように、包含的として解釈してもよい。
【０１９０】
当該図面、詳細な説明または任意の請求項における技術的特徴に参照記号が続く場合、当該参照記号は当該図面、詳細な説明、および特許請求の範囲の明瞭性を高めるために含まれている。したがって、当該参照記号もそれがないことも任意のクレーム要素の範囲に対する限定効果を有さない。
【０１９１】
本明細書で説明するシステムおよび方法をその特徴から逸脱せずに他の特定の形態で具体化してもよい。以上の実装は説明したシステムおよび方法の限定ではなく例示的なものである。本明細書で説明するシステムおよび方法の範囲はしたがって以上の説明ではなく添付の特許請求の範囲により示され、添付の特許請求の範囲の均等物の意味と範囲に入る変更がそこに包含される。
【０１９２】
本明細書は実装の多数の詳細を含むが、これらを任意の発明の範囲またはクレームしたものへの限定として解釈すべきではなく、特定の発明の特定の実装に固有な特徴の説明として解釈すべきである。別々の実装の文脈で本明細書で説明した特定の特徴をまた単一の実装における組合せで実装することができる。反対に、単一の実装の文脈で説明した様々な特徴をまた複数の実装で別々にまたは任意の適切な部分的組合せで実装することができる。さらに、特徴が特定の組合せで動作するとして上述しそのように最初にクレームされているかもしれないが、クレームした組合せからの１つまたは複数の特徴を幾つかのケースでは当該組合せから実施してもよく、クレームした組合せは部分的組合せまたは部分的組合せの変形に関してもよい。
【符号の説明】
【０１９３】
１０５  ネットワーク
１１０  コンピューティング・デバイス
１１５  販売端末デバイス
１２０  データ処理システム
１２５  トランザクション・カード
１３０  通信インタフェース
１３５  位置エンジン
１４０  ブリッジ・モジュール
１４５  第１の暗号化モジュール
１５０  チューナ
１５５  データ・リポジトリ
１６０  カード・トランザクション・プロセッサのサーバ
１６５  第２の暗号化モジュール
１７０Ａ  マーチャント
１７０Ｂ  マーチャント
１７０Ｎ  マーチャント
【要約】
ネットワークを介してサーバの間で転送される位置データを暗号的に保護して、位置エンジンを調節するシステムおよび方法を本明細書で開示する。第１の暗号化モジュールは位置判定ごとの第１のハッシュ値を決定し、第１の暗号化プロトコルを用いて位置判定ごとの前記第１のハッシュ値を暗号化して、第１の暗号化されたデータ・セットを生成し、前記第１の暗号化されたデータ・セットをサーバに送信する。前記第１の暗号化モジュールは、前記サーバから、第２の暗号化プロトコルを用いて前記サーバの第２の暗号化モジュールにより生成された第２のハッシュ値を有する第２の暗号化されたデータ・セットを受信する。前記第１の暗号化モジュールは第１の二重暗号化されたデータ・セットを前記第２の暗号化されたデータ・セットから生成する。チューナは、前記第１の二重暗号化されたデータ・セットを前記サーバから受信された第２の二重暗号化されたデータ・セットと比較して、前記位置エンジンを調節する。【図１】
0006391853.tif 000024
【図２】
0006391853.tif 000025
【図３】
0006391853.tif 000026
【図４】
0006391853.tif 000027
【図５】
0006391853.tif 000028