KR20230015964A - 보안 범용 측정 식별자 구성을 위한 시스템 및 방법 - Google Patents

보안 범용 측정 식별자 구성을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20230015964A
KR20230015964A KR1020227045010A KR20227045010A KR20230015964A KR 20230015964 A KR20230015964 A KR 20230015964A KR 1020227045010 A KR1020227045010 A KR 1020227045010A KR 20227045010 A KR20227045010 A KR 20227045010A KR 20230015964 A KR20230015964 A KR 20230015964A
Authority
KR
South Korea
Prior art keywords
identifiers
associations
encrypted
computing system
data
Prior art date
Application number
KR1020227045010A
Other languages
English (en)
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 KR20230015964A publication Critical patent/KR20230015964A/ko

Links

Images

Classifications

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

Landscapes

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

Abstract

방법으로서, 제1 컴퓨팅 시스템에서 암호화된 식별자들을 수신하는 단계; 상기 제1 컴퓨팅 시스템에 의해, 은닉 암호화된 식별자들을 생성하기 위해 상기 암호화된 식별자에 대한 은닉 동작을 수행하는 단계, 상기 은닉 동작은 상기 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템으로부터의 상기 암호화된 식별자들을 은닉하지만 상기 은닉 암호화된 식별자들 간의 매칭을 가능하게 하며, 상기 제2 컴퓨팅 시스템에 의해, 은닉 식별자들을 생성하기 위해 상기 은닉 암호화된 식별자들을 복호화하는 단계, 상기 제2 컴퓨팅 시스템에 의해, 하나 이상의 매칭 규칙을 사용하여, 상기 은닉 식별자들 사이에 하나 이상의 연관성을 생성하기 위해 상기 은닉 식별자들을 분석하는 단계, 및 상기 제2 컴퓨팅 시스템에 의해, 상기 하나 이상의 연관성에 기초하여 하나 이상의 범용 식별자들을 생성하는 단계를 포함한다.

Description

보안 범용 측정 식별자 구성을 위한 시스템 및 방법
관련 특허 출원에 대한 상호 참조
본 출원은 2020년 11월 9일 자로 출원된 미국 특허 출원 제63/111485호에 대해 우선권을 주장하며, 그 전체가 본 명세서에 참조로서 통합된다.
분석 시스템이 특정 콘텐츠 아이템과 인터렉션한 디바이스들의 수와 같은 콘텐츠와의 인터렉션에 관한 수집된 정보를 결정할 수 있으면 도움이 될 수 있다. 그러나, 종종 정보의 프라이버시를 유지하는데 관심이 있다. 예를 들어, 엔터티는 특정 유형의 콘텐츠가 도달한 디바이스 수 또는 디바이스와 연관된 식별자와 같은 정보 소스를 식별할 수 있는 정보를 수신하지 않고 콘텐츠와 특정 방식으로 인터렉션한 디바이스 수에 대한 정보를 수신하는데 관심이 있을 수 있다.
본 개시 내용의 하나의 구현예는 방법과 관련되며, 상기 방법은 제1 컴퓨팅 시스템에서 암호화된 식별자들을 수신하는 단계; 상기 제1 컴퓨팅 시스템에 의해, 은닉 암호화된 식별자들을 생성하기 위해 상기 암호화된 식별자에 대한 은닉 동작을 수행하는 단계, 상기 은닉 동작은 상기 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템으로부터의 상기 암호화된 식별자들을 은닉하지만 상기 은닉 암호화된 식별자들 간의 매칭을 가능하게 하며, 상기 제2 컴퓨팅 시스템에 의해, 은닉 식별자들을 생성하기 위해 상기 은닉 암호화된 식별자들을 복호화하는 단계, 상기 제2 컴퓨팅 시스템에 의해, 하나 이상의 매칭 규칙을 사용하여, 상기 은닉 식별자들 사이에 하나 이상의 연관성을 생성하기 위해 상기 은닉 식별자들을 분석하는 단계, 및 상기 제2 컴퓨팅 시스템에 의해, 상기 하나 이상의 연관성에 기초하여 하나 이상의 범용 식별자들을 생성하는 단계를 포함한다.
일부 구현예에서, 상기 은닉 동작을 수행하는 것은 상기 은닉 암호화된 식별자들을 생성하기 위해 상기 암호화된 식별자들을 제2 암호화로 결정론적으로 암호화하는 것을 포함한다. 일부 구현예에서, 은닉 동작은 암호화된 식별자들을 셔플링하는 것을 포함한다. 일부 구현예에서, 은닉 식별자들을 분석하는 단계는 상기 하나 이상의 연관성을 생성하기 위해 상기 은닉 식별자들 중 하나 이상을 매칭하는 것, 상기 하나 이상의 매칭 규칙을 사용하여 상기 하나 이상의 연관성을 점수화하는 것, 및 상기 점수에 기초하여 상기 하나 이상의 연관성을 프루닝하는 것을 포함한다. 일부 구현예에서, 상기 하나 이상의 연관성을 점수화하는 것은 상기 하나 이상의 연관성과 연관된 상기 하나 이상의 은닉 식별자들의 소스를 결정하는 것, 상기 소스를 사용하여 하나 이상의 매칭 규칙의 조회를 수행하는 것, 및 상기 조회에 기초하여 상기 하나 이상의 연관성에 점수를 할당하는 것을 포함한다. 일부 구현예에서, 상기 방법은 상기 제2 컴퓨팅 시스템에 의해, 하나 이상의 상이한 매칭 규칙을 사용하여, 하나 이상의 연관성의 제2 세트를 생성하기 위해 상기 은닉 식별자들을 분석하는 단계, 및 상기 제2 컴퓨팅 시스템에 의해, 하나 이상의 상이한 매칭 규칙을 사용하여 생성된 하나 이상의 연관성과 상기 하나 이상의 매칭 규칙을 사용하여 생성된 하나 이상의 연관성 사이에서 선택하는 단계를 더 포함한다. 일부 구현예에서, 상기 방법은 상기 하나 이상의 연관성의 품질을 결정하는 단계, 및 상기 결정된 품질에 기초하여 상기 하나 이상의 매칭 규칙을 반복적으로 조정하는 단계를 더 포함한다. 일부 구현예에서, 상기 방법은 상기 제2 컴퓨팅 시스템에 의해, 상기 하나 이상의 매칭 규칙을 사용하여 하나 이상의 테스트 연관성을 생성하기 위해 알려진 연관성을 갖는 식별자들을 분석하는 단계, 상기 알려진 연관성을 상기 하나 이상의 테스트 연관성과 비교하는 단계, 및 상기 비교에 기초하여 상기 하나 이상의 매칭 규칙을 업데이트하는 단계를 포함한다. 일부 구현예에서, 상기 제1 컴퓨팅 시스템 또는 상기 제2 컴퓨팅 시스템 중 적어도 하나는 분산 컴퓨팅 시스템이다.
본 개시 내용의 다른 구현예는 범용 식별자를 구성하기 위한 시스템에 관한 것이며, 상기 시스템은 제1 컴퓨팅 시스템을 포함하며, 상기 제1 컴퓨팅 시스템은 암호화된 식별자들을 수신하고 그리고 은닉 암호화된 식별자들을 생성하기 위해 상기 암호화된 식별자에 대한 은닉 동작을 수행하도록 구성되고, 상기 은닉 동작은 상기 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템으로부터의 상기 암호화된 식별자들을 은닉하지만 상기 은닉 암호화된 식별자들 간의 매칭을 가능하게 하며, 및 제2 컴퓨팅 시스템을 포함하며, 상기 제2 컴퓨팅 시스템은 은닉 식별자들을 생성하기 위해 상기 은닉 암호화된 식별자들을 복호화하고, 하나 이상의 매칭 규칙을 사용하여, 상기 은닉 식별자들 사이에 하나 이상의 연관성을 생성하기 위해 상기 은닉 식별자들을 분석하고, 그리고 상기 하나 이상의 연관성에 기초하여 하나 이상의 범용 식별자들을 생성하도록 구성된다.
일부 구현예에서, 상기 은닉 동작을 수행하는 단계는 상기 은닉된 암호화된 식별자들을 생성하기 위해 상기 암호화된 식별자들을 제2 암호화로 결정론적으로 암호화하는 단계를 포함한다. 일부 구현예에서, 은닉 동작은 암호화된 식별자들을 셔플링하는 것을 포함한다. 일부 구현예에서, 은닉 식별자들을 분석하는 단계는 상기 하나 이상의 연관성을 생성하기 위해 상기 은닉 식별자들 중 하나 이상을 매칭하는 것, 상기 하나 이상의 매칭 규칙을 사용하여 상기 하나 이상의 연관성을 점수화하는 것, 및 상기 점수에 기초하여 상기 하나 이상의 연관성을 프루닝하는 것을 포함한다. 일부 구현예에서, 상기 하나 이상의 연관성을 점수화하는 것은 상기 하나 이상의 연관성과 연관된 상기 하나 이상의 은닉 식별자들의 소스를 결정하는 것, 상기 소스를 사용하여 하나 이상의 매칭 규칙의 조회를 수행하는 것, 및 상기 조회에 기초하여 상기 하나 이상의 연관성에 점수를 할당하는 것을 포함한다. 일부 구현예에서, 상기 제2 컴퓨팅 시스템은 하나 이상의 상이한 매칭 규칙을 사용하여, 하나 이상의 연관성의 제2 세트를 생성하기 위해 상기 은닉 식별자들을 분석하고; 그리고 하나 이상의 상이한 매칭 규칙을 사용하여 생성된 하나 이상의 연관성과 상기 하나 이상의 매칭 규칙을 사용하여 생성된 하나 이상의 연관성 사이에서 선택하도록 더 구성된다. 일부 구현예에서, 상기 제2 컴퓨팅 시스템은 상기 하나 이상의 연관성의 품질을 결정하고 그리고 상기 결정된 품질에 기초하여 상기 하나 이상의 매칭 규칙을 반복적으로 조정하도록 더 구성된다. 일부 구현예에서, 상기 제2 컴퓨팅 시스템은 상기 하나 이상의 매칭 규칙을 사용하여 하나 이상의 테스트 연관성을 생성하기 위해 알려진 연관성을 갖는 식별자들을 분석하고, 상기 알려진 연관성을 상기 하나 이상의 테스트 연관성과 비교하고, 그리고 상기 비교에 기초하여 상기 하나 이상의 매칭 규칙을 업데이트하도록 더 구성된다. 일부 구현예에서, 상기 제1 컴퓨팅 시스템 또는 상기 제2 컴퓨팅 시스템 중 적어도 하나는 분산 컴퓨팅 시스템이다.
본 개시의 다른 구현예는 명령어가 저장된 하나 이상의 비일시적 컴퓨터 판독가능 매체에 관한 것이며, 상기 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금 제1 컴퓨팅 시스템으로부터, 상기 제1 컴퓨팅 시스템 및 상기 하나 이상의 프로세서로부터 은닉되지만 상기 은닉 암호화된 식별자들 사이의 매칭을 가능하게 하는 암호화된 식별자들을 갖는 은닉 암호화된 식별자들을 수신하게 하고; 은닉 식별자들을 생성하기 위해 상기 은닉 암호화된 식별자들을 복호화하게 하고, 하나 이상의 매칭 규칙을 사용하여, 상기 은닉 식별자들 사이에 하나 이상의 연관성을 생성하기 위해 상기 은닉 식별자들을 분석하게 하고, 그리고 상기 하나 이상의 연관성에 기초하여 하나 이상의 범용 식별자들을 생성하게 한다.
일부 구현예에서, 은닉 식별자들을 분석하는 것은 상기 하나 이상의 연관성을 생성하기 위해 상기 은닉 식별자들 중 하나 이상을 매칭하는 것, 상기 하나 이상의 매칭 규칙을 사용하여 상기 하나 이상의 연관성을 점수화하는 것, 및 상기 점수에 기초하여 상기 하나 이상의 연관성을 프루닝하는 것을 포함한다.
적절한 경우 다양한 양태 및 구현예가 결합될 수 있다.
도 1a-1b는 예시적 구현예에 따라 네트워크를 통해 인터렉션하는 다양한 엔터티들을 도시하는 도면이다.
도 2는 예시적 구현예에 따라 도 1a-1b의 다양한 엔터티들 간의 데이터 전송을 도시하는 도면이다.
도 3a-3b는 예시적 구현예에 따라 보안 범용 식별자 구성 및 분석 방법을 도시하는 흐름도이다.
도 4는 예시적 구현예에 따라 도 3a-3b의 방법에 따른 데이터 세트 조작을 도시하는 도면이다.
도 5은 예시적 구현예에 따른 컴퓨팅 시스템을 도시하는 블록도이다.
아래에 설명되는 것은 보안 범용 측정 식별자 구성을 위한 방법, 디바이스 및 시스템과 연관된 다양한 개념 및 구현예에 대한 보다 상세한 설명이다. 상기 소개되고 아래에서 더 자세히 논의되는 다양한 개념들은 기술된 개념들이 임의의 특정한 구현 방식에 제한되지 않기 때문에, 임의의 다수의 방식들로 구현될 수 있다.
많은 영역에서, 콘텐츠에 기인한 인터렉션의 총 수를 결정하는 것이 필요하거나 바람직할 수 있다. 예를 들어, 다수의 콘텐츠 퍼블리셔는 사용자가 온라인 인터렉션을 수행하기 전에 보는 다수의 콘텐츠 아이템을 디스플레이할 수 있고, 디스플레이된 다수의 콘텐츠 아이템과 연관된 온라인 인터렉션의 수(예를 들어, 온라인 인터렉션을 수행하기 전에 특정 콘텐츠 아이템을 본 사용자에 의해 얼마나 많은 온라인 인터렉션이 생성되었는지)를 결정하는 것이 바람직할 수 있다. 다양한 구현예에서, 온라인 인터렉션은 다양한 식별자들과 연관될 수 있다. 예를 들어, 제1 식별자를 갖는 디바이스는 제1 퍼블리셔와의 제1 인터렉션을 완료할 수 있고, 디바이스는 제2 식별자를 사용하여 제2 퍼블리셔와의 제2 인터렉션을 완료할 수 있다. 다양한 구현예에서, 콘텐츠에 기인한 인터렉션의 총 수를 결정하는 것은 제2 식별자와 연관된 제2 인터렉션이 제1 식별자와 연관된 제1 인터렉션과 동일한 디바이스에 의해 수행되었음을 결정하는 것을 포함한다.
본 발명의 시스템 및 방법은 일반적으로 별개의 식별자들 사이의 연관성을 결정하는 것과 관련되며, 이에 의해 콘텐츠에 기인한 인터렉션의 총 수를 결정하는 것을 용이하게 한다. 보다 구체적으로, 본 발명의 시스템 및 방법은 상이한 데이터 파티들(예를 들어, 데이터 제공자들 등)로부터의 식별자들을 안전하게 집계하고, 식별자들 사이의 연관성을 결정하고, 보다 안전한 방식으로 식별자들 간의 결정된 연관성을 반영하는 범용 측정 식별자를 생성하기 위한 고유한 암호화 및 컴퓨터 아키텍처 방법론에 관한 것이다. 일반적으로, 서로 다른 엔터티의 데이터를 집계하려면 컴퓨팅 시스템이 사용자 특정 데이터에 액세스할 수 있어야 한다. 예를 들어, 시스템은 매칭되는 사용자 식별자를 갖는 값을 합산하여 집계 카운트를 결정할 수 있다. 개인 정보가 노출되지 않기 위해, 데이터를 생성하고 보고할 때 사용자의 아이덴티티가 숨겨지고 적절하게 보호되어야 한다.
개인 정보 노출을 보호하는 방식으로 특정 분석 활동을 수행하는 것이 바람직하다. 따라서, 보다 안전한 방식으로 상이한 엔터티로부터의 식별자들을 집계하기 위한 고유한 암호화 및 컴퓨터 아키텍처 방법론이 필요하다. 본 개시의 양태는 개선된 암호화 방법 및 컴퓨터 아키텍처를 제공한다. 암호화 방법 및 아키텍처는 보안을 강화하고 사용자 프라이버시를 보존함으로써 안전한 방식으로 콘텐츠 퍼블리셔로부터의 데이터와의 온라인 인터렉션을 상관시키는데 사용될 수 있다.
개인 정보의 프라이버시 및 보안을 보장하기 위해, 본 개시 내용의 시스템 및 방법은 엔터티(예를 들어, 콘텐츠 제공자, 서드 파티 등)가 개인 정보를 수신하지 않도록 데이터를 프로세싱한다. 비제한적 예시 구현예는 다음과 같다: 제2 데이터 프로세싱 시스템은 비대칭 암호화를 위한 제1 공개 키를 생성할 수 있다. 제1 데이터 파티 컴퓨팅 시스템은 제1 공개 키를 사용하여 제1 식별자들을 암호화할 수 있고, 제2 데이터 파티 컴퓨팅 시스템은 제1 공개 키를 사용하여 제2 식별자들을 암호화할 수 있다. 제1 데이터 프로세싱 시스템은 다수의 데이터 파티 컴퓨팅 시스템(예: 퍼블리셔 등)으로부터 다수의 암호화된 식별자들을 수신할 수 있다. 제1 데이터 프로세싱 시스템은 타원 곡선 암호화를 위한 비밀 키를 생성할 수 있고, 이중 암호화된 제1 및 제2 식별자들을 생성하기 위해 암호화된 제1 및 제2 식별자들을 비밀 키로 암호화할 수 있다. 제1 데이터 프로세싱 시스템은 이중 암호화된 제1 및 제2 식별자들을 타원 곡선(EC) 암호화된 제1 및 제2 식별자들을 생성하기 위해 이중 암호화된 제1 및 제2 식별자들을 복호화할 수 있는 제2 데이터 프로세싱 시스템으로 보낼 수 있다. 제2 데이터 프로세싱 시스템은 EC 암호화된 제1 식별자와 제2 식별자들을 분석하여 EC 암호화된 제1 식별자와 제2 식별자 사이의 연관성을 식별할 수 있다(예를 들어, 제1 식별자는 제2 식별자와 동일한 디바이스에 대응하는 등). 제2 데이터 프로세싱 시스템은 범용 측정 식별자를 생성하고, 범용 측정 식별자를 EC 암호화된 제1 및 제2 식별자들 중 하나 이상과 연관시킬 수 있다. 제2 데이터 프로세싱 시스템은 제3 데이터 프로세싱 시스템으로부터 수신한 공개 키로 범용 측정 식별자를 암호화할 수 있고, 암호화된 범용 측정 식별자와 EC 암호화된 제1 및 제2 식별자를 제1 데이터 프로세싱 시스템에 전송할 수 있다. 제1 데이터 프로세싱 시스템은 EC 암호화된 제1 및 제2 식별자들을 복호화하고 암호화되지 않은 제1 식별자 및 암호화된 범용 측정 식별자를 제1 데이터 파티 컴퓨팅 시스템에 전송할 수 있으며, 암호화되지 않은 제2 식별자 및 암호화된 범용 측정 식별자를 제2 데이터 파티 컴퓨팅 시스템에 전송할 수 있다. 제1 및 제2 데이터 파티 컴퓨팅 시스템은 암호화된 범용 측정 식별자들을 암호화된 범용 측정 식별자들을 복호화하고, 암호화되지 않은 범용 측정 식별자를 사용하여 집계 통계를 결정할 수 있는 제3 데이터 프로세싱 시스템에 전송할 수 있다. 따라서, 범용 측정 시스템(예: 제1, 제2 및 제3 데이터 프로세싱 시스템 등)은 개인 정보를 노출하지 않고 식별자들의 집계를 용이하게 할 수 있다.
본 개시의 일부 구현예에서, 사용자가 본 명세서에 기술된 시스템들, 프로그램들 또는 구성들이 사용자 정보의 수집(예를 들어, 사용자의 소셜 네트워크에 관한 정보, 사회적 액션들 또는 활동들, 직업, 사용자의 선호들 또는 사용자의 현재 위치)을 하는 경우 및 콘텐츠 또는 서버로부터 통신에 사용자가 전송되는 경우에 관한 선택을 하게 하는 제어들이 사용자에게 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 취급되어, 개인적으로 식별가능한 정보는 제거된다. 예를 들면, 사용자의 신원은 사용자에 관한 개인 정보 또는 일정 개인 정보가 결정될 수 없도록 취급되거나 또는 사용자의 지리적 위치는 위치 정보가 획득된 곳에서 일반화되어(시, 우편번호 또는 주 수준으로), 사용자의 특정한 위치가 결정될 수 없도록 한다. 따라서, 사용자는 사용자에 관한 어떤 정보가 수집될지, 정보가 어떻게 사용될지, 그리고 어떤 정보가 사용자에게 제공될지에 관한 제어를 가질 수 있다.
이제 도 1a-1b를 참조하면, 예시적 구현예에 따라 범용 측정 식별자를 안전하게 생성하기 위한 시스템(100)이 도시되어 있다. 시스템(100)은 범용 측정 시스템(102) 및 데이터 파티 컴퓨팅 시스템(10)을 포함한다. 다양한 구현예에서, 범용 측정 시스템(202)은 제1 데이터 프로세싱 시스템(200), 제2 데이터 프로세싱 시스템(300) 및 제3 데이터 프로세싱 시스템(400)을 포함할 수 있다. 다양한 구현예에서, 시스템(100)의 컴포넌트는 네트워크(60)를 통해 통신한다. 네트워크(60)는 인터넷, 로컬, 와이드, 메트로 또는 다른 영역 네트워크, 인트라넷, 위성 네트워크, 음성 또는 데이터 모바일폰 통신 네트워크와 같은 다른 컴퓨터 네트워크들 및 이들의 조합 또는 전자 통신 네트워크의 임의의 기타 유형과 같은 컴퓨터 네트워크를 포함할 수 있다. 네트워크(60)는 디스플레이 네트워크(예를 들어, 콘텐츠 배치 또는 검색 엔진 결과 시스템과 연관되거나 콘텐츠 아이템 배치 캠페인의 일부로서 서드 파티 콘텐츠 아이템에 포함시키기에 적합한 인터넷 상의 사용가능한 정보 리소스들의 서브셋)를 포함하거나 구성할 수 있다. 다양한 구현예에서, 네트워크(60)는 시스템(100)의 컴포넌트 간의 보안 통신을 지원한다. 비제한적인 예로서, 네트워크(60)는 전송 레이어 보안(TLS), 보안 소켓 레이어(SSL), 하이퍼 텍스트 전송 프로토콜 보안(HTTPS) 및/또는 임의의 다른 보안 통신 프로토콜을 구현할 수 있다.
데이터 파티 컴퓨팅 시스템(10)은 식별자들과 같은 데이터를 호스팅할 수 있다. 다양한 구현예에서, 데이터 파티 컴퓨팅 시스템(10)은 퍼블리셔(예를 들어, 온라인 퍼블리셔 등)와 연관된다. 다양한 구현예에서, 데이터는 사용자와 콘텐츠의 인터렉션과 연관된다. 예를 들어, 데이터는 디바이스 식별자 및 온라인 콘텐츠와의 인터렉션과 연관된 타임스탬프와 같은 디바이스 식별자와 연관된 인터렉션을 기술하는 데이터를 포함할 수 있다. 일부 구현예에서, 데이터는 분류를 포함한다. 예를 들어, 데이터는 각각 식별자 유형(예: 이메일 주소, 전화번호, 디바이스 식별자, 계정 식별자 등)과 연관된 다수의 식별자들을 포함할 수 있다. 다양한 구현예에서, 시스템(100)은 다수의 데이터 파티 컴퓨팅 시스템(10)을 포함할 수 있다. 예를 들어, 시스템(100)은 10개의 데이터 파티 컴퓨팅 시스템(10)으로부터 식별자를 수신하고, 10개의 데이터 파티 컴퓨팅 시스템(10)에 의해 제공되는 식별자들 간의 연관성을 결정할 수 있다.
데이터 파티 프로세싱 시스템(10)은 데이터베이스(12) 및 프로세싱 회로(14)를 포함할 수 있다. 데이터베이스(12)는 식별자와 같은 데이터를 저장할 수 있다. 예를 들어, 데이터베이스(12)는 웹사이트에 등록된 계정과 연관된 계정 식별자들을 저장할 수 있다. 다른 예로서, 데이터베이스(12)는 계정 식별자 및 계정 식별자와 연관된 이메일 주소 및/또는 전화번호를 저장할 수 있다. 일부 구현예에서, 상이한 데이터 파티 컴퓨팅 시스템(10)에 의해 저장된 식별자들 사이에 중복이 있다. 예를 들어, 제1 데이터 파티 컴퓨팅 시스템(10)은 제2 데이터 파티 컴퓨팅 시스템(10)에 의해 저장된 다수의 식별자들과 적어도 부분적으로 중복되는 다수의 식별자들을 저장할 수 있다(예를 들어, 동일한 식별자 등을 포함함). 일부 구현예에서, 데이터베이스(12)는 인터렉션 데이터를 저장한다. 인터렉션 데이터는 집계 인터렉션 통계를 생성하기 위해 나중에 사용될 수 있다. 데이터베이스(12)는 하나 이상의 저장 매체를 포함할 수 있다. 저장 매체는 자기 저장소, 광학 저장소, 플래시 저장소 및/또는 RAM을 포함할 수 있지만 이에 한정되지 않는다. 데이터 파티 컴퓨팅 시스템(10)은 데이터베이스 기능(즉, 데이터베이스(12)에 저장된 데이터 관리)을 수행하기 위해 다양한 API를 구현하거나 용이하게 할 수 있다. API는 SQL, ODBC, JDBC 및/또는 기타 데이터 저장 및 조작 API 일 수 있지만 이에 한정되지 않는다.
프로세싱 회로(14)는 프로세서(16) 및 메모리(18)를 포함한다. 메모리(18)는 프로세서(16)에 의해 실행될 때 프로세싱 회로(14)로 하여금 본 명세서에 설명된 다양한 동작들을 수행하게 하는 명령어를 저장할 수 있다. 본 명세서에 기술된 동작은 소프트웨어, 하드웨어 또는 이들의 조합을 사용하여 구현될 수 있다. 프로세서(16)는 마이크로 프로세서, ASIC, FPGA 등 또는 이들의 조합을 포함할 수 있다. 많은 구현예에서, 프로세서(16)는 멀티코어 프로세서 또는 프로세서의 어레이일 수 있다. 프로세서(16)는 보안 환경을 구현하거나 지원할 수 있다. 예를 들어, 프로세서(16)는 메모리(18)에서 개인 영역(예를 들어, 엔클레이브)을 정의하기 위해 SGX(software guard extensions)를 구현할 수 있다. 메모리(18)는 전자, 광학, 자기 또는 프로세서(16)에 프로그램 명령어를 제공할 수 있는 임의의 기타 저장 디바이스를 포함할 수 있지만, 이에 한정되지 않는다. 메모리(18)는 플로피 디스크, CD-ROM, DVD, 자기 디스크, 메모리 칩, ROM, RAM, EEPROM, EPROM, 플래시 메모리, 광학 매체, 또는 프로세서(16)가 명령어를 판독할 수 있는 임의의 기타 적절한 메모리를 포함할 수 있다. 명령어는 C, C++, C#, Java, JavaScript, Perl, HTML, XML, Python 및 Visual Basic과 같은 임의의 적절한 컴퓨터 프로그래밍 언어의 코드를 포함할 수 있다.
메모리(18)는 제1 암호화 회로(20)를 포함할 수 있다. 예시된 구현예에서, 제1 암호화 회로(20)는 메모리(18) 내에 저장된 컴퓨터 또는 기계 판독가능 명령어를 사용하여 구현될 수 있다. 다른 구현예에서, 제1 암호화 회로(20)는 별개의 하드웨어 회로일 수 있거나 하드웨어와 소프트웨어의 조합을 사용하여 구현될 수 있다. 제1 암호화 회로(20)는 암호화된 데이터를 생성하기 위해 입력 데이터에 대해 하나 이상의 암호화 기능을 구현할 수 있다. 다양한 구현예에서, 제1 암호화 회로(20)는 비대칭 암호화 기능을 구현한다. 다양한 구현예에서, 제1 암호화 회로(20)는 ElGamal(EG) 암호화 프로토콜을 구현한다. 예를 들어, 제1 암호화 회로(20)는 제2 데이터 프로세싱 시스템(300)으로부터 수신된 EG 공개 키로 식별자들을 암호화할 수 있다. 다양한 구현예에서, 제1 암호화 회로(20)는 가환 암호화를 구현한다. 예를 들어, 제1 암호화 회로(20)는 이중 암호화된 값(예를 들어, 2개의 상이한 암호화 방식으로 암호화된 단일 값)을 용이하게 하는 EG 암호화를 구현할 수 있다. 다양한 구현예에서, 제1 암호화 회로는 랜덤 암호화를 용이하게 한다. 예를 들어, 제1 암호화 회로(20)는 제1 암호화된 결과를 생성하기 위해 제1 키를 사용하여 제1 값을 암호화할 수 있고, 제1 암호화된 결과와 상이한 제2 암호화된 결과를 생성하기 위해 제1 키를 사용하여 다시 제1 값을 암호화할 수 있다(예를 들어, 다른 암호문을 생성한다). 다양한 구현예에서, 제1 암호화 회로(20)는 재랜덤화를 용이하게 한다.
이제 도 1a를 구체적으로 참조하면, 제1 데이터 프로세싱 시스템(200)은 외부 데이터(예를 들어, 데이터 파티 데이터 등)의 프로세싱을 용이하게 할 수 있다. 다양한 구현예에서, 제1 데이터 프로세싱 시스템(200)은 데이터를 수신하고 데이터를 프로세싱하여 프로세싱된 데이터(예를 들어, 개인 정보가 없거나 적은 데이터 등)를 생성한다. 일부 구현예에서, 제1 데이터 프로세싱 시스템(200)은 별도의 개인 데이터를 생성한다. 일부 구현예에서, 제1 데이터 프로세싱 시스템(200)은 암호화 키를 생성한다. 예를 들어, 제1 데이터 프로세싱 시스템(200)은 타원 곡선(EC) 개인 키를 생성할 수 있다. 추가로 또는 대안적으로, 제1 데이터 프로세싱 시스템(200)은 하나 이상의 다른 시스템(예를 들어, 복제 제1 데이터 프로세싱 시스템(200) 등)과 공동으로 EG 공개 키를 생성할 수 있다. 제1 데이터 프로세싱 시스템(200)은 서버, 분산 프로세싱 클러스터, 클라우드 프로세싱 시스템 또는 임의의 다른 컴퓨팅 디바이스일 수 있다. 제1 데이터 프로세싱 시스템(200)은 적어도 하나의 컴퓨터 프로그램 또는 적어도 하나의 스크립트를 포함하거나 실행할 수 있다. 일부 구현예에서, 제1 데이터 프로세싱 시스템(200)은 하나 이상의 스크립트들을 실행하도록 구성된 하나 이상의 프로세서들과 같은 소프트웨어 및 하드웨어의 조합을 포함한다.
제1 데이터 프로세싱 시스템(200)은 프로세싱 회로(210)를 포함하는 것으로 도시된다. 프로세싱 회로(210)는 프로세서(220) 및 메모리(230)를 포함한다. 메모리(230)는 프로세서(220)에 의해 실행될 때 프로세싱 회로(210)로 하여금 본 명세서에 설명된 다양한 동작들을 수행하게 하는 명령어를 저장할 수 있다. 프로세싱 회로(210), 프로세서(220) 및/또는 메모리(230)는 전술한 프로세싱 회로(14), 프로세서(16) 및/또는 메모리(18)와 유사할 수 있다. 메모리(230)는 암호화 회로(232), 랜덤화 회로(234) 및 복호화 회로(236)를 포함할 수 있다.
암호화 회로(232)는 암호화된 데이터를 생성하기 위해 입력 데이터에 대해 하나 이상의 암호화 기능을 구현할 수 있다. 일부 구현예에서, 암호화 회로(232)는 대칭 암호화 기능(예를 들어, EC 등)을 구현한다. 일부 구현예에서, 암호화 회로(232)는 타원 곡선을 통해 EC 암호화를 구현한다. 예를 들어, 암호화 회로(232)는 다수의 다른 시스템(예를 들어, 제1 데이터 프로세싱 시스템(200)의 복제 등)을 사용하여 공동으로 생성된 타원 곡선에 대해 EC(Elliptic Curve) 암호화를 구현할 수 있다. 부가적으로 또는 대안적으로, 암호화 회로(232)는 DDH(Decisional Diffie-Hellman) 문제가 계산적으로 다루기 힘든 것으로 추정되는 임의의 암호 시스템을 구현할 수 있어서, 2차 나머지의 곱셈 그룹은 안전한 소수를 모듈로 한다. 다양한 구현예에서, 암호화 회로(232)는 하나 이상의 암호화 키를 생성한다. 예를 들어, 암호화 회로(232)는 비밀 키(예를 들어, 개인 키라고도 함)를 생성할 수 있다. 다양한 구현예에서, 암호화 회로(232)는 제1 암호화 회로(20)와 관련하여 설명된 바와 같이 다양한 암호화 기능(예를 들어, 교환성, 재랜덤화 등)을 용이하게 한다.
다양한 구현예에서, 암호화 회로(232)는 EC 비밀 키로 식별자들을 암호화한다. 다양한 구현예에서, 암호화 회로(232)는 결정적 암호화를 구현한다. 예를 들어, 암호화 회로(232)는 제1 암호화 결과를 생성하기 위해 제1 키로 제1 값을 암호화할 수 있고, 제1 암호화 결과와 동일한 제2 암호화 결과를 생성하기 위해 제1 키로 다시 제1 값을 암호화할 수 있다. 다양한 구현예에서, 암호화 회로(232)는 동등성을 비교(예를 들어, 동일한 키로 암호화된 2개의 값 등을 비교)할 수 있는 암호화된 데이터의 생성을 용이하게 한다. 다양한 구현예에서, 암호화 회로(232)는 공동 암호화를 지원한다. 예를 들어, 다수의 암호화 회로(232)는 데이터 아이템을 암호화하기 위해 함께 작동할 수 있다(예를 들어, 암호화의 일부를 각각 추가하는 등). 다른 예로서, 다수의 암호화 회로(232)(예를 들어, 각각은 상이한 제1 데이터 프로세싱 시스템(200) 등과 연관됨)이 공동-키 EG 암호화(예를 들어, 임계 암호화 등)를 수행하기 위해 함께 작동할 수 있다. 암호화 체계는 2019년 12월 4일자로 출원된 PCT 출원 번호 US2019/064383을 참조하여 자세히 논의되며, 그 전체 내용은 참조로서 본 명세서에 통합된다.
랜덤화 회로(234)는 데이터를 수신하고 다양한 랜덤화 기능을 수행하여 랜덤화된 데이터를 생성할 수 있다. 비제한적인 예로서, 랜덤화 회로(234)는 묵시적/간접적 식별자(예를 들어, 도착 시간, 순서, 발신 IP 주소 등)의 제거, 배치 동작 수행, 노이즈 도입 및/또는 임의의 다른 익명화 동작 수행을 용이하게 할 수 있다. 다양한 구현예에서, 랜덤화 회로(234)는 수신된 데이터를 셔플(예를 들어, 재배열, 순서 변경 등)하여 셔플된 데이터를 생성한다. 일부 구현예에서, 랜덤화 회로(234)는 해시된 데이터를 생성하기 위해 입력 데이터에 대해 하나 이상의 해싱 기능을 구현한다. 예를 들어, 랜덤화 회로(234)는 SHA-2, Scrypt, Balloon 및/또는 Argon2 해싱 기능을 구현할 수 있다. 일부 구현예에서,, 랜덤화 회로(234)는 후속 암호화 라운드를 적용함으로써 암호문을 재랜덤화하는 것을 용이하게 한다. 예를 들어, 랜덤화 회로(234)는 EG 암호화된 값을 처음 암호화하는데 사용된 것과 동일한 키로 EG 암호화된 값을 두 번째로 암호화함으로써 EG 암호화된 값을 재랜덤화할 수 있다.
복호화 회로(236)는 암호화된 데이터를 수신하여, 그것을 암호화되지 않은 데이터를 생성하기 위해 데이터를 복호화할 수 있다. 일부 구현예에서, 복호화 회로(236)는 제2 데이터 프로세싱 시스템(300)으로부터 암호화된 데이터를 수신한다. 예를 들어, 복호화 회로(236)는 제2 데이터 프로세싱 시스템(300)으로부터 암호화된 식별자들을 수신할 수 있다. 복호화 회로(236)는 대칭적으로 암호화된 데이터를 복호화할 수 있다. 부가적으로 또는 대안적으로, 복호화 회로(236)는 대칭 및/또는 임계 암호화 데이터를 복호화할 수 있다. 다양한 구현예에서, 복호화 회로(236)는 하나 이상의 비밀(예를 들어, 비밀 키 등)을 사용하여 데이터를 복호화한다. 예를 들어, 복호화 회로(236)는 암호화 회로(232)에 의해 데이터를 암호화하는데 사용되는 비밀 키를 사용하여 암호화된 식별자를 복호화할 수 있다. 다양한 구현예에서, 복호화 회로(236)는 EC 암호화를 복호화한다. 일부 구현예에서, 복호화 회로(236)는 임계 복호화 방식을 통하는 것과 같이 공동으로 암호화를 복호화한다.
제2 데이터 프로세싱 시스템(300)은 상이한 엔티티들로부터의 식별자들을 안전하게 분석하는 것을 용이하게 할 수 있다. 예를 들어, 제2 데이터 프로세싱 시스템(300)은 상이한 엔티티들로부터 다수의 식별자들을 수신할 수 있고, 다수의 식별자들 사이의 임의의 연관성을 결정하기 위해 다수의 식별자들을 비교할 수 있으며, 결정된 연관성에 기초하여 하나 이상의 범용 측정 식별자를 생성할 수 있다. 다양한 구현예에서, 제2 데이터 프로세싱 시스템(300)은 암호화된 식별자들을 수신하고, 수신된 데이터를 프로세싱하여 결과(예를 들어, 연결 그래프, 범용 측정 식별자 등)를 생성한다. 예를 들어, 제2 데이터 프로세싱 시스템(300)은 디바이스 식별자들을 결합하고, 결합된 식별자들에 범용 측정 식별자들을 할당하기 위해 병합 동작을 수행할 수 있다. 제2 데이터 프로세싱 시스템(300)은 적어도 하나의 컴퓨터 프로그램 또는 적어도 하나의 스크립트를 포함하거나 실행할 수 있다. 일부 구현예에서, 제2 데이터 프로세싱 시스템(300)은 하나 이상의 스크립트들을 실행하도록 구성된 하나 이상의 프로세서들과 같은 소프트웨어 및 하드웨어의 조합을 포함한다.
제2 데이터 프로세싱 시스템(300)은 데이터베이스(310) 및 프로세싱 회로(320)를 포함하는 것으로 도시된다. 데이터베이스(310)는 식별자와 같은 데이터를 저장할 수 있다. 예를 들어, 데이터베이스(310)는 다양한 외부 소스(예를 들어, 데이터 파티 컴퓨팅 시스템(10) 등)로부터 수신된 식별자를 저장할 수 있다. 다양한 구현예에서, 데이터베이스(310)는 식별자들과 연관된 컨텍스트 데이터를 저장한다. 예를 들어, 데이터베이스(310)는 각 식별자의 소스(예를 들어, 식별자를 제공한 외부 소스 등)를 기술하는 데이터를 저장할 수 있다. 다른 예로서, 데이터베이스(310)는 각 식별자의 유형(예를 들어, 이메일 주소, 전화번호, 계좌번호 등)을 기술하는 데이터를 저장할 수 있다. 일부 구현예에서, 데이터베이스(310)는 도출된 데이터를 저장한다. 예를 들어, 데이터베이스(310)는 제2 데이터 프로세싱 시스템(300)에 의해 생성된 연결 그래프를 저장할 수 있다. 데이터베이스(310)는 하나 이상의 저장 매체를 포함할 수 있다. 저장 매체는 자기 저장소, 광학 저장소, 플래시 저장소 및/또는 RAM을 포함할 수 있지만 이에 한정되지 않는다. 제2 데이터 프로세싱 시스템(300)은 데이터베이스 기능(즉, 데이터베이스(310)에 저장된 데이터 관리)을 수행하기 위해 다양한 API를 구현하거나 용이하게 할 수 있다. API는 SQL, ODBC, JDBC 및/또는 기타 데이터 저장 및 조작 API 일 수 있지만 이에 한정되지 않는다.
프로세싱 회로(320)는 프로세서(330) 및 메모리(340)를 포함하도록 도시된다. 메모리(340)는 프로세서(330)에 의해 실행될 때 프로세싱 회로(310)로 하여금 본 명세서에 설명된 다양한 동작들을 수행하게 하는 명령어를 저장할 수 있다. 메모리(340)는 제1 암호화 회로(342), 제2 암호화 회로(344), 복호화 회로(346) 및 병합 회로(348)를 포함할 수 있다.
제1 암호화 회로(342)는 암호화된 데이터를 생성하기 위해 입력 데이터에 대해 하나 이상의 암호화 기능을 구현할 수 있다. 일부 구현예에서, 제1 암호화 회로(342)는 비대칭 암호화 기능(예를 들어, EG 등)을 구현한다. 일부 구현예에서, 제1 암호화 회로(342)는 타원 곡선을 통해 EG 암호화를 구현한다. 다양한 구현예에서, 제1 암호화 회로(342)는 제1 암호화 회로(20)와 유사하다. 일부 구현예에서, 제1 암호화 회로(342)는 암호화 키를 생성한다. 예를 들어, 제1 암호화 회로(342)는 공개 키(예를 들어, EG 공개 키) 및 비밀 키(예를 들어, EG 비밀 키)를 생성할 수 있다. 일부 구현예에서, 제1 암호화 회로(342)는 다른 시스템과 공동으로 EG 공개 키를 생성한다. 일부 구현예에서, 제1 암호화 회로(342)는 암호화 키(또는 그 일부)를 시스템(100)의 다른 컴포넌트(예를 들어, 데이터 파티 컴퓨팅 시스템(10) 등)와 공유한다. 다양한 구현예에서, 제1 암호화 회로(342)는 랜덤화 회로(234)와 관련하여 설명된 바와 같이 다양한 암호화 기능(예를 들어, 교환성, 재랜덤화 등)을 용이하게 한다.
제2 암호화 회로(344)는 암호화된 데이터를 생성하기 위해 입력 데이터에 대해 하나 이상의 암호화 기능을 구현할 수 있다. 다양한 구현예에서, 제2 암호화 회로(344)는 비대칭 암호화 기능을 구현한다. 예를 들어, 제2 암호화 회로(344)는 RSA(Rivest-Shamir-Adleman) 암호 시스템을 구현할 수 있다. 추가 예로서, 제2 암호화 회로(344)는 제3 데이터 프로세싱 시스템(400)으로부터 수신된 공개 키를 사용하여 암호화를 수행할 수 있다. 일부 구현예에서, 제2 암호화 회로(344)는 제3 데이터 프로세싱 시스템(400)으로부터 수신된 EG 공개 키를 사용하여 EG 암호화를 구현한다.
복호화 회로(346)는 암호화된 데이터를 수신하여, 그것을 암호화되지 않은 데이터를 생성하기 위해 데이터를 복호화할 수 있다. 다양한 구현예에서, 복호화 회로(346)는 제1 데이터 프로세싱 시스템(200)으로부터 암호화된 데이터를 수신한다. 예를 들어, 복호화 회로(346)는 제1 데이터 프로세싱 시스템(200)으로부터 암호화된 식별자들을 수신할 수 있다. 복호화 회로(346)는 비대칭적으로 암호화된 데이터를 복호화할 수 있다. 부가적으로 또는 대안적으로, 복호화 회로(346)는 대칭 및/또는 임계 암호화 데이터를 복호화할 수 있다. 다양한 구현예에서, 복호화 회로(346)는 EC 암호화된 식별자를 생성하기 위해 제1 암호화 회로(342)에 의해 생성된 EG 비밀 키를 사용하여 제1 데이터 프로세싱 시스템(200)으로부터 수신된 이중 암호화된 식별자를 복호화한다. 다양한 구현예에서, EC 암호화된 식별자들은 동일한지 비교될 수 있다.
병합 회로(348)는 익명(예를 들어, 암호화 등) 데이터를 수신하고, 출력 데이터(예를 들어, 하나 이상의 범용 측정 식별자, 연결 그래프 등)를 생성할 수 있다. 다양한 구현예에서, 병합 회로(348)는 수신된 데이터에 통계적 연산을 수행하여 데이터의 엘리먼트들 간의 연관성을 결정한다. 예를 들어, 병합 회로(348)는 서로 다른 외부 데이터 파티로부터 발생하는 다수의 식별자들이 동일한 디바이스와 연관되어 있는지 결정할 수 있다. 다양한 구현예에서, 병합 회로(348)는 식별자 결합을 용이하게 한다. 예를 들어, 병합 회로(348)는 제1 플랫폼으로부터의 제1 식별자를 제2 플랫폼으로부터의 제2 식별자와 결합할 수 있다. 다양한 구현예에서, 병합 회로(348)는 암호화된 식별자들의 결합을 용이하게 하여 사용자 프라이버시를 보호한다. 다양한 구현예에서, 병합 회로(348)는 하나 이상의 규칙(예를 들어, 매칭 규칙 등)을 구현한다. 예를 들어, 병합 회로(348)는 이종 식별자들 사이의 연관성을 결정하고 범용 측정 식별자를 생성하기 위해 하나 이상의 매칭 규칙을 구현할 수 있다. 다른 예로서, 병합 회로(348)는 이종 식별자들 사이의 연관성을 기술하는 연결 그래프를 생성하기 위해 하나 이상의 매칭 규칙을 구현할 수 있다(예를 들어, 제1 식별자는 제3 식별자를 통해 제2 식별자와 연관되는 등). 매칭 규칙은 도 4를 참조하여 보다 상세히 설명된다.
제3 데이터 프로세싱 시스템(400)은 데이터와 연관된 집계 통계의 결정을 용이하게 할 수 있다. 예를 들어, 제3 데이터 프로세싱 시스템(400)은 데이터 파티 컴퓨팅 시스템(10)으로부터 인터렉션 데이터 및 암호화된 범용 측정 식별자를 수신하고, 도달 범위, 빈도, 판매 상승, MTA(multi-touch attribution) 등을 포함하는 집계 통계를 생성할 수 있다. 다양한 구현예에서, 제3 데이터 프로세싱 시스템(400)은 범용 측정 식별자를 사용하여 집계 통계를 생성한다. 제3 데이터 프로세싱 시스템(400)은 적어도 하나의 컴퓨터 프로그램 또는 적어도 하나의 스크립트를 포함하거나 실행할 수 있다. 일부 구현예에서, 제3 데이터 프로세싱 시스템(400)은 하나 이상의 스크립트들을 실행하도록 구성된 하나 이상의 프로세서들과 같은 소프트웨어 및 하드웨어의 조합을 포함한다.
제3 데이터 프로세싱 시스템(400)은 프로세서(420) 및 메모리(430)를 갖는 프로세싱 회로(410)를 포함하는 것으로 도시된다. 메모리(430)는 프로세서(420)에 의해 실행될 때 프로세싱 회로(410)로 하여금 본 명세서에 설명된 다양한 동작들을 수행하게 하는 명령어를 저장할 수 있다. 메모리(430)는 제1 암호화 회로(432), 랜덤화 회로(434) 및 분석 회로(436)를 포함할 수 있다.
제1 암호화 회로(432)는 암호화된 데이터를 생성하기 위해 입력 데이터에 대해 하나 이상의 암호화 기능을 구현할 수 있다. 일부 구현예에서, 제1 암호화 회로(432)는 비대칭 암호화 기능(예를 들어, EG, AHE 등)을 구현한다. 일부 구현예에서, 제1 암호화 회로(432)는 암호화 키를 생성한다. 예를 들어, 제1 암호화 회로(432)는 공개 키(예를 들어, AHE 공개 키) 및 비밀 키(예를 들어, AHE 비밀 키)를 생성할 수 있다. 일부 구현예에서, 제1 암호화 회로(432)는 암호화 키를 시스템(100)의 다른 컴포넌트(예를 들어, 제2 데이터 프로세싱 시스템(300) 등)와 공유한다. 다양한 구현예에서, 제1 암호화 회로(432)는 다양한 암호화 기능(예를 들어, 가산성, 스칼라 곱셈 등)을 지원한다.
복호화 회로(434)는 암호화된 데이터를 수신하여, 그것을 암호화되지 않은 데이터를 생성하기 위해 데이터를 복호화할 수 있다. 일부 구현예에서, 복호화 회로(434)는 데이터 파티 컴퓨팅 시스템(10)으로부터 암호화된 데이터를 수신한다. 예를 들어, 복호화 회로(434)는 데이터 파티 컴퓨팅 시스템(10)으로부터 암호화된 범용 측정 식별자를 수신할 수 있다. 복호화 회로(434)는 비대칭적으로 암호화된 데이터를 복호화할 수 있다. 부가적으로 또는 대안적으로, 복호화 회로(434)는 대칭 및/또는 임계 암호화 데이터를 복호화할 수 있다. 다양한 구현예에서, 복호화 회로(434)는 공동 복호화를 지원한다. 예를 들어, 다수의 복호화 회로(434)는 암호화된 데이터 아이템을 복호화하기 위해 함께 작동할 수 있다(예를 들어, 암호화의 일부를 각각 제거하는 등).
분석 회로(436)는 데이터를 분석하고 출력 데이터를 생성할 수 있다. 다양한 구현예에서, 분석 회로(436)는 온라인 인터렉션과 연관된 집계 통계를 생성하기 위해 인터렉션 데이터를 분석한다. 예를 들어, 분석 회로(436)는 다수의 온라인 인터렉션을 기술하는 데이터를 수신할 수 있고, 다양한 온라인 인터렉션들 사이의 연관성을 결정하기 위해 하나 이상의 범용 측정 식별자를 사용할 수 있다. 일부 구현예에서, 분석 회로(436)는 인터렉션 데이터와 연관된 도달, 빈도, 판매 증가, 및/또는 MTA와 같은 집계 통계를 생성한다.
이제 도 2를 참조하면, 예시적 구현에 따라, 상이한 소스로부터의 식별자들을 안전하게 연관시키고 범용 측정 식별자들을 생성하기 위한 개선된 컴퓨터 아키텍처가 도시된다. 간단히 요약하면, 다양한 외부 데이터 제공자들(예를 들어, 데이터 파티 컴퓨팅 시스템(10) 등)은 식별자들을 제공할 수 있고, 제1 데이터 프로세싱 시스템(200), 제2 데이터 프로세싱 시스템(300) 및/또는 제3 데이터 프로세싱 시스템(400)은 식별자들 사이의 연관성을 공동으로 결정하고, 범용 측정 식별자들 및/또는 기타 데이터(예: 연결 그래프, 집계 통계 등)를 생성한다. 예를 들어, 제2 데이터 프로세싱 시스템(300)은 제1 식별자(예를 들어, 계정 번호 등)가 제2 및 제3 식별자(예를 들어, 각각 이메일 주소 및 전화 번호 등)와 연관되어 있다고 결정할 수 있다.
다양한 구현예에서, 콘텐츠 제공자 및/또는 콘텐츠 퍼블리셔와 같은 외부 데이터 제공자는 사용자가 콘텐츠와 인터렉션할 때를 알고 싶어할 수 있다. 예를 들어, 비디오를 본 사용자는 비디오를 클릭할 수 있고 비디오를 제공한 퍼블리셔는 얼마나 많은 사용자가 비디오를 클릭했는지 알고 싶어할 수 있다. 일부 구현예에서, 사용자는 콘텐츠 아이템과의 인터렉션의 결과로서 퍼블리셔에 의해 제공되는 다른 콘텐츠와 인터렉션할 수 있다. 예를 들어, 비디오를 본 사용자는 나중에 비디오에 등장하는 아이템을 구매하기 위해 퍼블리셔가 유지하는 웹사이트를 방문할 수 있다. 일부 구현예에서, 인터렉션은 온라인 전환이거나 이와 연관된다. 다양한 구현예에서 콘텐츠 아이템과의 인터렉션을 측정하려면 플랫폼 간에 이종 식별자들을 추적해야 한다. 예를 들어, 디바이스는 제1 식별자를 사용하여 제1 플랫폼에서 제1 콘텐츠 아이템과 인터렉션할 수 있고, 제2 식별자를 사용하여 제2 플랫폼에서 제2 콘텐츠 아이템과 인터렉션할 수 있으며, 콘텐츠 제공자는 제1 인터렉션을 제2 인터렉션과 연결하기를 원할 수 있어서, 제1 식별자가 제2 식별자와 동일한 디바이스와 연관된(예를 들어, 속하는 등의) 것으로 식별될 것을 요구한다. 따라서, 개인 정보를 노출하지 않고 안전하게 익명으로 식별자들을 집계하고 식별자들 간의 연관성을 결정할 수 있는 시스템이 필요하다. 본 명세서에 기술된 새로운 암호화 및 컴퓨터 아키텍처는 개인 정보를 노출하지 않고 범용 측정 식별자의 보안 및 익명 생성을 용이하게 한다.
단계(502)에서, 제2 데이터 프로세싱 시스템(300)은 EG 공개 키를 데이터 파티 프로세싱 시스템(10)에 전송할 수 있다. 다양한 구현예에서, 단계(502)는 EG 공개 키를 다수의 데이터 파티 컴퓨팅 시스템(10) 및/또는 다른 외부 시스템에 전송하는 것을 포함한다. 일부 구현예에서, EG 공개 키는 타원 곡선을 통해 EG 암호화를 구현하여 생성된 EG 공개 키이다.
단계(504)에서, 데이터 파티 컴퓨팅 시스템(10)은 암호화된 식별자들을 제1 데이터 프로세싱 시스템(200)에 전송할 수 있다. 다양한 구현예에서, 암호화된 식별자들은 제2 데이터 프로세싱 시스템(300)으로부터 수신된 EG 공개 키를 사용하여 (예를 들어, 데이터 파티 컴퓨팅 시스템(10) 등에 의해) 암호화된다. 다양한 구현예에서, 암호화된 식별자들은 컨텍스트 데이터를 포함한다. 예를 들어, 암호화된 식별자들은 암호화된 식별자들의 소스를 기술하는 데이터(예를 들어, 암호화된 식별자들이 발생된 데이터 파티 등) 및/또는 암호화된 식별자들의 유형(예를 들어, 이메일 주소, 전화번호 등)을 기술하는 데이터를 포함할 수 있다. 일부 구현예에서, 컨텍스트 데이터의 적어도 일부는 (예를 들어, EG 공개 키 등을 사용하여) 암호화된다. 일부 구현예에서, 컨텍스트 데이터는 암호화된 식별자들 간의 연관성을 기술한다. 예를 들어, 컨텍스트 데이터는 제1 암호화된 식별자(예: 디바이스 식별자)가 제2 암호화된 식별자(예: 계정 번호 등)와 연관되어 있다고 기술할 수 있다. 다양한 구현예에서, 제1 데이터 프로세싱 시스템(200)은 암호화된 식별자들을 암호화하여 이중 암호화된 식별자들을 생성한다. 다양한 구현예에서, 제1 데이터 프로세싱 시스템(200)은 EC 개인 키를 사용하여 암호화된 식별자들을 암호화한다. 다양한 구현예에서, 제1 데이터 프로세싱 시스템(200)은 수신된 데이터에 대해 랜덤화 동작을 수행한다. 예를 들어, 제1 데이터 프로세싱 시스템(200)은 암호화된 식별자들을 셔플링할 수 있다(예를 들어, 테이블 내의 행을 재배열하는 등).
단계(506)에서, 제1 데이터 프로세싱 시스템(200)은 이중 암호화된 식별자들을 제2 데이터 프로세싱 시스템(300)에 전송할 수 있다. 제2 데이터 프로세싱 시스템(300)은 이중 암호화된 식별자들을 복호화하여 EC 암호화된 식별자들을 생성할 수 있다. 다양한 구현예에서, 제2 데이터 프로세싱 시스템(300)은 단계 502 동안 데이터 파티 컴퓨팅 시스템(10)으로 전송된 EG 공개 키에 대응하는 EG 개인 키를 사용하여 이중 암호화된 식별자들을 복호화한다. 다양한 구현예에서, 제2 데이터 프로세싱 시스템(300)은 EC 암호화 식별자들 사이의 연관성을 결정하기 위해 EC 암호화된 식별자들에 대한 병합 프로세스를 수행한다. 예를 들어, 제2 데이터 프로세싱 시스템(300)은 두 개의 EC 암호화된 식별자를 비교하여 이들이 동일한 기본 식별자를 나타내는지 여부를 결정할 수 있다. 다양한 구현예에서, 제2 데이터 프로세싱 시스템(300)은 하나 이상의 매칭 규칙을 실행하여 EC 암호화된 식별자들 간의 연관성을 결정한다. 다양한 구현예에서, 결정된 연관성에 기초하여, 제2 데이터 프로세싱 시스템(300)은 하나 이상의 범용 측정 식별자를 생성한다. 예를 들어, 제2 데이터 프로세싱 시스템(300)은 제1 EC 암호화 식별자와 제2 EC 암호화 식별자를 연결하는 범용 측정 식별자를 생성할 수 있다. 다양한 구현예에서, 제2 데이터 프로세싱 시스템(300)은 다양한 식별자(예를 들어, EC 암호화된 식별자 및 생성된 범용 측정 식별자 등) 사이의 연관성을 설명하는 연결 그래프를 생성한다.
단계(508)에서, 제3 데이터 프로세싱 시스템(400)은 비대칭 암호화 공개 키를 제2 데이터 프로세싱 시스템(300)에 전송한다. 다양한 구현예에서, 비대칭 암호화 공개 키는 제3 데이터 프로세싱 시스템(400)에 의해 생성된 EG 공개 키이다. 추가적으로 또는 대안적으로, 키는 대칭 암호화 개인 키일 수 있다. 다양한 구현예에서, 제2 데이터 프로세싱 시스템(300)은 수신된 비대칭 암호화 공개 키를 사용하여 생성된 범용 측정 식별자를 암호화하여 암호화된 범용 측정 식별자를 생성한다.
단계(510)에서, 제2 데이터 프로세싱 시스템(300)은 데이터를 제1 데이터 프로세싱 시스템(200)에 전송한다. 예를 들어, 제2 데이터 프로세싱 시스템(300)은 EC 암호화된 식별자 및 암호화된 범용 측정 식별자를 제1 데이터 프로세싱 시스템(200)에 전송할 수 있다. 일부 구현예에서, 제2 데이터 프로세싱 시스템(300)은 컨텍스트 데이터와 같은 추가 데이터를 전송한다. 예를 들어, 제2 데이터 프로세싱 시스템(300)은 EC 암호화된 식별자 및 암호화된 범용 측정 식별자 사이의 연관성을 기술하는 연결 그래프를 전송할 수 있다. 다른 예로서, 제2 데이터 프로세싱 시스템(300)은 각각의 EC 암호화 식별자의 출처 및/또는 유형을 기술하는 컨텍스트 데이터를 전송할 수 있다. 다양한 구현예에서, 제1 데이터 프로세싱 시스템(200)은 암호화되지 않은 식별자를 생성하기 위해 EC 개인 키(예를 들어, 식별자를 암호화하는 데 사용되는 것과 동일한 EC 개인 키 등)를 사용하여 EC 암호화된 식별자를 복호화한다. 다양한 구현예에서, 제1 데이터 프로세싱 시스템(200)은 수신된 데이터에 대해 랜덤화 동작을 수행한다. 예를 들어, 제1 데이터 프로세싱 시스템(200)은 수신된 데이터를 재랜덤화(예를 들어, 동일한 키 등을 사용하여 재암호화) 및/또는 수신된 데이터를 셔플링(예를 들어, 테이블 내의 행을 재배열)할 수 있다. 추가 예로서, 제1 데이터 프로세싱 시스템(200)은 제3 데이터 프로세싱 시스템(400)으로부터 EG 공개 키를 수신하고, 수신된 EG 공개 키를 사용하여 암호화된 범용 측정 식별자를 재암호화할 수 있다.
단계(512)에서, 제1 데이터 프로세싱 시스템(200)은 데이터를 데이터 파티 컴퓨팅 시스템(10)에 전송한다. 다양한 구현예에서 데이터는 적어도 부분적으로 암호화된다. 예를 들어, 데이터는 암호화되지 않은 식별자와 암호화된 범용 측정 식별자를 포함할 수 있다. 일부 구현예에서, 데이터는 제2 데이터 프로세싱 시스템(300)에 의해 생성된 연결 그래프를 포함한다. 다양한 구현예에서, 제1 데이터 프로세싱 시스템(200)은 데이터를 다수의 외부 소스(예를 들어, 다수의 데이터 파티 컴퓨팅 시스템(10) 등)에 전송한다. 예를 들어, 제1 데이터 프로세싱 시스템(200)은 암호화된 범용 측정 식별자뿐만 아니라 식별자를 제공한 각각의 외부 소스에 암호화되지 않은 식별자를 전송할 수 있다.
단계(514)에서, 제1 데이터 프로세싱 시스템(10)은 데이터를 제3 데이터 프로세싱 시스템(400)에 전송한다. 다양한 구현예에서, 데이터는 암호화된 범용 측정 식별자들을 포함한다. 일부 구현예에서, 데이터는 인터렉션 데이터 및/또는 다른 식별자들을 포함한다. 추가적으로 또는 대안적으로, 데이터는 제2 데이터 프로세싱 시스템(300)에 의해 생성된 연결 그래프(또는 그 파생물)의 적어도 일부를 포함할 수 있다. 제3 데이터 프로세싱 시스템(400)은 암호화되지 않은 범용 측정 식별자들을 생성하기 위해 (예를 들어, 비대칭 암호화 공개 키에 대응하는 비대칭 암호화 개인 키 등을 사용하여) 암호화된 범용 측정 식별자들을 비암호화할 수 있다. 제3 데이터 프로세싱 시스템(400)은 출력 데이터를 생성하기 위해 데이터를 분석할 수 있다. 예를 들어, 제3 데이터 프로세싱 시스템(400)은 온라인 인터렉션과 연관된 집계 통계를 결정하기 위해 암호화되지 않은 범용 측정 식별자를 사용하여 인터렉션 데이터를 분석할 수 있다. 일부 구현예에서 출력 데이터는 도달, 빈도, 매출 상승, MTA 및/또는 기타 메트릭을 기술하는 데이터를 포함한다.
단계(516)에서, 제3 데이터 프로세싱 시스템(400)은 데이터를 데이터 파티 컴퓨팅 시스템(10)에 전송한다. 다양한 구현예에서, 데이터는 온라인 인터렉션과 연관된 집계 통계를 포함한다.
이제 도 3a-3b를 참조하면, 예시적 구현예에 따라 범용 측정 식별자들을 안전하게 생성하기 위한 방법(600)이 도시되어 있다. 다양한 구현예에서, 시스템(100)은 방법(600)을 수행한다. 단계(602)에서, 시스템(100)의 엘리먼트는 키 생성 및 공유 프로세스를 수행한다. 예를 들어, 제2 데이터 프로세싱 시스템(300)은 EG 공개 키 및 EG 개인 키를 생성하고, EG 공개 키를 하나 이상의 외부 시스템(예를 들어, 데이터 파티 컴퓨팅 시스템(10) 등)과 공유할 수 있으며, 제1 데이터 프로세싱 시스템(200)은 EC 개인 키를 생성하고, 제3 데이터 프로세싱 시스템(400)은 EG 공개 키 및 EG 개인 키를 생성하고 EG 공개 키를 제2 데이터 프로세싱 시스템(300)과 공유할 수 있다. 다양한 구현예에서, 키 생성 프로세스(또는 그 엘리먼트)는 지속적으로 발생한다. 예를 들어, 시스템(100)은 프로세싱된 각각의 새로운 데이터 세트에 대해 키 생성 프로세스를 수행할 수 있다. 일부 구현예에서, 키 생성 프로세스는 주기적으로 발생한다. 예를 들어, 시스템(100)은 키 생성 프로세스를 시간, 일, 주 등마다 수행할 수 있다.
단계(604)에서, 데이터 파티 컴퓨팅 시스템(10)은 단독으로 암호화된 식별자를 생성하기 위해 제1 공개 키를 사용하여 식별자를 암호화한다. 다양한 구현예에서, 식별자는 디바이스 및/또는 연락처 정보와 연관된다. 예를 들어, 식별자는 계정 식별자, 디바이스 식별자, 이메일, 비밀번호 등을 포함할 수 있다. 일부 구현예에서, 단계(604)는 식별자들과 연관된 컨텍스트 데이터를 암호화하는 것을 포함한다. 예를 들어, 단계(604)는 식별자들의 소스를 기술하는 데이터를 암호화하는 것을 포함할 수 있다. 일부 구현예에서, 식별자는 랜덤화된 식별자를 포함한다. 예를 들어, 데이터 파티 컴퓨팅 시스템(10)은 기존 식별자와 연관된 랜덤 식별자를 생성하고, 생성된 랜덤 식별자와 기존 식별자의 매핑을 유지하고, 생성된 랜덤 식별자를 암호화할 수 있다. 다양한 구현예에서, 공개 키는 EG 암호화 방식(예를 들어, 결합 키 EG 암호화 변형 등)을 위해 생성된 공개 키이다.
단계(606)에서, 데이터 파티 컴퓨팅 시스템(10)은 한 번 암호화된 식별자들을 제1 데이터 프로세싱 시스템(200)에 전송할 수 있다. 단계(606)에서, 데이터 파티 컴퓨팅 시스템(10)은 한 번 암호화된 식별자들을 제1 데이터 프로세싱 시스템(200)에 전송할 수 있다. 예를 들어, 단계(606)은 암호화된 식별자의 유형을 기술하는 암호화되지 않은 데이터를 전송하는 것을 포함할 수 있다. 다양한 구현예에서, 단계(606)는 한 번 암호화된 식별자 사이의 연관성 및/또는 연결을 기술하는 데이터를 전송하는 것을 포함한다. 예를 들어, 데이터 파티 컴퓨팅 시스템(10)은 한 번 암호화된 제1 식별자와 한 번 암호화된 제2 식별자 사이의 연결을 기술하는 암호화된 연결 그래프를 전송할 수 있다. 일부 구현예에서, 단계(606)는 한 번 암호화된 식별자들을 다수의 제1 데이터 프로세싱 시스템(200)에 전송하는 것을 포함한다(예를 들어, 분산 아키텍처에서, 다수의 "블라인더" 파티를 사용하는 시스템에서 등).
단계(608)에서, 제1 데이터 프로세싱 시스템(200)은 한 번 암호화된 식별자들을 수신한다. 다양한 구현예에서, 단계(608)는 데이터 파티 컴퓨팅 시스템(10)으로부터 다른 데이터(예를 들어, 컨텍스트 데이터 등)를 수신하는 것을 포함한다. 단계(610)에서, 제1 데이터 프로세싱 시스템(200)은 이중으로 암호화된 식별자를 생성하기 위해 제2 비밀 키를 사용하여 한 번 암호화된 식별자들을 암호화한다. 다양한 구현예에서, 제2 비밀 키는 EC 암호화 방식(예를 들어, Pohlig-Hellman 암호 방식 등)을 위해 생성된 EC 비밀 키이다. 그러나 DDH(Decisional Diffie Hellman) 문제가 계산적으로 처리할 수 없는 것으로 추정되는 그룹을 사용하는 암호화 방식과 같은 다른 암호화 방식도 가능하다는 점을 이해해야 한다. 일부 구현예에서, 단계(610)는 수신 및/또는 암호화된 데이터를 셔플링하는 것을 포함한다. 예를 들어, 제1 데이터 프로세싱 시스템(200)은 단계(608)에서 데이터를 수신하고, 단계(610)에서 데이터를 암호화한 다음 암호화된 데이터를 셔플링할 수 있다.
단계(612)에서, 제1 데이터 프로세싱 시스템(200)은 이중으로 암호화된 식별자들을 제2 데이터 프로세싱 시스템(300)에 전송한다. 다양한 구현예에서, 단계(612)는 컨텍스트 데이터와 같은 다른 데이터를 전송하는 것을 포함한다. 단계(614)에서, 제2 데이터 프로세싱 시스템(300)은 이중으로 암호화된 식별자들을 수신한다. 다양한 구현예에서, 단계(614)는 컨텍스트 데이터와 같은 다른 데이터를 수신하는 것을 포함한다. 단계(616)에서, 제2 데이터 프로세싱 시스템(300)은 부분적으로 암호화된 식별자들을 생성하기 위해 제1 비밀 키를 사용하여 이중으로 암호화된 식별자들을 복호화한다. 다양한 구현예에서, 제1 비밀 키는 EG 암호화된 방식을 위해 생성된 비밀 키이다.
단계(618)에서, 제2 데이터 프로세싱 시스템(300)은 부분적으로 암호화된 식별자들을 사용하여 병합을 수행하여 병합된 데이터세트를 생성한다. 다양한 구현예에서, 병합은 부분적으로 암호화된 다양한 식별자들 간의 연관성을 결정하는 것을 포함한다. 예를 들어, 병합된 데이터세트는 부분적으로 암호화된 제1 식별자와 부분적으로 암호화된 제2 식별자 간의 연관성을 기술할 수 있다. 일부 구현예에서, 병합된 데이터세트는 연결 그래프를 포함한다. 다양한 구현예에서, 단계(618)는 하나 이상의 매칭 규칙을 사용하여 병합을 수행하는 것을 포함한다. 일부 구현예에서, 제2 데이터 프로세싱 시스템(300)은 하나 이상의 매칭 규칙을 사용하여 부분적으로 암호화된 다양한 식별자들 간의 연관성을 점수화한다. 예를 들어, 제2 데이터 프로세싱 시스템(300)은 부분적으로 암호화된 제1 식별자와 부분적으로 암호화된 제2 식별자 사이의 연관성의 강도를 기술하는 점수를 생성할 수 있다. 다양한 구현예에서, 제2 데이터 프로세싱 시스템(300)은 데이터 및/또는 데이터 소스의 품질에 기초하여 연관성을 점수화한다. 예를 들어, 제2 데이터 프로세싱 시스템(300)은 신뢰할 수 없는 소스로부터의 부분적으로 암호화된 제1 식별자와 신뢰할 수 있는 소스로부터의 부분적으로 암호화된 제2 식별자 사이의 연관성에 중간 점수를 할당할 수 있고, 신뢰할 수 있는 소스로부터의 부분적으로 제3 및 제4 식별자 사이의 연관성에 높은 점수를 할당할 수 있다. 다양한 구현예에서, 제2 데이터 프로세싱 시스템(300)은 부분적으로 암호화된 식별자들과 연관된 컨텍스트 데이터에 기초한 매칭 규칙을 사용하여 점수를 생성한다.
일부 구현예에서, 단계(618)는 상이한 매칭 규칙에 기초하여 생성된 연관성의 수 및/또는 품질을 비교하기 위해 반복적으로 수행된다. 예를 들어, 매칭 규칙의 제1 세트는 3개의 강한 연관성을 생성할 수 있고, 매칭 규칙의 제2 세트는 10개의 약한 연관성을 생성할 수 있으며, 제2 데이터 프로세싱 시스템(300)은 2개의 연관성 세트 중에서 선택할 수 있다. 일부 구현예에서, 시스템(100)은 매칭 규칙의 성능을 분석하기 위해 테스트 데이터를 주입한다. 예를 들어, 시스템(100)은 실제 데이터(예를 들어, 알려진 연관성을 가짐)를 주입할 수 있고, 제2 데이터 프로세싱 시스템(300)에 의해 생성된 결과적인 연관성의 품질을 측정할 수 있으며, 개선된 연관성을 생성하기 위해 매칭 규칙을 업데이트할 수 있다. 다양한 구현예에서, 시스템(100)은 시간이 지남에 따라 매칭 규칙 및/또는 결정된 연관성의 품질을 학습하고 개선한다.
단계(620)에서, 제2 데이터 프로세싱 시스템(300)은 병합된 데이터 세트를 사용하여 범용 식별자 및 연결 그래프를 생성한다. 다양한 구현예에서, 범용 식별자들은 부분적으로 암호화된 식별자들과 연관된다. 일부 구현예에서, 연결 그래프는 범용 식별자들 및/또는 부분적으로 암호화된 식별자들 사이의 연관성을 기술한다. 예를 들어, 연결 그래프는 제1 범용 식별자가 다수의 부분적으로 암호화된 식별자들과 연관되어 있음을 나타낼 수 있다. 연결 그래프는 도 4를 참조하여 아래에서 보다 상세히 설명한다. 다양한 구현예에서, 제2 데이터 프로세싱 시스템(300)은 매칭 규칙의 반복적인 개선을 용이하게 하기 위해 외부 시스템에 메타데이터를 전송한다. 예를 들어, 제2 데이터 프로세싱 시스템(300)은 식별자 유형, 결합 분포, 전이적 연결의 수, 연관성의 수를 나타내는 히스토그램 등에 기초하여 매칭을 기술하는 데이터를 전송할 수 있다.
단계(622)에서, 제2 데이터 프로세싱 시스템(300)은 제2 공개 키를 사용하여 범용 식별자를 암호화하여 암호화된 범용 식별자를 생성한다. 다양한 구현예에서, 제2 공개 키는 EG 암호화 방식을 위해 생성된 공개 키이다. 다양한 구현예에서, 제2 공개 키는 제3 데이터 프로세싱 시스템(400)으로부터 수신된다.
단계(624)에서, 제2 데이터 프로세싱 시스템(300)은 연결 그래프를 제1 데이터 프로세싱 시스템(200)에 전송한다. 다양한 구현예에서, 연결 그래프는 암호화된 범용 식별자를 포함한다. 추가적으로 또는 대안적으로, 단계(624)는 암호화된 범용 식별자들을 제1 데이터 프로세싱 시스템(200)에 전송하는 것을 포함할 수 있다. 단계(626)에서, 제1 데이터 프로세싱 시스템(200)은 연결 그래프를 수신한다. 다양한 구현예에서, 연결 그래프는 암호화된 범용 식별자들 및/또는 부분적으로 암호화된 식별자들 사이의 연관성을 기술한다. 단계(628)에서, 제1 데이터 프로세싱 시스템(200)은 제2 비밀 키를 사용하여 부분적으로 암호화된 식별자들을 복호화하여 암호화되지 않은 식별자들을 생성한다. 다양한 구현예에서, 제2 비밀 키는 EC 암호화 체계를 위해 생성된 개인 키이다.
단계(630)에서, 제1 데이터 프로세싱 시스템(200)은 랜덤화 동작을 수행한다. 다양한 구현예에서, 랜덤화 동작은 연결 그래프의 행을 셔플링하는 것을 포함한다(예를 들어, 연결 그래프는 테이블로 표현될 수 있고 테이블의 행은 셔플링될 수 있음 등). 추가적으로 또는 대안적으로, 랜덤화 동작은 데이터 재해싱 및/또는 재암호화를 포함할 수 있다. 예를 들어, 암호화된 범용 식별자들은 암호화된 범용 식별자들에 대한 새로운 해시를 생성하기 위해 제2 공개 키를 사용하여 재암호화될 수 있다.
단계(632)에서, 제1 데이터 프로세싱 시스템(200)은 연결 그래프를 데이터 파티 프로세싱 시스템(10)에 전송한다. 다양한 구현예에서, 단계(632)는 컨텍스트 데이터 및/또는 암호화되지 않은 식별자들과 같은 다른 데이터를 전송하는 것을 포함한다. 다양한 구현예에서, 단계(632)는 다수의 데이터 파티 프로세싱 시스템(10)(예를 들어, 식별자들 등을 제공한 각각의 데이터 파티 프로세싱 시스템(10))에 데이터를 전송하는 것을 포함한다.
단계(634)에서, 데이터 파티 프로세싱 시스템(10)은 연결 그래프를 수신한다. 다양한 구현예에서, 연결 그래프에는 다수의 암호화된 범용 식별자들을 포함한다. 예를 들어, 연결 그래프는 다수의 암호화된 범용 식별자들과 하나 이상의 다른 식별자들 간의 연관성을 기술할 수 있다. 단계(636)에서, 데이터 파티 프로세싱 시스템(10)은 제3 데이터 프로세싱 시스템(400) 및 연결 그래프를 사용하여 분석 결과를 생성한다. 예를 들어, 데이터 파티 프로세싱 시스템(10)은 연결 그래프 내의 범용 식별자들을 비암호화하고 집계 인터렉션 측정(예: 도달, 빈도 등)을 생성할 수 있는 제3 데이터 프로세싱 시스템(400)에 연결 그래프 및 인터렉션 데이터를 전송할 수 있다.
이제 도 4를 참조하면, 예시적 구현예에 따른 데이터 세트 조작이 도시된다. 다양한 구현예에서, 시스템(100)은 다양한 식별자들을 포함하는 다양한 데이터 파티 컴퓨팅 시스템(10)으로부터 데이터를 수신하고, 다양한 식별자들 간의 연관성을 결정하고(예를 들어, 식별자를 병합하는 등), 결정된 연관성에 기초하여 범용 측정 식별자들을 생성한다. 예를 들어, 시스템(100)은 제1 데이터 파티로부터 제1 식별자를 갖는 제1 식별자 세트 및 제2 데이터 파티로부터 제2 식별자를 갖는 제2 식별자 세트를 수신할 수 있고, 제1 식별자와 제2 식별자 사이의 연관성을 결정할 수 있고, 제1 식별자와 제2 식별자를 연결하는 범용 측정 식별자를 생성할 수 있다.
다양한 구현예에서, 시스템(100)은 하나 이상의 데이터 파티 컴퓨팅 시스템(10)으로부터 테이블(702)을 수신한다. 테이블(702)은 하나 이상의 식별자 및 식별자들 간의 연관성을 기술할 수 있다. 예를 들어, 테이블(702)은 제1 식별자(704)와 제2 식별자(706) 사이의 연관성을 나타내는 그래프(708)로 재포맷될 수 있다. 일반적으로 말하면, 시스템(100)은 테이블(702)의 제1 식별자(704)와 제2 식별자(706)를 병합하여(예를 들어, 단계(618) 등 동안) 식별자들 간의 연관성(712)을 기술하는 연결 그래프(710)를 생성할 수 있다(예를 들어, "ID 6"은 "ID 10"과 연관됨 등). 다양한 구현예에서, 분석 시스템(예를 들어, 제3 데이터 프로세싱 시스템(400) 등)은 연결 그래프(710)를 사용하여 다양한 플랫폼에 걸친 디바이스 인터렉션과 연관된 집계 통계를 생성할 수 있다. 다양한 구현예에서, 시스템(100)은 범용 식별자(714)를 제1 식별자(704) 및 제2 식별자(706)에 할당한다(예를 들어, 단계(620) 등 동안). 따라서, 데이터 파티 컴퓨팅 시스템(10)은 이전에 알려지지 않았던 연관성(712)을 알 수 있다(예를 들어, "ID 6"은 "ID 10"과 연관됨 등). 다양한 구현예에서, 시스템(100)은 범용 식별자들과 다양한 다른 식별자들 사이의 연관성을 기술하는 연결 그래프(710)를 데이터 파티 컴퓨팅 시스템(10)에 전송한다.
도 5은 예를 들어, 본 개시에서 설명된 임의의 예시적 시스템(예를 들어, 시스템(100) 등)을 구현하기 위해 사용될 수 있는 컴퓨팅 시스템(800)의 도면을 도시한다. 컴퓨팅 시스템(800)은 정보를 통신하기 위한 버스(805) 또는 다른 통신 컴포넌트 및 정보를 프로세싱하기 위해 버스(805)에 연결된 프로세서(810)를 포함한다. 컴퓨팅 시스템(800)은 또한 정보 및 프로세서(810)에 의해 실행될 명령어들을 저장하기 위해 버스(805)에 연결된 랜덤 액세스 메모리(RAM) 또는 다른 동적 저장 디바이스와 같은 메인 메모리(815)를 포함한다. 메인 메모리(815)는 또한 프로세서(810)에 의한 명령어들의 실행 동안 위치 정보, 임시 변수 또는 다른 중간 정보를 저장하기 위해 사용될 수 있다. 컴퓨팅 시스템(800)은 프로세서(810)를 위한 정적 정보 및 명령어들을 저장하기 위해 버스(805)에 연결된 ROM(read-only memory)(820) 또는 다른 정적 저장 디바이스를 더 포함할 수 있다. 솔리드 스테이트 디바이스(SSD), 자기 디스크 또는 광 디스크와 같은 저장 디바이스(825)는 정보 및 명령어를 영구적으로 저장하기 위해 버스(805)에 연결된다.
컴퓨팅 시스템(800)은 버스(805)를 통해, 사용자에게 정보를 디스플레이하기 위한 액정 디스플레이 또는 액티브 매트릭스 디스플레이와 같은 디스플레이(835)에 연결될 수 있다. 정보 및 명령 선택을 프로세서(810)와 통신하기 위해 영숫자 및 다른 키를 포함하는 키보드와 같은 입력 디바이스(830)가 버스(805)에 연결될 수 있다. 다른 구현예에서, 입력 디바이스(830)는 터치 스크린 디스플레이(835)를 포함한다. 입력 디바이스(830)는 방향 정보 및 명령 선택을 프로세서(810)와 통신하고 디스플레이(835) 상의 커서 움직임을 제어하기 위한 마우스, 트랙볼 또는 커서 방향 키와 같은 커서 제어를 포함할 수 있다.
일부 구현예에서, 컴퓨팅 시스템(800)은 네트워킹 어댑터와 같은 통신 어댑터(840)를 포함할 수 있다. 통신 어댑터(840)는 버스(805)에 결합될 수 있고, 컴퓨팅 또는 통신 네트워크(845) 및/또는 다른 컴퓨팅 시스템과의 통신이 가능하도록 구성될 수 있다. 다양한 예시적 구현예에서, 유선(예를 들어, 이더넷을 통해), 무선(예를 들어, Wi-Fi, 블루투스 등을 통해), 사전 구성된, 애드혹, LAN, WAN 등과 같은 통신 어댑터(840)를 사용하여 임의의 유형의 네트워킹 구성이 달성될 수 있다.
다양한 구현예에 따라, 본 명세서에 기술된 예시적 구현예를 달성하는 프로세스는 프로세서(810)가 메인 메모리(815)에 포함된 명령어들의 배열을 실행하는 것에 응답하여 컴퓨팅 시스템(800)에 의해 구현될 수 있다. 이러한 명령어들은 저장 디바이스(825)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(815)로 판독될 수 있다. 메인 메모리(815)에 포함된 명령어들의 배열의 실행은 컴퓨팅 시스템(800)으로 하여금 본 명세서에 기술된 예시적 프로세스들을 수행하게 한다. 멀티-프로세싱 배열에서 하나 이상의 프로세서들은 또한 메인 메모리(815)에 포함된 명령어들을 실행하기 위해 이용될 수 있다. 대안적 구현예에서, 예시적 구현예를 구현하기 위해 소프트웨어 명령어 대신에 또는 소프트웨어 명령어와 조합하여 고정 배선 회로가 사용될 수 있다. 따라서, 구현예는 하드웨어 회로 및 소프트웨어의 임의의 특정 조합으로 한정되지 않는다.
예시적 프로세싱 시스템이 도 5에서 기술되었지만, 본 발명의 구현예들 및 본 명세서에 기술된 기능적 동작들은 본 발명에 개시된 구조들 및 그들의 구조적 균등물들 또는 그들 중 하나 이상의 조합들을 포함하는 다른 유형의 디지털 전자 회로에서, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어를 사용하여 수행될 수 있다.
상기 기술에 더하여, 사용자가 본 명세서에 기술된 시스템들, 프로그램들 또는 구성들이 사용자 정보의 수집(예를 들어, 사용자의 소셜 네트워크에 관한 정보, 사회적 액션들 또는 활동들, 직업, 사용자의 선호들 또는 사용자의 현재 위치)을 하는 경우 및 콘텐츠 또는 서버로부터 통신에 사용자가 전송되는 경우에 관한 선택을 하게 하는 제어들이 사용자에게 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 취급되어, 개인적으로 식별가능한 정보는 제거된다. 예를 들면, 사용자의 신원은 사용자에 관한 개인적으로 식별가능한 정보가 결정될 수 없도록 취급되거나 또는 사용자의 지리적 위치는 위치 정보가 획득된 곳에서 일반화되어(시, 우편번호 또는 주 수준으로), 사용자의 특정한 위치가 결정될 수 없도록 한다. 따라서, 사용자는 사용자에 관한 어떤 정보가 수집될지, 정보가 어떻게 사용될지, 그리고 어떤 정보가 사용자에게 제공될지에 관한 제어를 가질 수 있다. 본 명세서에서 논의된 시스템들이 사용자들 또는 사용자 디바이스에 설치된 애플리케이션들에 관한 개인 정보를 수집하거나 또는 개인 정보를 사용하는 경우들에 있어서, 사용자들에게 프로그램들 또는 구성들이 사용자 정보(예를 들면, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 직업, 사용자의 선호들 또는 사용자의 현재 위치)에 관한 정보를 수집할 것인지 여부를 제어할 기회가 제공될 수 있다. 추가로 또는 대안적으로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 취급되어, 개인 정보는 제거된다.
본 발명의 구현예들과 본 명세서에 기술된 동작들은 본 발명에 개시된 구조들 및 그들의 구조적 균등물들 또는 그들 중 하나 이상의 조합들을 포함하는 디지털 전자회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어를 사용하여 수행될 수 있다. 본 명세서에 기술된 본 발명의 구현예들은 하나 이상의 컴퓨터 프로그램들 즉, 데이터 프로세싱 장치에 의해 실행 또는 데이터 프로세싱 장치의 동작을 제어하기 위한 하나 이상의 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들로서 구현될 수 있다. 대안적으로 또는 추가로, 프로그램 명령어들은 데이터 프로세싱 장치에 의해 실행하기 위한 적절한 수신기 장치에 전송하기 위한 정보를 인코딩하기 위해 생성된 인공적으로 생성된 전파된 신호 즉, 기계-생성 전기, 광학 또는 전자기적 신호에 인코딩될 수 있다. 컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스 또는 그들 중 하나 이상의 조합이거나 그에 포함될 수 있다. 또한, 컴퓨터 저장 매체는 전파된 신호가 아니지만, 컴퓨터 저장 매체는 인공적으로 생성된 전파된 신호에 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 목적지일 수 있다. 또한, 컴퓨터 저장 매체는 하나 이상의 별개의 컴포넌트들 또는 매체(예를 들면, 다수의 CD들, 디스크들, 또는 다른 저장 디바이스들)이거나 또는 그에 포함될 수 있다. 따라서, 컴퓨터 저장 매체는 유형적이고 비일시적이다.
본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스들에 저장된 또는 다른 소스들로부터 수신된 데이터에서 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다.
용어 "데이터 프로세싱 장치" 또는 "컴퓨팅 디바이스"는 예시로서 프로그래머블 프로세서, 컴퓨터, 시스템 온 칩 또는 앞서 언급된 것들 중 다수의 것들 또는 조합들을 포함하는 데이터를 프로세싱하기 위한 모든 종류의 장치, 디바이스들 및 기계들을 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 또한, 장치는 하드웨어 이외에 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime) 실행 환경, 가상 머신 또는 그들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려져 있음)은 컴파일된 또는 인터프리트된 언어들, 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 객체로서 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있지만, 반드시 그런 것은 아니다. 프로그램은 다른 프로그램들이나 데이터, 예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들을 가지는 파일의 부분에, 문제되는 프로그램 전용 단일의 파일에 또는 다수의 조정된 파일들, 예를 들어, 하나 이상의 모듈들, 서브프로그램 또는 코드의 일부를 저장하는 파일들에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 위치되어 있거나 다수의 사이트들에 걸쳐서 분산되어 있고 통신 네트워크에 의해 상호연결된 다수의 컴퓨터들에서 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은 입력 데이터를 동작하고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 FPGA 또는 ASIC와 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로로서 구현될 수 있다. 본 명세서에서 사용되는 회로는 하드웨어 회로(예를 들어, FPGA, ASIC 등), 소프트웨어(하나 이상의 컴퓨터 판독가능 저장 매체에 저장되고 하나 이상의 프로세서에 의해 실행가능한 명령어) 또는 이들의 임의의 조합을 사용하여 구현될 수 있다.
컴퓨터 프로그램의 실행에 적절한 프로세서들은, 예시로서, 범용 및 전용 마이크로프로세서들과 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 읽기-전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령어들에 따라 액션들을 수행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대형 저장 디바이스들 예를 들면, 자기적, 자기-광학 디스크들 또는 광학적 디스크들 또한 포함하거나 또는 그로부터 데이터를 수신하거나 그에 데이터를 전송하기 위해 동작적으로 결합될 수 있다. 그러나, 컴퓨터는 상기 디바이스들을 반드시 가져야하는 것은 아니다. 추가로, 컴퓨터는 다른 디바이스, 예를 들어, 몇 가지만 나열하면, 모바일 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스 예를 들어, 범용 직렬 버스(USB) 플래시 드라이브에 내장될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은 예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들과 같은 자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 통합될 수 있다.
컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은 예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들과 같은 자기 디스크들; 및 CD-- ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 다른 종류의 디바이스들도 사용자와의 인터렉션을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가로, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서를 송수신함으로써 예를 들어, 웹브라우저로부터 수신된 요청에 응답하여, 사용자의 사용자 디바이스상의 웹브라우저에 웹페이지를 전송함으로써 사용자와 인터렉션할 수 있다.
본 명세서에서 기술된 발명의 구현예는 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 애플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 본 발명의 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템을 사용하여 수행될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어투피어 네트워크(예를 들어, 애드혹 피어투피어 네트워크)를 포함한다.
컴퓨팅 시스템은 사용자들 및 서버들을 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 구현예에서, 서버는(예를 들어, 사용자 디바이스와 인터렉션하는 사용자에게 데이터를 디스플레이하고 사용자 입력을 수신하기 위해) 사용자 디바이스에 데이터(예를 들어, HTML 페이지)를 전송한다. 사용자 디바이스에서 생성된 데이터(예를 들어, 사용자 인터렉션의 결과)는 서버에서 사용자 디바이스로부터 수신될 수 있다.
본 명세서는 많은 특정 구현 세부내용을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정한 발명의 특정한 구현예에 특정한 구성들에 대한 설명으로 해석되어야 한다. 별개의 구현예의 맥락에서 본 명세서에서 기술되는 일정 구성들은 또한 단일 구현예에서 또는 조합하여 수행될 수 있다. 반대로, 단일 구현예의 맥락에서 기술된 다양한 구성들은 또한 다수의 구현예에서 개별적으로 또는 임의의 적합한 서브 조합으로 수행될 수 있다. 게다가, 구성들은 일정 조합으로 동작하고 심지어 초기적으로 그렇게 청구되는 것으로서 상기에서 기술될 수 있지만, 청구된 조합으로부터의 하나 이상의 구성들은 일부 경우, 조합으로부터 제거될 수 있고, 청구된 조합은 서브 조합 또는 서브 조합의 변형으로 안내될 수 있다. 추가로, 특정 제목과 관련하여 설명된 구성은 다른 제목 아래에 설명된 예시적 구현예와 관련하여 및/또는 조합하여 활용될 수 있고; 제목이 제공된 경우 단지 가독성을 위해서 포함된 것이며, 이러한 제목과 관련하여 제공되는 구성을 제한하는 것으로 해석되어서는 안된다.
유사하게, 동작들이 특정한 순서로 도면에서 도시되었지만, 이는 상기 동작들이 도시된 특정한 순서로 또는 시계열적 순서로 수행되어야 함을 요구하는 것으로서 또는 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안된다. 특정 환경에서, 멀티태스킹과 병렬 프로세싱은 이점이 있다. 게다가, 상기 기술된 구현예에서 다양한 시스템 컴포넌트들의 분리는 모든 구현예에서 그러한 분리가 필요한 것으로서 이해되어서는 안되며, 일반적으로 기술된 프로그램 컴포넌트들 및 시스템들은 단일의 소프트웨어 제품에 함께 통합되거나 유형적 매체에 수록된 다수의 소프트웨어 제품들에 패키징될 수 있다고 이해되어야 한다.
따라서, 본 발명의 특정한 구현예들이 기술되었다. 다른 구현예들도 다음의 청구항들의 범위 내에 있다. 일부 경우에, 청구항들에서 기재된 액션들은 상이한 순서로 수행되고 여전히 원하는 결과들을 달성할 수 있다. 추가로, 첨부 도면들에 도시된 프로세스들은 원하는 결과들을 달성하기 위해 특정한 도시된 순서, 또는 시계열적 순서를 반드시 필요로 하지 않는다. 특정 구현예에서, 멀티태스킹과 병렬 프로세싱은 이점이 있다.

Claims (20)

  1. 방법으로서,
    제1 컴퓨팅 시스템에서 암호화된 식별자들을 수신하는 단계;
    상기 제1 컴퓨팅 시스템에 의해, 은닉 암호화된 식별자들을 생성하기 위해 상기 암호화된 식별자에 대한 은닉 동작을 수행하는 단계, 상기 은닉 동작은 상기 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템으로부터의 상기 암호화된 식별자들을 은닉하지만 상기 은닉 암호화된 식별자들 간의 매칭을 가능하게 하며;
    상기 제2 컴퓨팅 시스템에 의해, 은닉 식별자들을 생성하기 위해 상기 은닉 암호화된 식별자들을 복호화하는 단계;
    상기 제2 컴퓨팅 시스템에 의해, 하나 이상의 매칭 규칙을 사용하여, 상기 은닉 식별자들 사이에 하나 이상의 연관성을 생성하기 위해 상기 은닉 식별자들을 분석하는 단계; 및
    상기 제2 컴퓨팅 시스템에 의해, 상기 하나 이상의 연관성에 기초하여 하나 이상의 범용 식별자들을 생성하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서,
    상기 은닉 동작을 수행하는 단계는 상기 은닉 암호화된 식별자들을 생성하기 위해 상기 암호화된 식별자들을 제2 암호화로 결정론적으로 암호화하는 단계를 포함하는, 방법.
  3. 청구항 1에 있어서,
    상기 은닉 동작은 상기 암호화된 식별자들을 셔플링하는 단계를 포함하는, 방법.
  4. 청구항 1에 있어서,
    상기 은닉 식별자들을 분석하는 단계는:
    상기 하나 이상의 연관성을 생성하기 위해 상기 은닉 식별자들 중 하나 이상을 매칭하는 단계;
    상기 하나 이상의 매칭 규칙을 사용하여 상기 하나 이상의 연관성을 점수화하는 단계; 및
    상기 점수에 기초하여 상기 하나 이상의 연관성을 프루닝하는 단계를 포함하는, 방법.
  5. 청구항 4에 있어서,
    상기 하나 이상의 연관성을 점수화하는 단계는:
    상기 하나 이상의 연관성과 연관된 상기 하나 이상의 은닉 식별자들의 소스를 결정하는 단계;
    상기 소스를 사용하여 하나 이상의 매칭 규칙의 조회를 수행하는 단계; 및
    상기 조회에 기초하여 상기 하나 이상의 연관성에 점수를 할당하는 단계를 포함하는, 방법.
  6. 청구항 1에 있어서,
    상기 제2 컴퓨팅 시스템에 의해, 하나 이상의 상이한 매칭 규칙을 사용하여, 하나 이상의 연관성의 제2 세트를 생성하기 위해 상기 은닉 식별자들을 분석하는 단계; 및
    상기 제2 컴퓨팅 시스템에 의해, 하나 이상의 상이한 매칭 규칙을 사용하여 생성된 하나 이상의 연관성과 상기 하나 이상의 매칭 규칙을 사용하여 생성된 하나 이상의 연관성 사이에서 선택하는 단계를 더 포함하는, 방법.
  7. 청구항 1에 있어서,
    상기 하나 이상의 연관성의 품질을 결정하는 단계; 및
    상기 결정된 품질에 기초하여 상기 하나 이상의 매칭 규칙을 반복적으로 조정하는 단계를 더 포함하는, 방법.
  8. 청구항 1에 있어서,
    상기 제2 컴퓨팅 시스템에 의해, 상기 하나 이상의 매칭 규칙을 사용하여 하나 이상의 테스트 연관성을 생성하기 위해 알려진 연관성을 갖는 식별자들을 분석하는 단계;
    상기 알려진 연관성을 상기 하나 이상의 테스트 연관성과 비교하는 단계; 및
    상기 비교에 기초하여 상기 하나 이상의 매칭 규칙을 업데이트하는 단계를 포함하는, 방법.
  9. 청구항 1에 있어서,
    상기 제1 컴퓨팅 시스템 또는 상기 제2 컴퓨팅 시스템 중 적어도 하나는 분산 컴퓨팅 시스템인, 방법.
  10. 범용 식별자를 구성하기 위한 시스템으로서,
    제1 컴퓨팅 시스템, 상기 제1 컴퓨팅 시스템은:
    암호화된 식별자들을 수신하고; 그리고
    은닉 암호화된 식별자들을 생성하기 위해 상기 암호화된 식별자에 대한 은닉 동작을 수행하도록 구성되고, 상기 은닉 동작은 상기 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템으로부터의 상기 암호화된 식별자들을 은닉하지만 상기 은닉 암호화된 식별자들 간의 매칭을 가능하게 하며; 및
    제2 컴퓨팅 시스템을 포함하며, 상기 제2 컴퓨팅 시스템은:
    은닉 식별자들을 생성하기 위해 상기 은닉 암호화된 식별자들을 복호화하고;
    하나 이상의 매칭 규칙을 사용하여, 상기 은닉 식별자들 사이에 하나 이상의 연관성을 생성하기 위해 상기 은닉 식별자들을 분석하고; 그리고
    상기 하나 이상의 연관성에 기초하여 하나 이상의 범용 식별자들을 생성하도록 더 구성되는, 시스템.
  11. 청구항 10에 있어서,
    상기 은닉 동작을 수행하는 것은 상기 은닉 암호화된 식별자들을 생성하기 위해 상기 암호화된 식별자들을 제2 암호화로 결정론적으로 암호화하는 것을 포함하는, 시스템.
  12. 청구항 10에 있어서,
    상기 은닉 동작은 상기 암호화된 식별자들을 셔플링하는 것을 포함하는, 시스템.
  13. 청구항 10에 있어서,
    상기 은닉 식별자들을 분석하는 것은:
    상기 하나 이상의 연관성을 생성하기 위해 상기 은닉 식별자들 중 하나 이상을 매칭하는 것;
    상기 하나 이상의 매칭 규칙을 사용하여 상기 하나 이상의 연관성을 점수화하는 것; 및
    상기 점수에 기초하여 상기 하나 이상의 연관성을 프루닝하는 것을 포함하는, 시스템.
  14. 청구항 13에 있어서,
    상기 하나 이상의 연관성을 점수화하는 것은:
    상기 하나 이상의 연관성과 연관된 상기 하나 이상의 은닉 식별자들의 소스를 결정하는 것;
    상기 소스를 사용하여 하나 이상의 매칭 규칙의 조회를 수행하는 것; 및
    상기 조회에 기초하여 상기 하나 이상의 연관성에 점수를 할당하는 것을 포함하는, 시스템.
  15. 청구항 10에 있어서,
    상기 제2 컴퓨팅 시스템은:
    하나 이상의 상이한 매칭 규칙을 사용하여, 하나 이상의 연관성의 제2 세트를 생성하기 위해 상기 은닉 식별자들을 분석하고; 그리고
    하나 이상의 상이한 매칭 규칙을 사용하여 생성된 하나 이상의 연관성과 상기 하나 이상의 매칭 규칙을 사용하여 생성된 하나 이상의 연관성 사이에서 선택하도록 더 구성되는, 시스템.
  16. 청구항 10에 있어서,
    상기 제2 컴퓨팅 시스템은:
    상기 하나 이상의 연관성의 품질을 결정하고; 그리고
    상기 결정된 품질에 기초하여 상기 하나 이상의 매칭 규칙을 반복적으로 조정하도록 더 구성되는, 시스템.
  17. 청구항 10에 있어서,
    상기 제2 컴퓨팅 시스템은:
    상기 하나 이상의 매칭 규칙을 사용하여 하나 이상의 테스트 연관성을 생성하기 위해 알려진 연관성을 갖는 식별자들을 분석하고;
    상기 알려진 연관성을 상기 하나 이상의 테스트 연관성과 비교하고; 그리고
    상기 비교에 기초하여 상기 하나 이상의 매칭 규칙을 업데이트하도록 더 구성되는, 시스템.
  18. 청구항 10에 있어서,
    상기 제1 컴퓨팅 시스템 또는 상기 제2 컴퓨팅 시스템 중 적어도 하나는 분산 컴퓨팅 시스템인, 시스템.
  19. 명령어가 저장된 하나 이상의 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금:
    제1 컴퓨팅 시스템으로부터, 상기 제1 컴퓨팅 시스템 및 상기 하나 이상의 프로세서로부터 은닉되지만 상기 은닉 암호화된 식별자들 사이의 매칭을 가능하게 하는 암호화된 식별자들을 갖는 은닉 암호화된 식별자들을 수신하게 하고;
    은닉 식별자들을 생성하기 위해 상기 은닉 암호화된 식별자들을 복호화하게 하고;
    하나 이상의 매칭 규칙을 사용하여, 상기 은닉 식별자들 사이에 하나 이상의 연관성을 생성하기 위해 상기 은닉 식별자들을 분석하게 하고; 그리고
    상기 하나 이상의 연관성에 기초하여 하나 이상의 범용 식별자들을 생성하게 하도록 더 구성되는, 하나 이상의 비일시적 컴퓨터 판독가능 매체.
  20. 청구항 19에 있어서, 상기 은식 식별자들을 분석하는 것은:
    상기 하나 이상의 연관성을 생성하기 위해 상기 은닉 식별자들 중 하나 이상을 매칭하는 것;
    상기 하나 이상의 매칭 규칙을 사용하여 상기 하나 이상의 연관성을 점수화하는 것; 및
    상기 점수에 기초하여 상기 하나 이상의 연관성을 프루닝하는 것을 포함하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체.
KR1020227045010A 2020-11-09 2021-07-09 보안 범용 측정 식별자 구성을 위한 시스템 및 방법 KR20230015964A (ko)

Applications Claiming Priority (3)

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

Publications (1)

Publication Number Publication Date
KR20230015964A true KR20230015964A (ko) 2023-01-31

Family

ID=77227117

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227045010A KR20230015964A (ko) 2020-11-09 2021-07-09 보안 범용 측정 식별자 구성을 위한 시스템 및 방법

Country Status (8)

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

Families Citing this family (1)

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

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITTO20010694A1 (it) * 2001-07-13 2003-01-13 Univ Roma Metodo di crittografia.
US8978158B2 (en) 2012-04-27 2015-03-10 Google Inc. Privacy management across multiple devices
US9641332B1 (en) 2013-01-30 2017-05-02 Google Inc. Privacy-preserving measurements of a campaign
US20150235275A1 (en) * 2014-02-20 2015-08-20 Turn Inc. Cross-device profile data management and targeting
IL234613A0 (en) 2014-09-11 2014-12-02 Google Inc Exchange consolidated and encrypted transaction information with a transaction information provider
US10715612B2 (en) * 2015-09-15 2020-07-14 Oath Inc. Identifying users' identity through tracking common activity
WO2019098941A1 (en) * 2017-11-20 2019-05-23 Singapore Telecommunications Limited System and method for private integration of datasets

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102149996B1 (ko) 특정 식별 정보 노출없이 식별자간 링크를 설정하기 위한 시스템 및 방법
US11962687B2 (en) Methods for protecting privacy
JP6962629B1 (ja) データ共有システム、データ共有方法、およびデータ共有プログラム
US10063655B2 (en) Information processing method, trusted server, and cloud server
JP7461513B2 (ja) 相互作用全体でクレジットを集計するための方法
JP7319380B2 (ja) ブラウザクッキーを保護する
JP7201848B2 (ja) 時間データの取得または操作を防止しながらネットワークデータのシーケンスを生成すること
JP2023002596A (ja) 暗号化されたネットワーク値の集約
JP7471475B2 (ja) 安全なユニバーサル測定識別子構築のためのシステムおよび方法
JP7147070B2 (ja) 複数の集約サーバを使用してデータ操作を防止すること
KR20220059506A (ko) 보안 식별 검색을 위한 시스템 및 방법
WO2023196016A1 (en) Secure computation using multi-party computation and a trusted execution environment
WO2021242290A1 (en) Methods for aggregating credit across interactions
Wang et al. Privacy preserving protocol for service aggregation in cloud computing
JP7011874B1 (ja) データ共有システム、データ共有方法およびデータ共有プログラム
JP7189357B2 (ja) プライバシー保護のためのデータセキュリティ方法
Feng Supporting Multiple Clients in Opaque
Ali et al. Data Inspection and Access Control for 5 G Edge Computing-Enabled Internet of Medical Things