JP2019517167A - 特定の識別情報を開示することなく識別子の間のリンクを確立するためのシステムおよび方法 - Google Patents

特定の識別情報を開示することなく識別子の間のリンクを確立するためのシステムおよび方法 Download PDF

Info

Publication number
JP2019517167A
JP2019517167A JP2018545907A JP2018545907A JP2019517167A JP 2019517167 A JP2019517167 A JP 2019517167A JP 2018545907 A JP2018545907 A JP 2018545907A JP 2018545907 A JP2018545907 A JP 2018545907A JP 2019517167 A JP2019517167 A JP 2019517167A
Authority
JP
Japan
Prior art keywords
party
party system
processing circuit
key
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.)
Granted
Application number
JP2018545907A
Other languages
English (en)
Other versions
JP6612468B2 (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 JP2019517167A publication Critical patent/JP2019517167A/ja
Application granted granted Critical
Publication of JP6612468B2 publication Critical patent/JP6612468B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • 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
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • 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)
    • H04L9/083Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

システムおよび方法は、特定のユーザ識別情報を開示することなく異なるシステムのユーザ識別子の間のリンクを確立するために使用され得る。一方法は、ファーストパーティシステムの二重暗号化済みの1つまたは複数の第1のデータセットおよびセカンドパーティシステムの二重暗号化済みの1つまたは複数の第2のデータセットに基づきマッチング関係を生成するステップを含む。マッチング関係はファーストパーティシステムに関連付けられているマッチ鍵とサードパーティシステムに関連付けられているマッチ鍵との間の1つまたは複数のリンクを指示する。この方法は、マッチング関係に基づきファーストパーティシステムに関連付けられているユーザ識別子およびサードパーティシステムに関連付けられているユーザ識別子に対するブリッジ識別子を割り当てるステップを含む。

Description

関連特許出願の相互参照
本出願は、参照により本明細書に組み込まれている、2017年3月3日に出願した米国仮特許出願第62/466,797号の利益および優先権を主張するものである。
ウェブデータは、企業が保護されたデータベースに記憶させるユーザ識別可能情報を含み得る。ユーザ識別可能情報を記憶するシステムを管理する企業は、特定のユーザ識別情報を開示することなく2者の識別子の間にリンクを確立することを望んでいる場合がある。
例示的な一方法は、特定のユーザ識別情報を開示することなく異なるシステムのユーザ識別子の間のリンクを確立するための方法である。この方法は、ファーストパーティシステム(first party system)によって、各々マッチ鍵(match key)とファーストパーティシステムに関連付けられているユーザ識別子とを含む1つまたは複数の第1のデータセットを暗号化するステップと、ファーストパーティシステムによって、暗号化済みの1つまたは複数の第1のデータセットをサードパーティシステムに送信するステップとを含む。この方法は、ファーストパーティシステムによってサードパーティシステムから、各々マッチ鍵とサードパーティシステムに関連付けられているユーザ識別子とを含む1つまたは複数の暗号化済みの第2のデータセットを受信するステップと、ファーストパーティシステムによってサードパーティシステムから、1つまたは複数の二重暗号化済みの第1のデータセットを受信するステップであって、1つまたは複数の二重暗号化済みの第1のデータセットはサードパーティシステムによってさらに暗号化された暗号化済みの1つまたは複数の第1のデータセットを含む、ステップとを含む。この方法は、ファーストパーティシステムによって、サードパーティシステムから受信された暗号化済みの1つまたは複数の第2のデータセットを暗号化して、1つまたは複数の二重暗号化済みの第2のデータセットを生成するステップをさらに含む。この方法は、ファーストパーティシステムによって、二重暗号化済みの1つまたは複数の第1のデータセットおよび二重暗号化済みの1つまたは複数の第2のデータセットに基づきマッチング関係を生成するステップであって、マッチング関係はファーストパーティシステムに関連付けられているマッチ鍵とサードパーティシステムに関連付けられているマッチ鍵との間の1つまたは複数のリンクを指示する、ステップと、ファーストパーティシステムによって、マッチング関係に基づきファーストパーティシステムに関連付けられているユーザ識別子およびサードパーティシステムに関連付けられているユーザ識別子に対するブリッジ識別子(bridge identifier)を割り当てるステップであって、ブリッジ識別子はファーストパーティシステムに関連付けられているユーザ識別子とサードパーティ
システムに関連付けられているユーザ識別子との間のリンクである、ステップとを含む。
いくつかの実装形態において、この方法は、サードパーティシステムによって、楕円曲線上のランダム点であるべき1つまたは複数の第2のデータセットに対するサードパーティシステムに関連付けられているユーザ識別子を選択するステップと、サードパーティシステムによって、1つまたは複数の第2のデータセットを、1つまたは複数の第2のデータセットのサードパーティシステムに関連付けられている選択されたユーザ識別子をサードパーティ決定論的指数(third party deterministic exponent)で累乗することによって暗号化するステップとを含む。
いくつかの実装形態において、この方法は、ファーストパーティシステムによって、マッチング関係を、サードパーティシステムに関連付けられている各マッチ鍵がファーストパーティシステムのマッチ鍵へのリンクを1つ有し、ファーストパーティシステムに関連付けられている各マッチ鍵がサードパーティシステムのマッチ鍵へのリンクを1つ有するようにマッチング関係からリンクを取り除くことによってプルーニングするステップを含む。
いくつかの実装形態において、この方法は、ファーストパーティシステムによって、マッチング関係を、複数のリンクを有するサードパーティシステムのマッチ鍵を決定することによってマッチ鍵の間のリンクの1つまたは複数を取り除くことによってプルーニングするステップを含む。いくつかの実装形態において、マッチング関係のリンクを取り除くステップは、ファーストパーティおよびサードパーティシステムのユーザ識別子のうちのいくつかの識別子のマッチングが行われるようにし、ファーストパーティおよびサードパーティシステムのユーザ識別子のうちのいくつかの識別子のマッチングが行われないようにする。いくつかの実装形態において、ファーストパーティシステムによって、マッチング関係に基づきファーストパーティシステムに関連付けられているユーザ識別子およびサードパーティシステムに関連付けられているユーザ識別子に対するブリッジ識別子を割り当てるステップは、ファーストパーティシステムおよびサードパーティシステムのマッチしたユーザ識別子およびマッチしていないユーザ識別子の両方にブリッジ識別子を割り当てるステップを含む。
いくつかの実装形態において、この方法は、ファーストパーティシステムによって、1つまたは複数の第1のタプルを第1の指数で累乗するステップであって、各第1のタプルはファーストパーティシステムに関連付けられているユーザ識別子をブリッジ識別子にリンクする、ステップを含む。いくつかの実装形態において、この方法は、ファーストパーティシステムによってサードパーティシステムに、1つまたは複数の累乗済みの第1のタプルを送信するステップを含む。さらに、この方法は、ファーストパーティシステムによってサードパーティシステムに、1つまたは複数の第2のタプルを送信するステップであって、各第2のタプルはサードパーティシステムに関連付けられているユーザ識別子のうちの1つの識別子をブリッジ識別子のうちの1つの識別子にリンクする、ステップを含む。いくつかの実装形態において、この方法は、サードパーティシステムによって、ブリッジ識別子マップを、1つまたは複数の第2のタプルのブリッジ識別子を第2の指数で累乗することによって生成するステップと、サードパーティシステムによって、1つまたは複数の累乗済みの第1のタプルを第2の指数で累乗するステップと、サードパーティシステムによってファーストパーティシステムに、1つまたは複数の累乗済みの第1のタプルを送信するステップとを含む。この方法は、ファーストパーティシステムによって、ファーストパーティシステムに対するブリッジ識別子マップを、1つまたは複数の累乗済みの第1のタプルから第1の指数を取り除くことによって生成するステップをさらに含み得る。
いくつかの実装形態において、この方法は、ファーストパーティシステムによって、第1のデータセットを、ファーストパーティシステムに関連付けられているユーザ識別子をEl-Gamal鍵で暗号化し、ファーストパーティシステムに関連付けられているマッチ鍵をファーストパーティ決定論的鍵で暗号化することによって暗号化するステップを含む。いくつかの実装形態において、この方法は、サードパーティシステムによって、1つまたは複数の第1のデータセットを暗号化して、ファーストパーティシステムに関連付けられている暗号化済みマッチ鍵をサードパーティ決定論的暗号鍵で暗号化し、El-Gamal鍵で暗号化された暗号化済みユーザ識別子を指数乗することによって1つまたは複数の二重暗号化済みの第1のデータセットを生成するステップを含む。
いくつかの実装形態において、この方法は、ファーストパーティシステムによってサードパーティシステムに、ファーストパーティEl-Gamal鍵を送信するステップであって、ファーストパーティEl-Gamal鍵はファーストパーティシステムの公開鍵である、ステップと、ファーストパーティシステムによってサードパーティシステムから、サードパーティEl-Gamal鍵を受信するステップであって、サードパーティEl-Gamal鍵はサードパーティシステムの公開鍵である、ステップとを含む。いくつかの実装形態において、この方法は、ファーストパーティシステムによって1つまたは複数の第1のデータセットを暗号化するステップがファーストパーティシステムによって1つまたは複数の第1のデータセットをファーストパーティEl-Gamal鍵およびファーストパーティ決定論的鍵で暗号化するステップを含む、ことを含む。いくつかの実装形態において、この方法は、サードパーティシステムによって、暗号化済みの1つまたは複数の第1のデータセットをサードパーティ決定論的鍵で暗号化して、1つまたは複数の二重暗号化済みの第1のデータセットを生成するステップと、サードパーティシステムによって、暗号化済みの1つまたは複数の第2のデータセットを、サードパーティシステムに関連付けられているマッチ鍵をサードパーティ決定論的鍵で暗号化することによって暗号化するステップとをさらに含む。
いくつかの実装形態において、この方法は、ファーストパーティシステムによって、割り当てられたブリッジ識別子の各々をファーストパーティEl-Gamal鍵およびセカンドパーティEl-Gamal鍵で暗号化するステップと、ファーストパーティシステムによってサードパーティシステムに、ファーストパーティシステムに関連付けられている、暗号化済みのブリッジ識別子および関連付けられているユーザ識別子を含む1つまたは複数の第1のタプルを送信するステップと、ファーストパーティシステムによってサードパーティシステムに、サードパーティシステムに関連付けられている、暗号化済みのブリッジ識別子および関連付けられているユーザ識別子を含む1つまたは複数の第2のタプルを送信するステップとを含む。
いくつかの実装形態において、この方法は、サードパーティシステムによって、サードパーティシステムに対するブリッジ識別子マップを、1つまたは複数の第2のタプルをサードパーティEl-Gamal鍵で暗号解読することによって生成するステップと、サードパーティシステムによって、1つまたは複数の第1のタプルを逆累乗(de-exponentiate)し、逆累乗済みの1つまたは複数の第1のタプルをファーストパーティシステムに送信するステップと、ファーストパーティシステムによって、ファーストパーティシステムに対するブリッジ識別子マップを、1つまたは複数の第1のタプルをファーストパーティEl-Gamal鍵で暗号解読することによって生成するステップとを含む。
本開示の別の実装形態は、特定のユーザ識別情報を開示することなく異なるシステムのユーザ識別子の間のリンクを確立するためのファーストパーティシステムであり、ファーストパーティシステムはメモリに動作可能に結合されている処理回路を備える。処理回路は、各々マッチ鍵とファーストパーティシステムに関連付けられているユーザ識別子とを含む1つまたは複数の第1のデータセットを暗号化し、暗号化済みの1つまたは複数の第1のデータセットをサードパーティシステムに送信し、サードパーティシステムから、各々マッチ鍵とサードパーティシステムに関連付けられているユーザ識別子とを含む1つまたは複数の暗号化済みの第2のデータセットを受信し、サードパーティシステムから、1つまたは複数の二重暗号化済みの第1のデータセットを受信し、1つまたは複数の二重暗号化済みの第1のデータセットはサードパーティシステムによって暗号化された暗号化済みの1つまたは複数の第1のデータセットである、ように構成される。処理回路は、サードパーティシステムから受信された暗号化済みの1つまたは複数の第2のデータセットを暗号化して、1つまたは複数の二重暗号化済みの第2のデータセットを生成し、二重暗号化済みの1つまたは複数の第1のデータセットおよび二重暗号化済みの1つまたは複数の第2のデータセットに基づきマッチング関係を生成し、マッチング関係はファーストパーティシステムに関連付けられているマッチ鍵とサードパーティシステムに関連付けられているマッチ鍵との間の1つまたは複数のリンクを指示し、マッチング関係に基づきファーストパーティシステムに関連付けられているユーザ識別子およびサードパーティシステムに関連付けられているユーザ識別子に対するブリッジ識別子を割り当て、ブリッジ識別子はファーストパーティシステムに関連付けられているユーザ識別子とサードパーティシステムに関連付けられているユーザ識別子との間のリンクである、ように構成される。
いくつかの実装形態において、処理回路は、マッチング関係を、サードパーティシステムに関連付けられている各マッチ鍵がファーストパーティシステムのマッチ鍵へのリンクを1つ有し、ファーストパーティシステムに関連付けられている各マッチ鍵がサードパーティシステムのマッチ鍵へのリンクを1つ有するようにマッチング関係からリンクを取り除くことによってプルーニングするように構成される。
いくつかの実装形態において、処理回路は、マッチング関係を、複数のリンクを有するサードパーティシステムのマッチ鍵を決定することによってマッチ鍵の間のリンクの1つまたは複数を取り除くことによってプルーニングするように構成される。
いくつかの実装形態において、処理回路は、1つまたは複数の第1のタプルを第1の指数で累乗し、各第1のタプルはファーストパーティシステムに関連付けられているユーザ識別子をブリッジ識別子にリンクし、サードパーティシステムに、1つまたは複数の累乗済みの第1のタプルを送信するように構成される。いくつかの実装形態において、処理回路は、サードパーティシステムに、1つまたは複数の第2のタプルを送信し、各第2のタプルはサードパーティシステムに関連付けられているユーザ識別子のうちの1つの識別子をブリッジ識別子のうちの1つの識別子にリンクする、ように構成される。サードパーティシステムは、ブリッジ識別子マップを、1つまたは複数の第2のタプルのブリッジ識別子を第2の指数で累乗することによって生成することができる。処理回路は、サードパーティシステムから、第2の指数で累乗された1つまたは複数の累乗済みのタプルを受信し、ファーストパーティシステムに対するブリッジ識別子マップを、1つまたは複数の累乗済みの第1のタプルから第1の指数を取り除くことによって生成するように構成され得る。
別の例示的な方法は、特定のユーザ識別情報を開示することなく異なるシステムのユーザ識別子の間のリンクを確立するための方法である。この方法は、ファーストパーティ処理回路によって、各々マッチ鍵とファーストパーティシステムに関連付けられているユーザ識別子とを含む1つまたは複数の第1のデータセットを暗号化するステップと、ファーストパーティ処理によって、暗号化済みの1つまたは複数の第1のデータセットをサードパーティ処理回路に送信するステップと、ファーストパーティ処理回路によってサードパーティ処理回路から、各々鍵とサードパーティ処理システムに関連付けられているユーザ識別子とを含む1つまたは複数の暗号化済みの第2のデータセットを受信するステップとを含む。この方法は、ファーストパーティ処理回路によってサードパーティ処理回路から、1つまたは複数の二重暗号化済みの第1のデータセットを受信するステップであって、1つまたは複数の二重暗号化済みの第1のデータセットはサードパーティ処理回路によって暗号化された暗号化済みの1つまたは複数の第1のデータセットである、ステップと、ファーストパーティ処理回路によって、サードパーティ処理回路から受信された暗号化済みの1つまたは複数の第2のデータセットを暗号化して、1つまたは複数の二重暗号化済みの第2のデータセットを生成するステップと、ファーストパーティ処理回路によって、二重暗号化済みの1つまたは複数の第1のデータセットおよび二重暗号化済みの1つまたは複数の第2のデータセットに基づきマッチング関係を生成するステップであって、マッチング関係はファーストパーティ処理回路に関連付けられているマッチ鍵とサードパーティ処理回路に関連付けられているマッチ鍵との間の1つまたは複数のリンクを指示する、ステップとを含む。さらに、この方法は、ファーストパーティ処理回路によって、マッチング関係を、複数のリンクを有するサードパーティ処理回路のマッチ鍵を決定することによってマッチ鍵の間のリンクの1つまたは複数を取り除くことによってプルーニングするステップと、ファーストパーティ処理回路によって、プルーニングされたマッチング関係に基づきファーストパーティ処理回路に関連付けられているユーザ識別子およびサードパーティ処理回路に関連付けられているユーザ識別子に対するブリッジ識別子を割り当てるステップであって、ブリッジ識別子はファーストパーティ処理回路に関連付けられているユーザ識別子とサードパーティ処理回路に関連付けられているユーザ識別子との間のリンクであり、ブリッジ識別子はファーストパーティシステムに関連付けられているユーザ識別子とサードパーティシステムに関連付けられているユーザ識別子との間のリンクである、ステップとを含む。
いくつかの実装形態において、この方法は、サードパーティ処理回路によって、楕円曲線上のランダム点であるべき1つまたは複数の第2のデータセットに対するサードパーティ処理回路に関連付けられているユーザ識別子を選択するステップと、サードパーティ処理回路によって、1つまたは複数の第2のデータセットを、1つまたは複数の第2のデータセットのサードパーティ処理回路に関連付けられている選択されたユーザ識別子をサードパーティ決定論的指数で累乗することによって暗号化するステップとを含む。
いくつかの実装形態において、この方法は、ファーストパーティ処理回路によってマッチング関係をプルーニングするステップがサードパーティ処理回路に関連付けられている各マッチ鍵がファーストパーティ処理回路のマッチ鍵へのリンクを1つ有し、ファーストパーティ処理回路に関連付けられている各マッチ鍵がサードパーティ処理回路のマッチ鍵へのリンクを1つ有するようにマッチング関係からリンクを取り除くステップを含む、ことを含む。
いくつかの実装形態において、この方法は、ファーストパーティ処理回路によって、1つまたは複数の第1のタプルを第1の指数で累乗するステップであって、各第1のタプルはファーストパーティ処理回路に関連付けられているユーザ識別子をブリッジ識別子にリンクする、ステップと、ファーストパーティ処理回路によってサードパーティ処理回路に、1つまたは複数の累乗済みの第1のタプルを送信するステップと、ファーストパーティ処理回路によってサードパーティ処理回路に、1つまたは複数の第2のタプルを送信するステップであって、各第2のタプルはサードパーティ処理回路に関連付けられているユーザ識別子のうちの1つの識別子をブリッジ識別子のうちの1つの識別子にリンクする、ステップとを含む。いくつかの実装形態において、この方法は、サードパーティ処理回路によって、ブリッジ識別子マップを、1つまたは複数の第2のタプルのブリッジ識別子を第2の指数で累乗することによって生成するステップと、サードパーティ処理回路によって、1つまたは複数の累乗済みの第1のタプルを第2の指数で累乗するステップと、サードパーティ処理回路によってファーストパーティ処理回路に、1つまたは複数の累乗済みの第1のタプルを送信するステップと、ファーストパーティ処理回路によって、ファーストパーティ処理回路に対するブリッジ識別子マップを、1つまたは複数の累乗済みの第1のタプルから第1の指数を取り除くことによって生成するステップをさらに含む。
いくつかの実装形態において、ファーストパーティ処理回路によって、第1のデータセットを暗号化するステップは、ファーストパーティ処理回路に関連付けられているユーザ識別子をEl-Gamal鍵で暗号化するステップと、ファーストパーティ処理回路に関連付けられているマッチ鍵をファーストパーティ決定論的鍵で暗号化するステップとを含む。いくつかの実装形態において、この方法は、サードパーティ処理回路によって、1つまたは複数の第1のデータセットを暗号化して、ファーストパーティ処理回路に関連付けられている暗号化済みマッチ鍵をサードパーティ決定論的暗号鍵で暗号化し、El-Gamal鍵で暗号化された暗号化済みユーザ識別子を指数乗することによって1つまたは複数の二重暗号化済みの第1のデータセットを生成するステップをさらに含む。
いくつかの実装形態において、この方法は、ファーストパーティ処理回路によってサードパーティ処理回路に、ファーストパーティEl-Gamal鍵を送信するステップであって、ファーストパーティEl-Gamal鍵はファーストパーティ処理回路の公開鍵である、ステップと、ファーストパーティ処理回路によってサードパーティ処理回路から、サードパーティEl-Gamal鍵を受信するステップであって、サードパーティEl-Gamal鍵はサードパーティ処理回路の公開鍵である、ステップとを含む。いくつかの実装形態において、この方法は、ファーストパーティ処理回路によって1つまたは複数の第1のデータセットを暗号化するステップがファーストパーティ処理回路によって1つまたは複数の第1のデータセットをファーストパーティEl-Gamal鍵およびファーストパーティ決定論的鍵で暗号化するステップを含む、ことを含む。いくつかの実装形態において、この方法は、サードパーティ処理回路によって、暗号化済みの1つまたは複数の第1のデータセットをサードパーティ決定論的鍵で暗号化して、1つまたは複数の二重暗号化済みの第1のデータセットを生成するステップと、サードパーティ処理回路によって、暗号化済みの1つまたは複数の第2のデータセットを、サードパーティ処理回路に関連付けられているマッチ鍵をサードパーティ決定論的鍵で暗号化することによって暗号化するステップとを含む。この方法は、ファーストパーティ処理回路によって、割り当てられたブリッジ識別子の各々をファーストパーティEl-Gamal鍵およびセカンドパーティEl-Gamal鍵で暗号化するステップと、ファーストパーティ処理回路によってサードパーティ処理回路に、ファーストパーティ処理回路に関連付けられている、暗号化済みのブリッジ識別子および関連付けられているユーザ識別子を含む1つまたは複数の第1のタプルを送信するステップと、ファーストパーティ処理回路によってサードパーティ処理回路に、サードパーティ処理回路に関連付けられている、暗号化済みのブリッジ識別子および関連付けられているユーザ識別子を含む1つまたは複数の第2のタプルを送信するステップとを含み得る。
いくつかの実装形態において、この方法は、サードパーティ処理回路によって、サードパーティ処理回路に対するブリッジ識別子マップを、1つまたは複数の第2のタプルをサードパーティEl-Gamal鍵で暗号解読することによって生成するステップと、サードパーティ処理回路によって、1つまたは複数の第1のタプルを逆累乗し、逆累乗済みの1つまたは複数の第1のタプルをファーストパーティ処理回路に送信するステップと、ファーストパーティ処理回路によって、ファーストパーティ処理回路に対するブリッジ識別子マップを、1つまたは複数の第1のタプルをファーストパーティEl-Gamal鍵で暗号解読することによって生成するステップとを含む。
例示的な実装形態による、ファーストパーティシステムおよびサードパーティシステムおよび関連付けられている環境のブロック図である。 例示的な実装形態による、内部的なユーザ識別子リンクを開示することなくファーストパーティシステムのユーザ識別子とサードパーティシステムのユーザ識別子との間のリンクを確立するためのプロセスのフローチャートである。 例示的な実装形態による、内部的なユーザ識別子リンクを開示することなくファーストパーティシステムのユーザ識別子とサードパーティシステムのユーザ識別子との間のリンクを確立するためのプロセスのフローチャートである。 例示的な実装形態による、図2Aおよび図2Bの方法をより詳しく例示している図2Aおよび図2Bのフローチャートに対する伝送図である。 例示的な実装形態により、ファーストパーティシステムのユーザ識別子とサードパーティシステムのユーザ識別子との間のリンクを確立するために、サードパーティシステムの累乗済みのユーザ識別子であるブリッジ識別子を使用するプロセスのフローチャートである。 例示的な実装形態による、図3Aのプロセスに対する伝送図である。 例示的な実装形態により、ファーストパーティシステムのユーザ識別子とサードパーティシステムのユーザ識別子との間のリンクを確立するために暗号化済みブリッジ識別子を使用するためのプロセスのフローチャートである。 例示的な実装形態により、ファーストパーティシステムのユーザ識別子とサードパーティシステムのユーザ識別子との間のリンクを確立するために暗号化済みブリッジ識別子を使用するためのプロセスのフローチャートである。 例示的な実装形態による、図4Aおよび図4Bのプロセスに対する伝送図である。 例示的な実装形態により、サードパーティシステムが図A〜図Cのプロセスによって生成されるブリッジ識別子の交差を決定する安全な交差法(secure intersection method)を実行するためのプロセスの流れ図である。 例示的な実装形態により、ファーストパーティシステムが図A〜図Cのプロセスによって生成されるブリッジ識別子の交差を決定する安全な交差和法(secure intersection-sum method)を実行するためのプロセスの伝送図である。 例示的な実装形態による、指標ビットを有する多数のマッチしたブリッジIDを決定するためのプロセスの伝送図である。 例示的な実装形態による、コンピューティングシステムのブロック図である。
一般的に図を参照すると、特定の識別情報を開示することなくファーストパーティシステムのユーザ識別子とサードパーティシステムのユーザ識別子との間のリンクを確立するためのシステムおよび方法が、様々な例示的な実装形態に従って、図示され説明されている。コンテンツシステムは、企業のウェブサイトを訪問し、たとえば、コンテンツを閲覧するか、または取引を行うユーザによって共有される個人識別可能情報(PII)を記憶することができる。PIIは、たとえば、電子メールアドレス、電話番号、電話識別番号、cookie識別子などであってよい。コンテンツシステムは、PIIをユーザ同士を区別するユーザ識別子(ID)にマップすることができる。たとえば、ユーザが電子メールアドレスAおよび電話番号Aに関連付けられている場合、コンテンツシステムは、電子メールアドレスAおよび電話番号Aを単一ユーザID、ユーザID Aにマップするものとしてよい。
このリンクを確立する一アプローチは、サードパーティシステムが会社にハッシュされたPIIデータとペアにされたユーザIDを提供するステップを伴う。暗号ハッシュ関数は、事実上反転不可能(すなわち、不可逆)となるように設計されている。ハッシュ関数は不可逆なので、ハッシュされたデータの保有は、結果として、対応する入力データの保有とならない。ハッシュされたPIIデータは、ハッシュ関数をPIIデータに適用することからの出力であり、これにより、PIIデータそれ自体を公開することなくPIIデータ要素の比較を行うことを可能にする。
いくつかの実装形態において、データパートナーは、ユーザに対するユーザIDおよびユーザの電子メールアドレスのハッシュ値を提供し得る。次いで、会社は、サードパーティシステムのハッシュされたPIIデータをファーストパーティシステムのハッシュされたPIIデータと比較して、サードパーティシステムのユーザIDとファーストパーティシステムのユーザIDとの間のリンクを確立する。このアプローチは、1つのPII、たとえば、ユーザの電子メールアドレスにのみ基づき、ファーストパーティシステムのユーザIDとサードパーティシステムのユーザIDとのマッチングを行うときなど、単一のPIIデータ要素のみを使用するときにうまく働く。
しかしながら、複数のPIIデータ要素(たとえば、ユーザの電子メールおよび電話番号の両方)でマッチングを行うために、サードパーティシステムは、ハッシュされた電子メールおよびハッシュされた電話番号の両方とペアにされたユーザIDを提供しなければならない。その結果、これは、ファーストパーティシステムへの内部データリンクを公開する、すなわち、特定のユーザに対するサードパーティシステムの電子メールアドレスと電話番号とのリンクを公開する。ファーストパーティシステムとサードパーティシステムとの間で情報を共有してこの方式で複数のPIIデータ要素でマッチングを行うステップは、PIIデータ要素にリンクされている特定のユーザのアイデンティティを公開するのに十分な情報を提供し得る。
したがって、本開示は、一方の当事者または両方の当事者のユーザIDとPIIデータとの間のマップを他方の当事者に公開することなく二者のユーザIDの間のリンクを確立するためのシステムおよび方法に向けられている。いくつかの実装形態において、説明されているシステムおよび方法は、両当事者が決定論的に累乗されるブリッジIDなどの、ブリッジIDを学習するステップを伴う。
より具体的には、本明細書では、二者、すなわち、ファーストパーティシステムおよびサードパーティシステムについて説明されている。いくつかの実装形態において、当事者の各々は、特定のユーザIDによってマップされるユーザに対するデータのプライベートデータベースを記憶し得る。さらに、データベースは、ユーザIDにリンクされている、ユーザの各々に対するPIIデータ要素を含み得る。ファーストパーティシステムおよびサードパーティシステムのユーザIDは、異なる形式を有していることがあり、等しいかどうかについて比較することが困難な場合がある。本明細書におけるシステムおよび方法は、それぞれのデータベースにおいてユーザに対する共通のブリッジ識別子BIDを学習し、各他のユーザに関する余分なデータを当事者のいずれかが学習しなくても等しいかどうかのチェックを行うことを可能にする、ステップについて詳述する。
いくつかの実装形態において、いずれも当事者も、その自データベース内の、または他方の当事者のデータベース内のユーザに対する追加のPIIデータ要素を学習すべきでない。いくつかの実装形態において、いずれの当事者も、その自データベースにおいてユーザ間の追加の「リンク」を学習すべきでなく、たとえば、その自データベースにおけるその2人の異なるユーザは他方の当事者によって同じユーザであると信じられる。さらに、本明細書で説明されている方法のうちのいくつかは、当事者の少なくとも1人がどのユーザが交差内にあったかを学習するのを制限する。
本明細書で使用されているように、uiは、ファーストパーティシステムに対するi番目のユーザIDを表し得る(一時的なIDであってよい)。各uiは、ファーストパーティシステムに対するt(MKi,k,MKTi,k)までのペアを有することができる。マッチ鍵(MK)は、PIIデータ要素であるか、含むか、または関連付けられ得る。MKの例は、電子メールアドレス、電話番号、およびIPアドレスである。マッチ鍵タイプ(MKT)は、情報のタイプまたは特性を指示し得る。たとえば、MK abc@123.comの場合、MKTは、文字列「Email Address」またはMKが電子メールアドレスであることを指示する他の個別データであってよい。
本明細書で使用されているように、vjはサードパーティシステムに関連付けられているj番目のユーザIDに対する対応する仮名とすることができる。各vjは、それに関連付けられているt(MKj,k,MKTj,k)までのペアを有することもできる。いくつかの実装形態において、uiおよびvjは、ファーストパーティシステムおよびサードパーティシステムによってそれぞれ選択された疑似乱数、文字列、または他のデータである。uiおよびvjに対する値は、本明細書で説明されている方法のうちの1つまたは複数を実行する持続時間について一定であり得る。
いくつかの実装形態において、uiおよびvjは、ファーストパーティシステムおよびサードパーティシステムによってそれぞれ、本明細書で説明されている方法を実行するステップの前または開始時にハッシュ関数を介して決定される。たとえば、ui値は、式ui=hash(KF,UIDi)およびvj=hash(K3P,PIDj)を介して選択されるものとしてよく、鍵KF、K3Pは、ファーストパーティシステムおよびサードパーティシステムにのみそれぞれ知られている鍵(たとえば、数値)であってよい。いくつかの実装形態において、UIDiおよびPIDjは、ユーザの名前、ユーザのPII、または他のユーザ定義情報とすることも可能である。値UIDiおよびPIDjは、秘密鍵KFおよびK3Pでハッシュされるので、それらは暗号化されるものとしてよく、ユーザの個人情報は安全であり得る。ハッシュ( )関数は、セキュアハッシュアルゴリズム(SHA)-256、MD5、BLAKE-256、および/または他のタイプの暗号ハッシュ関数を含む任意の種類のハッシュ関数とすることが可能である。
本明細書においてさらに説明されているように、これらのシステムおよび方法は、ファーストパーティシステムがui:BIDi,kマップを学習することを可能にするものとしてよく、各uiは、最大tBIDi,kまでの値をマップすることができる。BIDi,k値のいくつかは、ダミー値であってよい。サードパーティシステムは、vj:BIDj,kを学習するように構成されてよく、各vjは単一のBIDにのみマップされる。
さらに、本明細書で説明されているシステムおよび方法のいくつかの実装形態において、暗号化方法の終わりに、ファーストパーティは、ui値のうちのどれが交差内にあるかを学習する(2つの集合AおよびBが交差Cを有し、Cは、集合Bに属すAのすべての要素である、すなわちA∩Bである)。対照的に、サードパーティシステムは、vj:BIDj,kマップおよびファーストパーティシステムのデータセットのサイズしか学習し得ない。特に、サードパーティシステムは、交差要素も交差サイズも学習し得ない。
本明細書で使用されているように、記法F[ ]およびT[ ]は、それぞれ指数FおよびTによる単一決定論的(single-deterministic)楕円曲線暗号(ECC)累乗を表すことができる。記法FT[ ]は、両方の指数FおよびTによる二重決定論的暗号(double-deterministic encryption)を表す。Fは、ファーストパーティシステムに対する決定論的暗号鍵を表すことができる。いくつかの実装形態において、Fは、ファーストパーティシステムがサードパーティシステムと共有しない秘密鍵であり得る。同様に、いくつかの実装形態において、Tは、サードパーティシステムによる決定論的暗号化を実行するための別の決定論的暗号鍵であり得る。サードパーティシステムは、Tを秘密に保ち、ファーストパーティシステムとそれを直接共有することはし得ない。
さらに、記法EF[ ]は、鍵FによるEl-Gamal暗号化を表し得る。Fは、ファーストパーティシステムによって実行され得るEl-Gamal暗号化に対するファーストパーティEl-Gamal鍵を表す。ファーストパーティシステムは、ファーストパーティEl-Gamal鍵を記憶し、ファーストパーティEl-Gamal鍵による暗号化を実行し、および/またはファーストパーティEl-Gamal鍵をサードパーティシステムに伝送することができる。ETは、サードパーティシステムのEl-Gamal暗号鍵を表すものとしてよい。サードパーティシステムは、サードパーティEl-Gamal鍵を記憶し、サードパーティEl-Gamal鍵による暗号化を実行し、またはサードパーティEl-Gamal鍵をファーストパーティシステムに伝送することができる。El-Gamal鍵EFおよびETは、それぞれファーストパーティシステムの公開鍵およびセカンドパーティシステムの公開鍵であるものとしてよい。
本明細書で説明されている暗号化方法は、2つの異なるタイプの暗号化の2つの特定の特性、すなわち、可換特性および準同形特性に依存し得る。準同形特性は、関数f[ ]について、f[x]*f[y]=f[x*y]であることを指示する。El-Gamal暗号化は、準同形である。特にEl-Gamal暗号関数E[ ]について、E[x]*E[y]=E[x*y]である。
F[ ]およびT[ ]を有し、F[ ]がファーストパーティシステムの暗号化であり、T[ ]がセカンドパーティシステムの暗号化である、決定論的暗号化(決定論的ECC)は、可換性を有し得る。さらに、El-Gamal暗号化は、可換であり得る。特に、可換則は、T[F[x]]=F[T[x]]である。たとえば、ファーストパーティシステムおよびサードパーティシステムは、各々MK値x1およびx2をそれぞれ有することができる。ファーストパーティシステムまたはサードパーティシステムは、x1およびx2が等しいかどうかを、x1およびx2の実際の値を互いに開示することなく可換則に基づき決定することができる。暗号化方法F[ ]およびT[ ]を互いに開示することなく、また値x1およびx2を開示することなく、ファーストパーティおよびサードパーティシステムは、x1およびx2の二重暗号化されたバージョン、すなわち、T[F[x1]]およびF[T[x2]]を計算することができる。x1=x2ならば、T[F[x1]]=F[T[x2]]である。同様に、x1≠x2ならば、T[F[x1]]≠F[T[x2]]である。これは、第一およびサードパーティシステムが、x1およびx2に対する実際の値または各システムの決定論的暗号化を開示することなくx1がx2に等しいかどうかをチェックすることを可能にする。これは、本明細書で説明されている方法を参照しつつさらに詳しく説明される。
図1を参照すると、ファーストパーティシステム120、サードパーティシステム140、および関連付けられている環境100のブロック図が、例示的な実装形態に従って示されている。1つまたは複数のユーザデバイス104は、様々なアクションを実行し、および/または一部がネットワーク102(たとえば、インターネット、LAN、WANなど)上で提供され得る様々なタイプのコンテンツにアクセスするためにユーザによって使用され得る。本明細書において使用されている「ユーザ」または「エンティティ」は、ユーザデバイス104などを介してリソースまたはコンテンツアイテムをインタラクティブに操作する、個別の動作しているユーザデバイス104を指すものとしてよい。ユーザデバイス104は、ウェブサイト(たとえば、インターネットブラウザを使用して)、メディアファイル、および/または他のタイプのコンテンツにアクセスするために使用され得る。コンテンツ管理システム108は、リソース(たとえば、ウェブページ、アプリケーションなど)内のユーザに表示するためのコンテンツを選択し、リソース内で表示するためにネットワーク102上でコンテンツデータベースからユーザデバイス104にコンテンツアイテム112を提供するように構成され得る。コンテンツ管理システム108がアイテムを選択する際の選択元であるコンテンツは、1つまたは複数のコンテンツプロバイダデバイス106を使用してネットワーク102を介して1つまたは複数のコンテンツプロバイダによって提供され得る。
いくつかの実装形態において、コンテンツ管理システム108は、ユーザデバイス104上に表示されるべきコンテンツアイテムをコンテンツプロバイダから選択し得る。そのような実装形態において、コンテンツ管理システム108は、リソース(たとえば、ウェブページ、アプリケーションなど)の1つまたは複数のコンテンツインターフェース内にパブリッシュされるべきコンテンツを決定し得る。コンテンツ管理システム108は、サードパーティコンテンツプロバイダの間でコンテンツオークションを実施してどのサードパーティーコンテンツがユーザデバイス104に提供されるかを決定するように構成され得る。オークション勝者は、入札額および品質スコア(すなわち、ユーザデバイス104のユーザがコンテンツをクリックする確率を示す尺度)に基づき決定され得る。いくつかの実装形態において、コンテンツ管理システム108は、コンテンツプロバイダがコンテンツキャンペーンを作成することを可能にする。キャンペーンは、最低および最高入札額、目標入札額、または1つもしくは複数の予算額(たとえば、1日当たりの予算、1週間当たりの予算、総予算など)の任意の数のパラメータを含むことができる。
ファーストパーティシステム120およびサードパーティシステム140は、1つまたは複数のプロセッサ(たとえば、汎用もしくは専用プロセッサ)を備えることができ、1つまたは複数の一時的および/または非一時的記憶媒体および/またはメモリ(たとえば、磁気記憶、光記憶、フラッシュ記憶、RAMなどの任意のコンピュータ可読記憶媒体)を備え、および/または動作可能に結合され得る。様々な実装形態において、ファーストパーティシステム120および/またはサードパーティシステム140およびコンテンツ管理システム108は、別個のシステムとして実装されるか、または単一のシステムとして一体化され得る。たとえば、ファーストパーティシステム120は、第1のコンテンツ管理システム(たとえば、コンテンツ管理システム108)に関連付けられ、および/またはその一部であり得るが、サードパーティシステム140は、第2のコンテンツ管理システム(たとえば、コンテンツ管理システム108に類似するコンテンツ管理システム)の一部であり得る。
ファーストパーティシステム120および/またはサードパーティシステム140は、データ記憶装置デバイス、たとえば、データベースに通信可能におよび動作可能に結合され、および/または備えることができる。ファーストパーティシステム120および/またはサードパーティシステム140は、情報についてデータベースにクエリを実行し、データベース内に情報を記憶するように構成され得る。様々な実装形態において、データベースは、様々な一時的および/または非一時的記憶媒体を含む。記憶媒体は、限定はしないが、磁気記憶媒体、光記憶媒体、フラッシュ記憶媒体、RAMなどを含み得る。データベースおよび/またはファーストパーティシステム120および/またはサードパーティシステム140は、様々なAPIを使用して、データベース関数を実行する(すなわち、データベースに記憶されているデータを管理する)ことができる。APIは、限定はしないが、SQL、ODBC、JDBCなどであってよい。
ファーストパーティシステム120および/またはサードパーティシステム140は、ネットワーク102から情報を受信するように構成され得る。情報は、閲覧履歴、cookieログ、テレビ広告データ、刊行物広告データ、ラジオ広告データ、オンライン活動データおよび/またはユーザ(すなわち、ユーザデバイス104)がネットワーク102上で有し得るオンラインリソースとの他の指示またはインタラクションを含み得る。ファーストパーティシステム120および/またはサードパーティシステム140は、ネットワーク102上でユーザデバイス104が有するインタラクションを受信し、および/または収集するように構成され得る。情報は、ファーストパーティシステム120および/またはサードパーティシステム140によって記憶され得る。
ファーストパーティシステム120および/またはサードパーティシステム140は、様々な関数を実行するように構成されている1つまたは複数のモジュール(すなわち、プロセッサによって実行可能なコンピュータ可読命令)および/または回路(すなわち、ASIC、プロセッサメモリの組合せ、論理回路など)を含み得る。いくつかの実装形態において、モジュールは、暗号化マネージャ122および暗号化マネージャ142であるか、または含み得る。さらに、ファーストパーティシステム120および/またはサードパーティシステム140は、ブリッジ識別子マップ124および/またはブリッジ識別子マップ144ならびにユーザデータ、すなわち、入力データ126および入力データ146を記憶し得る。
暗号化マネージャ122および暗号化マネージャ142は、本明細書で説明されている様々な暗号化方法を実行するように構成され得る。さらに、暗号化マネージャ122および暗号化マネージャ142は、特定の暗号化ステップ、たとえば、決定論的EC暗号化、El-Gamal暗号化、および暗号解読方法を実行することができる。ファーストパーティシステム120の暗号化マネージャ122は、サードパーティシステム140に送信されるべきデータを暗号化し、サードパーティシステム140から受信されたデータを暗号解読するように構成され得る。同様に、サードパーティシステム140の暗号化マネージャ142は、ファーストパーティシステム120に送信されるべきデータを暗号化し、ファーストパーティシステムから受信されたデータを暗号解読するように構成され得る。いくつかの実装形態において、暗号化マネージャ122および142は、本明細書で説明されている方法を実行するように構成され得る。
いくつかの実装形態において、ファーストパーティシステム120の暗号化マネージャ122に対する入力は、1つまたは複数の第1の集合126、(ui,MKi,MKTi)の形式の三つ組みである。同じuiを有するいくつかの三つ組みがあり得る。どの2つの三つ組みも、同じMKiを共有しない、すなわち、どの2つのuiも同じMKiにリンクされないと仮定され得る。しかしながら、複数のMKiは単一のuiにリンクされ得る。
サードパーティシステム140入力の暗号化マネージャ142の入力は、1つまたは複数の第2のデータセット146、(vj,MKj,MKTj)の形式の三つ組みであってよい。ファーストパーティシステム120の1つまたは複数の第1の集合126と同様に、同じvjを有するいくつかの三つ組みはあり得るが、同じMKjを共有する2つの三つ組みはあり得ない。本明細書において説明されている方法のうちのいくつかにおいて、MKTiおよびMKTjの値は、「平文で」受け渡される、すなわち、暗号化されることなくファーストパーティシステム120とサードパーティシステム140との間で通信され得る。このような理由から、本明細書の方法のうちのいくつかは、MKTiおよびMKTjがファーストパーティシステム120とサードパーティシステム140との間で伝達されることを示していない。MK値がファーストパーティシステム120とサードパーティシステム140との間で伝達されるときにはいつでも、対応するMKT値も、伝達され得る。
ブリッジ識別子マップ124は、ユーザID、uiをブリッジID、BIDにリンクするマップであるものとしてよい。ブリッジ識別子マップ124は、本明細書で説明されている方法を実行するための成果物であり得る。ファーストパーティシステム120のブリッジ識別子マップ、すなわち、ブリッジ識別子マップ124は、各uiが1つまたは複数のBID値にマップされるマップであってよい。
ブリッジ識別子マップ144は、ブリッジ識別子マップ124に類似するものであってよい。ブリッジ識別子マップ144は、vjをBIDにマップし得る。ブリッジ識別子マップ144は、本明細書で説明されている方法を実行するための成果物であり得る。しかしながら、ブリッジ識別子マップ124とは異なり、サードパーティシステム140のvjはすべて、単一のBIDにのみマップされ得る。
次に図2Aおよび図2Bを参照すると、例示的な実装形態により、ファーストパーティシステム120のユーザIDとサードパーティシステム140のユーザIDとの間のリンクを確立するためのプロセス200が図示されている。ファーストパーティシステム120およびサードパーティシステム140は、プロセス200のステップを実行するように構成され得る。さらに、本明細書で説明されているコンピューティングデバイスのうちの任意の1つまたは組合せが、プロセス200を実行するように構成され得る。
図2Cを参照すると、プロセス200をより詳しく例示する伝送図が図示されている。図2Cの伝送図は、マッチング関係生成ステップ、マッチング関係プルーニングステップ、およびBID割り当てステップを例示することに加えて、ファーストパーティシステム120とサードパーティシステム140との間で伝送されるデータを例示している。
より具体的に図2Aおよび図2Bを参照すると、ファーストパーティシステム120は第1のデータセット126を暗号化し、暗号化済みデータセット126をサードパーティシステム140に送信することができる。すでに説明されているように、第1のデータセット126は、ユーザID、ui、マッチ鍵MKi、およびMKiに対するマッチ鍵タイプMKTiの1つまたは複数の集合であってよい。
ステップ202において、ファーストパーティシステム120は、ファーストパーティ暗号化F(たとえば、ECC累乗鍵)およびEl-Gamal鍵F'に対する値を選択するように構成され得る。選択された鍵FおよびF'に基づき、ファーストパーティシステム120は、それが記憶するMKデータを暗号化することができる。特に、ファーストパーティシステム120は、El-Gamal鍵F'で記憶しているui値を暗号化し、ECC累乗鍵Fで記憶しているMK値を暗号化し、記憶しているMKT値を暗号化しないでそのまま残すことができる。結果は、EF'(ui),F[MKi,k],MKTi,kであるものとしてよい。ファーストパーティシステム120は、結果をサードパーティシステム140に送信することができる。いくつかの実装形態において、複数のタプル、すなわち、同じ基礎となるuiに関連付けられているMKおよびMKTがあるものとしてよい。
ステップ204において、サードパーティシステム140は、暗号化済みの第1の集合126を受信し、暗号化済みの第1のデータセット126を二重暗号化し、二重暗号化済みの第1のデータセット126をファーストパーティシステム120に送信することができる。サードパーティシステム140は、値Tを選択することができる。値Tは、ECC累乗鍵であってよい。さらに、サードパーティシステム140は、値R、決定論的鍵を選択することができる。サードパーティシステム140は、ファーストパーティシステム120からステップ202で受信した暗号化済みデータを暗号化することができる。これは、二重暗号化と称され得る。
サードパーティシステム140は、ステップ202で受信したデータを選択された値Tおよび選択された値Rで二重暗号化することができる(EF'(ui),F[MKi,k],MKTi,k)。特に、サードパーティシステム140は、受信済みのuiを累乗し、F[MKi,k]を値Tで二重暗号化することができる。サードパーティシステム140は、MKTi,kを暗号化されないまま残してよい。結果は、
Figure 2019517167
,FT[MKi,k],MKTi,kであるものとしてよい。サードパーティシステム140は、結果をファーストパーティシステム120に送り返すことができる。いくつかの実装形態において、サードパーティシステム140は、結果の順序をソートするか、またはシャッフルすることができる。
ステップ206において、サードパーティシステム140は、サードパーティシステム140によって記憶されている第2の集合146をステップ204からの選択された値Tで暗号化する。サードパーティシステム140は、特定のv値およびMKT値に関連付けられているMK値を暗号化することができる。特に、サードパーティシステムは、記憶しているMK値を選択された値Tで暗号化することができる。結果は(vj,T[MKj,k],MKTj,k)であり得る。サードパーティシステム140は、結果をファーストパーティシステム120に送信することができる。いくつかの実装形態において、サードパーティシステム140は、暗号化済みの第2のデータセット146をファーストパーティシステム120に送信する前に暗号化済みの第2のデータセット146をソートし、および/またはシャッフルする。
ステップ208において、ファーストパーティシステム120は、サードパーティシステム140がステップ206でファーストパーティシステム120に送信する暗号化済み集合146を二重暗号化することができる、すなわち、ファーストパーティシステム120は、受信された集合(vj,T[MKj,k],MKTj,k)を二重暗号化することができる。特に、サードパーティシステムは、T[MKj,k]値をFで暗号化することができる。結果は、(vj,FT[MKj,k],MKTj,k)であり得る。
ステップ210において、ファーストパーティシステム120は、第1の集合126のマッチ鍵と第2の集合146のマッチ鍵との間の複数のリンクを含むマッチング関係を生成することができ、第1の集合126および第2の集合146のマッチ鍵は、両方とも二重暗号化される。マッチング関係は、グラフとして視覚的に表現され得るが(たとえば、図2Cに示されているように)、様々な値の間の関係を指示する任意のデータ要素であってよい。
第1のデータセットから、ファーストパーティシステム120は、TF[MKi,k]値を有し得るが、第2のデータセットFT[MKj,k]からのものである。TおよびFによる暗号化は、可換であり得る、すなわち、MKi,kはMKj,kに等しく、TF[MKi,k]はFT[MKj,k]に等しい。したがって、TF[MKi,k]とFT[MKj,k]との間の交差は、どのTF[MKi,k]およびFT[MKj,k]値が等しいかに基づき決定され得る。マッチング関係は、図3Cで視覚的に説明されている。マッチング関係の頂点は、ブラインドユーザID、すなわち、
Figure 2019517167
暗号解読値、およびvj値を表し得る。2つの頂点の間のエッジ(リンク)は、マッチングTF[MKi,k]およびFT[MKj,k]値を表し得る。
ステップ212において、ファーストパーティシステム120は、マッチング関係を、第2のデータセット146の各MKが第1のデータセット126のMKへのリンクを1つだけ有するようにマッチング関係からリンクを取り除くことによってプルーニングすることができる。特に、ファーストパーティシステム120は、各vj頂点が関連付けられているエッジをただ1つ有するようにマッチング関係をプルーニングすることができる。これは、ファーストパーティシステム120が、ファーストパーティシステム120に関連付けられているユーザIDのうちの2つがサードパーティシステム140の単一のユーザIDに対応するかどうかを学習することを防ぐことができる。ファーストパーティシステム120は、反復マッチの数およびマッチのMKTを使用して保存すべき最良のエッジを選択するのを助けることができる。たとえば、いくつかのMKT値は、どのリンクが保存されるべきかを指示し得る。メールアドレスに関連付けられているリンクは保存され得るが、自宅住所に関連付けられているリンクは破棄され得る。
Figure 2019517167
は、それに関連付けられる複数のエッジをいぜんとして有し得る。ステップ214において、ファーストパーティシステム120は、疑似乱数ブリッジ識別子Bを関連付けられている頂点に疑似乱数方式で割り当てることができる。値Bは、BID空間からファーストパーティシステム120によって選択され得る。BID空間は、Bに対する可能な値である値の集合であるものとしてよい。1つまたは複数のパラメータがBID空間を定義し得る。たとえば、1つまたは複数のパラメータが、値が選択される楕円曲線を定義し得る。値Bは、
Figure 2019517167
およびvjの頂点に関連付けられ得る。値Bに関連付けられていないすべての頂点vjについて、ファーストパーティシステム120は、新規疑似乱数値Bjをそれに割り当てることができる。
Bに関連付けられていないすべての頂点
Figure 2019517167
について、ファーストパーティシステム120は、ECグループから疑似乱数方式で選択され、他のすべての
Figure 2019517167
値と異なるダミー
Figure 2019517167
値を有する頂点を置き換えることができる。ファーストパーティシステム120は、Rを知り得ないが、ECグループ内のランダムな、および異なる任意の要素を選択することができ、それはいくつかの未知のuiについて
Figure 2019517167
の形式のものである。ファーストパーティシステム120は、uiが何に逆累乗するかを知り得ないが、これは新しい
Figure 2019517167
が前のすべてのものと異なる限り問題にならない。
ステップ216において、前のステップ214から新しい置き換えを含むすべての頂点
Figure 2019517167
について、ファーストパーティシステム120は、事前定義された数の疑似乱数ブリッジ識別子を割り当てることができる。ファーストパーティシステム120は、各頂点に追加の新しい疑似乱数Bi,k値を、各
Figure 2019517167
がt個の関連付けられた値を有するまで関連付けることができる。
ステップ218において、ファーストパーティシステム120は、サードパーティシステム140に1つまたは複数の第2のタプルを送信することができる。各タプルは、サードパーティシステム140に関連付けられているユーザIDの関連付け、vj、およびブリッジ識別子Bjを含み得る。特に、タプルは、(vj,Bj)の集合であってよい。値Bjは、サードパーティシステム140のユーザID、vjに関連付けられているブリッジ識別子であってよい。
ステップ220において、ファーストパーティシステムは、第1の指数を選択し、1つまたは複数の第1のタプルを累乗し、累乗済みの1つまたは複数の第1のタプルをサードパーティシステム140に送信することができる。ファーストパーティシステム120は、ECC指数となるべき第1の指数を選択することができる。選択されたECC指数は指数Sであってよい。ファーストパーティシステム120は、ファーストパーティシステム120に関連付けられているユーザ識別子
Figure 2019517167
および関連付けられているブリッジ識別子Bj,kに対する第1のタプルを決定することができる。ファーストパーティシステム120は、指数Sで第2のタプルのブリッジ識別子を累乗することができる。結果は、タプル
Figure 2019517167
であるものとしてよい。各iおよびkについて、各
Figure 2019517167
は、Bi,kに関連付けられ得る。置き換えられた
Figure 2019517167
値も含まれ得る。
ステップ222において、サードパーティシステム140は、第2の指数を選択し、ステップ218の受信された1つまたは複数の第2のタプルの累乗を介してブリッジ識別子マップ144を生成することができる。ブリッジ識別子マップ144は、サードパーティシステム140に関連付けられているユーザIDの関連付けおよびステップ220で受信されたブリッジ識別子を含み得る。サードパーティシステム140によって選択された指数は、BID空間に対する指数Tであってよい。サードパーティシステム140は、ステップ218で受信されたタプル(vj,Bj)に基づきペア
Figure 2019517167
を決定することができる。サードパーティシステム140は、これらのペアのどれも、第2の位置において反復
Figure 2019517167
値を有しないことを検証することができる。サードパーティシステム140は、ブリッジ識別子マップ144、vj:BIDjにおいてこれらのペアを使用することができる。マップは、
Figure 2019517167
であってよい。
次に進む前に、サードパーティシステム140は、
Figure 2019517167
ペアの2つのどの2つも同じ
Figure 2019517167
値を有しないことを検証することができる。同じ
Figure 2019517167
値を持つペアが2つある場合、サードパーティシステム140は、プロセス200を中断し得る。そうでなければ、サードパーティシステム140は、ステップ224に続くものとしてよい。
ステップ224において、サードパーティシステム140は、ファーストパーティシステム120に関連付けられているユーザ識別子と第1の指数(S)および第2の指数(T)によって累乗された関連付けられているブリッジ識別子とを含む1つまたは複数の累乗済みの第1のタプル(ステップ220で受信された)を暗号化することができる。特に、サードパーティシステム140は、第1のタプル
Figure 2019517167
を第2の指数Tで累乗し、Rを取り除くことができる。この点に関して、ステップ226において、サードパーティシステム140は、すべてのそのようなタプル
Figure 2019517167
をソートされ、またはシャッフルされた後にファーストパーティシステム120に送信することができる。
ステップ228において、ファーストパーティシステム120は、ステップ224の受信された累乗済みの1つまたは複数の第1のタプルから第1の指数Sを取り除くことができる。第1の指数を取り除くことによって、ファーストパーティシステム120は、ファーストパーティシステム120に対するブリッジ識別子マップを生成することができる。ファーストパーティシステム120は、受信されたタプルのうち、uiに対応しないすべてのタプルを破棄することができる。そうする際に、ファーストパーティシステム120は、ステップ216において導入されたすべてのダミーui値を破棄し、少なくとも1つのvjとマッチしたuiのみを保存する。216において新しく選択された
Figure 2019517167
は、他のすべてと異なっており、したがって、元々ステップ202で供給されたファーストパーティシステム120からの異なるuiに常に逆累乗する。
残りのすべてのuiについて、ファーストパーティシステム120は、受信されたペアの第2の位置の指数Sを取り除き、
Figure 2019517167
の形式のペアをステップ226で受信されたタプル、
Figure 2019517167
から回復することができ、そしてui:BIDi,kマップを構築し、ここで
Figure 2019517167
である。各uiは、ステップ216において挿入されたような、いくつかが本物でいくつがフェイクであるいくつかのBIDi,kに関連付けられ得ることに留意されたい。ファーストパーティシステム120は、どれがフェイクであるかを知り得ない。
プロセス200の結果として、ファーストパーティシステム120は、ユーザID、uiのうちのどれがサードパーティシステム140のユーザID、vjとマッチしたかをすでに学習している。その後の方法において、ファーストパーティシステム120は、関連付けられているBIDのうちのどれが本物で、どれがフェイクかも学習することができ、フェイクのBIDは、決して、交差内に出現しない。その後のトランザクションアップロードにおいて、サードパーティシステム140によって供給される複数のBIDが単一のuiに関連付けられているものとマッチした場合に、ファーストパーティは、その複数のサードパーティがID単一のユーザIDにマッチしたことを学習する。
いくつかの実装形態において、この漏れは、212においてPIIグラフをさらにプルーニングすることによって防ぐことができ、したがって、
Figure 2019517167
およびvjの両方は多くても1つの関連付けられているエッジを有する。これは、図3のプロセス300をさらに参照しつつ説明されている。いくつかの実装形態において、サードパーティシステム140がアンブラインド情報(unblinded information)をまったく受信していない場合、これは、BIDマップおよびファーストパーティシステム120のデータのサイズを超えて何も学習しない。ファーストパーティシステム120は、PIIマッチンググラフのブラインド構造(blinded structure)を学習することができる。しかしながら、この漏れの正側は、ファーストパーティシステム120がグラフ構造を利用してリンクプルーニング(link-pruning)を改善することができる。
いくつかの実装形態において、プロセス200は、ファーストパーティシステム120がユーザIDのうちのどれがマッチしたかを学習することができないように修正され得る。プロセス200に対するいくつかの修正では、BIDを決してマッチせず交差内に決して出現しないユーザIDとして使用する。いくつかの実装形態において、サードパーティシステム140は、アンブラインド情報をいっさい受信し得ず、ファーストパーティのデータのサイズを超えて非常にわずかしか学習しない。ファーストパーティは、グラフ構造を利用してリンクプルーニングを最適化することができる。
ファーストパーティシステム120がユーザIDのうちのどれがマッチしたかをもはや学習し得ないいくつかの実装形態において、サードパーティシステム140は、サードパーティシステム140のユーザIDの間のリンクをもはや学習し得ないが、それは、ファーストパーティシステム120がMK値上で交差した後に、サードパーティには、ブラインドBIDおよび暗号化済みユーザIDしか見えないからである。サードパーティは、ステップ228でより多くの情報を見るのではなく、その情報を見ず、サードパーティはプルーニングをブラインドで実行する。2つの品質対漏れのトレードオフのうちのいずれかをもたらすようにプロセス200を修正することが可能である。
次に図3Aを参照すると、例示的な実装形態により、ブリッジIDがサードパーティシステム140のユーザIDである、ファーストパーティシステム120のユーザIDとサードパーティシステム140のユーザIDとの間のリンクを確立するためのプロセス300が図示されている。ブリッジIDをユーザIDとして選択するステップは、データフローを簡素化し、プロセスを改善し得る。ファーストパーティシステム120およびサードパーティシステム140は、プロセス300のステップを実行するように構成され得る。さらに、本明細書で説明されているコンピューティングデバイスのうちの1つまたは組合せが、プロセス300を実行するように構成され得る。プロセス300は、図2A〜図2Cを参照しつつ説明されているように、プロセス200に類似するものとしてよい。プロセス300は、プロセス200と同じステップのうちの多くを含み得る。しかしながら、プロセス300は、サードパーティシステム140のユーザIDをブリッジIDとして使用することによって少なくとも1つの点でプロセス200と異なり得る。
図3Bを参照すると、プロセス300をより詳しく例示する伝送図が図示されている。図3Bの伝送図は、マッチング関係生成ステップ、マッチング関係プルーニングステップ、およびBID割り当てステップを例示することに加えて、ファーストパーティシステム120とサードパーティシステム140との間で伝送されるデータを例示している。
より具体的に図3Aを参照すると、ステップ302において、サードパーティシステム140は、サードパーティシステム140に関連付けられているユーザIDに対する疑似乱数値を選択することができる。これらの値vjは、楕円曲線上の点を疑似ランダムに選択することによって選択された疑似乱数値であってよい。プロセス300は、ステップ302が実行された後のプロセス200のステップ202および204を含み得る。これらのステップは、それぞれファーストパーティシステムおよびサードパーティシステムによって実行され得る。
ステップ304において、サードパーティシステム140は、第2のデータセット146を暗号化し、暗号化済みの第2のデータセット146をファーストパーティシステム120に送信することができる。第2のデータセット146は、前に説明したように、サードパーティシステム140に関連付けられているユーザID、vjと、ユーザIDにリンクされているMK値と、MK値に対するMKT値とを含み得る。1つまたは複数の第2のデータセットは、vj,MKj,k,MKTj,kであってよい。
サードパーティシステム140は、1つまたは複数の第2のデータセットを決定論的指数T'および決定論的指数Tで暗号化することができる。特に、サードパーティシステム140は、サードパーティシステム140に関連付けられているユーザIDを指数T'で、サードパーティシステム140に関連付けられているMKを指数Tで暗号化することができる。結果は
Figure 2019517167
,T[MKj,k],MKTj,kの1つまたは複数の集合であり得る。サードパーティシステム140は、この結果をファーストパーティシステム120に送信することができる。ステップ304の後に、サードパーティシステム140のプロセス300は、図2A〜図2Cをさらに参照して説明されているようにステップ208〜210を実行することができ、プロセス200はvjの代わりに
Figure 2019517167
を使用する。ファーストパーティシステム120は、ステップ208〜210を実行することができる。
ステップ308において、ファーストパーティシステム120は、ステップ210で生成されたマッチング関係をプルーニングすることができる。ファーストパーティシステム120は、マッチング関係を、第2のデータセット146の各MKが第1のデータセット126のMKへのリンクを1つ有するように、さらに第1のデータセット126の各MKが第2のデータセット146のMKへのリンクを1つ有するように、マッチング関係からリンクを取り除くことによってプルーニングすることができる。
ステップ310において、ファーストパーティシステム120は、1つまたは複数の第1のデータセットのMKと第2のデータセット146のMKとの間のリンクに対するブリッジIDを選択することができ、ブリッジIDはサードパーティシステム140に関連付けられている累乗済みのユーザ識別子である。より具体的には、選択されたブリッジIDは、サードパーティシステム140に関連付けられている暗号化済みのユーザIDによるものであってよい。ブリッジID、Biは、
Figure 2019517167
値であり得る。これは、図3Bに視覚的に例示されており、
Figure 2019517167
に対するTF[MK1,k]と
Figure 2019517167
に対するFT[MK1,k]との間のリンクに対するB1値は値
Figure 2019517167
を割り当てられる。ファーストパーティシステム120の識別子がサードパーティシステム140の識別子とマッチしない場合、ファーストパーティシステム120は、それにランダムなブリッジIDを割り当て得る。たとえば、図3Bでは、B3である。このランダム割り当ては、図2A〜図2Cを参照しつつ説明されているように、プロセス200のステップ214と同じに実行され得る。
プロセス300は、プロセス200のステップ218をスキップし得るが、それはこのステップが必要でない場合があるからである。ステップ218において、タプル(vj,Bj)は、ファーストパーティシステム120からサードパーティシステム140に送信され得る。しかしながら、これは、冗長である
Figure 2019517167
の形式のタプルを送信することを同じである。しかしながら、プロセス300は、ステップ220を実行するステップを含み得る。ステップ220において、ファーストパーティシステム120は、ファーストパーティシステム120に関連付けられているユーザIDと関連付けられているブリッジIDとを含むタプルを送信することができる。タプルは、
Figure 2019517167
であるものとしてよい。しかしながら、ステップ308で選択されたブリッジIDはサードパーティシステム140に関連付けられているユーザIDであってよいので、これらのタプルは、
Figure 2019517167
であってよい。これは、図3Bの伝送図内に例示されている。
ステップ312において、サードパーティシステム140は、サードパーティシステム140に関連付けられているユーザIDを逆累乗することができる。特に、サードパーティシステム140は、指数T'を取り除くが、指数Sを残し得る。その結果は、
Figure 2019517167
であってよく、ステップ220で受信されたタプル
Figure 2019517167
から指数T'を取り除くことによって決定され得る。プロセス300は、プロセス200を参照しつつ説明されているようにファーストパーティシステム120によってステップ224〜228を実行することを続けることができる。しかし、ファーストパーティシステム120は、正確にマッチしたIDに対するvjを回復することができ、マッチしなかったすべてのIDに対してランダム点を回復することに留意されたい。
次に図4A〜図4Bを参照すると、例示的な実装形態により、ブリッジIDが暗号化されている、ファーストパーティシステム120のユーザIDとサードパーティシステム140のユーザIDとの間のリンクを確立するためのプロセス400が図示されている。いくつかの実装形態において、BIDを学習する代わりに、ファーストパーティシステム120およびサードパーティシステム140の両方が暗号化済みのBIDを学習する。暗号化済みのBIDは、品質についてチェックされ得る前に、別個のプロトコルを使用してオンライン方式で暗号解読され得る。ファーストパーティシステム120およびサードパーティシステム140は、プロセス400のステップを実行するように構成され得る。さらに、本明細書で説明されているコンピューティングデバイスのうちの1つまたは組合せが、プロセス400を実行するように構成され得る。
図4Cを参照すると、プロセス400をより詳しく例示する伝送図が図示されている。図4Cの伝送図は、マッチング関係生成ステップ414およびBID割り当てステップ416〜420を例示することに加えて、ファーストパーティシステム120とサードパーティシステム140との間で伝送されるデータを例示している。
プロセス200のステップ212で実行されるような、ユーザID間の追加のリンクの漏れを防止するためにリンクをプルーニングするステップがあると不正確になる可能性がある。一般的にプロセス400を参照すると、プロセス400はこのプルーニングステップを回避することができ、したがってより良好な品質マッチングをもたらし得る。いくつかの実装形態において、プロセス400の終わりに平文のブリッジIDを学習する代わりに、ファーストパーティシステム120およびサードパーティシステム140は、その代わりに、他のシステムのEl-Gamal暗号鍵の下でブリッジIDのランダム化された暗号化を学習する。ブリッジIDは暗号化されるので、両者は、それぞれのユーザのユーザIDの間の追加のリンクを学習しない。
いくつかの実装形態において、それ自身のユーザIDに関連付けられているブリッジIDを学習することを超えて、ファーストパーティシステム120およびサードパーティシステム140の各々は、他のシステムのデータセットに関して何も学習し得ない。特に、ユーザIDの間の新しいリンクを学習し得る参加者はいない。たとえば、ファーストパーティはサードパーティシステムがサードパーティシステム140に関連付けられているユーザID AおよびユーザID Bが同じユーザであると信じることを学習し得ず、同様に、ファーストパーティシステム120は、ファーストパーティがサードパーティシステム140に関連付けられているユーザID CおよびユーザID Dが同じユーザであるとファーストパーティが考えることを学習し得ない。いくつかの実装形態において、そのようなプロセスは、ファーストパーティシステム120およびサードパーティシステム140が2つのデータセットに関する何らかの総統計量を学習することを可能にし得る。
図4A〜図4Bをより具体的に参照すると、ステップ402において、ファーストパーティシステム120およびサードパーティシステム140は公開El-Gamal鍵を交換することができる。公開El-Gamal鍵は、ファーストパーティシステム120およびサードパーティシステム140の各々が記憶し、生成し、および/または受信するように構成されているEl-Gamal鍵であり得る。特に、ファーストパーティシステム120は、サードパーティシステム140にファーストパーティEl-Gamal鍵、EFを送信し、サードパーティシステム140は、ファーストパーティシステム120にサードパーティEl-Gamal鍵、ETを送信することができる。
ステップ404において、ファーストパーティシステム120は、1つまたは複数の第1のデータセット126をファーストパーティEl-Gamal鍵およびファーストパーティ決定論的鍵で暗号化し、暗号化済みの第1のデータセット126をサードパーティシステム140に送信することができる。特に、ファーストパーティシステム120は、uiをファーストパーティ鍵EFで暗号化して、ファーストパーティ決定論的鍵Fを含むEF(ui)およびMKiを生成し、F(MKi)を生成することができる。暗号化済みの1つまたは複数の第1のデータセット126は、タプルEF(ui),F(MKi)の形式であってよい。ファーストパーティシステム120は、暗号化済みの第1のデータセット126、EF(ui),F(MKi)をサードパーティシステム140に送信することができる。uiはEl-Gamalを使用して暗号化されるので、複数のタプルが同じuiを共有するとしても、それらは異なる暗号化を有する。
ステップ406において、サードパーティシステム140は、暗号化済みの第1のデータセット126をサードパーティ決定論的鍵Tで二重暗号化することができる。次いで、サードパーティシステム140は、二重暗号化済みの第1のデータセット126をランダム化することができる。二重暗号化の結果は、
Figure 2019517167
であってよく、サードパーティシステム140は同じRを使用してすべてのuiを暗号化し得る。結果は、シャッフルされた順序でファーストパーティシステム120に送信され得る。
ステップ408において、サードパーティシステム140は、1つまたは複数の第2のデータセット146を決定論的のサードパーティ鍵で暗号化し、1つまたは複数の暗号化済みの第2のデータセット146をファーストパーティシステム120に送信することができる。特に、1つまたは複数の第2のデータセット146、(vj,MKj)は、MKj値をサードパーティ鍵Tで暗号化することによるものである。結果は(vj,T(MKj))であってよく、これはサードパーティシステム140によってファーストパーティシステム120に送信され得る。
ステップ410において、ファーストパーティシステム120は、二重暗号化済みの第1のデータセット126を暗号解読することができる。ファーストパーティシステム120は、二重暗号化済みの1つまたは複数の第1のデータセット126、すなわち、
Figure 2019517167
を、ファーストパーティのEl-Gamal暗号化EFを取り除くことによって暗号解読することができる。結果は、
Figure 2019517167
の形式のタプルであるものとしてよい。
ステップ412において、ファーストパーティシステム120は、ステップ408においてサードパーティシステム140から受信された1つまたは複数の暗号化済みの第2のデータセット146をファーストパーティの決定論的鍵で二重暗号化することができる。特に、ステップ408で受信された1つまたは複数の暗号化済みの第2のデータセット146は、(vj,T(MKj))であってよい。各タプルについて、ファーストパーティシステム120は、T(MKj)をファーストパーティの鍵Fで二重暗号化することができる。結果は、(vij,FT[MKj])の形式のタプルであるものとしてよい。
ステップ414において、ファーストパーティシステム120は、二重暗号化済みの第1のデータセット126のMK値と二重暗号化済みの第2のデータセット146のMK値との間の複数のリンクを含むマッチング関係を生成することができる。マッチング関係の頂点は、ユーザID
Figure 2019517167
(暗号化を介してブラインド化)およびvj(暗号化されていない、平文の)を表すものとしてよく、2つの頂点の間のエッジは、マッチングFT(MK)を表す。ファーストパーティシステム120は、結合された/ブラインド化されたマッチング関係における接続コンポーネントを見つけることができる。
ステップ416において、ファーストパーティシステム120は、暗号化済みのブリッジIDにファーストパーティEl-Gamal鍵およびサードパーティEl-Gamal鍵を割り当てることができる。各接続されたコンポーネント(たとえば、各マッチしたまたはマッチしていないユーザIDの頂点)について、ファーストパーティシステム120は、そのコンポーネントに対して使用するランダムブリッジID Bjを選択し、ファーストパーティEl-Gamal鍵およびサードパーティEl-Gamal鍵の両方の下でブリッジID値を暗号化することができる。
ブリッジIDのこの暗号化は、マッチング関係における各頂点について別個のランダム化された暗号化であってよく、同じ平文が暗号化される。ステップ418において、ファーストパーティシステム120は、割り当て済みのブリッジ識別子をファーストパーティEl-Gamal鍵およびサードパーティEl-Gamal鍵で暗号化することができる。ステップ418の暗号化の後に、各
Figure 2019517167
は単一のEFET(Bi)に関連付けられ、各vjはEFET(Bj)に関連付けられる。これは、重複排除が生じる場合であり、各vjがそのコンポーネントに対応する単一の暗号化済みのブリッジIDにのみ関連付けられているので、サードパーティシステム140は、重複をまったく見ない。
ステップ420において、ファーストパーティシステム120は、ステップ420において生成された暗号化済みのブリッジ識別子およびファーストパーティシステムに関連付けられているユーザIDを含む1つまたは複数の第1のタプル、ならびに暗号化済みのブリッジ識別子およびサードパーティシステムに関連付けられているユーザIDを含む1つまたは複数の第2のタプルをシャッフルし、サードパーティシステム140に送信することができる。これらのタプルは、ファーストパーティシステム120およびサードパーティシステム140のユーザIDを二重暗号化済みのブリッジIDに関連付けるものとしてよい。これらのタプルは、(EFET(Bj),vj)(第1のタプル)および
Figure 2019517167
(第2のタプル)、すなわち、二重暗号化済みのブリッジIDを伴う接続済みのコンポーネントの頂点であってよい。
ステップ422において、サードパーティシステム140は、サードパーティシステム140に対するブリッジ識別子マップ144を、1つまたは複数の第2のタプルをサードパーティEl-Gamal鍵で暗号解読することによって生成することができる。1つまたは複数の第2のタプル(EFET(Bj),vj)について、サードパーティシステム140は、ブリッジIDをサードパーティのEl-Gamal暗号化鍵ETで暗号解読し、暗号化済みのブリッジIDマップ(EF(Bj),vj)を生成することができる。
ステップ424において、サードパーティシステム140は、1つまたは複数の第1のタプルを逆累乗し、逆累乗済みの1つまたは複数の第1のタプルをファーストパーティシステム120に送信することができる。
Figure 2019517167
の形式の1つまたは複数の第1のタプルは、指数Rを取り除くことによってサードパーティシステム140によって逆累乗され得る。サードパーティシステム140は、第1の位置で暗号化を再ランダム化し、第2の位置にあるuiの指数から指数Rを取り除くことができ、その結果(EFET(Bj),ui)となる。サードパーティシステム140は、結果をシャッフルし、および/またはその結果をファーストパーティシステム120に送信することができる。
ステップ426において、ファーストパーティシステム120は、ファーストパーティシステム120に対するブリッジ識別子マップ126を、1つまたは複数の第1のタプルをファーストパーティEl-Gamal鍵で暗号解読することによって生成することができる。各タプル(EFET(Bi),ui)について、ファーストパーティシステム120は、第1のコンポーネントをファーストパーティシステムのEl-Gamal鍵ETで暗号解読し、ファーストパーティシステム120に対する暗号化済みのBIDマップ(EF(Bi),ui)を取得する。
次に図5Aを参照すると、例示的な実装形態による、プロセス500A、サードパーティシステム140により暗号化済みのブリッジ識別子の交差を決定するための安全な交差プロセスの伝送図が示されている。プロセス500Aは、サードパーティシステム140によってプロセス400において生成された暗号化済みのブリッジ識別子の交差を決定するために使用され得る。ファーストパーティシステム120およびサードパーティシステム140は、プロセス500Aのステップを実行するように構成され得る。さらに、本明細書で説明されているコンピューティングデバイスのうちの1つまたは組合せが、プロセス500Aを実行するように構成され得る。
プロセス500Aの概観において、サードパーティシステム140は、最初に、暗号化済みのブリッジ識別子を準同形的に累乗し、それらをファーストパーティシステム120に送信することができる。次いで、ファーストパーティシステム120は、それらを暗号解読し、二重累乗し、シャッフルし、サードパーティシステム140に送り返すことができる。次いで、ファーストパーティシステム120は、それ自身の暗号化済みブリッジIDを累乗し、これらの暗号文をサードパーティシステム140に送信することができる。次いで、サードパーティシステム140は、ファーストパーティシステム120のブリッジIDを暗号解読し、二重累乗することができる。次いで、サードパーティシステム140は、各者に対する二重暗号化済みのBIDを有し、前のように交差を実行することができる(いくつかの実装形態において、役割はスワップされて順方向から逆方向に変わり得る)。
ステップ502において、ファーストパーティシステム120は、ファーストパーティの決定論的暗号鍵Fを生成することができるが、サードパーティシステム140は、サードパーティの決定論的暗号鍵Tを生成することができる。
ステップ504において、セグメント内の各ユーザvjについて、サードパーティシステム140は、関連付けられているEl-Gamal暗号化済みブリッジIDを準同形的に累乗して、結果
Figure 2019517167
を生成することができ、これはファーストパーティシステム120に送信され得る。ステップ506において、ファーストパーティシステム120は、
Figure 2019517167
を暗号解読し、二重累乗して、
Figure 2019517167
を生成し、
Figure 2019517167
をサードパーティシステムに送信することができる。より具体的には、ファーストパーティシステム120は、各
Figure 2019517167
を暗号解読し、EFを取り除き、Fで二重累乗して結果
Figure 2019517167
を生成することができる。値の順序は、送信される前にシャッフルされ得る。ステップ508において、ファーストパーティシステム120、セグメント内の各uiについて、すなわちファーストパーティは関連付けられているEl-Gamal暗号化済みブリッジIDを準同形的に累乗し、
Figure 2019517167
をサードパーティシステムに送信する。
ステップ510において、サードパーティシステム140は、各
Figure 2019517167
を暗号解読し、結果を二重累乗して
Figure 2019517167
を生成することができる。ステップ512において、サードパーティシステム140は、二重累乗済みのブリッジ識別子を交差することによって交差サイズを決定することができる。より具体的には、サードパーティシステム140は、
Figure 2019517167
値と受信された
Figure 2019517167
値とを交差させ、交差サイズを学習することができる。上記のプロトコルは交差和を学習するように自然に拡張され、また他者が交差を実行するようにも逆転され得る。安全な交差和プロセスは、図5Bにより説明されている。
次に図5Bを参照すると、例示的な実装形態による、プロセス500B、ファーストパーティシステム120により暗号化済みのブリッジ識別子の交差を決定するための安全な交差和プロセスの伝送図が示されている。プロセス500Bは、ファーストパーティシステム120によってプロセス400において生成された暗号化済みのブリッジ識別子の交差を決定するために使用され得る。ファーストパーティシステム120およびサードパーティシステム140は、プロセス500Bのステップを実行するように構成され得る。さらに、本明細書で説明されているコンピューティングデバイスのうちの1つまたは組合せが、プロセス500Bを実行するように構成され得る。
いくつかの実装形態において、交差を実行する当事者は
Figure 2019517167
および
Figure 2019517167
値を見ることになり、特に、そのような値が何回繰り返されたかを見ることができる。これは、特定のユーザではなく、同じ接続されたコンポーネント内にいたセグメント内のユーザ(いずれかの当事者に属す)の正確な数を漏らす。
サードパーティ(交差を実行していない)は、ファーストパーティに対する
Figure 2019517167
値を見ることになり、特に、そのような値が何回繰り返されたかを見ることができる。これは、特定のユーザではなく、同じ接続されたコンポーネント内にいたセグメント内のファーストパーティのユーザの正確な数を漏らす。
ステップ522において、サードパーティシステム140は
Figure 2019517167
を送信する。ステップ524において、ファーストパーティシステム120は、
Figure 2019517167
および
Figure 2019517167
をサードパーティシステム140に送信する。ステップ526において、サードパーティシステム140は、ΣjB(Sj+Rj)および
Figure 2019517167
を送信する。ステップ528において、サードパーティシステム140は、ΣjBSjを送信する。
次に図5Cを参照すると、実装形態による、指標ビットを有する多数のマッチしたブリッジIDを決定するためのプロセス500Cの伝送図。ファーストパーティシステム120およびサードパーティシステム140は、プロセス500Cのステップを実行するように構成され得る。さらに、本明細書で説明されているコンピューティングデバイスのうちの1つまたは組合せが、プロセス500Cを実行するように構成され得る。
ステップ530において、ファーストパーティシステム120は、サードパーティシステム140に
Figure 2019517167
を送信する。ステップ532において、サードパーティシステムは、ファーストパーティシステムに
Figure 2019517167
および
Figure 2019517167
を送信することによって応答する。
ステップ534において、ファーストパーティシステム120は、接続済みのコンポーネントを決定し、ブリッジIDを各コンポーネントに割り当てる。「シングルトン」コンポーネント内にある、すなわち、他の頂点を持つエッジを有さない各ファーストパーティ頂点について、ファーストパーティは、EFET(e)をその頂点に割り当て、次数非ゼロの頂点について、EFET(g)を頂点に割り当て、eはECグループのアイデンティティ要素であり、gは生成元である。次いで、ファーストパーティシステム120は、
Figure 2019517167
および{vj,EFET(Bj)}をサードパーティシステム140に送信することができる。
ステップ536において、サードパーティシステム140は、サードパーティシステムに{ui,EFET(Bi),EFET(Ki)}で応答する。この方法では、ファーストパーティシステム120は、セグメントブリッジIDとともにEFET(Ki)を含むべきである。サードパーティシステム140の側に対応するブリッジIDを有していた要素がセグメント内にいくつあるかを決定すること。サードパーティシステム140は、ΠiSEF(Ki)=EG(ΠiSKi)を決定することができる、すなわち、El-Gamal準同形を使用することができる。各Kiは、eまたはgのいずれかであり、したがってKi=gΣである、すなわち、指数はマッチしたブリッジIDのカウントである。指数を一般的に計算することは難しいが、セグメントサイズはあまり大きくない(せいぜい数百万)、すなわち、指数に対する下限は小さい。ファーストパーティは、この数を復号するために可能な指数のルックアップテーブルを保持することができる。これは、必要ならば交差に対してだけ行われるものとしてもよいことに留意されたい。
次に図6を参照すると、図6は、たとえば、例示的なユーザデバイス104、例示的なコンテンツ管理システム108、例示的なコンテンツプロバイダデバイス106、例示的なファーストパーティシステム120、例示的なサードパーティシステム140、および/または本開示において説明されている様々な他の例示的なシステムを実装するために、使用できるコンピュータシステム600の図を示している。コンピューティングシステム600は、情報を伝達するためのバス605または他の通信コンポーネントと、情報を処理するためにバス605に結合されているプロセッサ610とを備える。コンピューティングシステム600は、情報、およびプロセッサ610によって実行されるべき命令を記憶するためにバス605に結合されるランダムアクセスメモリ(RAM)または他の動的記憶装置デバイスなどのメインメモリ615も備える。メインメモリ615は、プロセッサ610による命令の実行時に位置情報、一時変数、または他の中間情報を記憶するためにも使用できる。コンピューティングシステム600は、静的情報とプロセッサ610に対する命令とを記憶するためにバス605に結合されているリードオンリーメモリ(ROM)620または他の静的記憶装置デバイスをさらに備え得る。ソリッドステートデバイス、磁気ディスク、または光ディスクなどの記憶装置デバイス625はバス605に結合され、情報および命令を永続的に記憶する。
コンピューティングシステム600は、情報をユーザに対し表示するために、バス605を介して液晶ディスプレイ、またはアクティブマトリックスディスプレイなどのディスプレイ635に結合され得る。英数字および他のキーを備えるキーボードなどの入力デバイス630はバス605に結合され、情報およびコマンド選択をプロセッサ610に伝達することができる。別の実装形態では、入力デバイス630は、タッチスクリーンディスプレイ635を有する。入力デバイス630は、マウス、トラックボール、またはカーソル方向キーなどのカーソルコントロールを備え、それにより、方向情報およびコマンド選択をプロセッサ610に伝達し、ディスプレイ635上のカーソル移動を制御することができる。
いくつかの実装形態において、コンピューティングシステム600は、ネットワーキングアダプタなどの通信アダプタ640を備え得る。通信アダプタ640は、バス605に結合されてよく、コンピューティングまたは通信ネットワーク645および/または他のコンピューティングシステムと通信することを可能にするように構成され得る。様々な例示的な実装形態において、有線(たとえば、イーサネット(登録商標)を介して)、ワイヤレス(たとえば、WiFi、Bluetooth(登録商標)などを介して)、事前構成された、アドホック、LAN、WANなどの通信アダプタ640を使用して任意のタイプのネットワーキング構成が達成され得る。
様々な実装形態によれば、本明細書で説明されている例示的な実装形態を実現するプロセスは、メインメモリ615に収められている命令の配置構成をプロセッサ610が実行したことに応答してコンピューティングシステム600によって達成され得る。そのような命令は、記憶装置デバイス625などの別のコンピュータ可読媒体からメインメモリ615内に読み込まれ得る。メインメモリ615に収められている命令の配置構成が実行されると、コンピューティングシステム600は本明細書で説明されている例示的なプロセスを実行する。マルチプロセッシング配置構成の1つまたは複数のプロセッサも、メインメモリ615に収められている命令を実行するために採用され得る。代替的実装形態において、ハード配線された回路を、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用され、それにより例示的な実装形態を実装するものとしてよい。したがって、実装形態は、ハードウェア回路とソフトウェアとの特定の組合せに限定されない。
例示的な処理システムが図6において説明されたが、本明細書で説明されている主題および機能動作の実装形態は、他のタイプのデジタル電子回路を使用して、または本明細書およびその構造的等価物において開示されている構造を含む、コンピュータソフトウェア、ファームウェア、もしくはハードウェアで、またはそれらのうちの1つもしくは複数の組合せで実行され得る。
本明細書で説明されている主題および機能動作の実装形態は、デジタル電子回路を使用して、または本明細書およびその構造的等価物において開示されている構造を含む、有形な媒体上に具現化されているコンピュータソフトウェア、ファームウェア、もしくはハードウェアで、またはそれらのうちの1つもしくは複数の組合せで実行され得る。本明細書において説明されている主題の実装形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行できるようにまたはデータ処理装置の動作を制御するために1つまたは複数のコンピュータ記憶媒体上に符号化された、コンピュータプログラム命令の1つまたは複数のサブシステムとして実装され得る。代替的に、またはそれに加えて、プログラム命令は、データ処理装置による実行のため好適な受信機装置に送信する情報が符号化されるように生成される、人工的に生成された伝搬信号、たとえば、機械で生成された電気、光、または電磁信号上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶装置基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであり得るか、または含まれ得る。さらに、コンピュータ記憶媒体は、伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成される伝搬信号内に符号化されているコンピュータプログラム命令の送信元または送信先とすることができる。コンピュータ記憶媒体は、また、1つまたは複数の独立したコンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であり得るか、または含まれ得る。したがって、コンピュータ記憶媒体は、有形であり非一時的である媒体である。
本明細書において説明されている動作は、1つまたは複数のコンピュータ可読記憶装置デバイス上に記憶されるか、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
「データ処理システム」または「コンピューティングデバイス」という用語は、たとえばプログラム可能プロセッサ、コンピュータ、1つもしくは複数のシステムオンチップ、または前述のものの組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、およびマシンを包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)を含んでいてもよい。装置は、また、ハードウェアに加えて、注目しているコンピュータプログラム用の実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想マシン、またはこれらのうちの1つもしくは複数のものの組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービス、分散型コンピューティング、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル言語またはインタプリタ言語、宣言型もしくは手続き型言語を含む、任意の形態のプログラミング言語で書かれ、スタンドアロンプログラム、またはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境において使用するのに適している他のユニットを含む、任意の形態で配備され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムをまたはデータ(たとえば、マークアップ言語ドキュメントに記憶される1つもしくは複数のスクリプト)を保持するファイルの一部に、注目しているプログラム専用の単一ファイルに、または複数の協調ファイル(たとえば、1つもしくは複数のサブシステム、副プログラム、またはコードの一部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置されるか、または複数のサイトにまたがって分散され、通信ネットワークによって相互接続されている複数のコンピュータ上で実行されるように配備され得る。
本明細書で説明されているプロセスおよび論理の流れは、入力データを操作し、出力を生成することによってアクションを実行するように1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって実行され得る。これらのプロセスまたは論理の流れは、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、および/またはASIC(特定用途向け集積回路)によっても実行され、また装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)としても実装され得る。
コンピュータプログラムの実行に適しているプロセッサは、たとえば、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの不可欠な要素は、命令に従ってアクションを実行するためのプロセッサならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般的に、コンピュータは、データを記憶するための1つまたは複数の大容量記憶装置デバイス、たとえば、磁気ディスク、磁気光ディスク、もしくは光ディスクも備え、またはこれらからデータを受け取るか、もしくはこれらにデータを転送するか、もしくはその両方を行うように動作可能なように結合される。しかしながら、コンピュータは、そのようなデバイスを有している必要はない。さらに、コンピュータは、他のデバイス、たとえば、2、3例を挙げると、携帯電話、携帯情報端末(PDA)、携帯オーディオもしくはビデオプレーヤー、ゲーム機、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれ得る。コンピュータプログラムの命令およびデータを記憶するのに適したデバイスは、たとえば、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補助されるか、または専用論理回路に組み込まれ得る。
ユーザと情報のやり取りを行うために、本明細書で説明されている主題の実装形態は、ユーザに情報を表示するためのディスプレイデバイス(たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)ならびにユーザがコンピュータに入力を送るために使用できるキーボードおよびポインティングデバイス(たとえば、マウスもしくはトラックボール)を有するコンピュータを使用して実行され得る。他の種類のデバイスも、ユーザとインタラクティブにやり取りするために使用されてよく、たとえば、ユーザに返されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってよく、ユーザからの入力は、音響、話し声、または触覚入力を含む、任意の形態で受け取られ得る。それに加えて、コンピュータは、ドキュメントをユーザによって使用されるデバイスに送り、そのデバイスからドキュメントを受け取ることによって、たとえば、ウェブブラウザから受け取った要求に応答して、ウェブページをユーザのクライアントデバイス上のウェブブラウザに送信することによって、ユーザとインタラクティブにやり取りすることができる。
本明細書で説明されている主題の実装形態は、バックエンド構成要素を、たとえば、データサーバとして備えるか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを備えるか、またはフロントエンド構成要素、たとえば、ユーザが本明細書で説明されている発明対象の実装をインタラクティブに操作するために使用することができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータを備えるコンピューティングシステム、または1つまたは複数のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組合せを使用して実行され得る。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体、たとえば、通信ネットワーク、によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に、互いに隔てられており、典型的には、通信ネットワークを通じてインタラクティブな操作を行う。クライアントとサーバとの関係は、コンピュータプログラムが各コンピュータ上で実行され、互いとの間にクライアント-サーバ関係を有することによって発生する。いくつかの実装形態において、サーバはデータ(たとえば、HTMLページ)をクライアントデバイスに(たとえば、クライアントデバイスをインタラクティブに操作するユーザにデータを表示し、ユーザ入力を受け取ることを目的として)伝送する。クライアントデバイスで生成されるデータ(たとえば、ユーザインタラクションの結果)は、サーバ側でクライアントデバイスから受信され得る。
いくつかの例示的な実装形態において、本明細書で開示されている特徴は、インターネット接続性をより伝統的なテレビ番組ソース(たとえば、ケーブル、衛星、無線、または他の信号を介して受信される)と統合するように構成されている処理回路を備え得る、スマートテレビモジュール(または接続されているテレビモジュール、ハイブリッドテレビモジュールなど)上に実装され得る。スマートテレビモジュールは、テレビ受像機に物理的に組み込まれ得るか、またはセットトップボックス、ブルーレイ、または他のデジタルメディアプレーヤー、ゲーム機、ホテルテレビシステム、および他の随伴デバイスなどの別個のデバイスを含み得る。スマートテレビモジュールは、ウェブ、ローカルケーブルTVチャンネル、衛星TVチャンネル上の、またはローカルのハードドライブに記憶されているビデオ、動画、写真、および他のコンテンツを視聴者が検索し、見つけることを可能にするように構成され得る。セットトップボックス(STB)またはセットトップユニット(STU)は、チューナーを収容し、テレビ受像機に接続し得る情報家電デバイスおよび外部信号源を備えるものとしてよく、これは信号をその後テレビ画面もしくは他の表示デバイス上に表示されるコンテンツに変える。スマートテレビモジュールは、ウェブブラウザおよび複数のストリーミングメディアサービス、接続されたケーブルもしくは衛星メディアソース、他のウェブ「チャンネル」などの、複数の異なるアプリケーション用のアイコンを含むホーム画面または最上位画面を提供するように構成され得る。スマートテレビモジュールは、電子番組ガイドをユーザに提供するようにさらに構成され得る。スマートテレビモジュールの随伴アプリケーションは、ユーザに利用可能な番組に関する追加の情報を提供する、ユーザがスマートテレビモジュールを制御することを可能にするなどのことを行うためにモバイルコンピューティングデバイス上で動作可能であるものとしてよい。代替的実装形態において、これらの特徴は、ラップトップコンピュータもしくは他のパーソナルコンピュータ、スマートフォン、他の携帯電話、ハンドヘルドコンピュータ、タブレットPC、または他のコンピューティングデバイス上に実装され得る。
本明細書は、多くの実装形態固有の詳細事項を含んでいるが、これらは、発明の範囲または請求内容の範囲に対する制限として解釈すべきではなく、むしろ特定の発明の特定の実装形態に特有のものである特徴の説明として解釈すべきである。本明細書において別々の実装形態の文脈で説明されているいくつかの特徴は、また、組み合わされて、または単一の実装形態で実行され得る。また、逆に、単一の実装形態の文脈において説明されている様々な特徴は、複数の実装形態において別々に、または任意の好適な部分組合せで実行され得る。さらに、特徴は、いくつかの組合せで働くものとして上記で説明され、初めにそのように請求されることさえあるが、請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除され得、請求される組合せは、部分組合せ、または部分組合せの変形形態を対象とし得る。
それに加えて、特定の見出しに関して説明されている特徴は、他の見出しの下で説明されている例示的な実装形態に関して、および/または組み合わせて利用されてよく、見出しは、用意されている場合に、読みやすくすることを目的としてのみ含まれており、そのような見出しに関して提供される特徴を制限するものとして解釈されるべきでない。
同様に、動作は特定の順序で図面に示されているが、そのような動作は、望ましい結果を達成するために、示される特定の順序でもしくは順番に実行されることが、またはすべての図示の動作が実行されることが必要とされるものと理解されるべきではない。ある状況では、マルチタスキングおよび並列処理が有利である場合がある。さらに、上記で説明した各実装形態における様々なシステム構成要素の分離は、すべての実装形態においてそのような分離が必要とされるものと理解されるべきではなく、前述のプログラム構成要素およびシステムが概して単一のソフトウェア製品として一体化されるかまたは有形の媒体上に具現化される複数のソフトウェア製品としてパッケージ化されてもよいことを理解されたい。
こうして、主題の特定の実装形態が説明された。他の実装形態は、次の請求項の範囲内に収まる。いくつかの場合において、請求項に記載されている動作は、異なる順序で実行されてもよく、しかも望ましい結果を達成することができる。それに加えて、添付図面に示されているプロセスは、必ずしも、望ましい結果を達成するために、図示されている特定の順序、または順番を必要としない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利である場合がある。
100 環境
102 ネットワーク
104 ユーザデバイス
106 コンテンツプロバイダデバイス
108 コンテンツ管理システム
112 コンテンツアイテム
120 ファーストパーティシステム
122 暗号化マネージャ
124 ブリッジ識別子マップ
126 入力データ、第1のデータセット、第1の集合
140 サードパーティシステム
142 暗号化マネージャ
144 ブリッジ識別子マップ
146 入力データ、第2のデータセット、第2の集合
200 プロセス
300 プロセス
400 プロセス
500A プロセス
500B プロセス
500C プロセス
600 コンピューティングシステム
605 バス
610 プロセッサ
610 メインメモリ
615 メインメモリ
620 リードオンリーメモリ(ROM)
625 記憶装置デバイス
630 入力デバイス
635 ディスプレイ
635 タッチスクリーンディスプレイ
640 通信アダプタ
645 コンピューティングまたは通信ネットワーク

Claims (20)

  1. 特定のユーザ識別情報を開示することなく異なるシステムのユーザ識別子の間のリンクを確立するための方法であって、
    ファーストパーティシステムによって、マッチ鍵と前記ファーストパーティシステムに関連付けられているユーザ識別子とをそれぞれに含む1つまたは複数の第1のデータセットを暗号化するステップと、
    前記ファーストパーティシステムによって、前記暗号化済みの1つまたは複数の第1のデータセットをサードパーティシステムに送信するステップと、
    前記ファーストパーティシステムによって前記サードパーティシステムから、マッチ鍵と前記サードパーティシステムに関連付けられているユーザ識別子とをそれぞれに含む1つまたは複数の暗号化済みの第2のデータセットを受信するステップと、
    前記ファーストパーティシステムによって前記サードパーティシステムから、1つまたは複数の二重暗号化済みの第1のデータセットを受信するステップであって、前記1つまたは複数の二重暗号化済みの第1のデータセットは前記サードパーティシステムによってさらに暗号化された前記暗号化済みの1つまたは複数の第1のデータセットを含む、ステップと、
    前記ファーストパーティシステムによって、前記サードパーティシステムから受信された前記暗号化済みの1つまたは複数の第2のデータセットを暗号化して、1つまたは複数の二重暗号化済みの第2のデータセットを生成するステップと、
    前記ファーストパーティシステムによって、前記二重暗号化済みの1つまたは複数の第1のデータセットおよび前記二重暗号化済みの1つまたは複数の第2のデータセットに基づきマッチング関係を生成するステップであって、前記マッチング関係は前記ファーストパーティシステムに関連付けられている前記マッチ鍵と前記サードパーティシステムに関連付けられている前記マッチ鍵との間の1つまたは複数のリンクを指示する、ステップと、
    前記ファーストパーティシステムによって、前記マッチング関係に基づき、前記ファーストパーティシステムに関連付けられている前記ユーザ識別子および前記サードパーティシステムに関連付けられている前記ユーザ識別子に対するブリッジ識別子を割り当てるステップであって、前記ブリッジ識別子は前記ファーストパーティシステムに関連付けられている前記ユーザ識別子と前記サードパーティシステムに関連付けられている前記ユーザ識別子との間のリンクである、ステップと
    を含む方法。
  2. 前記サードパーティシステムによって、楕円曲線上のランダム点であるべき前記1つまたは複数の第2のデータセットに対する前記サードパーティシステムに関連付けられている前記ユーザ識別子を選択するステップと、
    前記サードパーティシステムによって、前記1つまたは複数の第2のデータセットを、前記1つまたは複数の第2のデータセットの前記サードパーティシステムに関連付けられている前記選択されたユーザ識別子をサードパーティ決定論的指数で累乗することによって暗号化するステップと
    をさらに含む、請求項1に記載の方法。
  3. 前記ファーストパーティシステムによって、前記マッチング関係を、
    前記サードパーティシステムに関連付けられている各マッチ鍵が前記ファーストパーティシステムの前記マッチ鍵へ1つのリンクを有し、かつ、
    前記ファーストパーティシステムに関連付けられている各マッチ鍵が前記サードパーティシステムの前記マッチ鍵へ1つのリンクを有する
    ように、前記マッチング関係からリンクを取り除くことによってプルーニングするステップをさらに含む、請求項1に記載の方法。
  4. 前記ファーストパーティシステムによって、前記マッチング関係を、複数のリンクを有する前記サードパーティシステムのマッチ鍵を決定することによって前記マッチ鍵の間の前記リンクのうちの1つまたは複数を取り除くことによってプルーニングするステップであって、前記マッチング関係の前記リンクを取り除くステップは、前記ファーストパーティシステムおよび前記サードパーティシステムの前記ユーザ識別子のうちのいくつかをマッチングが行われるようにし、前記ファーストパーティシステムおよび前記サードパーティシステムの前記ユーザ識別子のうちのいくつかをマッチングが行われないようにする、ステップをさらに含み、
    前記ファーストパーティシステムによって、前記マッチング関係に基づき、前記ファーストパーティシステムに関連付けられている前記ユーザ識別子および前記サードパーティシステムに関連付けられている前記ユーザ識別子に対するブリッジ識別子を割り当てるステップは、前記ファーストパーティシステムおよび前記サードパーティシステムの前記マッチしたユーザ識別子および前記マッチしていないユーザ識別子の両方に前記ブリッジ識別子を割り当てるステップを含む、請求項1に記載の方法。
  5. 前記ファーストパーティシステムによって、1つまたは複数の第1のタプルを第1の指数で累乗するステップであって、各第1のタプルは前記ファーストパーティシステムに関連付けられている前記ユーザ識別子を前記ブリッジ識別子にリンクする、ステップと、
    前記ファーストパーティシステムによって前記サードパーティシステムに、前記1つまたは複数の累乗済みの第1のタプルを送信するステップと、
    前記ファーストパーティシステムによって前記サードパーティシステムに、1つまたは複数の第2のタプルを送信するステップであって、各第2のタプルは前記サードパーティシステムに関連付けられている前記ユーザ識別子のうちの1つの識別子を前記ブリッジ識別子のうちの1つの識別子にリンクする、ステップと、
    前記サードパーティシステムによって、ブリッジ識別子マップを、前記1つまたは複数の第2のタプルの前記ブリッジ識別子を第2の指数で累乗することによって生成するステップと、
    前記サードパーティシステムによって、前記1つまたは複数の累乗済みの第1のタプルを前記第2の指数で累乗するステップと、
    前記サードパーティシステムによって前記ファーストパーティシステムに、前記1つまたは複数の累乗済みの第1のタプルを送信するステップと、
    前記ファーストパーティシステムによって、前記ファーストパーティシステムに対するブリッジ識別子マップを、前記1つまたは複数の累乗済みの第1のタプルから前記第1の指数を取り除くことによって生成するステップと
    をさらに含む、請求項1に記載の方法。
  6. 前記ファーストパーティシステムによって、前記第1のデータセットを暗号化するステップは、
    前記ファーストパーティシステムに関連付けられている前記ユーザ識別子をEl-Gamal鍵で暗号化するステップと、
    ファーストパーティシステムに関連付けられている前記マッチ鍵をファーストパーティ決定論的鍵で暗号化するステップと
    を含み、
    前記方法は、前記サードパーティシステムによって、前記1つまたは複数の第1のデータセットを暗号化して、1つまたは複数の二重暗号化済みの第1のデータセットを生成することを、
    前記ファーストパーティシステムに関連付けられている前記暗号化済みのマッチ鍵をサードパーティ決定論的暗号鍵で暗号化するステップと、
    El-Gamal鍵で暗号化された前記暗号化済みのユーザ識別子を指数乗するステップと
    によって行うステップをさらに含む、請求項1に記載の方法。
  7. 前記ファーストパーティシステムによって前記サードパーティシステムに、ファーストパーティEl-Gamal鍵を送信するステップであって、前記ファーストパーティEl-Gamal鍵は前記ファーストパーティシステムの公開鍵である、ステップと、
    前記ファーストパーティシステムによって前記サードパーティシステムから、サードパーティEl-Gamal鍵を受信するステップであって、前記サードパーティEl-Gamal鍵は前記サードパーティシステムの公開鍵である、ステップと
    をさらに含み、
    前記ファーストパーティシステムによって前記1つまたは複数の第1のデータセットを暗号化するステップは、前記ファーストパーティシステムによって前記1つまたは複数の第1のデータセットを前記ファーストパーティEl-Gamal鍵およびファーストパーティ決定論的鍵で暗号化するステップを含み、
    前記方法は、
    前記サードパーティシステムによって、前記暗号化済みの1つまたは複数の第1のデータセットをサードパーティ決定論的鍵で暗号化して、1つまたは複数の二重暗号化済みの第1のデータセットを生成するステップと、
    前記サードパーティシステムによって、前記暗号化済みの1つまたは複数の第2のデータセットを、前記サードパーティシステムに関連付けられている前記マッチ鍵を前記サードパーティ決定論的鍵で暗号化することによって暗号化するステップと
    をさらに含む、請求項1に記載の方法。
  8. 前記ファーストパーティシステムによって、前記割り当てられたブリッジ識別子の各々を前記ファーストパーティEl-Gamal鍵および前記セカンドパーティEl-Gamal鍵で暗号化するステップと、
    前記ファーストパーティシステムによって前記サードパーティシステムに、前記ファーストパーティシステムに関連付けられている、前記暗号化済みのブリッジ識別子および関連付けられているユーザ識別子を含む1つまたは複数の第1のタプルを送信するステップと、
    前記ファーストパーティシステムによって前記サードパーティシステムに、前記サードパーティシステムに関連付けられている、前記暗号化済みのブリッジ識別子および関連付けられているユーザ識別子を含む1つまたは複数の第2のタプルを送信するステップと
    をさらに含む、請求項7に記載の方法。
  9. 前記サードパーティシステムによって、前記サードパーティシステムに対するブリッジ識別子マップを、前記1つまたは複数の第2のタプルを前記サードパーティEl-Gamal鍵で暗号解読することによって生成するステップと、
    前記サードパーティシステムによって、前記1つまたは複数の第1のタプルを逆累乗し、前記逆累乗済みの1つまたは複数の第1のタプルを前記ファーストパーティシステムに送信するステップと、
    前記ファーストパーティシステムによって、前記ファーストパーティシステムに対するブリッジ識別子マップを、前記1つまたは複数の第1のタプルを前記ファーストパーティEl-Gamal鍵で暗号解読することによって生成するステップと
    をさらに含む、請求項8に記載の方法。
  10. 特定のユーザ識別情報を開示することなく異なるシステムのユーザ識別子の間のリンクを確立するためのファーストパーティシステムであって、
    メモリに動作可能に結合されている処理回路を備え、前記処理回路は、
    マッチ鍵と前記ファーストパーティシステムに関連付けられているユーザ識別子とをそれぞれに含む1つまたは複数の第1のデータセットを暗号化し、
    前記暗号化済みの1つまたは複数の第1のデータセットをサードパーティシステムに送信し、
    前記サードパーティシステムから、マッチ鍵と前記サードパーティシステムに関連付けられているユーザ識別子とをそれぞれに含む1つまたは複数の暗号化済みの第2のデータセットを受信し、
    前記サードパーティシステムから、1つまたは複数の二重暗号化済みの第1のデータセットを受信し、前記1つまたは複数の二重暗号化済みの第1のデータセットは前記サードパーティシステムによって暗号化された前記暗号化済みの1つまたは複数の第1のデータセットであり、
    前記サードパーティシステムから受信された前記暗号化済みの1つまたは複数の第2のデータセットを暗号化して、1つまたは複数の二重暗号化済みの第2のデータセットを生成し、
    前記二重暗号化済みの1つまたは複数の第1のデータセットおよび前記二重暗号化済みの1つまたは複数の第2のデータセットに基づきマッチング関係を生成し、前記マッチング関係は前記ファーストパーティシステムに関連付けられている前記マッチ鍵と前記サードパーティシステムに関連付けられている前記マッチ鍵との間の1つまたは複数のリンクを指示し、
    前記マッチング関係に基づき前記ファーストパーティシステムに関連付けられている前記ユーザ識別子および前記サードパーティシステムに関連付けられている前記ユーザ識別子に対するブリッジ識別子を割り当て、前記ブリッジ識別子は前記ファーストパーティシステムに関連付けられている前記ユーザ識別子と前記サードパーティシステムに関連付けられている前記ユーザ識別子との間のリンクである、
    ように構成されるファーストパーティシステム。
  11. 前記処理回路は、前記マッチング関係を、
    前記サードパーティシステムに関連付けられている各マッチ鍵が前記ファーストパーティシステムの前記マッチ鍵へ1つのリンクを有し、かつ、
    前記ファーストパーティシステムに関連付けられている各マッチ鍵が前記サードパーティシステムの前記マッチ鍵へ1つのリンクを有する
    ように、前記マッチング関係からリンクを取り除くことによってプルーニングするように構成される、請求項10に記載のシステム。
  12. 前記処理回路は、前記マッチング関係を、複数のリンクを有する前記サードパーティシステムのマッチ鍵を決定することによって前記マッチ鍵の間の前記リンクの1つまたは複数を取り除くことによってプルーニングするように構成される、請求項10に記載のシステム。
  13. 前記処理回路は、
    1つまたは複数の第1のタプルを第1の指数で累乗し、各第1のタプルは前記ファーストパーティシステムに関連付けられている前記ユーザ識別子を前記ブリッジ識別子にリンクし、
    前記サードパーティシステムに、前記1つまたは複数の累乗済みの第1のタプルを送信し、
    前記サードパーティシステムに、1つまたは複数の第2のタプルを送信し、各第2のタプルは前記サードパーティシステムに関連付けられている前記ユーザ識別子のうちの1つの識別子を前記ブリッジ識別子のうちの1つの識別子にリンクし、前記サードパーティシステムは、ブリッジ識別子マップを、前記1つまたは複数の第2のタプルの前記ブリッジ識別子を第2の指数で累乗することによって生成し、
    前記サードパーティシステムから、前記第2の指数で累乗された前記1つまたは複数の累乗済みのタプルを受信し、
    前記ファーストパーティシステムに対するブリッジ識別子マップを、前記1つまたは複数の累乗済みの第1のタプルから前記第1の指数を取り除くことによって生成する
    ように構成される、請求項10に記載のシステム。
  14. 特定のユーザ識別情報を開示することなく異なるシステムのユーザ識別子の間のリンクを確立するための方法であって、
    ファーストパーティ処理回路によって、マッチ鍵と前記ファーストパーティ処理回路に関連付けられているユーザ識別子とをそれぞれに含む1つまたは複数の第1のデータセットを暗号化するステップと、
    前記ファーストパーティ処理回路によって、前記暗号化済みの1つまたは複数の第1のデータセットをサードパーティ処理回路に送信するステップと、
    前記ファーストパーティ処理回路によって前記サードパーティ処理回路から、鍵と前記サードパーティ処理回路に関連付けられているユーザ識別子とをそれぞれに含む1つまたは複数の暗号化済みの第2のデータセットを受信するステップと、
    前記ファーストパーティ処理回路によって前記サードパーティ処理回路から、1つまたは複数の二重暗号化済みの第1のデータセットを受信するステップであって、前記1つまたは複数の二重暗号化済みの第1のデータセットは前記サードパーティ処理回路によって暗号化された前記暗号化済みの1つまたは複数の第1のデータセットである、ステップと、
    前記ファーストパーティ処理回路によって、前記サードパーティ処理回路から受信された前記暗号化済みの1つまたは複数の第2のデータセットを暗号化して、1つまたは複数の二重暗号化済みの第2のデータセットを生成するステップと、
    前記ファーストパーティ処理回路によって、前記二重暗号化済みの1つまたは複数の第1のデータセットおよび前記二重暗号化済みの1つまたは複数の第2のデータセットに基づきマッチング関係を生成するステップであって、前記マッチング関係は前記ファーストパーティ処理回路に関連付けられている前記マッチ鍵と前記サードパーティ処理回路に関連付けられている前記マッチ鍵との間の1つまたは複数のリンクを指示する、ステップと、
    前記ファーストパーティ処理回路によって、前記マッチング関係を、複数のリンクを有する前記サードパーティ処理回路のマッチ鍵を決定することによって前記マッチ鍵の間の前記リンクのうちの1つまたは複数を取り除くことによってプルーニングするステップと、
    前記ファーストパーティ処理回路によって、前記プルーニングされたマッチング関係に基づき前記ファーストパーティ処理回路に関連付けられている前記ユーザ識別子および前記サードパーティ処理回路に関連付けられている前記ユーザ識別子に対するブリッジ識別子を割り当てるステップであって、前記ブリッジ識別子は前記ファーストパーティ処理回路に関連付けられている前記ユーザ識別子と前記サードパーティ処理回路に関連付けられている前記ユーザ識別子との間のリンクであり、前記ブリッジ識別子は前記ファーストパーティシステムに関連付けられている前記ユーザ識別子と前記サードパーティシステムに関連付けられている前記ユーザ識別子との間のリンクである、ステップと
    を含む、方法。
  15. 前記サードパーティ処理回路によって、楕円曲線上のランダム点であるべき前記1つまたは複数の第2のデータセットに対する前記サードパーティ処理回路に関連付けられている前記ユーザ識別子を選択するステップと、
    前記サードパーティ処理回路によって、前記1つまたは複数の第2のデータセットを、前記1つまたは複数の第2のデータセットの前記サードパーティ処理回路に関連付けられている前記選択されたユーザ識別子をサードパーティ決定論的指数で累乗することによって暗号化するステップと
    をさらに含む、請求項14に記載の方法。
  16. 前記ファーストパーティ処理回路によって、前記マッチング関係をプルーニングするステップは、
    前記サードパーティ処理回路に関連付けられている各マッチ鍵が前記ファーストパーティ処理回路の前記マッチ鍵へ1つのリンクを有し、かつ、
    前記ファーストパーティ処理回路に関連付けられている各マッチ鍵が前記サードパーティ処理回路の前記マッチ鍵へ1つのリンクを有する
    ように、前記マッチング関係からリンクを取り除くステップを含む、請求項14に記載の方法。
  17. 前記ファーストパーティ処理回路によって、1つまたは複数の第1のタプルを第1の指数で累乗するステップであって、各第1のタプルは前記ファーストパーティ処理回路に関連付けられている前記ユーザ識別子を前記ブリッジ識別子にリンクする、ステップと、
    前記ファーストパーティ処理回路によって前記サードパーティ処理回路に、前記1つまたは複数の累乗済みの第1のタプルを送信するステップと、
    前記ファーストパーティ処理回路によって前記サードパーティ処理回路に、1つまたは複数の第2のタプルを送信するステップであって、各第2のタプルは前記サードパーティ処理回路に関連付けられている前記ユーザ識別子のうちの1つの識別子を前記ブリッジ識別子のうちの1つの識別子にリンクする、ステップと、
    前記サードパーティ処理回路によって、ブリッジ識別子マップを、前記1つまたは複数の第2のタプルの前記ブリッジ識別子を第2の指数で累乗することによって生成するステップと、
    前記サードパーティ処理回路によって、前記1つまたは複数の累乗済みの第1のタプルを前記第2の指数で累乗するステップと、
    前記サードパーティ処理回路によって前記ファーストパーティ処理回路に、前記1つまたは複数の累乗済みの第1のタプルを送信するステップと、
    前記ファーストパーティ処理回路によって、前記ファーストパーティ処理回路に対するブリッジ識別子マップを、前記1つまたは複数の累乗済みの第1のタプルから前記第1の指数を取り除くことによって生成するステップと
    をさらに含む、請求項14に記載の方法。
  18. 前記ファーストパーティ処理回路によって、前記第1のデータセットを暗号化するステップは、
    前記ファーストパーティ処理回路に関連付けられている前記ユーザ識別子をEl-Gamal鍵で暗号化するステップと、
    前記ファーストパーティ処理回路に関連付けられている前記マッチ鍵をファーストパーティ決定論的鍵で暗号化するステップと
    を含み、
    前記方法は、前記サードパーティ処理回路によって、前記1つまたは複数の第1のデータセットを暗号化して、1つまたは複数の二重暗号化済みの第1のデータセットを生成することを、
    前記ファーストパーティ処理回路に関連付けられている前記暗号化済みのマッチ鍵をサードパーティ決定論的暗号鍵で暗号化するステップと、
    El-Gamal鍵で暗号化された前記暗号化済みのユーザ識別子を指数乗するステップと
    によって行うステップをさらに含む、請求項14に記載の方法。
  19. 前記ファーストパーティ処理回路によって前記サードパーティ処理回路に、ファーストパーティEl-Gamal鍵を送信するステップであって、前記ファーストパーティEl-Gamal鍵は前記ファーストパーティ処理回路の公開鍵である、ステップと、
    前記ファーストパーティ処理回路によって前記サードパーティ処理回路から、サードパーティEl-Gamal鍵を受信するステップであって、前記サードパーティEl-Gamal鍵は前記サードパーティ処理回路の公開鍵である、ステップと
    をさらに含み、
    前記ファーストパーティ処理回路によって前記1つまたは複数の第1のデータセットを暗号化するステップは、前記ファーストパーティ処理回路によって前記1つまたは複数の第1のデータセットを前記ファーストパーティEl-Gamal鍵およびファーストパーティ決定論的鍵で暗号化するステップを含み、
    前記方法は、
    前記サードパーティ処理回路によって、前記暗号化済みの1つまたは複数の第1のデータセットをサードパーティ決定論的鍵で暗号化して、1つまたは複数の二重暗号化済みの第1のデータセットを生成するステップと、
    前記サードパーティ処理回路によって、前記暗号化済みの1つまたは複数の第2のデータセットを、前記サードパーティ処理回路に関連付けられている前記マッチ鍵を前記サードパーティ決定論的鍵で暗号化することによって暗号化するステップと、
    前記ファーストパーティ処理回路によって、前記割り当てられたブリッジ識別子の各々を前記ファーストパーティEl-Gamal鍵および前記セカンドパーティEl-Gamal鍵で暗号化するステップと、
    前記ファーストパーティ処理回路によって前記サードパーティ処理回路に、前記ファーストパーティ処理回路に関連付けられている、前記暗号化済みのブリッジ識別子および関連付けられているユーザ識別子を含む1つまたは複数の第1のタプルを送信するステップと、
    前記ファーストパーティ処理回路によって前記サードパーティ処理回路に、前記サードパーティ処理回路に関連付けられている、前記暗号化済みのブリッジ識別子および関連付けられているユーザ識別子を含む1つまたは複数の第2のタプルを送信するステップと
    をさらに含む、請求項14に記載の方法。
  20. 前記方法は、
    前記サードパーティ処理回路によって、前記サードパーティ処理回路に対するブリッジ識別子マップを、前記1つまたは複数の第2のタプルを前記サードパーティEl-Gamal鍵で暗号解読することによって生成するステップと、
    前記サードパーティ処理回路によって、前記1つまたは複数の第1のタプルを逆累乗し、前記逆累乗済みの1つまたは複数の第1のタプルを前記ファーストパーティ処理回路に送信するステップと、
    前記ファーストパーティ処理回路によって、前記ファーストパーティ処理回路に対するブリッジ識別子マップを、前記1つまたは複数の第1のタプルを前記ファーストパーティEl-Gamal鍵で暗号解読することによって生成するステップと
    をさらに含む、請求項19に記載の方法。
JP2018545907A 2017-03-03 2017-12-14 特定の識別情報を開示することなく識別子の間のリンクを確立するためのシステムおよび方法 Active JP6612468B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762466797P 2017-03-03 2017-03-03
US62/466,797 2017-03-03
PCT/US2017/066515 WO2018160256A1 (en) 2017-03-03 2017-12-14 Systems and methods for establishing a link between identifiers without disclosing specific identifying information

Publications (2)

Publication Number Publication Date
JP2019517167A true JP2019517167A (ja) 2019-06-20
JP6612468B2 JP6612468B2 (ja) 2019-11-27

Family

ID=60937938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018545907A Active JP6612468B2 (ja) 2017-03-03 2017-12-14 特定の識別情報を開示することなく識別子の間のリンクを確立するためのシステムおよび方法

Country Status (6)

Country Link
US (3) US10764041B2 (ja)
EP (1) EP3408965B1 (ja)
JP (1) JP6612468B2 (ja)
KR (1) KR102149996B1 (ja)
CN (1) CN108811519B (ja)
WO (1) WO2018160256A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3685546A4 (en) * 2017-09-21 2021-12-29 LG Electronics Inc. Cryptographic methods and systems for managing digital certificates with linkage values
US11146397B2 (en) * 2017-10-31 2021-10-12 Micro Focus Llc Encoding abelian variety-based ciphertext with metadata
US20190318118A1 (en) * 2018-04-16 2019-10-17 International Business Machines Corporation Secure encrypted document retrieval
US11509475B2 (en) * 2018-06-15 2022-11-22 Proxy, Inc. Method and apparatus for obtaining multiple user credentials
US11843675B2 (en) * 2018-10-10 2023-12-12 Nec Corporation Method and system for synchronizing user identities
KR102382314B1 (ko) 2018-12-26 2022-04-04 (주)프람트테크놀로지 안전한 분산 집합정보물 결합 방법
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
US11205194B2 (en) 2019-04-30 2021-12-21 Advanced New Technologies Co., Ltd. Reliable user service system and method
CN110086817B (zh) * 2019-04-30 2021-09-03 创新先进技术有限公司 可靠的用户服务系统和方法
CN111079165B (zh) * 2019-12-18 2022-05-17 深圳我家云网络科技有限公司 一种数据处理的方法、数据处理装置、设备及存储介质
US11949778B1 (en) 2020-09-16 2024-04-02 Snap Inc. Privacy-preserving multi-touch attribution
CN112883415A (zh) * 2021-01-22 2021-06-01 支付宝(杭州)信息技术有限公司 基于隐私保护的数据核对方法、装置和服务器
US20220318081A1 (en) * 2021-03-30 2022-10-06 Traceable Inc. Automatic generation of an api interface description
CN113132944B (zh) * 2021-04-22 2023-10-20 上海银基信息安全技术股份有限公司 多通路安全通信方法、装置、车端、设备端及介质
US11943354B2 (en) * 2021-07-20 2024-03-26 Snap Inc. Privacy safe joint identification protocol
KR20230052539A (ko) 2021-10-13 2023-04-20 (주)프람트테크놀로지 데이터셋 품질을 고려한 메타데이터 기반 연관 데이터셋 검색 방법
WO2023244979A1 (en) * 2022-06-15 2023-12-21 Visa International Service Association Secure data exchange matching across identity providers

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013114622A (ja) * 2011-11-30 2013-06-10 Nippon Telegr & Teleph Corp <Ntt> ネットワークシステム、ゲートウェイサーバ、ユーザ識別子連携方法及びユーザ識別子連携プログラム
JP2014096692A (ja) * 2012-11-09 2014-05-22 Fujitsu Ltd 情報分析システム及び情報分析方法
JP2014098753A (ja) * 2012-11-13 2014-05-29 Fujitsu Ltd 情報処理方法、プログラム及び情報処理装置
WO2017019376A1 (en) * 2015-07-24 2017-02-02 Google Inc. Generating bridge match identifiers for linking identifiers from server logs

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008068655A2 (en) * 2006-12-08 2008-06-12 International Business Machines Corporation Privacy enhanced comparison of data sets
US8639920B2 (en) * 2009-05-11 2014-01-28 Experian Marketing Solutions, Inc. Systems and methods for providing anonymized user profile data
US8935177B2 (en) * 2010-12-22 2015-01-13 Yahoo! Inc. Method and system for anonymous measurement of online advertisement using offline sales
US8868654B2 (en) * 2011-06-06 2014-10-21 Microsoft Corporation Privacy-preserving matching service
US9491146B2 (en) * 2011-09-07 2016-11-08 Elwha Llc Computational systems and methods for encrypting data for anonymous storage
US9641332B1 (en) * 2013-01-30 2017-05-02 Google Inc. Privacy-preserving measurements of a campaign
CN104813224B (zh) 2013-05-31 2019-03-22 积水化学工业株式会社 液晶显示元件用密封剂、上下导通材料、液晶显示元件、及液晶显示元件用密封剂的制造方法
US9503432B2 (en) * 2014-04-04 2016-11-22 Privacy Analytics Inc. Secure linkage of databases
CN105227524B (zh) * 2014-06-12 2018-10-12 阿里巴巴集团控股有限公司 一种信息保密方法及相关装置
IL234613A0 (en) * 2014-09-11 2014-12-02 Google Inc Exchange consolidated and encrypted transaction information with a transaction information provider
US10142296B2 (en) * 2015-07-24 2018-11-27 Google Llc Systems and methods for improving precision of a location sensor
US10558817B2 (en) * 2017-01-30 2020-02-11 Foley & Lardner LLP Establishing a link between identifiers without disclosing specific identifying information
US10250576B2 (en) * 2017-02-08 2019-04-02 International Business Machines Corporation Communication of messages over networks
CN109726580B (zh) * 2017-10-31 2020-04-14 阿里巴巴集团控股有限公司 一种数据统计方法和装置
US11494506B2 (en) * 2018-04-19 2022-11-08 Google Llc Security measures for determination of private set intersections
US11429730B2 (en) * 2019-11-25 2022-08-30 Duality Technologies, Inc. Linking encrypted datasets using common identifiers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013114622A (ja) * 2011-11-30 2013-06-10 Nippon Telegr & Teleph Corp <Ntt> ネットワークシステム、ゲートウェイサーバ、ユーザ識別子連携方法及びユーザ識別子連携プログラム
JP2014096692A (ja) * 2012-11-09 2014-05-22 Fujitsu Ltd 情報分析システム及び情報分析方法
JP2014098753A (ja) * 2012-11-13 2014-05-29 Fujitsu Ltd 情報処理方法、プログラム及び情報処理装置
WO2017019376A1 (en) * 2015-07-24 2017-02-02 Google Inc. Generating bridge match identifiers for linking identifiers from server logs

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AGRAWAL, RAKESH, ET AL.: "Information Sharing Across Private Databases", PROCEEDINGS OF THE 2003 ACM SIGMOD INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA, JPN7016001160, June 2003 (2003-06-01), US, pages 86 - 97, XP058330182, ISSN: 0004123417, DOI: 10.1145/872757.872771 *

Also Published As

Publication number Publication date
EP3408965A1 (en) 2018-12-05
WO2018160256A1 (en) 2018-09-07
EP3408965B1 (en) 2020-08-19
US11240009B2 (en) 2022-02-01
US20180254893A1 (en) 2018-09-06
US11743034B2 (en) 2023-08-29
JP6612468B2 (ja) 2019-11-27
US20200389298A1 (en) 2020-12-10
KR102149996B1 (ko) 2020-08-31
US20220200794A1 (en) 2022-06-23
US10764041B2 (en) 2020-09-01
CN108811519A (zh) 2018-11-13
KR20180111904A (ko) 2018-10-11
CN108811519B (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
JP6612468B2 (ja) 特定の識別情報を開示することなく識別子の間のリンクを確立するためのシステムおよび方法
CN109891424B (zh) 在不披露特定识别信息的情况下建立标识符之间的链接
CN109784931B (zh) 一种基于区块链的数据查询平台的查询方法
TWI749444B (zh) 可靠的使用者服務系統和方法
US20150149763A1 (en) Server-Aided Private Set Intersection (PSI) with Data Transfer
JP2022526058A (ja) プライバシーを保護するための方法
JP2014002365A (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
WO2018116826A1 (ja) メッセージ送信システム、通信端末、サーバ装置、メッセージ送信方法、およびプログラム
Patil et al. Pixel co-ordinate-based secret image sharing scheme with constant size shadow images
WO2023185360A1 (zh) 一种数据处理方法、装置、系统、设备及存储介质
KR20220059506A (ko) 보안 식별 검색을 위한 시스템 및 방법
JP7471475B2 (ja) 安全なユニバーサル測定識別子構築のためのシステムおよび方法
CN113422832A (zh) 文件传输方法、装置、设备和存储介质
JP7189357B2 (ja) プライバシー保護のためのデータセキュリティ方法
EP4014427B1 (en) Online privacy preserving techniques
KR101628924B1 (ko) k번째 항목의 스코어 산출 방법 및 산출 시스템
CN117574407A (zh) 基于区块链的数据访问权限管理方法、装置及存储介质
CN117321593A (zh) 密码安全和隐私保护匹配
Shahbazi Treasure Island Security framework: A Generic Security Framework for public clouds

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181030

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: 20190930

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191030

R150 Certificate of patent or registration of utility model

Ref document number: 6612468

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250