KR20230002933A - 상호 작용 전반에 걸친 크레딧 집계 방법 - Google Patents

상호 작용 전반에 걸친 크레딧 집계 방법 Download PDF

Info

Publication number
KR20230002933A
KR20230002933A KR1020227040678A KR20227040678A KR20230002933A KR 20230002933 A KR20230002933 A KR 20230002933A KR 1020227040678 A KR1020227040678 A KR 1020227040678A KR 20227040678 A KR20227040678 A KR 20227040678A KR 20230002933 A KR20230002933 A KR 20230002933A
Authority
KR
South Korea
Prior art keywords
encrypted
computing system
identifiers
encryption
data
Prior art date
Application number
KR1020227040678A
Other languages
English (en)
Inventor
카른 세스
사르바르 파텔
마리아나 레이코바
스리니바산 세샤드리
마고 베르너
필립 맥도넬
아민 차라니야
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority claimed from PCT/US2020/047643 external-priority patent/WO2021242290A1/en
Publication of KR20230002933A publication Critical patent/KR20230002933A/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/602Providing cryptographic facilities or services
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/101Collaborative creation, e.g. joint development of products or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • 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
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Medical Informatics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Power Engineering (AREA)
  • Accounting & Taxation (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Human Resources & Organizations (AREA)
  • Computing Systems (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

방법은 제1 컴퓨팅 시스템에서, 암호화된 식별자들 및 암호화된 값들을 수신하는 단계와; 제1 컴퓨팅 시스템에 의해, 은닉된 암호화된 식별자들을 생성하도록 상기 암호화된 식별자들에 대해 은닉 동작을 수행하는 단계와, 상기 은닉 동작은 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템으로부터 상기 암호화된 식별자들을 은닉하지만 그 은닉된 암호화된 식별자들 간의 매칭을 가능하게 하고; 제2 컴퓨팅 시스템에 의해, 은닉된 식별자들을 생성하도록 상기 은닉된 암호화된 식별자들을 복호화하는 단계와; 그리고 제2 컴퓨팅 시스템에 의해, 상기 암호화된 값들과 관련된 개인 정보에 액세스하지 않고 암호화된 집계 값을 생성하도록 상기 은닉된 식별자들과 상기 암호화된 값들을 사용하여 집계 동작을 수행하는 단계를 포함할 수 있다.

Description

상호 작용 전반에 걸친 크레딧 집계 방법
본 출원은 2020년 5월 26일에 출원된 미국 가출원 번호 63/029,835의 우선권 및 이익을 주장하며 그 전체 내용은 참조로 본 명세서에 포함된다.
분석 시스템이 특정 컨텐츠 아이템과 상호 작용한 디바이스 수와 같이 컨텐츠와의 상호 작용에 대한 집계 정보를 결정할 수 있으면 도움이 될 수 있다. 그러나, 여기에는 종종 정보의 프라이버시를 유지하는데 관심이 있다. 예를 들어, 엔티티는 특정 유형의 컨텐츠가 도달한 디바이스 수 또는 디바이스와 관련된 식별자와 같이 정보 소스를 식별할 수 있는 정보를 수신하지 않고 특정 방식으로 컨텐츠와 상호 작용한 디바이스 수에 대한 정보를 수신하는데 관심이 있을 수 있다.
본 개시의 하나의 구현은 제1 컴퓨팅 시스템에서, 암호화된 식별자들 및 암호화된 값들을 수신하는 단계와; 제1 컴퓨팅 시스템에 의해, 은닉된 암호화된 식별자들을 생성하도록 상기 암호화된 식별자들에 대해 은닉 동작을 수행하는 단계와, 상기 은닉 동작은 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템으로부터 상기 암호화된 식별자들을 은닉하지만 그 은닉된 암호화된 식별자들 간의 매칭을 가능하게 하고; 제2 컴퓨팅 시스템에 의해, 은닉된 식별자들을 생성하도록 상기 은닉된 암호화된 식별자들을 복호화하는 단계와; 그리고 제2 컴퓨팅 시스템에 의해, 상기 암호화된 값들과 관련된 개인 정보에 액세스하지 않고 암호화된 집계 값을 생성하도록 상기 은닉된 식별자들과 상기 암호화된 값들을 사용하여 집계 동작을 수행하는 단계를 포함하는 방법에 관한 것이다.
일부 구현에서, 은닉 동작을 수행하는 단계는 부분적으로 암호화된 식별자들을 생성하도록 상기 암호화된 식별자들로부터 제1 암호화의 제1 부분을 제거하는 단계와; 그리고 은닉된 암호화된 식별자들을 생성하도록 제2 암호화로 상기 부분적으로 암호화된 식별자들을 결정론적으로 암호화하는 단계를 포함한다. 일부 구현에서, 은닉된 암호화된 식별자들을 복호화하는 단계는 은닉된 식별자들을 생성하도록 상기 은닉된 암호화된 식별자들로부터 제1 암호화의 제2 부분을 제거하는 단계를 포함한다. 일부 구현에서, 방법은 제3 컴퓨팅 시스템에 의해, 집계 값을 생성하도록 상기 암호화된 집계 값을 복호화하는 단계를 추가로 포함한다. 일부 구현에서, 방법은 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템에 의해, 협력적으로 제1 암호화 키를 생성하는 단계와; 제1 컴퓨팅 시스템에 의해, 제1 암호화 키 및 제3 암호화 키와 관련된 제2 암호화 키를 생성하는 단계와; 제2 컴퓨팅 시스템에 의해, 제1 암호화 키와 관련된 제4 암호화 키를 생성하는 단계와; 그리고 제3 컴퓨팅 시스템에 의해, 제5 및 제6 암호화 키를 생성하는 단계를 추가로 포함한다.
일부 구현에서, 암호화된 식별자들은 제1 암호화 키를 사용하여 암호화되고 그리고 암호화된 값들은 제5 암호화 키를 사용하여 암호화되며, 은닉 동작은 제2 및 제3 암호화 키를 사용하고, 은닉된 암호화된 식별자들은 제4암호화 키를 이용하여 복호화되고, 그리고 암호화된 집합 값은 제6 암호화 키를 사용하여 복호화된다. 일부 구현에서, 은닉 동작은 암호화된 식별자들을 셔플링(shuffling)하는 단계, 및 해시 함수를 사용하여 암호문을 생성하여 상기 암호화된 값들을 재랜덤화하는 단계를 포함한다. 일부 구현에서, 제3 컴퓨팅 시스템은 제1 컴퓨팅 시스템의 일부이다. 일부 구현에서, 제1 컴퓨팅 시스템 또는 제3 컴퓨팅 시스템 중 적어도 하나는 분산 컴퓨팅 시스템이다. 일부 구현에서, 방법은 제2 컴퓨팅 시스템에 의해, 랜덤 값을 생성하는 단계와; 제2 컴퓨팅 시스템에 의해, 상기 랜덤값과 상기 암호화된 집계값을 사용하여 연산을 수행하여 결과를 생성하는 단계와; 그리고 제2 컴퓨팅 시스템에 의해, 상기 암호화된 식별자들과 관련된 컨텐츠 게시자에게 상기 랜덤 값을 전송하는 단계를 추가로 포함한다. 일부 구현에서, 집계 동작은 암호화된 집계 값을 생성하도록 상기 은닉된 식별자들 및 그 은닉된 식별자들과 관련된 시간 값을 사용하여 가중 기능을 수행하는 것을 포함한다.
본 개시의 다른 구현은 암호화된 식별자들 및 암호화된 값들을 수신하고, 은닉된 암호화된 식별자들을 생성하기 위해 암호화된 식별자들에 대해 은닉 동작을 수행하도록 구성된 제1 컴퓨팅 시스템과, 상기 은닉 동작은 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템으로부터 상기 암호화된 식별자들을 은닉하지만 그 은닉된 암호화된 식별자들 간의 매칭을 가능하게 하고, 그리고 은닉된 식별자들을 생성하도록 은닉된 암호화된 식별자들을 복호화하고, 암호화된 값들과 관련된 개인 식별 정보에 액세스하지 않고 암호화된 집계 값을 생성하도록 상기 은닉된 식별자들 및 상기 암호화된 값들을 사용하여 집계 동작을 수행하도록 구성된 제2 컴퓨팅 시스템을 포함하는 결과 측정 시스템에 관한 것이다.
일부 구현에서, 은닉 동작을 수행하는 것은 부분적으로 암호화된 식별자들을 생성하도록 상기 암호화된 식별자들로부터 제1 암호화의 제1 부분을 제거하는 것과; 그리고 은닉된 암호화된 식별자들을 셍성하기 위해 제2 암호화로 상기 부분적으로 암호화된 식별자들을 결정론적으로 암호화하는 것을 포함한다. 일부 구현에서, 은닉된 암호화된 식별자들을 복호화하는 것은 은닉된 식별자들을 생성하도록 상기 은닉된 암호화된 식별자들로부터 제1 암호화의 제2 부분을 제거하는 것을 포함한다. 일부 구현에서, 결과 측정 시스템은 집계 값을 생성하기 위해 상기 암호화된 집계 값을 복호화하도록 구성된 제3 컴퓨팅 시스템을 추가로 포함한다. 일부 구현에서, 제1 및 제2 컴퓨팅 시스템은 공동으로 제1 암호화 키를 생성하도록 추가로 구성되고, 제1 컴퓨팅 시스템은 제1 암호화 키 및 제3 암호화 키와 관련된 제2 암호화 키를 생성하도록 추가로 구성되고, 제2 컴퓨팅 시스템은 제1 암호화 키와 관련된 제4 암호화 키를 생성하도록 추가로 구성되고, 제3 컴퓨팅 시스템은 제5 및 제6 암호화 키를 생성하도록 추가로 구성된다.
일부 구현에서, 암호화된 식별자들은 제1 암호화 키를 사용하여 암호화되고 그리고 상기 암호화된 값들은 제5 암호화 키를 사용하여 암호화되며, 상기 은닉 동작은 제2 및 제3 암호화 키를 사용하고, 상기 은닉된 암호화된 식별자들은 제4 암호화 키를 이용하여 복호화되고, 그리고 상기 복호화된 집계 값은 제6 암호화 키를 사용하여 복호화된다. 일부 구현에서, 제3 컴퓨팅 시스템은 제1 컴퓨팅 시스템의 일부이다. 일부 구현에서, 제1 컴퓨팅 시스템 또는 제3 컴퓨팅 시스템 중 적어도 하나는 분산 컴퓨팅 시스템이다. 일부 구현에서, 집계 동작은 암호화된 집계 값을 생성하도록 상기 은닉된 식별자들 및 그 은닉된 식별자들과 관련된 시간 값을 사용하여 가중 기능을 수행하는 것을 포함한다.
본 개시의 다른 구현은 저장된 명령들을 갖는 하나 이상의 컴퓨터 판독 가능 저장 매체에 관한 것으로, 명령들은 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템 중 적어도 하나의 하나 이상의 프로세서에 의해 실행될 때, 제1 컴퓨팅 시스템으로 하여금 암호화된 식별자들 및 암호화된 값들을 수신하고; 은닉된 암호화된 식별자들을 생성하기 위해 상기 암호화된 식별자들에 대해 은닉 동작을 수행하게 하고, 상기 은닉 동작은 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템으로부터 상기 암호화된 식별자들을 은닉하지만 그 은닉된 암호화된 식별자들 간의 매칭을 가능하게 하고; 그리고 제2 컴퓨팅 시스템으로 하여금 은닉된 식별자들을 생성하도록 상기 은닉된 암호화된 식별자들을 복호화하고; 암호화된 값들과 관련된 개인 정보에 액세스하지 않고 암호화된 집계 값을 생성하도록 상기 은닉된 식별자들과 상기 암호화된 값들을 사용하여 집계 동작을 수행하게 한다.
일부 구현에서, 은닉 동작을 수행하는 것은 부분적으로 암호화된 식별자들을 생성하도록 상기 암호화된 식별자들로부터 제1 암호화의 제1 부분을 제거하는 것과; 그리고 은닉된 암호화된 식별자들을 셍성하기 위해 제2 암호화로 상기 부분적으로 암호화된 식별자들을 결정론적으로 암호화하는 것을 포함한다. 일부 구현에서, 은닉된 암호화된 식별자들을 복호화하는 것은 은닉된 식별자들을 생성하도록 상기 은닉된 암호화된 식별자들로부터 제1 암호화의 제2 부분을 제거하는 것을 포함한다. 일부 구현에서, 명령들은 제3 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행될 때 제3 컴퓨팅 시스템으로 하여금 집계 값을 생성하기 위해 상기 암호화된 집계 값을 복호화하게 하도록 추가로 구성된다. 일부 구현에서, 명령들은 제1 및 제2 컴퓨팅 시스템으로 하여금 협력적으로 제1 암호화 키를 생성하게 하도록 구성되고; 명령들은 제1 컴퓨팅 시스템으로 하여금 제1 암호화 키 및 제3 암호화 키와 관련된 제2 암호화 키를 생성하게 하도록 구성되고; 명령들은 제2 컴퓨팅 시스템으로 하여금 제1 암호화 키와 관련된 제4 암호화 키를 생성하게 하도록 구성되고; 그리고 명령들은 제3 컴퓨팅 시스템으로 하여금 제5 및 제6 암호화 키를 생성하게 하도록 구성된다. 일부 구현에서, 암호화된 식별자들은 제1 암호화 키를 사용하여 암호화되고, 암호화된 값들은 제5 암호화 키를 사용하여 암호화되며, 은닉 동작은 제2 및 제3 암호화 키를 사용하고, 은닉된 암호화된 식별자들은 제4 암호화 키를 이용하여 복호화되고, 그리고 복호화된 집계 값은 제6 암호화 키를 사용하여 복호화된다. 일부 구현에서, 제3 컴퓨팅 시스템은 제1 컴퓨팅 시스템의 일부이다. 일부 구현에서, 제1 컴퓨팅 시스템 또는 제3 컴퓨팅 시스템 중 적어도 하나는 분산 컴퓨팅 시스템이다. 일부 구현에서, 집계 동작은 암호화된 집계 값을 생성하도록 상기 은닉된 식별자들 및 그 은닉된 식별자들과 관련된 시간 값을 사용하여 가중 기능을 수행하는 것을 포함한다.
도 1a-1b는 예시적인 구현에 따른 네트워크를 통해 상호 작용하는 다양한 엔티티를 나타내는 도면이다.
도 2는 구현에 따른 도 1a의 결과 측정 시스템을 사용하여 데이터 전송 및 집계를 나타내는 도면이다.
도 3a는 예시적인 구현에 따른 도 1a의 제1 데이터 처리 시스템에 대한 키 생성 방법을 나타내는 흐름도이다.
도 3b는 예시적인 구현에 따른 도 1a의 제2 데이터 처리 시스템에 대한 키 생성 방법을 나타내는 흐름도이다.
도 3c는 예시적인 구현에 따른 도 1a의 제3 데이터 처리 시스템에 대한 키 생성 방법을 나타내는 흐름도이다.
도 3d는 예시적인 구현에 따른 도 1b의 게시자 컴퓨팅 시스템을 위한 키 생성 방법을 나타내는 흐름도이다.
도 4a-4b는 예시적인 구현에 따라 도 1a-1b의 시스템에 따른 상호작용에 대한 크레딧의 집계 및 보안 전송 방법을 나타내는 흐름도이다.
도 5는 예시적인 구현에 따른 도 4b의 집계 동작을 수행하는 방법을 나타내는 흐름도이다.
도 6은 예시적인 구현에 따른 도 5의 집계 동작에 따른 데이터 세트 처리를 나타내는 도면이다.
도 7은 예시적인 구현에 따른 도 5의 집계 동작에 따른 데이터 세트 처리를 나타내는 다른 다이어그램이다.
도 8은 예시적인 구현에 따른 도 5의 집계 동작에 따른 데이터 세트 처리를 나타내는 또 다른 도면이다.
도 9는 예시적인 구현에 따른 도 5의 집계 동작에 따른 샤플리 값의 생성을 나타내는 도면이다.
도 10은 예시적인 구현에 따른 도 5의 집계 동작에 따른 마르코프 모델의 생성을 나타내는 도면이다.
도 11은 예시적인 구현에 따른 도 4b의 마스킹 동작을 수행하는 방법을 나타내는 흐름도이다.
도 12는 예시적인 구현에 따른 컴퓨팅 시스템의 블록도이다.
다음은 프라이버시를 의식한 방식으로 상호작용 전반에 걸쳐 크레딧(credit)을 집계(취합)하기 위한 방법, 장치 및 시스템과 관련된 다양한 개념 및 그의 구현에 대한 보다 상세한 설명이다. 위에서 소개되고 아래에서 더 자세히 논의되는 다양한 개념은 그 설명된 개념이 임의의 특정 구현 방식으로 제한되지 않기 때문에 다양한 방식 중 임의의 방식으로 구현될 수 있다.
많은 도메인에서, 컨텐츠 게시자에 귀속되는 집계(총) 상호작용 수를 결정하는 것이 필요하거나 바람직할 수 있다. 예를 들어, 다수의 컨텐츠 게시자는 사용자가 온라인 상호 작용을 수행하기 전에 보는 다수의 컨텐츠 아이템을 디스플레이할 수 있으며, 각 컨텐츠 게시자의 컨텐츠 아이템과 관련된 온라인 상호 작용의 수(예를 들어, 온라인 상호 작용을 수행하기 전에 특정 컨텐츠 아이템을 본 사용자 수)를 결정하는 것이 바람직할 수 있다.
본 발명의 시스템 및 방법은 일반적으로 컨텐츠 아이템과 관련된 다수의 상호작용을 집계하고 다수의 컨텐츠 게시자 및/또는 컨텐츠 아이템과 관련된 상호작용 경로(pathway) 간에 크레딧을 분배하는 것에 관한 것이다. 보다 구체적으로, 본 발명의 시스템 및 방법은 상이한 엔티티로부터의 데이터를 집계하고 보다 안전한 방식으로 엔티티 간에 크레딧을 분배하기 위한 고유한 암호화 및 컴퓨터 아키텍처 방법론에 관한 것이다. 일반적으로 상이한 엔터티들의 데이터를 집계하려면 사용자 특정 데이터에 액세스할 수 있는 컴퓨팅 시스템이 필요하다. 예를 들어, 시스템은 매칭(일치)하는 사용자 식별자를 갖는 값들을 합산함으로써 집계 카운트를 결정할 수 있다. 개인 정보가 노출되지 않도록 하기 위해, 사용자의 신원은 데이터를 생성하고 보고할 때 은닉((conceal)되고 적절하게 보호되어야 한다.
개인 정보의 노출을 방지하는 방식으로 특정 분석 활동을 수행하는 것이 바람직하다. 따라서, 보다 안전한 방식으로 상이한 엔터티들의 데이터를 집계하기 위한 고유한 암호화 및 컴퓨터 아키텍처 방법론이 필요하다. 본 개시의 양태는 향상된 암호화 방법 및 컴퓨터 아키텍처를 제공한다. 이 암호화 방법 및 아키텍처는 향상된 보안을 제공하고 또한 사용자 프라이버시를 보호하면서 안전한 방식으로 컨텐츠 게시자의 데이터와 온라인 상호 작용을 상관시키는데 사용될 수 있다.
개인 정보의 프라이버시와 보안을 보장하기 위해, 본 개시의 시스템 및 방법은 엔티티(예를 들어, 컨텐츠 제공자, 제3자 등)가 개인 정보를 수신하지 못하도록 데이터를 처리한다. 비-제한적 예시 구현은 다음과 같이, 제2 데이터 처리 시스템이 비대칭 암호화를 위한 제1 공개키를 생성할 수 있다. 게시자 컴퓨팅 시스템은 제1 공개키를 사용하여 제1 사용자 식별자를 암호화할 수 있다. 제3 데이터 처리 시스템은 동형 암호화를 위한 제2 공개키를 생성할 수 있다. 상호작용 데이터 제공자 컴퓨팅 시스템은 제1 공개키 및 상기 제2 공개키와 관련된 값을 사용하여 제2 사용자 식별자를 암호화할 수 있다. 제1 데이터 처리 시스템은 다수의 컨텐츠 게시자(예를 들어, 게시자 컴퓨팅 시스템 등)로부터, 다수의 암호화된 제1 사용자 식별자를 수신할 수 있다. 제1 데이터 처리 시스템은 하나 이상의 상호작용 데이터 제공자(예를 들어, 상호작용 데이터 제공자 컴퓨팅 시스템 등)로부터, 다수의 암호화된 제2 사용자 식별자 및 관련 암호화된 값을 수신할 수 있다. 제1 데이터 처리 시스템은 타원 곡선(elliptic curve) 암호화를 위한 비밀키를 생성할 수 있고, 암호화된 제1 및 제2 사용자 식별자를 비밀키로 암호화하여 이중 암호화된 제1 및 제2 사용자 식별자를 생성할 수 있다. 제1 데이터 처리 시스템은 타원 곡선(EC) 암호화된 제1 및 제2 사용자 식별자를 생성하기 위해 이중 암호화된 제1 및 제2 사용자 식별자를 복호화할 수 있는 제2 데이터 처리 시스템에 이중 암호화된 제1 및 제2 사용자 식별자 및 관련 암호화된 값을 전송할 수 있다. 제2 데이터 처리 시스템은 EC 암호화된 제1 및 제2 사용자 식별자를 결합(join) 그 결합된 EC 암호화된 제1 및 제2 사용자 식별자에 기초하여 각 컨텐츠 게시자와 관련된 암호화된 집계 값을 계산할 수 있다. 제2 데이터 처리 시스템은 암호화된 집계 값을 제3 데이터 처리 시스템으로 전송할 수 있으며, 제3 데이터 처리 시스템은 암호화된 집계 값을 복호화하여 각 컨텐츠 게시자와 관련된 집계 값을 복구할 수 있다. 따라서, 결과 측정 시스템(예를 들어, 제1, 제2 및 제3 데이터 처리 시스템 등)은 개인 정보를 노출하지 않고 상호 작용 데이터의 집계를 용이하게 할 수 있다.
본 개시의 일부 구현에서, 사용자는 본 명세서에 설명된 시스템, 프로그램 또는 기능이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 활동 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 위치에 관한 정보)의 수집을 가능하게 할 수 있는지 여부와 사용자에게 서버로부터 컨텐츠 또는 통신이 전송되는지 여부에 대해 사용자가 선택할 수 있도록 하는 컨트롤을 제공받을 수 있다. 또한, 특정 데이터는 개인 식별 정보가 제거될 수 있도록 저장 또는 사용되기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 신원은 개인 식별 정보가 사용자에 대해 결정될 수 없도록 처리될 수 있거나, 사용자의 지리적 위치는 사용자의 특정 위치가 결정될 수 없도록 (도시, 우편 번호 또는 주 수준과 같이) 위치 정보가 획득되는 곳에서 일반화될 수 있다. 따라서, 사용자는 사용자에 대해 수집되는 정보, 해당 정보가 사용되는 방법 및 사용자에게 제공되는 정보를 제어할 수 있다.
이제 도 1a 내지 도 1b를 참조하면, 예시적인 구현에 따라 상이한 엔티티들로부터 데이터를 안전하게 집계(취합)하기 위한 시스템(100)이 도시되어 있다. 시스템(100)은 결과(outcome) 측정 서비스(102), 게시자 컴퓨팅 시스템(10) 및 상호작용 데이터 제공자 컴퓨팅 시스템(30)을 포함한다. 다양한 구현에서, 결과 측정 서비스(102)는 제1 데이터 처리 시스템(200), 제2 데이터 처리 시스템(300) 및 제3 데이터 처리 시스템(400)을 포함한다. 다양한 구현에서, 시스템(100)의 컴포넌트들은 네트워크(60)를 통해 통신한다. 네트워크(60)는 인터넷, 로컬, 광역, 메트로 또는 기타 영역 네트워크, 인트라넷, 위성 네트워크, 음성 또는 데이터 휴대 전화 통신 네트워크와 같은 기타 컴퓨터 네트워크, 이들의 조합, 또는 임의의 다른 유형의 전자 통신 네트워크와 같은 컴퓨터 네트워크를 포함할 수 있다. 네트워크(60)는 디스플레이 네트워크(예를 들어, 컨텐츠 배치 또는 검색 엔진 결과 시스템과 관련되거나 컨텐츠 아이템 배치 캠페인의 일부로서 제3자 컨텐츠 아이템을 포함하기에 적격인 인터넷에서 사용 가능한 정보 리소스의 서브 세트)를 포함하거나 구성할 수 있다. 다양한 구현에서, 네트워크(60)는 시스템(100)의 컴포넌트 간의 보안 통신을 용이하게 한다. 비-제한적인 예로서, 네트워크(60)는 전송 계층 보안(TLS), 보안 소켓 계층(SSL), 하이퍼텍스트 전송 프로토콜 보안(HTTPS) 및/또는 임의의 다른 보안 통신 프로토콜을 구현할 수 있다.
게시자 컴퓨팅 시스템(10)은 사용자 식별자와 같은 게시자 데이터를 호스팅할 수 있다. 다양한 구현에서, 게시자 컴퓨팅 시스템(10)은 게시자(예를 들어, 온라인 게시자 등)와 관련된다. 다양한 구현에서, 게시자 데이터는 게시자 컨텐츠와의 사용자 상호 작용과 관련된다. 예를 들어 게시자 데이터에는 게시자 컨텐츠와 상호 작용한 사용자들과 관련된 사용자 식별자 및 타임스탬프가 포함될 수 있다. 일부 구현에서, 게시자 데이터에는 사용자 상호작용의 카운트가 포함된다. 일부 구현에서, 게시자 데이터에는 상호 작용 분류가 포함된다. 예를 들어, 게시자 데이터는 사용자가 컨텐츠 아이템을 보았는지 또는 컨텐츠 아이템과 상호 작용했는지(예를 들어, 컨텐츠 아이템을 클릭했는지 등)를 나타내는 상호 작용 분류를 포함할 수 있다. 다양한 구현에서, 게시자 컨텐츠는 제3자와 관련된 마케팅 항목(예를 들어, 광고)일 수 있다.
게시자 컴퓨팅 시스템(10)은 데이터베이스(12) 및 처리 회로(14)를 포함할 수 있다. 데이터베이스(12)는 게시자 데이터를 저장할 수 있다. 예를 들어, 게시자 컨텐츠 아이템을 클라이언트 디바이스에 제공할 때, 게시자 컴퓨팅 시스템(10)은 데이터베이스(12)에 사용자와 관련된 사용자 식별자를 저장할 수 있다. 사용자 식별자는 나중에 익명 상호 작용 데이터의 상관에 사용될 수 있다. 데이터베이스(12)는 하나 이상의 저장 매체를 포함할 수 있다. 저장 매체는 자기 저장 장치, 광학 저장 장치, 플래시 저장 장치 및/또는 RAM을 포함할 수 있지만 이에 한정되지 않는다. 게시자 컴퓨팅 시스템(10)은 데이터베이스 기능(즉, 데이터베이스(12)에 저장된 데이터 관리)을 수행하기 위해 다양한 API를 구현하거나 용이하게 할 수 있다. API는 SQL, ODBC, JDBC 및/또는 기타 데이터 저장 및 처리(manipulation) API일 수 있지만 이에 한정되지 않는다.
처리 회로(14)는 프로세서(16) 및 메모리(18)를 포함한다. 메모리(18)는 프로세서(16)에 의해 실행될 때 처리 회로(14)로 하여금 본 명세서에 기술된 다양한 동작을 수행하게 하는 명령들(어)을 저장할 수 있다. 본 명세서에 설명된 동작들은 소프트웨어, 하드웨어 또는 이들의 조합을 사용하여 구현될 수 있다. 프로세서(16)는 마이크로프로세서, ASIC, FPGA 등 또는 이들의 조합을 포함할 수 있다. 많은 구현에서, 프로세서(16)는 멀티코어 프로세서 또는 프로세서의 어레이일 수 있다. 프로세서(16)는 보안 환경을 구현하거나 용이하게 할 수 있다. 예를 들어, 프로세서(16)는 메모리(18)에서 개인 영역(예를 들어, 엔클레이브)을 정의하기 위해 SGX(software guard extensions)를 구현할 수 있다. 메모리(18)는 프로세서(16)에 프로그램 명령(어)을 제공할 수 있는 전자, 광학, 자기 또는 임의의 다른 저장 디바이스를 포함할 수 있지만 이에 한정되지 않는다. 메모리(18)는 플로피 디스크, CD-ROM, DVD, 자기 디스크, 메모리 칩, ROM, RAM, EEPROM, EPROM, 플래시 메모리, 광학 매체, 또는 프로세서(16)가 명령을 판독할 수 있는 임의의 다른 적절한 메모리를 포함할 수 있다. 명령(어)에는 C, C++, C#, Java, JavaScript, Perl, HTML, XML, Python 및 Visual Basic과 같은 적절한 컴퓨터 프로그래밍 언어의 코드가 포함될 수 있다.
메모리(18)는 제1 암호화 회로(20), 제2 암호화 회로(22) 및 복호화 회로(24)를 포함할 수 있다. 예시된 구현에서, 회로(20, 22, 24)는 메모리(18) 내에 저장된 컴퓨터 또는 기계 판독 가능 명령(어)을 사용하여 구현될 수 있다. 다른 구현에서, 회로(20, 22, 24)는 별개의 하드웨어 회로일 수 있거나 하드웨어와 소프트웨어의 조합을 사용하여 구현될 수 있다. 제1 암호화 회로(20)는 입력 데이터에 대해 하나 이상의 암호화 기능을 구현하여 암호화된 데이터를 생성할 수 있다. 일부 구현에서, 제1 암호화 회로(20)는 비대칭 암호화 기능을 구현한다. 다양한 구현에서, 제1 암호화 회로(20)는 ElGamal(EG) 암호화 프로토콜을 구현한다. 예를 들어, 제1 암호화 회로(20)는 제2 데이터 처리 시스템(300)으로부터 수신된 EG 공개키로 사용자 식별자를 암호화할 수 있다. 다양한 구현에서, 제1 암호화 회로(20)는 교환(commutative) 암호화를 구현한다. 예를 들어, 제1 암호화 회로(20)는 이중 암호화된 값(예를 들어, 2개의 상이한 암호화 방식으로 암호화된 단일 값)을 용이하게 하는 EG 암호화를 구현할 수 있다. 다양한 구현에서, 제1 암호화 회로는 랜덤(randomized) 암호화를 용이하게 한다. 예를 들어, 제1 암호화 회로(20)는 제1 키를 사용하여 제1 값을 암호화하여 제1 암호화된 결과를 생성할 수 있고, 제1 키를 사용하여 제1 값을 다시 암호화하여 제1 암호화된 결과와 상이한 제2 암호화된 결과를 생성할 수 있다(예를 들어, 상이한 암호문을 생성함). 다양한 구현에서, 제1 암호화 회로(20)는 재랜덤화(rerandomization)를 용이하게 한다.
제2 암호화 회로(22)는 입력 데이터에 대해 하나 이상의 암호화 기능을 구현하여 암호화된 데이터를 생성할 수 있다. 일부 구현에서, 제2 암호화 회로(22)는 비대칭 암호화 기능을 구현한다. 다양한 구현에서, 제2 암호화 회로(22)는 암호화 키를 생성한다. 예를 들어, 제2 암호화 회로(22)는 공개키 및 비밀키를 생성할 수 있다. 일부 구현에서, 제2 암호화 회로(22)는 시스템(100)의 다른 컴포넌트(예를 들어, 제2 데이터 처리 시스템(300) 등)와 암호화 키를 공유한다. 예를 들어, 제2 암호화 회로(22)는 공개키를 생성하고 그 공개키를 제2 데이터 처리 시스템(300)으로 전송할 수 있다. 다양한 구현에서, 제2 암호화 회로(22)는 제1 암호화 회로(20)와 관련하여 전술한 바와 같이 교환 암호화를 구현한다.
복호화 회로(24)는 암호화된 데이터를 수신하고 이를 복호화하여 암호화되지 않은 데이터를 생성할 수 있다. 다양한 구현에서, 복호화 회로(24)는 제3 데이터 처리 시스템(400)으로부터 암호화된 데이터를 수신한다. 복호화 회로(24)는 비대칭적으로 암호화된 데이터를 복호화할 수 있다. 부가적으로 또는 대안적으로, 복호화 회로(24)는 대칭 및/또는 임계치 암호화 데이터를 복호화할 수 있다. 다양한 구현에서, 복호화 회로(24)는 제2 암호화 회로(22)로부터 하나 이상의 비밀(예를 들어, 비밀키 등)을 수신한다. 예를 들어, 복호화 회로(24)는 제2 암호화 회로(22)로부터 비밀키를 수신하고 그 비밀키를 사용하여 제3 데이터 처리 시스템(400)으로부터 수신된 암호화된 데이터를 복호화할 수 있다.
상호작용 데이터 제공자 컴퓨팅 시스템(30)은 사용자 식별자 및/또는 값과 같은 상호작용 데이터를 호스팅할 수 있다. 다양한 구현에서, 상호작용 데이터 제공자 컴퓨팅 시스템(30)은 상호작용 데이터 제공자(예를 들어, 상인, 상호작용 데이터 정보 센터 등)와 관련된다. 다양한 구현에서, 상호작용 데이터는 사용자 상업 활동(예를 들어, 구매 등)과 관련된다. 예를 들어, 상호작용 데이터는 온라인 거래를 수행한 사용자들의 사용자 식별자를 포함할 수 있다. 다양한 구현에서, 상호작용 데이터는 상호작용과 관련된 타임스탬프 및/또는 값을 포함할 수 있다. 일부 구현에서, 상호작용 데이터는 상호작용 분류(classification)를 포함한다. 예를 들어, 상호작용 데이터는 상호작용의 유형(예를 들어, 웹사이트 방문, 구매 등)을 나타내는 상호작용 분류를 포함할 수 있다. 다양한 구현에서, 상호작용 데이터는 게시자 컴퓨팅 시스템(10)을 참조하여 설명된 게시자 데이터와 연관될 수 있다. 예를 들어, 상호 작용 데이터는 게시자 데이터에서 사용자 식별자의 일부와 겹치는 사용자 식별자를 포함할 수 있다.
상호작용 데이터 제공자 컴퓨팅 시스템(30)은 데이터베이스(32) 및 처리 회로(34)를 포함할 수 있다. 데이터베이스(32)는 상호작용 데이터를 저장할 수 있다. 예를 들어, 사용자 상호작용 검출시, 상호작용 데이터 제공자 컴퓨팅 시스템(30)은 사용자와 관련된 사용자 식별자를 데이터베이스(32)에 저장할 수 있다. 사용자 식별자는 나중에 익명 상호 작용 데이터의 상관에 사용될 수 있다. 데이터베이스(32)는 하나 이상의 저장 매체를 포함할 수 있다. 저장 매체는 자기 저장 장치, 광학 저장 장치, 플래시 저장 장치 및/또는 RAM을 포함할 수 있지만 이에 한정되지 않는다. 상호작용 데이터 제공자 컴퓨팅 시스템(30)은 데이터베이스 기능(즉, 데이터베이스(32)에 저장된 데이터 관리)을 수행하기 위해 다양한 API를 구현하거나 용이하게 할 수 있다. API는 SQL, ODBC, JDBC 및/또는 기타 데이터 저장 및 처리 API일 수 있지만 이에 한정되지는 않는다.
처리 회로(34)는 프로세서(36) 및 메모리(38)를 포함한다. 메모리(38)는 프로세서(36)에 의해 실행될 때 처리 회로(34)로 하여금 본 명세서에 기술된 다양한 동작을 수행하게 하는 명령(어)을 저장할 수 있다. 본 명세서에 설명된 동작들은 소프트웨어, 하드웨어 또는 이들의 조합을 사용하여 구현될 수 있다. 프로세서(36)는 마이크로프로세서, ASIC, FPGA 등 또는 이들의 조합을 포함할 수 있다. 많은 구현에서, 프로세서(16)는 멀티코어 프로세서 또는 프로세서의 어레이일 수 있다. 프로세서(36)는 전술한 바와 같이 보안 환경을 구현하거나 용이하게 할 수 있다. 메모리(38)는 프로세서(36)에 프로그램 명령을 제공할 수 있는 전자, 광학, 자기 또는 임의의 다른 저장 장치를 포함할 수 있지만 이에 한정되지 않는다. 메모리(38)는 플로피 디스크, CD-ROM, DVD, 자기 디스크, 메모리 칩, ROM, RAM, EEPROM, EPROM, 플래시 메모리, 광학 매체, 또는 프로세서(16)가 명령을 판독할 수 있는 임의의 다른 적절한 메모리를 포함할 수 있다. 명령(어)에는 C, C++, C#, Java, JavaScript, Perl, HTML, XML, Python 및 Visual Basic과 같은 적절한 컴퓨터 프로그래밍 언어의 코드가 포함될 수 있다.
메모리(38)는 제1 암호화 회로(40) 및 제2 암호화 회로(42)를 포함할 수 있다. 제1 암호화 회로(40)는 입력 데이터에 대해 하나 이상의 암호화 기능을 구현하여 암호화된 데이터를 생성할 수 있다. 일부 구현에서, 제1 암호화 회로(40)는 비대칭 암호화 기능을 구현한다. 다양한 구현에서, 제1 암호화 회로(40)는 (EG) 암호화를 구현한다. 예를 들어, 제1 암호화 회로(40)는 제2 데이터 처리 시스템(300)으로부터 수신된 EG 공개키로 사용자 식별자를 암호화할 수 있다. 다양한 구현에서, 제1 암호화 회로(40)는 제1 암호화 회로(20)를 참조하여 설명된 바와 같이 다양한 암호화 기능(예를 들어, 교환성(commutativity), 재랜덤화 등)을 용이하게 한다.
제2 암호화 회로(42)는 입력 데이터에 대해 하나 이상의 암호화 기능을 구현하여 암호화된 데이터를 생성할 수 있다. 일부 구현에서, 제2 암호화 회로(42)는 비대칭 암호화 기능을 구현한다. 예를 들어, 제2 암호화 회로(42)는 동형 암호 시스템을 구현할 수 있다. 일부 구현에서, 제2 암호화 회로(42)는 가산형(additive) 암호화 기능을 구현한다. 예를 들어, 제2 암호화 회로(42)는 AHE(Additive Homomorphic Encryption)를 구현할 수 있다. 다양한 구현에서, 제2 암호화 회로(42)는 EEG(Exponential ElGamal) 프로토콜을 구현한다. 추가적으로 또는 대안적으로, 제2 암호화 회로(42)는 파이리에(Paillier) 암호 시스템 및/또는 링(Ring)-LWE 기반 암호화를 구현할 수 있다. 일부 구현에서, 제2 암호화 회로(42)는 대칭 암호화 기능을 구현한다. 다양한 구현에서, 제2 암호화 회로(42)는 제3 데이터 처리 시스템(400)으로부터 수신된 AHE 공개키로 값을 암호화한다. 일부 구현에서, 제2 암호화 회로(42)는 동형 스칼라 곱셈을 용이하게 한다. 다양한 구현에서, 제2 암호화 회로(42)는 제1 암호화 회로(20)와 관련하여 설명된 바와 같이 다양한 암호화 기능(예를 들어, 교환성, 재랜덤화 등)을 용이하게 한다.
이제 구체적으로 도 1a를 참조하면, 제1 데이터 처리 시스템(200)은 게시자 데이터 및/또는 상호작용 데이터의 처리를 용이하게 할 수 있다. 다양한 구현에서, 제1 데이터 처리 시스템(200)은 데이터를 수신하고 그 데이터를 처리하여 처리된 데이터(예를 들어, 개인 정보가 없거나 적은 데이터 등)를 생성한다. 일부 구현에서, 제1 데이터 처리 시스템(200)은 차등 비공개 데이터(differentially-private data)를 생성한다. 일부 구현에서, 제1 데이터 처리 시스템(200)은 암호화 키를 생성한다. 예를 들어, 제1 데이터 처리 시스템(200)은 제2 데이터 처리 시스템(300)과 공동으로 EG 공개키를 생성할 수 있다. 제1 데이터 처리 시스템(200)은 서버, 분산 처리 클러스터, 클라우드 처리 시스템 또는 임의의 다른 컴퓨팅 디바이스일 수 있다. 제1 데이터 처리 시스템(200)은 적어도 하나의 컴퓨터 프로그램 또는 적어도 하나의 스크립트를 포함하거나 실행할 수 있다. 일부 구현에서, 제1 데이터 처리 시스템(200)은 하나 이상의 스크립트를 실행하도록 구성된 하나 이상의 프로세서와 같은 소프트웨어 및 하드웨어의 조합을 포함한다.
제1 데이터 처리 시스템(200)은 데이터베이스(210) 및 처리 회로(220)를 포함하는 것으로 도시되어 있다. 데이터베이스(210)는 게시자 컴퓨팅 시스템(10) 및/또는 상호작용 데이터 제공자 컴퓨팅 시스템(30)으로부터 수신된 데이터를 저장할 수 있다. 예를 들어, 데이터베이스(210)는 게시자 컴퓨팅 시스템(10)으로부터의 암호화된 제1 식별자 및/또는 상호작용 데이터 제공자 컴퓨팅 시스템(30)으로부터의 암호화된 값 및/또는 암호화된 제2 식별자를 저장할 수 있다. 데이터베이스(210)는 데이터베이스(12 및 32)를 참조하여 설명된 바와 같이 다양한 저장 매체를 포함할 수 있다.
처리 회로(220)는 프로세서(230) 및 메모리(240)를 포함한다. 메모리(240)는 프로세서(230)에 의해 실행될 때 처리 회로(220)로 하여금 본 명세서에 기술된 다양한 동작을 수행하게 하는 명령(어)을 저장할 수 있다. 처리 회로(220), 프로세서(230) 및/또는 메모리(240)는 상술한 처리 회로(14 및 34), 프로세서(16 및 36) 및/또는 메모리(18 및 38)와 유사할 수 있다. 메모리(240)는 제1 암호화 회로(242), 제2 암호화 회로(244), 복호화 회로(246) 및 랜덤화 회로(248)를 포함할 수 있다.
제1 암호화 회로(242)는 입력 데이터에 대해 하나 이상의 암호화 기능을 구현하여 암호화된 데이터를 생성할 수 있다. 일부 구현에서, 제1 암호화 회로(242)는 비대칭 암호화 기능(예를 들어, EG 등)을 구현한다. 일부 구현에서, 제1 암호화 회로(242)는 타원 곡선을 통해 EG 암호화를 구현한다. 예를 들어, 제1 암호화 회로(242)는 EC 암호화를 구현하기 위해 제2 암호화 회로(244)에 의해 사용되는 타원 곡선을 통해 EG 암호화를 구현할 수 있다. 다양한 구현에서, 제1 암호화 회로(242)는 암호화 키를 생성한다. 예를 들어, 제1 암호화 회로(242)는 공개키 및 비밀키를 생성할 수 있다. 일부 구현에서, 제1 암호화 회로(242)는 제2 데이터 처리 시스템(300)과 공동으로 EG 공개키를 생성한다. 일부 구현에서, 제1 암호화 회로(242)는 시스템(100)의 다른 컴포넌트(예를 들어, 게시자 컴퓨팅 시스템(10), 상호작용 데이터 제공자 컴퓨팅 시스템(30) 등)와 암호화 키(또는 그 일부)를 공유한다. 예를 들어, 제1 암호화 회로(242)는 제2 데이터 처리 시스템(300)과 공동으로 EG 공개키를 생성하고, EG 공개키를 게시자 컴퓨팅 시스템(10) 및/또는 상호작용 데이터 제공자 컴퓨팅 시스템(30)으로 전송할 수 있다. 다양한 구현에서, 제1 암호화 회로(242)는 제1 암호화 회로(20)를 참조하여 설명된 바와 같이 다양한 암호화 기능(예를 들어, 교환성, 재랜덤화 등)을 용이하게 한다.
제2 암호화 회로(244)는 입력 데이터에 대해 하나 이상의 암호화 기능을 구현하여 암호화된 데이터를 생성할 수 있다. 다양한 구현에서, 제2 암호화 회로(244)는 대칭 암호화 기능을 구현한다. 예를 들어, 제2 암호화 회로(244)는 EC(Elliptic Curve) 암호화를 구현할 수 있다. 추가적으로 또는 대안적으로, 제2 암호화 회로(244)는 2차 나머지 곱셈 그룹이 안전한 소수를 모듈로하도록 제2 암호화 회로(244)는 DDH(Decisional Diffie-Hellman) 문제가가 계산적으로 다루기 어렵다고 추정되는 임의의 암호 시스템을 구현할 수 있다. 일부 구현에서, 제2 암호화 회로(244)는 비대칭 암호화 기능을 구현한다. 다양한 구현에서, 제2 암호화 회로(244)는 암호화 키를 생성한다. 예를 들어, 제2 암호화 회로(244)는 EC 비밀키를 생성할 수 있다. 일부 구현에서, 제2 암호화 회로(244)는 (예를 들어, 협력 암호화 등을 위해) 다른 제2 암호화 회로(244)와 다수의 EC 비밀키를 공동으로 생성한다. 다양한 구현에서, 제2 암호화 회로(244)는 EC 비밀키로 식별자를 암호화한다. 다양한 구현에서, 제2 암호화 회로(244)는 결정론적 암호화를 구현한다. 예를 들어, 제2 암호화 회로(244)는 제1 키로 제1 값을 암호화하여 제1 암호화 결과를 생성할 수 있고, 제1 키로 제1 값을 다시 암호화하여 제1 암호화 결과와 동일한 제2 암호화 결과를 생성할 수 있다. 다양한 구현에서, 제2 암호화 회로(244)는 동일성에 대해 비교(예를 들어, 동일한 키로 암호화된 2개의 값 비교)될 수 있는 암호화된 데이터의 생성을 용이하게 한다. 다양한 구현에서, 제2 암호화 회로(244)는 제1 암호화 회로(20)와 관련하여 설명된 바와 같이 다양한 암호화 기능(예를 들어, 교환성, 재랜덤화 등)을 용이하게 한다. 일부 구현에서, 제2 암호화 회로(244)는 협력 암호화를 용이하게 한다. 예를 들어, 다수의 제2 암호화 회로(244)는 데이터 항목을 암호화하기 위해 함께 동작할 수 있다(예를 들어, 각각 암호화의 일부 가산 등).
복호화 회로(246)는 암호화된 데이터를 수신하고 그를 복호화하여 암호화되지 않은 데이터를 생성할 수 있다. 다양한 구현에서, 복호화 회로(246)는 게시자 컴퓨팅 시스템(10) 및/또는 상호작용 데이터 제공자 컴퓨팅 시스템(30)으로부터 암호화된 데이터를 수신한다. 예를 들어, 복호화 회로(246)는 게시자 컴퓨팅 시스템(10)으로부터 암호화된 제1 식별자 및/또는 상호작용 데이터 제공자 컴퓨팅 시스템(30)으로부터 암호화된 제2 식별자를 수신할 수 있다. 복호화 회로(246)는 비대칭적으로 암호화된 데이터를 복호화할 수 있다. 부가적으로 또는 대안적으로, 복호화 회로(246)는 대칭 및/또는 임계치 암호화 데이터를 복호화할 수 있다. 다양한 구현에서, 복호화 회로(246)는 제1 암호화 회로(242)로부터 하나 이상의 비밀(예를 들어, 비밀키 등)을 수신한다. 예를 들어, 복호화 회로(246)는 제1 암호화 회로(242)로부터 비밀키(예를 들어, EG 비밀키 등)를 수신하고, 그 비밀 키를 사용하여 게시자 컴퓨팅 시스템(10) 및/또는 상호작용 데이터 제공자 컴퓨팅 시스템(30)으로부터 수신된 암호화된 데이터를 적어도 부분적으로 복호화할 수 있다.
랜덤화 회로(248)는 데이터를 수신하고 다양한 랜덤화 기능을 수행하여 랜덤화된 데이터를 생성할 수 있다. 비-제한적인 예로서, 랜덤화 회로(248)는 암시적/간접적 식별자(예를 들어, 도착 시간, 순서, 발신 IP 주소 등)의 제거, 배치(batching) 동작 수행, 잡음 도입 및/또는 임의의 다른 익명화 동작 수행을 용이하게 할 수 있다. 다양한 구현에서, 랜덤화 회로(248)는 수신된 데이터를 셔플링(shuffling)(예를 들어, 재배열, 순서 변경 등)하여 셔플링된 데이터를 생성한다. 일부 구현에서, 랜덤화 회로(248)는 입력 데이터에 대해 하나 이상의 해싱 함수를 구현하여 해싱된 데이터를 생성한다. 예를 들어, 랜덤화 회로(248)는 SHA-2, Scrypt, Balloon 및/또는 Argon2 해싱 함수를 구현할 수 있다. 일부 구현에서, 랜덤화 회로(248)는 후속 암호화 라운드를 적용함으로써 암호문(ciphertext)을 재랜덤화하는 것을 용이하게 한다. 예를 들어, 랜덤화 회로(248)는 EG 암호화된 값을 처음 암호화하는데 사용된 동일한 키로 EG 암호화된 값을 두 번째로 암호화함으로써 EG 암호화된 값을 재랜덤화할 수 있다.
제2 데이터 처리 시스템(300)은 서로 다른 엔티티로부터 데이터를 안전하게 상관시키는 것을 용이하게 할 수 있다. 다양한 구현에서, 제2 데이터 처리 시스템(300)은 암호화된 게시자 데이터 및/또는 암호화된 상호 작용 데이터를 수신하고 그 수신된 데이터를 처리하여 집계(총) 상호 작용 데이터(예를 들어, 집계 값 등)를 생성한다. 예를 들어, 제2 데이터 처리 시스템(300)은 집계 동작을 수행하여 사용자 식별자를 결합하고, 상호 작용과 관련된 집계 값을 결정하고, 그리고 다양한 게시자 간에 크레딧을 분배할 수 있다. 제2 데이터 처리 시스템(300)은 적어도 하나의 컴퓨터 프로그램 또는 적어도 하나의 스크립트를 포함하거나 실행할 수 있다. 일부 구현에서, 제2 데이터 처리 시스템(300)은 하나 이상의 스크립트를 실행하도록 구성된 하나 이상의 프로세서와 같은 소프트웨어 및 하드웨어의 조합을 포함한다.
제2 데이터 처리 시스템(300)은 프로세서(320) 및 메모리(330)를 갖는 처리 회로(310)를 포함하는 것으로 도시된다. 메모리(330)는 프로세서(320)에 의해 실행될 때 처리 회로(310)로 하여금 본 명세서에 기술된 다양한 동작을 수행하게 하는 명령(어)을 저장할 수 있다. 처리 회로(310), 프로세서(320) 및/또는 메모리(330)는 상술한 처리 회로(14 및 34), 프로세서(16 및 36) 및/또는 메모리(18 및 38)와 유사할 수 있다. 메모리(330)는 제1 암호화 회로(332), 제2 암호화 회로(334), 복호화 회로(336) 및 분석 회로(338)를 포함할 수 있다.
제1 암호화 회로(332)는 입력 데이터에 대해 하나 이상의 암호화 기능을 구현하여 암호화된 데이터를 생성할 수 있다. 일부 구현에서, 제1 암호화 회로(332)는 비대칭 암호화 기능(예를 들어, EG 등)을 구현한다. 일부 구현에서, 제1 암호화 회로(332)는 타원 곡선을 통해 EG 암호화를 구현한다. 예를 들어, 제1 암호화 회로(332)는 EC 암호화를 구현하기 위해 제2 암호화 회로(244)에 의해 사용되는 타원 곡선을 통해 EG 암호화를 구현할 수 있다. 다양한 구현에서, 제1 암호화 회로(332)는 제1 암호화 회로(242)와 유사하다. 일부 구현에서, 제1 암호화 회로(332)는 암호화 키를 생성한다. 예를 들어, 제1 암호화 회로(332)는 공개키(예를 들어, EG 공개키) 및 비밀키(예를 들어, EG 비밀키)를 생성할 수 있다. 일부 구현에서, 제1 암호화 회로(332)는 제1 데이터 처리 시스템(200)과 공동으로 EG 공개키를 생성한다. 일부 구현에서, 제1 암호화 회로(332)는 시스템(100)의 다른 컴포넌트(예를 들어, 게시자 컴퓨팅 시스템(10), 상호작용 데이터 제공자 컴퓨팅 시스템(30) 등)와 암호화 키(또는 그 일부)를 공유한다. 다양한 구현에서, 제1 암호화 회로(332)는 제1 암호화 회로(20)와 관련하여 설명된 바와 같이 다양한 암호화 기능(예를 들어, 교환성, 재랜덤화 등)을 용이하게 한다.
제2 암호화 회로(334)는 입력 데이터에 대해 하나 이상의 암호화 기능을 구현하여 암호화된 데이터를 생성할 수 있다. 일부 구현에서, 제2 암호화 회로(334)는 비대칭 암호화 기능을 구현한다. 예를 들어, 제2 암호화 회로(334)는 RSA(Rivest-Shamir-Adleman) 암호 시스템을 구현할 수 있다. 추가적인 예로서, 제2 암호화 회로(334)는 게시자 컴퓨팅 시스템(10)으로부터 수신된 공개키로 랜덤 값을 암호화할 수 있다. 다양한 구현에서, 제2 암호화 회로(334)는 마스킹 동작을 구현한다. 예를 들어, 제2 암호화 회로(334)는 암호화된 집계 값을 마스킹하여 암호화된 마스킹된 집계 값을 생성할 수 있다. 마스킹 동작은 도 11을 참조하여 보다 상세히 설명된다.
복호화 회로(336)는 암호화된 데이터를 수신하고 그를 복호화하여 암호화되지 않은 데이터를 생성할 수 있다. 다양한 구현에서, 복호화 회로(336)는 제1 데이터 처리 시스템(200)으로부터 암호화된 데이터를 수신한다. 예를 들어, 복호화 회로(336)는 제1 데이터 처리 시스템(200)으로부터 암호화된 제1 및 제2 식별자를 수신할 수 있다. 복호화 회로(336)는 비대칭적으로 암호화된 데이터를 복호화할 수 있다. 부가적으로 또는 대안적으로, 복호화 회로(336)는 대칭 및/또는 임계값 암호화 데이터를 복호화할 수 있다. 다양한 구현에서, 복호화 회로(336)는 제1 암호화 회로(332)로부터 하나 이상의 비밀(예를 들어, 비밀키 등)을 수신한다. 예를 들어, 복호화 회로(336)는 제1 암호화 회로(332)로부터 비밀키(예를 들어, EG 비밀키 등)를 수신하고 그 비밀키를 사용하여 제1 데이터 처리 시스템(200)으로부터 수신된 암호화된 데이터를 적어도 부분적으로 복호화할 수 있다.
분석 회로(338)는 익명(예를 들어, 암호된 등) 게시자 데이터 및/또는 상호 작용 데이터를 수신하여 집계 상호 작용 데이터(예를 들어, 집계 값 등)를 생성할 수 있다. 다양한 구현에서, 분석 회로(338)는 수신된 데이터에 대해 통계적 동작을 수행하여 그 수신된 데이터를 기술하는 통계적 측정치를 생성한다. 예를 들어, 분석 회로(338)는 게시자와의 온라인 상호작용과 관련된 집계 값을 결정할 수 있다. 다양한 구현에서, 분석 회로(338)는 사용자 식별자 결합(joining)을 용이하게 한다. 예를 들어, 분석 회로(338)는 게시자 데이터의 제1 사용자 식별자를 상호 작용 데이터의 제2 사용자 식별자와 결합할 수 있다. 다양한 구현에서, 분석 회로(338)는 암호화된 식별자 결합을 용이하게 하여 사용자 프라이버시를 보호한다. 일부 구현에서, 분석 회로(338)는 온라인 상호작용과 관련된 게시자 사이의 크레딧 분배를 용이하게 한다.
제3 데이터 처리 시스템(400)은 제2 데이터 처리 시스템(300)에 의해 생성된 집계 상호작용 데이터(예를 들어, 집계 값 등)를 안전하게 배포하는 것을 용이하게 할 수 있다. 예를 들어, 제3 데이터 처리 시스템(400)은 제2 데이터 처리 시스템(300)으로부터 암호화된 마스킹된 집계 값을 수신하고, 그 암호화된 마스킹된 집계 값을 복호화하여 마스킹된 집계 값을 생성하고, 그리고 그 마스킹된 집계 값을 하나 이상의 게시자에게 전송할 수 있다. 제3 데이터 처리 시스템(400)은 적어도 하나의 컴퓨터 프로그램 또는 적어도 하나의 스크립트를 포함하거나 실행할 수 있다. 일부 구현에서, 제3 데이터 처리 시스템(400)은 하나 이상의 스크립트를 실행하도록 구성된 하나 이상의 프로세서와 같은 소프트웨어와 하드웨어의 조합을 포함한다.
제3 데이터 처리 시스템(400)은 프로세서(420) 및 메모리(430)를 갖는 처리 회로(410)를 포함하는 것으로 도시되어 있다. 메모리(430)는 프로세서(420)에 의해 실행될 때 처리 회로(410)로 하여금 본 명세서에 기술된 다양한 동작을 수행하게 하는 명령을 저장할 수 있다. 처리 회로(410), 프로세서(420) 및/또는 메모리(430)는 상술한 처리 회로(14 및 34), 프로세서(16 및 36) 및/또는 메모리(18 및 38)와 유사할 수 있다. 메모리(430)는 암호화 회로(432), 랜덤화 회로(434) 및 복호화 회로(436)를 포함할 수 있다.
암호화 회로(432)는 입력 데이터에 대해 하나 이상의 암호화 기능을 구현하여 암호화된 데이터를 생성할 수 있다. 일부 구현에서, 암호화 회로(432)는 비대칭 암호화 기능(예를 들어, EG, AHE 등)을 구현한다. 다양한 구현에서, 암호화 회로(432)는 제2 암호화 회로(42)와 유사하다. 일부 구현에서, 암호화 회로(432)는 암호화 키를 생성한다. 예를 들어, 암호화 회로(432)는 공개키(예를 들어, AHE 공개키) 및 비밀키(예를 들어, AHE 비밀키)를 생성할 수 있다. 일부 구현에서, 암호화 회로(432)는 시스템(100)의 다른 컴포넌트(예를 들어, 상호작용 데이터 제공자 컴퓨팅 시스템(30) 등)와 암호화 키를 공유한다. 다양한 구현에서, 암호화 회로(432)는 제2 암호화 회로(42)와 관련하여 설명된 바와 같이 다양한 암호화 기능(예를 들어, 가산성(additivity), 스칼라 곱셈 등)을 용이하게 한다.
랜덤화 회로(434)는 데이터를 수신하고 다양한 랜덤화 기능을 수행하여 랜덤화된 데이터를 생성할 수 있다. 다양한 구현에서, 랜덤화 회로(434)는 랜덤화 회로(248)와 유사하다. 일부 구현에서, 랜덤화 회로(434)는 후속 암호화 라운드를 적용함으로써 암호문을 재랜덤화하는 것을 용이하게 한다. 예를 들어, 랜덤화 회로(434)는 AHE 암호화된 값을 처음 암호화하는데 사용된 동일한 키로 AHE 암호화된 값을 두 번째로 암호화함으로써 AHE 암호화된 값을 재랜덤화할 수 있다.
복호화 회로(436)는 암호화된 데이터를 수신하고 복호화하여 암호화되지 않은 데이터를 생성할 수 있다. 다양한 구현에서, 복호화 회로(436)는 제2 데이터 처리 시스템(300)으로부터 암호화된 데이터를 수신한다. 예를 들어, 복호화 회로(436)는 제2 데이터 처리 시스템(300)으로부터 암호화된 집계 값 및/또는 암호화된 마스킹된 집계 값을 수신할 수 있다. 복호화 회로(436)는 비대칭적으로 암호화된 데이터를 복호화할 수 있다. 추가적으로 또는 대안적으로, 복호화 회로(436)는 대칭 및/또는 임계치 암호화 데이터를 복호화할 수 있다. 다양한 구현에서, 복호화 회로(436)는 암호화 회로(432)로부터 하나 이상의 비밀(예를 들어, 비밀키 등)을 수신한다. 예를 들어, 복호화 회로(436)는 암호화 회로(432)로부터 비밀키(예를 들어, AHE 비밀키 등)를 수신하고, 그 비밀키를 사용하여 제2 데이터 처리 시스템(300)으로부터 수신된 암호화된 데이터를 적어도 부분적으로 복호화할 수 있다. 일부 구현에서, 복호화 회로(436)는 공동 복호화를 용이하게 한다. 예를 들어, 다수의 복호화 회로(436)는 암호화된 데이터 항목을 복호화하기 위해 함께 작동할 수 있다(예를 들어, 암호화의 일부를 각각 제거하는 등).
이제 도 2를 참조하면, 예시적인 구현에 따른, 상이한 엔티티로부터 데이터를 안전하게 전송하고 집계(총) 상호 작용 데이터를 결정하기 위한 개선된 컴퓨터 아키텍처가 도시되어 있다. 간단히 요약하면, 게시자 컴퓨팅 시스템(10)과 관련된 게시자들은 클라이언트 디바이스들(예를 들어, 스마트폰, 컴퓨터 등)을 사용하여 사용자들에게 컨텐츠 아이템을 제공할 수 있다. 일부 구현에서, 컨텐츠 아이템은 특정 사용자에게 고유(specific)하다. 상호작용 데이터 제공자 컴퓨팅 시스템(30)과 관련된 상호작용 데이터 제공자는 사용자들이 컨텐츠 아이템과 상호작용하는 때를 검출할 수 있다. 예를 들어, 비디오(동영상)를 본 사용자는 비디오를 클릭할 수 있다. 컨텐츠 아이템과의 사용자 상호 작용을 측정하는 것이 바람직하다. 예를 들어 비디오를 제공하는 게시자는 얼마나 많은 사용자가 그 비디오를 클릭했는지 알고 싶어할 수 있다. 추가적으로 또는 대안적으로, 사용자들은 컨텐츠 아이템과의 상호 작용의 결과로서 게시자에 의해 제공되는 다른 컨텐츠와 상호 작용할 수 있다. 예를 들어, 비디오를 본 사용자는 나중에 게시자에 의해 관리되는 웹 사이트를 방문하여 그 비디오에 나오는 아이템을 구매할 수 있다. 일부 구현에서, 상호작용은 온라인 전환이거나 이와 관련된다. 다양한 구현에서, 컨텐츠 아이템과의 사용자 상호 작용 측정에는 게시자들로부터의 정보(예를 들어, 게시자 데이터 등)와 상호 작용 데이터 제공자들로부터의 정보(예를 들어, 상호 작용 데이터 등)의 비교가 필요하다. 따라서, 개인 정보를 노출하지 않고 온라인 컨텐츠와의 사용자 상호 작용을 안전하고 익명으로 측정할 수 있는 시스템이 필요하다. 본 명세서에 설명된 새로운 암호화 및 컴퓨터 아키텍처는 개인 정보를 노출하지 않고 온라인 컨텐츠와의 사용자 상호 작용에 대한 안전하고 익명의 측정을 용이하게 한다.
단계(502)에서, 제1 데이터 처리 시스템(200) 및 제2 데이터 처리 시스템(300)은 공동으로 EG 공개키를 생성한다. 일부 구현에서, 제2 데이터 처리 시스템(300)은 EG 공개키만을 생성한다. 일부 구현에서, 다수의 제1 데이터 처리 시스템(200)은 제2 데이터 처리 시스템(300)과 공동으로 EG 공개키를 생성한다. 다양한 구현에서, EG 공개키는 타원 곡선을 통한 EG 암호화를 구현함으로써 생성된 EG 공개키이다.
단계(504)에서, 제1 데이터 처리 시스템(200)은 게시자 컴퓨팅 시스템(10) 및 상호작용 데이터 제공자 컴퓨팅 시스템(30)으로 EG 공개키를 전송한다. 추가적으로 또는 대안적으로, 제2 데이터 처리 시스템(300)은 게시자 컴퓨팅 시스템(10) 및/또는 상호작용 데이터 제공자 컴퓨팅 시스템(30)으로 EG 공개키를 전송할 수 있다. 예를 들어, 제1 데이터 처리 시스템(200) 및 제2 데이터 처리 시스템(300)은 제1 데이터 처리 시스템(200) 및 제2 데이터 처리 시스템(300)으로부터 수신된 키가 동일한지 검증(확인)할 수 있는 게시자 컴퓨팅 시스템(10) 및 상호 작용 데이터 제공자 컴퓨팅 시스템(30)으로 EG 공개키를 각각 전송할 수 있다.
단계(506)에서, 제3 데이터 처리 시스템(400)은 게시자 컴퓨팅 시스템(10) 및 상호작용 데이터 제공자 컴퓨팅 시스템(30)으로 AHE 공개키를 전송한다. 단계(508)에서, 게시자 컴퓨팅 시스템(10) 및 상호작용 데이터 제공자 컴퓨팅 시스템(30)은 제1 데이터 처리 시스템(200)으로 데이터를 전송한다. 다양한 구현에서, 데이터는 암호화된다. 예를 들어, 데이터의 일부는 EG 공개키로 암호화되고, 데이터의 일부는 AHE 공개키로 암호화될 수 있다. 다양한 구현에서, 게시자 컴퓨팅 시스템(10)은 암호화된 게시자 데이터를 전송하고, 상호작용 데이터 제공자 컴퓨팅 시스템(30)은 암호화된 상호작용 데이터를 전송한다. 다양한 구현에서, 암호화된 게시자 데이터는 제1 암호화된 식별자를 포함한다. 일부 구현에서, 게시자 데이터에는 타임스탬프 및/또는 상호작용 수가 포함된다. 다양한 구현에서, 암호화된 상호작용 데이터에는 제2 암호화된 식별자 및 암호화된 값이 포함된다. 일부 구현에서, 상호작용 데이터는 타임스탬프 및/또는 성향(propensity) 데이터를 포함한다. 다양한 구현에서, 제1 및 제2 암호화된 식별자는 EG 공개키로 암호화될 수 있고, 암호화된 값은 AHE 공개키로 암호화될 수 있다.
단계(510)에서, 제1 데이터 처리 시스템(200)은 데이터를 제2 데이터 처리 시스템(300)으로 전송한다. 다양한 구현에서, 데이터는 암호화된다. 예를 들어, 데이터의 일부는 EC 비밀키를 사용하는 제1 암호화 계층과 EG 공개키를 사용하는 제2 부분 암호화 계층을 가질 수 있으며 데이터의 일부는 AHE 공개키를 사용하는 암호화 계층을 가질 수 있다. 다양한 구현에서, 데이터에는 암호화된 게시자 데이터 및 암호화된 상호 작용 데이터가 포함된다.
단계(512)에서, 제2 데이터 처리 시스템(300)은 데이터를 제3 데이터 처리 시스템(400)으로 전송한다. 다양한 구현에서, 데이터는 암호화된다. 예를 들어 데이터는 AHE 공개키로 암호화될 수 있다. 일부 구현에서, 데이터는 마스킹된다. 예를 들어, 데이터에 임의의 정수가 추가(append)될 수 있다. 다양한 구현에서, 데이터에는 암호화된 집계 값이 포함된다. 일부 구현에서, 데이터에는 하나 이상의 게시자와 관련된 암호화된 게시자 크레딧이 포함된다. 다양한 구현에서, 제3 데이터 처리 시스템(400)은 게시자 크레딧을 하나 이상의 게시자(예를 들어, 게시자 컴퓨팅 시스템(10) 등)에 전송할 수 있다.
이제 도 3a-3d를 참조하면, 예시적인 구현에 따른 키 생성 프로세스(600)가 도시되어 있다. 다양한 구현에서, 키 생성 프로세스(600)(또는 그의 엘리먼트)는 연속적으로 발생한다. 예를 들어, 시스템(100)은 처리된 각각의 새로운 데이터 세트에 대해 키 생성 프로세스(600)를 수행할 수 있다. 일부 구현에서, 키 생성 프로세스(600)는 주기적으로 발생한다. 예를 들어, 시스템(100)은 키 생성 프로세스(600)를 매시간, 매일, 매주 마다 수행할 수 있다. 이제 구체적으로 도 3a를 참조하면, 예시적인 구현에 따른 제1 데이터 처리 시스템(200)에 대한 키 생성 프로세스(600)가 도시되어 있다. 단계(602)에서, 제1 데이터 처리 시스템(200)은 제2 데이터 처리 시스템(300)과 공동으로 제1 공개키를 생성한다. 추가적으로 또는 대안적으로, 다수의 제1 데이터 처리 시스템(200)은 제2 데이터 처리 시스템(300)과 공동으로 제1 공개키를 생성할 수 있다. 예를 들어, 제1 데이터 처리 시스템(200)은 분산 처리 시스템일 수 있고, 제1 데이터 처리 시스템(200)의 다수의 분산된 컴포넌트는 제2 데이터 처리 시스템(300)과 공동으로 제1 공개키를 생성할 수 있다. 추가적인 예로서, 제2 데이터 처리 시스템(300)과 공동으로 제1 공개키를 생성할 수 있는 제1 데이터 처리 시스템(200)의 많은 본사본이 있을 수 있다. 다양한 구현에서, 제1 공개키는 EG 공개키이다. 예를 들어, 제1 공개키는 타원 곡선에 대해 EG 암호화를 구현함으로써 생성된 공개키일 수 있다. 일부 구현에서, 단계(602)는 생략되고 제2 데이터 처리 시스템(300)은 제1 공개키만을 생성한다.
단계(604)에서, 제1 데이터 처리 시스템(200)은 제1 공개키와 관련된 제1 비밀키를 생성한다. 다양한 구현에서, 제1 비밀키는 EG 비밀키이다. 일부 구현에서, 제1 데이터 처리 시스템(200)은 다수의 제1 비밀키를 생성한다. 예를 들어, 제1 데이터 처리 시스템(200)은 제2 데이터 처리 시스템(300)과 공동으로 제1 공개키를 생성하는 분산 처리 시스템일 수 있고, 제1 데이터 처리 시스템(200)의 다수의 분산 컴포넌트는 각각 자신의 제1 비밀키를 생성할 수 있다. 다양한 구현에서, 제1 비밀키와 제1 공개키는 키 쌍이다. 일부 구현에서, 단계(604)는 생략되고 제2 데이터 처리 시스템(300)은 제1 공개키만을 생성한다.
단계(606)에서, 제1 데이터 처리 시스템(200)은 제2 비밀키를 생성한다. 다양한 구현에서, 제2 비밀키는 EC 비밀키이다. 예를 들어, 제2 비밀키는 타원 곡선에 EC 암호화를 구현함으로써 생성된 비밀키일 수 있다. 다양한 구현에서, 제2 비밀키를 생성하는데 사용된 타원 곡선은 위의 단계(602)에서 제1 공개키를 생성하는데 사용된 타원 곡선과 동일하거나 유사하다. 일부 구현에서, 제1 데이터 처리 시스템(200)은 다수의 제2 비밀키를 생성한다. 예를 들어, 제1 데이터 처리 시스템(200)은 분산 처리 시스템일 수 있고, 제1 데이터 처리 시스템(200)의 다수의 분산 컴포넌트는 각각 자신의 제2 비밀키를 생성할 수 있다.
이제 구체적으로 도 3b를 참조하면, 예시적인 구현에 따른 제2 데이터 처리 시스템(300)에 대한 키 생성 프로세스(600)가 도시되어 있다. 단계(608)에서, 제2 데이터 처리 시스템(300)은 제1 데이터 처리 시스템(200)과 공동으로 제1 공개키를 생성한다. 다양한 구현에서, 제1 공개키는 EG 공개키이다. 다양한 구현에서, 제1 공개키는 위의 단계 606에서 설명된 제2 비밀키를 생성하는데 사용된 동일한 타원 곡선을 통해 EG 암호화를 구현함으로써 생성된다. 일부 구현에서, 제2 데이터 처리 시스템(300)은 다수의 제1 데이터 처리 시스템(200)과 공동으로 제1 공개키를 생성한다. 추가적으로 또는 대안적으로, 제2 데이터 처리 시스템(300)은 제1 공개키만을 생성할 수 있다.
단계(610)에서, 제2 데이터 처리 시스템(300)은 제1 공개키와 관련된 제3 비밀키를 생성한다. 다양한 구현에서, 제3 비밀키는 EG 비밀키이다. 다양한 구현에서, 제3 비밀키와 제1 공개키는 키 쌍이다.
이제 구체적으로 도 3c를 참조하면, 예시적인 구현에 따른 제3 데이터 처리 시스템(400)에 대한 키 생성 프로세스(600)가 도시되어 있다. 단계(612)에서, 제3 데이터 처리 시스템(400)은 제2 공개키를 생성한다. 다양한 구현에서, 제2 공개키는 AHE 공개키이다. 일부 구현에서, 제3 데이터 처리 시스템(400)은 다수의 제2 공개키를 생성한다. 예를 들어, 제3 데이터 처리 시스템(400)은 분산 처리 시스템일 수 있고, 제3 데이터 처리 시스템(400)의 다수의 분산 컴포넌트는 각각 자신의 제2 공개키를 생성할 수 있다.
단계(614)에서, 제3 데이터 처리 시스템(400)은 제2 공개키와 관련된 제4 비밀키를 생성한다. 다양한 구현에서, 제4 비밀키는 AHE 비밀키이다. 일부 구현에서, 제3 데이터 처리 시스템(400)은 다수의 제4 비밀키를 생성한다. 예를 들어, 제3 데이터 처리 시스템(400)은 분산 처리 시스템일 수 있고, 제3 데이터 처리 시스템(400)의 다수의 분산 컴포넌트는 각각 자신의 제4 비밀키를 생성할 수 있다. 다양한 구현에서, 제4 비밀키와 제2 공개키는 키 쌍이다.
이제 구체적으로 도 3d를 참조하면, 예시적인 구현에 따른 게시자 컴퓨팅 시스템(10)에 대한 키 생성 프로세스(600)가 도시되어 있다. 일부 구현에서, 게시자 컴퓨팅 시스템(10)은 어떠한 키도 생성하지 않는다. 단계(616)에서, 게시자 컴퓨팅 시스템(10)은 제3 공개키를 생성한다. 다양한 구현에서, 제3 공개키는 비대칭 암호화 공개키이다. 일부 구현에서, 다수의 게시자는 다수의 제3 공개키를 생성할 수 있으며, 각각의 제3 공개키는 다수의 게시자 중 하나에 대응한다. 일부 구현에서, 단계(616)는 상이한 상호작용 스트림(예를 들어, 모바일, 웹 등) 각각에 대해 다수의 제3 공개키를 생성하는 것을 포함한다.
단계(618)에서, 게시자 컴퓨팅 시스템(10)은 제3 공개키와 관련된 제5 비밀키를 생성한다. 다양한 구현에서, 제5 비밀키는 비대칭 암호화 비밀키이다. 다양한 구현에서, 제5 비밀키와 제3 공개키는 키 쌍이다.
이제 도 4a 내지 도 4b를 참조하면, 예시적인 구현에 따른 상호작용 데이터를 안전하게 전송하고 상관시키는 방법(700)이 도시되어 있다. 단계(702)에서, 시스템(100)은 키 생성 프로세스를 수행한다. 다양한 구현에서, 키 생성 프로세스는 도 3a-3d를 참조하여 위에서 상세히 설명된 바와 같이 수행될 수 있다. 단계(710)에서, 게시자 컴퓨팅 시스템(10)은 제1 공개키를 사용하여 제1 식별자를 암호화한다. 다양한 구현에서, 제1 공개키는 제2 데이터 처리 시스템(300)으로부터 수신된 EG 공개키이다. 다양한 구현에서, 제1 식별자는 게시자 컨텐츠와 상호작용(예를 들어, 광고 보기, 링크 클릭 등)한 사용자들의 사용자 식별자이다. 단계(712)에서, 게시자 컴퓨팅 시스템(10)은 데이터를 제1 데이터 처리 시스템(200)으로 전송한다. 다양한 구현에서, 데이터에는 암호화된 제1 식별자들이 포함한다. 예를 들어, 데이터에는 제2 데이터 처리 시스템(300)으로부터의 EG 공개키를 사용하여 암호화된 제1 식별자들이 포함될 수 있다. 일부 구현에서, 데이터에는 타임스탬프 및/또는 수량이 포함된다.
단계(720)에서, 상호작용 데이터 제공자 컴퓨팅 시스템(30)은 제1 공개키를 사용하여 제2 식별자들을 암호화한다. 다양한 구현에서, 제1 공개키는 EG 공개키이다. 다양한 구현에서, 제2 식별자는 온라인 상호작용(예를 들어, 구매 등)을 완료한 사용자들의 사용자 식별자이다. 단계(722)에서, 상호작용 데이터 제공자 컴퓨팅 시스템(30)은 제2 공개키를 사용하여 값들을 암호화한다. 다양한 구현에서, 제2 공개키는 제3 데이터 처리 시스템(400)으로부터 수신된 AHE 공개키이다. 다양한 구현에서, 값은 사용자들에 의해 완료된 온라인 상호 작용과 관련된 값 수량(예를 들어, 구매 금액 등)이다. 단계(724)에서, 상호작용 데이터 제공자 컴퓨팅 시스템(30)은 데이터를 제1 데이터 처리 시스템(200)으로 전송한다. 다양한 구현에서, 데이터에는 암호화된 제2 식별자 및 암호화된 값이 포함된다. 예를 들어, 데이터에는 제2 데이터 처리 시스템(300)으로부터의 EG 공개키를 사용하여 암호화된 제2 식별자들 및 제3 데이터 처리 시스템(400)으로부터의 AHE 공개키를 사용하여 암호화된 값들이 포함될 수 있다. 일부 구현에서, 데이터에는 타임스탬프 및/또는 성향 데이터가 포함된다.
단계(730)에서, 제1 데이터 처리 시스템(200)은 게시자 컴퓨팅 시스템(10)으로부터 암호화된 제1 식별자를 수신하고 상호작용 데이터 제공자 컴퓨팅 시스템(30)으로부터 암호화된 제2 식별자 및 암호화된 값을 수신한다. 일부 구현에서, 제1 데이터 처리 시스템(200)은 추가 정보(예를 들어, 타임스탬프, 수량, 성향 데이터 등)를 수신한다. 단계(732)에서, 제1 데이터 처리 시스템(200)은 제1 비밀키를 사용하여 암호화된 제1 및 제2 식별자로부터 암호화의 제1 부분을 제거하여 부분적으로 암호화된 제1 및 제2 식별자를 생성한다. 다양한 구현에서, 제1 비밀키는 제1 데이터 처리 시스템(200)에 의해 생성된 EG 비밀키이다. 예를 들어, 제1 데이터 처리 시스템(200) 및 제2 데이터 처리 시스템(300)은 복호화하기 위해 제1 데이터 처리 시스템(200)으로부터의 제1 EG 비밀키 및 제2 데이터 처리 시스템(300)으로부터의 제2 EG 비밀키를 필요로 하는 EG 공개키를 공동으로 생성할 수 있다. 일부 구현에서, 단계(732)는 생략되고 제2 데이터 처리 시스템(300)은 EG 암호화만을 제거한다. 추가적으로 또는 대안적으로, 다수의 제1 데이터 처리 시스템(200)은 제1 및 제2 식별자로부터 암호화의 제1 부분을 공동으로 제거할 수 있다. 예를 들어, 다수의 제1 데이터 처리 시스템(200) 및 제2 데이터 처리 시스템(300)은 복호화하기 위해 다수의 제1 데이터 처리 시스템(200) 각각으로부터의 제1 EG 비밀키 및 제2 데이터 처리 시스템(300)으로부터의 제2 EG 비밀키를 필요로 하는 EG 공개키를 공동으로 생성할 수 있다. 다양한 구현에서, 암호화의 제1 부분은 제1 EG 비밀키에 의해 제거될 수 있는 EG 암호화의 부분이다.
단계(734)에서, 제1 데이터 처리 시스템(200)은 제2 비밀키를 사용하여 부분적으로 암호화된 제1 및 제2 식별자를 암호화하여 폐색된(obscured, 가려진) 암호화된 제1 및 제2 식별자를 생성한다. 다양한 구현에서, 제2 비밀키는 제1 데이터 처리 시스템(200)에 의해 생성된 EC 비밀키이다. 다양한 구현에서, 폐색된 암호화된 제1 및 제2 식별자는 EG 암호화의 제1 부분 계층 및 EC 암호화의 제2 계층을 갖는다. 단계(736)에서, 제1 데이터 처리 시스템(200)은 폐색된 암호화된 제1 식별자 및/또는 폐색된 암호화된 제2 식별자 중 적어도 일부에 대해 랜덤화 동작을 수행한다. 예를 들어, 랜덤화 동작에는 암호화 암호문을 재랜덤화하는 것이 포함될 수 있다. 단계(738)에서, 제1 데이터 처리 시스템(200)은 데이터를 제2 데이터 처리 시스템(300)으로 전송한다. 다양한 구현에서, 데이터에는 폐색된 암호화된 제1 식별자와 제2 식별자 및 암호화된 값이 포함된다. 일부 구현에서, 데이터에는 추가 정보(예를 들어, 타임스탬프, 수량, 성향 데이터 등)가 포함된다.
단계(740)에서, 제2 데이터 처리 시스템(300)은 제1 데이터 처리 시스템(200)으로부터 폐색된 암호화된 제1 및 제2 식별자 및 암호화된 값을 수신한다. 일부 구현에서, 제2 데이터 처리 시스템(300)은 추가 정보(예를 들어, 타임스탬프, 수량, 성향 데이터 등)를 수신한다. 단계(742)에서, 제2 데이터 처리 시스템(300)은 제3 비밀키를 사용하여 상기 폐색된 암호화된 제1 및 제2 식별자를 복호화하여 폐색된 제1 및 제2 식별자를 생성한다. 다양한 구현에서, 단계(742)는 제2 데이터 처리 시스템(300)에 의해 보유된 EG 비밀키에 대응하는 EG 암호화의 제2 부분을 제거하는 것을 포함한다. 일부 구현에서, 제2 데이터 처리 시스템(300)은 자체적으로(예를 들어, 제1 데이터 처리 시스템(200) 없이) 전체 EG 암호화를 제거한다. 다양한 구현에서, 페색된 제1 및 제2 식별자는 EC 암호화된 제1 및 제2 식별자이다.
단계(750)에서, 제2 데이터 처리 시스템(300)은 폐색된 제1 및 제2 식별자 및 암호화된 값을 사용하여 집계 동작을 수행하여 암호화된 집계 값을 생성한다. 다양한 구현에서, 집계 동작은 폐색된 제1 식별자와 제2 식별자를 결합하고 암호화된 값과 관련된 크레딧을 배포하는 것을 포함한다. 집계 동작은 아래의 도 5-10을 참조하여 더 자세히 설명된다. 다양한 구현에서, 암호화된 집계 값은 특정 게시자 및/또는 상호 작용 경로와 관련된 값 수량이다. 다양한 구현에서, 암호화된 깁계 값은 (예를 들어, 각각 상이한 게시자 및/또는 상호 작용 경로 등과 관련된) 다수의 값 수량을 포함한다. 다양한 구현에서, 암호화된 집계 값은 AHE 암호화로 암호화된다.
단계(760)에서, 제2 데이터 처리 시스템(300)은 암호화된 집계 값에 대해 마스킹 동작을 수행하여 암호화된 마스킹된 집계 값을 생성한다. 일부 구현에서, 마스킹 동작은 랜덤 정수를 첨부(append)하는 것을 포함한다. 마스킹 동작은 이하 도 11을 참조하여 보다 상세히 설명된다. 일부 구현에서, 단계(760)는 생략된다. 단계(744)에서, 제2 데이터 처리 시스템(300)은 암호화된 마스킹된 집계 값을 제3 데이터 처리 시스템(400)으로 전송한다. 다양한 구현에서, 암호화된 마스킹된 집계 값에는 (예를 들어, 각각 다른 게시자 및/또는 상호 작용 경로 등과 관련된) 다수의 값이 포함될 수 있다.
단계(770)에서, 제3 데이터 처리 시스템(400)은 제2 데이터 처리 시스템(300)으로부터 암호화된 마스킹된 집계 값을 수신한다. 다양한 구현에서, 암호화된 마스킹된 집계 값은 위에서 설명된 바와 같이 다수의 값을 포함한다. 단계(772)에서, 제3 데이터 처리 시스템(400)은 제4 비밀키를 사용하여 암호화된 마스킹된 집계 값을 복호화하여 마스킹된 집계 값을 생성한다. 다양한 구현에서, 제4 비밀키는 제3 데이터 처리 시스템(400)에 의해 생성된 AHE 비밀키이다. 다양한 구현에서, 마스킹된 집계 값은 첨부된 랜덤 정수를 갖는 집계 값이다. 단계(774)에서, 제3 데이터 처리 시스템(400)은 마스킹된 집계 값을 게시자 컴퓨팅 시스템(10)으로 전송한다. 일부 구현에서, 단계(774)는 다수의 마스킹된 집계 값을 전송하는 것을 포함한다. 예를 들어, 제3 데이터 처리 시스템(400)은 각각 다른 상호 작용 경로 및/또는 상이한 게시자와 관련된 다수의 마스킹된 집계 값을 전송할 수 있다.
이제 도 5 내지 도 10을 참조하면, 예시적인 구현에 따른 단계(750)가 보다 상세하게 도시되어 있다. 다양한 구현에서, 제2 데이터 처리 시스템(300)은 단계(750)를 수행한다. 단계(752)에서, 제2 데이터 처리 시스템(300)은 폐색된 제1 및 제2 식별자를 결합한다. 다양한 구현에서, 폐색된 제1 식별자와 제2 식별자를 결합하는 것은 폐색된 제1 식별자와 제2 식별자의 암호문을 비교하는 것을 포함한다. 예를 들어, 암호문 "svf414fal20"을 갖는 폐색된 제1 식별자는 암호문 "svf414fal20"을 갖는 폐색된 제2 식별자와 결합(예를 들어, 매칭 등)될 수 있다. 다양한 구현에서, 단계(752)는 폐색된 식별자들에 의해 데이터를 행으로 그룹화하는 것을 포함한다.
단계(754)에서, 제2 데이터 처리 시스템(300)은 게시자들 사이에 크레딧을 분배한다. 추가적으로 또는 대안적으로, 제2 데이터 처리 시스템(300)은 상호작용 경로 사이에 크레딧을 분배할 수 있다. 다양한 구현에서, 단계(754)는 크레딧을 분배하기 위해 행에 걸쳐 함수를 계산하는 것을 포함한다. 단계(754)는 아래의 도 6-10을 참조하여 더 자세히 설명된다. 다양한 구현에서, 크레딧은 규칙 기반 속성에 따라 분배된다. 예를 들어, 제2 데이터 처리 시스템(300)은 첫 번째 노출 방식(예를 들어, 제1 상호작용이 모든 크레딧을 받음), 마지막 노출 방식(예를 들어, 마지막 상호작용이 모든 크레딧을 받음), 선형/ 균등 가중치 방식(예를 들어, 각 상호 작용 및/또는 게시자가 크레딧의 동일한 부분을 받음), 위치 방식(예를 들어, 첫 번째 및/또는 마지막 상호 작용이 크레딧의 제1 부분을 받고 나머지 상호 작용이 나머지 크레딧의 동일한 부분을 받음), 시간 감쇠 방식(예를 들어, 선형/동일 가중치와 유사하지만 이전 상호 작용과 관련된 페널티 포함), 사용자 정의(custom) 방식에 기초하여 크레딧을 분배할 수 있다. 일부 구현에서, 크레딧은 MMM(Multivariate Markov Model)에 기초하여 분배된다. 단계(756)에서, 제2 데이터 처리 시스템(300)은 합산을 수행하여 암호화된 집계 값을 생성한다. 일부 구현에서, 단계(756)는 다수의 값 수량을 생성한다. 다양한 구현에서, 단계(756)는 각각의 열을 따라 집계하는 것을 포함한다.
이제 구체적으로 도 6을 참조하면, 예시적인 구현에 따른 데이터 세트 처리(manipulation)가 도시되어 있다. 다양한 구현에서, 제2 데이터 처리 시스템(300)은 게시자 데이터(810) 및 상호작용 데이터(820)를 포함할 수 있다. 다양한 구현에서, 게시자 데이터(810)에는 제1 식별자(814)가 포함된다. 제1 식별자(814)는 EC 암호화된 것일 수 있다. 일부 구현에서, 제1 식별자(814)는 디바이스 식별자이다. 추가적으로 또는 대안적으로, 제1 식별자(814)는 사용자 계정과 관련된 식별자와 같은 다른 식별자일 수 있거나 이를 포함할 수 있다. 제1 식별자(814)는 숫자로 도시되지만, 제1 식별자(814)는 영숫자 암호문일 수 있음을 이해해야 한다. 다양한 구현에서, 제1 식별자(814)는 게시자 식별자(812)와 관련된다. 게시자 식별자(812)는 관련된 제1 식별자(814)의 소스를 식별할 수 있다. 일부 구현에서, 게시자 데이터는 상호작용 경로 식별자를 포함한다. 다양한 구현에서, 상호작용 데이터(820)는 제2 식별자(822) 및 값(824)을 포함한다. 제2 식별자(822)는 EC 암호화된 것일 수 있다. 값(824)은 AHE 암호화된 것일 수 있다. 전술한 바와 같이, 제2 식별자(822) 및 값(824)은 각각 이름 및 금액으로 표시되지만, 제2 식별자(822) 및 값(824)은 영숫자 암호문임을 이해해야 한다. 다양한 구현에서, 값(824)은 제2 식별자(822)와 관련된다. 다양한 구현에서, 제2 식별자(822)는 제1 식별자(814)와 관련된다. 다양한 구현에서, 게시자 데이터(810) 및/또는 상호작용 데이터(820)는 제2 데이터 처리 시스템(300)에 의해 수신될 때 구조화되지 않은 데이터(예를 들어, 정렬되지 않은 데이터 등)이다.
단계(752)에서, 제2 데이터 처리 시스템(300)은 폐색된 제1 및 제2 식별자(예를 들어, 제1 식별자(814) 및 제2 식별자(822))를 결합한다. 단계(752)는 제1 및 제2 식별자(814 및 822)를 매칭함으로써 데이터를 행으로 그룹화하는 것을 포함할 수 있다. 다양한 구현에서, 제2 데이터 처리 시스템(300)은 결합된 제1 및 제2 식별자(814 및 822)에 기초하여 게시자가 사용자와의 상호작용(830)을 기록(record)했는지 또는 사용자와의 상호작용(832)을 기록하지 않았는지 여부를 결정한다. 예를 들어, 제2 데이터 처리 시스템(300)은 게시자 1 및 3이 게시자 컨텐츠를 "ID 3"에 디스플레이했고 게시자 2는 게시자 컨텐츠를 디스플레이하지 않았음을 결정할 수 있다. 다양한 구현에서, 제2 데이터 처리 시스템(300)은 매칭하는 제1 및 제2 식별자(814 및 822)에 기초하여 행에 대응하는 특정 값(예를 들어, 값(824) 중)을 결정한다. 데이터가 상이한 게시자에 해당하는 것으로 도시되더라도 데이터는 추가적으로 또는 대안적으로 다른 상호 작용 경로에 해당할 수 있음을 이해해야 한다.
단계(754)에서, 제2 데이터 처리 시스템(300)은 게시자 사이에 크레딧(840)을 분배한다. 일부 구현에서 크레딧(840)은 값(824)의 일부 또는 전부이다. 일부 구현에서, 제2 데이터 처리 시스템(300)은 게시자 사이에 크레딧(840)을 고르게 분배한다. 예를 들어, 제2 데이터 처리 시스템(300)은 게시자 1과 3은 게시자 컨텐츠를 "ID 3"에 디스플레이했고 게시자 2는 게시자 1과 3 사이에 "ID 3"과 관련된 값 "9$"을 균등하게(예를 들어, 각각에 "4.5$")를 분배하지 않았으며 균등하게 분포할 수 있다고 결정할 수 있다. 부가적으로 또는 대안적으로, 제2 데이터 처리 시스템(300)은 맞춤형 프로세스(예를 들어, 맞춤형 규칙 등)를 사용하여 값을 분배할 수 있다. 예를 들어, 제2 데이터 처리 시스템(300)은 컨텐츠를 사용자에게 먼저 디스플레이한 제1 게시자에게 값의 대부분을 분배할 수 있고, 제1 게시자 이후에 사용자에게 컨텐츠를 디스플레이한 다양한 다른 게시자 간에 소수 비율(minority percentage)의 값을 분배할 수 있다.
단계(756)에서, 제2 데이터 처리 시스템(300)은 합산을 수행하여 집계 값(850)을 생성한다. 단계(756)는 각각의 열을 따라 집계하는 것을 포함할 수 있다. 예를 들어, 제2 데이터 처리 시스템(300)은 게시자 1과 관련된 크레딧(840)의 모음(collection)을 합산하여 집계 값(850)을 결정할 수 있다. 다양한 구현에서, 제2 데이터 처리 시스템(300)은 각 게시자에 대한 집계 값(850)을 결정한다. 추가적으로 또는 대안적으로, 제2 데이터 처리 시스템(300)은 각각의 상호작용 경로에 대한 집계 값을 결정할 수 있다.
이제 구체적으로 도 7을 참조하면, 예시적인 구현에 따른 데이터 세트 처리가 도시되어 있다. 다양한 구현에서, 도 7의 데이터 세트 처리는 도 6의 데이터 세트 처리와과 유사하다. 게시자 데이터(810)에는 시간(816)이 포함될 수 있다. 시간(816)은 제1 식별자(814)와 관련된 사용자가 게시자 컨텐츠와 상호작용한 시간과 관련될 수 있다. 다양한 구현에서, 시간(816)은 타임스탬프를 포함한다. 일부 구현에서, 시간(816)은 (예를 들어, 시간, 일 등으로) 절단(truncated) 및/또는 일괄 처리되어(batched) 개인 정보를 보존한다.
다양한 구현에서, 단계(752)는 전술한 바와 같이 수행된다. 다양한 구현에서, 제2 데이터 처리 시스템(300)은 각각의 게시자 상호작용과 관련된 상호작용 시간(834)을 결정한다. 예를 들어, 제2 데이터 처리 시스템(300)은 게시자 1이 "5/11"일에 게시자 컨텐츠를 "ID 3"에 디스플레이했고 게시자 3이 "5/14"일에 게시자 컨텐츠를 "ID 3"에 디스플레이했으며 게시자 2는 상호작용(832)을 기록하지 않았다고 결정할 수 있다. 단계(754)에서, 제2 데이터 처리 시스템(300)은 마지막 클릭(last-clicked) 속성 방식에 따라 게시자들 사이에 크레딧(840)을 분배할 수 있다. 예를 들어, 제2 데이터 처리 시스템(300)은 게시자 3이 게시자 컨텐츠를 "ID 3"에 디스플레이한 마지막 게시자이기 때문에 게시자 3에 "ID 3"과 관련된 전체 값 수량을 분배할 수 있다. 추가적으로 또는 대안적으로, 제2 데이터 처리 시스템(300)은 첫 번째 클릭 속성 방식에 따라 게시자 간에 크레딧(840)을 분배할 수 있다. 다양한 구현에서, 단계(756)는 전술한 바와 같이 수행된다.
이제 구체적으로 도 8을 참조하면, 예시적인 구현에 따른 데이터 세트 처리가 도시되어 있다. 다양한 구현에서, 도 8의 데이터 세트 처리는 도 6의 데이터 세트 처리과 유사하다. 게시자 데이터(810)에는 수량(818)이 포함될 수 있다. 수량(818)은 게시자가 사용자와의 상호작용을 기록(예를 들어, 사용자에게 디스플레이된 게시자 컨텐츠 등)한 횟수와 관련될 수 있다.
다양한 구현에서, 단계(752)는 전술한 바와 같이 수행된다. 다양한 구현에서, 제2 데이터 처리 시스템(300)은 각각의 게시자 상호작용과 관련된 상호작용 수량(836)을 결정한다. 예를 들어, 제2 데이터 처리 시스템(300)은 게시자 1은 게시자 컨텐츠를 "ID 3"에 한 번 디스플레이했고, 게시자 3은 게시자 컨텐츠를 "ID 3"에 4번 디스플레이했으며, 게시자 2는 상호작용(832)을 기록하지 않았다고 결정할 수 있다. 단계(754)에서, 제2 데이터 처리 시스템(300)은 상호 작용 수양(836)에 기초하여 게시자들 사이에 크레딧(840)을 분배할 수 있다. 예를 들어, 제2 데이터 처리 시스템(300)은 상호 작용 수량(836)에 기초하여 크레딧(840)에 가중치를 부여할 수 있다. 추가적인 예로서, 제2 데이터 처리 시스템(300)은 게시자 3이 'ID 3'와 관련된 전체 사용자 상호작용의 4/5를 기록했고 게시자 1이 'ID 3'과 관련된 전체 사용자 상호작용의 1/5을 기록했기 때문에 "ID 3"과 관련된 값 수량의 4/5를 게시자 3에 분배하고 "ID 3"과 관련된 값 수량의 1/5을 게시자 1에 분배할 수 있다. 다양한 구현에서, 단계(756)는 전술한 바와 같이 수행된다.
이제 구체적으로 도 9를 참조하면, 예시적인 구현에 따른 샤플리(Shapley) 값의 생성이 도시되어 있다. 상호작용 데이터(820)는 시간(826)을 포함할 수 있다. 시간(826)은 제2 식별자(822)와 관련된 사용자가 온라인 상호작용(예를 들어, 구매 등)을 수행한 시간과 관련될 수 있다. 다양한 구현에서, 시간(826)은 타임스탬프를 포함한다. 일부 구현에서, 시간(826)은 절단(예를 들어, 시, 요일 등) 및/또는 일괄 처리되어 개인 정보를 보존한다(예를 들어, 프라이버시 및 보안 유지 등). 다양한 구현에서, 단계(752)는 상호작용 시간(834)을 결정하기 위해 전술한 바와 같이 수행된다.
단계(754A)에서, 제2 데이터 처리 시스템(300)은 각 경로(860)와 관련된 상호작용의 수(862) 및 전체 값(864)을 결정한다. 예를 들어, 제1 경로(860)는 사용자가 게시자 1, 2 및 3의 게시자 컨텐츠와 상호작용한 상호작용을 포함할 수 있는 반면, 제2 경로(860)는 사용자가 게시자 1의 게시자 컨텐츠와만 상호작용한 상호작용을 포함할 수 있다. 일부 구현에서, 경로(860)는 상호 작용의 유형을 기술한다. 예를 들어, 제1 경로(860)는 모바일 및 웹 상호 작용을 포함할 수 있고 제2 경로는 링크 추천(link-referrals)을 포함할 수 있다. 다양한 구현에서, 상호작용의 수(862)는 특정 경로(860)에서 정의된 엘리먼트와 상호작용하는 것으로서 기록된 사용자 수의 합계이다. 다양한 구현에서, 경로(860)는 순서가 없다(예를 들어, 비순차적 등).
단계(754B)에서, 제2 데이터 처리 시스템(300)은 샤플리 값(852)을 결정한다. 샤플리 값(852)은 모든 가능한 경로(860)에 걸쳐 게시자의 평균 한계 기여도(average marginal contribution)를 기술할 수 있다. 다양한 구현에서, 제2 데이터 처리 시스템(300)은 다음과 같이 샤플리 값(852)을 계산한다.
Figure pct00001
여기서 φj는 xj에 대한 샤플리 값(852)이고, xj는 사용자 상호작용(예를 들어, 게시자 식별자(812)과 관련된 제1 식별자(814))이고, j는 게시자(p)의 총 수의 인덱스이고, P는 모든 사용자 상호작용의 세트이고, S⊆P{xj}는 상호작용(xj)을 포함해야 하는 사용자 상호작용의 서브 세트이며, R(S∪{xj})는 특정 경로(860)로 분배된 크레딧이다.
예를 들어, 게시자 1에 대한 샤플리 값(852)은 다음과 같이 계산할 수 있다.
φ1 = R(게시자 1과 관련된 수)
+ 1/2 R(게시자 1 및 2와 관련된 수)
+ 1/2 R(게시자 1 및 3과 관련된 수)
+ 1/3 R(게시자 1, 2, 3과 관련된 수)
Figure pct00002
추가적으로 또는 대안적으로, 샤플리 값(852)은 집계 값(850)으로서 계산될 수 있다. 예를 들어, 집계 값(850)은 다음과 같이 계산될 수 있다.
φ1 = R(게시자 1과 관련된 $)
+ 1/2R(게시자 1 및 2와 관련된 $)
+ 1/2R(게시자 1 및 3과 관련된 $)
+ 1/3R(게시자 1, 2 및 3과 관련된 $)
Figure pct00003
일부 구현에서, 단계(754B)는 단계(756)를 포함한다. 추가적으로 또는 대안적으로, 집계 값(850)은 성향 스코어에 기초하여 계산될 수 있다. 예를 들어, 제2 데이터 처리 시스템(300)은 성향 스코어에 기초하여 데이터를 그룹화할 수 있고 데이터의 그룹화에 기초하여 집계 값(850)을 결정할 수 있다.
이제 도 10을 참조하면, 예시적인 구현에 따른 마르코프 모델(Markov Model)의 생성이 도시되어 있다. 다양한 구현에서, 단계(752)는 전술한 바와 같이 수행된다. 다양한 구현에서, 제2 데이터 처리 시스템(300)은 다수의 경로(870)와 관련된 다수의 상호작용(862) 및 전체 값(864)을 결정한다. 예를 들어, 제1 경로(870)는 사용자가 게시자 1의 게시자 컨텐츠, 게시자 2의 게시자 컨텐츠 및 게시자 3의 게시자 컨텐츠와 상호작용한 상호작용을 포함할 수 있는 반면, 제2 경로(870)는 사용자가 게시자 1의 게시자 컨텐츠와만 상호 작용한 상호 작용을 포함할 수 있다. 다양한 구현에서, 경로(870)에는 순서가 있다(예를 들어, 순차적 등).
단계(754C)에서, 제2 데이터 처리 시스템(300)은 마르코프 모델(880)을 생성한다. 마르코프 모델(880)은 상태 시퀀스를 통한 여정으로서 경로(870)를 모델링할 수 있다. 마르코프 모델(880)은 노드(882) 및 연결(connection)(884)을 포함할 수 있다. 노드(882)는 상호 작용을 나타낼 수 있다. 예를 들어, 사용자는 온라인 상호작용(예를 들어, 구매 등)을 수행하기 전에 게시자 1에 이어 게시자 3의 게시자 컨텐츠와 상호작용할 수 있다. 다양한 구현에서, 마르코프 모델(880)은 시작, 종료 및 널(null) 노드(882)를 포함한다. 시작 노드(882)는 시작 위치(예를 들어, 사용자가 게시자 컨텐츠 등과 상호작용하기 전)를 나타낼 수 있다. 종료 노드(882)는 온라인 상호작용을 수행한 사용자를 나타낼 수 있다. 널 노드(882)는 온라인 상호작용을 수행하지 않은 사용자를 나타낼 수 있다. 연결(884)은 제1 노드(882)로부터 제2 노드(882)로 전환할 확률을 나타낼 수 있다. 다양한 구현에서, 제2 데이터 처리 시스템(300)은 (예를 들어, 게시자 데이터(810) 및 상호작용 데이터(820)에 기초하여) 경험적으로 연결(884)의 확률을 결정한다.
단계(754D)에서, 제2 데이터 처리 시스템(300)은 제거(removal) 효과(854)를 생성한다. 제거 효과(854)는 특정 게시자가 존재하지 않는 경우 발생하는 다수의 온라인 상호작용과 특정 게시자가 존재하는 경우 발생하는 다수의 온라인 상호작용을 비교함으로써 게시자의 기여도를 모델링할 수 있다. 다양한 구현에서, 제2 데이터 처리 시스템(300)은 제거 효과(854)를 다음과 같이 계산한다.
Figure pct00004
여기서 RE(i)는 노드(882i)와 관련된 엔티티에 대한 제거 효과(854)이고, R은 총 상호작용 비율(예를 들어, 결국 온라인 상호작용을 수행한 사용자의 백분율)이고, ppri는 노드(882i)와 관련된 경로 확률이다. 예를 들어, 시작→게시자 1→종료의 ppri는 0.5 * 0.33 = 0.16이다. 일부 구현에서, 단계(754D)는 단계(756)를 포함한다.
다양한 구현에서, 제2 데이터 처리 시스템(300)은 제거 효과(854)의 합계의 백분율로서 제거 효과(854)를 생성한다. 예를 들어, 제거 효과(854)는 다음과 같이 계산될 수 있다.
Figure pct00005
이제 도 11을 참조하면, 예시적인 구현에 따른 마스킹 동작을 수행하는 단계(760)가 도시되어 있다. 다양한 구현에서, 제2 데이터 처리 시스템(300)은 단계(760)를 수행한다. 단계(762)에서, 제2 데이터 처리 시스템(300)은 랜덤 값을 생성한다. 다양한 구현에서, 랜덤 값은 큰 랜덤 값(예를 들어, 128비트 이상 등)이다. 다양한 구현에서, 단계(762)는 다수의 랜덤 값을 생성하는 것을 포함한다. 예를 들어, 제2 데이터 처리 시스템(300)은 마스킹된 집계 값의 각 목적지에 대해(예를 들어, 각 게시자에 대해) 랜덤 값을 생성할 수 있다.
단계(764)에서, 제2 데이터 처리 시스템(300)은 랜덤 값 및 암호화된 집계 값을 사용하여 동작을 수행하여 암호화된 마스킹된 집계 값을 생성한다. 다양한 구현에서, 동작에는 암호화된 집계 값에 랜덤 값을 첨부하는 것이 포함된다. 단계(766)에서, 제2 데이터 처리 시스템(300)은 제3 공개키를 사용하여 랜덤 값을 암호화하여 암호화된 랜덤 값을 생성한다. 다양한 구현에서, 제3 공개키는 게시자 컴퓨팅 시스템(10)으로부터의 비대칭 암호화 공개키이다. 단계(768)에서, 제2 데이터 처리 시스템(300)은 암호화된 랜덤 값을 게시자 컴퓨팅 시스템(10)으로 전송한다. 다양한 구현에서, 단계(766 및 768)는 랜덤 값 및/또는 목적지 각각에 대해(예를 들어, 각각의 게시자에 대해) 반복될 수 있다.
도 12는 예를 들어 본 개시에 기술된 임의의 예시적인 시스템(예를 들어, 시스템(100) 등)을 구현하는데 사용될 수 있는 컴퓨팅 시스템(1000)의 묘사를 나타낸다. 컴퓨팅 시스템(1000)은 정보를 통신하기 위한 버스(1005) 또는 다른 통신 컴포넌트 및 정보를 처리하기 위해 버스(1005)에 연결된 프로세서(1010)를 포함한다. 컴퓨팅 시스템(1000)은 또한 정보를 저장하기 위해 버스(1005)에 연결된 랜덤 액세스 메모리("RAM") 또는 다른 동적 저장 디바이스와 같은 메인 메모리(1015) 및 프로세서(1010)에 의해 실행될 명령을 포함한다. 메인 메모리(1015)는 또한 프로세서(1010)에 의한 명령의 실행 동안 위치 정보, 임시 변수 또는 기타 중간 정보를 저장하는데 사용될 수 있다. 컴퓨팅 시스템(1000)은 판독 전용 메모리("ROM")(1020) 또는 프로세서(1010)에 대한 정적 정보 및 명령을 저장하기 위해 버스(1005)에 연결된 다른 정적 저장 디바이스를 추가로 포함할 수 있다. 솔리드 스테이트 디바이스, 자기 디스크 또는 광학 디스크와 같은 저장 디바이스(1025)는 정보 및 명령을 지속적으로 저장하기 위해 버스(1005)에 연결된다.
컴퓨팅 시스템(1000)은 사용자에게 정보를 표시하기 위한 액정 디스플레이 또는 능동 매트릭스 디스플레이와 같은 디스플레이(1035)에 버스(1005)를 통해 결합될 수 있다. 영숫자 키 및 기타 키를 포함하는 키보드와 같은 입력 디바이스(1030)는 정보를 전달하기 위해 버스(1005)에 결합될 수 있고, 선택을 프로세서(1010)에 명령할 수 있다. 다른 구현에서, 입력 디바이스(1030)는 터치 스크린 디스플레이(1035)를 갖는다. 입력 디바이스(1030)는 방향 정보 및 명령 선택을 프로세서(1010)에 전달하고 디스플레이(1035) 상의 커서 이동을 제어하기 위한, 마우스, 트랙볼 또는 커서 방향 키와 같은 커서 컨트롤을 포함할 수 있다.
일부 구현에서, 컴퓨팅 시스템(1000)은 네트워크 어댑터와 같은 통신 어댑터(1040)를 포함할 수 있다. 통신 어댑터(1040)는 버스(1005)에 결합될 수 있고 컴퓨팅 또는 통신 네트워크(1045) 및/또는 기타 컴퓨팅 시스템과의 통신을 가능하게 하도록 구성될 수 있다. 다양한 예시적 구현에서, 모든 유형의 네트워크 구성은 유선(예를 들어, 이더넷을 통해), 무선(예를 들어, Wi-Fi, 블루투스 등을 통해), 사전 구성된, 애드혹, LAN, WAN 등과 같은 통신 어댑터(1040)를 사용하여 달성될 수 있다.
다양한 구현에 따르면, 본 명세서에 설명된 예시적인 구현을 실현하는 프로세스는 프로세서(1010)가 메인 메모리(1015)에 포함된 명령(어) 배열을 실행하는 것에 응답하여 컴퓨팅 시스템(1000)에 의해 달성될 수 있다. 이러한 명령(어)은 저장 디바이스(1025)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(1015)로 판독될 수 있다. 메인 메모리(1015)에 포함된 명령 배열의 실행은 컴퓨팅 시스템(1000)으로 하여금 본 명세서에 설명된 예시적인 프로세스를 수행하게 한다. 다중 처리 배열의 하나 이상의 프로세서는 메인 메모리(1015)에 포함된 명령(어)을 실행하는데 사용될 수도 있다. 대안적인 구현에서, 예시적인 구현을 구현하기 위해 소프트웨어 명령 대신에 또는 소프트웨어 명령과 조합하여 유선 회로가 사용될 수 있다. 따라서, 구현은 하드웨어 회로와 소프트웨어의 임의의 특정 조합으로 제한되지 않는다.
예시적인 프로세싱 시스템이 도 12에 설명되었지만, 본 명세서에 설명된 주제 및 기능적 동작의 구현은 다른 유형의 디지털 전자 회로를 사용하거나, 또는 본 명세서에 개시된 구조 및 이들의 구조적 등가물, 또는 이들 중 하나 이상의 조합을 포함하여 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 수행될 수 있다.
위의 설명에 추가하여, 사용자는 본 명세서에 설명된 시스템, 프로그램 또는 기능이 사용자 정보보(예를 들어, 사용자의 소셜 네트워크, 소셜 행동 또는 활동에 대한 정보, 직업, 사용자의 선호도 또는 사용자의 현재 위치) 수집을 가능하게 할 수 있는지 여부와 사용자가 서버로부터 컨텐츠 또는 통신을 수신하는지 여부에 대해 사용자가 선택할 수 있는 컨트롤을 제공받을 수 있다. 또한, 특정 데이터는 개인 식별 정보가 제거되도록 저장 또는 사용하기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 신원은 사용자에 대한 개인 식별 정보가 결정될 수 없도록 처리될 수 있거나, 사용자의 지리적 위치는 사용자의 특정 위치가 결정될 수 없도록 위치 정보가 획득되는 곳에서 (예를 들어, 도시, 우편 번호 또는 주 수준과 같이) 일반화될 수 있다. 따라서 사용자는 사용자에 대해 수집되는 정보, 해당 정보가 사용되는 방법 및 사용자에게 제공되는 정보를 제어할 수 있다. 본 명세서에 설명된 시스템이 사용자 또는 사용자 디바이스에 설치된 애플리케이션에 대한 프라이버시를 수집하거나 프라이버시를 사용하는 상황에서, 사용자에게는 프로그램 또는 기능이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 행동 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 위치)를 수집할지 여부를 제어할 수 있는 기회가 제공될 수 있다. 추가적으로 또는 대안적으로, 특정 데이터는 개인 정보가 제거될 수 있도록 저장 또는 사용되기 전에 하나 이상의 방식으로 처리될 수 있다.
본 발명의 시스템 및 방법은 기존 시스템에 비해 많은 이점을 제공한다. 개인 정보를 노출하는 것을 방지하기 위해, 차등 프라이버시는 특정 개인의 정보가 상호 작용 비율을 계산하는데 포함되었는지 여부를 집계된 상호 작용 측정이 밝히지 않도록 요구할 수 있다. 따라서, 집계 상호 작용을 측정하고 다수의 게시자 간에 크레딧을 분배하는 프라이버시 보호 방법이 필요하다.
하나의 솔루션은 결과 측정 서비스를 활용한다. 이 결과 측정 서비스는 게시자 데이터와 상호 작용 데이터를 결합하여 온라인 상호 작용과 관련된 집계(총) 크레딧을 결정할 수 있다. 더욱이, 결과 측정 서비스는 본 명세서에 기술된 고유한 암호화 및 컴퓨터 아키텍처 방법론을 사용하여 게시자 간의 온라인 상호 작용과 관련된 크레딧을 안전하게 분배(배포)할 수 있다. 다양한 구현에서, 본 명세서에 설명된 결과 측정 서비스는 상호 작용 측정 분야를 개선한다. 또한, 결과 측정 서비스는 기존 시스템보다 더 빠르고 더 강력한 보안으로 집계 측정을 안전하게 결정할 수 있으므로 기존 컴퓨터 시스템의 기능을 개선할 수 있다.
본 명세서에 기술된 주제 및 동작의 구현은 본 명세서에 개시된 구조 및 이들의 구조적 등가물, 또는 이들 중 하나 이상의 조합을 비롯하여 디지털 전자 회로를 사용하거나 유형의(tangible) 매체, 펌웨어 또는 하드웨어에 구현된 컴퓨터 소프트웨어에서 수행될 수 있다. 본 명세서에 기술된 주제의 구현은 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 하나 이상의 컴퓨터 저장 매체에 인코딩된 하나 이상의 컴퓨터 프로그램 명령 모듈로 구현될 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령은 인위적으로 생성된 전파 신호, 예를 들어, 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로의 전송을 위해 정보를 인코딩하도록 생성된 기계 생성 전기, 광학 또는 전자기 신호 상에 인코딩될 수 있다. 컴퓨터 판독 가능 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합이거나 이에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체는 전파된 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 별도의 컴포넌트 또는 매체(예를 들어, 다중 CD, 디스크 또는 기타 저장 디바이스)이거나 이에 포함될 수 있다. 따라서, 컴퓨터 저장 매체는 유형적이며 비-일시적이다.
본 명세서에서 설명되는 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작들로 구현될 수 있다.
"데이터 처리 장치" 또는 "컴퓨팅 디바이스"라는 용어는 예를 들어 프로그램 가능 프로세서, 컴퓨터, 시스템 온 칩, 또는 전술한 것의 다수 또는 이들의 조합을 포함하여, 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 장치는 예를 들어 FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(주문형 집적회로)과 같은 특수 목적 논리 회로를 포함할 수 있다. 장치는 또한 하드웨어에 추가하여 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 플랫폼 간 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 지칭될 수 있음)은 컴파일 또는 해석 언어, 선언적 또는 절차적 언어를 포함하여 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램 또는 모듈, 컴포넌트, 서브루틴, 객체, 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그럴 필요는 없다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일부, 해당 프로그램 전용 단일 파일 또는 여러 조정 파일(예를 들어, 하나 이상의 모듈, 하위 프로그램 또는 코드 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있고 데이터 통신 네트워크로 상호 연결된 여러 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스 및 논리 흐름은 입력 데이터에 대해 동작하고 출력을 생성함으로써 동작을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능한 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 FPGA 또는 ASIC과 같은 특수 목적 논리 회로에 의해 수행될 수도 있고 장치도 구현될 수 있다. 본 명세서에서 사용되는 회로는 하드웨어 회로(예를 들어, FPGA, ASIC 등), 소프트웨어(하나 이상의 컴퓨터 판독 가능 저장 매체에 저장되고 하나 이상의 프로세서에 의해 실행 가능한 명령) 또는 이들의 임의의 조합을 사용하여 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서에는 예를 들어 범용 또는 특수 목적 마이크로프로세서와 모든 종류의 디지털 컴퓨터의 하나 이상의 프로세서가 포함된다. 일반적으로, 프로세서는 판독 전용 메모리나 랜덤 액세스 메모리 또는 둘 다로부터 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령에 따라 동작을 수행하는 프로세서와 명령 및 데이터를 저장하는 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 모두를 수행하도록 작동 가능하게 연결되거나 포함할 것이다. 그러나, 컴퓨터에는 이러한 디바이스가 필요하지 않다. 더욱이, 컴퓨터는 다른 디바이스, 예를 들어 휴대전화, PDA, 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기, 또는 USB(Universal Serial Bus) 플래시 드라이브와 같은 휴대용 저장 디바이스에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하는데 적합한 디바이스에는 예를 들어 반도체 메모리 디바이스(예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스), 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크); 광자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 비롯하여 모든 형태의 비-휘발성 메모리, 매체 및 메모리 디바이스가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 설명된 주제의 구현은 사용자에게 정보를 표시하기 위한 디스플레이 디바이스(예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터)와 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)을 갖는 컴퓨터를 사용하여 실행될 수 있다. 다른 종류의 디바이스도 사용자와의 상호 작용을 제공하는데 사용될 수 있는데, 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각적 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 또한, 컴퓨터는 예를 들어 웹 브라우저로부터 수신된 요청에 대한 응답으로 사용자 디바이스의 웹 브라우저로 웹 페이지를 전송함으로써 사용자가 사용하는 디바이스와 문서를 주고받음으로써 사용자와 상호 작용할 수 있다.
본 명세서에 기술된 주제의 구현은 예를 들어 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 프론트엔드 컴포넌트(예를 들어, 사용자가 본 명세서에 기술된 주제의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터)를 포함하거나, 또는 이러한 백엔드, 미들웨어 또는 프런트엔드 컴포넌트 중 하나 이상의 조합을 포함하는 컴퓨팅 시스템을 사용하여 수행될 수 있다. 시스템의 컴포넌트는 통신 네트워크와 같은 디지털 데이터 통신의 모든 형태 또는 매체에 의해 상호 연결될 수 있다. 통신 네트워크의 예로는 LAN(Local Area Network) 및 WAN(Wide Area Network), 인터 네트워크(inter-network)(예를 들어, 인터넷) 및 피어-투-피어 네트워크(예를 들어, 애드혹 피어-투-피어 네트워크)를 포함한다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램 덕분에 발생한다. 일부 실시예에서, 서버는 (예를 들어, 클라이언트 디바이스와 상호 작용하는 사용자에게 데이터를 디스플레이하고 사용자로부터 사용자 입력을 수신하기 위해) 데이터 (예를 들어, HTML 페이지)를 클라이언트 디바이스로 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 서버에서 클라이언트 디바이스로로부터 수신될 수 있다.
일부 예시적인 구현에서, 본 명세서에 개시된 특징은 스마트 텔레비전 모듈(또는 연결된 텔레비전 모듈, 하이브리드 텔레비전 모듈 등)에서 구현될 수 있으며, 이는 인터넷 연결을 보다 전통적인 텔레비전 프로그래밍 소스(예를 들어, 케이블, 위성, 공중파 또는 기타 신호를 통해 수신됨)와 통합하도록 구성된 처리 회로를 포함할 수 있다. 스마트 텔레비전 모듈은 텔레비전 세트에 물리적으로 통합될 수 있거나 셋탑 박스, 블루레이 또는 기타 디지털 미디어 플레이어, 게임 콘솔, 호텔 텔레비전 시스템 및 기타 동반 디바이스와 같은 별도의 디바이스를 포함할 수 있다. 스마트 텔레비전 모듈은 시청자가 웹, 로컬 케이블 텔레비전 채널, 위성 텔레비전 채널 또는 로컬 하드 드라이브에 저장된 비디오, 영화, 사진 및 기타 컨텐츠를 검색하고 찾을 수 있도록 구성될 수 있다. 셋탑 박스("STB") 또는 셋탑 장치("STU")는 튜너를 포함하고 텔레비전 세트 및 신호의 외부 소스에 연결하여 그 신호를 컨텐츠로 변환한 다음 텔레비전 화면이나 기타 디스플레이 디바이스에 디스플레이할 수 있는 정보 기기 디바이스를 포함할 수 있다. 스마트 텔레비전 모듈은 웹 브라우저 및 복수의 스트리밍 미디어 서비스, 연결된 케이블 또는 위성 미디어 소스, 기타 웹 "채널"과 같은 복수의 상이한 애플리케이션에 대한 아이콘을 포함하는 홈 스크린 또는 최상위 스크린을 제공하도록 구성될 수 있다. 스마트 텔레비전 모듈은 사용자에게 전자 프로그래밍 가이드를 제공하도록 추가로 구성될 수 있다. 스마트 텔레비전 모듈에 대한 동반 애플리케이션은 사용자에게 사용 가능한 프로그램에 대한 추가 정보를 제공하고 사용자가 스마트 텔레비전 모듈 등을 제어할 수 있도록 모바일 컴퓨팅 디바이스에서 작동 가능할 수 있다. 다른 구현에서, 기능은 랩탑 컴퓨터 또는 기타 개인용 컴퓨터, 스마트폰, 기타 휴대 전화, 핸드헬드 컴퓨터, 태블릿 PC 또는 기타 컴퓨팅 디바이스에서 구현될 수 있다.
본 명세서에는 많은 특정 구현 세부 사항이 포함되어 있지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안 되며, 오히려 특정 발명의 특정 구현에 특정된 기능(feature)에 대한 설명으로 해석되어야 한다. 별도의 구현의 맥락에서 본 명세서에 설명된 특정 기능은 조합으로 또는 단일 구현으로 수행될 수도 있다. 역으로, 단일 구현의 맥락에서 설명된 다양한 기능은 여러 구현에서 개별적으로 또는 임의의 적합한 하위 조합으로 수행될 수도 있다. 또한, 기능이 특정 조합p서 작용하는 것으로 위에서 설명될 수 있고 초기에 그렇게 청구되었더라도, 청구된 조합으로부터의 하나 이상의 기능은 경우에 따라 그 조합으로부터 제외될 수 있으며, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다. 추가적으로, 특정 제목과 관련하여 설명된 기능은 다른 제목 하에서 설명된 예시적인 구현과 관련하여 및/또는 그와 조합하여 이용될 수 있다. 제공된 경우 제목은 가독성의 목적으로만 포함되며 해당 제목과 관련하여 제공된 기능을 제한하는 것으로 해석되어서는 안 된다.
유사하게, 동작들이 특정 순서로 도면에 도시되어 있지만, 이것은 바람직한 결과를 달성하기 위해 이러한 동작들이 도시된 특정 순서로 또는 시계열적인 순서로 수행되거나 예시된 모든 동작이 수행될 것을 요구하는 것으로 이해되어서는 안 된다. 특정 상황에서는 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 위에서 설명한 구현에서 다양한 시스템 컴포넌트의 분리는 모든 구현에서 그러한 분리를 요구하는 것으로 이해되어서는 안 된다. 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 유형 미디어에 구현된 여러 소프트웨어 제품으로 패키징될 수 있음을 이해해야 한다.
따라서, 주제의 특정 구현이 설명되었다. 다른 구현은 다음 청구 범위 내에 있다. 일부 경우, 청구범위에 인용된 동작들은 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 또한, 첨부된 도면에 묘사된 프로세스는 원하는 결과를 얻기 위해 표시된 특정 순서 또는 시계열적인 순서를 반드시 요구하지는 않는다. 특정 구현에서 멀티태스킹 및 병렬 처리가 유리할 수 있다.

Claims (20)

  1. 방법으로서,
    제1 컴퓨팅 시스템에서, 암호화된 식별자들 및 암호화된 값들을 수신하는 단계와;
    제1 컴퓨팅 시스템에 의해, 은닉된 암호화된 식별자들을 생성하도록 상기 암호화된 식별자들에 대해 은닉 동작을 수행하는 단계와, 상기 은닉 동작은 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템으로부터 상기 암호화된 식별자들을 은닉하지만 그 은닉된 암호화된 식별자들 간의 매칭을 가능하게 하고;
    제2 컴퓨팅 시스템에 의해, 은닉된 식별자들을 생성하도록 상기 은닉된 암호화된 식별자들을 복호화하는 단계와; 그리고
    제2 컴퓨팅 시스템에 의해, 상기 암호화된 값들과 관련된 개인 정보에 액세스하지 않고 암호화된 집계 값을 생성하도록 상기 은닉된 식별자들과 상기 암호화된 값들을 사용하여 집계 동작을 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 은닉 동작을 수행하는 단계는,
    부분적으로 암호화된 식별자들을 생성하도록 상기 암호화된 식별자들로부터 제1 암호화의 제1 부분을 제거하는 단계와; 그리고
    은닉된 암호화된 식별자들을 생성하도록 제2 암호화로 상기 부분적으로 암호화된 식별자들을 결정론적으로 암호화하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 은닉된 암호화된 식별자들을 복호화하는 단계는,
    은닉된 식별자들을 생성하도록 상기 은닉된 암호화된 식별자들로부터 제1 암호화의 제2 부분을 제거하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    제3 컴퓨팅 시스템에 의해, 집계 값을 생성하도록 상기 암호화된 집계 값을 복호화하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템에 의해, 제1 암호화 키를 공동으로 생성하는 단계와;
    제1 컴퓨팅 시스템에 의해, 제1 암호화 키 및 제3 암호화 키와 관련된 제2 암호화 키를 생성하는 단계와;
    제2 컴퓨팅 시스템에 의해, 제1 암호화 키와 관련된 제4 암호화 키를 생성하는 단계와; 그리고
    제3 컴퓨팅 시스템에 의해, 제5 및 제6 암호화 키를 생성하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 암호화된 식별자들은 제1 암호화 키를 사용하여 암호화되고 그리고 상기 암호화된 값들은 제5 암호화 키를 사용하여 암호화되며, 상기 은닉 동작은 제2 및 제3 암호화 키를 사용하고, 상기 은닉된 암호화된 식별자들은 제4암호화 키를 이용하여 복호화되고, 그리고 상기 암호화된 집합 값은 제6 암호화 키를 사용하여 복호화되는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 은닉 동작은,
    암호화된 식별자들을 셔플링하는 단계, 및 해시 함수를 사용하여 암호문을 생성하여 상기 암호화된 값들을 재랜덤화하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 제3 컴퓨팅 시스템은,
    제1 컴퓨팅 시스템의 일부인 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 제1 컴퓨팅 시스템 또는 제3 컴퓨팅 시스템 중 적어도 하나는,
    분산 컴퓨팅 시스템인 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    제2 컴퓨팅 시스템에 의해, 랜덤 값을 생성하는 단계와;
    제2 컴퓨팅 시스템에 의해, 상기 랜덤값 및 암호화된 집계값을 사용하여 연산을 수행하여 결과를 생성하는 단계와; 그리고
    제2 컴퓨팅 시스템에 의해, 상기 암호화된 식별자들과 관련된 컨텐츠 게시자에게 랜덤 값을 전송하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  11. 제1항에 있어서,
    상기 집계 동작은,
    암호화된 집계 값을 생성하도록 상기 은닉된 식별자들 및 그 은닉된 식별자들과 관련된 시간 값을 사용하여 가중 기능을 수행하는 것을 포함하는 것을 특징으로 하는 방법.
  12. 저장된 명령들을 갖는 하나 이상의 컴퓨터 판독 가능 저장 매체로서, 상기 명령들은 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템 중 적어도 하나의 하나 이상의 프로세서에 의해 실행될 때,
    제1 컴퓨팅 시스템으로 하여금:
    암호화된 식별자들 및 암호화된 값들을 수신하고; 그리고
    은닉된 암호화된 식별자들을 생성하도록 상기 암호화된 식별자들에 대해 은닉 동작을 수행하게 하고, 상기 은닉 동작은 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템으로부터 상기 암호화된 식별자들을 은닉하지만 그 은닉된 암호화된 식별자들 간의 매칭을 가능하게 하고; 그리고
    제2 컴퓨팅 시스템으로 하여금:
    은닉된 식별자들을 생성하도록 상기 은닉된 암호화된 식별자들을 복호화하고; 그리고
    암호화된 값들과 관련된 개인 정보에 액세스하지 않고 암호화된 집계 값을 생성하도록 상기 은닉된 식별자들과 상기 암호화된 값들을 사용하여 집계 동작을 수행하게 하는 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
  13. 제12항에 있어서,
    상기 은닉 동작을 수행하는 것은,
    부분적으로 암호화된 식별자들을 생성하도록 상기 암호화된 식별자들로부터 제1 암호화의 제1 부분을 제거하는 것과; 그리고
    은닉된 암호화된 식별자들을 셍성하기 위해 제2 암호화로 상기 부분적으로 암호화된 식별자들을 결정론적으로 암호화하는 것을 포함하는 특징으로 하는 컴퓨터 판독 가능 저장 매체.
  14. 제13항에 있어서,
    상기 은닉된 암호화된 식별자들을 복호화하는 것은,
    은닉된 식별자들을 생성하도록 상기 은닉된 암호화된 식별자들로부터 제1 암호화의 제2 부분을 제거하는 것을 포함하는 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
  15. 제12항에 있어서,
    상기 명령들은,
    제3 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행될 때 제3 컴퓨팅 시스템으로 하여금 집계 값을 생성하기 위해 상기 암호화된 집계 값을 복호화하게 하도록 추가로 구성되는 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
  16. 제15항에 있어서,
    상기 명령들은 제1 및 제2 컴퓨팅 시스템으로 하여금 제1 암호화 키를 공동으로 생성하게 하도록 구성되고;
    상기 명령들은 제1 컴퓨팅 시스템으로 하여금 제1 암호화 키 및 제3 암호화 키와 관련된 제2 암호화 키를 생성하게 하도록 구성되고;
    상기 명령들은 제2 컴퓨팅 시스템으로 하여금 제1 암호화 키와 관련된 제4 암호화 키를 생성하게 하도록 구성되고; 그리고
    상기 명령들은 제3 컴퓨팅 시스템으로 하여금 제5 및 제6 암호화 키를 생성하게 하도록 구성되는 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
  17. 제16항에 있어서,
    상기 암호화된 식별자들은 제1 암호화 키를 사용하여 암호화되고 그리고 상기 암호화된 값들은 제5 암호화 키를 사용하여 암호화되며, 상기 은닉 동작은 제2 및 제3 암호화 키를 사용하고, 상기 은닉된 암호화된 식별자들은 제4 암호화 키를 이용하여 복호화되고, 그리고 상기 복호화된 집계 값은 제6 암호화 키를 사용하여 복호화되는 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
  18. 제16항에 있어서,
    상기 제3 컴퓨팅 시스템은,
    제1 컴퓨팅 시스템의 일부인 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
  19. 제16항에 있어서,
    상기 제1 컴퓨팅 시스템 또는 제3 컴퓨팅 시스템 중 적어도 하나는,
    분산 컴퓨팅 시스템인 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
  20. 제12항에 있어서,
    상기 집계 동작은,
    암호화된 집계 값을 생성하도록 상기 은닉된 식별자들 및 그 은닉된 식별자들과 관련된 시간 값을 사용하여 가중 기능을 수행하는 것을 포함하는 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
KR1020227040678A 2020-05-26 2020-08-24 상호 작용 전반에 걸친 크레딧 집계 방법 KR20230002933A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063029835P 2020-05-26 2020-05-26
US63/029,835 2020-05-26
PCT/US2020/047643 WO2021242290A1 (en) 2020-05-26 2020-08-24 Methods for aggregating credit across interactions

Publications (1)

Publication Number Publication Date
KR20230002933A true KR20230002933A (ko) 2023-01-05

Family

ID=76301002

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227040678A KR20230002933A (ko) 2020-05-26 2020-08-24 상호 작용 전반에 걸친 크레딧 집계 방법

Country Status (6)

Country Link
US (1) US11841973B2 (ko)
JP (1) JP7461513B2 (ko)
KR (1) KR20230002933A (ko)
CN (1) CN113994333A (ko)
DE (1) DE112020000117T5 (ko)
GB (1) GB2604190A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11588617B2 (en) * 2020-11-01 2023-02-21 The Toronto-Dominion Bank Validating confidential data using homomorphic computations
US11899823B2 (en) * 2021-02-08 2024-02-13 Snap Inc. Privacy safe anonymized identity matching
CN116629871B (zh) * 2023-07-21 2023-10-17 济南正浩软件科技有限公司 一种订单线上支付系统及支付方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8978158B2 (en) 2012-04-27 2015-03-10 Google Inc. Privacy management across multiple devices
US9641332B1 (en) 2013-01-30 2017-05-02 Google Inc. Privacy-preserving measurements of a campaign
US9852163B2 (en) * 2013-12-30 2017-12-26 The Nielsen Company (Us), Llc Methods and apparatus to de-duplicate impression information
IL234613A0 (en) 2014-09-11 2014-12-02 Google Inc Exchange consolidated and encrypted transaction information with a transaction information provider
SG11201809476VA (en) * 2016-04-29 2018-11-29 Privitar Ltd Computer-implemented privacy engineering system and method

Also Published As

Publication number Publication date
CN113994333A (zh) 2022-01-28
JP2023527318A (ja) 2023-06-28
US20220147650A1 (en) 2022-05-12
DE112020000117T5 (de) 2022-01-27
JP7461513B2 (ja) 2024-04-03
US11841973B2 (en) 2023-12-12
GB2604190A (en) 2022-08-31
GB202106166D0 (en) 2021-06-16

Similar Documents

Publication Publication Date Title
US11962687B2 (en) Methods for protecting privacy
JP7461513B2 (ja) 相互作用全体でクレジットを集計するための方法
US12021972B2 (en) Aggregating encrypted network values
US20190236287A1 (en) Systems and methods for entropy balanced population measurement
US11757619B2 (en) Generating sequences of network data while preventing acquisition or manipulation of time data
JP7399236B2 (ja) 複数の集約サーバを使用してデータ操作を防止すること
JP7471475B2 (ja) 安全なユニバーサル測定識別子構築のためのシステムおよび方法
WO2021242290A1 (en) Methods for aggregating credit across interactions
WO2023196016A1 (en) Secure computation using multi-party computation and a trusted execution environment
JP7189357B2 (ja) プライバシー保護のためのデータセキュリティ方法