KR20220052352A - Online privacy protection technology - Google Patents

Online privacy protection technology Download PDF

Info

Publication number
KR20220052352A
KR20220052352A KR1020227009695A KR20227009695A KR20220052352A KR 20220052352 A KR20220052352 A KR 20220052352A KR 1020227009695 A KR1020227009695 A KR 1020227009695A KR 20227009695 A KR20227009695 A KR 20227009695A KR 20220052352 A KR20220052352 A KR 20220052352A
Authority
KR
South Korea
Prior art keywords
client device
mpc
server
mpc server
key
Prior art date
Application number
KR1020227009695A
Other languages
Korean (ko)
Inventor
강 왕
아르디안 포에르노모
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20220052352A publication Critical patent/KR20220052352A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3255Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

본원 명세서는 사용자 정보의 공유 또는 누출을 방지하는 기술을 설명한다. 일 양태에서, 방법은 클라이언트 디바이스의 사용자가 속하는 적어도 하나의 관심 그룹의 선택 기준에 대한 요청을 제1 MPC 서버에 의해 수신하는 단계를 포함한다. 수신된 요청은 클라이언트 디바이스의 식별자를 제1 MPC 서버에 공개하지 않는다. 요청을 수신하는 단계에 응답하여, 제1 MPC 서버는 제1 MPC 서버의 캐시로부터 검색된 적어도 하나의 관심 그룹의 정렬된 선택 기준의 세트를 결정한다. 정렬된 선택 기준의 세트는 제2 MPC 서버에 의해 공개되는 것으로부터 보호된 키/값 쌍의 세트로 변환된다. 제1 MPC 서버는 제2 MPC 서버가 가장 높은 값을 갖는 키를 식별할 수 있게 하는 데이터와 함께 키/값 쌍 세트를 제2 MPC 서버에 전송한다.This specification describes techniques for preventing the sharing or leakage of user information. In an aspect, a method includes receiving, by a first MPC server, a request for selection criteria of at least one interest group to which a user of a client device belongs. The received request does not disclose the identifier of the client device to the first MPC server. In response to receiving the request, the first MPC server determines the ordered set of selection criteria of the at least one interest group retrieved from the cache of the first MPC server. The ordered set of selection criteria is converted into a set of key/value pairs that are protected from being published by the second MPC server. The first MPC server sends to the second MPC server a set of key/value pairs along with data enabling the second MPC server to identify the key with the highest value.

Description

온라인 프라이버시 보호 기술Online privacy protection technology

본 발명은 온라인 프라이버시 보호 기술에 관한 것이다.The present invention relates to online privacy protection technology.

본 발명은 온라인 환경에서 데이터 처리 및 사용자 프라이버시 보호에 관한 것이다. 온라인 사용자 프라이버시의 향상으로 인해 많은 브라우저 개발자가 사용자 데이터를 처리하는 방식을 변경했다. 예를 들어, 제3자 쿠키는 일부 브라우저에서 더 이상 지원되지 않지만, 제3자 쿠키의 사용 중단으로 인해 관련성이 낮은 콘텐츠가 사용자에게 전달될 수 있다.The present invention relates to data processing and user privacy protection in an online environment. Improvements in online user privacy have changed the way many browser developers handle user data. For example, although third-party cookies are no longer supported in some browsers, the deprecation of third-party cookies may result in less relevant content being delivered to users.

일반적으로, 본원 명세서에 기술된 주제의 하나의 혁신적인 양태는 방법이되, 상기 방법은 MPC 클러스터의 제1 다자간 연산(MPC) 서버(본원 명세서에서 제1 MPC 시스템 또는 제1 컴퓨팅 시스템이라고도 함)에 의해 그리고 MPC 클러스터의 제2 MPC 서버(본원 명세서에서 제2 MPC 시스템 또는 제2 컴퓨팅 시스템이라고도 함)로부터 클라이언트 디바이스의 특정 사용자가 속하는 둘 이상의 관심 그룹의 세트 중 적어도 하나의 관심 그룹의 선택 기준에 대한 요청을 수신하는 단계로, 수신된 요청은 클라이언트 디바이스의 식별자를 어느 MPC 시스템에도 공개하지 않는, 선택 기준에 대한 요청을 수신하는 단계를 포함하며, 요청을 수신하는 단계에 응답하여, 제2 MPC 서버에 의해 공개되는 것으로부터 보호된 요청의 부분을 사용하여 제1 MPC 서버의 캐시로부터 검색된, 클라이언트 디바이스의 특정 사용자가 속하는 둘 이상의 관심 그룹 세트 중 적어도 하나의 관심 그룹의 정렬된 선택 기준의 세트를 제1 MPC 서버에 의해 결정하는 단계, 정렬된 선택 기준의 세트를 키/값 쌍의 세트로 변환하는 단계로, 키/값 쌍 각각의 값은 제2 MPC 서버에 의해 공개되는 것으로부터 보호되는, 정렬된 선택 기준의 세트를 키/값 쌍의 세트로 변환하는 단계, 및 제1 MPC 서버에 의해, 키/값 쌍의 세트의 값을 제2 MPC 서버에 공개하지 않고 제2 MPC 서버가 가장 높은 값을 갖는 키를 식별할 수 있게 하는 데이터와 함께 키/값 쌍의 세트를 제2 MPC 서버에 전송하는 단계를 포함한다.In general, one innovative aspect of the subject matter described herein is a method, wherein the method is configured on a first multiparty computing (MPC) server (also referred to herein as a first MPC system or a first computing system) of an MPC cluster. for selection criteria of at least one interest group from a set of two or more interest groups to which a particular user of the client device belongs by and from a second MPC server (also referred to herein as a second MPC system or a second computing system) of the MPC cluster; Receiving the request, the received request not disclosing an identifier of the client device to any MPC system, the method comprising: receiving a request for selection criteria, in response to receiving the request, a second MPC server presents an ordered set of selection criteria of at least one interest group of two or more interest group sets to which a particular user of the client device belongs, retrieved from the cache of the first MPC server using the portion of the request protected from being published by determining by one MPC server, converting the sorted set of selection criteria into a set of key/value pairs, wherein the value of each key/value pair is protected from disclosure by a second MPC server converting, by the first MPC server, the set of selected selection criteria into a set of key/value pairs; sending the set of key/value pairs to the second MPC server together with data enabling identification of the key with

일부 구현예들에서, 방법은, 제1 MPC 서버에 의해 그리고 제1 MPC 서버 및 제2 MPC 서버와 상이한 콘텐츠 배포 시스템으로부터, 콘텐츠 배포 시스템에 의해 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 예측되는 주어진 관심 그룹의 주어진 선택 기준을 수신하는 단계 및 제1 MPC 서버에 의해 그리고 제1 MPC 서버의 캐시에서, 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 예측되는 주어진 관심 그룹의 주어진 선택 기준을 캐싱하는 단계를 또한 포함한다.In some implementations, the method includes a given interest predicted to include a particular user of a client device by a content distribution system by a first MPC server and from a content distribution system different from the first MPC server and the second MPC server. receiving the given selection criteria of the group and caching, by the first MPC server and in the cache of the first MPC server, the given selection criteria of the given interest group predicted to include a particular user of the client device. do.

일부 구현예들에서, 방법은, 콘텐츠 배포 시스템에 의해 클라이언트 디바이스에 의해 제출된 콘텐츠 요청을 수신하는 단계, 콘텐츠 요청에 대한 응답으로 콘텐츠 요청에 응답하여 후보 선택 기준을 생성하는 단계, 콘텐츠 요청에 기초하여 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 주어진 관심 그룹을 결정하는 단계, 주어진 관심 그룹이 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 결정에 기초하여 주어진 관심 그룹의 주어진 선택 기준을 생성하는 단계, 콘텐츠 배포 시스템에 의해 후보 배포 기준 및 주어진 배포 기준을 클라이언트 디바이스로 전송하는 단계 및 콘텐츠 배포 시스템에 의해 제1 MPC 서버로 주어진 관심 그룹의 주어진 배포 기준을 전송하지만, 후보 배포 기준은 전송하지 않는 단계를 또한 포함한다.In some implementations, a method includes receiving a content request submitted by a client device by a content distribution system, generating a candidate selection criterion in response to the content request in response to the content request, based on the content request determining a given interest group that is predicted to include a particular user of the client device, and generating a given selection criterion of the given interest group based on the determination that the given interest group is predicted to include a particular user of the client device. , sending, by the content distribution system, the candidate distribution criteria and the given distribution criteria to the client device, and sending, by the content distribution system, the given distribution criteria of the given interest group to the first MPC server, but not sending the candidate distribution criteria. also includes.

일부 구현예들에서, 방법은, 제2 MPC 서버에 의해 액세스될 수 없는 제1 암호화된 요청을 제2 MPC 서버에 의해 수신하는 단계, 제2 MPC 서버에 의해 제1 암호화된 요청을 제1 MPC 서버에 전달하는 단계, 제1 MPC 서버로부터 키/값 쌍의 세트를 수신하는 단계, 제2 MPC 서버에 의해 키/값 쌍의 값을 공개하지 않고 가장 높은 값을 갖는 주어진 키/값 쌍을 식별하는 단계, 주어진 키/값 쌍을 포함하는 제1 암호화된 요청에 대한 제1 암호화되고 서명된 응답을 생성하는 단계로, 제1 서명된 응답은 제2 MPC 서버의 개인 키로 서명되는, 제1 암호화되고 서명된 응답을 생성하는 단계 및 제1 암호화된 요청에 응답하여 클라이언트 디바이스에 제1 암호화되고 서명된 응답을 전송하는 단계를 또한 포함한다.In some implementations, the method includes receiving, by the second MPC server, a first encrypted request that cannot be accessed by the second MPC server, and receiving the first encrypted request by the second MPC server to the first MPC forwarding to a server, receiving a set of key/value pairs from a first MPC server, identifying a given key/value pair with a highest value without disclosing the value of the key/value pair by a second MPC server generating a first encrypted signed response to the first encrypted request comprising a given key/value pair, wherein the first signed response is signed with a private key of a second MPC server and generating the encrypted signed response and sending the first encrypted signed response to the client device in response to the first encrypted request.

일부 구현예들에서, 방법은, 제2 MPC 서버에 의해 전송된 제1 암호화되고 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계, 클라이언트 디바이스에 의해 제1 암호화되고 서명된 응답이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계, 클라이언트 디바이스에 의해 제1 서명된 응답으로부터 제1 관심 그룹을 복구하는 단계, 클라이언트 디바이스에 의해 제1 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계, 클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계, 클라이언트 디바이스에 의해 제1 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계, 클라이언트 디바이스에 의해 콘텐츠 배포 시스템으로부터 후보 선택 기준 및 주어진 선택 기준을 수신하는 단계, 클라이언트 디바이스에 의해 제1 선택 기준, 주어진 선택 기준 및 후보 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 또한 포함한다.In some implementations, the method includes receiving, by a client device, a first encrypted and signed response sent by a second MPC server, wherein the first encrypted and signed response by the client device is sent to the first MPC server confirming that it was signed by the client device, recovering the first interest group from the first signed response by the client device, confirming by the client device that the first interest group includes a specific user, by the client device confirming that the value of the given key/value pair is signed by the first MPC server, decrypting the value of the given key/value pair to restore the first selection criterion by the client device, the content distribution system by the client device receiving the candidate selection criteria and the given selection criteria from

일부 구현예들에서, 방법은, 클라이언트 디바이스에 의해 특정 사용자를 포함하는 관심 그룹을 제1 관심 그룹 세트 및 제1 관심 그룹 세트와 상이한 제2 관심 그룹 세트로 기술하는 단계, 클라이언트 디바이스에 의해 제2 MPC 서버에 특정 사용자를 포함하는 제1 관심 그룹 세트를 포함한 제1 암호화된 요청을 전송하는 단계, 클라이언트 디바이스에 의해 제1 MPC 서버에 특정 사용자를 포함하는 제2 관심 그룹 세트를 포함한 제2 암호화된 요청을 전송하는 단계, 제1 MPC 서버에 의해 전송된 제2 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계, 클라이언트 디바이스에 의해 제2 서명된 응답이 제2 MPC 서버에 의해 서명되었음을 확인하는 단계, 클라이언트 디바이스에 의해 서명된 응답으로부터 지정된 관심 그룹을 복구하는 단계, 클라이언트 디바이스에 의해 지정된 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계, 클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제2 MPC 서버에 의해 서명되었음을 확인하는 단계, 클라이언트 디바이스에 의해 제3 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계를 또한 포함하며, 제어 선택 기준을 선택하는 단계는 제1 선택 기준, 주어진 선택 기준, 후보 선택 기준 및 제3 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 포함한다.In some implementations, the method includes, by the client device, describing, by the client device, an interest group comprising a particular user as a first interest group set and a second interest group set different from the first interest group set; sending to the MPC server a first encrypted request comprising a first set of interest groups comprising the specific user, by the client device to the first MPC server a second encrypted request comprising a second set of interest groups comprising the specific user sending the request, receiving by the client device a second signed response sent by the first MPC server, confirming by the client device that the second signed response is signed by the second MPC server; recovering the specified interest group from the response signed by the client device, confirming that the interest group specified by the client device includes the specific user, the value of the key/value pair given by the client device is the second MPC also comprising verifying that it was signed by the server, decrypting the value of the given key/value pair to recover the third selection criterion by the client device, wherein the selecting the control selection criterion comprises the first selection criterion, the given and selecting a control selection criterion from among the selection criterion, the candidate selection criterion, and the third selection criterion.

일부 구현예들에서, 방법은, 제1 MPC 서버에 의해 액세스될 수 없는 제2 암호화된 요청을 제1 MPC 서버에 의해 수신하는 단계, 제1 MPC 서버에 의해 제2 암호화된 요청을 제2 MPC 서버에 전달하는 단계, 제2 MPC 서버로부터 키/값 쌍의 상이한 세트를 수신하는 단계, 제1 MPC 서버에 의해 상이한 세트의 키/값 쌍의 값을 공개하지 않고 가장 높은 값을 갖는 특정 키/값 쌍을 식별하는 단계, 특정 키/값 쌍을 포함하는 제2 암호화된 요청에 대한 제2 서명된 응답을 생성하는 단계로, 제1 서명된 응답은 제2 MPC 서버의 개인 키로 서명되는, 제2 서명된 응답을 생성하는 단계 및 제2 암호화된 요청에 응답하여 클라이언트 디바이스에 제2 서명된 응답을 전송하는 단계를 또한 포함한다.In some implementations, the method includes receiving, by the first MPC server, a second encrypted request that cannot be accessed by the first MPC server, and receiving the second encrypted request by the first MPC server to the second MPC forwarding to a server, receiving a different set of key/value pairs from a second MPC server, the specific key/with the highest value without disclosing the different sets of key/value pair values by the first MPC server identifying a value pair, generating a second signed response to a second encrypted request comprising the specific key/value pair, wherein the first signed response is signed with a private key of a second MPC server It also includes generating a second signed response and sending a second signed response to the client device in response to the second encrypted request.

일반적으로, 본원 명세서에 기술된 주제의 다른 혁신적인 양태는 시스템이되, 상기 시스템은 하나 이상의 프로세서 및 실행 시에 하나 이상의 프로세서가 동작을 수행하게 하는 명령을 포함하는 하나 이상의 메모리 부재를 포함하며, 상기 동작은, MPC 클러스터의 제1 다자간 연산(MPC) 시스템 서버에 의해 그리고 MPC 클러스터의 제2 MPC 서버로부터 클라이언트 디바이스의 특정 사용자가 속하는 둘 이상의 관심 그룹의 세트 중 적어도 하나의 관심 그룹의 선택 기준에 대한 요청을 수신하는 단계로, 수신된 요청은 클라이언트 디바이스의 식별자를 제1 MPC 서버에 공개하지 않는, 선택 기준에 대한 요청을 수신하는 단계를 포함하며, 요청을 수신하는 단계에 응답하여, 제2 MPC 서버에 의해 공개되는 것으로부터 보호된 요청의 부분을 사용하여 제1 MPC 서버의 캐시로부터 검색된, 클라이언트 디바이스의 특정 사용자가 속하는 둘 이상의 관심 그룹의 세트 중 적어도 하나의 관심 그룹의 정렬된 선택 기준의 세트를 제1 MPC 서버에 의해 결정하는 단계, 정렬된 선택 기준의 세트를 키/값 쌍의 세트로 변환하는 단계로, 키/값 쌍 각각의 값은 제2 MPC 서버에 의해 공개되는 것으로부터 보호되는, 정렬된 선택 기준의 세트를 키/값 쌍의 세트로 변환하는 단계, 및 제1 MPC 서버에 의해, 키/값 쌍의 세트의 값을 제2 MPC 서버에 공개하지 않고 제2 MPC 서버가 가장 높은 값을 갖는 키를 식별할 수 있게 하는 데이터와 함께 키/값 쌍의 세트를 제2 MPC 서버에 전송하는 단계를 포함한다.Generally, another innovative aspect of the subject matter described herein is a system comprising one or more processors and one or more memory members comprising instructions that, when executed, cause the one or more processors to perform operations, the system comprising: The operation is performed by a first multiparty computing (MPC) system server of the MPC cluster and from a second MPC server of the MPC cluster for selection criteria of at least one interest group of a set of two or more interest groups to which a particular user of the client device belongs. Receiving the request, the received request not disclosing an identifier of the client device to the first MPC server, the method comprising: receiving a request for selection criteria; in response to receiving the request, the second MPC An ordered set of selection criteria of at least one interest group of the set of two or more interest groups to which a particular user of the client device belongs, retrieved from the cache of the first MPC server using the portion of the request that is protected from being published by the server. is determined by the first MPC server, converting the ordered set of selection criteria into a set of key/value pairs, wherein the value of each key/value pair is protected from disclosure by the second MPC server. , converting the ordered set of selection criteria into a set of key/value pairs, and by the first MPC server, the second MPC server is impersonated without disclosing, by the first MPC server, the values of the set of key/value pairs to the second MPC server. sending the set of key/value pairs to the second MPC server along with data enabling identification of the key with the high value.

일부 구현예들에서, 동작(전술한 시스템의 하나 이상의 프로세서에 의해 수행됨)은, 제1 MPC 서버에 의해 그리고 제1 MPC 서버 및 제2 MPC 서버와 상이한 콘텐츠 배포 시스템으로부터, 콘텐츠 배포 시스템에 의해 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 예측되는 주어진 관심 그룹의 주어진 선택 기준을 수신하는 단계 및 제1 MPC 서버에 의해 그리고 제1 MPC 서버의 캐시에서, 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 예측되는 주어진 관심 그룹의 주어진 선택 기준을 캐싱하는 단계를 또한 포함한다.In some implementations, the operation (performed by one or more processors of the system described above) is performed by a client by a content distribution system, by the first MPC server and from a content distribution system different from the first MPC server and the second MPC server. receiving, by the first MPC server and in a cache of the first MPC server, given selection criteria of a given interest group predicted to include a particular user of the device, and a given interest predicted to include the particular user of the client device It also includes caching the given selection criteria of the group.

일부 구현예들에서, 동작은, 콘텐츠 배포 시스템에 의해 클라이언트 디바이스에 의해 제출된 콘텐츠 요청을 수신하는 단계; 콘텐츠 요청에 대한 응답으로 콘텐츠 요청에 응답하여 후보 선택 기준을 생성하는 단계; 콘텐츠 요청에 기초하여 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 주어진 관심 그룹을 결정하는 단계; 주어진 관심 그룹이 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 결정에 기초하여 주어진 관심 그룹의 주어진 선택 기준을 생성하는 단계; 콘텐츠 배포 시스템에 의해 후보 배포 기준 및 주어진 배포 기준을 클라이언트 디바이스로 전송하는 단계 및 콘텐츠 배포 시스템에 의해 제1 MPC 서버로 주어진 관심 그룹의 주어진 배포 기준을 전송하지만, 후보 배포 기준은 전송하지 않는 단계를 또한 포함한다.In some implementations, the operation includes: receiving a content request submitted by a client device by the content distribution system; generating candidate selection criteria in response to the content request in response to the content request; determining a given interest group predicted to include a particular user of the client device based on the content request; generating a given selection criterion of a given interest group based on a determination that the given interest group is predicted to include a particular user of the client device; sending, by the content distribution system, the candidate distribution criteria and the given distribution criteria to the client device, and sending, by the content distribution system, the given distribution criteria of the given interest group to the first MPC server, but not sending the candidate distribution criteria. Also includes.

일부 구현예들에서, 동작은, 제2 MPC 서버에 의해 액세스될 수 없는 제1 암호화된 요청을 제2 MPC 서버에 의해 수신하는 단계; 제2 MPC 서버에 의해 제1 암호화된 요청을 제1 MPC 서버에 전달하는 단계; 제1 MPC 서버로부터 키/값 쌍의 세트를 수신하는 단계; 제2 MPC 서버에 의해 키/값 쌍의 값을 공개하지 않고 가장 높은 값을 갖는 주어진 키/값 쌍을 식별하는 단계; 주어진 키/값 쌍을 포함하는 제1 암호화된 요청에 대한 제1 암호화되고 서명된 응답을 생성하는 단계로, 제1 서명된 응답은 제2 MPC 서버의 개인 키로 서명되는, 제1 암호화되고 서명된 응답을 생성하는 단계 및 제1 암호화된 요청에 응답하여 클라이언트 디바이스에 제1 암호화되고 서명된 응답을 전송하는 단계를 또한 포함한다.In some implementations, the operation includes: receiving, by the second MPC server, a first encrypted request that cannot be accessed by the second MPC server; forwarding the first encrypted request by the second MPC server to the first MPC server; receiving a set of key/value pairs from a first MPC server; identifying the given key/value pair with the highest value without publishing the value of the key/value pair by the second MPC server; generating a first encrypted signed response to a first encrypted request comprising a given key/value pair, wherein the first signed response is signed with a private key of a second MPC server. It also includes generating a response and sending a first encrypted and signed response to the client device in response to the first encrypted request.

일부 구현예들에서, 동작은, 제2 MPC 서버에 의해 전송된 제1 암호화되고 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계; 클라이언트 디바이스에 의해 제1 암호화되고 서명된 응답이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계; 클라이언트 디바이스에 의해 제1 서명된 응답으로부터 제1 관심 그룹을 복구하는 단계; 클라이언트 디바이스에 의해 제1 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계; 클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계; 클라이언트 디바이스에 의해 제1 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계; 클라이언트 디바이스에 의해 콘텐츠 배포 시스템으로부터 후보 선택 기준 및 주어진 선택 기준을 수신하는 단계; 클라이언트 디바이스에 의해 제1 선택 기준; 주어진 선택 기준 및 후보 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 또한 포함한다.In some implementations, the operation comprises: receiving, by the client device, a first encrypted signed response sent by the second MPC server; confirming by the client device that the first encrypted and signed response was signed by the first MPC server; recovering the first interest group from the first signed response by the client device; confirming by the client device that the first interest group includes the specific user; confirming that the value of the key/value pair given by the client device is signed by the first MPC server; decrypting the value of the given key/value pair to recover the first selection criterion by the client device; receiving, by the client device, the candidate selection criteria and the given selection criteria from the content distribution system; a first selection criterion by the client device; It also includes selecting a control selection criterion from among the given selection criteria and the candidate selection criteria.

일부 구현예들에서, 동작은, 클라이언트 디바이스에 의해 특정 사용자를 포함하는 관심 그룹을 제1 관심 그룹 세트 및 제1 관심 그룹 세트와 상이한 제2 관심 그룹 세트로 기술하는 단계; 클라이언트 디바이스에 의해 제2 MPC 서버에 특정 사용자를 포함하는 제1 관심 그룹 세트를 포함한 제1 암호화된 요청을 전송하는 단계; 클라이언트 디바이스에 의해 제1 MPC 서버에 특정 사용자를 포함하는 제2 관심 그룹 세트를 포함한 제2 암호화된 요청을 전송하는 단계; 제1 MPC 서버에 의해 전송된 제2 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계; 클라이언트 디바이스에 의해 제2 서명된 응답이 제2 MPC 서버에 의해 서명되었음을 확인하는 단계; 클라이언트 디바이스에 의해 서명된 응답으로부터 지정된 관심 그룹을 복구하는 단계; 클라이언트 디바이스에 의해 지정된 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계; 클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제2 MPC 서버에 의해 서명되었음을 확인하는 단계; 클라이언트 디바이스에 의해 제3 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계를 또한 포함하며, 제어 선택 기준을 선택하는 단계는 제1 선택 기준, 주어진 선택 기준, 후보 선택 기준 및 제3 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 포함한다.In some implementations, the operation may include, by the client device, describing, by the client device, an interest group comprising the particular user as a first interest group set and a second interest group set different from the first interest group set; sending, by the client device, to a second MPC server a first encrypted request comprising a first set of interest groups comprising the particular user; sending, by the client device, to the first MPC server a second encrypted request comprising a second set of interest groups comprising the specific user; receiving, by the client device, a second signed response sent by the first MPC server; confirming that the second signed response by the client device is signed by the second MPC server; recovering the designated interest group from the response signed by the client device; confirming that the interest group designated by the client device includes the specific user; confirming that the value of the key/value pair given by the client device is signed by the second MPC server; also comprising decrypting, by the client device, a value of the given key/value pair to recover a third selection criterion, wherein selecting the control selection criterion comprises the first selection criterion, the given selection criterion, the candidate selection criterion and the third and selecting a control selection criterion from among the selection criteria.

일부 구현예들에서, 동작은, 제1 MPC 서버에 의해 액세스될 수 없는 제2 암호화된 요청을 제1 MPC 서버에 의해 수신하는 단계; 제1 MPC 서버에 의해 제2 암호화된 요청을 제2 MPC 서버에 전달하는 단계; 제2 MPC 서버로부터 키/값 쌍의 상이한 세트를 수신하는 단계; 제1 MPC 서버에 의해 상이한 세트의 키/값 쌍의 값을 공개하지 않고 가장 높은 값을 갖는 특정 키/값 쌍을 식별하는 단계; 특정 키/값 쌍을 포함하는 제2 암호화된 요청에 대한 제2 서명된 응답을 생성하는 단계로, 제1 서명된 응답은 제2 MPC 서버의 개인 키로 서명되는, 제2 서명된 응답을 생성하는 단계 및 제2 암호화된 요청에 응답하여 클라이언트 디바이스에 제2 서명된 응답을 전송하는 단계를 또한 포함한다.In some implementations, the operation includes: receiving, by the first MPC server, a second encrypted request that cannot be accessed by the first MPC server; forwarding the second encrypted request by the first MPC server to the second MPC server; receiving a different set of key/value pairs from a second MPC server; identifying, by the first MPC server, a particular key/value pair having a highest value without disclosing a different set of values of the key/value pair; generating a second signed response to a second encrypted request comprising a specific key/value pair, wherein the first signed response is signed with a private key of a second MPC server and sending a second signed response to the client device in response to the second encrypted request.

일반적으로, 본원 명세서에 기술된 주제의 다른 혁신적인 양태는 분산 컴퓨팅 시스템에 의해 실행될 때 분산 컴퓨팅 시스템이 동작을 수행하게 하는 명령으로 인코딩되는 비-일시적인 컴퓨터 저장 매체이되, 상기 동작은, MPC 클러스터의 제1 다자간 연산(MPC) 서버에 의해 그리고 MPC 클러스터의 제2 MPC 서버로부터 클라이언트 디바이스의 특정 사용자가 속하는 둘 이상의 관심 그룹의 세트 중 적어도 하나의 관심 그룹의 선택 기준에 대한 요청을 수신하는 단계로, 수신된 요청은 클라이언트 디바이스의 식별자를 제1 MPC 서버에 공개하지 않는, 선택 기준에 대한 요청을 수신하는 단계를 포함하며, 요청을 수신하는 단계에 응답하여, 제2 MPC 서버에 의해 공개되는 것으로부터 보호된 요청의 부분을 사용하여 제1 MPC 서버의 캐시로부터 검색된, 클라이언트 디바이스의 특정 사용자가 속하는 둘 이상의 관심 그룹의 세트 중 적어도 하나의 관심 그룹의 정렬된 선택 기준의 세트를 제1 MPC 서버에 의해 결정하는 단계, 정렬된 선택 기준의 세트를 키/값 쌍의 세트로 변환하는 단계로, 키/값 쌍 각각의 값은 제2 MPC 서버에 의해 공개되는 것으로부터 보호되는, 정렬된 선택 기준의 세트를 키/값 쌍의 세트로 변환하는 단계, 및 제1 MPC 서버에 의해, 키/값 쌍의 세트의 값을 제2 MPC 서버에 공개하지 않고 제2 MPC 서버가 가장 높은 값을 갖는 키를 식별할 수 있게 하는 데이터와 함께 키/값 쌍의 세트를 제2 MPC 서버에 전송하는 단계를 포함한다.Generally, another innovative aspect of the subject matter described herein is a non-transitory computer storage medium encoded with instructions that, when executed by the distributed computing system, cause the distributed computing system to perform operations, the operations comprising: receiving, by a multiparty computing (MPC) server and from a second MPC server of the MPC cluster, a request for selection criteria of at least one interest group among a set of two or more interest groups to which a particular user of a client device belongs; the requested request includes receiving a request for selection criteria that does not disclose an identifier of the client device to the first MPC server, and in response to receiving the request, protecting from disclosure by the second MPC server determining, by the first MPC server, an ordered set of selection criteria of at least one interest group out of a set of two or more interest groups to which a particular user of the client device belongs, retrieved from a cache of the first MPC server using the portion of the requested request. converting the sorted set of selection criteria into a set of key/value pairs, wherein the value of each key/value pair is protected from being disclosed by the second MPC server. converting to a set of key/value pairs, and allowing the second MPC server to identify the key with the highest value without disclosing, by the first MPC server, the value of the set of key/value pairs to the second MPC server. sending the set of key/value pairs together with the data enabling the second MPC server.

일부 구현예들에서, 동작(분산 컴퓨팅 시스템에 의해 수행됨)은, 제1 MPC 서버에 의해 그리고 제1 MPC 서버 및 제2 MPC 서버와 상이한 콘텐츠 배포 시스템으로부터, 콘텐츠 배포 시스템에 의해 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 예측되는 주어진 관심 그룹의 주어진 선택 기준을 수신하는 단계 및 제1 MPC 서버에 의해 그리고 제1 MPC 서버의 캐시에서, 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 예측되는 주어진 관심 그룹의 주어진 선택 기준을 캐싱하는 단계를 또한 포함한다.In some implementations, the operation (performed by the distributed computing system) is performed by a specific user of the client device by the content distribution system by the first MPC server and from a content distribution system different from the first MPC server and the second MPC server. receiving, by the first MPC server and in a cache of the first MPC server, given selection criteria of a given interest group predicted to include It also includes caching the criteria.

일부 구현예들에서, 동작은, 콘텐츠 배포 시스템에 의해 클라이언트 디바이스에 의해 제출된 콘텐츠 요청을 수신하는 단계; 콘텐츠 요청에 대한 응답으로 콘텐츠 요청에 응답하여 후보 선택 기준을 생성하는 단계; 콘텐츠 요청에 기초하여 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 주어진 관심 그룹을 결정하는 단계; 주어진 관심 그룹이 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 결정에 기초하여 주어진 관심 그룹의 주어진 선택 기준을 생성하는 단계; 콘텐츠 배포 시스템에 의해 후보 배포 기준 및 주어진 배포 기준을 클라이언트 디바이스로 전송하는 단계 및 콘텐츠 배포 시스템에 의해 제1 MPC 서버로 주어진 관심 그룹의 주어진 배포 기준을 전송하지만, 후보 배포 기준은 전송하지 않는 단계를 또한 포함한다.In some implementations, the operation includes: receiving a content request submitted by a client device by the content distribution system; generating candidate selection criteria in response to the content request in response to the content request; determining a given interest group predicted to include a particular user of the client device based on the content request; generating a given selection criterion of a given interest group based on a determination that the given interest group is predicted to include a particular user of the client device; sending, by the content distribution system, the candidate distribution criteria and the given distribution criteria to the client device, and sending, by the content distribution system, the given distribution criteria of the given interest group to the first MPC server, but not sending the candidate distribution criteria. Also includes.

일부 구현예들에서, 동작은, 제2 MPC 서버에 의해 액세스될 수 없는 제1 암호화된 요청을 제2 MPC 서버에 의해 수신하는 단계; 제2 MPC 서버에 의해 제1 암호화된 요청을 제1 MPC 서버에 전달하는 단계; 제1 MPC 서버로부터 키/값 쌍의 세트를 수신하는 단계; 제2 MPC 서버에 의해 키/값 쌍의 값을 공개하지 않고 가장 높은 값을 갖는 주어진 키/값 쌍을 식별하는 단계; 주어진 키/값 쌍을 포함하는 제1 암호화된 요청에 대한 제1 암호화되고 서명된 응답을 생성하는 단계로, 제1 서명된 응답은 제2 MPC 서버의 개인 키로 서명되는, 제1 암호화되고 서명된 응답을 생성하는 단계 및 제1 암호화된 요청에 응답하여 클라이언트 디바이스에 제1 암호화되고 서명된 응답을 전송하는 단계를 또한 포함한다.In some implementations, the operation includes: receiving, by the second MPC server, a first encrypted request that cannot be accessed by the second MPC server; forwarding the first encrypted request by the second MPC server to the first MPC server; receiving a set of key/value pairs from a first MPC server; identifying the given key/value pair with the highest value without publishing the value of the key/value pair by the second MPC server; generating a first encrypted signed response to a first encrypted request comprising a given key/value pair, wherein the first signed response is signed with a private key of a second MPC server. It also includes generating a response and sending a first encrypted and signed response to the client device in response to the first encrypted request.

일부 구현예들에서, 동작은, 제2 MPC 서버에 의해 전송된 제1 암호화되고 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계; 클라이언트 디바이스에 의해 제1 암호화되고 서명된 응답이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계; 클라이언트 디바이스에 의해 제1 서명된 응답으로부터 제1 관심 그룹을 복구하는 단계; 클라이언트 디바이스에 의해 제1 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계; 클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계; 클라이언트 디바이스에 의해 제1 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계; 클라이언트 디바이스에 의해 콘텐츠 배포 시스템으로부터 후보 선택 기준 및 주어진 선택 기준을 수신하는 단계; 클라이언트 디바이스에 의해 제1 선택 기준; 주어진 선택 기준 및 후보 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 또한 포함한다.In some implementations, the operation comprises: receiving, by the client device, a first encrypted signed response sent by the second MPC server; confirming by the client device that the first encrypted and signed response was signed by the first MPC server; recovering the first interest group from the first signed response by the client device; confirming by the client device that the first interest group includes the specific user; confirming that the value of the key/value pair given by the client device is signed by the first MPC server; decrypting the value of the given key/value pair to recover the first selection criterion by the client device; receiving, by the client device, the candidate selection criteria and the given selection criteria from the content distribution system; a first selection criterion by the client device; It also includes selecting a control selection criterion from among the given selection criteria and the candidate selection criteria.

일부 구현예들에서, 동작은, 클라이언트 디바이스에 의해 특정 사용자를 포함하는 관심 그룹을 제1 관심 그룹 세트 및 제1 관심 그룹 세트와 상이한 제2 관심 그룹 세트로 기술하는 단계; 클라이언트 디바이스에 의해 제2 MPC 서버에 특정 사용자를 포함하는 제1 관심 그룹 세트를 포함한 제1 암호화된 요청을 전송하는 단계; 클라이언트 디바이스에 의해 제1 MPC 서버에 특정 사용자를 포함하는 제2 관심 그룹 세트를 포함한 제2 암호화된 요청을 전송하는 단계; 제1 MPC 서버에 의해 전송된 제2 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계; 클라이언트 디바이스에 의해 제2 서명된 응답이 제2 MPC 서버에 의해 서명되었음을 확인하는 단계; 클라이언트 디바이스에 의해 서명된 응답으로부터 지정된 관심 그룹을 복구하는 단계; 클라이언트 디바이스에 의해 지정된 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계; 클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제2 MPC 서버에 의해 서명되었음을 확인하는 단계; 클라이언트 디바이스에 의해 제3 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계를 또한 포함하며, 제어 선택 기준을 선택하는 단계는 제1 선택 기준, 주어진 선택 기준, 후보 선택 기준 및 제3 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 포함한다.In some implementations, the operation may include, by the client device, describing, by the client device, an interest group comprising the particular user as a first interest group set and a second interest group set different from the first interest group set; sending, by the client device, to a second MPC server a first encrypted request comprising a first set of interest groups comprising the particular user; sending, by the client device, to the first MPC server a second encrypted request comprising a second set of interest groups comprising the specific user; receiving, by the client device, a second signed response sent by the first MPC server; confirming that the second signed response by the client device is signed by the second MPC server; recovering the designated interest group from the response signed by the client device; confirming that the interest group designated by the client device includes the specific user; confirming that the value of the key/value pair given by the client device is signed by the second MPC server; also comprising decrypting, by the client device, a value of the given key/value pair to recover a third selection criterion, wherein selecting the control selection criterion comprises the first selection criterion, the given selection criterion, the candidate selection criterion and the third and selecting a control selection criterion from among the selection criteria.

본원 명세서에 기술된 주제의 특정 실시예들은 다음의 기술적 이점 중 하나 이상을 실현하도록 구현될 수 있다. 예를 들어, 다자간 연산(MPC) 및 기타 암호화 기술을 사용하여 사용자 데이터를 보호하고 콘텐츠 선택 프로세스를 수행하면 프로세스에 참여하는 엔터티가 사용할 수 있는 사용자 정보가 다른 엔터티에 누출되는 것을 방지할 수 있다. 본원 명세서 전체에 걸쳐 논의된 기술은 또한 프로세스를 수행하는데 필요한 엔티티 간의 사용자 정보의 공유를 방지하기 위해 사용자 정보를 보호한다. 본원 명세서에 논의된 기술은 하나의 엔터티의 컴퓨터가 손상된 경우 액세스할 수 있는 사용자 정보의 양이 다른 기술에 비해 최소화되거나 적어도 감소되도록 서로 다른 컴퓨팅 시스템 내에서 사용자 정보와 프로세스의 동작을 구분한다. 본원 명세서에 걸쳐 논의된 기술을 사용하면 개인화된 콘텐츠 선택을 수행할 수 있으며 콘텐츠 선택과 관련된 시스템이 여러 웹사이트에서 개별 사용자를 추적할 수 없게 된다.Certain embodiments of the subject matter described herein may be implemented to realize one or more of the following technical advantages. For example, using multi-party computation (MPC) and other encryption techniques to protect user data and perform a content selection process can prevent leakage of user information that can be used by entities participating in the process to other entities. The techniques discussed throughout this specification also protect user information to prevent sharing of user information between entities necessary to perform a process. The techniques discussed herein distinguish between the operation of user information and processes within different computing systems such that if one entity's computer is compromised, the amount of user information that can be accessed is minimized or at least reduced relative to other techniques. The techniques discussed throughout this specification allow for personalized content selection and prevent systems involved in content selection from tracking individual users across multiple websites.

본원 명세서에서 논의된 기술은 실제 데이터 대신에 코드를 포함하는 메시지를 전송하는 것을 포함하므로, 본원 명세서에서 논의된 프로세스에 참여하는 컴퓨팅 시스템은 기본 데이터에 액세스할 수 없지만 여전히 이러한 코드를 사용하여 프로세스의 동작을 수행할 수 있다. 실제 데이터 대신 코드를 사용하면 데이터가 손상된 경우, 예를 들어, 도난 또는 다른 엔티티에 유출되는 경우에도 데이터를 보호한다. 이러한 방식으로 룩업 테이블 및 코드를 사용하면 데이터를 보호하는데 필요한 암호화 기술(예를 들어, 동형 암호화 기술)과 관련하여 본원 명세서에서 논의된 프로세스를 구현하는데 사용되는 컴퓨팅 시스템의 계산 부담이 줄어든다. 이렇게 하면 프로세스를 수행하는데 필요한 중앙 처리 유닛(CPU) 주기가 줄어들고(예를 들어, 많은 양의 데이터를 암호화 및 해독하지 않아도 됨), 사용자 디바이스에 표시할 콘텐츠를 선택하는데 프로세스가 사용되는 구현예들에 중요한 프로세스 수행 시 대기 시간을 줄이고 전체 프로세스를 보다 효율적으로 만든다. 또한, 데이터는 임의의 캐시된 데이터의 향후 요청에 대해 대기 시간이 줄어들도록 특정 컴퓨팅 시스템에서 로컬로 캐시될 수 있다.As the techniques discussed herein involve sending messages containing codes instead of actual data, computing systems participating in the processes discussed herein may not have access to the underlying data but still use such codes to access the process action can be performed. Using code instead of real data protects data even if it is compromised, for example, stolen or leaked to another entity. Using the lookup tables and code in this manner reduces the computational burden on the computing system used to implement the processes discussed herein with respect to the encryption techniques (eg, isomorphic encryption techniques) required to protect the data. This reduces the central processing unit (CPU) cycles required to perform the process (e.g., avoids having to encrypt and decrypt large amounts of data), and implementations where the process is used to select content for display on a user device. It reduces the waiting time when performing critical processes and makes the entire process more efficient. Additionally, data may be cached locally on a particular computing system to reduce latency for future requests of any cached data.

콘텐츠 표시의 대기 시간을 줄이면 해당 콘텐츠가 도착하기를 기다리는 동안 사용자 디바이스에서 발생하는 오류의 수도 줄어든다. 콘텐츠는 종종 밀리초로 무선 네트워크에 의해 연결된 모바일 디바이스에 제공되어야 하므로, 콘텐츠 선택 및 제공의 대기 시간을 줄이는 것은 오류를 방지하고 사용자의 불만을 줄이는 데 중요하다.Reducing the latency of displaying content also reduces the number of errors that occur on user devices while waiting for that content to arrive. Since content often has to be delivered to mobile devices connected by a wireless network in milliseconds, reducing the latency of content selection and delivery is important to avoid errors and reduce user dissatisfaction.

설명된 기술은 또한 높은 수준의 프라이버시를 유지하기 위한 단순화된 프로세스를 제공한다. MPC 기술을 통해 세분화된 프로세스를 구현함으로써, 시스템은 수요-측 플랫폼에서 광범위한 변경을 요구하지 않고 사용자 프라이버시에 대한 높은 기준을 제공한다.The described technique also provides a simplified process for maintaining a high level of privacy. By implementing a granular process through MPC technology, the system provides a high standard for user privacy without requiring extensive changes in the demand-side platform.

본원 명세서에서 설명된 주제의 하나 이상의 실시예의 세부 사항은 첨부된 도면 및 이하의 설명에 나타나 있다. 본 발명의 다른 특징, 양태 및 이점은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.The details of one or more embodiments of the subject matter described herein are set forth in the accompanying drawings and the description below. Other features, aspects and advantages of the present invention will become apparent from the detailed description, drawings and claims.

도 1은 콘텐츠가 클라이언트 디바이스에 배포되는 예시적인 환경의 블록도이다.
도 2는 콘텐츠를 선택하고 클라이언트 디바이스에 콘텐츠를 제공하기 위한 방법의 데이터 흐름을 도시한다.
도 3은 콘텐츠를 선택하기 위한 예시적인 프로세스의 일부를 예시하는 스윔 레인 다이어그램이다.
도 4는 콘텐츠를 선택하기 위한 예시적인 방법의 흐름도이다.
도 5는 예시적인 컴퓨터 시스템의 블록도이다.
다양한 도면에서 동일한 도면부호 및 명칭은 동일한 부재를 나타낸다.
1 is a block diagram of an example environment in which content is distributed to client devices.
2 illustrates a data flow of a method for selecting content and providing content to a client device;
3 is a swimlane diagram illustrating a portion of an example process for selecting content.
4 is a flow diagram of an exemplary method for selecting content.
5 is a block diagram of an exemplary computer system.
In the various drawings, the same reference numerals and names refer to the same members.

본 발명은 전자 콘텐츠의 선택 및 클라이언트 디바이스로의 배포에 관련된 엔티티에 의한 사용자 정보의 공유 또는 누출을 방지하는 기술을 사용하는 컴퓨터 구현 방법 및 시스템에 관한 것이다. 아래에서 더 자세히 설명되는 바와 같이, 프라이버시 보호 기술은 다자간 연산(MPC), 확률적 데이터 구조, 암호화 및/또는 2-스테이지(또는 n-스테이지) 캐싱의 조합을 사용하여 구현될 수 있다. 더욱 구체적으로는, 사용자의 클라이언트 디바이스는 개인화된 콘텐츠에 대한 세 가지 요청을 전송할 수 있다. 제1 요청은 MPC 클러스터의 한 서버로, 제2 요청은 동일한 MPC 클러스터의 다른 서버로 그리고 제3 요청은 콘텐츠 배포 시스템으로 전송될 수 있다. 본원 명세서 전반에 설명된 바와 같이, MPC 클러스터의 두 서버로 전송된 요청들은, MPC 서버 중 어느 것도 웹사이트에서 사용자를 추적하기에 충분한 정보를 얻을 수 없지만, 여전히 2-스테이지 캐시에 액세스하여 사용자를 포함하는 관심 그룹을 기반으로 사용자에게 제공될 수 있는 사용 가능한 개인화된 콘텐츠를 식별할 수 있는 방식으로 암호화될 수 있다. 각각의 MPC 서버는 사용자를 포함하는 하나 이상의 관심 그룹과 관련된 콘텐츠(예를 들어, 디지털 컴포넌트)의 하나 이상의 부분에 대한 정보로 각각의 요청에 응답할 수 있다.FIELD OF THE INVENTION The present invention relates to computer-implemented methods and systems that use techniques to prevent the sharing or leakage of user information by entities involved in the selection and distribution of electronic content to client devices. As described in more detail below, privacy protection techniques may be implemented using a combination of multi-party operations (MPC), probabilistic data structures, encryption, and/or two-stage (or n-stage) caching. More specifically, the user's client device may send three requests for personalized content. The first request may be sent to one server in the MPC cluster, the second request to another server in the same MPC cluster, and the third request to the content distribution system. As described throughout this specification, requests sent to two servers in an MPC cluster are unable to obtain sufficient information to track the user on the website, but none of the MPC servers can still access the two-stage cache to send the user. may be encrypted in such a way as to identify available personalized content that may be provided to a user based on the interest group it contains. Each MPC server may respond to each request with information about one or more portions of content (eg, digital components) associated with one or more interest groups comprising the user.

콘텐츠 배포 시스템에 전송된 제3 요청은 사용자가 방문하는 웹사이트와 관련된 정보(예를 들어, URL)를 포함하며, 이는 웹사이트와 관련된 콘텍스트 콘텐츠를 식별하는데 사용될 수 있고, 또한 사용자를 포함할 것으로 예상되는 관심 그룹을 추론하는데 사용될 수 있다. 식별된 콘텍스트 콘텐츠는 추론된 관심 그룹 중 하나 이상과 관련된 콘텐츠에 대한 정보와 함께 클라이언트 디바이스에 전달된다. 하나 이상의 관심 그룹과 관련된 콘텐츠에 대한 정보도 나중에 MPC 서버에서 사용할 수 있도록 캐시에 저장된다. 클라이언트 디바이스는 2개의 MPC 서버 및 콘텐츠 배포 시스템으로부터 수신된 정보 중에서 사용자에게 제공되는 개인화된 콘텐츠(예를 들어, 디지털 컴포넌트)를 선택하게 된다.The third request sent to the content distribution system includes information (eg, a URL) related to the website the user is visiting, which may be used to identify contextual content associated with the website, which may also include the user. It can be used to infer expected interest groups. The identified contextual content is communicated to the client device along with information about content related to one or more of the inferred interest groups. Information about content related to one or more interest groups is also stored in a cache for later use by the MPC server. The client device selects the personalized content (eg, digital component) provided to the user among the information received from the two MPC servers and the content distribution system.

본원 명세서 전반에서 논의된 프라이버시 보호 기술에 더하여, 사용자는 본원 명세서에 설명된 시스템, 프로그램 또는 특징부가 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 행동 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 위치에 대한 정보)의 수집을 가능하게 할 수 있는지 여부 및 사용자가 서버로부터 콘텐츠 또는 커뮤니케이션을 받을 수 있는지 여부에 대해 사용자가 선택을 할 수 있는 제어를 제공받을 수 있다. 또한, 특정 데이터는 저장 또는 사용되기 전에 하나 이상의 방식으로 처리되어 개인 식별 정보가 제거될 수 있다. 예를 들어, 사용자의 신원이 처리되어 개인 식별 정보가 사용자에 대해 결정되지 않도록 하거나 위치 정보를 획득한 사용자의 지리적 위치(예를 들어, 도시, 우편 번호 또는 주(state) 레벨)가 일반화될 수 있고, 따라서 사용자의 특정 위치가 결정될 수 없다. 따라서, 사용자는 사용자에 대해 수집되는 정보, 해당 정보가 사용되는 방식 및 사용자에게 제공되는 정보를 제어할 수 있다.In addition to the privacy protection techniques discussed throughout this specification, a user may be aware that a system, program, or feature described herein may contain user information (eg, a user's social network, social behavior or activity, occupation, user's preferences, or user's The user may be provided with controls to make choices about whether to enable the collection of information about their current location) and whether the user can receive content or communications from the server. Additionally, certain data may be processed in one or more ways prior to storage or use to remove personally identifiable information. For example, the user's identity may be processed so that personally identifiable information cannot be determined about the user, or the geographic location of the user from which the location information was obtained (eg, city, zip code, or state level) may be generalized. and therefore the specific location of the user cannot be determined. Accordingly, the user can control the information collected about the user, how that information is used, and the information provided to the user.

도 1은 콘텐츠가 클라이언트 디바이스(110)에 배포되는 환경(100)의 블록도이다. 예시적인 환경(100)은 근거리 통신망(LAN), 원거리 통신망(WAN), 인터넷, 모바일 네트워크, 또는 이들의 조합과 같은 데이터 통신 네트워크(105)를 포함한다. 네트워크(105)는 클라이언트 디바이스(110), MPC 클러스터(130), 수요-측 플랫폼(DSP)(150), 공급-측 플랫폼(SSP)(170), 퍼블리셔(140) 및 웹사이트(142)를 연결한다. 예시적인 환경(100)은 많은 상이한 클라이언트 디바이스(110), MPC 클러스터(130), DSP(150), SSP(170), 퍼블리셔(140) 및 웹사이트(142)를 포함할 수 있다.1 is a block diagram of an environment 100 in which content is distributed to client devices 110 . The exemplary environment 100 includes a data communication network 105 such as a local area network (LAN), a wide area network (WAN), the Internet, a mobile network, or a combination thereof. Network 105 includes client devices 110 , MPC cluster 130 , demand-side platform (DSP) 150 , supply-side platform (SSP) 170 , publisher 140 , and website 142 . connect Example environment 100 may include many different client devices 110 , MPC cluster 130 , DSP 150 , SSP 170 , publisher 140 , and website 142 .

클라이언트 디바이스(110)는 네트워크(105)를 통해 통신할 수 있는 전자 디바이스이다. 예시적인 클라이언트 디바이스(110)는 개인용 컴퓨터, 모바일 통신 디바이스, 예를 들어 스마트폰, 및 네트워크(105)를 통해 데이터를 송수신할 수 있는 기타 디바이스를 포함한다. 클라이언트 디바이스는 또한 마이크로폰을 통해 오디오 입력을 수신하고 스피커를 통해 오디오 출력을 출력하는 디지털 보조 디바이스를 포함할 수 있다. 디지털 어시스턴트가 오디오 입력을 수신하도록 마이크로폰을 활성화하는 "핫워드" 또는 "핫프레이즈"를 검출하면, 디지털 어시스턴트는 청취 모드(예를 들어, 오디오 입력을 수신할 준비가 됨)로 배치될 수 있다. 디지털 어시스턴트 디바이스는 또한 이미지를 캡처하고 정보를 시각적으로 제시하기 위한 카메라 및/또는 디스플레이를 포함할 수 있다. 디지털 어시스턴트는 웨어러블 디바이스(예를 들어, 시계 또는 안경), 스마트 폰, 스피커 디바이스, 태블릿 디바이스 또는 다른 하드웨어 디바이스를 포함하는 다양한 형태의 하드웨어 디바이스로 구현될 수 있다. 클라이언트 디바이스는 또한 예를 들어, 비디오를 텔레비전 또는 게임 디바이스 또는 게임 콘솔로 스트리밍하기 위해 텔레비전 또는 기타 디스플레이에 연결하는 스트리밍 디바이스와 같은 디지털 매체 디바이스를 포함할 수 있다.The client device 110 is an electronic device capable of communicating over a network 105 . Exemplary client devices 110 include personal computers, mobile communication devices, such as smartphones, and other devices capable of sending and receiving data over network 105 . The client device may also include a digital auxiliary device that receives audio input through a microphone and outputs audio output through a speaker. When the digital assistant detects a “hotword” or “hotphrase” that activates a microphone to receive audio input, the digital assistant may be placed into a listening mode (eg, ready to receive audio input). The digital assistant device may also include a camera and/or display for capturing images and visually presenting information. The digital assistant may be implemented in various types of hardware devices, including wearable devices (eg, watches or glasses), smart phones, speaker devices, tablet devices, or other hardware devices. A client device may also include a digital media device, such as a streaming device that connects to a television or other display, for example, to stream video to a television or game device or game console.

클라이언트 디바이스(110)는 일반적으로 웹 브라우저 및/또는 네이티브 애플리케이션과 같은 애플리케이션(112)을 포함하여 네트워크(105)를 통한 데이터의 송수신을 용이하게 한다. 네이티브 애플리케이션은 특정 플랫폼 또는 특정 디바이스(예를 들어, 특정 운영 시스템이 있는 모바일 디바이스)용으로 개발된 애플리케이션이다. 퍼블리셔(140)는 클라이언트 디바이스(110)에 대한 네이티브 애플리케이션을 개발 및 제공할 수 있고, 예를 들어 다운로드가 가능하도록 할 수 있다. 웹 브라우저는 예를 들어, 클라이언트 디바이스(110)의 사용자가 웹 브라우저의 주소 표시줄에 리소스(145)에 대한 리소스 주소를 입력하거나 또는 리소스 주소를 참조하는 링크를 선택하는 것에 응답하여 퍼블리셔(140)의 웹사이트(142)를 호스팅하는 웹 서버로부터 리소스(145)를 요청할 수 있다. 유사하게는, 네이티브 애플리케이션은 퍼블리셔의 원격 서버로부터 애플리케이션 콘텐츠를 요청할 수 있다.The client device 110 generally includes an application 112 , such as a web browser and/or native application, to facilitate sending and receiving data over the network 105 . A native application is an application developed for a specific platform or specific device (eg, a mobile device with a specific operating system). The publisher 140 may develop and provide a native application for the client device 110 , for example, may make it available for download. The web browser may launch the publisher 140 in response to, for example, a user of the client device 110 entering a resource address for the resource 145 in the address bar of the web browser or selecting a link referencing the resource address. may request resource 145 from a web server hosting website 142 of Similarly, a native application may request application content from a publisher's remote server.

일부 리소스, 애플리케이션 페이지 또는 다른 애플리케이션 콘텐츠는 리소스(145) 또는 애플리케이션 페이지와 함께 디지털 컴포넌트를 제시하기 위한 디지털 컴포넌트 슬롯을 포함할 수 있다. 본원 명세서 전반에서 사용되는 "디지털 컴포넌트"라는 문구는 디지털 콘텐츠 또는 디지털 정보의 개별 유닛(예를 들어, 비디오 클립, 오디오 클립, 멀티미디어 클립, 이미지, 텍스트 또는 기타 콘텐츠 단위)을 나타낸다. 디지털 컴포넌트는 물리적 메모리 디바이스에 단일 파일 또는 파일 모음으로 전자적으로 저장될 수 있으며, 디지털 컴포넌트는 비디오 파일, 오디오 파일, 멀티미디어 파일, 이미지 파일 또는 텍스트 파일의 형태를 취할 수 있고, 광고 정보를 포함할 수 있어서, 광고가 일종의 디지털 컴포넌트이다. 예를 들어, 디지털 컴포넌트는 웹 페이지의 콘텐츠 또는 애플리케이션(112)에 의해 제공되는 다른 리소스를 보완하기 위한 콘텐츠일 수 있다. 더욱 구체적으로는, 디지털 컴포넌트는 리소스 콘텐츠와 관련된 디지털 콘텐츠를 포함할 수 있다(예를 들어, 디지털 컴포넌트는 웹 페이지 콘텐츠와 동일한 주제 또는 관련 주제에 관한 것일 수 있음). 따라서, 디지털 컴포넌트의 제공은 웹 페이지 또는 애플리케이션 콘텐츠를 보완하고 일반적으로 향상시킬 수 있다.Some resources, application pages, or other application content may include a digital component slot for presenting a digital component with resource 145 or application page. As used throughout this specification, the phrase “digital component” refers to a discrete unit of digital content or digital information (eg, a video clip, audio clip, multimedia clip, image, text, or other unit of content). A digital component may be stored electronically in a physical memory device as a single file or a collection of files, and the digital component may take the form of a video file, an audio file, a multimedia file, an image file, or a text file, and may include advertising information. Therefore, advertisement is a kind of digital component. For example, the digital component may be content to complement the content of a web page or other resource provided by the application 112 . More specifically, the digital component may include digital content related to the resource content (eg, the digital component may be on the same subject or related subject as the web page content). Thus, the provision of digital components can complement and generally enhance web page or application content.

애플리케이션(112)이 하나 이상의 디지털 컴포넌트 슬롯을 포함하는 리소스(또는 애플리케이션 콘텐츠)를 로드할 때, 애플리케이션(112)은 각각의 슬롯에 대한 디지털 컴포넌트를 요청할 수 있다. 일부 구현예들에서, 디지털 컴포넌트 슬롯은 디지털 컴포넌트를 선택하고 클라이언트 디바이스(110)의 사용자에게 제시하도록 애플리케이션(112)에 디지털 컴포넌트를 제공하는 디지털 컴포넌트 배포 시스템으로부터 애플리케이션(112)이 디지털 컴포넌트를 요청하게 하는 코드(예를 들어, 스크립트)를 포함할 수 있다.When an application 112 loads a resource (or application content) that includes one or more digital component slots, the application 112 may request a digital component for each slot. In some implementations, the digital component slot allows application 112 to request a digital component from a digital component distribution system that provides the digital component to application 112 for selection and presentation to a user of client device 110 . It may include code (eg, a script) that

일부 퍼블리셔(140)는 리소스 및/또는 애플리케이션의 디지털 컴포넌트 슬롯에 대한 디지털 컴포넌트를 획득하는 프로세스를 관리하기 위해 공급측 플랫폼("SSP")(170)을 사용한다. SSP(170)는 리소스 및/또는 애플리케이션에 대한 디지털 컴포넌트를 얻는 프로세스를 자동화하는 하드웨어 및/또는 소프트웨어로 구현된 기술 플랫폼이다. SSP(170)는 하나 이상의 수요측 플랫폼 "DSP"(150)와 상호작용하여 디지털 컴포넌트 슬롯에 대한 디지털 컴포넌트를 선택하는데 사용될 수 있는 정보를 얻을 수 있다. 아래에서 더 자세히 설명되는 바와 같이, 이 정보는 디지털 컴포넌트 제공자(160)가 디지털 컴포넌트 제공자(160)의 디지털 컴포넌트의 표시를 위해 제공할 의향이 있는 양을 나타내거나 지정하는, 선택 기준 또는 선택 파라미터라고도 하는 기준을 포함할 수 있다. 각각의 퍼블리셔(140)는 대응하는 SSP(170) 또는 다수의 SSP(170)를 가질 수 있다. 일부 퍼블리셔(140)는 동일한 SSP(170)를 사용할 수 있다.Some publishers 140 use a supply-side platform (“SSP”) 170 to manage the process of acquiring digital components for a digital component slot of a resource and/or application. SSP 170 is a technology platform implemented in hardware and/or software that automates the process of obtaining digital components for resources and/or applications. SSP 170 may interact with one or more demand-side platform "DSP" 150 to obtain information that can be used to select a digital component for a digital component slot. As described in more detail below, this information is also referred to as selection criteria or selection parameters, which indicate or specify an amount that the digital component provider 160 is willing to provide for a display of the digital component provider 160 's digital component. criteria may be included. Each publisher 140 may have a corresponding SSP 170 or multiple SSPs 170 . Some publishers 140 may use the same SSP 170 .

디지털 컴포넌트 제공자(160)는 퍼블리셔의 리소스 및 애플리케이션의 디지털 컴포넌트 슬롯에 제시되는 디지털 컴포넌트를 생성(또는 달리 발행)할 수 있다. 디지털 컴포넌트 제공자(160)는 DSP(150)를 사용하여 디지털 컴포넌트 슬롯에서 제시하는 디지털 컴포넌트의 제공을 관리할 수 있다. DSP(150)는 리소스 및/또는 애플리케이션과 함께 제시하기 위한 디지털 컴포넌트를 배포하는 프로세스를 자동화하는 하드웨어 및/또는 소프트웨어로 구현된 기술 플랫폼이다. DSP(150)는 디지털 컴포넌트 제공자(160)를 대신하여 다수의 교환기와 상호작용하여 다수의 상이한 퍼블리셔(140)의 리소스 및/또는 애플리케이션과 함께 제시하기 위한 디지털 컴포넌트를 제공할 수 있다. 일반적으로, DSP(150)는 (예를 들어, 직접 SSP(170)로부터 또는 교환기를 통한) 디지털 컴포넌트에 대한 요청을 수신할 수 있고, 요청에 기초하여 하나 이상의 디지털 컴포넌트 제공자에 의해 생성된 하나 이상의 디지털 컴포넌트에 대한 선택 파라미터를 생성(또는 선택)할 수 있으며, 디지털 컴포넌트(예를 들어, 디지털 컴포넌트 자체) 및 선택 파라미터와 관련된 데이터를 SSP(170)에 제공할 수 있다.Digital component provider 160 may create (or otherwise publish) digital components that are presented in the publisher's resources and in the digital component slot of the application. The digital component provider 160 may manage the provision of the digital component presented in the digital component slot using the DSP 150 . DSP 150 is a technology platform implemented in hardware and/or software that automates the process of distributing digital components for presentation with resources and/or applications. DSP 150 may interact with multiple exchanges on behalf of digital component provider 160 to provide digital components for presentation with resources and/or applications of multiple different publishers 140 . In general, DSP 150 may receive a request for a digital component (eg, directly from SSP 170 or via an exchange), and generate one or more digital component providers based on the request. A selection parameter for the digital component may be created (or selected), and data related to the digital component (eg, the digital component itself) and the selection parameter may be provided to the SSP 170 .

SSP(170)가 디지털 컴포넌트를 선택하는 방식 및 DSP(150)가 개인화된 디지털 컴포넌트를 배포하는 방식(예를 들어, 선택 파라미터 및/또는 선택 파라미터 자체 생성)은 역사적으로 클라이언트 디바이스에서 렌더링되는 웹 페이지의 도메인과 다른 도메인에 의해 클라이언트 디바이스에 드롭된 쿠키인 제3자 쿠키로부터 얻은 사용자 정보(예를 들어, 브라우징 정보, 관심 그룹 정보, 등)를 사용하는 것을 포함하였다. 그러나, 브라우저는 제3자 쿠키의 사용을 차단하고 있어 개인화된 디지털 컴포넌트를 선택하고 제공하기가 더 어렵고, 즉, 관심이 없는 콘텐츠를 선택하여 사용자에게 배포함으로써 컴퓨팅 리소스와 대역폭이 낭비될 수 있다. 이 문제를 극복하기 위해, 사용자 관심 그룹 정보의 사용을 가능하게 하는 동시에 도메인 전반의 사용자 추적을 방해하고 컴퓨팅 시스템 전반의 사용자 정보의 누출을 방지하는 프라이버시 보호 기술이 사용될 수 있다. 본원 명세서에 설명된 기술은 이 사용자 정보가 다른 당사자에게 공유되거나 누출되지 않도록 보호한다.The way the SSP 170 selects digital components and the way the DSP 150 distributes personalized digital components (eg, the selection parameters and/or the selection parameters themselves generate) has historically been a web page rendered on a client device. using user information (eg browsing information, interest group information, etc.) obtained from third-party cookies, which are cookies dropped on client devices by domains other than the domain of However, browsers block the use of third-party cookies, making it more difficult to select and provide personalized digital components, ie, computing resources and bandwidth may be wasted by selecting and distributing content to users that are not of interest. To overcome this problem, privacy protection techniques can be used that enable the use of user interest group information while preventing user tracking across domains and preventing leakage of user information across computing systems. The techniques described herein protect this user information from being shared or leaked to other parties.

일부 경우에, 사용자가 이전에 방문 및/또는 상호작용한 웹 페이지, 애플리케이션 페이지 또는 기타 전자 리소스와 관련된 디지털 컴포넌트를 수신하는 것이 사용자에게 유리하다. 이러한 디지털 컴포넌트를 사용자에게 배포하기 위해, 사용자가 특정 리소스를 방문하거나 리소스에서 특정 작업(예를 들어, 웹 페이지에 제시된 특정 항목과 상호 작용하거나 항목을 가상 카트에 추가하는 것)을 수행할 때, 사용자는 관심 그룹에 할당될 수 있다. 관심 그룹은 브라우징 거동, 자체-보고된 관심 및/또는 소셜 네트워크 페이지에 게시된 정보에 기초하여 동일한 주제에 관심이 있는 것으로 식별된 사용자 세트이다. 예를 들어, "축구"의 관심 그룹은 (예를 들어, 축구 관련 웹 페이지를 방문함으로써) 축구에 관심이 있는 것으로 식별된 사용자를 포함할 수 있다. 일부 구현예들에서, 관심 그룹은 디지털 컴포넌트 제공자(160)를 대신하여 디지털 컴포넌트 제공자(160) 또는 DSP(150) 또는 SSP(170)에 의해 생성 및/또는 업데이트/유지될 수 있다. 예를 들어, 각각의 디지털 컴포넌트 제공자(160)는 사용자가 디지털 컴포넌트 제공자(160)의 전자 리소스를 방문할 때 사용자를 이들의 사용자 그룹에 할당할 수 있다. 더욱 구체적으로는, 사용자가 제품 정보 페이지와 같은 디지털 컴포넌트 제공자의 웹사이트의 특정 페이지를 방문할 때, 디지털 컴포넌트 제공자는 해당 페이지에 설명된 제품에 관심이 있는 사용자를 포함하는 관심 그룹에 해당 사용자를 추가할 수 있다. 일부 구현예들에서, 관심 그룹은 퍼블리셔(140)에 의해 생성될 수 있다. 예를 들어, 각각의 퍼블리셔(140)는 사용자가 퍼블리셔(140)의 웹사이트(142)의 전자 리소스(145)를 방문할 때 사용자를 이들의 사용자 그룹에 할당할 수 있다. 더욱 구체적으로는, 사용자가 하와이 휴가 페이지와 같은 퍼블리셔의 웹사이트의 특정 페이지를 방문할 때, 퍼블리셔는 하와이 휴가에 관심이 있는 사용자를 포함하는 관심 그룹에 해당 사용자를 추가할 수 있다.In some cases, it is beneficial to a user to receive a digital component associated with a web page, application page, or other electronic resource that the user has previously visited and/or interacted with. To distribute these digital components to users, when a user visits a specific resource or performs a specific action on the resource (for example, interacting with a specific item presented on a web page or adding an item to a virtual cart); Users may be assigned to interest groups. An interest group is a set of users identified as having an interest in the same subject based on browsing behavior, self-reported interests, and/or information posted on social network pages. For example, an interest group of “soccer” may include users identified as interested in soccer (eg, by visiting a soccer-related web page). In some implementations, an interest group may be created and/or updated/maintained by digital component provider 160 or DSP 150 or SSP 170 on behalf of digital component provider 160 . For example, each digital component provider 160 may assign a user to their user group when the user visits an electronic resource of the digital component provider 160 . More specifically, when a user visits a particular page of a digital component provider's website, such as a product information page, the digital component provider assigns that user to an interest group that includes users interested in a product described on that page. can be added In some implementations, an interest group may be created by the publisher 140 . For example, each publisher 140 may assign a user to their user group when the user visits the electronic resource 145 of the publisher 140's website 142 . More specifically, when a user visits a particular page of a publisher's website, such as a Hawaii vacation page, the publisher may add that user to an interest group that includes users interested in a Hawaii vacation.

사용자 프라이버시를 보호하기 위해, 사용자의 관심 그룹 멤버십은 예를 들어, 애플리케이션(112) 중 하나에 의해 사용자의 클라이언트 디바이스(110)에서만 유지되는 것이 바람직하다. 특정 예에서, 웹 브라우저는 웹 브라우저를 사용하는 사용자에 대한 관심 그룹 식별자의 리스트("관심 그룹 리스트")를 유지할 수 있다. 관심 그룹 리스트는 사용자가 추가된 각각의 관심 그룹에 대한 관심 그룹 식별자를 포함할 수 있다. 관심 그룹을 생성하는 디지털 컴포넌트 제공자(160) 또는 퍼블리셔(140)는 그들의 관심 그룹에 대한 관심 그룹 식별자를 지정할 수 있다. 관심 그룹에 대한 관심 그룹 식별자는 그룹을 설명하거나(예를 들어, 정원 가꾸기 그룹) 또는 그룹을 나타내는 코드(예를 들어, 설명이 아닌 영숫자 시퀀스)일 수 있다. 사용자에 대한 관심 그룹 리스트는 클라이언트 디바이스(110)의 보안 저장소에 저장될 수 있고 및/또는 저장될 때 암호화될 수 있다.To protect user privacy, the user's interest group membership is preferably maintained only on the user's client device 110 , for example by one of the applications 112 . In a particular example, the web browser may maintain a list of interest group identifiers (“interest group list”) for users using the web browser. The interest group list may include an interest group identifier for each interest group added by the user. Digital component providers 160 or publishers 140 that create interest groups may specify interest group identifiers for their interest groups. An interest group identifier for an interest group may be a code that describes the group (eg, a gardening group) or represents the group (eg, an alphanumeric sequence that is not a description). The interest group list for the user may be stored in secure storage of the client device 110 and/or may be encrypted when stored.

애플리케이션(112)이 디지털 컴포넌트 제공자(160)와 관련된 리소스 또는 애플리케이션 콘텐츠를 제시할 때, 리소스는 애플리케이션(112)이 관심 그룹 리스트에 하나 이상의 관심 그룹 식별자를 추가하도록 요청할 수 있다. 응답으로, 애플리케이션(112)은 하나 이상의 관심 그룹 식별자를 관심 그룹 리스트에 추가하고, 관심 그룹 리스트를 안전하게 저장할 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 애플리케이션(112)은 콘텐츠에 대한 요청, 예를 들어, 하나 이상의 디지털 컴포넌트에 대한 요청과 함께 관심 그룹 리스트의 관심 그룹 식별자를 MPC 클러스터(130)에 전송할 수 있다. 관심 그룹 식별자의 평문(암호화되지 않았거나 그렇지 않으면 보호되지 않은 판독 가능한 데이터) 값을 전송하는 대신, 애플리케이션(112)은 관심 그룹 식별자를 암호화하고 암호화된 관심 그룹 식별자를 MPC 클러스터(130)에 전송하여 의도하지 않은 관심 그룹 식별자의 수신자가 관심 그룹 식별자의 평문 값에 액세스할 수 없다.When application 112 presents a resource or application content associated with digital component provider 160 , the resource may request application 112 to add one or more interest group identifiers to the interest group list. In response, application 112 may add one or more interest group identifiers to the interest group list and securely store the interest group list. As described in more detail below, application 112 may send an interest group identifier of an interest group list to MPC cluster 130 along with a request for content, eg, a request for one or more digital components. Instead of sending the plaintext (unencrypted or otherwise unprotected, readable data) value of the interest group identifier, the application 112 encrypts the interest group identifier and sends the encrypted interest group identifier to the MPC cluster 130 to The recipient of the unintended interest group identifier cannot access the plaintext value of the interest group identifier.

MPC 클러스터(130)는 하나 이상의 관심 그룹 식별자 및 추가 정보에 기초하여 디지털 컴포넌트를 선택하기 위해 다자간 계산 프로세스를 수행하는 다중 컴퓨팅 시스템을 포함한다. 이 예에서, MPC 클러스터(130)는 제1 컴퓨팅 시스템(S1) 및 제2 컴퓨팅 시스템(S2)을 포함한다. 컴퓨팅 시스템(S1 및 S2)은 동일한 당사자(예를 들어, 브라우저 개발자, 애플리케이션 개발자 또는 산업 그룹) 또는 다른 당사자(예를 들어, 브라우저 개발자를 운영하는 당사자와 산업 그룹을 운영하는 다른 당사자)에 의해 소유되고 운영될 수 있다. 퀀티티(quantity)가 1보다 크면 다른 퀀티티의 컴퓨팅 시스템도 사용될 수 있다.The MPC cluster 130 includes a multi-computing system that performs a multi-party computational process to select a digital component based on one or more interest group identifiers and additional information. In this example, the MPC cluster 130 includes a first computing system S1 and a second computing system S2 . Computing systems S1 and S2 are owned by the same party (eg, a browser developer, application developer, or industry group) or a different party (eg, a party operating a browser developer and another party operating an industry group). and can be operated. If the quantity is greater than 1, then computing systems of other quantities may also be used.

MPC를 사용하여 관심 그룹 식별자에 기초하여 디지털 컴포넌트를 선택하는 것은 임의의 당사자(MPC 클러스터(130)의 컴퓨팅 시스템을 운영하는 당사자를 포함함)가 사용자가 속한 그룹을 결정하는 것을 방지함으로써 사용자의 프라이버시를 보호한다. 암호화 기술과 함께 MPC 프로세스는 또한 다른 당사자가 SSP(170) 및 DSP(150)의 기밀 정보에 액세스하는 것을 방지한다. 콘텐츠를 선택하고 배포하기 위해 MPC 및 암호화 기술을 사용하는 예시적인 프로세스가 도 2 및 도 3에 도시되어 있다.Using MPC to select a digital component based on an interest group identifier prevents any party (including the party operating the computing system of the MPC cluster 130) from determining the group to which the user belongs, thereby protecting the user's privacy. to protect The MPC process, along with encryption technology, also prevents other parties from accessing confidential information of SSP 170 and DSP 150. An exemplary process for using MPC and encryption technology to select and distribute content is illustrated in FIGS. 2 and 3 .

도 2는 콘텐츠를 선택하고 클라이언트 디바이스에 콘텐츠를 제공하기 위한 프라이버시 보호 방법(200)의 데이터 흐름도이다. 방법(200)의 동작은 시스템(100)의 다양한 컴포넌트에 의해 수행될 수 있다. 예를 들어, 방법(200)의 동작은 클라이언트 디바이스(110) 및 애플리케이션(112)과 통신하는 MPC 클러스터(130)의 컴퓨팅 시스템(S1 및 S2), SSP(170) 및 DSP(150)에 의해 수행될 수 있다.2 is a data flow diagram of a privacy protection method 200 for selecting content and providing the content to a client device. The operations of method 200 may be performed by various components of system 100 . For example, operations of method 200 are performed by computing systems S1 and S2 , SSP 170 and DSP 150 of MPC cluster 130 in communication with client device 110 and application 112 . can be

방법(200)은 클라이언트 디바이스(110)의 애플리케이션(112)에 의해 수행되는 단계(1)로 시작한다. 단계(1)에서, 클라이언트 디바이스(110)의 사용자는 특정 페이지로 이동하도록 애플리케이션(112)에 지시한다. 예를 들어, 클라이언트 디바이스(110)(예를 들어, 스마트폰)의 사용자는 애플리케이션(112)(예를 들어, 웹 브라우저)이 예를 들어, 새에 관한 뉴스 웹사이트의 홈페이지로 이동하도록 지시하는 링크를 클릭할 수 있다. 애플리케이션(112)이 특정 페이지로 이동한 후, 애플리케이션(112)은 2개의 상이한 유형의 요청을 병렬로(예를 들어, 임의의 한 유형의 요청에 대한 응답을 기다리지 않고) 전송한다. 이들 요청은, (1) 사용자를 포함하는 하나 이상의 특정 그룹과 관련된 디지털 컴포넌트 세트에 대한 선택 기준 및 (2) 현재 렌더링 및/또는 클라이언트 디바이스에 제시된 페이지(또는 네이티브 애플리케이션 인터페이스와 같은 기타 온라인 리소스)의 콘텍스트를 기반으로 식별된 디지털 컴포넌트에 대한 선택 기준에 대한 요청이다. 특정 그룹은 예를 들어, 관심 그룹 또는 클라이언트 디바이스(110)의 사용자가 속한 다른 사용자 그룹일 수 있다. 관심 그룹은 그룹의 사용자가 관심이 있는 것으로 결정된 특정 엔티티, 카테고리 또는 기타 관심 주제와 연관될 수 있다. 선택 기준은 다른 기준 중에서 예를 들어, 사용자 등급, 콘텐츠 제공자에 의해 제공되는 등급, 관심 점수 또는 비드(bid)일 수 있다. 요청은 그룹 및/또는 선택 기준을 필터링할 수 있는 정보를 포함한다. 이러한 정보는 도 3을 참조하여 더 자세히 설명된다.The method 200 begins with step 1 performed by an application 112 of a client device 110 . In step 1 , the user of the client device 110 instructs the application 112 to navigate to a specific page. For example, a user of client device 110 (eg, a smartphone) may instruct application 112 (eg, a web browser) to navigate to the home page of, eg, a news website about birds. You can click the link. After application 112 navigates to a particular page, application 112 sends two different types of requests in parallel (eg, without waiting for a response to any one type of request). These requests may include (1) selection criteria for a set of digital components associated with one or more specific groups that include users, and (2) the current rendering and/or of a page (or other online resource, such as a native application interface) presented to the client device. A request for selection criteria for a digital component identified based on context. The specific group may be, for example, an interest group or other user group to which the user of the client device 110 belongs. Interest groups may be associated with specific entities, categories, or other topics of interest that users of the group have determined to be interested in. The selection criterion may be, for example, a user rating, a rating provided by a content provider, an interest score, or a bid, among other criteria. The request includes information that can filter groups and/or selection criteria. This information is described in more detail with reference to FIG. 3 .

방법은 단계(2a) 및 단계(2b)를 포함하는 단계(2)로 이어진다. 단계(2a)에서, 애플리케이션(112)은 제1 요청을 생성하여 S1에 전송하고, 단계(2b)에서, 애플리케이션(112)은 제2 요청을 생성하여 S2에 전송한다. S1 및 S2로 전송된 요청은 모두 클라이언트 디바이스의 사용자를 포함하는 그룹(예를 들어, 관심 그룹)과 관련된 디지털 컴포넌트의 선택 기준에 대한 요청일 수 있다. 이들 요청의 생성 및 전송은 도 3을 참조하여 아래에서 상세히 논의된다. 단계들(2a 및 2b)은 병렬로 발생한다. 일반적으로, 단계들(2a 및 2b)은 대칭 프로세스일 수 있으며, 단계(2a)에 대한 설명은 단계(2b)에도 동일하게 적용되고, 단계(2a)는 사용자를 포함하는 그룹의 한 하위 세트에 대해 수행되고, 단계(2b)는 사용자를 포함하는 그룹의 다른 하위 세트에 대해 수행된다. S1과 S2가 사용자를 식별하거나 추적하기 위해 결탁하는 것을 방지하는 한 가지 방법으로 S1으로 전송된 그룹의 하위 세트는 S2로 전송된 그룹의 하위 세트와 상이하다.The method continues with step (2) comprising steps (2a) and (2b). In step 2a, the application 112 generates a first request and sends it to S1, and in step 2b, the application 112 generates a second request and sends it to S2. The requests sent to S1 and S2 may both be requests for selection criteria of a digital component associated with a group (eg, interest group) including users of the client device. The generation and transmission of these requests are discussed in detail below with reference to FIG. 3 . Steps 2a and 2b occur in parallel. In general, steps 2a and 2b may be a symmetric process, the description of step 2a equally applicable to step 2b, where step 2a is a subset of the group comprising the user. , and step 2b is performed on another subset of the group comprising the user. One way to prevent collusion between S1 and S2 to identify or track users is that the subset of groups sent to S1 is different from the subset of groups sent to S2.

방법은, MPC 클러스터(130)의 2개의 컴퓨팅 시스템(S1 및 S2)이 사용자를 포함하는 하나 이상의 관심 그룹과 관련된 하나 이상의 디지털 컴포넌트에 대한 선택 기준을 식별하기 위해 안전한 2-당사자 연산(2PC) 프로토콜을 실행하는 단계(3)로 이어진다. 상기 2PC 프로세스 동안 S1과 S2는 정보를 교환하고 2 스테이지 캐시에 액세스하여 관련 선택 기준을 식별한다. S1 및 S2 각각은 다른 컴퓨팅 시스템으로부터 사용자/클라이언트 디바이스에 대한 정보를 모호하게 하여, 컴퓨팅 시스템이 사용자/클라이언트 디바이스와 관련된 전체 정보 세트를 갖지 않도록 하고 컴퓨팅 시스템이 웹사이트에서 사용자를 추적하는 것을 방지한다. 이 프로세스의 추가 세부사항은 도 3과 관련하여 아래에 제공된다.The method includes a secure two-party computation (2PC) protocol for two computing systems S1 and S2 of an MPC cluster 130 to identify selection criteria for one or more digital components associated with one or more interest groups comprising users. leads to step (3) of executing During the 2PC process, S1 and S2 exchange information and access the second stage cache to identify relevant selection criteria. Each of S1 and S2 obscures information about the user/client device from other computing systems, such that the computing system does not have a full set of information related to the user/client device and prevents the computing system from tracking the user on a website. . Further details of this process are provided below with respect to FIG. 3 .

방법은 애플리케이션(112)이 단계들(2a 및 2b) 각각에 대한 응답을 수신하는 단계(4)로 이어진다. 각각의 응답은 0 또는 1개의 그룹(예를 들어, 관심 그룹)에 대한 선택 기준 세트를 포함할 수 있다. 선택 기준 세트라고 할 수 있는 응답은, 특정 관심 그룹에 대한 식별자, 특정 관심 그룹에 대한 선택 값(예를 들어, 특정 관심 그룹의 구성원인 사용자에 대한 디지털 컴포넌트를 선택하는데 사용하기에 적합한 선택 값, 이는 선택 기준으로도 지칭될 수 있음) 및 특정 관심 그룹, 사용자의 상호작용 또는 애플리케이션(112)이 탐색한 웹사이트와 관련된 기타 데이터와 같은 데이터를 포함할 수 있다. 각각의 선택 기준 세트는 선택 기준 세트의 선택 기준이 적용되는 디지털 컴포넌트에 해당할 수 있다. 예를 들어, 응답은 {IG_ID, post_revshare_bid, other_metadata} 형식일 수 있으며, 여기서 IG_ID는 관심 그룹의 식별자를 나타내고, post_revshare_bid는 선택 값(예를 들어, 비드 값)을 나타내며, other_metadata는 관심 그룹, 해당 디지털 컴포넌트 또는 선택 값과 관련된 기타 데이터를 나타낸다. 예를 들어, post_revshare_bid는 디지털 컴포넌트, 디지털 컴포넌트를 식별하는 데이터 또는 원격 서버, 예를 들어, URL로부터 또는 디지털 컴포넌트의 위치에 대한 다른 링크로부터 디지털 컴포넌트를 얻기 위한 명령을 포함할 수 있다. 다른 예에서, 이 디지털 컴포넌트 또는 명령은 메타데이터에 포함될 수 있다. 단계(4)의 말미에서, 애플리케이션(112)은 사용자 및/또는 브라우저가 구성원인 관심 그룹에 대한 0 내지 2개의 선택 기준 세트를 수신할 수 있다. 이 프로세스의 추가 세부사항은 도 3과 관련하여 아래에 제공된다.The method continues with step 4 where application 112 receives a response to each of steps 2a and 2b. Each response may include a set of selection criteria for 0 or 1 groups (eg, groups of interest). The response, which may be referred to as a set of selection criteria, includes an identifier for a particular interest group, a selection value for the particular interest group (eg, a selection value suitable for use in selecting a digital component for a user who is a member of the particular interest group; This may also include data such as selection criteria) and other data related to particular interest groups, user interactions, or websites visited by application 112 . Each set of selection criteria may correspond to a digital component to which a selection criterion of the set of selection criteria is applied. For example, the response may be of the form {IG_ID, post_revshare_bid, other_metadata}, where IG_ID represents the identifier of the interest group, post_revshare_bid represents the selection value (eg, bid value), and other_metadata is the interest group, its digital Represents other data related to a component or selection value. For example, post_revshare_bid may include a digital component, data identifying the digital component, or instructions to obtain the digital component from a remote server, eg, a URL or other link to the location of the digital component. In another example, this digital component or instruction may be included in metadata. At the end of step (4), application 112 may receive a set of 0 to 2 selection criteria for interest groups of which users and/or browsers are members. Further details of this process are provided below with respect to FIG. 3 .

방법은 애플리케이션(112)이 콘텍스트 디지털 컴포넌트 요청("제3 요청")을 SSP(170)로 전송하는 단계(5)로 이어진다. 예를 들어, 애플리케이션(112)(이 예에서는 웹 브라우저)은 콘텍스트 디지털 컴포넌트에 대한 요청을 SSP(170)에 전송할 수 있다. 콘텍스트 디지털 컴포넌트 요청은 관련 디지털 컴포넌트를 식별할 수 있는 콘텍스트 신호를 포함할 수 있다. 콘텍스트 신호는 다른 요인들 중 예를 들어, 클라이언트 디바이스에서 렌더링/제시되는 특정 웹 사이트 또는 웹페이지에 제시된 콘텐츠의 카테고리, 클라이언트 디바이스(110)의 사용자의 국가 또는 언어(예를 들어, 클라이언트 디바이스 설정에 의해 지정됨)일 수 있다. 단계(5)는 단계(2)와 병렬로 수행될 수 있다.The method continues with step 5 in which the application 112 sends a context digital component request (“third request”) to the SSP 170 . For example, application 112 (a web browser in this example) may send a request for a context digital component to SSP 170 . The context digital component request may include a context signal that may identify the associated digital component. The context signal may be, among other factors, for example, the category of content presented on a particular web site or webpage rendered/presented on the client device, the country or language of the user of the client device 110 (eg, depending on the client device settings). designated by). Step (5) may be performed in parallel with step (2).

방법은 SSP(170)가 콘텍스트 디지털 컴포넌트 요청을 임의의 수의 DSP(150)에 전달하는 단계(6)로 이어진다. 예를 들어, SSP(170)는 요청을 여러 DSP(150)에 전달할 수 있으며, 각각은 디지털 컴포넌트에 대한 후보 선택 기준으로 요청에 응답할 기회를 가지게 된다. 후보 선택 기준은 예를 들어, 콘텍스트 선택 값 또는 특정 콘텍스트 신호에 대한 선택 값일 수 있다. 콘텐스트 선택 값은 디지털 컴포넌트 제공자(160)가 디지털 컴포넌트 제공자(160)의 디지털 컴포넌트의 제시를 위해 제공할 의향이 있는 양을 나타내거나 지정할 수 있다. DSP(150)는 디지털 컴포넌트 제공자(160)를 대신하여 후보 선택 값을 선택하거나 결정할 수 있다.The method continues with step 6 where the SSP 170 forwards the context digital component request to any number of DSPs 150 . For example, SSP 170 may pass a request to multiple DSPs 150, each with an opportunity to respond to the request with candidate selection criteria for a digital component. The candidate selection criterion may be, for example, a context selection value or a selection value for a specific context signal. The content selection value may indicate or specify an amount that the digital component provider 160 is willing to provide for presentation of the digital component of the digital component provider 160 . DSP 150 may select or determine candidate selection values on behalf of digital component provider 160 .

방법은 하나 이상의 DSP(150)가 콘텍스트 신호를 사용하여 식별된 디지털 컴포넌트에 대한 후보 선택 기준으로 요청에 응답하는 단계(7)로 이어진다. 예를 들어, DSP(150)는 콘텍스트 선택 값 및/또는 하나 이상의 콘텍스트 신호로 SSP(170)의 요청에 응답할 수 있다.The method continues with step 7 in which the one or more DSPs 150 respond to the request with candidate selection criteria for the digital component identified using the context signal. For example, DSP 150 may respond to the request of SSP 170 with a context selection value and/or one or more context signals.

추가적으로, 하나 이상의 DSP(150)는 선택 기준에 대응하는 디지털 컴포넌트가 배포될 자격이 있는 사용자의 예측된 그룹 또는 다른 그룹에 대한 하나 이상의 그룹 선택 기준(예를 들어, 선택 기준 세트)을 선택적으로 반환할 수 있다. DSP(150)에는 사용자를 포함하는 그룹을 식별하는 정보가 제공되지 않는다. 오히려, DSP는 콘텍스트 디지털 컴포넌트 요청에 포함된 콘텍스트 신호를 사용하여 사용자를 포함할 가능성이 있는 관심 그룹을 예측하고 예측된 관심 그룹에 대해 주어진 선택 기준(예를 들어, 선택 값)을 반환한다. 선택 값은 관심 그룹의 구성원인 사용자에 대해 해당 디지털 컴포넌트를 선택하는데 사용될 수 있다.Additionally, the one or more DSPs 150 optionally return one or more group selection criteria (eg, a set of selection criteria) for a predicted group or other group of users to whom the digital component corresponding to the selection criteria is entitled to be distributed. can do. DSP 150 is not provided with information identifying the group comprising the user. Rather, the DSP uses the context signal included in the context digital component request to predict an interest group that is likely to include the user and returns a given selection criterion (eg, a selection value) for the predicted interest group. The selection value may be used to select a corresponding digital component for a user who is a member of an interest group.

예를 들어, 하나 이상의 DSP(150)는 콘텍스트 신호를 사용하여 사용자를 포함하는 하나 이상의 관심 그룹을 예측하고, 미래에 다른 브라우저에 의해 발행될 수 있는 예를 들어, 단계(2a) 및 단계(2b)에서 설명된 프로세스와 같은 미래의 관심 그룹 요청에 응답하기 위해 MPC 클러스터(130)에 의해 캐시되거나 그렇지 않으면 저장되는 하나 이상의 관심 그룹 선택 값 세트를 반환시킬 수 있다. 이러한 관심 그룹 선택 기준 세트는 각각 사용자를 포함할 것으로 예측되는 관심 그룹의 식별자, 선택 값, 디지털 컴포넌트 또는 선택 값이 적용되는 디지털 컴포넌트를 얻기 위한 명령, 마케팅 요인 또는 콘텐츠 항목 캠페인의 페이싱(pacing)에 관한 정보와 같은 정보를 포함할 수 있다. 예를 들어, 관심 그룹 선택 기준 세트는 {IG_ID, pre_revshare_bid_price, TTL, pacing_info} 형식일 수 있으며, 여기서 IG_ID는 관심 그룹의 식별자를 나타내고, pre_revshare_bid_price는 수익 공유가 발생하기 전의 선택 값을 나타내며, TTL은 타임-투-리브(time-to-live), 즉, MPC 클러스터가 비드를 캐시할 수 있는 최대 시간 범위를 나타내고, pacing_info는 전체 예산 및 콘텐츠 항목의 예측된 효능에 대한 콘텐츠 항목 캠페인의 페이싱에 관한 정보를 나타낸다. 사용자를 포함하는 관심 그룹의 예측은 예를 들어, 콘텍스트 신호 입력을 기반으로 예측된 관심 그룹을 출력하도록 훈련된 머신 러닝 모델에 콘텍스트 신호를 입력함으로써 수행될 수 있다.For example, the one or more DSPs 150 may use the context signal to predict one or more interest groups comprising the user, e.g., steps 2a and 2b, which may be issued by other browsers in the future. ) may return a set of one or more interest group selection values that are cached or otherwise stored by the MPC cluster 130 to respond to future interest group requests, such as the process described in . This set of interest group selection criteria may each be used in the pacing of an identifier, selection value, digital component, or digital component to which the selection value applies, the identifier of the interest group predicted to include the user, marketing factor, or pacing of a content item campaign. It may contain information such as information about For example, the set of interest group selection criteria may be of the form {IG_ID, pre_revshare_bid_price, TTL, pacing_info}, where IG_ID represents the identifier of the interest group, pre_revshare_bid_price represents the selection value before revenue sharing occurs, and TTL is the time -time-to-live, i.e., represents the maximum time span over which the MPC cluster can cache bids, and pacing_info is information about the overall budget and pacing of the content item campaign relative to the predicted efficacy of the content item. indicates Prediction of an interest group comprising a user may be performed, for example, by inputting a context signal to a machine learning model trained to output a predicted interest group based on the context signal input.

관심 그룹 선택 기준 세트는, 현재 콘텍스트 요청 단계(5) 및 단계(6)와 유사한 요청 파라미터를 포함하는 미래의 관심 그룹 요청(2a 및 2b)에 대해 표시된 선택 값으로 비드를 제출하기 위해, 미래에 제공된 TTL 및 페이싱 정보와 같은 요인에 따라 DSP(150)가 SSP(170) 및 MPC 클러스터(130)를 승인하는 의무 역할을 한다. 예를 들어, 애플리케이션(112)이 웹사이트 URL, 위치, 언어 등과 같은 현재 콘텍스트 요청에서 예를 들어, IG_ID 및 신호와 일치하는 신호를 나타내는 (예를 들어, 단계들(2a 또는 2b)의) 관심 그룹 요청을 제출하면, DSP(150)는 특정 값을 갖는 관심 그룹 선택 값 세트에 대한 선택 값을 제출하도록 SSP(170) 및 MPC 클러스터(130)를 승인할 수 있다.The set of interest group selection criteria may be used in the future for submitting bids with indicated selection values for future interest group requests 2a and 2b containing request parameters similar to the current context request steps 5 and 6 . It is the duty of DSP 150 to approve SSP 170 and MPC cluster 130 according to factors such as TTL and pacing information provided. For example, an interest (eg, in steps 2a or 2b) that the application 112 indicates (eg, in steps 2a or 2b) a signal that matches, for example, an IG_ID and a signal in the current context request, such as a website URL, location, language, etc. Upon submitting a group request, DSP 150 may authorize SSP 170 and MPC cluster 130 to submit selection values for a set of interest group selection values having specific values.

또한, DSP(150)는 예를 들어, IG_ID에 의해 식별된 관심 그룹의 어떤 세트가 애플리케이션(112)이 지시한 현재 웹사이트를 방문하고 사전에 관심 그룹 선택 기준을 제출할 사용자와 연관될 수 있는지를 예측할 수 있다. 제출된 선택 값 세트는 MPC 클러스터(130)에 의해 캐싱되어 미래의 관심 그룹 선택 기준 요청에 응답할 때 지연 및 DSP(150) 서버 로드를 감소시킬 수 있다. 예를 들어, 후속 관심 그룹 선택 기준 요청이 사전에 제출되고 캐싱된 관심 그룹 선택 기준 세트의 파라미터와 일치하는 파라미터를 포함하는 경우, MPC 클러스터(130)는 캐싱된 선택 기준 세트를 사용하여 간단히 응답할 수 있다.DSP 150 may also determine which set of interest groups identified by IG_ID, for example, may be associated with a user who will visit the current website indicated by application 112 and submit interest group selection criteria in advance. predictable. The submitted selection value set may be cached by the MPC cluster 130 to reduce delay and DSP 150 server load when responding to future interest group selection criteria requests. For example, if a subsequent interest group selection criteria request is previously submitted and contains parameters that match parameters in a cached set of interest group selection criteria, the MPC cluster 130 may simply respond using the cached set of selection criteria. can

예를 들어, DSP(150)는 이력 사용자 상호작용 데이터 또는 다른 이력 데이터를 사용하여 관심 그룹 선택 값 또는 선택 값 세트를 추론적으로 생성하거나 또는 애플리케이션(112)이 지시한 현재 웹사이트를 방문할 사용자에 대한 관심 그룹에 예측 비딩한다. 예를 들어, DSP(150)가 이력 데이터로부터 애플리케이션(112)이 지시한 현재의 새 뉴스 웹사이트를 방문할 사용자가 일반적으로 캠핑, 자연 및 아웃도어 장비에 대한 관심 그룹과 연관되어 있다고 결정하는 경우, 단계(10)를 참조하여 아래에서 논의되는 바와 같이, DSP(150)는 그러한 관심 그룹에 대한 선택 값을 추론적으로 생성하고, MPC 클러스터(130)의 캐시에 이러한 선택 값을 저장한다.For example, DSP 150 may use historical user interaction data or other historical data to speculatively generate an interest group selection value or set of selection values or users who will visit a current website indicated by application 112 or 112 . Prediction bids on interest groups. For example, when DSP 150 determines from historical data that a user who will visit a current new news website indicated by application 112 is associated with an interest group in general for camping, nature, and outdoor equipment. , as discussed below with reference to step 10 , DSP 150 speculatively generates selection values for such interest groups and stores these selection values in a cache of MPC cluster 130 .

방법은 SSP(170)가 수신된 후보 선택 기준에 여러 필터링 기준을 적용하고 콘텍스트 디지털 컴포넌트 요청에 대한 응답을 제공하는 단계(8)로 이어진다. SSP(170)는 바이어 배제 및/또는 크리에이티브 배제와 같은 필터를 수신된 후보 선택 기준에 적용할 수 있다. 예를 들어, SSP(170)는 비드 제공으로부터 퍼블리셔(140)에 의해 SSP(170)에 제공되거나 SSP(170)에 의해 유지되는 리스트 상의 특정 디지털 컴포넌트 제공자를 제외할 수 있다. 다른 예에서, SSP(170)는 후보로서 포함되는 것으로부터 SSP(170)에 제공되거나 SSP(170)에 의해 유지되는 리스트 상의 특정 콘텐츠 항목을 제외할 수 있다. SSP(170)가 후보 선택 기준을 필터링하면, SSP(170)는 SSP(170)에 제공되거나 SSP(170)에 의해 유지되는 특정 가격 책정 규칙을 적용함으로써 선택 값을 계산할 수 있다. 예를 들어, SSP(170)는 DSP(150)에 의해 제공되는 가격 책정 규칙을 적용함으로써 사후 수익 공유 선택 값을 계산하고, 후보 중에서 선택 프로세스를 수행할 수 있다. 예를 들어, SSP(170)는 후보 선택 기준에 의해 지정된 콘텍스트 콘텐츠 항목 선택 값 사이에서 경매를 수행하고, 계산된 선택 값과 함께 승리하거나 최고의 콘텍스트 콘텐츠 항목 선택 값을 애플리케이션(112)에 반환할 수 있다. 예를 들어, SSP(170)는 계산된 선택 값 및 디지털 컴포넌트(또는 선택 값에 대응하는 것을 검색하기 위한 명령)을 애플리케이션(112)에 제공할 수 있다.The method continues at step 8 where the SSP 170 applies various filtering criteria to the received candidate selection criteria and provides a response to the context digital component request. SSP 170 may apply filters, such as buyer exclusion and/or creative exclusion, to the received candidate selection criteria. For example, SSP 170 may exclude certain digital component providers on a list maintained by SSP 170 or provided to SSP 170 by publisher 140 from offering a bid. In another example, SSP 170 may exclude certain content items on a list provided to or maintained by SSP 170 from being included as candidates. Once SSP 170 filters the candidate selection criteria, SSP 170 may calculate a selection value by applying specific pricing rules provided to or maintained by SSP 170 . For example, SSP 170 may calculate a post-revenue share selection value by applying a pricing rule provided by DSP 150 and perform a selection process among the candidates. For example, SSP 170 may conduct an auction among the context content item selection values specified by the candidate selection criteria, and either win with the calculated selection value or return the best context content item selection value to application 112 . there is. For example, SSP 170 may provide a calculated selection value and a digital component (or a command to retrieve a corresponding one to the selection value) to application 112 .

일부 구현예들에서, SSP(170)는 또한 사용자를 포함할 것으로 예측된 그룹에 대한 주어진 선택 기준으로 콘텍스트 디지털 컴포넌트 요청에 응답할 수 있다. 예를 들어, SSP(170)는 위에서 논의된 임의의 프로세싱 및/또는 규칙을 적용할 수 있고, DSP(150)에 의해 사용자를 포함할 것으로 예측되는 임의의 수의 관심 그룹에 대한 선택 값 또는 선택 기준 세트를 제공할 수 있다. 이러한 방식으로, 클라이언트 디바이스(110)에는 MPC 클러스터(130)에 의해 수행된 2PC 프로세스가 사용자를 구성원으로 포함하는 관심 그룹에 대한 임의의 선택 기준을 반환하는데 실패하더라도 하나 이상의 관심 그룹 선택 기준 세트에 대한 선택 값이 제공된다. 예를 들어, 애플리케이션(112)이 2a 및 2b에서 S1 및 S2에 각각 요청을 보낼 때 사용자를 포함하는 임의의 관심 그룹에 대한 선택 기준을 MPC 클러스터(130)의 캐시가 포함하지 않는 경우, MPC 클러스터(130)는 임의의 선택 기준으로 애플리케이션(112)에 응답할 수 없을 것이다. 이러한 상황에서, 사용자를 포함할 것으로 예측된 관심 그룹에 대한 주어진 선택 기준은 콘텍스트 디지털 컴포넌트 요청에 응답하여 여전히 제공될 수 있으므로, 애플리케이션(112)은 MPC 클러스터(130)가 임의의 관심 그룹 선택 기준 세트로 응답하는데 실패하더라도 평가를 위한 적어도 하나의 관심 그룹 선택 기준 세트를 여전히 갖고 있다.In some implementations, SSP 170 may also respond to the context digital component request with given selection criteria for the group predicted to include the user. For example, SSP 170 may apply any of the processing and/or rules discussed above, and selection values or selections for any number of interest groups predicted by DSP 150 to include users. A set of criteria can be provided. In this way, the client device 110 has one or more sets of interest group selection criteria even if the 2PC process performed by the MPC cluster 130 fails to return any selection criteria for interest groups that include users as members. An optional value is provided. For example, if the cache of the MPC cluster 130 does not contain selection criteria for any interest group that includes the user when the application 112 sends a request to S1 and S2 in 2a and 2b, respectively, the MPC cluster 130 will not be able to respond to application 112 with any selection criteria. In such a situation, the application 112 allows the MPC cluster 130 to select any set of interest group selection criteria, as given selection criteria for the interest group predicted to include the user may still be provided in response to the context digital component request. Even if it fails to respond with , it still has at least one set of interest group selection criteria for evaluation.

방법은 애플리케이션(112)이 클라이언트 디바이스(110)에 디스플레이할 디지털 컴포넌트를 식별하기 위해 최종 선택 프로세스를 실행하는 단계(9)로 이어진다. 일부 구현예들에서, 애플리케이션(112)은 최고 값을 갖는 선택 값, 예를 들어, 선택 기준을 갖는 선택 기준 세트(또는 디지털 컴포넌트)를 선택함으로써, 클라이언트 디바이스(110)에 제시될 콘텐츠 항목을 선택하기 위해 경매를 실행할 수 있다. 예를 들어, 경매는 SSP(170)에 의해 제공된 바와 같이 단계(8)로부터 승리한 콘텍스트 선택 값 및 대응하는 디지털 컴포넌트(예를 들어, 후보 선택 기준으로부터의 후보 선택 기준), 컴퓨팅 시스템(S1 및/또는 S2)으로부터 수신된 임의의 관심 그룹 선택 기준 세트(예를 들어, 0 내지 2개의 관심 그룹 비드 사이에서 지정하는 관심 그룹 선택 기준), 및 콘텍스트 디지털 컴포넌트 요청에 응답하여 SSP(170)로부터 수신된 주어진 선택 기준과 같은 예측된 선택 기준(예를 들어, 사용자를 포함할 것으로 예측된 관심 그룹에 대한 주어진 선택 값을 지정하는 주어진 선택 기준)을 사용하여 실행될 수 있다. 애플리케이션(112)은 사용자 및/또는 브라우저가 속한 관심 그룹과 관련된 선택 기준만을 고려하기 위해 예측된 선택 기준을 필터링한다. 애플리케이션(112)은 SSP(170) 및 MPC 클러스터(130)의 컴퓨팅 시스템(S1 및 S2)으로부터 콘텍스트 디지털 컴포넌트 요청에 대해 계산된 선택 값을 이미 수신했기 때문에, 애플리케이션(112)은 최고의 사후 수익 공유 값을 갖는 후보 선택 값을 선택하기 위한 제1 가격 경매와 같은 간단한 선택 프로세스를 수행할 수 있다. 그런 다음, 애플리케이션(112)은 승리한 선택 값과 연관된 디지털 컴포넌트를 렌더링할 수 있다.The method continues with step 9 where the application 112 executes a final selection process to identify a digital component to display on the client device 110 . In some implementations, application 112 selects a content item to be presented to client device 110 by selecting a selection value with a highest value, eg, a set of selection criteria (or digital component) having a selection criterion. You can run an auction to For example, the auction may include the winning context selection value from step 8 as provided by SSP 170 and the corresponding digital component (eg, candidate selection criteria from candidate selection criteria), computing system S1 and /or any set of interest group selection criteria received from S2) (eg, interest group selection criteria specifying between 0 and 2 interest group bids), and received from SSP 170 in response to a context digital component request. may be implemented using predicted selection criteria (eg, given selection criteria specifying given selection values for interest groups predicted to include users), such as given selection criteria. The application 112 filters the predicted selection criteria to consider only those selection criteria relevant to the interest group to which the user and/or browser belong. Since the application 112 has already received the computed selection values for the context digital component request from the computing systems S1 and S2 of the SSP 170 and the MPC cluster 130, the application 112 has the highest post-revenue share value. A simple selection process, such as a first price auction for selecting a candidate selection value with The application 112 may then render the digital component associated with the winning selection value.

방법은 SSP(170)가 MPC 클러스터(130)의 컴퓨팅 시스템(S1 및 S2)에 의해 유지되는 관심 그룹 선택 기준을 업데이트하는 단계(10)로 이어질 수 있다. SSP(170)는 제1 스테이지 키 및 제2 스테이지 룩업 테이블(LUT)을 MPC 클러스터(130)의 컴퓨팅 시스템(S1 및 S2)에 전송함으로써 단계(10)를 수행한다.The method may lead to the step 10 of the SSP 170 updating the interest group selection criteria maintained by the computing systems S1 and S2 of the MPC cluster 130 . The SSP 170 performs step 10 by sending the first stage key and the second stage lookup table (LUT) to the computing systems S1 and S2 of the MPC cluster 130 .

예를 들어, SSP(170)는 먼저, 제출된 관심 그룹 선택 기준에 필터링 기준을 적용하고, 단계(8)와 관련하여 설명된 프로세스와 유사한 프로세스에서 결과적인 선택 값을 계산하기 위해 가격 책정 규칙을 적용할 수 있다. 그런 다음, SSP(170)는 다른 신호들 중에서 특정 URL, 위치, 언어와 같은 관심 그룹 요청 신호이기도 한 콘텍스트 요청에 제공된 모든 신호로부터 복합 메시지를 생성할 수 있다. 그런 다음, SSP(170)는 복합 메시지를 바이트 어레이로 직렬화하여 요청 신호 및 기타 요청 정보를 나타내는 암호화 메시지를 생성한다. 예를 들어, SSP(170)는 SHA256 알고리즘을 사용하여 바이트 어레이를 고정 크기 디지털 다이제스트로 암호 해시화할 수 있다. 본원 명세서 내에서 논의할 목적으로 이 디지털 다이제스트는 IG_Request_Key로 지칭될 수 있다.For example, SSP 170 may first apply filtering criteria to the submitted interest group selection criteria, and then apply pricing rules to calculate the resulting selection values in a process similar to the process described with respect to step (8). can be applied SSP 170 may then create a composite message from all signals provided in the context request that are also interest group request signals, such as a specific URL, location, language, among other signals. The SSP 170 then serializes the composite message into a byte array to generate an encrypted message representing the request signal and other request information. For example, SSP 170 may cryptographically hash the byte array into a fixed size digital digest using the SHA256 algorithm. For purposes of discussion herein, this digital digest may be referred to as IG_Request_Key.

MPC 클러스터(130)의 컴퓨팅 시스템(S1 및 S2)은 각각 2-스테이지 LUT 캐시를 유지한다. 예를 들어, 제1 스테이지는 n 비트로 잘린 SHA256(IG_Request_Key)에 의해 키가 지정될 수 있다. 제2 스테이지 자체는 키가 HMACSHA256(IG_Request_Key, IG_ID)인 LUT일 수 있고, 여기서 IG_ID는 특정 관심 그룹에 대한 식별자를 나타내며, HMACSHA256은 SHA-256 해시 함수로부터 구성된 해시 기반 메시지 인증 코드를 나타낸다. 제2 스테이지 캐시 값은 {post_revshare_bid, metadata} 형식으로 저장될 수 있다. 메타데이터는 다른 정보 중에서 TTL 값, 페이싱 정보, 바이저 계정용 식별자, 수익 공유 전 선택 값 및 수익 공유 후 선택 값에 대한 값과 같은 정보를 포함한다. SSP(170)는 애플리케이션(112)에 의해서만 확인되거나 공개적으로 확인 가능한 비밀 키를 사용하여 암호화 메시지의 적어도 일부에 디지털 서명할 수 있다. 예를 들어, SSP(170)는 개인 키로 메타데이터의 전체 세트를 디지털 서명할 수 있다. 그런 다음, MPC 클러스터(130)의 컴퓨팅 시스템(S1 및 S2)은 수신된 제1 스테이지 키 및 제2 스테이지 LUT를 사용하여 그들의 2-스테이지 LUT를 독립적으로 업데이트한다.The computing systems S1 and S2 of the MPC cluster 130 each maintain a two-stage LUT cache. For example, the first stage may be keyed by SHA256 (IG_Request_Key) truncated to n bits. The second stage itself may be a LUT whose key is HMAC SHA256 (IG_Request_Key, IG_ID), where IG_ID represents an identifier for a particular interest group, and HMAC SHA256 represents a hash-based message authentication code constructed from a SHA-256 hash function. The second stage cache value may be stored in the format {post_revshare_bid, metadata}. The metadata includes information such as TTL values, pacing information, identifiers for visor accounts, values for selection values before revenue sharing and selection values after revenue sharing, among other information. SSP 170 may digitally sign at least a portion of the encrypted message using a publicly verifiable secret key that is verified only by application 112 or is publicly verifiable. For example, SSP 170 may digitally sign the entire set of metadata with the private key. The computing systems S1 and S2 of the MPC cluster 130 then independently update their two-stage LUTs using the received first stage key and second stage LUT.

단계(10)에서, MPC 클러스터(130)의 컴퓨팅 시스템(S1 및 S2)으로 관심 그룹 선택 기준(예를 들어, 선택 기준 세트)에 대한 후보 선택 기준을 전송하는 것 이외에, SSP(170)는 선택적으로 단계(8)의 일부로서 최고 값을 갖는 후보 선택 기준을 이미 포함하는 관심 그룹 선택 기준을 애플리케이션(112)에 전송할 수 있다. 이 옵션에서, 단계(9)의 일부로서 애플리케이션(112)에 의해 수행된 각각의 최종 선택 프로세스에 대해, 애플리케이션(112)은, 이용 가능한 경우, 단계(8)에서 수신된 콘텍스트 선택 값; MPC 클러스터(130)의 캐시에 캐싱된 단계(2a)에서 수신된 관심 그룹 선택 값; MPC 클러스터(130)의 캐시에 캐싱된 단계(2b)에서 수신된 관심 그룹 선택 값; 및/또는 캐싱되지 않은 단계(8)에서 수신된 관심 그룹 선택 값(애플리케이션(112)은 클라이언트 디바이스(110)의 사용자가 연관되어 있는 관심 그룹의 실제 리스트에 기초하여 이러한 비드를 추가로 필터링함) 중 하나 이상을 포함하는 선택 값의 여러 세트 중에서 가장 높은 선택 값을 선택한다.In step 10 , in addition to sending candidate selection criteria for the group of interest selection criteria (eg, a set of selection criteria) to the computing systems S1 and S2 of the MPC cluster 130 , the SSP 170 optionally may send to the application 112 the group of interest selection criteria which already include the candidate selection criteria with the highest value as part of step 8 . In this option, for each final selection process performed by the application 112 as part of step 9, the application 112, if available, includes: the context selection value received in step 8; the interest group selection value received in step 2a cached in the cache of the MPC cluster 130; the interest group selection value received in step 2b cached in the cache of the MPC cluster 130; and/or the interest group selection value received in step 8 that is not cached (the application 112 further filters these bids based on the actual list of interest groups with which the user of the client device 110 is associated) Selects the highest selection value from among multiple sets of selection values containing one or more of

도 3은 콘텐츠를 선택하기 위한 예시적인 프로세스(300)를 예시하는 스윔 레인 다이어그램을 도시한다. 프로세스(300)의 단계 번호는 방법(200)의 단계 번호에 대응한다. 예를 들어, 프로세스(300)의 단계들(2a-1, 2a-2, 2a-3 및 2a-4)은 방법(200)의 단계(2a)의 일부를 형성할 수 있는 예시적인 단계이다. 유사하게는, 단계들(3a-1 내지 3a-8)은 방법(200)의 단계(3)의 일부를 형성할 수 있는 예시적인 단계이고, 단계들(4a-1 및 41-s)은 방법(200)의 단계(4)의 일부를 형성할 수 있는 예시적인 단계이다. 방법(300)의 동작은 시스템(100)의 다양한 컴포넌트에 의해 수행될 수 있다. 예를 들어, 방법(300)의 동작은 클라이언트 디바이스(110) 및 애플리케이션(112)과 통신하는 MPC 클러스터(130)의 컴퓨팅 시스템(S1 및 S2)에 의해 적어도 부분적으로 수행될 수 있다.3 shows a swim lane diagram illustrating an example process 300 for selecting content. The step number of the process 300 corresponds to the step number of the method 200 . For example, steps 2a-1 , 2a-2, 2a-3 and 2a-4 of process 300 are exemplary steps that may form part of step 2a of method 200 . Similarly, steps 3a-1 to 3a-8 are exemplary steps that may form part of step 3 of method 200, and steps 4a-1 and 41-s are method An exemplary step that may form part of step (4) of (200). The operations of method 300 may be performed by various components of system 100 . For example, operations of method 300 may be performed at least in part by computing systems S1 and S2 of MPC cluster 130 in communication with client device 110 and application 112 .

일부 구현예들에서, 단계들(2a 및 2b)은 병렬로 완료되고 대칭 프로세스이다. 이와 같이, 도 3은 단계(2a)를 참조하여 논의되지만, 컴퓨팅 시스템의 동작이 반대인 단계(2b)에도 동일하게 적용 가능하다. 예를 들어, 반대 상황에서, S1은 도 3에서 S2와 장소를 교환할 것이지만, 도 3의 나머지는 단계(2b)를 수행하기 위해 동일하게 유지된다.In some implementations, steps 2a and 2b are completed in parallel and are a symmetric process. As such, FIG. 3 is discussed with reference to step 2a, but is equally applicable to step 2b in which the operation of the computing system is reversed. For example, in the reverse situation, S1 would swap places with S2 in FIG. 3 , but the remainder of FIG. 3 remains the same to perform step 2b.

단계(2a-1)에서, 애플리케이션(112)은 예를 들어, 무작위로 2개의 공개/개인 키 쌍, 즉, public_key1, public_key2, private_key1 및 private_key2를 생성한다. 예를 들어, 이러한 공개/개인 키 쌍은 NIST P-256 키 쌍과 같은 타원 곡선 암호화(ECC) 키 쌍일 수 있다. 애플리케이션(112)은 public_key1을 컴퓨팅 시스템(S1)과만 공유하고, public_key2를 컴퓨팅 시스템(S2)과만 공유하여 public_key1 및 public_key2가 임시 반-공개 키가 된다. 애플리케이션(112)은 또한 요청에 대해 암호화 통신에서 한 번만 사용될 수 있는 임시 숫자 또는 임의의 숫자를 생성한다.In step 2a-1, the application 112 generates, for example, randomly two public/private key pairs: public_key1, public_key2, private_key1 and private_key2. For example, such a public/private key pair may be an elliptic curve cryptography (ECC) key pair, such as a NIST P-256 key pair. The application 112 shares public_key1 only with the computing system S1 and public_key2 only with the computing system S2 so that public_key1 and public_key2 become temporary semi-public keys. The application 112 also generates a temporary number or random number that can be used only once in the encrypted communication for the request.

단계(2a-2)에서, 애플리케이션(112)은 클라이언트 디바이스(110)의 사용자가 속하는 관심 그룹의 실제 리스트를 두 세트(G1 및 G2)로 무작위로 분할한다. G2 = {g2,1, ... g2,k}가 G2에 무작위로 할당된 관심 그룹의 세트라고 가정한다. 클라이언트 디바이스(110)의 사용자, 확장하여 애플리케이션(112)이 n개의 관심 그룹과 연관되어 있다고 가정하면, 각각의 관심 그룹은 G1 또는 G2에 포함될 동일한 확률을 갖는다. 일부 구현예들에서, 세트(G1 및 G2)는 동일한 크기가 아니다. 애플리케이션(112)은 바람직하게는 사용자를 포함하는 관심 그룹의 리스트를 유지하므로 이 단계에서, 애플리케이션은 관심 그룹의 2개의 하위 세트로 관심 그룹의 리스트를 기술할 수 있음을 상기해야 한다. 일부 구현예들에서, 관심 그룹의 2개의 하위 세트는 겹치지 않는 구성원 자격을 갖는다. 일부 구현예들에서, 관심 그룹의 2개의 하위 세트는 겹치는 구성원 자격을 갖는다.In step 2a-2, the application 112 randomly divides the actual list of interest groups to which the user of the client device 110 belongs into two sets G1 and G2. Assume that G2 = {g 2,1 , ... g 2,k } is the set of interest groups randomly assigned to G2. Assuming that the user of the client device 110 , by extension the application 112 , is associated with n interest groups, each interest group has an equal probability of being included in either G 1 or G 2 . In some implementations, sets G 1 and G 2 are not the same size. It should be recalled that at this stage, the application may describe the list of interest groups as two subsets of interest groups as the application 112 preferably maintains a list of interest groups comprising the user. In some implementations, the two subsets of interest groups have non-overlapping memberships. In some implementations, the two subsets of interest groups have overlapping memberships.

애플리케이션(112)이 연관되는 임의의 관심 그룹은 G1 또는 G2에 없을 확률(p)이 0이 아니다. 애플리케이션(112)과 연관되지 않은 무작위 관심 그룹이 G1 또는 G2에 존재할 확률은 가양성 비율(FPR)이다. 따라서, G1을 생성하는 프로세스는 ε-차등 프리베이트(differentially private)이고, 여기서,

Figure pct00001
이다.The probability p is non-zero that any interest group with which the application 112 is associated is not in either G 1 or G 2 . The probability that a random interest group not associated with the application 112 exists in G 1 or G 2 is the false positive rate (FPR). Thus, the process that creates G1 is ε-differentially private, where
Figure pct00001
am.

예를 들어, FPR이 1%이고 p가 50%이면, ε = log(50)=3.9이다. 유사하게는, G2를 생성하는 프로세스도 ε=3.9인 ε-차등 프리베이트이다.For example, if FPR is 1% and p is 50%, ε = log(50) = 3.9. Similarly, the process generating G 2 is also an ε-differential prebate with ε=3.9.

애플리케이션(112)은 {IG_Request_Key, nonce}와 같은 복합 키를 사용하여 G2의 각각의 관심 그룹에 키-유사 난수 함수를 적용하여 G2를 G2 T로 변환한다. 예를 들어, G2 T = {x : HMAC(HMAC(IG_Request_Key, x), nonce), ∀x∈G2}이고, 여기서, 함수 HMAC(clear_text, secret_key)는 키 메시지 인증 코드를 계산한다. 이 알고리즘은 키-해시 메시지 인증 코드 또는 암호화 해시 함수와 비밀 암호화 키를 모두 포함하는 특정 유형의 메시지 인증 코드(MAC)이다.The application 112 converts G 2 into G 2 T by applying a key-like random number function to each interest group of G 2 using a composite key such as {IG_Request_Key, nonce}. For example, G 2 T = {x: HMAC(HMAC(IG_Request_Key, x), nonce), ∀x∈G2}, where the function HMAC(clear_text, secret_key) calculates a key message authentication code. This algorithm is a key-hash message authentication code or a specific type of message authentication code (MAC) that contains both a cryptographic hash function and a secret cryptographic key.

그런 다음, 단계(2a-3)에서, 애플리케이션(112)은 블룸 필터, 구현 및 구조에 대한 FPR을 포함하는 적절한 파라미터와 같은 확률적 데이터 구조를 선택할 수 있다. 그런 다음, 이 특정 예에서, 애플리케이션(112)은 세트(G1 및 G2) 각각에 대한 블룸 필터(G1' 및 G2')를 생성할 수 있다. FPR로 인해, G1 ⊂ G1', G2 ⊂ G2', |G1| << |G1'| 및 |G2| << |G2'|이다. 확률적 데이터 구조를 사용함으로써, 사용자를 실제로 포함하는 관심 그룹의 각각의 하위 세트는 사용자의 프라이버시를 보호하는데 도움을 주도록 사용자를 포함하지 않는 관심 그룹의 세트가 추가되고, 예를 들어, 이는 하위 세트 중 하나를 얻은 임의의 시스템이 핑거프린팅을 통해 사용자를 식별하거나 추적하는 것을 더 어렵게 만든다.Then, in step 2a-3, application 112 may select a probabilistic data structure such as bloom filter, implementation and appropriate parameters including FPR for the structure. In this particular example, application 112 can then create bloom filters G 1 ′ and G 2 ′ for sets G 1 and G 2 , respectively. Due to FPR, G 1 ⊂ G 1 ', G 2 ⊂ G 2 ', |G 1 | << |G 1 '| and |G 2 | << |G 2 '|. By using a probabilistic data structure, each subset of interest groups that actually contain a user is added to a set of interest groups that do not contain a user to help protect the privacy of the user, e.g., it It makes it more difficult for any system to get one of these to identify or track a user via fingerprinting.

예를 들어, 애플리케이션(112)은 블룸 필터 또는 쿠쿠 필터, G2 T에 대한 G2'와 같은 확률적 데이터 구조를 생성할 수 있다. 블룸 필터는 k 해시 함수를 사용하여 관심 그룹 식별자 IG_ID를 m 어레이 위치로 해시한다. 예를 들어, hj : IG_ID → [0, m)이고, 여기서, 1<=j<=k이다. H(IG_ID)는 H(IG_ID) = HMAC(IG_Request_Key, IG_ID)로 정의할 수 있으며, 여기서, 결과는 base-m 표현 … H3H2H1으로 표시된다. 따라서, hm(IG_ID)은 H(IG_ID)의 m번째 자리, 즉 Hm으로 정의된다.For example, application 112 may create a probabilistic data structure, such as a Bloom filter or a Cuckoo filter, G 2 ′ for G 2 T . The bloom filter uses the k hash function to hash the interest group identifier IG_ID into m array positions. For example, h j : IG_ID → [0, m), where 1<=j<=k. H(IG_ID) can be defined as H(IG_ID) = HMAC(IG_Request_Key, IG_ID), where the result is the base-m expression … It is denoted as H 3 H 2 H 1 . Therefore, h m (IG_ID) is defined as the mth digit of H(IG_ID), that is, H m .

단계(2a-4)에서, 애플리케이션(112)은 암호화된 메시지의 단일 파라미터와 함께 컴퓨팅 시스템(S1)에 요청을 전송한다. 예를 들어, 파라미터는 PubKeyEncrypt(Stage_1_Lookup_Key || G2' || PubKeyEncrypt(G2 T, S1) || public_key2 || nonce, S2)일 수 있다. 이 식에서, ||는 하나 이상의 단순 메시지에서 복잡한 메시지를 구성하는 임의의 무손실 가역적 방법을 나타낸다. 예를 들어, ||는 간결한 이진 개체 표현 또는 프로토콜 버퍼 방법을 나타낼 수 있다.In step 2a-4, the application 112 sends a request to the computing system S1 with a single parameter in the encrypted message. For example, the parameter may be PubKeyEncrypt(Stage_1_Lookup_Key || G 2 ' || PubKeyEncrypt(G 2 T , S1) || public_key2 || nonce, S2). In this equation, || represents any lossless and reversible way of constructing a complex message from one or more simple messages. For example, || can indicate a concise binary object representation or protocol buffer method.

이 특정 예에서, Stage_1_Lookup_Key는 n비트로 잘린 SHA256(IG_Request_Key)이지만, 다른 적절한 키가 사용될 수 있다. 이 특정 예에서, PubKeyEncrypt(clear_text, domain)는 확률적 공개 키 암호화 알고리즘을 적용하여 도메인에서 가져온 공개 키를 사용하여 clear_text를 암호화한 암호화 결과이다. 애플리케이션(112)에 의해 사용되는 공개 키 암호화 알고리즘은 종종 ECC에 기초한다. 예를 들어, 공개 키 암호화 알고리즘은 NIST P-256일 수 있다.In this particular example, Stage_1_Lookup_Key is SHA256 (IG_Request_Key) truncated to n bits, but other suitable keys may be used. In this specific example, PubKeyEncrypt(clear_text, domain) is an encryption result obtained by encrypting clear_text using a public key obtained from a domain by applying a probabilistic public key encryption algorithm. The public key encryption algorithm used by the application 112 is often based on ECC. For example, the public key encryption algorithm may be NIST P-256.

단계(3a-1)에서, 컴퓨팅 시스템(S1)은, 컴퓨팅 시스템(S2)이 해당 개인 키를 엄격하게 기밀로 유지한다는 가정에 의해, 애플리케이션(112)이 컴퓨팅 시스템(S2)에서 가져온 공개 키를 사용한 요청의 암호화로 인해 컴퓨팅 시스템(S2)으로 전달하는 것 외에는 수신된 요청을 사용하여 임의의 프로세스를 수행할 수 없다. 요청을 전달함으로써, 컴퓨팅 시스템(S1)은 컴퓨팅 시스템(S2)으로부터 애플리케이션(112)을 실행하는 클라이언트 디바이스의 IP 주소를 숨겨서, 컴퓨팅 시스템(S2)이 사용자를 추적하기 위한 관심 그룹 요청과 연관된 클라이언트 디바이스 상의 애플리케이션의 IP 주소를 사용할 수 없도록 하고, 프라이버시 보호의 추가 레이어를 제공한다.In step 3a-1, the computing system S1 retrieves the public key obtained from the computing system S2 by the application 112 by the assumption that the computing system S2 keeps the corresponding private key strictly confidential. Due to the encryption of the used request, it is impossible to perform any process using the received request other than forwarding it to the computing system S2. By forwarding the request, the computing system S1 hides the IP address of the client device running the application 112 from the computing system S2, such that the client device associated with the interest group request for the computing system S2 to track the user. It disables the use of IP addresses for applications on the Internet, and provides an additional layer of privacy protection.

단계(3a-2)에서, 컴퓨팅 시스템(S2)은 다수의 파라미터를 복구하기 위해 자체 개인 키를 사용하여 수신된 요청을 해독한다. 예를 들어, 파라미터들은 Stage_1_Lookup_Key, G2'(즉, G2 T용으로 구성된 블룸 필터), PubKeyEncrypt(G2 T, S1), 즉 컴퓨팅 시스템(S1)만이 해독할 수 있는 암호화된 G2 T, 현재 요청에 대해 애플리케이션(112)에 의해 생성된 public_key2 및 논스(nonce)를 포함한다.In step 3a-2, the computing system S2 decrypts the received request using its own private key to recover a number of parameters. For example, the parameters are Stage_1_Lookup_Key, G 2 ' (i.e. bloom filter configured for G 2 T ), PubKeyEncrypt(G 2 T , S1), i.e. encrypted G 2 T that only computing system S1 can decrypt, Contains the public_key2 and nonce generated by the application 112 for the current request.

컴퓨팅 시스템(S2)이 예를 들어, SSP(170)와 공모하는 경우에도, 컴퓨팅 시스템(S2)은 여전히 IP 주소를 기반으로 하는 애플리케이션의 콘텍스트 요청과 관심 그룹 요청의 상관관계를 지정하기 위해 관심 그룹 및 콘텍스트 요청에 공통인 클라이언트 디바이스의 IP 주소를 사용할 수 없다. 이 보호는 Stage_1_Lookup_Key에 제한된 수의 비트가 있을 때 훨씬 더 분명하다.Even if computing system S2 colludes with, for example, SSP 170, computing system S2 still uses the interest group to correlate the interest group request with the application's context request based on the IP address. and the IP address of the client device common to the context request cannot be used. This protection is even more evident when there is a limited number of bits in Stage_1_Lookup_Key.

단계(3a-3)에서, 컴퓨팅 시스템(S2)은 Stage_1_Lookup_Key를 사용하여 2-스테이지 룩업 테이블("LUT")을 쿼리한다. 결과는 키가 HMAC(IG_Request_Key, IG_ID)인 기존 LUT이다. 즉, 컴퓨팅 시스템(S2)은 해독된 요청의 Stage_1_Lookup_Key를 사용하여 일치하는 엔티티에 대해 LUT를 쿼리한다.In step 3a-3, the computing system S2 queries the two-stage lookup table (“LUT”) using the Stage_1_Lookup_Key. The result is an existing LUT with key HMAC(IG_Request_Key, IG_ID). That is, the computing system S2 queries the LUT for a matching entity using the Stage_1_Lookup_Key of the decrypted request.

단계(3a-4)에서, 컴퓨팅 시스템(S2)은 블룸 필터(G2')로 LUT를 필터링한다. 블룸 필터의 가양성 비율이 1%라고 가정하면 LUT에 있는 엔티티의 약 1%가 필터를 통과한다. LUT의 엔티티의 수는 컴퓨팅 시스템(S2)에 의해 캐시된 모든 엔티티의 대략 2-n이다. 따라서, n은 단계(2a-8)에서 단계(2a-11)까지의 통신 및 계산 비용을 포함하여 제어한다. n이 작을수록 통신 및 계산 비용이 더 많이 들고, 다른 IG_Request_Key와 연관된 LUT의 엔티티 수가 더 높아지며, 이는 컴퓨팅 시스템(S2)이 SSP(170)와 공모하여 두 가지 유형의 콘텐츠 항목 요청에서 공통 타겟팅 신호에 기초하여 관심 그룹 및 콘텍스트 요청을 상관시키는 것을 더 어렵게 만든다.In step 3a-4, the computing system S2 filters the LUT with a bloom filter G 2 ′. Assuming that the bloom filter has a false positive rate of 1%, about 1% of the entities in the LUT will pass the filter. The number of entities in the LUT is approximately 2- n of all entities cached by the computing system S2. Accordingly, n controls including communication and computation costs from steps 2a-8 to 2a-11. Smaller n is more expensive to communicate and compute, and the higher the number of entities in the LUT associated with different IG_Request_Keys, which is why the computing system S2 colludes with the SSP 170 for a common targeting signal in both types of content item requests. making it more difficult to correlate interest groups and context requests based on

단계(3a-5)에서, 컴퓨팅 시스템(S2)은 선택 기준에 따라 필터링된 엔트리를 정렬한다. 예를 들어, 컴퓨팅 시스템(S2)은 가장 높은 것부터 가장 낮은 것까지 사후 수익 공유 선택 값(또는 비드 값)을 사용하여 필터링된 엔트리를 정렬할 수 있다. 각각의 엔트리에 대해 컴퓨팅 시스템(S2)은 키/값 쌍을 준비하며, 여기서 키는 HMAC(HMAC(IG_Request_Key, IG_ID), nonce)이다. 값은 PubKeySign(PubKeyEncrypt(metadata_for_IG, public_key2), MPC2)이며, 여기서 PubKeySign(clear_text, domain)은 개인 키를 사용하여 clear_text에 디지털 서명 알고리즘(예를 들어, ECDSA NIST P-256)을 적용함으로써 도메인이 생성하는 디지털 서명과 clear_text를 연결하는데 사용되는 함수이다. 관심 그룹(IG)에 대한 metadata_for_IG는 관심 그룹에 대응하는 디지털 컴포넌트에 대한 선택 기준 세트를 포함할 수 있다. 전술한 바와 같이, 선택 기준 세트는 선택 값, 디지털 컴포넌트 또는 디지털 컴포넌트를 얻기 위한 명령 등을 포함할 수 있다. PubKeyEncrypt는 공개 키 public_key2를 사용하여 관심 그룹의 메타데이터에서 수행되는 암호화 함수로 컴퓨팅 시스템(S1)이 요청이 생성되는 웹사이트 URL과 같은 신호를 추론하기 위해 컴퓨팅 시스템(S1)에 의해 사용될 수 있는 IG_ID로 식별되는 특정 관심 그룹에 대한 선택 값을 학습하는 것을 방지한다. PubKeySign은 컴퓨팅 시스템(S1)이 컴퓨팅 시스템(S2)을 가장하여 잘못된 결과를 생성하는 것을 방지한다. 따라서, 컴퓨팅 시스템(S2)은 관심 그룹 비드의 세트를 키/값 쌍의 정렬된 세트로 변환한다. 그런 다음, 컴퓨팅 시스템(S2)은 키/값 쌍 및 PubKeyEncrypt(G2 T, S1)의 정렬된 리스트를 컴퓨팅 시스템(S1)에 전송한다.In steps 3a-5, the computing system S2 sorts the filtered entries according to the selection criteria. For example, computing system S2 may sort the filtered entries using the post revenue share selection value (or bid value) from highest to lowest. For each entry, the computing system S2 prepares a key/value pair, where the key is HMAC(HMAC(IG_Request_Key, IG_ID), nonce). The value is PubKeySign(PubKeyEncrypt(metadata_for_IG, public_key2), MPC2), where PubKeySign(clear_text, domain) is the domain created by applying a digital signature algorithm (eg ECDSA NIST P-256) to clear_text using the private key. This function is used to connect the digital signature to clear_text. The metadata_for_IG for the interest group (IG) may include a set of selection criteria for a digital component corresponding to the interest group. As noted above, the set of selection criteria may include selection values, digital components or instructions for obtaining digital components, and the like. PubKeyEncrypt is an encryption function performed on the metadata of the interest group using the public key public_key2, an IG_ID that can be used by the computing system S1 to infer a signal such as the website URL from which the request is made. It prevents learning of a selection value for a specific interest group identified by . PubKeySign prevents computing system S1 from impersonating computing system S2 and producing erroneous results. Accordingly, the computing system S2 transforms the set of interest group bids into an ordered set of key/value pairs. The computing system S2 then sends the sorted list of key/value pairs and PubKeyEncrypt(G 2 T , S1) to the computing system S1.

단계(3a-6)에서, 컴퓨팅 시스템(S1)은 PubKeyEncrypt(G2 T, S1)를 해독하여 G2 T를 일반 텍스트로 복구한다. 예를 들어, 컴퓨팅 시스템(S1)은 컴퓨팅 시스템(S1)에만 애플리케이션(112)에 의해 제공되는 공개 키에 대응하는 개인 키를 사용하여 PubKeyEncrypt를 해독한다.In step 3a-6, the computing system S1 decrypts PubKeyEncrypt(G 2 T , S1) to recover G 2 T as plaintext. For example, the computing system S1 decrypts the PubKeyEncrypt using the private key corresponding to the public key provided by the application 112 only to the computing system S1.

단계(3a-7)에서, 컴퓨팅 시스템(S1)은 키가 G2 T에 있는 정렬된 키/값 쌍의 리스트에서 제1 키/값 쌍을 찾기 위해 G2 T를 사용하여 승리한 관심 그룹을 선택한다. 정렬된 리스트는 이미 가장 높은 사후 수익 공유 선택 값에서 가장 낮은 사후 수익 공유 선택 값의 순서로 정렬되어 있기 때문에, 컴퓨팅 시스템(S1)은 단순히 G2 T에 쿼리하고 키가 G2 T에 있는 정렬된 리스트에서 제1 키/값 쌍을 선택하여 키/값 쌍의 실제 값에 액세스하지 않고 가장 높은 사후 수익 공유 비드 가격을 갖는 애플리케이션(112)이 연관된 관심 그룹의 실제 리스트에 있는 관심 그룹을 선택한다. 선택된 키/값 쌍이 결과이다.In step 3a-7, computing system S1 selects the winning interest group using G 2 T to find the first key/value pair in the sorted list of key/value pairs whose key is in G 2 T . choose Since the sorted list is already ordered from the highest posterior revenue share selection value to the lowest posterior revenue share selection value, the computing system S1 simply queries G 2 T and the sorted list whose key is in G 2 T . By selecting the first key/value pair from the list, the application 112 with the highest post revenue share bid price without access to the actual value of the key/value pair selects the interest group in the actual list of associated interest groups. The selected key/value pair is the result.

단계(3a-8)에서, 컴퓨팅 시스템(S1)은 나중에 애플리케이션(112)에 의한 확인을 위해 자신의 개인 키로 선택된 키/값 쌍에 서명한다. 예를 들어, 컴퓨팅 시스템(S1)은 애플리케이션(112)이 컴퓨팅 시스템(S1)에만 제공하는 공개 키에 대응하는 개인 키로 승리한 키/값 쌍에 서명할 수 있다.In step 3a-8, computing system S1 signs the selected key/value pair with its private key for later verification by application 112 . For example, computing system S1 may sign the winning key/value pair with a private key corresponding to a public key that application 112 provides only to computing system S1 .

단계(4a-1)에서, 컴퓨팅 시스템(S1)은 선택된 키/값 쌍 또는 결과를 애플리케이션(112)으로 다시 전송한다.In step 4a - 1 , the computing system S1 sends the selected key/value pair or result back to the application 112 .

단계(4a-2)에서, 애플리케이션(112)은 다음과 같이 결과를 해독하고 검증한다.In step 4a-2, the application 112 decrypts and verifies the result as follows.

애플리케이션(112)은 결과가 컴퓨팅 시스템(S1)에 의해 암호화되고 서명되었는지 확인한다. 예를 들어, 키는 HMAC(HMAC(IG_Request_Key, Winning_IG_ID), nonce)일 수 있다. 값은 PubKeySign(PubKeyEncrypt(metadata_for_IG, public_key2), S2)일 수 있다. 애플리케이션(112)은 Winning_IG_ID를 복구하고 이것이 G2의 구성원인지 확인한다. 애플리케이션(112)이 IG_Request_Key, nonce 및 G2를 알고 있기 때문에, 애플리케이션(112)은 Winning_IG_ID가 세트 G2의 구성원임을 확인할 수 있다. 애플리케이션(112)은 값이 컴퓨팅 시스템(S2)에 의해 암호화되고 서명되었는지 확인한다. 그런 다음, 애플리케이션(112)은 matadata_for_IG를 복구하기 위해 private_key2로 값을 해독한다.The application 112 verifies that the result is encrypted and signed by the computing system S1. For example, the key may be HMAC (HMAC(IG_Request_Key, Winning_IG_ID), nonce). The value may be PubKeySign(PubKeyEncrypt(metadata_for_IG, public_key2), S2). Application 112 recovers Winning_IG_ID and verifies that it is a member of G 2 . Because application 112 knows IG_Request_Key, nonce and G 2 , application 112 can confirm that Winning_IG_ID is a member of set G 2 . The application 112 verifies that the value is encrypted and signed by the computing system S2. Then, the application 112 decrypts the value with private_key2 to recover the matadata_for_IG.

암호화 프로세스(300)는 추가적인 프라이버시 및 보안 보호를 제공한다. 이 프로세스 동안, 컴퓨팅 시스템(S2)은 일반 텍스트의 블룸 필터(G2')를 수신한다. 이전 분석에 따르면 블룸 필터(G2')는 차등 비공개이다. 또한, 컴퓨팅 시스템(S2)은 일반 텍스트의 Stage_1_Lookup_Key, 즉 n 비트로 잘린 SHA256(IG_Request_Key)을 수신한다. 또한, 컴퓨팅 시스템(S1)은 일반 텍스트의 클라이언트 IP 주소만 본다. 따라서, MPC 클러스터의 컴퓨팅 시스템 중 어느 것도 사용자 데이터 전체에 액세스할 수 없으며 사용자의 신원을 추측할 수 없다.The encryption process 300 provides additional privacy and security protection. During this process, the computing system S2 receives a bloom filter G 2 ′ in plain text. According to previous analysis, the bloom filter (G2') is differentially private. In addition, the computing system S2 receives the Stage_1_Lookup_Key of plain text, that is, SHA256 (IG_Request_Key) truncated to n bits. Also, the computing system S1 sees only the client IP address in plain text. Thus, none of the computing systems in the MPC cluster have full access to the user data and cannot guess the identity of the user.

도 4는 콘텐츠를 선택하기 위한 예시적인 프라이버시 보호 프로세스(400)의 흐름도이다. 일부 구현예들에서, 프로세스 또는 방법(400)은 하나 이상의 시스템에 의해 수행될 수 있다. 예를 들어, 프로세스(400)는 도 1 내지 도 3의 클라이언트 디바이스(110), 애플리케이션(112) 및 MPC 클러스터(130)에 의해 구현될 수 있다. 특히, 프로세스(400)는 하나 이상의 프로세서(510) 및 실행 시에 하나 이상의 프로세서로 하여금 프로세스(400)의 단계를 포함하는 동작을 수행하게 하는 명령을 포함하는 하나 이상의 메모리 부재(예를 들어, 도 5의 저장 디바이스(530)를 포함하는 시스템에 의해 구현될 수 있다. 일부 구현예들에서, 프로세스(400)는 비-일시적 컴퓨터 판독가능 매체에 저장된 명령으로서 구현될 수 있고, 명령이 컴퓨팅 시스템(예를 들어, 분산 컴퓨팅 시스템)에 의해 실행될 때, 명령은 컴퓨팅 시스템이 프로세스(400)의 동작을 수행하게 할 수 있다. 바람직하게는 컴퓨팅 시스템은 하나 이상의 서버를 포함한다. 분산 컴퓨팅 시스템은 네트워크로 연결된 여러 서버를 포함할 수 있다.4 is a flow diagram of an exemplary privacy protection process 400 for selecting content. In some implementations, process or method 400 may be performed by one or more systems. For example, process 400 may be implemented by client device 110 , application 112 , and MPC cluster 130 of FIGS. 1-3 . In particular, process 400 may include one or more processors 510 and one or more memory elements (eg, FIG. 5 may be implemented by a system including storage device 530. In some implementations, process 400 may be implemented as instructions stored on a non-transitory computer-readable medium, wherein the instructions are For example, when executed by a distributed computing system), the instructions may cause the computing system to perform the operations of process 400. Preferably, the computing system includes one or more servers. It can contain multiple connected servers.

프로세스(400)는 MPC 클러스터의 제1 다자간 연산(MPC) 서버(예를 들어, 도 1, 도 2 및 도 3의 S2)에 의해 그리고 MPC 클러스터의 제2 MPC 서버(예를 들어, 도 1, 도 2 및 도 3의 S1)로부터 클라이언트 디바이스의 특정 사용자가 속하는 둘 이상의 관심 그룹의 세트 중 적어도 하나의 관심 그룹의 선택 기준에 대한 요청을 수신하는 단계로 시작되며, 수신된 요청은 클라이언트 디바이스의 식별자를 제1 MPC 서버(402)에 나타내지 않는다. 예를 들어, 도 2 및 도 3의 단계(3a-1)와 관련하여 위에서 설명된 바와 같이, 컴퓨팅 시스템(S2)은 컴퓨팅 시스템(S1)으로부터 관심 그룹 비드에 대한 요청을 수신할 수 있다. 요청은 클라이언트 디바이스의 식별자인 애플리케이션(112)의 IP 주소를 컴퓨팅 시스템(S2)에 공개하지 않는다. 이는 사용자 프라이버시를 보호하고 사용자 데이터의 보안을 유지하는 기술적 효과가 있다. 예를 들어, 사용자를 구성원으로 포함하는 관심 그룹의 일부만이 MPC 클러스터의 각각의 MPC 서버에 제공된다. 따라서, MPC 서버는 사용자의 전체 사용자 관심 그룹 멤버십을 결정할 수 없다. 확률적 데이터 구조를 사용하면 각각의 MPC 서버로 전송되는 요청의 데이터 크기를 줄이는 동시에 사용자 프라이버시 및 데이터 보안을 추가로 보호하는 기술적 효과가 추가로 제공된다. 많은 요청(예를 들어, 하루에 수천 또는 수백만)에 대해 집계하면 상당한 대역폭과 대기 시간이 절약되고 요청을 전송할 수 있는 모바일 디바이스의 배터리 소모가 줄어든다.The process 400 is performed by a first multiparty computing (MPC) server of the MPC cluster (eg, S2 in FIGS. 1 , 2 and 3) and by a second MPC server of the MPC cluster (eg, FIG. 1 , It begins with receiving a request for selection criteria of at least one interest group among a set of two or more interest groups to which a specific user of the client device belongs from S1) of FIGS. 2 and 3 , wherein the received request includes an identifier of the client device is not shown to the first MPC server 402 . For example, as described above with respect to step 3a - 1 of FIGS. 2 and 3 , computing system S2 may receive a request for an interest group bid from computing system S1 . The request does not disclose to the computing system S2 the IP address of the application 112 , which is the identifier of the client device. This has the technical effect of protecting user privacy and maintaining the security of user data. For example, only a subset of interest groups that include users as members are provided to each MPC server in an MPC cluster. Therefore, the MPC server cannot determine the user's overall user interest group membership. The use of a probabilistic data structure provides the additional technical effect of reducing the data size of the request sent to each MPC server while further protecting user privacy and data security. Aggregating for many requests (eg, thousands or millions per day) saves significant bandwidth and latency and reduces battery drain on the mobile device capable of sending the request.

프로세스(400)는 제1 MPC 서버에 의해 클라이언트 디바이스의 특정 사용자가 속한 2개 이상의 관심 그룹의 세트 중 적어도 하나의 관심 그룹의 정렬된 선택 기준의 세트를 결정하여 수신된 요청에 응답함으로써 계속된다(404). 일부 구현예들에서, 정렬된 선택 기준의 세트는 암호화되지 않은 또는 일반 텍스트 형식으로 액세스되는 것으로부터 보호되거나 그렇지 않으면 제2 MPC 서버에 의해 공개되는 요청의 부분을 사용하여 제1 MPC 서버의 캐시로부터 검색된다. 예를 들어, 도 2 및 도 3의 단계(3a-2) 내지 단계(3a-5)와 관련하여 전술한 바와 같이, 컴퓨팅 시스템(S2)(즉, 제1 MPC 서버)는 요청의 부분을 사용하여 컴퓨팅 시스템(S2)의 2-스테이지 LUT로부터 검색된 관심 그룹 비드의 정렬된 세트를 결정할 수 있다. 이는 선택 프로세스 중에 데이터 보안 및 사용자 프라이버시를 유지하는 기술적 효과가 있다. 이 접근 방식을 사용하면 MPC 클러스터가 사용자의 전체 관심 그룹 멤버십을 얻지 못하게 된다. 또한, 이 접근 방식은 MPC 서버가 관심 그룹에 대한 선택 값을 제공하는 DSP에 대한 기밀 데이터를 얻는 것을 방지한다.Process 400 continues by responding to a request received by the first MPC server determining, by the first MPC server, an ordered set of selection criteria of at least one interest group out of a set of two or more interest groups to which a particular user of the client device belongs. 404). In some implementations, the ordered set of selection criteria is protected from being accessed in unencrypted or plain text form, or from the cache of the first MPC server using the portion of the request that is otherwise published by the second MPC server. are searched for For example, as described above with respect to steps 3a-2 through 3a-5 of FIGS. 2 and 3 , computing system S2 (ie, the first MPC server) uses the portion of the request. to determine an ordered set of group of interest beads retrieved from the two-stage LUT of the computing system S2. This has the technical effect of maintaining data security and user privacy during the selection process. Using this approach prevents the MPC cluster from gaining the user's full interest group membership. Also, this approach prevents the MPC server from obtaining confidential data for DSPs that provide selection values for groups of interest.

프로세스(400)는 정렬된 선택 기준의 세트를 키/값 쌍의 세트로 변환하는 단계로 이어지며, 키/값 쌍 각각의 값은 제2 MPC(406)에 의해 공개되지 않도록 보호된다. 예를 들어, 도 2 및 도 3의 단계(3a-2) 내지 단계(3a-5)와 관련하여 전술한 바와 같이, 컴퓨팅 시스템(S2)은 정렬된 관심 그룹 비드의 세트를 키/값 쌍의 세트로 변환할 수 있다. 이는 또한 선택 프로세스 중에 데이터 보안 및 사용자 프라이버시를 유지하는 기술적 효과가 있다. 이 접근 방식을 사용하면 MPC 클러스터가 사용자의 전체 관심 그룹 멤버십을 얻지 못하게 된다. 또한, 이 접근 방식은 MPC 서버가 관심 그룹에 대한 선택 값을 제공하는 DSP에 대한 기밀 데이터를 얻는 것을 방지한다.The process 400 continues with transforming the ordered set of selection criteria into a set of key/value pairs, the value of each key/value pair being protected from disclosure by the second MPC 406 . For example, as described above with respect to steps 3a-2 to 3a-5 of FIGS. 2 and 3 , the computing system S2 may generate an ordered set of interest group bids of key/value pairs. can be converted to a set. It also has the technical effect of maintaining data security and user privacy during the selection process. Using this approach prevents the MPC cluster from gaining the user's full interest group membership. Also, this approach prevents the MPC server from obtaining confidential data for DSPs that provide selection values for groups of interest.

프로세스(400)는 제1 MPC 서버에 의해 키/값 쌍의 세트의 값을 공개하지 않고 제2 MPC 서버가 가장 높은 값을 갖는 키를 식별할 수 있게 하는 데이터와 함께 키/값 쌍의 세트를 제2 MPC 서버로 전송하는 단계로 이어진다(408). 예를 들어, 도 2 및 도 3의 단계(3a-2) 내지 단계(3a-5)와 관련하여 전술한 바와 같이, 컴퓨팅 시스템(S2)은, 컴퓨팅 시스템(S1)이 값에 액세스하는 것을 허용하지 않고 컴퓨팅 시스템(S1)이 가장 높은 값을 갖는 키를 식별할 수 있게 하는 데이터와 함께 키/값 쌍의 세트로서 비드의 정렬된 리스트를 컴퓨팅 시스템(S1)으로 전송할 수 있다. 이는 사용자 프라이버시 및 데이터 보안을 유지하는 기술적 효과가 있다. 또한, MPC 서버에서 클라이언트 디바이스로 전송되는 데이터의 양은 사용자를 구성원으로 포함하는 각각의 관심 그룹이 아닌 승리한 관심 그룹에 대한 데이터만 전송함으로써 감소된다.The process 400 generates the set of key/value pairs along with data that enables the second MPC server to identify the key with the highest value without disclosing the value of the set of key/value pairs by the first MPC server. The step of sending to the second MPC server is continued (408). For example, as described above with respect to steps 3a-2 through 3a-5 of FIGS. 2 and 3 , computing system S2 allows computing system S1 to access values. may send to computing system S1 an ordered list of bids as a set of key/value pairs along with data that enables computing system S1 to identify the key with the highest value. This has the technical effect of maintaining user privacy and data security. Also, the amount of data transmitted from the MPC server to the client device is reduced by transmitting only data for the winning interest group, not each interest group that includes the user as a member.

일부 구현예들에서, 프로세스(400)는, 제1 MPC 서버에 의해 그리고 제1 MPC 서버 및 제2 MPC 서버와 상이한 콘텐츠 배포 시스템으로부터, 콘텐츠 배포 시스템에 의해 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 주어진 관심 그룹이 예측되는 조건의 세트의 콘텍스트에서 주어진 관심 그룹의 주어진 선택 기준을 수신하는 단계 및 제1 MPC 서버에 의해 그리고 제1 MPC 서버의 캐시에서, 적용 가능한 콘텍스트와 관련하여 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 예측되는 주어진 관심 그룹의 주어진 선택 기준을 캐싱하는 단계를 포함한다. 이는 관심 그룹 멤버십을 기반으로 디지털 컴포넌트를 더 빠르게 선택하는 기술적 효과가 있다. 관심 그룹 멤버십을 기반으로 배포되는 디지털 컴포넌트에 대한 선택 기준을 캐싱함으로써, MPC 서버는 자격이 있는 디지털 컴포넌트(예를 들어, 사용자를 구성원으로 포함하는 관심 그룹에 대한 컴포넌트)를 보다 신속하게 식별하고 캐시된 선택 값을 기반으로 승리한 디지털 컴포넌트를 선택할 수 있다.In some implementations, process 400, given by the first MPC server and from a content distribution system different from the first MPC server and the second MPC server, includes the particular user of the client device by the content distribution system. receiving, by the first MPC server and in a cache of the first MPC server, a given selection criterion of a given interest group in the context of a set of conditions in which the interest group is predicted, a particular user of the client device with respect to an applicable context; caching a given selection criterion of a given interest group predicted to contain. This has the technical effect of faster selection of digital components based on interest group membership. By caching selection criteria for distributed digital components based on interest group membership, the MPC server more quickly identifies and caches eligible digital components (eg, components for interest groups that include users as members). The winning digital component can be selected based on the selected selection value.

예를 들어, 도 2의 단계(10)와 관련하여 전술한 바와 같이, SSP(170)는 DSP(150)에 의해 제공되는 추론적 또는 예측적 선택 값을 컴퓨팅 시스템들(S1 및 S2)에 전송할 수 있다. 컴퓨팅 시스템(S1 및 S2) 각각은 각각의 2-스테이지 LUT를 독립적으로 업데이트할 수 있다.For example, as described above with respect to step 10 of FIG. 2 , SSP 170 transmits the speculative or predictive selection value provided by DSP 150 to computing systems S1 and S2 . can Each of the computing systems S1 and S2 may independently update a respective two-stage LUT.

일부 구현예들에서, 프로세스(400)는, 콘텐츠 배포 시스템에 의해 클라이언트 디바이스에 의해 제출된 콘텐츠 요청을 수신하는 단계, 콘텐츠 요청에 대한 응답으로 콘텐츠 요청에 응답하여 후보 선택 기준을 생성하는 단계, 콘텐츠 요청에 기초하여 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 0개 이상의 관심 그룹을 결정하는 단계, 주어진 관심 그룹이 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 결정에 기초하여 주어진 관심 그룹의 주어진 선택 기준을 생성하는 단계, 콘텐츠 배포 시스템에 의해 후보 배포 기준 및 주어진 배포 기준을 클라이언트 디바이스로 전송하는 단계 및 콘텐츠 배포 시스템과 제1 MPC 서버에 의해 주어진 관심 그룹의 주어진 배포 기준을 전송하지만, 후보 배포 기준은 전송하지 않는 단계를 또한 포함한다. 예를 들어, DSP(150)는 애플리케이션(112)에 의해 제출된 콘텐츠 요청을 수신하고, 애플리케이션(112)이 실행되는 클라이언트 디바이스(110)의 사용자가 특정 관심 그룹의 일부일 가능성이 있다고 결정하고, 관심 그룹에 대한 예측 비드를 생성할 수 있다. 이는 사용자 데이터를 다른 당사자에게 누설하지 않고 디지털 컴포넌트 표시 환경에 대한 관심 그룹 멤버십과 콘텍스트 데이터를 모두 사용하여 애플리케이션에 의해 표시되는 디지털 컴포넌트에 대한 선택 프로세스를 애플리케이션이 완료할 수 있도록 하여 사용자 경험을 개선하는 강력한 디지털 컴포넌트 선택 프로세스 전반에 걸쳐 데이터 보안을 향상시키는 기술적 효과가 있다. 또한, 병렬 요청을 기반으로 클라이언트 디바이스에서 최종 선택 프로세스를 수행하면 선택 프로세스를 보다 빠르게 완료할 수 있으므로 디지털 컴포넌트를 밀리초로 선택해야 하는 상황에서 발생할 수 있는 오류를 방지할 수 있다.In some implementations, process 400 includes receiving a content request submitted by a client device by a content distribution system, generating candidate selection criteria in response to the content request in response to the content request, content determining, based on the request, zero or more interest groups predicted to include a particular user of the client device; generating criteria, sending by the content distribution system the candidate distribution criteria and the given distribution criteria to the client device and sending the given distribution criteria of the given interest group by the content distribution system and the first MPC server, but the candidate distribution criteria also includes not transmitting. For example, DSP 150 receives a content request submitted by application 112 , determines that a user of client device 110 on which application 112 is executed is likely to be part of a particular interest group, and You can generate prediction bids for groups. This is to improve the user experience by enabling applications to complete the selection process for digital components displayed by applications using both interest group membership and context data for the digital component display environment without leaking user data to other parties. A strong digital component selection process has the technical effect of improving data security throughout the process. In addition, performing the final selection process on the client device based on parallel requests allows the selection process to be completed more quickly, avoiding errors that can occur in situations where digital components must be selected in milliseconds.

일부 구현예들에서, 프로세스(400)는, 제2 MPC 서버에 의해 액세스될 수 없는, 예를 들어, 해독될 수 없는 제1 암호화된 요청을 제2 MPC 서버에 의해 수신하는 단계, 제2 MPC 서버에 의해 제1 암호화된 요청을 제1 MPC 서버에 전달하는 단계, 제2 MPC 서버로부터 키/값 쌍의 세트를 수신하는 단계, 제2 MPC 서버에 의해 키/값 쌍의 값을 공개하지 않고 가장 높은 값을 갖는 주어진 키/값 쌍을 식별하는 단계, 주어진 키/값 쌍을 포함하는 제1 암호화된 요청에 대한 제1 서명된 응답을 생성하는 단계로, 제1 서명된 응답은 제2 MPC 서버의 개인 키로 서명되는, 제1 서명된 응답을 생성하는 단계 및 제1 암호화된 요청에 응답하여 클라이언트 디바이스에 제1 서명된 응답을 전송하는 단계를 또한 포함한다. 이는 선택 프로세스 중에 데이터 보안 및 사용자 프라이버시를 유지하는 기술적 효과가 있다. 이 접근 방식을 사용하면 MPC 클러스터가 사용자의 전체 관심 그룹 멤버십을 얻지 못하게 된다. 또한, 이 접근 방식은 MPC 서버가 관심 그룹에 대한 선택 값을 제공하는 DSP에 대한 기밀 데이터를 얻는 것을 방지한다. 또한, 요청에 암호화 및 서명을 사용하여 데이터 보안을 유지하고 MPC 서버와 클라이언트 디바이스 간에 발생할 수 있는 사기를 방지한다. 서명을 사용하여 응답을 확인하면 암호화된 응답이 수정되지 않았음을 확인할 수 있다.In some implementations, process 400 includes receiving, by the second MPC server, a first encrypted request that cannot be accessed, eg, cannot be decrypted, by the second MPC server; forwarding the first encrypted request by the server to the first MPC server, receiving the set of key/value pairs from the second MPC server, without disclosing the values of the key/value pairs by the second MPC server identifying a given key/value pair having a highest value, generating a first signed response to a first encrypted request comprising the given key/value pair, wherein the first signed response is a second MPC It also includes generating a first signed response, signed with a private key of the server, and sending the first signed response to the client device in response to the first encrypted request. This has the technical effect of maintaining data security and user privacy during the selection process. Using this approach prevents the MPC cluster from gaining the user's full interest group membership. Also, this approach prevents the MPC server from obtaining confidential data for DSPs that provide selection values for groups of interest. It also uses encryption and signatures on requests to keep data secure and prevent possible fraud between the MPC server and client devices. Validating the response using the signature confirms that the encrypted response has not been modified.

예를 들어, 컴퓨팅 시스템(S1)은 액세스할 수 없거나 컴퓨팅 시스템(S1)에 의해 해독될 수 없는 암호화된 요청을 수신하고 컴퓨팅 시스템(S2)에 요청을 전달할 수 있다. 그런 다음, 컴퓨팅 시스템(S2)은 쌍의 값을 공개하지 않고 키/값 쌍의 정렬된 세트를 컴퓨팅 시스템(S1)에 제공하고 키/값 쌍의 정렬된 세트 및 값 서명을 포함하는 응답을 컴퓨팅 시스템(S1)에 생성할 수 있다. 컴퓨팅 시스템(S1)이 승자 관심 그룹 비드를 선택하면, 컴퓨팅 시스템(S1)은 선택된 키/값 쌍을 애플리케이션(112)에 전송한다.For example, computing system S1 may receive an encrypted request that cannot be accessed or decrypted by computing system S1 and forward the request to computing system S2 . The computing system S2 then provides the ordered set of key/value pairs to the computing system S1 without disclosing the pair's values and computes a response comprising the ordered set of key/value pairs and the value signature. It can be generated in the system S1. When computing system S1 selects a winning interest group bid, computing system S1 sends the selected key/value pair to application 112 .

일부 구현예들에서, 프로세스(400)는, 제2 MPC 서버에 의해 전송된 제1 암호화되고 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계, 클라이언트 디바이스에 의해 제1 암호화되고 서명된 응답이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계, 클라이언트 디바이스에 의해 제1 서명된 응답으로부터 제1 관심 그룹을 복구하는 단계, 클라이언트 디바이스에 의해 제1 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계, 클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계, 클라이언트 디바이스에 의해 제1 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계, 클라이언트 디바이스에 의해 콘텐츠 배포 시스템으로부터 후보 선택 기준 및 주어진 선택 기준을 수신하는 단계, 클라이언트 디바이스에 의해 제1 선택 기준, 주어진 선택 기준 및 후보 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 또한 포함한다. 이는 사용자 프라이버시 및 데이터 보안을 보호하고 사기를 방지하는 기술적 효과가 있다.In some implementations, process 400 includes receiving, by the client device, a first encrypted signed response sent by the second MPC server, wherein the first encrypted and signed response by the client device is transmitted to the first confirming that it was signed by the MPC server, recovering the first interest group from the first signed response by the client device, confirming by the client device that the first interest group includes a specific user, the client verifying that the value of the key/value pair given by the device is signed by the first MPC server, decrypting the value of the given key/value pair to restore the first selection criterion by the client device, by the client device The method also includes receiving the candidate selection criteria and the given selection criteria from the content distribution system, and selecting, by the client device, the control selection criteria from among the first selection criteria, the given selection criteria, and the candidate selection criteria. This has the technical effect of protecting user privacy and data security and preventing fraud.

예를 들어, 도 3의 단계(4a-1) 내지 단계(4a-2)와 관련하여 전술한 바와 같이, 애플리케이션(112)은 컴퓨팅 시스템(S1)으로부터 서명된 응답을 수신하고 응답으로부터 승리한 관심 그룹 비드를 복구할 수 있다. 애플리케이션(112)은 응답에서 주어진 키/값 쌍의 값이 암호화되고 컴퓨팅 시스템(S2)에 의해 서명되었음을 확인할 수 있다. 그런 다음, 애플리케이션(112)은 키/값 쌍의 값을 해독하여 승리한 관심 그룹 비드를 복구하고, 컴퓨팅 시스템(S2)로부터의 0 또는 1개의 관심 그룹 비드 및 SSP(170)로부터의 0 또는 1개의 콘텍스트 비드를 포함하는 다른 비드를 수신한다.For example, as described above with respect to steps 4a-1 to 4a-2 of FIG. 3 , the application 112 receives a signed response from the computing system S1 and wins interest from the response. Group beads can be recovered. The application 112 may verify that the value of the given key/value pair in the response has been encrypted and signed by the computing system S2. The application 112 then decrypts the value of the key/value pair to recover the winning interest group bid, 0 or 1 interest group bid from computing system S2 and 0 or 1 from SSP 170 . Receive another bid including two context bids.

일부 구현예들에서, 프로세스(400)는, 클라이언트 디바이스에 의해 특정 사용자를 포함하는 관심 그룹을 제1 관심 그룹 세트 및 제1 관심 그룹 세트와 상이한 제2 관심 그룹 세트로 기술하는 단계, 클라이언트 디바이스에 의해 제2 MPC 서버에 특정 사용자를 포함하는 제1 관심 그룹 세트를 포함한 제1 암호화된 요청을 전송하는 단계, 클라이언트 디바이스에 의해 제1 MPC 서버에 특정 사용자를 포함하는 제2 관심 그룹 세트를 포함한 제2 암호화된 요청을 전송하는 단계, 제1 MPC 서버에 의해 전송된 제2 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계, 클라이언트 디바이스에 의해 제2 서명된 응답이 제2 MPC 서버에 의해 서명되었음을 확인하는 단계, 클라이언트 디바이스에 의해 서명된 응답으로부터 지정된 관심 그룹을 복구하는 단계, 클라이언트 디바이스에 의해 지정된 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계, 클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제2 MPC 서버에 의해 서명되었음을 확인하는 단계, 클라이언트 디바이스에 의해 제3 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계를 또한 포함하며, 제어 선택 기준을 선택하는 단계는 제1 선택 기준, 주어진 선택 기준, 후보 선택 기준 및 제3 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 포함한다. 이는 사용자 프라이버시 및 데이터 보안을 보호하고 사기를 방지하는 기술적 효과가 있다.In some implementations, process 400 includes, by the client device, describing, by the client device, an interest group comprising a particular user to a first interest group set and a second interest group set different from the first interest group set; sending, by the client device, a first encrypted request comprising a first set of interest groups comprising the specific user to a second MPC server, the second set of interest groups comprising the second set of interest groups comprising the specific user to the first MPC server by the client device 2 sending the encrypted request, receiving by the client device a second signed response sent by the first MPC server, confirming by the client device that the second signed response is signed by the second MPC server retrieving the specified interest group from the response signed by the client device, confirming that the interest group specified by the client device includes a particular user, the value of the key/value pair given by the client device is further comprising verifying that it was signed by the second MPC server, decrypting the value of the given key/value pair to recover the third selection criterion by the client device, wherein the selecting the control selection criterion comprises the first selection selecting a control selection criterion from among the criteria, a given selection criterion, a candidate selection criterion, and a third selection criterion. This has the technical effect of protecting user privacy and data security and preventing fraud.

예를 들어, 도 2의 단계(2) 및 도 3의 단계(2a-1) 내지 단계(2a-2)와 관련하여 전술한 바와 같이, 클라이언트 디바이스(110)의 애플리케이션(112)은 관심 그룹을 2개의 상이한 세트로 분리할 수 있다. 도 3의 단계(2a-1) 내지 단계(3a-1)와 관련하여 전술한 바와 같이, 클라이언트 디바이스(110)의 애플리케이션(112)은 암호화된 요청을 컴퓨팅 시스템(S2)에 전송할 수 있고, 컴퓨팅 시스템(S2)은 제2 암호화된 요청을 컴퓨팅 시스템(S1)에 전송할 수 있다. 도 3의 단계(3a-5) 내지 단계(4a-2)와 관련하여 전술한 바와 같이, 애플리케이션(112)은 컴퓨팅 시스템(S2)으로부터 서명된 결과를 수신하고 결과 값이 컴퓨팅 시스템(S1)에 의해 암호화되고 서명되었음을 확인할 수 있다. 그런 다음, 애플리케이션(112)은 결과를 해독하고 결과에서 지정된 관심 그룹이 특정 사용자를 포함하는지 확인할 수 있는데, 이는 애플리케이션(112)이 사용자가 속한 관심 그룹의 실제 리스트를 갖고 있기 때문이다.For example, as described above with respect to step (2) of FIG. 2 and steps (2a-1) through (2a-2) of FIG. 3, the application 112 of the client device 110 may select an interest group. It can be separated into two different sets. As described above with respect to steps 2a-1 to 3a-1 of FIG. 3 , the application 112 of the client device 110 may send an encrypted request to the computing system S2, and System S2 may send a second encrypted request to computing system S1 . As described above with respect to steps 3a-5 to 4a-2 of FIG. 3 , the application 112 receives the signed result from the computing system S2 and sends the result value to the computing system S1 . It can be verified that it has been encrypted and signed by The application 112 can then decipher the result and verify that the interest group specified in the result includes the particular user, since the application 112 has the actual list of interest groups to which the user belongs.

도 5는 위에서 설명된 동작을 수행하는데 사용될 수 있는 예시적인 컴퓨터 시스템(500)의 블록도이다. 시스템(500)은 프로세서(510), 메모리(520), 저장 디바이스(530) 및 입출력 디바이스(540)를 포함한다. 컴포넌트(510, 520, 530, 540) 각각은 예를 들어, 시스템 버스(550)를 사용하여 상호연결될 수 있다. 프로세서(510)는 시스템(500) 내에서 실행하기 위한 명령을 처리할 수 있다. 일 구현예에서, 프로세서(510)는 단일-스레드 프로세서이다. 다른 구현예에서, 프로세서(510)는 멀티-스레드 프로세서이다. 프로세서(510)는 메모리(520) 또는 저장 디바이스(530)에 저장된 명령을 처리할 수 있다.5 is a block diagram of an exemplary computer system 500 that may be used to perform the operations described above. The system 500 includes a processor 510 , a memory 520 , a storage device 530 , and an input/output device 540 . Each of components 510 , 520 , 530 , 540 may be interconnected using, for example, a system bus 550 . The processor 510 may process instructions for execution in the system 500 . In one implementation, processor 510 is a single-threaded processor. In another implementation, processor 510 is a multi-threaded processor. The processor 510 may process a command stored in the memory 520 or the storage device 530 .

메모리(520)는 시스템(500) 내에 정보를 저장한다. 일 구현예에서, 메모리(520)는 컴퓨터-판독가능 매체이다. 일 구현예에서, 메모리(520)는 휘발성 메모리 유닛이다. 다른 구현예에서, 메모리(520)는 비-휘발성 메모리 유닛이다.Memory 520 stores information within system 500 . In one implementation, memory 520 is a computer-readable medium. In one implementation, memory 520 is a volatile memory unit. In another implementation, memory 520 is a non-volatile memory unit.

저장 디바이스(530)는 시스템(500)에 대용량 저장부를 제공할 수 있다. 일 구현예에서, 저장 디바이스(530)는 컴퓨터-판독가능 매체이다. 다양한 다른 구현예들에서, 저장 디바이스(530)는, 예를 들어, 하드 디스크 디바이스, 광학 디스크 디바이스, 다수의 컴퓨팅 디바이스(예를 들어, 클라우드 저장 디바이스)에 의해 네트워크를 통해 공유되는 저장 디바이스, 또는 일부 다른 대용량 저장 디바이스를 포함할 수 있다.The storage device 530 may provide mass storage to the system 500 . In one implementation, storage device 530 is a computer-readable medium. In various other implementations, storage device 530 is, for example, a hard disk device, an optical disk device, a storage device shared over a network by multiple computing devices (eg, a cloud storage device), or It may include some other mass storage device.

입력/출력 디바이스(540)는 시스템(500)에 대한 입력/출력 동작을 제공한다. 일 구현예에서, 입력/출력 디바이스(540)는 네트워크 인터페이스 디바이스들, 예를 들어, 이더넷 카드, 직렬 통신 디바이스, 예를 들어, RS-232 포트 및/또는 무선 인터페이스 디바이스, 예를 들어, 802.11 카드 중 하나 이상을 포함할 수 있다. 다른 구현예에서, 입력/출력 디바이스는 입력 데이터를 수신하고 출력 데이터를 다른 입력/출력 디바이스, 예를 들어, 키보드, 프린터 및 디스플레이 디바이스(560)로 보내도록 구성된 드라이버 디바이스를 포함할 수 있다. 그러나, 모바일 컴퓨팅 디바이스, 모바일 통신 디바이스, 셋톱 박스 텔레비전 클라이언트 디바이스 등과 같은 다른 구현예들도 사용될 수 있다.Input/output device 540 provides input/output operation for system 500 . In one implementation, the input/output device 540 is configured with network interface devices, such as an Ethernet card, a serial communication device, such as an RS-232 port, and/or a wireless interface device, such as an 802.11 card. may include one or more of In other implementations, input/output devices may include driver devices configured to receive input data and send output data to other input/output devices, such as keyboard, printer, and display devices 560 . However, other implementations may be used, such as a mobile computing device, a mobile communication device, a set top box television client device, and the like.

예시적인 프로세싱 시스템이 도 5에 설명되었지만, 본원 명세서에 설명된 주제 및 기능적 동작의 구현예들은 본원 명세서에 개시된 구조 및 이들의 구조적 등가물을 포함하는 다른 유형의 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현되거나 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.Although an exemplary processing system is described in FIG. 5 , implementations of the subject matter and functional operation described herein may be implemented in other types of digital electronic circuitry, or computer software, firmware, or other types including the structures disclosed herein and structural equivalents thereof, It may be implemented in hardware or a combination of one or more thereof.

매체가 반드시 파일에 대응하는 것은 아니다. 매체는 다른 문서를 포함하는 파일의 일부, 문제의 문서 전용 단일 파일 또는 여러 개의 통합 파일에 저장될 수 있다.A medium does not necessarily correspond to a file. The medium may be stored as part of a file containing other documents, in a single file dedicated to the document in question, or in several consolidated files.

본원 명세서에 기술된 주제 및 동작의 실시예들은 본원 명세서에 개시된 구조 및 이들의 구조적 등가물을 포함하는 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현되거나 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본원 명세서에 기술된 주제의 실시예들은 하나 이상의 컴퓨터 프로그램, 즉, 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 작동을 제어하기 위해 컴퓨터 저장 매체(또는 매체)에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 대안적으로 또는 부가적으로, 프로그램 명령들은 인위적으로 생성된 전파 신호, 예를 들어, 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로의 송신을 위한 정보를 인코딩하도록 생성되는 기계-생성 전기 신호, 광학 신호 또는 전자기 신호 상에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터-판독가능 저장 디바이스, 컴퓨터-판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스 또는 이들 중 하나 이상의 조합일 수 있거나 이에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지가 될 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 물리적 컴포넌트 또는 매체(예를 들어, 다중 CD, 디스크 또는 기타 저장 디바이스)일 수 있거나 이에 포함될 수 있다.Embodiments of the subject matter and operation described herein may be implemented in digital electronic circuitry comprising the structures disclosed herein and structural equivalents thereof, or implemented in computer software, firmware or hardware, or in a combination of one or more thereof. . Embodiments of the subject matter described herein are one or more computer programs, ie, one or more modules of computer program instructions executed by a data processing device or encoded in a computer storage medium (or medium) for controlling the operation of the data processing device. can be implemented as Alternatively or additionally, the program instructions include an artificially generated radio signal, eg, a machine-generated electrical signal generated to encode information for transmission to a receiver device suitable for execution by a data processing device; It may be encoded on an optical signal or an electromagnetic signal. A computer storage medium may be or be included in a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more thereof. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal. Computer storage media may also be or be included in one or more separate physical components or media (eg, multiple CDs, disks, or other storage devices).

본원 명세서에서 설명되는 동작들은 하나 이상의 컴퓨터-판독 가능 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작으로 구현될 수 있다.The operations described herein may be implemented as operations performed by a data processing apparatus on data stored in one or more computer-readable storage devices or received from other sources.

시스템(100), 방법(200), 프로세스(300), 프로세스(400) 및 시스템(500)을 포함하여 본원 명세서에 설명된 프로세스, 방법, 시스템 및 장치 각각의 모든 특징은 선택적으로 본원 명세서에 설명된 다른 프로세스, 방법, 시스템 및 장치에 필요한 부분만 수정하여 적용한다. 단지 예로서, 방법(200) 및 프로세스(300)의 특징은 선택적으로 프로세스(400)에 필요한 부분만 수정하여 적용한다.All features of each of the processes, methods, systems and apparatus described herein, including system 100 , method 200 , process 300 , process 400 , and system 500 are optionally described herein. Modify and apply only the parts necessary for other processes, methods, systems and devices that have been used. By way of example only, the features of the method 200 and the process 300 are selectively applied with modifications necessary for the process 400 .

"데이터 처리 장치"라는 용어는 데이터 처리를 위한 모든 종류의 장치, 디바이스 및 기계를 포함하며, 예를 들어 프로그래밍 가능한 프로세서, 컴퓨터, 시스템 온 칩 또는 전술한 것의 다수 또는 조합을 포함한다. 장치는 예를 들어, FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(주문형 집적회로)와 같은 특수 목적 논리 회로를 포함할 수 있다. 장치는 또한 하드웨어에 추가하여 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 플랫폼 간 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라스트럭처와 같은 다양한 컴퓨팅 모델 인프라스트럭처를 실현할 수 있다.The term "data processing apparatus" includes all kinds of apparatus, devices and machines for data processing, including, for example, programmable processors, computers, systems on a chip or many or combinations of the foregoing. The device may include special purpose logic circuitry such as, for example, an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit). The device may also contain, in addition to hardware, code that creates an execution environment for the computer program in question, for example, processor firmware, protocol stack, database management system, operating system, cross-platform runtime environment, virtual machine, or a combination of one or more of these. It can contain code that configures it. The device and execution environment may realize various computing model infrastructures, such as web services, distributed computing and grid computing infrastructure.

컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일 또는 해석된 언어, 선언적 또는 절차적 언어를 포함한 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램 또는 모듈, 컴포넌트, 서브루틴, 개체 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 유닛을 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있지만 반드시 그런 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 포함하는 파일의 일부, 해당 프로그램 전용 단일 파일 또는 여러 조정 파일(예를 들어, 하나 이상의 모듈, 하위 프로그램 또는 코드 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있고 통신 네트워크로 상호 연결된 여러 컴퓨터에서 실행되도록 배포될 수 있다.A computer program (also called a program, software, software application, script or code) may be written in any form of programming language, including compiled or interpreted language, declarative or procedural language, and may be a stand-alone program or module, component , subroutines, entities, or other units suitable for use in a computing environment. A computer program may, but not necessarily, correspond to a file in the file system. A program may be part of another program or file containing data (for example, one or more scripts stored in a markup language document), a single file dedicated to that program, or multiple control files (for example, one or more modules, subprograms, or code may be stored in a file that stores the part). A computer program may be distributed to run on one computer or multiple computers located at one site or distributed over multiple sites and interconnected by a telecommunications network.

본원 명세서에서 설명되는 프로세스 및 로직 흐름은 입력 데이터를 조작하고 출력을 생성함으로써 동작을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 프로세스 및 로직 흐름은 또한 예를 들어, FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(주문형 집적 회로)와 같은 특수 목적의 로직 회로에 의해 수행 될 수 있고, 장치는 또한 상기 특수 목적의 로직 회로로서 구현될 수 있다.The processes and logic flows described herein may be performed by one or more programmable processors executing one or more computer programs to perform operations by manipulating input data and generating output. Processes and logic flows may also be performed by special purpose logic circuits such as, for example, field programmable gate arrays (FPGAs) or application specific integrated circuits (ASICs), and the device may also be implemented as said special purpose logic circuit. can be

컴퓨터 프로그램의 실행에 적합한 프로세서들은 예를 들어, 범용 및 특수 목적의 마이크로 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다에서 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령에 따라 동작을 수행하기 위한 프로세서와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 예를 들어, 자기, 광 자기 디스크 또는 광 디스크와 같은 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스를 포함할 수 있거나, 또는 상기 대용량 저장 디바이스로부터 데이터를 수신하거나 상기 대용량 저장 디바이스에 데이터를 전송하거나 또는 둘 다를 위해 작동 가능하게 결합될 수 있다. 그러나, 컴퓨터에는 이러한 디바이스가 필요하지 않다. 또한, 컴퓨터는 다른 디바이스, 예를 들어, 이동 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 위성 항법 시스템(GPS) 수신기 또는 휴대용 저장 디바이스(예를 들어, 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하는데 적합한 디바이스는 예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스; 예를 들어, 내부 하드 디스크 또는 제거 가능 디스크와 같은 자기 디스크; 광 자기 디스크; 및 CD-ROM과 DVD-ROM 디스크를 포함하는 비-휘발성 메모리, 매체 및 메모리 디바이스의 모든 형태를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 특수 목적 논리 회로에 통합될 수 있다.Processors suitable for the execution of a computer program include, for example, general-purpose and special-purpose microprocessors. Generally, a processor receives instructions and data from read-only memory or random access memory or both. Essential elements of a computer are a processor for performing operations according to instructions and one or more memory devices for storing instructions and data. In general, a computer may also include one or more mass storage devices for storing data, such as, for example, magnetic, magneto-optical disks or optical disks, or to receive data from, or to receive data from, the mass storage device. may be operatively coupled to transmit data to or both. However, a computer does not need such a device. A computer may also be connected to another device, such as a mobile phone, personal digital assistant (PDA), mobile audio or video player, game console, global positioning system (GPS) receiver, or portable storage device (eg, a universal serial bus). (USB) flash drive). Devices suitable for storing computer program instructions and data include, for example, semiconductor memory devices such as EPROM, EEPROM and flash memory devices; magnetic disks such as, for example, internal hard disks or removable disks; magneto-optical disk; and all forms of non-volatile memory, media and memory devices, including CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by or integrated into special purpose logic circuitry.

사용자와의 상호 작용을 제공하기 위해, 본원 명세서에 설명된 주제의 실시예들은 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스, 예를 들어, CRT(음극선 관) 또는 LCD (액정 디스플레이) 모니터 및 사용자가 컴퓨터에 입력을 제공할 수 있는 포인팅 디바이스, 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 또한, 다른 종류의 디바이스가 사용자와의 상호 작용을 제공하는 위해 사용될 수 있으며; 예를 들어, 사용자에게 제공되는 피드백은 예컨대, 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수있고; 및 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자에 의해 사용되는 디바이스로 문서를 보내고 문서를 수신함으로써, 예를 들어, 웹 브라우저에서 수신된 요청에 대한 응답으로 사용자 클라이언트 디바이스의 웹 브라우저에 웹 페이지를 전송함으로써 사용자와 상호 작용할 수 있다.To provide for interaction with a user, embodiments of the subject matter described herein may include a display device for displaying information to a user, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor and a user computer It may be implemented on a computer with a pointing device capable of providing input to, for example, a mouse or a trackball. Also, other types of devices may be used to provide interaction with the user; For example, the feedback provided to the user may be any form of sensory feedback, such as, for example, visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form including acoustic, voice, or tactile input. The computer may also interact with the user by sending and receiving documents to the device used by the user, for example, by sending a web page to the web browser of the user's client device in response to a request received at the web browser. there is.

본원 명세서에 설명된 주제의 실시예들은 백-엔드 컴포넌트, 예를 들어, 데이터 서버를 포함하거나 또는 미들웨어 컴포넌트, 예를 들어, 애플리케이션 서버를 포함하거나 또는 프론트-엔드 컴포넌트, 예를 들어, 본원 명세서에 설명된 주제의 구현예와 사용자가 상호 작용할 수 있게 하는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터를 포함하거나 또는 이와 같은 백-엔드, 미들웨어 또는 프론트-엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신, 예를 들어, 통신 네트워크의 임의의 형태 또는 매체에 의해 상호 연결될 수 있다. 통신 네트워크의 예는 근거리 통신망("LAN") 및 광역 네트워크("WAN"), 상호 네트워크(예를 들어, 인터넷) 및 피어-투-피어 네트워크(예를 들어, ad hoc 피어-투-피어 네트워크)를 포함한다.Embodiments of the subject matter described herein include a back-end component, eg, a data server, or include a middleware component, eg, an application server, or include a front-end component, eg, herein In a computing system comprising a client computer having a web browser or graphical user interface that enables a user to interact with an implementation of the described subject matter, or comprising any combination of such back-end, middleware or front-end components. can be implemented. The components of the system may be interconnected by any form or medium of digital data communication, eg, a communication network. Examples of communication networks include local area networks (“LANs”) and wide area networks (“WANs”), mutual networks (eg, the Internet), and peer-to-peer networks (eg, ad hoc peer-to-peer networks). ) is included.

컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 이격되어 있으며, 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다. 일부 실시예들에서, 서버는 데이터(예를 들어, HTML 페이지)를 클라이언트 디바이스로 전송한다(예를 들어, 클라이언트 디바이스에 데이터를 표시하고 클라이언트 디바이스와 상호작용하는 사용자로부터 사용자 입력을 수신하기 위해). 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다.A computing system may include a client and a server. Clients and servers are typically isolated from each other and typically interact through a communications network. The relationship between client and server arises due to computer programs running on each computer and having a client-server relationship to each other. In some embodiments, the server sends data (eg, an HTML page) to the client device (eg, to display data on the client device and receive user input from a user interacting with the client device) . Data generated at the client device (eg, a result of a user interaction) may be received from the client device at a server.

본원 명세서는 다수의 특정 구현 세부 사항을 포함하지만, 이들은 청구될 수 있는 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예들에 특유한 구성의 설명으로 해석되어야 한다. 별도의 실시예들과 관련하여 본원 명세서에서 설명되는 특정 구성은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 문맥에서 설명된 다양한 구성들은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 또한, 구성들은 특정 조합으로 작용하고 심지어 이와 같이 초기에 청구된 바와 같이 위에서 설명될 수 있지만, 청구된 조합으로부터의 하나 이상의 구성이 어떤 경우에는 상기 조합으로부터 제거될 수 있고, 청구된 조합은 부분 조합 또는 부분 조합의 변형으로 유도될 수 있다.Although this specification contains numerous specific implementation details, these should not be construed as limitations on the scope of what may be claimed, but rather as descriptions of constructions specific to particular embodiments of a particular invention. Certain features that are described herein in connection with separate embodiments may also be implemented in combination in a single embodiment. Conversely, various configurations that are described in the context of a single embodiment may also be implemented in multiple embodiments individually or in any suitable subcombination. Also, although elements may be described above as acting in particular combinations and even as initially claimed as such, one or more elements from a claimed combination may in some cases be eliminated from the combination, and the claimed combination may be a sub-combination. Or it can be induced by the modification of the partial combination.

유사하게는, 동작들이 특정 순서로 도면들에 도시되어 있지만, 이는 바람직한 동작을 달성하기 위해, 표시된 동작들이 순차적으로 또는 순차적으로 수행되거나, 도시된 모든 동작들이 수행 될 필요가 있는 것으로 이해되어서는 안된다. 특정 상황에서 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 또한, 전술한 실시예들에서 다양한 시스템 컴포넌트의 분리는 모든 실시예들에서 이러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 컴포넌트 및 시스템이 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 또는 다수의 소프트웨어 제품으로 패키지되는 것으로 이해되어야 한다.Similarly, although acts are shown in the figures in a particular order, it should not be understood that the acts shown need to be performed sequentially or sequentially, or all acts shown need to be performed in order to achieve the desired act. . Multitasking and parallel processing can be advantageous in certain situations. Further, the separation of various system components in the above-described embodiments should not be construed as requiring such separation in all embodiments, and that the described program components and systems are generally integrated together in a single software product or that a plurality of software It should be understood to be packaged as a product.

따라서, 본 발명의 특정 실시예들이 설명되었다. 다른 실시예들은 이하의 청구항들의 범위 내에 있다. 일부 경우에, 청구항에 기재된 동작은 상이한 순서로 수행될 수 있으며, 여전히 바람직한 결과를 달성한다. 또한, 첨부된 도면들에 도시된 공정은 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하지는 않는다. 특정 구현예들에서, 멀티 태스킹 및 병렬 처리가 유리할 수 있다.Accordingly, specific embodiments of the present invention have been described. Other embodiments are within the scope of the following claims. In some cases, the acts recited in the claims may be performed in a different order and still achieve desirable results. Moreover, the processes shown in the accompanying drawings do not necessarily require the specific order shown or sequential order to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.

Claims (20)

방법으로,
MPC 클러스터의 제1 다자간 연산(MPC) 서버에 의해 그리고 MPC 클러스터의 제2 MPC 서버로부터 클라이언트 디바이스의 특정 사용자가 속하는 둘 이상의 관심 그룹의 세트 중 적어도 하나의 관심 그룹의 선택 기준에 대한 요청을 수신하는 단계로, 수신된 요청은 클라이언트 디바이스의 식별자를 제1 MPC 서버에 공개하지 않는, 요청을 수신하는 단계;
요청을 수신하는 단계에 응답하여,
제2 MPC 서버에 의해 공개되는 것으로부터 보호된 요청의 부분을 사용하여 제1 MPC 서버의 캐시로부터 검색된, 클라이언트 디바이스의 특정 사용자가 속하는 둘 이상의 관심 그룹 세트 중 적어도 하나의 관심 그룹의 정렬된 선택 기준의 세트를 제1 MPC 서버에 의해 결정하는 단계;
정렬된 선택 기준의 세트를 키/값 쌍의 세트로 변환하는 단계로, 키/값 쌍 각각의 값은 제2 MPC 서버에 의해 공개되는 것으로부터 보호되는, 정렬된 선택 기준의 세트를 키/값 쌍의 세트로 변환하는 단계; 및
제1 MPC 서버에 의해, 키/값 쌍의 세트의 값을 제2 MPC 서버에 공개하지 않고 제2 MPC 서버가 가장 높은 값을 갖는 키를 식별할 수 있게 하는 데이터와 함께 키/값 쌍의 세트를 제2 MPC 서버에 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
in a way,
Receiving, by a first multiparty computing (MPC) server of the MPC cluster and from a second MPC server of the MPC cluster, a request for selection criteria of at least one interest group among a set of two or more interest groups to which a particular user of a client device belongs receiving the request, wherein the received request does not disclose an identifier of the client device to the first MPC server;
In response to receiving the request,
An ordered selection criterion of at least one interest group of a set of two or more interest groups to which a particular user of the client device belongs, retrieved from the cache of the first MPC server using the portion of the request protected from being published by the second MPC server. determining by the first MPC server the set of ;
converting the sorted set of selection criteria into a set of key/value pairs, wherein the value of each key/value pair is protected from being disclosed by the second MPC server. converting to a set of pairs; and
A set of key/value pairs together with data that enables, by the first MPC server, the second MPC server to identify the key with the highest value without disclosing, by the first MPC server, the value of the set of key/value pairs to the second MPC server. sending to the second MPC server.
제1항에 있어서,
제1 MPC 서버에 의해 그리고 제1 MPC 서버 및 제2 MPC 서버와 상이한 콘텐츠 배포 시스템으로부터, 콘텐츠 배포 시스템에 의해 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 예측되는 주어진 관심 그룹의 주어진 선택 기준을 수신하는 단계; 및
제1 MPC 서버에 의해 그리고 제1 MPC 서버의 캐시에서, 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 예측되는 주어진 관심 그룹의 주어진 선택 기준을 캐싱하는 단계를 또한 포함하는 것을 특징으로 하는 방법.
According to claim 1,
receiving, by the first MPC server and from a content distribution system different from the first MPC server and the second MPC server, given selection criteria of a given interest group predicted to include a particular user of the client device by the content distribution system; ; and
caching, by the first MPC server and in the cache of the first MPC server, a given selection criterion of a given interest group predicted to include a particular user of the client device.
제2항에 있어서,
클라이언트 디바이스에 의해 제출된 콘텐츠 요청을 콘텐츠 배포 시스템에 의해 수신하는 단계;
콘텐츠 요청에 대한 응답으로, 콘텐츠 요청에 응답하여 후보 선택 기준을 생성하는 단계;
콘텐츠 요청에 기초하여 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 주어진 관심 그룹을 결정하는 단계;
주어진 관심 그룹이 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 결정에 기초하여 주어진 관심 그룹의 주어진 선택 기준을 생성하는 단계;
콘텐츠 배포 시스템에 의해 후보 배포 기준 및 주어진 배포 기준을 클라이언트 디바이스로 전송하는 단계; 및
콘텐츠 배포 시스템에 의해 제1 MPC 서버로 주어진 관심 그룹의 주어진 배포 기준을 전송하지만, 후보 배포 기준은 전송하지 않는 단계를 또한 포함하는 것을 특징으로 하는 방법.
3. The method of claim 2,
receiving, by the content distribution system, the content request submitted by the client device;
in response to the content request, generating candidate selection criteria in response to the content request;
determining a given interest group predicted to include a particular user of the client device based on the content request;
generating a given selection criterion of a given interest group based on a determination that the given interest group is predicted to include a particular user of the client device;
sending, by the content distribution system, the candidate distribution criterion and the given distribution criterion to the client device; and
and sending, by the content distribution system, the given distribution criteria of the given interest group to the first MPC server, but not the candidate distribution criteria.
선행하는 청구항에 있어서,
제2 MPC 서버에 의해 액세스될 수 없는 제1 암호화된 요청을 제2 MPC 서버에 의해 수신하는 단계;
제2 MPC 서버에 의해 제1 암호화된 요청을 제1 MPC 서버에 전달하는 단계;
제1 MPC 서버로부터 키/값 쌍의 세트를 수신하는 단계;
제2 MPC 서버에 의해 키/값 쌍의 값을 공개하지 않고 가장 높은 값을 갖는 주어진 키/값 쌍을 식별하는 단계;
주어진 키/값 쌍을 포함하는 제1 암호화된 요청에 대한 제1 암호화되고 서명된 응답을 생성하는 단계로, 제1 서명된 응답은 제2 MPC 서버의 개인 키로 서명되는, 제1 암호화되고 서명된 응답을 생성하는 단계; 및
제1 암호화된 요청에 응답하여 클라이언트 디바이스에 제1 암호화되고 서명된 응답을 전송하는 단계를 또한 포함하는 것을 특징으로 하는 방법.
In the preceding claim,
receiving by the second MPC server a first encrypted request that cannot be accessed by the second MPC server;
forwarding the first encrypted request by the second MPC server to the first MPC server;
receiving a set of key/value pairs from a first MPC server;
identifying the given key/value pair with the highest value without publishing the value of the key/value pair by the second MPC server;
generating a first encrypted signed response to a first encrypted request comprising a given key/value pair, wherein the first signed response is signed with a private key of a second MPC server. generating a response; and
and sending a first encrypted signed response to the client device in response to the first encrypted request.
제4항에 있어서,
제2 MPC 서버에 의해 전송된 제1 암호화되고 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계;
클라이언트 디바이스에 의해 제1 암호화되고 서명된 응답이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계;
클라이언트 디바이스에 의해 제1 서명된 응답으로부터 제1 관심 그룹을 복구하는 단계;
클라이언트 디바이스에 의해 제1 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계;
클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계;
클라이언트 디바이스에 의해 제1 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계;
클라이언트 디바이스에 의해 콘텐츠 배포 시스템으로부터 후보 선택 기준 및 주어진 선택 기준을 수신하는 단계; 및
클라이언트 디바이스에 의해 제1 선택 기준, 주어진 선택 기준 및 후보 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 또한 포함하는 것을 특징으로 하는 방법.
5. The method of claim 4,
receiving, by the client device, the first encrypted signed response sent by the second MPC server;
confirming by the client device that the first encrypted and signed response was signed by the first MPC server;
recovering the first interest group from the first signed response by the client device;
confirming by the client device that the first interest group includes the specific user;
confirming that the value of the key/value pair given by the client device is signed by the first MPC server;
decrypting the value of the given key/value pair to recover the first selection criterion by the client device;
receiving, by the client device, the candidate selection criteria and the given selection criteria from the content distribution system; and
selecting, by the client device, a control selection criterion from among the first selection criterion, the given selection criterion, and the candidate selection criterion.
제5항에 있어서,
클라이언트 디바이스에 의해 특정 사용자를 포함하는 관심 그룹을 제1 관심 그룹 세트 및 제1 관심 그룹 세트와 상이한 제2 관심 그룹 세트로 기술하는 단계;
클라이언트 디바이스에 의해 제2 MPC 서버에 특정 사용자를 포함하는 제1 관심 그룹 세트를 포함한 제1 암호화된 요청을 전송하는 단계;
클라이언트 디바이스에 의해 제1 MPC 서버에 특정 사용자를 포함하는 제2 관심 그룹 세트를 포함한 제2 암호화된 요청을 전송하는 단계;
제1 MPC 서버에 의해 전송된 제2 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계;
클라이언트 디바이스에 의해 제2 서명된 응답이 제2 MPC 서버에 의해 서명되었음을 확인하는 단계;
클라이언트 디바이스에 의해 서명된 응답으로부터 지정된 관심 그룹을 복구하는 단계;
클라이언트 디바이스에 의해 지정된 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계;
클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제2 MPC 서버에 의해 서명되었음을 확인하는 단계; 및
클라이언트 디바이스에 의해 제3 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계를 또한 포함하며, 제어 선택 기준을 선택하는 단계는 제1 선택 기준, 주어진 선택 기준, 후보 선택 기준 및 제3 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
6. The method of claim 5,
describing by the client device an interest group comprising a particular user as a first interest group set and a second interest group set different from the first interest group set;
sending, by the client device, to a second MPC server a first encrypted request comprising a first set of interest groups comprising the particular user;
sending, by the client device, to the first MPC server a second encrypted request comprising a second set of interest groups comprising the specific user;
receiving, by the client device, a second signed response sent by the first MPC server;
confirming that the second signed response by the client device is signed by the second MPC server;
recovering the designated interest group from the response signed by the client device;
confirming that the interest group designated by the client device includes the specific user;
confirming that the value of the key/value pair given by the client device is signed by the second MPC server; and
also comprising decrypting, by the client device, a value of the given key/value pair to recover a third selection criterion, wherein selecting the control selection criterion comprises the first selection criterion, the given selection criterion, the candidate selection criterion and the third and selecting a control selection criterion from among the selection criteria.
제4항 내지 제6항 중 어느 한 항에 있어서,
제1 MPC 서버에 의해 액세스될 수 없는 제2 암호화된 요청을 제1 MPC 서버에 의해 수신하는 단계;
제1 MPC 서버에 의해 제2 암호화된 요청을 제2 MPC 서버에 전달하는 단계;
제2 MPC 서버로부터 키/값 쌍의 상이한 세트를 수신하는 단계;
제1 MPC 서버에 의해 상이한 세트의 키/값 쌍의 값을 공개하지 않고 가장 높은 값을 갖는 특정 키/값 쌍을 식별하는 단계;
특정 키/값 쌍을 포함하는 제2 암호화된 요청에 대한 제2 서명된 응답을 생성하는 단계로, 제1 서명된 응답은 제2 MPC 서버의 개인 키로 서명되는, 제2 서명된 응답을 생성하는 단계; 및
제2 암호화된 요청에 응답하여 클라이언트 디바이스에 제2 서명된 응답을 전송하는 단계를 또한 포함하는 것을 특징으로 하는 방법.
7. The method according to any one of claims 4 to 6,
receiving by the first MPC server a second encrypted request that cannot be accessed by the first MPC server;
forwarding the second encrypted request by the first MPC server to the second MPC server;
receiving a different set of key/value pairs from a second MPC server;
identifying, by the first MPC server, a particular key/value pair having a highest value without disclosing different sets of key/value pair values;
generating a second signed response to a second encrypted request comprising a specific key/value pair, wherein the first signed response is signed with a private key of a second MPC server step; and
and sending a second signed response to the client device in response to the second encrypted request.
시스템으로,
하나 이상의 프로세서; 및
실행 시에 하나 이상의 프로세서가 동작을 수행하게 하는 명령을 포함하는 하나 이상의 메모리 부재를 포함하며, 상기 동작은,
MPC 클러스터의 제1 다자간 연산(MPC) 시스템 서버에 의해 그리고 MPC 클러스터의 제2 MPC 서버로부터 클라이언트 디바이스의 특정 사용자가 속하는 둘 이상의 관심 그룹의 세트 중 적어도 하나의 관심 그룹의 선택 기준에 대한 요청을 수신하는 단계로, 수신된 요청은 클라이언트 디바이스의 식별자를 제1 MPC 서버에 공개하지 않는, 요청을 수신하는 단계;
요청을 수신하는 단계에 응답하여,
제2 MPC 서버에 의해 공개되는 것으로부터 보호된 요청의 부분을 사용하여 제1 MPC 서버의 캐시로부터 검색된, 클라이언트 디바이스의 특정 사용자가 속하는 둘 이상의 관심 그룹의 세트 중 적어도 하나의 관심 그룹의 정렬된 선택 기준의 세트를 제1 MPC 서버에 의해 결정하는 단계;
정렬된 선택 기준의 세트를 키/값 쌍의 세트로 변환하는 단계로, 키/값 쌍 각각의 값은 제2 MPC 서버에 의해 공개되는 것으로부터 보호되는, 정렬된 선택 기준의 세트를 키/값 쌍의 세트로 변환하는 단계; 및
제1 MPC 서버에 의해, 키/값 쌍의 세트의 값을 제2 MPC 서버에 공개하지 않고 제2 MPC 서버가 가장 높은 값을 갖는 키를 식별할 수 있게 하는 데이터와 함께 키/값 쌍의 세트를 제2 MPC 서버에 전송하는 단계를 포함하는 것을 특징으로 하는 시스템.
as a system,
one or more processors; and
one or more memory elements comprising instructions that, when executed, cause one or more processors to perform an operation, the operation comprising:
receiving, by a first multiparty computing (MPC) system server of the MPC cluster and from a second MPC server of the MPC cluster, a request for selection criteria of at least one interest group among a set of two or more interest groups to which a particular user of the client device belongs receiving the request, wherein the received request does not disclose the identifier of the client device to the first MPC server;
In response to receiving the request,
An ordered selection of at least one interest group of a set of two or more interest groups to which a particular user of the client device belongs, retrieved from the cache of the first MPC server using the portion of the request protected from being published by the second MPC server. determining, by the first MPC server, the set of criteria;
converting the sorted set of selection criteria into a set of key/value pairs, wherein the value of each key/value pair is protected from being disclosed by the second MPC server; converting to a set of pairs; and
A set of key/value pairs together with data that enables, by the first MPC server, the second MPC server to identify the key with the highest value without disclosing, by the first MPC server, the value of the set of key/value pairs to the second MPC server. sending to the second MPC server.
제8항에 있어서,
상기 동작은,
제1 MPC 서버에 의해 그리고 제1 MPC 서버 및 제2 MPC 서버와 상이한 콘텐츠 배포 시스템으로부터, 콘텐츠 배포 시스템에 의해 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 예측되는 주어진 관심 그룹의 주어진 선택 기준을 수신하는 단계; 및
제1 MPC 서버에 의해 그리고 제1 MPC 서버의 캐시에서, 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 예측되는 주어진 관심 그룹의 주어진 선택 기준을 캐싱하는 단계를 또한 포함하는 것을 특징으로 하는 시스템.
9. The method of claim 8,
The action is
receiving, by the first MPC server and from a content distribution system different from the first MPC server and the second MPC server, given selection criteria of a given interest group predicted to include a particular user of the client device by the content distribution system; ; and
caching, by the first MPC server and in the cache of the first MPC server, the given selection criteria of the given interest group predicted to include the particular user of the client device.
제9항에 있어서,
상기 동작은,
클라이언트 디바이스에 의해 제출된 콘텐츠 요청을 콘텐츠 배포 시스템에 의해 수신하는 단계;
콘텐츠 요청에 대한 응답으로, 콘텐츠 요청에 응답하여 후보 선택 기준을 생성하는 단계;
콘텐츠 요청에 기초하여 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 주어진 관심 그룹을 결정하는 단계;
주어진 관심 그룹이 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 결정에 기초하여 주어진 관심 그룹의 주어진 선택 기준을 생성하는 단계;
콘텐츠 배포 시스템에 의해 후보 배포 기준 및 주어진 배포 기준을 클라이언트 디바이스로 전송하는 단계; 및
콘텐츠 배포 시스템에 의해 제1 MPC 서버로 주어진 관심 그룹의 주어진 배포 기준을 전송하지만, 후보 배포 기준은 전송하지 않는 단계를 또한 포함하는 것을 특징으로 하는 시스템.
10. The method of claim 9,
The action is
receiving, by the content distribution system, the content request submitted by the client device;
in response to the content request, generating candidate selection criteria in response to the content request;
determining a given interest group predicted to include a particular user of the client device based on the content request;
generating a given selection criterion of a given interest group based on a determination that the given interest group is predicted to include a particular user of the client device;
sending, by the content distribution system, the candidate distribution criterion and the given distribution criterion to the client device; and
and sending, by the content distribution system, the given distribution criteria of the given interest group to the first MPC server, but not the candidate distribution criteria.
제8항 내지 제10항 중 어느 한 항에 있어서,
상기 동작은,
제2 MPC 서버에 의해 액세스될 수 없는 제1 암호화된 요청을 제2 MPC 서버에 의해 수신하는 단계;
제2 MPC 서버에 의해 제1 암호화된 요청을 제1 MPC 서버에 전달하는 단계;
제1 MPC 서버로부터 키/값 쌍의 세트를 수신하는 단계;
제2 MPC 서버에 의해 키/값 쌍의 값을 공개하지 않고 가장 높은 값을 갖는 주어진 키/값 쌍을 식별하는 단계;
주어진 키/값 쌍을 포함하는 제1 암호화된 요청에 대한 제1 암호화되고 서명된 응답을 생성하는 단계로, 제1 서명된 응답은 제2 MPC 서버의 개인 키로 서명되는, 제1 암호화되고 서명된 응답을 생성하는 단계; 및
제1 암호화된 요청에 응답하여 클라이언트 디바이스에 제1 암호화되고 서명된 응답을 전송하는 단계를 또한 포함하는 것을 특징으로 하는 시스템.
11. The method according to any one of claims 8 to 10,
The action is
receiving by the second MPC server a first encrypted request that cannot be accessed by the second MPC server;
forwarding the first encrypted request by the second MPC server to the first MPC server;
receiving a set of key/value pairs from a first MPC server;
identifying the given key/value pair with the highest value without publishing the value of the key/value pair by the second MPC server;
generating a first encrypted signed response to a first encrypted request comprising a given key/value pair, wherein the first signed response is signed with a private key of a second MPC server. generating a response; and
and sending a first encrypted signed response to the client device in response to the first encrypted request.
제11항에 있어서,
상기 동작은,
제2 MPC 서버에 의해 전송된 제1 암호화되고 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계;
클라이언트 디바이스에 의해 제1 암호화되고 서명된 응답이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계;
클라이언트 디바이스에 의해 제1 서명된 응답으로부터 제1 관심 그룹을 복구하는 단계;
클라이언트 디바이스에 의해 제1 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계;
클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계;
클라이언트 디바이스에 의해 제1 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계;
클라이언트 디바이스에 의해 콘텐츠 배포 시스템으로부터 후보 선택 기준 및 주어진 선택 기준을 수신하는 단계; 및
클라이언트 디바이스에 의해 제1 선택 기준, 주어진 선택 기준 및 후보 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 또한 포함하는 것을 특징으로 하는 시스템.
12. The method of claim 11,
The action is
receiving, by the client device, the first encrypted signed response sent by the second MPC server;
confirming by the client device that the first encrypted and signed response was signed by the first MPC server;
recovering the first interest group from the first signed response by the client device;
confirming by the client device that the first interest group includes the specific user;
confirming that the value of the key/value pair given by the client device is signed by the first MPC server;
decrypting the value of the given key/value pair to recover the first selection criterion by the client device;
receiving, by the client device, the candidate selection criteria and the given selection criteria from the content distribution system; and
selecting, by the client device, a control selection criterion from among the first selection criterion, the given selection criterion, and the candidate selection criterion.
제12항에 있어서,
상기 동작은,
클라이언트 디바이스에 의해 특정 사용자를 포함하는 관심 그룹을 제1 관심 그룹 세트 및 제1 관심 그룹 세트와 상이한 제2 관심 그룹 세트로 기술하는 단계;
클라이언트 디바이스에 의해 제2 MPC 서버에 특정 사용자를 포함하는 제1 관심 그룹 세트를 포함한 제1 암호화된 요청을 전송하는 단계;
클라이언트 디바이스에 의해 제1 MPC 서버에 특정 사용자를 포함하는 제2 관심 그룹 세트를 포함한 제2 암호화된 요청을 전송하는 단계;
제1 MPC 서버에 의해 전송된 제2 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계;
클라이언트 디바이스에 의해 제2 서명된 응답이 제2 MPC 서버에 의해 서명되었음을 확인하는 단계;
클라이언트 디바이스에 의해 서명된 응답으로부터 지정된 관심 그룹을 복구하는 단계;
클라이언트 디바이스에 의해 지정된 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계;
클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제2 MPC 서버에 의해 서명되었음을 확인하는 단계; 및
클라이언트 디바이스에 의해 제3 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계를 또한 포함하며, 제어 선택 기준을 선택하는 단계는 제1 선택 기준, 주어진 선택 기준, 후보 선택 기준 및 제3 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 포함하는 것을 특징으로 하는 시스템.
13. The method of claim 12,
The action is
describing by the client device an interest group comprising a particular user as a first interest group set and a second interest group set different from the first interest group set;
sending, by the client device, to a second MPC server a first encrypted request comprising a first set of interest groups comprising the particular user;
sending, by the client device, to the first MPC server a second encrypted request comprising a second set of interest groups comprising the specific user;
receiving, by the client device, a second signed response sent by the first MPC server;
confirming that the second signed response by the client device is signed by the second MPC server;
recovering the designated interest group from the response signed by the client device;
confirming that the interest group designated by the client device includes the specific user;
confirming that the value of the key/value pair given by the client device is signed by the second MPC server; and
also comprising decrypting, by the client device, a value of the given key/value pair to recover a third selection criterion, wherein selecting the control selection criterion comprises the first selection criterion, the given selection criterion, the candidate selection criterion and the third and selecting a control selection criterion from among the selection criteria.
제11항 내지 제13항 중 어느 한 항에 있어서,
상기 동작은,
제1 MPC 서버에 의해 액세스될 수 없는 제2 암호화된 요청을 제1 MPC 서버에 의해 수신하는 단계;
제1 MPC 서버에 의해 제2 암호화된 요청을 제2 MPC 서버에 전달하는 단계;
제2 MPC 서버로부터 키/값 쌍의 상이한 세트를 수신하는 단계;
제1 MPC 서버에 의해 상이한 세트의 키/값 쌍의 값을 공개하지 않고 가장 높은 값을 갖는 특정 키/값 쌍을 식별하는 단계;
특정 키/값 쌍을 포함하는 제2 암호화된 요청에 대한 제2 서명된 응답을 생성하는 단계로, 제1 서명된 응답은 제2 MPC 서버의 개인 키로 서명되는, 제2 서명된 응답을 생성하는 단계; 및
제2 암호화된 요청에 응답하여 클라이언트 디바이스에 제2 서명된 응답을 전송하는 단계를 또한 포함하는 것을 특징으로 하는 시스템.
14. The method according to any one of claims 11 to 13,
The action is
receiving by the first MPC server a second encrypted request that cannot be accessed by the first MPC server;
forwarding the second encrypted request by the first MPC server to the second MPC server;
receiving a different set of key/value pairs from a second MPC server;
identifying, by the first MPC server, a particular key/value pair having a highest value without disclosing different sets of key/value pair values;
generating a second signed response to a second encrypted request comprising a specific key/value pair, wherein the first signed response is signed with a private key of a second MPC server step; and
and sending a second signed response to the client device in response to the second encrypted request.
컴퓨팅 시스템에 의해 실행될 때 컴퓨팅 시스템이 동작을 수행하게 하는 명령으로 인코딩되는 비-일시적인 컴퓨터 저장 매체로,
상기 동작은,
MPC 클러스터의 제1 다자간 연산(MPC) 서버에 의해 그리고 MPC 클러스터의 제2 MPC 서버로부터 클라이언트 디바이스의 특정 사용자가 속하는 둘 이상의 관심 그룹의 세트 중 적어도 하나의 관심 그룹의 선택 기준에 대한 요청을 수신하는 단계로, 수신된 요청은 클라이언트 디바이스의 식별자를 제1 MPC 서버에 공개하지 않는, 요청을 수신하는 단계;
요청을 수신하는 단계에 응답하여,
제2 MPC 서버에 의해 공개되는 것으로부터 보호된 요청의 부분을 사용하여 제1 MPC 서버의 캐시로부터 검색된, 클라이언트 디바이스의 특정 사용자가 속하는 둘 이상의 관심 그룹의 세트 중 적어도 하나의 관심 그룹의 정렬된 선택 기준의 세트를 제1 MPC 서버에 의해 결정하는 단계;
정렬된 선택 기준의 세트를 키/값 쌍의 세트로 변환하는 단계로, 키/값 쌍 각각의 값은 제2 MPC 서버에 의해 공개되는 것으로부터 보호되는, 정렬된 선택 기준의 세트를 키/값 쌍의 세트로 변환하는 단계; 및
제1 MPC 서버에 의해, 키/값 쌍의 세트의 값을 제2 MPC 서버에 공개하지 않고 제2 MPC 서버가 가장 높은 값을 갖는 키를 식별할 수 있게 하는 데이터와 함께 키/값 쌍의 세트를 제2 MPC 서버에 전송하는 단계를 포함하는 것을 특징으로 하는 비-일시적인 컴퓨터 저장 매체.
A non-transitory computer storage medium encoded with instructions that, when executed by a computing system, cause the computing system to perform operations, comprising:
The action is
Receiving, by a first multiparty computing (MPC) server of the MPC cluster and from a second MPC server of the MPC cluster, a request for selection criteria of at least one interest group among a set of two or more interest groups to which a particular user of a client device belongs receiving the request, wherein the received request does not disclose an identifier of the client device to the first MPC server;
In response to receiving the request,
An ordered selection of at least one interest group of a set of two or more interest groups to which a particular user of the client device belongs, retrieved from the cache of the first MPC server using the portion of the request protected from being published by the second MPC server. determining, by the first MPC server, the set of criteria;
converting the sorted set of selection criteria into a set of key/value pairs, wherein the value of each key/value pair is protected from being disclosed by the second MPC server; converting to a set of pairs; and
A set of key/value pairs together with data that enables, by the first MPC server, the second MPC server to identify the key with the highest value without disclosing, by the first MPC server, the value of the set of key/value pairs to the second MPC server. and transmitting to the second MPC server.
제15항에 있어서,
상기 동작은,
제1 MPC 서버에 의해 그리고 제1 MPC 서버 및 제2 MPC 서버와 상이한 콘텐츠 배포 시스템으로부터, 콘텐츠 배포 시스템에 의해 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 예측되는 주어진 관심 그룹의 주어진 선택 기준을 수신하는 단계; 및
제1 MPC 서버에 의해 그리고 제1 MPC 서버의 캐시에서, 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 예측되는 주어진 관심 그룹의 주어진 선택 기준을 캐싱하는 단계를 또한 포함하는 것을 특징으로 하는 비-일시적인 컴퓨터 저장 매체.
16. The method of claim 15,
The action is
receiving, by the first MPC server and from a content distribution system different from the first MPC server and the second MPC server, given selection criteria of a given interest group predicted to include a particular user of the client device by the content distribution system; ; and
caching, by the first MPC server and in a cache of the first MPC server, a given selection criterion of a given interest group predicted to include a particular user of the client device; media.
제16항에 있어서,
상기 동작은,
클라이언트 디바이스에 의해 제출된 콘텐츠 요청을 콘텐츠 배포 시스템에 의해 수신하는 단계;
콘텐츠 요청에 대한 응답으로, 콘텐츠 요청에 응답하여 후보 선택 기준을 생성하는 단계;
콘텐츠 요청에 기초하여 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 주어진 관심 그룹을 결정하는 단계;
주어진 관심 그룹이 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 결정에 기초하여 주어진 관심 그룹의 주어진 선택 기준을 생성하는 단계;
콘텐츠 배포 시스템에 의해 후보 배포 기준 및 주어진 배포 기준을 클라이언트 디바이스로 전송하는 단계; 및
콘텐츠 배포 시스템에 의해 제1 MPC 서버로 주어진 관심 그룹의 주어진 배포 기준을 전송하지만, 후보 배포 기준은 전송하지 않는 단계를 또한 포함하는 것을 특징으로 하는 비-일시적인 컴퓨터 저장 매체.
17. The method of claim 16,
The action is
receiving, by the content distribution system, the content request submitted by the client device;
in response to the content request, generating candidate selection criteria in response to the content request;
determining a given interest group predicted to include a particular user of the client device based on the content request;
generating a given selection criterion of a given interest group based on a determination that the given interest group is predicted to include a particular user of the client device;
sending, by the content distribution system, the candidate distribution criterion and the given distribution criterion to the client device; and
and sending, by the content distribution system, the given distribution criteria of the given interest group to the first MPC server, but not the candidate distribution criteria.
제15항 내지 제17항 중 어느 한 항에 있어서,
제2 MPC 서버에 의해 액세스될 수 없는 제1 암호화된 요청을 제2 MPC 서버에 의해 수신하는 단계;
제2 MPC 서버에 의해 제1 암호화된 요청을 제1 MPC 서버에 전달하는 단계;
제1 MPC 서버로부터 키/값 쌍의 세트를 수신하는 단계;
제2 MPC 서버에 의해 키/값 쌍의 값을 공개하지 않고 가장 높은 값을 갖는 주어진 키/값 쌍을 식별하는 단계;
주어진 키/값 쌍을 포함하는 제1 암호화된 요청에 대한 제1 암호화되고 서명된 응답을 생성하는 단계로, 제1 서명된 응답은 제2 MPC 서버의 개인 키로 서명되는, 제1 암호화되고 서명된 응답을 생성하는 단계; 및
제1 암호화된 요청에 응답하여 클라이언트 디바이스에 제1 암호화되고 서명된 응답을 전송하는 단계를 또한 포함하는 것을 특징으로 하는 비-일시적인 컴퓨터 저장 매체.
18. The method according to any one of claims 15 to 17,
receiving by the second MPC server a first encrypted request that cannot be accessed by the second MPC server;
forwarding the first encrypted request by the second MPC server to the first MPC server;
receiving a set of key/value pairs from a first MPC server;
identifying the given key/value pair with the highest value without publishing the value of the key/value pair by the second MPC server;
generating a first encrypted signed response to a first encrypted request comprising a given key/value pair, wherein the first signed response is signed with a private key of a second MPC server. generating a response; and
and sending a first encrypted signed response to the client device in response to the first encrypted request.
제18항에 있어서,
상기 동작은,
제2 MPC 서버에 의해 전송된 제1 암호화되고 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계;
클라이언트 디바이스에 의해 제1 암호화되고 서명된 응답이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계;
클라이언트 디바이스에 의해 제1 서명된 응답으로부터 제1 관심 그룹을 복구하는 단계;
클라이언트 디바이스에 의해 제1 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계;
클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계;
클라이언트 디바이스에 의해 제1 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계;
클라이언트 디바이스에 의해 콘텐츠 배포 시스템으로부터 후보 선택 기준 및 주어진 선택 기준을 수신하는 단계; 및
클라이언트 디바이스에 의해 제1 선택 기준, 주어진 선택 기준 및 후보 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 또한 포함하는 것을 특징으로 하는 비-일시적인 컴퓨터 저장 매체.
19. The method of claim 18,
The action is
receiving, by the client device, the first encrypted signed response sent by the second MPC server;
confirming by the client device that the first encrypted and signed response was signed by the first MPC server;
recovering the first interest group from the first signed response by the client device;
confirming by the client device that the first interest group includes the specific user;
confirming that the value of the key/value pair given by the client device is signed by the first MPC server;
decrypting the value of the given key/value pair to recover the first selection criterion by the client device;
receiving, by the client device, the candidate selection criteria and the given selection criteria from the content distribution system; and
and selecting, by the client device, a control selection criterion from among the first selection criterion, the given selection criterion, and the candidate selection criterion.
제19항에 있어서,
상기 동작은,
클라이언트 디바이스에 의해 특정 사용자를 포함하는 관심 그룹을 제1 관심 그룹 세트 및 제1 관심 그룹 세트와 상이한 제2 관심 그룹 세트로 기술하는 단계;
클라이언트 디바이스에 의해 제2 MPC 서버에 특정 사용자를 포함하는 제1 관심 그룹 세트를 포함한 제1 암호화된 요청을 전송하는 단계;
클라이언트 디바이스에 의해 제1 MPC 서버에 특정 사용자를 포함하는 제2 관심 그룹 세트를 포함한 제2 암호화된 요청을 전송하는 단계;
제1 MPC 서버에 의해 전송된 제2 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계;
클라이언트 디바이스에 의해 제2 서명된 응답이 제2 MPC 서버에 의해 서명되었음을 확인하는 단계;
클라이언트 디바이스에 의해 서명된 응답으로부터 지정된 관심 그룹을 복구하는 단계;
클라이언트 디바이스에 의해 지정된 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계;
클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제2 MPC 서버에 의해 서명되었음을 확인하는 단계; 및
클라이언트 디바이스에 의해 제3 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계를 또한 포함하며, 제어 선택 기준을 선택하는 단계는 제1 선택 기준, 주어진 선택 기준, 후보 선택 기준 및 제3 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 포함하는 것을 특징으로 하는 비-일시적인 컴퓨터 저장 매체.
20. The method of claim 19,
The action is
describing by the client device an interest group comprising a particular user as a first interest group set and a second interest group set different from the first interest group set;
sending, by the client device, to a second MPC server a first encrypted request comprising a first set of interest groups comprising the particular user;
sending, by the client device, to the first MPC server a second encrypted request comprising a second set of interest groups comprising the specific user;
receiving, by the client device, a second signed response sent by the first MPC server;
confirming that the second signed response by the client device is signed by the second MPC server;
recovering the designated interest group from the response signed by the client device;
confirming that the interest group designated by the client device includes the specific user;
confirming that the value of the key/value pair given by the client device is signed by the second MPC server; and
also comprising decrypting, by the client device, a value of the given key/value pair to recover a third selection criterion, wherein selecting the control selection criterion comprises the first selection criterion, the given selection criterion, the candidate selection criterion and the third and selecting a control selection criterion from among the selection criteria.
KR1020227009695A 2020-08-14 2021-08-13 Online privacy protection technology KR20220052352A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063065849P 2020-08-14 2020-08-14
US63/065,849 2020-08-14
PCT/US2021/045888 WO2022036183A1 (en) 2020-08-14 2021-08-13 Online privacy preserving techniques

Publications (1)

Publication Number Publication Date
KR20220052352A true KR20220052352A (en) 2022-04-27

Family

ID=77726523

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227009695A KR20220052352A (en) 2020-08-14 2021-08-13 Online privacy protection technology

Country Status (6)

Country Link
US (1) US11968297B2 (en)
EP (1) EP4014427B1 (en)
JP (1) JP7354427B2 (en)
KR (1) KR20220052352A (en)
CN (1) CN114450919B (en)
WO (1) WO2022036183A1 (en)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2010250042B2 (en) 2009-05-21 2015-03-26 Intertrust Technologies Corporation Content delivery systems and methods
WO2013186061A1 (en) * 2012-06-15 2013-12-19 Alcatel Lucent Architecture of privacy protection system for recommendation services
EP2688264B1 (en) * 2012-07-16 2016-08-24 Alcatel Lucent Method and apparatus for privacy protected clustering of user interest profiles
WO2014166546A1 (en) * 2013-04-12 2014-10-16 Nec Europe Ltd. Method and system for accessing device by a user
CN105103487A (en) 2013-08-09 2015-11-25 汤姆逊许可公司 A method and system for privacy-preserving recommendation to rating contributing users based on matrix factorization
US9679314B1 (en) * 2014-01-31 2017-06-13 Google Inc. Content selection using distribution parameter data
US10600076B2 (en) * 2014-08-14 2020-03-24 Google Llc Systems and methods for obfuscated audience measurement
US9735968B2 (en) * 2014-10-20 2017-08-15 Microsoft Technology Licensing, Llc Trust service for a client device
US9832504B2 (en) 2015-09-15 2017-11-28 Google Inc. Event-based content distribution
US10430476B2 (en) * 2016-05-06 2019-10-01 Google Llc Annotation of videos using aggregated user session data
US10558817B2 (en) * 2017-01-30 2020-02-11 Foley & Lardner LLP Establishing a link between identifiers without disclosing specific identifying information
US11218324B2 (en) 2018-04-05 2022-01-04 Ares Technologies, Inc. Systems and methods authenticating a digitally signed assertion using verified evaluators
CN108509806B (en) * 2018-04-09 2022-03-11 北京东方网润科技有限公司 Big data accurate marketing system and equipment with privacy protection
CN110661764A (en) * 2018-06-29 2020-01-07 阿里巴巴集团控股有限公司 Input acquisition method and device of secure multi-party computing protocol
US11190496B2 (en) * 2019-02-12 2021-11-30 Visa International Service Association Fast oblivious transfers
EP4044496A1 (en) * 2021-02-10 2022-08-17 Robert Bosch GmbH Distributed secure multi party computation

Also Published As

Publication number Publication date
JP2022554058A (en) 2022-12-28
CN114450919B (en) 2023-12-19
WO2022036183A1 (en) 2022-02-17
EP4014427B1 (en) 2023-05-03
EP4014427A1 (en) 2022-06-22
JP7354427B2 (en) 2023-10-02
US20220278828A1 (en) 2022-09-01
US11968297B2 (en) 2024-04-23
CN114450919A (en) 2022-05-06

Similar Documents

Publication Publication Date Title
JP7238213B2 (en) Using secure multi-party computation to improve the integrity of the content selection process
US20230077152A1 (en) Feedback controller using secret sharing
US20230188329A1 (en) Using secure multi-party computation and probabilistic data structures to protect access to information
JP7475492B2 (en) USING MULTI-PARTY COMPUTATION AND K-ANONNYMY TECHNIQUES TO PROTECT SENSITIVE INFORMATION
KR20230048126A (en) Cryptographic Security Control Using Secure Multiparty Operations
CN118077170A (en) Secure computing using multiparty computing and trusted execution environments
EP4014427B1 (en) Online privacy preserving techniques
CN115088005A (en) Securing access to information in content distribution using secure MPC and vector computation
JP7471450B2 (en) Improving the performance of secure multiparty computation
US20240143840A1 (en) Protecting access to information in online interactions
WO2022192148A1 (en) Flexible content selection processes using secure multi-party computation
WO2022192146A1 (en) Privacy preserving measurements using secure multi-party computation
KR20220161428A (en) Secure network communications to restrict access to information
CN115943375A (en) Privacy preserving cross-domain experimental group partitioning and monitoring