KR102596445B1 - 개인 정보 보호를 위한 방법 - Google Patents

개인 정보 보호를 위한 방법 Download PDF

Info

Publication number
KR102596445B1
KR102596445B1 KR1020217015437A KR20217015437A KR102596445B1 KR 102596445 B1 KR102596445 B1 KR 102596445B1 KR 1020217015437 A KR1020217015437 A KR 1020217015437A KR 20217015437 A KR20217015437 A KR 20217015437A KR 102596445 B1 KR102596445 B1 KR 102596445B1
Authority
KR
South Korea
Prior art keywords
computing system
data
processing system
encrypted
interaction
Prior art date
Application number
KR1020217015437A
Other languages
English (en)
Other versions
KR20210080483A (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 KR20210080483A publication Critical patent/KR20210080483A/ko
Application granted granted Critical
Publication of KR102596445B1 publication Critical patent/KR102596445B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/50Oblivious transfer
    • 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/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

방법은, 복수의 클라이언트 장치 각각에서, 데이터 아이템을 수신하는 단계; 제2 컴퓨팅 시스템으로부터 공개 키를 수신하는 단계; 단일 암호화된 데이터 아이템을 생성하기 위해 공개 키를 사용하여 데이터 아이템을 암호화하는 단계; 시드를 생성하기 위해 단일 암호화된 데이터 아이템을 사용하는 제1 컴퓨팅 시스템과 불확정(oblivious) 의사랜덤 함수 프로토콜에 인게이지하는 단계; 시드 및 단일 암호화된 데이터 아이템을 사용하여, 동일한 단일 암호화된 데이터 아이템과 관련된 암호화된 비밀 공유의 임계 개수가 수신될 때까지 암호화된 비밀 공유가 복호화될 수 없는 임계 비밀 공유 기능을 사용하여 암호화된 비밀 공유를 생성하는 단계; 그리고 암호화된 비밀 공유를 제1 컴퓨팅 시스템으로 전송하는 단계; 제1 컴퓨팅 시스템에서: 복수의 클라이언트 장치로부터 복수의 암호화된 비밀 공유를 수신하는 단계; 프로세싱된 데이터를 생성하기 위해 복수의 암호화된 비밀 공유를 프로세싱하는 단계; 그리고 프로세싱된 데이터를 제2 컴퓨팅 시스템으로 전송하는 단계를 포함한다.

Description

개인 정보 보호를 위한 방법
본 명세서는 개인 정보 보호를 위한 방법에 관한 것이다.
분석 시스템이 특정 콘텐츠 아이템과 상호 작용한 장치 수와 같은 클라이언트 장치의 데이터에 대한 집계 정보를 확인할 수 있으면 유용할 수 있다. 그러나 종종 개인 식별 정보의 프라이버시(개인정보)를 유지하는 데 관심이 있다. 예를 들면, 엔티티는 특정 유형의 콘텐츠가 도달한 장치의 수 또는 정보의 소스를 식별할 수 있는 정보(예: 장치와 관련된 식별자)를 수신하지 않고 콘텐츠와 특정 방식으로 상호 작용한 장치의 수에 대한 정보를 수신하는 데 관심이 있을 수 있다.
본 개시 내용의 하나의 구현은, 복수의 클라이언트 장치 각각에서: 데이터 아이템을 수신하는 단계; 제2 컴퓨팅 시스템으로부터 공개 키를 수신하는 단계; 단일 암호화된 데이터 아이템을 생성하기 위해 공개 키를 사용하여 데이터 아이템을 암호화하는 단계; 시드를 생성하기 위해 단일 암호화된 데이터 아이템을 사용하는 제1 컴퓨팅 시스템과 불확정(oblivious) 의사랜덤 함수 프로토콜에 인게이지(engage)하는 단계; 시드 및 단일 암호화된 데이터 아이템을 사용하여, 동일한 단일 암호화된 데이터 아이템과 관련된 암호화된 비밀 공유의 임계 개수가 수신될 때까지 암호화된 비밀 공유가 복호화될 수 없는 임계 비밀 공유 기능을 사용하여 암호화된 비밀 공유를 생성하는 단계; 그리고 암호화된 비밀 공유를 제1 컴퓨팅 시스템으로 전송하는 단계를 포함한다. 다른 구현은, 제1 컴퓨팅 시스템에서: 복수의 클라이언트 장치로부터 복수의 암호화된 비밀 공유를 수신하는 단계; 프로세싱된 데이터를 생성하기 위해 복수의 암호화된 비밀 공유를 프로세싱하는 단계; 그리고 프로세싱된 데이터를 제2 컴퓨팅 시스템으로 전송하는 단계를 포함한다. 암호화된 비밀 공유의 수는 위의 구현 및/또는 여기에 설명된 다른 기술에 따라 클라이언트 장치의 수에 의해 생성되었을 수 있다. 다른 구현은, 제2 컴퓨팅 시스템에서, 프로세싱된 데이터를 복호화하여 복호화된 프로세싱된 데이터를 생성화는 단계; 복호화된 프로세싱된 데이터를 사용하여 복수의 클라이언트 장치와 관련된 개인 식별 정보에 액세스하지 않고 제1 특성을 공유하는 비밀 공유의 수를 생성하는 단계를 포함한다. 프로세싱된 데이터는 위에서 설명한 구현 및/또는 여기에 설명된 다른 기술에 따라 제2 컴퓨팅 시스템에 의해 생성되었을 수 있다.
일부 구현에서, 제1 컴퓨팅 시스템은 복수의 암호화된 비밀 공유를 프로세싱하기 전에 복수의 암호화된 비밀 공유를 셔플링(shuffling)하도록 더 구성된다. 일부 구현에서, 시드를 생성하기 위해 불확정 의사랜덤 함수 프로토콜에 인게이지하는 것은 단일 암호화된 데이터 아이템 및 크라우드 식별자를 사용하는 것을 포함하며, 크라우드 식별자는 복수의 클라이언트 장치 중 둘 이상과 연관된다. 일부 구현에서, 제1 컴퓨팅 시스템은 제2 컴퓨팅 시스템의 일부이다. 일부 구현에서, 제1 컴퓨팅 시스템은 제2 컴퓨팅 시스템의 보호된 환경 내에 존재하고, 보호된 환경은 제2 컴퓨팅 시스템이 제1 컴퓨팅 시스템에 액세스하는 것을 방지한다.
일부 구현에서, 복수의 클라이언트 장치 각각은 시드를 생성하기 위해 단일 암호화된 데이터 아이템을 사용하는 제3 컴퓨팅 시스템과 함께 불확정 의사랜덤 함수 프로토콜에 인게이지한다. 일부 구현에서, 제2 컴퓨팅 시스템은 프로세싱된 데이터를 생성하기 위해 복수의 암호화된 비밀 공유를 프로세싱한다. 일부 구현에서, 복수의 클라이언트 장치는 보안 네트워크를 사용하여 제1 컴퓨팅 시스템과 통신하며, 여기서 보안 네트워크는 어니언 네트워크이다. 일부 구현에서, 시드를 생성하기 위해 불확정 의사랜덤 함수 프로토콜에 인게이지하는 것은 단일 암호화된 데이터 아이템 및 개인 식별자를 사용하는 것을 포함하며, 여기서 개인 식별자는 복수의 클라이언트 장치 중 클라이언트 장치를 고유하게 식별한다. 일부 구현에서, 제1 컴퓨팅 시스템은 분산 컴퓨팅 시스템이다.
본 개시의 다른 구현은 저장된 명령어를 갖는 하나 이상의 메모리를 갖는 하나 이상의 컴퓨팅 장치, 및 상기에서 설명되거나 여기에 설명된 구현의 방법을 수행하기 위해 명령어를 실행하도록 구성된 하나 이상의 프로세서에 관한 것이다. 예를 들어, 다른 구현은 명령(명령어)이 저장된 메모리를 포함하는 제1 컴퓨팅 시스템, 및 명령을 실행하여 복수의 데이터 아이템을 사용하여 복수의 클라이언트 장치와 연결되도록 구성된 프로세서와 관련된다. 복수의 시드를 생성하고, 복수의 클라이언트 장치에서 복수의 암호화된 비밀 공유 및 복수의 검증 공유를 수신하고, 복수의 검증 공유를 사용하여 복수의 암호화된 비밀 공유를 인증하고, 암호화된 비밀 공유를 프로세싱하여 프로세싱된 데이터를 생성하고 프로세싱된 데이터를 제2 컴퓨팅 시스템으로 전송한다.
일부 구현에서, 제1 컴퓨팅 시스템은 프로세싱 전에 암호화된 비밀 공유의 수를 셔플링하도록 더 구성된다. 일부 구현에서, 시드를 생성하기 위해 불확정 의사랜덤 함수 프로토콜에 인게이지하는 것은 크라우드 식별자를 시드로 인코딩하는 것을 포함하며, 여기서 크라우드 식별자는 복수의 클라이언트 장치 중 둘 이상과 관련된다. 일부 구현에서, 제1 컴퓨팅 시스템은 제2 컴퓨팅 시스템의 일부이다. 일부 구현에서, 제1 컴퓨팅 시스템은 제2 컴퓨팅 시스템의 보호된 환경 내에 존재하고, 보호된 환경은 제2 컴퓨팅 시스템이 제1 컴퓨팅 시스템에 액세스하는 것을 방지한다. 일부 구현에서, 제1 컴퓨팅 시스템은 보안 네트워크를 사용하여 복수의 클라이언트 장치와 통신하며, 여기서 보안 네트워크는 어니언 네트워크이다.
일부 구현에서, 시드를 생성하기 위해 불확정 의사랜덤 함수 프로토콜에 인게이지하는 것은 개인 식별자를 사용하는 것을 포함하며, 여기서 개인 식별자는 복수의 클라이언트 장치의 클라이언트 장치를 고유하게 식별한다. 일부 구현에서, 제1 컴퓨팅 시스템은 분산 컴퓨팅 시스템이다. 일부 구현에서, 프로세싱된 데이터를 생성하기 위해 암호화된 비밀 공유를 프로세싱하는 것은 임계 암호화 함수 프로토콜을 사용하여 암호화된 비밀 공유를 복호화하는 것을 포함한다. 일부 구현에서, 제1 컴퓨팅 시스템은 애플리케이션 프로그래밍 인터페이스(API)를 더 포함하고, 제1 컴퓨팅 시스템은 제2 컴퓨팅 시스템으로부터의 API 질의에 응답하여 프로세싱된 데이터를 제2 컴퓨팅 시스템에 전송한다.
적절한 경우 다양한 양태와 구현이 결합될 수 있다.
도 1은 예시적인 구현에 따라 네트워크를 통해 상호 작용하는 다양한 엔티티를 예시하는 다이어그램이다.
도 2는 구현에 따른 ESA(encode-shuffle-analyze) 아키텍처를 사용한 데이터 전송 및 상관을 예시하는 다이어그램이다.
도 3은 예시적인 구현에 따른, 도 2의 ESA 아키텍처에 대한 상호 작용 데이터를 생성하는 방법을 예시하는 흐름도이다.
도 4는 예시적인 구현에 따른, 도 2의 ESA 아키텍처에 대한 상호 작용 데이터를 생성하는 다른 방법을 예시하는 흐름도이다.
도 5는 예시적인 구현에 따른, 비밀 공유 방식을 포함하는 도 2의 ESA 아키텍처를 예시하는 다이어그램이다.
도 6은 예시적인 구현에 따라, 도 5의 비밀 공유 방식에 따른 비밀 공유 방법을 나타내는 흐름도이다.
도 6a는 예시적인 구현에 따른, 도 6의 비밀 공유 방법에 따라 비밀 공유를 생성하는 방법을 나타내는 흐름도이다.
도 7은 예시적인 구현에 따른, 도 6의 비밀 공유 방법에 따른 임계 비밀 공유 다항식을 나타낸 도면이다.
도 8은 예시적인 구현에 따른, 결정론적 시드(deterministic seed)를 포함하는 도 5의 비밀 공유 방식을 나타낸 도면이다.
도 9는 예시적인 구현에 따른, 도 8의 비밀 공유 방식에 따라 결정적(결정론적) 시드를 사용하여 비밀 공유를 생성하는 방법을 나타내는 흐름도이다.
도 9a는 예시적인 구현에 따른, 도 8의 비밀 공유 방식에 따라 결정적 시드를 사용하여 검증 가능한 비밀 공유를 생성하는 방법을 나타내는 흐름도이다.
도 10은 예시적인 구현에 따른, 제3 데이터 프로세싱 시스템을 포함하는 도 8의 비밀 공유 방식을 나타낸 도면이다.
도 11은 예시적인 구현에 따른, 상호 작용 데이터의 보안 전송 및 상관을 예시하는 다이어그램이다.
도 12는 예시적인 구현에 따른, 도 11의 시스템에 따른 상호 작용 데이터의 보안 전송 및 상관 방법을 예시하는 흐름도이다.
도 13은 예시적인 구현에 따른, 검증 가능한 비밀 공유 방식(비밀 공유 체계)를 사용하는 도 13의 방법을 예시하는 흐름도이다.
도 14는 예시적인 구현에 따른, 검증 가능한 비밀 공유를 검증(확인)하는 도 12의 방법을 예시하는 흐름도이다.
도 15는 예시적인 구현에 따른, 다중 데이터 프로세싱 시스템을 포함하는 도 8의 비밀 공유 방식을 나타낸 도면이다.
도 16은 예시적인 구현에 따른, 사용자 프라이버시를 보호하기 위한 프로세스의 흐름도이다.
도 17은 예시적인 구현에 따른, 사용자 프라이버시를 보호하기 위한 다른 프로세스의 흐름도이다.
도 18은 예시적인 구현에 따른 컴퓨팅 시스템의 블록도이다.
다음은 프라이버시를 의식하는 방식으로 온라인 상호 작용과 오프라인 행동(액션)을 연관시키는 방법, 장치 및 시스템과 관련된 다양한 개념 및 구현에 대한 자세한 설명이다. 위에서 소개되고 아래에서 더 상세히 논의되는 다양한 개념은 설명된 개념이 임의의 특정 구현 방식으로 제한되지 않기 때문에 임의의 다양한 방식으로 구현될 수 있다.
많은 영역에서 사용자가 소프트웨어 또는 콘텐츠와 상호 작용하거나 사전 정의된 액션의 집계된 측정(측정치)을 결정하는 것이 필요하거나 바람직할 수 있다. 예를 들면, 디지털 치료 분야(의학적 장애 또는 질병을 예방, 관리 또는 치료하기 위한 소프트웨어 프로그램에 의해 주도되는 의료 개입)에서, 중재 순응도(즉, 처방된 액션에 성공적으로 인게이지한(engaged) 환자 수)를 결정하는 것이 종종 필요하다). 다른 도메인에서는 제3 자 콘텐츠 제공자가 제3 자 콘텐츠와의 상호 작용 레이트를 결정하는 것이 바람직할 수 있다.
본 개시 내용의 시스템 및 방법은 일반적으로 콘텐츠 제공자에 의해 생성된 온라인 콘텐츠와 관련된 온라인 상호 작용에 관한 정보를 콘텐츠 제공자에게 안전한 방식으로 제공하는 것에 관한 것이다. 보다 구체적으로, 본 개시 내용의 시스템 및 방법은 보다 안전한 방식으로 상이한 엔티티로부터의 데이터를 상관시키기 위한 고유한 암호화 및 컴퓨터 아키텍처 방법에 관한 것이다. 일반적으로 서로 다른 엔티티의 데이터를 상호 연관시키려면 컴퓨팅 시스템이 사용자 특정 데이터에 액세스할 수 있어야 한다. 개인 식별 정보("PII")가 노출되지 않도록 하려면 데이터를 보고할 때 사용자의 신원을 숨기고 적절하게 보호해야 한다.
특정 분석 활동을 PII 노출로부터 보호하는 방식으로 수행하는 것이 바람직하다. 따라서 보다 안전한 방식으로 서로 다른 엔터티의 데이터를 연관시키기 위한 고유한 암호화 및 컴퓨터 아키텍처 방법론이 필요하다. 본 개시의 양태는 개선된 암호화 방법 및 컴퓨터 아키텍처를 제공한다. 암호화 방법 및 아키텍처는 보안을 강화하고 사용자 개인 정보를 보존함으로써 안전한 방식으로 사용자의 온라인 상호 작용을 연관시키는 데 사용될 수 있다.
PII의 프라이버시 및 보안을 보장하기 위해, 본 개시의 시스템 및 방법은 데이터를 익명화하여 엔티티(예: 콘텐츠 제공자, 제3 자 등)가 PII를 수신하지 못하도록 한다. 비 제한적인 구현 예는 다음과 같다. 제2 데이터 프로세싱 시스템은 비대칭 암호화를 위한 공개 키를 생성할 수 있다. 클라이언트 장치는 공개 키를 사용하여 상호 작용 데이터를 암호화할 수 있다. 클라이언트 장치는 시드를 생성하기 위해 암호화된 상호 작용 데이터를 사용하는 제1 데이터 프로세싱 시스템과 함께 OPRF(oblivious pseudorandom function) 프로토콜에 인게이지(engage)할 수 있다. 클라이언트 장치는 암호화된 상호 작용 데이터를 임계으로 암호화하여 비밀 공유를 생성할 수 있다. 제1 데이터 프로세싱 시스템은 복수의 클라이언트 장치로부터 복수의 비밀 공유를 수신할 수 있다. 임계 수(개수)의 비밀 공유가 수신되면, 제1 데이터 프로세싱 시스템은 암호화된 상호 작용 데이터를 복구하기 위해 비밀 공유를 복호화할 수 있다. 제1 데이터 프로세싱 시스템은 암호화된 상호 작용 데이터를 공개 키에 대응하는 개인 키를 사용하여 암호화된 상호 작용 데이터를 복호화할 수 있는 제2 데이터 프로세싱 시스템으로 전송할 수 있다. 따라서, 제2 데이터 프로세싱 시스템은 PII를 공개하지 않고 상호 작용 데이터의 상관 관계를 용이하게할 수 있다.
예를 들어, 개인용 컴퓨터, 스마트 폰 또는 태블릿과 같은 컴퓨팅 장치의 애플리케이션(예: 웹 브라우저)은 콘텐츠 게시자가 관리하는 웹 페이지(또는 기타 온라인 문서)로 이동할 수 있다. 콘텐츠 게시자는 콘텐츠 제공자에 의해 생성된 콘텐츠 아이템을 포함할 수 있다. 컴퓨팅 장치(디바이스)는 (i) 콘텐츠 아이템과의 상호 작용 및/또는(ii) 콘텐츠 아이템과의 상호 작용의 결과인 콘텐츠 제공자와의 상호 작용을 식별할 수 있다. 상호 작용은 식별자와 연관될 수 있다. 컴퓨팅 장치는 상호 작용을 생성할 때 온라인 콘텐츠의 효과에 관한 식별자 및/또는 추가 정보를 제1 데이터 프로세싱 시스템(예를 들어, 프라이버시 프록시)에 안전하게 전송할 수 있다. 제1 데이터 프로세싱 시스템은 정보를 익명화하여 제2 데이터 프로세싱 시스템으로 전송할 수 있다. 제2 데이터 프로세싱 시스템은 구매 발생 여부, 구매한 아이템(있는 경우) 및 아이템의 가격을 포함하여 상호 작용에 대한 보다 자세한 정보를 제공할 수 있다.
도 1을 참조하면, 예시적인 구현에 따라, 상이한 엔티티로부터의 데이터를 안전하게 상관시키기 위한 시스템(100)이 도시된다. 시스템(100)은 클라이언트 장치(10), 콘텐츠 발행자(게시자) 장치(20), 콘텐츠 제공자 장치(30), 제1 데이터 프로세싱 시스템(300) 및 제2 데이터 프로세싱 시스템(400)을 포함한다. 다양한 구현에서, 시스템(100)의 컴포넌트는 네트워크(60)를 통해 통신한다. 네트워크(60)는 인터넷, 로컬, 와이드, 메트로 또는 기타 영역 네트워크, 인트라넷, 위성 네트워크와 같은 컴퓨터 네트워크, 음성 또는 데이터 이동 전화 통신 네트워크와 같은 다른 컴퓨터 네트워크, 이들의 조합, 또는 임의의 다른 유형의 전자 통신 네트워크를 포함할 수 있다. 네트워크(60)는 디스플레이 네트워크를 포함하거나 구성할 수 있다(예: 콘텐츠 배치 또는 검색 엔진 결과 시스템과 관련되거나 콘텐츠 아이템 배치 캠페인의 일부로 제3 자 콘텐츠 아이템을 포함할 수 있는 인터넷에서 사용할 수 있는 정보 리소스의 서브세트). 다양한 구현에서, 네트워크(60)는 시스템(100)의 컴포넌트들 간의 보안 통신을 용이하게 한다. 비 제한적인 예로서, 네트워크(60)는 전송 계층 보안(TLS), 보안 소켓 계층(SSL), 하이퍼 텍스트 전송 프로토콜 보안(HTTPS) 및/또는 임의의 다른 보안 통신 프로토콜을 구현할 수 있다.
클라이언트 장치(10)는 개인용 컴퓨터, 모바일 컴퓨팅 장치, 스마트 폰, 태블릿, 또는 온라인 콘텐츠(예를 들어, 웹 페이지)의 수신, 표시 및 상호 작용을 용이하게 하는 임의의 다른 장치일 수 있다. 클라이언트 장치(10)는 온라인 콘텐츠를 수신 및 표시하고 온라인 콘텐츠와의 사용자 상호 작용을 수신하기 위한 애플리케이션(200)을 포함할 수 있다. 예를 들어, 애플리케이션(200)은 웹 브라우저일 수 있다.
다양한 구현에서, 애플리케이션(200)은 온라인 콘텐츠를 수신하기 위해 콘텐츠 발행자 장치(20) 및 콘텐츠 제공자 장치(30)와 상호 작용한다. 예를 들어, 애플리케이션(200)은 콘텐츠 발행자 장치(20)로부터 정보 자원(리소스)(22)을 수신할 수 있다. 다양한 구현에서, 콘텐츠 발행자 장치(20)는 콘텐츠 발행자와 연관되어 있다. 정보 자원(22)은 웹 페이지 또는 다른 온라인 문서와 같은 웹 기반 콘텐츠 아이템일 수 있다. 정보 자원(22)은 애플리케이션(200)에 의해 해석될 때 애플리케이션(200)이 상호 작용 가능한 웹 페이지와 같은 그래픽 사용자 인터페이스를 사용자에게 표시하게 하는 명령(예를 들어, 스크립트, 실행 코드 등)을 포함할 수 있다. 다양한 구현에서, 정보 자원(22)은 하나 이상의 콘텐츠 요청자(24)를 포함한다. 콘텐츠 요청자(24)는 콘텐츠 발행자 장치(20)에 의해 제공되는 것과 다른 콘텐츠를 포함하는 것을 용이하게 할 수 있다. 예를 들어, 온라인 문서는 마케팅 아이템(예: 광고)의 표시를 위해 구성된 슬롯을 포함할 수 있다. 콘텐츠 요청자(24)는 요청되는 콘텐츠의 위치를 포함할 수 있다. 일부 구현에서, 콘텐츠 요청자(24)는 동적이다. 예를 들어, 콘텐츠 요청자(24)는 포함할 콘텐츠를 결정하기 위해 하나 이상의 제3 자와 상호 작용할 수 있다. 구체적인 예로서 콘텐츠 요청자(24)를 포함하는 정보 자원(22)이 모바일 장치에 표시될 수 있다. 따라서 콘텐츠 요청자(24)는 모바일 장치에 특정한 콘텐츠(예를 들어, 다른 크기 등을 갖는)를 요청할 수 있다.
콘텐츠 제공자 장치(30)는 콘텐츠 아이템(32)을 호스팅할 수 있다. 다양한 구현에서, 콘텐츠 제공자 장치(30)는 콘텐츠 제공자와 관련된다. 콘텐츠 제공자 장치(30)는 제3 자 컴퓨팅 시스템이거나 이를 포함할 수 있다. 예를 들어, 콘텐츠 제공자 장치(30)는 소매점(retailer)과 관련된 서버일 수 있다. 콘텐츠 아이템(32)은 제3 자와 관련된 아이템(예를 들어, 광고)을 마킹할 수 있다. 추가적으로 또는 대안적으로, 콘텐츠 아이템(32)은 정보 자원(22) 내에 포함되도록 구성된 다른 콘텐츠를 포함할 수 있다. 예를 들어, 제1 콘텐츠 아이템(32)은 소셜 미디어 플랫폼에 링크하도록 구성된 "share button(공유 버튼)"일 수 있고, 제2 콘텐츠 아이템(32)은 뉴스 헤드 라인을 표시하도록 구성된 RSS 뉴스 피드일 수 있다.
콘텐츠 아이템(32)은 식별자(34)를 포함할 수 있다. 다양한 구현에서, 식별자(34)는 각 콘텐츠 아이템(32)을 고유하게 식별한다. 일부 구현에서, 식별자(34)는 마케팅 캠페인과 관련된다. 예를 들어, 스포츠 활동에 관심이 있는 사용자는 스포츠 용품과 관련된 콘텐츠 아이템(32)을 수신할 수 있고 콘텐츠 아이템(32) 각각은 식별자(34)를 공유할 수 있다. 일부 구현에서, 애플리케이션(200)은 수신된 정보 자원(22)과 관련된 식별자(34)를 저장한다. 식별자(34)의 분할은 도 2 내지 도 4를 참조하여 상세하게 설명된다.
애플리케이션(200)은 개인 ID 회로(210), 그룹 ID 회로(220), 콘텐츠 상호 작용 회로(230) 및 인코딩 회로(240)를 포함하는 것으로 도시되어있다. 개인(private)(사설) ID 회로(210)는 개인 ID의 생성을 용이하게 할 수 있다. 개인 ID는 클라이언트 장치(10)를 고유하게 식별할 수 있다. 추가적으로 또는 대안적으로, 개인 ID는 클라이언트 장치(10)와 연관된 사용자를 고유하게 식별할 수 있다. 구체적인 예로서, 사용자는 제1 클라이언트 장치(10) 및 제2 클라이언트 장치(10)를 가질 수 있다. 제1 및 제2 클라이언트 장치(10)는 각각 애플리케이션(200)이 설치될 수 있다(예: 애플리케이션(200)의 제1 설치(installation)를 갖는 제1 클라이언트 장치(10) 및 애플리케이션(200)의 제2 설치를 갖는 제2 클라이언트 장치(10)). 개인 ID 회로(210)는 제1 및 제2 클라이언트 장치(10)에 대한 개인 ID를 생성할 수 있다. 개인 ID는 제1 및 제2 클라이언트 장치(10) 모두에 대해 동일할 수 있으며, 이에 따라 사용자와 제1 및 제2 클라이언트 장치(10)를 사용자의 클라이언트 장치(10)로 고유하게 식별할 수 있다. 일부 구현에서는 클라이언트 장치(10)에 의해 공유되는 상호 작용 데이터는 개인 ID를 포함한다. 다양한 구현에서, 개인 ID 회로(210)는 개인 ID를 생성하기 위해 하나 이상의 외부 시스템/컴포넌트와 상호 작용한다.
그룹 ID 회로(220)는 그룹 ID의 생성을 용이하게 할 수 있다. 그룹 ID는 클라이언트 장치(10)의 그룹을 고유하게 식별할 수 있다. 예를 들어, 그룹 ID는 소프트웨어 버전, 장치 유형, 장치 구성 또는 기타 요인별로 클라이언트 장치(10)를 그룹화할 수 있다. 추가적으로 또는 대안적으로, 그룹 ID는 사용자 그룹을 고유하게 식별할 수 있다. 예를 들어, 그룹 ID는 지리, 인구 통계 정보, 관심사 또는 기타 요인별로 사용자를 그룹화할 수 있다. 일부 구현에서, 그룹 ID 회로(220)는 복수의 그룹 ID의 생성을 용이하게 할 수 있다. 예를 들면, 그룹 ID 회로(220)는 사용자가 중서부(Midwest)에 있음을 나타내는 제1 그룹 ID, 사용자의 클라이언트 장치(10)가 스마트 폰임을 나타내는 제2 그룹 ID 및 사용자가 19 연령 이상임을 나타내는 제3 그룹 ID의 생성을 용이하게 할 수 있다. 일부 구현에서, 클라이언트 장치(10)에 의해 공유되는 상호 작용 데이터는 하나 이상의 그룹 ID를 포함한다. 다양한 구현에서, 그룹 ID 회로(220)는 개인 ID를 생성하기 위해 하나 이상의 외부 시스템/컴포넌트와 상호 작용한다.
콘텐츠 상호 작용 회로(230)는 정보 자원(22) 및/또는 콘텐츠 아이템(32)과의 사용자 상호 작용을 검토하고 상호 작용 데이터를 생성하도록 구성된다. 예를 들어, 애플리케이션(200)은 식별자(34)와 연관된 제3 자 콘텐츠 아이템(32)을 갖는 웹 페이지를 사용자에게 디스플레이할 수 있다. 콘텐츠 상호 작용 회로(230)는 식별자(34)를 저장할 수 있다. 사용자는 제3 자와 연관된 다른 웹 페이지를 방문(예를 들어, 애플리케이션(200)을 사용하여)하고 아이템을 구매할 수 있다. 이에 응답하여, 콘텐츠 상호 작용 회로(230)는 상호 작용 데이터를 생성할 수 있다. 상호 작용 데이터는 식별자(34) 및/또는 구매된 아이템과 관련된 정보를 포함할 수 있다. 다양한 구현에서, 콘텐츠 상호 작용 회로(230)는 상호 작용 데이터에 개인 ID 및/또는 하나 이상의 그룹 ID를 포함한다. 본 개시의 시스템 및 방법은 상호 작용 데이터의 보안 전송에 관한 것이다. 예를 들어, 애플리케이션(200)은 상호 작용 데이터의 소스를 드러내지 않고 상호 작용 데이터를 제2 데이터 프로세싱 시스템(400)으로 안전하게 전송할 수 있다. 콘텐츠 상호 작용 회로는 도 2 내지 도 4를 참조하여 상세히 설명된다.
인코딩 회로(240)는 상호 작용 데이터를 인코딩하도록 구성된다. 예를 들어, 인코딩 회로(240)는 상호 작용 데이터를 암호화할 수 있다. 추가적으로 또는 대안적으로, 인코딩 회로(240)는 상호 작용 데이터에 대해 다양한 배제 기능을 수행할 수 있다. 예를 들어, 인코딩 회로(240)는 식별자(예를 들어, IP 주소 등)를 제거하거나, 상호 작용 데이터를 단편화하거나, 잡음을 추가하거나, 상호 작용 데이터를 익명화하기 위해 다른 기능을 수행할 수 있다. 인코딩 회로(240)는 해싱 회로(242), 제1 암호화 회로(244) 및 제2 암호화 회로(246)를 포함할 수 있다.
해싱(Hashing) 회로(242)는 입력 데이터에 대해 하나 이상의 해싱 함수를 구현하여 해시된 데이터를 생성할 수 있다. 해싱 회로(242)는 임의의 해싱 함수를 구현할 수 있다. 비 제한적인 예로서, 해싱 회로(242)는 "SHA-2", "Scrypt", "Balloon" 및/또는 "Argon2"를 구현할 수 있다. 일부 구현에서, 해싱 회로(242)는 다중 라운드의 해싱을 용이하게 한다. 예를 들어, 해싱 회로(242)는 해싱된 데이터 아이템을 생성하기 위해 데이터 아이템에 대해 제1 SHA-2 해시(해싱)를 수행할 수 있고, 이중 해시된(해싱된) 데이터 아이템을 생성하기 위해 해시된 데이터 아이템에 대해 제2 Scrypt 해시를 수행할 수 있다.
제1 암호화 회로(244)는 암호화된 데이터를 생성하기 위해 입력 데이터에 대해 하나 이상의 암호화 함수(encryption functions)를 구현할 수 있다. 일부 구현에서, 제1 암호화 회로(244)는 비대칭 암호화 함수를 구현한다. 예를 들어, 제1 암호화 회로(244)는 RSA(Rivest-Shamir-Adleman) 암호화 시스템을 구현할 수 있다. 다양한 구현에서, 제1 암호화 회로(244)는 입력 데이터를 암호화하기 위해 해싱 회로(242)와 상호 작용한다. 예를 들어, 해싱 회로(244)는 입력 데이터를 암호화하기 위해 제1 암호화 회로(244)에 의해 사용되는 시드를 생성할 수 있다. 일부 구현에서, 제1 암호화 회로(244)는 대칭 암호화를 구현한다. 추가적으로 또는 대안적으로, 제1 암호화 회로(244)는 복수의 암호화 함수를 결합할 수 있다. 예를 들어, 제1 암호화 회로(244)는 대칭 암호화 키를 비대칭적으로 암호화 한 다음 대칭 암호화 키를 사용하여 입력 데이터를 대칭적으로 암호화할 수 있다.
제2 암호화 회로(246)는 임계 암호화 데이터를 생성하기 위해 입력 데이터에 하나 이상의 임계 암호화 함수를 구현할 수 있다. 비 제한적인 예로서, 제2 암호화 회로(246)는 디지털 서명 알고리즘(DSA), 타원 곡선 디지털 서명 알고리즘(ECDSA) 및/또는 샤미르(Shamir) 비밀 공유(SSS) 알고리즘을 구현할 수 있다. 제2 암호화 회로(246)는 임계치 암호화를 수행하기 위해 하나 이상의 외부 시스템과 상호 작용할 수 있다. 예를 들면, 제2 암호화 회로(246)는 입력 데이터를 임계 암호화하기 위해 제2 암호화 회로(246)에 의해 사용되는 시드를 생성하기 위해 제1 데이터 프로세싱 시스템(300)과 OPRF(oblivious pseudorandom function) 프로토콜에 인게이지할 수 있다. 제2 암호화 회로(246)는 도 5 내지 도 13을 참조하여 상세히 설명된다.
제1 데이터 프로세싱 시스템(300)은 상호 작용 데이터의 익명화를 용이하게할 수 있다. 다양한 구현에서, 제1 데이터 프로세싱 시스템(300)은 클라이언트 장치(10)로부터 상호 작용 데이터를 수신하고 상호 작용 데이터의 신원 또는 소스를 난독화하기 위해 상호 작용 데이터에 대해 다양한 기능을 수행한다. 다양한 구현에서, 제1 데이터 프로세싱 시스템(300)은 데이터를 수신하고 데이터를 익명화하여 차등 개인 데이터를 생성한다. 차등 개인 데이터 세트와 같은 차등 개인 데이터는 관찰자가 특정 개인의 데이터가 데이터 세트에 포함되어 있는지 여부를 식별하지 못하도록한다. 예를 들어, 컴퓨팅 시스템은 복수의 개인으로부터 데이터를 수신하고 데이터에 관한 집계 정보를 게시할 수 있다. 관찰자가 개인(예: 데이터를 제공 한 사람과 데이터를 제공하지 않은 사람)이 집계 정보를 생성하는 데 사용된 데이터를 제공했는지 확인할 수 없는 경우 집계 정보는 차등적으로 비공개이다. 다양한 구현에서, 제1 데이터 프로세싱 시스템(300)은 비 익명 데이터에 대한 액세스를 허용하지 않는 보안 환경이다. 제1 데이터 프로세싱 시스템(300)은 서버, 분산 프로세싱 클러스터, 클라우드 프로세싱 시스템, 또는 임의의 다른 컴퓨팅 장치일 수 있다. 제1 데이터 프로세싱 시스템(300)은 적어도 하나의 컴퓨터 프로그램 또는 적어도 하나의 스크립트를 포함하거나 실행할 수 있다. 일부 구현에서, 제1 데이터 프로세싱 시스템(300)은 하나 이상의 스크립트를 실행하도록 구성된 하나 이상의 프로세서와 같은 소프트웨어 및 하드웨어의 조합을 포함한다.
제1 데이터 프로세싱 시스템(300)은 프로세서(320) 및 메모리(330)를 갖는 프로세싱 회로(310)를 포함하는 것으로 도시된다. 메모리(330)는 프로세서(320)에 의해 실행될 때 프로세싱 회로(310)가 여기에 설명된 다양한 동작을 수행하게 하는 명령어를 저장할 수 있다. 여기에 설명된 동작은 소프트웨어, 하드웨어 또는 이들의 조합을 사용하여 구현될 수 있다. 프로세서(320)는 마이크로 프로세서, ASIC, FPGA 등, 또는 이들의 조합을 포함할 수 있다. 많은 구현에서, 프로세서(320)는 멀티 코어 프로세서 또는 프로세서 어레이일 수 있다. 프로세서(320)는 보안 환경을 구현하거나 용이하게할 수 있다. 예를 들어, 프로세서(320)는 메모리(330)에 개인 영역(예를 들어, 엔클레이브(enclaves))을 정의하기 위해 소프트웨어 가드 확장(SGX)을 구현할 수 있다. 메모리(330)는 프로세서(320)에 프로그램 명령을 제공할 수 있는 전자, 광학, 자기 또는 임의의 다른 저장 장치를 포함할 수 있지만 이에 제한되지 않는다. 메모리(330)는 플로피 디스크, CD-ROM, DVD, 자기 디스크, 메모리 칩, ROM, RAM, EEPROM, EPROM, 플래시 메모리, 광학 매체, 또는 프로세서(320)가 명령어를 읽을 수 있는 임의의 다른 적절한 메모리를 포함할 수 있다. 명령어에는 C, C ++, C #, Java, JavaScript, Perl, HTML, XML, Python 및 Visual Basic과 같은 적절한 컴퓨터 프로그래밍 언어의 코드가 포함될 수 있다.
메모리(330)는 OPRF 회로(332), 부정행위(fraud) 방지 회로(334), 복호화 회로(336) 및 셔플(셔플링) 회로(338)를 포함할 수 있다. OPRF 회로(332)는 OPRF를 구현할 수 있다. 다양한 구현에서, OPRF 회로(332)는 랜덤 오라클(oracle)로서 기능할 수 있다. 일부 구현에서, OPRF 회로(332)는 애플리케이션(200)과 상호 작용하여 암호화 프리미티브(primitives)를 생성하거나 용이하게 한다. 예를 들어, OPRF 회로(332)는 상호 작용 데이터를 인코딩하기 위해 인코딩 회로(240)에 의해 사용되는 시드를 생성하기 위해 애플리케이션(200)과 상호 작용할 수 있다. OPRF 회로(332)는 도 5 내지 도 13을 참조하여 아래에서 상세히 설명된다.
부정행위 방지 회로(334)는 부정행위 데이터를 식별하고 방지하기 위해 상호 작용 데이터를 분석할 수 있다. 예를 들어, 악의적인 사용자는 클라이언트 장치(10)를 사용하여 위조된 상호 작용 데이터를 제출할 수 있고 부정행위 방지 회로(334)는 위조된 상호 작용 데이터를 분석하여 이를 부정행위 데이터로 식별할 수 있다. 일부 구현에서, 부정행위 방지 회로(334)는 디지털 서명을 용이하게 한다. 비 제한적인 예로서, 부정행위 방지 회로(334)는 검증 가능한 비밀 공유(VSS) 알고리즘, 집합 서명 알고리즘, 라빈(Rabin) 서명 알고리즘 및/또는 임의의 다른 디지털 서명 시스템을 구현하거나 용이하게 할 수 있다. 일부 구현에서, 부정행위 방지 회로(334)는 인증을 용이하게하고 상호 작용 데이터의 무결성을 보장한다. 부정행위 방지 회로(334)는 도 5 내지 도 13을 참조하여 아래에서 상세히 설명된다.
복호화 회로(336)는 암호화된 데이터를 수신하고 이를 복호화하여 암호화되지 않은 데이터를 생성할 수 있다. 다양한 구현에서, 복호화 회로(336)는 클라이언트 장치(10)로부터 암호화된 데이터를 수신한다. 복호화 회로(336)는 임계 암호화된 데이터(threshold encrypted data)를 복호화할 수 있다. 임계 암호화는 최소 임계 카디널리티(threshold cardinality)를 보장하여 개별 데이터가 익명의 데이터 군중의 일부가 되도록한다. 추가적으로 또는 대안적으로, 복호화 회로(336)는 대칭 및/또는 비대칭적으로 암호화된 데이터를 복호화할 수 있다. 예를 들어, 복호화 회로(336)는 공유 키를 복구하기 위해 개인 키를 사용하여 제1 암호화된 데이터를 비대칭적으로 복호화하고 상호 작용 데이터를 복구하기 위해 제2 암호화 데이터를 대칭적으로 복호화하기 위해 공유 키를 사용할 수 있다. 다양한 구현에서, 복호화 회로(336)는 암호화 키를 생성한다. 암호화 키는 시스템(100)의 다른 컴포넌트(예를 들어, 제1 암호화 회로(244), 제2 암호화 회로(246) 등)와 공유될 수 있다. 추가적으로 또는 대안적으로, 복호화 회로(336)는 상이한 엔티티로부터 데이터의 복호화를 용이하게 하기 위해 하나 이상의 비밀(예를 들어, 키, 코드 등)을 수신 및/또는 포함할 수 있다. 일부 구현에서, 복호화 회로(336)는 오염된 암호화된 데이터의 강력한 복구를 용이하게 한다. 예를 들어, 악의적인 사용자는 클라이언트 장치(10)를 사용하여 위조되거나 부적절하게 비밀 공유를 제출할 수 있으며 복호화 회로(336)는 하나 이상의 복구 기능을 사용하여 기본 데이터를 복구할 수 있다. 비 제한적인 예로서, 복호화 회로(336)는 오류 정정 코드(ECC), 제한된 도메인 평가 기술 및/또는 임의의 다른 복구 동작을 구현하거나 용이하게 할 수 있다. 다양한 구현에서, 복호화 회로(336)는 복구 동작을 수행하기 위해 부정행위 방지 회로(334)와 상호 작용한다.
셔플 회로(338)는 데이터를 수신하고 익명 데이터를 생성하기 위해 다양한 모호한 기능을 수행할 수 있다. 비 제한적인 예로서, 셔플 회로(338)는 암시적/간접 식별자(예를 들어, 도착 시간, 순서, 발신 IP 주소 등) 제거, 배치(batching) 동작 수행, 노이즈 도입 및/또는 임의의 다른 익명화 동작 수행을 구현하거나 용이하게할 수 있다. 다양한 구현에서, 셔플 회로(338)는 수신된 데이터를 셔플링(예를 들어, 재 배열, 순서 변경 등)하여 셔플링된 데이터를 생성한다. 예를 들면, 셔플 회로(338)는 제1 소스로부터 제1 데이터를 수신하고 제2 소스로부터 제2 데이터를 수신할 수 있고, 제1 및 제2 데이터를 각각 5 개의 조각으로 분할할 수 있고, 셔플링된 데이터를 생성하기 위해 10 개의 조각을 함께 셔플링할 수 있다. 일부 구현에서, 셔플 회로(338)는 배치 셔플링 알고리즘을 구현한다.
제2 데이터 프로세싱 시스템(400)은 상이한 엔티티로부터의 데이터를 안전하게 상관시키는 것을 용이하게 할 수 있다. 다양한 구현에서, 제2 데이터 프로세싱 시스템(400)은 익명 상호 작용 데이터를 수신하고 익명 상호 작용 데이터에 관한 집계 정보를 생성한다. 집계 정보는 온라인 상호 작용의 수 또는 그룹화를 설명할 수 있다(예: 복수의 콘텐츠 아이템과의 상호 작용). 추가적으로 또는 대안적으로, 집계 정보는 개별 온라인 상호 작용(예: 단일 콘텐츠 아이템과의 단일 상호 작용)을 설명할 수 있다. 집계 정보는 고유 식별자(예: 식별자(34) 등)를 포함할 수 있다. 일부 구현에서, 식별자는 마케팅 캠페인을 식별한다. 추가적으로 또는 대안적으로, 식별자는 각 온라인 상호 작용을 고유하게 식별할 수 있다. 일부 구현에서, 집계 정보는 콘텐츠 아이템(34)과 관련된 하나 이상의 상호 작용을 설명한다. 예를 들어, 집계 정보에는 온라인 상호 작용의 시간, 날짜 및/또는 위치가 포함될 수 있다. 익명 상호 작용 데이터에 의해 설명되는 상호 작용은 콘텐츠 아이템보기, 콘텐츠 아이템 선택/클릭, 콘텐츠 아이템 위에 마우스 오버, 및/또는 콘텐츠 아이템(32)과의 다른 상호 작용을 포함할 수 있다(예: 콘텐츠 아이템이 표시되는 웹 페이지로 이동하거나 아이템 또는 아이템의 일부가 웹 페이지가 표시되는 장치의 뷰포트(viewport) 내에 표시되는지 결정하는 등). 다양한 구현에서, 제2 데이터 프로세싱 시스템(400)은 암호화 동작을 구현하거나 용이하게 한다. 예를 들어, 제2 데이터 프로세싱 시스템(400)은 비대칭 암호화 공개 키를 생성할 수 있다. 제2 데이터 프로세싱 시스템(400)은 서버, 분산 프로세싱 클러스터, 클라우드 프로세싱 시스템 또는 임의의 다른 컴퓨팅 장치일 수 있다. 제2 데이터 프로세싱 시스템(400)은 적어도 하나의 컴퓨터 프로그램 또는 적어도 하나의 스크립트를 포함하거나 실행할 수 있다. 일부 구현에서, 제2 데이터 프로세싱 시스템(400)은 하나 이상의 스크립트를 실행하도록 구성된 하나 이상의 프로세서와 같은 소프트웨어 및 하드웨어의 조합을 포함한다.
제2 데이터 프로세싱 시스템(400)은 데이터베이스(410) 및 프로세싱 회로(420)를 포함하는 것으로 도시되어있다. 데이터베이스(410)는 수신된 익명 상호 작용 데이터를 저장할 수 있다. 일부 구현에서, 데이터베이스(410)는 식별자(34)를 저장한다. 예를 들어, 콘텐츠 아이템(32)을 클라이언트 장치(10)에 제공할 때, 콘텐츠 제공자 장치(30)는 데이터베이스(410)에 저장하기 위해 식별자(34) 및/또는 콘텐츠 아이템(32)과 관련된 다른 정보를 제2 데이터 프로세싱 시스템(400)으로 전송할 수 있다. 식별자(34)는 나중에 익명 상호 작용 데이터의 상관을 위해 사용될 수 있다. 데이터베이스(410)는 하나 이상의 저장 매체를 포함할 수 있다. 저장 매체는 자기 저장 장치, 광학 저장 장치, 플래시 저장 장치 및/또는 RAM을 포함할 수 있지만 이에 제한되지는 않는다. 제2 데이터 프로세싱 시스템(400)은 데이터베이스 기능(즉, 데이터베이스(410)에 저장된 데이터 관리)을 수행하기 위해 다양한 API를 구현하거나 용이하게할 수 있다. API는 SQL, ODBC, JDBC 및/또는 기타 데이터 저장 및 조작 API일 수 있지만 이에 국한되지 않는다.
프로세싱 회로(420)는 프로세서(430) 및 메모리(440)를 포함한다. 메모리(440)는 프로세서(430)에 의해 실행될 때 프로세싱 회로(420)가 여기에 설명된 다양한 동작을 수행하게 하는 명령어를 저장할 수 있다. 여기에 설명된 동작은 소프트웨어, 하드웨어 또는 이들의 조합을 사용하여 구현될 수 있다. 프로세서(430)는 마이크로 프로세서, ASIC, FPGA 등, 또는 이들의 조합을 포함할 수 있다. 많은 구현에서, 프로세서(430)는 멀티 코어 프로세서 또는 프로세서 어레이일 수 있다. 프로세서(430)는 보안 환경을 구현하거나 용이하게할 수 있다. 예를 들어, 프로세서(430)는 메모리(440)에서 개인 영역(예를 들어, 엔클레이브)을 정의하기 위해 소프트웨어 가드 확장(SGX)을 구현할 수 있다. 메모리(440)는 프로세서(430)에 프로그램 명령을 제공할 수 있는 전자, 광학, 자기 또는 임의의 다른 저장 장치를 포함할 수 있지만 이에 제한되지 않는다. 메모리(440)는 플로피 디스크, CD-ROM, DVD, 자기 디스크, 메모리 칩, ROM, RAM, EEPROM, EPROM, 플래시 메모리, 광학 매체, 또는 프로세서(430)가 명령어를 읽을 수 있는 임의의 다른 적절한 메모리를 포함할 수 있다. 명령어에는 C, C ++, C #, Java, JavaScript, Perl, HTML, XML, Python 및 Visual Basic과 같은 적절한 컴퓨터 프로그래밍 언어의 코드가 포함될 수 있다.
메모리(440)는 분석 회로(442) 및 복호화 회로(444)를 포함할 수 있다. 분석 회로(442)는 익명 상호 작용 데이터를 수신하고 익명 상호 작용 데이터에 관한 집계 정보를 생성할 수 있다. 다양한 구현에서, 분석 회로(442)는 수신된 데이터를 설명하는 통계적 측정을 생성하기 위해 수신된 데이터에 대한 통계적 연산을 수행한다. 예를 들어, 분석 회로(442)는 마케팅 캠페인과 관련된 상호 작용 레이트를 결정할 수 있다.
복호화 회로(444)는 암호화된 데이터를 수신하고 이를 복호화하여 암호화되지 않은 데이터를 생성할 수 있다. 다양한 구현에서, 복호화 회로(444)는 제1 데이터 프로세싱 시스템(300)으로부터 암호화된 데이터를 수신한다. 복호화 회로(444)는 비대칭적으로 암호화된 데이터를 복호화할 수 있다. 추가적으로 또는 대안적으로, 복호화 회로(444)는 대칭 및/또는 임계 암호화된 데이터를 복호화할 수 있다. 다양한 구현에서, 복호화 회로(444)는 암호화 키를 생성한다. 암호화 키는 시스템(100)의 다른 컴포넌트(예를 들어, 클라이언트 장치(10), 제1 데이터 프로세싱 시스템(300) 등)와 공유될 수 있다. 추가적으로 또는 대안적으로, 복호화 회로(444)는 상이한 엔티티로부터 데이터의 복호화를 용이하게 하기 위해 하나 이상의 비밀(예를 들어, 키, 코드 등)을 수신 및/또는 포함할 수 있다.
도 2-4를 참조하면, 예시적인 구현에 따라, 상이한 엔티티로부터 데이터를 안전하게 전송하고 상관시키기 위한 개선된 컴퓨터 아키텍처가 도시된다. 요약하면, 콘텐츠 제공자(30)는 클라이언트 장치(10)를 통해 사용자에게 콘텐츠 아이템(32)을 제공할 수 있다. 콘텐츠 아이템(32)은 특정 사용자에게 특정될 수 있다. 사용자는 콘텐츠 아이템(32)와 상호 작용할 수 있다. 예를 들어, 비디오를 본 사용자는 비디오를 클릭할 수 있다. 콘텐츠 아이템(32)와의 사용자 상호 작용을 측정하는 것이 바람직한다. 예를 들어, 비디오를 제공하는 콘텐츠 제공자 장치(30)는 얼마나 많은 사용자가 비디오를 클릭했는지 알고 싶어할 수 있다. 추가적으로 또는 대안적으로, 사용자는 콘텐츠 아이템(32)과의 상호 작용의 결과로서 콘텐츠 제공자 장치(30)에 의해 제공되는 다른 콘텐츠와 상호 작용할 수 있다. 예를 들어, 비디오를 보여준 사용자는 나중에 비디오에 등장하는 아이템을 구매하기 위해 콘텐츠 제공자 장치(30)에 의해 유지되는 웹 사이트를 방문할 수 있다. 일부 구현에서, 상호 작용은 온라인 전환이거나 이와 관련된다. 따라서 PII를 공개하지 않고 온라인 콘텐츠와의 사용자 상호 작용을 안전하고 익명으로 측정할 수 있는 시스템이 필요하다. 여기에 설명된 새로운 암호화 및 컴퓨터 아키텍처는 PII를 공개하지 않고 온라인 콘텐츠와의 사용자 상호 작용에 대한 안전한 익명 측정을 용이하게 한다.
예를 들어, 도 2는 상이한 엔티티로부터 데이터를 안전하게 전송하고 상관시키기 위한 시스템(110)이다. 다양한 구현에서, 시스템(110)은 ESA(encode-shuffle-analyze) 아키텍처를 구현한다. ESA 아키텍처는 상호 작용 데이터의 익명화를 용이하게할 수 있다. 예를 들어, 클라이언트 장치(10)는 상호 작용 데이터를 생성하기 위해 콘텐츠 발행자 장치(20) 및/또는 콘텐츠 제공자 장치(30)와 상호 작용할 수 있다. 클라이언트 장치(10)는 상호 작용 데이터를 인코딩하고 이를 셔플링을 위해 제1 데이터 프로세싱 시스템(300)으로 안전하게 전송할 수 있다. 제1 데이터 프로세싱 시스템(300)은 수신된 데이터를 셔플링(예를 들어, 수신된 데이터에 대해 다양한 난독화 동작을 수행)하고 셔플링된 데이터를 제2 데이터 프로세싱 시스템(400)으로 안전하게 전송할 수 있다. 제2 데이터 프로세싱 시스템(400)은 수신된 데이터를 분석(예를 들어, 수신된 데이터의 다양한 상관 연산을 수행)하고 PII를 공개하지 않고 집합(집계) 정보를 생성할 수 있다.
단계 502에서, 클라이언트 장치(10)는 콘텐츠 발행자 장치(20)로부터 정보 자원(22)을 수신한다. 일부 구현에서 정보 자원(리소스)는 웹 페이지이다. 구체적인 예로서, 브라우저(예: 애플리케이션(200) 등)를 사용하는 사용자는 검색 엔진(예: 콘텐츠 게시자 등)에 의해 게시된 웹 페이지(예: 정보 리소스(22) 등)로 이동할 수 있다. 추가적으로 또는 대안적으로, 정보 자원은 제3 자 정보 자원일 수 있다. 구체적인 예로서, 브라우저(예를 들어, 애플리케이션(200) 등)를 사용하는 사용자는 콘텐츠 제공자가 콘텐츠 제공자에 의해 생성된 콘텐츠 아이템을 게시한 제3 자 리소스로 이동할 수 있다. 다양한 구현에서, 정보 자원(22)은 콘텐츠 요청자(24)를 포함한다. 애플리케이션(200)은 콘텐츠 요청자(24)에 기초하여 정보 자원(22)과 연관된 콘텐츠 아이템(32)의 위치를 결정할 수 있다. 예를 들어, 콘텐츠 요청자(24)는 콘텐츠 아이템(32)의 위치를 제공하는 태그(예를 들어, URL 주소, 파라미터화된 문자열, 콘텐츠 도메인 등)를 포함할 수 있다. 추가적으로 또는 대안적으로, 콘텐츠 요청자(24)는 콘텐츠 아이템(32)을 공급할 제3자를 나타내는 태그를 포함할 수 있다. 예를 들어, 콘텐츠 요청자(24)는 입력 데이터에 기초하여 특정 콘텐츠 아이템(34)을 동적으로 생성하는 제2 데이터 프로세싱 시스템(400)으로부터 콘텐츠 아이템(34)을 페치하도록 애플리케이션(200)을 지시하는 태그를 포함할 수 있다. 단계 504에서, 애플리케이션(200)은 콘텐츠 요청자(24)에 의해 지정된 콘텐츠 아이템(32)에 대한 요청을 콘텐츠 제공자 장치(30)에 전송한다. 전술한 바와 같이, 일부 구현에서, 콘텐츠 제공자 장치(30)는 제2 데이터 프로세싱 시스템(400)일 수 있거나 이와 연관될 수 있다. 단계 506에서, 콘텐츠 제공자 장치(30)는 요청된 콘텐츠 아이템(32)을 클라이언트 장치(10)로 전송한다. 다양한 구현에서, 콘텐츠 아이템(32)은 식별자(34)를 포함한다. 일부 구현에서, 콘텐츠 제공자 장치(30)는 식별자(34) 및 클라이언트 장치(10)의 식별자를 기록한다. 예를 들어, 콘텐츠 제공자 장치(30)는 식별자 "20742280"이 클라이언트 장치 "2480802349"로 전송되었음을 기록할 수 있다.
애플리케이션(200)은 수신된 정보 자원(리소스)(22) 및/또는 콘텐츠 아이템(32)을 디스플레이할 수 있다. 일부 구현에서, 애플리케이션(200)은 식별자(34)를 기록한다. 애플리케이션(200)을 사용하는 사용자는 온라인 콘텐츠와 상호 작용할 수 있다. 예를 들어, 사용자는 수신된 콘텐츠 아이템(32)과 상호 작용할 수 있다. 추가적으로 또는 대안적으로, 사용자는 다른 온라인 콘텐츠와 상호 작용할 수 있다. 예를 들어, 사용자는 수신된 콘텐츠 아이템(32) 및/또는 콘텐츠 제공자 장치(30)와 관련된 온라인 콘텐츠와 상호 작용할 수 있다. 구체적인 예로서, 사용자는 비디오 콘텐츠 아이템(32)을 수신한 다음, 비디오 콘텐츠 아이템(32)에 포함된 상품을 구매하기 위해 비디오 콘텐츠 아이템(32)을 제공한 콘텐츠 제공자 장치(30)에 의해 유지되는 웹 사이트를 방문할 수 있다. 온라인 콘텐츠와의 사용자 상호 작용에 응답하여, 애플리케이션(200)은 상호 작용 데이터를 생성할 수 있다. 다양한 구현에서, 상호 작용 데이터는 사용자가 상호 작용한 온라인 콘텐츠와 관련된 콘텐츠 아이템(32)의 식별자(34)를 포함한다. 추가적으로 또는 대안적으로, 상호 작용 데이터는 다른 정보를 포함할 수 있다. 예를 들어, 상호 작용 데이터는 상호 작용, 클라이언트 장치(10) 및/또는 온라인 콘텐츠 제공자와 관련된 데이터를 포함할 수 있다. 구체적인 예로, 구매를 설명하는 상호 작용 데이터의 경우, 상호 작용 데이터는 사용자가 구매로 이어지는 일련의 액션(예: 클릭)과 구매 자체에 관한 정보(예: 가격, 구매 아이템 등)를 설명할 수 있다.
다양한 구현에서, 클라이언트 장치(10)는 상호 작용 데이터를 인코딩한다. 인코딩에는 상호 작용 데이터를 암호화하는 것이 포함될 수 있다. 추가적으로 또는 대안적으로, 다른 인코딩 동작이 사용될 수 있다. 예를 들어, 클라이언트 장치(10)는 상호 작용 데이터로부터 식별자를 제거하고 및/또는 상호 작용 데이터를 조각으로 나눌 수 있다. 단계 510에서, 클라이언트 장치(10)는 인코딩된 상호 작용 데이터를 제1 데이터 프로세싱 시스템(300)으로 전송한다. 다양한 구현에서, 클라이언트 장치(10)는 인코딩된 상호 작용 데이터를 안전하게 전송한다. 예를 들어, 클라이언트 장치(10)는 IP 주소를 모호하게 하기 위해 어니언 라우팅을 사용하여 인코딩된 상호 작용 데이터를 전송할 수 있다.
제1 데이터 프로세싱 시스템(300)은 인코딩된 상호 작용 데이터를 수신하고 다양한 셔플링 동작을 수행할 수 있다. 예를 들어, 제1 데이터 프로세싱 시스템(300)은 인코딩된 상호 작용 데이터를 일괄 수신할 수 있다. 일부 구현에서, 제1 데이터 프로세싱 시스템(300)은 수신된 인코딩된 트랜잭션 데이터에 대한 최소 임계(임계치) 카디널리티 제한을 구현한다. 예를 들어, 제1 데이터 프로세싱 시스템(300)은 최소 임계(임계치)가 충족되지 않는 데이터를 폐기할 수 있다. 구체적인 예로서, 제1 데이터 프로세싱 시스템(300)은 수신된 인코딩된 트랜잭션 데이터가 적어도 천개의 상이한 클라이언트 장치(10)로부터 수신되지 않는 한 폐기할 수 있다. 추가 또는 대안으로, 셔플링 동작은 암시적 식별자 제거, 수신된 인코딩된 상호 작용 데이터를 셔플링(예를 들어, 순서 변경, 다른 소스로부터 데이터 혼합 등), 또는 임의의 다른 익명화 동작을 포함할 수 있다.
단계 512에서, 제1 데이터 프로세싱 시스템(300)은 셔플링된 상호 작용 데이터를 제2 데이터 프로세싱 시스템(400)으로 전송한다. 제2 데이터 프로세싱 시스템(400)은 셔플링된 상호 작용 데이터를 수신하고 다양한 분석 동작을 수행하여 집합(집계) 정보를 생성할 수 있다. 예를 들어, 제2 데이터 프로세싱 시스템(400)은 기본 상호 작용 데이터 및/또는 기본 온라인 상호 작용과 관련된 통계적 측정치(예를 들어, 평균, 중앙값, 모드, 표준 편차, 분산 등)를 결정하기 위해 통계 분석을 수행할 수 있다. 구체적인 예로서, 제2 데이터 프로세싱 시스템(400)은 제1 콘텐츠 아이템(32)과 연관된 셔플링된 상호 작용 데이터를 수신할 수 있고, 제1 콘텐츠 아이템(32)과의 상호 작용으로부터 발생한 임의의 구매의 중앙값(median value)을 결정할 수 있다. 제2 데이터 프로세싱 시스템(400)에 의해 수행되는 분석의 몇 가지 예시적인 구현이 설명되었지만, 임의의 분석 동작은 본 개시의 범위 내에 있다는 것을 이해해야 한다. 예를 들어, 집계 정보에는 상호 작용의 합계(예: 거래, 클릭, 전화 통화 등), 각 상호 작용과 관련된 값의 합계(예: 달러 금액) 및 메타 데이터가 포함될 수 있다. 다양한 구현에서, 제2 데이터 프로세싱 시스템(400)은 복호화 동작을 수행한다. 예를 들어, 제2 데이터 프로세싱 시스템(400)은 인코딩 프로세스 동안 클라이언트 장치(10)에 의해 암호화된 상호 작용 데이터를 복호화할 수 있다.
도 3에서, 구현에 따라 상호 작용 데이터를 생성하는 방법(500)이 도시된다. 요약하면, 애플리케이션(200)은 사용자와 관련된 상호 작용에 응답하여 상호 작용 데이터를 생성한다. 다양한 구현에서 상호 작용은 온라인 상호 작용이다. 다양한 구현에서, 온라인 상호 작용은 하나 이상의 콘텐츠 아이템(32)과 관련된다. 추가적으로 또는 대안적으로, 상호 작용은 오프라인 상호 작용일 수 있다. 단계 502에서, 애플리케이션(200)은 콘텐츠 요청자(24)를 갖는 정보 리소스(22)를 콘텐츠 발행자 장치(20)로부터 수신한다. 다양한 구현에서, 애플리케이션(200)은 복수의 정보 자원(22) 및/또는 복수의 콘텐츠 요청자(24)를 수신한다. 단계 504에서, 애플리케이션(200)은 콘텐츠 제공자 장치(30)로부터 콘텐츠 아이템(32)을 요청한다. 다양한 구현에서, 애플리케이션(200)은 하나 이상의 콘텐츠 제공자(30)로부터 복수의 콘텐츠 아이템(32)을 요청한다(예를 들어, 제1 콘텐츠 제공자 장치(30)로부터의 제1 콘텐츠 아이템(32) 및 제2 콘텐츠 제공자 장치(30)로부터의 제2 콘텐츠 아이템(32) 등). 일부 구현에서, 애플리케이션(200)은 콘텐츠 아이템(32)을 요청하기 위해 광고 네트워크와 상호 작용한다(예를 들어, 애플리케이션(200)은 콘텐츠 아이템(32) 등을 동적으로 프로비저닝할 수 있다.). 예를 들면, 콘텐츠 요청자(24)는 광고 네트워크에 대한 제1 질의를 포함할 수 있으며, 애플리케이션(200)은 제1 질의를 실행하여 컨텐트 제공자 장치(30)에 대한 제2 질의를 수신할 수 있고, 컨텐트 제공자 장치(30)와 함께 제2 질의를 실행하여 컨텐트 아이템(32)을 수신할 수 있다.
단계 506에서, 애플리케이션(200)은 콘텐츠 제공자 장치(30)로부터 콘텐츠 아이템(32)을 수신한다. 애플리케이션(200)은 수신된 콘텐츠 아이템(32)과 연관된 식별자(34)를 기록할 수 있다. 추가적으로 또는 대안적으로, 애플리케이션(200)은 노출(impression)을 기록할 수 있다. 노출은 식별자(34) 및/또는 콘텐츠 발행자 장치(20) 및/또는 콘텐츠 제공자 장치(30)에 대한 주소(예를 들어, URL)를 포함할 수 있다. 단계 508에서, 애플리케이션(200)은 콘텐츠 상호 작용을 생성한다. 다양한 구현에서, 애플리케이션(200)은 온라인 콘텐츠와의 사용자 상호 작용에 응답하여 콘텐츠 상호 작용을 생성한다. 예를 들어, 애플리케이션(200)은 비디오 콘텐츠 아이템(32)을 시청하는 사용자에 응답하여 콘텐츠 상호 작용을 생성할 수 있다. 다양한 구현에서, 애플리케이션(200)은 하나 이상의 규칙에 기초하여 콘텐츠 상호 작용을 생성한다. 예를 들어, 애플리케이션(200)은 사용자 상호 작용의 임계 레벨에 기초하여 콘텐츠 상호 작용을 생성할 수 있다. 구체적인 예로서, 비디오 콘텐츠 아이템(32)은 HTML 아이프레임(iframe)에 디스플레이될 수 있고 애플리케이션(200)은 콘텐츠 상호 작용을 생성하기 전에 아이프레임의 임계 픽셀 수를 렌더링하고 사용자에게 보여줄 것을 요구할 수 있다. 일부 구현에서, 애플리케이션(200)은 콘텐츠 제공자 장치(30)와 관련된 사용자 상호 작용에 응답하여 콘텐츠 상호 작용을 생성한다. 예를 들어, 사용자는 콘텐츠 제공자 장치(30)와 관련된 콘텐츠 아이템(32)과 상호 작용한 다음 콘텐츠 제공자 장치(30)에 의해 유지되는 웹 사이트를 방문하여 애플리케이션(200)이 콘텐츠 상호 작용을 생성하도록 트리거할 수 있다.
콘텐츠 상호 작용은 클라이언트 장치(10), 콘텐츠 발행자 장치(20), 정보 자원(22), 콘텐츠 제공자 장치(30), 콘텐츠 아이템(32), 온라인 상호 작용 및/또는 온라인 콘텐츠 상호 작용과 관련된 임의의 다른 정보와 관련된 콘텐츠 상호 작용 데이터를 포함할 수 있다. 예를 들어, 콘텐츠 상호 작용 데이터는 콘텐츠 상호 작용이 생성되기 전에 사용자가 방문한 웹 사이트의 목록을 포함할 수 있다. 다양한 구현에서, 콘텐츠 상호 작용 데이터는 식별자(34)를 포함한다. 추가적으로 또는 대안적으로, 콘텐츠 상호 작용 데이터는 상호 작용 유형을 포함할 수 있다. 예를 들어, 애플리케이션(200)은 콘텐츠 상호 작용이 조회 후 전환(VTC: view-through-conversion) 또는 클릭 후 전환(CTC: click-through-conversion)임을 결정하고 보고할 수 있다. 일부 구현에서, 애플리케이션(200)은 익명화 동작을 구현한다. 예를 들어, 애플리케이션(200)은 콘텐츠 상호 작용 데이터에 노이즈를 추가할 수 있다. 구체적인 예로서, 애플리케이션(200)은 기존 콘텐츠 상호 작용에 대한 무작위 콘텐츠 상호 작용(예: 발생하지 않은 콘텐츠 상호 작용 등) 및/또는 무작위 콘텐츠 상호 작용 데이터(예: 발생한 콘텐츠 상호 작용에 대한 무작위 콘텐츠 상호 작용 데이터 등)를 생성할 수 있다. 도 3에는 표시되지 않았지만, 다양한 구현에서, 애플리케이션(200)은 콘텐츠 상호 작용 데이터를 제1 데이터 프로세싱 시스템(300)으로 전송한다.
도 4에서, 다른 구현에 따라 상호 작용 데이터를 생성하는 방법(600)이 도시된다. 일부 구현들에서, 방법(600)은 방법(500)의 단계(508)의 상세한 설명이다. 단계 602에서, 사용자는 콘텐츠 제공자 장치(30)와 관련된 콘텐츠 아이템(32)과 상호 작용한다. 예를 들어, 사용자는 소셜 미디어 웹 사이트에서 토스터(toaster)에 대한 광고와 상호 작용할 수 있다. 일부 구현에서, 콘텐츠 아이템(32)과 상호 작용하는 것은 콘텐츠 아이템(32)을 보는 것을 포함한다. 추가적으로 또는 대안적으로, 콘텐츠 아이템(32)과 상호 작용하는 것은 콘텐츠 아이템(32)을 렌더링하는 애플리케이션(200)을 포함할 수 있다. 단계 604에서, 애플리케이션(200)은 노출 이벤트를 기록한다. 노출 이벤트는 식별자(34)를 포함할 수 있다. 추가적으로 또는 대안적으로, 노출 이벤트는 하나 이상의 추가 식별자를 포함할 수 있다. 예를 들어, 노출 이벤트는 콘텐츠 아이템(32)과 연관된 콘텐츠 발행자 장치(20) 및/또는 콘텐츠 제공자 장치(30)의 URL을 포함할 수 있다. 일부 구현에서, 애플리케이션(200)은 하나 이상의 가시성 요건을 만족하는 콘텐츠 아이템(32)에 응답하여 노출 이벤트를 기록한다. 다양한 구현에서, 노출 이벤트는 클라이언트 장치(10)상의 애플리케이션(200)에 의해 저장된다. 일부 구현에서, 노출 이벤트는 콘텐츠 아이템(32)과 관련된 콘텐츠 제공자 장치(30)로 전송된다.
단계 606에서, 사용자는 콘텐츠 아이템(32)과 연관된 콘텐츠 제공자 장치(30)와 상호 작용한다. 예를 들어, 사용자는 콘텐츠 제공자 장치(30)에 의해 유지되는 웹 사이트로 이동할 수 있다. 추가적으로 또는 대안적으로, 사용자는 콘텐츠 제공자 장치(30)에 의해 제공되는 다른 온라인 콘텐츠와 상호 작용할 수 있다. 예를 들어, 사용자는 제3 자 온라인 스토어를 방문하여 콘텐츠 제공자 장치(30)와 관련된 아이템을 구매할 수 있다. 다양한 구현에서, 애플리케이션(200)은 사용자가 콘텐츠 제공자 장치(디바이스)(30)와 상호 작용했음을 결정하기 위해 콘텐츠 제공자 장치(30)의 식별자를 기록된 식별자와 매칭시킨다. 구체적인 예로서, 애플리케이션(200)은 콘텐츠 제공자 장치(30)의 URL을 기록한 다음 사용자가 기록된 URL과 일치하기 위해 탐색하는 미래의 웹 사이트를 결정할 수 있다. 일부 구현에서, 콘텐츠 제공자 장치(30)는 사용자가 콘텐츠 제공자 장치(30)와 상호 작용했음을 결정하기 위해 표시를 애플리케이션(200)에 전송한다. 구체적인 예로서, 콘텐츠 제공자 장치(30)는 클라이언트 장치(10)의 식별자를 기록한 다음, 미래의 웹 사이트 방문자의 식별자가 기록된 식별자와 일치하는지 여부를 결정하고 식별자 일치에 기초한 표시를 클라이언트 장치(10)에 전송할 수 있다.
단계 608에서, 애플리케이션(200)은 상호 작용보고 요청을 수신한다. 다양한 구현에서, 애플리케이션(200)은 콘텐츠 제공자 장치(30)와 연관된 소스로부터 상호 작용보고 요청을 수신한다. 예를 들어, 콘텐츠 제공자 장치(30)에 의해 유지되는 웹 사이트는 상호 작용보고 요청을 애플리케이션(200)에 전송할 수 있다. 다양한 구현에서, 상호 작용 보고 요청은 온라인 콘텐츠와의 사용자 상호 작용에 응답하여 전송된다. 예를 들어, 사용자는 콘텐츠 아이템(32)을 수신하고 나중에 콘텐츠 아이템(32) 및 콘텐츠를 제공한 콘텐츠 제공자 장치(30)와 연관된 웹 사이트를 방문할 수 있다. 웹 사이트는 사용자가 콘텐츠 제공자 장치(30)에 의해 제공된 콘텐츠 아이템(32)을 제공 받았다고 판단하고 사용자와 관련된 클라이언트 장치(10)에 상호 작용보고 요청을 전송할 수 있다. 다양한 구현에서, 상호 작용보고 요청은 위에서 설명한 온라인 상호 작용과 관련된 정보를 포함한다.
단계 610에서, 애플리케이션(200)은 상호 작용 보고서를 전송한다. 다양한 구현에서, 상호 작용 보고서는 식별자(34)를 포함한다. 애플리케이션(200)은 상호 작용 보고서를 콘텐츠 제공자 장치(30)로 전송할 수 있다. 추가적으로 또는 대안적으로, 애플리케이션(200)은 상호 작용 보고서를 다른 곳으로 전송할 수 있다. 예를 들어, 애플리케이션(200)은 상호 작용보고 요청에 의해 지정된 위치로 상호 작용 보고서를 전송할 수 있다. 일부 구현에서, 애플리케이션(200)은 상호 작용 보고서를 콘텐츠 발행자 장치(20)로 전송한다. 일부 구현에서, 애플리케이션(200)은 상호 작용보고를 요청하기 위한 인터페이스를 구현하거나 용이하게 한다. 예를 들어, 외부 엔티티는 API를 사용하여 애플리케이션(200)과 상호 작용할 수 있다. 구체적인 예로서, 외부 엔티티는 상호 작용보고를 수신하기 위해 애플리케이션(200)에 질의할 수 있다.
도 5-15를 참조하면, 다양한 구현에 따라 비밀 공유를 사용하여 서로 다른 엔티티의 데이터를 안전하게 전송하고 상관시키는 개선된 컴퓨터 아키텍처가 표시된다. 간략한 개요에서, 비밀 공유 방식은 시스템(110)의 ESA 아키텍처 내에서 구현될 수 있다. 예를 들어, 클라이언트 장치(10)는 비밀 공유 방식을 사용하여 상호 작용 데이터를 암호화하고 생성된 비밀 공유를 제1 데이터 프로세싱 시스템(300)으로 전송할 수 있다. 제1 데이터 프로세싱 시스템(300)은 복수의 클라이언트 장치(10)로부터 비밀 공유를 수신할 수 있고 임계 수(threshold number)가 수신되면 비밀 공유를 복호화할 수 있다. 임계 수가 수신되지 않은 비밀 공유는 액세스할 수 없으므로(예: 복호화할 수 없음) 최소 임계 카디널리티 제한이 적용된다.
도 5를 참조하면, 예시적인 구현에 따라, 상호 작용 데이터를 암호화하기 위해 비밀 공유 방식을 구현하는 시스템(120)이 도시된다. 다양한 구현에서 비밀 공유 방식는 Shamir 비밀 공유(SSS) 알고리즘이다. SSS 알고리즘이 시드될 수 있다. 일부 구현에서, 클라이언트 장치(10)는 상호 작용 데이터로부터 시드를 생성한다. 예를 들어, 클라이언트 장치(10)는 SSS 알고리즘에 대한 시드를 결정적으로 생성하기 위해 상호 작용 데이터에 대해 해싱 동작을 수행할 수 있다. 다양한 구현에서, 클라이언트 장치(10) 및 제1 데이터 프로세싱 시스템(300)은 협력적으로 SSS 알고리즘을 수행한다. 예를 들어, 클라이언트 장치(10)는 SSS 알고리즘에 대한 시드를 생성하기 위해 제1 데이터 프로세싱 시스템(300)과 함께 OPRF(oblivious pseudorandom function)를 구현할 수 있다. 일부 구현에서, 시스템(120)은 상호 작용 데이터를 암호화하기 위해 검증 가능한 비밀 공유(VSS) 알고리즘을 구현한다. 예를 들어, 시스템(120)은 동형 암호화를 사용하여 SSS 알고리즘을 구현할 수 있다. 구체적인 예로서, 시스템(120)은 펠드먼(Feldman) 검증 가능한 비밀 공유(FVSS: Feldman verifiable secret sharing) 알고리즘을 구현할 수 있다.
다양한 구현에서, 시스템(120)은 전술한 바와 같이 단계 502-506을 수행한다. 단계 702에서, 제2 데이터 프로세싱 시스템(400)은 클라이언트 장치(10)에 암호화 키를 전송한다. 다양한 구현에서 암호화 키는 비대칭 암호화 공개 키이다. 클라이언트 장치(10)는 수신된 공개 키를 사용하여 상호 작용 데이터를 비대칭적으로 암호화할 수 있다. 추가적으로 또는 대안적으로, 클라이언트 장치(10)는 비밀 공유 방식을 사용하여 상호 작용 데이터를 암호화할 수 있다. 일부 구현에서, 클라이언트 장치(10)는 비밀 공유 방식을 사용하여 비대칭적으로 암호화된 상호 작용 데이터를 암호화한다. 예를 들어, 클라이언트 장치(10)는 먼저 수신된 공개 키를 사용하여 상호 작용 데이터를 비대칭적으로 암호화하여 암호화된 상호 작용 데이터를 생성한 다음 비밀 공유 방식을 사용하여 암호화된 상호 작용 데이터를 암호화하여 비밀 공유를 생성할 수 있다. 다양한 구현에서, 클라이언트 장치(10)는 비밀 공유를 식별하는 태그를 생성한다. 태그는 암호 복호화 중에 사용할 수 있다.
단계 710에서, 클라이언트 장치(10)는 비밀 공유를 제1 데이터 프로세싱 시스템(300)으로 전송한다. 일부 구현에서, 단계 710은 추가 정보를 전송하는 것을 포함한다. 예를 들어, 클라이언트 장치(10)는 태그 및/또는 검증 데이터를 전송할 수 있다. 제1 데이터 프로세싱 시스템(300)은 복수의 클라이언트 장치(10)로부터 비밀 공유를 수신할 수 있다. 다양한 구현에서, 제1 데이터 프로세싱 시스템(300)은 비밀 공유를 복호화하기 전에 임계 개수의 비밀 공유가 수신될 때까지 대기한다. 제1 데이터 프로세싱 시스템(300)은 비대칭적으로 암호화된 상호 작용 데이터를 복구하기 위해 비밀 공유를 복호화할 수 있다. 일부 구현에서, 비밀 공유는 그룹으로 복호화된다. 예를 들어, 각 비밀 공유는 태그에 의해 식별될 수 있고 유사한 태그를 갖는 비밀 공유는 함께 복호화될 수 있다. 다양한 구현에서, 제1 데이터 프로세싱 시스템(300)은 전술한 바와 같이 비대칭적으로 암호화된 상호 작용 데이터를 셔플링할 수 있다.
단계 718에서, 제1 데이터 프로세싱 시스템(300)은 셔플링된 비대칭적으로 암호화된 상호 작용 데이터를 제2 데이터 프로세싱 시스템(400)으로 전송한다. 제2 데이터 프로세싱 시스템(400)은 상호 작용 데이터를 복구하기 위해 셔플링된 비대칭적으로 암호화된 상호 작용 데이터를 비대칭적으로 복호화할 수 있다. 다양한 구현에서, 제2 데이터 프로세싱 시스템(400)은 전술한 바와 같이 상호 작용 데이터를 분석하고 집합(집계) 정보를 생성한다.
도 6에서, 구현에 따라 비밀 공유를 수행하는 방법(700)이 도시된다. 다양한 구현에서, 시스템(120)은 방법(700)을 수행한다. 다양한 구현에서, 방법(700)은 ESA 아키텍처의 일부로서 구현된다. 예를 들어, ESA 아키텍처의 인코딩 및/또는 셔플링 컴포넌트는 방법(700)을 포함할 수 있다. 일부 구현에서, 방법(700)은 독립형이다(예를 들어, ESA 아키텍처와 별도로 구현됨). 단계 702에서, 클라이언트 장치(10)는 제2 데이터 프로세싱 시스템(400)으로부터 공개 키를 수신한다. 전술한 바와 같이, 공개 키는 제2 데이터 프로세싱 시스템(400)이 보유한 비대칭 암호화 개인 키에 대응하는 비대칭 암호화 공개 키일 수 있다. 단계 704에서, 클라이언트 장치(10)는 공개 키를 사용하여 데이터 아이템을 암호화하여 단일 암호화된 데이터 아이템을 생성한다. 다양한 구현에서, 데이터 아이템은 도 3 내지 도 4를 참조하여 위에서 설명된 상호 작용 데이터이다. 단계 706에서, 클라이언트 장치(10)는 임계 암호화 함수를 사용하여 단일 암호화된 데이터 아이템을 암호화하여 비밀 공유를 생성한다. 다양한 구현에서 임계 암호화 함수은 위에서 설명한 SSS 알고리즘이다. 일부 구현에서, 단계 706은 클라이언트 장치(10) 및 제1 데이터 프로세싱 시스템(300)에 의해 협력적으로 수행된다.
단계 708에서, 클라이언트 장치(10)는 단일 암호화된 데이터 아이템으로부터 태그를 생성한다. 다양한 구현에서 태그는 비밀 공유를 그룹의 일부로 식별한다. 예를 들어, 임계 암호화 함수를 사용하여 암호화된 단일 암호화 데이터 아이템과 제1 시드는 모두 그룹으로 식별되는 제1 태그를 공유할 수 있는 반면, 제2 시드를 사용하여 암호화된 아이템은 모두 제2 태그를 공유할 수 있다. 다양한 구현에서, 태그에 의해 식별되는 각 그룹은 식별자(34)에 대응한다. 예를 들어, 마케팅 캠페인은 마케팅 캠페인의 일부로서 식별하는 식별자(34)를 각각 갖는 복수의 콘텐츠 아이템(32)을 포함할 수 있다. 마케팅 캠페인의 콘텐츠 아이템(32) 중 하나와 관련하여 온라인 상호 작용이 생성될 때, 결과적인 비밀 공유는 마킹 캠페인과 관련된 그룹의 일부로서 비밀 공유를 식별하는 태그를 포함할 수 있다. 단계 710에서, 클라이언트 장치(10)는 비밀 공유 및 태그를 제1 데이터 프로세싱 시스템(300)으로 전송한다.
단계 712에서, 제1 데이터 프로세싱 시스템(300)은 복수의 비밀 공유 및 복수의 태그를 수신한다. 비밀 공유 및 태그의 각각은 다른 클라이언트 장치(10)로부터 수신될 수 있다. 추가적으로 또는 대안적으로, 단일 클라이언트 장치(10)는 많은 비밀 공유 및 수반되는 태그를 전송할 수 있다. 단계 714에서, 제1 데이터 프로세싱 시스템(300)은 복수의 태그를 사용하여 복수의 비밀 공유를 그룹화한다. 예를 들어, 제1 그룹을 나타내는 제1 태그를 갖는 제1 비밀 공유는 제1 그룹을 나타내는 제2 태그를 갖는 제2 비밀 공유와 그룹화될 수 있고, 제2 그룹을 나타내는 제3 태그를 갖는 제3 비밀 공유는 자체적으로 그룹화될 수 있다.
단계(716)에서, 각 그룹에 대해, 제1 데이터 프로세싱 시스템(300)은 단일 암호화된 데이터 아이템을 복구하기 위해 복수의 비밀 공유를 복호화한다. 다양한 구현에서, 제1 데이터 프로세싱 시스템(300)은 다항식 보간을 사용하여 복수의 비밀 공유를 복호화한다. 단계 718에서, 제1 데이터 프로세싱 시스템(300)은 단일 암호화된 데이터 아이템을 제2 데이터 프로세싱 시스템(400)으로 전송한다. 다양한 구현에서, 단일 암호화된 데이터 아이템은 제2 데이터 프로세싱 시스템(400)으로 전송될 때 PII가 없다.
단계 720에서, 제2 데이터 프로세싱 시스템(400)은 단일 암호화된 데이터 아이템을 수신한다. 단계 722에서, 제2 데이터 프로세싱 시스템(400)은 데이터 아이템을 복구하기 위해 개인 키를 사용하여 단일 암호화된 데이터를 복호화한다. 다양한 구현에서 복호화는 비대칭 복호화이다. 다양한 구현에서 개인 키는 위의 비대칭 암호화 공개 키에 해당하는 비대칭 암호화 개인 키이다.
도 6a에서, 임계 암호화 함수를 사용하여 단일 암호화된 데이터 아이템을 암호화하는 단계(706)가 구현에 따라 상세하게 도시된다. 다양한 구현에서, 단일 암호화된 데이터 아이템은 SSS 알고리즘을 사용하여 암호화된다. 그러나 다른 비밀 공유 방식이 가능하다는 것을 이해해야 한다. 또한, 도 6a는 클라이언트 장치(10)와 관련하여 설명되며, 시스템(120)의 임의의 컴포넌트는 단계 706에 포함될 수 있다. 간단히 요약하면, (k, n) SSS 알고리즘은 k 비밀 공유의 서브세트가 비밀 S를 복구하기에 충분하도록 n 비밀 공유를 생성하여 비밀 S(예: 상호 작용 데이터)를 암호화한다. 이를 위해, k-1 차 다항식 f(x)가 구축된다. 예를 들어, f(x)는 수학식 1과 같은 형식을 취할 수 있다.
여기서 가 되도록 무작위로 선택된 양의 정수이며, 여기서 P는 P의 크기가 S의 크기보다 큰 소수이고, 이다. f(x)는 n 개의 포인트에서 평가되어 n 개의 비밀 공유(i, f(i))를 생성하며, 여기서 i는 평가 포인트이다. S를 복구하기 위해, k 개의 비밀 공유(i, f(i))가 다항식 보간을 사용하여 결합되어 f(x)를 복구하며, 상수 항 이 비밀 S이다.
단계 730에서, 클라이언트 장치(10)는 숫자 공간(넘버스페이스)(numberspace)을 생성한다. 추가적으로 또는 대안적으로, 시스템(120)의 다른 컴포넌트는 숫자 공간의 생성을 생성하거나 용이하게 할 수 있다. 예를 들어, 제1 데이터 프로세싱 시스템(300)은 숫자 공간을 생성하기 위해 클라이언트 장치(10)와 협력적으로 상호 작용할 수 있다. 일부 구현에서, 숫자 공간은 도메인 제한이다. 예를 들어, 숫자 공간은 크기 P의 유한 필드 F일 수 있으며, 여기서 P는 P가 S의 크기보다 큰 소수이다. 일부 구현에서, 숫자 공간은 무작위로 생성된다(예를 들어, 도메인 제한을 만족하는 무작위 숫자 공간이 선택되는 등). 일부 구현에서, 숫자 공간은 미리 결정된다.
단계 732에서, 클라이언트 장치(10)는 숫자 공간으로부터 다항식 계수 을 비밀리에 선택한다. 일부 구현에서, k는 미리 결정된다. 추가적으로 또는 대안적으로, k는 동적으로 결정될 수 있다. 예를 들어, 클라이언트 장치(10)는 암호화되는 데이터의 유형에 기초하여 k를 결정할 수 있다. 구체적인 예로, 특정 데이터는 k = 10,000,000을 사용하는 반면, 최소한으로 드러내는 데이터는 k = 100,000을 사용할 수 있다. 일부 구현에서, 시스템(120)의 다른 컴포넌트는 다항식 계수 선택을 용이하게 하거나 구현한다. 예를 들어, 제1 데이터 프로세싱 시스템(300)은 다항식 계수를 선택하기 위해 클라이언트 장치(10)와 협력적으로 상호 작용할 수 있다.
단계 734에서, 클라이언트 장치(10)는 임계 비밀 공유 다항식을 구성한다. 다양한 구현에서, 단계 734는 f(x)를 구성하는 것을 포함한다. 예를 들어, 클라이언트 장치(10)는 f(x)를 생성하기 위해 다항식 계수를 단일 암호화된 데이터 아이템과 결합할 수 있다. 단계 736에서, 클라이언트 장치(10)는 비밀을 생성하기 위해 평가 포인트에서 임계 비밀 공유 다항식 f(x)를 평가한다. 다양한 구현에서 비밀은 f(i)이다. 일부 구현에서 평가 포인트는 무작위(랜덤)이다. 추가적으로 또는 대안적으로, 시스템(120)은 평가 포인트를 동적으로 결정할 수 있다. 예를 들어, 각각의 고유한 클라이언트 장치(10)는 의사랜덤 함수를 사용하여 결정된 고유한 평가 포인트를 사용할 수 있다. 단계 738에서, 클라이언트 장치(10)는 비밀 및 평가 포인트를 비밀 공유로 결합(컴바인)한다. 다양한 구현에서 비밀 공유는 튜플(i, f(i))이다. 튜플(i = 0, f(0))은 유효한 비밀 공유가 아니다(예: 평가 포인트가 0과 같지 않음).
도 7을 참조하면, 구현에 따라 임계 비밀 공유 다항식(806)을 예시하는 그래프(800)가 도시된다. 다항식(806)은 f(x)에 대응할 수 있다. 다항식(806)은 x- 도메인(802) 및 y- 도메인(804)에 의해 정의된 필드 F에 존재할 수 있다. 다양한 구현에서, x- 도메인(802) 및/또는 y- 도메인(804)은 도메인 제한적이다. 예를 들어, x- 도메인(802) 및 y- 도메인(804)은 모듈로(modulo) P의 정수로 구성된 유한 필드일 수 있다. 구체적인 예로서, x- 도메인(802) 및 y- 도메인(804)은 인 정수 모듈로 P로부터 구성된 유한 필드일 수 있다. 다항식(806)은 복수의 포인트(810-812)를 포함할 수 있다. 전술한 바와 같이, 포인트 810은 비밀 S일 수 있다. 다양한 구현에서, 포인트(지점)(810)은 단일 암호화된 데이터 아이템이다. 그러나 다른 비밀도 가능하다. 포인트(812)는 위에서 설명된 다항식 계수일 수 있다. S의 복구 동안, 하나 이상의 포인트(812)가 수신되고 다항식(806)을 복구하기 위해 다항식 보간을 사용하여 결합될 수 있다. 다른 복구 동작이 가능하다는 것을 이해해야한다.
도 8을 참조하면, 구현에 따라, 상호 작용 데이터를 암호화하기 위해 결정론적 시드를 포함하는 비밀 공유 방식을 구현하는 시스템(130)이 도시된다. 다양한 구현에서, 시스템(130)은 전술한 바와 같이 단계 502-506을 수행한다. 시스템(130)은 결정론적 시드를 포함하여 전술한 비밀 공유 방식을 구현할 수 있다. 간단히 요약하면 결정론적 시드는 소스 데이터(예: 상호 작용 데이터 등)에서 결정론적으로 생성되고 비밀 공유 방식의 일부로 사용되는 시드이다.
결정론적 시드를 포함하는 비밀 공유 방식는 기존 시스템에 비해 많은 이점을 제공한다. 일부 구현에서, 데이터를 안전하게 전송하고 상관시키는 것은 데이터에 잡음을 추가함으로써 데이터를 조대화(coarsening)하는 것을 포함한다. 예를 들어, 시스템은 사용자 데이터, 중간 값 또는 최종 출력에 임의의 가우스 노이즈를 추가하여 통계적 추론을 사용자 데이터에 둔감하게(insensitive) 만들 수 있다(예: 통계적 추론은 PII를 나타내지 않음). 그러나 노이즈를 추가하면 데이터의 표준 편차가 증가하므로 통계적으로 신뢰할 수 있는 결과를 얻으려면 더 큰 샘플 크기가 필요하다. 예를 들어, 사용자 데이터에 노이즈를 추가하면 최상의 경우 리포트(보고서) 카운트 의 제곱근만큼 표준 편차의 크기가 증가할 수 있다. 구체적인 예로, 10 억 사용자의 데이터를 분석하면 최대 백만 사용자의 공통 신호를 놓칠 수 있다. 따라서 노이즈 추가에 의존하는 시스템은 피크 파워 법칙 분포(peaky power-law distributions)에서 빈번한 요소를 측정하는 데 가장 적합하다. 그러나, 여기에 설명된 고유한 암호화 및 컴퓨터 아키텍처 방법론은 PII를 보호하면서 엄청난 샘플 크기를 요구하지 않고도 데이터의 안전한 전송 및 상관 관계를 촉진할 수 있다. 특히, 여기에 설명된 시스템 및 방법은 노이즈를 추가하지 않고 기존 시스템보다 훨씬 더 작은 샘플 크기를 필요로하지 않고 일반적이지 않은 메시지(예: 높은 최소 엔트로피 메시지 등)에 관한 데이터를 안전하게 전송하고 상관시킬 수 있다. 따라서, 본 개시의 시스템 및 방법은 저 발생 이벤트를 보다 쉽게 측정할 수 있다(예를 들어, 거의 방문하지 않는 웹 사이트에 대한 분석 수집). 또한, 본 개시 내용의 시스템 및 방법은 PII를 보호하면서 데이터의 세분화된 분석을 용이하게 할 수 있다. 예를 들어, 특정 속성을 가진 데이터는 안전하게 전송되기 전에 태그가 지정될 수 있다(예: 거의 방문하지 않는 웹 사이트와 관련됨). 그런 다음 태그가 지정된 데이터를 그룹으로 분석할 수 있으므로 일반 데이터에 대해 수행되는 분석보다 특정 속성과 관련된 공통 신호에 대한 민감도가 더 높아진다(예: 특정 속성이있는 데이터와 특정 속성이 없는 데이터의 혼합). 예를 들어 콘텐츠 게시자는 콘텐츠 게시자가 관리하는 웹 사이트를 방문할 때 휴대 전화에서 사용되는 API를 알고 싶어할 수 있다. 또한 웹 사이트는 휴대 전화 방문자보다 데스크톱 방문자의 비율이 훨씬 더 높을 수 있다. 따라서 일반 데이터의 수집 및 분석(예: 데스크톱 방문자 및 휴대 전화 방문자를 포함한 데이터)은 휴대폰 데이터가 데스크톱 데이터에 의해 삭제되기(washed out) 때문에 휴대폰 방문자가 사용하는 많은 API를 놓칠 수 있다. 그러나, 본 발명의 시스템 및 방법은 데이터를 안전하게 전송 및 분석하기 전에 데스크톱 데이터를 데스크톱 데이터로, 모바일 폰(휴대폰) 데이터를 휴대폰 데이터로 태깅할 수 있다. 따라서 휴대폰 API 사용에 대한 통계 정보를 보존하면서 휴대폰 데이터를 별도로 분석할 수 있다.
하나의 구현은 상호 작용 데이터를 사용하여 생성된 결정론적 시드를 포함하는 비밀 공유 방식을 포함할 수 있다. 예를 들어, 결정론적 시드는 상호 작용 데이터를 사용하여 결정론적으로 생성될 수 있고 결정론적 시드는 비밀 공유 방식에 대한 입력으로 사용될 수 있다. 다양한 구현에서, 결정론적 시드는 상호 작용 데이터를 해시 함수에 입력함으로써 생성될 수 있다.
다른 구현은 OPRF 프로토콜을 사용하여 생성된 결정적 시드를 포함하는 비밀 공유 방식을 포함할 수 있다. 예를 들어, 결정론적 시드는 상호 작용 데이터를 사용하여 의사랜덤 함수에 인게이지(engaging)함으로써 결정론적으로 생성될 수 있으며, 결정론적 시드는 비밀 공유 방식에 대한 입력으로 사용될 수 있다. 다양한 구현에서, 클라이언트 장치(10)는 제1 데이터 프로세싱 시스템(300)과 OPRF 프로토콜에 인게이지한다. 예를 들어, 클라이언트 장치(10)는 상호 작용 데이터를 해시하고 해시된 상호 작용 데이터를 제1 데이터 프로세싱 시스템(300)으로 전송할 수 있다. 제1 데이터 프로세싱 시스템(300)은 수신된 데이터를 해시(해싱)하고 비밀 공유 방식에 대한 입력을 위해 클라이언트 장치(10)로 다시 전송할 수 있다. 일부 구현에서, 결정론적 시드는 제1 데이터 프로세싱 시스템(300)에 의해 생성된 마스터 키이다. 일부 구현에서 사용되는 해시 함수는 느린 해시 함수이다. 예를 들어, 마스터 키는 스크립트 슬로우(Scrypt slow) 해시 함수를 사용하여 생성될 수 있다.
또 다른 구현은 식별자를 상호 작용 데이터에 바인딩하고 상호 작용 데이터 및 바인딩된 식별자에 기초하여 결정론적 시드를 결정적으로 생성하는 것을 포함할 수 있다. 예를 들어, 전술한 바와 같이 개인 ID 및/또는 그룹 ID는 상호 작용 데이터에 결합될 수 있다. 식별자를 상호 작용 데이터에 바인딩하면 최소 임계 카디널리티 제한을 쉽게 적용할 수 있다. 다양한 구현에서, 클라이언트 장치(10)는 식별자를 결정하고 상호 작용 데이터에 식별자를 추가한다. 클라이언트 장치(10)는 비밀 공유 방식에 대한 입력으로서 사용될 수 있는 결정론적 시드를 생성하기 위해 상호 작용 데이터 및 추가된 식별자를 해시(해싱)할 수 있다.
다른 구현은 상호 작용 데이터를 사용하여 생성된 결정론적 시드를 포함하는 검증 가능한 비밀 공유 방식을 포함할 수 있다. 예를 들어, 결정론적 시드는 상호 작용 데이터를 사용하여 결정론적으로 생성될 수 있고 결정론적 시드는 비밀 공유 방식에 대한 입력으로 사용될 수 있다. 그런 다음 비밀 공유를 검증(예: 인증)할 수 있다. 구체적인 예로서, 클라이언트 장치(10)는 결정론적 시드를 생성하기 위해 제1 데이터 프로세싱 시스템(300)과 OPRF 프로토콜에 인게이지할 수 있다. 클라이언트 장치(10)는 비밀 공유를 생성하기 위해 비밀 공유 방식에 대한 입력으로서 결정론적 시드를 사용할 수 있다. 제1 데이터 프로세싱 시스템(300)은 그들의 진위성을 보장하기 위해(예를 들어, 그들이 변조되지 않았는지 등) 비밀 공유를 검증할 수 있다.
도 8에서, 클라이언트 장치(10)는 상호 작용 데이터를 생성할 수 있다. 단계 702에서, 제2 데이터 프로세싱 시스템(400)은 클라이언트 장치(10)에 비대칭 암호화 공개 키를 전송할 수 있다. 다양한 구현에서, 클라이언트 장치(10)는 단일 암호화된 데이터를 생성하기 위해 공개 키를 사용하여 상호 작용 데이터를 비대칭적으로 암호화할 수 있다. 다양한 구현에서, 클라이언트 장치(10)는 상호 작용 데이터에 기초하여 결정론적 시드를 생성한다. 예를 들어, 클라이언트 장치(10)는 결정론적 시드를 생성하기 위해 상호 작용 데이터를 해시할 수 있다. 추가적으로 또는 대안적으로, 클라이언트 장치(10)는 결정론적 시드를 생성하기 위해 제1 데이터 프로세싱 시스템(300)과 협력적으로 상호 작용할 수 있다(예를 들어, 단계 902). 예를 들어, 클라이언트 장치(10)는 결정론적 시드를 생성하기 위해 제1 데이터 프로세싱 시스템(300)과 OPRF 프로토콜에 인게이지할 수 있다. 클라이언트 장치(10)는 비밀 공유를 생성하기 위해 비밀 공유 방식에 대한 입력으로서 결정론적 시드를 사용할 수 있다. 추가적으로 또는 대안적으로, 클라이언트 장치(10)는 단일 암호화된 데이터에 기초하여 결정론적 시드를 생성할 수 있다. 일부 구현에서, 클라이언트 장치(10)는 전술한 바와 같이 태그를 생성할 수 있다. 단계 710에서, 클라이언트 장치(10)는 비밀 공유 및/또는 태그를 제1 데이터 프로세싱 시스템(300)으로 전송한다. 제1 데이터 프로세싱 시스템(300)은 수신된 데이터를 익명화하기 위해 전술한 바와 같이 다양한 익명화 동작을 수행할 수 있다. 다양한 구현에서, 제1 데이터 프로세싱 시스템은 전술한 바와 같이 다항식 보간을 사용하여 수신된 복수의 비밀 공유를 복호화한다. 일부 구현에서, 제2 데이터 프로세싱 시스템(400)은 제1 데이터 프로세싱 시스템(300) 대신에 수신된 복수의 비밀 공유를 복호화한다. 단계 718에서, 제1 데이터 프로세싱 시스템(300)은 암호화되지 않은 데이터를 제2 데이터 프로세싱 시스템(400)으로 전송하며, 여기서 전술한 바와 같이 집계 정보를 생성하도록 분석될 수 있다. 일부 구현에서, 제1 데이터 프로세싱 시스템(300)은 복수의 비밀 공유를 제2 데이터 프로세싱 시스템(400)에 전송하고 제2 데이터 프로세싱 시스템(400)은 수신된 복수의 비밀 공유를 복호화한다.
도 9에서, 구현에 따라, 결정론적 시드를 사용하여 상호 작용 데이터를 암호화하는 비밀 공유 방식을 구현하는 방법(900)이 도시된다. 다양한 구현에서, 시스템(130)은 방법(900)을 수행한다. 일부 구현에서, 위에서 설명된 ESA 아키텍처는 방법(900)을 포함한다. 예를 들어, ESA 아키텍처의 인코딩 및 셔플링 단계는 방법(900)을 포함할 수 있다. 단계 902에서, 클라이언트 장치(10)는 결정론적 시드를 생성하기 위해 결정론적 함수(deterministic function)에 인게이지한다. 다양한 구현에서, 클라이언트 장치(10)는 위에서 설명된 바와 같이 결정론적 시드를 생성하기 위해 단일 암호화된 데이터 아이템을 사용한다. 비 제한적인 예로서, 클라이언트 장치(10)는 상호 작용 데이터를 비대칭적으로 암호화함으로써 생성된 단일 암호화된 데이터 아이템에 식별자를 추가하고 결정론적 시드를 생성하기 위해 단일 암호화된 데이터 아이템 및 추가된 식별자를 해시할 수 있다. 단계 904에서, 클라이언트 장치(10)는 임계 암호화 함수 및 결정론적 시드를 사용하여 단일 암호화된 데이터 아이템을 암호화하여 비밀 공유를 생성한다. 단계 906에서, 클라이언트 장치(10)는 단일 암호화된 데이터 아이템 및 결정적 시드로부터 태그를 생성한다. 예를 들어, 클라이언트 장치(10)는 결정론적 시드를 단일 암호화된 데이터 아이템에 추가할 수 있고 태그를 생성하기 위해 조합(combination)을 해시할 수 있다. 추가적으로 또는 대안적으로, 클라이언트 장치(10)는 식별자(예를 들어, 개인 ID, 그룹 ID 등)를 단일 암호화된 데이터 아이템에 추가할 수 있고 태그를 생성하기 위해 조합을 해시할 수 있다.
도 9a에서, 구현에 따라 VSS 알고리즘을 사용하는 단계(902)가 도시된다. 일부 구현에서, VSS 알고리즘은 검증 가능한 임계 서명 알고리즘이다. 단계 920에서, 제1 데이터 프로세싱 시스템(300)은 중간 키를 생성한다. 중간 키는 RSA 공개 키일 수 있다. 예를 들어, 제1 데이터 프로세싱 시스템(300)은 공개 키(N, e)를 생성할 수 있으며, 여기서 N은 2 개의 소수()의 곱이고, e는 RSA 지수이다. e는 이고, e와 의 최대 공약수가 1이되도록 선택될 수 있으며, 여기서 . 단계 922에서, 제1 데이터 프로세싱 시스템(300)은 중간 키를 클라이언트 장치(10)로 전송한다.
단계 924에서, 클라이언트 장치(10)는 중간 키를 수신한다. 단계 926에서, 클라이언트 장치(10)는 중간 키 및 단일 암호화된 데이터 아이템을 사용하여 중간 값을 계산한다. 중간 값은 수학식 2와 같이 계산할 수 있다.
여기서 는 중간 값, r은 랜덤 값, G1()은 해시 함수, m은 단일 암호화된 데이터 아이템이다. 다양한 구현에서 r은 모듈로(modulo) N의 정수에서 선택된다. 단계 928에서, 클라이언트 장치(10)는 중간 값을 제1 데이터 프로세싱 시스템(300)으로 전송한다.
단계 930에서, 제1 데이터 프로세싱 시스템(300)은 중간 값 를 수신한다. 단계 932에서, 제1 데이터 프로세싱 시스템(300)은 중간 값을 사용하여 테스트 값을 계산한다. 테스트 값은 수학식 3과 같이 계산할 수 있다.
여기서 는 테스트 값이고, d는 RSA 비밀 지수이다. d는 수학식 4와 같이 계산될 수 있다.
여기서 d는 이고, 이다. 일부 구현에서, d는 지정된 길이(예: 2048 비트)이다. 단계 934에서, 제1 데이터 프로세싱 시스템(300)은 테스트 값 를 클라이언트 장치(10)로 전송한다.
단계 936에서, 클라이언트 장치(10)는 테스트 값 를 수신한다. 단계 938에서, 클라이언트 장치(10)는 테스트 값 으로부터 테스트 시드를 계산한다. 테스트 시드는 수학식 5와 같이 계산될 수 있다.
여기서 는 테스트 시드이다. 단계 940에서, 클라이언트 장치(10)는 테스트 시드(τ)를 테스트한다. 테스트 τ에는 계산이 포함될 수 있다. 테스트 시드가 실패하면(예: ), 클라이언트 장치(10)는 테스트 시드 τ를 결정론적 시드로 설정하지 않는다(예를 들어, 단계 942). 테스트 시드가 통과하면(예를 들어, τ = G1(m)), 클라이언트 장치(10)는 테스트 시드 τ를 결정론적 시드로 설정한다(예를 들어, 단계 944). 다양한 구현에서, 단계 944는 θ = G2(τ)를 계산하는 것을 포함하며, 여기서 θ는 결정론적 시드이고 G2()는 해시 함수이다(예를 들어, 결정론적 시드는 해싱 τ의 결과임).
도 10에서, 구현에 따라, 제3 데이터 프로세싱 시스템(302)을 사용하여 상호 작용 데이터를 암호화하기 위해 결정론적 시드를 포함하는 비밀 공유 방식을 구현하는 시스템(140)이 도시된다. 시스템(140)은 여기에 설명된 것과 유사할 수 있지만(예를 들어, 시스템(110), 시스템(120), 시스템(130) 등), ESA 셔플링 동작과 결정론적 시드 생성을 제1 데이터 프로세싱 시스템(300)과 제3 데이터 프로세싱 시스템(302) 사이에서 분할할 수 있다. 예를 들어, 클라이언트 장치(10)는 전술한 바와 같이 제3 데이터 프로세싱 시스템(302)과 OPRF 프로토콜에 인게이지할 수 있다. 클라이언트 장치(10)는 비밀 공유를 제1 데이터 프로세싱 시스템(300)에 전송할 수 있고, 제1 데이터 프로세싱 시스템(300)은 분석을 위해 셔플링된 데이터를 제2 데이터 프로세싱 시스템(400)으로 전송하기 전에 전술한 바와 같은 셔플링 동작을 수행할 수 있다. ESA 셔플링 동작 및 결정론적 시드 생성을 제1 데이터 프로세싱 시스템(300)과 제3 데이터 프로세싱 시스템(302) 사이에서 분할함으로써, 시스템(140)은 각 당사자(예: 제1 데이터 프로세싱 시스템(300), 제3 데이터 프로세싱 시스템(302))가 수신된 데이터에 대해 학습할 수 있는 정보의 양을 제한하여 PII를 추가로 보호한다. 더욱이, 시스템(140)은 데이터에 대한 개별적인 액세스를 감소시킴으로써 악의적인 당사자 및/또는 손상된 당사자(예: 제1 데이터 프로세싱 시스템(300))로부터 보호함으로써 시스템 중복성과 견고성을 증가시킨다.
단계 902에서, 클라이언트 장치(10)는 제3 데이터 프로세싱 시스템(302)과 OPRF 프로토콜에 인게이지할 수 있다. 제3 데이터 프로세싱 시스템(302)은 본 명세서에 설명된 제1 데이터 프로세싱 시스템(300)의 특징을 공유할 수 있다. 다양한 구현에서, 제3 데이터 프로세싱 시스템(302)은 제1 데이터 프로세싱 시스템(300)과 별개이다(예를 들어, 제3 데이터 프로세싱 시스템(302) 및 제1 데이터 프로세싱 시스템(300)은 서로 또는 서로 관련된 데이터 등에 액세스할 수 없음). 일부 구현에서, 제3 데이터 프로세싱 시스템(302) 및 제1 데이터 프로세싱 시스템(300)은 동일한 시스템에서 격리된 환경으로 존재한다. 예를 들어, 제3 데이터 프로세싱 시스템(302) 및 제1 데이터 프로세싱 시스템(300)은 서버의 메모리 내의 소프트웨어 가드 확장 엔클레이브일 수 있다. 클라이언트 장치(10)는 비밀 공유를 생성하기 위해 제3 데이터 프로세싱 시스템(302)과 협력하여 생성된 시드를 사용하여 상호 작용 데이터 및/또는 단일 암호화된 데이터 아이템을 암호화할 수 있다. 단계 710에서, 클라이언트 장치(710)는 비밀 공유를 제1 데이터 프로세싱 시스템(300)으로 전송한다. 전술한 바와 같이, 제1 데이터 프로세싱 시스템(300)은 수신된 데이터를 복호화하고, 셔플링하고, 그리고 제2 데이터 프로세싱 시스템(400)으로 전송할 수 있으며, 이는 전송된 데이터를 분석하여 집계 결과를 생성한다.
도 11-14에서, OPRF 프로토콜 및 결정론적 시드를 사용하는 상호 작용 데이터의 보안 전송 및 상관의 비 제한적인 예시적인 구현이 도시된다. 간략한 개요에서, 도 11은 OPRF 프로토콜 및 결정론적 시드를 사용하여 상호 작용 데이터를 안전하게 전송하고 상관시키기 위한 시스템(150)을 예시한다. 시스템(150)은 여기에 설명된 것과 유사할 수 있다(예를 들어, 시스템(110), 시스템(120), 시스템(130), 시스템(140) 등). 도 12는 시스템(150)에 의해 구현되는 상호 작용 데이터를 안전하게 전송하고 상관시키는 방법(1100)을 도시한다. 도 13은 시스템(150)에 의해 구현되는 검증 가능한 비밀 공유를 생성하는 방법(1200)을 예시한다. 도 14는 시스템(150)에 의해 구현된 바와 같이 검증 가능한 비밀 공유를 검증하고 복호화하는 방법(1300)을 예시한다.
도 11-12에서, 단계 502-506은 위에서 상세히 설명된 바와 같이 수행될 수 있다. 다양한 구현에서, 콘텐츠 상호 작용 회로(230)는 상호 작용 데이터를 생성한다. 또한, 개인 ID 회로(210) 및/또는 그룹 ID 회로(220)는 상호 작용 데이터와 연관된 하나 이상의 개인 ID 및/또는 그룹 ID를 생성할 수 있다. 단계 702에서, 제2 데이터 프로세싱 시스템(400)은 클라이언트 장치(10)에 비대칭 암호화 공개 키를 전송할 수 있다. 다양한 구현에서, 복호화 회로(444)는 비대칭 암호화 공개 키를 생성한다. 단계 704에서, 클라이언트 장치(10)는 상호 작용 데이터를 암호화하여 단일 암호화된 데이터 아이템을 생성한다. 다양한 구현에서, 제1 암호화 회로(244)는 상호 작용 데이터를 암호화한다. 추가적으로 또는 대안적으로, 제1 암호화 회로(244) 및 해싱 회로(242)는 상호 작용 데이터를 암호화하기 위해 상호 작용할 수 있다. 예를 들어, 암호화 회로(244)는 해싱 회로(242)를 통해 암호화 동안 사용되는 해시 값을 생성할 수 있다. 단계 1102에서, 클라이언트 장치(10)는 결정론적 시드를 생성하기 위해 제1 데이터 프로세싱 시스템(300)과 OPRF(oblivious pseudorandom function) 프로토콜에 인게이지한다. 다양한 구현에서, 제2 암호화 회로(246) 및 OPRF 회로(332)는 상호 작용하여 OPRF 프로토콜을 수행한다. 단계 1104에서, 클라이언트 장치(10)는 결정론적 시드를 사용하여 단일 암호화된 데이터 아이템을 암호화하여 비밀 공유를 생성한다. 다양한 구현에서, 제2 암호화 회로(246)는 결정론적 시드를 사용하여 단일 암호화된 데이터 아이템을 암호화하여 비밀 공유를 생성한다. 단계 1106에서, 클라이언트 장치(10)는 비밀 공유를 제1 데이터 프로세싱 시스템(300)으로 전송한다.
단계 1108에서, 제1 데이터 프로세싱 시스템(300)은 복수의 비밀 공유를 수신한다. 다양한 구현에서, 제1 데이터 프로세싱 시스템(300)은 복수의 클라이언트 장치(10)로부터 복수의 비밀 공유를 수신한다. 단계 1110에서, 제1 데이터 프로세싱 시스템(300)은 프로세싱된 데이터를 생성하기 위해 복수의 비밀 공유를 프로세싱한다. 다양한 구현에서, 복호화 회로(336)는 프로세싱된 데이터를 생성하기 위해 복수의 비밀 공유를 복호화한다. 다양한 구현에서, 프로세싱된 데이터는 임계 수의 비밀 공유가 수신된 단일 암호화된 데이터 아이템이다. 단계 1112에서, 제1 데이터 프로세싱 시스템(300)은 프로세싱된 데이터를 셔플링한다. 다양한 구현에서, 셔플 회로(338)는 프로세싱된 데이터를 셔플링한다. 다양한 구현에서, 셔플 회로(338)는 프로세싱된 데이터의 순서를 재 배열하고 및/또는 상이한 그룹으로부터 프로세싱된 데이터를 혼합함으로써 프로세싱된 데이터를 셔플링한다. 단계 1114에서, 제1 데이터 프로세싱 시스템(300)은 프로세싱된 데이터를 제2 데이터 프로세싱 시스템(400)으로 전송한다.
단계 1116에서, 제2 데이터 프로세싱 시스템(400)은 프로세싱된 데이터를 수신한다. 단계 1118에서, 제2 데이터 프로세싱 시스템(400)은 복호화된 프로세싱된 데이터를 생성하기 위해 단계 702 동안 전송된 비대칭 암호화 공개 키에 대응하는 비대칭 암호화 개인 키를 사용하여 프로세싱된 데이터를 복호화한다. 다양한 구현에서, 복호화 회로(444)는 프로세싱된 데이터를 복호화한다. 다양한 구현에서, 복호화된 프로세싱된 데이터는 임계 수의 비밀 공유가 수신된 상호 작용 데이터를 포함한다. 복호화된 프로세싱된 데이터에는 PII가 없을 수 있다. 단계 1120에서, 제2 데이터 프로세싱 시스템(400)은 복호화된 프로세싱된 데이터에 기초하여 집합(집계) 정보를 생성한다. 다양한 구현에서, 분석 회로(442)는 집계 정보를 생성하기 위해 다양한 분석 동작을 수행한다. 다양한 구현에서, 집계 정보는 제1 특성을 공유하는 복수의 비밀 공유를 포함한다. 추가적으로 또는 대안적으로, 집계 정보는 상호 작용의 합(예: 거래, 클릭, 전화 통화 등), 각 상호 작용과 관련된 값의 합(예: 달러 금액), 및/또는 메타 데이터를 포함할 수 있다. 일부 구현에서, 집계 정보는 데이터베이스(410)에 저장될 수 있다.
도 13을 참조하면, 구현에 따라 시스템(150)에 의해 구현되는 검증 가능한 비밀 공유를 생성하는 방법(1200)이 도시된다. 단계 1202에서, 콘텐츠 상호 작용 회로(230)는 데이터 아이템을 준비한다. 일부 구현에서, 데이터 아이템은 여기에 설명된 상호 작용 데이터이다. 다양한 구현에서, 상호 작용 데이터는 식별자(34)이다. 추가적으로 또는 대안적으로, 상호 작용 데이터는 개인 ID 회로(210)에 의해 생성된 하나 이상의 개인 ID 및/또는 그룹 ID 회로(220)에 의해 생성된 하나 이상의 그룹 ID와 같은 다른 식별자를 포함할 수 있다. 일부 구현에서, 상호 작용 데이터는 상호 작용 유형 및/또는 하나 이상의 주소 위치(예를 들어, 방문 페이지 URL,보고 URL 등)와 같은 추가 정보를 포함한다. 예를 들어, 콘텐츠 상호 작용 회로(230)는 그룹 ID 회로(220)에 의해 생성된 복수의 그룹 ID를 식별자(34)에 추가함으로써 데이터 아이템을 준비할 수 있다.
단계 1204에서, 제1 암호화 회로(244)는 단일 암호화된 데이터 아이템을 생성하기 위해 복호화 회로(444)에 의해 생성된 비대칭 암호화 공개 키를 사용하여 데이터 아이템을 암호화한다. 다양한 구현에서, 복호화 회로(444)는 RSA 암호화 시스템을 사용하여 데이터 아이템을 암호화한다. 다양한 구현에서, 제1 암호화 회로(244)는 단일 암호화된 데이터 아이템에 주소 위치를 추가한다. 예를 들어, 제1 암호화 회로(244)는 단일 암호화된 데이터 아이템에 보고(리포팅) URL을 추가할 수 있다. 일부 구현에서, 보고 URL은 제2 데이터 프로세싱 시스템(400)이 집합 정보를 전송하는 위치를 결정한다. 구체적인 예로서, 콘텐츠 제공자 장치(30)는 마케팅 캠페인의 효과에 관한 집계 정보를 수신하기 위해 보고 URL을 통해 위치를 지정할 수 있다.
단계 1206에서, 해싱 회로(242)는 공유 키를 생성하기 위해 단일 암호화된 데이터 아이템을 해시한다. 다양한 구현에서, 해싱 회로(242)는 "SpookyHash"와 같은 빠른 해시 함수를 사용하여 단일 암호화된 데이터 아이템을 해시한다. 단계 1208에서, 제2 암호화 회로(246)는 공유 키를 사용하여 숫자 공간을 생성한다. 예를 들어, 숫자 공간은 공유 키의 모듈로 정수일 수 있다. 단계 1210에서, 제2 암호화 회로(246)는 단일 암호화된 데이터 아이템 및 숫자 공간으로부터 선택된 계수를 사용하여 임계 비밀 공유 다항식을 생성한다. 예를 들어, 계수는 도 6a를 참조하여 전술한 바와 같이 일 수 있다.
단계 1212에서, 해싱 회로(242)는 평가 포인트를 생성하기 위해 개인 ID 회로(210)에 의해 생성된 개인 ID로 단일 암호화된 데이터 아이템을 해시(해싱)한다. 다양한 구현에서, 해싱 회로(242)는 해싱 전에 개인 ID(identifier)를 단일 암호화된 데이터 아이템에 추가하여, 평가 포인트를 클라이언트 장치(10)에 고유하게 만든다. 다양한 구현에서, 평가 포인트는 도 6a를 참조하여 위에서 설명한 바와 같다. 단계 1214에서, 제2 암호화 회로(246)는 제1 키 하프(key half)를 생성하기 위해 평가 포인트에서 다항식을 평가한다. 다양한 구현에서, 제1 키 하프는 도 6a를 참조하여 위에서 설명한 바와 같이 f(i)이다. 단계 1216에서, 제2 암호화 회로(246)는 암호화된 비밀 공유를 생성하기 위해 제1 키 하프를 평가 포인트와 결합한다. 다양한 구현에서, 암호화된 비밀 공유는 도 6a를 참조하여 전술한 바와 같이 튜플(i, f(i))이다. 단계 1218에서, 제2 암호화 회로(246)는 공유 키에 기초하여 하나 이상의 검증 공유 를 생성한다. 예를 들어 검증 공유는 수학식 6과 같이 생성될 수 있다.
여기서 는 계수 에 해당하는 검증 공유(verification share)이다. 단계 1220에서, 클라이언트 장치(10)는 비밀 공유, 하나 이상의 검증 공유 및 공유 키를 제1 데이터 프로세싱 시스템(300)으로 전송한다.
도 14에서, 구현에 따라 시스템(150)에 의해 구현된 비밀 공유를 확인하고 복호화하는 방법(1300)이 도시된다. 단계 1302에서, 부정행위 방지 회로(334)는 하나 이상의 검증 공유를 공유 키와 비교함으로써 비밀 공유를 검증한다. 하나 이상의 검증 공유를 공유 키와 비교하는 것은 수학식 7과 같은 계산이 포함될 수 있다.
여기서 t는 제1 데이터 프로세싱 시스템(300)에 의해 수신된 복수의 비밀 공유이다. 다양한 구현에서, t는 제1 데이터 프로세싱 시스템(300)에 의해 수신된 그룹에 대응하는 비밀 공유의 수이다. 예를 들어, 각 비밀 공유는 그룹 ID로 태깅될 수 있고 t는 동일한 그룹 ID를 갖는 비밀 공유의 수일 수 있다. 부정행위 방지 회로(334)가 라고 결정하면, 그 공유는 진품으로 검증된다. 부정행위 방지 회로(334)가 라고 결정하면, 그 공유는 검증되지 않고 허위로 결정된다(예: 부적절하게 계산되거나 변경된 경우 등).
단계 1304에서, 복호화 회로(336)는 수신된 비밀 공유에 기초하여 임계 비밀 공유 다항식을 재구성한다. 예를 들어, 유사한 태그(예를 들어, 그룹 ID 등)를 갖는 비밀 공유는 임계 비밀 공유 다항식을 복구하기 위해 다항식 보간을 사용하여 결합될 수 있다. 단계 1306에서, 복호화 회로(336)는 재구성된 임계 비밀 공유 다항식으로부터 단일 암호화된 데이터 아이템을 추출한다. 다양한 구현에서, 단일 암호화된 데이터 아이템은 위에서 설명한 에 해당한다. 일부 구현에서, 셔플(셔플링) 회로(338)는 단일 암호화된 데이터 아이템을 다른 단일 암호화된 데이터 아이템과 셔플링한다. 예를 들어, 셔플 회로(338)는 복수의 상이한 마케팅 캠페인으로부터의 복수의 단일 암호화된 데이터 아이템을 혼합할 수 있다. 단계 1308에서, 제1 데이터 프로세싱 시스템(300)은 단일 암호화된 데이터 아이템을 제2 데이터 프로세싱 시스템(400)으로 전송한다.
도 15에서, 구현에 따라, 부정행위 방지 및 복구를 포함하는 비밀 공유 방식을 구현하는 시스템(160)이 도시된다. 시스템(160)은 본 명세서에 설명된 것과 유사할 수 있다(예를 들어, 시스템(110), 시스템(120), 시스템(130), 시스템(140), 시스템(150) 등). 다양한 구현에서, 시스템(160)은 복수의 제1 데이터 프로세싱 시스템(304)을 포함한다. 예를 들어, 시스템(160)은 100 개의 제1 데이터 프로세싱 시스템(304)을 포함할 수 있다. 제1 데이터 프로세싱 시스템(304)은 제1 데이터 프로세싱 시스템(300)과 유사할 수 있다. 다양한 구현에서, 시스템(160)은 위에서 설명된 시스템(150)과 유사하게 동작한다. 제1 데이터 프로세싱 시스템(304) 각각은 클라이언트 장치(10)로부터 비밀 공유를 수신하고 비밀 공유를 복호화하여 단일 암호화된 데이터 아이템을 복구할 수 있다. 다양한 구현에서, 각각의 제1 데이터 프로세싱 시스템(304)은 각각의 복구된 단일 암호화된 데이터 아이템을 비교할 수 있다. 제1 데이터 프로세싱 시스템(304)은 인증된 단일 암호화된 데이터 아이템에 대한 합의를 개발할 수 있고 인증된 단일 암호화된 데이터 아이템을 제2 데이터 프로세싱 시스템(400)으로 전송할 수 있다. 유리하게는, 많은 제1 데이터 프로세싱 시스템(304)으로부터 복구된 단일 암호화 데이터 아이템을 비교함으로써, 시스템(160)은 개별적으로 손상된 제1 데이터 프로세싱 시스템(300)에 대해 강건하다. 예를 들어, 제1 데이터 프로세싱 시스템(300)이 비밀 공유로부터 단일 암호화된 데이터 아이템을 부적절하게 복구하는 경우 및/또는 제1 데이터 프로세싱 시스템(300)이 악의적으로 손상되는 경우, 제2 데이터 프로세싱 시스템(400)에 의해 생성된 집계 정보는 불법일 수 있다. 그러나, 복수의 제1 데이터 프로세싱 시스템(304) 간의 합의를 개발하면 제1 데이터 프로세싱 시스템(304)의 대부분이 단일 암호화된 데이터 아이템을 부적절하게 복구해야하고 및/또는 집계 정보에 영향을 주기 위해 악의적으로 손상되어야 한다는 것을 보장한다. 따라서 시스템의 견고성과 집계 정보의 신뢰성이 증가한다.
다양한 구현에서, 시스템(160)은 다른 부정행위 방지 및/또는 강력한 복구 기술을 용이하게 할 수 있다. 예를 들어, 클라이언트 장치(10) 및/또는 제1 데이터 프로세싱 시스템(300)은 ECC를 구현할 수 있다. 예를 들어, 제2 암호화 회로(246)는 리드 솔로몬 코드(Reed-Solomon codes)로서 비밀 공유를 구성할 수 있다. 리드 솔로몬 코드를 사용하여, 복호화 회로(336)는 "Berlekamp-Welch" 알고리즘을 사용하여 최대개의 오류(예: 부적절하거나 악의적으로 생성된 비밀 공유)를 수정할 수 있다. 추가적으로 또는 대안적으로, 제2 암호화 회로(246) 및/또는 복호화 회로(336)는 제한된 도메인 평가를 구현할 수 있다. 구체적인 예로서, 제2 암호화 회로(246)는 1 <i <M이 되도록 평가 포인트 i를 결정론적으로 계산할 수 있으며, 여기서 M은 M≥t와 같은 작은 수이다. 예를 들어, 해싱 회로(242)는 개인 ID를 그룹 ID에 추가하고 조합을 해싱하여 i를 생성할 수 있다. 임계 비밀 공유 다항식의 복호화 및 재구성 동안, 복호화 회로(336)는 비밀 공유(i, f(i))를 수신한다(많은 비밀 공유(i, f(i))가 공통 평가 포인트 i를 갖는 경우)(예: 비밀 공유 (i, f (i))의 서브세트는 와 같은 형식이다. 복호화 회로(336)는 다항식 보간을 사용한 재구성을 위해 합의(consensus) (예를 들어, 비밀 공유 중에서 가장 일반적인 )을 선택할 수 있다. 제한된 도메인 평가는 부적절하거나 악의적으로 계산된 비밀 공유로부터 보호한다. 예를 들어, 악의적인 클라이언트 장치(10)는 비밀 공유의 복호화를 억제하기 위해 개의 다른 평가 포인트 i의 대부분을 손상시켜야한다.
도 16에서, 예시적인 구현에 따라 사용자 프라이버시를 보호하기 위한 프로세스(1600)가 도시된다. 제1 데이터 프로세싱 시스템(300) 및 제2 데이터 프로세싱 시스템(400)은 프로세스(1600)의 단계를 수행하도록 구성될 수 있다. 또한, 본 명세서에 설명된 컴퓨팅 장치의 임의의 하나 또는 조합은 프로세스(1600)를 수행하도록 구성될 수 있다.
단계 1610은 복수의 클라이언트 장치(10) 각각에서, 콘텐츠 아이템과의 각각의 상호 작용에 응답하여, 콘텐츠 아이템과 관련된 식별자 및 랜덤 값을 제1 컴퓨팅 시스템으로 전송하는 것을 포함한다. 제1 컴퓨팅 시스템은 전술한 바와 같이 제1 데이터 프로세싱 시스템(300)과 동일하거나 유사할 수 있다. 제1 컴퓨팅 시스템은 식별자 및 식별자와 관련된 임의의 값을 저장한다. 식별자는 콘텐츠 아이템과 관련된 콘텐츠 식별자를 식별한다.
단계(1620)는 복수의 클라이언트 장치(10) 각각에서, 콘텐츠 아이템과 관련된 변환(전환) 동작에 응답하여 랜덤 값을 제2 컴퓨팅 장치로 전송하는 것을 포함한다. 제2 컴퓨팅 장치는 전술한 바와 같이 제2 데이터 프로세싱 시스템(400)과 유사할 수 있다. 클라이언트 장치(10)는 전환 액션 이전에 콘텐츠 아이템과의 상호 작용이 발생했는지 여부를 결정한다. 전환 액션 이전에 발생한 콘텐츠 아이템과의 상호 작용이 있다는 결정에 응답하여, 클라이언트 장치(10)는 마지막으로 생성된 랜덤 값을 제2 데이터 프로세싱 시스템(400)으로 전송한다. 발생한 콘텐츠 아이템과의 이전 상호 작용이 없다고 결정하는 것에 응답하여, 클라이언트 장치(10)는 다른 랜덤 값을 제2 데이터 프로세싱 시스템(400)으로 전송한다.
단계 1630은 복수의 클라이언트 장치(10)에 의해 제1 데이터 프로세싱 시스템(300) 및 제2 데이터 프로세싱 시스템(400)으로 전송된 랜덤 값을 사용하여 제1 데이터 프로세싱 시스템(300)과 제2 데이터 프로세싱 시스템(400) 사이의 임계 카디널리티 프로토콜을 실행하는 것을 포함한다. 일부 구현에서, 각 콘텐츠 식별자에 대해, 제1 데이터 프로세싱 시스템(300) 및 제2 데이터 프로세싱 시스템(400)은 임계 카디널리티 프로토콜을 실행한다. 제2 데이터 프로세싱 시스템(400)은 수집한 모든 토큰을 입력한다. 제1 데이터 프로세싱 시스템(300)은 콘텐츠 식별자와 관련된 토큰만을 입력한다. 제1 데이터 프로세싱 시스템(300)은 교차 카디널리티(intersection cardinality)가 미리 결정된 임계 이상인 경우에만 교차 카디널리티를 수신한다.
일부 구현에서, 왜곡된(garbled) 회로는 제1 데이터 프로세싱 시스템(300) 및 제2 데이터 프로세싱 시스템(400)으로부터의 두 세트의 입력을 분류하는 데 사용된다. 왜곡된 회로는 선형 스캔을 프로세싱하여 상호 작용에 있는 아이템 수를 계산한다.
일부 구현에서, 배치 기술은 본질적으로 두 개의 큰 세트를 더 작은 빈으로 분할하는 데 사용되며, 여기서 동일한 값이 대응하는 빈에 할당되도록 보장된다. 일부 구현에서, 해싱 기술(예: Cuckoo 해싱)은 각 빈을 더 작은 크기(예: log N 크기)로 채우는 데 사용된다. 그런 다음 교차 카디널리티 프로토콜이 각 빈에서 실행되고 각 당사자(예: 제1 및 제2 컴퓨팅 시스템)에 출력의 산술 공유를 제공한다. 각 당사자는 로컬적으로 공유를 합산한다. 두 당사자는 총 개수가 임계을 초과하는지 확인하는 두 당사자 프로토콜을 실행한다. 총 수가 임계을 초과하면 데이터 아이템이 제1 컴퓨팅 시스템으로 릴리스된다. "Cuckoo" 해싱을 사용하는 경우 각 빈에 대해 PIR과 유사한 기술을 사용할 수 있다.
도 17에서, 예시적인 구현에 따라 사용자 프라이버시를 보호하기 위한 프로세스(1700)가 도시된다. 제1 데이터 프로세싱 시스템(300) 및 제2 데이터 프로세싱 시스템(400)은 프로세스(1700)의 단계를 수행하도록 구성될 수 있다. 또한, 본 명세서에 설명된 컴퓨팅 장치의 임의의 하나 또는 조합은 프로세스(1700)를 수행하도록 구성될 수 있다.
단계 1710에서, 복수의 콘텐츠 아이템 중 하나와의 각각의 상호 작용에 응답하여, 각각의 클라이언트 장치(10)는 콘텐츠 아이템과 연관된 식별자에 대응하는 암호문의 슬롯에서 0이 아닌 값을 암호화하고 암호문의 다른 슬롯에 있는 0 값을 암호화하는 제 1 컴퓨팅 시스템으로부터 암호문을 수신한다. 다양한 실시 예에서, 제1 컴퓨팅 시스템은 제1 데이터 프로세싱 시스템(300)이거나 이와 유사하다.
단계 1720에서, 콘텐츠 아이템과 관련된 변환(전환) 액션에 응답하여, 각각의 클라이언트 장치(10)는 제2 컴퓨팅 장치에 암호문을 전송한다. 다양한 실시 예에서, 제2 컴퓨팅 장치는 제2 데이터 프로세싱 시스템(400)이거나 이와 유사하다. 전환 작업 이전에 콘텐츠 아이템과의 상호 작용이 발생한 경우 전송할 암호 텍스트는 마지막으로 수신된 암호 텍스트이다. 콘텐츠 아이템과의 이전 상호 작용이 발생하지 않은 경우 전송할 암호문은 모든 슬롯에서 0 값을 암호화한다.
단계 1730에서, 제2 데이터 프로세싱 시스템(400)은 누적된 암호문을 생성하기 위해 클라이언트 장치(10)로부터 수신된 모든 암호문을 동형으로(homomorphically) 추가하고 복수의 콘텐츠 아이템 모두에 대한 랜덤 공유를 계산한다.
단계 1740에서, 제2 데이터 프로세싱 시스템(400)은 다중 슬롯 암호문에서 랜덤 공유를 암호화한다.
단계 1750에서, 제2 데이터 프로세싱 시스템(400)은 다중 슬롯 암호문으로부터 누적된 암호문을 감산하고 결과적인 암호문을 제1 컴퓨팅 시스템으로 전송한다.
단계 1760에서, 제1 데이터 프로세싱 시스템(300)은 결과적인 암호문(resulting ciphertext)을 복호화하여 복수의 콘텐츠 아이템과 연관된 결과적인 암호문으로부터 공유를 획득한다.
단계 1770은 복수의 콘텐츠 아이템 각각에 대해, 카운트가 임계량을 초과하는 경우 콘텐츠 아이템과 연관된 전환 액션의 카운트를 복구하기 위해 제1 데이터 프로세싱 시스템(300)과 제2 데이터 프로세싱 시스템(400) 사이의 쌍방 계산을 수행하는 것을 포함한다.
도 18은 예를 들어, 본 개시에서 설명된 임의의 예시적인 시스템을 구현하기 위해 사용될 수 있는 컴퓨팅 시스템(1400)의 묘사를 도시한다(예: 시스템 110, 시스템 120, 시스템 130, 시스템 140, 시스템 150, 시스템 160 등). 컴퓨팅 시스템(1400)은 정보를 전달하기 위한 버스(1405) 또는 다른 통신 컴포넌트 및 정보를 프로세싱하기 위해 버스(1405)에 연결된 프로세서(1410)를 포함한다. 컴퓨팅 시스템(1400)은 또한 정보를 저장하기 위해 버스(1405)에 연결된 랜덤 액세스 메모리( "RAM") 또는 다른 동적 저장 장치와 같은 주 메모리(1415) 및 프로세서(1410)에 의해 실행될 명령(명령어)을 포함한다. 메인 메모리(1415)는 또한 프로세서(1410)에 의한 명령의 실행 동안 위치 정보, 임시 변수, 또는 다른 중간 정보를 저장하는데 사용될 수 있다. 컴퓨팅 시스템(1400)은 프로세서(1410)에 대한 정적 정보 및 명령을 저장하기 위해 버스(1405)에 결합된 읽기 전용 메모리("ROM")(1420) 또는 다른 정적 저장 장치를 더 포함할 수 있다. 솔리드 스테이트 장치, 자기 디스크 또는 광 디스크와 같은 저장 장치(1425)는 정보 및 명령을 지속적으로 저장하기 위해 버스(1405)에 연결된다.
컴퓨팅 시스템(1400)은 사용자에게 정보를 표시하기 위해 버스(1405)를 통해 액정 디스플레이 또는 액티브 매트릭스 디스플레이와 같은 디스플레이(1435)에 연결될 수 있다. 영숫자 및 기타 키를 포함하는 키보드와 같은 입력 장치(1430)는 정보 및 명령 선택을 프로세서(1410)에 전달하기 위해 버스(1405)에 연결될 수 있다. 다른 구현에서, 입력 장치(1430)는 터치 스크린 디스플레이(1435)를 갖는다. 입력 장치(1430)는 방향 정보 및 명령 선택을 프로세서(1410)에 전달하고 디스플레이(1435)상의 커서 이동을 제어하기 위한 마우스, 트랙볼 또는 커서 방향 키와 같은 커서 제어를 포함할 수 있다.
일부 구현에서, 컴퓨팅 시스템(1400)은 네트워킹 어댑터와 같은 통신 어댑터(1440)를 포함할 수 있다. 통신 어댑터(1440)는 버스(1405)에 결합될 수 있고 컴퓨팅 또는 통신 네트워크(1445) 및/또는 다른 컴퓨팅 시스템과의 통신을 가능하게하도록 구성될 수 있다. 다양한 예시적인 구현에서, 유선(예를 들어, 이더넷을 통해), 무선(예: WiFi, Bluetooth 등을 통해) , 사전 구성된 애드혹, LAN, WAN 등과 같은 통신 어댑터(1440)를 사용하여 임의의 유형의 네트워킹 구성이 달성될 수 있다.
다양한 구현에 따르면, 본 명세서에 설명된 예시적인 구현을 수행하는 프로세스는 메인 메모리(1415)에 포함된 명령어(명령)의 배열을 실행하는 프로세서(1410)에 응답하여 컴퓨팅 시스템(1400)에 의해 달성될 수 있다. 이러한 명령어는 저장 장치(1425)와 같은 다른 컴퓨터 판독 가능 매체로부터 주 메모리(1415)로 판독될 수 있다. 주 메모리(1415)에 포함된 명령어 배열의 실행은 컴퓨팅 시스템(1400)이 여기에 설명된 예시적인 프로세스를 수행하게 한다. 다중 프로세싱 배열의 하나 이상의 프로세서는 또한 메인 메모리(1415)에 포함된 명령어를 실행하기 위해 사용될 수 있다. 대안적인 구현에서, 예시적인 구현을 구현하기 위해 소프트웨어 명령어 대신에 또는 소프트웨어 명령어와 조합하여 하드 와이어드 회로가 사용될 수 있다. 따라서 구현은 하드웨어 회로와 소프트웨어의 특정 조합으로 제한되지 않는다.
예시적인 프로세싱 시스템이 도 18에 설명되어 있지만, 본 명세서에 기술된 요지 및 기능적 동작의 구현은 다른 유형의 디지털 전자 회로를 사용하여, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 수행될 수 있으며, 본 명세서 및 그 구조적 등가물에 개시된 구조를 포함하여, 또는 이들 중 하나 이상의 조합으로 수행 될 수 있다.
위의 설명 외에도, 사용자는 여기에 설명된 시스템, 프로그램 또는 기능이 사용자 정보(예: 사용자의 소셜 네트워크, 소셜 활동 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 위치에 대한 정보)의 수집을 가능하게 할 수 있는지 여부와 사용자가 서버로부터 콘텐츠 또는 통신을 받을 수 있는지 여부에 대해 사용자가 선택을 할 수 있는 제어를 제공받을 수 있다. 또한 특정 데이터는 저장 또는 사용되기 전에 하나 이상의 방법으로 프로세싱될 수 있으므로 개인 식별 정보가 제거된다. 예를 들어, 사용자에 대한 개인 식별 정보를 확인할 수 없도록 사용자의 신원을 프로세싱하거나 위치 정보(예: 도시, 우편 번호 또는 스테이트 레벨)를 획득한 사용자의 지리적 위치를 일반화하여 사용자의 특정 위치를 확인할 수 없도록 할 수 있다. 따라서 사용자는 사용자에 대해 수집되는 정보, 해당 정보가 사용되는 방식 및 사용자에게 제공되는 정보를 제어할 수 있다. 여기에 설명된 시스템이 사용자 장치에 설치된 사용자 또는 애플리케이션에 대한 개인 정보(예: 사용자의 소셜 네트워크, 소셜 활동 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 위치에 대한 정보)를 수집하거나 개인 정보를 사용하는 상황에서 사용자는 프로그램 또는 기능이 사용자 정보를 수집하는지 여부를 제어할 수 있는 기회를 제공받는다. 추가로 또는 대안으로 특정 데이터는 저장 또는 사용되기 전에 하나 이상의 방법으로 프로세싱되어 개인 정보가 제거될 수 있다.
본 개시의 시스템 및 방법은 기존 시스템에 비해 많은 이점을 제공한다. PII 공개를 방지하고 사용자 개인 정보에 대한 인식이 높아짐에 따라 엄격한 개인 정보 보장이 개발되고 있다. 예를 들어 널리 인정되는 표준인 차등 개인 정보 보호에서는 특정 개인의 정보가 상호 작용 레이트 계산에 포함되었는지 여부를 집계된 상호 작용 측정값이 드러내지 않아야한다. 그러나 현재의 차등 개인 집계 상호 작용 측정 기술에는 방대한 데이터 세트가 필요하며 출력 세분성이 제한되어 있다. 따라서 합리적인 크기의 입력 데이터 세트와 함께 상세한 출력을 제공하는 집계 상호 작용을 측정하는 개인 정보 보호 방법이 필요하다.
하나의 솔루션은 제3자 헬퍼(third party helper)를 사용한다. 클라이언트 브라우저는 제3자 헬퍼와 함께 OPRF 프로토콜을 수행하여 측정 라벨에서 시드를 추출할 수 있다. 클라이언트 브라우저는 측정 라벨에 두 개의 암호화 계층를 적용할 수 있다. 제2 암호화 계층은 파생된 시드에 기초한 임계 암호화일 수 있다. 클라이언트 브라우저는 암호화된 측정 라벨을 일괄 프로세싱하여 제3자 헬퍼에게 보낼 수 있다. 제3자 헬퍼는 암호화된 측정 라벨을 임계 복호화하여 제2 암호화 계층을 제거할 수 있다. 제3자 헬퍼는 단일 암호화된 측정 라벨을 셔플링하여 분석기로 전달할 수 있다. 분석기는 제1 암호화 계층을 제거하고 측정 라벨을 복구할 수 있다.
일부 구현에서, 클라이언트 브라우저는 측정 라벨에 크라우드 식별자를 첨부한다. 크라우드 식별자는 엄격한 개인 정보 보호를 유지하면서 방대한 데이터 세트를 요구하지 않고 고유한(따라서 식별하는) 측정 라벨에 대한 집계 상호 작용 측정을 시스템에서 생성할 수 있게 한다. 크라우드 식별자는 지리적 위치, 장치 유형 및/또는 다른 구분 범주를 설명할 수 있다. 크라우드 식별자는 OPRF를 통해 시드를 유도하는 데 사용될 수 있다. 따라서, 제3자 헬퍼는 임계 발생 횟수(threshold number of occurrences)를 갖는 고유 측정 라벨만 임계 복호화(threshold-decrypt)할 수 있다. 임계 발생 횟수는 PII에 대한 엄격한 개인 정보 보호를 보장할 수 있다.
일부 구현에서, 콘텐츠 제공자는 비공개 키를 사용하여 상호 작용 토큰을 생성한다. 상호 작용 토큰은 측정 라벨의 합법성을 확인하여 부정행위 방지에 사용될 수 있다. 시스템은 콘텐츠 제공자의 공개 키를 사용하여 상호 작용 토큰을 확인할 수 있다. 클라이언트 브라우저는 확인된 상호 작용 토큰과 관련된 측정 라벨만 보고할 수 있다. 또한 각 측정 라벨은 한 번만 사용할 수 있다. 따라서 시스템은 불법 측정 라벨을 기반으로 사기(부정행위)를 방지한다.
본 명세서에 설명된 요지 및 동작의 구현은 디지털 전자 회로를 사용하거나, 본 명세서 및 구조적 등가물에 개시된 구조를 포함하는 유형의 매체, 펌웨어 또는 하드웨어에 구현된 컴퓨터 소프트웨어 또는 이들 중 하나 이상의 조합으로 수행될 수 있다. 본 명세서에 설명된 요지의 구현은 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 하나 이상의 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 대안으로 또는 추가로, 프로그램 명령(명령어)은 인공적으로 생성된 전파 신호, 예를 들어 데이터 프로세싱 장치에 의한 실행을 위해 적절한 수신기 장치로의 전송을 위해 정보를 인코딩하도록 생성되는 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 판독 가능 저장 매체는 컴퓨터 판독 가능 저장 장치, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 장치, 또는 이들 중 하나 이상의 조합일 수 있거나 여기에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체는 전파된 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지가 될 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 컴포넌트 또는 매체(예를 들어, 다중 CD, 디스크 또는 기타 저장 장치)일 수 있거나 여기에 포함될 수 있다. 따라서 컴퓨터 저장 매체는 유형적이며 일시적이지 않는다.
본 명세서에 설명된 동작은 하나 이상의 컴퓨터 판독 가능 저장 장치에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 프로세싱 장치에 의해 수행되는 동작으로 구현될 수 있다.
"데이터 프로세싱 장치" 또는 "컴퓨팅 장치"라는 용어는 데이터 프로세싱를 위한 모든 종류의 장치, 장치 및 기계를 포함하며, 예를 들어 프로그램 가능한 프로세서, 컴퓨터, 시스템 온 칩, 또는 여러 장치를 포함한다. 이 장치는 특수 목적의 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)를 포함할 수 있다. 장치는 또한 하드웨어에 추가하여 해당 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스 플랫폼 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 구현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일 또는 해석 언어, 선언적 또는 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성될 수 있다. 독립 실행형 프로그램이나 모듈, 컴포넌트, 서브 루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 모든 형태로 배포할 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그럴 필요는 없다. 프로그램은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예: 마크 업 언어 문서에 저장된 하나 이상의 스크립트), 해당 프로그램 전용의 단일 파일 또는 여러 개의 조정 파일(예: 하나 이상의 모듈, 하위 프로그램 또는 코드 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 분산되고 통신 네트워크로 상호 연결된 여러 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에 설명된 프로세스 및 로직 흐름은 입력 데이터에 대해 동작하고 출력을 생성함으로써 동작을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 프로세스 및 로직 흐름은 또한 FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)와 같은 특수 목적 로직 회로로 구현될 수 있다. 본 명세서에서 사용되는 회로는 하드웨어 회로(예를 들어, FPGA, ASIC 등), 소프트웨어(하나 이상의 컴퓨터 판독 가능 저장 매체에 저장되고 하나 이상의 프로세서에 의해 실행 가능한 명령어) 또는 이들의 임의의 조합을 사용하여 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적의 마이크로 프로세서와 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로 프로세서는 읽기 전용 메모리나 랜덤 액세스 메모리 또는 둘 다에서 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령에 따라 동작을 수행하기 위한 프로세서와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광 자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 포함하거나 작동 가능하게 결합된다. 컴퓨터는 다른 장치, 예를 들어, 휴대 전화, PDA(Personal Digital Assistant), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS(Global Positioning System) 수신기 또는 휴대용 저장 장치(예: 범용 직렬 버스("USB) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 장치는 예를 들어 반도체 메모리 장치, 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치; 자기 디스크, 예를 들어 내부 하드 디스크 또는 이동식 디스크; 광 자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크와 같은 모든 형태의 비 휘발성 메모리, 미디어 및 메모리 장치를 포함한다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 정보를 표시하기 위해 CRT(음극선 관) 또는 LCD(액정 디스플레이) 모니터와 같은 디스플레이 장치가 있는 컴퓨터를 사용하여 본 명세서에 설명된 요지의 구현을 수행할 수 있으며, 사용자와 키보드 및 포인팅 장치, 예를 들어, 마우스 또는 트랙볼로, 사용자가 컴퓨터에 입력을 제공할 수 있다. 사용자와의 상호 작용을 제공하기 위해 다른 종류의 장치를 사용할 수도 있으며, 예를 들어, 사용자에게 제공되는 피드백은 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 모든 형태의 감각 피드백일 수 있다. 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 또한 컴퓨터는 사용자가 사용하는 장치로 문서를 보내고 받는 장치에서 사용자와 상호 작용할 수 있다. 예를 들어 웹 브라우저에서 받은 요청에 대한 응답으로 사용자 클라이언트 장치의 웹 브라우저에 웹 페이지를 전송한다.
본 명세서에 설명된 요지의 구현은 컴퓨팅 시스템 사용하여 구현될 수 있으며, 상기 컴퓨팅 시스템은 백 엔드 컴포넌트(예를 들어 데이터 서버)를 포함하거나 미들웨어 컴포넌트(예를 들어 애플리케이션 서버)를 포함하거나 프론트 엔드 컴포넌트(예를 들어 그래픽 사용자 인터페이스를 갖는 클라이언트 컴퓨터 또는 사용자가 본 명세서에 기술된 발명의 구현과 인터랙팅할 수 있는 웹 브라우저)를 포함하거나 또는 하나 이상의 그러한 백 엔드, 미들웨어, 프론트 엔드 컴포넌트들의 조합을 포함할 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신 예를 들어, 통신 네트워크, 의 임의의 형태 또는 매체에 의해 상호연결될 수 있다. 통신 네트워크들의 예시들은 근거리 통신망( "LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어-투-피어 네트워크들(예를 들어, 애드 혹 피어-투-피어 네트워크들)을 포함할 수 있다.
컴퓨팅 시스템에는 사용자와 서버가 포함될 수 있다. 사용자와 서버는 일반적으로 서로 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호작용한다. 사용자와 서버의 관계는 각 컴퓨터에서 실행되고, 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 실시 예에서, 서버는(예를 들어, 클라이언트 장치와 상호작용하는 사용자에게 데이터를 표시하고 사용자로부터 사용자 입력을 수신하기 위해) 데이터(예를 들어, HTML 페이지)를 클라이언트 장치로 전송한다. 클라이언트 장치에서 생성된 데이터(예: 온라인 상호작용의 결과)는 서버의 클라이언트 장치로부터 수신될 수 있다.
일부 예시적인 구현에서, 여기에 개시된 구성은 스마트 텔레비전 모듈(또는 연결된 텔레비전 모듈, 하이브리드 텔레비전 모듈 등)에서 구현될 수 있다. 이는 인터넷 연결을보다 전통적인 텔레비전 프로그래밍 소스(예를 들어, 케이블, 위성, OTA(over-the-air) 또는 기타 신호를 통해 수신)와 통합하도록 구성된 프로세싱 회로를 포함할 수 있다. 스마트 텔레비전 모듈은 텔레비전 세트에 물리적으로 통합될 수 있거나 셋톱 박스, 블루 레이 또는 기타 디지털 미디어 플레이어, 게임 콘솔, 호텔 텔레비전 시스템 및 기타 동반 장치와 같은 별도의 장치를 포함할 수 있다. 스마트 텔레비전 모듈은 시청자가 웹, 로컬 케이블 TV 채널, 위성 TV 채널 또는 로컬 하드 드라이브에 저장된 비디오, 영화, 사진 및 기타 콘텐츠를 검색하고 찾을 수 있도록 구성될 수 있다. 셋톱 박스("STB") 또는 셋톱 장치("STU")에는 튜너를 포함하고 텔레비전 세트 및 외부 신호 소스에 연결하여 신호를 콘텐츠로 변환하는 정보 기기 장치가 포함될 수 있으며, 콘텐츠는 텔레비전 화면이나 다른 디스플레이 장치에 표시된다. 스마트 텔레비전 모듈은, 웹 브라우저 및 복수의 스트리밍 미디어 서비스, 연결된 케이블 또는 위성 미디어 소스, 기타 웹 "채널" 등과 같은, 복수의 서로 다른 애플리케이션에 대한 아이콘을 포함하는 홈 화면 또는 최상위 화면을 제공하도록 구성될 수 있다. 스마트 텔레비전 모듈은 또한 사용자에게 전자 프로그래밍 가이드를 제공하도록 구성될 수 있다. 스마트 텔레비전 모듈에 대한 동반 애플리케이션은 이용 가능한 프로그램에 대한 추가 정보를 사용자에게 제공하고, 사용자가 스마트 텔레비전 모듈 등을 제어할 수 있도록 모바일 컴퓨팅 장치에서 작동할 수 있다. 대안적인 구현에서, 특징은 랩톱 컴퓨터 또는 다른 개인용 컴퓨터, 스마트 폰, 다른 이동 전화, 핸드 헬드 컴퓨터, 태블릿 PC 또는 다른 컴퓨팅 장치에서 구현될 수 있다.
본 명세서는 많은 특정 구현 세부 사항을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 것에 대한 제한으로 해석되어서는 안되며, 오히려 특정 발명의 특정 구현에 특정한 특징의 설명으로 해석되어야 한다. 개별 구현의 맥락에서 본 명세서에 설명된 특정 기능은 조합 또는 단일 구현으로 수행될 수도 있다. 반대로, 단일 구현의 맥락에서 설명되는 다양한 기능은 여러 구현에서 개별적으로 또는 임의의 적절한 하위 조합으로 수행될 수도 있다. 더욱이, 특징이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 처음에 그렇게 주장될 수도 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우에 조합으로부터 절제될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형으로 지시될 수 있다. 또한, 특정 헤딩(headings)에 대해 설명된 특징은 다른 헤딩하에서 설명된 예시적인 구현에 대해 및/또는 조합하여 활용될 수 있으며; 헤딩은 제공되는 경우 가독성을 위해서만 포함되며 이러한 헤딩과 관련하여 제공되는 기능을 제한하는 것으로 해석되어서는 안된다.
유사하게, 동작이 특정 순서로 도면에 도시되어 있지만, 이는 바람직한 결과를 달성하기 위해 그러한 동작이 도시된 특정 순서 또는 순차적 순서로 수행되거나 모든 예시된 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서는 멀티 태스킹 및 병렬 프로세싱가 유리할 수 있다. 더욱이, 위에서 설명한 구현에서 다양한 시스템 컴포넌트의 분리는 모든 구현에서 그러한 분리를 요구하는 것으로 이해되어서는 안된다. 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 유형 매체에 구현된 여러 소프트웨어 제품으로 패키징될 수 있음을 이해해야 한다.
따라서, 요지의 특정 구현이 설명되었다. 다른 구현은 다음 청구항의 범위 내에 있다. 일부 경우에, 청구 범위에 언급된 동작은 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 또한, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적 인 순서를 반드시 필요로하지 않는다. 특정 구현에서, 멀티 태스킹 및 병렬 프로세싱가 유리할 수 있다.

Claims (20)

  1. 방법으로서,
    복수의 클라이언트 장치 각각에서:
    데이터 아이템을 수신하는 단계;
    제2 컴퓨팅 시스템으로부터 공개 키를 수신하는 단계;
    단일 암호화된 데이터 아이템을 생성하기 위해 공개 키를 사용하여 데이터 아이템을 암호화하는 단계;
    시드를 생성하기 위해 단일 암호화된 데이터 아이템을 사용하는 제1 컴퓨팅 시스템과 불확정(oblivious) 의사랜덤 함수 프로토콜에 인게이지(engage)하는 단계 -시드를 생성하기 위해 불확정 의사랜덤 함수 프로토콜에 인게이지하는 단계는 단일 암호화된 데이터 아이템 및 크라우드(crowd) 식별자를 사용하는 단계를 포함하며, 상기 크라우드 식별자는 복수의 클라이언트 장치 중 둘 이상과 연관됨-;
    시드 및 단일 암호화된 데이터 아이템을 사용하여, 동일한 단일 암호화된 데이터 아이템과 관련된 암호화된 비밀 공유의 임계 개수가 수신될 때까지 암호화된 비밀 공유가 복호화될 수 없는 임계 비밀 공유 기능을 사용하여 암호화된 비밀 공유를 생성하는 단계; 그리고
    암호화된 비밀 공유를 제1 컴퓨팅 시스템으로 전송하는 단계;
    제1 컴퓨팅 시스템에서:
    복수의 클라이언트 장치로부터 복수의 암호화된 비밀 공유를 수신하는 단계;
    프로세싱된 데이터를 생성하기 위해 복수의 암호화된 비밀 공유를 프로세싱하는 단계; 그리고
    프로세싱된 데이터를 제2 컴퓨팅 시스템으로 전송하는 단계; 그리고
    제2 컴퓨팅 시스템에서:
    프로세싱된 데이터를 복호화하여 복호화된 프로세싱된 데이터를 생성하는 단계; 그리고
    복호화된 프로세싱된 데이터를 사용하여, 복수의 클라이언트 장치와 관련된 개인 식별 정보에 액세스하지 않고 제1 특성을 공유하는 복수의 비밀 공유의 카운트를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 제1 컴퓨팅 시스템은,
    복수의 암호화된 비밀 공유를 프로세싱하기 전에, 복수의 암호화된 비밀 공유를 셔플링하도록 더 구성되는 것을 특징으로 하는 방법.
  3. 삭제
  4. 제1항에 있어서, 상기 제1 컴퓨팅 시스템은 상기 제2 컴퓨팅 시스템의 일부인 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 상기 제1 컴퓨팅 시스템은 상기 제2 컴퓨팅 시스템의 보호된 환경 내에 존재하고, 상기 보호된 환경은 상기 제2 컴퓨팅 시스템이 상기 제1 컴퓨팅 시스템에 액세스하는 것을 방지하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서, 상기 복수의 클라이언트 장치 각각은 상기 시드를 생성하기 위해 상기 단일 암호화된 데이터 아이템을 사용하는 제3 컴퓨팅 시스템과 함께 상기 불확정 의사랜덤 함수 프로토콜에 인게이지하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서, 상기 제2 컴퓨팅 시스템은 상기 프로세싱된 데이터를 생성하기 위해 상기 복수의 암호화된 비밀 공유를 프로세싱하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서, 상기 복수의 클라이언트 장치는 보안 네트워크를 사용하여 상기 제1 컴퓨팅 시스템과 통신하고, 상기 보안 네트워크는 어니언(onion) 네트워크인 것을 특징으로 하는 방법.
  9. 제1 항에 있어서, 상기 시드를 생성하기 위해 상기 불확정 의사랜덤 함수 프로토콜에 인게이지하는 단계는 상기 단일 암호화된 데이터 아이템 및 개인 식별자를 사용하는 단계를 포함하고, 개인 식별자는 복수의 클라이언트 장치 중 클라이언트 장치를 고유하게 식별하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서, 상기 제1 컴퓨팅 시스템은 분산 컴퓨팅 시스템인 것을 특징으로 하는 방법.
  11. 제1 컴퓨팅 시스템으로서,
    명령어를 저장한 메모리, 및
    동작들을 수행하도록 하는 상기 명령어를 실행하도록 구성된 프로세서를 포함하며, 동작들은,
    복수의 시드를 생성하기 위해 복수의 데이터 아이템을 사용하여 불확정 의사랜덤 함수 프로토콜에서 복수의 클라이언트 장치와 인게이지(engage)하는 동작 -시드를 생성하기 위해 불확정 의사랜덤 함수 프로토콜에서 인게이지하는 동작은 크라우드 식별자를 시드로 인코딩하는 동작을 포함하고, 상기 크라우드 식별자는 복수의 클라이언트 장치 중 둘 이상과 연관됨-;
    복수의 클라이언트 장치로부터, 복수의 암호화된 비밀 공유 및 복수의 검증 공유를 수신하는 동작;
    복수의 검증 공유를 사용하여 복수의 암호화된 비밀 공유를 인증하는 동작;
    프로세싱된 데이터를 생성하기 위해 복수의 암호화된 비밀 공유를 프로세싱하는 동작; 그리고
    프로세싱된 데이터를 제2 컴퓨팅 시스템으로 전송하는 동작을 포함하는 것을 특징으로 하는 제1 컴퓨팅 시스템.
  12. 제11항에 있어서, 제1 컴퓨팅 시스템은, 프로세싱 전에 상기 복수의 암호화된 비밀 공유를 셔플링하도록 더 구성되는 것을 특징으로 하는 제1 컴퓨팅 시스템.
  13. 삭제
  14. 제11항에 있어서, 상기 제1 컴퓨팅 시스템은 상기 제2 컴퓨팅 시스템의 일부인 것을 특징으로 하는 제1 컴퓨팅 시스템.
  15. 제14항에 있어서, 상기 제1 컴퓨팅 시스템은 상기 제2 컴퓨팅 시스템의 보호된 환경 내에 존재하고, 상기 보호된 환경은 상기 제2 컴퓨팅 시스템이 상기 제1 컴퓨팅 시스템에 액세스하는 것을 방지하는 것을 특징으로 하는 제1 컴퓨팅 시스템.
  16. 제11항에 있어서, 상기 제1 컴퓨팅 시스템은 보안 네트워크를 사용하여 상기 복수의 클라이언트 장치와 통신하고, 상기 보안 네트워크는 어니언 네트워크인 것을 특징으로 하는 제1 컴퓨팅 시스템.
  17. 제11항에 있어서, 상기 시드를 생성하기 위해 상기 불확정 의사랜덤 함수 프로토콜에 인게이지하는 동작은 개인 식별자를 사용하는 동작을 포함하고, 상기 개인 식별자는 상기 복수의 클라이언트 장치 중 클라이언트 장치를 고유하게 식별하는 것을 특징으로 하는 제1 컴퓨팅 시스템.
  18. 제11항에 있어서, 상기 제1 컴퓨팅 시스템은 분산 컴퓨팅 시스템인 것을 특징으로 하는 제1 컴퓨팅 시스템.
  19. 제11항에 있어서, 상기 프로세싱된 데이터를 생성하기 위해 상기 복수의 암호화된 비밀 공유를 프로세싱하는 동작은 임계 암호화 함수 프로토콜을 사용하여 상기 암호화된 비밀 공유를 복호화하는 동작을 포함하는 것을 특징으로 하는 제1 컴퓨팅 시스템.
  20. 제11항에 있어서, 제1 컴퓨팅 시스템은,
    애플리케이션 프로그래밍 인터페이스(API)를 더 포함하고, 상기 제1 컴퓨팅 시스템은 제2 컴퓨팅 시스템으로부터의 API 질의에 응답하여 상기 프로세싱된 데이터를 상기 제2 컴퓨팅 시스템에 전송하는 것을 특징으로 하는 제1 컴퓨팅 시스템.
KR1020217015437A 2019-04-05 2019-12-04 개인 정보 보호를 위한 방법 KR102596445B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962830266P 2019-04-05 2019-04-05
US62/830,266 2019-04-05
PCT/US2019/064383 WO2020205010A1 (en) 2019-04-05 2019-12-04 Methods for protecting privacy

Publications (2)

Publication Number Publication Date
KR20210080483A KR20210080483A (ko) 2021-06-30
KR102596445B1 true KR102596445B1 (ko) 2023-10-31

Family

ID=69024649

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217015437A KR102596445B1 (ko) 2019-04-05 2019-12-04 개인 정보 보호를 위한 방법

Country Status (6)

Country Link
US (1) US11962687B2 (ko)
EP (1) EP3874671A1 (ko)
JP (1) JP7284264B2 (ko)
KR (1) KR102596445B1 (ko)
CN (1) CN113169859A (ko)
WO (1) WO2020205010A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051590B (zh) * 2021-03-19 2024-03-26 华为技术有限公司 一种数据处理方法和相关设备
WO2022197304A1 (en) * 2021-03-19 2022-09-22 Google Llc Privacy preserving cross-domain machine learning
CN113468219A (zh) * 2021-06-30 2021-10-01 建信金融科技有限责任公司 数据查询与匹配方法、装置和系统
CN113364577B (zh) * 2021-08-06 2021-11-05 华控清交信息科技(北京)有限公司 一种oprf协议的实现方法、装置及电子设备
CN114444069B (zh) * 2021-12-17 2023-04-07 中国科学院信息工程研究所 一种恶意模型下高效的阈值安全多方计算方法
CN114782047B (zh) * 2021-12-29 2023-06-30 张海滨 数据共识方法及分布式系统
CN114584374B (zh) * 2022-03-04 2023-11-21 内蒙古蒙嘟嘟科技服务有限公司 一种基于区块链的大数据隐私共享安全保护系统及方法
CN114553603B (zh) * 2022-04-25 2022-07-29 南湖实验室 一种基于隐私计算的新型数据可信解密的方法
CN114969406B (zh) * 2022-05-26 2023-03-14 哈尔滨工业大学(深圳) 一种隐私保护的子图匹配方法及系统
CN115277215A (zh) * 2022-07-29 2022-11-01 中国银行股份有限公司 一种网络支付加密方法、网络支付解密方法、装置及设备
CN115098549B (zh) * 2022-08-25 2022-10-28 北京数牍科技有限公司 公平的数据匿踪查询方法、装置、设备及存储介质
CN116010678B (zh) * 2022-12-30 2024-04-12 北京火山引擎科技有限公司 一种匿踪查询方法、装置及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014137516A (ja) * 2013-01-18 2014-07-28 Nippon Telegr & Teleph Corp <Ntt> 分散管理装置、復元装置、パーティ装置、およびプログラム
US20160182228A1 (en) * 2014-12-23 2016-06-23 Intel Corporation Diffie-hellman key agreement using an m-of-n threshold scheme

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004057461A2 (en) 2002-12-19 2004-07-08 Ntt Communications Corporation Data division method and device using exclusive or calculation
US9596206B2 (en) * 2012-10-09 2017-03-14 Facebook, Inc. In-line images in messages
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
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
US10644875B2 (en) * 2016-04-28 2020-05-05 International Business Machines Corporation Pre-authorization of public key infrastructure
KR102490395B1 (ko) * 2018-04-02 2023-01-19 삼성전자 주식회사 외부 전자 장치의 키를 공유하는 전자 장치 및 전자 장치의 동작 방법
US10826694B2 (en) * 2018-04-23 2020-11-03 International Business Machines Corporation Method for leakage-resilient distributed function evaluation with CPU-enclaves

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014137516A (ja) * 2013-01-18 2014-07-28 Nippon Telegr & Teleph Corp <Ntt> 分散管理装置、復元装置、パーティ装置、およびプログラム
US20160182228A1 (en) * 2014-12-23 2016-06-23 Intel Corporation Diffie-hellman key agreement using an m-of-n threshold scheme

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Benny Applebaum 외 4명, Collaborative, Privacy-Preserving Data Aggregation at Scale, Privacy Enhancing Technologies: 10th International Symposium, PETS 2010 (2010.07.)*

Also Published As

Publication number Publication date
JP2022526058A (ja) 2022-05-23
US20220060319A1 (en) 2022-02-24
CN113169859A (zh) 2021-07-23
JP7284264B2 (ja) 2023-05-30
EP3874671A1 (en) 2021-09-08
US11962687B2 (en) 2024-04-16
KR20210080483A (ko) 2021-06-30
WO2020205010A1 (en) 2020-10-08

Similar Documents

Publication Publication Date Title
KR102596445B1 (ko) 개인 정보 보호를 위한 방법
JP7401624B2 (ja) 暗号化されたネットワーク値の集約
JP7201848B2 (ja) 時間データの取得または操作を防止しながらネットワークデータのシーケンスを生成すること
JP7399236B2 (ja) 複数の集約サーバを使用してデータ操作を防止すること
JP2023527318A (ja) 相互作用全体でクレジットを集計するための方法
US20220122121A1 (en) Combating false information with crowdsourcing
CN115380287A (zh) 隐私保护跨域机器学习
US20230318824A1 (en) Data sharing system, data sharing method and data sharing program
CN116368488A (zh) 用于隐私保护的本地化密码技术

Legal Events

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