KR102149996B1 - 특정 식별 정보 노출없이 식별자간 링크를 설정하기 위한 시스템 및 방법 - Google Patents

특정 식별 정보 노출없이 식별자간 링크를 설정하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102149996B1
KR102149996B1 KR1020187025342A KR20187025342A KR102149996B1 KR 102149996 B1 KR102149996 B1 KR 102149996B1 KR 1020187025342 A KR1020187025342 A KR 1020187025342A KR 20187025342 A KR20187025342 A KR 20187025342A KR 102149996 B1 KR102149996 B1 KR 102149996B1
Authority
KR
South Korea
Prior art keywords
party
encrypted
processing circuit
party system
key
Prior art date
Application number
KR1020187025342A
Other languages
English (en)
Other versions
KR20180111904A (ko
Inventor
벤자민 크루터
사바르 파텔
소브힛 사쎄나
카른 세스
Original Assignee
구글 엘엘씨
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 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20180111904A publication Critical patent/KR20180111904A/ko
Application granted granted Critical
Publication of KR102149996B1 publication Critical patent/KR102149996B1/ko

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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/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/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
    • 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/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
    • 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

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

특정 사용자 식별 정보를 노출하지 않고 상이한 시스템들의 사용자 식별들 사이의 링크를 설정하는 시스템 및 방법이 사용될 수 있다. 하나의 방법은 자사 시스템(first party system)의 이중 암호화된 하나 이상의 제1 데이터 세트 및 타사 시스템(third party system)의 이중 암호화된 하나 이상의 제2 데이터 세트에 기초하여 매칭 관계를 생성하는 단계를 포함한다. 상기 매칭 관계는 자사 시스템과 관련된 매치 키들과 타사 시스템과 관련된 매치 키들 사이의 하나 이상의 링크를 나타낸다. 상기 방법은 상기 매칭 관계에 기초하여 상기 자사 시스템과 연관된 사용자 식별자들 및 상기 타사 시스템과 관련된 사용자 식별자들에 대한 브리지 식별자들을 할당하는 단계를 포함한다.

Description

특정 식별 정보 노출없이 식별자간 링크를 설정하기 위한 시스템 및 방법
본 출원은 2017년 3월 3일자로 출원된 미국 가출원 제62/466,797 호에 대한 우선권 및 우선권을 주장하며, 그 전체 내용은 본 명세서에 참조로 포함된다.
웹 데이터에는 사업자들이 보호된(protected) 데이터베이스에 저장하는 사용자 식별 정보가 포함될 수 있다. 사용자 식별 정보를 저장하는 시스템을 관리하는 사업자들은 특정 사용자 식별 정보를 노출하지 않고 두 당사자의 식별자 사이에 링크를 설정하고자 할 수 있다.
하나의 예시적인 방법은 특정 사용자 식별 정보를 노출하지 않고 상이한 시스템들의 사용자 식별자들 사이에 링크를 설정하는 방법이다. 상기 방법은 자사 시스템((first party system)에 의해, 상기 자사 시스템과 관련된 매치 키 및 사용자 식별자를 각각 포함하는 하나 이상의 제1 데이터 세트를 암호화하는 단계 및 상기 자사 시스템에 의해, 상기 암호화된 하나 이상의 제1 데이터 세트를 타사 시스템 (third party system)으로 전송하는 단계를 포함한다. 상기 방법은 상기 자사 시스템에 의해 상기 타사 시스템으로부터, 상기 타사 시스템과 관련된 매치 키 및 사용자 식별자를 각각 포함하는 하나 이상의 암호화된 제2 데이터 세트를 수신하는 단계 및 상기 자사 시스템에 의해 상기 타사 시스템으로부터, 하나 이상의 이중 암호화된 제1 데이터 세트를 수신하는 단계를 포함하고, 상기 하나 이상의 이중 암호화된 제1 데이터 세트는 상기 타사 시스템에 의해 추가로 암호화된 상기 암호화된 하나 이상의 상기 제1 데이터 세트를 포함한다. 상기 단계는 상기 자사 시스템에 의해, 하나 이상의 이중 암호화된 제2 데이터 세트를 생성하기 위해 타사 시스템으로부터 수신된 상기 암호화된 하나 이상의 제2 데이터 세트를 암호화하는 단계를 더 포함한다. 상기 방법은 상기 자사 시스템에 의해, 상기 이중 암호화된 하나 이상의 제1 데이터 세트 및 상기 이중 암호화된 하나 이상의 제2 데이터 세트에 기초하여 매칭 관계를 생성하는 단계와, 상기 매칭 관계는 자사 시스템과 관련된 매치 키들 및 타사 시스템과 관련된 매치 키들사이의 하나 이상의 링크를 나타내고, 그리고 상기 자사 시스템에 의해, 상기 매칭 관계에 기초하여 상기 자사 시스템과 관련된 사용자 식별자들 및 상기 타사 시스템과 관련된 사용자 식별자들에 대한 브리지 식별자를 할당하는 단계를 포함하고, 상기 브리지 식별자는 상기 자사 시스템과 관련된 사용자 식별자들 및 상기 타사 시스템과 관련된 사용자 식별자들사이의 링크인 것을 특징으로 한다.
일부 구현예에서, 상기 방법은 상기 타사 시스템에 의해, 타원 곡선상의 랜덤 포인트가 되도록 상기 하나 이상의 제2 데이터 세트에 대한 상기 타사 시스템과 관련된 사용자 식별자들을 선택하는 단계; 및 상기 타사 시스템에 의해, 타사 결정 지수(deterministic exponent)로 상기 하나 이상의 제2 데이터 세트의 상기 타사 시스템과 관련된 선택된 상기 선택된 사용자 식별자들을 지수화함으로써 상기 하나 이상의 제2 데이터 세트를 암호화하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 타사 시스템과 관련된 각각의 매치 키는 상기 자사 시스템의 매치 키들에 대한 하나의 링크를 가지며 상기 자사 시스템과 관련된 각각의 매치 키는 상기 타사 시스템의 매치 키들에 대한 하나의 링크를 갖도록 상기 자사 시스템에 의해, 상기 매칭 관계로부터 링크들을 제거함으로써 상기 매칭 관계를 정리(pruning)하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 자사 시스템에 의해, 하나 이상의 링크를 갖는 타사 시스템의 매치 키들을 결정하여 상기 매치 키들 사이의 하나 이상의 링크를 제거함으로써 상기매칭 관계를 정리하는 단계를 포함한다. 일부 구현예에서, 상기 매칭 관계의 링크들을 제거하는 것은 상기 자사 및 타사 시스템의 사용자 식별자들 중 일부는 매칭되고 상기 자사 및 타사 시스템의 사용자 식별자들 중 일부는 중 일부는 비매칭되게 한다. 일부 구현예에서, 상기 자사 시스템에 의해, 상기 매칭 관계에 기초하여 자사 시스템과 관련된 사용자 식별자들 및 상기 타사 시스템과 관련된 사용자 식별자들에 대해 브리지 식별자들을 할당하는 단계는 자사 시스템 및 타사 시스템의 상기 매칭 및 비매칭된 사용자 식별자들 모두에 브리지 식별자들을 할당하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 자사 시스템에 의해, 제1 지수로 하나 이상의 제1 튜플(tuples)을 지수화하는 단계를 포함하고, 각각의 제1 튜플은 상기 자사 시스템과 관련된 사용자 식별자들을 브리지 식별자들에 링크시킨다. 일부 구현예에서, 상기 방법은 상기 자사 시스템에 의해 상기 타사 시스템으로, 상기 하나 이상의 지수화된 제1 튜플을 전송하는 단계를 포함한다. 게다가, 상기 방법은 상기 자사 시스템에 의해 상기 타사 시스템으로, 하나 이상의 제2 튜플을 전송하는 단계를 포함하고, 각각의 제2 튜플은 상기 타사 시스템과 관련된 사용자 식별자들 중 하나를 상기 브리지 식별자들 중 하나에 링크시킨다. 일부 구현예에서, 상기 방법은 상기 타사 시스템에 의해, 제 2지수로 상기 하나 이상의 제2 튜플의 브리지 식별자들을 지수화함으로써 브리지 식별자 맵을 생성하는 단계와, 상기 타사 시스템에 의해, 상기 제2 지수로 상기 하나 이상의 지수화된 제1 튜플을 지수화하는 단계와, 상기 타사 시스템에 의해 상기 자사 시스템으로, 상기 하나 이상의 지수화된 제1 튜플을 전송하는 단계를 포함한다. 상기 방법은 상기 자사 시스템에 의해, 상기 하나 이상의 지수화된 제1 튜플로부터 상기 제1 지수를 제거함으로써 상기 자사 시스템에 대한 브리지 식별자 맵을 생성하는 단계를 더 포함한다.
일부 구현예에서, 상기 방법은 상기 타사 시스템에 의해, 상기 자사 시스템에 의해, 상기 자사 시스템과 관련된 상기 사용자 식별자들을 엘-가말 키(El-Gamal key)로 암호화하고 상기 자사 시스템과 관련된 상기 매치 키를 자사 결정 키(deterministic key)로 암호화함으로써 제1 데이터 세트를 암호화하는 단계를 포함한다. 일부 구현예들에서, 상기 방법은 상기 타사 시스템에 의해, 상기 자사 시스템과 관련된 상기 암호화된 매치 키들을 타사 결정 암호화 키로 암호화하고 그리고 상기 엘-가말 키로 암호화된 상기 암호화된 사용자 식별자들을 지수로 올림으로써 하나 이상의 이중 암호화된 제1 데이터 세트를 생성하기 위해 상기 하나 이상의 제1 데이터 세트를 암호화하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 자사 시스템에 의해 상기 자사 시스템으로, 자사 엘-가말 키를 전송하는 단계와, 상기 자사 엘-가말 키는 자사 시스템의 공개키이고; 및 상기 자사 시스템에 의해 상기 타사 시스템으로부터, 타사 엘-가말 키를 수신하는 단계를 포함하고, 상기 타사 엘-가말 키는 타사 시스템의 공개키이다. 일부 구현예들에서, 상기 방법은 상기 자사 시스템에 의해, 상기 자사 엘-가말 키와 자사 결정 키로 상기 하나 이상의 제1 데이터 세트를 암호화하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 상기 타사 시스템에 의해, 하나 이상의 이중 암호화된 제1 데이터 세트를 생성하기 위해 타사 결정 키로 상기 암호화된 하나 이상의 제1 데이터 세트를 암호화하는 단계 및 상기 타사 시스템에 의해, 상기 타사 시스템과 연관된 매치 키들을 상기 타사 결정 키로 암호화함으로써 상기 암호화된 하나 이상의 제2 데이터 세트를 암호화하는 단계를 더 포함한다.
일부 구현예에서, 상기 방법은 상기 자사 시스템에 의해, 상기 자사 엘-가말 키 및 상기 제2 당사자 엘-가말 키로 상기 할당된 브리지 식별자들 각각을 암호화하는 단계, 상기 자사 시스템에 의해 상기 타사 시스템으로, 상기 자사 시스템과 관련된 상기 암호화된 브리지 식별자들 및 관련 사용자 식별자들을 전송하는 단계, 및 상기 자사 시스템에 의해 상기 타사 시스템으로, 상기 타사 시스템과 관련된 상기 암호화된 브리지 식별자들 및 관련 사용자 식별자들을 포함하는 하나 이상의 제2 튜플을 전송하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 타사 시스템에 의해, 상기 타사 엘-가말 키로 상기 하나 이상의 제2 튜플을 해독함으로써 상기 타사 시스템에 대한 브리지 식별자 맵을 생성하는 단계,상기 타사 시스템에 의해, 상기 하나 이상의 제1 튜플을 역지수화하여 상기 역지수화된 하나 이상의 제1 튜플을 자사 시스템으로 전송하는 단계; 및 상기 자사 시스템에 의해, 상기 자사 엘-가말 키로 상기 하나 이상의 제1 튜플을 해독함으로써 자사 시스템에 대한 브리지 식별자 맵을 생성하는 단계를 포함한다.
본 발명의 다른 구현은 특정 사용자 식별 정보를 노출하지 않고 상이한 시스템들의 사용자 식별자들 사이의 링크를 설정하기 위한 자사 시스템이며, 상기 자사 시스템은 메모리에 동작 가능하게 결합된 처리 회로를 포함한다. 상기 처리 회로는 상기 자사 시스템과 관련된 매치 키 및 사용자 식별자를 각각 포함하는 하나 이상의 제1 데이터 세트를 암호화하고, 상기 암호화된 하나 이상의 제1 데이터 세트를 타사 시스템((third party system)으로 전송하고, 상기 타사 시스템으로부터, 상기 타사 시스템과 관련된 매치 키 및 사용자 식별자를 각각 포함하는 하나 이상의 암호화된 제2 데이터 세트를 수신하고, 상기 타사 시스템으로부터, 하나 이상의 이중 암호화된 제1 데이터 세트를 수신하며, 상기 하나 이상의 이중 암호화된 제1 데이터 세트는 타사 시스템에 의해 암호화된 상기 암호화된 하나 이상의 제1 데이터 세트이다. 상기 처리 회로는 하나 이상의 이중 암호화된 제2 데이터 세트를 생성하기 위해 상기 타사 시스템으로부터 수신된 상기 암호화된 하나 이상의 제2 데이터 세트를 암호화하고, 상기 이중 암호화된 하나 이상의 제1 데이터 세트 및 상기 이중 암호화된 하나 이상의 제2 데이터 세트에 기초하여 매칭 관계를 생성하며, 상기 매칭 관계는 자사 시스템과 관련된 매치 키들 및 타사 시스템과 관련된 매치 키들사이의 하나 이상의 링크를 나타내고, 상기 매칭 관계에 기초하여 상기 자사 시스템과 관련된 사용자 식별자들 및 상기 타사 시스템과 관련된 사용자 식별자들에 대한 브리지 식별자를 할당하도록 구성되며, 상기 브리지 식별자는 상기 자사 시스템과 관련된 사용자 식별자들 및 상기 타사 시스템과 관련된 사용자 식별자들사이의 링크이다.
일부 구현예에서, 상기 처리 회로는 상기 타사 시스템과 관련된 각각의 매치 키는 상기 자사 시스템의 매치 키들에 대한 하나의 링크를 갖고, 상기 자사 시스템과 관련된 각각의 매치 키는 상기 타사 시스템의 매치 키들에 대한 하나의 링크를 갖도록 상기 매칭 관계로부터 링크들을 제거함으로써 상기 매칭 관계를 정리하도록 구성된다.
일부 구현예에서, 상기 처리 회로는 하나 이상의 링크를 갖는 상기 타사 시스템의 매치 키들을 결정하여 상기 매치 키들 사이의 상기 링크들 중 하나 이상을 제거함으로써 상기 매칭 관계를 정리하도록 구성된다.
일부 구현예에서, 상기 처리 회로는 제1 지수를 갖는 하나 이상의 제1 튜플들을 지수화하고, 각각의 제1 튜플은 상기 자사 시스템과 관련된 사용자 식별자들을 브리지 식별자들에 링크시키며, 상기 하나 이상의 지수화된 제1 튜플을 전송하도록 구성된다. 일부 구현예들에서, 상기 처리 회로는 상기 타사 시스템으로, 하나 이상의 제2 튜플을 전송하고, 각각의 제2 튜플은 상기 타사 시스템과 관련된 사용자 식별자들 중 하나를 상기 브리지 식별자들 중 하나에 링크시킨다. 상기 타사 시스템은 제2 지수로 상기 하나 이상의 제2 튜플의 브리지 식별자들을 지수화함으로써 브리지 식별자 맵을 생성할 수 있다. 상기 처리 회로는 상기 타사 시스템으로부터, 상기 제2 지수로 지수화된 상기 하나 이상의 지수화된 튜플을 수신하고, 그리고 상기 하나 이상의 지수화된 제1 튜플로부터 상기 제1 지수를 제거함으로써 상기 자사 시스템에 대한 브리지 식별자 맵을 생성하도록 구성될 수 있다.
또 다른 예시적인 방법은 특정 사용자 식별 정보를 노출하지 않고 상이한 시스템들의 사용자 식별자들사이에 링크를 설정하는 방법이다. 상기 방법은 자사 처리 회로에 의해, 자사 시스템과 관련된 매치 키 및 사용자 식별자를 각각 포함하는 하나 이상의 제1 데이터 세트를 암호화하는 단계, 상기 자사 처리 회로에 의해, 상기 암호화된 하나 이상의 제1 데이터 세트를 타사 처리 회로로 전송하는 단계, 상기 자사 처리 회로에 의해, 상기 타사 처리 회로에 관련된 키 및 사용자 식별자를 각각 포함하는 하나 이상의 암호화된 제2 데이터 세트를 수신하는 단계를 포함한다. 상기 방법은 상기 자사 처리 회로에 의해 상기 타사 처리 회로로부터, 하나 이상의 이중 암호화된 제1 데이터 세트를 수신하는 단계와, 상기 하나 이상의 이중 암호화된 제1 데이터 세트는 상기 타사 처리 회로에 의해 암호화된 상기 암호화된 하나 이상의 제1 데이터 세트이며; 상기 자사 처리 회로에 의해, 하나 이상의 이중 암호화된 제2 데이터 세트를 생성하기 위해 타사 처리 회로로부터 수신된 상기 암호화된 하나 이상의 제2 데이터 세트를 암호화하는 단계와, 상기 자사 처리 회로에 의해, 상기 이중 암호화된 하나 이상의 제1 데이터 세트 및 상기 이중 암호화된 하나 이상의 제2 데이터 세트에 기초하여 매칭 관계를 생성하는 단계와, 상기 매칭 관계는 상기 자사 처리 회로와 관련된 매치 키들 및 상기 타사 처리 회로와 관련된 매치 키들사이의 하나 이상의 링크를 나타낸다. 또한, 상기 방법은 상기 자사 처리 회로에 의해, 하나 이상의 링크를 갖는 상기 타사 처리 회로의 매치 키들을 결정하여 상기 매치 키들 사이의 하나 이상의 링크를 제거함으로써 상기 매칭 관계를 정리(pruning)하는 단계, 및 상기 자사 처리 회로에 의해, 상기 정리된 매칭 관계에 기초하여 상기 자사 처리 회로와 관련된 사용자 식별자들 및 상기 타사 처리 회로와 관련된 사용자 식별자들에 대한 브리지 식별자들을 할당하는 단계를 포함하고, 상기 브리지 식별자는 상기 자사 처리 회로와 관련된 사용자 식별자들 및 상기 타사 처리 회로와 관련된 사용자 식별자들사이의 링크이고, 상기 브리지 식별자는 자사 시스템과 관련된 사용자 식별자들 및 타사 시스템과 관련된 사용자 식별자들 사이의 링크이다.
일부 구현예에서, 상기 방법은 상기 타사 처리 회로에 의해, 타원 곡선상의 랜덤 포인트가 되도록 상기 하나 이상의 제2 데이터 세트에 대한 상기 타사 처리 회로와 관련된 사용자 식별자들을 선택하는 단계, 및 상기 타사 처리 회로에 의해, 타사 결정 지수(deterministic exponent)로 상기 하나 이상의 제2 데이터 세트의 상기 타사 처리 회로와 관련된 선택된 상기 선택된 사용자 식별자들을 지수화함으로써 상기 하나 이상의 제2 데이터 세트를 암호화하는 단계를 포함한다.
일부 구현예에서, 상기 자사 처리 회로에 의해, 상기 매칭 관계를 정리하는 단계를 포한하고, 이 단계는 상기 타사 처리 회로와 관련된 각각의 매치 키는 상기 자사 처리 회로의 매치 키들에 대한 하나의 링크를 갖고, 상기 자사 처리 회로와 관련된 각각의 매치 키는 상기 타사 처리 회로의 매치 키들에 대한 하나의 링크를 갖도록 상기 매칭 관계로부터 링크들을 제거하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 자사 처리 회로에 의해, 제1 지수로 하나 이상의 제1 튜플(tuples)을 지수화하는 단계와, 각각의 제1 튜플은 상기 자사 처리 회로와 관련된 사용자 식별자들을 브리지 식별자들에 링크시키고, 상기 자사 처리 회로에 의해 상기 타사 처리 회로로, 상기 하나 이상의 지수화된 제1 튜플을 전송하는 단계와, 상기 자사 처리 회로에 의해 상기 타사 처리 회로로, 하나 이상의 제2 튜플을 전송하는 단계와, 각각의 제2 튜플은 상기 타사 처리 회로와 관련된 사용자 식별자들 중 하나를 상기 브리지 식별자들 중 하나에 링크시킨다. 일부 구현예에서, 상기 방법은 상기 타사 처리 회로에 의해, 제 2지수로 상기 하나 이상의 제2 튜플의 브리지 식별자들을 지수화함으로써 브리지 식별자 맵을 생성하는 단계와, 상기 타사 처리 회로에 의해, 상기 제2 지수로 상기 하나 이상의 지수화된 제1 튜플을 지수화하는 단계와, 상기 타사 처리 회로에 의해 상기 자사 처리 회로로, 상기 하나 이상의 지수화된 제1 튜플을 전송하는 단계, 그리고 상기 자사 처리 회로 의해, 상기 하나 이상의 지수화된 제1 튜플로부터 상기 제1 지수를 제거함으로써 상기 자사 처리 회로에 대한 브리지 식별자 맵을 생성하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 자사 처리 회로에 의해, 상기 제1 데이터 세트를 암호화하는 단계는 상기 자사 처리 회로와 관련된 상기 사용자 식별자들을 엘-가말 키(El-Gamal key)로 암호화하는 단계, 및 상기 자사 처리 회로와 관련된 매치 키들을 자사 결정 키(deterministic key)로 암호화하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 상기 타사 처리 회로에 의해, 상기 자사 시스템과 관련된 상기 암호화된 매치 키들을 타사 결정 암호화 키로 암호화하고; 그리고 상기 엘-가말 키로 암호화된 상기 암호화된 사용자 식별자들을 지수로 올림으로써 하나 이상의 이중 암호화된 제1 데이터 세트를 생성하기 위해 상기 하나 이상의 제1 데이터 세트를 암호화하는 단계를 더 포함한다.
일부 구현예에서, 상기 방법은 상기 자사 처리 회로에 의해 상기 타사 처리 회로로, 자사 엘-가말 키를 전송하는 단계와, 상기 자사 엘-가말 키는 자사 처리 회로의 공개키이고; 그리고 상기 자사 처리 회로에 의해 상기 타사 처리 회로로부터, 타사 엘-가말 키를 수신하는 단계를 더 포함하고, 상기 타사 엘-가말 키는 타사 처리 회로의 공개키이다. 일부 구현예에서, 상기 방법은 상기 자사 처리 회로에 의해, 상기 하나 이상의 제1 데이터 세트를 암호화하는 단계는, 상기 자사 처리 회로에 의해, 상기 자사 엘-가말 키와 자사 결정 키 (deterministic key)로 상기 하나 이상의 제1 데이터 세트를 암호화하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 상기 타사 처리 회로에 의해, 하나 이상의 이중 암호화된 제1 데이터 세트를 생성하기 위해 타사 결정 키로 상기 암호화된 하나 이상의 제1 데이터 세트를 암호화하는 단계, 및 상기 타사 처리 회로에 의해, 상기 타사 처리 회로와 관련된 매치 키들을 상기 타사 결정 키로 암호화함으로써 상기 암호화된 하나 이상의 제2 데이터 세트를 암호화하는 단계를 포함한다. 상기 방법은 상기 자사 처리 회로에 의해, 상기 자사 엘-가말 키 및 상기 제2 당사자 엘-가말 키로 상기 할당된 브리지 식별자들 각각을 암호화하는 단계, 상기 자사 처리 회로에 의해 상기 타사 처리 회로로, 상기 자사 처리 회로와 관련된 상기 암호화된 브리지 식별자들 및 관련 사용자 식별자들을 전송하는 단계, 및 상기 자사 처리 회로에 의해 상기 타사 처리 회로로, 상기 타사 처리 회로와 관련된 상기 암호화된 브리지 식별자들 및 관련 사용자 식별자들을 포함하는 하나 이상의 제2 튜플을 전송하는 단계를 더 포함한다.
일부 구현예에서, 상기 방법은 상기 타사 처리 회로에 의해, 상기 타사 엘-가말 키로 상기 하나 이상의 제2 튜플을 해독함으로써 상기 타사 처리 회로에 대한 브리지 식별자 맵을 생성하는 단계, 상기 타사 처리 회로에 의해, 상기 하나 이상의 제1 튜플을 역지수화하여 상기 역지수화된 하나 이상의 제1 튜플을 자사 처리 회로로 전송하는 단계, 및 상기 자사 처리 회로에 의해, 상기 자사 엘-가말 키로 상기 하나 이상의 제1 튜플을 해독함으로써 자사 처리 회로에 대한 브리지 식별자 맵을 생성하는 단계를 포함한다.
도 1은 예시적인 구현에 따른 제1당사자 시스템 및 타사 시스템 및 관련 환경의 블록도이다.
도 2a 및 도 2b는 예시적인 구현에 따른, 내부 사용자 식별자 링크를 노출하지 않고 자사 시스템 및 타사 시스템의 사용자 식별자들 간의 링크를 설정하기 위한 프로세스의 흐름도이다.
도 2c는 예시적인 구현에 따라, 보다 상세히 도 2a 및 도 2b의 방법을 도시하는 도 2a 및 2b의 흐름도에 대한 전송도이다. .
도 3a는 예시적인 구현예에 따른, 자사 시스템 및 타사 시스템의 사용자 식별자들 간의 링크를 설정하기 위해 브리지 식별자들을 사용하는 프로세스의 흐름도이며, 여기서 브리지 식별자들은 타사 시스템의 지수화된 사용자 식별자들이다.
도 3b는 예시적인 구현예에 따른, 도 3a의 프로세스에 대한 전송도이다.
도 4a 및 도 4b는 예시적인 구현예에 따른, 자사 시스템 및 타사 시스템의 사용자 식별자들 간의 링크를 설정하기 위해 암호화된 브리지 식별자를 사용하는 프로세스의 흐름도이다.
도 4c는 예시적인 구현예에 따른, 도 4a 및 도 4b의 프로세스에 대한 전송도이다.
도 5a는 예시적인 구현예에 따른, 타사 시스템이 도 4a-4c의 프로세스에 의해 생성된 브리지 식별자들의 교차를 결정하는 보안 교차 방법을 수행하기 위한 프로세스의 흐름도이다.
도 5b는 예시적인 구현예에 따른, 자사 시스템이 도 4a-4c의 프로세스에 의해 생성된 브리지 식별자들의 교차를 결정하는 보안 교차-합 방법을 수행하기 위한 프로세스의 전송도이다.
도 5c는 예시적인 구현에 따른, 표시 비트를 갖는 매칭된 브리지 ID의 수를 결정하기 위한 프로세스의 전송도이다.
도 6은 예시적인 구현에 따른 컴퓨팅 시스템의 블록도이다.
일반적으로 도면을 참조하면, 자사 시스템의 사용자 식별자와 타사 시스템의 사용자 식별자 사이에 특정 식별 정보를 노출(disclosing)하지 않고 링크를 설정하기 위한 시스템 및 방법이 다양한 예시적인 구현에 따라 도시되고 기술된다. 컨텐츠 시스템은 예를 들어, 컨텐츠를 보거나 거래를 수행하기 위해 사업자의 웹 사이트를 방문하는 사용자들에 의해 공유되는 개인 식별 정보(PII : personal identifiable information )를 저장할 수 있다. PII는 예를 들어 이메일 주소, 전화 번호, 전화 식별자 번호, 쿠키 식별자 등일 수 있다. 컨텐츠 시스템 상기 PII를 사용자들을 서로 구별하는 사용자 식별자(ID)에 매핑할 수 있다. 예를 들어, 사용자가 이메일 주소 A 및 전화 번호 A와 연관되어 있는 경우, 컨텐츠 시스템은 이메일 주소 A 및 전화 번호 A를 단일 사용자 ID인 사용자 ID A에 매핑할 수 있다.
이 연계(linkage)를 설정하기 위한 하나의 접근법은 해싱된(hashed) PII 데이터와 페어링된(paired) 사용자 ID를 회사에 제공하는 타사 시스템을 포함한다. 암호화 해싱 기능은 사실상 비반전(invertible)(즉, 비가역적)되도록 설계된다. 해싱 함수는 비가역적이므로 해싱된 데이터의 소유가 해당 입력 데이터의 소유를 야기하지는 않는다. 상기 해싱된 PII 데이터는 해시 함수를 PII 데이터에 적용한 출력이며, PII 데이터 자체를 드러내지 않고 PII 데이터 요소를 비교할 수 있다.
일부 구현예들에서, 데이터 파트너(data partner)는 사용자에 대한 사용자 ID 및 사용자의 이메일 주소의 해쉬 값을 제공할 수 있다. 회사는 타사(third party) 시스템의 해싱된 PII데이터를 자사(fist party) 시스템의 해싱된 PII데이터와 비교하여, 타사 시스템의 사용자 ID와 자사 시스템의 사용자 ID 사이의 링크를 설정한다. 이 접근법은 자사 시스템의 사용자 ID와 하나의 PII(예를 들어, 사용자의 이메일 주소)에만 기초한 타사 시스템의 사용자 ID를 매칭하는 경우와 같이 단일 PII 데이터 요소만을 사용할 때 잘 동작한다.
그러나 다수의 PII 데이터 요소(예컨대, 사용자의 이메일과 전화 번호 모두)를 매치시키려면, 타사 시스템은 해싱된 이메일과 해싱된 전화 번호 모두에 페어링된 사용자 ID를 제공해야 한다. 결과적으로, 이것은 자사 시스템에 대한 내부 데이터 연계를 노출하며(reveals), 즉, 특정 사용자의 전화 번호 링크에 타사 시스템의 이메일 주소를 드러낸다. 이러한 방식으로 다수의 PII 데이터 요소를 일치시키기 위해 자사 시스템과 타사 시스템 간의 정보를 공유하는 것은 PII 데이터 요소에 링크된 특정 사용자의 신원을 노출하기에 충분한 정보를 제공할 수 있다.
따라서, 본 발명은 하나 또는 두 당사자 모두의 사용자 ID를 다른 당사자에 대한 PII 데이터 맵에 노출시키지 않고 두 당사자(party)의 사용자 ID들간에 링크를 설정하는 시스템 및 방법에 관한 것이다. 일부 구현예에서, 상기 기술된 시스템 및 방법은 양 당사자가 결정론적으로(deterministically) 지수화된 브리지 ID와 같은, 브리지 ID를 학습하는 것을 포함한다.
보다 구체적으로, 본 명세서에서 자사 시스템 및 타사 시스템이라고 하는 두 당사자에 대해 기술한다. 일부 구현예에서, 각각의 당사자는 특정 사용자 ID에 의해 매핑되는 사용자들에 대한 개인 데이터베이스를 저장할 수 있다. 더욱이, 데이터베이스는 사용자 ID들에 링크된 각각의 사용자에 대한 PII 데이터 요소를 포함할 수 있다. 자사 시스템과 타사 시스템의 사용자 ID는 서로 다른 형식을 가질 수 있으며 동일성(equality)을 비교하기가 어려울 수 있다. 본 명세서의 시스템 및 방법은 각각의 데이터베이스에서 사용자에 대한 공통 브리지 식별자(BID)를 학습하는 단계들을 상세히 설명하여, 당사자들 중 어느 하나도 서로의 사용자에 대한 추가 데이터(extra data)를 학습하지 않고 동일성 검사를 허용하도록 한다.
일부 구현예에서, 어느 당사자도 자신의 데이터베이스 또는 상대방 데이터베이스의 임의의 사용자에 대한 추가 PII 데이터 요소를 학습하지 않아야 한다. 일부 구현에서, 어느 당사자도 예를 들어, 자신의 데이터베이스에 있는 두 명의 개별 사용자가 상대방에 의해 동일 사용자로 여겨지는 자신의 데이터베이스내의 사용자들 간의 추가 "연결(linkages)"을 학습하지 않아야 한다. 또한, 본 명세서에 설명된 방법 중 일부는 당사자 중 적어도 하나가 어떤 사용자가 교차로(intersection)에 있었는지를 학습하는 것을 제한한다.
본 명세서에 사용된 바와 같이, ui는 자사 시스템에 대한 i번째 사용자 ID(임시 ID일 수 있음)를 나타낼 수 있다. 각 ui는 자사 시스템에 대해 최대 t(MKi,k, MKTi,k)쌍을 가질 수 있다. 매치 키(match key(MK)는 PII 데이터 요소를 포함하거나 PII 데이터 요소와 관련될 수 있다. MK의 예는 이메일 주소, 전화 번호 및 IP 주소이다. 매치키 타입(MKT)은 정보의 타입 또는 특성을 나타낼 수 있다. 예를 들어, MK abc@123.com에 대해, 상기 MKT는 문자열 "이메일 주소" 또는 상기 MK가 이메일 주소임을 나타내는 임의의 다른 데이터의 조각(piece)일 수 있다.
본 명세서에 사용되는 바와 같이, vj는 타사 시스템과 관련된 사용자 ID에 대한 대응 가명(pseudonym)일 수 있다. 각 vj는 또한 그것과 관련된 최대 t(MKi,k, MKTi,k)쌍을 가질 수 있다. 일부 구현예에서, ui 및 vj는 자사 시스템 및 타사 시스템에 의해 선택된 의사 난수, 문자열 또는 다른 데이터 조각이다. ui 및 vj에 대한 값은 본 명세서에서 설명된 하나 이상의 방법을 수행하는 동안 일정할 수 있다.
일부 구현들에서, ui 및 vj는 본 명세서에서 설명된 방법을 수행하기 전 또는 시작할 때 해시 함수를 통해 자사 시스템 및 타사 시스템에 의해 각각 결정된다. 예를 들어, ui 값은 방정식(ui=hash(KF, UIDi 및 vj=hash(K3P, PIDj)을 통해 값이 선택될 수 있고, 여기서 키들(KF, K3P)은 자사 시스템 및 타사 시스템에만 각각 알려진 키(예를 들어, 수치값)일 수 있다. 일부 구현예에서, UIDi 및 PIDj는 사용자의 이름, 사용자의 PII 또는 정보를 정의하는 임의의 다른 사용자일 수 있다. 상기 값들(UIDi 및 PIDj)은 비밀 키(KF 및 K3P)로 해시되므로 암호화 될 수 있고 사용자의 개인 정보가 안전할 수 있다. 상기 hash() 함수는 SHA(Secure Hash Algorithm)-256, MD5, BLAKE-256 및/또는 다른 타입의 암호 해시 함수를 포함하는 모든 종류의 해시 함수일 수 있다.
본 명세서에서 더 설명되는 바와 같이, 상기 시스템 및 방법은 자사 시스템이 ui:BIDi,k 맵을 학습할 수 있게 하며, 여기서 각 ui는 최대 t BIDi,k값들에 매핑될 수 있다. 상기 BIDi,k값들의 일부는 더미값일 수 있다. 타사 시스템은 vj:BIDj,k 를 학습하도록 구성될 수 있으며, 여기서 각 vj는 단지 단일 BID에 매핑된다.
게다가, 본 명세서에 설명된 시스템 및 방법의 일부 구현예에서, 암호화 방법의 끝에서, 자사 시스템은 ui값들 중 어느 것이 교차(intersection)(2개의 세트 A 및 B가 교차 C를 가지며, 여기서 C는 세트 B에 속하는 A의 모든 요소 즉 A∩B)에 있는지 학습할 것이다. 대조적으로, 타사 시스템은 자사 시스템의 데이터 세트의 vj:BIDj,k 맵 및 크기 이외에 아무것도 확습할 수 없다. 특히 타사 시스템은 교차 요소나 교차 크기를 학습할 수 없다.
본 명세서에서 사용되는 바와같이, 표기법 F[] 및 T[]은 지수 F 및 T 각각에 대한 단일-결정론적 타원 곡선 암호(Elliptic Curve Cryptography(ECC))를 나타낼 수 있다. 상기 표기법 FT[]은 지수 F 및 T를 모두 사용하는 이중 결정 암호화를 나타낸다. F는 자사 시스템에 대한 결정 암호화 키를 나타낼 수 있다. 일부 구현예에서, F는 자사 시스템이 타사 시스템과 공유하지 않는 비밀 키일 수 있다. 유사하게, 일부 구현예에서, T는 타사 시스템에 의한 결정 암호화를 수행하기 위한 또 다른 결정 암호화 키일 수 있다. 타사 시스템은 T를 비밀로 유지하고 이를 자사 시스템과 직접 공유하지 않을 수 있다.
또한, 표기법 EF[]은 키(F)를 갖는 엘-가말(El-Gamal) 암호화를 나타낼 수 있다. F는 자사 시스템에 의해 수행될 수 있는 엘-가말 암호화를 위한 자사 엘-가말 키를 나타낸다. 자사 시스템은 자사 엘-가말 키를 저장하고, 자사 엘-가말 키로 암호화를 수행하며, 및/또는 자사 엘-가멀 키를 타사 시스템으로 전송할 수 있다. ET는 타사 시스템의 엘-가말 암호화 키를 나타낼 수 있다. 타사 시스템은 타사 엘-가말 키를 저장하고, 타사 엘-가말 키로 암호화를 수행하거나 타사 엘-가말 키를 자사 시스템으로 전송할 수 있다. 엘-가말 키들(EF 및 ET)은 각각 자사 시스템 및 제2 당사자 시스템의 공개키일 수 있다.
본 명세서에서 설명된 암호화 방법은 두 가지 다른 유형의 암호화인 교환적 특성(commutative property) 및 동형 특성(homomorphism property)의 두 가지 특정 특성에 의존할 수 있다. 상기 동형 특성은 함수(f[])에 대해, f[x]*f[y]=f[x*y]를 나타낸다. 엘-가말 암호화는 동형이다. 특히, 엘-가말 암호화 함수(E[])에 대해 E[y]=E[x*y]이다.
F[]는 자사 시스템의 암호화이고 T[]는 제2 당사자 시스템의 암호화인 F[] 및 T[]와 함께 결정 암호화(Deterministic encryption)(결정 ECC)는 교환적일 수 있다. 게다가, 엘-가말 암호화는 교환적일 수 있다. 특히, 상기 교환적 특성은 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에 대한 실제값 또는 각 시스템의 결정 암호화를 공개하지 않고 x1이 x2와 동일한지 여부를 확인할 수 있다. 이는 본 발명에 기재된 방법을 참조하여 보다 상세히 설명된다.
도 1을 참조하면, 자사 시스템(120), 타사 시스템 (140) 및 관련 환경(100)의 블록도가 예시적인 구현에 따라 도시된다. 하나 이상의 사용자 디바이스(104)는 사용자에 의해 사용되어, 다양한 동작을 수행하고 및/또는 네트워크(예컨대, 인터넷, LAN, WAN 등)를 통해 제공될 수 있는 다양한 유형의 컨텐츠에 액세스할 수 있다. 본 명세서에서 사용되는 "사용자" 또는 "개체(엔티티)"는 사용자 디바이스(104) 등을 통해 리소스들 또는 컨텐츠 아이템들과 상호 작용하는 개별 조작 사용자 디바이스(104)를 지칭할 수 있다. 사용자 디바이스(104)는 웹 사이트(예컨대, 인터넷 브라우저를 사용하여), 미디어 파일 및/또는 임의의 다른 유형의 컨텐츠를 액세스하는데 사용될 수 있다. 컨텐츠 관리 시스템(108)은 리소스들(예컨대, 웹 페이지, 애플리케이션 등)내의 사용자들에게 디스플레이하기 위한 컨텐츠를 선택하고, 리소스들내의 디스플레이를 위해 컨텐츠 아이템들(112)을 네트워크(102)를 통해 컨텐츠 데이터베이스로부터 사용자 디바이스들(104)로 제공하도록 구성될 수 있다. 컨텐츠 관리 시스템(108)이 아이템을 선택하는 컨텐츠는 하나 이상의 컨텐츠 제공자 디바이스(106)를 사용하여 네트워크(102)를 통해 하나 이상의 컨텐츠 제공자에 의해 제공될 수 있다.
일부 구현예에서, 컨텐츠 관리 시스템(108)은 사용자 디바이스(104) 상에 디스플레이되도록 컨텐츠 제공자로부터의 컨텐츠 아이템들을 선택할 수 있다. 그러한 구현예에서, 컨텐츠 관리 시스템(108)은 리소스들(예컨대, 웹 페이지, 애플리케이션 등)의 하나 이상의 컨텐츠 인터페이스에 공개될 컨텐츠를 결정할 수 있다. 컨텐츠 관리 시스템(108)은 타사 컨텐츠가 사용자 디바이스(104)에 제공되어야 하는지를 결정하기 위해 타사 컨텐츠 제공자 사이에서 컨텐츠 경매를 수행하도록 구성될 수 있다. 경매 우승자는 입찰 금액 및 품질 스코어(즉, 사용자 디바이스(104)의 사용자가 콘텐츠를 클릭할 가능성에 대한 척도)에 기초하여 결정될 수 있다. 일부 구현예에서, 컨텐츠 관리 시스템(108)은 컨텐츠 제공자가 컨텐츠 캠페인을 생성하도록 한다. 캠페인에는 최소 및 최대 입찰가, 목표 입찰가 또는 하나 이상의 예산 금액(예컨대, 일일 예산, 주간 예산, 총 예산 등)과 같은 여러 파라미터가 포함될 수 있다.
자사 시스템(120) 및 타사 시스템(140)은 하나 이상의 프로세서(예를 들어, 임의의 범용 또는 특수 목적 프로세서)를 포함할 수 있고, 하나 이상의 일시적 및/또는 비-일시적인 저장 매체 및/또는 메모리(예컨대, 자기 저장 장치, 광학 저장 장치, 플래시 저장 장치, 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)로부터 정보를 수신하도록 구성될 수 있다. 정보는 브라우징 히스토리, 쿠키 로그, 텔레비전 광고 데이터, 인쇄 광고 데이터, 라디오 광고 데이터, 온라인 활동 데이터 및/또는 사용자(즉, 사용자 디바이스(104))가 네트워크(102)상에서 가질 수 있는 온라인 리소스들과 임의의 다른 표시(indication) 또는 상호 작용을 포함할 수 있다. 자사 시스템(120) 및/또는 타사 시스템(140)은 사용자 디바이스(104)가 네트워크(102) 상에서 갖는 상호 작용을 수신 및/또는 수집하도록 구성될 수 있다. 이 정보는 자사 시스템(120) 및/또는 타사 시스템(140)에 의해 저장될 수 있다.
자사 시스템(120) 및/또는 타사 시스템(140)은 다양한 기능을 수행하도록 구성된 하나 이상의 모듈(즉, 프로세서에 의해 실행 가능한 컴퓨터-판독 가능 명령들) 및/또는 회로(즉, ASIC, 프로세서 메모리 조합, 논리 회로 등)를 포함할 수 있다. 일부 구현예에서, 모듈들은 암호화 관리기(122) 및 암호화 관리기(142)일 수 있거나 포함할 수 있다. 더욱이, 자사 시스템(120) 및/또는 타사 시스템(140)은 브리지 식별자 맵(124) 및/또는 브리지 식별자 맵(144) 및 사용자 데이터, 즉 입력 데이터(126) 및 입력 데이터(146)를 저장할 수 있다.
암호화 관리기(122) 및 암호화 관리기(142)는 본 명세서에 설명된 다양한 암호화 방법을 수행하도록 구성될 수 있다. 게다가, 암호화 관리기(122) 및 암호화 관리기(142)는 특정 암호화 단계들, 예를 들어 결정 EC 암호화, 엘-가말 암호화 및 복호화(decryption) 방법을 수행할 수 있다. 자사 시스템(120)의 암호화 관리기(122)는 타사 시스템(140)으로 전송될 데이터를 암호화하고 타사 시스템(140)으로부터 수신된 데이터를 해독하도록 구성될 수 있다. 마찬가지로, 타사 시스템(140)의 암호화 관리기(142)는 자사 시스템(120)으로 전송될 데이터를 암호화하고 자사 시스템으로부터 수신된 데이터를 해독하도록 구성될 수 있다. 일부 구현예에서, 암호화 관리기(122 및 142)는 본 명세서에 설명된 방법을 수행하도록 구성될 수 있다.
일부 구현예에서, 자사 시스템(120)의 암호화 관리기(122)에 대한 입력은 트리플 형태(ui,MKi,MKTi)의 하나 이상의 제1 세트(126)이다. 동일한 ui를 갖는 트리플은 여러개 있을 수 있다. 두 개의 트리플이 동일한 MKi를 공유하지 않는다고 가정할 수 있으며, 즉, 두 개의 ui는 동일한 MKi에 링크되지 않는다고 가정될 수 있다. 그러나, 다수의 MKi는 단일 ui에 링크될 수 있다.
상기 타사 시스템(140) 입력의 암호화 관리기(142)의 입력은 트리플 (vj,MKj,MKTj) 형태의 하나 이상의 제2 데이터 세트(146)일 수 있다. 자사 시스템(120)의 하나 이상의 제1 세트(126)와 마찬가지로, 동일한 vj를 갖는 여러개의 트리플이 있을 수 있지만, 동일한 MKj를 공유하는 두개의 트리플은 존재할 수 없다. 본 명세서에 개시된 일부 방법에서, MKTi 및 MKTj값은 "클리어 상태로(in the clear)" 전달된다. 즉, 이들은 암호화되지 않고 자사 시스템(120)과 타사 시스템 (140) 사이에서 통신될 수 있다. 이러한 이유로, 본원의 방법 중 일부는 MKTi 및 MKTj가 자사 시스템(120)과 타사 시스템(140) 사이에서 통신되는 것을 나타내지 않는다. MK값이 자사 시스템(120)과 타사 시스템(140) 사이에서 통신될 때마다, 대응하는 MKT값이 또한 통신될 수 있다.
브리지 식별자 맵(124)은 사용자 ID(ui)를 브리지 ID(BID)로 링크하는 맵일 수 있다. 브리지 식별자 맵(124)은 본 명세서에 설명된 방법을 수행하는 결과물 일 수 있다. 자사 시스템(120)의 브리지 식별자 맵, 즉 브리지 식별자 맵(124)은 각각의 ui가 하나 또는 다수의 BID값으로 매핑되는 맵일 수 있다.
브리지 식별자 맵(144)은 브리지 식별자 맵(124)과 유사할 수 있다. 브리지 식별자 맵(144)은 vj를 BID에 매핑할 수 있다. 브리지 식별자 맵(144)은 본 명세서에 설명된 방법을 수행하는 제품일 수 있다. 그러나, 브리지 식별자 맵(124)과 달리, 타사 시스템(140)의 vj는 모두 단일 BID에만 매핑될 수 있다.
도 2a 및 도 2b를 참조하면, 자사 시스템(120) 및 타사 시스템(140)의 사용자 ID들간의 링크를 설정하는 예시적인 구현에 따른 프로세스(200)가 도시되어 있다. 자사 시스템(120) 및 타사 시스템(140)은 프로세스(200)의 단계들을 수행하도록 구성될 수 있다. 게다가, 본 명세서에 기술된 컴퓨팅 디바이스들의 임의의 하나 또는 조합은 프로세스(200)를 수행하도록 구성될 수 있다.
도 2c는 프로세스(200)를 보다 상세히 설명하는 전송도이다. 도 2c의 전송도는, 매칭 관계 생성 단계, 매칭 관계 정리(pruning) 단계 및 BID할당 단계를 개시할 뿐만 아니라 자사 시스템(120)과 타사 시스템(140)간에 전송된 데이터를 나타낸다.
도 2a 및 도 2b를 더 상세히 참조하면, 단계(202)에서, 자사 시스템(120)은 제1 데이터 세트(126)를 암호화하여 상기 암호화된 데이터 세트(126)를 타사 시스템(140)으로 전송할 수 있다. 전술한 바와 같이, 제1 데이터 세트(126)는 사용자 ID(ui), 매치 키(MKi) 및 상기 MKi, MKTi에 대한 매치키 유형의 하나 이상의 세트일 수 있다.
단계(202)에서, 자사 시스템(120)은 자사 암호화 키(F)(예컨대, ECC 지수 키) 및 엘-가말 키(F')에 대한 값을 선택하도록 구성될 수 있다. 선택된 키들(F 및 F')에 기초하여, 자사 시스템(120)은 자신이 저장하는 MK 데이터를 함호화할 수 있다. 구체적으로, 자사 시스템(120)은 엘-가말 키(F')로 저장하는 ui값들을 암호화할 수 있고, ECC 지수 키(F)로 저장하는 MK 값들을 암호화할 수 있으며, MKT 값들은 암호화되지 않은 상태로 남겨 둘 수 있다. 그 결과는 EF(ui),F[MKi,k],MKTi,k일 수 있다. 자사 시스템(120)은 상기 결과를 타사 시스템(140)으로 전송할 수 있다. 일부 구현예에서, 다수의 튜플(tuples) 즉, 동일한 기본(underlying)(ui)과 관련된 MK 및 MKT 조합이 있을 수 있다.
단계(204)에서, 타사 시스템(140)은 암호화된 제1 데이터 세트(126)를 수신하여, 상기 암호화된 제1 데이터 세트(126)를 이중 암호화하고, 상기 이중 암호화된 제1 데이터 세트(126)를 자사 시스템(120)으로 전송할 수 있다. 타사 시스템(140)은 값(T)을 선택할 수 있다. 상기 값(T)은 ECC 지수 키일 수 있다. 더욱이, 타사 시스템(140)은 결정키 값(R)을 선택할 수 있다. 타사 시스템(140)은 단계(202)에서 자사 시스템(120)으로부터 수신한 상기 암호화된 데이터를 암호화할 수 있다. 이는 이중 암호화로 지칭될 수 있다.
타사 시스템(140)은 단계(202)에서 수신한 데이터(EF(ui),F[MKi,k],MKTi,k)를 상기 선택값(T) 및 선택값(R)으로 이중 암호화할 수 있다. 특히, 타사 시스템(140)은 수신된 ui를 지수화하고, F[MKi,k]를 상기 값(T)로 이중 암호화할 수 있다. 상기 타사 시스템(140)은 MKTi,k를 암호화되지 않은 채로 남겨 둘 수 있다. 결과는 EF(ui),FT[MKi,k],MKTi,k)일 수 있다. 타사 시스템(140)은 상기 결과를 자사 시스템(120)으로 되돌려 보낼 수 있다. 일부 실시 예에서, 타사 시스템(140)은 상기 결과의 순서를 분류하거나 셔플(shuffle)할 수 있다.
단계(206)에서, 타사 시스템(140)은 단계(204)로부터의 선택값(T)으로 타사 시스템(140)에 의해 저장된 제2 세트(146)를 암호화한다. 타사 시스템(140)은 특정 값들(v) 및 값들(MKT)과 관련된 값들(MK)을 암호화할 수 있다. 특히, 타사 시스템은 선택값(T)로 저장한 값들(MK)을 암호화할 수 있다. 결과는 (vj, T[MKj,k],MKTj,k)일 수 있다. 타사 시스템(140)은 상기 결과를 자사 시스템(120)으로 전송할 수 있다. 일부 구현예에서, 타사 시스템(140)은 암호화된 제2 데이터 세트(146)를 자사 시스템(120)으로 전송하기 전에 상기 암호화된 제2 데이터 세트(146)를 분류 및/또는 셔플한다.
단계 208에서, 자사 시스템(120)은 단계(206)에서 타사 시스템(140)이 자사 시스템(120)으로 전송하는 암호화된 세트(146)를 이중 암호화할 수 있다. 즉, 자사 시스템(120)은 수신된 세트(vj, T[MKj,k],MKTj,k)를 이중 암호화할 수 있다. 구체적으로, 타사 시스템(140)은 F로 상기 값(T[MKj,k])을 암호화할 수 있다. 결과는 (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] 사이의 교차(intersections)은 TF[MKi,k] 및 FT[MKj,k] 값이 동일한지 여부에 기초하여 결정될 수 있다. 상기 매칭 관계는 도 3c에서 시각적으로 기술된다. 상기 매칭 관계의 꼭지점들은 블라인드된 사용자 ID들, 즉 해독된 값(ui R) 및 값(vj)을 나타낼 수 있다. 두 꼭지점 사이의 에지(링크)는 매칭값(TF[MKi,k] 및 FT[MKj,k])을 나타낼 수 있다.
단계(212)에서, 자사 시스템(120)은 제2 데이터 세트(146)의 각 MK가 제1 데이터 세트(126)의 MK들로의 단 하나의 링크를 갖도록 매칭 관계로부터 링크들을 제거함으로써 매칭 관계를 정리(prune)할 수 있다. 구체적으로, 자사 시스템(120)은 각 vj 꼭지점이 단지 하나의 관련 에지를 갖도록 매칭 관계를 잘라낼 수 있다. 이것은 자사 시스템(120)이 상기 자사 시스템(120)과 관련된 2개의 사용자 ID가 타사 시스템(140)의 단일 사용자 ID에 대응하는지 여부를 학습하는 것을 방지할 수 있다. 자사 시스템(120)은 반복되는 매치들의 수 및 매치들의 MKT를 사용하여 보존할 최상의 에지를 선택하는데 도움을 줄 수있다. 예를 들어, 특정 MKT 값들은 어떤 링크들이 보존되어야 하는지를 나타낼 수 있다. 이메일 주소와 관련된 링크들은 보존될 수 있지만 집 주소와 관련된 링크는 폐기될 수 있다.
각 ui R은 여전히 그것과 관련된 다수의 에지를 가질 수 있다. 단계 214에서, 자사 시스템(120)은 상기 관련 꼭지점들에 브리지 식별자들(B)을 의사 랜덤하게 (pseudo-randomly) 할당할 수 있다. 상기 값(B)은 자사 시스템(120)에 의해 BID 공간으로부터 선택될 수 있다. 상기 BID 공간은 B에 대해 가능한 값들인 값 세트일 수 있다. 하나 이상의 파라미터들은 BID 공간을 정의할 수 있다. 예를 들어, 하나 이상의 파라미터는 값들이 선택되는 타원 곡선을 정의할 수 있다. 상기 값(B)은 ui R및 vj와 관련될 수 있다. 값(B)와 관련되지 않은 모든 꼭지점(vj)에 대하여, 자사 시스템(120)은 새로운 의사-랜덤 값(Bj)을 그것에 할당할 수 있다.
임의의 B와 관련되지 않는 모든 꼭지점들(ui R)에 대해, 자사 시스템(120)은 EC 그룹으로부터 의사-랜덤하게 선택되고 다른 모든 ui R 값들과 상이한 더미 ui R 값으로 꼭지점을 대체할 수 있다. 자사 시스템(120)은 R을 알지 못하지만, EC 그룹 내의 랜덤하고 구별되는 임의의 엘리먼트를 선택할 수 있고, 그것은 일부 미지의 ui에 대해 ui R 형태일 것이다. 자사 시스템(120)은 그 값이 역-지수화(de-exponentiate)될 ui를 알지 못할 수도 있지만, 이는 새로운(fresh) ui R 가 모든 이전의 것들과 구별되는 한 문제가 되지 않는다.
단계(216)에서, 선행 단계(214)로부터의 새로운 대체를 포함하는 모든 꼭지점들(ui R)에 대해, 자사 시스템(120)은 사전 정의된 개수의 의사-랜덤 브리지 식별자를 할당할 수 있다. 자사 시스템(120)은 각 ui R이 t개의 관련된 값을 가질 때까지 각 꼭지점을 추가의 새로운 의사-랜덤 Bi,k값들과 연관시킬 수 있다.
단계(218)에서, 자사 시스템(120)은 타사 시스템(140)으로 하나 이상의 제2 튜플(tuple)을 전송할 수 있다. 각 튜플은 타사 시스템(140)과 관련된 사용자 ID, vj 및 브릿지 식별자(Bj)의 연관(association)을 포함할 수 있다. 구체적으로, 튜플은 (vj,Bj) 세트일 수 있다. 상기 값(Bj)은 타사 시스템(140)의 사용자 ID vj와 연관된 브리지 식별자일 수 있다.
단계(220)에서, 자사 시스템은 제1 지수를 선택하고 하나 이상의 제1 튜플을 지수화하고 지수화된 하나 이상의 제1 튜플을 타사 시스템(140)에 전송할 수 있다. 자사 시스템(120)은 제1 지수를 ECC 지수로 선택할 수 있다. 선택된 ECC 지수는 지수(S)일 수 있다. 자사 시스템(120)은 자사 시스템(120)과 연관된 사용자 식별자에 대한 제1 튜플(ui R) 및 관련 브리지 식별자(Bj,k)를 결정할 수 있다. 자사 시스템 (120)은 지수(S)로 제2 튜플의 브릿지 식별자를 지수화할 수 있다. 결과는 튜플 (ui R,Bi,k S)일 수 있다. 각 i 및 k에 대해, 각 ui R은 Bi,k와 관련될 수 있다. 상기 대체된 ui R값들이 또한 포함할 수 있다.
단계(222)에서, 타사 시스템(140)은 제2 지수를 선택하여 단계(218)의 상기 수신된 하나 이상의 제2 튜플의 지수화를 통해 브리지 식별자 맵(144)을 생성할 수 있다. 브리지 식별자 맵(144)은 타사 시스템(140)과 관련된 사용자 ID들과 단계 (220)에서 수신된 브리지 식별자들의 연관을 포함할 수 있다. 타사 시스템(140)에 의해 선택된 지수는 BID 공간에 대한 지수(T)일 수 있다. 타사 시스템(140)은 단계 (218)에서 수신된 튜플들(vj,Bj)에 기초하여 쌍들(vj,Bj T)을 결정할 수 있다. 타사 시스템(140)은 쌍 중 어느 것도 제2 위치에서 반복된 Bj T값을 가지지 않음을 검증할 수 있다. 타사 시스템(140)은 브리지 식별자 맵(144)에서 이들 쌍(Vj:BIDj)을 사용할 수 있다. 상기 맵은 BIDj=Bj T일 수 있다.
계속하기 전에, 타사 시스템(140)은 상기 (ui R,Bi,k S)쌍 중 2개가 동일한 Bi,k S값을 갖지지 않는지 검증할 수 있다. 만약 동일한 Bi,k S 값을 갖는 2개의 쌍이 있으면, 타사 시스템(140)은 프로세스(200)를 중단할 수 있다. 그렇지 않은 경우, 타사 시스템(140)은 단계(224)로 진행할 수 있다.
단계(224)에서, 타사 시스템(140)은 자사 시스템(120)과 연관된 사용자 식별자들 및 제1 지수(S) 및 제2 지수(T)에 의해 지수화된 관련 브리지 식별자를 포함하는 하나 이상의 지수화된 제1 튜플(단계(220)에서 수신된)을 암호화할 수 있다. 특히, 타사 시스템(140)은 제2 지수(T)로 제1튜플들(ui R,Bi,k S)을 지수화하고 R을 제거할 수 있다. 이와 관련하여, 단계(226)에서, 타사 시스템(140)은 분류 및/또는 셔플된 후 자사 시스템(120)으로 그러한 모든 튜플들(ui,Bi,k ST)을 전송할 수 있다.
단계(228)에서, 자사 시스템(120)은 단계(224)의 상기 수신된 지수화된 하나 이상의 제1 튜플들로부터 제1 지수를 제거할 수 있다. 제1 지수를 제거함으로써, 자사 시스템(120)은 자사 시스템(120)에 대한 브리지 식별자 맵을 생성할 수 있다. 수신된 튜플 중, 자사 시스템(120)은 ui에 대응하지 않는 모든 튜플을 폐기할 수 있다. 이 과정에서, 자사 시스템(120)은 단계(216)에서 도입된 모든 더미 ui 값을 폐기하고, 적어도 하나의 vj와 매칭하는 ui 값만을 보존할 것이다. 단계(216)에서 새롭게 선택된 ui R은 다른 모든 것과 구별되며, 따라서 단계(202)에서 원래 제공된 자사 시스템(120)과는 다른 ui로 역-지수화될 것이다.
모든 나머지 ui에 대해, 자사 시스템(120)은 상기 수신된 쌍의 제2 위치에서 자승(power)(S)을 제거하여 단계(226)에서 수신된 튜플들(ui,Bi,k ST)로부터 형태(ui,Bi,k T)의 쌍을 복구하여, BIDi,k=Bi,k T인 ui:BIDi,k 맵을 구성할 수 있다. 각 ui는 여러개의 BIDi,k 와 관련될 수 있으며, 일부는 진짜(real)이고 일부는 가짜(fake)인 것으로 단계(216)에서 삽입될 수 있다. 자사 시스템(120)은 어느 것이 가짜인지 알지 못할 수 있다.
프로세스(200)의 결론에서, 자사 시스템(120)은 자신의 사용자 ID들(ui) 중 어느 것이 타사 시스템(140)의 사용자 ID들(vj)과 매칭되는지를 알게(learn) 된다. 후속 방법들에서, 자사 시스템(120)은 또한 관련된 BID들 중에서 어느 것이 진짜이고 가짜인지를 알 수 있으며, 가짜의 BID들은 절대로 교차에 나타나지 않는다. 후속 트랜잭션 업로드에서, 타사 시스템(140)에 의해 제공되는 다수의 BID가 단일 ui와 관련된 것들과 매치되면, 자사 시스템는 다수의 타사 ID가 단일 사용자 ID와 매칭됨을 알게 된다.
일부 구현예에서, 이러한 누설(leakage)은 ui R 및 vj 꼭지점 모두 최대 1개의 관련 에지를 갖도록 단계(212)에서 PII 그래프를 추가적으로 정리(pruning)함으로써 방지될 수 있다. 이는 도 3의 프로세스(300)를 참조하여 더 설명된다. 일부 구현예에서, 타사 시스템(140)이 블라인드되지 않은 정보를 전혀 수신하지 않으면, 그의 BID 맵 및 자사 시스템(120)의 데이터 크기를 초과하여 아무것도 알 수 없다. 자사 시스템(120)은 PII 매칭 그래프의 블라인드(blinded)를 알 수 있다. 그러나, 이러한 누설에 대한 긍정적 측면은 자사 시스템(120)이 그래프 구조를 활용하여 링크-정리(link-pruning)를 향상시킬 수 있다는 것이다.
일부 구현예에서, 프로세스(200)는 자사 시스템(120)이 그의 사용자 ID 중 어느 것이 매칭되는지 알 수 없도록 수정될 수 있다. 상기 프로세스(200)에 대한 일부 수정은 BID를 결코 일치하지 않고 교차에 나타나지 않는 사용자 ID들로서 BID들을 사용한다. 일부 실시 예에서, 타사 시스템(140)은 자사 시스템의 데이터의 크기를 약간 초과하여 알 수 있는 블라인드 정보를 수신할 수 없다. 자사 시스템은 그래프 구조를 활용하여 링크 정리를 최적화할 수 있다.
자사 시스템(120)이 자신의 사용자 ID들 중 어느 것이 매치되는지 더 이상 알 수 없는 일부 구현예에서, 타사 시스템(140)은, 자사 시스템(120)이 MK값들과 교차한 후에 타사는 블라인드된 BID들 및 암호화된 사용자 ID들만을 보기 때문에, 더 이상 타사 시스템(140)의 사용자 ID들간의 링크를 알 수 없다. 타사는 단계(228)에서 더 많은 정보를 보는 대신에, 정보를 볼 수 없으므로 블라인드 방식으로 프루닝을 수행한다. 이는 2가지 품질-대-누설 절충 중 하나를 제공하기 위해 프로세스(200)를 수정하는 것으로 가능하다.
도 3a를 참조하면, 예시적인 구현예에 따라 브리지 ID가 타사 시스템(140)의 사용자 ID인 자사 시스템(120) 및 타사 시스템(140)의 사용자 ID들 사이에 링크를 설정하는 프로세스(300)가 도시되어 있다. 사용자 ID로서 브릿지 ID를 선택하면 데이터 흐름이 단순화되어 프로세스가 향상될 수 있다. 자사 시스템(120) 및 타사 시스템(140)은 프로세스(300)의 단계들을 수행하도록 구성될 수 있다. 게다가, 본 명세서에 기술된 컴퓨팅 디바이스들 중 임의의 하나 또는 조합이 프로세스(300)를 수행하도록 구성될 수 있다. 프로세스(300)는 도 2a-2c를 참조하여 기술된 프로세스(200)와 유사할 수 있다. 프로세스(300)는 프로세스(200)와 동일한 많은 단계를 포함할 수 있다. 그러나, 프로세스(300)는 타사 시스템(140)의 사용자 ID를 브리지 ID로서 사용함으로써 적어도 하나의 방식으로 프로세스(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 값을 포함할 수 있다. 상기 하나 이상의 제2 데이터 세트는 vj,MKj,k,MKTj,k일 수 있다.
타사 시스템(140)은 결정 지수(T') 및 결정 지수(T)로 상기 하나 이상의 제2 데이터 세트를 암호화할 수 있다. 특히, 타사 시스템(140)은 지수(T')로 타사 시스템(140)과 관련된 사용자 ID들 및 지수(T)로 타사 시스템(140)과 관련된 MK들을 암호화할 수 있다. 결과는 하나 이상의 vj T',MKj,k,MKTj,k 세트(집합)일 수 있다. 타사 시스템(140)은 이 결과를 자사 시스템(120)으로 전송할 수 있다. 단계(304) 이후, 프로세스(300)는 타사 시스템(140)이 도 2a-2c를 더 참조하여 기술된 바와같이 단계들(208~210)을 수행할 수 있으며 Vj대신에 vj T'로 프로세스를 처리한다.
단계(308)에서, 자사 시스템(120)은 단계(210)에서 생성된 매칭 관계를 정리할 수 있다. 자사 시스템(120)은, 제2 데이터 세트(146)의 각각의 MK는 제1 데이터 세트(126)의 MK들에 대한 하나의 링크를 가지며, 또한 제1 데이터 세트 (126)의 각각의 MK는 제2 데이터 세트(146)의 MK들에 대한 하나의 링크를 갖도록 상기 매칭 관계로부터 링크들을 제거함으로써 매칭 관계를 정리할 수 있다.
단계(310)에서, 자사 시스템(120)은 하나 이상의 제1 데이터 세트의 MK들과 제2 데이터 세트(146)의 MK들사이의 링크에 대한 브리지 ID를 선택할 수 있고, 상기 브리지 ID는 타사 시스템(140)과 관련된 지수화된 사용자 식별자일 수 있다. 보다 구체적으로, 상기 선택된 브리지 ID는 타사 시스템(140)과 관련된 암호화된 사용자 ID에 의한 것일 수 있다. 브리지 IDS(Bi)는 vi T'값일 수 있다. 이것은 도 3b에 시각적으로 도시되어 있다. 여기서 u1 R에 대한 TF[MK1,k] 및 v1 T'에 대한 FT[MK1,k]t사이의 링크에 대한 B1값에는 vi T'값이 할당된다. 만약, 자사 시스템(120)의 식별자가 타사 시스템(140)의 식별자와 매칭되지 않으면, 자사 시스템(120)은 랜덤 브리지 ID를 할당할 수 있다. 예를 들어, 도 3b에서, B3=v3T'이다. 이 랜덤 할당은 도 2a-2c를 참조하여 설명한 바와같이 프로세스(200)의 단계(214)에서와 동일하게 수행될 수 있다. .
프로세스(300)는 이 단계가 필요하지 않을 수 있기 때문에 프로세스(200)의 단계들(218)을 스킵할 수 있다. 단계(218)에서, 튜플(vj,Bj)이 자사 시스템(120)으로부터 타사 시스템(140)으로 전송될 수 있다. 그러나, 이것은 중복(redundant)인 형태 (vj T',vj T')의 튜플을 전송하는 것과 같다. 그러나, 프로세스(300)는 단계 (220)를 수행하는 단계를 포함할 수 있다. 단계(220)에서, 자사 시스템(120)은 자사 시스템(120)과 관련된 사용자 ID들 및 관련 브리지 ID를 포함하는 튜플들을 전송할 수 있다. 상기 튜플은 ui R,Bi,k S일 수 있다. 그러나, 단계(308)에서 선택된 브리지 ID는 타사 시스템(140)과 관련된 사용자 ID일 수 있기 때문에, 상기 튜플은 ui R,vi,k T'S일 수 있다. 이것은 도 3b의 전송도에 도시되어 있다.
단계(312)에서, 타사 시스템(140)은 타사 시스템(140)과 관련된 사용자 ID들을 역-지수화할 수 있다. 특히, 타사 시스템(140)은 지수(T')를 제거하지만 지수(S)를 남길 수 있다. 그 결과는 vj S일 수 있으며 단계(220)에서 수신된 튜플 (ui R,vi,k T'S)로부터 지수(T')를 제거함으로써 결정될 수 있다. 프로세스(300)는 프로세스(200)를 참조하여 기술된 바와같이 자사 시스템(120)에 의해 단계들(224~228)을 수행하는 것으로 진행할 수 있다. 자사 시스템(120)은 매칭된 ID들을 정확히 복구할 수 있고, 매칭되지 않은 모든 ID에 대해 랜덤 포인트를 복구할 수 있음을 주목한다
이제 도 4a 및 도 4b를 참조하면, 예시적인 구현에 따라, 브리지 ID들이 암호화되는 자사 시스템(120) 및 타사 시스템(140)의 사용자 ID들 간의 링크를 설정하기 위한 프로세스(400)가 도시된다. 일부 구현예에서, BID들을 학습하는 대신에, 자사 시스템(120) 및 타사 시스템(140) 모두는 암호화된 BID를 학습한다. 암호화된 BID는 품질을 검사하기 전에 별도의 프로토콜을 사용하여 온라인 방식으로 해독될 수 있다. 자사 시스템(120) 및 타사 시스템(140)은 프로세스(400)의 단계들을 수행하도록 구성될 수 있다. 또한, 본 명세서에 기술된 컴퓨팅 디바이스들 중 임의의 하나 또는 조합이 프로세스(400)를 수행하도록 구성될 수 있다.
도 4c는 프로세스(400)를 보다 상세히 도시하는 전송도이다. 도 4c의 전송도는 매칭 관계 생성 단계(414) 및 BID할당 단계들(416-420)을 나타낼 뿐만 아니라 자사 시스템(120)과 타사 시스템(140) 사이에서 전송된 데이터를 나타낸다.
프로세스(200)의 단계(212)에서 수행되는 것과 같이, 사용자 ID 들간에 추가연결(linkage)이 누설되는 것을 방지하기 위해 링크들을 정리하는 단계는 부정확성을 초래할 수 있다. 일반적으로 프로세스(400)를 참조하면, 프로세스(400)는 이러한 정리 단계를 피할 수 있고, 따라서 보다 양호한 품질 매칭을 제공할 수 있다. 일부 구현예에서, 프로세스(400)의 끝에서 명확한(in the clear) 브리지 ID를 학습하는 대신에, 자사 시스템(120) 및 타사 시스템(140)은 다른 시스템의 엘-가말 암호화 키 하에서 브리지 ID들의 랜덤화된 암호화를 대신 습득할 것이다. 브리지 ID들은 암호화되므로 양 당사자는 그 들의 각각의 사용자의 사용자 ID들 간의 추가 링크를 알 수 없다.
일부 구현예에서, 자사 시스템 (120) 및 타사 시스템(140) 각각은 자신의 사용자 ID와 관련된 브리지 ID를 학습하는 것 이외에 다른 시스템의 데이터 세트에 관해 아무것도 알지 못할 수도 있다. 특히, 어떤 참가자도 자신의 사용자 ID들간에새로운 연결을 학습할 수 없다. 예를 들어, 자사는 타사가 타사 시스템(140)과 관련된 사용자 ID A 및 사용자 ID B가 동일한 사용자라고 믿고 있다는 것을 알 수 없고, 유사하게, 자사 시스템(120)은 자사가 타사 시스템(140)과 관련된 사용자 ID C 및 사용자 ID D가 동일한 사용자라고 생각하고 있음을 알 수 없다. 일부 구현예에서, 이러한 프로세스는 자사 시스템(120) 및 타사 시스템(140)이 2개의 데이터 세트에 관한 일부 집합 통계(aggregate statistics)를 학습하게 할 수 있다.
도 4a-4b를 더 상세히 참조하면, 단계 402에서, 자사 시스템(120) 및 타사 시스템(140)은 공개 엘-가말 키들을 교환할 수 있다. 공개 엘-가말 키들은 자사 시스템(120) 및 타사 시스템(140) 각각이 저장, 생성 및/또는 수신하도록 구성되는 엘-가말 키일 수 있다. 특히, 자사 시스템(120)은 자사 엘-가말 키(EF)를 타사 시스템(140)으로 전송할 수 있고, 타사 시스템(140)은 타사 엘-가말 키(ET)를 자사 시스템(140)으로 전송할 수 있다.
단계(404)에서, 자사 시스템(120)은 자사 엘-가말 키 및 자사 결정키 (deterministic key)로 하나 이상의 제1 데이터 세트(126)를 암호화하여, 암호화된 제1 데이터 세트(126)를 타사 시스템(140)으로 전송할 수 있다. 구체적으로, 자사 시스템(120)은 자사 키(EF)로 ui를 암호화하여 EF(ui)를 생성하고 자사 결정키(F)로 MK를 암호화하여 F(MKi)를 생성한다. 암호화된 하나 이상의 제1 데이터 세트(126)는 튜플(EF(ui),F(MKi))의 형태일 수 있다. 자사 시스템(120)은 암호화된 제1 데이터 세트(126)((EF(ui),F(MKi))를 타사 시스템(140)으로 전송할 수 있다. ui가 엘-가말을 사용하여 암호화되므로, 다수의 튜플이 동일한 ui를 공유하더라고 그들은 서로 다른 암호화를 가질 것이다.
단계(406)에서, 타사 시스템(140)은 타사 결정키(T)로 상기 암호화된 제1 데이터 세트(126)를 이중 암호화할 수 있다. 그런 다음 타사 시스템(140)은 이중 암호화된 제1 데이터 세트(126)를 랜덤화할 수 있다. 상기 이중 암호화의 결과는 타사 시스템(140)이 동일한 R을 사용하여 모든 ui를 암호화할 수 있는 (EF(ui R),TF[MKi])일 수 있다. 그 결과는 셔플링된 순서로 자사 시스템(120)으로 전송될 수 있다.
단계(408)에서, 타사 시스템(140)은 결정 타사 키로 하나 이상의 제2 데이터 세트(146)를 암호화하여, 암호화된 하나 이상의 제2 데이터 세트(146)를 자사 시스템(120)으로 전송할 수 있다. 특히, 하나 이상의 제2 데이터 세트(146)(vj,MKj)는 MKj값을 타사 키(T)로 암호화함으로써 암호화된다. 그 결과는 타사 시스템(140)에 의해 자사 시스템(120)으로 전송될 수 있는 (vj,T(MKj))일 수 있다.
단계(410)에서, 자사 시스템(120)은 이중 암호화된 제1 데이터 세트(126)를 해독할 수 있다. 자사 시스템(120)은 자사 엘-가말 암호화(EF)를 제거함으로써 이중 암호화된 하나 이상의 제1 데이터 세트(126) 즉, (EF(ui R),TF[MKi])를 해독할 수 있다. 그 결과는 (ui R,TF[MKi])의 형태의 튜플일 수 있다.
단계 412에서, 자사 시스템(120)은 단계(408)에서 자사 결정키로 타사 시스템(140)으로부터 수신된 하나 이상의 암호화된 제2 데이터 세트(146)를 이중 암호화할 수 있다. 구체적으로, 단계(408)에서 수신된 하나 이상의 암호화된 제2 데이터 세트(146)는 (vj,T(MKj))일 수 있다. 각각의 튜플에 대해, 자사 시스템(120)은 자사 키(F)로 T(MKj)를 이중 암호화할 수 있다. 그 결과는 (vj,FT(MKj))형태의 튜플일 수 있다.
단계(414)에서, 자사 시스템(120)은 이중 암호화된 제1 데이터 세트(126)의 MK값들과 이중 암호화된 제2 데이터 세트(146)의 MK값들 사이의 다수의 링크를 포함하는 매칭 관계를 생성할 수 있다. 매칭 관계의 꼭지점들은 (암호화를 통해 블라인드된) 사용자 ID(ui R) 및 (암호화되지 않은 클리어 상태의) 및 vj를 나타낼 수 있으며, 두 꼭지점 사이의 에지는 매칭 FT(MK)을 나타낸다. 자사 시스템(120)은 결합된/블라인드된 매칭 관계에서 상기 연결된 구성 요소들을 찾을 수 있다.
단계(416)에서, 자사 시스템(120)은 암호화된 브리지 ID를 자사 엘-가말 키 및 타사 엘-가말 키로 할당할 수 있다. 연결된 각 구성 요소에 대해(예컨대, 매칭되거나 비매칭된 사용자 ID 정점(vertice))에 대해, 자사 시스템(120)은 해당 구성 요소를 사용하기 위한 랜덤 브리지 ID를 선택하여, 자사 엘-가말 키 및 타사 엘-가말 키 모두 하에서 브릿지 ID 값들을 암호화할 수 있다.
이 브리지 ID의 암호화는 매칭 관계의 각 꼭지점에 대해 암호화된 동일한 평문 텍스트를 사용하는 별도의 랜덤 암호화일 수 있다. 단계(418)에서, 자사 시스템(120)은 자사 엘-가말 키 및 타사 엘-가말 키로 상기 할당된 브리지 식별자들을 암호화할 수 있다. 단계(418)의 암호화 후에, 각 ui R은 단일 EFET(Bi)와 연관되고, 각 vj는 EFET(Bj)와 연관될 것이다. 여기서 중복 제거(deduplication)가 발생하는데, 그 이유는 각 vj는 그 구성 요소에 대응하는 단일 암호화된 브리지 ID와만 연관되기 때문에, 타사 시스템(140)은 복제본을 전혀 보지 않을 것이기 때문이다.
단계(420)에서, 자사 시스템(120)은 단계(420)에서 생성된 암호화된 브리지 식별자들 및 자사 시스템과 관련된 사용자 ID들을 포함하는 하나 이상의 제1튜플 및 상기 암호화된 브리지 식별자들 및 타사 시스템과 관련된 사용자 ID들을 포함하는 하나 이상의 제2튜플을 셔플링하여 타사 시스템(140)으로 전송한다. 상기 튜플들은 자사 및 타사 시스템(120 및 140)의 사용자 ID들을 이중 암호화된 브리지 ID들과 연관시킬 수 있다. 상기 튜플들은 (EFET(Bj),vj)(제1 튜플) 및 (EFET(Bi),uj R)(제2 튜플), 즉 이중 암호화된 브리지 ID들과 함께 연결된 구성 요소의 꼭지점들일 수 있다.
단계(422)에서, 타사 시스템(140)은 타사 엘- 가말 키로 하나 이상의 제2 튜플을 해독함으로써 타사 시스템(140)에 대한 브리지 식별자 맵(144)을 생성할 수 있다. 하나 이상의 제2 튜플 (EFET(Bj),vj)에 대해, 타사 시스템(140)은 타사 엘-가말 암호화 키(ET)로 브리지 ID들을 해독하여 암호화된 브리지 ID 맵 (EF(Bj),vj)을 생성할 수 있다.
단계(424)에서, 타사 시스템(140)은 하나 이상의 제1 튜플을 역-지수화하여, 역-지수화된 하나 이상의 제1 튜플을 자사 시스템(120)으로 전송할 수 있다. 상기 (EFET(Bi),uj R) 형태의 하나 이상의 제1 튜플은 지수(R)를 제거함으로써 타사 시스템(140)에 의해 역-지수화될 수 있다. 타사 시스템(140)은 제1 위치에서 암호화를 재-랜덤화할 수 있고, (ETEF(Bj),ui)를 발생하는 제2 위치에서 ui의 지수에서 R의 자승(power)을 제거할 수 있다. 타사 시스템(140)은 결과를 셔플링하고 및/또는 자사 시스템(120)으로 결과를 전송할 수 있다.
단계(426)에서, 자사 시스템(120)은 자사 엘-가말 키로 하나 이상의 제1 튜플을 해독함으로써 자사 시스템(120)에 대한 브리지 식별자 맵(126)을 생성할 수 있다. 각 튜플 (ETEF(Bj),ui)에 대해, 자사 시스템(120)은 자사 시스템(120)의 엘-가말 키(ET)로 제1 구성 요소를 해독하여 자사 시스템(120)에 대한 암호화된 BID 맵 (EF(Bi),ui)을 얻는다.
도 5a를 참조하면, 예시적인 구현에 따라, 타사 시스템(140)에 의한 암호화된 브리지 식별자들의 교차를 결정하기 위한 보안 교차 프로세스인 프로세스(500A)의 전송도가 도시된다. 프로세스(500A)는 타사 시스템(140)에 의해 프로세스(400)에서 생성된 암호화된 브리지 식별자의 교차를 결정하는데 사용될 수 있다. 자사 시스템(120) 및 타사 시스템(140)은 프로세스(500A)의 단계들을 수행하도록 구성될 수 있다. 더욱이, 본 명세서에 기술된 컴퓨팅 디바이스들 중 임의의 하나 또는 조합이 프로세스(500A)를 수행하도록 구성될 수 있다.
프로세스(500A)의 포괄적인 개요에서, 타사 시스템(140)은 우선 그의 암호화된 브리지 식별자를 동형적(homomorphically)으로 지수화하여 이들을 자사 시스템(120)으로 전송할 수 있다. 그런 다음 자사 시스템(120)은 해독하고, 이중화하고, 셔플하고, 다시 보낼 수 있다. 자사 시스템(120)은자신의 암호화된 브리지 ID를 지수화하여 이들 암호 텍스트를 타사 시스템(140)에 전송할 수 있다. 타사 시스템(140)은 자사 시스템(120)의 브리지 ID를 해독하고 이들을 이중-지수화하고, 셔플링하여, 그들을 타사 시스템(140)으로 다시 전송할 수 있다. 그런 다음 자사 시스템(120)은 그 자신의 암호화된 브리지 ID들을 지수화하고 이러한 암호 텍스트를 타사 시스템(140)으로 전송할 수 있다. 그런 다음 타사 시스템(140)은 자사 시스템 (120)의 브리지 ID들을 해독하고 이들을 이중 지수화할 수 있다. 그런 다음 타사 시스템(140)은 각 당사자에 대해 이중 암호화된 BID들을 가지며, 이전 처럼 교차를 수행할 수 있다(역할은 일부 구현예에서 순방향에서 역방향으로 변경하도록 교환 될 수있다).
단계(502)에서, 자사 시스템(120)은 자사 결정 암호화 키(F)를 생성할 수있는 반면, 타사 시스템(140)은 타사 결정 암호화 키(T)를 생성할 수 있다.
단계(504)에서, 세그먼트 내의 각 사용자(vj)에 대해, 타사 시스템(140)은 자사 시스템(120)으로 전송될 수 있는 결과 EF(Bj T)를 생성하는 관련 엘-가말 암호화된 브리지 ID를 동형적으로 지수화할 수 있다. 단계(506)에서, 자사 시스템(120)은 Bj TF를 생성하기 위해 EF(Bj T)를 해독 및 이중 지수화하고 Bj TF를 타사 시스템으로 전송할 수 있다. 보다 구체적으로, 자사 시스템(120)은 각 EF(Bi T)를 해독하고, EF를 제거하고 F로 이중 지수화하여 결과 Bj TF를 생성할 수 있다. 상기 값들의 순서는 전송되기 전에 셔플링될 수 있다. 단계 508에서, 자사 시스템(120)은 타사 시스템으로 ET(Bi F)를 전송하는 관련 엘-가말 암호화된 브리지 ID를 동형적으로 지수화한다.
단계(510)에서, 타사 시스템(140)은 각 ET(Bi F)를 해독할 수 있고 결과를 이중 지수화하여 Bi FT를 생성할 수 있다. 단계(512)에서, 타사 시스템(140)은 상기 이중 지수화된 브리지 식별자들을 교차시킴으로써 교차 크기를 결정할 수 있다. 보다 구체적으로, 타사 시스템(140)은 Bi FT 값들을 수신된 Bj TF값들과 교차시켜, 교차 크기를 얻을 수 있다. 위의 프로토콜은 교차 합(intersection sum)을 배우기 위해 자연스럽게 확장될 수 있으며, 다른 당사자가 교차를 수행하도록 되돌릴 수도 있다. 보안 교차-합 프로세스는 도 5b에서 보다 상세히 설명된다.
이제 도 5를 참조하면, 예시적인 구현에 따라, 자사 시스템(120)에 의한 암호화된 브리지 식별자들의 교차를 결정하기 위한 보안 교차-합 프로세스인 프로세스(500B)의 전송도가 도시된다. 프로세스(500B)는 자사 시스템(120)에 의해 프로세스(400)에서 생성된 암호화된 브리지 식별자의 교차를 결정하는데 사용될 수 있다. 자사 시스템(120)과 타사 시스템(140)은 프로세스(500B)의 단계들을 수행하도록 구성될 수 있다. 또한, 본 명세서에 기술된 컴퓨팅 디바이스들 중 임의의 하나 또는 조합은 프로세스(500B)를 수행하도록 구성될 수 있다.
일부 구현예에서 교차를 수행하는 당사자는 Bi FT 및 Bj FT 값을 보게 되고, 특히 얼마나 많은 그러한 값들이 반복되는 지를 알 수 있다. 이는 세그먼트의 얼마나 많은 사용자(어느 당사자에 속하는)가 동일한 연결 구성 요소에 있었는지 정확히 누설하지만 특정 사용자는 누설하지 않는다.
(교차를 수행하지 않는) 타사는 자사에 대한 상기 Bi T 값들을 보게 되고, 특히 얼마나 많은 그러한 값을 반복되는 지를 알 수 있다. 이는 세그먼트의 얼마나 많은 자사의 사용자가 동일한 연결 구성 요소에 있었는지 정확히 누설하지만 특정 사용자들은 누설하지 않는다.
단계(522)에서, 타사 시스템(140)은 {(EF(Bj T),P(Sj)}를 전송한다. 단계(524)에서, 자사 시스템(120)은 {(Bj FT,P(Sj+Rj))} 및 {ET(Bi F)}를 타사 시스템(140)으로 전송한다. 단계(526)에서, 타사 시스템(140)은 ΣjB(Sj+Rj) 및 {Bj FT}를 전송한다. 단계(528)에서, 타사 시스템(140)은 ΣjBSj를 전송한다.
도 5c를 참조하면, 구현예에 따른, 표시자 비트를 갖는 매칭된 브리지 ID의 수를 결정하기 위한 프로세스(500C)의 전송도이다. 자사 시스템(120) 및 타사 시스템(140)은 프로세스(500C)의 단계들을 수행하도록 구성될 수 있다. 더욱이, 본 명세서에 기재된 컴퓨팅 디바이스들 중 임의의 하나 또는 조합은 프로세스(500C)를 수행하도록 구성될 수 있다.
단계(530)에서, 자사 시스템(120)은 {(EF(ui),MKj F)}를 타사 시스템(140)으로 전송한다. 단계(532)에서, 타사 시스템은 {(EF(ui),MKi FT)} 및 {(vj,MKj T)}를 자사 시스템으로 전송함으로써 응답한다.
단계(534)에서, 자사 시스템(120)은 연결된 구성 요소를 결정하고 브리지 ID를 각 구성 요소에 할당한다. "싱글톤" 구성 요소에 있는 즉, 임의의 다른 꼭지점을 갖는 에지를 갖지 않는 각각의 자사 꼭지점에 대해, 자사는 해당 꼭지점에 EFET(e)를 할당하고, 0이 아닌 꼭지점에 대해서는 EFET(g)를 해당 꼭지점에 할당한다. 여기서, e는 EC 그룹의 신원 요소(identity element)이고 g는 생성자이다. 그런 다음 자사 시스템(120)은 {(ui T,EFET(Bi),EFET(Ki) 및 {vj,EFET(Bj)}를 타사 시스템(14)으로 전송한다.
단계(536)에서, 타사 시스템(140)은 {ui,EFET(Bi),EFET(Ki)}으로 타사 시스템에 응답한다. 이 방법 중에, 자사 시스템(120)은 그 세그먼트 브릿지 ID를 갖는 EFET(Ki)를 포함해야 한다. 세그먼트내의 얼마나 많은 요소가 타사 시스템(140) 측에서 대응하는 브리지 ID들을 갖는지를 결정한다. 타사 시스템(140)은 ΠiSEF(Ki) = EG(ΠiSKi)를 결정할 수 있는데, 즉 엘-가말 준동형(homomorphism)을 사용할 수 있다. 각 Ki는 e 또는 g이므로, Ki=gΣ, 즉 지수는 매칭된 브리지 ID의 수이다. 일반적으로 지수를 계산하기는 어렵지만 세크먼트 크기는 지수의 하한값이 작다는 것을 의미할만큼 상당히 크지(수백만에 달하는)않다. 자사는 이 수(number)를 디코딩하기 위한 가능한 지수의 룩업 테이블을 유지할 수 있다. 필요한 경우 교차에 대해서도 이 작업을 수행할 수 있다.
도 6을 참조하면, 도 6은 예를 들어, 예시적인 사용자 디바이스(104), 예시적인 컨텐츠 관리 시스템(108), 예시적인 컨텐츠 제공자 디바이스(106), 예시적인 자사 시스템(120), 예시적인 타사 시스템 140) 및/또는 본 발명에 기재된 다양한 다른 예시적인 시스템을 구현하는데 사용될 수 있는 컴퓨팅 시스템(600)의 도면을 도시한다. 컴퓨팅 시스템(600)은 정보를 통신하기 위한 버스(605) 또는 다른 통신 구성 요소 및 정보를 처리하기 위해 버스(605)에 연결된 프로세서(610)를 포함한다. 컴퓨팅 시스템(600)은 또한 정보를 저장하기 위해 버스(605)에 결합된, 랜덤 액세스 메모리(RAM) 또는 다른 동적 저장 디바이스와 같은 메인 메모리(615) 및 상기 프로세서(610)에 의해 실행될 명령들을 포함한다. 메인 메모리(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, 블루투스 등을 통해), 사전 구성된 애드혹, LAN, WAN 등과 같은 통신 어댑터(640)를 사용하여 달성될 수 있다.
다양한 구현들에 따라, 본 명세서에 기술된 예시적인 구현들을 달성하는 프로세스들은 메인 메모리(615)에 포함된 명령들의 배열을 실행하는 프로세서(610)에 응답하여 컴퓨팅 시스템(600)에 의해 달성될 수 있다. 이러한 명령들은 저장 디바이스(625)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(615)로 판독될 수 있다. 메인 메모리(615)에 포함된 명령들의 배열의 실행은 컴퓨팅 시스템(600)으로 하여금 본 명세서에 기술된 예시적인 프로세스들을 수행하도록 한다. 멀티-처리 배열 내의 하나 이상의 프로세서가 메인 메모리(615)에 포함된 명령들을 실행하기 위해 사용될 수도 있다. 대안적인 구현들에서, 유선 회로는 소프트웨어 명령들 대신에 또는 소프트웨어 명령들과 함께 사용되어 예시적인 구현들을 구현할 수 있다. 따라서, 구현들은 하드웨어 회로 및 소프트웨어의 임의의 특정 조합으로 제한되지 않는다.
예시적인 프로세싱 시스템이 도 6에 개시되었지만, 본 명세서에서 설명된 주제 및 기능 동작의 구현은 다른 유형의 디지털 전자 회로, 또는 본 명세서에 개시된 구조 및 그 구조적 등가물 또는 이들 중 하나 이상의 조합을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어를 사용하여 수행될 수 있다.
본 명세서에 설명된 주제및 동작의 구현은 디지털 전자 회로 또는 본 명세서에 개시된 구조 및 그 구조적 등가물 또는 그들의 하나 이상의 조합을 포함하는 유형의 매체, 펌웨어 또는 하드웨어 상에 구현된 컴퓨터 소프트웨어를 사용하여 수행될 수 있다. 본 명세서에 기술된 주제의 구현은, 데이터 처리 장치에 의해 실행되거나 또는 데이터 처리 장치의 동작을 제어하기 위해 하나 이상의 컴퓨터 저장 매체 상에 인코딩된 하나 이상의 컴퓨터 프로그램 즉, 컴퓨터 프로그램 명령들의 하나 이상의 서브 시스템들로서 구현될 수 있다. 선택적으로 또는 부가적으로, 프로그램 명령들은 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로의 송신을 위해 정보를 인코딩하도록 생성된, 인위적으로 생성된 전파 신호, 예를 들어 기계에 의해 생성된 전기, 광학 또는 전자기 신호상에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 포함될 수 있다. 또한, 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령들의 소스 또는 대상(destination)이 될 수 있다. 컴퓨터 저장 매체는 하나 이상의 개별 구성 요소 또는 매체(예컨대, 다수의 CD, 디스크 또는 다른 저장 디바이스)일 수 있거나 포함될 수 있다. 따라서, 컴퓨터 저장 매체는 유형적이고 비-일시적이다.
본 명세서에서 설명된 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작으로서 구현될 수 있다.
"데이터 처리 장치" 또는 "컴퓨팅 디바이스"라는 용어는 예를 들어 프로그램 가능한 프로세서, 컴퓨터, 칩상의 시스템 또는 복수의 시스템 또는 전술한 것들의 조합을 포함하여, 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(주문형 집적 회로)를 포함할 수 있다. 상기 장치는 또한 하드웨어 이외에 문제의 컴퓨터 프로그램, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스 플랫폼 런타임 환경, 가상 머신 또는 그들의 하나 이상의 조합을 구성하는 코드에 대한 실행 환경을 생성하는 코드를 포함할 수 있다. 상기 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 상이한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려진)은 컴파일된 또는 해석된 언어, 선언적 또는 절차적 언어를 비롯한 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램이나 모듈, 구성 요소, 서브 루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떤 형태로든 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그런 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예컨대, 마크 업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하고 있는 파일의 일부분, 문제의 프로그램 전용의 단일 파일 또는 다수의 조정 파일(예컨대, 하나 이상의 서브 시스템, 서브 프로그램 또는 코드의 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있으며 통신 네트워크로 상호 연결된 여러 대의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서 설명되는 프로세스 및 논리 흐름은 입력 데이터를 조작하고 출력을 생성함으로써 동작들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 상기 프로세스 및 로직 흐름은 또한 FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(주문형 집적 회로)과 같은 특수 목적의 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적의 논리 회로로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적 마이크로 프로세서 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 필수 구성 요소는 명령들에 따라 동작들을 수행하기 위한 프로세서와 명령들과 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스((예를 들어,자기, 광자기 디스크 또는 광학 디스크로부터 데이터를 수신하거나 데이터를 전송하거나 또는 둘 모두를 위해 동작 가능하게 결합되거나 포함할 수 있다. 그러나, 컴퓨터에는 그러한 디바이스들이 있을 필요가 없다. 또한, 컴퓨터는 다른 장치, 예를 들어, 모바일 전화기, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스(예컨대, 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 디바이스들은 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스; 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함하는, 모든 형태의 비 휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 상기 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 특수 목적 논리 회로 내에 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 기재된 요지의 구현은 사용자에게 정보를 표시하기 위한 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 키보드 및 포인팅 디바이스를 갖는 컴퓨터를 사용하여 수행될 수 있다. 다른 종류의 디바이스가 사용자와의 상호 작용을 제공하는데 사용될 수 있으며, 예를 들어, 사용자에게 제공된 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스상의 웹 브라우저에 웹 페이지를 전송함으로써 사용자에 의해 사용되는 디바이스와 문서를 주고 받음으로써 사용자와 상호 작용할 수 있다.
본 명세서에서 설명된 요지의 구현은 데이터 서버와 같은 백-엔드 구성 요소, 애플리케이션 서버와 같은 미들웨어 구성 요소, 사용자가 본 명세서에 개시된 주제의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터와 같은 프론트-엔드 구성 요소 또는 하나 이상의 그러한 백-엔드, 미들웨어 또는 프론트-엔드 구성 요소의 임의의 조합을 포함하는 컴퓨팅 시스템을 사용하여 수행될 수 있다. 시스템의 구성 요소는 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 접속될 수 있다. 통신 네트워크의 예는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 상호(inter) 네트워크(예컨대, 인터넷) 및 피어-투-피어 네트워크(예컨대, 애드 혹 피어-투-피어 네트워크)를 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램의 덕택으로 발생한다. 일부 구현예에서, 서버는 (예를 들어, 클라이언트 디바이스와 상호 작용하는 사용자에게 데이터를 표시하고 사용자 입력을 수신하기 위한 목적으로) 클라이언트 디바이스로 데이터(예를 들어, HTML 페이지)를 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 서버에서 클라이언트 장치로부터 수신될 수 있다.
일부 예시적인 구현에서, 본 명세서에 개시된 특징들은 인터넷 연결을 보다 전통적인 텔레비전 프로그래밍 소스들(예컨대, 케이블, 위성, 공중(over-the-air) 또는 다른 신호들을 통해 수신된)와 통합하도록 구성된 처리 회로를 포함할 수 있는 스마트 텔레비전 모듈(또는 연결된 텔레비전 모듈, 하이브리드 텔레비전 모듈 등)상에 구현될 수 있다. 상기 스마트 텔레비전 모듈은 텔레비전 세트에 물리적으로 통합될 수 있거나 셋톱 박스, 블루 레이 또는 다른 디지털 미디어 플레이어, 게임 콘솔, 호텔 텔레비전 시스템 및 다른 컴패니언 장치와 같은 개별 디바이스를 포함할 수 있다. 스마트 텔레비전 모듈은 시청자가 웹, 로컬 케이블 TV 채널, 위성 TV 채널 또는 로컬 하드 드라이브에 저장된 비디오, 영화, 사진 및 기타 콘텐츠를 검색하고 찾을 수 있도록 구성될 수 있다. 셋톱 박스(STB) 또는 셋톱 유닛(STU)은 튜너를 포함할 수 있고 텔레비전 세트 및 외부 신호 소스에 연결하여 신호를 콘텐츠로 바꾼 다음 텔레비젼 화면 또는 다른 디스플레이 디바이스에 디스플레이할 수 있는 정보 기기 장치를 포함할 수 있다. 스마트 텔레비전 모듈은 웹 브라우저 및 복수의 스트리밍 미디어 서비스, 연결된 케이블 또는 위성 미디어 소스, 다른 웹 "채널" 등과 같은 복수의상이한 애플리케이션에 대한 아이콘들을 포함하는 홈 스크린 또는 최상위 레벨 스크린을 제공하도록 구성될 수 있다. 스마트 텔레비전 모듈은 또한 전자 프로그래밍 가이드를 사용자에게 제공하도록 구성될 수 있다. 스마트 텔레비전 모듈에 관한 동반(companion) 어플리케이션은 모바일 컴퓨팅 디바이스상에서 동작 가능하여, 사용자에게 이용 가능 프로그램에 관한 부가 정보를 사용자에게 제공하여 사용자가 스마트 텔레비전 모듈 등을 제어할 수 있도록 한다. 다른 구현들에서, 특징들은 랩탑 컴퓨터 또는 다른 개인용 컴퓨터, 스마트 폰, 다른 모바일 전화기, 휴대용(handheld) 컴퓨터, 태블릿 PC, 또는 다른 컴퓨팅 디바이스 상에 구현될 수 있다.
본 명세서는 많은 특정 구현 세부 사항을 포함하고 있지만, 이들은 발명의 범위 또는 청구 범위를 제한하는 것으로 해석되어서는 안되며 오히려 특정 발명의 특정 구현에 특유한 특징을 기술한 것으로 해석되어야 한다. 별도의 구현의 문맥으로 본 명세서에 기술된 소정 특징들은 또한 조합하여 또는 단일 구현으로 수행될 수 있다. 반대로, 단일 구현의 문맥에서 기술되는 다양한 특징은 다수의 구현예에서, 개별적으로 또는 임의의 적절한 서브 조합으로 수행될 수 있다. 더욱이, 특징들은 특정 조합으로 작용하는 것으로 상술될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우 조합으로부터 제거될 수 있으며, 상기 청구된 조합은 서브 조합 또는 서브 조합의 변형으로 유도될 수 있다.
부가적으로, 특정 표제와 관련하여 기술된 특징들은 다른 표제 하에서 기술된 예시적인 구현예들과 관련하여 및/또는 조합하여 이용될 수 있다. 제공되는 경우 표제는 가독성의 목적으로만 포함되며 그러한 표제와 관련하여 제공되는 기능을 제한하는 것으로 해석되어서는 안된다.
유사하게, 동작들은 특정 순서로 도면들에 도시되어 있지만, 이는 바람직한 동작들을 달성하기 위해, 그러한 동작들이 도시된 순서 또는 순차적인 순서로 수행되거나 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 더욱이, 상술한 구현예에서 다양한 시스템 구성 요소의 분리는 모든 구현예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 서술된 프로그램 구성 요소들 및 시스템들은 일반적으로 단일 소프트웨어 제품에 통합되거나 유형의 매체 상에 구현된 다수의 소프트웨어 제품들로 패키징될 수 있음을 이해해야 한다.
따라서, 주제의 특정 구현예들이 기술되었다. 다른 구현예들은 다음의 청구항들의 범위 내에 있다. 일부 경우, 청구 범위에 인용된 동작들은 다른 순서로 수행할 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 또한, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하지는 않는다. 특정 구현예들에서, 멀티 태스킹 및 병렬 처리가 유리할 수 있다.

Claims (20)

  1. 특정 사용자 식별 정보를 노출하지 않고 상이한 시스템들의 사용자 식별자들 사이에 링크를 설정하는 방법으로서,
    자사 시스템(first party system)에 의해, 상기 자사 시스템과 관련된 매치 키 및 사용자 식별자를 각각 포함하는 하나 이상의 제1 데이터 세트를 암호화하는 단계와;
    상기 자사 시스템에 의해, 상기 암호화된 하나 이상의 제1 데이터 세트를 타사 시스템(third party system)으로 전송하는 단계와;
    상기 자사 시스템에 의해 상기 타사 시스템으로부터, 상기 타사 시스템과 관련된 매치 키 및 사용자 식별자를 각각 포함하는 하나 이상의 암호화된 제2 데이터 세트를 수신하는 단계와;
    상기 자사 시스템에 의해 상기 타사 시스템으로부터, 하나 이상의 이중 암호화된 제1 데이터 세트를 수신하는 단계와, 상기 하나 이상의 이중 암호화된 제1 데이터 세트는 상기 타사 시스템에 의해 추가로 암호화된 상기 암호화된 하나 이상의 상기 제1 데이터 세트를 포함하고;
    상기 자사 시스템에 의해, 하나 이상의 이중 암호화된 제2 데이터 세트를 생성하기 위해 타사 시스템으로부터 수신된 상기 암호화된 하나 이상의 제2 데이터 세트를 암호화하는 단계와;
    상기 자사 시스템에 의해, 상기 이중 암호화된 하나 이상의 제1 데이터 세트 및 상기 이중 암호화된 하나 이상의 제2 데이터 세트에 기초하여 매칭 관계를 생성하는 단계와, 상기 매칭 관계는 자사 시스템과 관련된 매치 키들 및 타사 시스템과 관련된 매치 키들사이의 하나 이상의 링크를 나타내고;
    상기 자사 시스템에 의해, 둘 이상(more than one)의 링크를 갖는 타사 시스템의 매치 키들을 결정하여 그 매치 키들 사이의 하나 이상의 링크를 제거함으로써 상기 매칭 관계를 정리(pruning)하는 단계와;
    상기 자사 시스템에 의해, 상기 매칭 관계에 기초하여 상기 자사 시스템과 관련된 사용자 식별자들 및 상기 타사 시스템과 관련된 사용자 식별자들에 대한 브리지 식별자를 할당하는 단계를 포함하고, 상기 브리지 식별자는 상기 자사 시스템과 관련된 사용자 식별자들 및 상기 타사 시스템과 관련된 사용자 식별자들사이의 링크인 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 타사 시스템에 의해, 타원 곡선상의 랜덤 포인트가 되도록 상기 하나 이상의 제2 데이터 세트에 대한 상기 타사 시스템과 관련된 사용자 식별자들을 선택하는 단계와; 그리고
    상기 타사 시스템에 의해, 타사 결정 지수(deterministic exponent)로 상기 하나 이상의 제2 데이터 세트의 상기 타사 시스템과 관련된 선택된 상기 선택된 사용자 식별자들을 지수화함으로써 상기 하나 이상의 제2 데이터 세트를 암호화하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 자사 시스템에 의해, 상기 매칭 관계를 정리하는 단계는,
    상기 타사 시스템과 관련된 각각의 매치 키는 상기 자사 시스템의 매치 키들에 대한 하나의 링크를 가지며; 그리고
    상기 자사 시스템과 관련된 각각의 매치 키는 상기 타사 시스템의 매치 키들에 대한 하나의 링크를 갖도록,
    상기 매칭 관계로부터 링크들을 제거하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 매칭 관계의 링크들을 제거하는 것은 상기 자사 및 타사 시스템의 사용자 식별자들 중 일부는 매칭되고 상기 자사 및 타사 시스템의 사용자 식별자들 중 일부는 비매칭되도록 하고;
    상기 자사 시스템에 의해, 상기 매칭 관계에 기초하여 자사 시스템과 관련된 사용자 식별자들 및 상기 타사 시스템과 관련된 사용자 식별자들에 대해 브리지 식별자들을 할당하는 단계는 자사 시스템 및 타사 시스템의 상기 매칭 및 비매칭된 사용자 식별자들 모두에 브리지 식별자들을 할당하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 자사 시스템에 의해, 제1 지수로 하나 이상의 제1 튜플(tuples)을 지수화하는 단계와, 각각의 제1 튜플은 상기 자사 시스템과 관련된 사용자 식별자들을 브리지 식별자들에 링크시키고;
    상기 자사 시스템에 의해 상기 타사 시스템으로, 상기 하나 이상의 지수화된 제1 튜플을 전송하는 단계와;
    상기 자사 시스템에 의해 상기 타사 시스템으로, 하나 이상의 제2 튜플을 전송하는 단계와, 각각의 제2 튜플은 상기 타사 시스템과 관련된 사용자 식별자들 중 하나를 상기 브리지 식별자들 중 하나에 링크시키고;
    상기 타사 시스템에 의해, 제 2지수로 상기 하나 이상의 제2 튜플의 브리지 식별자들을 지수화함으로써 브리지 식별자 맵을 생성하는 단계와;
    상기 타사 시스템에 의해, 상기 제2 지수로 상기 하나 이상의 지수화된 제1 튜플을 지수화하는 단계와;
    상기 타사 시스템에 의해 상기 자사 시스템으로, 상기 하나 이상의 지수화된 제1 튜플을 전송하는 단계와; 그리고
    상기 자사 시스템에 의해, 상기 하나 이상의 지수화된 제1 튜플로부터 상기 제1 지수를 제거함으로써 상기 자사 시스템에 대한 브리지 식별자 맵을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 자사 시스템에 의해, 상기 제1데이터 세트를 암호화하는 단계는,
    상기 자사 시스템과 관련된 상기 사용자 식별자들을 엘-가말 키(El-Gamal key)로 암호화하는 단계와; 그리고
    상기 자사 시스템과 관련된 상기 매치 키를 자사 결정 키(deterministic key)로 암호화하는 단계를 포함하고,
    상기 방법은, 상기 타사 시스템에 의해,
    상기 자사 시스템과 관련된 상기 암호화된 매치 키들을 타사 결정 암호화 키로 암호화하고; 그리고
    상기 엘-가말 키로 암호화된 상기 암호화된 사용자 식별자들을 지수로 올림으로써, 하나 이상의 이중 암호화된 제1 데이터 세트를 생성하기 위해 상기 하나 이상의 제1 데이터 세트를 암호화하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 자사 시스템에 의해 상기 자사 시스템으로, 자사 엘-가말 키를 전송하는 단계와, 상기 자사 엘-가말 키는 자사 시스템의 공개키이고; 그리고
    상기 자사 시스템에 의해 상기 타사 시스템으로부터, 타사 엘-가말 키를 수신하는 단계를 더 포함하고, 상기 타사 엘-가말 키는 타사 시스템의 공개키이고, 그리고
    상기 자사 시스템에 의해, 상기 하나 이상의 제1 데이터 세트를 암호화하는 단계는, 상기 자사 시스템에 의해, 상기 자사 엘-가말 키와 자사 결정 키로 상기 하나 이상의 제1 데이터 세트를 암호화하는 단계를 포함하고,
    상기 방법은,
    상기 타사 시스템에 의해, 하나 이상의 이중 암호화된 제1 데이터 세트를 생성하기 위해 타사 결정 키로 상기 암호화된 하나 이상의 제1 데이터 세트를 암호화하는 단계와; 그리고
    상기 타사 시스템에 의해, 상기 타사 시스템과 연관된 매치 키들을 상기 타사 결정 키로 암호화함으로써 상기 암호화된 하나 이상의 제2 데이터 세트를 암호화하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    상기 자사 시스템에 의해, 상기 자사 엘-가말 키 및 제2 자사 엘-가말 키로 상기 할당된 브리지 식별자들 각각을 암호화하는 단계와;
    상기 자사 시스템에 의해 상기 타사 시스템으로, 상기 자사 시스템과 관련된 상기 암호화된 브리지 식별자들 및 관련 사용자 식별자들을 전송하는 단계와; 그리고
    상기 자사 시스템에 의해 상기 타사 시스템으로, 상기 타사 시스템과 관련된 상기 암호화된 브리지 식별자들 및 관련 사용자 식별자들을 포함하는 하나 이상의 제2 튜플을 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서, 상기 방법은,
    상기 타사 시스템에 의해, 상기 타사 엘-가말 키로 상기 하나 이상의 제2 튜플을 해독함으로써 상기 타사 시스템에 대한 브리지 식별자 맵을 생성하는 단계와;
    상기 타사 시스템에 의해, 상기 하나 이상의 제1 튜플을 역지수화하여 상기 역지수화된 하나 이상의 제1 튜플을 자사 시스템으로 전송하는 단계와; 그리고
    상기 자사 시스템에 의해, 상기 자사 엘-가말 키로 상기 하나 이상의 제1 튜플을 해독함으로써 자사 시스템에 대한 브리지 식별자 맵을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 특정 사용자 식별 정보를 노출하지 않고 상이한 시스템들의 사용자 식별자들 사이의 링크를 설정하기 위한 자사 시스템(first party system)에 있어서,
    메모리에 동작 가능하게 결합된 처리 회로를 포함하며,
    상기 처리 회로는,
    상기 자사 시스템과 관련된 매치 키 및 사용자 식별자를 각각 포함하는 하나 이상의 제1 데이터 세트를 암호화하고;
    상기 암호화된 하나 이상의 제1 데이터 세트를 타사 시스템(third party system)으로 전송하고;
    상기 타사 시스템으로부터, 상기 타사 시스템과 관련된 매치 키 및 사용자 식별자를 각각 포함하는 하나 이상의 암호화된 제2 데이터 세트를 수신하고;
    상기 타사 시스템으로부터, 하나 이상의 이중 암호화된 제1 데이터 세트를 수신하고, 상기 하나 이상의 이중 암호화된 제1 데이터 세트는 타사 시스템에 의해 암호화된 상기 암호화된 하나 이상의 제1 데이터 세트이고;
    하나 이상의 이중 암호화된 제2 데이터 세트를 생성하기 위해 상기 타사 시스템으로부터 수신된 상기 암호화된 하나 이상의 제2 데이터 세트를 암호화하고;
    상기 이중 암호화된 하나 이상의 제1 데이터 세트 및 상기 이중 암호화된 하나 이상의 제2 데이터 세트에 기초하여 매칭 관계를 생성하고, 상기 매칭 관계는 자사 시스템과 관련된 매치 키들 및 타사 시스템과 관련된 매치 키들사이의 하나 이상의 링크를 나타내고;
    둘 이상의 링크를 갖는 타사 시스템의 매치 키들을 결정하여 그 매치 키들 사이의 하나 이상의 링크를 제거함으로써 상기 매칭 관계를 정리하고;
    상기 매칭 관계에 기초하여 상기 자사 시스템과 관련된 사용자 식별자들 및 상기 타사 시스템과 관련된 사용자 식별자들에 대한 브리지 식별자를 할당하도록 구성되며, 상기 브리지 식별자는 상기 자사 시스템과 관련된 사용자 식별자들 및 상기 타사 시스템과 관련된 사용자 식별자들사이의 링크인 것을 특징으로 하는 시스템.
  11. 제10항에 있어서,
    상기 처리 회로는,
    상기 타사 시스템과 관련된 각각의 매치 키는 상기 자사 시스템의 매치 키들에 대한 하나의 링크를 갖고; 그리고
    상기 자사 시스템과 관련된 각각의 매치 키는 상기 타사 시스템의 매치 키들에 대한 하나의 링크를 갖도록 상기 매칭 관계로부터 링크들을 제거함으로써 상기 매칭 관계를 정리하도록 구성되는 것을 특징으로 하는 시스템.
  12. 제10항에 있어서,
    상기 처리 회로는 하나 이상의 링크를 갖는 상기 타사 시스템의 매치 키들을 결정하여 상기 매치 키들 사이의 상기 링크들 중 하나 이상을 제거함으로써 상기 매칭 관계를 정리하도록 구성되는 것을 특징으로 하는 시스템.
  13. 제10항에 있어서,
    상기 처리 회로는,
    제1 지수를 갖는 하나 이상의 제1 튜플들을 지수화하고, 각각의 제1 튜플은 상기 자사 시스템과 관련된 사용자 식별자들을 브리지 식별자들에 링크시키고;
    상기 하나 이상의 지수화된 제1 튜플을 전송하고;
    상기 타사 시스템으로, 하나 이상의 제2 튜플을 전송하고, 각각의 제2 튜플은 상기 타사 시스템과 관련된 사용자 식별자들 중 하나를 상기 브리지 식별자들 중 하나에 링크시키며;
    상기 타사 시스템으로부터, 제2 지수로 지수화된 상기 하나 이상의 지수화된 튜플을 수신하고; 그리고
    상기 하나 이상의 지수화된 제1 튜플로부터 상기 제1 지수를 제거함으로써 상기 자사 시스템에 대한 브리지 식별자 맵을 생성하도록 구성되는 것을 특징으로 하는 시스템.
  14. 특정 사용자 식별 정보를 노출하지 않고 상이한 시스템들의 사용자 식별자들사이에 링크를 설정하는 방법으로서,
    자사 처리 회로에 의해, 자사 시스템과 관련된 매치 키 및 사용자 식별자를 각각 포함하는 하나 이상의 제1 데이터 세트를 암호화하는 단계와;
    상기 자사 처리 회로에 의해, 상기 암호화된 하나 이상의 제1 데이터 세트를 타사 처리 회로로 전송하는 단계와;
    상기 자사 처리 회로에 의해, 상기 타사 처리 회로에 관련된 키 및 사용자 식별자를 각각 포함하는 하나 이상의 암호화된 제2 데이터 세트를 수신하는 단계;
    상기 자사 처리 회로에 의해 상기 타사 처리 회로로부터, 하나 이상의 이중 암호화된 제1 데이터 세트를 수신하는 단계와, 상기 하나 이상의 이중 암호화된 제1 데이터 세트는 상기 타사 처리 회로에 의해 암호화된 상기 암호화된 하나 이상의 제1 데이터 세트이고;
    상기 자사 처리 회로에 의해, 하나 이상의 이중 암호화된 제2 데이터 세트를 생성하기 위해 타사 처리 회로로부터 수신된 상기 암호화된 하나 이상의 제2 데이터 세트를 암호화하는 단계와;
    상기 자사 처리 회로에 의해, 상기 이중 암호화된 하나 이상의 제1 데이터 세트 및 상기 이중 암호화된 하나 이상의 제2 데이터 세트에 기초하여 매칭 관계를 생성하는 단계와, 상기 매칭 관계는 상기 자사 처리 회로와 관련된 매치 키들 및 상기 타사 처리 회로와 관련된 매치 키들사이의 하나 이상의 링크를 나타내고;
    상기 자사 처리 회로에 의해, 하나 이상의 링크를 갖는 상기 타사 처리 회로의 매치 키들을 결정하여 상기 매치 키들 사이의 하나 이상의 링크를 제거함으로써 상기 매칭 관계를 정리(pruning)하는 단계와; 그리고
    상기 자사 처리 회로에 의해, 상기 정리된 매칭 관계에 기초하여 상기 자사 처리 회로와 관련된 사용자 식별자들 및 상기 타사 처리 회로와 관련된 사용자 식별자들에 대한 브리지 식별자들을 할당하는 단계를 포함하고, 상기 브리지 식별자는 상기 자사 처리 회로와 관련된 사용자 식별자들 및 상기 타사 처리 회로와 관련된 사용자 식별자들사이의 링크이고, 상기 브리지 식별자는 자사 시스템과 관련된 사용자 식별자들 및 타사 시스템과 관련된 사용자 식별자들 사이의 링크인 것을 특징으로 하는 방법.
  15. 제14항에 있어서,
    상기 타사 처리 회로에 의해, 타원 곡선상의 랜덤 포인트가 되도록 상기 하나 이상의 제2 데이터 세트에 대한 상기 타사 처리 회로와 관련된 사용자 식별자들을 선택하는 단계와; 그리고
    상기 타사 처리 회로에 의해, 타사 결정 지수(deterministic exponent)로 상기 하나 이상의 제2 데이터 세트의 상기 타사 처리 회로와 관련된 선택된 상기 선택된 사용자 식별자들을 지수화함으로써 상기 하나 이상의 제2 데이터 세트를 암호화하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  16. 제14항에 있어서,
    상기 자사 처리 회로에 의해, 상기 매칭 관계를 정리하는 단계는,
    상기 타사 처리 회로와 관련된 각각의 매치 키는 상기 자사 처리 회로의 매치 키들에 대한 하나의 링크를 갖고; 그리고
    상기 자사 처리 회로와 관련된 각각의 매치 키는 상기 타사 처리 회로의 매치 키들에 대한 하나의 링크를 갖도록 상기 매칭 관계로부터 링크들을 제거하는 단계를 포함하는 것을 특징으로 하는 방법.
  17. 제14항에 있어서,
    상기 자사 처리 회로에 의해, 제1 지수로 하나 이상의 제1 튜플(tuples)을 지수화하는 단계와, 각각의 제1 튜플은 상기 자사 처리 회로와 관련된 사용자 식별자들을 브리지 식별자들에 링크시키고;
    상기 자사 처리 회로에 의해 상기 타사 처리 회로로, 상기 하나 이상의 지수화된 제1 튜플을 전송하는 단계와;
    상기 자사 처리 회로에 의해 상기 타사 처리 회로로, 하나 이상의 제2 튜플을 전송하는 단계와, 각각의 제2 튜플은 상기 타사 처리 회로와 관련된 사용자 식별자들 중 하나를 상기 브리지 식별자들 중 하나에 링크시키고;
    상기 타사 처리 회로에 의해, 제 2지수로 상기 하나 이상의 제2 튜플의 브리지 식별자들을 지수화함으로써 브리지 식별자 맵을 생성하는 단계와;
    상기 타사 처리 회로에 의해, 상기 제2 지수로 상기 하나 이상의 지수화된 제1 튜플을 지수화하는 단계와;
    상기 타사 처리 회로에 의해 상기 자사 처리 회로로, 상기 하나 이상의 지수화된 제1 튜플을 전송하는 단계와; 그리고
    상기 자사 처리 회로 의해, 상기 하나 이상의 지수화된 제1 튜플로부터 상기 제1 지수를 제거함으로써 상기 자사 처리 회로에 대한 브리지 식별자 맵을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  18. 제14항에 있어서,
    상기 자사 처리 회로에 의해, 상기 제1 데이터 세트를 암호화하는 단계는,
    상기 자사 처리 회로와 관련된 상기 사용자 식별자들을 엘-가말 키(El-Gamal key)로 암호화하는 단계와; 그리고
    상기 자사 처리 회로와 관련된 매치 키들을 자사 결정 키(deterministic key)로 암호화하는 단계를 포함하고,
    상기 방법은,
    상기 자사 시스템과 관련된 상기 암호화된 매치 키들을 타사 결정 암호화 키로 암호화하고; 그리고
    상기 엘-가말 키로 암호화된 상기 암호화된 사용자 식별자들을 지수로 올림으로써, 상기 타사 처리 회로에 의해, 하나 이상의 이중 암호화된 제1 데이터 세트를 생성하기 위해 상기 하나 이상의 제1 데이터 세트를 암호화하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 제14항에 있어서,
    상기 자사 처리 회로에 의해 상기 타사 처리 회로로, 자사 엘-가말 키를 전송하는 단계와, 상기 자사 엘-가말 키는 자사 처리 회로의 공개키이고; 그리고
    상기 자사 처리 회로에 의해 상기 타사 처리 회로로부터, 타사 엘-가말 키를 수신하는 단계를 더 포함하고, 상기 타사 엘-가말 키는 타사 처리 회로의 공개키이고, 그리고
    상기 자사 처리 회로에 의해, 상기 하나 이상의 제1 데이터 세트를 암호화하는 단계는, 상기 자사 처리 회로에 의해, 상기 자사 엘-가말 키와 자사 결정 키 (deterministic key)로 상기 하나 이상의 제1 데이터 세트를 암호화하는 단계를 포함하고,
    상기 방법은,
    상기 타사 처리 회로에 의해, 하나 이상의 이중 암호화된 제1 데이터 세트를 생성하기 위해 타사 결정 키로 상기 암호화된 하나 이상의 제1 데이터 세트를 암호화하는 단계와; 그리고
    상기 타사 처리 회로에 의해, 상기 타사 처리 회로와 관련된 매치 키들을 상기 타사 결정 키로 암호화함으로써 상기 암호화된 하나 이상의 제2 데이터 세트를 암호화하는 단계를 더 포함하고; 그리고
    상기 자사 처리 회로에 의해, 상기 자사 엘-가말 키 및 제2 자사 엘-가말 키로 상기 할당된 브리지 식별자들 각각을 암호화하는 단계와;
    상기 자사 처리 회로에 의해 상기 타사 처리 회로로, 상기 자사 처리 회로와 관련된 상기 암호화된 브리지 식별자들 및 관련 사용자 식별자들을 전송하는 단계와; 그리고
    상기 자사 처리 회로에 의해 상기 타사 처리 회로로, 상기 타사 처리 회로와 관련된 상기 암호화된 브리지 식별자들 및 관련 사용자 식별자들을 포함하는 하나 이상의 제2 튜플을 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  20. 제19항에 있어서, 상기 방법은,
    상기 타사 처리 회로에 의해, 상기 타사 엘-가말 키로 상기 하나 이상의 제2 튜플을 해독함으로써 상기 타사 처리 회로에 대한 브리지 식별자 맵을 생성하는 단계와;
    상기 타사 처리 회로에 의해, 상기 하나 이상의 제1 튜플을 역지수화하여 상기 역지수화된 하나 이상의 제1 튜플을 자사 처리 회로로 전송하는 단계와; 그리고
    상기 자사 처리 회로에 의해, 상기 자사 엘-가말 키로 상기 하나 이상의 제1 튜플을 해독함으로써 자사 처리 회로에 대한 브리지 식별자 맵을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
KR1020187025342A 2017-03-03 2017-12-14 특정 식별 정보 노출없이 식별자간 링크를 설정하기 위한 시스템 및 방법 KR102149996B1 (ko)

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
KR20180111904A KR20180111904A (ko) 2018-10-11
KR102149996B1 true KR102149996B1 (ko) 2020-08-31

Family

ID=60937938

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187025342A KR102149996B1 (ko) 2017-03-03 2017-12-14 특정 식별 정보 노출없이 식별자간 링크를 설정하기 위한 시스템 및 방법

Country Status (6)

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

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10771265B2 (en) * 2017-09-21 2020-09-08 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
US20200028841A1 (en) * 2018-06-15 2020-01-23 Proxy, Inc. Method and apparatus for providing 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
CN110086817B (zh) * 2019-04-30 2021-09-03 创新先进技术有限公司 可靠的用户服务系统和方法
US11205194B2 (en) 2019-04-30 2021-12-21 Advanced New Technologies Co., Ltd. Reliable user service system and method
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160078431A1 (en) * 2014-09-11 2016-03-17 Google Inc. Encrypted aggregated transaction data exchange with transaction data provider

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2103032B1 (en) * 2006-12-08 2016-12-28 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
JP5483746B2 (ja) * 2011-11-30 2014-05-07 日本電信電話株式会社 ネットワークシステム、ゲートウェイサーバ、ユーザ識別子連携方法及びユーザ識別子連携プログラム
JP6075017B2 (ja) 2012-11-09 2017-02-08 富士通株式会社 情報分析システム及び情報分析方法
JP2014098753A (ja) * 2012-11-13 2014-05-29 Fujitsu Ltd 情報処理方法、プログラム及び情報処理装置
US9641332B1 (en) * 2013-01-30 2017-05-02 Google Inc. Privacy-preserving measurements of a campaign
KR102164727B1 (ko) 2013-05-31 2020-10-13 세키스이가가쿠 고교가부시키가이샤 액정 표시 소자용 시일제, 상하 도통 재료, 액정 표시 소자 및 액정 표시 소자용 시일제의 제조 방법
CA2887191C (en) * 2014-04-04 2021-05-25 University Of Ottawa Secure linkage of databases
CN105227524B (zh) * 2014-06-12 2018-10-12 阿里巴巴集团控股有限公司 一种信息保密方法及相关装置
US9716697B2 (en) * 2015-07-24 2017-07-25 Google Inc. Generating bridge match identifiers for linking identifiers from server logs
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 阿里巴巴集团控股有限公司 一种数据统计方法和装置
CN110622165B (zh) * 2018-04-19 2023-05-30 谷歌有限责任公司 用于确定隐私集交集的安全性措施
US11429730B2 (en) * 2019-11-25 2022-08-30 Duality Technologies, Inc. Linking encrypted datasets using common identifiers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160078431A1 (en) * 2014-09-11 2016-03-17 Google Inc. Encrypted aggregated transaction data exchange with transaction data provider

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Loftus, Jake, et al., On CCA-secure somewhat homomorphic encryption, International Workshop on Selected Areas in Cryptography, Springer, Berlin, Heidelberg, 2011, pp. 55-72. 1부.*
Wang, Yong, et al., A Recommendation-based Matchmaking Scheme for Multiple Mobile Social Networks against Private Data Leakage, Procedia Computer Science 17, 2013, pp. 781-788. 1부.*

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102149996B1 (ko) 특정 식별 정보 노출없이 식별자간 링크를 설정하기 위한 시스템 및 방법
US9158925B2 (en) Server-aided private set intersection (PSI) with data transfer
WO2022247576A1 (zh) 一种数据处理方法、装置、设备及计算机可读存储介质
US20190205568A1 (en) Providing security against user collusion in data analytics using random group selection
TWI749444B (zh) 可靠的使用者服務系統和方法
JP2022526058A (ja) プライバシーを保護するための方法
JP6770075B2 (ja) 暗号化メッセージ検索方法、メッセージ送受信システム、端末、プログラム
Li et al. An efficient blind filter: Location privacy protection and the access control in FinTech
JP6542883B2 (ja) データベースシステム、データベース処理方法
CN116938449A (zh) 防止欺诈的计算机实现的方法、存储介质、设备及系统
Patil et al. Pixel co-ordinate-based secret image sharing scheme with constant size shadow images
WO2023185360A1 (zh) 一种数据处理方法、装置、系统、设备及存储介质
JP7471475B2 (ja) 安全なユニバーサル測定識別子構築のためのシステムおよび方法
Yasmin et al. Decentralized Entrance Power with Secret Endorsement of Data Stored in Clouds
Shah et al. Secure featurization and applications to secure phishing detection
JP7189357B2 (ja) プライバシー保護のためのデータセキュリティ方法
Ananthi et al. Secured Multikeyword Search over Encrypted Cloud Data Based On Quality and Usability
Tjuawinata et al. Search and Permission Request Over Encrypted Database
CN117321593A (zh) 密码安全和隐私保护匹配
Shahbazi Treasure Island Security framework: A Generic Security Framework for public clouds

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant