KR20150122162A - 프라이버시 보호 카운팅을 위한 방법 및 시스템 - Google Patents

프라이버시 보호 카운팅을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20150122162A
KR20150122162A KR1020157024146A KR20157024146A KR20150122162A KR 20150122162 A KR20150122162 A KR 20150122162A KR 1020157024146 A KR1020157024146 A KR 1020157024146A KR 20157024146 A KR20157024146 A KR 20157024146A KR 20150122162 A KR20150122162 A KR 20150122162A
Authority
KR
South Korea
Prior art keywords
records
tokens
circuit
csp
processor
Prior art date
Application number
KR1020157024146A
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 톰슨 라이센싱
Publication of KR20150122162A publication Critical patent/KR20150122162A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44213Monitoring of end-user related data
    • H04N21/44222Analytics of user selections, e.g. selection of programs or purchase activity
    • H04N21/44224Monitoring of user activity on external systems, e.g. Internet browsing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic 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 using challenge-response
    • H04L9/3273Cryptographic 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 using challenge-response for mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44213Monitoring of end-user related data
    • H04N21/44222Analytics of user selections, e.g. selection of programs or purchase activity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4668Learning process for intelligent management, e.g. learning user preferences for recommending movies for recommending content, e.g. movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6582Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Social Psychology (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Graphics (AREA)
  • Algebra (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

보안 카운팅하는 방법은, 레코드들의 셋트를 입력으로서 수신하는 단계를 포함하고, 레코드들의 셋트는 적어도 하나의 레코드를 포함하고, 각 레코드는 토큰들의 셋트를 포함하며, 토큰들의 셋트는 적어도 하나의 토큰을 포함하고; 상기 방법은 적어도 하나의 토큰을 포함하는 별개 셋트의 토큰들을 수신하는 단계, 및 임의의 개별 레코드의 그리고 카운트들 이외의 레코드들로부터 추출된 임의의 정보의 내용들을 습득함이 없이, 얼마나 많은 레코드들에서, 별개 셋트의 토큰들에 속하는 각 토큰이 나타나는지를 카운트하기 위해, 레코드들의 셋트 및 별개 셋트의 토큰들을 프로세싱하는 단계를 포함한다.

Description

프라이버시 보호 카운팅을 위한 방법 및 시스템{A METHOD AND SYSTEM FOR PRIVACY PRESERVING COUNTING}
관련 출원에 대한 상호 참조
이 출원은, "A METHOD AND SYSTEM FOR PRIVACY PRESERVING COUNTING" 라는 제목의 시리얼 번호 제 61/864085 호; "A METHOD AND SYSTEM FOR PRIVACY PRESERVING MATRIX FACTORIZATION" 라는 제목의 시리얼 번호 제 61/864088 호; "A METHOD AND SYSTEM FOR PRIVACY-PRESERVTNG RECOMMENDATION TO RATING CONTRIBUTING USERS BASED ON MATRIX FACTORIZATION" 라는 제목의 시리얼 번호 제 61/864094 호; 및 "A METHOD AND SYSTEM FOR PRIVACY-PRESERVING RECOMMENDATION BASED ON MATRIX FACTORIZATION AND RIDGE REGRESSION" 라는 제목의 시리얼 번호 제 61/864098 호로 2013년 8월 9일 출원된 미국 가특허출원에 대해 35 U.S.C. 119(e) 하의 우선권을 주장한다. 이 가특허출원들은 모든 목적들을 위해 그들 전체가 본원에 참조에 의해 명시적으로 통합된다.
기술 분야
본 원리들은 프라이버시 보호 추천 시스템들 (recommendation systems) 및 안전한 다자간 계산 (secure multi-party computation) 에 관한 것이고, 더욱 상세하게는, 프라이버시 보호 방식으로 보안 카운팅하는 것에 관한 것이다.
지난 십년간 다량의 리서치 및 상업적 활동은 추천 시스템들의 광범위한 이용을 유도하였다. 그러한 시스템들은 영화, TV 쇼들, 음악, 서적들, 호텔들, 식당들 등등과 같은 많은 종류들의 아이템들에 대한 개인화된 추천들을 사용자들에게 제공한다. 도 1 은 일반적인 추천 시스템 (100) 의 컴포넌트들: 소스를 나타내는 다수의 사용자들 (110) 및 사용자의 입력들 (120) 을 프로세싱하고 추천들 (140) 을 출력하는 추천기 시스템 (RecSys) (130) 을 나타낸다. 유용한 추천들을 수신하기 위해, 사용자들은, 추천자가 이 데이터를 적절히 관리할 것임을 신뢰하여, 그들의 선호도들 (사용자의 입력들) 에 관한 실질적인 개인 정보를 제공한다.
그럼에도 불구하고, B. Mobasher, R. Burke, R. Bhaumik, 및 C. Williams: "Toward trustworthy recommender systems: An analysis of attack models and algorithm robustness.", ACM Trans.Internet Techn., 7(4), 2007, 및 E. A'imeur, G. Brassard, J. M. Fernandez, 및 F. S. M. Onana: "ALAMBIC: A privacy-preserving recommender system for electronic commerce", Int. Journal Inf. Sec, 7(5), 2008 과 같은 이전의 연구들은 추천자들이 그러한 정보를 남용하거나 사용자를 프라이버시 위협들에 노출시킬 수 있는 다수의 방법들을 식별하였다. 추천자들은 종종 수익을 위해 데이터를 전매하지만, 또한 사용자에 의해 의도적으로 누설된 것을 넘는 정보를 추출하도록 동기가 부여된다. 예를 들어, 영화 평점들 (ratings) 또는 사람의 TV 시청 이력과 같이 통상적으로 민감한 것으로 인지되지 않는 사용자의 선호도들의 레코드들 조차도 사용자의 정치적 소속, 성별 등을 추론하는데 사용될 수 있다. 추천 시스템에서의 데이터로부터 추론될 수 있는 개인적인 정보는, 악의적이거나 선의적인 목적들을 위해, 새로운 데이터 마이닝 및 추론 방법들이 개발됨에 따라 계속 진화하고 있다. 극단적으로, 사용자 선호도들의 레코드들은 심지어 사용자를 고유하게 식별하는데 사용될 수 있다: A. Naranyan 및 V. Shmatikov 는 "Robust de-anonymization of large sparse datasets", IEEE S&P, 2008 에서 Netflix 데이터셋트를 익명해제함으로써 이것을 현저하게 입증하였다. 이와 같이, 비록 추천자가 악의적이 아니더라도, 그러한 데이터의 의도치않은 누설은 사용자들을 연계 공격(linkage attack)들, 즉, 하나의 데이터베이스를 보조 정보로서 이용하여 상이한 데이터베이스에서의 프라이버시를 손상시키는 공격에 약하게 만든다.
미래의 추론 위협들 (inference threats), 우발적인 정보 누설, 또는 내부자 위협들 (고의적인 누설) 을 항상 예견할 수는 없기 때문에, 사용자들이 깨끗하게 그들의 개인적인 데이터를 드러내지 않는 추천 시스템을 구축하는 것이 관심사이다. 오늘날 암호화된 데이터에 대해 동작하는 실용적인 추천 시스템들이 존재하지 않는다. 또한, 사용자들이 제공하는 평점들을 전혀 알지 않고서도 또는 심지어 사용자들이 어느 아이템들을 평가했는지도 알지 않고서도 아이템들을 프로파일 (profile) 할 수 있는 추천기를 구축하는 것이 관심사이다. 이 발명은 이러한 보안 추천 시스템의 일 양태를 제공하고, 이는 또한 추천 이외의 목적들을 위해 이용될 수 있다.
본 발명의 원리들은 프라이버시-보호 (privacy-preserving) 방식으로, 보안 (securely) 카운팅 (counting) 하기 위한 방법 및 시스템을 제안한다. 특히, 방법은 각각 그 자신의 토큰들 (tokens) 의 셋트를 포함하는 레코드들 (records) 의 셋트 ("코퍼스 (corpus)") 를 입력으로서 수신한다. 또한, 방법은 별개 셋트의 토큰들 (separate set of tokens) 을 입력으로서 수신하고, 얼마나 많은 레코드들에서 각 토큰이 나타나는지를 발견할 것이다. 방법은 카운트들 이외의 레코드들로부터 추출된 임의의 정보 또는 임의의 개별 레코드의 내용들 (contents) 을 전혀 습득함이 없이 얼마나 많은 레코드들에서 각 토큰이 나타나는지를 카운트한다.
본 원리들의 일 양태에 따르면, 레코드들을 평가할 평가기 (230) 로부터 레코드들이 사적으로 유지 (keep private) 되도록 레코드들을 보안 카운팅하는 방법이 제공되고, 이 방법은: 레코드들 (220) 의 셋트를 수신하는 단계 (340) 로서, 각 레코드는 토큰들의 셋트를 포함하고, 각 레코드는 레코드의 소스 (source) 이외의 당사자들 (parties) 로부터 비밀유지 (keep secret) 되는, 상기 레코드들 (220) 의 셋트를 수신하는 단계 (340); 및 가블링된 회로 (garbled circuit) 로 레코드들의 셋트를 평가하는 단계 (370) 로서, 상기 가블링된 회로의 출력은 카운트들 (counts) 인, 상기 레코드들의 셋트를 평가하는 단계 (370) 를 포함한다. 방법은: 별개 셋트의 토큰들을 수신 또는 결정하는 단계 (320) 를 포함할 수 있다. 방법은: 레코드들의 셋트에서 별개 셋트의 토큰들을 카운팅하기 위해 암호 시스템 프로바이더 (Crypto-System Provider; CSP) 에서, 가블링된 회로를 설계하는 단계 (350); 및 가블링된 회로를 평가기에 전송하는 단계 (360) 를 더 포함할 수 있다. 이 방법에서의 설계하는 단계는: 카운터를 불리언 회로 (Boolean circuit) 로서 설계하는 단계 (352) 를 포함할 수 있다. 이 방법에서 카운터를 설계하는 단계는: 레코드들의 셋트 및 별개 셋트의 토큰들의 어레이 (array) 를 구성하는 단계 (410); 및 어레이에 대해 소팅 (420, 440), 시프팅 (430), 부가 (adding) (430) 및 저장 동작들을 수행하는 단계를 포함할 수 있다. 이 방법에서의 수신하는 단계는: 소스, 평가기 및 CSP 사이에 프록시 불확정 전송들 (proxy oblivious transfers) (342) 을 통해 수행될 수 있고 (350), 소스는 레코드들을 제공하고 레코드들은 평가기 및 CSP 로부터 사적으로 유지되며, 가블링된 회로는 레코드들의 가블링된 값들을 입력들로서 취한다. 방법은: CSP 에 의한 가블링된 회로의 설계를 위한 파라미터들의 셋트를 수신하는 단계를 더 포함할 수 있고, 파라미터들은 평가기에 의해 전송된 것이다 (330).
본 원리들의 일 양태에 따르면, 방법은: 레코드들의 셋트를 암호화하여 암호화된 레코드들을 생성하는 단계 (380) 를 더 포함할 수 있고, 암호화하는 단계는 레코드들의 셋트를 수신하는 단계 이전에 수행된다. 이 방법에서의 설계하는 단계 (350) 는: 가블링된 회로 내부의 암호화된 레코드들을 해독 (decrypt) 하는 단계 (354) 를 포함할 수 있다. 암호화 시스템은 부분적으로 하모모픽 암호화 (partially homomorphic encryption) (382) 일 수 있고, 방법은: 평가기에서 암호화된 레코드들을 마스킹하여 마스킹된 레코드들을 생성하는 단계 (385); 및 CSP 에서 마스킹된 레코드들을 해독하여 해독된-마스킹된 레코드들 (decrypted-masked records) 을 생성하는 단계 (395) 를 더 포함할 수 있다. 이 방법에서의 설계하는 단계 (350) 는: 해독된-마스킹된 레코드들을 프로세싱하기 이전에 가블링된 회로 내부의 해독된-마스킹된 레코드들을 마스크해제 (unmask) 하는 단계 (356) 를 더 포함할 수 있다.
본 원리들의 일 양태에 따르면, 이 방법에서의 각 레코드는 가중치들 (weights) 의 셋트를 더 포함할 수 있고, 가중치들의 셋트는 적어도 하나의 가중치를 포함한다. 이 방법에서의 가중치는 레코드에서의 각각의 토큰의 레이팅 (rating) 및 빈도 (frequency) 의 측정치 중 하나에 대응할 수 있다.
본 원리들의 일 양태에 따르면, 방법은: 각 레코드 (220) 의 토큰들의 수를 수신하는 단계 (310) 를 더 포함할 수 있다. 또한, 방법은: 각 레코드의 토큰들의 수가 최대 값을 나타내는 값보다 작을 때, 이 값과 동일한 수의 토큰들을 갖는 레코드들을 생성하기 위해, 각 레코드에 널 엔트리들 (null entries) 을 패딩 (padding) 하는 단계 (312) 를 더 포함할 수 있다. 이 방법에서의 레코드들의 셋트의 소스는 사용자들 (210) 의 셋트 및 데이터베이스 중 하나일 수 있고, 소스가 사용자들의 셋트인 경우에, 각 사용자는 적어도 하나의 레코드를 제공한다.
본 원리들의 일 양태에 따르면, 레코드들이 평가기로부터 그리고 암호 서비스 프로바이더 (Crypto-Service Provider; CSP) 로부터 사적으로 유지되도록, 레코드들을 보안 카운팅하기 위한, 레코드들을 제공할 소스, 보안 카운터를 제공할 CSP 및 레코드들을 평가할 평가기를 포함하는, 시스템이 제안되고, 소스, CSP 및 평가기 각각은: 적어도 하나의 입력/출력 (404) 을 수신하기 위한 프로세서 (402); 및 프로세서와 신호 통신하는 적어도 하나의 메모리 (406, 408) 를 포함하고, 평가기 프로세서는: 레코드들의 셋트를 수신하고, 각 레코드는 토큰들의 셋트를 포함하고, 각 레코드는 비밀유지되며; 그리고, 가블링된 회로로 레코드들의 셋트를 평가하고, 가블링된 회로의 출력은 카운트들이도록 구성된다. 시스템에서의 평가기 프로세서는: 별개 셋트의 토큰들을 수신하도록 구성될 수 있다. 시스템에서의 CSP 프로세서는: 레코드들의 셋트에서 별개 셋트의 토큰들을 카운팅하기 위해 CSP 에서 가블링된 회로를 설계하고; 그리고 그 가블링된 회로를 평가기에 전송하도록 구성될 수 있다. 시스템에서의 CSP 프로세서는, 카운터를 불리언 회로로서 설계하도록 구성됨으로써 가블링된 회로를 설계하도록 구성될 수 있다. 시스템에서의 CSP 프로세서는: 레코드들의 셋트 및 별개 셋트의 토큰들의 어레이를 구성하고; 그리고 어레이에 대해 소팅, 시프팅, 부가 및 저장 동작들을 수행하도록 구성됨으로써, 카운터를 설계하도록 구성될 수 있다. 소스 프로세서, 평가기 프로세서 및 CSP 프로세서는, 프록시 불확정 전송들을 수행하도록 구성될 수 있고, 소스는 레코드들을 제공하고, 평가기는 레코드들의 가블링된 값들을 수신하며, 레코드들은 평가기 및 CSP 로부터 사적으로 유지되며, 가블링된 회로는 레코드들의 가블링된 값들을 입력들로서 취한다. 이 시스템에서의 CSP 프로세서는: 가블링된 회로의 설계를 위한 파라미터들의 셋트를 수신하도록 더 구성될 수 있고, 파라미터들은 평가기에 의해 전송된 것이다.
본 원리들의 일 양태에 따르면, 시스템에서의 소스 프로세서는: 레코드들의 셋트를 제공하기 이전에 레코드들의 셋트를 암호화하여 암호화된 레코드들을 생성하도록 구성될 수 있다. 시스템에서의 CSP 프로세서는, 암호화된 레코드들을 프로세싱하기 이전에 가블링된 회로 내부의 암호화된 레코드들을 해독하도록 더 구성됨으로써, 가블링된 회로를 설계하도록 구성될 수 있다. 암호화는 부분적으로 하모모픽 암호화 (partially homomorphic encryption) 이고, 시스템에서의 평가기 프로세서는, 암호화된 레코드들을 마스킹하여 마스킹된 레코드들을 생성하도록 더 구성될 수 있고, CSP 프로세서는: 마스킹된 레코드들을 해독하여 해독된-마스킹된 레코드들을 생성하도록 더 구성될 수 있다. CSP 프로세서는, 해독된-마스킹된 레코드들을 프로세싱하기 이전에 가블링된 회로 내부의 해독된-마스킹된 레코드들을 마스크해제하도록 더 구성됨으로써, 가블링된 회로를 설계하도록 구성될 수 있다.
본 원리들의 일 양태에 따르면, 이 시스템에서의 각 레코드는 가중치들의 셋트를 더 포함할 수 있고, 가중치들의 셋트는 적어도 하나의 가중치를 포함한다. 이 시스템에서의 가중치는 레코드에서의 각각의 토큰의 레이팅 및 빈도의 측정치 중 하나에 대응할 수 있다.
본 원리들의 일 양태에 따르면, 이 시스템에서의 평가기 프로세서는: 각 레코드의 토큰들의 수를 수신하도록 더 구성될 수 있고, 토큰들의 수는 소스에 의해 전송된 것이다. 이 시스템에서의 소스 프로세서는: 각 레코드의 토큰들의 수가 최대 값을 나타내는 값보다 작을 때, 이 값과 동일한 수의 토큰들을 갖는 레코드들을 생성하기 위해, 각 레코드에 널 엔트리들을 패딩하도록 구성될 수 있다. 이 시스템에서의 레코드들의 셋트의 소스는 사용자들의 셋트 및 데이터베이스 중 하나일 수 있고, 소스가 사용자들의 셋트인 경우에, 각 사용자는 적어도 하나의 입력/출력 (404) 을 수신하기 위한 프로세서 (402); 및 적어도 하나의 메모리 (406, 408) 를 포함하고, 각 사용자는 적어도 하나의 레코드를 제공한다.
본 발명의 추가적인 특징들 및 이점들은, 첨부 도면들을 참조하여 진행되는, 예시적인 실시형태들의 이하의 상세한 설명으로부터 명백하게 될 것이다.
본 원리들은 이하 간단하게 설명되는 다음의 예시적인 도면들에 따르면 더 잘 이해될 수도 있다.
도 1 은 종래 기술의 추천 시스템의 컴포넌트들을 나타낸다.
도 2 는 본 원리들에 따른 프라이버시 보호 카운팅 시스템의 컴포넌트들을 나타낸다.
도 3 은 본 원리들에 따른 프라이버시 보호 카운팅 방법의 플로우차트를 나타낸다.
도 4 는 본 원리들에 따른 카운터의 플로우차트를 나타낸다.
도 5 는 본 원리들을 구현하기 위해 이용되는 컴퓨팅 환경의 블록도를 나타낸다.
본 원리들에 따르면, 프라이버시 보호 방식으로 보안 카운팅하기 위한 방법이 제공된다. 당해 기술분야에서 통상의 지식을 가진 자 (이하, '통상의 기술자' 라 함) 는 이 발명에 대한 많은 응용들이 존재함을 이해할 것이다. 하나의 가능한 응용은 개인 또는 다수의 개인들의 이메일들에서 소정의 셋트로부터 키워드들이 얼마나 자주 나타나는지를 카운팅하는 것이다. 온라인 서비스는 사용자(들)에게 무슨 광고들을 보여줄지를 결정하기 위해, 이메일들의 코퍼스에서 예컨대 "영화", "티겟들", "신발" 등의 단어의 발생 빈도를 발견하기를 희망할 수도 있다. 이 방법은 서비스로 하여금 각 이메일의 내용들을 명시적으로 (explicitly) 습득함이 전혀 없이 이러한 카운트들을 수행하도록 허용한다.
본 원리들에 의해 해결되는 문제의 형식적인 기술 (description) 은: 서비스가 토큰들의 셋트를 각각 포함하는 레코드들의 코퍼스에서 토큰들의 발생들의 횟수를 카운트하기를 희망하는 것이다. 통상의 기술자는 상기 예에서, 레코드들은 이메일들일 수 있을 것이고, 토큰들은 단어들 (words) 일 수 있을 것이며, 서비스는 어떤 키워드를 이용하여 레코드들의 수를 카운트하기를 희망한다는 것을 인식할 것이다. 하지만, 수반되는 개인들의 프라이버시를 보장하기 위해, 서비스는 이들 카운트들 이외에 어떤 것도 습득하지 않고 그렇게 하기를 희망한다. 특히, 서비스는: (a) 어느 레코드들/이메일들에서 각 키워드가 나타나는지, 또는, 더욱이, (b) 각 이메일에서 무슨 토큰들/단어들이 나타나는지를 알아서는 안된다.
다른 응용은, 누가 각 영화에 평점을 매겼는지 또는 그들이 준 평점이 무엇인지 드러내지 않으면서 뷰들 (views) 의 수, 또는 평점들의 코퍼스로부터 아이템, 예컨대, 영화에 대한 평균 평점까지도 계산하는 것이다. 이 경우에, 레코드는 사용자에 의해 평가된/관람된 영화들의 셋트뿐만 아니라 각각의 평점들이고 토큰은 movie_id 이다. 본 발명은 어느 사용자가 어느 영화를 보았는지에 대해 전혀 습득함이 없이 얼마나 많은 사용자들이 영화를 평가 또는 관람하였는지를 카운팅하기 위해 사용될 수 있다. 더욱이, 이 발명은 어느 사용자가 어느 영화를 평가하였는지, 또는 사용자가 준 평점에 대해 전혀 습득함이 없이, 영화 당 평균 평점과 같은 통계들을 계산하기 위해 사용될 수 있다. 유사하게, 이 발명은 또한, 각 사용자의 투표들 (votes) 을 전혀 알지 않고서도, 단일 후보 (예컨대, 시장, 또는 경쟁에서의 승자) 또는 다수의 후보들 (예컨대, 대의원회) 의 선택들에서의 투표 계산들에 이용될 수 있다.
따라서, 본 원리들에 따르면, 방법은 레코드들의 셋트 ("코퍼스") 를 입력으로서 수신하고, 각 레코드는 그 자신의 토큰들의 셋트를 포함한다. 셋트 또는 레코드들은 적어도 하나의 레코드를 포함하고, 토큰들의 셋트는 적어도 하나의 토큰을 포함한다. 또한, 이 방법은 별개 셋트의 토큰들을 입력으로서 수신하고, 얼마나 많은 레코드들에서 별개 셋트의 토큰들에서의 각 토큰이 나타나는지를 발견하는 것이다. 별개 셋트의 토큰들은 모든 레코드들에서의 모든 토큰들, 모든 레코드들에서의 토큰들의 서브셋트 (subset) 를 포함할 수도 있고, 또는, 심지어 그 레코드들에서 존재하지 않는 토큰들도 포함할 수도 있다. 이 방법은, 카운트들 이외에 레코드들로부터 추출된 임의의 정보 또는 임의의 개별 레코드의 내용들을 전혀 습득하지 않고서도, 보안 방식으로, 얼마나 많은 레코드들에서 각 토큰이 나타나는지를 카운트한다. 이 방법은 이하 논의되는 바와 같이, 안전한 다자간 계산 (secure multi-party computation; MPC) 알고리즘에 의해 구현된다.
안전한 다자간 계산 (MPC) 은 처음에 1980년대에 A. Chi-Chih Yao 에 의해 제안되었다. Yao 의 프로토콜 (별칭: 가블링된 회로들) 은 안전한 다자간 계산을 위한 일반적인 방법이다. V. Nikolaenko, U. Weinsberg, S. Ioannidis, M. Joye, D. Boneh, 및 N. Taft 에 의한 "Privacy-preserving Ridge Regression on Hundreds of millions of records", IEEE S&P, 2013 로부터 개작된 그 변형에 있어서, 프로토콜은 n 개의 입력 소유자들의 셋트 사이에서 실행되고, 여기서, ai 는 사용자 i (1 ≤ i ≤ n), f(a1, ..., an) 을 평가하기를 희망하는 평가기, 및 제 3 자, 암호-서비스 프로바이더 (CSP) 의 비공개 입력을 표기한다. 프로토콜의 종단에서, 평가기는 f(a1, ..., an) 의 값을 습득하지만, 어떠한 당사자도 이 출력 값으로부터 드러난 것보다 더 많은 것을 습득하지 않는다. 프로토콜은 함수 f 가 불리언 회로로서, 예를 들어, OR, AND, NOT 및 XOR 게이트들의 그래프로서 표현될 수 있고 그리고 평가기 및 CSP 가 공모하지 않음을 요구한다.
Yao의 가블링된 회로들을 구현하는 최근의 많은 프레임워크들이 존재한다. 범용 MPC 에 대한 상이한 접근법은 비밀 공유 방식들에 기반하고, 다른 접근법은 완전 동형 암호화 (fully-homomorphic encryption; FHE) 에 기반한다. 비밀 공유 방식들이, 선형 시스템을 푸는 것, 선형 회귀, 및 옥션들과 같은 다양한 선형 대수 연산들을 위해 제안되었다. 비밀 공유는 계산의 워크로드를 동등하게 공유하고 다중의 라운드들에 걸쳐 통신하는 적어도 3 개의 비-공모 온라인 당국들을 요구하고; 그들 중 어떠한 2 개도 공모하지 않는 한, 그 계산은 보안적이다. 가블링된 회로들은 오직 2 개의 비공모 당국들, 및 평가기가 클라우드 서비스이고 암호-서비스 프로바이더 (CSP) 가 신뢰된 하드웨어 컴포넌트에서 구현되는 시나리오에 더 잘 맞는 훨씬 더 적은 통신을 가정한다.
사용된 암호 프리미티브와 무관하게, 안전한 다자간 계산을 위한 효율적인 알고리즘을 형성함에 있어서의 주요 난제는 알고리즘을 데이터-불확정 방식으로, 즉, 실행 경로가 입력에 의존하지 않도록 구현하는데 있다. 일반적으로, 한정된 시간 T 에서 실행가능한 임의의 RAM 프로그램은 O(T^3) 튜링 머신 (Turing machine; TM) 으로 변환될 수 있으며, 이 TM 은 수학적 계산을 위한 이상화된 모델로서 기능하기 위해 Alan Turing 에 의해 발명된 이론적 계산 머신이고, O(T^3) 는 복잡도가 T3 에 비례함을 의미한다. 또한, 임의의 한정된 T-시간 TM 은 사이즈 O(T log T) 의 회로로 변환될 수 있으며, 이는 데이터-불확정이다. 이는 임의의 한정된 T-시간 실행가능 RAM 프로그램이 O(Τ^3 log T) 복잡도를 갖는 데이터-불확정 회로로 변환될 수 있음을 암시한다. 그러한 복잡도는 너무 높고 대부분의 애플리케이션들에서 금지된다. 효율적인 데이터-불확정 구현들이 알려지지 않은 알고리즘들의 조사는 W. Du 및 M. J. Atallah 에 의한 "Secure multi-party computation problems and their applications: A review and open problems", New Security Paradigms Workshop, 2001 에서 발견될 수 있다.
소팅 네트워크들은 소팅 병렬처리뿐만 아니라 효율적인 하드웨어 구현을 가능케 하기 위해 원래 개발되었다. 이들 네트워크들은, 입력 시퀀스 (a1, a2, ..., an) 를 단조 증가 시퀀스 (a'1, a'2, ..., a'n) 로 소팅하는 회로들이다. 이들은 비교-및-교환 회로들과 함께 그들의 메인 빌딩 블록을 배선함으로써 구성된다. 수개의 작업들이 암호화 목적들로 소팅 네트워크들의 데이터-불확정성을 활용한다. 하지만, 암호화는 프라이버시를 항상 충분히 보장하지는 않는다. 상대가 암호화된 저장부에 대한 당신의 액세스 패턴들을 관찰할 수 있는 경우, 그들은 당신의 무슨 애플리케이션들이 수행되고 있는지에 관한 민감한 정보를 여전히 습득할 수 있다.
본 원리들은, 가중된 셋트 교차에 가까운, 하지만, 가블링된 회로들을 통합하고 카운팅에 중점을 두는 보안 다자간 소팅에 기초하는 방법을 제안한다. 가블링된 회로들을 이용하여 본 원리들의 카운터를 구현하는 단순한 방식은 매우 높은 계산 비용을 가지고, 코퍼스에서의 토큰들의 수에 대해 이차의 계산들을 필요로 한다. 본 원리들에서 제안된 구현은 코퍼스에서의 토큰들의 수에 대해 거의 선형인 비용으로, 훨씬 더 빠르다.
본 원리들은 도 2 에서 도시된 바와 같이, 3 개의 컴포넌트들로 이루어진다:
I. 평가기 시스템 (Eval) (230), 레코드들에 관한 어떤 것도 또는 카운트들 C (240) 이외에 레코드들로부터 추출된 어떤 정보도 습득함이 없이 보안 카운팅을 수행하는 엔티티 (entity).
II. 레코드들에 관한 어떤 것도 또는 레코드들로부터 추출된 어떤 정보도 습득함이 없이 보안 계산을 가능하게 할 보안 서비스 프로바이더 (Crypto-Service-Provider; CSP) (250).
III. 하나 이상의 사용자들 (210) 로 이루어지는 소스로서, 각각은 레코드 또는 레코드들의 셋트를 가지고, 각 레코드는 카운트될 토큰들의 셋트를 포함하며, 각 레코드는 레코드의 소스 (즉, 사용자) 이외의 당사자들로부터 비밀유지된다. 동등하게, 소스는 하나 이상의 사용자들의 데이터를 포함하는 데이터베이스를 나타낼 수도 있다.
본 원리들의 바람직한 실시형태는 도 3 에서의 플로우차트 (300) 를 만족하고 다음의 단계들에 의해 기술되는 프로토콜을 포함한다:
P1. 소스는 각각의 참가 레코드에 대해 얼마나 많은 토큰들이 제출되는지를 평가기에게 보고한다 (310);
P2. 평가기는, 토큰들의 수 (332) 및 카운트들을 나타내기 위해 사용되는 비트들의 수 (334) 를 포함하는, 가블링된 회로를 설계하기 위한 필요한 파라미터들을 CSP 에 보고한다. 또한, 평가기는 카운트들을 계산하기 위한, 별개 셋트의 토큰들을 수신 또는 결정한다 (320). 이 토큰들의 셋트는 코퍼스 내의 모든 토큰들, 모든 토큰들의 서브셋트, 또는 심지어 레코드들에 존재하지 않는 토큰들을 포함할 수도 있다. 별개 셋트의 토큰들은, 모든 토큰들이 아닌 경우에, 파라미터들에 포함될 것이다.
P3. CSP 는, 카운트들을 계산하는 가블링된 회로로서 통상의 기술자에게 알려진 것을 준비한다 (350). 가블링되도록, 회로는 먼저 불리언 회로로서 쓰여진다 (352). 그 회로에 대한 입력은 토큰들의 리스트 (token_id_l, token_id_2,..., token_id_M) 로서 가정되고, 여기서, M 은 코퍼스 내의 토큰들의 총 수이다 (즉, 각 사용자에 의해 제출된 토큰들의 합). 구체적으로, 가블링된 회로는 레코드들/토큰들의 가블링된 값들을 입력들로서 취하고, 임의의 개별 레코드의 그리고 카운트들 이외에 레코드들로부터 추출된 임의의 정보의 내용들을 습득함이 없이, 얼마나 많은 레코드들에서, 별개 셋트의 토큰들에 속하는 각 토큰이 나타나는지를 카운트하기 위해, 레코드들의 셋트 및 별개 셋트의 토큰들 (T1) 을 프로세싱한다.
P4. CSP 는 이 회로를 가블링하고, 그것을 평가기에 전송한다 (360). 구체적으로, CSP 는 게이트들을 가블링된 테이블들로 프로세싱하고 그들을 회로 구조에 의해 정의된 순서로 평가기에 송신한다.
P5. 소스, 평가기, 및 CSP 사이의 프록시 불확정 전송들을 통해 (342), 평가기는, 그 자신 아니면 CSP 가 실제 값들을 습득하지 않고서 사용자들의 입력들의 가블링된 값들을 습득한다. 통상의 기술자는, 불확정 전송은, 전송자가 정보의 잠재적으로 많은 조각들 중 하나를 수신기에게 전송하는 전송의 일 유형이며, 이는 (있다면) 무슨 조각이 전송되었는지에 관해 불확정적이도록 유지한다는 것을 이해할 것이다. 프록시 불확정 전송은 3 이상의 당사자들이 관련되는 불확정 전송이다. 특히, 이 프록시 불확정 전송에서, 소스는 레코드들/토큰들을 제공하고, 평가기는 레코드들/토큰들의 가블링된 값들을 수신하며, CSP 는 프록시로서 행동하는 한편, 평가기도 CSP 도 레코드들을 습득하지 않는다.
P6. 평가기는 그 가블링된 회로를 평가하고, 요청된 값들을 출력한다 (370).
기술적으로, 이 프로토콜은 C (240) 너머 또한 각 사용자에 의해 제공되는 토큰들의 수도 누설한다. 이것은, 단순한 프로토콜 수정을 통해, 예컨대, 제출된 레코드들을 사전 설정된 최대 수에 도달할 때까지 적절하게 "널 (null)" 엔트리들 (entries) 로 "패딩 (padding)" 함으로써, 바로잡을 수 있다. 단순함을 위해, 프로토콜은 이 "패딩" 동작 없이 기술되었다.
본 발명에 의해 제안된 회로 구현은 소팅 네트워크를 이용한다. 소트에서, 회로는 각 토큰에 대한 카운터들과 함께, 어레이에 모든 입력들을 배치한다. 그것은 그 다음, 어레이를 소팅하여, 카운터들이, 카운트되어야 하는 토큰에 그들이 바로 인접하도록 하는 방식으로 치환되는 것을 보장한다. 어레이를 관통하는 선형 패스를 수행함으로써, 회로는 그러면 얼마나 많은 횟수로 토큰이 나타나는지를 카운트할 수 있고, 이 정보를 적절한 카운터에 저장할 수 있다.
본 원리들의 카운팅 회로의 예시적인 상세한 설명에서, 표준 "협업 필터링 (collaborative filtering)" 셋팅이 가정되고, 여기서, n 개의 사용자들은 m 개의 가능한 아이템들 (예컨대, 영화들) 의 서브셋트를 평가한다. 예를 들어,
Figure pct00001
사용자들의 셋트, 및
Figure pct00002
아이템들의 셋트에 대해,
Figure pct00003
에 의해 레이팅이 생성된 사용자/아이템 쌍들을 나타내고,
Figure pct00004
에 의해 레이팅들의 총 수를 나타낸다. 마지막으로,
Figure pct00005
에 대해,
Figure pct00006
에 의해, 아이템 j 에 대해 사용자 i 에 의해 생성된 레이팅을 나타낸다.
실제적인 셋팅에서, n 및 m 양자 모두는 통상적으로 104 및 106 사이의 범위의 큰 수들이다. 또한, 제공되는 등급들은 희소 (sparse) 하다, 즉,
Figure pct00007
이고, 이는 잠재적인 등급들 n×m 의 총 수보다 훨씬 더 작은 것이다. 이는, 각 사용자가 (m, "카탈로그 (catalogue)" 사이즈에 의존하지 않는) 유한 수의 아이템들만을 평점을 매기므로, 통상적인 사용자 거동과 일치한다.
본 원리들은 또한,
Figure pct00008
이 수신된 레이팅들 아이템
Figure pct00009
의 수이고, 회로는 셋트
Figure pct00010
을 입력으로서 취하고 카운트들
Figure pct00011
을 출력한다고 가정한다. 통상의 기술자는, 고도의 병렬처리의 비용으로, 모든 c j
Figure pct00012
에 대해 단일 패스에 의해 동시에 계산될 수 있음에 따라, RAM 모델에서의 이러한 작업의 복잡도가
Figure pct00013
인 것을 이해할 것이다. 반면, 표시자
Figure pct00014
; i 순위가 j 인 경우에 1 이고 그 이외에는 0 을 이용한 단순한 회로 구현은
Figure pct00015
의 회로 복잡도를 낳고, 이는 극히 높은 것이다.
단순한 구현의 비효율성은, 회로 설계시에 어느 사용자들이 아이템을 평가하였고 어느 아이템들이 사용자에 의해 평가되었는지를 식별하는 것에 대한 무능력으로부터 발생하고, 이는 데이터에서의 내재하는 희소성을 레버리지하는 능력을 완화시킨다. 대신에, 본 원리들은 회로 내에서 사용자들과 아이템들 사이의 이러한 매칭을 효율적으로 수행하고, 소팅 네트워크를 이용하여
Figure pct00016
에서
Figure pct00017
를 리턴할 수 있는 회로를 제안하며, 여기서, polylog 는 다항로그 함수 (polylogarithmic function) 를 의미한다.
도 4 에서의 플로우차트 (400) 를 만족하는 본 원리들의 바람직한 실시형태에 따른 카운터가 다음의 단계들에 의해 기술될 수 있다:
C1. 입력으로서
Figure pct00018
이 주어지면, (m+M) 투플들 (tuples) 의 어레이 S 를 구성한다 (410). 첫번째, 각
Figure pct00019
에 대해, 폼
Figure pct00020
의 투플을 생성하고, 여기서, "널" 심볼
Figure pct00021
는 플레이스홀더 (placeholder) 이다 (412). 두번재, 각
Figure pct00022
에 대해, 폼 (j,1,1) 의 투플을 생성하여 (414),
Figure pct00023
를 생산한다.
직감적으로, 처음 m 개의 투플들은 토큰 당 카운트들의 수를 저장하는 "카운터들 (counters)" 로서 기능할 것이다. 나머지 M 개의 투플들은 카운트될 "입력" 을 포함한다. 각 투플에서의 제 3 엘리먼트는 입력으로부터 카운터들을 분리하는 바이너리 플래그 (binary flag) 로서 기능한다.
C2. 아이템 아이디들, 즉, 각 투플에서의 첫번째 엘리먼트에 대해 증가하는 순서로 투플들을 소팅. 2 개의 아이디들이 동일한 경우에, 투플 플래그들, 즉, 각 투플에서의 제 3 엘리먼트들을 비교함으로써 연계를 파괴한다. 그리하여, 소팅 후에, 각 "카운터" 투플은 동일한 아이디를 갖는 "입력" 투플들에 의해 승계된다:
Figure pct00024
C3. 최우측 투플로부터 시작하여, 우에서 좌로 이동하고, 각 투플에 제 2 엔트리들의 값을 부가하고; 카운터 투플 (즉, 제로 플래그) 이 도달되는 경우에,
Figure pct00025
엔트리에서 계산된 값을 저장하고, 카운팅을 재시작한다. 보다 공식적으로,
Figure pct00026
에 의해 k-번째 투플의 l-번째 엘리먼트를 나타낸다. 이 "우에서 좌로의" 패스 (pass) 는 다음과 같은 할당들에 상당한다:
(m+M-1) 에서부터 아래로 1 까지 범위의 k 에 대해
Figure pct00027
C4. 이번에는 플래그
Figure pct00028
에 대해, 증가하는 순서로 다시 어레이를 소팅한다 (440). 결과적인 어레이의 처음 m 개의 투플들은 카운터들을 포함하고, 이는 출력으로서 릴리스된다.
통상의 기술자는, 상기 카운터는 매 아이템
Figure pct00029
에 대해 입력으로서
Figure pct00030
을 취하고
Figure pct00031
를 출력하는 회로로서 쉽게 구현될 수 있음을 인식할 것이다. 단계 1 은,
Figure pct00032
게이트들을 이용하여, 입력들이 투플들
Figure pct00033
이고 출력이 초기 어레이 S 인 회로로서 구현될 수도 있다. 저장 동작들은 예컨대 Batcher 의 소팅 네트워크를 이용하여 수행될 수 있고, 이 소팅 네트워크는 입력으로서 초기 어레이를 취하고 소팅된 어레이를 출력하며,
Figure pct00034
게이트들을 필요로 한다. 마지막으로, 우에서 좌로의 패스는, 또한
Figure pct00035
게이트들로, 각 투플에 대해 (3) 을 수행하는 회로로서 구현될 수 있다. 결정적으로, 그 패스는 데이터-불확정적이다: (3) 은 플래그들
Figure pct00036
Figure pct00037
를 통해 "입력" 투플들로부터 "카운터" 를 구별하지만, 동일한 연산이 어레이의 모든 엘리먼트들에 대해 수행된다. 특히, 이 회로는 불리언 회로로서 (예컨대, OR, AND, NOT 및 XOR 게이트들의 그래프로서) 구현될 수 있고, 이는 이전에 설명된 바와 같이, 구현이 가블링되는 것을 허용한다. 예를 들어, 가블링된 회로 구성은 FastGC, 자바-기반 오픈-소스 프레임워크에 기초할 수도 있고, 이는 기본 xor, or 및 and 게이트들을 이용한 회로 정의를 가능하게 한다. 일단 회로가 구성되고 나면, 프레임워크는 가블링, 불확정 전송 및 가블링된 회로의 완전한 평가를 핸들링한다.
본 원리들에 따르면, 이전에 설명된 프로토콜과 함께 상기 카운터의 구현은 프라이버시 보호 방식으로 보안 카운팅하는 신규한 방법을 제공한다. 또한, 이 솔루션은 소팅 네트워크의 이용에 의해 명확하게 수행되는 카운터의 다항로그 팩터 내의 복잡도를 갖는 회로를 생산한다.
(플로우차트에서 추가들 A, B 및 C 를 포함하는) 도 3 의 플로우차트 (300) 에서 또한 묘사된 이 발명의 제 2 실시형태에서, 사용자들은 그들의 입력들의 암호화된 값들을 평가기에 제출하고 (380), CSP 는 입력들을 먼저 해독하고 (354) 그 다음 그 데이터에 대해 동작하는 회로를 준비한다 (350). 가블링된 회로는 평가기에 전송되고 (360), 평가기는 (프록시가 아닌 플레인) 불확정 전송을 통해 (344), 암호화된 데이터의 가블링된 값들을 획득하고, 그 다음, 그것들을 이용하여 회로를 평가한다. 이 구현은, 사용자들이 그들의 입력들을 제출할 수 있고, 그 다음, 프로토콜을 "떠나는 것" 이 가능한 (즉, 온라인으로 머물 필요가 없음) 이점을 갖는다.
(플로우차트에서 추가들 A, B, D 및 E 를 포함하는) 도 3 의 플로우차트 (300) 에서 또한 묘사되는 이 발명의 제 3 실시형태에서, 사용자들은 부분적으로 호모모픽 암호화 (382) 를 통해 그들의 입력들의 암호화된 값들을 제출한다 (380). 통상의 기술자는, 호모모픽 암호화는, 특정 유형들의 계산들이 암호문에 대해 실행되는 것을 허용하고 평문 (plaintext) 에 대해 수행되는 동작들의 결과에 해독 매칭하는 암호화된 결과를 획득하는 것을 허용하는 암호화의 형태라는 것을 이해할 것이다. 예를 들어, 두 사람 중 누구도 개별 숫자들의 값을 발견할 수 없는 상태로, 한 사람이 2 개의 암호화된 숫자들을 부가할 수 있을 것이고, 그 다음에, 다른 사람이 그 결과를 해독할 수 있을 것이다. 부분적 호모모픽 암호화는 평문들에 대한 하나의 연산 (부가 또는 곱하기) 에 대해 준동형 (homomorphic) 이다. 부분적 하모모픽 암호화는 스칼라에 대한 가산 및 승산에 대해 준동형일 수도 있다.
암호화된 값들을 수신한 후에, 평가기는 사용자 입력들에 마스크 (mask) 를 부가한다 (385). 통상의 기술자는, 마스크는 데이터 불명료화의 형태이고, 랜덤 넘버 발생기 또는 셔플링 (shuffling) 만큼 단순할 수 있을 것이라는 것을 이해할 것이다. 평가기는 후속하여 그 마스킹된 사용자 입력들을 CSP 에 전송하고 (390), 그 CSP 는 그것들을 해독한다 (395). CSP 는 그 다음, 평가기로부터 마스크를 수신하는 가블링된 회로를 준비하고 (350), 카운트들을 수행하기 전에 입력들을 마스크해제하며 (356), 그것을 가블링하고, 그것을 평가기에 전송한다 (360). (프록시가 아닌 플레인) 불확정 전송을 통해 (344), 평가기는 마스킹된 데이터의 가블링된 값들을 획득하고, 그 다음, 그것들을 이용하여 회로를 평가한다. 이 구현은, 사용자들이 그들의 입력들을 제출할 수 있고, 그 다음, 프로토콜을 "떠나는 것" 이 가능하며 (즉, 온라인 상태로 머물 필요가 없다), CSP 내의 해독을 필요로하지 않는다는 이점을 갖는다.
도 3 의 플로우차트 (300) 를 또한 만족하는 이 발명의 제 4 실시형태에서, 사용자들은 형태 (token_id, weight) 의 입력들을 제출하고, 여기서, 가중치는 예컨대 코퍼스에서 키워드가 나타나는 빈도, 사용자에 대한 그것의 중요성에 대응할 수 있을 것이다. 레코드들이 관람되는 영화들 및/또는 평점인 경우에, 가중치는 평점에 대응한다. 그 다음, 영화 당 평균 평점은 회로를 적절히 변형함으로써 우리의 방법에 의해 계산될 수 있다. 얼마나 많은 평점들이 영화에 대응하는지를 카운팅하는 것과 함께, "우에서 좌로의" 패스 (단계 C3) 는 또한 모든 평점들을 합산할 것이다. 평점 합산들과 카운트들의 비는 평균 평점을 생산할 것이다: (분산과 같은) 다른 통계치들이 또한 유사한 변형들을 통해 계산될 수 있다.
본 원리들은 하드웨어, 소프트웨어, 펌웨어, 특수목적 프로세서들, 또는 이들의 조합의 다양한 형태들로 구현될 수도 있음을 이해해야 한다. 바람직하게, 본 원리들은 하드웨어와 소프트웨어의 조합으로서 구현된다. 더욱이, 소프트웨어는 프로그램 저장 디바이스 상에 유형으로 수록되는 애플리케이션 프로그램으로서 바람직하게 구현된다. 애플리케이션 프로그램은, 임의의 적합한 아키텍처를 포함하는 머신에 업로딩되고 그 머신에 의해 실행될 수도 있다. 바람직하게, 머신은 하나 이상의 중앙 프로세싱 유닛들 (CPU), 랜덤 액세스 메모리 (RAM), 및 입력/출력 (I/O) 인터페이스(들)와 같은 하드웨어를 갖는 컴퓨터 플랫폼 상에 구현된다. 컴퓨터 플랫폼은 또한, 오퍼레이팅 시스템 및 마이크로 명령 코드를 포함한다. 본 명세서에서 기술된 다양한 프로세스들 및 기능들은 마이크로 명령 코드의 부분이거나 애플리케이션 프로그램의 부분 (또는 이들의 조합) 일 수도 있으며, 이는 오퍼레이팅 시스템을 통해 실행된다. 또한, 부가적인 데이터 저장 디바이스 및 프린팅 디바이스와 같은 다양한 다른 주변기기 디바이스들이 컴퓨터 플랫폼에 접속될 수도 있다.
도 5 는 본 원리들을 구현하도록 이용된 최소 컴퓨팅 환경 (500) 의 블록 다이어그램을 도시한다. 컴퓨팅 환경 (500) 은 프로세서 (510) 및 적어도 하나의 (바람직하게는, 하나보다 많은) I/O 인터페이스 (520) 를 포함한다. I/O 인터페이스는 유선 또는 무선일 수 있으며, 무선 구현에 있어서, 컴퓨팅 환경 (500) 으로 하여금 글로벌 네트워크 (예를 들어, 인터넷) 상에서 동작하는 것을 허용하고 다른 컴퓨터들 또는 서버들 (예를 들어, 클라우드 기반 컴퓨팅 또는 저장 서버들) 과 통신하는 것을 허용하여 본 원리들이 예를 들어 최종 사용자들에게 원격으로 제공된 SAAS (Software as a Service) 특징으로 제공되는 것을 가능하게 하는 적절한 무선 통신 프로토콜로 사전 구성된다. 하나 이상의 메모리들 (530) 및/또는 저장 디바이스들 (HDD) (540) 이 또한 컴퓨팅 환경 (500) 내에 제공된다. 컴퓨팅 환경 (500) 또는 복수의 컴퓨터 환경들 (500) 은 본 원리들의 일 실시형태에 따른 카운터 (C1 - C4) (도 4) 를 위한 프로토콜 (P1-6) (도 3) 을 구현할 수도 있다. 특히, 본 원리들의 실시형태에 있어서, 컴퓨팅 환경 (500) 은 평가기 (230) 를 구현할 수도 있고; 별개의 컴퓨팅 환경 (500) 은 CSP (250) 를 구현할 수도 있으며, 소스는 하나 또는 복수의 컴퓨터 환경들 (500) 을 포함할 수도 있고, 각각은, 평가기 (230) 및 CSP (250) 와 통신하는데 이용되는 데스크탑 컴퓨터들, 셀룰러 전화기들, 스마트 폰들, 전화기 시계들, 태블릿 컴퓨터들, 개인용 디지털 보조기 (PDA), 노트북들 및 랩탑 컴퓨터들을 포함하지만 이에 한정되지 않는 별개의 사용자 (210) 와 연관된다. 또한, CSP (250) 는 별개의 프로세서로서, 또는 소스 프로세서에 의해 실행되는 컴퓨터 프로그램으로서 소스에 포함될 수 있고, 또는 등가적으로, 소스의 각 사용자 (210) 의 컴퓨터 환경에 포함될 수 있다.
첨부 도면들에 도시된 구성하는 시스템 컴포넌트들 및 방법 단계들 중 일부는 바람직하게는 소프트웨어에서 구현되기 때문에, 시스템 컴포넌트들 (또는 프로세스 단계들) 간의 실제 접속들은 본 원리들이 프로그래밍되는 방식에 의존하여 상이할 수도 있음이 더 이해되어야 한다. 본 명세서에 교시들이 주어지면, 통상의 기술자는 본 원리들의 이들 및 유사한 구현들 또는 구성들을 고려할 수 있을 것이다.
비록 예시적인 실시형태들이 첨부 도면들을 참조하여 본 명세서에서 설명되었지만, 본 원리들은 그 정확한 실시형태들로 한정되지 않으며 다양한 변경들 및 변형들이, 본 원리들의 범위 또는 사상으로부터 일탈함이 없이 통상의 기술자에 의해 그 안에서 실시될 수도 있음을 이해해야 한다. 모든 그러한 변경들 및 변형들은, 첨부된 청구항들에 기재된 바와 같은 본 원리들의 범위 내에 포함되도록 의도된다.

Claims (32)

  1. 레코드들을 평가할 평가기 (230) 로부터 상기 레코드들이 사적으로 유지되도록 상기 레코드들을 보안 (securely) 카운팅하는 방법으로서,
    레코드들 (220) 의 셋트를 수신하는 단계 (340) 로서, 각 레코드는 토큰들의 셋트를 포함하고, 각 레코드는 상기 레코드의 소스 이외의 당사자들 (parties) 로부터 비밀유지되는, 상기 레코드들 (220) 의 셋트를 수신하는 단계 (340); 및
    가블링된 회로 (garbled circuit) 로 상기 레코드들의 셋트를 평가하는 단계 (370) 로서, 상기 가블링된 회로의 출력은 카운트들인, 상기 레코드들의 셋트를 평가하는 단계 (370) 를 포함하는, 레코드들을 보안 카운팅하는 방법.
  2. 제 1 항에 있어서,
    별개 셋트의 토큰들을 수신 또는 결정하는 단계 (320) 를 더 포함하는, 레코드들을 보안 카운팅하는 방법.
  3. 제 2 항에 있어서,
    상기 레코드들의 셋트에서 상기 별개 셋트의 토큰들을 카운팅하기 위해 암호 시스템 프로바이더 (Crypto-System Provider; CSP) 에서 상기 가블링된 회로를 설계하는 단계 (350); 및
    상기 가블링된 회로를 상기 평가기에 전송하는 단계 (360) 를 더 포함하는, 레코드들을 보안 카운팅하는 방법.
  4. 제 3 항에 있어서,
    상기 설계하는 단계는, 불리언 회로 (Boolean circuit) 로서 카운터를 설계하는 단계 (352) 를 포함하는, 레코드들을 보안 카운팅하는 방법.
  5. 제 4 항에 있어서,
    상기 카운터를 설계하는 단계는,
    상기 레코드들의 셋트 및 상기 별개 셋트의 토큰들의 어레이를 구성하는 단계 (410); 및
    상기 어레이에 대해 소팅 (420, 440), 시프팅 (430), 부가 (430) 및 저장 동작들을 수행하는 단계를 포함하는, 레코드들을 보안 카운팅하는 방법.
  6. 제 1 항에 있어서,
    상기 수신하는 단계는, 소스, 상기 평가기 및 암호 시스템 프로바이더 (CSP) 사이에 프록시 불확정 전송들 (342) 을 통해 수행되고 (350), 상기 소스는 상기 레코드들을 제공하고 상기 레코드들은 상기 평가기 및 상기 CSP 로부터 사적으로 유지되며, 상기 가블링된 회로는 상기 레코드들의 가블링된 값들을 입력들로서 취하는, 레코드들을 보안 카운팅하는 방법.
  7. 제 3 항에 있어서,
    암호화된 레코드들을 생성하기 위해 상기 레코드들의 셋트를 암호화하는 단계 (380) 를 더 포함하고, 상기 암호화하는 단계는 상기 레코드들의 셋트를 수신하는 단계 이전에 수행되는, 레코드들을 보안 카운팅하는 방법.
  8. 제 7 항에 있어서,
    상기 설계하는 단계 (350) 는, 상기 암호화된 레코드들을 프로세싱하기 이전에 상기 가블링된 회로 내부의 상기 암호화된 레코드들을 해독하는 단계 (354) 를 포함하는, 레코드들을 보안 카운팅하는 방법.
  9. 제 7 항에 있어서,
    상기 암호화는 부분적 하모모픽 암호화 (partially homomorphic encryption) (382) 이고, 상기 방법은,
    상기 평가기에서 상기 암호화된 레코드들을 마스킹하여 마스킹된 레코드들을 생성하는 단계 (385); 및
    상기 CSP 에서 상기 마스킹된 레코드들을 해독하여 해독된-마스킹된 레코드들을 생성하는 단계 (395) 를 포함하는, 레코드들을 보안 카운팅하는 방법.
  10. 제 9 항에 있어서,
    상기 설계하는 단계 (350) 는, 상기 해독된-마스킹된 레코드들을 프로세싱하기 이전에 상기 가블링된 회로 내부의 상기 해독된-마스킹된 레코드들을 마스크해제하는 단계 (356) 를 포함하는, 레코드들을 보안 카운팅하는 방법.
  11. 제 1 항에 있어서,
    각 레코드는 가중치들의 셋트를 더 포함하고, 상기 가중치들의 셋트는 적어도 하나의 가중치를 포함하는, 레코드들을 보안 카운팅하는 방법.
  12. 제 11 항에 있어서,
    상기 가중치는 상기 레코드에서의 각각의 토큰의 레이팅 및 빈도의 측정치 중 하나에 대응하는, 레코드들을 보안 카운팅하는 방법.
  13. 제 1 항에 있어서,
    각 레코드 (220) 의 토큰들의 수를 수신하는 단계 (310) 를 더 포함하는, 레코드들을 보안 카운팅하는 방법.
  14. 제 1 항에 있어서,
    각 레코드의 토큰들의 수가 최대 값을 나타내는 값보다 작을 때, 상기 값과 동일한 수의 토큰들을 갖는 레코드들을 생성하기 위해, 각 레코드에 널 엔트리들을 패딩하는 단계 (312) 를 더 포함하는, 레코드들을 보안 카운팅하는 방법.
  15. 제 1 항에 있어서,
    상기 레코드들의 셋트의 상기 소스는 사용자들 (210) 의 셋트 및 데이터베이스 중 하나이고, 상기 소스가 사용자들의 셋트인 경우에, 각 사용자는 적어도 하나의 레코드를 제공하는, 레코드들을 보안 카운팅하는 방법.
  16. 제 3 항에 있어서,
    상기 CSP 에 의한 가블링된 회로의 설계를 위한 파라미터들의 셋트를 수신하는 단계를 더 포함하고,
    상기 파라미터들은 상기 평가기에 의해 전송된 것인 (330), 레코드들을 보안 카운팅하는 방법.
  17. 레코드들이 평가기로부터 그리고 암호 서비스 프로바이더 (Crypto-Service Provider; CSP) 로부터 사적으로 유지되도록 상기 레코드들을 보안 카운팅하기 위한 시스템으로서,
    상기 시스템은, 상기 레코드들을 제공할 소스, 보안 카운터를 제공할 상기 CSP 및 상기 레코드들을 평가할 상기 평가기를 포함하고,
    상기 소스, 상기 CSP 및 상기 평가기 각각은,
    적어도 하나의 입력/출력 (404) 을 수신하기 위한 프로세서 (402); 및
    상기 프로세서와 신호 통신하는 적어도 하나의 메모리 (406, 408) 를 포함하고,
    상기 평가기 프로세서는,
    레코드들의 셋트를 수신하는 것으로서, 각 레코드는 토큰들의 셋트를 포함하고, 각 레코드는 비밀유지되는, 상기 레코드들의 셋트를 수신하는 것; 및
    가블링된 회로 (garbled circuit) 로 상기 레코드들의 셋트를 평가하는 것으로서, 상기 가블링된 회로의 출력은 카운트들인, 상기 레코드들의 셋트를 평가하는 것을 하도록 구성되는, 레코드들을 보안 카운팅하기 위한 시스템.
  18. 제 17 항에 있어서,
    상기 평가기 프로세서는 별개 셋트의 토큰들을 수신하도록 구성되는, 레코드들을 보안 카운팅하기 위한 시스템.
  19. 제 18 항에 있어서,
    상기 CSP 프로세서는,
    상기 레코드들의 셋트에서 상기 별개 셋트의 토큰들을 카운팅하기 위해 상기 가블링된 회로를 설계하고; 그리고
    상기 가블링된 회로를 상기 평가기에 전송하도록 구성되는, 레코드들을 보안 카운팅하기 위한 시스템.
  20. 제 19 항에 있어서,
    상기 CSP 프로세서는, 카운터를 불리언 회로 (Boolean circuit) 로 설계하도록 구성됨으로써 상기 가블링된 회로를 설계하도록 구성되는, 레코드들을 보안 카운팅하기 위한 시스템.
  21. 제 20 항에 있어서,
    상기 CSP 프로세서는,
    상기 레코드들의 셋트 및 상기 별개 셋트의 토큰들의 어레이를 구성하고; 그리고
    상기 어레이에 대해 소팅, 시프팅, 부가 및 저장 동작들을 수행하도록 구성됨으로써 상기 카운터를 설계하도록 구성되는, 레코드들을 보안 카운팅하기 위한 시스템.
  22. 제 17 항에 있어서,
    상기 소스 프로세서, 상기 평가기 프로세서 및 상기 CSP 프로세서는, 프록시 불확정 전송들을 수행하도록 구성되고, 상기 소스는 상기 레코드들을 제공하고, 상기 평가기는 상기 레코드들의 가블링된 값들을 수신하며, 상기 레코드들은 상기 평가기 및 상기 CSP 로부터 사적으로 유지되며, 상기 가블링된 회로는 상기 레코드들의 상기 가블링된 값들을 입력들로서 취하는, 레코드들을 보안 카운팅하기 위한 시스템.
  23. 제 19 항에 있어서,
    상기 소스 프로세서는,
    상기 레코드들의 셋트를 제공하기 이전에 암호화된 레코드들을 생성하기 위해 상기 레코드들의 셋트를 암호화하도록 구성되는, 레코드들을 보안 카운팅하기 위한 시스템.
  24. 제 23 항에 있어서,
    상기 CSP 프로세서는, 상기 암호화된 레코드들을 프로세싱하기 이전에 상기 가블링된 회로 내부의 상기 암호화된 레코드들을 해독하도록 더 구성됨으로써, 상기 가블링된 회로를 설계하도록 구성되는, 레코드들을 보안 카운팅하기 위한 시스템.
  25. 제 23 항에 있어서,
    상기 암호화는 부분적 하모모픽 암호화 (partially homomorphic encryption) 이고,
    상기 평가기 프로세서는, 상기 암호화된 레코드들을 마스킹하여 마스킹된 레코드들을 생성하도록 더 구성되고,
    상기 CSP 프로세서는, 상기 마스킹된 레코드들을 해독하여 해독된-마스킹된 레코드들을 생성하도록 더 구성되는, 레코드들을 보안 카운팅하기 위한 시스템.
  26. 제 25 항에 있어서,
    상기 CSP 프로세서는, 상기 해독된-마스킹된 레코드들을 프로세싱하기 이전에 상기 가블링된 회로 내부의 상기 해독된-마스킹된 레코드들을 마스크해제하도록 더 구성됨으로써, 상기 가블링된 회로를 설계하도록 구성되는, 레코드들을 보안 카운팅하기 위한 시스템.
  27. 제 17 항에 있어서,
    각 레코드는 가중치들의 셋트를 더 포함하고, 상기 가중치들의 셋트는 적어도 하나의 가중치를 포함하는, 레코드들을 보안 카운팅하기 위한 시스템.
  28. 제 27 항에 있어서,
    상기 가중치는 상기 레코드에서의 각각의 토큰의 레이팅 및 빈도의 측정치 중 하나에 대응하는, 레코드들을 보안 카운팅하기 위한 시스템.
  29. 제 17 항에 있어서,
    상기 평가기 프로세서는, 각 레코드의 토큰들의 수를 수신하도록 더 구성되고, 상기 토큰들의 수는 상기 소스에 의해 전송된 것인, 레코드들을 보안 카운팅하기 위한 시스템.
  30. 제 17 항에 있어서,
    상기 소스 프로세서는,
    각 레코드의 토큰들의 수가 최대 값을 나타내는 값보다 작을 때, 상기 값과 동일한 수의 토큰들을 갖는 레코드들을 생성하기 위해, 각 레코드에 널 엔트리들을 패딩하도록 구성되는, 레코드들을 보안 카운팅하기 위한 시스템.
  31. 제 17 항에 있어서,
    상기 레코드들의 셋트의 상기 소스는 사용자들의 셋트 및 데이터베이스 중 하나이고, 상기 소스가 사용자들의 셋트인 경우에, 각 사용자는 적어도 하나의 입력/출력 (504) 을 수신하기 위한 프로세서 (502); 및 적어도 하나의 메모리 (506, 508) 를 포함하고, 각 사용자는 적어도 하나의 레코드를 제공하는, 레코드들을 보안 카운팅하기 위한 시스템.
  32. 제 19 항에 있어서,
    상기 CSP 프로세서는, 가블링된 회로의 설계를 위한 파라미터들의 셋트를 수신하도록 더 구성되고,
    상기 파라미터들은 상기 평가기에 의해 전송된 것인, 레코드들을 보안 카운팅하기 위한 시스템.
KR1020157024146A 2013-03-04 2013-12-19 프라이버시 보호 카운팅을 위한 방법 및 시스템 KR20150122162A (ko)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201361772404P 2013-03-04 2013-03-04
US61/772,404 2013-03-04
US201361864094P 2013-08-09 2013-08-09
US201361864098P 2013-08-09 2013-08-09
US201361864088P 2013-08-09 2013-08-09
US201361864085P 2013-08-09 2013-08-09
US61/864,088 2013-08-09
US61/864,085 2013-08-09
US61/864,094 2013-08-09
US61/864,098 2013-08-09
PCT/US2013/076353 WO2014137449A2 (en) 2013-03-04 2013-12-19 A method and system for privacy preserving counting

Publications (1)

Publication Number Publication Date
KR20150122162A true KR20150122162A (ko) 2015-10-30

Family

ID=51492081

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020157024146A KR20150122162A (ko) 2013-03-04 2013-12-19 프라이버시 보호 카운팅을 위한 방법 및 시스템
KR1020157024126A KR20160009012A (ko) 2013-03-04 2014-05-01 행렬 분해 및 리지 회귀에 기초한 프라이버시-보호 추천을 위한 방법 및 시스템
KR1020157023908A KR20160030874A (ko) 2013-03-04 2014-05-01 행렬 인수분해에 기초한 등급 기여 사용자들에게로의 추천을 프라이버시-보호하기 위한 방법 및 시스템

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020157024126A KR20160009012A (ko) 2013-03-04 2014-05-01 행렬 분해 및 리지 회귀에 기초한 프라이버시-보호 추천을 위한 방법 및 시스템
KR1020157023908A KR20160030874A (ko) 2013-03-04 2014-05-01 행렬 인수분해에 기초한 등급 기여 사용자들에게로의 추천을 프라이버시-보호하기 위한 방법 및 시스템

Country Status (6)

Country Link
US (4) US20160019394A1 (ko)
EP (3) EP2965464A2 (ko)
JP (1) JP2016509268A (ko)
KR (3) KR20150122162A (ko)
CN (1) CN105637798A (ko)
WO (4) WO2014137449A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018128207A1 (ko) * 2017-01-06 2018-07-12 경희대학교 산학협력단 왜곡된 데이터에 대한 프라이버시 보호 시스템 및 방법{system and method for privacy presevation in skewed data}

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015163822A1 (en) * 2014-04-23 2015-10-29 Agency For Science, Technology And Research Method and system for generating / decrypting ciphertext, and method and system for searching ciphertexts in a database
US9825758B2 (en) * 2014-12-02 2017-11-21 Microsoft Technology Licensing, Llc Secure computer evaluation of k-nearest neighbor models
US9787647B2 (en) * 2014-12-02 2017-10-10 Microsoft Technology Licensing, Llc Secure computer evaluation of decision trees
US20160189461A1 (en) * 2014-12-27 2016-06-30 Avi Kanon Near field communication (nfc) based vendor/customer interface
WO2017023065A1 (en) * 2015-08-05 2017-02-09 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
US20170359321A1 (en) * 2016-06-13 2017-12-14 Microsoft Technology Licensing, Llc Secure Data Exchange
GB201610883D0 (en) * 2016-06-22 2016-08-03 Microsoft Technology Licensing Llc Privacy-preserving machine learning
US10755172B2 (en) 2016-06-22 2020-08-25 Massachusetts Institute Of Technology Secure training of multi-party deep neural network
EP3270321B1 (en) * 2016-07-14 2020-02-19 Kontron Modular Computers SAS Technique for securely performing an operation in an iot environment
US10628604B1 (en) * 2016-11-01 2020-04-21 Airlines Reporting Corporation System and method for masking digital records
US10880275B2 (en) 2017-01-20 2020-12-29 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption
WO2018136811A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. Secure web browsing via homomorphic encryption
WO2018136801A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. End-to-end secure operations using a query matrix
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
CN108733311B (zh) * 2017-04-17 2021-09-10 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
US10491373B2 (en) * 2017-06-12 2019-11-26 Microsoft Technology Licensing, Llc Homomorphic data analysis
US11082234B2 (en) * 2017-07-06 2021-08-03 Robert Bosch Gmbh Method and system for privacy-preserving social media advertising
WO2019040712A1 (en) * 2017-08-23 2019-02-28 Mochi, Inc. METHOD AND SYSTEM FOR AUCTION AT DECENTRALIZED MARKET
SG11202001591UA (en) * 2017-08-30 2020-03-30 Inpher Inc High-precision privacy-preserving real-valued function evaluation
JP6759168B2 (ja) * 2017-09-11 2020-09-23 日本電信電話株式会社 難読化回路生成装置、難読化回路計算装置、難読化回路生成方法、難読化回路計算方法、プログラム
EP3461054A1 (en) 2017-09-20 2019-03-27 Universidad de Vigo System and method for secure outsourced prediction
WO2019110380A1 (en) * 2017-12-04 2019-06-13 Koninklijke Philips N.V. Nodes and methods of operating the same
WO2019121898A1 (en) * 2017-12-22 2019-06-27 Koninklijke Philips N.V. A computer-implemented method of applying a first function to each data element in a data set, and a worker node and system for implementing the same
US11194922B2 (en) * 2018-02-28 2021-12-07 International Business Machines Corporation Protecting study participant data for aggregate analysis
US11334547B2 (en) 2018-08-20 2022-05-17 Koninklijke Philips N.V. Data-oblivious copying from a first array to a second array
US10999082B2 (en) 2018-09-28 2021-05-04 Analog Devices, Inc. Localized garbled circuit device
CN109543094B (zh) * 2018-09-29 2021-09-28 东南大学 一种基于矩阵分解的隐私保护内容推荐方法
JP6803980B1 (ja) 2018-10-17 2020-12-23 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 信頼されたイニシャライザを用いない秘密分散
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
JP7514232B2 (ja) 2018-11-15 2024-07-10 ラヴェル テクノロジーズ エスアーエールエル ゼロ知識広告方法、装置、およびシステムのための暗号化匿名化
US10915642B2 (en) 2018-11-28 2021-02-09 International Business Machines Corporation Private analytics using multi-party computation
US11178117B2 (en) * 2018-12-18 2021-11-16 International Business Machines Corporation Secure multiparty detection of sensitive data using private set intersection (PSI)
IL285484B2 (en) * 2019-02-22 2024-07-01 Inpher Inc Arithmetic for secure multipart computation with modular integers
US11250140B2 (en) * 2019-02-28 2022-02-15 Sap Se Cloud-based secure computation of the median
US11245680B2 (en) * 2019-03-01 2022-02-08 Analog Devices, Inc. Garbled circuit for device authentication
CN110059097B (zh) * 2019-03-21 2020-08-04 阿里巴巴集团控股有限公司 数据处理方法和装置
US11669624B2 (en) * 2019-04-24 2023-06-06 Google Llc Response-hiding searchable encryption
US11277449B2 (en) * 2019-05-03 2022-03-15 Virtustream Ip Holding Company Llc Adaptive distributive data protection system
CN110149199B (zh) * 2019-05-22 2022-03-04 南京信息职业技术学院 一种基于属性感知的隐私保护方法及系统
JP7279796B2 (ja) * 2019-08-14 2023-05-23 日本電信電話株式会社 秘密勾配降下法計算方法、秘密深層学習方法、秘密勾配降下法計算システム、秘密深層学習システム、秘密計算装置、およびプログラム
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
US11663521B2 (en) * 2019-11-06 2023-05-30 Visa International Service Association Two-server privacy-preserving clustering
CN110830232B (zh) * 2019-11-07 2022-07-08 北京静宁数据科技有限公司 基于同态加密算法的隐蔽式竞价方法及竞价系统
US11616635B2 (en) * 2019-11-27 2023-03-28 Duality Technologies, Inc. Recursive algorithms with delayed computations performed in a homomorphically encrypted space
CN111125517B (zh) * 2019-12-06 2023-03-14 陕西师范大学 一种基于差分隐私和时间感知的隐式矩阵分解推荐方法
RU2722538C1 (ru) * 2019-12-13 2020-06-01 Общество С Ограниченной Ответственностью "Убик" Компьютерно-реализуемый способ обработки информации об объектах, с использованием методов совместных вычислений и методов анализа данных
KR102404983B1 (ko) 2020-04-28 2022-06-13 이진행 릿지 회귀를 이용한 변수 선택 장치 및 방법
CN111768268B (zh) * 2020-06-15 2022-12-20 北京航空航天大学 一种基于本地化差分隐私的推荐系统
CN112163228B (zh) * 2020-09-07 2022-07-19 湖北工业大学 一种基于幺模矩阵加密的岭回归安全外包方法及系统
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
US11902424B2 (en) * 2020-11-20 2024-02-13 International Business Machines Corporation Secure re-encryption of homomorphically encrypted data
US20220191027A1 (en) * 2020-12-16 2022-06-16 Kyndryl, Inc. Mutual multi-factor authentication technology
US11113707B1 (en) 2021-01-22 2021-09-07 Isolation Network, Inc. Artificial intelligence identification of high-value audiences for marketing campaigns
US12081644B2 (en) * 2021-02-01 2024-09-03 Sap Se Efficient distributed privacy-preserving computations
US11308226B1 (en) * 2021-02-22 2022-04-19 CipherMode Labs, Inc. Secure collaborative processing of private inputs
US20220271914A1 (en) * 2021-02-24 2022-08-25 Govermment of the United of America as represented by the Secretary of the Navy System and Method for Providing a Secure, Collaborative, and Distributed Computing Environment as well as a Repository for Secure Data Storage and Sharing
CN114567710B (zh) * 2021-12-03 2023-06-06 湖北工业大学 一种基于岭回归预测的可逆数据隐写方法及系统
CN114943041B (zh) * 2022-05-17 2024-07-02 重庆邮电大学 一种基于差分隐私的隐式反馈协同过滤推荐方法
CN114726524B (zh) * 2022-06-02 2022-08-19 平安科技(深圳)有限公司 目标数据的排序方法、装置、电子设备及存储介质
CN116383848B (zh) * 2023-04-04 2023-11-28 北京航空航天大学 一种三方安全计算防作恶方法、设备及介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940738A (en) * 1995-05-26 1999-08-17 Hyundai Electronics America, Inc. Video pedestal network
US6888848B2 (en) * 2000-12-14 2005-05-03 Nortel Networks Limited Compact segmentation of variable-size packet streams
US20020194602A1 (en) * 2001-06-06 2002-12-19 Koninklijke Philips Electronics N.V Expert model recommendation method and system
KR20070117598A (ko) * 2005-02-18 2007-12-12 코닌클리케 필립스 일렉트로닉스 엔.브이. 오디오/비디오 스트림에서의 보조데이터 다중화방법
CN101495941A (zh) * 2006-08-01 2009-07-29 索尼株式会社 用于内容推荐的领域优化
US8712915B2 (en) * 2006-11-01 2014-04-29 Palo Alto Research Center, Inc. System and method for providing private demand-driven pricing
US9224427B2 (en) * 2007-04-02 2015-12-29 Napo Enterprises LLC Rating media item recommendations using recommendation paths and/or media item usage
US8001132B2 (en) * 2007-09-26 2011-08-16 At&T Intellectual Property I, L.P. Methods and apparatus for improved neighborhood based analysis in ratings estimation
US8131732B2 (en) * 2008-06-03 2012-03-06 Nec Laboratories America, Inc. Recommender system with fast matrix factorization using infinite dimensions
US7685232B2 (en) * 2008-06-04 2010-03-23 Samsung Electronics Co., Ltd. Method for anonymous collaborative filtering using matrix factorization
US8972742B2 (en) * 2009-09-04 2015-03-03 Gradiant System for secure image recognition
US20120185481A1 (en) * 2009-09-21 2012-07-19 Telefonaktiebolaget Lm Ericsson (Publ) Method and Apparatus for Executing a Recommendation
US8185535B2 (en) * 2009-10-30 2012-05-22 Hewlett-Packard Development Company, L.P. Methods and systems for determining unknowns in collaborative filtering
US8365227B2 (en) * 2009-12-02 2013-01-29 Nbcuniversal Media, Llc Methods and systems for online recommendation
US8676736B2 (en) * 2010-07-30 2014-03-18 Gravity Research And Development Kft. Recommender systems and methods using modified alternating least squares algorithm
US8881295B2 (en) * 2010-09-28 2014-11-04 Alcatel Lucent Garbled circuit generation in a leakage-resilient manner
US9088888B2 (en) * 2010-12-10 2015-07-21 Mitsubishi Electric Research Laboratories, Inc. Secure wireless communication using rate-adaptive codes
WO2012155329A1 (en) * 2011-05-16 2012-11-22 Nokia Corporation Method and apparatus for holistic modeling of user item rating with tag information in a recommendation system
US10102546B2 (en) * 2011-09-15 2018-10-16 Stephan HEATH System and method for tracking, utilizing predicting, and implementing online consumer browsing behavior, buying patterns, social networking communications, advertisements and communications, for online coupons, products, goods and services, auctions, and service providers using geospatial mapping technology, and social networking
US8925075B2 (en) * 2011-11-07 2014-12-30 Parallels IP Holdings GmbH Method for protecting data used in cloud computing with homomorphic encryption
US8478768B1 (en) * 2011-12-08 2013-07-02 Palo Alto Research Center Incorporated Privacy-preserving collaborative filtering
US8983888B2 (en) * 2012-11-07 2015-03-17 Microsoft Technology Licensing, Llc Efficient modeling system for user recommendation using matrix factorization

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018128207A1 (ko) * 2017-01-06 2018-07-12 경희대학교 산학협력단 왜곡된 데이터에 대한 프라이버시 보호 시스템 및 방법{system and method for privacy presevation in skewed data}

Also Published As

Publication number Publication date
US20160004874A1 (en) 2016-01-07
WO2014138754A2 (en) 2014-09-12
US20160020904A1 (en) 2016-01-21
WO2014138752A3 (en) 2014-12-11
EP3031166A2 (en) 2016-06-15
WO2014138752A2 (en) 2014-09-12
WO2014137449A3 (en) 2014-12-18
JP2016509268A (ja) 2016-03-24
WO2014137449A2 (en) 2014-09-12
EP2965464A2 (en) 2016-01-13
WO2014138753A2 (en) 2014-09-12
EP3031164A2 (en) 2016-06-15
CN105637798A (zh) 2016-06-01
KR20160009012A (ko) 2016-01-25
US20160012238A1 (en) 2016-01-14
WO2014138754A3 (en) 2014-11-27
US20160019394A1 (en) 2016-01-21
KR20160030874A (ko) 2016-03-21
WO2014138753A3 (en) 2014-11-27

Similar Documents

Publication Publication Date Title
KR20150122162A (ko) 프라이버시 보호 카운팅을 위한 방법 및 시스템
Corrigan-Gibbs et al. Prio: Private, robust, and scalable computation of aggregate statistics
Nikolaenko et al. Privacy-preserving matrix factorization
JP2016517069A (ja) 行列因数分解に基づいたユーザに寄与する評点に対するプライバシー保護推薦のための方法およびシステム
Chen et al. Towards statistical queries over distributed private user data
Lu et al. A control-theoretic perspective on cyber-physical privacy: Where data privacy meets dynamic systems
Cui et al. A practical and efficient bidirectional access control scheme for cloud-edge data sharing
Jeong et al. Improved differential fault analysis on PRESENT-80/128
MR Alves et al. A framework for searching encrypted databases
Zolfaghari et al. The odyssey of entropy: cryptography
Zheng et al. Towards differential access control and privacy-preserving for secure media data sharing in the cloud
Parra-Arnau et al. Privacy-enhancing technologies and metrics in personalized information systems
Russo et al. Dare‐to‐Share: Collaborative privacy‐preserving recommendations with (almost) no crypto
Ramezanian et al. Multi-party private set operations with an external decider
EdalatNejad et al. Private Collection Matching Protocols
Parra Arnau Privacy protection of user profiles in personalized information systems
Jung Ensuring Security and Privacy in Big Data Sharing, Trading, and Computing
Basu et al. Privacy preserving trusted social feedback
Parra-Arnau et al. A privacy-protecting architecture for recommendation systems via the suppression of ratings
Gorripati et al. Recommender systems: security threats and mechanisms
Melis Building and evaluating privacy-preserving data processing systems
US20240054136A1 (en) Method for multi-user confidential querying of the presence of a record in a database
Koch Privacy-Preserving Collection and Evaluation of Log Files
Iyer Ghost Recommendations: A Protocol for Efficiently Enhancing User Privacy
Kamers Homomorphic encryption: introduction and applicabilities

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid