KR20160030874A - 행렬 인수분해에 기초한 등급 기여 사용자들에게로의 추천을 프라이버시-보호하기 위한 방법 및 시스템 - Google Patents

행렬 인수분해에 기초한 등급 기여 사용자들에게로의 추천을 프라이버시-보호하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20160030874A
KR20160030874A KR1020157023908A KR20157023908A KR20160030874A KR 20160030874 A KR20160030874 A KR 20160030874A KR 1020157023908 A KR1020157023908 A KR 1020157023908A KR 20157023908 A KR20157023908 A KR 20157023908A KR 20160030874 A KR20160030874 A KR 20160030874A
Authority
KR
South Korea
Prior art keywords
records
user
masked
csp
matrix factorization
Prior art date
Application number
KR1020157023908A
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 KR20160030874A publication Critical patent/KR20160030874A/ko

Links

Images

Classifications

    • 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/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
    • 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)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Social Psychology (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (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

프라이버시-보호 추천들을 생성하기 위한 방법 및 시스템은, 임의의 개별적인 기록의 컨텐츠를 학습하지 않고도, 토큰들 및 항목들을 포함하는 기록들의 집합을 입력으로서 수신함으로써; 그리고 임의의 개별적인 기록, 또는 추천들을 포함하는 기록들로부터 추출된 임의의 정보의 컨텐츠를 학습하지 않고도, 적어도 하나의 항목에 관한 프라이버시-보호 방식으로 추천들을 생성하기 위해 기록들의 집합에 대한 행렬 인수분해에 기초하여 왜곡된 회로를 설계 및 평가함으로써 개시된다. 시스템은 3개의 파티들: 기록들에 대한 소스를 나타내는 데이터베이스 또는 복수의 사용자들; 왜곡된 회로를 설계할 크립토-서비스-제공자, 및 왜곡된 회로를 평가할 추천기 시스템을 포함하여, 기록들과, 기록들로부터 추출된 임의의 정보는 그들의 소스와는 다른 파티들로부터 비밀로 유지되고, 추천들은 요청하는 파티에 의해서만 알려진다.

Description

행렬 인수분해에 기초한 등급 기여 사용자들에게로의 추천을 프라이버시-보호하기 위한 방법 및 시스템{A METHOD AND SYSTEM FOR PRIVACY-PRESERVING RECOMMENDATION TO RATING CONTRIBUTING USERS BASED ON MATRIX FACTORIZATION}
본 출원은 2013년 08월 09일에 제출된 미국 가특허 출원: "A METHOD AND SYSTEM FOR PRIVACY PRESERVING MATRIX FACTORIZATION"이라는 명칭이 부여된 일련번호 제61/864088호; "A METHOD AND SYSTEM FOR PRIVACY PRESERVING COUNTING"이라는 명칭이 부여된 일련번호 제61/864085호; "A METHOD AND SYSTEM FOR PRIVACY-PRESERVING 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호에 대한 이익 및 우선권을 주장한다. 또한, 본 출원은, "A METHOD AND SYSTEM FOR PRIVACY PRESERVING COUNTING"이라는 명칭이 부여되었으며 2013년 12월 19일에 제출된 PCT 특허 출원, 일련번호 PCT/US13/76353와, "PRIVACY-PRESERVING LINEAR AND RIDGE REGRESSION"이라는 명칭이 부여되었으며 2013년 03월 04일에 제출된 미국 가특허 출원, 일련번호 제61/772404호에 대한 이익 및 우선권을 주장한다. 가특허 및 PCT 출원들은 모든 목적을 위해 그 전체가 본 명세서에서 참조로서 의미있게 병합된다.
본 발명의 원리들은 프라이버시-보호 추천 시스템들(privacy-preserving recommendation systems) 및 안전한 다수-파티(multi-party) 계산에 관한 것이며, 특히 프라이버시-보호 및 블라인드(blind) 방식으로 행렬 인수분해에 기초하여 등급 기여 사용자들(rating contributing users)에게 추천들을 제공하는 것에 관한 것이다.
지난 십년 간 수많은 연구 및 상업적 활동은 추천 시스템들의 널리-퍼진 사용을 야기했다. 이러한 시스템들은 영화, 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에 의한 연구들, 및
Figure pct00001
, 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에 의한 연구들과 같은 보다 더 이른 연구는, 추천기들이 이러한 정보를 남용하거나 사용자를 프라이버시 위협들에 노출시킬 수 있는 다수의 방법들을 식별하였다. 추천기들은 이윤(profit)에 대한 데이터를 전매할 뿐만 아니라, 사용자에 의해 의도적으로 폭로되는 것 이상(beyond)의 정보를 추출하도록 종종 동기가 부여된다. 예를 들어, 심지어 영화 등급들 또는 개인의 TV 시청 이력과 같이 전형적으로 민감한 것으로서 인지되지 않은 사용자 선호도들의 기록들은 사용자의 정치적 소속, 성별 등을 추론하도록 사용될 수 있다. 추천 시스템에서 데이터로부터 추론될 수 있는 비공개 정보는 항상 새로운 데이터 마이닝(data mining)으로서 진화하고 있으며, 추론 방법들은 악의적이거나 상냥한 목적으로 개발된다. 극도로, 사용자 선호도들의 기록들은 심지어 고유하게 사용자를 식별하도록 사용될 수 있다: A. Naranyan 및 V. Shmatikov은 2008, IEEE S&P의 "Robust de-anonymization of large sparse datasets"에서의 Netflix 데이터 집합을 익명 해제(de-anonymizing)함으로써 이를 뚜렷하게 입증하였다. 또한, 추천기가 악의적이지 않을지라도, 이러한 데이터의 비 의도적인 유출은 사용자들을 연결 공격들, 즉 상이한 데이터베이스에서 프라이버시를 위태롭게 하기 위해 부수적인 정보로서 하나의 데이터베이스를 이용하는 공격에 취약하게 한다.
미래 추론 위협들, 우연한 정보 유출 또는 내부자 위협들(목적이 있는 유출)을 항상 예측할 수는 없기 때문에, 사용자들이 클리어하게(in the clear) 그들의 개인 데이터를 폭로하지 않는 추천 시스템을 조성하는 것은 흥미롭다. 이 출원과 동일한 날짜에 제출되었으며 "A METHOD AND SYSTEM FOR PRIVACY PRESERVING MATRIX FACTORIZATION"이라는 명칭이 부여된, 발명자들에 의한 공동-계류 중인(co-pending) 출원은 행렬 인수분해에 기초한 프라이버시-보호 추천 시스템을 기재한다. 그것은 사용자들에 의해 추천기 시스템에 제출된 등급들(ratings)에 대해 작동하는데, 추천기 시스템은 개별적인 사용자들 또는 이들이 등급을 매긴 항목들의 등급을 학습하지 않고도 항목들의 등급을 프로파일링한다. 이는, 추천기가 항목 프로파일들을 학습하는 것에 사용자들이 동의한다는 점을 가정한다.
본 발명의 원리들은, 추천기 시스템이 사용자들의 등급 및 추천기 시스템이 등급을 매긴 항목들에 관한 어떠한 정보도 학습하지 않으며, 항목 프로파일들에 관한 어떠한 정보, 또는 추천들을 포함하여 사용자 데이터로부터 추출된 어떠한 통계학적 정보도 학습하지 않는 더 강력한 프라이버시-보호 추천 시스템을 제안한다. 따라서, 추천 시스템은, 그것이 제공하는 추천들을 완전히 알지 못하게 하면서, 등급에 기여한 사용자들에게 추천들을 제공한다.
본 발명의 원리들은 프라이버시-보호 방식으로 안전하게, 행렬 인수분해(matrix factorization)로서 알려진 공동 필터링 기술(collaborative filtering technique)에 기초하여 추천들을 제공하기 위한 방법을 제안한다. 특히, 본 방법은 사용자들이 항목들(예컨대, 영화, 책)에 부여한 등급을 입력으로서 수신하고, 사용자가 각 항목에 어떤 등급을 부여할 수 있는지를 예측하도록 후속적으로 이용될 수 있는 각 사용자 및 각 항목에 대한 프로파일을 생성한다. 본 발명의 원리들은, 사용자의 등급, 사용자가 어떤 항목에 등급을 매겼는지, 항목 프로파일들 또는 사용자 데이터로부터 추출된 임의의 통계학적 정보를 학습하지 않고도, 행렬 인수분해에 기초한 추천기 시스템이 이러한 과제를 수행하는 것을 허용한다. 특히, 추천 시스템은, 그것이 제공하는 추천들을 완전히 알지 못하게 하면서, 아직 등급을 매기지 않은 항목들의 등급을 어떻게 매길 것인지에 대한 예측의 형태로, 등급에 기여한 사용자들에게 추천들을 제공한다.
본 발명의 한 양상에 따르면, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법이 제공되며, 본 방법은: 기록들의 집합을 수신하는 단계(220)로서, 각각의 기록은 각 사용자로부터 수신되며 토큰들의 집합 및 항목들의 집합을 포함하고, 각각의 기록은 그것의 각 사용자와는 다른 파티들(parties)로부터 비밀로 유지되는, 기록들의 집합을 수신하는 단계(220)와; 적어도 하나의 특정 항목에 대한 하나의 요청하는 사용자로부터의 요청을 수신하는 단계(330)와; 행렬 인수분해에 기초하여 왜곡된 회로(garbled circuit)를 이용함으로써 추천기(RecSys)(230)에서 기록들의 집합을 평가하는 단계(355)로서, 왜곡된 회로의 출력은 적어도 하나의 특정 항목에 대한 마스킹된 항목 프로파일들 및 하나의 요청하는 사용자에 대한 마스킹된 사용자 프로파일을 포함하는, 기록들의 집합을 평가하는 단계(355)와; 적어도 하나의 특정 항목에 관한 요청하는 사용자에게로의 추천들을 생성하기 위해, 요청하는 사용자, RecSys, 및 크립토-서비스-제공자(CSP: Crypto-Service-Provider) 중에서 마스킹된 항목 프로파일들 및 마스킹된 사용자 프로파일을 공동으로 평가하는 단계(360 내지 385)로서, 각각의 추천 및 요청하는 사용자에 대한 사용자 프로파일은 요청하는 사용자와는 다른 파티들로부터 비밀로 유지되고, 적어도 하나의 특정 항목에 대한 항목 프로파일들은 모든 파티들로부터 비밀로 유지되고, 사용자 프로파일 및 항목 프로파일은 각각의 마스킹된 사용자 프로파일 및 마스킹된 항목 프로파일의 마스킹 해제된 버전인, 마스킹된 항목 프로파일들 및 마스킹된 사용자 프로파일을 공동으로 평가하는 단계(360 내지 385)를 포함한다. 본 방법은: 기록들의 집합에 대한 행렬 인수분해를 수행하기 위해 CSP에서의 왜곡된 회로를 설계하는 단계(340)로서, 왜곡된 회로의 출력은 적어도 하나의 특정 항목에 대한 마스킹된 항목 프로파일들 및 하나의 요청하는 사용자에 대한 마스킹된 사용자 프로파일을 포함하는, CSP에서의 왜곡된 회로를 설계하는 단계(340)와; 왜곡된 회로를 RecSys로 전달하는 단계(345)를 더 포함할 수 있다. 본 방법의 설계하는 단계는: 행렬 인수분해 연산을 불리언 회로(Boolean circuit)로서 설계하는 단계(3402)를 포함할 수 있다. 행렬 인수분해 회로를 설계하는 단계는: 기록들의 집합의 어레이를 구축하는 단계와; 어레이에 대한 분류(420, 440, 470, 490), 복사(430, 450), 갱신(470, 480), 비교(480) 및 기울기 기여(gradient contributions)의 계산(460)의 연산을 수행하는 단계를 포함할 수 있다. 본 방법은: CSP에 의해 왜곡된 회로의 설계에 대한 파라미터들의 집합을 수신하는 단계로서, 파라미터들은 RecSys에 의해 전송된(335), 파라미터들의 집합을 수신하는 단계를 더 포함할 수 있다.
본 발명의 한 양상에 따르면, 본 방법은: 암호화된 기록들을 생성하기 위해 기록들의 집합을 암호화하는 단계(315)로서, 암호화 단계는 기록들의 집합을 수신하는 단계 이전에 수행되는, 기록들의 집합을 암호화하는 단계(315)를 더 포함할 수 있다. 본 방법은: CSP에서의 공개 암호화 키들을 생성하는 단계와; 키들을 각 사용자들에게 전송하는 단계(310)를 더 포함할 수 있다. 암호화 체계는 부분적 준동형 암호화(homomorphic encryption)(310)일 수 있으며, 본 방법은: 마스킹된 기록들을 생성하기 위해 RecSys에서, 암호화된 기록들을 마스킹하는 단계(320)와; 암호 해독된-마스킹된 기록들을 생성하기 위해 CSP에서, 마스킹된 기록들을 암호 해독하는 단계(325)를 포함할 수 있다. 설계하는 단계(340)는: 암호 해독된-마스킹된 기록들을 프로세싱하기 이전에, 왜곡된 회로 내부에서 암호 해독된-마스킹된 기록들을 마스킹 해제하는 단계를 포함한다. 본 방법은: CSP와 RecSys 사이의 불확정 전달(oblivious transfers)(350)을 수행하는 단계(3502)를 더 포함할 수 있으며, RecSys는 암호 해독된-마스킹된 기록들의 왜곡된 값들을 수신하고, 기록들은 RecSys 및 CSP로부터 비공개로 유지된다.
본 발명의 원리들의 한 양상에 따르면, 공동으로 평가하는 단계는: 사용자 프로파일을 획득하기 위해 제1 마스크를 갖는 마스킹된 사용자 프로파일을 마스킹 해제하는 단계(360)와; 암호화된 사용자 프로파일을 생성하기 위해 사용자 프로파일을 암호화하는 단계(360)와; 적어도 하나의 특정 항목에 대한 마스킹된 항목 프로파일 및 암호화된 사용자 프로파일의 제1 곱(product)을 RecSys에서 계산하는 단계(370)와; 적어도 하나의 특정 항목에 대한 적어도 하나의 제2 마스크 및 암호화된 사용자 프로파일의 적어도 하나의 제2 곱을 CSP에서 계산하는 단계(375)와; 적어도 하나의 특정 항목에 대한 적어도 하나의 암호화된 추천을 생성하기 위해 RecSys에서 제1 곱으로부터 적어도 하나의 제2 곱을 빼는 단계(380)와; 적어도 하나의 특정 항목에 대한 적어도 하나의 암호화된 추천을 암호 해독하는 단계(385)를 더 포함할 수 있다. 제1 마스크는 요청하는 사용자에 의해 선택될 수 있고(315), 적어도 하나의 제2 마스크는 CSP에 의해 선택될 수 있다(340). 암호화하는 단계 및 암호 해독하는 단계는 요청하는 사용자에 의해 선택된 추가적 준동형 암호화 체계를 이용할 수 있다(360).
본 발명의 원리들의 한 양상에 따르면, 본 방법은: 각각의 기록의 토큰들 및 항목들의 개수를 수신하는 단계(220, 305)를 더 포함할 수 있다. 게다가, 본 방법은: 최대 값을 나타내는 값과 동일한 토큰들의 개수를 갖는 기록들을 생성하기 위해, 각각의 기록의 토큰들의 개수가 상기 값보다 더 작을 때, 각각의 기록을 널 엔트리들(null entries)로 패딩(padding)하는 단계(3052)를 더 포함할 수 있다. 기록들의 집합의 소스는 데이터베이스일 수 있다.
본 발명의 원리들의 한 양상에 따르면, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템이 제공되며, 본 시스템은 각각의 기록들의 집합을 제공할 사용자들의 집합, 안전한 행렬 인수분해 회로를 제공할 크립토-서비스-제공자(CSP), 및 기록들을 평가할 RecSys를 포함하여, 각각의 기록은 그것의 각 사용자와는 다른 파티들로부터 비공개로 유지되고, 각 사용자, CSP, 및 RecSys 각각은: 적어도 하나의 입력/출력(604)을 수신하기 위한 프로세서(602)와; 프로세서와 신호로 커뮤니케이션하는 적어도 하나의 메모리(606, 608)를 포함하고, RecSys 프로세서는: 기록들의 집합을 수신하되, 각각의 기록은 토큰들의 집합 및 항목들의 집합을 포함하고, 각각의 기록은 각 사용자와는 다른 파티들로부터 비밀로 유지되는, 기록들의 집합을 수신하고; 적어도 하나의 특정 항목에 대한 하나의 요청하는 사용자로부터의 요청을 수신하고; 행렬 인수분해에 기초하여 왜곡된 회로를 통해 기록들의 집합을 평가하되, 왜곡된 회로의 출력은 적어도 하나의 특정 항목에 대한 마스킹된 항목 프로파일들 및 하나의 요청하는 사용자에 대한 마스킹된 사용자 프로파일을 포함하는, 기록들의 집합을 평가하도록 구성되고, 요청하는 사용자, RecSys 및 CSP 프로세서들은: 적어도 하나의 특정 항목에 관한 요청하는 사용자에게로의 추천들을 생성하기 위해, 마스킹된 항목 프로파일들 및 마스킹된 사용자 프로파일을 공동으로 평가하되(360 내지 385), 각각의 추천 및 요청하는 사용자에 대한 사용자 프로파일은 요청하는 사용자와는 다른 파티들로부터 비밀로 유지되고, 적어도 하나의 특정 항목에 대한 항목 프로파일들은 모든 파티들로부터 비밀로 유지되고, 사용자 프로파일 및 항목 프로파일은 각각의 마스킹된 사용자 프로파일 및 마스킹된 항목 프로파일의 마스킹 해제된 버전인, 마스킹된 항목 프로파일들 및 마스킹된 사용자 프로파일을 공동으로 평가하도록(360 내지 385) 구성된다. 본 시스템에서의 CSP 프로세서는: 기록들의 집합의 행렬 인수분해를 수행하기 위해 왜곡된 회로를 설계하되, 왜곡된 회로의 출력은 적어도 하나의 특정 항목에 대한 마스킹된 항목 프로파일들 및 하나의 요청하는 사용자에 대한 마스킹된 사용자 프로파일을 포함하는, 왜곡된 회로를 설계하고; 왜곡된 회로를 RecSys에 전달하도록 구성될 수 있다. 본 시스템에서의 CSP 프로세서는: 행렬 인수분해 연산을 불리언 회로로서 설계하도록 구성됨으로써 왜곡된 회로를 설계하도록 구성될 수 있다. 본 시스템에서의 CSP 프로세서는: 기록들의 집합의 어레이를 구축하고; 어레이에 대한 분류, 복사, 갱신, 비교 및 기울기 기여의 계산의 연산을 수행하도록 구성됨으로써 행렬 인수분해 회로를 설계하도록 구성될 수 있다. 본 시스템에서의 CSP 프로세서는: 왜곡된 회로의 설계에 대한 파라미터들의 집합을 수신하되, 파라미터들은 RecSys에 의해 전송된, 파라미터들의 집합을 수신하도록 더 구성될 수 있다.
본 발명의 원리들의 한 양상에 따르면, 각 사용자 프로세서는: 암호화된 기록을 제공하기 이전에, 암호화된 기록을 생성하기 위해 각각의 기록을 암호화하도록 구성될 수 있다. CSP 프로세서는: CSP에서의 공개 암호화 키들을 생성하고; 키들을 사용자들의 집합에 전송하도록 더 구성될 수 있다. 암호화 체계는 부분적 준동형 암호화이고, RecSys 프로세서는: 마스킹된 기록들을 생성하기 위해 암호화된 기록들을 마스킹하도록 더 구성되고; CSP 프로세서는: 암호 해독된-마스킹된 기록들을 생성하기 위해 마스킹된 기록들을 암호 해독하도록 더 구성될 수 있다. 본 시스템에서의 CSP 프로세서는: 암호 해독된-마스킹된 기록들을 프로세싱하기 이전에, 왜곡된 회로 내부에서 암호 해독된-마스킹된 기록들을 마스킹 해제하도록 더 구성됨으로써, 왜곡된 회로를 설계하도록 구성될 수 있다. 본 시스템에서의 RecSys 프로세서 및 CSP 프로세서는 불확정 전달을 수행하도록 더 구성될 수 있고, RecSys는 암호 해독된-마스킹된 기록들의 왜곡된 값들을 수신하고, 기록들은 RecSys 및 CSP로부터 비공개로 유지된다.
본 발명의 원리들의 한 양상에 따르면, 요청하는 사용자 프로세서는: 사용자 프로파일을 획득하기 위해 제1 마스크를 갖는 마스킹된 사용자 프로파일을 마스킹 해제하고; 암호화된 사용자 프로파일을 생성하기 위해 사용자 프로파일을 암호화하고; 적어도 하나의 특정 항목에 대한 적어도 하나의 암호화된 추천을 암호 해독하도록 더 구성될 수 있고, RecSys 프로세서는: 적어도 하나의 특정 항목에 대한 마스킹된 항목 프로파일 및 암호화된 사용자 프로파일의 제1 곱을 계산하고; 적어도 하나의 특정 항목에 대한 적어도 하나의 암호화된 추천을 생성하기 위해 제1 곱으로부터 적어도 하나의 제2 곱을 빼도록 더 구성되고, CSP 프로세서는: 적어도 하나의 특정 항목에 대한 적어도 하나의 제2 마스크 및 암호화된 사용자 프로파일의 적어도 하나의 제2 곱을 CSP에서 계산하도록 더 구성된다. 제1 마스크는 요청하는 사용자에 의해 선택될 수 있고, 적어도 하나의 제2 마스크는 CSP에 의해 선택될 수 있다. 요청하는 사용자 프로세서는: 요청하는 사용자에 의해 선택된 추가적 준동형 암호화 체계를 이용하도록 더 구성될 수 있다.
본 발명의 원리들의 한 양상에 따르면, 본 시스템에서의 RecSys 프로세서는: 각각의 기록의 토큰들의 개수를 수신하되, 토큰들의 개수는 소스에 의해 전송된, 각각의 기록의 토큰들의 개수를 수신하도록 더 구성될 수 있다. 각각의 사용자 프로세서는: 최대 값을 나타내는 값과 동일한 토큰들의 개수를 갖는 기록들을 생성하기 위해, 각각의 기록의 토큰들의 개수가 상기 값보다 더 작을 때, 각각의 기록을 널 엔트리들로 패딩하도록 구성될 수 있다. 기록들의 집합의 소스는 데이터베이스일 수 있다.
본 발명의 원리들의 추가적인 특징들 및 장점들은 첨부 도면들을 참조하여 진행되는 예시적인 실시예들에 대한 다음의 상세한 설명으로부터 명백해질 것이다.
본 발명의 원리들은 아래에 간략하게 기재된 다음의 예시적인 도면들에 따라 더 잘 이해될 수 있다.
본 발명을 통해, 추천기 시스템이 사용자들의 등급 및 추천기 시스템이 등급을 매긴 항목들에 관한 어떠한 정보도 학습하지 않으며, 항목 프로파일들에 관한 어떠한 정보, 또는 추천들을 포함하여 사용자 데이터로부터 추출된 어떠한 통계학적 정보도 학습하지 않는 더 강력한 프라이버시-보호 추천 시스템이 제공될 수 있다.
도 1은 종래 기술의 추천 시스템의 구성요소들을 도시하는 도면.
도 2는 본 발명의 원리들에 따른 추천 시스템의 구성요소들을 도시하는 도면.
도 3(도 3a, 도 3b, 도 3c, 도 3d)은 본 발명의 원리들에 따른 프라이버시-보호 추천 방법의 흐름도를 도시하는 도면.
도 4(도 4a, 도 4b, 도 4c)는 본 발명의 원리들에 따른 예시적인 행렬 인수분해 알고리즘을 도시하는 도면.
도 5(A, B)는 본 발명의 원리들에 따른 행렬 인수분해 알고리즘에 의해 구축된 데이터 구조 S를 도시하는 도면.
도 6은 본 발명의 원리들을 구현하도록 이용된 계산 환경의 블록도를 도시하는 도면.
본 발명의 원리들에 따르면, 프라이버시-보호 및 블라인드 방식으로 안전하게, 행렬 인수분해로서 알려진 공동 필터링 기술에 기초하여 추천들을 수행하기 위한 방법이 제공된다.
본 발명의 원리들의 방법은 기록들의 코퍼스(corpus)에서의 항목에 관하여 추천하기 위한 서비스의 역할을 할 수 있으며, 각각의 기록은 토큰들 및 항목들의 집합을 포함한다. 집합 또는 기록들은 두 개 이상의 기록을 포함하고, 토큰들의 집합은 적어도 하나의 토큰을 포함한다. 당업자는 앞의 예시에서 기록이 사용자를 나타낼 수 있다는 점을 인정할 것이며; 토큰들은 기록 내의 대응하는 항목들에 대한 사용자의 등급일 수 있다. 토큰들은 또한 항목들과 연관된 랭크(ranks), 가중치들(weights) 또는 척도(measures)를 나타낼 수 있고, 항목들은 사람들, 과제들(tasks) 또는 작업들(jobs)을 나타낼 수 있다. 예를 들어, 랭크, 가중치 또는 척도는 개인의 건강과 연관될 수 있으며, 연구자는 인구의 건강 척도를 상관시키기 위해 노력하고 있다. 또는 이들은 개인의 생산성과 연관될 수 있으며, 기업은 이전의 이력에 기초하여 특정 작업들에 대한 일정을 예측하기 위해 노력하고 있다. 하지만, 관여된 개인들의 프라이버시를 보장하기 위해, 서비스는, 각각의 기록, 그것이 제공한 항목 프로파일들, 또는 사용자 데이터(기록들)로부터 추출된 임의의 통계학적 정보의 컨텐츠를 학습하지 않고도, 블라인드 방식으로 그렇게 수행하기를 원한다. 특히, 서비스는 (a) 각각의 토큰/항목이 어떤 기록들 내에서 나타났는지 또는, 하물며 (b)각각의 기록에서 어떤 토큰들/항목들이 나타나는지, (c) 토큰들의 값들, 및 (d) 사용자 데이터로부터 추출된 임의의 통계학적 정보를 학습하지 않을 것이다. 다음에서, "프라이버시-보호(privacy-preserving)", "비공개(private)", 및 "안전한(secure)"과 같은 용어 및 단어들은, 사용자 (기록)에 의해 비공개인 것으로서 여겨진 정보가 사용자에 의해서만 알려진다는 것을 표시하도록 상호 교환 가능하게 사용되며; 단어 "블라인드(blind)"는 또한, 사용자와는 다른 파티들이 추천을 알지 못한다는 것을 표시하도록 사용된다.
프라이버시-보호 방식으로 행렬 인수분해를 수행하는 것과 연관된 여러 도전들이 존재한다. 첫 번째로, 프라이버시 관심사를 다루기 위해, 행렬 인수분해는, 사용자들의 등급이나, 또는 심지어 그들이 어떤 항목들에 등급을 매겼는지를 추천기가 학습하지 않고도 수행될 것이다. 그들이 어떤 항목들에 등급을 매겼는지의 요구사항이 키(key)인데: 보다 더 이른 연구들은, 심지어 사용자가 어떤 영화에 등급을 매겼는지를 아는 것이 그의 성별을 추론하도록 사용될 수 있다는 점을 보여준다. 두 번째로, 이러한 프라이버시-보호 알고리즘은 효율적이어야 하며, 사용자들에 의해 제출된 등급들의 개수로 우아하게(예컨대, 선형적으로) 스케일링(scale)되어야 한다. 프라이버시 요구사항들은 행렬 인수분해 알고리즘이 데이터-불확정적(data-oblivious)이어야 하며: 그것의 실행은 사용자 입력에 의존해서는 안된다. 또한, 행렬 인수분해에 의해 수행된 연산들은 비-선형적이며; 이로써, 이러한 모든 제약들 하에서 행렬 인수분해를 효율적으로 구현하는 방법은 선험적으로 분명하지 않다(not a-priori clear). 최종적으로, 실용적인, 실제-세계의 시나리오에서, 사용자들은 제한된 커뮤니케이션 및 계산 자원들을 가지며, 그들이 그들의 데이터를 공급한 이후에 온라인으로 남아있도록 예상되어서는 안된다. 그 대신, 추천 서비스로부터 온라인과 오프라인 사이에서 전후로 이동하는 사용자들의 존재 하에서 연산할 수 있는 "전송 및 망각(send and forget)" 유형의 해법을 갖는 것이 바람직하다.
행렬 인수의 개관으로서, 표준 "공동 필터링" 설정에서, n명의 사용자들은 m개의 가능한 항목들(예컨대, 영화들)의 부분 집합의 등급을 매긴다. [n] := {1, ..., n}인 사용자들의 집합 및 [m] := {1, ..., m}인 항목들의 집합에 대하여, 등급이 생성된 사용자/항목 쌍들을
Figure pct00002
⊆[n]×[m]으로 표기하고, 그리고 등급들의 총 개수를 M=[
Figure pct00003
]으로 표기한다. 최종적으로, (i, j)∈
Figure pct00004
에 대하여, 항목 j에 대한 사용자 i에 의해 생성된 등급을 ri,j
Figure pct00005
으로 표기한다. 실질적인 설정에서, n과 m 모두는 큰 수들이고, 전형적으로 104 내지 106의 범위에 이른다. 또한, 제공된 등급들은 성기고(sparse), 즉 잠재적인 등급들의 총 수 n × m보다 훨씬 더 작은 M = O(n + m)이다. 이는 전형적인 사용자 행위와 일치하는데, 이는 각 사용자가 {"카탈로그(catalogue)" 사이즈인 m에 의존하지 않고} 오로지 한정된 개수의 항목들만의 등급을 매길 수 있기 때문이다.
Figure pct00006
의 등급들이 주어지면, 추천기 시스템은 [n]×[m]\
Figure pct00007
의 사용자/항목 쌍들에 대한 등급들을 예측하기를 원한다. 행렬 인수분해는 기존의 등급들에 겹-선형 모델(bi-linear model)을 맞춤(fitting)으로써 이러한 과제를 수행한다. 특히, 일부 작은 차원 d∈
Figure pct00008
에 대하여, 벡터들 ui
Figure pct00009
, i∈[n], 및 vj
Figure pct00010
, j∈[m]이 존재하여,
Figure pct00011
가 된다는 점이 가정되는데, 여기서 ε i,j 는 i.i.d.(독립적이며, 동일하게 분포된) 가우시안 랜덤 변수들이다. 벡터들 ui vj는 사용자 및 항목 프로파일들이라고 각각 불리우고, <ui,vj>는 벡터들의 내적이다. 사용된 표기법은, i-번째 행이 사용자 i의 프로파일을 포함하는 n×d 행렬에 대한
Figure pct00012
이고, j-번째 행이 항목 j의 프로파일을 포함하는 m×d 행렬에 대한
Figure pct00013
이다.
등급들
Figure pct00014
가 주어지면, 추천기는 일부 양의(positive) λ,μ>0에 대해, 전형적으로 다음의 정규화된 최소 제곱 최소화(least squares minimization)를 수행하는 프로파일들 U 및 V를 계산한다:
Figure pct00015
프로파일들 U 및 V에 대해 가우시안 종래 기술(Gaussian priors)을 가정(assuming)할 때, 수학식 2에서의 최소화가 U 및 V의 최대 가능성 추정에 대응한다는 것을 당업자는 인지할 것이다. 사용자 및 항목 프로파일들을 가질 때, 사용자 i 및 항목 j에 대해:
Figure pct00016
이도록, 추천기가 후속적으로 등급들
Figure pct00017
을 예측할 수 있다는 점에 주목한다.
수학식 2에서의 정규화된(regularized) 평균 제곱 오차는 볼록 함수가 아니고; 이러한 최소화를 수행하기 위한 여러 방법들이 문헌으로 제안되었다. 본 발명의 원리들은 다음과 같이 기재되는 실질적으로 사용된 인기있는 방법인 기울기 하강(gradient descent)에 초점을 맞춘다. 수학식 2에서의 정규화된 평균 제곱 오차를 F(U,V)로 표기하면, 기울기 하강은 적응 규칙을 통해 프로파일들 U 및 V를 반복적으로 적응시킴으로써 연산하며:
Figure pct00018
여기서 γ>0은 작은 이득 인자(gain factor)이고,
Figure pct00019
여기서 U(0) 및 V(0)은 균일한 랜덤 놈(random norm) 1 행들로 이루어진다{즉, 프로파일들은 놈 1 볼(ball)로부터 선택된 u.a.r. (랜덤으로 균일하게)이다}.
본 발명의 원리들의 다른 양상은 Yao의 왜곡된 회로들 및 분류 네트워크들에 기초한 행렬 인수분해를 위한 안전한 다수-파티 계산(MPC) 알고리즘을 제안하고 있다. 안전한 다수-파티 계산(MPC)은 1980년 대에 A. Chi-Chih Yao에 의해 처음으로 제안되었다. Yao의 프로토콜(a.k.a. 왜곡된 회로들)은 안전한 다수-파티 계산을 위한 일반적인 방법이다. V. Nikolaenko, U. Weinsberg, S. Ioannidis, M. Joye, D. Boneh, 및 N. Taft에 의해 2013년에 IEEE S&P에서의 "Privacy-preserving Ridge Regression on Hundreds of millions of records"로부터 적응된 이들의 변형에서, 프로토콜은 n 입력 소유자들의 집합 사이에서 실행되는데, 여기서 αi는 1≤i≤n인 사용자 i, f(αi, ..., αn)를 평가하기를 원하는 평가자, 및 제3 파티, 및 크립토-서비스 제공자(CSP)의 비공개 입력을 지칭한다. 프로토콜의 끝에서, 평가자는 f(αi, ..., αn)의 값을 학습하지만, 어떤 파티도 이러한 출력 값으로부터 폭로되는 것 이상을 학습하지 않는다. 프로토콜은 함수 f가 불리언 회로로서, 예컨대 OR, AND, NOT 및 XOR 게이트들의 그래프로서 표현될 수 있을 것과, 평가자와 CSP가 공모하지 않을 것을 요구한다.
최근에 Yao의 왜곡된 회로들을 구현하는 많은 프레임워크들이 존재한다. 일반용 MPC로의 상이한 접근법은 비밀-공유 체계들에 기초하고, 또 다른 접근법은 완전-준동형 암호화(FHE)에 기초한다. 비밀-공유 체계들은 선형 시스템, 선형 회귀, 및 경매들을 해결하는 것과 같은 다양한 선형 대수학 연산들을 위해 제안되었다. 비밀-공유는, 계산의 업무량을 동등하게 공유하고 다수의 라운드에 걸쳐 커뮤니케이션하는 적어도 세 개의 비-공모 온라인 권한을 요구하고; 이들 중 두 명이 공모하지 않는 한, 계산은 안전하다. 왜곡된 회로들은, 평가자가 클라우드 서비스이고 크립토-서비스 제공자(CSP)가 신뢰할 수 있는 하드웨어 구성요소에서 구현되는 시나리오에 더 잘 어울리는 오로지 두 개의 비공모 권한 및 훨씬 더 적은 커뮤니케이션을 가정한다.
사용된 크립토그래픽 프리미티브(cryptographic primitive)에 상관없이, 안전한 다수-파티 계산을 위한 효율적인 알고리즘을 조성하는 것에 대한 주요 도전은, 즉 실행 경로가 입력에 의존하지 않도록, 데이터-불확정 방식으로 알고리즘을 구현하는 것에 있다. 일반적으로, 제한된 시간 T에서 실행 가능한 임의의 RAM 프로그램은 O(T^3) 튜링 머신(TM)으로 전환될 수 있는데, 이는 수학적인 계산을 위한 이상화된 모델의 역할을 하도록 Alan Turing에 의해 발명된 이론적인 계산 머신이고, O(T^3)는 복잡도(complexity)가 T3에 비례한다는 것을 의미한다. 또한, 임의의 제한된 T-시간 TM은 데이터-불확정적인 사이즈 O(T log T)의 회로로 전환될 수 있다. 이는 임의의 제한된 T-시간 실행 가능한 RAM 프로그램이 O(T^3 log T) 복잡도를 갖는 데이터-불확정 회로로 전환될 수 있음을 암시한다. 이러한 복잡도는 너무 높고 대부분의 애플리케이션들에서는 엄두도 못 낼 정도이다. 효율적인 데이터-불확정 구현들이 알려지지 않는 알고리즘들의 조사는 W. Du 및 M.J. Atallah에 의해 2001년에 New Security Paradigms Workshop에서의 "Secure multi-party computation problems and their applications: A review and open problems"에서 확인될 수 있는데 - 행렬 인수분해 문제는 광범위하게도 데이터 마이닝 요약 문제들의 범주에 속한다.
분류 네트워크들은 원래 분류 병렬화(sorting parallelization) 및 효율적인 하드웨어 구현을 가능하게 하도록 개발되었다. 이들 네트워크들은 입력 시퀀스(α1, α2 ..., αn)을 단조적으로 증가하는 시퀀스(α'1, α'2 ..., α'n)로 분류하는 회로들이다. 이들은 비교-및-스와프 회로들, 이들의 메인 조성 블록(building block)을 함께 배선함으로써 구축된다. 여러 업무들은 크립토그래픽 목적으로 분류 네트워크들의 데이터-불확정함(data-obliviousness)을 이용한다. 하지만, 암호화는 프라이버시를 보장하기에 항상 충분하지는 않다. 상대방이 암호화된 저장소에 대한 귀하의 액세스 패턴을 관찰할 수 있는 경우, 이들은 귀하의 애플리케이션들이 수행 중인 것에 관한 민감한 정보를 여전히 학습할 수 있다. 불확정 RAM은 그것이 액세스되고 있을 때 메모리를 계속적으로 셔플링(shuffing)함으로써 이러한 문제를 해결하고; 이로써 어떤 데이터가 액세스되고 있는지 또는 심지어 그것이 이전에 액세스된 시기를 완전히 숨긴다. 불확정 RAM에서, 분류는 데이터-불확정 랜덤 순열을 생성함으로써 사용된다. 보다 더 최근에, 이는 볼록 헐(convex hull), 모든-가장 근접한 이웃들, 및 가중된 집합 교차점의 데이터-불확정 계산을 수행하도록 사용되었다.
본 발명의 원리들은, 가중된 집합 교차점에 가깝지만 왜곡된 회로들을 병합하는 안전한 다수-파티 분류에 기초한 방법을 제안한다. 도 2는 본 발명의 원리들에 따른 프라이버시-보호 추천 시스템 내에서의 배우들을 도시한다. 이들은 다음과 같다:
I. 추천기 시스템(RecSys)(230), 블라인드 프라이버시-보호 행렬 인수분해 연산을 수행하는 엔티티(entity). 특히, RecSys는, 사용자들이 어떤 영화들의 등급을 매겼는지, 이들이 어떤 등급을 주었는지, 또는 사용자들에 의해 획득되는 추천들을 포함하는 사용자 데이터로부터 추출된 임의의 통계학적 정보(평균, 항목 프로파일들 등)를 포함하는 사용자들에 관한 유용한 어떤 것도 학습하지 않고도, 사용자 등급들에 대한 행렬 인수분해로부터 추출된 것으로서 항목 프로파일들 V(240)를 블라인드 방식으로 계산한다.
II. 사용자들이 어떤 영화들의 등급을 매겼는지, 이들이 어떤 등급을 주었는지, 또는 추천들을 포함하는 사용자 데이터로부터 추출된 임의의 통계학적 정보(평균, 항목 프로파일들 등)를 포함하는 사용자들에 관한 유용한 어떤 것도 학습하지 않고도, 안전한 계산을 가능하게 할 크립토-서비스 제공자(CSP)(250).
III. 하나 이상의 사용자(210)로 이루어진 소스로서, 각각이 항목들의 집합(220)에 대한 등급들의 집합을 갖는, 소스. 각 사용자 i∈[n]는 행렬 인수분해를 통해 이들의 등급들 ri,j:(i,j)∈
Figure pct00020
에 기초하여 항목들의 프로파일링에 동의하지만, 이들의 등급들, 이들이 어떤 항목들의 등급을 매겼는지, 및 사용자 데이터로부터 추출된 임의의 통계학적 정보(평균, 항목 프로파일들 등)를 포함하는 어떤 것도 추천기에 폭로하기를 원하지 않는다. 등가적으로, 소스는 하나 이상의 사용자의 데이터를 포함하는 데이터베이스를 표현할 수 있다.
본 발명의 원리들에 따르면, 프로토콜이 제안되는데, 프로토콜은 RecSys가 행렬 인수분해를 실행하고 추천들을 제공하는 것을 허용하지만, 암호화된 값들이 도 2에서의 RecSys의 출력들인 사용자들에게 주어진 추천들
Figure pct00021
을 포함하는 사용자들에 관한 유용한 어떤 것도 RecSys 또는 CSP가 학습하지 않는다. 특히, 어떤 것도 사용자의 등급들, 또는 심지어 사용자가 실제로 어떤 항목들의 등급을 매겼는지를 학습하지 않을 것이고, 어떤 것도 항목 프로파일들 V, 사용자 프로파일들 U, 추천들, 또는 사용자 데이터로부터 추출된 임의의 통계학적 정보를 학습하지 않을 것다. 추천기가 사용자와 항목 프로파일들 모두를 학습하는 것을 허용하는 프로토콜이 너무 많이: 이러한 설계에서, 추천기가 수학식 3에서의 내적으로부터 사용자의 등급들을 대수롭지 않게 추론할 수 있다는 것을 폭로한다는 점을 당업자는 분명히 인지할 것이다. 또한, 본 발명의 원리들은 추천기 및 CSP가 사용자 프로파일들, 항목 프로파일들 또는 사용자 데이터로부터 추출된 임의의 통계학적 정보를 학습하지 않는 프라이버시-보호 프로토콜을 제안한다. 요약하여, 이들은 완전히 블라인드 방식으로 연산들을 수행하고, 사용자 데이터로부터 추출된 또는 사용자들에 관한 임의의 유용한 정보를 학습하지 않는다.
항목 프로파일은 사용자들/기록들의 집합의 등급들의 함수로서 항목들을 정의하는 메트릭으로서 확인될 수 있다. 유사하게도, 사용자 프로파일은 사용자들/기록들의 집합의 등급들의 함수로서 사용자를 정의하는 메트릭으로서 확인될 수 있다. 이러한 의미에서, 항목 프로파일은 항목의 승인/반대의 척도, 즉 항목의 특징들 또는 특성들의 반영이다. 그리고 사용자 프로파일은 사용자의 좋아하는 것들/싫어하는 것들의 척도, 즉 사용자의 개성의 반영이다. 사용자들/기록들의 큰 집합에 기초하여 계산되는 경우, 항목 또는 사용자 프로파일은 항목 또는 사용자의 독립적인 척도로서 각각 확인될 수 있다. 항목 프로파일들을 스스로 학습하는 것에 대한 유용성(utility)이 존재한다는 것을 당업자는 깨달을 것이다. 첫 번째로, 행렬 인수분해를 통한
Figure pct00022
내의 항목들의 삽입(embedding)은 추천기가 유사성을 추론(및 인코딩)하는 것을 허용하는데: 프로파일들이 작은 유클리드 거리(Euclidean distance)를 갖는 항목들은 사용자들에 의해 유사하게 등급이 매겨지는 항목들이다. 또한, 항목 프로파일들을 학습하는 과제는 추천들의 실제의 과제 이상으로 추천기에게 관심거리이다. 특히, 사용자들은 추천들을 수신할 것을 필요로 하지 않거나, 추천들을 수신하기를 원하지 않을 수도 있는데, 이는 소스가 데이터베이스인 경우일 수 있다. 두 번째로, 항목 프로파일들을 획득했을 때, 트리비아(trivia)가 존재하는데: 추천기는 사용자들에 의한 어떤 추가적인 데이터 폭로없이 관련 추천들을 제공하기 위해 항목 프로파일들을 이용할 수 있다. 추천기는 사용자에게 V를 전송(또는 그것을 공개적으로 발표)할 수 있고; 항목당 사용자의 등급들을 알 때, 사용자 i는 ui에 관하여; 소정의 V(이것은 분리될 수 있는 문제임)에 대하여, 수학식 2를 해결함으로써 사용자의 (비공개) 프로파일, ui을 추론할 수 있고, 각 사용자는 그의 등급들에 대한 리지 회귀(ridge regression)를 수행함으로써 그의 프로파일을 획득할 수 있다. ui 및 V를 가질 때, 사용자는 수학식 4를 통해 국부적으로 다른 항목들에 대한 그의 모든 등급들을 예측할 수 있다. 이는 본 출원과 동일 날짜에 제출되었으며 "A METHOD AND SYSTEM FOR PRIVACY-PRESERVING RECOMMENDATION BASED ON MATRIX FACTORIZATION AND RIDGE REGRESSION"이라는 명칭이 부여된 본 발명자들에 의한 공동-계류 중인 출원의 주제이다.
앞서 논의된 시나리오들 모두는, 추천기와 사용자들 모두가 V의 공개적 발표에 반대하지 않는다고 간주한다. 간소화를 위해, 뿐만 아니라 추천기에 대한 이러한 프로토콜의 유용성 때문에, 본 출원과 동일 날짜에 제출되었으며 "A METHOD AND SYSTEM FOR PRIVACY PRESERVING MATRIX FACTORIZATION"이라는 명칭이 부여된 본 발명자들에 의한 공동-계류 중인 출원은 추천기가 항목 프로파일들을 학습하는 것을 허용한다. 본 발명의 원리들은, 사용자들이 그들의 예측된 등급들을 학습하지만 추천기가 블라인드 방식으로 연산을 수행하며 사용자들에 관한 어떤 유용한 정보, 심지어 V조차도 학습하지 않도록, 이러한 설계를 확장한다.
본 발명의 원리들에 따르면, 보안 보장(security guarantees)이 정직하지만 기이한 위협 모델(honest but curious threat model) 하에서 유지될 것임이 가정된다. 다른 말로, RecSys 및 CSP는 규정된 바와 같이 프로토콜들을 따르며; 하지만, 이들 관심 파티들은 일부 추가적인 정보를 추론하기 위해 프로토콜 트랜스크립트들(protocol transcripts)을 심지어 오프-라인으로 분석하도록 선출할 수 있다. 추천기와 CSP가 공모하지 않는다는 점이 더 가정된다.
본 발명의 원리들의 선호되는 실시예는, 도 3 내의 흐름도(300)를 만족시키고 다음의 단계들로 기재된 프로토콜을 포함한다:
P1. 소스는 각각의 참여하는 기록을 위한 얼마나 많은 토큰들(등급들) 및 항목들의 쌍들이 제출될 것인지를 RecSys에 보고한다(305). 집합 또는 기록들은 두 개 이상의 기록을 포함하고, 기록당 토큰들의 집합은 적어도 하나의 토큰을 포함한다. 소스가 사용자들의 집합인 경우, 각 사용자는 토큰들 및 항목들의 각각의 개수를 RecSys에 개별적으로 보고한다.
P2. CSP는 부분적 준동형 체계, ξ에 대한 공개 암호화 키를 생성하고, 그것을 모든 사용자들(소스)에 전송한다(310). 준동형 암호화는 특정 유형들의 계산들이 암호문 상에서 수행되는 것과, 암호 해독된 결과가 평문 상에서 수행된 연산들의 결과와 매칭되는 암호화된 결과를 획득하는 것을 허용하는 암호화의 형태라는 것을 당업자는 이해할 것이다. 예를 들어, 한 사람이 두 개의 암호화된 숫자들을 더한 뒤, 또 다른 사람이 결과를 암호 해독할 수 있는데, 이들 중 어느 누구도 개별적인 숫자들의 값을 알 수 없다. 부분적 준동형 암호화는 평문 상에서의 하나의 연산(덧셈 또는 곱셈)에 관하여 준동형이다. 부분적 준동형 암호화는 스칼라에 대한 덧셈 및 곱셈에 관하여 준동형일 수 있다.
P3. 각 사용자 i는 마스크
Figure pct00023
를 선택하고, 그것을 CSP의 공개 키 하에서 암호화하여, 암호화된 마스크들 ti를 생성한다. 당업자는, 마스크가 데이터 난독화(data obfuscation)의 형태이고, 이는 난수 생성기(random number generator)를 더하는 것이나 난수에 의한 셔플링만큼 간단할 수 있다는 점을 이해할 것이다. 이 마스크는 사용자 i 프로파일 ui를 숨기도록 사용될 것이다. 또한, 각 사용자는 그것의 키를 사용하여 그것의 데이터를 암호화한다. 특히, j가 항목 id이고, ri,j가 사용자 i가 j에게 준 등급인 모든 쌍 (j, ri,j)에 대하여, 사용자는 공개 암호화 키를 사용하여 이러한 쌍을 암호화한다. 사용자들은 암호화된 마스크들 ti 및 암호화된 데이터를 Recsys에 전송한다(315).
P4. Recsys는 마스크 η을 암호화된 데이터에 더하고, 암호화된 마스크들 ti 및 암호화 및 마스킹된 데이터를 CSP에 보낸다(320).
P5. CSP는 암호화된 마스크들 ti을 암호 해독하고, 암호 해독된 마스크들
Figure pct00024
을 검색하고, 또한 암호화 및 마스킹된 데이터를 암호 해독한다(325).
P6. RecSys는 모든 항목들의 코퍼스 내의 적어도 하나의 특정 항목에 대한 적어도 하나의 요청하는 사용자로부터의 추천 요청들을 수신한다(330). 각각의 요청하는 사용자는 기록들에 기여한 사용자들 중 하나이다.
P7. Recsys는 사용자 및 항목 프로파일들(즉, 파라미터 d)의 차원(3352), 등급들의 총 개수(즉, 파라미터 M)(3354), 사용자들 및 항목들의 총 개수(3356), 및 왜곡된 회로 내의 실수(real number)의 정수 및 분수 부분들을 표현하도록 사용된 비트들의 개수(3358)를 포함하여, 왜곡된 회로를 조성하도록 요구된 완전한 사양서를 CSP에 전송한다(335). 항목들의 분리된 집합은, 모든 항목들이 기록들 내에 존재하지는 않는 경우, 파라미터들 내에 포함될 것이다.
P8. CSP는 항목들의 분리된 집합에 관한 기록들에 대한 행렬 인수분해를 수행하는 왜곡된 회로로서 당업자에게 알려지는 것을 준비한다(340). 왜곡되도록, 회로는 먼저 불리언 회로로서 기입된다(3402). 회로에 대한 입력은 RecSysr가 사용자 데이터를 마스킹하도록 사용한 마스크들을 포함한다. 회로 내부에서, 마스크는 데이터를 마스킹 해제하도록 사용되고, 그러고 나서 행렬 인수분해를 수행한다. 회로의 출력은 V, 항목 프로파일들 및 U, 사용자 프로파일들이다. CSP는 또한 항목 j당 하나씩인 그것의 자체의 랜덤 마스크들 ρj를 선택한다. 이들은 각 항목 j의 프로파일을 숨기도록 사용될 것이다. 항목 및 사용자 프로파일들을 클리어하게(in the clear) 출력하는 것보다는 오히려, CSP에 의해 구축된 회로는 (a) 마스크들 ρj로 마스킹된 항목 프로파일들 vj, 및 (b) 마스크들
Figure pct00025
로 마스킹된 사용자 프로파일들 ui을 출력한다. 기록들로부터 추출된 임의의 정보 및 임의의 개별적인 기록의 컨텐츠에 관한 어떤 지식도 얻어지지 않는다.
P9. CSP는 행렬 인수분해를 위한 왜곡된 회로를 RecSys에 전송한다(345). 구체적으로, CSP는 왜곡된 테이블들로의 게이트들을 프로세싱하고, 이들을 회로 구조에 의해 정의된 순서대로 RecSys로 송신한다.
P10. RecSys와 CSP 사이에서의 불확정 전송(350)을 통해(3502), RecSys는 그 자신 또는 CSP가 실제 값들을 학습하지 않고도, 암호 해독 및 마스킹된 기록들의 왜곡된 값들을 학습한다. 당업자는 불확정 전송이, 전송기가 잠재적으로 많은 정보의 조각들 중 하나를 수신기에 전송하는데, (만약에 있다면) 어떤 조각이 전송되었는지에 대하여 불확정적인 것으로 남아있는 전송의 유형임을 이해할 것이다.
P11. RecSys는 회로를 평가하고, 마스킹된 ui를 각 사용자 i에게 전송하고(355), 각 사용자 i는 그것을 마스킹 해제한다.
P12. 사용자가 추천을 받기를 원하는 경우, 사용자는 마스킹 해제한 뒤, 추가적 준동형 암호화 체계
Figure pct00026
를 사용하여, 그리고 자신의 공개 키를 사용하여 그의 프로파일 ui를을 암호화한다(360).
P13. 사용자는 암호화된 ui를 RecSys에 전송하고, RecSys는 그것을 CSP에 보낸다(365).
P14. RecSys는 모든 항목 j에 대해, 암호화 체계가 추가적 준동형일 때, RecSys가 수행할 수 있는
Figure pct00027
, j∈[m]의 암호화된 값을 계산한다(370).
P15. CSP는 모든 항목 j에 대해, 암호화 체계가 추가적 준동형일 때, CSP가 수행할 수 있는
Figure pct00028
, j∈[m]의 암호화된 값을 계산하고, 이 값을 RecSys에 전송한다(375).
P16. RecSys는
Figure pct00029
, j∈[m]의 대응하는 암호화된 값들로부터
Figure pct00030
, j∈[m]의 암호화된 값들을 빼어,
Figure pct00031
, j∈[m]의 암호화된 값들을 획득하고, 이들을 사용자에게 전송한다(380).
P17. 사용자는 그의 비공개 암호 해독 키의 사용을 통해
Figure pct00032
, j∈[m]의 이들 암호화된 값들을 암호 해독하여, 이로써 수학식 3에 보여지는 바와 같이, 모든 항목에 대해 그의 예측된 등급을 얻는다.
앞의 구성(construction)은 행렬 인수분해를 통해 사용자 프로파일들이 계산된 사용자들에 대해서만 작용한다. 데이터를 아직 제출하지 않은 새로운 사용자는 이러한 방식으로 추천을 얻을 수 없다. "A METHOD AND SYSTEM FOR PRIVACY-PRESERVING RECOMMENDATION BASED ON MATRIX FACTORIZATION AND RIDGE REGRESSION"이라는 명칭이 부여된 공동-계류 중인 출원 제________호는 이러한 특정 경우를 다룬다.
기술적으로, 이러한 프로토콜은 각 사용자에 의해 제공된 토큰들의 개수를 유출한다. 이는, 예컨대 미리-설정된 최대 수에 도달할 때까지 적절하게 "널(null)" 엔트리들로 제출된 기록들을 "패딩(padding)" 함으로써 간단한 프로토콜 수정을 통해 수정될 수 있다(312). 간단함을 위해, 프로토콜은 이러한 "패딩" 작동 없이 기재되었다.
왜곡된 회로들이 한 번만 사용될 수 있을 때, 동일한 등급들에 대한 임의의 추후 계산은 사용자들이 프록시 불확정 전송을 통해 그들의 데이터를 재-제출할 것을 요구할 것이다. 프록시 불확정 전송은 3 이상의 파티들이 관여되는 불확정 전송이다. 이러한 이유로, 본 발명의 원리들의 프로토콜은 하이브리드 접근법을 채택하였으며, 이는 공개-키 암호화를 왜곡된 회로들과 결합한다.
본 발명의 원리들에서, 공개-키 암호화는 다음과 같이 사용되는데: 각 사용자 i는 암호화된 마스크 ti =
Figure pct00033
(
Figure pct00034
)를 제출하는 의미론적으로 안전한 암호화 알고리즘
Figure pct00035
을 통해 CSP에 의해 제공된 공개 키, pkCSP 하에서의 그의 각각의 마스크
Figure pct00036
을 암호화한다. 또한, 각 사용자 i는 암호화 알고리즘
Figure pct00037
을 통해 공개 키, pkCSP 하에서의 그의 각각의 입력들(j,ri,j)을 암호화하고, 등급이 매겨진 각각의 항목 j에 대해, 사용자는 c =
Figure pct00038
(j,ri,j)을 갖는 쌍(i,c)을 RecSys에 제출하는데, 여기서 M 등급들은 통틀어서 제출된다. 등급들을 제출한 사용자는 오프-라인으로 이동할 수 있다.
CSP 공개-키 암호화 알고리즘은 부분적으로 준동형이고: 상수는 대응하는 암호 해독 키의 지식 없이 암호화된 메시지에 적용될 수 있다. 분명하게, Paillier 또는 Regev와 같은 추가적 준동형 체계는 또한 상수를 더하도록 사용될 수 있지만, 오로지 부분적으로 준동형인 hash-ElGamal은 충분하고, 이러한 경우에 보다 효율적으로 구현될 수 있다.
사용자들로부터의 M 등급들을 수신할 때 - 암호화가 부분적으로 준동형이라는 점을 상기해봄 - RecSys는 랜덤한 마스크들
Figure pct00039
로 그것들을 난독화하는데, η은 랜덤 또는 의사-랜덤 변수이고,
Figure pct00040
는 XOR 연산이다. RecSys는 왜곡된 회로를 조성하도록 요구된 완전한 사양서들과 함께, 그것들을 CSP로 전송한다. 특히, RecSys는 사용자 및 항목 프로파일들의 차원(즉, 파라미터 d), 등급들의 총 개수(즉, 파라미터 M), 및 사용자들 및 항목들의 총 개수, 뿐만 아니라 왜곡된 회로 내의 실수의 정수 및 분수 부분들을 표현하도록 사용된 비트들의 개수를 특정한다.
RecSys가 M의 축적된 등급들에 대한 행렬 인수분해를 수행하기를 원할 때면 언제든지, 그것은 M을 CSP에 보고한다. CSP는 RecSys에 (a) 입력들을 암호 해독한 뒤, (b) 행렬 인수분해를 수행하는 왜곡된 회로를 제공할 수 있다. V. Nikolaenko, U. Weinsberg, S. Ioannidis, M. Joye, D. Boneh, 및 N. Taft에 의한 2013년, IEEE S&P에서의 "Privacy-preserving ridge regression on hundreds of millions of records"에서, 회로 내의 암호 해독은 마스크들 및 준동형 암호화를 이용하여 회피된다. 본 발명의 원리들은 행렬 인수분해에 이러한 사상을 활용하지만, 단지 부분적 준동형 암호화 체계를 요구할 뿐이다.
암호화들을 수신할 때, CSP는 그것들을 암호 해독하고, 마스킹된 값들 (i, (j,ri,j)
Figure pct00041
η)을 얻는다. 그러고 나서, 행렬 인수분해를 청사진으로서 사용하여, CSP는:
(a) 마스크들 η에 대응하는 왜곡된 값들을 입력으로서 취하고;
(b) 대응하는 튜플들(i,j,ri,j)을 복구하기 위해 마스크들 η을 제거하고;
(c) 행렬 인수분해를 수행하고;
(d) ρj로 마스킹된 항목 프로파일들
Figure pct00042
Figure pct00043
로 마스킹된 사용자 프로파일들을 출력하는:
Figure pct00044
Yao의 왜곡된 회로를 준비한다.
프로토콜의 끝에서, RecSys는 각 사용자 i에 각각의
Figure pct00045
을 전송하고, 그러고 나서 각 사용자 i는 마스크를 제거함으로써 그의 프로파일 ui를 복구할 수 있다: ui =
Figure pct00046
-
Figure pct00047
, i∈[n]. 사용자 i가 항목 추천을 얻기를 원하는 경우, 사용자는 (예를 들어, Paillier의 크립토시스템와 같은) 추가적 준동형 암호화 알고리즘
Figure pct00048
을 통해 자신의 공개 키 pki 하에서의 그의 프로파일을 암호화하고, 결과 값,
Figure pct00049
(ui)을 RecSys에 전송한다. RecSys는 그것을 CSP에 보내고, 또한 j∈[m]에 대하여,
Figure pct00050
를 계산한다. CSP는 또한 j∈[m]에 대하여,
Figure pct00051
을 계산하고, 이 값을 RecSys에 반환한다. 최종적으로, RecSys는 j∈[m]인 모든 항목들에 대하여, 예측된 등급들
Figure pct00052
의 암호화를 획득하기 위해
Figure pct00053
로부터
Figure pct00054
을 빼고, 그것들을 사용자 i에게 전송한다. 사용자 i는 그러고 나서 클리어하게 추천을 획득하기 위해 그의 비공개 암호 해독 키를 이용할 수 있고, 즉
Figure pct00055
이다.
수학식 4 및 수학식 5에서 개요가 서술된 기울기 하강 연산들에 의한 행렬 인수분해의 계산은 실수들의 덧셈들, 뺄셈들, 및 곱셈들을 수반한다. 이들 연산들은 회로 내에서 효율적으로 구현될 수 있다. 기울기 하강의 수학식 4의 K회 반복은 K 회로 "층들(layers)"에 대응하고, 각각은 이전 층(preceding layer)에서의 값들로부터의 프로파일들의 새로운 값들을 계산한다. 회로의 출력들은 항목 프로파일들 V이지만, 사용자 프로파일들은 폐기된다.
당업자는, 예컨대 RAM 모델에서 연산들이 클리어하게 수행될 때, 기울기 하강의 각 반복을 계산하는 시간 복잡도가 O(M)임을 관찰할 것이다. 각각의 기울기의 수학식 5의 계산은 2M 텀들(terms)을 더하는 것을 포함하고, 프로파일 갱신의 수학식 4는 O(n + m) = O(M)에서 수행될 수 있다.
한 회로로서 기울기 하강을 구현하는 것에 대한 주요 도전은 그렇게 효율적으로 수행하는 것에 있다. 이를 설명하기 위해, 다음의 순수 구현을 고려할 수 있다:
Q1. 각 쌍(i, j)∈[n]×[m]에 대하여, i가 j의 등급을 매긴 경우 1이고, 그렇지 않은 경우 0인 표시자들
Figure pct00056
을 입력으로부터 계산하는 회로를 생성한다.
Q2. 각 반복 시, 이들 회로들의 출력들을 사용하여, 각 항목 및 사용자 기울기를 m과 n의 곱(products)에 대한 합산(summation)으로서 각각 계산하는데, 여기서
Figure pct00057
이다.
불행하게도, 이러한 구현은 비 효율적이고: 기울기 하강 알고리즘의 매 반복은 O(n × m)의 회로 복잡도를 가질 것이다. M << n × m일 때, 보통 실질적인 경우, 앞의 회로는 클리어하게 기울기 하강보다 상당히 덜 효율적이다. 사실, 이차 비용 O(n × m)은 대부분의 데이터집합들에 대해서는 엄두도 못 낼 정도이다. 순수 구현의 비 효율성은, 데이터 내의 내재적인 성김(sparsity)에 영향을 주는(leverage) 능력을 완화시키는 회로 설계의 시기에 사용자에 의해 어떤 항목들의 등급이 매겨지는지 및 사용자들이 어떤 항목에 등급을 매기는지를 식별하는 것에 대한 무능(inability)으로부터 발생한다.
역으로, 본 발명의 원리들의 선호되는 실시예에 따르면, 회로 구현은, 즉 클리어하게 구현의 다중 대수 인자(polylogarithmic factor) 내에서 O((n + m + M)log2(n + m + M))인 복잡도를 갖는 분류 네트워크들에 기초하여 제공된다.
요약하자면, 튜플들(i,j,ri,j)에 대응하는 입력 데이터와, 사용자 및 항목 프로파일들 모두에 대한 플레이스홀더들 ⊥ 모두는 어레이 내에서 함께 저장된다. 적절한 분류 연산들을 통해, 사용자 또는 항목 프로파일들은 이들이 식별자를 공유하는 입력에 가깝게 배치될 수 있다. 데이터를 통한 선형 패스들(linear passes)은 기울기들의 계산 및 프로파일들의 갱신을 허용한다. 분류 시, 플레이스홀더는, 즉 임의의 다른 수보다 더 큰 +∞로서 간주된다.
도 4의 흐름도(400)를 만족시키고 본 발명의 원리들의 선호되는 실시예에 따른 행렬 인수분해 알고리즘은 다음의 단계들에 의해 기재될 수 있다:
C1. 행렬 초기화(S 410)
알고리즘은 집합들 Li = {(j,ri,j):(i,j)∈
Figure pct00058
}, 또는 등가적으로 튜플들 {(i,j,ri,j):(i,j)∈
Figure pct00059
}을 입력으로 수신하고, 튜플들의 n + m + M 어레이를 구축한다. S의 제1 n 및 m 튜플들은 각각 사용자 및 항목 프로파일들에 대한 플레이스홀더들의 역할을 하고, 나머지 M 튜플들은 입력들 Li을 저장한다. 보다 구체적으로, 각 사용자 i∈[n]에 대해, 알고리즘은 튜플(i,⊥,0,⊥,ui,⊥)을 구축하는데, 여기서 ui
Figure pct00060
는 랜덤하게 선택된 사용자 i의 초기 프로파일이다. 각 항목 j∈[m]에 대해, 알고리즘은 튜플(⊥,j,0,⊥,⊥,vj,⊥)을 구축하는데, 여기서 vj
Figure pct00061
는 또한 랜덤하게 선택된 항목 j의 초기 프로파일이다. 최종적으로, 각 쌍(i,j)∈
Figure pct00062
에 대해, 알고리즘은 대응하는 튜플(i,j,1,ri,j,⊥,⊥)을 구축하는데, 여기서 ri,j는 항목 j에 대한 사용자 i의 등급이다. 결과적인 어레이는 도 5(A)에 도시된다. k-번째 튜플의 l-번째 요소를 sl,k로 지칭하여, 이들 요소들은 다음의 역할을 수행한다:
(a) s1,k: [n]의 사용자 식별자들;
(b) s2,k: [m]의 항목 식별자들;
(c) s3,k: 튜플이 "프로파일" 또는 "입력" 튜플인지를 표시하는 이진 플래그;
(d) s4,k: "입력" 튜플들의 등급들;
(e) s5,k:
Figure pct00063
의 사용자 프로파일들;
(f) s6,k:
Figure pct00064
의 항목 프로파일들.
C2. (행 1 및 3에 관하여) 사용자 id들에 관하여 오름차순으로 튜플들을 분류(420). 두 개의 id가 동일한 경우, 튜플 플래그들, 즉 각 튜플 내의 제3 요소들을 비교함으로써 타이를 깨뜨린다(break ties). 이로써, 분류 이후, 동일한 id를 갖는 "입력" 튜플들이 각 "사용자 프로파일" 튜플의 뒤를 잇는다:
C3. 사용자 프로파일들(좌 패스)을 복사(430):
k = 2,...,M + n에 대해,
Figure pct00065
C4. (행 2 및 3에 관하여) 항목 id들에 관하여 오름차순으로 튜플들을 분류(440). 두 개의 id가 동일한 경우, 튜플 플래그들, 즉 각 튜플 내의 제3 요소들을 비교함으로써 타이를 깨뜨린다.
C5. 항목 프로파일들(좌 패스)을 복사(450):
k = 2,...,M + m에 대해,
Figure pct00066
C6. 기울기 기여를 계산(460) ∀k<M:
∀k < M에 대해,
Figure pct00067
C7. 항목 프로파일들(우 패스)을 갱신(470):
k = M + n - 1, ... 1에 대해,
Figure pct00068
C8. 행 1 및 3에 대하여 튜플들을 분류(475)
C9. 사용자 프로파일들(우 패스)을 갱신(480):
k = M + n - 1, ... 1에 대해,
Figure pct00069
C10. 반복의 수가 K 미만인 경우, C3으로 이동(485)
C11. 행 3 및 2에 관하여 튜플들을 분류(490)
C12. k = 1, ..., m에 대해, 항목 프로파일들 s6,k를 출력(495), 여기서 출력은 적어도 하나의 항목 프로파일로 제한될 수 있음.
기울기 하강 반복은 다음의 세 개의 주요 단계들을 포함한다:
A. 프로파일들의 복사: 각 반복 시, 각각의 사용자 i 및 각각의 항목 j의 프로파일들 ui 및 vj는 i 및 j가 나타나는 각 "입력" 튜플의 대응하는 요소들 s5 ,k 및 s6,k에 복사된다. 이는 알고리즘의 단계들(C2 내지 C5)에서 구현된다. 예컨대, 사용자 프로파일들을 복사하기 위해, S는 1차 색인으로서 사용자 id(즉, s1,k) 및 2차 색인으로서 플래그(즉, s3,k)를 사용하여 분류된다. S의 초기 상태에 적용된 이러한 분류의 한 예시는 도 5(B)에서 확인될 수 있다. 후속적으로, 사용자 id들은 알고리즘의 단계(C3)에서 공식적으로 기재된 바와 같이, 좌로부터 우로("좌" 패스) 어레이를 횡단함으로써 복사된다. 이는 각 "프로파일" 튜플로부터의 s5,k를 그것의 인접한 "입력" 튜플들에 복사하고; 항목 프로파일들은 유사하게 복사된다.
B. 기울기 기여의 계산: 프로파일들이 복사된 후, 예컨대 (i,j)에 대응하는 각 "입력" 튜플은 마지막 반복 시에 계산된 바와 같이, (s4 ,k의) 등급 ri,j 및 (각각 s5 ,k 및 s6 ,k의) 프로파일들 ui 및 vj을 저장한다. 이로부터, 다음의 수량이 계산되는데:
Figure pct00070
, 이는 수학식 5에 의해 주어진 바와 같이 ui 및 vj에 관하여 기울기들에서의 튜플의 "기여"로서 확인될 수 있다. 이들은 알고리즘의 단계(C6)에 의해 표시된 바와 같이, 튜플의 s5,k 및 s6,k 요소들을 대체한다. 플래그들의 적절한 사용을 통해, 이 연산은 "입력" 튜플들에만 영향을 주고, "프로파일" 튜플들은 변경되지 않게 그대로 둔다.
C. 프로파일들의 갱신: 최종적으로, 사용자 및 항목 프로파일들은 알고리즘의 단계들(C7 내지 C9)에 도시되는 바와 같이 갱신된다. 적절한 분류를 통해, "프로파일" 튜플들은 이들이 id들을 공유하는 "입력" 튜플들에 다시 인접하게 된다. 갱신된 프로파일들은 어레이의 우-내지-좌 횡단("우" 패스)을 통해 계산된다. 이 연산은 "입력" 튜플들을 횡단할 때 기울기들의 기여를 더한다. "프로파일" 튜플에 직면할 때, 합산된(summed) 기울기 기여들은 적절히 스케일링된 프로파일에 더해진다. 프로파일을 통과한 후, 기울기 기여들의 합산은 플래그들 s3,k,s3,k+1의 적절한 사용을 통해 0에서부터 재시작된다.
앞의 연산들은 K 회, 즉 기울기 하강의 바람직한 반복의 수로 반복될 것이다. 최종적으로, 마지막 반복의 종료 시, 어레이는 1차 색인으로서 플래그들(즉,s3,k)에 관하여, 그리고 2차 색인으로서 항목 id들(즉, s2,k)에 관하여 분류된다. 이는 항목 프로파일들이 출력될 수 있는 어레이 내의 제1 m 위치들로 모든 항목 프로파일 튜플들을 가져온다. 게다가, 사용자 프로파일들을 획득하기 위해, 마지막 반복의 종료 시, 어레이는 1차 색인으로서 플래그들(즉,s3,k)에 관하여, 그리고 2차 색인으로서 사용자 id들(즉, s1,k)에 관하여 분류된다. 이는 사용자 프로파일들이 출력될 수 있는 어레이 내의 제1 n 위치들로 모든 사용자 프로파일 튜플들을 가져온다.
앞의 연산들 각각이 데이터-불확정이고, 한 회로로서 구현될 수 있다는 점을 당업자는 인지할 것이다. 프로파일들을 복사 및 갱신하는 것은 (n + m + M) 게이트들을 요구하여, 이로써 전체적인 복잡도는, 예컨대 Batcher의 회로를 사용하는 것이 O((n + m + M)log2(n + m + M)) 비용을 산출하는 분류에 의해 결정된다. 알고리즘의 단계(C6)에서의 분류 및 기울기 계산은 가장 계산적으로 집약적인 연산들이고; 다행스럽게도, 이들 모두는 고도로 병렬화 가능하다(parallelizable). 또한, 분류는 각 반복 시 이전에 계산된 비교들을 재사용함으로써 더 최적화될 수 있다. 특히, 이 회로는 불리언 회로로서(예컨대, OR, AND, NOT 및 XOR 게이트들의 그래프로서) 구현될 수 있는데, 이는 이전에 설명된 바와 같이 구현이 왜곡되는 것을 허용한다.
본 발명의 원리들에 따르면, 이전에 기재된 프로토콜과 함께 앞서 기재된 행렬 인수분해 알고리즘의 구현은 프라이버시-보호 방식으로의 추천을 위한 참신한 방법을 제공한다. 또한, 이러한 해법은 분류 네트워크들을 사용함으로써 클리어하게 수행된 행렬 인수분해의 다중 대수 인자 내에서의 복잡도를 갖는 회로를 산출한다. 게다가, 이러한 구현의 추가적인 장점은 이러한 회로의 왜곡 및 실행이 고도로 병렬화 가능하다는 점이다.
본 발명의 원리들에 따른 시스템의 구현에서, 왜곡된 회로 구축은 공개적으로 이용 가능한 왜곡된 회로 프레임워크인 FastGC에 기초한다. FastGC는 Java-기반의 개방-소스 프레임워크이고, 이는 기초적인 XOR, OR 및 AND 게이트들을 사용한 회로 정의를 가능하게 한다. 일단 회로들이 구축되면, 프레임워크는 왜곡, 블확정 전송 및 왜곡된 회로의 완전한 평가를 다룬다. 하지만, 회로를 왜곡 및 실행하기 전에, FastGC는 자바 객체들의 집합으로서 메모리 내의 전체적인 왜곡되지 않은 회로를 표현한다. 이들 객체들은, 게이트들의 부분 집합만이 임의의 시점에서 왜곡 및/또는 실행될 때, 왜곡되지 않은 회로가 도입할 메모리 풋프린트에 대한 상당한 메모리 오버헤드를 초래한다. 또한, FastGC가 앞서 기재된 바와 같이 실행 프로세스와 병행하여 왜곡을 수행할지라도, 모든 연산들은 순차적인 방식으로 발생하고: 게이트들은, 일단 이들의 입력들이 준비가 되면, 한 번에 하나씩 프로세싱된다. 당업자는 이러한 구현이 병렬화를 할 수 없다는 점을 분명하게 인지할 것이다.
결과로서, 프레임워크는 이들 두 개의 사안을 다루어, FastGC의 메모리 풋프린트를 감소시키고, 또한 다수의 프로세서에 걸쳐 병렬화된 왜곡 및 계산을 가능하게 하도록 수정되었다. 특히, 본 발명은 회로를 수평으로 순차적인 "층들"로 분할하는 능력을 도입했는데, 각각의 층은 병렬로 실행될 수 있는 수직 "슬라이스들"의 집합을 포함한다. 층은 모든 입력들이 준비될 때에만 메모리 내에 생성된다. 일단 그것이 왜곡 및 평가되면, 전체 층은 메모리로부터 제거되고, 그 다음 층이 구축될 수 있어, 이로써 메모리 풋프린트를 가장 큰 층의 사이즈로 제한한다. 층의 실행은 그것의 슬라이스들을 스레드들(threads)에 할당하는 스케쥴러를 사용하여 수행되고, 그것들이 병렬로 실행되는 것을 가능하게 한다. 병렬화가 다수의 코어들을 갖는 단일 머신 상에서 구현되었을지라도, 슬라이스들 사이에는 어떤 공유된 상태도 가정되지 않기 때문에, 구현은 간단한 방식으로 상이한 머신들에 걸쳐 실행되도록 확장될 수 있다.
최종적으로, 알고리즘에 개요가 서술된 수치 연산들을 구현하기 위해, FastGC는 고정-소숫점 수 표현을 통한 실수들(reals)에 대한 덧셈 및 곱셈, 뿐만 아니라 분류를 지원하도록 확장될 수 있다. 분류에 있어서, Batcher의 분류 네트워크가 사용되었다. 고정-소숫점 표현은 회로의 사이즈 및 절단(truncation)으로부터 생기는 정확성 손실 사이에 트레이드오프(tradeoff)를 도입하였다. 게다가, 알고리즘의 구현은 여러 방식으로 최적화되었으며, 특히:
(a) 그것은 회로의 실행의 시작 시에 계산된 비교들을 재사용함으로써 분류의 비용을 감소시켰다:
분류 네트워크의 기초 조성 블록은 비교-및-스와프 회로인데, 이는 두 개의 항목을 비교하고, 필요하다면, 이들을 스와핑하여, 출력 쌍은 정돈된다(ordered). 행렬 인수분해 알고리즘의 분류 연산들(라인들 C4 및 C8)은, 반복당 동일한 입력들을 정확히 사용하여, K 기울기 하강 반복들 각각에서의 튜플들 사이의 동일한 비교들을 수행한다. 사실상, 각각의 분류는 각각의 반복 시, 정확하게 동일한 방식으로 어레이 S 내의 튜플들을 순열로 배치한다. 이러한 특성은 이들 분류들 각각에 대한 비교 연산들을 단 한 번만 수행함으로써 이용된다. 특히, 형태(i,j,플래그,등급)의 튜플들의 분류들은, 예컨대 먼저 i 및 플래그에 관하여, j 및 플래그에 관하여, 그리고 다시 i 및 플래그에 관하여 (사용자 또는 항목 프로파일들의 페이로드 없이) 계산의 시작 시에 수행된다. 후속적으로, 비교 회로들의 출력들은 기울기 하강 동안에 사용된 스와프 회로들로의 입력으로서 이들 분류들 각각에서 재사용된다. 결과로서, 각각의 반복 시에 적용된 "분류" 네트워크는 어떤 비교도 수행하지 않지만, 간단히 튜플들을 순열로 배치한다(즉, 그것은 "순열" 네트워크이다);
(b) 그것은 어레이 S의 사이즈를 감소시켰다:
모든 비교들을 사전 계산하는 것은 본 발명이 또한 S 내에서의 튜플들의 사이즈를 급격히 감소시키게 한다. 시작하기 위해, 당업자는 사용자 또는 항목 id들에 대응하는 행들이 분류 동안 비교들에 대한 입력으로서 행렬 인수분해 알고리즘에서만 사용된다는 점을 관찰할 수 있다. 플래그들 및 등급들은 복사 및 갱신 단계들(phases) 동안 사용되지만, 이들의 상대적인 위치들은 각 반복 시에 동일하다. 더욱이, 이들 위치들은 계산의 시작 시에 튜플들(i,j,플래그, 등급)의 분류의 출력들로서 계산될 수 있다. 또한, 각 반복 시에 수행된 "순열" 연산들은 사용자 및 항목 프로파일들에만 적용될 필요가 있고; 모든 다른 행들은 어레이 S로부터 제거될 수 있다. 프로파일들, 예컨대 사용자들의 하나의 집합을 고정(fix)시키고, 항목 프로파일들만을 순열로 배치하기 위해: 하나 이상의 개선은 2의 추가적인 인자만큼 순열들의 비용을 감소시킨다. 그러고 나서, 항목 프로파일들은 두 개의 상태 사이에서 회전하되, 각각의 상태는 순열을 통해 다른 상태로부터 도달 가능한데: 하나에서는 이들이 사용자 프로파일들로 정렬되고 부분적 기울기들이 계산되는 것이고, 하나에서는 항목 프로파일들이 갱신 및 복사된다.
이는 XOR 연산들을 사용함으로써 스와프 연산들을 최적화시켰다:
XOR 연산들이 "프리(free)"로 실행될 수 있다고 가정하면, 비교, 스와프, 갱신, 및 복사 연산들의 최적화는 가능하다면 모든 경우에 XOR들 사용함으로써 수행된다. 프리(free)-XOR 게이트들이 연관된 왜곡된 테이블들 및 대응하는 해싱(hashing) 또는 대칭 키 연산들 없이도 왜곡될 수 있으며, 이는 계산 및 커뮤니케이션에서의 마킹된 개선을 표현한다는 점을 당업자는 이해할 것이다.
(d) 이는 계산들을 병렬화하였다:
분류 및 기울기 계산들은 행렬 인수분해 회로에서의 계산의 대부분(bulk)을 구성하고(복사 및 갱신은 실행 시간의 3%, 그리고 비-xor 게이트들의 0.4%를 초과하여 기여하지는 않음); 이들 연산들은 FastGC의 이러한 연장을 통해 병렬화된다. 기울기 계산은 분명하게 병렬화 가능하고; 분류 네트워크는 또한 고도로 병렬화 가능하다{병렬화는 그들의 개발(development) 이면의 주요 자극(motivation)이다}. 또한, 각 분류에서의 많은 병렬 슬라이스들이 동일하기 때문에, 회로 슬라이스들을 정의하는 동일한 FastGC 객체들은 상이한 입력들과 재사용되어, 메모리 내의 객체들을 반복적으로 생성 및 파기할 필요를 상당히 감소시킨다.
본 발명의 원리들은 하드웨어, 소프트웨어, 펌웨어, 특수용 프로세서들, 또는 이들의 결합의 다양한 형태로 구현될 수 있다는 것이 이해될 것이다. 바람직하게도, 본 발명의 원리들은 하드웨어 및 소프트웨어의 결합으로 구현된다. 또한, 소프트웨어는 바람직하게는 프로그램 저장 디바이스 상에 실제로 구체화된 애플리케이션 프로그램으로 구현된다. 애플리케이션 프로그램은 임의의 적절한 구조를 포함하는 머신에 업로딩되고, 이에 의해 실행될 수 있다. 바람직하게도, 머신은 하나 이상의 중앙 프로세싱 유닛들(CPU), 랜덤 액세스 메모리(RAM), 및 입력/출력(I/O) 인터페이스(들)와 같은 하드웨어를 갖는 컴퓨터 플랫폼 상에서 구현된다. 컴퓨터 플랫폼은 또한 운영 체제 및 마이크로명령어 코드를 포함한다. 본 명세서에 기재된 다양한 프로세스들 및 기능들은 마이크로명령어 코드의 부분이거나, 운영 체제를 통해 실행되는 애플리케이션 프로그램(또는 이들의 결합)의 부분일 수 있다. 또한, 추가적인 데이터 저장 디바이스 및 프린팅 디바이스와 같은 다양한 다른 주변 디바이스들이 컴퓨터 플랫폼에 연결될 수 있다.
도 6은 본 발명의 원리들을 구현하도록 사용된 최소 계산 환경(600)의 블록도를 도시한다. 계산 환경(600)은 프로세서(610) 및 적어도 하나의 (그리고 바람직하게는 두 개 이상의) I/O 인터페이스(620)를 포함한다. I/O 인터페이스는 유선 또는 무선일 수 있고, 이는 무선 구현에서, 본 발명의 원리들이, 예를 들어 최종-사용자들에게 원격으로 제공된 서비스형 소프트웨어(SAAS) 특징으로서 제공되는 것을 가능하도록, 계산 환경(600)이 글로벌 네트워크(예컨대, 인터넷) 상에서 작동하고 다른 컴퓨터들 또는 서버들(예컨대, 클라우드 기반의 계산 또는 저장 서버들)과 커뮤니케이션하는 것을 허용하는 적절한 무선 커뮤니케이션 프로토콜들로 사전-구성된다. 하나 이상의 메모리(630) 및/또는 저장 디바이스들(HDD)(640)이 또한 계산 환경(600) 내에 제공된다. 계산 환경(600) 또는 복수의 컴퓨터 환경(600)은 본 발명의 원리들의 한 실시예에 따른 행렬 인수분해(C1 내지 C12)(도 4)를 위한 프로토콜(P1 내지 P17)(도 3)을 구현할 수 있다. 특히, 본 발명의 원리들의 한 실시예에서, 계산 환경(600)은 RecSys(230)을 구현할 수 있고; 분리된 계산 환경(600)은 CSP(250)를 구현할 수 있고, 소스는 데스크탑 컴퓨터들, 셀룰러 폰들, 스마트 폰들, 폰 워치들, 태블릿 컴퓨터들, 퍼스널 디지털 어시스턴트(PDA), 넷북들 및 랩탑 컴퓨터들을 포함하지만 이들로 제한되지는 않는 하나의 또는 복수의 컴퓨터 환경(600)을 포함할 수 있는데, 이들 각각은 구별된 사용자(210)와 연관되며, 이는 RecSys(230) 및 CSP(250)와 커뮤니케이션하도록 사용된다. 또한, CSP(250)는 소스에 포함될 수 있거나, 또는 등가적으로, 소스의 각 사용자(210)의 컴퓨터 환경에 포함될 수 있다.
첨부 도면들에 도시된 구성 시스템 구성요소들 및 방법의 단계들의 일부가 바람직하게는 소프트웨어로 구현되기 때문에, 시스템 구성요소들(또는 프로세스 단계들) 사이의 실질적인 연결들은 본 발명의 원리들이 프로그래밍되는 방식에 따라 상이할 수 있다는 점이 더 이해될 것이다. 본 명세서에서의 주어진 가르침들에 따라, 당업자는 본 발명의 원리들의 이러한 그리고 유사한 구현들 또는 구성들을 숙고할 수 있을 것이다.
예시적인 실시예들이 첨부 도면들을 참조하여 본 명세서 내에 기재되었을지라도, 본 발명의 원리들은 그러한 정확한 실시예로 제한되지는 않는다는 것과, 다양한 변경들 및 수정들이 본 발명의 원리들의 사상 또는 범주로부터 이탈하지 않고도 당업자에 의해 영향을 받을 수도 있다는 것이 이해될 것이다. 모든 이러한 변경들 및 수정들은 첨부된 청구범위들에 열거된 바와 같이 본 발명의 원리들의 범주 내에서 포함되도록 의도된다.
110: 사용자들 120: 사용자 입력들
130: 추천기 시스템 140: 추천들
600: 계산 환경 610: 프로세서
620: I/O 인터페이스 630: 메모리
640: 저장 디바이스들(HDD)

Claims (32)

  1. 행렬 인수분해(matrix factorization)를 통해 추천들을 안전하게 생성하기 위한 방법으로서,
    기록들의 집합을 수신하는 단계(220)로서, 각각의 기록은 각 사용자로부터 수신되며 토큰들의 집합 및 항목들의 집합을 포함하고, 각각의 기록은 상기 각 사용자와는 다른 파티들(parties)로부터 비밀로 유지되는, 기록들의 집합을 수신하는 단계(220)와;
    적어도 하나의 특정 항목에 대한 하나의 요청하는 사용자로부터의 요청을 수신하는 단계(330)와;
    행렬 인수분해에 기초하여 왜곡된 회로(garbled circuit)를 이용함으로써 추천기(RecSys)(230)에서 상기 기록들의 집합을 평가하는 단계(355)로서, 왜곡된 회로의 출력은 상기 적어도 하나의 특정 항목에 대한 마스킹된 항목 프로파일들 및 상기 하나의 요청하는 사용자에 대한 마스킹된 사용자 프로파일을 포함하는, 상기 기록들의 집합을 평가하는 단계(355)와;
    상기 적어도 하나의 특정 항목에 관한 상기 요청하는 사용자에게로의 추천들을 생성하기 위해, 요청하는 사용자, RecSys, 및 크립토-서비스-제공자(CSP: Crypto-Service-Provider) 중에서 마스킹된 항목 프로파일들 및 마스킹된 사용자 프로파일을 공동으로 평가하는 단계(360 내지 385)로서, 각각의 추천 및 상기 요청하는 사용자에 대한 사용자 프로파일은 상기 요청하는 사용자와는 다른 파티들로부터 비밀로 유지되고, 상기 적어도 하나의 특정 항목에 대한 항목 프로파일들은 모든 파티들로부터 비밀로 유지되고, 사용자 프로파일 및 항목 프로파일은 각각의 마스킹된 사용자 프로파일 및 마스킹된 항목 프로파일의 마스킹 해제된 버전인, 마스킹된 항목 프로파일들 및 마스킹된 사용자 프로파일을 공동으로 평가하는 단계(360 내지 385)를
    포함하는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  2. 제1항에 있어서,
    상기 기록들의 집합에 대한 행렬 인수분해를 수행하기 위해 CSP에서의 왜곡된 회로를 설계하는 단계(340)로서, 왜곡된 회로의 출력은 상기 적어도 하나의 특정 항목에 대한 마스킹된 항목 프로파일들 및 상기 하나의 요청하는 사용자에 대한 마스킹된 사용자 프로파일을 포함하는, CSP에서의 왜곡된 회로를 설계하는 단계(340)와;
    왜곡된 회로를 RecSys로 전달하는 단계(345)를
    더 포함하는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  3. 제2항에 있어서, 설계하는 단계는:
    행렬 인수분해 연산을 불리언 회로(Boolean circuit)로서 설계하는 단계(3402)를
    포함하는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  4. 제3항에 있어서, 행렬 인수분해 회로를 설계하는 단계는:
    상기 기록들의 집합의 어레이를 구축하는 단계와; 어레이에 대한 분류(420, 440, 470, 490), 복사(430, 450), 갱신(470, 480), 비교(480) 및 기울기 기여(gradient contributions)의 계산(460)의 연산을 수행하는 단계를
    포함하는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  5. 제2항에 있어서,
    암호화된 기록들을 생성하기 위해 기록들의 집합을 암호화하는 단계(315)로서, 암호화 단계는 기록들의 집합을 수신하는 단계 이전에 수행되는, 기록들의 집합을 암호화하는 단계(315)를
    더 포함하는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  6. 제5항에 있어서,
    CSP에서의 공개 암호화 키들을 생성하는 단계와;
    상기 키들을 상기 각 사용자들에게 전송하는 단계(310)를
    더 포함하는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  7. 제5항에 있어서, 암호화는 부분적 준동형 암호화(homomorphic encryption)(310)이고, 상기 방법은:
    마스킹된 기록들을 생성하기 위해 RecSys에서, 암호화된 기록들을 마스킹하는 단계(320)와;
    암호 해독된-마스킹된 기록들을 생성하기 위해 CSP에서, 마스킹된 기록들을 암호 해독하는 단계(325)를
    포함하는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  8. 제7항에 있어서, 설계하는 단계(340)는:
    암호 해독된-마스킹된 기록들을 프로세싱하기 이전에, 왜곡된 회로 내부에서 암호 해독된-마스킹된 기록들을 마스킹 해제하는 단계를
    포함하는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  9. 제7항에 있어서,
    CSP와 RecSys 사이의 불확정 전달(oblivious transfers)(350)을 수행하는 단계(3502)를
    더 포함하며, RecSys는 암호 해독된-마스킹된 기록들의 왜곡된 값들을 수신하고, 기록들은 RecSys 및 CSP로부터 비공개로 유지되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  10. 제1항에 있어서, 공동으로 평가하는 단계는:
    사용자 프로파일을 획득하기 위해 제1 마스크를 갖는 마스킹된 사용자 프로파일을 마스킹 해제하는 단계(360)와;
    암호화된 사용자 프로파일을 생성하기 위해 사용자 프로파일을 암호화하는 단계(360)와;
    적어도 하나의 특정 항목에 대한 마스킹된 항목 프로파일 및 암호화된 사용자 프로파일의 제1 곱(product)을 RecSys에서 계산하는 단계(370)와;
    적어도 하나의 특정 항목에 대한 적어도 하나의 제2 마스크 및 암호화된 사용자 프로파일의 적어도 하나의 제2 곱을 CSP에서 계산하는 단계(375)와;
    적어도 하나의 특정 항목에 대한 적어도 하나의 암호화된 추천을 생성하기 위해 RecSys에서 제1 곱으로부터 적어도 하나의 제2 곱을 빼는 단계(380)와;
    적어도 하나의 특정 항목에 대한 적어도 하나의 암호화된 추천을 암호 해독하는 단계(385)를
    더 포함하는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  11. 제10항에 있어서, 제1 마스크는 요청하는 사용자에 의해 선택되고(315), 적어도 하나의 제2 마스크는 CSP에 의해 선택되는(340), 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  12. 제10항에 있어서, 암호화하는 단계 및 암호 해독하는 단계는 요청하는 사용자에 의해 선택된 추가적 준동형 암호화 체계를 이용하는(360), 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  13. 제1항에 있어서,
    각각의 기록의 토큰들 및 항목들의 개수를 수신하는 단계(220, 305)를
    더 포함하는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  14. 제1항에 있어서,
    최대 값을 나타내는 값과 동일한 토큰들의 개수를 갖는 기록들을 생성하기 위해, 각각의 기록의 토큰들의 개수가 상기 값보다 더 작을 때, 각각의 기록을 널 엔트리들(null entries)로 패딩(padding)하는 단계(3052)를
    더 포함하는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  15. 제1항에 있어서, 기록들의 집합의 소스는 데이터베이스일 수 있는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  16. 제2항에 있어서,
    상기 CSP에 의해 왜곡된 회로의 설계에 대한 파라미터들의 집합을 수신하는 단계로서, 파라미터들은 상기 RecSys에 의해 전송된(335), 파라미터들의 집합을 수신하는 단계를
    더 포함하는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 방법.
  17. 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템으로서,
    상기 시스템은 각각의 기록들의 집합을 제공할 사용자들의 집합, 안전한 행렬 인수분해 회로를 제공할 크립토-서비스-제공자(CSP), 및 기록들을 평가할 RecSys를 포함하여, 각각의 기록은 그것의 각 사용자와는 다른 파티들로부터 비공개로 유지되고, 각 사용자, 상기 CSP, 및 상기 RecSys 각각은
    적어도 하나의 입력/출력(604)을 수신하기 위한 프로세서(602)와;
    상기 프로세서와 신호로 커뮤니케이션하는 적어도 하나의 메모리(606, 608)를
    포함하고, RecSys 프로세서는:
    기록들의 집합을 수신하되, 각각의 기록은 토큰들의 집합 및 항목들의 집합을 포함하고, 각각의 기록은 상기 각 사용자와는 다른 파티들로부터 비밀로 유지되는, 기록들의 집합을 수신하고;
    적어도 하나의 특정 항목에 대한 하나의 요청하는 사용자로부터의 요청을 수신하고;
    행렬 인수분해에 기초하여 왜곡된 회로를 통해 상기 기록들의 집합을 평가하되, 왜곡된 회로의 출력은 상기 적어도 하나의 특정 항목에 대한 마스킹된 항목 프로파일들 및 상기 하나의 요청하는 사용자에 대한 마스킹된 사용자 프로파일을 포함하는, 상기 기록들의 집합을 평가하도록
    구성되고, 요청하는 사용자, RecSys 및 CSP 프로세서들은:
    상기 적어도 하나의 특정 항목에 관한 상기 요청하는 사용자에게로의 추천들을 생성하기 위해, 마스킹된 항목 프로파일들 및 마스킹된 사용자 프로파일을 공동으로 평가하되(360 내지 385), 각각의 추천 및 상기 요청하는 사용자에 대한 사용자 프로파일은 상기 요청하는 사용자와는 다른 파티들로부터 비밀로 유지되고, 상기 적어도 하나의 특정 항목에 대한 항목 프로파일들은 모든 파티들로부터 비밀로 유지되고, 사용자 프로파일 및 항목 프로파일은 각각의 마스킹된 사용자 프로파일 및 마스킹된 항목 프로파일의 마스킹 해제된 버전인, 마스킹된 항목 프로파일들 및 마스킹된 사용자 프로파일을 공동으로 평가하도록(360 내지 385)
    구성되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  18. 제17항에 있어서, CSP 프로세서는:
    상기 기록들의 집합의 행렬 인수분해를 수행하기 위해 왜곡된 회로를 설계하되, 왜곡된 회로의 출력은 상기 적어도 하나의 특정 항목에 대한 마스킹된 항목 프로파일들 및 상기 하나의 요청하는 사용자에 대한 마스킹된 사용자 프로파일을 포함하는, 왜곡된 회로를 설계하고;
    왜곡된 회로를 RecSys에 전달하도록
    구성되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  19. 제18항에 있어서, CSP 프로세서는:
    행렬 인수분해 연산을 불리언 회로로서 설계하도록
    구성됨으로써 왜곡된 회로를 설계하도록 구성되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  20. 제19항에 있어서, CSP 프로세서는:
    상기 기록들의 집합의 어레이를 구축하고;
    어레이에 대한 분류, 복사, 갱신, 비교 및 기울기 기여의 계산의 연산을 수행하도록
    구성됨으로써 행렬 인수분해 회로를 설계하도록 구성되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  21. 제18항에 있어서, 각 사용자 프로세서는:
    암호화된 기록을 제공하기 이전에, 암호화된 기록을 생성하기 위해 각각의 기록을 암호화하도록
    구성되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  22. 제21항에 있어서, CSP 프로세서는:
    CSP에서의 공개 암호화 키들을 생성하고;
    상기 키들을 상기 사용자들의 집합에 전송하도록
    더 구성되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  23. 제21항에 있어서, 암호화는 부분적 준동형 암호화이고, RecSys 프로세서는:
    마스킹된 기록들을 생성하기 위해 암호화된 기록들을 마스킹하도록
    더 구성되고; CSP 프로세서는:
    암호 해독된-마스킹된 기록들을 생성하기 위해 마스킹된 기록들을 암호 해독하도록
    더 구성되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  24. 제23항에 있어서, CSP 프로세서는:
    암호 해독된-마스킹된 기록들을 프로세싱하기 이전에, 왜곡된 회로 내부에서 암호 해독된-마스킹된 기록들을 마스킹 해제하도록
    더 구성됨으로써, 왜곡된 회로를 설계하도록
    구성되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  25. 제23항에 있어서, RecSys 프로세서 및 CSP 프로세서는 불확정 전달을 수행하도록 더 구성되고, 상기 RecSys는 암호 해독된-마스킹된 기록들의 왜곡된 값들을 수신하고, 기록들은 RecSys 및 CSP로부터 비공개로 유지되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  26. 제17항에 있어서, 요청하는 사용자 프로세서는:
    사용자 프로파일을 획득하기 위해 제1 마스크를 갖는 마스킹된 사용자 프로파일을 마스킹 해제하고;
    암호화된 사용자 프로파일을 생성하기 위해 사용자 프로파일을 암호화하고;
    적어도 하나의 특정 항목에 대한 적어도 하나의 암호화된 추천을 암호 해독하도록
    더 구성되고,
    RecSys 프로세서는:
    적어도 하나의 특정 항목에 대한 마스킹된 항목 프로파일 및 암호화된 사용자 프로파일의 제1 곱을 계산하고;
    적어도 하나의 특정 항목에 대한 적어도 하나의 암호화된 추천을 생성하기 위해 제1 곱으로부터 적어도 하나의 제2 곱을 빼도록
    더 구성되고,
    CSP 프로세서는:
    적어도 하나의 특정 항목에 대한 적어도 하나의 제2 마스크 및 암호화된 사용자 프로파일의 적어도 하나의 제2 곱을 CSP에서 계산하도록
    더 구성되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  27. 제26항에 있어서, 제1 마스크는 요청하는 사용자에 의해 선택되고, 적어도 하나의 제2 마스크는 CSP에 의해 선택되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  28. 제26항에 있어서, 요청하는 사용자 프로세서는:
    요청하는 사용자에 의해 선택된 추가적 준동형 암호화 체계를 이용하도록
    더 구성되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  29. 제17항에 있어서, RecSys 프로세서는:
    각각의 기록의 토큰들의 개수를 수신하되, 토큰들의 개수는 상기 소스에 의해 전송된, 각각의 기록의 토큰들의 개수를 수신하도록
    더 구성되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  30. 제17항에 있어서, 각각의 사용자 프로세서는:
    최대 값을 나타내는 값과 동일한 토큰들의 개수를 갖는 기록들을 생성하기 위해, 각각의 기록의 토큰들의 개수가 상기 값보다 더 작을 때, 각각의 기록을 널 엔트리들로 패딩하도록
    구성되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  31. 제17항에 있어서, 기록들의 집합의 소스는 데이터베이스일 수 있는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
  32. 제18항에 있어서, CSP 프로세서는:
    왜곡된 회로의 설계에 대한 파라미터들의 집합을 수신하되, 파라미터들은 상기 RecSys에 의해 전송된, 파라미터들의 집합을 수신하도록
    더 구성되는, 행렬 인수분해를 통해 추천들을 안전하게 생성하기 위한 시스템.
KR1020157023908A 2013-03-04 2014-05-01 행렬 인수분해에 기초한 등급 기여 사용자들에게로의 추천을 프라이버시-보호하기 위한 방법 및 시스템 KR20160030874A (ko)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US201361772404P 2013-03-04 2013-03-04
US61/772,404 2013-03-04
US201361864088P 2013-08-09 2013-08-09
US201361864094P 2013-08-09 2013-08-09
US201361864098P 2013-08-09 2013-08-09
US201361864085P 2013-08-09 2013-08-09
US61/864,088 2013-08-09
US61/864,098 2013-08-09
US61/864,085 2013-08-09
US61/864,094 2013-08-09
USPCT/US2013/076353 2013-12-19
PCT/US2013/076353 WO2014137449A2 (en) 2013-03-04 2013-12-19 A method and system for privacy preserving counting
PCT/US2014/036359 WO2014138753A2 (en) 2013-03-04 2014-05-01 A method and system for privacy-preserving recommendation to rating contributing users based on matrix factorization

Publications (1)

Publication Number Publication Date
KR20160030874A true KR20160030874A (ko) 2016-03-21

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 Before (2)

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 행렬 분해 및 리지 회귀에 기초한 프라이버시-보호 추천을 위한 방법 및 시스템

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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021092092A1 (en) * 2019-11-06 2021-05-14 Visa International Service Association Two-server privacy-preserving clustering
US20240338489A1 (en) * 2023-04-04 2024-10-10 Beihang University Anti-malicious method, device and medium for secure three-party computation

Families Citing this family (65)

* 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
US10755172B2 (en) 2016-06-22 2020-08-25 Massachusetts Institute Of Technology Secure training of multi-party deep neural network
GB201610883D0 (en) * 2016-06-22 2016-08-03 Microsoft Technology Licensing Llc Privacy-preserving machine learning
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
KR20180081261A (ko) * 2017-01-06 2018-07-16 경희대학교 산학협력단 왜곡된 데이터에 대한 프라이버시 보호 시스템 및 방법
US10873568B2 (en) 2017-01-20 2020-12-22 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption and an encrypted analytics matrix
US10771237B2 (en) 2017-01-20 2020-09-08 Enveil, Inc. Secure analytics using an encrypted analytics matrix
US11290252B2 (en) 2017-01-20 2022-03-29 Enveil, Inc. Compression and homomorphic encryption in secure query and analytics
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and 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
KR102667837B1 (ko) * 2017-08-30 2024-05-21 인퍼, 인코포레이티드 고정밀 프라이버시 보호 실가 함수 평가
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
US11818249B2 (en) * 2017-12-04 2023-11-14 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 东南大学 一种基于矩阵分解的隐私保护内容推荐方法
CN110366722A (zh) * 2018-10-17 2019-10-22 阿里巴巴集团控股有限公司 不利用可信初始化器的秘密共享
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)
JP2022523182A (ja) * 2019-02-22 2022-04-21 インファー,インク. モジュラー整数を使用したセキュアなマルチパーティ計算のための算術
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 南京信息职业技术学院 一种基于属性感知的隐私保护方法及系统
CN114207694B (zh) * 2019-08-14 2024-03-08 日本电信电话株式会社 秘密梯度下降法计算方法及系统、秘密深度学习方法及系统、秘密计算装置、记录介质
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
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 Общество С Ограниченной Ответственностью "Убик" Компьютерно-реализуемый способ обработки информации об объектах, с использованием методов совместных вычислений и методов анализа данных
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
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 平安科技(深圳)有限公司 目标数据的排序方法、装置、电子设备及存储介质
US20240171550A1 (en) * 2022-11-23 2024-05-23 International Business Machines Corporation Recommendation engine using fully homomorphic encryption
US12118098B1 (en) * 2023-12-08 2024-10-15 Pqsecure Technologies, Llc Computer processing system and method configured to effectuate lower-order masking in a higher-order masked design

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
WO2006087676A2 (en) * 2005-02-18 2006-08-24 Koninklijke Philips Electronics N.V. Method of multiplexing auxiliary data in an audio/video stream
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
CN102576438A (zh) * 2009-09-21 2012-07-11 瑞典爱立信有限公司 用于执行推荐的方法和设备
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021092092A1 (en) * 2019-11-06 2021-05-14 Visa International Service Association Two-server privacy-preserving clustering
US11663521B2 (en) 2019-11-06 2023-05-30 Visa International Service Association Two-server privacy-preserving clustering
US12033045B2 (en) 2019-11-06 2024-07-09 Visa International Service Association Two-server privacy-preserving clustering
US20240338489A1 (en) * 2023-04-04 2024-10-10 Beihang University Anti-malicious method, device and medium for secure three-party computation

Also Published As

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

Similar Documents

Publication Publication Date Title
KR20160030874A (ko) 행렬 인수분해에 기초한 등급 기여 사용자들에게로의 추천을 프라이버시-보호하기 위한 방법 및 시스템
JP2016517069A (ja) 行列因数分解に基づいたユーザに寄与する評点に対するプライバシー保護推薦のための方法およびシステム
Giacomelli et al. Privacy-preserving ridge regression with only linearly-homomorphic encryption
Nikolaenko et al. Privacy-preserving matrix factorization
JP6034927B1 (ja) 秘密計算システム、秘密計算装置、およびプログラム
Liu et al. Secure model fusion for distributed learning using partial homomorphic encryption
Kim et al. Efficient privacy-preserving matrix factorization via fully homomorphic encryption
JP2016510908A (ja) マスクを用いるプライバシー保護リッジ回帰
Lin et al. A generic federated recommendation framework via fake marks and secret sharing
JP7361928B2 (ja) 勾配ブースティングを介したプライバシーを守る機械学習
Ukwuoma et al. Post-quantum cryptography-driven security framework for cloud computing
Lin et al. Novel design of cryptosystems for video/audio streaming via dynamic synchronized chaos-based random keys
Bandaru et al. Block chain enabled auditing with optimal multi‐key homomorphic encryption technique for public cloud computing environment
Wang et al. Achieving private and fair truth discovery in crowdsourcing systems
Dai et al. Privacy‐Preserving Sorting Algorithms Based on Logistic Map for Clouds
Hong et al. FedHD: A Privacy-Preserving Recommendation System with Homomorphic Encryption and Differential Privacy
Jung Ensuring Security and Privacy in Big Data Sharing, Trading, and Computing
CN108475483B (zh) 隐匿决定树计算系统、装置、方法以及记录介质
Bao Privacy-Preserving Cloud-Assisted Data Analytics
Zou Social computing for personalization and credible information mining using probabilistic graphical models

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