KR20220052352A - Online privacy protection technology - Google Patents
Online privacy protection technology Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6227—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/0442—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3255—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure 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
본 발명은 온라인 프라이버시 보호 기술에 관한 것이다.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
클라이언트 디바이스(110)는 네트워크(105)를 통해 통신할 수 있는 전자 디바이스이다. 예시적인 클라이언트 디바이스(110)는 개인용 컴퓨터, 모바일 통신 디바이스, 예를 들어 스마트폰, 및 네트워크(105)를 통해 데이터를 송수신할 수 있는 기타 디바이스를 포함한다. 클라이언트 디바이스는 또한 마이크로폰을 통해 오디오 입력을 수신하고 스피커를 통해 오디오 출력을 출력하는 디지털 보조 디바이스를 포함할 수 있다. 디지털 어시스턴트가 오디오 입력을 수신하도록 마이크로폰을 활성화하는 "핫워드" 또는 "핫프레이즈"를 검출하면, 디지털 어시스턴트는 청취 모드(예를 들어, 오디오 입력을 수신할 준비가 됨)로 배치될 수 있다. 디지털 어시스턴트 디바이스는 또한 이미지를 캡처하고 정보를 시각적으로 제시하기 위한 카메라 및/또는 디스플레이를 포함할 수 있다. 디지털 어시스턴트는 웨어러블 디바이스(예를 들어, 시계 또는 안경), 스마트 폰, 스피커 디바이스, 태블릿 디바이스 또는 다른 하드웨어 디바이스를 포함하는 다양한 형태의 하드웨어 디바이스로 구현될 수 있다. 클라이언트 디바이스는 또한 예를 들어, 비디오를 텔레비전 또는 게임 디바이스 또는 게임 콘솔로 스트리밍하기 위해 텔레비전 또는 기타 디스플레이에 연결하는 스트리밍 디바이스와 같은 디지털 매체 디바이스를 포함할 수 있다.The
클라이언트 디바이스(110)는 일반적으로 웹 브라우저 및/또는 네이티브 애플리케이션과 같은 애플리케이션(112)을 포함하여 네트워크(105)를 통한 데이터의 송수신을 용이하게 한다. 네이티브 애플리케이션은 특정 플랫폼 또는 특정 디바이스(예를 들어, 특정 운영 시스템이 있는 모바일 디바이스)용으로 개발된 애플리케이션이다. 퍼블리셔(140)는 클라이언트 디바이스(110)에 대한 네이티브 애플리케이션을 개발 및 제공할 수 있고, 예를 들어 다운로드가 가능하도록 할 수 있다. 웹 브라우저는 예를 들어, 클라이언트 디바이스(110)의 사용자가 웹 브라우저의 주소 표시줄에 리소스(145)에 대한 리소스 주소를 입력하거나 또는 리소스 주소를 참조하는 링크를 선택하는 것에 응답하여 퍼블리셔(140)의 웹사이트(142)를 호스팅하는 웹 서버로부터 리소스(145)를 요청할 수 있다. 유사하게는, 네이티브 애플리케이션은 퍼블리셔의 원격 서버로부터 애플리케이션 콘텐츠를 요청할 수 있다.The
일부 리소스, 애플리케이션 페이지 또는 다른 애플리케이션 콘텐츠는 리소스(145) 또는 애플리케이션 페이지와 함께 디지털 컴포넌트를 제시하기 위한 디지털 컴포넌트 슬롯을 포함할 수 있다. 본원 명세서 전반에서 사용되는 "디지털 컴포넌트"라는 문구는 디지털 콘텐츠 또는 디지털 정보의 개별 유닛(예를 들어, 비디오 클립, 오디오 클립, 멀티미디어 클립, 이미지, 텍스트 또는 기타 콘텐츠 단위)을 나타낸다. 디지털 컴포넌트는 물리적 메모리 디바이스에 단일 파일 또는 파일 모음으로 전자적으로 저장될 수 있으며, 디지털 컴포넌트는 비디오 파일, 오디오 파일, 멀티미디어 파일, 이미지 파일 또는 텍스트 파일의 형태를 취할 수 있고, 광고 정보를 포함할 수 있어서, 광고가 일종의 디지털 컴포넌트이다. 예를 들어, 디지털 컴포넌트는 웹 페이지의 콘텐츠 또는 애플리케이션(112)에 의해 제공되는 다른 리소스를 보완하기 위한 콘텐츠일 수 있다. 더욱 구체적으로는, 디지털 컴포넌트는 리소스 콘텐츠와 관련된 디지털 콘텐츠를 포함할 수 있다(예를 들어, 디지털 컴포넌트는 웹 페이지 콘텐츠와 동일한 주제 또는 관련 주제에 관한 것일 수 있음). 따라서, 디지털 컴포넌트의 제공은 웹 페이지 또는 애플리케이션 콘텐츠를 보완하고 일반적으로 향상시킬 수 있다.Some resources, application pages, or other application content may include a digital component slot for presenting a digital component with
애플리케이션(112)이 하나 이상의 디지털 컴포넌트 슬롯을 포함하는 리소스(또는 애플리케이션 콘텐츠)를 로드할 때, 애플리케이션(112)은 각각의 슬롯에 대한 디지털 컴포넌트를 요청할 수 있다. 일부 구현예들에서, 디지털 컴포넌트 슬롯은 디지털 컴포넌트를 선택하고 클라이언트 디바이스(110)의 사용자에게 제시하도록 애플리케이션(112)에 디지털 컴포넌트를 제공하는 디지털 컴포넌트 배포 시스템으로부터 애플리케이션(112)이 디지털 컴포넌트를 요청하게 하는 코드(예를 들어, 스크립트)를 포함할 수 있다.When an
일부 퍼블리셔(140)는 리소스 및/또는 애플리케이션의 디지털 컴포넌트 슬롯에 대한 디지털 컴포넌트를 획득하는 프로세스를 관리하기 위해 공급측 플랫폼("SSP")(170)을 사용한다. SSP(170)는 리소스 및/또는 애플리케이션에 대한 디지털 컴포넌트를 얻는 프로세스를 자동화하는 하드웨어 및/또는 소프트웨어로 구현된 기술 플랫폼이다. SSP(170)는 하나 이상의 수요측 플랫폼 "DSP"(150)와 상호작용하여 디지털 컴포넌트 슬롯에 대한 디지털 컴포넌트를 선택하는데 사용될 수 있는 정보를 얻을 수 있다. 아래에서 더 자세히 설명되는 바와 같이, 이 정보는 디지털 컴포넌트 제공자(160)가 디지털 컴포넌트 제공자(160)의 디지털 컴포넌트의 표시를 위해 제공할 의향이 있는 양을 나타내거나 지정하는, 선택 기준 또는 선택 파라미터라고도 하는 기준을 포함할 수 있다. 각각의 퍼블리셔(140)는 대응하는 SSP(170) 또는 다수의 SSP(170)를 가질 수 있다. 일부 퍼블리셔(140)는 동일한 SSP(170)를 사용할 수 있다.Some
디지털 컴포넌트 제공자(160)는 퍼블리셔의 리소스 및 애플리케이션의 디지털 컴포넌트 슬롯에 제시되는 디지털 컴포넌트를 생성(또는 달리 발행)할 수 있다. 디지털 컴포넌트 제공자(160)는 DSP(150)를 사용하여 디지털 컴포넌트 슬롯에서 제시하는 디지털 컴포넌트의 제공을 관리할 수 있다. DSP(150)는 리소스 및/또는 애플리케이션과 함께 제시하기 위한 디지털 컴포넌트를 배포하는 프로세스를 자동화하는 하드웨어 및/또는 소프트웨어로 구현된 기술 플랫폼이다. DSP(150)는 디지털 컴포넌트 제공자(160)를 대신하여 다수의 교환기와 상호작용하여 다수의 상이한 퍼블리셔(140)의 리소스 및/또는 애플리케이션과 함께 제시하기 위한 디지털 컴포넌트를 제공할 수 있다. 일반적으로, DSP(150)는 (예를 들어, 직접 SSP(170)로부터 또는 교환기를 통한) 디지털 컴포넌트에 대한 요청을 수신할 수 있고, 요청에 기초하여 하나 이상의 디지털 컴포넌트 제공자에 의해 생성된 하나 이상의 디지털 컴포넌트에 대한 선택 파라미터를 생성(또는 선택)할 수 있으며, 디지털 컴포넌트(예를 들어, 디지털 컴포넌트 자체) 및 선택 파라미터와 관련된 데이터를 SSP(170)에 제공할 수 있다.
SSP(170)가 디지털 컴포넌트를 선택하는 방식 및 DSP(150)가 개인화된 디지털 컴포넌트를 배포하는 방식(예를 들어, 선택 파라미터 및/또는 선택 파라미터 자체 생성)은 역사적으로 클라이언트 디바이스에서 렌더링되는 웹 페이지의 도메인과 다른 도메인에 의해 클라이언트 디바이스에 드롭된 쿠키인 제3자 쿠키로부터 얻은 사용자 정보(예를 들어, 브라우징 정보, 관심 그룹 정보, 등)를 사용하는 것을 포함하였다. 그러나, 브라우저는 제3자 쿠키의 사용을 차단하고 있어 개인화된 디지털 컴포넌트를 선택하고 제공하기가 더 어렵고, 즉, 관심이 없는 콘텐츠를 선택하여 사용자에게 배포함으로써 컴퓨팅 리소스와 대역폭이 낭비될 수 있다. 이 문제를 극복하기 위해, 사용자 관심 그룹 정보의 사용을 가능하게 하는 동시에 도메인 전반의 사용자 추적을 방해하고 컴퓨팅 시스템 전반의 사용자 정보의 누출을 방지하는 프라이버시 보호 기술이 사용될 수 있다. 본원 명세서에 설명된 기술은 이 사용자 정보가 다른 당사자에게 공유되거나 누출되지 않도록 보호한다.The way the
일부 경우에, 사용자가 이전에 방문 및/또는 상호작용한 웹 페이지, 애플리케이션 페이지 또는 기타 전자 리소스와 관련된 디지털 컴포넌트를 수신하는 것이 사용자에게 유리하다. 이러한 디지털 컴포넌트를 사용자에게 배포하기 위해, 사용자가 특정 리소스를 방문하거나 리소스에서 특정 작업(예를 들어, 웹 페이지에 제시된 특정 항목과 상호 작용하거나 항목을 가상 카트에 추가하는 것)을 수행할 때, 사용자는 관심 그룹에 할당될 수 있다. 관심 그룹은 브라우징 거동, 자체-보고된 관심 및/또는 소셜 네트워크 페이지에 게시된 정보에 기초하여 동일한 주제에 관심이 있는 것으로 식별된 사용자 세트이다. 예를 들어, "축구"의 관심 그룹은 (예를 들어, 축구 관련 웹 페이지를 방문함으로써) 축구에 관심이 있는 것으로 식별된 사용자를 포함할 수 있다. 일부 구현예들에서, 관심 그룹은 디지털 컴포넌트 제공자(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
사용자 프라이버시를 보호하기 위해, 사용자의 관심 그룹 멤버십은 예를 들어, 애플리케이션(112) 중 하나에 의해 사용자의 클라이언트 디바이스(110)에서만 유지되는 것이 바람직하다. 특정 예에서, 웹 브라우저는 웹 브라우저를 사용하는 사용자에 대한 관심 그룹 식별자의 리스트("관심 그룹 리스트")를 유지할 수 있다. 관심 그룹 리스트는 사용자가 추가된 각각의 관심 그룹에 대한 관심 그룹 식별자를 포함할 수 있다. 관심 그룹을 생성하는 디지털 컴포넌트 제공자(160) 또는 퍼블리셔(140)는 그들의 관심 그룹에 대한 관심 그룹 식별자를 지정할 수 있다. 관심 그룹에 대한 관심 그룹 식별자는 그룹을 설명하거나(예를 들어, 정원 가꾸기 그룹) 또는 그룹을 나타내는 코드(예를 들어, 설명이 아닌 영숫자 시퀀스)일 수 있다. 사용자에 대한 관심 그룹 리스트는 클라이언트 디바이스(110)의 보안 저장소에 저장될 수 있고 및/또는 저장될 때 암호화될 수 있다.To protect user privacy, the user's interest group membership is preferably maintained only on the user's
애플리케이션(112)이 디지털 컴포넌트 제공자(160)와 관련된 리소스 또는 애플리케이션 콘텐츠를 제시할 때, 리소스는 애플리케이션(112)이 관심 그룹 리스트에 하나 이상의 관심 그룹 식별자를 추가하도록 요청할 수 있다. 응답으로, 애플리케이션(112)은 하나 이상의 관심 그룹 식별자를 관심 그룹 리스트에 추가하고, 관심 그룹 리스트를 안전하게 저장할 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 애플리케이션(112)은 콘텐츠에 대한 요청, 예를 들어, 하나 이상의 디지털 컴포넌트에 대한 요청과 함께 관심 그룹 리스트의 관심 그룹 식별자를 MPC 클러스터(130)에 전송할 수 있다. 관심 그룹 식별자의 평문(암호화되지 않았거나 그렇지 않으면 보호되지 않은 판독 가능한 데이터) 값을 전송하는 대신, 애플리케이션(112)은 관심 그룹 식별자를 암호화하고 암호화된 관심 그룹 식별자를 MPC 클러스터(130)에 전송하여 의도하지 않은 관심 그룹 식별자의 수신자가 관심 그룹 식별자의 평문 값에 액세스할 수 없다.When
MPC 클러스터(130)는 하나 이상의 관심 그룹 식별자 및 추가 정보에 기초하여 디지털 컴포넌트를 선택하기 위해 다자간 계산 프로세스를 수행하는 다중 컴퓨팅 시스템을 포함한다. 이 예에서, MPC 클러스터(130)는 제1 컴퓨팅 시스템(S1) 및 제2 컴퓨팅 시스템(S2)을 포함한다. 컴퓨팅 시스템(S1 및 S2)은 동일한 당사자(예를 들어, 브라우저 개발자, 애플리케이션 개발자 또는 산업 그룹) 또는 다른 당사자(예를 들어, 브라우저 개발자를 운영하는 당사자와 산업 그룹을 운영하는 다른 당사자)에 의해 소유되고 운영될 수 있다. 퀀티티(quantity)가 1보다 크면 다른 퀀티티의 컴퓨팅 시스템도 사용될 수 있다.The
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
도 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
방법(200)은 클라이언트 디바이스(110)의 애플리케이션(112)에 의해 수행되는 단계(1)로 시작한다. 단계(1)에서, 클라이언트 디바이스(110)의 사용자는 특정 페이지로 이동하도록 애플리케이션(112)에 지시한다. 예를 들어, 클라이언트 디바이스(110)(예를 들어, 스마트폰)의 사용자는 애플리케이션(112)(예를 들어, 웹 브라우저)이 예를 들어, 새에 관한 뉴스 웹사이트의 홈페이지로 이동하도록 지시하는 링크를 클릭할 수 있다. 애플리케이션(112)이 특정 페이지로 이동한 후, 애플리케이션(112)은 2개의 상이한 유형의 요청을 병렬로(예를 들어, 임의의 한 유형의 요청에 대한 응답을 기다리지 않고) 전송한다. 이들 요청은, (1) 사용자를 포함하는 하나 이상의 특정 그룹과 관련된 디지털 컴포넌트 세트에 대한 선택 기준 및 (2) 현재 렌더링 및/또는 클라이언트 디바이스에 제시된 페이지(또는 네이티브 애플리케이션 인터페이스와 같은 기타 온라인 리소스)의 콘텍스트를 기반으로 식별된 디지털 컴포넌트에 대한 선택 기준에 대한 요청이다. 특정 그룹은 예를 들어, 관심 그룹 또는 클라이언트 디바이스(110)의 사용자가 속한 다른 사용자 그룹일 수 있다. 관심 그룹은 그룹의 사용자가 관심이 있는 것으로 결정된 특정 엔티티, 카테고리 또는 기타 관심 주제와 연관될 수 있다. 선택 기준은 다른 기준 중에서 예를 들어, 사용자 등급, 콘텐츠 제공자에 의해 제공되는 등급, 관심 점수 또는 비드(bid)일 수 있다. 요청은 그룹 및/또는 선택 기준을 필터링할 수 있는 정보를 포함한다. 이러한 정보는 도 3을 참조하여 더 자세히 설명된다.The method 200 begins with
방법은 단계(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
방법은, 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
방법은 애플리케이션(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
방법은 애플리케이션(112)이 콘텍스트 디지털 컴포넌트 요청("제3 요청")을 SSP(170)로 전송하는 단계(5)로 이어진다. 예를 들어, 애플리케이션(112)(이 예에서는 웹 브라우저)은 콘텍스트 디지털 컴포넌트에 대한 요청을 SSP(170)에 전송할 수 있다. 콘텍스트 디지털 컴포넌트 요청은 관련 디지털 컴포넌트를 식별할 수 있는 콘텍스트 신호를 포함할 수 있다. 콘텍스트 신호는 다른 요인들 중 예를 들어, 클라이언트 디바이스에서 렌더링/제시되는 특정 웹 사이트 또는 웹페이지에 제시된 콘텐츠의 카테고리, 클라이언트 디바이스(110)의 사용자의 국가 또는 언어(예를 들어, 클라이언트 디바이스 설정에 의해 지정됨)일 수 있다. 단계(5)는 단계(2)와 병렬로 수행될 수 있다.The method continues with
방법은 SSP(170)가 콘텍스트 디지털 컴포넌트 요청을 임의의 수의 DSP(150)에 전달하는 단계(6)로 이어진다. 예를 들어, SSP(170)는 요청을 여러 DSP(150)에 전달할 수 있으며, 각각은 디지털 컴포넌트에 대한 후보 선택 기준으로 요청에 응답할 기회를 가지게 된다. 후보 선택 기준은 예를 들어, 콘텍스트 선택 값 또는 특정 콘텍스트 신호에 대한 선택 값일 수 있다. 콘텐스트 선택 값은 디지털 컴포넌트 제공자(160)가 디지털 컴포넌트 제공자(160)의 디지털 컴포넌트의 제시를 위해 제공할 의향이 있는 양을 나타내거나 지정할 수 있다. DSP(150)는 디지털 컴포넌트 제공자(160)를 대신하여 후보 선택 값을 선택하거나 결정할 수 있다.The method continues with
방법은 하나 이상의 DSP(150)가 콘텍스트 신호를 사용하여 식별된 디지털 컴포넌트에 대한 후보 선택 기준으로 요청에 응답하는 단계(7)로 이어진다. 예를 들어, DSP(150)는 콘텍스트 선택 값 및/또는 하나 이상의 콘텍스트 신호로 SSP(170)의 요청에 응답할 수 있다.The method continues with
추가적으로, 하나 이상의 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)는 콘텍스트 신호를 사용하여 사용자를 포함하는 하나 이상의 관심 그룹을 예측하고, 미래에 다른 브라우저에 의해 발행될 수 있는 예를 들어, 단계(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
관심 그룹 선택 기준 세트는, 현재 콘텍스트 요청 단계(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)는 예를 들어, IG_ID에 의해 식별된 관심 그룹의 어떤 세트가 애플리케이션(112)이 지시한 현재 웹사이트를 방문하고 사전에 관심 그룹 선택 기준을 제출할 사용자와 연관될 수 있는지를 예측할 수 있다. 제출된 선택 값 세트는 MPC 클러스터(130)에 의해 캐싱되어 미래의 관심 그룹 선택 기준 요청에 응답할 때 지연 및 DSP(150) 서버 로드를 감소시킬 수 있다. 예를 들어, 후속 관심 그룹 선택 기준 요청이 사전에 제출되고 캐싱된 관심 그룹 선택 기준 세트의 파라미터와 일치하는 파라미터를 포함하는 경우, MPC 클러스터(130)는 캐싱된 선택 기준 세트를 사용하여 간단히 응답할 수 있다.
예를 들어, DSP(150)는 이력 사용자 상호작용 데이터 또는 다른 이력 데이터를 사용하여 관심 그룹 선택 값 또는 선택 값 세트를 추론적으로 생성하거나 또는 애플리케이션(112)이 지시한 현재 웹사이트를 방문할 사용자에 대한 관심 그룹에 예측 비딩한다. 예를 들어, DSP(150)가 이력 데이터로부터 애플리케이션(112)이 지시한 현재의 새 뉴스 웹사이트를 방문할 사용자가 일반적으로 캠핑, 자연 및 아웃도어 장비에 대한 관심 그룹과 연관되어 있다고 결정하는 경우, 단계(10)를 참조하여 아래에서 논의되는 바와 같이, DSP(150)는 그러한 관심 그룹에 대한 선택 값을 추론적으로 생성하고, MPC 클러스터(130)의 캐시에 이러한 선택 값을 저장한다.For example,
방법은 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
일부 구현예들에서, 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,
방법은 애플리케이션(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
방법은 SSP(170)가 MPC 클러스터(130)의 컴퓨팅 시스템(S1 및 S2)에 의해 유지되는 관심 그룹 선택 기준을 업데이트하는 단계(10)로 이어질 수 있다. SSP(170)는 제1 스테이지 키 및 제2 스테이지 룩업 테이블(LUT)을 MPC 클러스터(130)의 컴퓨팅 시스템(S1 및 S2)에 전송함으로써 단계(10)를 수행한다.The method may lead to the
예를 들어, SSP(170)는 먼저, 제출된 관심 그룹 선택 기준에 필터링 기준을 적용하고, 단계(8)와 관련하여 설명된 프로세스와 유사한 프로세스에서 결과적인 선택 값을 계산하기 위해 가격 책정 규칙을 적용할 수 있다. 그런 다음, SSP(170)는 다른 신호들 중에서 특정 URL, 위치, 언어와 같은 관심 그룹 요청 신호이기도 한 콘텍스트 요청에 제공된 모든 신호로부터 복합 메시지를 생성할 수 있다. 그런 다음, SSP(170)는 복합 메시지를 바이트 어레이로 직렬화하여 요청 신호 및 기타 요청 정보를 나타내는 암호화 메시지를 생성한다. 예를 들어, SSP(170)는 SHA256 알고리즘을 사용하여 바이트 어레이를 고정 크기 디지털 다이제스트로 암호 해시화할 수 있다. 본원 명세서 내에서 논의할 목적으로 이 디지털 다이제스트는 IG_Request_Key로 지칭될 수 있다.For example,
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
단계(10)에서, MPC 클러스터(130)의 컴퓨팅 시스템(S1 및 S2)으로 관심 그룹 선택 기준(예를 들어, 선택 기준 세트)에 대한 후보 선택 기준을 전송하는 것 이외에, SSP(170)는 선택적으로 단계(8)의 일부로서 최고 값을 갖는 후보 선택 기준을 이미 포함하는 관심 그룹 선택 기준을 애플리케이션(112)에 전송할 수 있다. 이 옵션에서, 단계(9)의 일부로서 애플리케이션(112)에 의해 수행된 각각의 최종 선택 프로세스에 대해, 애플리케이션(112)은, 이용 가능한 경우, 단계(8)에서 수신된 콘텍스트 선택 값; MPC 클러스터(130)의 캐시에 캐싱된 단계(2a)에서 수신된 관심 그룹 선택 값; MPC 클러스터(130)의 캐시에 캐싱된 단계(2b)에서 수신된 관심 그룹 선택 값; 및/또는 캐싱되지 않은 단계(8)에서 수신된 관심 그룹 선택 값(애플리케이션(112)은 클라이언트 디바이스(110)의 사용자가 연관되어 있는 관심 그룹의 실제 리스트에 기초하여 이러한 비드를 추가로 필터링함) 중 하나 이상을 포함하는 선택 값의 여러 세트 중에서 가장 높은 선택 값을 선택한다.In
도 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
일부 구현예들에서, 단계들(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
단계(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
단계(2a-2)에서, 애플리케이션(112)은 클라이언트 디바이스(110)의 사용자가 속하는 관심 그룹의 실제 리스트를 두 세트(G1 및 G2)로 무작위로 분할한다. G2 = {g2,1, ... g2,k}가 G2에 무작위로 할당된 관심 그룹의 세트라고 가정한다. 클라이언트 디바이스(110)의 사용자, 확장하여 애플리케이션(112)이 n개의 관심 그룹과 연관되어 있다고 가정하면, 각각의 관심 그룹은 G1 또는 G2에 포함될 동일한 확률을 갖는다. 일부 구현예들에서, 세트(G1 및 G2)는 동일한 크기가 아니다. 애플리케이션(112)은 바람직하게는 사용자를 포함하는 관심 그룹의 리스트를 유지하므로 이 단계에서, 애플리케이션은 관심 그룹의 2개의 하위 세트로 관심 그룹의 리스트를 기술할 수 있음을 상기해야 한다. 일부 구현예들에서, 관심 그룹의 2개의 하위 세트는 겹치지 않는 구성원 자격을 갖는다. 일부 구현예들에서, 관심 그룹의 2개의 하위 세트는 겹치는 구성원 자격을 갖는다.In
애플리케이션(112)이 연관되는 임의의 관심 그룹은 G1 또는 G2에 없을 확률(p)이 0이 아니다. 애플리케이션(112)과 연관되지 않은 무작위 관심 그룹이 G1 또는 G2에 존재할 확률은 가양성 비율(FPR)이다. 따라서, G1을 생성하는 프로세스는 ε-차등 프리베이트(differentially private)이고, 여기서, 이다.The probability p is non-zero that any interest group with which the
예를 들어, 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
그런 다음, 단계(2a-3)에서, 애플리케이션(112)은 블룸 필터, 구현 및 구조에 대한 FPR을 포함하는 적절한 파라미터와 같은 확률적 데이터 구조를 선택할 수 있다. 그런 다음, 이 특정 예에서, 애플리케이션(112)은 세트(G1 및 G2) 각각에 대한 블룸 필터(G1' 및 G2')를 생성할 수 있다. FPR로 인해, G1 ⊂ G1', G2 ⊂ G2', |G1| << |G1'| 및 |G2| << |G2'|이다. 확률적 데이터 구조를 사용함으로써, 사용자를 실제로 포함하는 관심 그룹의 각각의 하위 세트는 사용자의 프라이버시를 보호하는데 도움을 주도록 사용자를 포함하지 않는 관심 그룹의 세트가 추가되고, 예를 들어, 이는 하위 세트 중 하나를 얻은 임의의 시스템이 핑거프린팅을 통해 사용자를 식별하거나 추적하는 것을 더 어렵게 만든다.Then, in
예를 들어, 애플리케이션(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,
단계(2a-4)에서, 애플리케이션(112)은 암호화된 메시지의 단일 파라미터와 함께 컴퓨팅 시스템(S1)에 요청을 전송한다. 예를 들어, 파라미터는 PubKeyEncrypt(Stage_1_Lookup_Key || G2' || PubKeyEncrypt(G2 T, S1) || public_key2 || nonce, S2)일 수 있다. 이 식에서, ||는 하나 이상의 단순 메시지에서 복잡한 메시지를 구성하는 임의의 무손실 가역적 방법을 나타낸다. 예를 들어, ||는 간결한 이진 개체 표현 또는 프로토콜 버퍼 방법을 나타낼 수 있다.In
이 특정 예에서, 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
단계(3a-1)에서, 컴퓨팅 시스템(S1)은, 컴퓨팅 시스템(S2)이 해당 개인 키를 엄격하게 기밀로 유지한다는 가정에 의해, 애플리케이션(112)이 컴퓨팅 시스템(S2)에서 가져온 공개 키를 사용한 요청의 암호화로 인해 컴퓨팅 시스템(S2)으로 전달하는 것 외에는 수신된 요청을 사용하여 임의의 프로세스를 수행할 수 없다. 요청을 전달함으로써, 컴퓨팅 시스템(S1)은 컴퓨팅 시스템(S2)으로부터 애플리케이션(112)을 실행하는 클라이언트 디바이스의 IP 주소를 숨겨서, 컴퓨팅 시스템(S2)이 사용자를 추적하기 위한 관심 그룹 요청과 연관된 클라이언트 디바이스 상의 애플리케이션의 IP 주소를 사용할 수 없도록 하고, 프라이버시 보호의 추가 레이어를 제공한다.In
단계(3a-2)에서, 컴퓨팅 시스템(S2)은 다수의 파라미터를 복구하기 위해 자체 개인 키를 사용하여 수신된 요청을 해독한다. 예를 들어, 파라미터들은 Stage_1_Lookup_Key, G2'(즉, G2 T용으로 구성된 블룸 필터), PubKeyEncrypt(G2 T, S1), 즉 컴퓨팅 시스템(S1)만이 해독할 수 있는 암호화된 G2 T, 현재 요청에 대해 애플리케이션(112)에 의해 생성된 public_key2 및 논스(nonce)를 포함한다.In
컴퓨팅 시스템(S2)이 예를 들어, SSP(170)와 공모하는 경우에도, 컴퓨팅 시스템(S2)은 여전히 IP 주소를 기반으로 하는 애플리케이션의 콘텍스트 요청과 관심 그룹 요청의 상관관계를 지정하기 위해 관심 그룹 및 콘텍스트 요청에 공통인 클라이언트 디바이스의 IP 주소를 사용할 수 없다. 이 보호는 Stage_1_Lookup_Key에 제한된 수의 비트가 있을 때 훨씬 더 분명하다.Even if computing system S2 colludes with, for example,
단계(3a-3)에서, 컴퓨팅 시스템(S2)은 Stage_1_Lookup_Key를 사용하여 2-스테이지 룩업 테이블("LUT")을 쿼리한다. 결과는 키가 HMAC(IG_Request_Key, IG_ID)인 기존 LUT이다. 즉, 컴퓨팅 시스템(S2)은 해독된 요청의 Stage_1_Lookup_Key를 사용하여 일치하는 엔티티에 대해 LUT를 쿼리한다.In
단계(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
단계(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
단계(3a-6)에서, 컴퓨팅 시스템(S1)은 PubKeyEncrypt(G2 T, S1)를 해독하여 G2 T를 일반 텍스트로 복구한다. 예를 들어, 컴퓨팅 시스템(S1)은 컴퓨팅 시스템(S1)에만 애플리케이션(112)에 의해 제공되는 공개 키에 대응하는 개인 키를 사용하여 PubKeyEncrypt를 해독한다.In
단계(3a-7)에서, 컴퓨팅 시스템(S1)은 키가 G2 T에 있는 정렬된 키/값 쌍의 리스트에서 제1 키/값 쌍을 찾기 위해 G2 T를 사용하여 승리한 관심 그룹을 선택한다. 정렬된 리스트는 이미 가장 높은 사후 수익 공유 선택 값에서 가장 낮은 사후 수익 공유 선택 값의 순서로 정렬되어 있기 때문에, 컴퓨팅 시스템(S1)은 단순히 G2 T에 쿼리하고 키가 G2 T에 있는 정렬된 리스트에서 제1 키/값 쌍을 선택하여 키/값 쌍의 실제 값에 액세스하지 않고 가장 높은 사후 수익 공유 비드 가격을 갖는 애플리케이션(112)이 연관된 관심 그룹의 실제 리스트에 있는 관심 그룹을 선택한다. 선택된 키/값 쌍이 결과이다.In
단계(3a-8)에서, 컴퓨팅 시스템(S1)은 나중에 애플리케이션(112)에 의한 확인을 위해 자신의 개인 키로 선택된 키/값 쌍에 서명한다. 예를 들어, 컴퓨팅 시스템(S1)은 애플리케이션(112)이 컴퓨팅 시스템(S1)에만 제공하는 공개 키에 대응하는 개인 키로 승리한 키/값 쌍에 서명할 수 있다.In
단계(4a-1)에서, 컴퓨팅 시스템(S1)은 선택된 키/값 쌍 또는 결과를 애플리케이션(112)으로 다시 전송한다.In step 4a - 1 , the computing system S1 sends the selected key/value pair or result back to the
단계(4a-2)에서, 애플리케이션(112)은 다음과 같이 결과를 해독하고 검증한다.In step 4a-2, the
애플리케이션(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
암호화 프로세스(300)는 추가적인 프라이버시 및 보안 보호를 제공한다. 이 프로세스 동안, 컴퓨팅 시스템(S2)은 일반 텍스트의 블룸 필터(G2')를 수신한다. 이전 분석에 따르면 블룸 필터(G2')는 차등 비공개이다. 또한, 컴퓨팅 시스템(S2)은 일반 텍스트의 Stage_1_Lookup_Key, 즉 n 비트로 잘린 SHA256(IG_Request_Key)을 수신한다. 또한, 컴퓨팅 시스템(S1)은 일반 텍스트의 클라이언트 IP 주소만 본다. 따라서, MPC 클러스터의 컴퓨팅 시스템 중 어느 것도 사용자 데이터 전체에 액세스할 수 없으며 사용자의 신원을 추측할 수 없다.The
도 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
프로세스(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
프로세스(400)는 제1 MPC 서버에 의해 클라이언트 디바이스의 특정 사용자가 속한 2개 이상의 관심 그룹의 세트 중 적어도 하나의 관심 그룹의 정렬된 선택 기준의 세트를 결정하여 수신된 요청에 응답함으로써 계속된다(404). 일부 구현예들에서, 정렬된 선택 기준의 세트는 암호화되지 않은 또는 일반 텍스트 형식으로 액세스되는 것으로부터 보호되거나 그렇지 않으면 제2 MPC 서버에 의해 공개되는 요청의 부분을 사용하여 제1 MPC 서버의 캐시로부터 검색된다. 예를 들어, 도 2 및 도 3의 단계(3a-2) 내지 단계(3a-5)와 관련하여 전술한 바와 같이, 컴퓨팅 시스템(S2)(즉, 제1 MPC 서버)는 요청의 부분을 사용하여 컴퓨팅 시스템(S2)의 2-스테이지 LUT로부터 검색된 관심 그룹 비드의 정렬된 세트를 결정할 수 있다. 이는 선택 프로세스 중에 데이터 보안 및 사용자 프라이버시를 유지하는 기술적 효과가 있다. 이 접근 방식을 사용하면 MPC 클러스터가 사용자의 전체 관심 그룹 멤버십을 얻지 못하게 된다. 또한, 이 접근 방식은 MPC 서버가 관심 그룹에 대한 선택 값을 제공하는 DSP에 대한 기밀 데이터를 얻는 것을 방지한다.
프로세스(400)는 정렬된 선택 기준의 세트를 키/값 쌍의 세트로 변환하는 단계로 이어지며, 키/값 쌍 각각의 값은 제2 MPC(406)에 의해 공개되지 않도록 보호된다. 예를 들어, 도 2 및 도 3의 단계(3a-2) 내지 단계(3a-5)와 관련하여 전술한 바와 같이, 컴퓨팅 시스템(S2)은 정렬된 관심 그룹 비드의 세트를 키/값 쌍의 세트로 변환할 수 있다. 이는 또한 선택 프로세스 중에 데이터 보안 및 사용자 프라이버시를 유지하는 기술적 효과가 있다. 이 접근 방식을 사용하면 MPC 클러스터가 사용자의 전체 관심 그룹 멤버십을 얻지 못하게 된다. 또한, 이 접근 방식은 MPC 서버가 관심 그룹에 대한 선택 값을 제공하는 DSP에 대한 기밀 데이터를 얻는 것을 방지한다.The
프로세스(400)는 제1 MPC 서버에 의해 키/값 쌍의 세트의 값을 공개하지 않고 제2 MPC 서버가 가장 높은 값을 갖는 키를 식별할 수 있게 하는 데이터와 함께 키/값 쌍의 세트를 제2 MPC 서버로 전송하는 단계로 이어진다(408). 예를 들어, 도 2 및 도 3의 단계(3a-2) 내지 단계(3a-5)와 관련하여 전술한 바와 같이, 컴퓨팅 시스템(S2)은, 컴퓨팅 시스템(S1)이 값에 액세스하는 것을 허용하지 않고 컴퓨팅 시스템(S1)이 가장 높은 값을 갖는 키를 식별할 수 있게 하는 데이터와 함께 키/값 쌍의 세트로서 비드의 정렬된 리스트를 컴퓨팅 시스템(S1)으로 전송할 수 있다. 이는 사용자 프라이버시 및 데이터 보안을 유지하는 기술적 효과가 있다. 또한, MPC 서버에서 클라이언트 디바이스로 전송되는 데이터의 양은 사용자를 구성원으로 포함하는 각각의 관심 그룹이 아닌 승리한 관심 그룹에 대한 데이터만 전송함으로써 감소된다.The
일부 구현예들에서, 프로세스(400)는, 제1 MPC 서버에 의해 그리고 제1 MPC 서버 및 제2 MPC 서버와 상이한 콘텐츠 배포 시스템으로부터, 콘텐츠 배포 시스템에 의해 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 주어진 관심 그룹이 예측되는 조건의 세트의 콘텍스트에서 주어진 관심 그룹의 주어진 선택 기준을 수신하는 단계 및 제1 MPC 서버에 의해 그리고 제1 MPC 서버의 캐시에서, 적용 가능한 콘텍스트와 관련하여 클라이언트 디바이스의 특정 사용자를 포함하는 것으로 예측되는 주어진 관심 그룹의 주어진 선택 기준을 캐싱하는 단계를 포함한다. 이는 관심 그룹 멤버십을 기반으로 디지털 컴포넌트를 더 빠르게 선택하는 기술적 효과가 있다. 관심 그룹 멤버십을 기반으로 배포되는 디지털 컴포넌트에 대한 선택 기준을 캐싱함으로써, MPC 서버는 자격이 있는 디지털 컴포넌트(예를 들어, 사용자를 구성원으로 포함하는 관심 그룹에 대한 컴포넌트)를 보다 신속하게 식별하고 캐시된 선택 값을 기반으로 승리한 디지털 컴포넌트를 선택할 수 있다.In some implementations,
예를 들어, 도 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 ,
일부 구현예들에서, 프로세스(400)는, 콘텐츠 배포 시스템에 의해 클라이언트 디바이스에 의해 제출된 콘텐츠 요청을 수신하는 단계, 콘텐츠 요청에 대한 응답으로 콘텐츠 요청에 응답하여 후보 선택 기준을 생성하는 단계, 콘텐츠 요청에 기초하여 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 0개 이상의 관심 그룹을 결정하는 단계, 주어진 관심 그룹이 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 결정에 기초하여 주어진 관심 그룹의 주어진 선택 기준을 생성하는 단계, 콘텐츠 배포 시스템에 의해 후보 배포 기준 및 주어진 배포 기준을 클라이언트 디바이스로 전송하는 단계 및 콘텐츠 배포 시스템과 제1 MPC 서버에 의해 주어진 관심 그룹의 주어진 배포 기준을 전송하지만, 후보 배포 기준은 전송하지 않는 단계를 또한 포함한다. 예를 들어, DSP(150)는 애플리케이션(112)에 의해 제출된 콘텐츠 요청을 수신하고, 애플리케이션(112)이 실행되는 클라이언트 디바이스(110)의 사용자가 특정 관심 그룹의 일부일 가능성이 있다고 결정하고, 관심 그룹에 대한 예측 비드를 생성할 수 있다. 이는 사용자 데이터를 다른 당사자에게 누설하지 않고 디지털 컴포넌트 표시 환경에 대한 관심 그룹 멤버십과 콘텍스트 데이터를 모두 사용하여 애플리케이션에 의해 표시되는 디지털 컴포넌트에 대한 선택 프로세스를 애플리케이션이 완료할 수 있도록 하여 사용자 경험을 개선하는 강력한 디지털 컴포넌트 선택 프로세스 전반에 걸쳐 데이터 보안을 향상시키는 기술적 효과가 있다. 또한, 병렬 요청을 기반으로 클라이언트 디바이스에서 최종 선택 프로세스를 수행하면 선택 프로세스를 보다 빠르게 완료할 수 있으므로 디지털 컴포넌트를 밀리초로 선택해야 하는 상황에서 발생할 수 있는 오류를 방지할 수 있다.In some implementations,
일부 구현예들에서, 프로세스(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,
예를 들어, 컴퓨팅 시스템(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
일부 구현예들에서, 프로세스(400)는, 제2 MPC 서버에 의해 전송된 제1 암호화되고 서명된 응답을 클라이언트 디바이스에 의해 수신하는 단계, 클라이언트 디바이스에 의해 제1 암호화되고 서명된 응답이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계, 클라이언트 디바이스에 의해 제1 서명된 응답으로부터 제1 관심 그룹을 복구하는 단계, 클라이언트 디바이스에 의해 제1 관심 그룹이 특정 사용자를 포함하고 있음을 확인하는 단계, 클라이언트 디바이스에 의해 주어진 키/값 쌍의 값이 제1 MPC 서버에 의해 서명되었음을 확인하는 단계, 클라이언트 디바이스에 의해 제1 선택 기준을 복구하도록 주어진 키/값 쌍의 값을 해독하는 단계, 클라이언트 디바이스에 의해 콘텐츠 배포 시스템으로부터 후보 선택 기준 및 주어진 선택 기준을 수신하는 단계, 클라이언트 디바이스에 의해 제1 선택 기준, 주어진 선택 기준 및 후보 선택 기준 중에서 제어 선택 기준을 선택하는 단계를 또한 포함한다. 이는 사용자 프라이버시 및 데이터 보안을 보호하고 사기를 방지하는 기술적 효과가 있다.In some implementations,
예를 들어, 도 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
일부 구현예들에서, 프로세스(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
도 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
메모리(520)는 시스템(500) 내에 정보를 저장한다. 일 구현예에서, 메모리(520)는 컴퓨터-판독가능 매체이다. 일 구현예에서, 메모리(520)는 휘발성 메모리 유닛이다. 다른 구현예에서, 메모리(520)는 비-휘발성 메모리 유닛이다.
저장 디바이스(530)는 시스템(500)에 대용량 저장부를 제공할 수 있다. 일 구현예에서, 저장 디바이스(530)는 컴퓨터-판독가능 매체이다. 다양한 다른 구현예들에서, 저장 디바이스(530)는, 예를 들어, 하드 디스크 디바이스, 광학 디스크 디바이스, 다수의 컴퓨팅 디바이스(예를 들어, 클라우드 저장 디바이스)에 의해 네트워크를 통해 공유되는 저장 디바이스, 또는 일부 다른 대용량 저장 디바이스를 포함할 수 있다.The
입력/출력 디바이스(540)는 시스템(500)에 대한 입력/출력 동작을 제공한다. 일 구현예에서, 입력/출력 디바이스(540)는 네트워크 인터페이스 디바이스들, 예를 들어, 이더넷 카드, 직렬 통신 디바이스, 예를 들어, RS-232 포트 및/또는 무선 인터페이스 디바이스, 예를 들어, 802.11 카드 중 하나 이상을 포함할 수 있다. 다른 구현예에서, 입력/출력 디바이스는 입력 데이터를 수신하고 출력 데이터를 다른 입력/출력 디바이스, 예를 들어, 키보드, 프린터 및 디스플레이 디바이스(560)로 보내도록 구성된 드라이버 디바이스를 포함할 수 있다. 그러나, 모바일 컴퓨팅 디바이스, 모바일 통신 디바이스, 셋톱 박스 텔레비전 클라이언트 디바이스 등과 같은 다른 구현예들도 사용될 수 있다.Input/output device 540 provides input/output operation for
예시적인 프로세싱 시스템이 도 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
"데이터 처리 장치"라는 용어는 데이터 처리를 위한 모든 종류의 장치, 디바이스 및 기계를 포함하며, 예를 들어 프로그래밍 가능한 프로세서, 컴퓨터, 시스템 온 칩 또는 전술한 것의 다수 또는 조합을 포함한다. 장치는 예를 들어, 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 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.
클라이언트 디바이스에 의해 제출된 콘텐츠 요청을 콘텐츠 배포 시스템에 의해 수신하는 단계;
콘텐츠 요청에 대한 응답으로, 콘텐츠 요청에 응답하여 후보 선택 기준을 생성하는 단계;
콘텐츠 요청에 기초하여 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 주어진 관심 그룹을 결정하는 단계;
주어진 관심 그룹이 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 결정에 기초하여 주어진 관심 그룹의 주어진 선택 기준을 생성하는 단계;
콘텐츠 배포 시스템에 의해 후보 배포 기준 및 주어진 배포 기준을 클라이언트 디바이스로 전송하는 단계; 및
콘텐츠 배포 시스템에 의해 제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.
제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.
클라이언트 디바이스에 의해 특정 사용자를 포함하는 관심 그룹을 제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.
제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.
상기 동작은,
제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.
상기 동작은,
클라이언트 디바이스에 의해 제출된 콘텐츠 요청을 콘텐츠 배포 시스템에 의해 수신하는 단계;
콘텐츠 요청에 대한 응답으로, 콘텐츠 요청에 응답하여 후보 선택 기준을 생성하는 단계;
콘텐츠 요청에 기초하여 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 주어진 관심 그룹을 결정하는 단계;
주어진 관심 그룹이 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 결정에 기초하여 주어진 관심 그룹의 주어진 선택 기준을 생성하는 단계;
콘텐츠 배포 시스템에 의해 후보 배포 기준 및 주어진 배포 기준을 클라이언트 디바이스로 전송하는 단계; 및
콘텐츠 배포 시스템에 의해 제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.
상기 동작은,
제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.
상기 동작은,
제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.
상기 동작은,
클라이언트 디바이스에 의해 특정 사용자를 포함하는 관심 그룹을 제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.
상기 동작은,
제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.
상기 동작은,
제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.
상기 동작은,
클라이언트 디바이스에 의해 제출된 콘텐츠 요청을 콘텐츠 배포 시스템에 의해 수신하는 단계;
콘텐츠 요청에 대한 응답으로, 콘텐츠 요청에 응답하여 후보 선택 기준을 생성하는 단계;
콘텐츠 요청에 기초하여 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 주어진 관심 그룹을 결정하는 단계;
주어진 관심 그룹이 클라이언트 디바이스의 특정 사용자를 포함할 것으로 예측되는 결정에 기초하여 주어진 관심 그룹의 주어진 선택 기준을 생성하는 단계;
콘텐츠 배포 시스템에 의해 후보 배포 기준 및 주어진 배포 기준을 클라이언트 디바이스로 전송하는 단계; 및
콘텐츠 배포 시스템에 의해 제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.
제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.
상기 동작은,
제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.
상기 동작은,
클라이언트 디바이스에 의해 특정 사용자를 포함하는 관심 그룹을 제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.
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)
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 |
-
2021
- 2021-08-13 KR KR1020227009695A patent/KR20220052352A/en unknown
- 2021-08-13 US US17/637,849 patent/US11968297B2/en active Active
- 2021-08-13 CN CN202180005490.2A patent/CN114450919B/en active Active
- 2021-08-13 WO PCT/US2021/045888 patent/WO2022036183A1/en unknown
- 2021-08-13 JP JP2022518299A patent/JP7354427B2/en active Active
- 2021-08-13 EP EP21769544.4A patent/EP4014427B1/en active Active
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 |