KR20220163483A - 다자간 연산 및 k-익명성 기술 사용한 기밀 정보 보호 - Google Patents

다자간 연산 및 k-익명성 기술 사용한 기밀 정보 보호 Download PDF

Info

Publication number
KR20220163483A
KR20220163483A KR1020227039403A KR20227039403A KR20220163483A KR 20220163483 A KR20220163483 A KR 20220163483A KR 1020227039403 A KR1020227039403 A KR 1020227039403A KR 20227039403 A KR20227039403 A KR 20227039403A KR 20220163483 A KR20220163483 A KR 20220163483A
Authority
KR
South Korea
Prior art keywords
identifier
computing system
digital component
user group
request
Prior art date
Application number
KR1020227039403A
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 KR20220163483A publication Critical patent/KR20220163483A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • 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/0825Key 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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 개시는 보안 다자간 연산(MPC) 및 k-익명성 기술을 사용하여 다수의 엔티티의 기밀 정보를 보호하는 것에 관한 것이다. 일부 양태에서, 방법은 제1 MPC 컴퓨팅 시스템에 의해 클라이언트 디바이스로부터, 암호화된 사용자 그룹 식별자들을 포함하는 컨텐츠 요청을 수신하는 단계를 포함한다. 각각의 암호화된 사용자 그룹 식별자는 제2 MPC 컴퓨팅 시스템의 제1 암호화 키를 사용하여 암호화된다. 각각의 암호화된 사용자 그룹 식별자에 대해, 제2 MPC 컴퓨팅 시스템으로 요청이 전송된다. 요청에는 암호화된 사용자 그룹 식별자가 포함된다. k-익명성을 충족하는 각각의 사용자 그룹 식별자에 대해, 제1 MPC 컴퓨팅 시스템은 제2 MPC 컴퓨팅 시스템으로부터 사용자 그룹 식별자의 평문 값을 수신한다. 제1 MPC 컴퓨팅 시스템은 선택 파라미터 요청을 하나 이상의 플랫폼으로 전송한다. 선택 파라미터 요청에는 사용자 그룹 식별자의 평문 값이 포함된다.

Description

다자간 연산 및 K-익명성 기술 사용한 기밀 정보 보호
본 출원은 2020년 8월 2일에 출원된 IL 출원 번호 276440에 대한 우선권을 주장한다. 상기 출원의 개시 내용은 그 전체가 참고로 본 명세서에 포함된다.
다자간 연산(Multi-party Computation)은 각 당사자가 다른 당사자의 데이터에 액세스할 수 없도록 여러 당사자에게 연산을 분산하는 암호화 기술이다. K-익명성 기술은 그룹의 각 구성원에 대한 데이터를 익명으로 유지하는데 사용될 수 있다. k-익명성 속성을 갖는 데이터의 경우, 그 데이터는 한 구성원에 대해 그룹의 k-1명의 다른 구성원에 대한 데이터와 구별할 수 없다.
본 명세서는 다자간 연산(MPC) 및 k-익명성 기술을 사용하여 다수의 엔티티의 기밀 정보를 보호하는 것과 관련된 기술을 설명한다.
본 명세서에 기술된 주제의 하나의 혁신적인 양태는 제1 다자간 연산(MPC) 컴퓨팅 시스템에 의해 클라이언트 디바이스로부터, 암호화된 사용자 그룹 식별자 세트를 포함하는 컨텐츠 요청을 수신하는 단계와, 각각의 암호화된 사용자 그룹 식별자는 제2 MPC 컴퓨팅 시스템의 제1 암호화 키를 사용하여 암호화되고; 각각의 암호화된 사용자 그룹 식별자에 대해, 암호화된 사용자 그룹 식별자를 포함하는 요청을 제2 MPC 컴퓨팅 시스템으로 전송하는 단계와; 제2 MPC 컴퓨팅 시스템에 의해 수행되는 k-익명성 프로세스를 충족하는 각각의 사용자 그룹 식별자에 대해: 제1 MPC 컴퓨팅 시스템에 의해 제2 MPC 컴퓨팅 시스템으로부터, 사용자 그룹 식별자의 평문(plaintext) 값을 수신하는 단계; 및 제1 MPC 컴퓨팅 시스템에 의해, 사용자 그룹 식별자의 평문 값을 포함하는 선택 파라미터 요청을 하나 이상의 플랫폼으로 전송하는 단계와; 제1 MPC 컴퓨팅 시스템에 의해 제2 MPC 컴퓨팅 시스템으로부터, 대응하는 디지털 컴포넌트에 대한 크리에이티브 엘리먼트 및 그 디지털 컴포넌트에 대한 선택 파라미터 식별자를 각각 포함하는 선택 파라미터 엘리먼트 세트를 수신하는 단계와; 제1 MPC 컴퓨팅 시스템에 의해, 선택 파라미터 식별자에 기초하여 주어진 디지털 컴포넌트를 선택하는 단계와; 그리고 제1 MPC 컴퓨팅 시스템에 의해 클라이언트 디바이스로, 디지털 컴포넌트에 대한 크리에이티브 엘리먼트를 전송하는 단계를 포함하는 방법으로 구현될 수 있다. 이 양태의 다른 구현은 컴퓨터 저장 디바이스에 인코딩된 방법의 양태를 수행하도록 구성된 대응하는 장치, 시스템 및 컴퓨터 프로그램을 포함한다.
이들 및 다른 구현은 각각 다음의 특징들 중 하나 이상을 선택적으로 포함할 수 있다. 일부 양태에서, 컨텐츠 요청에는 디지털 컴포넌트가 요청되고 있는 리소스에 대한 리소스 로케이터가 포함된다. 일부 양태는 제1 MPC 컴퓨팅 시스템에 의해, 리소스 로케이터 및 컨텐츠 요청에 대응하는 논스(nonce)에 기초하여 요청 식별자를 생성하는 단계와; 그리고 제1 MPC 컴퓨팅 시스템에 의해, 요청 식별자를 암호화하는 단계를 포함할 수 있다. 요청에는 암호화된 요청 식별자가 포함될 수 있다.
일부 양태에서, k-익명성 프로세스를 총족하는 각각의 사용자 그룹 식별자의 평문 값을 수신하는 단계는 k-익명성 프로세스를 충족하는 각 사용자 그룹 식별자에 대한 반환 요청을 수신하는 단계를 포함할 수 있다. 각각의 반환 요청에는 사용자 그룹 식별자 및 제2 MPC 컴퓨팅 시스템의 제2 암호화 키를 사용하여 상기 암호화된 요청 식별자를 암호화함으로써 제2 MPC 컴퓨팅 시스템에 의해 생성된 암호화된 이중 암호화된 요청 식별자가 포함될 수 있다. 각각의 선택 파라미터 요청에는 이중 암호화된 요청 식별자가 포함될 수 있다. 각각의 선택 파라미터 엘리먼트에는 플랫폼으로부터, 크리에이티브 엘리먼트 및 선택 파라미터 엘리먼트의 선택 파라미터 식별자와 함께 이중 암호화된 요청을 수신한 후 이중 암호화된 요청 식별자를 해독함으로써 제2 MPC 컴퓨팅 시스템에 의해 생성된 암호화된 요청 식별자가 포함될 수 있다.
일부 양태에서, 제2 MPC 컴퓨팅 시스템은 하나 이상의 플랫폼 각각으로부터, 이중 암호화된 요청 식별자, 개별 디지털 컴포넌트에 대한 개별 크리에이티브 엘리먼트, 개별 디지털 컴포넌트에 대한 선택 파라미터, 및 개별 디지털 컴포넌트를 발행하는 디지털 컴포넌트 제공자 식별자를 포함하는 선택 파라미터 응답을 수신한다. 제2 MPC 컴퓨팅 시스템은 각각의 선택 파라미터 응답에 대해, 선택 파라미터의 선택 파라미터가 포함된 선택 파라미터 값의 범위에 기초하여 대응하는 선택 파라미터 식별자를 식별한다. 제2 MPC 컴퓨팅 시스템은 선택 파라미터 응답 및 선택 파라미터 식별자에 기초하여 선택 파라미터 엘리먼트를 생성한다.
일부 양태에서, 컨텐츠 요청은 각각의 사용자 그룹 식별자에 대해, 암호화된 복합 메시지를 포함한다. 암호화된 복합 메시지에는 사용자 그룹 식별자, 컨텐츠 요청을 개시한 클라이언트 디바이스의 애플리케이션에 대한 애플리케이션 공개 키 및 클라이언트 디바이스가 신뢰할 수 있다고 결정하는 것 응답하여 신뢰 토큰 발행자에 의해 발행된 서명된 상환 기록을 포함하는 복합 메시지의 암호화된 버전이 포함될 수 있다.
일부 양태에서, 컨텐츠 요청은 컨텍스트 신호를 포함한다. 일부 양태는 컨텍스트 신호가 k-익명성을 충족하는지 결정하는 단계를 포함한다. 컨텍스트 신호가 k-익명성을 충족한다고 결정하는 것에 응답하여, 제1 MPC 컴퓨팅 시스템은 컨텍스트 신호를 암호화한다. 제1 MPC 컴퓨팅 시스템은 요청에, k-익명성을 충족하는 각 컨텍스트 신호를 포함한다.
일부 양태는 각각의 크리에이티브 엘리먼트에서, 대응하는 디지털 컴포넌트에 대한 제1 속성 세트를 식별하는 단계와, 룩업 테이블에서, 리소스의 발행자에 의해 제외된 제2 제외 속성(excluded properties) 세트를 식별하는 단계를 포함할 수 있다. 제1 MPC 컴퓨팅 시스템에 의해, 선택 파라미터에 기초하여 주어진 디지털 컴포넌트를 선택하는 단계는 각각의 크리에이티브 엘리먼트에 대해, 크리에이티브 엘리먼트에 대한 제1 속성 세트의 하나 이상의 속성이 제외된 속성과 매칭하는지 여부를 결정하는 단계와; 그리고 제외된 속성과 매칭하는 적어도 하나의 속성이 각 크리에이티브 엘리먼트를 제외하는 단계를 포함할 수 있다.
일부 양태에서, 제1 MPC 컴퓨팅 시스템에 의해, 선택 파라미터 식별자에 기초하여 주어진 디지털 컴포넌트를 선택하는 단계는 각 선택 파라미터 엘리먼트에 대해: 제1 룩업 테이블에서, 리소스에 대한 리소스 로케이터 및 크리에이티브 엘리먼트의 대응하는 디지털 컴포넌트를 발행하는 디지털 컴포넌트 제공자에 대한 디지털 컴포넌트 식별자에 기초하여 선택 파라미터 엘리먼트의 크리에이티브 엘리먼트에 대한 공유 코드를 식별하는 단계; 및 제2 룩업 테이블에서, 공유 코드 및 선택 파라미터 엘리먼트의 선택 파라미터 식별자에 기초하여 발행자 반환 식별자를 식별하는 단계와; 그리고 주어진 디지털 컴포넌트로서, 가장 높은 발행자 반환 식별자를 갖는 주어진 선택 파라미터 엘리먼트의 디지털 컴포넌트를 선택하는 단계를 포함할 수 있다.
일부 양태에서, 제1 MPC 컴퓨팅 시스템에 의해 클라이언트 디바이스로, 디지털 컴포넌트에 대한 크리에이티브 엘리먼트를 전송하는 단계는 크리에이티브 엘리먼트, 주어진 선택 파라미터 엘리먼트에 대한 발행자 반환 식별자, 주어진 디지털 컴포넌트에 대한 디지털 컴포넌트 제공자 식별자, 주어진 디지털 컴포넌트가 선택된 시간을 나타내는 타임스탬프, 및 디지털 서명을 포함하는 컨텐츠 요청 결과를 전송하는 단계를 포함할 수 있다.
일부 양태에서, 클라이언트 디바이스는 제2 플랫폼으로 제2 컨텐츠 요청을 전송한다. 제2 컨텐츠 요청 결과는 컨텐츠 결과 요청 및 추가 컨텍스트 신호를 포함할 수 있다. 제2 플랫폼은 주어진 디지털 컴포넌트를 포함하는 디지털 컴포넌트 세트 및 추가 컨텍스트 신호에 기초하여 선택된 하나 이상의 디지털 컴포넌트 중에서 클라이언트 디바이스에서 프리젠테이션하기 위한 제2 디지털 컴포넌트를 선택한다.
본 명세서에 기술된 주제는 다음 이점들 중 하나 이상을 실현하기 위해 특정 실시예에서 구현될 수 있다. 컨텐츠 선택 프로세스를 수행하기 위해 MPC 및 k-익명성 기술을 사용하면 프로세스에 참여하는 엔티티들의 기밀(예를 들어, 개인 정보)이 다른 엔티티로 유출되는 것을 방지하고 프로세스를 수행하는데 필요한 엔티티들 간의 기밀 정보 공유를 방지한다. 본 문서에 설명된 기술은 한 엔터티의 컴퓨터가 훼손된 경우 다른 기술에 비해 액세스될 수 있는 기밀 정보의 양이 최소화되거나 최소한 감소되도록 보장하기 위해 서로 다른 컴퓨팅 시스템 내에서 기밀 정보와 프로세스의 동작들을 구분한다.
본 문서에 설명된 MPC 기술은 테이블에 있는 정보의 기밀성을 보호하기 위해 MPC 프로세스에 참여하는 다수의 컴퓨팅 시스템에 의해 유지되는 다중 룩업 테이블을 사용한다. 테이블들에는 MPC 프로세스에 참여하는 컴퓨팅 시스템들이 기본 데이터에 액세스할 수 없지만 이러한 코드를 사용하여 프로세스의 동작들을 계속 수행할 수 있도록 실제 데이터 대신 코드가 포함될 수 있다. 실제 데이터 대신 코드를 사용하면 데이터가 훼손된 경우(예를 들어, 도난 또는 다른 엔티티로 유출되는 경우)에도 데이터를 보호할 수 있다. 이러한 방식으로 룩업 테이블과 코드를 사용하면 데이터를 보호하는데 필요한 암호화 기술(예를 들어, 동형 암호화 기술)에 비해 MPC 프로세스를 구현하는데 사용되는 컴퓨팅 시스템의 계산 부담이 줄어든다. 이는 프로세스를 수행하는데 필요한 CPU(중앙 처리 장치) 주기를 줄이고(예를 들어, 많은 양의 데이터를 암호화 및 암호 해독하지 않아도 됨), 프로세스가 사용자 디바이스에 제공하고 프리젠테이션할 컨텐츠를 선택하는데 사용되는 구현에 중요한 프로세스 수행시의 대기 시간을 감소시키고, 전체 프로세스를 보다 효율적으로 만들 수 있다.
컨텐츠 제공의 대기 시간을 감소시키는 것은 또한 그러한 콘텐츠가 도착하기를 기다리는 동안 사용자 디바이스에서 발생하는 오류의 수를 감소시킨다. 컨텐츠는 종종 밀리초 단위로 무선 네트워크로 연결된 모바일 디바이스에 제공되어야 하므로 컨텐츠 선택 및 제공의 대기 시간을 줄이는 것은 오류를 방지하고 사용자의 불만을 줄이는데 중요하다. 일괄 처리(Batching) 기술은 (예를 들어, 더 많은 개별 요청을 처리하기 위한) 계산 요구 사항을 줄이고 다양한 엔티티의 컴퓨팅 시스템을 연결하는 네트워크의 대역폭 소비를 줄이는 데에도 사용될 수 있다.
본 문서에 설명된 MPC, k-익명성, 확률적 암호화 및 룩업 테이블의 조합의 사용은 컨텐츠를 요청하는 프로세스에 참여하는 각 엔터티의 데이터 기밀을 보호하고, 잠재 선택을 위한 후보 콘텐츠 및 후보 컨텐츠에 대한 선택 파라미터를 제공하고, 컨텐츠를 선택하고, 프레젠테이션을 위한 컨텐츠 제공하는 시너지 효과를 제공한다. 여기에는 콘텐츠가 제공되는 사용자의 사용자 데이터 기밀성, 후보 콘텐츠에 대해 플랫폼(예를 들어, DSP)에 의해 제출된 선택 파라미터의 기밀성, 플랫폼(예를 들어, SSP)이 컨텐츠를 선택하는 방식이 포함된다.
전술한 주제의 다양한 특징 및 이점이 도면과 관련하여 아래에서 설명된다. 추가 특징 및 이점은 본 명세서에 기재된 주제 및 청구범위로부터 명백하다.
도 1은 컨텐츠가 클라이언트 디바이스에 배포되는 환경의 블록도이다.
도 2는 컨텐츠를 선택하여 클라이언트 디바이스에 제공하기 위한 예시적인 프로세스를 도시하는 수영 레인 다이어그램이다.
도 3은 컨텐츠를 선택하기 위한 예시적인 프로세스를 도시하는 스영 레인 다이어그램이다.
도 4는 예시적인 컴퓨터 시스템의 블록도이다.
다양한 도면에서 동일한 참조 번호 및 명칭은 동일한 요소를 나타낸다.
일반적으로, 본 문서는 MPC, k-익명성 기술 및 기타 유형의 암호화를 사용하여 클라이언트 디바이스에 대한 전자 컨텐츠의 선택 및 배포에 관련된 각 엔티티의 기밀 정보의 공유 또는 유출을 방지하는 시스템에 대해 설명한다. 디지털 서명 기술도 데이터 전송에서 사기를 검출하고 방지하는데 사용될 수 있다.
도 1은 컨텐츠가 클라이언트 디바이스(110)에 배포되는 환경(100)의 블록도이다. 예시적인 환경(100)은 LAN(Local Area Network), WAN(Wide Area Network), 인터넷, 모바일 네트워크, 또는 이들의 조합과 같은 데이터 통신 네트워크(105)를 포함한다. 네트워크(105)는 클라이언트 디바이스(110), MPC 클러스터(130), 수요측 플랫폼(DSP)(150), 공급측 플랫폼(SSP)(170), 발행자(140), 및 웹사이트(142)를 연결한다. 예시적인 환경(100)은 많은 상이한 클라이언트 디바이스(110), MPC 클러스터(130), DSP(150), SSP(170), 발행자(140) 및 웹사이트(142)를 포함할 수 있다.
클라이언트 디바이스(110)는 네트워크(105)를 통해 통신할 수 있는 전자 디바이스이다. 예시적인 클라이언트 디바이스(110)는 개인용 컴퓨터, 모바일 통신 디바이스, 예를 들어 스마트폰, 및 네트워크(105)를 통해 데이터를 송수신할 수 있는 다른 디바이스를 포함한다. 클라이언트 디바이스는 또한 마이크로폰을 통해 오디오 입력을 받아들이고 스피커를 통해 오디오 출력을 출력하는 디지털 어시스턴트 디바이스를 포함할 수 있다. 디지털 어시스턴트는 오디오 입력을 받아들이기 위해 마이크로폰을 활성화하는 "핫워드" 또는 "핫문구"를 디지털 어시스턴트가 검출하는 경우 청취 모드(예를 들어, 오디오 입력을 받아들일 준비가 됨)로 전환될 수 있다. 디지털 어시스턴트 디바이스는 또한 이미지를 캡처하고 정보를 시각적으로 제시하기 위해 카메라 및/또는 디스플레이를 포함할 수 있다. 디지털 어시스턴트는 웨어러블 디바이스(예를 들어, 시계 또는 안경), 스마트폰, 스피커 디바이스, 태블릿 디바이스 또는 기타 하드웨어 디바이스를 포함하는 다양한 형태의 하드웨어 디바이스로 구현될 수 있다. 클라이언트 디바이스는 또한 디지털 미디어 디바이스, 예를 들어 텔레비전에 비디오를 스트리밍하기 위해 텔레비전 또는 기타 디스플레이에 연결하는 스트리밍 디바이스를 포함할 수 있다.
클라이언트 디바이스(110)는 일반적으로 웹 브라우저 및/또는 네이티브 애플리케이션과 같은 애플리케이션(112)을 포함하여 네트워크(105)를 통한 데이터의 송수신을 용이하게 한다. 네이티브 애플리케이션은 특정 플랫폼 또는 특정 디바이스(예를 들어, 특정 운영 체제가 있는 모바일 디바이스)용으로 개발된 애플리케이션이다. 발행자(게시자)(140)는 클라이언트 디바이스(110)에 대한 네이티브 애플리케이션을 개발하고 제공, 예를 들어 다운로드가 가능하도록 할 수 있다. 웹 브라우저는 예를 들어 클라이언트 디바이스(110)의 사용자가 웹 브라우저의 주소 표시줄에 리소스(145)에 대한 리소스 주소를 입력하거나 리소스 주소를 참조하는 링크를 선택하는 것에 응답하여, 발행자(140)의 웹사이트(142)를 호스팅하는 웹 서버로부터 리소스(145)를 요청할 수 있다. 마찬가지로, 기본 애플리케이션은 발행자의 원격 서버로부터 애플리케이션 컨텐츠를 요청할 수 있다.
일부 리소스, 애플리케이션 페이지, 또는 다른 애플리케이션 컨텐츠는 디지털 컴포넌트를 리소스(145) 또는 애플리케이션 페이지와 함께 제공하기 위한 디지털 컴포넌트 슬롯을 포함할 수 있다. 본 문서 전체에서 사용된 "디지털 컴포넌트"라는 문구는 디지털 컨텐츠 또는 디지털 정보의 개별 단위(예를 들어, 비디오 클립, 오디오 클립, 멀티미디어 클립, 이미지, 텍스트 또는 다른 컨텐츠 단위)를 지칭한다. 디지털 컴포넌트는 물리적 메모리 디바이스에 단일 파일 또는 파일 모음으로 전자적으로 저장될 수 있으며, 디지털 컴포넌트는 비디오 파일, 오디오 파일, 멀티미디어 파일, 이미지 파일 또는 텍스트 파일의 형태를 취할 수 있으며 광고가 일종의 디지털 컴포넌트가 되도록 광고 정보를 포함할 수 있다. 예를 들어, 디지털 컴포넌트는 웹 페이지의 컨텐츠 또는 애플리케이션(112)에 의해 제공되는 다른 리소스를 보완하기 위한 컨텐츠일 수 있다. 보다 구체적으로, 디지털 컴포넌트는 리소스 컨텐츠와 관련된 디지털 컨텐츠를 포함할 수 있다(예를 들어, 디지털 컴포넌트는 웹 페이지 컨텐츠와 동일한 주제 또는 관련 주제와 관련될 수 있음). 따라서, 디지털 컴포넌트의 제공은 웹 페이지 또는 애플리케이션 컨텐츠를 보완하고 일반적으로 향상시킬 수 있다.
애플리케이션(112)이 하나 이상의 디지털 컴포넌트 슬롯을 포함하는 리소스(또는 애플리케이션 컨텐츠)를 로드할 때, 애플리케이션(112)은 각 슬롯에 대한 디지털 컴포넌트를 요청할 수 있다. 일부 구현에서, 디지털 컴포넌트 슬롯은 애플리케이션(112)이 디지털 컴포넌트를 선택하고 클라이언트 디바이스(110)의 사용자에게 프리젠테이션하기 위해 애플리케이션(112)에 디지털 컴포넌트를 제공하는 디지털 컴포넌트 배포 시스템으로부터 디지털 컴포넌트를 요청하게 하는 코드(예를 들어, 스크립트)를 포함할 수 있다.
일부 발행자(140)는 SSP(170)를 사용하여 리소스 및/또는 애플리케이션의 디지털 컴포넌트 슬롯에 대한 디지털 컴포넌트를 획득하는 프로세스를 관리한다. SSP(170)는 리소스 및/또는 애플리케이션에 대한 디지털 컴포넌트를 획득하는 프로세스를 자동화하는 하드웨어 및/또는 소프트웨어로 구현된 기술 플랫폼이다. SSP(170)는 하나 이상의 DSP(150)와 상호작용하여 디지털 컴포넌트 슬롯을 위한 디지털 컴포넌트를 선택하는데 사용될 수 있는 정보를 획득할 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 이 정보는 디지털 컴포넌트 제공자(160)가 디지털 컴포넌트 제공자(160)의 디지털 컴포넌트를 프리젠테이션하기 위해 발행자(140)에게 제공하고자 하는 금액(amount)을 나타내는 선택 파라미터를 포함할 수 있다. 각 발행자(140)는 대응하는 SSP(170) 또는 다수의 SSP(170)를 가질 수 있다. 일부 발행자(140)는 동일한 SSP(170)를 사용할 수 있다.
디지털 컴포넌트 제공자(160)는 발행자의 리소스 및 애플리케이션의 디지털 컴포넌트 슬롯에 제공되는 디지털 컴포넌트를 생성(또는 발행)할 수 있다. 디지털 컴포넌트 제공자(160)는 DSP(150)를 사용하여 디지털 컴포넌트 슬롯에서의 프리젠테이션을 위한 디지털 컴포넌트의 제공을 관리할 수 있다. DSP(150)는 리소스 및/또는 애플리케이션과 함께 프리젠테이션하기 위한 디지털 컴포넌트를 배포하는 프로세스를 자동화하는 하드웨어 및/또는 소프트웨어로 구현된 기술 플랫폼이다. DSP(150)는 디지털 컴포넌트 제공자(160)를 대신하여 다수의 SSP(170)와 상호작용하여 다수의 상이한 발행자(140)의 리소스 및/또는 애플리케이션과 함께 프리젠테이션하기 위한 디지털 컴포넌트를 제공할 수 있다. 일반적으로, DSP(150)는 (예를 들어, SSP(170)로부터 직접 또는 교환을 통해) 디지털 컴포넌트에 대한 요청을 수신하고, 그 요청에 기초하여 하나 이상의 디지털 컴포넌트 제공자에 의해 생성된 하나 이상의 디지털 컴포넌트에 대한 선택 파라미터를 생성(또는 선택)하고, 디지털 컴포넌트(예를 들어, 디지털 컴포넌트 자체) 및 선택 파라미터와 관련된 데이터를 SSP(170)에 제공할 수 있다.
SSP(170)가 디지털 컴포넌트를 선택하는 방식 및 DSP(150)가 디지털 컴포넌트를 배포하는 방식(예를 들어, 선택 파라미터 및/또는 선택 파라미터 자체를 생성함)은 일반적으로 다른 당사자와 공유되어서는 안 되는 기밀 정보를 포함한다. 본 문서에 설명된 기술은 이 정보가 다른 당사자에게 공유되거나 유출되는 것을 방지한다.
일부 경우에, 사용자가 이전에 방문 및/또는 사용자와 상호작용한 웹 페이지, 애플리케이션 페이지, 또는 기타 전자 자원과 관련된 디지털 컴포넌트를 수신하는 것이 사용자에게 유리하다. 이러한 디지털 컴포넌트를 사용자에게 배포하기 위해, 사용자들은 사용자들이 특정 리소스를 방문하거나 그 리소스에서 특정 동작(action)(예를 들어, 웹 페이지 상에 제시된 특정 항목과 상호 작용하거나 항목을 가상 장바구니에 추가함)을 수행할 때 사용자 그룹에 할당될 수 있다. 사용자 그룹은 디지털 컴포넌트 제공자(160)에 의해 생성될 수 있다. 즉, 각 디지털 컴포넌트 제공자(160)는 사용자들이 디지털 컴포넌트 제공자(160)의 전자 리소스를 방문할 때 사용자들을 자신의 사용자 그룹에 할당할 수 있다.
사용자 프라이버시를 보호하기 위해, 사용자의 그룹 멤버십은 예를 들어 디지털 컴포넌트 제공자 또는 다른 당사자가 아닌 애플리케이션(112) 중 하나에 의해 사용자의 클라이언트 디바이스(110)에서 유지될 수 있다. 특정 예에서, 웹 브라우저는 그 웹 브라우저를 사용하는 사용자에 대한 사용자 그룹 식별자 목록("사용자 그룹 목록")을 유지할 수 있다. 사용자 그룹 목록은 사용자가 추가된 각 사용자 그룹에 대한 그룹 식별자를 포함할 수 있다. 사용자 그룹을 생성하는 디지털 컴포넌트 제공자(160)는 그들의 사용자 그룹에 대한 사용자 그룹 식별자를 지정할 수 있다. 사용자 그룹에 대한 사용자 그룹 식별자는 그룹(예를 들어, 정원 가꾸기 그룹)을 설명하거나 그룹을 나타내는 코드(예를 들어, 설명이 아닌 영숫자 시퀀스)일 수 있다. 사용자에 대한 사용자 그룹 목록은 클라이언트 디바이스(110)의 보안 저장소에 저장될 수 있고 및/또는 저장될 때 암호화될 수 있다.
애플리케이션(112)이 디지털 컴포넌트 제공자(160) 또는 웹사이트(142) 상의 웹 페이지와 관련된 리소스 또는 애플리케이션 컨텐츠를 제시할 때, 리소스는 애플리케이션(112)이 사용자 그룹 목록에 하나 이상의 사용자 그룹 식별자를 추가하도록 요청할 수 있다. 이에 응답하여, 애플리케이션(112)은 하나 이상의 사용자 그룹 식별자를 사용자 그룹 목록에 추가하고 사용자 그룹 목록을 안전하게 저장할 수 있다. 아래에서 더 자세히 설명되는 바와 같이, 애플리케이션(112)은 컨텐츠에 대한 요청, 예를 들어, 하나 이상의 디지털 컴포넌트에 대한 요청과 함께 사용자 그룹 목록의 사용자 그룹 식별자를 MPC 클러스터(130)로 전송할 수 있다. 사용자 그룹 식별자의 평문(plaintext, 일반 텍스트) 값을 보내는 대신, 애플리케이션(112)은 사용자 그룹 식별자를 암호화하고 암호화된 사용자 그룹 식별자를 MPC 클러스터(130)로 전송할 수 있어 사용자 그룹 식별자의 의도하지 않은 수신자가 사용자 그룹 식별자의 평문 값에 액세스할 수 없도록 한다.
MPC 클러스터(130)는 하나 이상의 사용자 그룹 식별자 및 추가 정보에 기초하여 디지털 컴포넌트를 선택하기 위해 다자간 연산 프로세스를 수행하는 다중 컴퓨팅 시스템을 포함한다. 이 예에서, MPC 클러스터(130)는 제1 컴퓨팅 시스템(S1) 및 제2 컴퓨팅 시스템(S2)을 포함한다. 컴퓨팅 시스템(S1 및 S2)은 동일한 당사자(예를 들어, 브라우저 개발자, 애플리케이션 개발자 또는 산업 그룹) 또는 상이한 당사자(예를 들어, 브라우저 개발자에 의해 운영되는 당사자 및 산업 그룹에 의해 운영되는 다른 당사자)에 의해 소유 및 운영될 수 있다. 기타 수량의 컴퓨팅 시스템도 그 수량이 1보다 크다면 사용될 수 있다.
사용자 그룹 식별자에 기초하여 디지털 컴포넌트를 선택하기 위해 MPC를 사용하는 것은 (MPC 클러스터(130)의 컴퓨팅 시스템을 운영하는 당사자를 포함하는) 임의의 당사자가 사용자가 속한 그룹을 결정하는 것을 방지함으로써 사용자의 프라이버시를 보호하고, 이에 의해 사용자의 개인 정보를 보호한다. k-익명성 기술과 함께 MPC 프로세스는 또한 다른 당사자가 SSP(170) 및 DSP(150)의 기밀 정보에 액세스하는 것을 방지한다. k-익명성 기술은 또한 DSP(150) 및/또는 디지털 컴포넌트 제공자(160)가 예를 들어 사용자를 위한 디지털 컴포넌트를 선택하기 위해 사용자의 특정 사용자 정보를 사용함으로써 특정 클라이언트 디바이스(110)를 마이크로-타겟팅하는 것을 방지할 수 있다. 컨텐츠를 선택하고 배포하기 위한 MPC, k-익명성 기술 및 기타 암호화 기술을 사용하기 위한 예시적인 프로세스가 도 2 및 3에 예시되어 있다.
일부 구현에서, 애플리케이션(112)은 사용자가 사용자가 할당된 사용자 그룹을 관리할 수 있게 하는 사용자 인터페이스를 제공할 수 있다. 예를 들어, 사용자 인터페이스는 사용자가 사용자 그룹 식별자를 제거할 수 있게 하고, 모든 또는 특정 리소스, 발행자, 디지털 컴포넌트 제공자, 디지털 컴포넌트 교환, 및/또는 DSP(150)가 사용자를 사용자 그룹에 추가하는 것을 방지할 수 있다(예를 들어, 엔티티가 애플리케이션(112)에 의해 유지되는 사용자 그룹 식별자의 목록에 사용자 그룹 식별자를 추가하는 것을 방지함). 이것은 사용자에게 더 나은 투명성과 제어를 제공한다.
도 2는 클라이언트 디바이스(110)에 대한 컨텐츠 선택 및 제공을 위한 예시적인 프로세스(200)를 예시하는 수영 레인 다이어그램이다. 프로세스(200)의 동작들은 예를 들어 클라이언트 디바이스(110), MPC 클러스터(130), 하나 이상의 DSP(150), 및 SSP(170)에 의해 구현될 수 있다. 프로세스(200)의 동작들은 또한 비-일시적일 수 있는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 명령어로서 구현될 수 있으며, 하나 이상의 데이터 처리 장치에 의한 명령어의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(200)의 동작들을 수행하게 할 수 있다.
이 예에서, SSP(170)는 리소스 및/또는 애플리케이션의 디지털 컴포넌트 슬롯에 대한 디지털 컴포넌트를 획득하는 프로세스를 관리하기 위해 특정 발행자가 사용하는 SSP이고, 클라이언트 디바이스(110)는 발행자의 전자 리소스(예를 들어, 웹 페이지 또는 네이티브 애플리케이션)를 로딩하는 클라이언트 디바이스(110)의 애플리케이션에 응답하여 컨텐츠를 요청한다. SSP(170)는 디지털 컴포넌트가 SSP(170)가 디지털 컴포넌트를 획득하는 발행자의 전자 자원과 함께 프리젠테이션을 위해 제공될 수 있게 하기 전에 디지털 컴포넌트를 검토(review)할 수 있다. 예를 들어, SSP(170)는 디지털 컴포넌트의 컨텐츠 및 형식을 검토하여 다양한 기준을 충족하는지, 예를 들어 특정 유형의 컨텐츠를 포함하지 않는지, 데이터 및/또는 디스플레이 크기 요구사항을 충족하는지 등을 검토할 수 있다.
SSP(170)가 디지털 컴포넌트를 승인하면, SSP(170)는 디지털 컴포넌트에 대한 서명된 크리에이티브 엘리먼트를 생성할 수 있다. 서명된 크리에이티브 엘리먼트는 컨텐츠 세트 및 그 컨텐츠 세트에 기초하여 생성된 디지털 서명을 포함할 수 있다. 예를 들어 컨텐츠 세트에는 크리에이티브 스니펫(snippet), 디지털 컴포넌트를 생성 및/또는 발행한 디지털 컴포넌트 제공자를 고유하게 식별하는 디지털 컴포넌트 제공자 식별자(SSP(170)가 디지털 컴포넌트에 대한 대응하는 DSP(150)를 결정할 수 있게 함), 크리에이티브 메타데이터, SSP(170)에 대한 리소스 로케이터, 및/또는 (예를 들어, DSP가 재검증을 위해 디지털 컴포넌트를 주기적으로 다시 제출하도록 요구하기 위한) 디지털 서명의 만료 날짜를 포함할 수 있다.
크리에이티브 스니펫은 디지털 컴포넌트 자체(또는 리소스 로케이터 또는 디지털 컴포넌트가 다운로드될 수 있는 서버에 대한 링크)를 포함할 수 있다. 크리에이티브 스니펫은 또한 디지털 컴포넌트를 렌더링하기 위한 컴퓨터 실행 가능 코드, 예를 들어 서버로부터 디지털 컴포넌트를 다운로드하고 디지털 컴포넌트 슬롯에 디지털 컴포넌트를 렌더링하는 스크립트를 포함할 수 있다. 크리에이티브 스니펫은 또한 디지털 컴포넌트의 프리젠테이션에 관한 정보를 통합(aggregation) 서버로 전송하기 위한 컴퓨터 실행 가능 코드, 예를 들어 클라이언트 디바이스가 정보를 통합 서버로 전송하게 하는 스크립트를 포함할 수 있다.
SSP(170)에 대한 리소스 로케이터는 SSP(170)의 도메인에 대한 eTLD+1일 수 있다. eTLD+1은 유효 최상위 도메인(eTLD)에 공용 접미사보다 한 라벨을 더한 것이다. 예시적인 eTLD+1는 "example.com"이며, 여기서 ".com"은 최상위 도메인이다.
메타데이터는 SSP(170)가 디지털 컴포넌트에 대한 발행자 정의 제외(exclusions)를 시행할 수 있게 하는 속성 세트를 포함할 수 있다. 예를 들어 발행자는 특정 속성(예를 들어, 특정 카테고리와 관련된 컨텐츠 포함)을 가진 디지털 컴포넌트가 자신의 리소스와 함께 제시되는 것을 허용하지 않을 수 있다. 메타데이터에는 발행자가 금지한 디지털 컴포넌트의 금지된 카테고리, 주제 또는 기타 속성 목록이 포함될 수 있다. 일부 구현에서, SSP(170)는 각각의 속성을 암호화할 수 있고 서명된 크리에이티브 엘리먼트에 각각의 암호화된 속성을 포함할 수 있다. 예를 들어, SSP(170)는 SSP(170)의 비대칭 공개 키를 이용하여 각 속성을 암호화할 수 있다. 이와 같이, SSP(170)만이 공개키에 대응하는 비대칭 개인키를 이용하여 각 속성의 일반 텍스트(평문) 값에 액세스할 수 있다. 후술하는 바와 같이, MPC 클러스터(130)는 발행자를 위한 디지털 컴포넌트를 제외(배제)하기 위해 속성(예를 들어, 암호화된 형태)을 사용할 수 있다. 속성이 암호화된 경우, MPC 클러스터(130)는 발행자가 제외하는 속성을 결정할 수 없는 동안 여전히 제외를 수행할 수 있으므로 발행자의 기밀 정보를 보호할 수 있다.
SSP(170)는 SSP(170)의 비대칭 개인 키를 사용하여 컨텐츠 세트에 서명함으로써 디지털 서명을 생성할 수 있다. 서명된 크리에이티브 엘리먼트의 수신자는 서명 생성에 사용된 개인 키에 대응하는 비대칭 공개 키를 사용하여 디지털 서명을 검증(확인)할 수 있다. 디지털 서명이 생성된 후 컨텐츠 세트에서 데이터가 변경되면 디지털 서명의 검증이 실패할 것이다. SSP(170)는 각 디지털 컴포넌트에 대한 서명된 크리에이티브 엘리먼트를 디지털 컴포넌트를 생성/발행한 디지털 컴포넌트 제공자(160)의 DSP(150)로 전송할 수 있다.
클라이언트 디바이스(110)는 사용자 그룹 기반 컨텐츠 요청을 MPC 클러스터(130)로 전송한다(202). 예를 들어, 클라이언트 디바이스(110) 상에서 실행되는 웹 브라우저는 하나 이상의 디지털 컴포넌트 슬롯을 갖는 발행자의 리소스를 로드할 수 있다. 다른 예에서, 사용자는 발행자의 네이티브 애플리케이션을 시작할 수 있고 그 애플리케이션의 컨텐츠는 하나 이상의 디지털 컴포넌트 슬롯을 포함할 수 있다. 디지털 컴포넌트 슬롯을 포함하는 애플리케이션(112)은 사용자 그룹 기반 컨텐츠 요청을 전송할 수 있다.
이 예시적인 프로세스(200)에서, 애플리케이션(112)은 2개의 개별 컨텐츠 요청을 전송할 수 있다. 애플리케이션(112)은 먼저 클라이언트 디바이스(110)의 사용자가 할당된 하나 이상의 사용자 그룹에 기초하여 디지털 컴포넌트를 요청하기 위한 사용자 그룹 기반 컨텐츠 요청을 전송할 수 있다. 그런 다음, 애플리케이션(112)은 추가 컨텍스트 정보에 기초하여 디지털 컴포넌트를 요청하는 컨텍스트 컨텐츠 요청을 전송할 수 있고, 디지털 컴포넌트가 사용자 그룹 기반 컨텐츠 요청을 사용하여 획득되는 경우 하나 이상의 사용자 그룹에 기초하여 선택된 하나 이상의 디지털 컴포넌트를 전송할 수 있다. 이것은 컨텍스트 컨텐츠 선택 프로세스가 사용자가 할당된 사용자 그룹의 기밀성과 디지털 컴포넌트를 선택하는데 사용된 DSP 정보의 기밀성을 유지하면서 하나 이상의 사용자 그룹에 기초하여 선택된 디지털 컴포넌트를 포함할 수 있게 한다.
사용자 그룹 기반 컨텐츠 요청은 일부 컨텍스트 신호를 포함할 수 있지만, 아래에서 설명되는 컨텍스트 컨텐츠 요청에 포함된 것보다 적다. 예를 들어, 사용자 그룹 컨텐츠 요청은 리소스에 대한 리소스 로케이터, 예를 들어 웹 페이지에 대한 URL(Universal Resource Locator) 또는 애플리케이션 컨텐츠에 대한 URI(Universal Resource Identifier)를 포함할 수 있다. 사용자 그룹 컨텐츠 요청은 또한 언어(예를 들어, 컨텐츠를 렌더링하는 애플리케이션에 의해 컨텐츠가 제시되는 언어) 및/또는 클라이언트 디바이스(110)의 대략적인(coarse) 위치를 나타내는 대략적인 지리적 위치 정보를 포함할 수 있다.
사용자 그룹 기반 컨텐츠 요청은 또한 클라이언트 디바이스(110)의 사용자가 할당된 사용자 그룹에 대한 사용자 그룹 식별자를 포함할 수 있다. 아래에서 더 자세히 설명되는 바와 같이, 사용자 그룹 기반 컨텐츠 요청에는 사용자 프라이버시를 보호하고 사기를 방지하기 위해 암호화된 사용자 그룹 식별자 및 서명된 상환 기록(Signed Redemption Records: SRR)이 포함될 수 있다. SRR은 클라이언트 디바이스가 신뢰 토큰 발행자에 의해 평가되었고 신뢰할 수 있는 것으로 결정되었음을 나타낸다.
MPC 클러스터(130)는 사용자 그룹 기반 컨텐츠 요청을 수신하고 해당 사용자 그룹 기반 컨텐츠 요청을 하나 이상의 DSP(150)로 전송한다(204). 사용자 그룹 기반 컨텐츠 요청을 수신한 후, MPC 클러스터(130)는 SRR(들)을 검증할 수 있다. MPC 클러스터(130)는 또한 요청에 포함된 다양한 정보에 대해 k-익명성을 시행하고 DSP(들)(150)에 사용자 그룹 기반 요청을 전송하는 단계, DSP(들)(150)로부터 선택 파라미터를 수신하는 단계(206), 및 선택 파라미터에 기초하여 컨텐츠(예를 들어, 하나 이상의 디지털 컴포넌트)를 선택하는 단계(208)를 포함하는 MPC 프로세스를 수행할 수 있다. 이러한 동작은 도 3을 참조하여 아래에서 보다 구체적으로 설명한다.
MPC 클러스터(130)는 선택된 컨텐츠에 대한 사용자 그룹 컨텐츠 응답을 애플리케이션(112)으로 전송한다(210). MPC 클러스터(130)는 디지털 컴포넌트를 선택하고 선택된 디지털 컴포넌트에 대한 적어도 서명된 크리에이티브 엘리먼트를 포함하는 사용자 그룹 컨텐츠 응답을 애플리케이션(112)으로 전송할 수 있다. 이 디지털 컴포넌트는 디지털 컴포넌트가 사용자의 사용자 그룹 멤버십에 기초하여 선택되기 때문에 사용자 그룹 기반 디지털 컴포넌트라고도 지칭될 수 있다.
일부 구현에서, 사용자 그룹 컨텐츠 응답에는 사용자 그룹 기반 디지털 컴포넌트에 대한 서명된 크리에이티브 엘리먼트, 발행자 반환 식별자, 선택 파라미터 식별자(아래에 설명됨), 사용자 그룹 기반 디지털 컴포넌트를 생성/발행한 디지털 컴포넌트 제공자를 고유하게 식별하는 디지털 컴포넌트 제공자 식별자, 및/또는 사용자 그룹 기반 디지털 컴포넌트를 선택하기 위해 컨텐츠 선택 프로세스가 수행된 시간을 나타내는 타임스탬프(밀리초 또는 더 미세한 단위의 고해상도 타임스탬프일 수 있음)를 포함하는 컨텐츠 세트가 포함된다. 사용자 그룹 컨텐츠 응답에는 또한 서명된 크리에이티브 엘리먼트의 암호화 해시(예를 들어, SHA256)를 통해 MPC 클러스터(130)의 컴퓨팅 시스템(S1)에 의해 생성된 디지털 서명, 디지털 컴포넌트가 제시될 리소스에 대한 리소스 로케이터, 발행자 반환 식별자, 선택 파라미터 식별자, 디지털 컴포넌트 식별자 및 타임스탬프가 포함될 수 있다. 컴퓨팅 시스템(S1)은 컴퓨팅 시스템(S1)의 개인 키를 사용하여 디지털 서명을 생성할 수 있다.
서명된 크리에이티브 엘리먼트 자체보다 서명된 크리에이티브 엘리먼트의 암호화 해시의 디지털 서명을 생성하면 서명을 검증하는데 필요한 데이터 크기 및 디지털 서명을 검증하는데 필요한 처리 능력(예를 들어, CPU 사이클 수)이 감소한다. 감소된 데이터 크기는 데이터 전송 속도를 높이고 대역폭 소비를 줄이며 데이터 저장 요구 사항을 줄일 수 있다. 디지털 서명이 전체 크리에이티브 엘리먼트에 대한 것인 경우, 서명을 검증하려는 수신자는 어떻게든 크리에이티브 엘리먼트의 암호화해시보다 훨씬 큰 크리에이티브 엘리먼트 전체를 수신해야 한다.
타임스탬프는 선택 프로세스의 고유 식별자 역할을 하고 디지털 서명은 사기를 방지하는데 사용될 수 있다. 선택 프로세스의 고유 식별자와 디지털 서명의 조합은 동일한 컨텐츠 세트를 사용하여 선택 파라미터를 위조하거나 재전송 공격(replay attacks)(예를 들어, 서비스 거부)을 개시함으로써 훼손된/악성 애플리케이션 또는 스크립트가 사기를 저지르는 것을 방지한다. 예를 들어, 클라이언트 디바이스(110)(또는 SSP, 또는 감사 프로세스)는 컨텐츠에 서명하는데 사용되는 컴퓨팅 시스템(S1)의 개인 키에 대응하는 컴퓨팅 시스템(S1)의 공개 키를 사용하여 디지털 서명을 검증할 수 있다. 서명 검증이 실패하면 서명된 컨텐츠가 수정된 것이다. 또한, 클라이언트 디바이스(110)(SSP 또는 감사 프로세스의)는 동일한 타임스탬프를 가진 다수의 사용자 컨텐츠 응답이 수신되는 경우 재전송 공격을 검출할 수 있다. 또한, 디지털 서명된 컨텐츠 세트에 리소스의 리소스 로케이터를 포함하면 리소스가 있는 이 특정 프레젠테이션으로 사용자 그룹 콘텐츠 응답을 바인딩한다.
발행자 반환 식별자는 발행자의 리소스와 함께 제시되는 디지털 컴포넌트에 대해 발행자가 디지털 컴포넌트 제공자로부터 받을 금액(amount)을 나타내는 식별자이다(예를 들어, 금액 자체가 아님). 그러나, 발행자 반환 식별자는 발행자 및 해당 SSP(170) 이외의 엔터티에게는 무의미하다.
애플리케이션(112)은 컨텍스트 컨텐츠 요청을 SSP(170)로 전송한다(212). 컨텍스트 컨텐츠 요청은 사용자 그룹 컨텐츠 응답 및 컨텍스트 데이터에 있는 정보의 적어도 일부를 포함할 수 있다. 예를 들어, 컨텍스트 컨텐츠 요청은 사용자 그룹 컨텐츠 응답으로부터, 발행자 반환 식별자 및/또는 디지털 컴포넌트 제공자 식별자를 포함할 수 있다. 발행자 반환 식별자는 SSP(170)가 컨텍스트 데이터의 전체 세트에 기초하여 발행자의 리소스와 함께 프리젠테이션을 위한 디지털 컴포넌트를 선택하는 컨텍스트 컨텐츠 선택 프로세스에서 MPC 클러스터(130)에 의해 선택된 디지털 컴포넌트를 포함할 수 있게 한다.
컨텍스트 컨텐츠 요청의 컨텍스트 데이터는 사용자 그룹 기반 컨텐츠 요청과 동일한 컨텍스트 데이터에 더하여(plus) 리소스에 포함된 디지털 컴포넌트 슬롯의 수, 리소스 내 디지털 컴포넌트 슬롯의 위치, 디지털 컴포넌트 슬롯의 크기, 디지털 컴포넌트 슬롯의 유형 등과 같은 추가 컨텍스트 데이터를 포함할 수 있다.
SSP(170)는 컨텍스트 컨텐츠 요청을 하나 이상의 DSP(150)(214)로 전송한다. 이러한 컨텍스트 컨텐츠 요청은 애플리케이션(112)으로부터 수신된 컨텍스트 컨텐츠 요청의 컨텍스트 데이터를 포함할 수 있지만 컨텍스트 컨텐츠 요청에 포함된 사용자 그룹 컨텐츠 응답으로부터의 정보는 포함하지 않을 수 있다.
각 DSP(150)는 선택 파라미터를 SSP(170)로 전송할 수 있다(216). 예를 들어, 각 DSP(150)는 DSP(150)에 의해 표현되는 디지털 컴포넌트 제공자(들)를 대신하여 컨텍스트 데이터에 기초하여 하나 이상의 디지털 컴포넌트를 선택할 수 있다. 각 디지털 컴포넌트에 대해, DSP(150)는 또한 디지털 컴포넌트에 대한 선택 파라미터를 생성하거나 선택할 수 있다. 그런 다음 DSP(150)는 디지털 컴포넌트(예를 들어, 서명된 크리에이티브 엘리먼트, 디지털 컴포넌트 자체, 또는 디지털 컴포넌트d의 리소스 로케이터)에 대한 선택 파라미터 및 데이터를 SSP(170)로 전송할 수 있다.
SSP(170)는 DSP(150)로부터 수신된 선택 파라미터 및 MPC 클러스터(130)에 의해 선택된 디지털 컴포넌트에 대한 발행자 반환 식별자에 적어도 부분적으로 기초하여 컨텐츠를 선택한다. SSP(170)는 사용자 그룹 기반 컨텐츠 요청에 대한 선택 파라미터의 크기를 결정할 수 있다. 예를 들어, SSP(170)는 룩업 테이블 또는 발행자의 선택 파라미터 식별자를 선택 파라미터에 매핑(예를 들어, 링크, 색인, 또는 연관)하는 다른 적절한 데이터 구조를 포함할 수 있다. 룩업 테이블은 선택 파라미터 식별자의 어레이(예를 들어, 열) 및 각각의 선택 파라미터 식별자에 대해 대응하는 선택 파라미터를 포함할 수 있다. 선택 파라미터는 양자화될 수 있다. 예를 들어, 각 선택 파라미터 식별자는 선택 파라미터 값의 범위에 해당할 수 있다.
SSP(170)는 사용자 그룹 기반 디지털 컴포넌트의 선택 파라미터 식별자와 DSP(150)로부터 수신한 선택 파라미터 식별자 중에서 가장 높은 선택 파라미터 식별자를 갖는 디지털 컴포넌트를 선택할 수 있다. 일부 구현에서, 아래에서 더 자세히 설명되는 바와 같이, 선택 파라미터 식별자는 공유값이 SSP(170) 및/또는 DSP(150)에 할당된 후 게시자가 받게 될 공유후(post-share) 금액을 나타낸다. 이 예에서, SSP(170)는 또한 DSP(150)로부터 수신된 선택 파라미터에 대한 공유후 금액을 결정할 수 있고 가장 높은 공유후 금액을 갖는 디지털 컴포넌트를 선택할 수 있다.
그런 다음, SSP(170)는 선택된 디지털 컴포넌트 및/또는 그 선택된 디지털 컴포넌트에 대한 크리에이티브 스니펫을 클라이언트 디바이스(110)로 전송할 수 있다(220). 차례로, 애플리케이션(112)은 선택된 디지털 컴포넌트를 발행자의 리소스와 함께 제시할 수 있다(222).
전술한 바와 같이, 컨텍스트 컨텐츠 요청은 사용자 그룹 컨텐츠 응답으로부터 발행 반환 식별자 및/또는 디지털 컴포넌트 제공자 식별자를 포함할 수 있다. 이것은 이 접근 방식의 채택을 단순화하고 그 접근 방식이 채택되는 속도를 증가시키며, 본 문서에 설명된 사용자 그룹 기반 기술 없이 기존의 컨텍스트 컨텐츠 요청에 기초하여 프레젠테이션을 위한 디지털 컴포넌트를 선택하는 기존 SSP에 대한 접근 방식의 채택을 단순화할 수 있다. 컨텍스트 컨텐츠 요청에 발행자 반환 식별자가 포함되지만 디지털 컴포넌트 제공자 식별자는 포함되지 않는 경우, SSP(170)는 사용자 그룹 기반 디지털 컴포넌트가 선택될 때 사용자 그룹 기반 디지털 컴포넌트에 대한 DSP로서 플리이스홀더(자리 표시자)(예를 들어, 가상의) DSP를 포함하도록 수정될 수 있다. 이 예에서, (예를 들어, DSP에 대한 디지털 컴포넌트의 프리젠테이션에 기초하여) DSP로부터 요청될 집계 값이 집계 시스템, 예를 들어 집계 시스템의 애플리케이션 프로그래밍 인터페이스(API)로부터 수신되면, SSP(170)는 가상 DSP에 대해 요청될 양(amount)을 집계 시스템에 의해 보고된 양으로 대체할 수 있다. 컨텍스트 컨텐츠 요청이 디지털 컴포넌트 제공자 식별자를 포함하는 경우, SSP(170)는 전혀 수정될 필요가 없을 수 있다.
일부 구현에서, 크리에이티브 스니펫은 애플리케이션(112)이 사용자 그룹 기반 디지털 컴포넌트에 대한 디지털 컴포넌트의 프리젠테이션을 보고하는 집계 서버로 보고를 전송하게 할 수 있다. 이 보고는 MPC 클러스터(130)로부터 수신된 디지털 컴포넌트에 대한 사용자 그룹 컨텐츠 응답의 적어도 일부를 포함할 수 있다. 예를 들어, 보고에는 발행자 반환 식별자, 선택 파라미터 식별자, 사용자 그룹 기반 디지털 컴포넌트를 생성/발행한 디지털 컴포넌트 제공자를 고유하게 식별하는 디지털 컴포넌트 제공자 식별자, 사용자 그룹 기반의 디지털 컴포넌트를 선택하기 위해 컨텐츠 선택 프로세스가 수행된 시간을 나타내는 타임스탬프 및 컴퓨팅 시스템(S1)에 의해 생성된 디지털 서명이 포함될 수 있다.
도 3은 컨텐츠를 선택하기 위한 예시적인 프로세스(300)를 도시하는 수영 레인 다이어그램이다. 프로세스(300)의 동작들은 예를 들어 클라이언트 디바이스(110), MPC 클러스터(130)의 컴퓨팅 시스템(S1 및 S2), 하나 이상의 DSP(150), 및 하나 이상의 DSP(150)에 의해 구현될 수 있다. 프로세스(300)의 동작들은 또한 비-일시적일 수 있는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 명령어로서 구현될 수 있으며, 하나 이상의 데이터 처리 장치에 의한 명령어의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(300)의 동작들을 수행하게 할 수 있다.
클라이언트 디바이스(110)는 사용자 그룹 기반 컨텐츠 요청을 컴퓨팅 시스템(S1)으로 전송한다(302). 도 2의 동작(202)을 참조하여 전술한 바와 같이, 클라이언트 디바이스(110)는 클라이언트 디바이스에 제공될 하나 이상의 디지털 컴포넌트를 선택하기 위해 2개의 상이한 컨텐츠 요청, 즉 사용자 그룹 기반 컨텐츠 요청 및 컨텍스트 컨텐츠 요청을 전송할 수 있다. 이 예에서, 클라이언트 디바이스(110)에서 실행되는 애플리케이션(112)은 사용자 그룹 기반 컨텐츠 요청을 컴퓨팅 시스템(S1)으로 전송할 수 있다.
사용자 그룹 기반 컨텐츠 요청에는 일부 컨텍스트 신호, 예를 들어 URL 또는 URI와 같은 리소스에 대한 리소스 로케이터, 언어(예를 들어, 컨텐츠를 렌더링하는 애플리케이션에 의해 컨텐츠가 제시되는 언어) 및/또는 클라이언트 디바이스(110)의 대략적인 위치를 나타내는 대략적인 지리적 위치 정보가 포함될 수 있다.
사용자 그룹 기반 컨텐츠 요청에는 또한 클라이언트 디바이스(110)의 사용자가 할당된 사용자 그룹에 대한 사용자 그룹 식별자가 포함될 수 있다. 사용자 그룹 식별자는 예를 들어 각 사용자 그룹 식별자에 대한 개별 요청을 전송하는 대신 하나의 요청으로 모두 전송될 수 있다. 애플리케이션(112)은 각각의 사용자 그룹 식별자를 암호화할 수 있고 그 암호화된 사용자 그룹 식별자를 사용자 그룹 기반 컨텐츠 요청에 포함할 수 있다.
일부 구현에서, 클라이언트 디바이스(110)는 MPC 클러스터(130)의 컴퓨팅 시스템(S2)의 공개 키를 사용하여 각각의 사용자 그룹 식별자를 암호화한다. 확률적 공개 키 암호화 방식(scheme)이 각 사용자 그룹 식별자를 암호화하는데 사용될 수 있다. 이러한 암호화 방식의 확률적 특성은 암호화 방식이 동일한 공개 키로 반복적으로 호출될 때 암호화 방식이 동일한 평문(예를 들어, 사용자 그룹 식별자)을 다른 암호문(ciphertext)으로 암호화하는 의미론적(semantic) 보안을 제공한다. 사용자 그룹 식별자를 암호화하는데 사용할 수 있는 확률적 암호화 방식의 예로는 타원 곡선(Elliptic Curve) P-256 및 타원 곡선 P25519가 있다.
각 사용자 그룹 식별자에 대해, 애플리케이션(112)은 복합 메시지를 생성하고 그 복합 메시지를 컴퓨팅 시스템(S2)의 공개 키와 함께 확률적 공개 키 기반 암호화 알고리즘을 사용하여 암호화할 수 있다. 사용자 그룹 식별자에 대한 복합 메시지는 사용자 그룹 식별자, 애플리케이션 공개 키(예를 들어, 애플리케이션(112)에 의해 기밀로 유지되는 애플리케이션 개인 키에 대응하는 사용자 그룹 기반 컨텐츠 요청을 전송하는 애플리케이션(112)의 공개 키), 사용자 그룹 식별자에 대한 SRR 및 디지털 서명을 포함할 수 있다. 애플리케이션(112)은, 예를 들어, 애플리케이션 개인 키를 사용하여 사용자 그룹 식별자, 애플리케이션 공개 키, 및 SRR에 서명함으로써 복합 메시지의 다른 컨텐츠에 기초하여 디지털 서명을 생성할 수 있다.
그런 다음, 애플리케이션(112)은 컴퓨팅 시스템(S2)의 암호화 키를 사용하여 각 사용자 그룹 식별자에 대한 복합 메시지를 암호화할 수 있다. 이 암호화 프로세스는 컴퓨팅 시스템(S2)의 공개 키를 사용하여 복합 메시지에 확률적 비대칭 키 알고리즘을 적용하는 것을 포함할 수 있다. 컴퓨팅 시스템(S2)의 키를 사용하여 각 사용자 그룹 식별자를 암호화하는 것은 사용자 그룹 기반 컨텐츠 요청을 수신하는 컴퓨팅 시스템(S1)이 사용자 그룹 기반 컨텐츠 요청에 포함된 컨텍스트 신호와 사용자 그룹 식별자를 결합하는 것을 방지한다.
디지털 서명은 컴퓨팅 시스템(S2)이 사기를 검출할 수 있게 한다. 예를 들어, 디지털 서명의 검증이 실패하면, 그 디지털 서명이 생성된 후 복합 메시지의 컨텐츠가 수정된 것이다.
SRR은 또한 컴퓨팅 시스템(S2)이 사기, 예를 들어 사용자 그룹 멤버십 사기를 검출할 수 있게 한다. 각 복합 메시지에는 사용자 그룹 식별자에 대해 얻은 서로 다른 SRR이 포함될 수 있다. 즉, 사용자 그룹 기반 컨텐츠 요청은 사용자가 할당된 각 사용자 그룹 식별자에 대한 개별 SRR을 포함할 수 있다. 각 복합 메시지에는 사용자 그룹 식별자에 대한 SRR을 획득하는데 사용되는 다른 애플리케이션 공개 키도 포함될 수 있다. 이것은 컴퓨팅 시스템(S2)이 사용자 그룹 식별자 세트가 동일한 애플리케이션(112)으로부터 유래된 것이라고 추론하는 것을 방지하고, 컴퓨팅 시스템(S2)이 사용자가 속한 모든 사용자 그룹을 상관시키는 것을 가능하게 하지 않음으로써 사용자 프라이버시를 보호한다.
각 SRR은 발행자 출처(예를 들어, 컴퓨팅 시스템(S2)의 eTLD+1 도메인), 바인딩(binding), SRR을 획득하기 위해 상환된 신뢰 토큰을 발행한 신뢰 토큰 발행자(issuer)의 eTLD+1, 신뢰 토큰이 상환된 시간을 나타내는 상환 타임스탬프, 신뢰 토큰 발행자가 서명한 디지털 서명을 포함할 수 잇다. 서명은 수신자가 신뢰 토큰 발행자가 클라이언트 디바이스를 평가하고 그 디바이스를 신뢰할 수 있는 것으로 간주하고 SRR의 컨텐츠가 수정되지 않았음을 검증할 수 있도록 한다. 신뢰 토큰 발행자는 개인 키와 SRR의 다른 컨텐트를 사용하여 디지털 서명을 생성할 수 있다.
바인딩은 SRR을 사용자 그룹 식별자와 그 사용자 그룹 식별자에 대한 애플리케이션 공개 키 모두에 바인딩할 수 있다. 이것은 SRR이 (예를 들어, 다른 디바이스상의) 다른 애플리케이션에 의해 사용되거나 다른 그룹 식별자에 대해 사용되는 것을 방지한다. 일부 구현에서, 바인딩은 사용자 그룹 식별자의 암호화 해시 및 사용자 그룹 식별자에 대한 애플리케이션 공개 키이다. 일부 구현에서, 바인딩은 사용자 그룹 식별자의 해시 기반 메시지 인증 코드(HMAC) 및 사용자 그룹 식별자에 대한 애플리케이션 공개 키이다.
애플리케이션(112)은 신뢰 토큰 발행자로부터 각각의 사용자 그룹 식별자에 대한 SRR을 요청할 수 있다. 신뢰 토큰 발행자는 클라이언트 디바이스(110) 및/또는 애플리케이션(112)의 신뢰성 레벨에 기초하여 신뢰 토큰을 발행할 수 있다. 요청에는 각 사용자 그룹 식별자에 대해, 개별 신뢰 토큰과 공개 키 및 사용자 그룹 식별자의 암호화 해시(또는 HMAC)가 포함될 수 있다. 일부 구현에서, 애플리케이션(112)은 암호화 기능을 사용하여 각각의 사용자 그룹 식별자에 대한 암호화 해시를 생성한다. 예를 들어, 애플리케이션(112)은 사용자 그룹 식별자에 대해, 사용자 그룹 식별자의 HMAC 및 그 각각의 애플리케이션 공개 키를 생성할 수 있다.
사용자 그룹 식별자가 아닌 암호화 해시(예를 들어, 일부 구현에서 HMAC)를 신뢰 토큰 발행자에게 전송함으로써, 사용자가 할당된 사용자 그룹은 신뢰 토큰 발급자에게 유출되지 않는다. 신뢰 토큰 발행자는 신뢰 토큰 발행자의 개인 키를 사용하여 디지털 서명을 생성하는 것을 포함하여 각 사용자 그룹 식별자에 대한 SRR을 생성할 수 있다. 이를 통해 SRR의 수신자는 신뢰 토큰 발행자의 개인 키에 대응하는 공개 키를 사용하여 디지털 서명 검증을 시도함으로써 SRR의 컨텐츠가 변경되었는지 검출할 수 있다.
컴퓨팅 시스템(S1)이 클라이언트 디바이스(110)의 사용자가 할당된 사용자 그룹의 수를 학습하는 것을 방지하기 위해, 요청을 전송하는 애플리케이션(112)은 가짜(fake) 사용자 그룹 식별자를 암호화하고 그 암호화된 가짜 사용자 그룹 식별자를 사용자 그룹 기반 컨텐츠 요청에 삽입할 수 있다. 예를 들어, 애플리케이션(112)은 사용자 그룹 기반 컨텐츠 요청에 임의의 또는 주기적으로 변경되는 암호화된 가짜 사용자 그룹 식별자를 삽입할 수 있다. 각각의 가짜 사용자 그룹 식별자는 MPC 클러스터(130)의 컴퓨팅 시스템(S2)의 공개 키를 사용하여 암호화될 수 있다. 가짜 사용자 그룹 식별자는 공통 값(예를 들어, 0 또는 기타 상수 값)을 가질 수 있다.
이러한 방식으로 사용자 그룹 컨텐츠 요청을 생성하는 것은 컴퓨팅 시스템(S1)이 (사용자 그룹 식별자를 암호화함으로써) 각 사용자에 대한 사용자 그룹 식별자를 상관시키고 (가짜 식별자를 사용하여) 각 사용자가 할당된 사용자 그룹의 수를 학습하는 것을 방지한다. MPC 클러스터(130)가 많은 상이한 클라이언트 디바이스로부터 많은 요청을 수신할 수 있기 때문에, 이러한 기술은 컴퓨팅 시스템(S1 및 S2)이 각 사용자의 사용자 그룹 멤버십에 대해 학습하는 것을 방지할 수 있다.
사용자 그룹 컨텐츠 요청은 또한 예를 들어 각 사용자 그룹 식별자에 대한 암호화된 SRR에 추가하여 요청 자체에 대한 SRR을 포함할 수 있다. 이것은 컴퓨팅 시스템(S1)이 사용자 그룹 컨텐츠 요청이 신뢰할 수 있는 클라이언트 디바이스에 의해 전송되었음을 검증할 수 있게 한다. 컴퓨팅 시스템(S1)은 사용자 그룹 컨텐츠 요청이 애플리케이션(112)으로부터 수신된 후에 이 SRR을 검증할 수 있다. 예를 들어, 컴퓨팅 시스템(S1)은 신뢰 토큰 발행자의 공개 키를 사용하여 SRR의 서명을 검증할 수 있으며, 따라서 서명이 생성된 이후 SRR의 컨텐츠가 수정되지 않았음을 확인할 수 있다. 컴퓨팅 시스템(S1)은 또한 상환 타임스탬프가 최근, 예를 들어 사용자 그룹 기반 컨텐츠 요청이 수신된 시간의 임계치 내에 있음을 보장할 수 있다.
컴퓨팅 시스템(S1)은 사용자 그룹 기반 컨텐츠 요청에 포함된 컨텍스트 신호에 k-익명성을 적용한다(304). K-익명성 기술은 애플리케이션이 사용자 그룹 기반 컨텐츠 요청을 전송하는 각 사용자에 대한 컨텍스트 신호가 적어도 K명의 사용자 간에 공유되도록 하여 단일 사용자 또는 소규모 사용자 그룹을 고유하게 식별할 수 없도록 확인하는데 사용될 수 있다. 컨텍스트 신호에 k-익명성을 적용하는 경우, 컴퓨팅 시스템(S1)은 사용자 그룹 컨텐츠 요청이 수신된 예를 들어 많은 다른 사용자의 다수의 클라이언트 디바이스로부터 수신된 컨텍스트 신호를 일정 기간(예를 들어, 해당 날짜, 주, 월 등)에 사용할 수 있다.
컴퓨팅 시스템(S1)은 각 SRR에 포함된 암호 해시(예를 들어, 사용자 그룹 식별자 및 애플리케이션 공개 키의 암호 해시)를 사용하여 특정 컨텍스트 신호 세트를 전송한 고유 애플리케이션의 수를 결정할 수 있다. 컴퓨팅 시스템(S1)은 고유 애플리케이션의 수를 익명성 임계값과 비교할 수 있으며, 그 숫가 익명성 임계값을 충족하거나 초과하는 경우 컨텍스트 신호 세트가 k-익명성을 충족한다고 결정할 수 있다. 예를 들어 고유 애플리케이션 수가 익명성 임계값보다 적어 컨텍스트 신호 세트가 k-익명성을 충족하지 않는 경우, 컴퓨팅 시스템(S1)은 디지털 컴포넌트 없이 사용자 그룹 기반 컨텐츠 요청에 응답할 수 있다. 익명성 임계값은 타겟 k-익명성의 파라미터(k)를 기반으로 할 수 있다.
다른 예에서, 컴퓨팅 시스템(S1)은 사용자 그룹 기반 컨텐츠 요청에 포함된 각각의 컨텍스트 신호에 k-익명성을 적용할 수 있다. 예를 들어, 컴퓨팅 시스템(S1)은 개별 컨텍스트 신호가 수신된 고유 애플리케이션의 수를 익명성 임계값과 비교할 수 있다. 고유 애플리케이션의 수가 익명성 임계값을 충족하거나 초과하는 경우, 개별 컨텍스트 신호는 k-익명성을 충족한다. 컴퓨팅 시스템(S1)은 k-익명성을 충족하지 않는 컨텍스트 신호를 무시(예를 들어, 삭제)할 수 있지만 k-익명성을 충족하는 컨텍스트 신호로 프로세스를 계속할 수 있다.
컴퓨팅 시스템(S1)은 애플리케이션(112)으로부터 수신된 사용자 그룹 기반 컨텐츠 요청에 대한 고유 요청 식별자를 생성한다. 이 요청 식별자는 논스(nonce)(예를 들어, 임의(arbitrary), 의사 난수 또는 난수)와 선택된 컨텐츠가 제시될 리소스에 대한 리소스 로케이터를 포함하는 복합 메시지일 수 있다. 예를 들어, 요청 식별자는 논스와 도메인(예를 들어, example.com), URL 또는 리소스의 URI를 포함할 수 있다. 이것은 컴퓨팅 시스템(S1)이 컴퓨팅 시스템(S2)으로부터 수신된 선택 파라미터 식별자들을 상관시키고 선택 파라미터 식별자를 사용하여 후술하는 바와 같이 애플리케이션(112)으로 반환할 디지털 컴포넌트를 선택하는 것을 가능하게 한다.
그런 다음 컴퓨팅 시스템(S1)은 애플리케이션(112)으로부터 수신된 각각의 사용자 그룹 식별자(예를 들어, 컴퓨팅 시스템(S1)이 평문 사용자 그룹 식별자에 액세스할 수 없기 때문에 애플리케이션(112)로부터 수신된 각각의 암호화된 복합 메시지)에 대해, 컴퓨팅 시스템(S2)으로 각각의 요청을 전송할 수 있다(308). 요청(들)을 생성하기 전에, 컴퓨팅 시스템(S1)은 컴퓨팅 시스템(S1)이 소유한 비밀 키를 사용하여 애플리케이션(112)으로부터 수신된 사용자 그룹 기반 컨텐츠 요청으로 수신된 요청 식별자 및 컨텍스트 신호를 암호화할 수 있다. 요청 식별자의 암호화는 키를 사용하여 요청 식별자의 평문에 확률적 대칭 암호화 알고리즘을 사용할 수 있다. 유사하게, 컨텍스트 신호의 암호화는 키를 사용하여 컨텍스트 신호의 평문에 확률적 대칭 암호화 알고리즘을 사용할 수 있다. 각 요청에는 암호화된 요청 식별자, 암호화된 컨텍스트 신호, 및 사용자 그룹 식별자에 대한 암호화된 복합 메시지가 포함될 수 있다.
사용자 그룹 식별자당 하나의 요청을 전송함으로써, 컴퓨팅 시스템(S2)은 어떤 사용자 그룹 식별자가 동일한 애플리케이션(112) 또는 동일한 클라이언트 디바이스(110)로부터 온 것인지 추론할 수 없다. 예를 들어, 컴퓨팅 시스템(S1)은 다수의 상이한 클라이언트 디바이스에 대한 요청을 컴퓨팅 시스템(S2)으로 동시에 또는 짧은 시간 기간 내에, 예를 들어, 초, 밀리초 또는 분 내에 전송할 수 있다. 많은 다른 클라이언트 디바이스에 대해 많은 다른 요청이 전송되고 그 각각은 하나의 사용자 그룹 식별자에 대한 것이므로, 컴퓨팅 시스템(S2)은 특정 클라이언트 디바이스에 대한 사용자 그룹 식별자를 상관시킬 수 없다.
컴퓨팅 시스템(S2)은 사용자 그룹 식별자에 대해 k-익명성을 시행한다(310). 컴퓨팅 시스템(S2)은 사용자 그룹 기반 컨텐츠 요청에서 애플리케이션(112)으로부터 수신된 사용자 그룹 식별자들에 대해 k-익명성을 시행할 수 있어서, 공통되지 않는 사용자 그룹 식별자는 클라이언트 디바이스(110)의 사용자와 상관될 수 없다.
사용자 그룹 식별자들에 대한 k-익명성을 시행하기 위해, 컴퓨팅 시스템(S2)은 복합 메시지를 암호화하는데 사용된 공개 키에 대응하는 자신의 개인 키를 사용하여 각 요청의 복합 메시지를 해독한다. 전술한 바와 같이, 사용자 그룹 식별자에 대한 복합 메시지는 사용자 그룹 식별자, 애플리케이션 공개 키(예를 들어, 애플리케이션(112)에 의해 기밀로 유지되는 애플리케이션 개인 키에 대응하는 사용자 그룹 기반 컨텐츠 요청을 전송하는 애플리케이션(112)의 공개 키), 사용자 그룹 식별자에 대한 SRR 및 디지털 서명을 포함할 수 있다.
그런 다음 컴퓨팅 시스템(S2)은 합성 메시지를 검증할 수 있다. 여기에는 여러 유효성 검사가 포함될 수 있다. 컴퓨팅 시스템(S2)은 복합 메시지의 다른 컨텐츠가 수정되지 않았는지 확인하기 위해 애플리케이션 공개 키를 사용하여 디지털 서명을 검증하려고 시도할 수 있다. 컴퓨팅 시스템(S2)은 예를 들어, SRR의 타임스탬프에 의해 표현되는 시간이 그 검증이 수행되는 현재 시간의 임계 시간 내에 있음을 확인함으로써 SRR의 최신성(freshness)을 검증하려고 시도할 수 있다. 컴퓨팅 시스템(S2)은 SRR의 컨텐츠가 수정되지 않았는지 확인하기 위해 신뢰 토큰 발행자의 공개 키를 사용하여 SRR의 디지털 서명을 검증하려고 시도할 수 있다. 컴퓨팅 시스템(S2)은 SRR의 발행자 출처가 컴퓨팅 시스템(S2)의 eTLD+1과 매칭하는지 확인하기 위해 SRR의 발행자 출처를 검증하려고 시도할 수 있다. 컴퓨팅 시스템(S2)은 예를 들어 SRR의 바인딩 값이 사용자 그룹 식별자 및 애플리케이션 공개 키의 암호화 해시임을 확인함으로써 바인딩 값을 검증하려고 시도할 수 있다. 예를 들어, 컴퓨팅 시스템(S2)은 동일한 암호화 기능 및 키를 사용하여 암호화 해시를 재계산하고 이 해시를 바인딩 값과 비교할 수 있다.
이러한 검증은 잠재적으로 신뢰할 수 없는 애플리케이션, 예를 들어 애플리케이션(112) 또는 신뢰할 수 없는 컴퓨팅 시스템(S1)을 검출하는데 사용될 수 있다. 모든 검증이 성공하면, 컴퓨팅 시스템(S2)은 사용자 그룹 식별자에 대해 k-익명성을 시행할 수 있다. 개별 사용자 그룹 식별자가 k-익명성을 충족하는지 여부를 결정하기 위해, 컴퓨팅 시스템(S1)은 사용자 그룹 식별자를 포함하는 요청의 수, 예를 들어 사용자 그룹 식별자를 포함하는 요청을 전송한 애플리케이션의 수를 익명성 임계값과 비교할 수 있다. 요청 수가 익명성 임계값을 충족하거나 초과하는 경우, 컴퓨팅 시스템(S1)은 사용자 그룹 식별자가 k-익명성을 충족한다고 결정할 수 있다. 사용자 그룹 식별자가 가짜(예를 들어, 애플리케이션(112)에 의해 전송된 가짜 식별자)이거나 k-익명성을 충족하지 않는 경우, 컴퓨팅 시스템(S2)은 요청을 무시할 수 있고 해당 사용자 그룹 식별자에 대한 반환 요청을 컴퓨팅 시스템(S1)으로 전송하지 않을 수 있다.
가짜가 아니고 k-익명성을 통과하는 사용자 그룹 식별자에 대해, 컴퓨팅 시스템(S2)은 반환 요청을 컴퓨팅 시스템(S1)으로 전송한다(312). 사용자 그룹 식별자에 대한 이러한 반환 요청에는 사용자 그룹 식별자에 대해 수신된 암호화된 컨텍스트 신호(예를 들어, 컴퓨팅 시스템(S2)으로 전송된 요청에서 수신된 컴퓨팅 시스템(S1)의 키를 사용하여 암호화된 컨텍스트 신호), 이중 암호화된 요청 식별자 및 해독된 사용자 그룹 식별자가 포함될 수 있다. 즉, 컴퓨팅 시스템(S1)으로부터 수신된 요청에서 수신된 암호화된 복합 메시지의 사용자 그룹 식별자가 k-익명성을 통과하고 가짜가 아닌 경우, 컴퓨팅 시스템(S2)은 (확률적 대칭 키 암호화일 수도 있는) 컴퓨팅 시스템(S2)의 비밀 키를 사용하여 이미 암호화된 요청 식별자(컴퓨팅 시스템(S1)의 비밀 키를 사용하여 암호화됨)를 암호화할 수 있다. 그런 다음 컴퓨팅 시스템(S2)은 이 이중 암호화된 요청 식별자, 요청에서 수신된 암호화된 컨텍스트 신호, 사용자 그룹 식별자의 평문 값(컴퓨팅 시스템(S1)으로부터 요청과 함께 암호화된 형태로 수신됨)을 포함하는 반환 요청을 생성하고 전송할 수 있다.
컴퓨팅 시스템(S1)은 DSP/디지털 컴포넌트 제공자 제외를 각 반환 요청에 적용한다(314). 컴퓨팅 시스템(S1)은 암호화된 컨텍스트 신호를 자신의 비밀 키를 사용하여 해독하여 평문의 컨텍스트 신호를 복구할 수 있다. 이러한 컨텍스트 신호에는 선택한 컨텐츠가 제시될 발행자 리소스의 도메인, URL 또는 URI가 포함될 수 있다. 컴퓨팅 시스템(S1)은 이 정보를 발행자의 리소스와 함께 프리젠테이션하기 위한 디지털 컴포넌트를 제공하기에 적격인 DSP 및/또는 디지털 컴포넌트 제공자에 도메인, URL 또는 URI를 매핑하는 룩업 테이블과 비교할 수 있다. 발행자에 대한 SSP(170)는 룩업 테이블을 컴퓨팅 시스템(S1)에 업로드할 수 있다. 이것은 컴퓨팅 시스템(S1)이 DSP의 컴퓨터로 전송되는 요청의 수(예를 들어, 초당 쿼리 수)를 상당히 줄일 수 있는 DSP 필터를 구현할 수 있게 하고 따라서 네트워크 사용량과 DSP의 컴퓨터의 요청을 처리하는 부담을 줄일 수 있을 것이다.
일부 구현에서, 사용자 그룹 식별자는 사용자 그룹 식별자가 의도된 DSP 및/또는 디지털 컴포넌트 제공자 세트를 지정하기에 충분한 정보를 인코딩할 수 있다. 컴퓨팅 시스템(S1)은 사용자 그룹 식별자에 의해 지정된 DSP 및/또는 디지털 컴포넌트 제공자 세트와 룩업 테이블 필터링에서 살아남는 DSP 및/또는 디지털 컴포넌트 세트의 합집합(union)을 결정할 수 있다.
컴퓨팅 시스템(S1)은 사용자 그룹 기반 컨텐츠 선택 파라미터 요청을 생성하여 하나 이상의 DSP(150)로 전송한다(316). 컴퓨팅 시스템(S2)로부터 수신된 각 반환 요청에 대해, 컴퓨팅 시스템(S1)은 두 세트의 합집합에 있는 각 디지털 컴포넌트 제공자에 대한 DSP를 포함하여 두 세트의 합집합에 있는 각 DSP로 사용자 그룹 기반 컨텐츠 요청을 전송할 수 있다. 이러한 선택 파라미터 요청 각각에는 반환 요청의 이중 암호화된 사용자 그룹 식별자, 반환 요청의 사용자 그룹 식별자 및 반환 요청에 해당하는 평문의 컨텍스트 신호를 포함할 수 있다. 따라서, 클라이언트 디바이스(110)로부터 수신된 사용자 그룹 기반 컨텐츠 요청에 대해, 컴퓨팅 시스템(S1)은 하나 이상의 DSP(150) 각각으로, k-익명성을 충족하는 사용자 그룹 기반 컨텐츠 요청의 각 사용자 그룹 식별자에 대한 각각의 선택 파라미터 요청을 전송할 수 있다.
각각의 DSP(150)는 선택 파라미터를 컴퓨팅 시스템(S2)으로 전송할 수 있다(318). 예를 들어, 각각의 DSP(150)는 DSP(150)에 의해 표현되는 디지털 컴포넌트 제공자(들)를 대신하여 사용자 그룹 식별자 및/또는 컨텍스트 데이터에 기초하여 하나 이상의 디지털 컴포넌트를 선택할 수 있다. 각각의 디지털 컴포넌트에 대해, DSP(150)는 또한 사용자 그룹 식별자 및/또는 컨텍스트 데이터에 기초하여 디지털 컴포넌트에 대한 선택 파라미터를 생성하거나 선택할 수 있다.
그런 다음 DSP(150)는 선택 파라미터 요청에서 수신된 이중 암호화된 요청 식별자, 선택된 디지털 컴포넌트에 대한 서명된 크리에이티브 엘리먼트, 결정된 선택 파라미터, 및 선택된 디지털 컴포넌트를 생성/발행한 디지털 컴포넌트 제공자를 고유하게 식별하는 디지털 컴포넌트 제공자 식별자를 포함하는 선택 파라미터 응답을 생성할 수 있다. 그런 다음 DSP(150)는 선택 파라미터 응답을 컴퓨팅 시스템(S2)으로 전송할 수 있다.
컴퓨팅 시스템(S2)은 DSP(150)로부터 수신된 선택 파라미터에 k-익명성을 적용한다(320). 일부 구현에서, MPC 클러스터(130)는 다중 룩업 테이블을 사용하여 k-익명성을 시행하고 공유전(pre-share) 및 공유후(post-share) 선택 파라미터와 SSP(170)에 할당된 공유 금액의 기밀성을 유지한다. DSP(150)로부터 수신된 선택 파라미터는 공유전 선택 파라미터일 수 있다. 예를 들어, 발행자에 대한 SSP(170)는 선택 파라미터 경계 및 대응하는 선택 파라미터 식별자를 포함하는 제1 룩업 테이블(표 1)을 업로드할 수 있다.
경계 선택 파라미터 식별자 시맨틱
0 Parameter_ID0 N/A
P1 Parameter_ID1 선택 파라미터가 [0, P1]에 있는 경우 Parameter_ID0를 할당한다.
P2 선택 파라미터가 [P1, P2]에 있는 경우 Parameter_ID1을 할당한다.
... ... ...
Pn Parameter_IDn-1 선택 파라미터가 [Pn-1, Pn]에 있는 경우 Parameter_IDn-1을 할당한다.
Parameter_IDn 선택 파라미터가 [Pn, ∞]에 있는 경우 Parameter_IDn을 할당한다.
이 표에서 경계는 각 범위의 상한을 정의한다. 선택 파라미터가 특정 범위 내에 있는 경우, 컴퓨팅 시스템(S2)은 그 범위에 대한 선택 파라미터 식별자를 선택 파라미터에 할당한다.
선택 파라미터 식별자는 SSP(170) 및 컴퓨팅 시스템(S2)에만 알려진 특정 선택 파라미터 범위의 임의의 고유 식별자 이외의 의미를 가질 수 없다. 컴퓨팅 시스템(S2)은 이 룩업 테이블에 액세스하여 DSP(150)로부터 수신된 선택 파라미터에 대응하는 선택 파라미터 식별자를 식별할 수 있다. 컴퓨팅 시스템(S2)은 선택 파라미터 응답에서 DSP(150)로부터 수신된 각각의 선택 파라미터에 대한 선택 파라미터 식별자를 식별할 수 있다.
그런 다음 컴퓨팅 시스템(S2)은 선택 파라미터 응답, 선택 파라미터 식별자, 및 디지털 컴포넌트 제공자 식별자의 서명된 크리에이티브 엘리먼트 중 하나 이상에 대해 k-익명성을 시행할 수 있다. 이 k-익명성 기술은 클라이언트 디바이스(110)로부터 수신된 사용자 그룹 기반 컨텐츠 요청에 기초하여 생성된 선택 파라미터 응답을 포함하여, 많은 상이한 클라이언트 디바이스로부터 MPC 클러스터(130)에 의해 수신된 사용자 그룹 기반 컨텐츠 요청에 대한 선택 파라미터 응답을 포함할 수 있다. 개별 선택 파라미터가 k-익명성을 충족하는지 여부를 결정하기 위해, 컴퓨팅 시스템(S2)은 그 개별 선택 파라미터를 포함하는 선택 파라미터 응답의 수를 익명성 임계값과 비교할 수 있다. 그 수가 익명성 임계값을 충족하거나 초과하는 경우, 컴퓨팅 시스템(S2)은 선택 파라미터가 k-익명성을 만족한다고 결정할 수 있다. 컴퓨팅 시스템(S2)은 k-익명성을 만족하지 않는 임의의 선택 파라미터를 무시할 수 있다.
k-익명성을 충족하는 각각의 선택 파라미터에 대해, 컴퓨팅 시스템(S2)은 선택 파라미터 엘리먼트를 생성하고 컴퓨팅 시스템(S1)으로 전송한다(322). 선택 파라미터에 대한 선택 파라미터 엘리먼트에는 그 선택 파라미터에 대응하는 암호화된 요청 식별자, 선택 파라미터에 대응하는 서명된 크리에이티브 엘리먼트, 선택 파라미터에 대응하는 선택 파라미터 식별자, 및/또는 선택 매개 변수에 대응하는 디지털 컴포넌트를 생성/발행한 디지털 컴포넌트 제공자가 포함될 수 있다. 예를 들어, 컴퓨팅 시스템(S2)은 자신의 비밀 키를 사용하여 이중 암호화된 요청 식별자를 해독하여 컴퓨팅 시스템(S1)의 비밀 키를 사용하여 암호화된 상기 암호화된 요청 식별자를 복구할 수 있다.
컴퓨팅 시스템(S1)은 선택 파라미터 엘리먼트에 크리에이티브 제외 (exclusions)를 적용한다(324). 컴퓨팅 시스템(S1)은 평문으로 각 요청 식별자를 복구하기 위해 자신의 비밀 키를 사용하여 각 선택 파라미터 엘리먼트의 요청 식별자를 해독할 수 있다. 위에서 설명한 바와 같이, 각 요청 식별자는 선택된 컨텐츠가 제시될 리소스에 대한 논스 및 리소스 로케이터를 포함하는 복합 메시지이다. 리소스 로케이터는 크리에이티브 제외를 적용할 수 있다.
전술한 바와 같이, 발행자는 특정 속성을 갖는(예를 들어, 특정 카테고리와 관련된 컨텐츠를 갖는) 디지털 컴포넌트가 자신의 리소스와 함께 제시되는 것을 허용하지 않을 수 있다. 게시자를 위한 SSP(170)는 크리에이티브 제외를 지원하기 위해 디지털 컴포넌트 속성 세트를 정의할 수 있다. 이러한 속성은 유한 이산 세트(P = {P1, P2,...,Pn})로 나타낼 수 있다. SSP(170)는 서명된 크리에이티브 엘리먼트에 포함하기 위해 속성을 암호화하는 방법과 유사하게, SSP의 비밀 암호화 키를 사용한 결정론적 대칭 암호화 알고리즘을 사용하여 이러한 속성을 선택적으로 암호화할 수 있다.
컴퓨팅 시스템(S1)은 발행자에 대한 SSP(170)로부터 각 발행자에 대한 속성 세트를 주기적으로 획득할 수 있다. SSP(170)는 예를 들어 캐시에 로컬로 각 발행자에 대한 속성 세트를 저장할 수 있다. 예를 들어, 컴퓨팅 시스템(S1)은 하기 [표 2]와 유사한 데이터 구조를 유지할 수 있다.
리소스 로케이터 크리에이티브 제외
example.com/mainpage P1, P41, P90
example.com/secondpage P7
이 표에서, 각 속성(예를 들어, P1, P41 등)은 디지털 컴포넌트의 컨텐츠 카테고리, 디지털 컴포넌트에 의해 묘사되는 객체 또는 디지털 컴포넌트의 기타 속성일 수 있다. 각 리소스 로케이터에 대해, 크리에이티브 제외 열의 속성 세트는 디지털 컴포넌트에 할당된 경우, 리소스 로케이터에 해당하는 리소스와 함께 프레젠테이션을 위해 디지털 컴포넌트가 제공되지 않아야 함을 나타내는 속성을 나타낸다.
선택 파라미터 엘리먼트에 대한 크리에이티브 제외(배제)를 적용하기 위해, 컴퓨팅 시스템(S1)은 서명된 크리에이티브 엘리먼트로부터, 서명된 크리에이티브 엘리먼트의 메타데이터에 포함된 속성 세트를 획득할 수 있다. 그런 다음 컴퓨팅 시스템(S1)은 선택 파라미터 엘리먼트에 포함된 요청 식별자의 리소스 로케이터에 대한 크리에이티브 제외로서 정의된 속성 세트와 서명된 크리에이티브 엘리먼트의 속성 세트의 교집합(intersection)을 계산할 수 있다. 교집합이 비어 있는 경우, 서명된 크리에이티브 엘리먼트의 디지털 컴포넌트는 리소스 로케이터에 해당하는 리소스와 프리젠테이션할 자격이 있다. 그렇지 않은 경우, 컴퓨팅 시스템(S1)은 크리에이티브 엘리먼트 및 그의 선택 파라미터 엘리먼트를 무시할 수 있다.
컴퓨팅 시스템(S1)은 사용자 그룹 기반 컨텐츠 요청에 응답하여 애플리케이션(112)에 제공할 컨텐츠를 선택한다(326). 애플리케이션(112)으로부터 수신된 사용자 그룹 기반 컨텐츠 요청은 컨텐츠가 선택되고 있는 리소스의 리소스 로케이터 및 논스에 기초한 대응하는 요청 식별자를 갖는다. 이 요청 식별자를 사용하여 선택 파라미터 엘리먼트에 크리에이티브 제외를 적용한 후, 컴퓨팅 시스템(S1)은 이 요청 식별자와 함께 수신된 모든 선택 파라미터 엘리먼트 세트를 수집할 수 있다. 그런 다음 컴퓨팅 시스템(S1)은 선택 파라미터 엘리먼트 세트에 포함된 선택 파라미터 식별자들에 기초하여 디지털 컴포넌트를 선택할 수 있다.
일부 구현에서, 발행자는 SSP(170) 및/또는 DSP(150)로 가는 공유값(share)과 함께 선택된 디지털 컴포넌트에 대한 선택 파라미터의 일부를 할당받는다. 선택 파라미터는 화폐 금액을 나타낼 수 있으며 각각의 공유값은 이 화폐 금액의 일부일 수 있다. 선택 파라미터 엘리먼트의 선택 파라미터 식별자는 공유전(pre-share) 선택 파라미터에 해당한다. 공유값이 결정되는 방식은 보호되어야 하는 기밀 정보이다. 그렇게 하기 위해, 컴퓨팅 시스템(S1)은 2개의 룩업 테이블을 사용할 수 있으며, 이는 컴퓨팅 시스템(S1)이 공유값이 결정되는 방식에 관한 정보를 획득하는 것을 방지한다. 다른 구현에서, 동형 암호화와 같은 암호화 기술이 선택 파라미터에 대해 사용될 수 있다. 그러나, 이로 인해 대기 시간이 훨씬 길어지고 정보를 암호화 및 해독하는데 필요한 컴퓨팅 리소스(예를 들어, CPU 주기)가 필요하며, 문제 해결이 더 복잡해지고 룩업 테이블 사용에 비해 효율성이 크게 저하된다.
제1 룩업 테이블(아래 표 3)은 리소스 로케이터를 디지털 컴포넌트 식별자 및 공유 코드에 매핑할 수 있다. SSP(170)는 이 룩업 테이블을 컴퓨팅 시스템(S1)에 업로드할 수 있다. 공유 코드는 SSP(170) 이외의 엔티티에 의미가 없을 수 있다.
리소스 로케이터 디지털 컴포넌트 제공자
식별자
공유 코드
example.com/mainpage 76 A739
example.com/secondpage 91 320od
사용자 그룹 기반 컨텐츠 요청의 경우, 컴퓨팅 시스템(S1)은 선택 파라미터 엘리먼트 세트에서 각각의 서명된 크리에이티브 엘리먼트에 대한 공유 코드를 조회(lookup)할 수 있다. 컴퓨팅 시스템(S1)은 요청 식별자의 리소스 로케이터 및 서명된 크리에이티브 엘리먼트의 디지털 컴포넌트 식별자를 사용하여 서명된 크리에이티브 엘리먼트에 대한 공유 코드를 조회할 수 있다.
컴퓨팅 시스템(S1)은 제2 룩업 회 테이블(아래 표 4)을 사용하여 상기 선택 파라미터 엘리먼트 세트에서 각각의 서명된 크리에이티브 엘리먼트에 대한 선택 파라미터 식별자를 조회할 수 있다. SSP(170)는 또한 이 룩업 테이블을 컴퓨팅 시스템(S1)에 업로드할 수 있다.
발행자 반환 식별자 공유 코드 선택 파라미터 식별자
1 1683b Parameter_ID6
2 38r4j Parameter_ID1
... ... ...
m D2dv Parameter_ID93
발행자 반환 식별자는 발행자가 수신할 선택 파라미터의 공유값에 해당한다. 발행자 반환 식별자의 값은 단조적일 수 있다. 즉, 발행자 반환 식별자가 클수록 게시자가 받을 금액은 커질 것이다.
컴퓨팅 시스템(S1)은 크리에이티브 엘리먼트에 대한 공유 코드(표 3을 사용하여 식별됨) 및 크리에이티브 엘리먼트에 대한 선택 파라미터 식별자를 사용하여 선택 파라미터 엘리먼트 세트에서 각각의 서명된 크리에이티브 엘리먼트에 대한 발행자 반환 식별자를 조회할 수 있다.
동일한 요청 식별자를 갖는 모든 적격 크리에이티브 엘리먼트, 예를 들어 선택 파라미터 엘리먼트 세트의 각 크리에이티브 엘리먼트 중에서, 컴퓨팅 시스템(S1)은 가장 큰 발행자 반환 식별자에 대응하는 서명된 크리에이티브 엘리먼트를 선택한다.
컴퓨팅 시스템(S1)은 사용자 그룹 컨텐츠 응답을 애플리케이션(112)으로 전송한다(328). 도 2의 동작(210)을 참조하여 전술한 바와같이, 사용자 그룹 컨텐츠 응답에는 선택된 서명된 크리에이티브 엘리먼트, 선택된 서명된 크리에이티브 엘리먼트에 대한 발행자 반환 식별자, 서명된 크리에이티브 엘리먼트의 디지털 컴포넌트에 대한 디지털 컴포넌트 제공자 식별자, 및 서명된 크리에이티브 엘리먼트를 선택하기 위해 컨텐츠 선택 프로세스가 수행된 시간을 나타내는 타임스탬프가 포함될 수 있다. 사용자 그룹 컨텐츠 응답은 또한 컴퓨팅 시스템(S1)에 의해 생성된 디지털 서명을 포함할 수 있다. 이 사용자 그룹 컨텐츠 요청을 수신한 후, 애플리케이션(112)은 컨텍스트 컨텐츠 요청을 SSP(170)로 전송할 수 있고 리소스와 함께 프리젠테이션하기 위한 최종 디지털 컴포넌트를 선택하기 위해 도 2의 프로세스(200)를 계속할 수 있다.
도 4는 위에서 설명된 동작들을 수행하는데 사용될 수 있는 예시적인 컴퓨터 시스템(400)의 블록도이다. 시스템(400)은 프로세서(410), 메모리(420), 저장 디바이스(430), 및 입/출력 디바이스(440)를 포함한다. 컴포넌트(410, 420, 430, 440) 각각은 예를 들어 시스템 버스(450)를 사용하여 상호연결될 수 있다. 프로세서(410)는 시스템(400) 내에서 실행하기 위한 명령을 처리할 수 있다. 일부 구현에서, 프로세서(410)는 단일 스레드 프로세서이다. 다른 구현에서, 프로세서(410)는 다중 스레드 프로세서이다. 프로세서(410)는 메모리(420) 또는 저장 디바이스(430)에 저장된 명령어를 처리할 수 있다.
메모리(420)는 시스템(400) 내에 정보를 저장한다. 일 구현에서, 메모리(420)는 컴퓨터 판독 가능 매체이다. 일부 구현에서, 메모리(420)는 휘발성 메모리 유닛이다. 다른 구현에서, 메모리(420)는 비-휘발성 메모리 유닛이다.
저장 디바이스(430)는 시스템(400)을 위한 대용량 저장 디바이스를 제공할 수 있다. 일부 구현에서, 저장 디바이스(430)는 컴퓨터 판독 가능 매체이다. 다양한 상이한 구현에서, 저장 디바이스(430)는 예를 들어, 하드 디스크 디바이스, 광 디스크 디바이스, 네트워크를 통해 다수의 컴퓨팅 디바이스(예를 들어, 클라우드 저장 디바이스)에 의해 공유되는 저장 디바이스, 또는 일부 다른 대용량 저장 디바이스를 포함할 수 있다.
입/출력 디바이스(440)는 시스템(400)에 대한 입/출력 동작을 제공한다. 일부 구현에서, 입/출력 디바이스(440)는 네트워크 인터페이스 디바이스(예를 들어, 이더넷 카드), 직렬 통신 디바이스(예를 들어, RS-232 포트), 및/또는 무선 인터페이스 디바이스(예를 들어, 802.11 카드) 중 하나 이상을 포함할 수 있다. 다른 구현에서, 입/출력 디바이스는 입력 데이터를 수신하고 출력 데이터를 외부 디바이스(460), 예를 들어, 키보드, 프린터 및 디스플레이 디바이스로 보내도록 구성된 드라이버 디바이스를 포함할 수 있다. 그러나, 모바일 컴퓨팅 디바이스, 모바일 통신 디바이스, 셋탑 박스 텔레비전 클라이언트 디바이스 등과 같은 다른 구현도 사용될 수 있다.
예시적인 처리 시스템이 도 4에서 설명되었지만, 본 명세서에서 설명된 주제 및 기능적 동작의 구현은 다른 유형의 디지털 전자 회로, 또는 본 명세서에 개시된 구조 및 그 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
본 명세서에 기술된 주제 및 동작의 실시예는 본 명세서에 개시된 구조 및 그의 구조적 등가물, 또는 이들 중 하나 이상의 조합을 포함하는 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 본 명세서에 기술된 주제의 실시예는 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 저장 매체(또는 미디어) 상에 인코딩된, 하나 이상의 컴퓨터 프로그램, 즉, 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령어는 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 디바이스로의 전송을 위해 정보를 인코딩하도록 생성된 인공적으로 생성된 전파 신호, 예를 들어 기계 생성된 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 이에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령어의 소스 또는 목적지가 될 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 물리적 컴포넌트 또는 매체(예를 들어, 다중 CD, 디스크 또는 기타 저장 디바이스)일 수 있거나 이에 포함될 수 있다.
본 명세서에서 설명되는 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치의해 수행되는 동작으로 구현될 수 있다.
"데이터 처리 디바이스"라는 용어는 예를 들어 프로그램 가능한 프로세서, 컴퓨터, 시스템 온 칩, 또는 전술한 것들의 다수 또는 조합을 포함하여 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 장치는 예를 들어 FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(주문형 집적회호)과 같은 특수 목적 논리 회로를 포함할 수 있다. 장치는 또한 하드웨어에 추가하여 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 플랫폼 간 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 지칭될 수 있음)은 컴파되거나 해석된 언어, 선언적 또는 절차적 언어를 포함한 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램 또는 모듈, 컴포넌트, 서브루틴, 개체, 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있지만 반드시 그런 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 포함하는 파일의 일부, 문제의 프로그램 전용 단일 파일 또는 여러 조정 파일(예를 들어, 하나 이상의 모듈, 하위 프로그램 또는 코드 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있고 데이터 통신 네트워크로 상호 연결된 여러 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 FPGA 또는 ASIC과 같은 특수 목적 논리 회로에 의해 수행될 수 있고 장치 또한 이들로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는 예를 들어 범용 또는 특수 목적 마이크로프로세서를 모두 포함한다. 일반적으로, 프로세서는 판독 전용 메모리나 랜덤 액세스 메모리 또는 둘 다로부터 명령과 데이터를 수신한다. 컴퓨터의 필수 엘리먼트는 명령에 따라 동작을 수행하기 위한 프로세서와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 모두를 포함하거나 작동 가능하게 연결된다. 그러나, 컴퓨터에는 이러한 디바이스가 필요하지 않다. 더욱이 컴퓨터는 휴대전화, PDA, 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS(Global Positioning System) 수신기, 또는 USB(Universal Serial Bus) 플래시 드라이브와 같은 휴대용 저장 디바이스에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하는데 적합한 디바이스에는 예를 들어 반도체 메모리 디바이스(예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스), 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크); 광자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 비롯하여 모든 형태의 비-휘발성 메모리, 미디어 및 메모리 디바이스를 포함한다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 설명된 주제의 실시예는 사용자에게 정보를 표시하기 위한 디스플레이 디바이스(예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터)와 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스를 사용하여 사용자와의 상호 작용도 제공할 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각적 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 또한, 컴퓨터는 예를 들어 웹 브라우저로부터 수신된 요청에 대한 응답으로 사용자 디바이스의 웹 브라우저로 웹 페이지를 전송함으로써 사용자가 사용하는 디바이스로 문서를 보내고 문서를 수신하여 사용자와 상호 작용할 수 있다.
본 명세서에 기술된 주제의 실시예는 예를 들어 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 프론트엔드 컴포넌트(예를 들어, 그래픽 사용자 인터페이스가 있는 클라이언트 컴퓨터, 웹 브라우저 또는 사용자가 본 명세서에 설명된 주제의 구현과 상호 작용할 수 있는 앱)를 포함하거나, 또는 하나 이상의 백엔드, 미들웨어 또는 프론트 엔드 컴포넌트의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 통신 네트워크와 같은 디지털 데이터 통신의 모든 형태 또는 매체에 의해 상호 연결될 수 있다. 통신 네트워크의 예로는 LAN(Local Area Network) 및 WAN(Wide Area Network), 예를 들어 인터넷이 있다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램 덕분에 발생한다. 일부 실시예에서, 서버는 (예를 들어, 클라이언트 디바이스에 데이터를 표시하고 클라이언트 디바이스와 상호작용하는 사용자로부터 사용자 입력을 수신하기 위해) 데이터(예를 들어, HTML 페이지)를 클라이언트 디바이스로 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 서버에서 클라이언트 디바이스로로부터 수신될 수 있다.
본 명세서는 많은 특정 구현 세부 사항을 포함하지만, 이는 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안 되며, 오히려 특정 발명의 특정 실시예에 특정할 수 있는 특징에 대한 설명으로 해석되어야 한다. 별도의 실시예와 관련하여 본 명세서에 설명된 특정 특징은 단일 실시예에서 조합하여 구현될 수도 있다. 역으로, 단일 실시예의 맥락에서 설명된 다양한 특징은 또한 개별적으로 또는 임의의 적절한 하위 조합으로 다중 실시예에서 구현될 수 있다. 더욱이, 특징들이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 초기에 그렇게 청구될 수도 있지만, 청구된 조합의 하나 이상의 특징은 일부 경우에 조합에서 제거될 수 있으며 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 도면에 도시되어 있고 청구범위에 특정 순서로 인용되어 있지만, 이는 바람직한 결과를 달성하기 위해 이러한 동작들이 도시된 특정 순서 또는 순차적인 순서로 수행되거나 또는 모든 예시된 동작이 수행되어야 함을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서는 멀티태스킹과 병렬 처리가 유리할 수 있다. 더욱이, 위에서 설명된 실시예에서 다양한 시스템 모듈 및 컴포넌트의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 되며, 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 여러 소프트웨어 제품으로 패키징된다.
따라서, 주제의 특정 실시예가 설명되었다. 다른 실시예는 다음 청구항의 범위 내에 있다. 예를 들어, 청구범위에 언급된 동작들은 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 일 예로서, 첨부 도면에 도시된 프로세스는 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적인 순서를 반드시 필요로 하는 것은 아니다. 일부 경우 멀티태스킹 및 병렬 처리가 유리할 수 있다.

Claims (12)

  1. 방법으로서,
    제1 다자간 연산(MPC) 컴퓨팅 시스템에 의해 클라이언트 디바이스로부터, 암호화된 사용자 그룹 식별자 세트를 포함하는 컨텐츠 요청을 수신하는 단계와, 각각의 암호화된 사용자 그룹 식별자는 제2 MPC 컴퓨팅 시스템의 제1 암호화 키를 사용하여 암호화되고;
    각각의 암호화된 사용자 그룹 식별자에 대해, 암호화된 사용자 그룹 식별자를 포함하는 요청을 제2 MPC 컴퓨팅 시스템으로 전송하는 단계와;
    제2 MPC 컴퓨팅 시스템에 의해 수행되는 k-익명성 프로세스를 충족하는 각각의 사용자 그룹 식별자에 대해:
    제1 MPC 컴퓨팅 시스템에 의해 제2 MPC 컴퓨팅 시스템으로부터, 사용자 그룹 식별자의 평문(plaintext) 값을 수신하는 단계; 및
    제1 MPC 컴퓨팅 시스템에 의해, 사용자 그룹 식별자의 평문 값을 포함하는 선택 파라미터 요청을 하나 이상의 플랫폼으로 전송하는 단계와;
    제1 MPC 컴퓨팅 시스템에 의해 제2 MPC 컴퓨팅 시스템으로부터, 대응하는 디지털 컴포넌트에 대한 크리에이티브 엘리먼트 및 그 디지털 컴포넌트에 대한 선택 파라미터 식별자를 각각 포함하는 선택 파라미터 엘리먼트 세트를 수신하는 단계와;
    제1 MPC 컴퓨팅 시스템에 의해, 선택 파라미터 식별자에 기초하여 주어진 디지털 컴포넌트를 선택하는 단계와; 그리고
    제1 MPC 컴퓨팅 시스템에 의해 클라이언트 디바이스로, 디지털 컴포넌트에 대한 크리에이티브 엘리먼트를 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 컨텐츠 요청에는 디지털 컴포넌트가 요청되고 있는 리소스에 대한 리소스 로케이터가 포함되고, 상기 방법은,
    제1 MPC 컴퓨팅 시스템에 의해, 리소스 로케이터 및 컨텐츠 요청에 대응하는 논스(nonce)에 기초하여 요청 식별자를 생성하는 단계와; 그리고
    제1 MPC 컴퓨팅 시스템에 의해, 요청 식별자를 암호화하는 단계를 더 포함하고, 상기 요청은 암호화된 요청 식별자를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 k-익명성 프로세스를 총족하는 각각의 사용자 그룹 식별자의 평문 값을 수신하는 단계는 k-익명성 프로세스를 충족하는 각 사용자 그룹 식별자에 대한 반환 요청을 수신하는 단계를 포함하고, 각 반환 요청에는 사용자 그룹 식별자 및 제2 MPC 컴퓨팅 시스템의 제2 암호화 키를 사용하여 상기 암호화된 요청 식별자를 암호화함으로써 제2 MPC 컴퓨팅 시스템에 의해 생성된 암호화된 이중 암호화된 요청 식별자가 포함되고;
    각 선택 파라미터 요청은 이중 암호화된 요청 식별자를 포함하고; 그리고
    각 선택 파라미터 엘리먼트는 플랫폼으로부터, 크리에이티브 엘리먼트 및 선택 파라미터 엘리먼트의 선택 파라미터 식별자와 함께 이중 암호화된 요청을 수신한 후 그 이중 암호화된 요청 식별자를 해독함으로써 제2 MPC 컴퓨팅 시스템에 의해 생성된 암호화된 요청 식별자를 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 제2 MPC 컴퓨팅 시스템은,
    하나 이상의 플랫폼 각각으로부터, 이중 암호화된 요청 식별자, 개별 디지털 컴포넌트에 대한 개별 크리에이티브 엘리먼트, 개별 디지털 컴포넌트에 대한 선택 파라미터, 및 개별 디지털 컴포넌트를 발행하는 디지털 컴포넌트 제공자 식별자를 포함하는 선택 파라미터 응답을 수신하고;
    각각의 선택 파라미터 응답에 대해, 선택 파라미터의 선택 파라미터가 포함된 선택 파라미터 값의 범위에 기초하여 대응하는 선택 파라미터 식별자를 식별하고; 그리고
    선택 파라미터 응답 및 선택 파라미터 식별자에 기초하여 선택 파라미터 엘리먼트를 생성하는 것을 특징으로 하는 방법.
  5. 임의의 선행하는 항에 있어서,
    상기 컨텐츠 요청은 각 사용자 그룹 식별자에 대해, 암호화된 복합 메시지를 포함하고, 상기 암호화된 복합 메시지는 사용자 그룹 식별자, 컨텐츠 요청을 개시한 클라이언트 디바이스의 애플리케이션에 대한 애플리케이션 공개 키 및 클라이언트 디바이스가 신뢰할 수 있다고 결정하는 것 응답하여 신뢰 토큰 발행자에 의해 발행된 서명된 상환 기록을 포함하는 복합 메시지의 암호화된 버전을 포함하는 것을 특징으로 하는 방법.
  6. 임의의 선행하는 항에 있어서,
    상기 컨텐츠 요청에는 컨텍스트 신호가 포함되고, 상기 방법은,
    컨텍스트 신호가 k-익명성을 충족하는지 결정하는 단계와;
    컨텍스트 신호가 k-익명성을 충족한다고 결정하는 것에 응답하여:
    제1 MPC 컴퓨팅 시스템에 의해, 컨텍스트 신호를 암호화하는 단계와; 그리고
    요청에, k-익명성을 충족하는 각 컨텍스트 신호를 포함하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 임의의 선행하는 항에 있어서,
    각각의 크리에이티브 엘리먼트에서, 대응하는 디지털 컴포넌트에 대한 제1 속성 세트를 식별하는 단계와; 그리고
    룩업 테이블에서, 리소스의 발행자에 의해 제외된 제2 제외 속성(excluded properties) 세트를 식별하는 단계를 더 포함하고,
    상기 제1 MPC 컴퓨팅 시스템에 의해, 선택 파라미터에 기초하여 주어진 디지털 컴포넌트를 선택하는 단계는,
    각각의 크리에이티브 엘리먼트에 대해, 크리에이티브 엘리먼트에 대한 제1 속성 세트의 하나 이상의 속성이 제외 속성과 매칭하는지 여부를 결정하는 단계와; 그리고
    제외 속성과 매칭하는 적어도 하나의 속성이 각 크리에이티브 엘리먼트를 제외하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 임의의 선행하는 항에 있어서,
    상기 제1 MPC 컴퓨팅 시스템에 의해, 선택 파라미터 식별자에 기초하여 주어진 디지털 컴포넌트를 선택하는 단계는,
    각 선택 파라미터 엘리먼트에 대해:
    제1 룩업 테이블에서, 리소스에 대한 리소스 로케이터 및 크리에이티브 엘리먼트의 대응하는 디지털 컴포넌트를 발행하는 디지털 컴포넌트 제공자에 대한 디지털 컴포넌트 식별자에 기초하여 선택 파라미터 엘리먼트의 크리에이티브 엘리먼트에 대한 공유 코드를 식별하는 단계; 및
    제2 룩업 테이블에서, 공유 코드 및 선택 파라미터 엘리먼트의 선택 파라미터 식별자에 기초하여 발행자 반환 식별자를 식별하는 단계와; 그리고
    주어진 디지털 컴포넌트로서, 가장 높은 발행자 반환 식별자를 갖는 주어진 선택 파라미터 엘리먼트의 디지털 컴포넌트를 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 제1 MPC 컴퓨팅 시스템에 의해 클라이언트 디바이스로, 디지털 컴포넌트에 대한 크리에이티브 엘리먼트를 전송하는 단계는,
    크리에이티브 엘리먼트, 주어진 선택 파라미터 엘리먼트에 대한 발행자 반환 식별자, 주어진 디지털 컴포넌트에 대한 디지털 컴포넌트 제공자 식별자, 주어진 디지털 컴포넌트가 선택된 시간을 나타내는 타임스탬프, 및 디지털 서명을 포함하는 컨텐츠 요청 결과를 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 클라이언트 디바이스는 제2 플랫폼으로 제2 컨텐츠 요청을 전송하고;
    상기 제2 컨텐츠 요청 결과는 컨텐츠 결과 요청 및 추가 컨텍스트 신호를 포함하고; 그리고
    상기 제2 플랫폼은 주어진 디지털 컴포넌트를 포함하는 디지털 컴포넌트 세트 및 추가 컨텍스트 신호에 기초하여 선택된 하나 이상의 디지털 컴포넌트 중에서 클라이언트 디바이스에서 프리젠테이션하기 위한 제2 디지털 컴포넌트를 선택하는 것을 특징으로 하는 방법.
  11. 시스템으로서,
    하나 이상의 프로세서와; 그리고
    하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 임의의 선행하는 항의 방법을 수행하게 하는 명령어를 저장하는 하나 이상의 저장 디바이스를 포함하는 시스템.
  12. 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 제1항 내지 제10항 중 어느 한 항의 방법을 수행하게 하는 명령어를 포함하는 컴퓨터 판독 가능 매체.
KR1020227039403A 2020-08-02 2021-04-21 다자간 연산 및 k-익명성 기술 사용한 기밀 정보 보호 KR20220163483A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL276440 2020-08-02
IL276440A IL276440A (en) 2020-08-02 2020-08-02 Using multilateral calculation techniques and k-anonymity to protect confidential information
PCT/US2021/028354 WO2022031329A1 (en) 2020-08-02 2021-04-21 Using multi-party computation and k-anonymity techniques to protect confidential information

Publications (1)

Publication Number Publication Date
KR20220163483A true KR20220163483A (ko) 2022-12-09

Family

ID=80117619

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227039403A KR20220163483A (ko) 2020-08-02 2021-04-21 다자간 연산 및 k-익명성 기술 사용한 기밀 정보 보호

Country Status (7)

Country Link
US (1) US20230144140A1 (ko)
EP (1) EP4128645A1 (ko)
JP (1) JP7475492B2 (ko)
KR (1) KR20220163483A (ko)
CN (1) CN115552838A (ko)
IL (1) IL276440A (ko)
WO (1) WO2022031329A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240163259A1 (en) * 2022-06-02 2024-05-16 Google Llc Privacy preserving group-based content distribution
CN117614612A (zh) * 2024-01-24 2024-02-27 蓝象智联(杭州)科技有限公司 一种保护隐私的多方数据统计方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2837848A1 (en) 2011-06-02 2012-12-06 Nec Corporation Distributed anonymization system, distributed anonymization device, and distributed anonymization method
JP5957197B2 (ja) 2011-10-06 2016-07-27 株式会社電通 端末装置、サーバ装置、ネットワークシステム、通信方法及び通信プログラム
JP2014170369A (ja) 2013-03-04 2014-09-18 Nec Corp 情報処理装置、情報処理システム、及び、情報匿名化方法
US10614242B2 (en) 2016-09-30 2020-04-07 Northwestern University System and method for secure query processing for private data networks
EP3477527A1 (en) * 2017-10-31 2019-05-01 Twinpeek Privacy management
CN112088374B (zh) * 2018-04-05 2024-04-30 谷歌有限责任公司 作为浏览器Cookie的替代的域特定浏览器标识符
US11403420B2 (en) 2018-08-31 2022-08-02 Visa International Service Association System, method, and computer program product for maintaining user privacy in advertisement networks

Also Published As

Publication number Publication date
JP7475492B2 (ja) 2024-04-26
US20230144140A1 (en) 2023-05-11
CN115552838A (zh) 2022-12-30
IL276440A (en) 2022-03-01
JP2023527709A (ja) 2023-06-30
EP4128645A1 (en) 2023-02-08
WO2022031329A1 (en) 2022-02-10

Similar Documents

Publication Publication Date Title
US11790111B2 (en) Verifiable consent for privacy protection
EP4022845B1 (en) Cryptographically secure data protection
US20230050222A1 (en) Cryptographically secure request verification
JP7238213B2 (ja) コンテンツ選択プロセスの完全性を改善するためのセキュアマルチパーティ計算の使用
US20240187420A1 (en) Securing browser cookies
JP7475492B2 (ja) 機密情報を保護するためのマルチパーティ計算およびk-匿名性技法の使用
JP2023096089A (ja) グループ署名による匿名イベント証明
KR102608325B1 (ko) 클라이언트 장치에서 통신의 무결성 보호
US20220417034A1 (en) Anonymous event attestation
US11736459B2 (en) Preventing fraud in aggregated network measurements
US11841978B2 (en) Protecting access to information in online interactions
KR20220161428A (ko) 정보 액세스를 제한하는 보안 네트워크 통신