JP7471475B2 - 安全なユニバーサル測定識別子構築のためのシステムおよび方法 - Google Patents

安全なユニバーサル測定識別子構築のためのシステムおよび方法 Download PDF

Info

Publication number
JP7471475B2
JP7471475B2 JP2022581610A JP2022581610A JP7471475B2 JP 7471475 B2 JP7471475 B2 JP 7471475B2 JP 2022581610 A JP2022581610 A JP 2022581610A JP 2022581610 A JP2022581610 A JP 2022581610A JP 7471475 B2 JP7471475 B2 JP 7471475B2
Authority
JP
Japan
Prior art keywords
associations
identifier
identifiers
data
encrypted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022581610A
Other languages
English (en)
Other versions
JP2023538804A (ja
Inventor
カーン・セス
クレイグ・ウィリアム・ライト
ライムンド・ミリソラ
エフゲニー・スクヴォルツォフ
ベンジャミン・アール・クロイター
マリアナ・ペトロヴァ・ライコヴァ
ジョン・マーク-リヒター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2023538804A publication Critical patent/JP2023538804A/ja
Application granted granted Critical
Publication of JP7471475B2 publication Critical patent/JP7471475B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Game Theory and Decision Science (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Selective Calling Equipment (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

関連出願の相互参照
本出願は、2020年11月9日に出願された米国仮特許出願第63/111485号の利益および優先権を主張し、その開示全体を参照により本明細書に組み込む。
分析システムが、コンテンツの特定のアイテムと相互作用したデバイスの数など、コンテンツとの相互作用に関する集計情報を決定することができることは役立つ場合がある。しかしながら、情報のプライバシを維持することに関心があることが多い。たとえば、エンティティは、特定のタイプのコンテンツが到達したデバイスの数、またはデバイスに関連付けられる識別子などの、情報のソースを識別することができる情報を受信せずにコンテンツと特定の方法で相互作用したデバイスの数に関する情報を受信することに関心がある場合がある。
P.C.T.出願番号US2019/064383号
本開示の一実装形態は、第1のコンピューティングシステムにおいて、暗号化された識別子を受信するステップと、第1のコンピューティングシステムによって、秘匿された暗号化された識別子を生成するために、暗号化された識別子に対して秘匿演算を実行するステップであって、秘匿演算が、暗号化された識別子を第1のコンピューティングシステムおよび第2のコンピューティングシステムから秘匿するが、秘匿された暗号化された識別子間の照合を可能にする、ステップと、第2のコンピューティングシステムによって、秘匿された識別子を生成するために、秘匿された暗号化された識別子を解読するステップと、第2のコンピューティングシステムによって、秘匿された識別子間の1つまたは複数の関連付けを生成するために、1つまたは複数の照合ルールを使用して秘匿された識別子を分析するステップと、第2のコンピューティングシステムによって、1つまたは複数の関連付けに基づいて1つまたは複数のユニバーサル識別子を生成するステップとを備える方法に関する。
いくつかの実装形態では、秘匿演算を実行するステップは、秘匿された暗号化された識別子を生成するために、暗号化された識別子を第2の暗号化で決定論的に暗号化するステップを含む。いくつかの実装形態では、秘匿演算は、暗号化された識別子をシャッフルするステップを含む。いくつかの実装形態では、秘匿された識別子を分析するステップは、1つまたは複数の関連付けを生成するために、秘匿された識別子のうちの1つまたは複数を照合するステップと、1つまたは複数の照合ルールを使用して、1つまたは複数の関連付けをスコアリングするステップと、スコアリングに基づいて1つまたは複数の関連付けを削除するステップとを含む。いくつかの実装形態では、1つまたは複数の関連付けをスコアリングするステップは、1つまたは複数の関連付けに関連付けられる1つまたは複数の秘匿された識別子のソースを決定するステップと、ソースを使用して1つまたは複数の照合ルールのルックアップを実行するステップと、ルックアップに基づいて1つまたは複数の関連付けにスコアを割り当てるステップとを含む。いくつかの実装形態では、本方法は、第2のコンピューティングシステムによって、1つまたは複数の関連付けの第2のセットを生成するために、1つまたは複数の異なる照合ルールを使用して、秘匿された識別子を分析するステップと、第2のコンピューティングシステムによって、1つまたは複数の異なる照合ルールを使用して生成された1つまたは複数の関連付けと、1つまたは複数の照合ルールを使用して生成された1つまたは複数の関連付けとの間で選択するステップとをさらに備える。いくつかの実装形態では、本方法は、1つまたは複数の関連付けの質を決定するステップと、決定された質に基づいて、1つまたは複数の照合ルールを繰り返し調整するステップとをさらに備える。いくつかの実装形態では、本方法は、第2のコンピューティングシステムによって、1つまたは複数のテスト関連付けを生成するために、1つまたは複数の照合ルールを使用して、知られている関連付けを有する識別子を分析するステップと、知られている関連付けを1つまたは複数のテスト関連付けと比較するステップと、比較に基づいて1つまたは複数の照合ルールを更新するステップとをさらに備える。いくつかの実装形態では、第1のコンピューティングシステムまたは第2のコンピューティングシステムのうちの少なくとも1つは、分散コンピューティングシステムである。
本開示の別の実装形態は、暗号化された識別子を受信することと、秘匿された暗号化された識別子を生成するために、暗号化された識別子に対して秘匿演算を実行することであって、秘匿演算が、暗号化された識別子を第1のコンピューティングシステムおよび第2のコンピューティングシステムから秘匿するが、秘匿された暗号化された識別子間の照合を可能にする、実行することとを行うように構成された第1のコンピューティングシステムと、秘匿された識別子を生成するために、秘匿された暗号化された識別子を解読することと、秘匿された識別子間の1つまたは複数の関連付けを生成するために、1つまたは複数の照合ルールを使用して、秘匿された識別子を分析することと、1つまたは複数の関連付けに基づいて1つまたは複数のユニバーサル識別子を生成することとを行うように構成された第2のコンピューティングシステムとを備える、ユニバーサル識別子を構築するためのシステムに関する。
いくつかの実装形態では、秘匿演算を実行するステップは、秘匿された暗号化された識別子を生成するために、暗号化された識別子を第2の暗号化で決定論的に暗号化するステップを含む。いくつかの実装形態では、秘匿演算は、暗号化された識別子をシャッフルするステップを含む。いくつかの実装形態では、秘匿された識別子を分析するステップは、1つまたは複数の関連付けを生成するために、秘匿された識別子のうちの1つまたは複数を照合するステップと、1つまたは複数の照合ルールを使用して、1つまたは複数の関連付けをスコアリングするステップと、スコアリングに基づいて1つまたは複数の関連付けを削除するステップとを含む。いくつかの実装形態では、1つまたは複数の関連付けをスコアリングするステップは、1つまたは複数の関連付けに関連付けられる1つまたは複数の秘匿された識別子のソースを決定するステップと、ソースを使用して1つまたは複数の照合ルールのルックアップを実行するステップと、ルックアップに基づいて1つまたは複数の関連付けにスコアを割り当てるステップとを含む。いくつかの実装形態では、第2のコンピューティングシステムは、1つまたは複数の関連付けの第2のセットを生成するために、1つまたは複数の異なる照合ルールを使用して、秘匿された識別子を分析することと、1つまたは複数の異なる照合ルールを使用して生成された1つまたは複数の関連付けと、1つまたは複数の照合ルールを使用して生成された1つまたは複数の関連付けとの間で選択することとを行うようにさらに構成される。いくつかの実装形態では、第2のコンピューティングシステムは、1つまたは複数の関連付けの質を決定することと、決定された質に基づいて、1つまたは複数の照合ルールを繰り返し調整することとを行うようにさらに構成される。いくつかの実装形態では、第2のコンピューティングシステムは、1つまたは複数のテスト関連付けを生成するために、1つまたは複数の照合ルールを使用して、知られている関連付けを有する識別子を分析することと、知られている関連付けを1つまたは複数のテスト関連付けと比較することと、比較に基づいて1つまたは複数の照合ルールを更新することとを行うようにさらに構成される。いくつかの実装形態では、第1のコンピューティングシステムまたは第2のコンピューティングシステムのうちの少なくとも1つは、分散コンピューティングシステムである。
本開示の別の実装形態は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、第1のコンピューティングシステムから、第1のコンピューティングシステムおよび1つまたは複数のプロセッサから秘匿されているが、秘匿された暗号化された識別子間の照合を可能にする、暗号化された識別子を有する秘匿された暗号化された識別子を受信することと、秘匿された識別子を生成するために、秘匿された暗号化された識別子を解読することと、秘匿された識別子間の1つまたは複数の関連付けを生成するために、1つまたは複数の照合ルールを使用して、秘匿された識別子を分析することと、1つまたは複数の関連付けに基づいて1つまたは複数のユニバーサル識別子を生成することとを行わせる命令を記憶した、1つまたは複数の非一時的コンピュータ可読ストレージ媒体に関する。
いくつかの実装形態では、秘匿された識別子を分析するステップは、1つまたは複数の関連付けを生成するために、秘匿された識別子のうちの1つまたは複数を照合するステップと、1つまたは複数の照合ルールを使用して、1つまたは複数の関連付けをスコアリングするステップと、スコアリングに基づいて1つまたは複数の関連付けを削除するステップとを含む。
様々な態様および実装形態は、必要に応じて組み合わせることができる。
例示的な実装形態による、ネットワークを介して相互作用する様々なエンティティを示す図である。 例示的な実装形態による、ネットワークを介して相互作用する様々なエンティティを示す図である。 一実装形態による、図1A~図1Bの様々なエンティティ間のデータ転送を示す図である。 例示的な実装形態による、安全なユニバーサル識別子の構築と分析の方法を示す流れ図である。 例示的な実装形態による、安全なユニバーサル識別子の構築と分析の方法を示す流れ図である。 例示的な実装形態による、図3A~図3Bの方法によるデータセット操作を示す図である。 例示的な実装形態による、コンピューティングシステムのブロック図である。
以下は、安全なユニバーサル測定識別子の構築のための方法、装置、およびシステムに関連する様々な概念、およびそれらの実装形態のより詳細な説明である。上記で導入され、以下でより詳細に議論される様々な概念は、説明された概念が任意の特定の実装方法に限定されないため、多数の方法のいずれかで実装され得る。
多くのドメインでは、コンテンツに起因する相互作用の集計数を決定することが必要または望ましい場合がある。たとえば、いくつかのコンテンツパブリッシャが、ユーザがオンライン相互作用を実行する前に閲覧するいくつかのコンテンツアイテムを表示する場合があり、表示されたコンテンツアイテムの数に関連付けられるオンライン相互作用の数(たとえば、オンライン相互作用を実行する前に特定のコンテンツアイテムを表示したユーザによって生成されたオンライン相互作用の数)を決定することが望ましい場合がある。様々な実装形態では、オンライン相互作用は様々な識別子に関連付けられ得る。たとえば、第1の識別子を有するデバイスは、第1のパブリッシャとの第1の相互作用を完了し、デバイスは、第2の識別子を使用して第2のパブリッシャとの第2の相互作用を完了し得る。様々な実装形態では、コンテンツに起因する相互作用の集計数を決定することは、第2の識別子に関連付けられる第2の相互作用が、第1の識別子に関連付けられる第1の相互作用と同じデバイスによって実行されたことを決定することを含む。
本開示のシステムおよび方法は、一般に、異なる識別子間の関連付けを決定することに関し、それによって、コンテンツに起因する相互作用の集計数を決定することを容易にする。より具体的には、本開示のシステムおよび方法は、様々なデータパーティ(たとえば、データプロバイダなど)からの識別子を安全に集計することと、識別子間の関連付けを決定することと、より安全な方法で識別子間の決定された関連付けを反映するユニバーサル測定識別子を生成することとを行うための、独自の暗号化およびコンピュータアーキテクチャの方法論に関する。通常、異なるエンティティからデータを集計するには、コンピューティングシステムがユーザ固有のデータにアクセスできる必要がある。たとえば、システムは、一致するユーザ識別子を有する値を合計することによって、集計カウントを決定し得る。個人情報の漏えいを避けるために、データを生成して報告する際には、ユーザのアイデンティティを隠して適切に保護する必要がある。
個人情報の露呈を防ぐ方法で特定の分析活動を実施することが望ましい。したがって、異なるエンティティからの識別子をより安全な方法で集計するための独自の暗号化およびコンピュータアーキテクチャの方法論が必要である。本開示の態様は、改善された暗号化方法およびコンピュータアーキテクチャを提供する。セキュリティを強化し、ユーザのプライバシも保護しながら、オンライン相互作用をコンテンツパブリッシャからのデータと安全な方法で相関させるために、暗号化方法およびアーキテクチャが使用され得る。
個人情報のプライバシおよびセキュリティを確保するために、本開示のシステムおよび方法は、エンティティ(たとえば、コンテンツプロバイダ、サードパーティなど)が個人情報を受信するのを防止するために、データを処理する。非限定的な実装形態の例は次のとおりである。第2のデータ処理システムは、非対称暗号化のための第1の公開鍵を生成し得る。第1のデータパーティコンピューティングシステムは、第1の公開鍵を使用して第1の識別子を暗号化し得、第2のデータパーティコンピューティングシステムは、第1の公開鍵を使用して第2の識別子を暗号化し得る。第1のデータ処理システムは、多数のデータパーティコンピューティングシステム(たとえば、パブリッシャなど)から多数の暗号化された識別子を受信し得る。第1のデータ処理システムは、楕円曲線暗号化のための秘密鍵を生成し得、二重暗号化された第1および第2の識別子を生成するために、秘密鍵を用いて、暗号化された第1および第2の識別子を暗号化し得る。第1のデータ処理システムは、二重暗号化された第1および第2の識別子を、楕円曲線(EC)で暗号化された第1および第2の識別子を生成するために二重暗号化された第1および第2の識別子を解読し得る第2のデータ処理システムに送信し得る。第2のデータ処理システムは、ECで暗号化された第1および第2の識別子の間の関連付けを識別するために(たとえば、第1の識別子は、第2の識別子と同じデバイスに対応するなど)、ECで暗号化された第1および第2の識別子を分析し得る。第2のデータ処理システムは、ユニバーサル測定識別子を生成し、ユニバーサル測定識別子を、EC暗号化された第1および第2の識別子のうちの1つまたは複数と関連付けることができる。第2のデータ処理システムは、第3のデータ処理システムから受信した公開鍵を用いてユニバーサル測定識別子を暗号化し得、暗号化されたユニバーサル測定識別子およびEC暗号化された第1および第2の識別子を第1のデータ処理システムに送信し得る。第1のデータ処理システムは、EC暗号化された第1および第2の識別子を解読して、暗号化されていない第1の識別子および暗号化されたユニバーサル測定識別子を第1のデータパーティコンピューティングシステムに送信し得、暗号化されていない第2の識別子および暗号化されたユニバーサル測定識別子を第2のデータパーティコンピューティングシステムに送信し得る。第1および第2のデータパーティコンピューティングシステムは、暗号化されたユニバーサル測定識別子を第3のデータ処理システムに送信し得、第3のデータ処理システムは、暗号化されたユニバーサル測定識別子を解読して、集計統計を決定するために暗号化されていないユニバーサル測定識別子を使用し得る。したがって、ユニバーサル測定システム(たとえば、第1、第2、および第3のデータ処理システムなど)は、個人情報を漏えいすることなく、識別子の集計を容易にし得る。
本開示のいくつかの実装形態では、ユーザは、本明細書に記載されているシステム、プログラム、または機能がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクション、または活動、職業、ユーザの好み、あるいはユーザの現在の位置に関する情報)の収集を可能にするかどうか、およびいつ可能にするかの両方について、ならびにユーザがサーバからコンテンツまたは通信を送信されるかどうかを選択できるようにする制御が提供され得る。さらに、特定のデータは、個人を特定できる情報が除去されるように、記憶または使用される前に1つまたは複数の方法で処理される場合がある。たとえば、ユーザのアイデンティティは、そのユーザの個人情報が決定されないように、または特定の個人情報のみが決定されるように、あるいは、位置情報が取得される場所でユーザの地理的な位置(都市、郵便番号、または州レベル)が一般化され、ユーザの特定の位置が決定されないように、処理される場合がある。したがって、ユーザは、ユーザに関してどの情報が収集されるか、その情報がどのように使用されるか、およびどの情報がユーザに提供されるかを制御し得る。
次に図1A~図1Bを参照すると、例示的な実装形態による、ユニバーサル測定識別子を安全に生成するためのシステム100が示されている。システム100は、ユニバーサル測定システム102、およびデータパーティコンピューティングシステム10を含む。様々な実装形態では、ユニバーサル測定システム102は、第1のデータ処理システム200、第2のデータ処理システム300、および第3のデータ処理システム400を含む。様々な実装形態では、システム100のコンポーネントは、ネットワーク60を介して通信する。ネットワーク60は、インターネット、ローカル、ワイド、メトロまたは他のエリアネットワーク、イントラネット、衛星ネットワーク、音声またはデータモバイル電話通信ネットワークなどの他のコンピュータネットワーク、それらの組合せ、あるいは任意の他のタイプの電子通信ネットワークなどのコンピュータネットワークを含み得る。ネットワーク60は、ディスプレイネットワーク(たとえば、コンテンツ配置または検索エンジン結果システムに関連付けられる、あるいはコンテンツアイテム配置キャンペーンの一部としてサードパーティのコンテンツアイテムを含める資格がある、インターネット上で利用可能な情報リソースのサブセット)を含むか、または構成し得る。様々な実装形態では、ネットワーク60は、システム100のコンポーネント間の安全な通信を容易にする。非限定的な例として、ネットワーク60は、トランスポート層セキュリティ(TLS)、セキュアソケット層(SSL)、ハイパーテキスト転送プロトコルセキュア(HTTPS)、および/または任意の他のセキュア通信プロトコルを実装し得る。
データパーティコンピューティングシステム10は、識別子などのデータをホストし得る。様々な実装形態では、データパーティコンピューティングシステム10は、パブリッシャ(たとえば、オンラインパブリッシャなど)に関連付けられている。様々な実装形態では、データは、コンテンツとのユーザ相互作用に関連付けられている。たとえば、データは、デバイス識別子と、オンラインコンテンツとの相互作用に関連付けられるタイムスタンプなど、デバイス識別子に関連付けられる相互作用を記述するデータを含み得る。いくつかの実装形態では、データは分類を含む。たとえば、データは、識別子タイプ(たとえば、電子メールアドレス、電話番号、デバイス識別子、アカウント識別子など)にそれぞれ関連付けられるいくつかの識別子を含み得る。様々な実装形態では、システム100は、いくつかのデータパーティコンピューティングシステム10を含み得る。たとえば、システム100は、10個のデータパーティコンピューティングシステム10から識別子を受信し、10個のデータパーティコンピューティングシステム10によって提供される識別子間の関連付けを決定し得る。
データパーティコンピューティングシステム10は、データベース12および処理回路14を含み得る。データベース12は、識別子などのデータを記憶し得る。たとえば、データベース12は、ウェブサイトに登録されたアカウントに関連付けられるアカウント識別子を記憶し得る。別の例として、データベース12は、アカウント識別子と、アカウント識別子に関連付けられる電子メールアドレスおよび/または電話番号とを記憶し得る。いくつかの実装形態では、異なるデータパーティコンピューティングシステム10によって記憶された識別子間に重複がある。たとえば、第1のデータパーティコンピューティングシステム10は、第2のデータパーティコンピューティングシステム10によって記憶されたいくつかの識別子と少なくとも部分的に重複するいくつかの識別子を記憶し得る(たとえば、同じ識別子を含むなど)。いくつかの実装形態では、データベース12は相互作用データを記憶する。相互作用データは、集計相互作用統計を生成するために後で使用され得る。データベース12は、1つまたは複数のストレージ媒体を含み得る。ストレージ媒体は、磁気ストレージ、光学ストレージ、フラッシュストレージ、および/またはRAMを含み得るが、これらに限定されない。データパーティコンピューティングシステム10は、データベース機能(すなわち、データベース12に記憶されたデータの管理)を実行するために、様々なAPIを実装してもよく、それを容易にしてもよい。APIは、SQL、ODBC、JDBC、および/または任意の他のデータストレージおよび操作APIにすることができるが、これらに限定されない。
処理回路14は、プロセッサ16およびメモリ18を含む。メモリ18は、プロセッサ16によって実行されると、処理回路14に、本明細書で説明する様々な演算を実行させる命令を記憶し得る。本明細書で説明する演算は、ソフトウェア、ハードウェア、またはそれらの組合せを使用して実装され得る。プロセッサ16は、マイクロプロセッサ、ASIC、FPGAなど、またはそれらの組合せを含み得る。多くの実装形態では、プロセッサ16は、マルチコアプロセッサまたはプロセッサのアレイであってもよい。プロセッサ16は、安全な環境を実装または促進し得る。たとえば、プロセッサ16は、メモリ18内のプライベート領域(たとえば、エンクレーブ)を定義するために、ソフトウェアガード拡張(SGX)を実装し得る。メモリ18は、電子、光学、磁気、またはプロセッサ16にプログラム命令を提供することができる任意の他のストレージデバイスを含み得るが、これらに限定されない。メモリ18は、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ROM、RAM、EEPROM、EPROM、フラッシュメモリ、光学媒体、またはプロセッサ16が命令を読み取ることができる任意の他の適切なメモリを含み得る。命令は、C、C++、C#、Java、JavaScript、Perl、HTML、XML、Python、およびVisual Basicなどの任意の適切なコンピュータプログラミング言語からのコードを含み得るが、これらに限定されない。
メモリ18は、第1の暗号化回路20を含み得る。図示された実装形態では、第1の暗号化回路20は、メモリ18内に記憶されたコンピュータまたは機械可読命令を使用して実装され得る。他の実装形態では、第1の暗号化回路20は、別個のハードウェア回路であってもよく、ハードウェアとソフトウェアの組合せを使用して実装されてもよい。第1の暗号化回路20は、暗号化されたデータを生成するために、入力データに対して1つまたは複数の暗号化機能を実装し得る。いくつかの実装形態では、第1の暗号化回路20は、非対称暗号化機能を実装する。様々な実装形態では、第1の暗号化回路20は、ElGamal(EG)暗号化プロトコルを実装する。たとえば、第1の暗号化回路20は、第2のデータ処理システム300から受信したEG公開鍵で識別子を暗号化し得る。様々な実装形態では、第1の暗号化回路20は可換暗号(commutative encryption)を実装する。たとえば、第1の暗号化回路20は、二重暗号化された値(たとえば、2つの異なる暗号化方式で暗号化された単一の値)を容易にするEG暗号化を実装し得る。様々な実装形態では、第1の暗号化回路は、ランダム化された暗号化を容易にする。たとえば、第1の暗号化回路20は、第1の暗号化された結果を生成するために第1の鍵を使用して第1の値を暗号化し得、第1の暗号化された結果とは異なる第2の暗号化された結果を生成するために第1の鍵を使用して第1の値を再度暗号化し得る(たとえば、異なる暗号文を生成する)。様々な実装形態では、第1の暗号化回路20は再ランダム化を容易にする。
次に、特に図1Aを参照すると、第1のデータ処理システム200は、外部データ(たとえば、データパーティデータなど)の処理を容易にし得る。様々な実装形態では、第1のデータ処理システム200は、処理済みデータ(たとえば、個人情報を含まないデータまたはより少ない個人情報を含むデータなど)を生成するために、データを受信し、そのデータを処理する。いくつかの実装形態では、第1のデータ処理システム200は、差分プライベートデータを生成する。いくつかの実装形態では、第1のデータ処理システム200は暗号化鍵を生成する。たとえば、第1のデータ処理システム200は、楕円曲線(EC)プライベート鍵を生成し得る。それに加えて、または代わりに、第1のデータ処理システム200は、1つまたは複数の他のシステムと協働してEG公開鍵を生成し得る(たとえば、第1のデータ処理システム200を複製するなど)。第1のデータ処理システム200は、サーバ、分散処理クラスタ、クラウド処理システム、または任意の他のコンピューティングデバイスであり得る。第1のデータ処理システム200は、少なくとも1つのコンピュータプログラムまたは少なくとも1つのスクリプトを含むか、または実行し得る。いくつかの実装形態では、第1のデータ処理システム200は、1つまたは複数のスクリプトを実行するように構成された1つまたは複数のプロセッサなど、ソフトウェアとハードウェアの組合せを含む。
第1のデータ処理システム200は、処理回路210を含むように示されている。処理回路210は、プロセッサ220およびメモリ230を含む。メモリ230は、プロセッサ220によって実行されると、処理回路210に本明細書で説明する様々な演算を実行させる命令を記憶し得る。処理回路210、プロセッサ220、および/またはメモリ230は、上述の処理回路14、プロセッサ16、ならびに/またはメモリ18と同様であり得る。メモリ230は、暗号化回路232、ランダム化回路234、および解読回路236を含み得る。
暗号化回路232は、暗号化されたデータを生成するために、入力データに対して1つまたは複数の暗号化機能を実装し得る。いくつかの実装形態では、暗号化回路232は対称暗号化機能(たとえば、ECなど)を実装する。いくつかの実装形態では、暗号化回路232は楕円曲線上でEC暗号化を実装する。たとえば、暗号化回路232は、いくつかの他のシステム(たとえば、第1のデータ処理システム200を複製するなど)を使用して協働的に生成された楕円曲線上で楕円曲線(EC)暗号化を実装し得る。それに加えて、または代わりに、暗号化回路232は、二次剰余の乗法群が安全な素数を法とするように、決定ディフィ-ヘルマン(DDH)問題が計算上扱いにくいと推定される任意の暗号システムを実装し得る。様々な実装形態では、暗号化回路232は1つまたは複数の暗号化鍵を生成する。たとえば、暗号化回路232は、秘密鍵(たとえば、プライベート鍵とも呼ばれる)を生成し得る。様々な実装形態では、暗号化回路232は、第1の暗号化回路20を参照して説明したように、様々な暗号化機能(たとえば、可換性、再ランダム化など)を容易にする。
様々な実装形態では、暗号化回路232は、識別子をEC秘密鍵で暗号化する。様々な実装形態では、暗号化回路232は決定論的暗号化を実装する。たとえば、暗号化回路232は、第1の暗号化された結果を生成するために第1の鍵で第1の値を暗号化し得、第1の暗号化された結果と同じである第2の暗号化された結果を生成するために第1の鍵で第1の値を再度暗号化し得る。様々な実装形態では、暗号化回路232は、等しいかどうかを比較され得る暗号化されたデータの生成を容易にする(たとえば、同じ鍵で暗号化された2つの値を比較するなど)。いくつかの実装形態では、暗号化回路232は、共同暗号化を容易にする。たとえば、データアイテムを暗号化するために、いくつかの暗号化回路232が協働し得る(たとえば、それぞれが暗号化の一部を追加するなど)。別の例として、ジョイント鍵EG暗号化(たとえば、閾値暗号化など)を実行するために、多数の暗号化回路232(たとえば、それぞれが異なる第1のデータ処理システム200などに関連付けられている)が協働し得る。暗号化スキームについては、2019年12月4日に出願されたP.C.T.出願番号US2019/064383号を参照して詳細に説明されており、その開示全体が参照により本明細書に組み込まれる。
ランダム化回路234は、データを受信し、ランダム化されたデータを生成するために様々なランダム化機能を実行し得る。非限定的な例として、ランダム化回路234は、暗黙的/間接的識別子(たとえば、到着時間、順序、発信IPアドレスなど)の除去、バッチ処理の実行、ノイズの導入、および/または任意の他の匿名化動作の実行を容易にし得る。様々な実装形態では、ランダム化回路234は、シャッフルされたデータを生成するために、受信されたデータをシャッフル(たとえば、再配置、順序変更など)する。いくつかの実装形態では、ランダム化回路234は、ハッシュされたデータを生成するために、入力データに1つまたは複数のハッシュ関数を実装する。たとえば、ランダム化回路234は、SHA-2、Scrypt、Balloon、および/またはArgon2ハッシュ関数を実装し得る。いくつかの実装形態では、ランダム化回路234は、後続の暗号化ラウンドを適用することによって暗号文の再ランダム化を容易にする。たとえば、ランダム化回路234は、EG暗号化値を最初に暗号化するために使用されたのと同じ鍵でEG暗号化値を2回暗号化することによって、EG暗号化値を再ランダム化し得る。
解読回路236は、暗号化されたデータを受信し、暗号化されていないデータを生成するために、それを解読し得る。様々な実装において、解読回路236は、第2のデータ処理システム300から暗号化されたデータを受信する。たとえば、解読回路236は、第2のデータ処理システム300から暗号化された識別子を受信し得る。解読回路236は、対称に暗号化されたデータを解読し得る。それに加えて、または代わりに、解読回路236は、対称および/またはしきい値暗号化されたデータを解読し得る。様々な実装形態では、解読回路236は、1つまたは複数の秘密(たとえば、秘密鍵など)を使用してデータを解読する。たとえば、解読回路236は、暗号化回路232によってデータを暗号化するために使用される秘密鍵を使用して、暗号化された識別子を解読し得る。様々な実装形態では、解読回路236は、EC暗号を解読する。いくつかの実装形態では、解読回路236は、しきい値解読スキームなどを通じて暗号化を協働的に解読する。
第2のデータ処理システム300は、異なるエンティティからの識別子を安全に分析することを容易にし得る。たとえば、第2のデータ処理システム300は、異なるエンティティからいくつかの識別子を受信し得、いくつかの識別子の間の任意の関連付けを決定するためにいくつかの識別子を比較し得、決定された関連付けに基づいて1つまたは複数のユニバーサル測定識別子を生成し得る。様々な実装形態では、第2のデータ処理システム300は、暗号化された識別子を受信して、結果(たとえば、リンクグラフ、ユニバーサル測定識別子など)を生成するために受信したデータを処理する。たとえば、第2のデータ処理システム300は、デバイス識別子を結合するためにマージング演算を実行して、ユニバーサル測定識別子を結合された識別子に割り当てることができる。第2のデータ処理システム300は、少なくとも1つのコンピュータプログラムまたは少なくとも1つのスクリプトを含むか、または実行し得る。いくつかの実装形態では、第2のデータ処理システム300は、1つまたは複数のスクリプトを実行するように構成された1つまたは複数のプロセッサなど、ソフトウェアとハードウェアの組合せを含む。
第2のデータ処理システム300は、データベース310および処理回路320を含むように示されている。データベース310は、識別子などのデータを記憶し得る。たとえば、データベース310は、様々な外部ソース(たとえば、データパーティコンピューティングシステム10など)から受信した識別子を記憶し得る。様々な実装形態では、データベース310は、識別子に関連付けられるコンテキストデータを記憶する。たとえば、データベース310は、各識別子のソース(たとえば、どの外部ソースが識別子を提供したかなど)を記述するデータを記憶し得る。別の例として、データベース310は、各識別子のタイプ(たとえば、電子メールアドレス、電話番号、口座番号など)を記述するデータを記憶し得る。いくつかの実装形態では、データベース310は、派生データを記憶する。たとえば、データベース310は、第2のデータ処理システム300によって生成されたリンクグラフを記憶し得る。データベース310は、1つまたは複数のストレージ媒体を含み得る。ストレージ媒体は、磁気ストレージ、光学ストレージ、フラッシュストレージ、および/またはRAMを含み得るが、これらに限定されない。第2のデータ処理システム300は、データベース機能(すなわち、データベース310に記憶されたデータの管理)を実行するために、様々なAPIを実装してもよく促進してもよい。APIは、SQL、ODBC、JDBC、および/または任意の他のデータストレージおよび操作APIにすることができるが、これらに限定されない。
処理回路320は、プロセッサ330およびメモリ340を含むように示されている。メモリ340は、プロセッサ330によって実行されると、処理回路310に本明細書で説明する様々な演算を実行させる命令を記憶し得る。メモリ340は、第1の暗号化回路342、第2の暗号化回路344、解読回路346、およびマージ回路348を含み得る。
第1の暗号化回路342は、暗号化されたデータを生成するために、入力データに対して1つまたは複数の暗号化機能を実装し得る。いくつかの実装形態では、第1の暗号化回路342は非対称暗号化機能(たとえば、EGなど)を実装する。いくつかの実装形態では、第1の暗号化回路342は楕円曲線上でEG暗号化を実装する。様々な実装形態では、第1の暗号化回路342は、第1の暗号化回路20と同様である。いくつかの実装形態では、第1の暗号化回路342は暗号化鍵を生成する。たとえば、第1の暗号化回路342は、公開鍵(たとえば、EG公開鍵)および秘密鍵(たとえば、EG秘密鍵)を生成し得る。いくつかの実装形態では、第1の暗号化回路342は、他のシステムと協力してEG公開鍵を生成する。いくつかの実装形態では、第1の暗号化回路342は、暗号化鍵(または、その一部)をシステム100の他のコンポーネント(たとえば、データパーティコンピューティングシステム10など)と共有する。様々な実装形態では、第1の暗号化回路342は、ランダム化回路234を参照して説明したように、様々な暗号化機能(たとえば可換性、再ランダム化など)を容易にする。
第2の暗号化回路344は、暗号化されたデータを生成するために、入力データに対して1つまたは複数の暗号化機能を実装し得る。いくつかの実装形態では、第2の暗号化回路344は非対称暗号化機能を実装する。たとえば、第2の暗号化回路344は、Rivest-Shamir-Adleman (RSA)暗号システムを実装し得る。追加の例として、第2の暗号化回路344は、第3のデータ処理システム400から受信した公開鍵を使用して暗号化を実行し得る。いくつかの実装形態では、第2の暗号化回路344は、第3のデータ処理システム400から受信したEG公開鍵を使用してEG暗号化を実装する。
解読回路346は、暗号化されたデータを受信し、暗号化されていないデータを生成するために、それを解読し得る。様々な実装形態では、解読回路346は、第1のデータ処理システム200から暗号化されたデータを受信する。たとえば、解読回路346は、第1のデータ処理システム200から暗号化された識別子を受信し得る。解読回路346は、非対称に暗号化されたデータを解読し得る。それに加えて、または代わりに、解読回路346は、対称および/またはしきい値暗号化されたデータを解読し得る。様々な実装形態では、解読回路346は、EC暗号化された識別子を生成するために、第1の暗号化回路342によって生成されたEG秘密鍵を使用して、第1のデータ処理システム200から受信した二重暗号化された識別子を解読する。様々な実装形態では、EC暗号化された識別子は、等しいかどうかを比較され得る。
マージ回路348は、匿名の(たとえば、暗号化されたなどの)データを受信し、出力データ(たとえば、1つまたは複数のユニバーサル測定識別子、リンクグラフなど)を生成し得る。様々な実装形態では、マージ回路348は、データの要素間の関連付けを決定するために受信データに対して統計演算を実行する。たとえば、マージ回路348は、異なる外部データパーティから発信されたいくつかの識別子が同じデバイスに関連付けられていると決定し得る。様々な実装形態では、マージ回路348は、識別子の結合を容易にする。たとえば、マージ回路348は、第1のプラットフォームからの第1の識別子を第2のプラットフォームからの第2の識別子と結合し得る。様々な実装形態では、マージ回路348は、暗号化された識別子の結合を容易にし、それによってユーザのプライバシを保護する。様々な実装形態では、マージ回路348は、1つまたは複数のルール(たとえば、照合ルールなど)を実装する。たとえば、マージ回路348は、異なる識別子間の関連付けを決定し、ユニバーサル測定識別子を生成するために、1つまたは複数の照合ルールを実装し得る。別の例として、マージ回路348は、異なる識別子間の関連付けを記述するリンクグラフを生成するために(たとえば、第1の識別子が第3の識別子を通じて第2の識別子に関連付けられるなど)1つまたは複数の照合ルールを実装し得る。照合ルールは、以下で図4を参照してより詳細に説明する。
第3のデータ処理システム400は、データに関連付けられる集計統計の決定を容易にし得る。たとえば、第3のデータ処理システム400は、相互作用データおよび暗号化されたユニバーサル測定識別子をデータパーティコンピューティングシステム10から受信し、リーチ、頻度、販売リフト、マルチタッチアトリビューション(MTA)などを含む集計統計を生成し得る。様々な実装形態では、第3のデータ処理システム400は、ユニバーサル測定識別子を使用して集計統計を生成する。第3のデータ処理システム400は、少なくとも1つのコンピュータプログラムまたは少なくとも1つのスクリプトを含むか、または実行し得る。いくつかの実装形態では、第3のデータ処理システム400は、1つまたは複数のスクリプトを実行するように構成された1つまたは複数のプロセッサなど、ソフトウェアとハードウェアの組合せを含む。
第3のデータ処理システム400は、プロセッサ420およびメモリ430を有する処理回路410を含むように示されている。メモリ430は、プロセッサ420によって実行されると、処理回路410に本明細書で説明する様々な演算を実行させる命令を記憶し得る。メモリ430は、第1の暗号化回路432、解読回路434、および分析回路436を含み得る。
第1の暗号化回路432は、暗号化されたデータを生成するために、入力データに対して1つまたは複数の暗号化機能を実装し得る。いくつかの実装形態では、第1の暗号化回路432は非対称暗号化機能(たとえば、EG、AHEなど)を実装する。いくつかの実装形態では、第1の暗号化回路432は暗号化鍵を生成する。たとえば、第1の暗号化回路432は、公開鍵(たとえば、AHE公開鍵)および秘密鍵(たとえば、AHE秘密鍵)を生成し得る。いくつかの実装形態では、第1の暗号化回路432は、システム100の他のコンポーネント(たとえば、第2のデータ処理システム300など)と暗号化鍵を共有する。様々な実装形態では、第1の暗号化回路432は、様々な暗号化機能(たとえば、加法性、スカラ乗算など)を容易にする。
解読回路434は、暗号化されたデータを受信し、暗号化されていないデータを生成するために、それを解読し得る。様々な実装形態では、解読回路434は、データパーティコンピューティングシステム10から暗号化されたデータを受信する。たとえば、解読回路434は、データパーティコンピューティングシステム10から暗号化されたユニバーサル測定識別子を受信し得る。解読回路434は、非対称に暗号化されたデータを解読し得る。それに加えて、または代わりに、解読回路434は、対称および/またはしきい値暗号化されたデータを解読し得る。いくつかの実装形態では、解読回路434は、共同解読を容易にする。たとえば、暗号化されたデータアイテムを解読するために、いくつかの解読回路434が協働し得る(たとえば、それぞれが暗号化の一部を除去するなど)。
分析回路436は、データを分析し、出力データを生成し得る。様々な実装形態では、オンライン相互作用に関連付けられる集計統計を生成するために、分析回路436は、相互作用データを分析する。たとえば、分析回路436は、いくつかのオンライン相互作用を記述するデータを受信し得、様々なオンライン相互作用間の関連付けを決定するために、1つまたは複数のユニバーサル測定識別子を使用し得る。いくつかの実装形態では、分析回路436は、相互作用データに関連付けられるリーチ、頻度、販売リフト、および/またはMTAなどの集計統計を生成する。
次に図2を参照すると、例示的な実装形態による、様々なソースからの識別子を安全に関連付け、ユニバーサル測定識別子を生成するための改良されたコンピュータアーキテクチャが示されている。簡単にまとめると、様々な外部データプロバイダ(たとえば、データパーティコンピューティングシステム10など)が識別子を提供し得、第1のデータ処理システム200、第2のデータ処理システム300、および/または第3のデータ処理システム400が、識別子間の関連付けを協働的に決定し、ユニバーサル測定識別子および/または他のデータ(たとえば、リンクグラフ、集計統計など)を生成し得る。たとえば、第2のデータ処理システム300は、第1の識別子(たとえば、口座番号など)が第2および第3の識別子(たとえば、それぞれ電子メールアドレスおよび電話番号など)に関連付けられていると決定し得る。
様々な実装形態では、コンテンツプロバイダおよび/またはコンテンツパブリッシャなどの外部データプロバイダは、ユーザがいつコンテンツと相互作用するかを知りたい場合がある。たとえば、ビデオを見せられたユーザがそのビデオをクリックすると、そのビデオを提供したパブリッシャは、何人のユーザがそのビデオをクリックしたかを知りたい場合がある。いくつかの実装形態では、ユーザは、コンテンツアイテムとの相互作用の結果として、パブリッシャによって提供される他のコンテンツと相互作用する。たとえば、ビデオを見せられたユーザは、ビデオにおいて紹介されていたアイテムを購入するために、パブリッシャによって維持されるウェブサイトに後でアクセスする場合がある。いくつかの実装形態では、相互作用がオンラインコンバージョンであるか、オンラインコンバージョンに関連付けられている。様々な実装形態では、コンテンツアイテムとの相互作用を測定するには、プラットフォーム間で異なる識別子を追跡する必要がある。たとえば、デバイスは、第1の識別子を使用して第1のプラットフォーム上の第1のコンテンツアイテムと相互作用し得、第2の識別子を使用して第2のプラットフォーム上の第2のコンテンツアイテムと相互作用し得、コンテンツプロバイダは、第1の相互作用を第2の相互作用とリンクすることを望む場合があり、それによって、第1の識別子が、第2の識別子と同じデバイスに関連付けられる(たとえば、属するなど)として識別されることが必要となる。したがって、個人情報を漏えいすることなく、安全かつ匿名で識別子を集計し、識別子間の関連付けを決定するシステムが必要である。本明細書で説明する新規の暗号化およびコンピュータアーキテクチャは、個人情報を漏えいすることなく、ユニバーサル測定識別子の安全かつ匿名の生成を容易にする。
ステップ502において、第2のデータ処理システム300は、EG公開鍵をデータパーティコンピューティングシステム10に送信し得る。様々な実装形態では、ステップ502は、EG公開鍵をいくつかのデータパーティコンピューティングシステム10および/または他の外部システムに送信することを含む。いくつかの実装形態では、EG公開鍵は、楕円曲線上でEG暗号化を実装することによって生成されるEG公開鍵である。
ステップ504において、データパーティコンピューティングシステム10は、暗号化された識別子を第1のデータ処理システム200に送信する。様々な実装形態では、暗号化された識別子は、第2のデータ処理システム300から受信したEG公開鍵を使用して(たとえば、データパーティコンピューティングシステム10などによって)暗号化される。様々な実装形態では、暗号化された識別子はコンテキストデータを含む。たとえば、暗号化された識別子は、暗号化された識別子のソースを記述するデータ(たとえば、暗号化された識別子がどのデータパーティから発信されたかなど。)および/または暗号化された識別子のタイプを記述するデータ(たとえば、電子メールアドレス、電話番号など)を含み得る。いくつかの実装形態では、コンテキストデータの少なくとも一部が暗号化される(たとえば、EG公開鍵などを使用して)。いくつかの実装形態では、コンテキストデータは、暗号化された識別子間の関連付けを記述する。たとえば、コンテキストデータは、第1の暗号化された識別子(たとえば、デバイス識別子)が第2の暗号化された識別子(たとえば、口座番号など)に関連付けられることを記述し得る。様々な実装形態では、第1のデータ処理システム200は、二重暗号化された識別子を生成するために、暗号化された識別子を暗号化する。様々な実装形態では、第1のデータ処理システム200は、ECプライベート鍵を使用して暗号化された識別子を暗号化する。様々な実装形態では、第1のデータ処理システム200は、受信データに対してランダム化演算を実行する。たとえば、第1のデータ処理システム200は、暗号化された識別子をシャッフルし得る(たとえば、表内の行を再配置するなど)。
ステップ506において、第1のデータ処理システム200は、二重暗号化された識別子を第2のデータ処理システム300に送信する。第2のデータ処理システム300は、EC暗号化された識別子を生成するために、二重暗号化された識別子を解読し得る。様々な実装形態では、第2のデータ処理システム300は、ステップ502中にデータパーティコンピューティングシステム10に送信されたEG公開鍵に対応するEGプライベート鍵を使用して、二重暗号化された識別子を解読する。様々な実装形態では、第2のデータ処理システム300は、EC暗号化された識別子間の関連付けを決定するために、EC暗号化された識別子間のマージプロセスを実行する。たとえば、第2のデータ処理システム300は、それらが同じ基礎となる識別子を表しているかどうかを決定するために、2つのEC暗号化された識別子を比較し得る。様々な実装形態では、第2のデータ処理システム300は、EC暗号化された識別子間の関連付けを決定するために、1つまたは複数の照合ルールを実行する。様々な実装形態では、決定された関連付けに基づいて、第2のデータ処理システム300は、1つまたは複数のユニバーサル測定識別子を生成する。たとえば、第2のデータ処理システム300は、第1のEC暗号化された識別子と第2のEC暗号化された識別子とをリンクするユニバーサル測定識別子を生成し得る。様々な実装形態では、第2のデータ処理システム300は、様々な識別子(たとえば、EC暗号化された識別子と生成されたユニバーサル測定識別子など)間の関連付けを記述するリンクグラフを生成する。
ステップ508において、第3のデータ処理システム400は、非対称暗号化公開鍵を第2のデータ処理システム300に送信する。様々な実装形態では、非対称暗号化公開鍵は、第3のデータ処理システム400によって生成されたEG公開鍵である。それに加えて、または代わりに、鍵は対称暗号化プライベート鍵であり得る。様々な実装形態では、第2のデータ処理システム300は、暗号化されたユニバーサル測定識別子を生成するために、受信した非対称暗号化公開鍵を使用して生成されたユニバーサル測定識別子を暗号化する。
ステップ510において、第2のデータ処理システム300は、データを第1のデータ処理システム200に送信する。たとえば、第2のデータ処理システム300は、EC暗号化された識別子および暗号化されたユニバーサル測定識別子を第1のデータ処理システム200に送信し得る。いくつかの実装形態では、第2のデータ処理システム300は、コンテキストデータなどの追加データを送信する。たとえば、第2のデータ処理システム300は、EC暗号化された識別子と暗号化されたユニバーサル測定識別子との間の関連付けを記述するリンクグラフを送信し得る。別の例として、第2のデータ処理システム300は、EC暗号化された識別子の各々の出所および/またはタイプを記述するコンテキストデータを送信し得る。様々な実装形態では、第1のデータ処理システム200は、暗号化されていない識別子を生成するために、ECプライベート鍵(たとえば、識別子を暗号化するために使用される同じECプライベート鍵など)を使用してEC暗号化された識別子を解読する。様々な実装形態では、第1のデータ処理システム200は、受信データに対してランダム化演算を実行する。たとえば、第1のデータ処理システム200は、受信したデータを再ランダム化(たとえば、同じ鍵を使用して再暗号化するなど)する、および/または受信したデータをシャッフルする(たとえば、表内の行を再配置するなど)ことができる。さらなる例として、第1のデータ処理システム200は、暗号化されたユニバーサル測定識別子を再暗号化するために、第3のデータ処理システム400からEG公開鍵を受信し、受信したEG公開鍵を使用し得る。
ステップ512において、第1のデータ処理システム200は、データをデータパーティコンピューティングシステム10に送信する。様々な実装形態では、データは少なくとも部分的に暗号化される。たとえば、データは、暗号化されていない識別子および暗号化されたユニバーサル測定識別子を含み得る。いくつかの実装形態では、データは、第2のデータ処理システム300によって生成されたリンクグラフを含む。様々な実装形態では、第1のデータ処理システム200は、データをいくつかの外部ソース(たとえば、いくつかのデータパーティコンピューティングシステム10など)に送信する。たとえば、第1のデータ処理システム200は、暗号化されたユニバーサル測定識別子だけでなく、識別子を提供した外部ソースの各々に、暗号化されていない識別子を送信し得る。
ステップ514において、データパーティコンピューティングシステム10は、データを第3のデータ処理システム400に送信する。様々な実装形態では、データは、暗号化されたユニバーサル測定識別子を含む。いくつかの実装形態では、データは、相互作用データおよび/または他の識別子を含む。それに加えて、または代わりに、データは、第2のデータ処理システム300によって生成されたリンクグラフ(または、その派生物)の少なくとも一部を含み得る。第3のデータ処理システム400は、暗号化されていないユニバーサル測定識別子を生成するために、暗号化されたユニバーサル測定識別子を(たとえば、非対称暗号化公開鍵に対応する非対称暗号化プライベート鍵を使用するなどして)暗号化解除し得る。第3のデータ処理システム400は、出力データを生成するために、データを分析し得る。たとえば、第3のデータ処理システム400は、オンライン相互作用に関連付けられる集計統計を決定するために、暗号化されていないユニバーサル測定識別子を使用して相互作用データを分析し得る。いくつかの実装形態では、出力データは、リーチ、頻度、販売リフト、MTA、および/または他のメトリクスを表すデータを含む。
ステップ516において、第3のデータ処理システム400は、データをデータパーティコンピューティングシステム10に送信する。様々な実装形態では、データは、オンライン相互作用に関連付けられる集計統計を含む。
次に図3A~図3Bを参照すると、例示的な実装形態による、ユニバーサル測定識別子を安全に生成するための方法600が示されている。様々な実装形態では、システム100は方法600を実行する。ステップ602において、システム100の要素は鍵生成および共有プロセスを実行する。たとえば、第2のデータ処理システム300は、EG公開鍵およびEGプライベート鍵を生成して、EG公開鍵を1つまたは複数の外部システム(たとえば、データパーティコンピューティングシステム10など)と共有し得、第1のデータ処理システム200は、ECプライベート鍵を生成し得、第3のデータ処理システム400は、EG公開鍵およびEGプライベート鍵を生成して、EG公開鍵を第2のデータ処理システム300と共有し得る。様々な実装形態では、鍵生成プロセス(または、その要素)は連続的に発生する。たとえば、システム100は、処理されるデータの新しいセットごとに鍵生成プロセスを実行し得る。いくつかの実装形態では、鍵生成プロセスは定期的に発生する。たとえば、システム100は、鍵生成プロセスを毎時間、毎日、毎週、および/または同様に実行し得る。
ステップ604において、データパーティコンピューティングシステム10は、単独で暗号化された識別子を生成するために、第1の公開鍵を使用して識別子を暗号化する。様々な実装形態では、識別子はデバイスおよび/または連絡先情報に関連付けられている。たとえば、識別子は、アカウント識別子、デバイス識別子、電子メール、パスワードなどを含み得る。いくつかの実装形態では、ステップ604は、識別子に関連付けられるコンテキストデータを暗号化することを含む。たとえば、ステップ604は、識別子のソースを記述するデータを暗号化することを含み得る。いくつかの実装形態では、識別子はランダム化された識別子を含む。たとえば、データパーティコンピューティングシステム10は、既存の識別子に関連付けられるランダム識別子を生成することと、生成されたランダム識別子の既存の識別子へのマッピングを保持することと、生成されたランダム識別子を暗号化することとを行うことができる。様々な実装形態では、公開鍵は、EG暗号化スキーム(たとえば、ジョイント鍵EG暗号化バリアントなど)用に生成された公開鍵である。
ステップ606において、データパーティコンピューティングシステム10は、単独で暗号化された識別子を第1のデータ処理システム200に送信する。様々な実装形態では、ステップ606は、コンテキストデータ(たとえば、メタデータなど)を送信することを含む。たとえば、ステップ606は、暗号化された識別子のタイプを記述する暗号化されていないデータを送信することを含み得る。様々な実装形態では、ステップ606は、単独で暗号化された識別子間の関連付けおよび/または接続を記述するデータを送信することを含む。たとえば、データパーティコンピューティングシステム10は、第1の単独で暗号化された識別子と第2の単独で暗号化された識別子との間の接続を記述する暗号化されたリンクグラフを送信し得る。いくつかの実装形態では、ステップ606は、単独で暗号化された識別子をいくつかの第1のデータ処理システム200に送信することを含む(たとえば、分散アーキテクチャ、複数の「ブラインダ」パーティを使用するシステムにおいて)。
ステップ608において、第1のデータ処理システム200は、単独で暗号化された識別子を受信する。様々な実装形態では、ステップ608は、データパーティコンピューティングシステム10から他のデータ(たとえば、コンテキストデータなど)を受信することを含む。ステップ610において、第1のデータ処理システム200は、二重暗号化された識別子を生成するために、第2の秘密鍵を使用して単独で暗号化された識別子を暗号化する。様々な実装形態では、第2の秘密鍵は、EC暗号化スキーム(たとえば、ポーリッヒ-ヘルマン暗号スキームなど)用に生成されたEC秘密鍵である。しかしながら、決定ディフィ-ヘルマン(DDH)問題が計算上難解であると推定される任意のグループを使用する暗号化スキームなどの、他の暗号化スキームが可能であることを理解する必要がある。いくつかの実装形態では、ステップ610は、受信および/または暗号化されたデータをシャッフルすることを含む。たとえば、第1のデータ処理システム200は、ステップ608においてデータを受信することと、ステップ610においてデータを暗号化することと、次いで暗号化されたデータをシャッフルすることとを行うことができる。
ステップ612において、第1のデータ処理システム200は、二重暗号化された識別子を第2のデータ処理システム300に送信する。様々な実装形態では、ステップ612は、コンテキストデータなどの他のデータを送信することを含む。ステップ614において、第2のデータ処理システム300は、二重暗号化された識別子を受信する。様々な実装形態では、ステップ614は、コンテキストデータなどの他のデータを受信することを含む。ステップ616において、第2のデータ処理システム300は、部分的に暗号化された識別子を生成するために、二重暗号化された識別子を第1の秘密鍵を使用して解読する。様々な実装形態では、第1の秘密鍵は、EG暗号化スキーム用に生成された秘密鍵である。
ステップ618において、第2のデータ処理システム300は、マージされたデータセットを生成するために、部分的に暗号化された識別子を使用してマージを実行する。様々な実装形態では、マージは、様々な部分的に暗号化された識別子間の関連付けを決定することを含む。たとえば、マージされたデータセットは、第1の部分的に暗号化された識別子と第2の部分的に暗号化された識別子との間の関連付けを記述し得る。いくつかの実装形態では、マージされたデータセットはリンクグラフを含む。様々な実装形態では、ステップ618は、1つまたは複数の照合ルールを使用してマージを実行することを含む。いくつかの実装形態では、第2のデータ処理システム300は、1つまたは複数の照合ルールを使用して、様々な部分的に暗号化された識別子間の関連付けをスコアリングする。たとえば、第2のデータ処理システム300は、第1の部分的に暗号化された識別子と第2の部分的に暗号化された識別子との間の関連付けの強度を表すスコアを生成し得る。様々な実装形態では、第2のデータ処理システム300は、データおよび/またはデータソースの質に基づいて関連付けをスコアリングする。たとえば、第2のデータ処理システム300は、信頼できないソースからの第1の部分的に暗号化された識別子と信頼できるソースからの第2の部分的に暗号化された識別子との間の関連付けに中程度のスコアを割り当てることができ、信頼できるソースからの第3と第4の部分的に暗号化された識別子の間の関連付けに高いスコアを割り当てることができる。様々な実装形態では、第2のデータ処理システム300は、部分的に暗号化された識別子に関連付けられるコンテキストデータに基づく照合ルールを使用してスコアを生成する。
いくつかの実装形態では、ステップ618は、異なる照合ルールに基づいて生成された関連付けの数および/または質を比較するために繰り返し実行される。たとえば、照合ルールの第1のセットは、3つの強い関連付けをもたらす場合があり、照合ルールの第2のセットは、10個の弱い関連付けをもたらす場合があり、第2のデータ処理システム300は、2つの関連付けのセットの間で選択し得る。いくつかの実装形態では、システム100は、照合ルールのパフォーマンスを分析するためにテストデータを注入する。たとえば、システム100は、グランドトゥルースデータ(たとえば、知られている関連付けを有する)を注入し得、第2のデータ処理システム300によって生成された結果の関連付けの質を測定し得、改善された関連付けを生成するために照合ルールを更新し得る。様々な実装形態では、システム100は、照合ルールおよび/または決定された関連付けの質を経時的に学習および改善する。
ステップ620において、第2のデータ処理システム300は、マージされたデータセットを使用してユニバーサル識別子およびリンクグラフを生成する。様々な実装形態では、ユニバーサル識別子は部分的に暗号化された識別子に関連付けられている。いくつかの実装形態では、リンクグラフは、ユニバーサル識別子および/または部分的に暗号化された識別子間の関連付けを記述する。たとえば、リンクグラフは、第1のユニバーサル識別子がいくつかの部分的に暗号化された識別子に関連付けられていることを示し得る。リンクグラフについては、以下で図4を参照してより詳細に説明する。様々な実装形態では、第2のデータ処理システム300は、照合ルールの反復的な改善を容易にするために、メタデータを外部システムに送信する。たとえば、第2のデータ処理システム300は、識別子タイプ、ジョイント分布、推移的接続の数、関連付けの数を示すヒストグラムなどに基づいて照合を記述するデータを送信し得る。
ステップ622において、第2のデータ処理システム300は、暗号化されたユニバーサル識別子を生成するために、第2の公開鍵を使用してユニバーサル識別子を暗号化する。様々な実装形態では、第2の公開鍵は、EG暗号化スキーム用に生成された公開鍵である。様々な実装形態では、第2の公開鍵は、第3のデータ処理システム400から受信される。
ステップ624において、第2のデータ処理システム300は、リンクグラフを第1のデータ処理システム200に送信する。様々な実装形態では、リンクグラフは、暗号化されたユニバーサル識別子を含む。それに加えて、または代わりに、ステップ624は、暗号化されたユニバーサル識別子を第1のデータ処理システム200に送信することを含み得る。ステップ626において、第1のデータ処理システム200はリンクグラフを受信する。様々な実装形態では、リンクグラフは、暗号化されたユニバーサル識別子および/または部分的に暗号化された識別子間の関連付けを記述する。ステップ628において、第1のデータ処理システム200は、暗号化されていない識別子を生成するために、第2の秘密鍵を使用して部分的に暗号化された識別子を解読する。様々な実装形態では、第2の秘密鍵は、EC暗号化スキームのために生成されたプライベート鍵である。
ステップ630において、第1のデータ処理システム200は、ランダム化演算を実行する。様々な実装形態では、ランダム化演算は、リンクグラフの行をシャッフルすることを含む(たとえば、リンクグラフは表で表され得、表の行はシャッフルされ得るなど)。それに加えて、または代わりに、ランダム化演算は、データの再ハッシュおよび/または再暗号化を含み得る。たとえば、暗号化されたユニバーサル識別子は、暗号化されたユニバーサル識別子の新しいハッシュを生成するために、第2の公開鍵を使用して再暗号化され得る。
ステップ632において、第1のデータ処理システム200は、リンクグラフをデータパーティコンピューティングシステム10に送信する。様々な実装形態では、ステップ632は、コンテキストデータおよび/または暗号化されていない識別子などの他のデータを送信することを含む。様々な実装形態では、ステップ632は、データをいくつかのをデータパーティコンピューティングシステム10(たとえば、識別子を提供したデータパーティコンピューティングシステム10の各々など)に送信することを含む。
ステップ634において、データパーティコンピューティングシステム10は、リンクグラフを受信する。様々な実装形態では、リンクグラフは、いくつかの暗号化されたユニバーサル識別子を含む。たとえば、リンクグラフは、いくつかの暗号化されたユニバーサル識別子と1つまたは複数の他の識別子との間の関連付けを記述し得る。ステップ636において、データパーティコンピューティングシステム10は、第3のデータ処理システム400およびリンクグラフを使用して分析結果を生成する。たとえば、データパーティコンピューティングシステム10は、リンクグラフおよび相互作用データを第3のデータ処理システム400に送信し得、第3のデータ処理システム400は、リンクグラフ内のユニバーサル識別子を暗号化解除し、集計相互作用測定値(たとえば、リーチ、頻度など)を生成し得る。
次に図4を参照すると、例示的な実装形態による、データセット操作が示されている。様々な実装形態では、システム100は、様々な識別子を含む様々なデータパーティコンピューティングシステム10からデータを受信することと、様々な識別子間の関連付けを決定することと(たとえば、識別子をマージするなど)、決定された関連付けに基づいてユニバーサル測定識別子を生成することとを行う。たとえば、システム100は、第1のデータパーティから第1の識別子を有する識別子の第1のセットと、第2のデータパーティから第2の識別子を有する識別子の第2のセットとを受信し得、第1の識別子と第2の識別子との間の関連付けを決定し得、第1の識別子と第2の識別子とをリンクするユニバーサル測定識別子を生成し得る。
様々な実装形態では、システム100は、1つまたは複数のデータパーティコンピューティングシステム10から表702を受信する。表702は、1つまたは複数の識別子および識別子間の関連付けを記述し得る。たとえば、表702は、第1の識別子704と第2の識別子706との間の関連付けを示すグラフ708として再フォーマットされ得る。一般的に言えば、システム100は、識別子間の関連付け712を記述するリンクグラフ710を生成するために(たとえば、「ID6」は「ID10」と関連付けられるなど)、表702内の第1の識別子704と第2の識別子706をマージし得る(たとえば、ステップ618中に)。様々な実装形態では、分析システム(たとえば、第3のデータ処理システム400など)は、様々なプラットフォームにわたるデバイス相互作用に関連付けられる集計統計を生成するために、リンクグラフ710を使用し得る。様々な実装形態では、システム100は、(たとえば、ステップ620中に)ユニバーサル識別子714を第1の識別子704および第2の識別子706に割り当てる。したがって、データパーティコンピューティングシステム10は、以前は知られていなかった関連付け712を知ることができる(たとえば、「ID6」が「ID10」に関連付けられているなど)。様々な実装形態では、システム100は、ユニバーサル識別子と様々な他の識別子との間の関連付けを記述するリンクグラフ710をデータパーティコンピューティングシステム10に送信する。
図5は、たとえば、本開示において説明される例示的なシステム(たとえば、システム100など)のいずれかを実装するために使用することができるコンピューティングシステム800の図を示している。コンピューティングシステム800は、情報を伝達するためのバス805または他の通信コンポーネントと、情報を処理するためにバス805に結合されているプロセッサ810とを含む。コンピューティングシステム800はまた、情報を記憶するためにバス805に結合されたランダムアクセスメモリ(「RAM」)または他の動的ストレージデバイスなどのメインメモリ815と、プロセッサ810によって実行される命令とを含む。メインメモリ815はまた、プロセッサ810による命令の実行中に、位置情報、一時変数、または他の中間情報を記憶するために使用することができる。コンピューティングシステム800は、プロセッサ810のための静的情報および命令を記憶するために、バス805に結合された読取り専用メモリ(「ROM」)820または他の静的ストレージデバイスをさらに含み得る。ソリッドステートデバイス、磁気ディスク、または光ディスクなどのストレージデバイス825は、情報および命令を永続的に記憶するためにバス805に結合される。
コンピューティングシステム800は、ユーザに情報を表示するために、バス805を介して液晶ディスプレイまたはアクティブマトリックスディスプレイなどのディスプレイ835に結合され得る。英数字および他のキーを含むキーボードなどの入力デバイス830は、情報およびコマンド選択をプロセッサ810に伝達するために、バス805に結合され得る。別の実装形態では、入力デバイス830はタッチスクリーンディスプレイ835を有する。入力デバイス830は、方向情報およびコマンド選択をプロセッサ810に伝達し、ディスプレイ835上のカーソル移動を制御するための、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御を含むことができる。
いくつかの実装形態では、コンピューティングシステム800は、ネットワークアダプタなどの通信アダプタ840を含み得る。通信アダプタ840はバス805に結合され得、コンピューティングまたは通信ネットワーク845および/または他のコンピューティングシステムとの通信を可能にするように構成され得る。様々な例示的な実装形態では、ワイヤード(たとえば、イーサネットを介して)、ワイヤレス(たとえば、Wi-Fi、Bluetoothなどを介して)、事前構成済み、アドホック、LAN、WANなどの通信アダプタ840を使用して、任意のタイプのネットワーク構成が実現され得る。
様々な実装形態によれば、本明細書で説明される例示的な実装形態を実現するプロセスは、プロセッサ810がメインメモリ815に含まれる命令の配列を実行することに応答して、コンピューティングシステム800によって達成することができる。そのような命令は、ストレージデバイス825などの別のコンピュータ可読媒体からメインメモリ815に読み込むことができる。メインメモリ815に含まれる命令配列の実行により、コンピューティングシステム800は、本明細書で説明される例示的なプロセスを実行する。メインメモリ815に含まれる命令を実行するために、マルチプロセッシング構成における1つまたは複数のプロセッサも採用され得る。代替の実装では、例示的な実装形態を実装するために、ハードワイヤード回路がソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用され得る。したがって、実装形態は、ハードウェア回路とソフトウェアの任意の特定の組合せに限定されない。
図5において例示的な処理システムが説明されたが、本明細書に記載された主題および機能動作の実装形態は、他のタイプのデジタル電子回路を使用して、または本明細書に開示された構造およびそれらの構造的等価物を含むコンピュータソフトウェア、ファームウェア、またはハードウェアにおいて、あるいはそれらの1つまたは複数の組合せにおいて実行することができる。
上記の説明に加えて、ユーザは、本明細書に記載されているシステム、プログラム、または機能がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクション、または活動、職業、ユーザの好み、あるいはユーザの現在の位置に関する情報)の収集を可能にするかどうか、およびいつ可能にするかの両方について、ならびにユーザがサーバからコンテンツまたは通信を送信されるかどうかを選択できるようにする制御が提供され得る。さらに、特定のデータは、個人を特定できる情報が除去されるように、記憶または使用される前に1つまたは複数の方法で処理される場合がある。たとえば、ユーザのアイデンティティは、そのユーザの個人を特定できる情報が決定されないように、または、位置情報が取得される場所でユーザの地理的な位置(都市、郵便番号、または州レベル)が一般化され、ユーザの特定の位置が決定されないように、処理される場合がある。したがって、ユーザは、ユーザに関してどの情報が収集されるか、その情報がどのように使用されるか、およびどの情報がユーザに提供されるかを制御し得る。本明細書に記載されているシステムが、ユーザまたはユーザのデバイスにインストールされているアプリケーションに関する個人情報を収集する、または個人情報を利用する状況では、ユーザは、プログラムまたは機能がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクション、または活動、職業、ユーザの好み、あるいはユーザの現在の位置に関する情報)を収集するかどうかを制御する機会が提供される。それに加えて、または代わりに、特定のデータは、個人情報が除去されるように、記憶または使用される前に1つまたは複数の方法で処理される場合がある。
本明細書に記載された主題および動作の実装形態は、デジタル電子回路を使用して、または本明細書に開示された構造およびそれらの構造的等価物を含む、有形の媒体で具現化されたコンピュータソフトウェア、ファームウェア、またはハードウェアにおいて、あるいはそれらの1つまたは複数の組合せにおいて実行することができる。本明細書に記載された主題の実装形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行、またはデータ処理装置の動作を制御するために1つまたは複数のコンピュータストレージ媒体にエンコードされたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。代わりに、またはそれに加えて、プログラム命令は、人工的に生成された伝搬信号、たとえば、データ処理装置による実行のために適切な受信装置に伝送するための情報をエンコードするために生成される機械生成された電気信号、光信号、または電磁気信号上でエンコードすることができる。コンピュータ可読ストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、あるいはそれらの1つまたは複数の組合せであり得るか、またはそれらに含まれ得る。さらに、コンピュータストレージ媒体は伝播信号ではないが、コンピュータストレージ媒体は、人工的に生成された伝播信号にエンコードされたコンピュータプログラム命令のソースまたは宛先となり得る。コンピュータストレージ媒体はまた、1つまたは複数の別個のコンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)であり得るか、またはそれらに含まれ得る。したがって、コンピュータストレージ媒体は有形および非一時的の両方である。
本明細書に記載された動作は、1つまたは複数のコンピュータ可読ストレージデバイスに記憶された、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装することができる。
「データ処理装置」または「コンピューティングデバイス」という用語は、データを処理するためのすべての種類の装置、デバイス、および機械を包含し、例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または複数のもの、あるいは上記の組合せを含む。装置は、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路を含むことができる。装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらの1つまたは複数の組合せを構成するコードを含むことができる。この装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなど、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含む、任意の形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、あるいはコンピューティング環境における使用に適した他のユニットとして含む、任意の形式で展開することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応する場合があるが、必ずしもそうである必要はない。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプト)を保持するファイルの一部に、問題のプログラム専用の単一ファイルに、または複数の調整されたファイル(たとえば、1つまたは複数のモジュール、サブプログラム、あるいはコードの一部を記憶するファイル)に記憶することができる。コンピュータプログラムは、1台のコンピュータ、あるいは1つのサイトに配置された、または複数のサイトに分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。
本明細書に記載されたプロセスおよび論理フローは、入力データ上で動作して出力を生成することによってアクションを実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローは、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によって実行することもでき、装置をそれとして実装することもできる。本明細書で利用される回路は、ハードウェア回路(たとえば、FPGA、ASICなど)、ソフトウェア(1つまたは複数のコンピュータ可読ストレージ媒体に記憶され、1つまたは複数のプロセッサによって実行可能な命令)、またはそれらの任意の組合せを使用して実装され得る。
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令とデータを受信する。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサと、命令とデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば磁気、光磁気ディスク、または光ディスクを含むか、そこからデータを受信する、またはそこにデータを転送するように動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを備えている必要はない。さらに、コンピュータは、たとえば、ほんの数例を挙げると、モバイル電話、携帯情報端末(「PDA」)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(「GPS」)受信機、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(「USB」)フラッシュドライブ)などの別のデバイスに組み込むことができる。コンピュータプログラム命令およびデータを記憶するために適したデバイスは、すべての形態の不揮発性メモリ、メディア、およびメモリデバイスを含み、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む。プロセッサおよびメモリは、専用論理回路によって補足されるかまたはそこに組み込むことができる。
ユーザとの相互作用を提供するために、本明細書に記載された主題の実装形態は、表示装置、たとえば、ユーザに情報を表示するためのCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにユーザがコンピュータに入力を提供することができるキーボードおよびマウスまたはトラックボールなどのポインティングデバイスを有するコンピュータを使用して実行することができる。ユーザとの相互作用を提供するために、他の種類のデバイスを使用することもでき、たとえば、ユーザに提供されるフィードバックは、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなど、任意の形態の感覚的フィードバックである可能性があり、また、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信することができる。さらに、コンピュータは、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、たとえば、ウェブブラウザから受信した要求に応じて、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと相互作用することができる。
本明細書に記載された主題の実装形態は、たとえばデータサーバとしてバックエンドコンポーネントを含むか、たとえばアプリケーションサーバなどのミドルウェアコンポーネントを含むか、フロントエンドコンポーネント、たとえば、ユーザが本明細書に記載された主題の実装形態と相互作用できるグラフィカルユーザインターフェースまたはウェブブラウザを備えたクライアントコンピュータを含むコンピューティングシステム、あるいは、1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを使用して実行することができる。システムのコンポーネントは、通信ネットワークなどの任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、ネットワーク間(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは通常、互いにリモートであり、通常は通信ネットワークを通じて相互作用する。クライアントおよびサーバの関係は、それぞれのコンピュータで実行され、クライアントおよびサーバの関係を相互に有するコンピュータプログラムによって発生する。いくつかの実装形態では、サーバは、データ(たとえば、HTMLページ)をクライアントデバイスに伝送する(たとえば、データを表示し、クライアントデバイスと相互作用するユーザからユーザの入力を受信する目的で)。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ相互作用の結果)は、サーバにおいてクライアントデバイスから受信することができる。
本明細書は多くの特定の実装形態の詳細を含むが、これらは、任意の発明の範囲または特許請求の範囲に対する限定として解釈されるべきではなく、特定の発明の特定の実装形態に固有の機能の説明として解釈されるべきである。別個の実施形態の文脈において本明細書に記載されている特定の機能はまた、組み合わせて、または単一の実装形態において実行することができる。逆に、単一の実装形態の文脈において説明される様々な機能は、複数の実装形態において別々に、または任意の適切なサブコンビネーションにおいて実行することもできる。さらに、特徴は、特定の組合せにおいて作用するものとして上記で説明され得、最初にそのように主張されているが、主張される組合せからの1つまたは複数の機能は、場合によっては組合せから切り出すことができ、主張される組合せは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられ得る。さらに、特定の見出しに関して説明された機能は、他の見出しの下で説明された例示的な実装形態に関して、および/またはそれらと組み合わせて利用され得、見出しが提供されている場合、読みやすさのみを目的として含まれており、そのような見出しに関して提供されている任意の機能を限定するものと解釈されるべきではない。
同様に、動作は特定の順序で図面に示されているが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序または連続した順序で実行されること、または図示されるすべての動作が実行されることを必要とすることとして理解されるべきではない。特定の状況では、マルチタスキングおよび並列処理が有利な場合がある。さらに、上記の実装形態における様々なシステムコンポーネントの分離は、すべての実装形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に一緒に統合されるか、または有形の媒体に具現化された複数のソフトウェア製品にパッケージ化され得ることが理解されるべきである。
このように、主題の特定の実装形態が説明された。他の実装形態は、添付の特許請求の範囲内にある。場合によっては、特許請求の範囲に記載されているアクションは、異なる順序で実行することができ、依然として望ましい結果を達成することができる。さらに、添付の図面に示されているプロセスは、望ましい結果を達成するために、必ずしも示されている特定の順序または連続した順序を必要としない。特定の実装形態では、マルチタスキングおよび並列処理が有利な場合がある。
10 データパーティコンピューティングシステム
12 データベース
14 処理回路
16 プロセッサ
18 メモリ
20 第1の暗号化回路
22 第2の暗号化回路
60 ネットワーク
100 システム
102 ユニバーサル測定システム
200 第1のデータ処理システム
210 処理回路
220 プロセッサ
230 メモリ
232 暗号化回路
234 ランダム化回路
236 解読回路
300 第2のデータ処理システム
310 データベース、処理回路
320 処理回路
330 プロセッサ
338 分析回路
340 メモリ
342 第1の暗号化回路
344 第2の暗号化回路
346 解読回路
348 マージ回路
400 第3のデータ処理システム
410 処理回路
420 プロセッサ
430 メモリ
432 第1の暗号化回路
434 解読回路
436 分析回路
600 方法
702 表
704 第1の識別子
706 第2の識別子
708 グラフ
710 リンクグラフ
712 関連付け
714 ユニバーサル識別子
810 プロセッサ
800 コンピューティングシステム
805 バス
810 プロセッサ
815 メインメモリ
820 読取り専用メモリ(「ROM」)
825 ストレージデバイス
830 入力デバイス
835 タッチスクリーンディスプレイ
840 通信アダプタ
845 コンピューティングまたは通信ネットワーク

Claims (20)

  1. 第1のコンピューティングシステムにおいて、暗号化された識別子を受信するステップと、
    前記第1のコンピューティングシステムによって、秘匿された暗号化された識別子を生成するために、前記暗号化された識別子に対して秘匿演算を実行するステップであって、前記秘匿演算が、前記暗号化された識別子を前記第1のコンピューティングシステムおよび第2のコンピューティングシステムから秘匿するが、前記秘匿された暗号化された識別子間の照合を可能にする、ステップと、
    前記第2のコンピューティングシステムによって、秘匿された識別子を生成するために、前記秘匿された暗号化された識別子を解読するステップと、
    前記第2のコンピューティングシステムによって、前記秘匿された識別子間の1つまたは複数の関連付けを生成するために、1つまたは複数の照合ルールを使用して、前記秘匿された識別子を分析するステップと、
    前記第2のコンピューティングシステムによって、前記1つまたは複数の関連付けに基づいて1つまたは複数のユニバーサル識別子を生成するステップと
    を備える、方法。
  2. 前記秘匿演算を実行するステップが、前記秘匿された暗号化された識別子を生成するために、前記暗号化された識別子を第2の暗号化で決定論的に暗号化するステップを含む、請求項1に記載の方法。
  3. 前記秘匿演算が、前記暗号化された識別子をシャッフルするステップを含む、請求項1に記載の方法。
  4. 前記秘匿された識別子を分析するステップが、
    前記1つまたは複数の関連付けを生成するために、前記秘匿された識別子のうちの1つまたは複数を照合するステップと、
    前記1つまたは複数の照合ルールを使用して、前記1つまたは複数の関連付けをスコアリングするステップと、
    前記スコアリングに基づいて前記1つまたは複数の関連付けを削除するステップと
    を含む、請求項1に記載の方法。
  5. 前記1つまたは複数の関連付けをスコアリングするステップが、
    前記1つまたは複数の関連付けに関連付けられる前記1つまたは複数の秘匿された識別子のソースを決定するステップと、
    前記ソースを使用して前記1つまたは複数の照合ルールのルックアップを実行するステップと、
    前記ルックアップに基づいて前記1つまたは複数の関連付けにスコアを割り当てるステップと
    を含む、請求項4に記載の方法。
  6. 前記第2のコンピューティングシステムによって、1つまたは複数の関連付けの第2のセットを生成するために、1つまたは複数の異なる照合ルールを使用して、前記秘匿された識別子を分析するステップと、
    前記第2のコンピューティングシステムによって、前記1つまたは複数の異なる照合ルールを使用して生成された前記1つまたは複数の関連付けと、前記1つまたは複数の照合ルールを使用して生成された前記1つまたは複数の関連付けとの間で選択するステップと
    をさらに備える、請求項1に記載の方法。
  7. 前記1つまたは複数の関連付けの質を決定するステップと、
    前記決定された質に基づいて、前記1つまたは複数の照合ルールを繰り返し調整するステップと
    をさらに備える、請求項1に記載の方法。
  8. 前記第2のコンピューティングシステムによって、1つまたは複数のテスト関連付けを生成するために、前記1つまたは複数の照合ルールを使用して、知られている関連付けを有する識別子を分析するステップと、
    前記知られている関連付けを前記1つまたは複数のテスト関連付けと比較するステップと、
    前記比較に基づいて前記1つまたは複数の照合ルールを更新するステップと
    をさらに備える、請求項1に記載の方法。
  9. 前記第1のコンピューティングシステムまたは前記第2のコンピューティングシステムのうちの少なくとも1つが分散コンピューティングシステムである、請求項1に記載の方法。
  10. ユニバーサル識別子を構築するためのシステムであって、
    暗号化された識別子を受信することと、
    秘匿された暗号化された識別子を生成するために、前記暗号化された識別子に対して秘匿演算を実行することであって、前記秘匿演算が、前記暗号化された識別子を第1のコンピューティングシステムおよび第2のコンピューティングシステムから秘匿するが、前記秘匿された暗号化された識別子間の照合を可能にする、実行することと
    を行うように構成された前記第1のコンピューティングシステムと、
    秘匿された識別子を生成するために、前記秘匿された暗号化された識別子を解読することと、
    前記秘匿された識別子間の1つまたは複数の関連付けを生成するために、1つまたは複数の照合ルールを使用して、前記秘匿された識別子を分析することと、
    前記1つまたは複数の関連付けに基づいて1つまたは複数のユニバーサル識別子を生成することと
    を行うように構成された前記第2のコンピューティングシステムと、
    を備える、システム。
  11. 前記秘匿演算を実行することが、前記秘匿された暗号化された識別子を生成するために、前記暗号化された識別子を第2の暗号化で決定論的に暗号化することを含む、請求項10に記載のシステム。
  12. 前記秘匿演算が、前記暗号化された識別子をシャッフルすることを含む、請求項10に記載のシステム。
  13. 前記秘匿された識別子を分析することが、
    前記1つまたは複数の関連付けを生成するために、前記秘匿された識別子のうちの1つまたは複数を照合することと、
    前記1つまたは複数の照合ルールを使用して、前記1つまたは複数の関連付けをスコアリングすることと、
    前記スコアリングに基づいて前記1つまたは複数の関連付けを削除することと
    を含む、請求項10に記載のシステム。
  14. 前記1つまたは複数の関連付けをスコアリングすることが、
    前記1つまたは複数の関連付けに関連付けられる前記1つまたは複数の秘匿された識別子のソースを決定することと、
    前記ソースを使用して前記1つまたは複数の照合ルールのルックアップを実行することと、
    前記ルックアップに基づいて前記1つまたは複数の関連付けにスコアを割り当てることと
    を含む、請求項13に記載のシステム。
  15. 前記第2のコンピューティングシステムが、
    1つまたは複数の関連付けの第2のセットを生成するために、1つまたは複数の異なる照合ルールを使用して、前記秘匿された識別子を分析することと、
    前記1つまたは複数の異なる照合ルールを使用して生成された前記1つまたは複数の関連付けと、前記1つまたは複数の照合ルールを使用して生成された前記1つまたは複数の関連付けとの間で選択することと
    を行うようにさらに構成される、請求項10に記載のシステム。
  16. 前記第2のコンピューティングシステムが、
    前記1つまたは複数の関連付けの質を決定することと、
    前記決定された質に基づいて、前記1つまたは複数の照合ルールを繰り返し調整することと
    を行うようにさらに構成される、請求項10に記載のシステム。
  17. 前記第2のコンピューティングシステムが、
    1つまたは複数のテスト関連付けを生成するために、前記1つまたは複数の照合ルールを使用して、知られている関連付けを有する識別子を分析することと、
    前記知られている関連付けを前記1つまたは複数のテスト関連付けと比較することと、
    前記比較に基づいて前記1つまたは複数の照合ルールを更新することと
    を行うようにさらに構成される、請求項10に記載のシステム。
  18. 前記第1のコンピューティングシステムまたは前記第2のコンピューティングシステムのうちの少なくとも1つが分散コンピューティングシステムである、請求項10に記載のシステム。
  19. 1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
    第1のコンピューティングシステムから、前記第1のコンピューティングシステムおよび前記1つまたは複数のプロセッサから秘匿されているが、前記秘匿された暗号化された識別子間の照合を可能にする、暗号化された識別子を有する秘匿された暗号化された識別子を受信することと、
    秘匿された識別子を生成するために、前記秘匿された暗号化された識別子を解読することと、
    前記秘匿された識別子間の1つまたは複数の関連付けを生成するために、1つまたは複数の照合ルールを使用して、前記秘匿された識別子を分析することと、
    前記1つまたは複数の関連付けに基づいて1つまたは複数のユニバーサル識別子を生成することと
    を行わせる命令を記憶した、1つまたは複数の非一時的コンピュータ可読ストレージ媒体。
  20. 前記秘匿された識別子を分析することが、
    前記1つまたは複数の関連付けを生成するために、前記秘匿された識別子のうちの1つまたは複数を照合することと、
    前記1つまたは複数の照合ルールを使用して、前記1つまたは複数の関連付けをスコアリングすることと、
    前記スコアリングに基づいて前記1つまたは複数の関連付けを削除することと
    を含む、請求項19に記載の1つまたは複数の非一時的コンピュータ可読ストレージ媒体。
JP2022581610A 2020-11-09 2021-07-09 安全なユニバーサル測定識別子構築のためのシステムおよび方法 Active JP7471475B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063111485P 2020-11-09 2020-11-09
US63/111,485 2020-11-09
PCT/US2021/041125 WO2022098400A1 (en) 2020-11-09 2021-07-09 Systems and methods for secure universal measurement identifier construction

Publications (2)

Publication Number Publication Date
JP2023538804A JP2023538804A (ja) 2023-09-12
JP7471475B2 true JP7471475B2 (ja) 2024-04-19

Family

ID=77227117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022581610A Active JP7471475B2 (ja) 2020-11-09 2021-07-09 安全なユニバーサル測定識別子構築のためのシステムおよび方法

Country Status (8)

Country Link
US (1) US20230177172A1 (ja)
EP (1) EP4154151A1 (ja)
JP (1) JP7471475B2 (ja)
KR (1) KR20230015964A (ja)
CN (1) CN115917544A (ja)
AU (1) AU2021376160B2 (ja)
CA (1) CA3181700A1 (ja)
WO (1) WO2022098400A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230289848A1 (en) * 2022-03-09 2023-09-14 Promoted.ai, Inc. Unified presentation of cross-platform content to a user visiting a platform

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003007540A1 (en) 2001-07-13 2003-01-23 Universita' Degli Studi Di Roma 'la Sapienza' Commutative encryption/decryption method
JP2015517163A (ja) 2012-04-27 2015-06-18 グーグル・インコーポレーテッド 複数のデバイスにわたるプライバシー管理
US20160078431A1 (en) 2014-09-11 2016-03-17 Google Inc. Encrypted aggregated transaction data exchange with transaction data provider
US9641332B1 (en) 2013-01-30 2017-05-02 Google Inc. Privacy-preserving measurements of a campaign
WO2019098941A1 (en) 2017-11-20 2019-05-23 Singapore Telecommunications Limited System and method for private integration of datasets

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150235275A1 (en) * 2014-02-20 2015-08-20 Turn Inc. Cross-device profile data management and targeting
US10715612B2 (en) * 2015-09-15 2020-07-14 Oath Inc. Identifying users' identity through tracking common activity

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003007540A1 (en) 2001-07-13 2003-01-23 Universita' Degli Studi Di Roma 'la Sapienza' Commutative encryption/decryption method
JP2015517163A (ja) 2012-04-27 2015-06-18 グーグル・インコーポレーテッド 複数のデバイスにわたるプライバシー管理
US9641332B1 (en) 2013-01-30 2017-05-02 Google Inc. Privacy-preserving measurements of a campaign
US20160078431A1 (en) 2014-09-11 2016-03-17 Google Inc. Encrypted aggregated transaction data exchange with transaction data provider
WO2019098941A1 (en) 2017-11-20 2019-05-23 Singapore Telecommunications Limited System and method for private integration of datasets

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BRACK, S. et al.,Recommender Systems on Homomorphically Encrypted Databases for Enhanced User Privacy,2019 IEEE 44th LCN Symposium on Emerging Topics in Networking,2019年10月14日,pp.74-82
ION, M. et al.,On Deploying Secure Computing Commercially: Private Intersection-Sum Protocols and their Business Ap,Cryptology ePrint Archive,Paper 2019/723 ver.20190618:153102,[online],2019年06月18日,pp.1-48,<URL:https://eprint.iacr.org/archive/2019/723/20190618:153102>
LIU, D. et al.,Towards Private and Efficient Ad Impression Aggregation in Mobile Advertising,2019 IEEE International Conference on Communicaitons (ICC),2019年05月,pp.1-6

Also Published As

Publication number Publication date
AU2021376160A1 (en) 2023-01-05
EP4154151A1 (en) 2023-03-29
US20230177172A1 (en) 2023-06-08
KR20230015964A (ko) 2023-01-31
JP2023538804A (ja) 2023-09-12
WO2022098400A1 (en) 2022-05-12
AU2021376160B2 (en) 2023-10-12
CA3181700A1 (en) 2022-05-12
CN115917544A (zh) 2023-04-04

Similar Documents

Publication Publication Date Title
US11743034B2 (en) Systems and methods for establishing a link between identifiers without disclosing specific identifying information
JP7284264B2 (ja) プライバシーを保護するための方法
JP7461513B2 (ja) 相互作用全体でクレジットを集計するための方法
US12021972B2 (en) Aggregating encrypted network values
JP7201848B2 (ja) 時間データの取得または操作を防止しながらネットワークデータのシーケンスを生成すること
JP7471475B2 (ja) 安全なユニバーサル測定識別子構築のためのシステムおよび方法
JP7147070B2 (ja) 複数の集約サーバを使用してデータ操作を防止すること
WO2021242290A1 (en) Methods for aggregating credit across interactions
JP7189357B2 (ja) プライバシー保護のためのデータセキュリティ方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240409

R150 Certificate of patent or registration of utility model

Ref document number: 7471475

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150