KR102661484B1 - 집계된 네트워크 측정에서의 부정 방지 - Google Patents

집계된 네트워크 측정에서의 부정 방지 Download PDF

Info

Publication number
KR102661484B1
KR102661484B1 KR1020217021017A KR20217021017A KR102661484B1 KR 102661484 B1 KR102661484 B1 KR 102661484B1 KR 1020217021017 A KR1020217021017 A KR 1020217021017A KR 20217021017 A KR20217021017 A KR 20217021017A KR 102661484 B1 KR102661484 B1 KR 102661484B1
Authority
KR
South Korea
Prior art keywords
data
conversion
application
digital component
key
Prior art date
Application number
KR1020217021017A
Other languages
English (en)
Other versions
KR20210097786A (ko
Inventor
강 왕
마셀 엠. 모티 영
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20210097786A publication Critical patent/KR20210097786A/ko
Application granted granted Critical
Publication of KR102661484B1 publication Critical patent/KR102661484B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/40User authentication by quorum, i.e. whereby two or more security principals are required
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3257Cryptographic 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 blind signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

방법, 시스템 및 장치는 부정 방지 방법을 포함한다. 일부 양태에서, 방법은 다수의 클라이언트 디바이스로부터, 디지털 컴포넌트를 디스플레이한 결과로서 소정 전환에 대한 개별 그룹 멤버 키 및 그룹 식별자를 포함하는 측정 데이터 엘리먼트를 수신하는 단계를 포함한다. 각 클라이언트 디바이스는 임계값 암호화 기법를 사용하여, 전환에 대한 노출 데이터 또는 전환 데이터 중 하나 이상을 포함하는 네트워크 데이터에 적어도 기초하여, 네트워크 데이터를 암호화하기 위한 비밀을 정의하는 그룹 키를 생성하고, 애플리케이션과 관련된 데이터에 기초하여, 비밀의 개별 공유를 포함하는 개별 그룹 멤버 키를 생성한다. 적어도 동일한 그룹 식별자를 갖는 측정 데이터 엘리먼트의 임계수가 수신되었다는 결정에 응답하여, 네트워크 데이터는 수신된 측정 데이터 엘리먼트의 그룹 멤버 키를 사용하여 복호화된다.

Description

집계된 네트워크 측정에서의 부정 방지
클라이언트 디바이스는 인터넷과 같은 공용 네트워크를 통해 데이터를 전송한다. 이러한 통신은 의도된 수신자가 아닌 다른 엔티티에 의해 가로채지고 및/또는 변경될 수 있다. 또한, 엔티티는 네트워크 식별 정보를 위조하고 이러한 위조된 네트워크 식별 정보에서 발생된 것처럼 보이는 데이터를 전송할 수 있다. 이러한 위조의 예는 엔티티가 네트워크 식별 정보를 생성하여 피어-투-피어 네트워크의 평판 시스템을 파괴하는 시빌(Sybil) 공격이다.
본 명세서는 부정(fraud)을 방지하고 사용자 프라이버시를 보호하는 방식으로 집계된 네트워크 측정을 결정하는 것과 관련된 기술을 설명한다.
일반적으로, 본 명세서에 설명된 주제의 하나의 혁신적인 양태는 복수의 클라이언트 디바이스 각각으로부터, 디지털 컴포넌트를 디스플레이한 결과로서 소정(given) 전환에 대한 개별 그룹 멤버 키 및 그룹 식별자를 포함하는 측정 데이터 엘리먼트를 수신하는 단계와, 각 클라이언트 디바이스에서 실행되는 애플리케이션은 임계값 암호화 기법을 사용하여: 하나 이상의 노출 데이터 또는 전환을 위한 전환 데이터를 포함하는 네트워크 데이터에 적어도 기초하여, 네트워크 데이터를 암호화하기 위한 비밀을 정의하는 그룹 키를 생성하고, 각 그룹 멤버 키는 비밀의 개별 공유를 포함하고; 그리고 애플리케이션과 관련된 데이터에 기초하여, 개별 그룹 멤버 키를 생성하고, 각 클라이언트 디바이스는 다른 비밀 공유를 포함하는 다른 그룹 멤버 키를 생성하고; 적어도 그룹 식별자를 갖는 측정 데이터 엘리먼트의 임계수가 수신되었다고 결정하는 단계와; 그리고 적어도 동일한 그룹 식별자를 갖는 측정 데이터 엘리먼트의 임계 개수가 수신되었다는 결정에 응답하여, 수신된 측정 데이터 엘리먼트의 그룹 멤버 키를 사용하여 네트워크 데이터를 복호화하는 단계를 포함하는 방법으로 구체화될 수 있다. 집계될 네트워크 데이터를 보고하기 위해 임계값 암호화 기술을 사용하는 것은 부정 보고를 방지하고, 예를 들어 보고된 데이터가 사용자 데이터와 관련되거나 포함하는 상황에서 사용자 프라이버시를 보호한다. 상이한 그룹 멤버 키의 생성은 그룹 식별자를 갖는 측정 데이터 엘리먼트의 적어도 임계 개수 이상의 그룹 멤버 키의 임의의 조합이 수신될 때 그룹 키가 재생성될 수있게 한다. 따라서, 네트워크 데이터는 적어도 임계 그룹 멤버 키가 수신될 때 복호화될 수 있지만 임계 그룹 멤버 키 미만이 수신되면 복호화될 수 없다. 클라이언트 디바이스들 간 협업없이 클라이언트 디바이스간에 이러한 비밀 공유를 가능하게함으로써 사용자 디바이스 간의 통신을 차단하여 사용자 프라이버시를 보호하고, 이러한 통신에 의해 소비되는 대역폭을 줄이며, 단일 개인 키가 단순히 각 애플리케이션으로 전달되는 경우 발생할 수있는 측정 부정을 방지한. 이 양태의 다른 구현은 컴퓨터 저장 디바이스에 인코딩된 방법들의 양태를 수행하도록 구성된 대응 장치, 시스템 및 컴퓨터 프로그램을 포함한다.
이들 및 다른 구현은 각각 다음 특징들 중 하나 이상을 선택적으로 포함할 수 있다. 측정 데이터 엘리먼트는 네트워크 데이터를 나타내는 암호화된 데이터를 포함할 수 있으며 그룹 멤버 키를 포함할 수 있다. 그룹 멤버 키는 그룹 키의 일부를 나타낼 수 있으며 동일한 노출 및 전환 쌍에 대해 충분한 수의 그룹 멤버 키가 수신된 경우에만 그룹 키를 재생성하는데 사용할 수 있다. 전환은 디지털 컴포넌트에 대한 것일 수 있으며 디지털 컴포넌트가 사용자에게 제시되거나 사용자에 의해 선택된 후 지정된 사용자 액션의 완료를 포함할 수 있다. 노출 데이터는 디지털 컴포넌트의 특정 프리젠테이션에 대한 것일 수 있으며, 디지털 컴포넌트에 대한 랜딩 페이지의 URL 또는 도메인(예를 들어, 디지털 컴포넌트에 의해 링크된 페이지 및 사용자가 디지털 컴포넌트를 클릭하거나 상호 작용할 때 애플리케이션/브라우저가 페이지를 사용자에게 제시함). 디지털 컴포넌트에 대한 하나 이상의 식별자, 노출과 관련된 이벤트 레벨 데이터, 노출 데이터가 클라이언트 디바이스로부터 삭제되는 시기를 지정하는 만료 시간 및/또는 디지털 컴포넌트에 대한 전환 보고를 전송할 보고 URL 또는 도메인을 포함할 수 있다. 노출 데이터는 예를 들어 디지털 컴포넌트의 메타 데이터 또는 디지털 컴포넌트의 앵커 태그로서 디지털 컴포넌트에 의해 제공될 수 있다. 전환 데이터에는 일부 전환이 다수의 유형을 가질 수 있으므로 전환 유형을 나타내는 데이터가 포함될 수 있다. 전환 유형은 전환이 완료된 후 후속 액션을 지정할 수 있다.
각 애플리케이션은 노출 데이터와 관련된 전환의 발생에 응답하여 측정 데이터 엘리먼트를 생성하고 전송할 수 있다. 방법은 그룹 식별자를 포함하는 다수의 수신된 데이터 엘리먼트에 기초하여 디지털 컴포넌트에 대한 전환 횟수를 결정하는 단계를 포함할 수 있다.
방법은 블라인드 서명된 노출 데이터에 기초하여 그룹 키를 생성하는 단계를 포함할 수 있다. 네트워크 데이터에 블라인드 서명하기 위해 블라인드 서명된 노출 데이터를 사용하면 사용자 프라이버시를 보호하면서 이러한 데이터의 부정 여부를 체크할 수 있다. 보다 일반적으로, 네트워크 데이터에 블라인드 서명하기 위해 블라인드 서명 기술을 사용하면 사용자 프라이버시를 보호하면서 이러한 데이터의 부정 여부를 체크할 수 있다. 네트워크 데이터를 포함하는 데이터 엘리먼트의 일부는 예를 들어 블라인드 서명된 노출 데이터에 기초하여 그룹 키를 생성하고 및/또는 다수의 엔티티로부터 부정 또는 공모를 방지하기 위해 다수의 엔티티에 의해 암호화됨으로써 블라인드 서명될 수 있다.
블라인드 서명된 노출 데이터는 블라인드 서명된 결합(된) 전환 데이터를 포함할 수 있으며, 이는 노출이 유효하다고 결정한 제1 시스템 및 전환을 등록하기로 결정한 제2 시스템에 의해 서명된 블라인드된 노출 데이터와, 상기 블라인드된 노출 데이터는 노출 데이터를 블라인드함으로써 생성되고; 그리고 제2 시스템에 의해 서명된 전환 데이터를 포함한다. 그룹 키를 생성하는 단계는 블라인드 서명된 결합 전환 데이터 및 디지털 컴포넌트에 대한 전환 데이터가 보고되는 보고 시스템에 대한 네트워크 주소의 조합을 사용하여 그룹 키를 생성하는 단계를 포함할 수 있다. 이러한 블라인드 서명된 데이터와 임계값 암호화 기술의 조합을 사용하면 부정을 방지하고 사용자 프라이버시를 보호할 수 있다. 블라인드 서명된 결합 전환 데이터는보고 시스템의 공개키를 사용하여 암호화될 수 있다. 애플리케이션과 관련된 데이터에는 애플리케이션의 고유 식별자를 포함할 수 있다. 임계값 암호화 기법은 다항식 기반 임계값 암호화 기법을 포함할 수 있다. 각 클라이언트 디바이스에서 실행되는 애플리케이션은 그룹 키로서, 적어도 노출 데이터를 포함하는 시드(seed)에 기초하여 다항식 함수를 생성하는 단계와; 비밀에 대응하는 값을 갖도록 다항식 함수에서 동일한 포인트를 선택하는 단계와; 그리고 개별 그룹 멤버 키로서, 애플리케이션과 관련된 데이터를 사용하여 다항식 함수에서 상기 동일한 포인트와 다른 제2 포인트를 선택하는 단계를 포함할 수 있다. 수신된 측정 데이터 엘리먼트의 그룹 멤버 키를 사용하여 노출 데이터를 복호화하는 단계는 제2 포인트을 사용하여 다항식 함수를 재생성하는 단계; 및 재생성된 다항식 함수에서 동일한 포인트를 식별하는 단계를 포함할 수 있다. 임계값 암호화 기법은 중국인 나머지 정리 기반 방식, 사전적 비밀 공유, 또는 검증 가능한 비밀 공유 중 하나를 포함할 수 있다.
본 명세서에 설명된 주제는 다음의 장점들 중 하나 이상을 실현하기 위해 특정 실시예에서 구현될 수 있다. 본 문서에 설명된 (t, n)-임계값 암호화 기법과 같은 임계값 암호화 기술은 측정되는 네트워크 데이터를 보고하는 다수의 클라이언트 디바이스의 다수의 애플리케이션(예를 들어, 브라우저 또는 네이티브 애플리케이션)간에 분할되는 그룹 키를 생성하기 위한 시드로서 네트워크 데이터(예를 들어, 노출 및/또는 전환 데이터) 또는 그 일부 또는 파생물을 사용할 수 있다. 이를 통해 상이한 클라이언트 디바이스에서 실행되는 각 애플리케이션은 애플리케이션(또는 클라이언트 디바이스) 간 협업없이 그리고 각 애플리케이션에 키를 배포하기 위한 중앙 시스템없이 동일한 네트워크 데이터를 사용하여 네트워크 데이터를 암호화하는 동일한 그룹 키를 생성할 수 있다. 대신, 네트워크 이벤트(예를 들어, 노출 및 관련 전환)가 발생하는 각 애플리케이션은 예를 들어 디지털 컴포넌트 및/또는 원격 서버로부터 수신하는 네트워크 데이터를 사용하여 네트워크 데이터를 암호화하는 그룹 키를 생성할 수 있다. .
각 애플리케이션은 충분한 수의 다른 그룹 멤버 키와 결합 될 때 그룹 키 또는 그룹 키의 다른 표현을 재생성하는데 사용될 수 있는 그룹 멤버 키를 생성하기 위해 상이한 정보를 사용할 수 있다. 예를 들어, 각 애플리케이션은 애플리케이션의 고유 식별자를 사용하여 각 애플리케이션이 애플리케이션 간 협업없이 각각의 다른 애플리케이션과 상이한 그룹 멤버 키를 생성하도록 자신의 그룹 멤버 키를 생성한다. 각 애플리케이션에 의한 이러한 상이한 그룹 멤버 키 생성은 그룹 멤버 키의 적어도 임계("t"개) 수이상인 그룹 멤버 키의 임의의 조합이 수신될 때 그룹 키가 재생성될 수 있도록 한다. 따라서, 네트워크 데이터는 적어도 t개의 그룹 멤버 키가 수신될 때 복호화될 수 있지만 t개 미만의 그룹 멤버 키가 수신되면 복호화 될 수 없다. 애플리케이션 간 협업없이 애플리케이션간에 이러한 비밀 공유를 활성화함으로써 사용자 디바이스 간의 통신을 차단하여 사용자 프라이버시를 보호하고, 이러한 통신에 의해 소비되는 대역폭을 줄이며, 단일 개인 키가 단순히 각 애플리케이션으로 전달되는 경우 발생할 수있는 측정 부정을 방지한다.
전술한 주제의 다양한 특징 및 장점은 도면과 관련하여 아래에서 설명된다. 추가 특징 및 이점은 본 명세서에 설명된 주제 및 청구 범위로부터 명백하다.
도 1은 디지털 컴포넌트 시스템이 디지털 컴포넌트를 배포하는 환경의 블록도이다.
도 2는 서명된 노출 데이터를 기록하기 위한 예시적인 프로세스를 나타내는 흐름도이다.
도 3은 전환 데이터를 기록하기 위한 예시적인 프로세스를 나타내는 흐름도이다.
도 4는 전환 데이터를 보고하기 위한 예시적인 프로세스를 나타내는 흐름도이다.
도 5는 전환 데이터를 보고하기 위한 다른 예시적인 프로세스를 나타내는 흐름도이다.
도 6은 노출 데이터를 복호화하기 위한 예시적인 프로세스를 나타내는 흐름도이다.
도 7은 예시적인 컴퓨터 시스템의 블록도이다.
다양한 도면에서 유사한 참조 번호 및 지정은 유사한 요소를 나타낸다.
일반적으로, 본 문서는 집계된 네트워크 측정을 결정할 때 부정(fraud, 사기)를 방지하기 위한 암호화 기술을 설명한다. 예를 들어, 본 문서에 설명된 기술은 디지털 컴포넌트들에 대한 집계된 노출 및 전환 측정을 결정할 때 부정을 방지할 수 있다. 본 문서에 설명된 암호화 기술은 또한 예를 들어 다른 엔티티들이 사용자들의 클라이언트 디바이스로부터 수신된 사용자 데이터를 추적하거나 집계하지 못하도록 방지함으로써 사용자 프라이버시를 보호할 수도 있다.
도 1은 디지털 컴포넌트 시스템(150)이 디지털 컴포넌트를 배포하는 환경(100)의 블록도이다. 예시적인 환경(100)은 근거리 통신망(LAN), 광역 통신망(WAN), 인터넷, 모바일 네트워크 또는 이들의 조합과 같은 데이터 통신 네트워크(105)를 포함한다. 네트워크(105)는 클라이언트 디바이스(110), 게시자(130), 웹 사이트(140), 디지털 컴포넌트 배포 시스템(150), 부정 탐지 시스템(170), 집계 시스템(180) 및 보고 시스템(190)을 연결한다. 예시적인 환경(100)은 많은 상이한 클라이언트 디바이스(110), 게시자(130) 및 웹 사이트(140)를 포함할 수 있다. 일부 구현에서, 환경(100)은 또한 다수의 디지털 컴포넌트 배포 시스템(150)을 포함할 수 있다.
웹 사이트(140)는 도메인 이름과 관련되고 하나 이상의 서버에 의해 호스팅되는 하나 이상의 리소스(145)이다. 예시적인 웹 사이트는 텍스트, 이미지, 멀티미디어 컨텐츠, 및 스크립트와 같은 프로그래밍 엘리먼트를 포함할 수 있는 HTML로 포멧된 웹 페이지 모음이다. 각 웹 사이트(140)는 웹 사이트(140)를 제어, 관리 및/또는 소유하는 엔티티인 게시자(130)에 의해 유지된다.
리소스(145)는 네트워크(105)를 통해 제공될 수 있는 임의의 데이터이다. 리소스(145)는 리소스(145)와 연관된 리소스 주소, 예를 들어 URL에 의해 식별된다. 리소스에는 HTML 페이지, 워드 프로세싱 문서 및 PDF 문서, 이미지, 비디오 및 피드 소스가 포함된다. 리소스에는 임베딩된 정보(예를 들어, 하이퍼 링크의 메타 정보) 및/또는 임베딩된 명령(예를 들어, 스크립트)을 포함할 수 있는 단어, 구, 이미지 및 사운드와 같은 컨텐츠가 포함될 수 있다.
클라이언트 디바이스(110)는 네트워크(105)를 통해 통신할 수 있는 전자 디바이스이다. 예시적인 클라이언트 디바이스(110)는 개인용 컴퓨터, 모바일 통신 디바이스, 예를 들어 스마트 폰 및 네트워크(105)를 통해 데이터를 송수신할 수 있는 다른 디바이스를 포함한다.
클라이언트 디바이스(110)는 일반적으로 네트워크(105)를 통한 데이터의 송수신을 용이하게 하기 위해 웹 브라우저 및/또는 네이티브 애플리케이션과 같은 애플리케이션(112)을 포함한다. 네이티브 애플리케이션은 특정 플랫폼 또는 특정 디바이스용으로 개발된 애플리케이션이다. 게시자(130)는 클라이언트 디바이스(110)에 네이티브 애플리케이션을 개발 및 제공하고, 예를 들어 다운로드 가능하게 만들 수 있다. 일부 구현에서, 클라이언트 디바이스(110)는 텔레비전 또는 다른 디스플레이에 연결하여 비디오를 텔레비전으로 스트리밍하는 스트리밍 디바이스와 같은 디지털 미디어 디바이스이다. 디지털 미디어 디바이스는 또한 비디오를 스트리밍하고 및/또는 리소스를 제시하는 웹 브라우저 및/또는 기타 애플리케이션을 포함할 수 있다.
웹 브라우저는 예를 들어, 클라이언트 디바이스(110)의 사용자가 웹 브라우저의 주소 표시줄(bar)에 리소스(145)에 대한 리소스 주소를 입력하거나 리소스 주소를 참조하는 링크를 선택하는 것에 응답하여. 게시자(130)의 웹 사이트(140)를 호스팅하는 웹 서버로부터 리소스(145)를 요청할 수 있다. 유사하게, 네이티브 애플리케이션은 게시자(130)의 원격 서버로부터 애플리케이션 컨텐츠를 요청할 수 있다.
일부 리소스(145), 애플리케이션 페이지, 또는 다른 애플리케이션 컨텐츠는 리소스(145) 또는 애플리케이션 페이지와 함께 디지털 컴포넌트를 제시하기 위한 디지털 컴포넌트 슬롯을 포함할 수 있다. 이 문서에서 사용되는 "디지털 컴포넌트"라는 용어는 디지털 컨텐츠 또는 디지털 정보의 개별 단위(예를 들어, 비디오 클립, 오디오 클립, 멀티미디어 클립, 이미지, 텍스트 또는 다른 컨텐츠 단위)를 지칭한다. 디지털 컴포넌트는 물리적 메모리 디바이스에 단일 파일 또는 파일 모음으로 전자적으로 저장될 수 있으며, 디지털 컴포넌트는 비디오 파일, 오디오 파일, 멀티미디어 파일, 이미지 파일 또는 텍스트 파일의 형태를 취할 수 있으며 광고가 디지털 컴포넌트의 한 유형이 되도록 광고 정보를 포함할 수 있다. 예를 들어, 디지털 컴포넌트는 웹 페이지의 컨텐츠 또는 애플리케이션(112)에 의해 제시되는 다른 리소스를 보충하기 위해 의도된 컨텐츠일 수 있다. 보다 구체적으로, 디지털 컴포넌트는 리소스 컨텐츠와 관련된 디지털 컨텐츠를 포함할 수 있다(예를 들어, 디지털 컴포넌트는 웹 페이지 컨텐츠와 동일한 주제 또는 관련 주제와 관련될 수 있음). 따라서 디지털 컴포넌트 배포 시스템(150)에 의한 디지털 컴포넌트의 제공은 웹 페이지 또는 애플리케이션 컨텐츠를 보충하고 일반적으로 향상시킬 수 있다.
애플리케이션(112)이 하나 이상의 디지털 컴포넌트 슬롯을 포함하는 리소스(145)(또는 애플리케이션 컨텐츠)를 로드할 때, 애플리케이션(112)은 디지털 컴포넌트 배포 시스템(150)으로부터 각 슬롯에 대한 디지털 컴포넌트를 요청할 수 있다. 디지털 컴포넌트 배포 시스템(150)은 차례로 디지털 컴포넌트 제공자(160)로부터 디지털 컴포넌트를 요청할 수 있다. 디지털 컴포넌트 제공자(160)는 리소스(145)와 함께 프리젠테이션하기 위해 디지털 컴포넌트를 제공하는 엔티티이다.
일부 경우, 디지털 컴포넌트 배포 시스템(150)은 또한 하나 이상의 디지털 컴포넌트 파트너(157)로부터 디지털 컴포넌트를 요청할 수 있다. 디지털 컴포넌트 파트너(157)는 디지털 컴포넌트 요청에 응답하여 디지털 컴포넌트 제공자(160)를 대신하여 디지털 컴포넌트(129)를 선택하는 엔티티이다.
디지털 컴포넌트 배포 시스템(150)은 다양한 기준에 기초하여 각 디지털 컴포넌트 슬롯에 대한 디지털 컴포넌트를 선택할 수 있다. 예를 들어, 디지털 컴포넌트 배포 시스템(150)은 디지털 컴포넌트 제공자(160) 및/또는 디지털 컴포넌트 파트너(157)로부터, 리소스(145)(또는 애플리케이션 컨텐츠)와의 관련성, 디지털 컴포넌트의 성능(예를 들어, 사용자가 디지털 컴포넌트와 상호 작용하는 비율)에 기초하여 디지털 컴포넌트를 선택할 수 있다. 그런 다음 디지털 컴포넌트 배포 시스템(150)은 리소스(145) 또는 다른 애플리케이션 컨텐츠와 함께 프리젠테이션하기 위해 상기 선택된 디지털 컴포넌트(들)를 클라이언트 디바이스(110)에 제공할 수 있다.
애플리케이션(112)이 디지털 컴포넌트를 제시할 때, 애플리케이션(112)(브라우저일 수 있음)은 디지털 컴포넌트의 프리젠테이션을 위한 노출 데이터(114)를 저장할 수 있다. 디지털 컴포넌트의 특정 프리젠테이션에 대한 노출 데이터(114)는 디지털 컴포넌트에 대한 랜딩 페이지의 URL 또는 도메인(예를 들어, 디지털 컴포넌트에 의해 링크된 페이지 및 사용자가 디지털 컴포넌트를 클릭하거나 상호 작용할 때 애플리케이션/브라우저가 사용자에게 페이지를 제공함), 디지털 컴포넌트에 대한 하나 이상의 식별자, 노출과 관련된 이벤트-레벨 데이터, 노출 데이터가 클라이언트 디바이스(110)로부터 삭제될 시기를 지정하는 만료 시간 및/또는 디지털 컴포넌트에 대한 전환 보고가 전송될 URL 또는 도메인을 포함할 수 있다. 이 데이터는 예를 들어 디지털 컴포넌트의 메타 데이터 또는 디지털 컴포넌트의 앵커 태그와 같이 디지털 컴포넌트에 의해 제공될 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 디지털 컴포넌트의 각 노출에 대한 원시 노출 데이터를 저장하거나 저장하는 것 외에도, 애플리케이션(112)은 부정 탐지 시스템(170)에 의해 블라인드 서명된 노출 데이터를 저장할 수 있다.
애플리케이션(112)은 또한 전환(conversion)이 검출되는 것에 응답하여 전환 데이터(116)를 저장할 수 있다. 디지털 컴포넌트에 대한 전환은 디지털 컴포넌트가 사용자에게 제시되거나 사용자에 의해 선택한 후 지정된 사용자 액션의 완료이다. 전환을 위한 전환 데이터(116)는 일부 전환이 다수의 유형을 가질 수 있으므로 전환 유형을 나타내는 데이터를 포함할 수 있다. 전환 유형은 전환이 완료된 후 후속 액션을 지정할 수 있다. 예를 들어, 전환은 온라인 쇼핑 카트에 아이템을 추가하는 것일 수 있다. 이 예에서 첫 번째 유형의 전환은 체크 아웃하지 않고(예를 들어, 구매를 완료하지 않고) 아이템을 추가하는 것일 수 있으며, 제2 유형의 전환은 체크 아웃시 아이템을 추가하는 것일 수 있다. 아래에서 자세히 설명하는 바와같이, 전환을 위한 전환 데이터는 전환 유형을 나타내는 하나 이상의 비트 세트일 수 있고, 애플리케이션은 디지털 컴포넌트 배포 시스템(150)(또는 다른 적절한 시스템)에 의해 블라인드 서명된 전환 데이터를 저장할 수 있다.
부정 탐지 시스템(170)은 클라이언트 디바이스(110)로부터 수신된 부정 신호를 평가하여 노출 또는 전환이 유효한지 또는 부정(사기)인지를 결정할 수 있다. 부정 신호는 애플리케이션에 따라 다를 수 있으며 구현에 따라 다를 수 있다. 애플리케이션(112)(또는 클라이언트 디바이스(110)의 운영 체제)은 디지털 컴포넌트가 부정 탐지 신호를 수집하고 부정 탐지 시스템(170)에 부정 탐지 신호를 제공하기 위해 애플리케이션(112)(또는 클라이언트 디바이스(110)의 운영 체제)을 호출할 수 있게 하는 API를 포함할 수 있다. 부정 탐지 신호에 더하여, 애플리케이션(112)은 부정 탐지 시스템(170)에 노출에 대한 블라인드 노출 데이터를 전송할 수 있다. 만약 부정 탐지 시스템(170)이 노출이 유효하다고 결정하면, 부정 탐지 시스템(170)은 블라인드 노출 데이터에 서명하고 서명된 블라인드 노출 데이터를 애플리케이션(112)에 제공할 수 있다. 블라인드 노출 데이터를 생성하고 블라인드 노출 데이터에 서명하는 기술의 예는 아래에 설명되어 있다.
집계 시스템(180)은 클라이언트 디바이스(110)로부터 수신된 데이터에 기초하여 집계된 네트워크 측정을 생성할 수 있다. 다음 설명에서, 측정 데이터 엘리먼트를 생성하고 제공하기 위한 기술은 웹 브라우저 또는 네이티브 애플리케이션일 수 있는 애플리케이션(112)에 의해 수행되는 것으로 설명된다. 그러나, 일부 구현에서, 클라이언트 디바이스(110)의 운영 체제가 측정 데이터 엘리먼트를 생성하고 전송할 수 있다. 이러한 구현에서, 클라이언트 디바이스(110)상의 웹 브라우저(들) 및 애플리케이션(들)은 운영 체제에 노출 및 전환을 보고하도록 구성될 수 있다. 운영 체제는 애플리케이션(112)에 의해 수행되는 것으로 후술되는 노출 및 전환을 보고하기 위한 각각의 동작을 수행할 수 있다.
클라이언트 디바이스(110)상의 애플리케이션(112)은 네트워크 데이터를 나타내는 암호화된 데이터를 포함하는 측정 데이터 엘리먼트를 집계 시스템(180)에 제공할 수 있다. 네트워크 데이터에는 각 전환에 대한 노출 데이터 및/또는 전환 데이터가 포함될 수 있다. 예를 들어, 애플리케이션(112)은 전환 데이터가 클라이언트 디바이스(110)에 저장되는 각 전환에 대한 측정 데이터 엘리먼트를 생성하여 집계 시스템(180)으로 전송할 수 있다. 집계된 네트워크 측정은 하나 이상의 디지털 컴포넌트 각각에 대해, 다수의 클라이언트 디바이스(110)에 걸친 디지털 컴포넌트에 대한 총 전환 횟수를 포함할 수 있다.
아래에서 더 자세히 설명되는 바와 같이, 애플리케이션(112)은 측정 데이터 엘리먼트에서 데이터를 생성하기 위해 (t, n) 임계 방식을 사용할 수 있다. 일부 구현에서, 애플리케이션(112)이 전환을 검출하거나 전환을 위한 전환 데이터를 수신할 때, 애플리케이션(112)은 노출 데이터 및 전환을 위한 전환 데이터에 기초하여 그룹 키(예를 들어, 다항식 함수)를 생성한다. 그런 다음 애플리케이션은 그룹 키의 일부를 나타내며 동일한 노출 및 전환 쌍에 대한 충분한 수의 그룹 멤버 키가 수신된 경우에만 그룹 키를 재생성하는데 사용될 수 있는 그룹 멤버 키를 생성할 수 있다. 이 예에서, 전환에 대한 측정 데이터 엘리먼트에는 애플리케이션에 의해 생성된 그룹 멤버 키와 노출 및 전환 쌍에 대응하는 태그가 포함될 수 있다. 각각의 고유한 노출 및 전환 쌍은 대응하는 고유 태그를 가질 수 있어서, 집계 시스템(180)은 태그를 사용하여 각 노출 및 전환 쌍에 대한 측정 데이터 엘리먼트를 집계할 수 있다.
(t, n) 임계값 암호화 기법에서, 집계 서버(180)는 노출 및 전환 데이터를 복호화(해독)할 수 있도록 동일한 노출 및 전환 쌍에 대해 적어도 t개의 그룹 멤버 키를 수신해야할 것이다. 만약 t개 미만의 그룹 멤버 키가 수신되면, 집계 서버(180)는 노출 및 전환 데이터를 복호화할 수 없다. 동일한 노출 및 전환 쌍에 대해 적어도 t개의 측정 데이터 엘리먼트가 클라이언트 디바이스(110)로부터 수신되면, 집계 시스템(180)은 아래에서 더 상세히 설명되는 바와 같이 적어도 t개의 그룹 멤버 키로부터 그룹 키를 결정하고 그룹 키로부터 노출 및 전환 데이터를 획득할 수 있다.
집계 시스템(180)은 노출 및 전환 쌍에 대한 노출 데이터 및 전환 데이터를 포함하는 수신된 측정 데이터 엘리먼트의 수에 기초하여 노출 및 전환 쌍에 대한 전환의 양을 결정할 수 있다. 예를 들어, 적어도 t개의 그룹 멤버 키를 사용하여 노출 및 전환 데이터를 획득한 후, 집계 시스템(180)은 노출 및 전환 쌍에 대해 수신된 그룹 멤버 키의 카운트 수를 전환 수량으로 결정할 수 있다. 집계 시스템(180)은 노출 데이터, 전환 데이터 및 전환 수량을 보고 시스템(190)으로 보고할 수 있으며, 이는 차례로 노출 및 전환 데이터에 해당하는 디지털 컴포넌트의 보고 URL에 해당하는 보고 도메인으로 구현될 수 있다.
도 2는 서명된 노출 데이터를 기록하기 위한 예시적인 프로세스(200)를 도시하는 흐름도이다. 프로세스(200)는 예를 들어 웹 사이트(140), 디지털 컴포넌트 배포 시스템(150) 및 부정 탐지 시스템(170)과 상호 작용하는 클라이언트 디바이스(110)에 의해 구현될 수 있다. 프로세스(200)의 동작들은 또한 비-일시적 컴퓨터 판독 가능 매체에 저장된 명령들로서 구현될 수 있고, 하나 이상의 데이터 처리 장치에 의한 명령의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(200)의 동작들을 수행하게 할 수 있다.
클라이언트 디바이스는 컨텐츠를 페치(인출)한다(202). 클라이언트 디바이스(110)에서 실행되는 애플리케이션(112)은 원격 서버, 예를 들어 하나 이상의 웹 사이트(140)를 호스팅하는 웹 서버 또는 하나 이상의 네이티브 애플리케이션에 대한 컨텐츠를 호스팅하는 애플리케이션 컨텐츠 서버로부터 컨텐츠를 요청할 수 있다. 이 예에서, 애플리케이션(112)은 웹 사이트(140)로부터 리소스(145)를 요청한다. 사용자는 원격 서버에 의해 호스팅되는 웹 사이트(140)를 가리키는 URL을 입력하거나 선택할 수 있다. 예를 들어, 웹 브라우저와 같은 애플리케이션(112)은 URL에 의해 식별된 리소스(145)에 대한 요청을 생성하고 요청을 원격 서버로 전송할 수 있다. 요청은 리소스(145)의 URL을 포함할 수 있다.
웹 사이트(140)는 클라이언트 디바이스로 컨텐츠를 반환한다(204). 컨텐츠는 URL로 식별되는 웹 페이지 또는 다른 리소스(145)일 수 있다. 애플리케이션(112)은 클라이언트 디바이스(206)의 디스플레이에 컨텐츠를 렌더링할 수 있다.
컨텐츠는 하나 이상의 디지털 컴포넌트 슬롯을 포함할 수 있다. 디지털 컴포넌트 슬롯은 디지털 컴포넌트 배포 시스템(150)으로부터 수신된 디지털 컴포넌트로 채워질 수 있다. 디지털 컴포넌트 슬롯(또는 리소스(145))은 애플리케이션(112)이 디지털 컴포넌트(들)에 대한 디지털 컴포넌트 배포 시스템(150)으로의 요청을 생성하게 할 수 있는 컴퓨터 판독 가능 명령들을 포함할 수 있다.
클라이언트 디바이스(110)는 하나 이상의 디지털 컴포넌트를 요청한다(208). 예를 들어, 애플리케이션(112)은 디지털 컴포넌트 슬롯(들) 또는 리소스(145)의 컴퓨터 판독 가능 명령들을 실행하는 것에 응답하여 요청을 생성할 수 있다. 애플리케이션(112)은 디지털 컴포넌트 배포 시스템(150)으로 요청을 전송할 수 있다.
디지털 컴포넌트 배포 시스템(150)은 하나 이상의 디지털 컴포넌트를 클라이언트 디바이스(210)로 반환한다. 상술한 바와 같이 디지털 컴포넌트 배포 시스템(150)은 디지털 컴포넌트 세트로부터, 디지털 컴포넌트가 제시될 리소스(145)(또는 애플리케이션 컨텐츠)와의 관련성(예를 들어, 이 데이터는 요청에 포함될 수 있음), 디지털 컴포넌트의 성능 및/또는 기타 적절한 기준과 같은 다양한 기준에 기초하여 디지털 컴포넌트를 선택할 수 있다. 디지털 컴포넌트 배포 시스템(150)은 디지털 컴포넌트의 세트에 포함시키기 위해, 디지털 컴포넌트 제공자(160) 및/또는 디지털 컴포넌트 파트너(157)로부터 디지털 컴포넌트(또는 디지털 컴포넌트에 대한 배포 기준)를 요청할 수 있다. 디지털 컴포넌트(들)를 선택한 후, 디지털 컴포넌트 배포 시스템(150)은 클라이언트 디바이스(110)에 디지털 컴포넌트(들)를 전송할 수 있다.
클라이언트 디바이스(110)는 디지털 컴포넌트 배포 시스템(150)으로부터 수신된 디지털 컴포넌트(들)를 렌더링한다(212). 애플리케이션(112)은 리소스(145) (또는 애플리케이션 컨텐츠)의 디지털 컴포넌트 슬롯(들)에 디지털 컴포넌트(들)를 렌더링할 수 있다. 디지털 컴포넌트(들)의 렌더링이 컨텐츠가 렌더링된 후 발생하는 것으로 도 2에 도시되어 있지만, 애플리케이션(112)은 예를 들어, 디지털 컴포넌트 슬롯(들)에 디지털 컴포넌트(들)와 함께 웹 페이지를 로딩함으로써 컨텐츠 및 디지털 컴포넌트(들)를 동시에 렌더링할 수 있다.
클라이언트 디바이스(110)는 컨텐츠와 함께 제시된 각 디지털 컴포넌트에 대한 노출 데이터를 저장한다(214). 전술한 바와같이, 디지털 컴포넌트의 특정 프레젠테이션에 대한 노출 데이터에는 디지털 컴포넌트에 대한 랜딩 페이지의 URL 또는 도메인(예를 들어, 디지털 컴포넌트에 의해 링크된 페이지), 디지털 컴포넌트에 대한 하나 이상의 식별자, 노출 데이터가 클라이언트 디바이스(110)에서 삭제되는 시기 및/또는 디지털 컴포넌트에 대한 전환 보고가 전송될 보고 URL 또는 도메인(예를 들어, 보고 시스템(190)에 대한 보고 URL)이 포함될 수 있다.
일부 구현에서, 애플리케이션(112)은 클라이언트 디바이스(110)(또는 전술한 바와 같은 운영 체제)에 컨텐츠와 함께 제공되는 각각의 디지털 컴포넌트를 등록한다. 예를 들어, 디지털 컴포넌트를 렌더링하는 것은 디지털 컴포넌트가 클라이언트 디바이스(110)에 등록되게 할 수 있다. 디지털 컴포넌트에는 페이로드(예를 들어, 비-가시적 데이터) 및 컴퓨터 판독 가능 명령들이 포함될 수 있다. 페이로드에는 위에서 설명한 노출 데이터가 포함될 수 있다. 컴퓨터 판독 가능 명령들은 디지털 컴포넌트가 애플리케이션(112)에 등록되게 할 수 있다. 예를 들어, 디지털 컴포넌트는 애플리케이션(112) 또는 애플리케이션(112) 또는 클라이언트 디바이스(110)의 전환 엔진에 의해 디지털 컴포넌트에 노출된 API에 대한 호출을 포함할 수 있다. API에 대한 호출에는 디지털 컴포넌트의 페이로드가 포함될 수 있다. 애플리케이션(112)은 등록 테이블에 데이터를 저장할 수 있다.
애플리케이션(112)은 컨텐츠와 함께 제시되는 각 디지털 컴포넌트에 대한 노출 데이터를 블라인드한다(216). 애플리케이션(112)은 블라인딩 기술을 사용하여 디지털 컴포넌트에 대한 노출 데이터를 블라인드할 수 있다. 일반적으로 블라인 딩 기술은 노출 데이터에 블라인딩 인자를 적용하여 실제 노출 데이터를 숨기는 블라인드된 노출 데이터를 생성하여, 그 블라인드된 노출 데이터를 수신하는 엔티티들이 블라인딩 기술 및 상기 블라인드된 노출 데이터를 생성하는데 사용된 파라미터들/키들에 대한 지식이 없는 실제 노출 데이터를 결정할 수 없도록 할 수 있다. 일부 구현에서, 애플리케이션(112)은 디지털 컴포넌트에 대한 노출 데이터를 블라인드하기 위해 IETF(Internet Engineering Task Force) 드래프트 표준 프로토콜인 VOPRF(Verifiable, Oblivious Pseudorandom Function) 프로토콜을 사용하여 디지털 컴포넌트에 대한 노출 데이터를 블라인드한다. 다른 적절한 블라인드 서명 기술이 또한 사용될 수 있다.
클라이언트 디바이스(110) 또는 애플리케이션(112)은 부정 탐지 신호를 수집한다(218). 전술한 바와 같이, 애플리케이션(112)은 디지털 컴포넌트가 애플리케이션(112)을 호출하여 부정 탐지 신호를 수집하고 부정 탐지 신호를 부정 탐지 시스템(170)으로 제공할 수 있게 하는 API를 포함할 수 있다.
애플리케이션(112)은 컨텐츠 및 부정 탐지 신호와 함께 제시되는 각 디지털 컴포넌트에 대한 블라인드된 노출 데이터를 부정 탐지 시스템(170)으로 전송한다(220). 예를 들어, 애플리케이션(112)은 부정 탐지 시스템(170)으로 각각의 디지털 컴포넌트에 대해, 디지털 컴포넌트의 노출이 유효한지 또는 부정(사기)인지를 결정하기 위한 요청을 전송할 수 있다. 각 요청은 주어진 디지털 컴포넌트에 특정되거나 컨텐츠와 함께 제시되는 모든 디지털 컴포넌트에 대해 단일 요청이 전송될 수 있다.
요청에는 블라인드된 노출 데이터 및 부정 감지 신호가 포함될 수 있다. 노출 데이터가 블라인드됨에 따라, 부정 탐지 시스템(170)은 실제 노출 데이터에 액세스할 수 없다. 이것은 부정 탐지 시스템(170)이 블라인드된 노출 데이터를 전송한 클라이언트 디바이스(110)의 사용자의 사용자 데이터를 획득, 수집 또는 추적하는 것을 방지한다. 부정 탐지 시스템(170)은 부정 탐지 신호를 평가하여 디지털 컴포넌트(들)의 노출(들)이 유효한지 또는 부정인지를 결정할 수 있다. 따라서, 부정 탐지 시스템(170)은 부정 감지 신호에 기초하여, 노출 이벤트가 유효한지 여부를 결정할 수 있지만, 이벤트의 내용을 결정할 수 없거나 평문 노출 데이터에 액세스할 수 없다.
부정 탐지 시스템(170)이 디지털 컴포넌트의 노출이 유효하지 않다고 결정하면(예를 들어, 사기성), 부정 탐지 시스템(170)은 요청을 무시하거나 노출이 유효하지 않음을 나타내는 데이터로 요청에 응답할 수 있다. 부정 탐지 시스템(170)이 디지털 컴포넌트의 노출이 유효하다고 결정하면, 부정 탐지 시스템(170)은 디지털 컴포넌트에 대한 노출 데이터에 블라인드 서명한다(222). 부정 탐지 시스템(170)은 블라인드 서명 기술을 사용하여 블라인드된 노출 데이터에 블라인드 서명할 수 있다. 일부 구현에서, 블라인드 서명 기술은 CloudFlareTM의 PrivacyPass 또는 Google ChromeTM 브라우저의 트러스트 토큰(trust token)일 수 있으며, 둘 다 IETF VOPRF 드래프트 표준을 기반으로 한다.
일반적으로, 블라인드 서명 기술은 실제 노출 데이터를 알지 못해도, 예를 들어 비밀 블라인드 서명 키를 사용하여 블라인드된 데이터의 디지털 서명을 가능하게 하여, 결과적인 블라인드 서명이 원래의 비-블라인드된 노출 데이터에 대해 검증될 수 있도록 한다. 일부 구현에서, 부정 탐지 시스템(170)은 부정 탐지 시스템(170)의 블라인드 서명 키를 사용하여 VOPRF 프로토콜을 사용하여 블라인드된 노출 데이터에 블라인드 서명한다. 부정 탐지 시스템(170)은 다른 엔티티가 블라인드 서명 키에 액세스할 수 없도록 이 블라인드 서명 키를 기밀로 유지할 수 있다.
부정 탐지 시스템(170)은 블라인드 서명된 노출 데이터를 클라이언트 디바이스로 전송한다(224). 예를 들어, 부정 탐지 시스템(170)은 클라이언트 디바이스(110) 또는 애플리케이션(112)에 의해 시작된 요청에 응답하여 블라인드 서명된 노출 데이터를 클라이언트 디바이스(110) 또는 애플리케이션(112)에 전송할 수 있다. 애플리케이션(112)은 예를 들어 VOPRF 프로토콜을 사용하여 블라인드된 노출 데이터의 서명을 확인할 수 있다. 유사하게, 애플리케이션(112)은 블라인드 서명된 노출 데이터(226)를 블라인드 해제할 수 있다. 애플리케이션(112)은 또한 블라인드된 노출 데이터에 블라인드 서명하는데 사용되었던 VOPRF 프로토콜을 사용하여 블라인드 서명된 노출 데이터를 블라인드 해제할 수 있다. 애플리케이션(110)은 예를 들어, 서명된 노출 데이터를 클라이언트 디바이스(110)에 저장하고 클라이언트 디바이스(110)의 등록 테이블에 노출을 등록함으로써 서명된 노출 데이터를 기록한다.
도 3은 전환 데이터를 기록하기 위한 예시적인 프로세스(300)를 도시하는 흐름도이다. 프로세스(300)는 예를 들어 웹 사이트(140) 및 디지털 컴포넌트 배포 시스템(150)과 상호 작용하는 클라이언트 디바이스(110)에 의해 구현될 수 있다. 프로세스(300)의 동작들은 또한 비-일시적 컴퓨터 판독 가능 매체에 저장된 명령들로서 구현될 수 있고, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치가 프로세스(300)의 동작들을 수행하게 할 수 있다.
클라이언트 디바이스(110)는 컨텐츠를 페치한다(302). 예를 들어, 클라이언트 디바이스(110)에서 실행되는 애플리케이션(112)(예를 들어, 웹 브라우저 또는 네이티브 애플리케이션)은 사용자가 디지털 컴포넌트를 선택하거나 클릭하는 것과 같은 상호 작용에 응답하여 디지털 컴포넌트에 의해 링크된 랜딩 페이지를 요청할 수 있다. 애플리케이션(112)은 랜딩 페이지를 포함하는 웹 사이트(140)를 호스팅하는 웹 서버로 요청을 전송할 수 있다.
웹 사이트(140)는 클라이언트 디바이스(304)로 컨텐츠를 반환한다. 컨텐츠는 URL로 식별되는 웹 페이지 또는 기타 리소스(145)일 수 있다. 애플리케이션(112)은 클라이언트 디바이스의 디스플레이에 컨텐츠를 렌더링할 수 있다. 전환에 필요한 사용자 상호 작용의 양과 특성은 그들의 필요에 따라 개별 디지털 컴포넌트 제공자에 의해 정의된다. 실제로 전환이 발생하는 경우, 랜딩 페이지 또는 랜딩 페이지를 소유하는 웹 사이트는 애플리케이션(브라우저)에 전환 발생을 알린다. 다른 구현에서, 사용자가 프로모션된 앱을 다운로드하고 설치하는 모바일 앱용 앱 스토어 또는 웹 앱용 웹 스토어에서 전환이 발생할 수 있다. 이것은 일반적으로 클릭-투-인스톨 전환으로 지칭된다. 이러한 경우, 앱 스토어 또는 웹 스토어는 전환 발생에 대한 전환 데이터를 보고하는 운영 체제, 브라우저 또는 애플리케이션에 알릴 수 있다. 그러나, 다른 구현에서, 전환은 사용자가 디지털 컴포넌트 제공자로의 전화 호출일 수 있다. 스마트 폰의 운영 체제는 전화 호출을 인식하고 전환을 측정할 수 있다(일반적으로 클릭-투-콜 전환이라고 함).
클라이언트 디바이스(110)는 전환 데이터를 페치하거나 수신한다(306). 일부 구현에서, 컨텐츠는 전환 픽셀을 포함한다. 전환 픽셀은 전환 보고가 생성되어야 하는지 여부(예를 들어, 전환 발생 여부 및 전환 기록 여부)를 결정하는 시스템에 대한 URL을 포함할 수 있다. 이 예에서, 전환 보고가 생성되어야 하는지 여부를 결정하는 시스템은 디지털 컴포넌트 배포 시스템(150)이다.
전환 픽셀은 애플리케이션(112)이 데이터를 디지털 컴포넌트 배포 시스템(150)으로 전송하게 할 수 있다. 예를 들어, 전환 픽셀은 애플리케이션(112)이 컨텐츠(예를 들어, 랜딩 페이지)가 클라이언트 디바이스(110)의 등록 테이블에 등록되었는지 여부를 결정하게 하는 컴퓨터 판독 가능 명령들을 포함할 수 있다. 전술한 바와 같이, 애플리케이션(112)은 애플리케이션(112)에 의해 제시된 디지털 컴포넌트에 대한 노출 데이터를 등록 테이블에 기록할 수 있다. 디지털 컴포넌트에 대한 노출 데이터에는 디지털 컴포넌트에 대한 랜딩 페이지의 URL 또는 도메인이 포함될 수 있다. 애플리케이션(112)은 디지털 컴포넌트와 상호 작용하는 사용자에 응답하여 수신된 컨텐츠로서 제시된 랜딩 페이지의 URL에 대한 등록 테이블을 검색할 수 있다. 클릭-투-인스톨 전환의 경우, 랜딩 페이지의 URL은 앱 스토어/웹 스토어에 나열된 앱을 가리키는 딥 링크 URL이다. 클릭- 투-콜 전환의 경우, URL은 디지털 컴포넌트 제공자의 전화 번호를 인코딩한다.
애플리케이션(112)이 등록 테이블에서 랜딩 페이지의 URL을 찾으면, 클라이언트 디바이스(110)는 랜딩 페이지의 URL과 일치하는 URL을 포함하는 디지털 컴포넌트에 대한 블라인드 서명된 노출 데이터를 디지털 컴포넌트 시스템(150)(또는 전환 보고를 트리거할 시기를 결정하는 다른 시스템)으로 전송할 수 있다. 전술한 바와 같이 블라인드 서명된 노출 데이터는 블라인드된 노출 데이터와 블라인드된 노출 데이터의 블라인드 서명을 포함한다. 일부 구현에서, 애플리케이션(112)은 전환 픽셀 요청의 메시지 헤더에 블라인드 서명된 노출 데이터를 포함할 수 있다.
디지털 컴포넌트 배포 시스템(150)은 전환 보고를 트리거할지 여부를 결정한다(308). 디지털 컴포넌트 배포 시스템(150)은 블라인드 서명된 노출 데이터 및 컨텐츠(예를 들어, 랜딩 페이지)와의 사용자 상호 작용을 수신하는 것에 기초하여 전환 보고를 트리거할지 여부를 결정할 수 있다. 예를 들어, 사용자에 의해 상호 작용하는 디지털 컴포넌트의 게시자는 디지털 컴포넌트가 클라이언트 디바이스(110)에 제시된 후, 예를 들어 랜딩 페이지에서 특정 사용자 인터페이스 컨트롤을 선택하는 것과 같은 전환 이벤트를 정의할 수 있다. 디지털 컴포넌트 배포 시스템(150)은 랜딩 페이지(또는 클라이언트 디바이스(110))를 호스팅하는 웹 서버와 상호 작용하여 전환 이벤트가 발생했는지 여부를 결정할 수 있다.
전환 이벤트가 발생하면, 디지털 컴포넌트 배포 시스템(150)은 디지털 컴포넌트에 대한 전환 보고를 트리거하기로 결정할 수 있다. 전환 이벤트가 검출되지 않으면, 디지털 컴포넌트 배포 시스템(150)은 디지털 컴포넌트에 대한 전환 보고를 트리거하지 않기로 결정할 수 있다.
디지털 컴포넌트 배포 시스템(150)이 디지털 컴포넌트에 대한 전환 보고를 트리거하기로 결정하면, 디지털 컴포넌트 배포 시스템(150)은 (i) 이미 블라인드 서명된 노출 데이터와 (ii) 전환을 위한 전환 데이터의 조합에 블라인드 서명한다(310). 이 전환 데이터는 전환 유형, 예를 들어, 전환이 완료된 후 후속 액션을 나타내는 하나 이상의 비트 세트일 수 있다. 예를 들어, 단일 비트는 카트(장바구니)에 아이템을 추가하는 전환 이벤트가 발생된 후 사용자가 체크 아웃했는지 여부를 지정하는데 사용될 수 있다. 이 예에서, 체크 아웃이 발생하지 않은 경우 비트의 값은 0이고 체크 아웃이 발생한 경우 비트의 값은 1일 수 있다. 다른 구현에서, 전환 데이터는 사용자가 전환의 일부로 소비/구매한 금액을 인코딩할 수 있다.
디지털 컴포넌트 배포 시스템(150)은 전환이 발생한 웹 사이트/앱 스토어/웹 스토어의 소유자를 대신하여 디지털 컴포넌트 배포 시스템(150)의 비밀 블라인드 서명 키를 사용하여 블라인드 서명된 노출 데이터와 전환 데이터의 조합에 블라인드 서명할 수 있다. 간결하게 하기 위해, 블라인드 서명된 노출 데이터와 전환 데이터의 이러한 블라인드 서명된 조합은 블라인드 서명된 결합(된) 전환 데이터라고 지칭한다. 일부 구현에서, 전환 데이터는 블라인드 서명된 노출 데이터의 히든 비트로서 포함된다. 예를 들어, 블라인드 서명된 노출 데이터는 비트 세트의 형태일 수 있으며 전환 데이터는 히든 비트로 지정될 수 있다. 디지털 컴포넌트 배포 시스템(150)은 자신의 비밀 블라인드 서명 키를 사용하여 이러한 비트 및 히든 비트의 조합을 블라인드 서명할 수 있다. 이때, 블라인드된 노출 데이터는 부정 탐지 서버(170)의 블라인드 서명 키와 디지털 컴포넌트 배포 시스템(150)의 블라인드 서명 키를 사용하여 두 번 블라인드 서명된다(예를 들어, 이중 서명된 노출 데이터). 전환 데이터는 디지털 컴포넌트 배포 시스템(150)의 블라인드 서명 키를 사용하여 한번 블라인드 서명된다.
일부 구현에서, 디지털 컴포넌트 배포 시스템(150)은 VOPRF 프로토콜을 사용하여 블라인드 서명된 노출 데이터 및 전환 데이터에 블라인드 서명한다. 디지털 컴포넌트 배포 시스템(150)은 다른 엔티티가 블라인드 서명 키에 액세스할 수 없도록 자신의 블라인드 서명 키를 기밀로 유지할 수 있다. 디지털 컴포넌트 배포 시스템(150)의 블라인드 서명 키는 블라인드된 노출 데이터에 블라인드 서명하는데 사용된 부정 탐지 시스템(170)의 블라인드 서명 키와 다르다.
디지털 컴포넌트 배포 시스템(150)은 유효한 전환의 발생을 클라이언트 디바이스(110)에 통지한다. 일부 구현에서, 디지털 컴포넌트 배포 시스템(150)은 클라이언트 디바이스(110)에, 보고 도메인으로 리디렉션을 전송한다(312). 예를 들어, 리디렉션은 보고 시스템(190)의 도메인에 대한 URL을 포함할 수 있다. 리디렉션은 또한 블라인드 서명된 결합 전환 데이터를 포함할 수 있다.
일부 구현에서, 리디렉션은 애플리케이션(112)에 의해 검출될 수 있는 특정 형태(form)(예를 들어, 노출 및 전환을 보고하는 네이티브 애플리케이션, 브라우저 또는 운영 체제)를 갖는다. 이 특정 형태에는 보고 도메인의 URL 및 상기 블라인드 서명된 결합 전환 데이터가 포함된 메타 데이터가 포함될 수 있다. 메타 데이터는 보고 도메인의 URL의 질의 파라미터로 지정될 수 있다.
클라이언트 디바이스(110)에서 실행되는 애플리케이션(112)은 리디렉션을 수신하고 특정 형태의 리디렉션을 검출한다(314). 애플리케이션(112)은 특정 형태를 갖는 리디렉션을 전환을 보고하기 위한 측정 데이터 엘리먼트를 생성하기 위한 특별 요청으로 취급할 수 있다.
유효한 전환의 발생을 통지받은 것에 응답하여, 예를 들어 리디렉션이 특정 형태를 갖는 것을 검출할 때, 애플리케이션(112)은 블라인드 서명된 결합 전환 데이터의 서명을 검증한다(316). 예를 들어, VOPRF 프로토콜이 상기 서명된 노출 데이터와 전환 데이터의 조합에 블라인드 서명하는데 사용된 경우, VOPRF 프로토콜은 블라인드 서명된 전환 데이터의 서명을 검증하는데 사용될 수 있다. 애플리케이션(112)은 유사하게 전환 데이터를 블라인드 해제(unblind)할 수 있다(318). 예를 들어, 애플리케이션(112)은 VOPRF 프로토콜을 사용하여 전환 데이터의 블라인드를 해제할 수 있다. 그런 다음, 애플리케이션(112)은 예를 들어, 전환 데이터를 클라이언트 디바이스(110)에 전환 기록으로서 저장함으로써 상기 블라인드 해제된 전환 데이터를 기록할 수 있다. 애플리케이션(112)은 또한 전환 기록에, 블라인드 서명된 결합 전환 데이터를 저장할 수 있다.
일부 구현에서, 전환을 보고하기 위해 측정 데이터 엘리먼트를 생성하고 전환의 검출시 측정 데이터 엘리먼트를 전송하는 대신, 애플리케이션(112)은 측정 데이터 엘리먼트를 전송하기 전에 랜덤 지연을 추가하고 및/또는 측정 데이터 엘리먼트를 배치(batch)로 전송할 수 있다. 이를 통해 시간 기반 공격을 방지하고 사용자 프라이버시를 더 보호할 수 있다. 예를 들어, 보고를 지연함으로써, 엔티티는 보고를 가로채서 방금 발생한 것으로 알려진 전환 이벤트에 보고를 연관시킬 수 없다.
도 4는 측정 데이터 엘리먼트를 생성하고 측정 데이터 엘리먼트를 집계 시스템으로 제공하기 위한 예시적인 프로세스(400)를 도시하는 흐름도이다. 프로세스(400)는 예를 들어, 부정 탐지 시스템(170) 및 디지털 컴포넌트 배포 시스템(150)과 상호 작용하는 클라이언트 디바이스(110) 및 집계 시스템(180)에 의해 구현될 수 있다. 프로세스(400)의 동작들은 또한 비-일시적 컴퓨터 판독 가능 매체에 저장된 명령들로서 구현될 수 있고, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치가 프로세스(400)의 동작들을 수행하게 할 수 있다.
클라이언트 디바이스(110)는 전환 기록(record)을 획득한다(402). 전술한 바와 같이, 전환 기록은 검출된 전환에 대해 블라인드 서명된 결합 전환 데이터를 포함할 수 있다. 클라이언트 디바이스(110)에서 실행되는 애플리케이션(112)은 예를 들어, 전환을 보고하기 위해 랜덤하게 선택된 지연이 만료되었다는 결정에 응답하여 또는 전환 데이터의 배치(batch)를 전송하기로 결정하는 것에 응답하여 전환 기록을 획득할 수 있다.
클라이언트 디바이스(110)는 전환 기록의 적어도 일부를 암호화한다(404). 예를 들어, 애플리케이션(112)은 블라인드 서명된 결합 전환 데이터를 암호화할 수 있다. 일부 구현에서, 애플리케이션(112)은 임계값 암호화를 사용하여 예를 들어,(t, n) 임계값 암호화 기법을 사용하여, 블라인드 서명된 결합 전환 데이터를 암호화한다. 임계값 암호화를 사용함으로써, 암호화된 데이터는 수신자가 예를 들어, 적어도 t개의 애플리케이션(예컨대, 웹 브라우저 또는 네이티브 애플리케이션 또는 디바이스)으로부터 동일한 노출 및 전환 쌍에 대해 적어도 t개의 측정 데이터 엘리먼트를 수신하지 않는 한 복호화될 수 없다.
일부 임계값 암호화 기술에서, 딜러(dealer)는 이 예에서 애플리케이션(112)의 각 인스턴스가 될 각 플레이어에게 비밀 또는 키의 공유(값)(share)를 제공한다. 각 클라이언트 디바이스(110)의 각 애플리케이션(112)에 비밀의 공유를 제공하는 대신, 애플리케이션(112)의 각 인스턴스는 데이터를 암호화하는 그룹 키를 생성하도록 구성된다. 각 애플리케이션(112)이 동일한 그룹 키를 생성하기 위해, 각 애플리케이션(112)은 동일한 시드를 사용하여 그룹 키를 생성할 수 있다. 이 시드는 노출 데이터 및/또는 전환 데이터이거나 노출 데이터 및/또는 전환 데이터를 기반으로 할 수 있다. 주어진 노출 및 전환 쌍에 대해 블라인드 서명된 결합 전환 데이터는 동일한 엔티티(예를 들어, 부정 탐지 시스템(170) 및 디지털 컴포넌트 배포 시스템(150))가 동일한 프로토콜과 비밀 키를 사용하여 애플리케이션의 각 인스턴스에 대한 데이터에 블라인드 서명하고 또한 애플리케이션(112)의 각 인스턴스는 동일한 프로토콜을 사용하여 데이터를 블라인드한다고 가정하면 동일하다.
일 예에서, 시드는 블라인드 서명된 결합 전환 데이터 또는 블라인드 서명된 결합 전환 데이터와 보고 URL 또는 보고 시스템(190)과 같은 추가 데이터의 조합일 수 있다. 다른 예에서, 시드는 보고 시스템(190)의 공개키를 사용하여 블라인드 서명된 결합 전환 데이터를 암호화함으로써 생성될 수 있어서, 그룹 키가 재생된 후에도 보고 시스템(190)만이 노출 및 전환 데이터를 복호화할 수 있다. 예를 들어, 시드는 보고 시스템(190)의 공개키를 사용하여 암호화된 상기 암호화된 블라인드 서명된 결합 전환 데이터 및 보고 시스템(190)의 보고 URL의 조합일 수 있다.
노출 및 전환 데이터를 암호화하기 위해 상이한 유형의 (t, n)-임계값 암호화 기법이 사용될 수 있다. 예를 들어, 비밀(예를 들어, 노출 및 전환 데이터)의 공유를 배포하고 적어도 t개의 공유가 수신될 때 그 비밀을 복구하는데 다항식 또는 평면을 사용하는 (t, n) 임계값 암호화 기법이 사용될 수 있다. 특정 예에서, 임계값 암호화 기법은 그룹 키가 평면을 포함하고 측정 데이터가 각 평면이 교차하는 포인트에 있는 평면 기반 암호화 기법, 예를 들어 Blakley 방식일 수 있다. 다른 예에서, 임계값 암호화 기법은 중국인 나머지 정리, 사전적 비밀 공유, 검증 가능한 비밀 공유(VSS) 또는 기타 적절한 임계값 암호화 기술을 사용할 수 있다.
예시적인 다항식 접근법에서, 애플리케이션(112)이 전환 보고에 액세스할 때, 애플리케이션(112)은 위에서 설명된 시드를 사용하여 그룹 식별자(예를 들어, 태그) 및 시드 값을 생성할 수 있다. 예를 들어, 애플리케이션(112)은 제1 키 유도 함수(예를 들어, 단방향 암호화 해시 함수) 및 시드를 사용하여 그룹 식별자를 생성할 수 있다. 이 그룹 식별자는 노출 및 전환 쌍을 고유하게 식별하는 난수일 수 있다. 이 노출 및 전환 쌍을 보고하는 각 애플리케이션(112)은 동일한 키 유도 함수 및 동일한 시드를 사용하기 때문에, 그룹 식별자는 노출 및 전환 쌍을 보고하는 각 애플리케이션(112)에 대해 동일할 것이다. 아래에 설명된 바와같이, 그룹 식별자는 데이터를 집계하여 전환 수량을 결정하는데 사용된다.
애플리케이션(112)은 제2 키 유도 함수(예를 들어, 단방향 암호화 해시 함수) 및 시드를 사용하여 의사 난수 생성기에 대한 초기값을 생성할 수 있다. 그 다음 애플리케이션(112)은 초기화된 의사 난수 생성기를 사용하여 t-1차 다항식 함수에 대한 계수를 생성할 수 있다. 이 예제에서는 다항식 함수는 그룹 키 역할을 한다. 다항식 함수는 A0 + A1X1+ A2X2 +,… AtXt형식일 수 있는데, 여기서 t는 최소값(예를 들어, 데이터 복호화에 필요한 그룹 멤버 키의 임계수)이고, Xi는 X의 i 제곱의 결과이고, Ai는 생성된 계수이다.
애플리케이션(112)의 각 인스턴스는 비밀에 대한 다항식 함수상의 특정 포인트를 선택하도록 구성될 수 있다. 예를 들어, 애플리케이션(112)의 각 인스턴스는 비밀에 대한 다항식 함수상의 상이한 포인트를 선택하도록 구성될 수 있다. 특정 예에서 이 포인트는 X=0에 있을 수 있고, 비밀은 X=0에 있는 Y 값, 즉 A0의 값일 수 있다. 다른 포인트도 사용될 수 있다. 일 구현에서, 애플리케이션(112)은 노출 시간에 랜덤 논스(nonce)를 선택하고, 블라인드 서명하거나 공개키 서명을 사용하여 공개 검증을 위해 논스에 서명하도록 부정 탐지 시스템(170)에 요청하고, 그런 다음 서명된 논스를 상기 포인트의 값(X)으로 사용할 수 있다. 집계 시스템(180)은 값(X)이 부정 탐지 시스템(170)에 의해 적절하게 서명되지 않은 모든 포인트를 무시할 것이다.
애플리케이션(112)은 집계 시스템(180)에 보고할 비밀 공유로서 다항식 함수상의 포인트를 선택할 수 있다. 이 비밀의 공유는 그룹 멤버 키이다. 비밀이 t개의 그룹 멤버 키로부터 결정될 수 있도록 애플리케이션(112)의 각 인스턴스가 상이한 포인트를 선택할 수 있게 하기 위해, 애플리케이션(112)의 각 인스턴스는 애플리케이션(112)의 인스턴스가 실행되고 있는 애플리케이션(112) 또는 클라이언트 디바이스(110)의 인스턴스와 관련된 데이터를 사용하여 포인트를 선택하도록 구성될 수 있다. 예를 들어, 애플리케이션(112)은 애플리케이션(112)의 인스턴스를 고유하게 식별하는 고유 애플리케이션 식별자 또는 클라이언트 디바이스(110)를 고유하게 식별하는 고유 디바이스 식별자를 사용하여 다항식 함수상의 포인트를 선택할 수 있다. 특정 예에서, 애플리케이션(112)은 제3 키 유도 함수(예를 들어, 단방향 암호화 해시 함수), 고유 애플리케이션 식별자 또는 고유 디바이스 식별자, 및 다항식 함수상의 포인트를 선택하기 위한 시드를 사용할 수 있다. 선택적으로, 애플리케이션(112)은 노출 및/또는 전환이 실제인지 검증할 때 상기 선택된 포인트의 X 좌표에 서명하도록 부정 탐지 시스템(170) 또는 디지털 컴포넌트 배포 시스템(전환이 발생하는 디지털 컴포넌트 제공자 대신)에 요청할 수 있으며, 그런 다음 서명된 X 좌표를 X 좌표로서 선택하여 비밀의 공유를 계산한다.
클라이언트 디바이스(110)는 측정 데이터 엘리먼트를 생성하여 측정 데이터 엘리먼트를 집계 시스템으로 전송한다(406). 일부 구현에서, 측정 데이터 엘리먼트는 그룹 멤버 키, 예를 들어 애플리케이션(112)에 의해 선택된 다항식상의 포인트의 좌표 및 그룹 식별자(예를 들어, 태그)를 포함한다. 예를 들어, 그룹 식별자와 그룹 멤버 키는 키/값 쌍을 나타낼 수 있다.
집계 시스템(180)은 측정 데이터 엘리먼트를 수신하고 측정 데이터 엘리먼트의 데이터베이스를 업데이트한다(408). 예를 들어, 집계 시스템(180)은 각각의 수신된 측정 데이터 엘리먼트를 데이터베이스 또는 다른 데이터 구조 또는 데이터 저장 디바이스에 저장할 수 있다. 집계 시스템(180)은 또한 그룹 식별자에 대해 수신되었던 그룹 멤버 키의 카운트를 업데이트할 수 있다.
집계 시스템(180)은 암호화된 텍스트를 복호화하기에 충분한 데이터가 수신되었는지 여부를 결정한다(410). 전술한 바와같이, 그룹 키를 재생성하고 노출 및 전환 데이터를 복호화하기 위해서는 적어도 t개의 고유 그룹 멤버 키가 수신되어야 한다. 집계 시스템(180)은 그룹 식별자에 대한 그룹 멤버 키의 카운트를 임계값(t)과 비교할 수 있다.
그룹 식별자를 갖는 t개 미만의 측정 데이터 엘리먼트가 수신된 경우, 집계 시스템(180)은 동일한 그룹 식별자를 갖는 추가 측정 데이터 엘리먼트를 계속 대기할 수 있다. 동일한 그룹 식별자를 갖는 적어도 t개의 측정 데이터 엘리먼트가 수신되면 집계 시스템(180)은 그룹 멤버 키를 로드한다(412).
이어서 집계 시스템(180)은 비밀을 복호화할 수 있다(414). 전술한 바와같이, 비밀은 블라인드 서명된 결합 전환 데이터, 블라인드 서명된 결합 전환 데이터와 추가 데이터의 조합(예를 들어, 보고 시스템(190) 의 보고 URL), 또는 (예를 들어, 보고 시스템의 공개키를 이용하여) 암호화된 블라인드 서명된 결합 전환 데이터와 보고 시스템 (190)의 보고 URL의 조합일 수 있다. 비밀을 복호화하기 위해, 집계 시스템(180)은 그룹 멤버 키를 사용하여 그룹 키 또는 그룹 키의 표현을 재생성할 수 있다. 예를 들어, 다항식 함수 접근 방식을 사용하여 비밀이 암호화되는 경우, 집계 서버(190)는 그룹 식별자를 갖는 적어도 t개의 측정 데이터 엘리먼트의 그룹 멤버 키에 의해 정의된 포인트를 사용하여 다항식 함수를 재생성할 수 있다. 집계 시스템(190)은 다항식 함수를 재생성하기 위해 이들 포인트들 사이를 보간할 수 있다. 그런 다음 집계 시스템(190)은 값이 비밀인 특정 포인트를 식별할 수 있다.
집계 시스템(180)은 보고 시스템(190)으로 전환을 보고한다(416). 집계 시스템(180)은 노출 및 전환 데이터(여전히 암호화될 수 있음) 및 전환 횟수를 포함하는 데이터를 생성하여 보고 시스템으로 전송할 수 있다. 집계 시스템(180)은 노출 및 전환 쌍에 대응하는 그룹 식별자를 포함하는 측정 데이터 엘리먼트에서 수신된 고유 그룹 멤버 키의 수를 전환 횟수로서 결정할 수 있다. 즉, 전환 횟수는 그룹 식별자를 포함하는 고유 측정 데이터 엘리먼트의 수이다.
보고된 데이터의 노출 및 전환 데이터는 블라인드 서명된 결합 전환 데이터이거나 보고 시스템(190)의 공개키를 사용하여 암호화된이 데이터일 수 있다. 예를 들어, 전술한 바와 같이, 비밀은 블라인드 서명된 결합 전환 데이터와 보고 시스템(190)의 보고 URL의 조합일 수 있다. 집계 시스템(180)은 비밀을 획득한 후보고 URL에 액세스하여 전환 수량과 함께 비밀의 나머지 정보를 보고 시스템(190)으로 전송할 수 있다.
보고 시스템(190)은 암호화된 보고 데이터를 생성하는데 사용된 공개키에 대응하는 자신의 개인키를 사용하여 상기 암호화된 블라인드 서명된 결합 전환 데이터(암호화된 경우)를 복호화한다(418). 보고 시스템(190)은 선택적으로 노출 및 전환 데이터와 관련된 서명을 검증할 수 있다. 블라인드 서명을 위해 VOPRF를 채택하는 일부 구현에서, 서명 검증은 보고 시스템(190)이 이전에 노출 데이터에 블라인드 서명한 부정 탐지 시스템(170)에 연락하도록 요구한다.
보고 시스템(190)은 부정 탐지 시스템(420)에 의해 생성된 노출 데이터의 서명을 검증한다. 예를 들어, 보고 시스템(190)은 부정 탐지 시스템(170)에 의해 생성된 블라인드 노출 데이터의 블라인드 서명을 검증하기 위한 요청과 함께 블라인드 서명된 결합 전환 데이터를 부정 탐지 시스템(170)으로 전송할 수 있다. 부정 탐지 시스템(170)은 서명의 검증을 시도하고 그 서명이 유효한지 여부를 지정하는 데이터로 보고 시스템(190)에 응답할 수 있다.
유사하게, 보고 시스템(190)은 블라인드된 노출 데이터와 전환 데이터(422)의 조합의 서명을 검증할 수 있다. 예를 들어, 보고 시스템은 디지털 컴포넌트 배포 시스템(150)에 의해 생성된 블라인드된 노출 데이터와 전환 데이터의 조합의 블라인드 서명을 검증하기 위한 요청과 함께 블라인드 서명된 결합 전환 데이터를 디지털 컴포넌트 배포 시스템(150)으로 전송할 수 있다. 디지털 컴포넌트 배포 시스템(150)은 서명의 검증을 시도하고 그 서명이 유효한지 여부를 지정하는 데이터로 보고 시스템(190)에 응답할 수 있다.
만약 두 서명이 모두 유효하면, 보고 시스템은 노출 및 전환 쌍에 대한 전환 횟수를 지정하는 데이터를 저장할 수 있다(424). 보고 시스템(190)은 디지털 컴포넌트 게시자(160)에게, 암호화를 허용하기에 충분한 수의 전환(예를 들어, 적어도 t개)이 발생한 후에 디지털 컴포넌트 게시자(160)에 의해 발행된 디지털 컴포넌트(들)에 대한 각각의 노출 및 전환 쌍에 대한 전환 횟수를 지정하는 데이터를 제공할 수 있다.
소정(given) 노출 및 전환 쌍에 대해 적어도 t개의 측정 데이터 엘리먼트를 수신한 후, 집계 시스템(180)은 이전에 수신된 측정 데이터 엘리먼트의 데이터를 사용하여 유사한 방식으로 수신되고 노출 및 전환 쌍에 대한 그룹 식별자를 포함하는 임의의 추가 측정 데이터 엘리먼트를 복호화할 수 있다. 이러한 방식으로, 집계 시스템(180)은 노출 및 전환 쌍에 대한 전환 횟수를 계속 업데이트할 수 있다.
일부 구현에서, 전환 횟수는 다수의 치수(dimensions) 각각에 대해 결정된다. 치수는 다양한 날짜 또는 날짜 범위, 다양한 위치 등일 수 있다. 예를 들어, 디지털 컴포넌트 게시자(160)는 1 년의 매월 디지털 컴포넌트의 전환 횟수를 알고 싶어할 수 있다. 각 치수에 대해 별도의 측정을 수행하기 위해, (t, n) 암호화 기법의 비밀은 해당 전환에 대한 치수 값에 기초할 수 있다. 예를 들어, 다항식 기법이 사용되는 경우, 시드와 태그(예를 들어, 그룹 식별자) 모두는 치수 값과 결합된 위에서 설명한 시드/태그 중 하나일 수 있다. 특정 예에서, 시드는 블라인드 서명된 결합 전환 데이터와 암호화 해시 또는 암호화 함수에 의해 선택적으로 변환된 치수에 대한 값의 조합일 수 있다. 이러한 방식으로, 애플리케이션은 각 치수의 각 값에 대해 상이한 다항식 함수와 상이한 그룹 식별자를 생성한다.
전환 횟수는 또한 치수들의 조합에 대해 결정될 수 있다. 이 예에서, 시드는 각 치수의 값과 결합된 위에 설명된 시드들 중 하나일 수 있다. 특정 예에서, 시드는 블라인드 서명된 결합 전환 데이터와 각 치수의 값의 조합일 수 있다.
예를 들어, 결합 전환 데이터의 평문(plain text) 값을 계산한 후에 애플리케이션(112)이 손상되는 경우, 위의 기술은 시빌 공격을 방지하기 위해 추가로 적용될 수 있다. 손상되면, 애플리케이션(112)은 임의의 수의 다른 애플리케이션(112)과 평문값을 공유할 수 있으며, 이들 모두는 동일한 집계 시스템(180)에 동일한 평문 값을 보고할 수 있으며, 이는 (t, n)-임계값 암호화 기법의 k-익명성 보호를 무효화한다. 시빌 공격을 방지하기 위해, 합법적인 노출/전환의 고유성은 도 5에 예시된 프로세스를 사용하여 지원될 수 있다.
도 5는 전환 데이터를 보고하기 위한 다른 예시적인 프로세스(500)를 도시하는 흐름도이다. 프로세스(500)는 예를 들어, 도 1의 클라이언트 디바이스(110)와 같은 클라이언트 디바이스에 의해 구현될 수 있다. 프로세스(500)의 동작들은 또한 비-일시적 컴퓨터 판독 가능 매체에 저장된 명령들로 구현될 수 있고, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치로 하여금프로세스(500)의 동작들을 수행하게 할 수 있다.
블라인드 서명된 노출 데이터가 획득된다(502). 전술한 바와 같이, 디지털 컴포넌트가 컨텐츠(예를 들어 웹 페이지 또는 애플리케이션 컨텐츠)와 함께 제시될 때, 컨텐츠를 제시하는 애플리케이션은 디지털 컴포넌트의 노출을 위한 노출 데이터를 저장할 수 있다. 디지털 컴포넌트의 특정 프레젠테이션에 대한 노출 데이터에는 디지털 컴포넌트에 대한 랜딩 페이지의 URL 또는 도메인(예를 들어, 디지털 컴포넌트에 의해 링크된 페이지), 디지털 컴포넌트에 대한 하나 이상의 식별자, 노출과 관련된 이벤트 레벨 데이터, 노출 데이터가 클라이언트 디바이스로부터 삭제되는 시기를 지정하는 만료 시간 및/또는 디지털 컴포넌트에 대한 전환 보고를 전송할 보고 URL 또는 도메인이 포함될 수 있다.
노출 데이터는 블라인드되어 부정 탐지 신호와 함께 도 1의 부정 탐지 시스템(170)과 같은 다른 디바이스 또는 시스템으로 전송될 수 있다. 이 예에서, 노출 데이터 자체를 블라인드하기 보다는, 애플리케이션(112)은 보고 시스템(예를 들어,도 1의 보고 시스템(190))으로부터 페치된 공개키를 사용하여 노출 데이터 및 클릭된 값(예를 들어, 사용자가 클릭했는지 또는 디지털 컴포넌트와 상호 작용했는지 여부)의 조합을 암호화할 수 있다. 그런 다음 애플리케이션(112)은 암호화 결과에 대해 블라인드하고, 블라인드 서명을 위해 블라인드된 암호화 결과를 부정 탐지 시스템(170)으로 전송한다. 부정 탐지 시스템(170)은 부정 탐지 신호에 기초하여 노출이 유효한지 여부를 결정할 수 있고, 그런 경우 부정 탐지 시스템(170)에 의해 기밀로 유지되는 제1 노출 블라인드 서명 키를 사용하여 상기 블라인드된 노출 데이터에 블라인드 서명할 수 있다. 부정 탐지 시스템(170)은 블라인드 서명된 노출 데이터를 클라이언트 디바이스(110)로 반환할 수 있다.
블라인드 서명된 노출 및 논스 데이터가 획득된다(504). 클라이언트 디바이스(110)에서 실행되는 애플리케이션(112)은 충분한 엔트로피를 갖는 논스, 예를 들어 32 바이트 난수를 랜덤하게 생성할 수 있다. 그런 다음 클라이언트 디바이스(110)는 블라인드 노출 데이터, 클릭된 값 및 논스의 조합을 사용하여 해시 기반 메시지 인증 코드(HMAC), 예를 들어 HMACSHA256 메시지 코드를 생성할 수 있다. 애플리케이션(112)은 노출 논스 메시지 코드에 블라인드 서명하기 위한 요청과 함께이 노출 논스 메시지 코드를 부정 탐지 시스템(170)으로 전송할 수 있다. 만약 노출이 유효하면, 전술한 바와 같이, 부정 탐지 서버는 부정 탐지 시스템(170)에 의해 기밀로 유지되는 제2 노출 블라인드 서명 키를 사용하여 노출 논스 메시지 코드에 블라인드 서명할 수 있다. 부정 탐지 시스템 170의 제2 노출 블라인드 서명 키는 부정 탐지 시스템(170)의 제1 블라인드 서명 키와 상이하므로 노출을 위한 서명을 얻을 수 없고 그것이 논스에 대한 서명이라고 주장하며 그 반대의 경우도 마찬가지이다. 부정 탐지 시스템(170)은 블라인드 서명된 노출 논스 메시지 코드를 클라이언트 디바이스(110)로 반환할 수 있다.
블라인드 서명된 결합 전환 데이터가 획득된다(506). 전환이 발생하면, 전환이 발생했다고 결정한 시스템, 예를 들어, 도 1의 디지털 컴포넌트 배포 시스템(150)은 전환 데이터를 애플리케이션(112)에 제공할 수 있다. 애플리케이션(112)은 전환 데이터와 HMAC 코드(예를 들어, 노출 데이터의 HMAC SHA256 메시지 코드)의 조합을 암호화함으로써 블라인드된 전환 및 노출 데이터를 생성할 수 있다. 예를 들어, 클라이언트 디바이스는 이 노출 메시지 코드와 전환 데이터를 결합하고 도 1의 보고 시스템(190)으로부터 페치된 공개키를 사용하여 이 조합을 암호화할 수 있다.
애플리케이션(112)은 블라인드 서명된 노출 데이터와 블라인드된 전환 및 노출 데이터를 이러한 데이터 조합에 블라인드 서명하라는 요청과 함께 디지털 컴포넌트 배포 시스템(150)으로 전송할 수 있다. 디지털 컴포넌트 배포 시스템(150)은 디지털 컴포넌트 배포 시스템(150)의 제1 전환 블라인드 서명 키를 사용하여 상기 블라인드 서명된 노출 데이터와 상기 블라인드된 전환 및 노출 데이터의 조합에 블라인드 서명할 수 있다. 이 블라인드 서명된 데이터는 이 예에서 블라인드 서명된 결합 전환 데이터이다.
블라인드 서명된 전환 및 논스 데이터가 획득된다(508). 이 논스는 블라인드 서명된 노출 및 논스 데이터를 획득하는데 사용된 논스와 동일할 수 있다. 애플리케이션(112)은 블라인드된 전환 데이터 및 논스의 조합을 사용하여 HMAC, 예를 들어 HMACSHA256 메시지 코드를 생성할 수 있다. 클라이언트 디바이스(110)는 전환 논스 메시지 코드에 블라인드 서명하라는 요청과 함께 이 전환 논스 메시지 코드를 디지털 컴포넌트 배포 시스템(150)으로 전송할 수 있다. 전환이 유효하면, 전술한 바와 같이, 부정 탐지 서버는 디지털 컴포넌트 배포 시스템(150)에 의해 기밀로 유지되는 제2 전환 블라인드 서명 키를 사용하여 전환 논스 메시지 코드를 블라인드 서명할 수 있다. 디지털 컴포넌트 배포 시스템(150)의 제2 전환 블라인드 서명 키는 디지털 컴포넌트 배포 시스템(150)의 제1 전환 블라인드 서명 키와 상이하므로 전환을 위한 서명을 얻을 수없고 그것이 논스에 대한 서명이라고 주장한다. 디지털 컴포넌트 배포 시스템(150)은 블라인드 서명된 전환 논스 메시지 코드를 클라이언트 디바이스(110)로 반환할 수 있다.
측정 데이터 엘리먼트가 생성된다(510). 이 예에서, 애플리케이션(112)은 비밀(예를 들어, 노출 및 전환 데이터), 그룹 식별자 및 고유 키의 공유를 나타내는 그룹 멤버 키를 포함하는 측정 데이터 엘리먼트를 생성할 수 있다.
애플리케이션(112)은 블라인드 서명된 노출 논스 메시지 코드, 블라인드 서명된 전환 논스 메시지 코드, 및 논스를 포함하는 결합(된) 메시지를 생성함으로써 고유 키를 생성할 수 있다. 결합 메시지의 각 부분은 결합 메시지의 개별 필드에 포함될 수 있다. 그런 다음 애플리케이션(112)은 암호화 키로서 블라인드 서명된 결합 전환 데이터를 사용하여 결합 메시지를 암호화함으로써 고유 키를 생성할 수 있다.
애플리케이션(112)은 도 4의 프로세스(400)를 사용하여 그룹 멤버 키가 생성되는 방식과 유사하게, 임계값 암호화를 사용하여 그룹 멤버 키를 생성할 수 있다. 예를 들어, 그룹 멤버 키는 다항식 기술을 사용하여 생성될 수 있으며, 시드는 블라인드 서명된 결합 전환 데이터, 블라인드 서명된 결합 전환 데이터와 추가 데이터(예를 들어, 보고 시스템(190)의 보고 URL)의 조합, 또는 (보고 시스템의 공개키를 사용하여) 암호화된 블라인드 서명된 결합 전환 데이터와 보고 시스템(190)의 보고 URL의 조합일 수 있다.
애플리케이션(112)은 또한 그룹 식별자가 도 4의 프로세스(400)를 사용하여 생성되는 방식과 유사하게 그룹 식별자를 생성할 수 있다. 예를 들어, 애플리케이션(112)은 키 유도 함수(예를 들어, 단방향 암호화 해시 함수) 및 시드를 사용하여 그룹 식별자를 생성할 수 있다.
애플리케이션(112)은 그룹 멤버 키, 고유 키 및 그룹 식별자를 포함하는 측정 데이터 엘리먼트를 전송할 수 있다. 예를 들어, 애플리케이션(112)은 측정 데이터 엘리먼트를 도 1의 집계 시스템(180)과 같은 집계 시스템으로 전송할 수 있다. 애플리케이션은 시간 기반 공격을 방지하기 위해 전환이 감지된 후 랜덤하게 선택한(또는 의사 랜덤) 시간 기간이 경과한 후에 측정 데이터 엘리먼트를 전송할 수 있다.
도 6은 노출 데이터를 복호화하기 위한 예시적인 프로세스(600)를 나타내는 흐름도이다. 프로세스(600)는 예를 들어 집계 시스템(180) 및/또는 도 1의 보고 시스템(190)과 같은 하나 이상의 서버에 의해 구현될 수 있다. 프로세스(600)의 동작들은 또한 비-일시적 컴퓨터 판독 가능 매체에 저장된 명령들로 구현될 수 있고, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(600)의 동작들을 수행하게 할 수 있다.
측정 데이터 엘리먼트가 클라이언트 디바이스로부터 수신된다(602). 예를 들어, 클라이언트 디바이스(110)에서 실행되는 애플리케이션(112), 예를 들어 웹 브라우저 또는 네이티브 애플리케이션은 검출되는 노출 및 전환(예를 들어, 노출 및 전환 쌍)에 응답하여 측정 엘리먼트를 생성하여 전송할 수 있다. 일부 구현에서, 도 4를 참조하여 전술한 바와 같이, 측정 데이터 엘리먼트는 그룹 멤버 키 및 그룹 식별자를 포함할 수 있다. 일부 구현에서, 도 5를 참조하여 전술한 바와 같이, 측정 데이터 엘리먼트는 그룹 멤버 키, 그룹 식별자 및 고유 키를 포함할 수 있다. 두 구현 모두에서, 그룹 멤버 키는 노출에 대한 노출 데이터 및 임계값(t)에 기초하는 시드를 사용하여 (t, n)-임계값 암호화 기술을 사용하여 생성될 수 있다.
노출 및 전환 쌍에 대한 적어도 t개의 측정 데이터 엘리먼트가 수신되었는지 여부에 대한 결정이 이루어진(604). 예를 들어, 수신되었고 노출 및 전환 쌍에 대한 그룹 식별자를 포함하는 고유 측정 데이터 엘리먼트의 수가 카운트될 수 있다. 이 카운트는 임계값(t)과 비교될 수 있다.
노출 및 전환 쌍에 대한 개별 측정 데이터 엘리먼트가 임계값 미만으로 수신되면, 프로세스(600)는 노출 및 전환 쌍에 대한 적어도 t개의 측정 데이터 엘리먼트가 수신될 때까지 비밀(예를 들어, 노출 및 전환 데이터)이 복호화될 수 없기 때문에 노출 및 전환 쌍에 대한 추가 측정 데이터 엘리먼트를 대기하기 위해 동작(602)으로 돌아갈 수 있다.
노출 및 전환 쌍에 대한 적어도 임계값(t개)의 개별 측정 데이터 엘리먼트가 수신되면, 각 측정 데이터 엘리먼트의 암호화된 노출 데이터가 복호화된다. 측정 데이터 엘리먼트가 그룹 멤버 키 및 그룹 식별자를 포함하는 구현에서, 암호화된 노출 데이터는 도 4를 참조하여 위에서 설명된 바와 같이 복호화될 수 있다.
측정 데이터 엘리먼트가 그룹 멤버 키, 그룹 식별자 및 고유 키를 포함하는 구현에서, 블라인드 서명된 결합 전환 데이터와 보고 URL은 도 4를 참조하여 전술한 바와 같이 그룹 키를 재생성함으로써 복구될 수 있다. 복구된 전환 데이터 및 복구된 노출 데이터는 데이터를 블라인드하는데 사용된 프로토콜을 사용하여 블라인드 해제될 수 있다.
블라인드 서명된 노출 논스 메시지 코드, 블라인드 서명된 전환 논스 메시지 코드 및 논스를 포함하는 결합 메시지는 블라인드 서명된 결합 전환 데이터를 사용하여 고유 키를 복호화함으로써 복구될 수 있다. 그런 다음 블라인드 서명된 노출 논스 메시지 코드 및 블라인드 서명된 전환 논스 메시지 코드는 블라인드 서명된 노출 데이터, 블라인드 서명된 전환 및 노출 데이터, 및 논스를 사용하여 검증될 수 있다. 예를 들어, 집계 시스템(180)은 복구된 노출 데이터 및 논스를 사용하여 블라인드 서명된 노출 논스 메시지 코드(예를 들어, HMACSHA256 메시지 코드)를 계산하고 이를 복구된 블라인드 서명된 노출 논스 메시지 코드와 비교할 수 있다. 유사하게, 집계 시스템(180)은 복구된 노출 및 전환 데이터와 논스를 사용하여 블라인드 서명된 전환 논스 메시지 코드(예를 들어, HMACSHA256 메시지 코드)를 계산하고 이를 복구된 블라인드 서명된 전환 논스 메시지 코드와 비교할 수 있다. 둘 다 일치하면 두 복구된 코드가 모두 검증된다.
그런 다음 부정 탐지 시스템(170)은 노출 데이터의 블라인드 서명과 노출 및 논스 데이터의 블라인드 서명을 검증할 수 있다. 유사하게, 디지털 컴포넌트 배포 시스템(150)은 블라인드 서명된 전환 데이터의 블라인드 서명 및 블라인드 서명된 전환 및 논스 데이터의 블라인드 서명을 검증할 수 있다.
그런 다음 노출 및 전환 쌍에 대한 측정 데이터 엘리먼트의 고유 논스의 수가 k-익명성을 보장하기 위해 결정될 수 있다. 고유 논스의 수는 노출/전환 이벤트를 보고한 브라우저(또는 애플리케이션)의 수이다. 고유 논스의 수가 k개 보다 크면, 보고 시스템은 전환 횟수를 디지털 컴포넌트 배포 시스템에 보고하여 적어도 k개의 브라우저가 이벤트를 본 것을 알고 있다. 만약 고유 논스의 수가 k개 보다 작으면, 보고 시스템은 전환 횟수를 보고하지 않으므로 k-익명성을 적용한다. 손상된 브라우저는 위에서 설명된 검증을 회피하는 방식으로 추가 논스를 위조할 수 없다.
위의 모든 검증이 성공적이면, 노출 및 전환이 유효하며 시빌 공격의 일부가 아니다. 각각의 검증이 성공적이라는 결정에 응답하여, 블라인드 서명된 노출 데이터, 블라인드 서명된 전환 및 노출 데이터, 및 고유 논스의 수는 보고 URL을 사용하여 보고 시스템(190)으로 전송될 수 있다. 이어서 보고 시스템(190)은 노출 데이터를 암호화하는데 사용된 공개키에 대응하는 개인키를 사용하여 노출 데이터를 복구할 수 있다. 보고 시스템(190)은 블라인드된 전환 및 노출 데이터를 암호화하는 데 사용된 개인키를 사용하여 블라인드 서명된 전환 및 노출 데이터를 복호화함으로써 전환 데이터를 유사하게 복구할 수 있다.
도 7은 전술한 동작들을 수행하는데 사용될 수 있는 예시적인 컴퓨터 시스템(700)의 블록도이다. 시스템(700)은 프로세서(710), 메모리(720), 저장(storage) 디바이스(730) 및 입/출력 디바이스(740)를 포함한다. 컴포넌트(710, 720, 730 및 740) 각각은 예를 들어 시스템 버스(750)를 사용하여 상호 연결될 수 있다. 프로세서(710)는 시스템(700) 내에서 실행하기 위한 명령들을 처리할 수 있다. 일부 구현에서, 프로세서(710)는 단일 스레드 프로세서이다. 다른 구현에서, 프로세서(710)는 다중 스레드 프로세서이다. 프로세서(710)는 메모리(720) 또는 저장 디바이스(730)에 저장된 명령들을 처리할 수 있다.
메모리(720)는 시스템(700)내에 정보를 저장한다. 일 구현에서, 메모리(720)는 컴퓨터 판독 가능 매체이다. 일부 구현에서, 메모리(720)는 휘발성 메모리 유닛이다. 다른 구현에서, 메모리(720)는 비-휘발성 메모리 유닛이다.
저장 디바이스(730)는 시스템(700)을 위한 대용량 저장 장치를 제공할 수 있다. 일부 구현에서, 저장 디바이스(730)는 컴퓨터 판독 가능 매체이다. 다양한 다른 구현에서, 저장 디바이스(730)는 예를 들어, 하드 디스크 디바이스, 광 디스크 디바이스, 다수의 컴퓨팅 디바이스(예를 들어, 클라우드 저장 디바이스)에 의해 네트워크를 통해 공유되는 저장 디바이스 또는 기타 대용량 저장 디바이스가 포함될 수 있다.
입/출력 디바이스(740)는 시스템(700)에 대한 입/출력 동작들을 제공한다. 일부 구현에서, 입/출력 디바이스(740)는 네트워크 인터페이스 디바이스(예를 들어, 이더넷 카드), 직렬 통신 디바이스(예를 들어, RS-232 포트) 및/또는 무선 인터페이스 디바이스(예를 들어, 802.11 카드) 중 하나 이상을 포함할 수 있다. 다른 구현에서, 입/출력 디바이스는 데이터를 수신하여 출력 데이터를 외부 디바이스, 예를 들어, 키보드, 프린터 및 디스플레이 디바이스로 전송하도록 구성된 드라이버 디바이스를 포함할 수 있다. 그러나, 모바일 컴퓨팅 디바이스, 모바일 통신 디바이스, 셋탑 박스 텔레비전 클라이언트 디바이스 등과 같은 다른 구현도 사용될 수 있다.
도 7에서 예시적인 처리 시스템이 설명되었지만, 본 명세서에서 설명된 주제및 기능적 동작의 구현은 본 명세서에 개시된 구조 및 그의 구조적 등가물을 포하는 다른 유형의 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
본 명세서에 기술된 주제 및 동작들의 실시예는 본 명세서에 개시된 구조 및 그의 구조적 등가물을 포하는 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 설명된 주제의 실시예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 저장 미디어(또는 매체)에 인코딩된 컴퓨터 프로그램 명령들의 하나 이상의 모듈로서 구현될 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령들은 인위적으로 생성된 전파 신호, 예를 들어, 데이터 처리 장치에 의한 실행을 위해 적합한 수신기 장치로의 전송을 위해 정보를 인코딩하도록 생성되는 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 그 안에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체는 전파된 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령들의 소스 또는 목적지가될 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 물리 컴포넌트 또는 매체(예를 들어, 다중 CD, 디스크 또는 다른 저장 디바이스)일 수 있거나 그 안에 포함될 수 있다.
본 명세서에 설명된 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작들로 구현될 수 있다.
"데이터 처리 장치"라는 용어는 예를 들어 프로그램 가능 프로세서, 컴퓨터, 칩상의 시스템, 또는 전술한 것 중 다수지 또는 이들의 조합을 포함하여, 데이터 처리를 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 이 장치는 특수 목적 논리 회로, 예를 들어 FPGA(필드 프로그래밍 가능 게이트 어레이) 또는 ASIC(애플리케이션 특정 집적 회로)를 포함할 수 있다. 장치는 또한 하드웨어 외에도 문제의 해당 컴퓨터 프로그램의 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 다른 컴퓨팅 모델 인프라를 구현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파 또는 해석된 언어, 선언적 또는 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램 또는 모듈, 컴포넌트, 서브 루틴, 객체 또는, 컴퓨팅 환경에서 사용하기에 적합한 기타 단위로 포함하여 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그럴 필요는 없다. 프로그램은 다른 프로그램 또는 데이터(예를 들어, 마크 업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일부, 해당 프로그램 전용 단일 파일 또는 다수의 조정 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 위치하거나 여러 사이트에 분산되고 통신 네트워크로 상호 연결된 다수의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에 설명된 프로세스 및 로직 흐름은 입력 데이터에 대해 동작하고 출력을 생성함으로써 동작들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능한 프로세서에 의해 수행될 수 있다. 프로세스 및 로직 흐름은 또한 FPGA(필드 프로그래밍 가능 게이트 어레이) 또는 ASIC(애플리케이션 특정 집적 회로)와 같은 특수 목적 논리 회로로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예로서 범용 및 특수 목적의 마이크로 프로세서 둘 다를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령과 데이터를 수신한다. 컴퓨터의 필수 엘리먼트는 명령들에 따라 동작을 수행하기 위한 프로세서와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광 자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 하도록 작동 가능하게 결합된다. 그러나 컴퓨터에는 이러한 디바이스가 필요하지 않다. 더욱이, 컴퓨터는 다른 디바이스(예를 들어, 모바일 전화기, PDA, 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스(예를 들어, 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터 저장에 적합한 디바이스에는 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스); 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크); 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함한 모든 형태의 비-휘발성 메모리, 미디어 및 메모리 디바이스가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 기술된 주제의 실시예는 사용자에게 정보를 표시하기 위한 디스플레이 디바이스(예를 들어, CRT(음극선 관) 또는 LCD(액정 디스플레이) 모니터) 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 갖는 컴퓨터 상에 구현될 수 있다. 사용자와의 상호 작용을 제공하기 위해 다른 종류의 디바이스가 사용될 수도 있는데, 예를 들어, 사용자에게 제공되는 피드백은 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자가 사용하는 디바이스로 문서를 전송하고 그로부터 문서를 수신함으로써 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스상의 웹 브라우저로 웹 페이지를 전송함으로써 사용자와 상호 작용할 수 있다.
본 명세서에 기술된 주제의 실시예는 백엔드 컴포넌트(예를 들어, 데이터 서버)를 포함하거나, 미들웨어 컴포넌트(예를 들어, 애플리케이션 서버)를 포함하거나 프런트 엔드 컴포넌트(예를 들어, 사용자가 본 명세서에 설명된 주제의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터)를 포함하거나 이러한 백엔드, 미들웨어 또는 프런트 엔드 컴포넌트 중 하나 이상의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크의 예에는 근거리 통신망("LAN") 및 광역 네트워크("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어-투-피어 네트워크(예를 들어, 애드혹 피어-투-피어 네트워크)가 포함될 수 있다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 개별 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다. 일부 실시예에서, 서버는 (클라이언트 디바이스와 상호 작용하는 사용자에게 데이터를 표시하고 사용로부터 사용자 입력을 수신하기 위해) 데이터(예를 들어, HTML 페이지)를 클라이언트 디바이스로 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다
본 명세서에는 많은 특정 구현 세부 사항이 포함되어 있지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 것에 대한 제한으로 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예에 특정된 특징들의 설명으로 해석되어야 한다. 별도의 실시예의 맥락에서 본 명세서에 설명된 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 맥락에서 설명된 다양한 특징은 또한 다중 실시예에서 개별적으로 또는 임의의 적절한 서브 조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 처음에 그렇게 주장될 수도 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우 조합으로부터 제외될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 대한 것일 수 있다.
유사하게, 동작들은 특정 순서로 도면에 도사되지만, 이는 바람직한 결과를 달성하기 위해 그러한 동작들이 특정 순서 또는 순차적 순서로 수행되거나 모든 예시된 동작들이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서, 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 더욱이, 위에서 설명된 실시예에서 다양한 시스템 컴포넌트의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키징될 수 있음을 이해해야 한다.
따라서, 주제의 특정 실시예들이 설명되었다. 다른 실시예는 다음 청구항의 범위 내에 있다. 일부 경우에, 청구 범위에 언급된 동작들은 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 또한, 첨부된 도면에 도시된 프로세스들는 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적인 순서를 반드시 필요로 하지 않는다. 특정 구현에서는 멀티 태스킹 및 병렬 처리가 유리할 수 있다.

Claims (13)

  1. 컴퓨터 구현 방법으로서,
    복수의 클라이언트 디바이스 각각으로부터, 디지털 컴포넌트를 디스플레이한 결과로서 소정(given) 전환에 대한 각각의 그룹 멤버 키 및 그룹 식별자를 포함하는 측정 데이터 엘리먼트를 수신하는 단계와, 상기 클라이언트 디바이스 각각에서 실행되는 애플리케이션은 임계값 암호화 기법을 사용하여:
    노출 데이터 또는 전환을 위한 전환 데이터 중 하나 이상을 포함하는 네트워크 데이터에 적어도 기초하여, 네트워크 데이터를 암호화하기 위한 비밀 (secret)을 정의하는 그룹 키를 생성하고, 상기 그룹 키의 일부를 나타내는 각 그룹 멤버 키는 비밀의 개별 공유(share)를 포함하고; 그리고
    애플리케이션에 대한 고유 식별자를 포함하는 애플리케이션과 관련된 데이터에 기초하여, 개별 그룹 멤버 키를 생성하고, 상기 클라이언트 디바이스 각각은 비밀의 다른 공유를 포함하는 다른 그룹 멤버 키를 생성하고;
    그룹 식별자를 갖는 적어도 임계 개수의 측정 데이터 엘리먼트가 수신되었는지 결정하는 단계와; 그리고
    동일한 그룹 식별자를 갖는 적어도 임계 개수의 측정 데이터 엘리먼트가 수신되었다는 결정에 응답하여, 수신된 측정 데이터 엘리먼트의 그룹 멤버 키를 사용하여 네트워크 데이터를 복호화하는 단계를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    각각의 애플리케이션은 노출 데이터와 관련된 전환의 발생에 응답하여 측정 데이터 엘리먼트를 생성 및 전송하고, 상기 방법은,
    그룹 식별자를 포함하는 수신된 데이터 엘리먼트의 개수에 기초하여 디지털 컴포넌트에 대한 전환 횟수를 결정하는 단계를 더 포함하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 그룹 키를 생성하는 것은,
    블라인드 서명된 노출 데이터에 기초하여 그룹 키를 생성하는 것을 포함하는 컴퓨터 구현 방법.
  4. 제3항에 있어서,
    상기 블라인드 서명된 노출 데이터는,
    노출이 유효하다고 결정한 제1 시스템 및 전환을 등록하기로 결정한 제2 시스템에 의해 서명된 블라인드된 노출 데이터와, 상기 블라인드된 노출 데이터는 노출 데이터를 블라인드함으로써 생성되고; 그리고
    제2 시스템에 의해 서명된 전환 데이터를 포함하는,
    블라인드 서명된 결합 전환 데이터를 포함하는 컴퓨터 구현 방법.
  5. 제4항에 있어서,
    상기 그룹 키를 생성하는 것은,
    블라인드 서명된 결합 전환 데이터 및 디지털 컴포넌트에 대한 전환 데이터가 보고되는 보고 시스템에 대한 네트워크 주소의 조합을 사용하여 그룹 키를 생성하는 것을 포함하는 컴퓨터 구현 방법.
  6. 제5항에 있어서,
    상기 블라인드 서명된 결합 전환 데이터는 보고 시스템의 공개키를 사용하여 암호화되는 것을 특징으로 하는 컴퓨터 구현 방법.
  7. 삭제
  8. 제1항에 있어서,
    상기 임계값 암호화 기법은 다항식 기반 임계값 암호화 기법을 포함하고, 상기 클라이언트 디바이스 각각에서 실행되는 애플리케이션은,
    그룹 키로서, 적어도 노출 데이터를 포함하는 시드(seed)에 기초하여 다항식 함수를 생성하고;
    비밀에 대응하는 값을 갖도록 다항식 함수에서 동일한 포인트를 선택하고; 그리고
    개별 그룹 멤버 키로서, 애플리케이션과 관련된 데이터를 사용하여 다항식 함수에서 상기 동일한 포인트와 다른 제2 포인트를 선택하는 것을 특징으로 하는 컴퓨터 구현 방법.
  9. 제8항에 있어서,
    상기 수신된 측정 데이터 엘리먼트의 그룹 멤버 키를 사용하여 노출 데이터를 복호화하는 단계는,
    제2 포인트을 사용하여 다항식 함수를 재생성하는 단계; 및
    재생성된 다항식 함수에서 동일한 포인트를 식별하는 단계를 포함하는 컴퓨터 구현 방법.
  10. 제1항에 있어서,
    상기 임계값 암호화 기법은,
    중국인 나머지 정리 기반 방식, 사전적(proactive) 비밀 공유, 또는 검증 가능한 비밀 공유 중 하나를 포함하는 컴퓨터 구현 방법.
  11. 컴퓨터에 의해 실행될 때 컴퓨터로 하여금 제1항-제6항 및 제8항-제10항 중 어느 한 항의 방법의 단계들을 수행하게 하는 명령들을 포함하는 하나 이상의 컴퓨터 판독 가능 저장 매체.
  12. 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 제1항-제6항 및 제8항-제10항 중 어느 한 항의 방법의 단계들을 수행하게 하는 명령들을 포함하는 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 프로그램.
  13. 부정 방지 시스템으로서, 상기 시스템은,
    하나 이상의 프로세서, 및 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 제1항-제6항 및 제8항-제10항 중 어느 한 항의 단계들을 수행하게 하는 명령들을 포함하는 하나 이상의 컴퓨터 판독 가능 저장 매체를 갖는 데이터 처리 시스템을 포함하는 것을 특징으로 하는 부정 방지 시스템.
KR1020217021017A 2020-01-19 2020-12-11 집계된 네트워크 측정에서의 부정 방지 KR102661484B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL272126A IL272126A (en) 2020-01-19 2020-01-19 Prevention of fraud in clustered network measurements
IL272126 2020-01-19
PCT/US2020/064498 WO2021145988A1 (en) 2020-01-19 2020-12-11 Preventing fraud in aggregated network measurements

Publications (2)

Publication Number Publication Date
KR20210097786A KR20210097786A (ko) 2021-08-09
KR102661484B1 true KR102661484B1 (ko) 2024-04-26

Family

ID=76864585

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217021017A KR102661484B1 (ko) 2020-01-19 2020-12-11 집계된 네트워크 측정에서의 부정 방지

Country Status (7)

Country Link
US (2) US11736459B2 (ko)
EP (1) EP3895368A1 (ko)
JP (1) JP7157258B2 (ko)
KR (1) KR102661484B1 (ko)
CN (1) CN113439414A (ko)
IL (1) IL272126A (ko)
WO (1) WO2021145988A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023048711A1 (en) * 2021-09-22 2023-03-30 Visa International Service Association Threshold secret share generation for distributed symmetric cryptography

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10027631B2 (en) 2010-04-07 2018-07-17 Microsoft Technology Licensing, Llc Securing passwords against dictionary attacks
CN110601822A (zh) 2019-08-20 2019-12-20 国家电网有限公司 一种基于量子保密通信技术的加密盲签名方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60231434D1 (de) * 2001-12-12 2009-04-16 Scytl Secure Electronic Voting Verfahren zum sicheren elektronischen wählen und kryptographische protokolle und computerprogramme dafür
US8015211B2 (en) 2004-04-21 2011-09-06 Architecture Technology Corporation Secure peer-to-peer object storage system
US8978158B2 (en) 2012-04-27 2015-03-10 Google Inc. Privacy management across multiple devices
US9552590B2 (en) * 2012-10-01 2017-01-24 Dstillery, Inc. Systems, methods, and media for mobile advertising conversion attribution
US9641332B1 (en) * 2013-01-30 2017-05-02 Google Inc. Privacy-preserving measurements of a campaign
US9275237B2 (en) * 2013-12-09 2016-03-01 Palo Alto Research Center Incorporated Method and apparatus for privacy and trust enhancing sharing of data for collaborative analytics
CN106936787A (zh) 2015-12-31 2017-07-07 金雅拓股份有限公司 用于保护在两个不同的加密环境中使用加密密钥的方法
KR101950073B1 (ko) * 2016-09-01 2019-02-19 명지대학교 산학협력단 비밀분산을 이용한 보안 및 익명 서비스 제공 시스템 및 방법
EP3419211B1 (en) * 2017-06-23 2022-03-30 Flytxt B.V. Privacy preserving computation protocol for data analytics
CN107659401B (zh) * 2017-10-09 2019-08-30 华中科技大学 一种相似性感知的安全数据去重加密方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10027631B2 (en) 2010-04-07 2018-07-17 Microsoft Technology Licensing, Llc Securing passwords against dictionary attacks
CN110601822A (zh) 2019-08-20 2019-12-20 国家电网有限公司 一种基于量子保密通信技术的加密盲签名方法

Also Published As

Publication number Publication date
EP3895368A1 (en) 2021-10-20
WO2021145988A1 (en) 2021-07-22
US20230421544A1 (en) 2023-12-28
US11736459B2 (en) 2023-08-22
KR20210097786A (ko) 2021-08-09
JP7157258B2 (ja) 2022-10-19
CN113439414A (zh) 2021-09-24
JP2022532815A (ja) 2022-07-20
US20220353251A1 (en) 2022-11-03
IL272126A (en) 2021-07-29

Similar Documents

Publication Publication Date Title
JP7201848B2 (ja) 時間データの取得または操作を防止しながらネットワークデータのシーケンスを生成すること
JP7155437B2 (ja) 暗号化されたネットワーク値の集約
JP7399236B2 (ja) 複数の集約サーバを使用してデータ操作を防止すること
US20220166780A1 (en) Securing browser cookies
US20230421544A1 (en) Preventing fraud in aggregated network measurements
JP7401674B2 (ja) 正確な位置イベント測定値を決定する際のデータ操作の防止とユーザのプライバシの保護
US11863690B2 (en) Preventing data manipulation and protecting user privacy in telecommunication network measurements

Legal Events

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