KR20220004201A - 개인 정보 검색에 대한 애플리케이션들을 갖는 동형 암호화 - Google Patents

개인 정보 검색에 대한 애플리케이션들을 갖는 동형 암호화 Download PDF

Info

Publication number
KR20220004201A
KR20220004201A KR1020217039840A KR20217039840A KR20220004201A KR 20220004201 A KR20220004201 A KR 20220004201A KR 1020217039840 A KR1020217039840 A KR 1020217039840A KR 20217039840 A KR20217039840 A KR 20217039840A KR 20220004201 A KR20220004201 A KR 20220004201A
Authority
KR
South Korea
Prior art keywords
matrix
ciphertexts
computer system
compressed
plaintext
Prior art date
Application number
KR1020217039840A
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 KR20220004201A publication Critical patent/KR20220004201A/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/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
    • 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Mathematical Optimization (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Non-Silver Salt Photosensitive Materials And Non-Silver Salt Photography (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

개인 정보 검색에 대한 애플리케이션들을 갖는 동형 암호화(HOMOMORPHIC ENCRYPTION WITH APPLICATIONS TO PRIVATE INFORMATION RETRIEVAL)
제 1 컴퓨터 시스템 상의 데이터베이스 내의 데이터를 사용하여 결정될 수 있는 특정 정보에 대하여 하나의 요청이 수신된다. 상기 데이터의 적어도 일부가 암호화되거나 또는 상기 요청이 암호화된다. 상기 암호화된 데이터 또는 요청을 암호 해독하기 위한 암호 해독 키를 상기 제1 컴퓨터 시스템은 갖지 않는다. 상기 제1 컴퓨터 시스템은 상기 특정 정보에 대응하는 압축된 암호문(들)을 결정하기 위해 상기 데이터에 관해 압축 가능한 HE 연산들을 수행한다. 상기 연산들은 제1의 비압축 HE 스킴(scheme) 및 제2의 압축된 HE 스킴을 사용하는 단계를 포함한다. 상기 제1 HE 스킴은 다른 다수의 암호문들을 생성하기 위해 상기 데이터에 관해 사용되고 상기 제2 HE 스킴은 압축되는 더 적은 수의 암호문들로 상기 다른 다수의 암호문들을 팩(pack)하기 위해 상기 다른 다수의 암호문들에 관해 사용된다. 상기 HE 스킴들은 모두 동일 비밀 키를 사용한다. 상기 제1 컴퓨터 시스템은 상기 특정 정보에 대응하는 압축된 암호문(들)을 포함하는 응답을 전송한다.

Description

개인 정보 검색에 대한 애플리케이션들을 갖는 동형 암호화
[0001] 본 발명은 일반적으로 동형 암호화(homomorphic encryption: HE)와 관련이 있고, 보다 구체적으로는 개인 정보 검색(private information retrieval: PIR)에 대한 애플리케이션들을 갖는 압축 가능한 동형 암호화 및 완전 동형 암호화(fully homomorphic encryption: FHE)와 관련이 있다.
[0002] 동형 암호화는 암호문들(ciphertexts)(암호화된 평문)에 대한 연산을 가능하게 하는 암호화의 한 형태로서, 암호 해독되었을 때, 이들 연산들이 평문에서 수행된 연산들의 결과와 일치하는 암호화된 결과를 생성한다. 이들 연산들은 통상적으로 회로에 의해 정의된다고 한다. 다른 유형들의 HE가 존재하지만, 완전 동형 암호화만 무한 깊이(unbounded depth)의 임의 회로들의 평가가 가능하다.
[0003] FHE(및 일부 다른 유형들의 HE)는 서비스 공급자가 사용자로부터의 질의(query)에 대해 암호화된 데이터에 관한 연산들을 수행하고 암호화된 결과들을 결정할 수 있게 하는데, 상기 결과들을 암호 해독함이 없이 또는 상기 결과들을 도출하기 위해 사용되는 모든 저장된 정보를 암호 해독함이 없이 결정할 수 있게 한다. 이것은 광범위한 애플리케이션들을 갖는데, 특히 보건의료(healthcare)와 같이 익명성이 중요한 분야들에서 그러하다.
[0004] 그러므로, FHE의 한 애플리케이션은 개인 정보 검색(private information retrieval: PIR)이다. PIR은 사용자가 검색되는 엔트리를 밝히지 않고 데이터베이스(예: 보건의료 정보 포함)를 보유한 서버로부터 사용자의 개인 정보 엔트리를 검색할 수 있게 해 준다. PIR을 달성하는 한 가지(예: 간단한) 방법은 서버가 데이터베이스의 전체 복사본을 사용자에게 보내는 것이다. 현대의 통신 시스템을 사용한다 하더라도, 이것은 상당히 큰 규모의 데이터베이스에 대해서 방대한 양의 데이터를 요구한다.
[0005] FHE는 PIR에 도움이 되는데, 이는 사용자의 질의가 암호화되어 있고, 서비스 제공자는 결과나 검색되는 엔트리에 대해 알 수 없기(not ne privy) 때문이다. 그러나 현재의 FHE 기법들은 계산 비용이 많이 들고 상당히 큰 규모의 데이터베이스들에는 비현실적이다.
[0006] 일 예시적인 실시 예에서, 방법이 개시되고, 상기 방법은 제 1 컴퓨터 시스템 상의 데이터베이스 내의 데이터를 사용하여 결정될 수 있는 특정 정보에 대한 요청을, 제 1 컴퓨터 시스템에서 그리고 제 2 컴퓨터 시스템으로부터, 수신하는 단계를 포함하고, 상기 데이터의 적어도 일부가 암호화되거나 또는 상기 요청이 암호화되며, 상기 암호화된 데이터 또는 상기 암호화된 요청을 암호 해독하기 위한 암호 해독 키를 상기 제1 컴퓨터 시스템은 갖지 않는다. 상기 방법은
상기 데이터베이스 내의 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 결정하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 연산들을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계를 포함하고, 상기 압축 가능한 동형 암호화 연산들은 제1의 비압축 동형 암호화 스킴(scheme) 및 제2의 압축된 동형 암호화 스킴을 사용하고,
[0007] 상기 압축 가능한 동형 암호화 연산들을 수행하는 단계는 다른 다수의 암호문들을 생성하기 위해 상기 데이터에 관해 상기 제1 동형 암호화 스킴을 사용하는 단계 및 상기 다른 다수의 암호문들을 압축되는 더 적은 수의 암호문들로 팩(pack)하기 위해 상기 다른 다수의 암호문들에 관해 상기 제2의 압축된 동형 암호화 스킴을 사용하는 단계를 포함하며, 상기 제1의 압축된 동형 암호화 스킴 및 상기 제2의 압축된 동형 암호화 스킴은 모두 동일 비밀 키를 사용한다. 상기 방법은 상기 요청에 대한 응답을, 상기 제1 컴퓨터 시스템에 의해서 그리고 상기 제2 컴퓨터 시스템으로, 전송하는 단계를 더 포함하고, 상기 응답은 요청된 상기 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 포함한다.
[0008] 일 예시적인 장치는 하나 또는 그 이상의 프로세서들 및 컴퓨터 프로그램 코드를 포함하는 하나 또는 그 이상의 메모리들을 포함한다. 상기 하나 또는 그 이상의 메모리들 및 상기 컴퓨터 프로그램 코드는 상기 장치가, 상기 하나 또는 그 이상의 프로세서들을 사용하여, 연산들을 수행하도록 구성되고, 상기 연산들은: 제 1 컴퓨터 시스템 상의 데이터베이스 내의 데이터를 사용하여 결정될 수 있는 특정 정보에 대한 요청을, 제 1 컴퓨터 시스템에서 그리고 제 2 컴퓨터 시스템으로부터, 수신하는 단계-상기 데이터의 적어도 일부가 암호화되거나 또는 상기 요청이 암호화되며, 상기 암호화된 데이터 또는 상기 암호화된 요청을 암호 해독하기 위한 암호 해독 키를 상기 제1 컴퓨터 시스템은 갖지 않음-; 상기 데이터베이스 내의 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 결정하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 연산들을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계-상기 압축 가능한 동형 암호화 연산들은 제1의 비압축 동형 암호화 스킴(scheme) 및 제2의 압축된 동형 암호화 스킴을 사용하고, 상기 압축 가능한 동형 암호화 연산들을 수행하는 단계는 다른 다수의 암호문들을 생성하기 위해 상기 데이터에 관해 상기 제1 동형 암호화 스킴을 사용하는 단계 및 상기 다른 다수의 암호문들을 압축되는 더 적은 수의 암호문들로 팩(pack)하기 위해 상기 다른 다수의 암호문들에 관해 상기 제2의 압축된 동형 암호화 스킴을 사용하는 단계를 포함하며, 상기 제1의 압축된 동형 암호화 스킴 및 상기 제2의 압축된 동형 암호화 스킴은 모두 동일 비밀 키를 사용함-; 그리고 상기 요청에 대한 응답을, 상기 제1 컴퓨터 시스템에 의해서 그리고 상기 제2 컴퓨터 시스템으로, 전송하는 단계를 포함하고, 상기 응답은 요청된 상기 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 포함한다.
[0009] 다른 예시적인 실시 예는 컴퓨터 프로그램 제품이며, 상기 컴퓨터 프로그램 제품은 컴퓨터 판독가능 스토리지 매체를 포함하고, 상기 컴퓨터 판독가능 스토리지 매체는 구현된 프로그램 명령을 가지며, 상기 프로그램 명령들은 디바이스에 의해 실행 가능하고, 상기 디바이스가 연산들을 수행하도록 하며, 상기 연산들은: 제 1 컴퓨터 시스템 상의 데이터베이스 내의 데이터를 사용하여 결정될 수 있는 특정 정보에 대한 요청을, 제 1 컴퓨터 시스템에서 그리고 제 2 컴퓨터 시스템으로부터, 수신하는 단계-상기 데이터의 적어도 일부가 암호화되거나 또는 상기 요청이 암호화되며, 상기 암호화된 데이터 또는 상기 암호화된 요청을 암호 해독하기 위한 암호 해독 키를 상기 제1 컴퓨터 시스템은 갖지 않음-; 상기 데이터베이스 내의 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 결정하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 연산들을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계-상기 압축 가능한 동형 암호화 연산들은 제1의 비압축 동형 암호화 스킴(scheme) 및 제2의 압축된 동형 암호화 스킴을 사용하고, 상기 압축 가능한 동형 암호화 연산들을 수행하는 단계는 다른 다수의 암호문들을 생성하기 위해 상기 데이터에 관해 상기 제1 동형 암호화 스킴을 사용하는 단계 및 상기 다른 다수의 암호문들을 압축되는 더 적은 수의 암호문들로 팩(pack)하기 위해 상기 다른 다수의 암호문들에 관해 상기 제2의 압축된 동형 암호화 스킴을 사용하는 단계를 포함하며, 상기 제1의 압축된 동형 암호화 스킴 및 상기 제2의 압축된 동형 암호화 스킴은 모두 동일 비밀 키를 사용함-; 그리고 상기 요청에 대한 응답을, 상기 제1 컴퓨터 시스템에 의해서 그리고 상기 제2 컴퓨터 시스템으로, 전송하는 단계를 포함하고, 상기 응답은 요청된 상기 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 포함한다.
[0010] 또 다른 예시적인 실시 예에서, 방법은 암호화된 데이터를 생성하기 위해 평문을, 제1 컴퓨터 시스템으로 전송하고 제2 컴퓨터 시스템에서 수행하기 위해, 암호화하는 단계 및, 상기 암호화된 데이터를 암호 해독하기 위한 암호 해독 키를 상기 제1 컴퓨터 시스템이 갖지 않고, 상기 제2 컴퓨터 시스템으로부터 상기 제1 컴퓨터 시스템으로 상기 암호화된 데이터를 전송하는 단계를 포함한다. 상기 방법은 또한 상기 암호화된 데이터를 사용하여 결정될 수 있는 특정 정보에 대한 요청을 상기 제2 컴퓨터 시스템에 의해서 전송하는 단계를 포함한다. 상기 방법은, 상기 요청에 대한 응답을, 상기 제2 컴퓨터 시스템에서 그리고 상기 제1 컴퓨터 시스템으로부터, 수신하는 단계를 포함하고, 상기 응답은 요청된 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 포함한다. 상기 방법은 상기 하나 또는 그 이상의 압축된 암호문들을 대응하는 평문으로 상기 제2 컴퓨터 시스템에 의해서 암호 해독하는 단계를 더 포함한다.
[0011] 일 예시적인 장치는 하나 또는 그 이상의 프로세서들 및 컴퓨터 프로그램 코드를 포함하는 하나 또는 그 이상의 메모리들을 포함한다. 상기 하나 또는 그 이상의 메모리들 및 상기 컴퓨터 프로그램 코드는 상기 장치가, 상기 하나 또는 그 이상의 프로세서들을 사용하여, 연산들을 수행하도록 구성되고, 상기 연산들은: 암호화된 데이터를 생성하기 위해 평문을, 제1 컴퓨터 시스템으로 전송하고 제2 컴퓨터 시스템에서 수행하기 위해, 암호화하는 단계 및, 상기 암호화된 데이터를 암호 해독하기 위한 암호 해독 키를 상기 제1 컴퓨터 시스템이 갖지 않고, 상기 제2 컴퓨터 시스템으로부터 상기 제1 컴퓨터 시스템으로 상기 암호화된 데이터를 전송하는 단계를 포함한다. 상기 방법은 또한 상기 암호화된 데이터를 사용하여 결정될 수 있는 특정 정보에 대한 요청을 상기 제2 컴퓨터 시스템에 의해서 전송하는 단계를 포함한다. 상기 방법은, 상기 요청에 대한 응답을, 상기 제2 컴퓨터 시스템에서 그리고 상기 제1 컴퓨터 시스템으로부터, 수신하는 단계를 포함하고, 상기 응답은 요청된 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 포함한다. 상기 방법은 상기 하나 또는 그 이상의 압축된 암호문들을 대응하는 평문으로 상기 제2 컴퓨터 시스템에 의해서 암호 해독하는 단계를 더 포함한다.
[0012] 추가적인 예시적인 실시 예에서, 컴퓨터 프로그램 제품은 컴퓨터 판독가능 스토리지 매체를 포함하고, 상기 컴퓨터 판독가능 스토리지 매체는 구현된 프로그램 명령을 가지며, 상기 프로그램 명령들은 디바이스에 의해 실행 가능하고, 상기 디바이스가 연산들을 수행하도록 하며, 상기 연산들은: 암호화된 데이터를 생성하기 위해 평문을, 제1 컴퓨터 시스템으로 전송하고 제2 컴퓨터 시스템에서 수행하기 위해, 암호화하는 단계 및, 상기 암호화된 데이터를 암호 해독하기 위한 암호 해독 키를 상기 제1 컴퓨터 시스템이 갖지 않고, 상기 제2 컴퓨터 시스템으로부터 상기 제1 컴퓨터 시스템으로 상기 암호화된 데이터를 전송하는 단계를 포함한다. 상기 방법은 또한 상기 암호화된 데이터를 사용하여 결정될 수 있는 특정 정보에 대한 요청을 상기 제2 컴퓨터 시스템에 의해서 전송하는 단계를 포함한다. 상기 방법은, 상기 요청에 대한 응답을, 상기 제2 컴퓨터 시스템에서 그리고 상기 제1 컴퓨터 시스템으로부터, 수신하는 단계를 포함하고, 상기 응답은 요청된 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 포함한다. 상기 방법은 상기 하나 또는 그 이상의 압축된 암호문들을 대응하는 평문으로 상기 제2 컴퓨터 시스템에 의해서 암호 해독하는 단계를 더 포함한다.
[0013] 일 추가적인 예시적 실시 예는 방법이며, 상기 방법은, 제 1 컴퓨터 시스템 상의 데이터베이스로부터 선택된 엔트리에 대한 요청을, 제 1 컴퓨터 시스템에서 그리고 제 2 컴퓨터 시스템으로부터, 수신하는 단계를 포함한다. 상기 방법은 상기 데이터베이스 내의 선택된 엔트리에 대응하는 암호화된 대답을 계산하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계를 포함하고, 상기 압축 가능한 동형 암호화 스킴은 대응하는 평문 대답(cleartext answer)보다 훨씬 더 길지 않는 상기 암호화된 대답을 생성하며, 상기 암호화된 대답을 계산하는 단계는 상기 데이터베이스 내의 각 바이트에 대해 몇 사이클들이 걸린다(take). 상기 방법은 또한, 상기 요청에 대한 응답을, 상기 제1 컴퓨터 시스템에 의해서 그리고 상기 제2 컴퓨터 시스템으로, 전송하는 단계(sending)를 포함하고, 상기 응답은 요청된 상기 선택된 엔트리에 대응하는 상기 암호화된 대답을 포함한다.
[0014] 일 예시적인 장치는 하나 또는 그 이상의 프로세서들 및 컴퓨터 프로그램 코드를 포함하는 하나 또는 그 이상의 메모리들을 포함한다. 상기 하나 또는 그 이상의 메모리들 및 상기 컴퓨터 프로그램 코드는 상기 장치가, 상기 하나 또는 그 이상의 프로세서들을 사용하여, 연산들을 수행하도록 구성되고, 상기 연산들은: 제 1 컴퓨터 시스템 상의 데이터베이스로부터 선택된 엔트리에 대한 요청을, 제 1 컴퓨터 시스템에서 그리고 제 2 컴퓨터 시스템으로부터, 수신하는 단계; 상기 데이터베이스 내의 선택된 엔트리에 대응하는 암호화된 대답을 계산하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계-상기 압축 가능한 동형 암호화 스킴은 대응하는 평문 대답(cleartext answer)보다 훨씬 더 길지 않는 상기 암호화된 대답을 생성하고, 상기 암호화된 대답을 계산하는 단계는 상기 데이터베이스 내의 각 바이트에 대해 몇 사이클들이 걸림-; 그리고 상기 요청에 대한 응답을, 상기 제1 컴퓨터 시스템에 의해서 그리고 상기 제2 컴퓨터 시스템으로, 전송하는 단계(sending)를 포함하고, 상기 응답은 요청된 상기 선택된 엔트리에 대응하는 상기 암호화된 대답을 포함한다.
[0015] 일 추가적인 예시적 실시 예는 컴퓨터 프로그램 제품이며, 상기 컴퓨터 프로그램 제품은 컴퓨터 판독가능 스토리지 매체를 포함하고, 상기 컴퓨터 판독가능 스토리지 매체는 구현된 프로그램 명령을 가지며, 상기 프로그램 명령들은 디바이스에 의해 실행 가능하고, 상기 디바이스가 연산들을 수행하도록 하며, 상기 연산들은: 제 1 컴퓨터 시스템 상의 데이터베이스로부터 선택된 엔트리에 대한 요청을, 제 1 컴퓨터 시스템에서 그리고 제 2 컴퓨터 시스템으로부터, 수신하는 단계; 상기 데이터베이스 내의 선택된 엔트리에 대응하는 암호화된 대답을 계산하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계-상기 압축 가능한 동형 암호화 스킴은 대응하는 평문 대답(cleartext answer)보다 훨씬 더 길지 않는 상기 암호화된 대답을 생성하고, 상기 암호화된 대답을 계산하는 단계는 상기 데이터베이스 내의 각 바이트에 대해 몇 사이클들이 걸림-; 그리고 상기 요청에 대한 응답을, 상기 제1 컴퓨터 시스템에 의해서 그리고 상기 제2 컴퓨터 시스템으로, 전송하는 단계(sending)를 포함하고, 상기 응답은 요청된 상기 선택된 엔트리에 대응하는 상기 암호화된 대답을 포함한다
[0016] 일 예시적인 실시 예에서, 방법이 개시되며, 상기 방법은 제1 컴퓨터 시스템에 의해 저장된 데이터베이스로 엔트리의, 상기 제1 컴퓨터 시스템으로 그리고 제2 컴퓨터 시스템에 의해서, 전송될 인덱스 i를 암호화하는 단계를 포함하고, 상기 인덱스 i는 ND 베이스들(bases)의 혼합 기수(a mixed radix)로 표현되고 상기 데이터베이스는 또한 ND 베이스들을 갖는다. 상기 방법은 상기 암호화된 인덱스를 사용하여 상기 제1 컴퓨터 시스템으로부터 아이템의 검색을 상기 제2 컴퓨터 시스템에 의해 요청하는 단계를 포함한다. 상기 방법은 상기 요청에 대한 응답을, 상기 제2 컴퓨터 시스템에 의해서 그리고 상기 제1 컴퓨터 시스템으로부터, 수신하는 단계를 포함하고, 상기 응답은 상기 암호화된 인덱스를 사용하여 요청된 상기 데이터베이스의 엔트리에 대응하는, 하나 또는 그 이상의 압축된 암호문들을 포함하는, 암호화된 대답을 포함한다. 상기 방법은 또한 상기 하나 또는 그 이상의 압축된 암호문들을 대응하는 평문으로 상기 제2 컴퓨터 시스템에 의해 암호 해독하는 단계를 포함한다.
[0017] 일 예시적인 장치는 하나 또는 그 이상의 프로세서들 및 컴퓨터 프로그램 코드를 포함하는 하나 또는 그 이상의 메모리들을 포함한다. 상기 하나 또는 그 이상의 메모리들 및 상기 컴퓨터 프로그램 코드는 상기 장치가, 상기 하나 또는 그 이상의 프로세서들을 사용하여, 연산들을 수행하도록 구성되고, 상기 연산들은: 제1 컴퓨터 시스템에 의해 저장된 데이터베이스로 엔트리의, 상기 제1 컴퓨터 시스템으로 그리고 제2 컴퓨터 시스템에 의해서, 전송될 인덱스 i를 암호화하는 단계- 상기 인덱스 i는 ND 베이스들(bases)의 혼합 기수(a mixed radix)로 표현되고 상기 데이터베이스는 또한 ND 베이스들을 가짐-; 상기 암호화된 인덱스를 사용하여 상기 제1 컴퓨터 시스템으로부터 아이템의 검색을 상기 제2 컴퓨터 시스템에 의해 요청하는 단계; 상기 요청에 대한 응답을, 상기 제2 컴퓨터 시스템에 의해서 그리고 상기 제1 컴퓨터 시스템으로부터, 수신하는 단계-상기 응답은 상기 암호화된 인덱스를 사용하여 요청된 상기 데이터베이스의 엔트리에 대응하는, 하나 또는 그 이상의 압축된 암호문들을 포함하는, 암호화된 대답을 포함함-; 그리고 상기 하나 또는 그 이상의 압축된 암호문들을 대응하는 평문으로 상기 제2 컴퓨터 시스템에 의해 암호 해독하는 단계를 포함한다.
[0018] 일 추가적인 예시적 실시 예는 컴퓨터 프로그램 제품이며, 상기 컴퓨터 프로그램 제품은 컴퓨터 판독가능 스토리지 매체를 포함하고, 상기 컴퓨터 판독가능 스토리지 매체는 구현된 프로그램 명령을 가지며, 상기 프로그램 명령들은 디바이스에 의해 실행 가능하고, 상기 디바이스가 연산들을 수행하도록 하며, 상기 연산들은: 제1 컴퓨터 시스템에 의해 저장된 데이터베이스로 엔트리의, 상기 제1 컴퓨터 시스템으로 그리고 제2 컴퓨터 시스템에 의해서, 전송될 인덱스 i를 암호화하는 단계- 상기 인덱스 i는 ND 베이스들(bases)의 혼합 기수(a mixed radix)로 표현되고 상기 데이터베이스는 또한 ND 베이스들을 가짐-; 상기 암호화된 인덱스를 사용하여 상기 제1 컴퓨터 시스템으로부터 아이템의 검색을 상기 제2 컴퓨터 시스템에 의해 요청하는 단계; 상기 요청에 대한 응답을, 상기 제2 컴퓨터 시스템에 의해서 그리고 상기 제1 컴퓨터 시스템으로부터, 수신하는 단계-상기 응답은 상기 암호화된 인덱스를 사용하여 요청된 상기 데이터베이스의 엔트리에 대응하는, 하나 또는 그 이상의 압축된 암호문들을 포함하는, 암호화된 대답을 포함함-; 그리고 상기 하나 또는 그 이상의 압축된 암호문들을 대응하는 평문으로 상기 제2 컴퓨터 시스템에 의해 암호 해독하는 단계를 포함한다.
[0019] 도 1은 예시적 일 실시 예의 압축가능(F) HE를 사용하는 사용자와 서버 사이의 암호화된 통신을 위한 예시적 방법의 플로차트이다;
[0020] 도 2는 도 1로부터 다수의 디바이스들에서 사용될 수 있는 컴퓨터 시스템의 블록 다이어그램이다;
[0021] 도 3은 일 예시적 구축에서 매트릭스들의 예시이다; 그리고
[0022] 도 4(a, b)는 IR에 대한 애플리케이션을 갖는 압축가능(F) HE를 사용하는 예시적 방법의 플로차트이다. (도 4b는 도 4a의 계속이다.)
[0023] 본 발명의 명세서 및/또는 도면들에서 발견될 수 있는 약어들의 정의는 다음과 같다:
[0024] AES 고급 암호화 표준
[0025] AES-CTR AES 카운터 모드
[0026] CRT 중국의 나머지 정리
[0027] ctxt 암호문
[0028] FFT 고속 푸리에 변환
[0029] HE 동형 암호화
[0030] FHE 완전 동형 암호화
[0031] (F)HE HE 또는 FHE
[0032] GSW (크레이그)젠트리, (아밋) 사하이 및 (브렌트) 워터스
[0033] LWE 오류 있는 학습
[0034] MPC 다-자 연산(multi-party computation)
[0035] PKE 공개-키 암호화
[0036] PIR 개인 정보 검색
[0037] RLWE 링 LWE
[0038] (R)LWE LWE 또는 RWLE
[0039] "예시적인(exemplary)"라는 단어는 "예, 인스턴스 또는 예시로 제공"을 의미하기 위해 사용된다. 여기서 "예시적인"으로 기술되는 모든 실시 예는 반드시 다른 실시 예들에 비해 선호되거나 유리한 것으로 해석될 필요는 없다. 본 상세 설명에 기술된 모든 실시 예들은 당업자들이 발명을 만들거나 사용할 수 있도록 제공된 예시적인 실시 예들이고, 청구항들에 의해 정의된 발명의 범위를 제한하기 위한 것이 아니다.
[0040] 동형 암호화(Homomorphic encryption: HE)는 종종 통신과 계산 모두에서 비현실적인 것으로 간주된다. 여기서는 거의 최적의 속도(모든
Figure pct00001
에 대해
Figure pct00002
)를 갖는 LWE(예: 링)에 기초한 부가적으로 동형인 암호화 스킴(an additively homomorphic encryption scheme)이 제공된다. 또한, 많은 젠트리-사하이-워터스(Gentry-Sahai-Waters: GSW) 암호문들(예: 동형 평가로부터 왔을 수 있는 암호문들)을 (더 적은) 고속 암호문들(high-rate ciphertexts)로 압축하는 방법에 대해 설명한다.
[0041] 예시적인 고속 HE 체계를 사용하여, 속도(4/9) 단일-서버 개인 정보 검색(PIR) 스킴(a rate-(4/9) single-server private information retrieval (PIR) scheme)이 매우 낮은 계산 오버헤드를 갖는 예시적인 실시 예들에 구축된다. 단일-서버 PIR은 기본적으로 서버가 데이터베이스 비트당 적어도 하나의 연산을 수행해야 한다. 일 예시적인 PIR 스킴의 계산은 이 기본적인 하한(inherent lower bound)보다 훨씬 더 나쁘지는 않고, 아마도 전체-데이터베이스 AES 암호화 - 즉, 데이터베이스 바이트당 약 1.5 mod-q 곱하기(about 1.5 mod-
Figure pct00003
multiplication per database byte)보다 적을 것이며, 여기서 q는 길이가 약 50-60 bit들인 수(a number of length about 50 to 60 bits)이다. 점근적으로(Asymptotically), 이 예시적 PIR 스킴의 계산 오버헤드는
Figure pct00004
이며, 여기서
Figure pct00005
는 보안 파라미터이고
Figure pct00006
은, 충분히 크다고 가정되는, 데이터베이스 파일들의 수이다.
[0042] (전체)동형암호화((F)HE)는 어떻게 대역폭(bandwidth)이 효율적이 될 수 있는가? 대역폭에서 손실이 거의 없이 메시지를 암호화하는 것은 쉽지만, 동형 암호화의 경우 일반적으로 그것은 사실이 아닌다. 현대의 HE 스킴들에서 평가된(Evaluated) 암호문들은 그들이 암호화하는 평문보다, 적어도 상당한 상수 팩터 및 종종 그 이상으로, 훨씬 더 큰 경향이 있다.
[0043] FHE의 대역폭 한계들에 대한 근본적인 이론적 관심을 넘어, 높은 속도를 가진 동형 스킴은 여러 애플리케이션들을 갖고 있다. 아마도 가장 분명한 것은, 대역폭이 필수적인, 개인 정보 검색(PIR)일 것이다. HE는 PIR을 구현하는 데 분명히 사용될 수 있지만, [1, 5]와 같은 지금까지의 최고의 PIR 구현조차 여전히 대규모 데이터베이스들을 지원할 수는 없으며, 이는 주로 현대의 HE 스킴들의 대규모 확장 엘리멘트(the large expansion factor) 때문이다. 다른 애플리케이션은 바드리나라야난(Badrinarayanan) 등[9]의 연구에서 찾아볼 수 있으며, 이 연구는
Figure pct00007
보다 나은 속도를 가진 압축 가능한 (부가적인) 동형 암호화가, 보안 계산의 맥락에서 다양한 목적으로 사용될 수 있는, 고속 암호화 전송(a high-rate oblivious transfer)에 사용될 수 있음을 보여주었다. 이 연구 이전에 고속 동형 암호화의 유일한 인스턴스화는 담가드-주릭(Damgord-Jurik) 암호 시스템[31]이었고, 이는, 그러나 (a) 동형암호는 단지 부가적이었을 뿐이고, (b) 비용적으로 비쌌으며, (c) 양자 컴퓨터에 대해서 보안성이 없었다.
[0044] 본 발명에서는, 이 문제가 해결되며, 이를 위해 최초의 압축 가능한 완전 동형 암호화 체계가 고안되었고, 효율적인 PIR을 얻기 위해 본 발명의 스킴이 사용될 수 있음을 보여주었다. 즉, 예시적인 실시 예에서, (F)HE 스킴이 설명되는데, 상기 스킴에 의해서 평가된 암호문들은, 그들이 암호화하고 여전히 암호 해독할 수 있는 평문과 거의 같은 크기가 될 때까지, 공개적으로 압축될 수 있음이 설명된다. 예시적인 압축 가능 스킴은 동형 평가들의 최종 결과를 얻을 수 있고(특히 GSW 암호 시스템 하에서[43]), 상기 결과를 매트릭스-암호화 매트릭스-암호문들(matrix-encrypting matrix-ciphertexts)에 주입(cram)할 수 있으며, 전체 암호문 크기에 대한 전체 평문 크기의 비율(the ratio of the aggregate plaintext size)은 모든
Figure pct00008
에 대해
Figure pct00009
가 될 수 있다(전체 평문이 충분히 크고,
Figure pct00010
에 비례한다고 가정한다). 상기 압축된 암호문들은 더 이상 GSW 암호문들이 아니다. 그러나, 그들은 여전히 압축된 채로 있는 동안, 부가적 동형(additive homomorphism)과 작은 스칼라들의 암호화에 의한 왼쪽에서의 곱하기를 허용하기에 충분한 구조를 가지고 있다. (이들 연산들은 암호문들의 "노이즈(noisiness)"를 다소 증가시킨다는 점에 유의한다.) GSW와 마찬가지로, 예시적인 계획의 보안은 오류 있는 학습 가정(the learning with errors assumption) [71] 또는 그 것의 링 변형(or its ring variant) [62](예: 완전 동형 암호화의 경우 순환 보안 가정)에 기초한다.
[0045] 압축 가능 완전 동형 암호화는 쉽게 엔드-투-엔드 속도-효율적인 FHE(an end-to-end rate-efficient FHE)를 산출한다는 점을 주목해야 한다: 새로 암호화된 암호문들은 암호화 중에 즉시 압축된 다음, 처리 전에 부트스트래핑을 사용하여 "압축 해제되고", 그리고 암호 해독 전에 최종적으로 다시 압축된다. 본 발명의 스킴은 언제든지 압축된 암호문들을 가지며, 그 암호문들은 처리되는 동안 일시적으로만 확장된다. 또한, 예를 들어, AES-CTR을 사용하여 새로운 암호문들을 생성하고, FHE 하에서 AES 키가 암호화되어 전송되는 하이브리드 암호화도 사용할 수 있다는 점을 주목해야 한다.
[0046] PIR에 대한 애플리케이션들과 관련하여, 상기 기본 스킴에 대한 많은 예시적인 최적화가 아래에 기술되고, 이는 낮은 통신 오버헤드를 갖는 단일-서버 개인 정보 검색 스킴을 제공함과 동시에 계산 효율적(computationally efficient)이다. 점근적으로, 상기 계산 오버헤드는
Figure pct00011
이며, 여기서
Figure pct00012
는 보안 파라미터이고
Figure pct00013
는 데이터베이스 파일들의 수이며 충분히 크다고 가정된다.
[0047] 이 예시적인 PIR 스킴이 이론적으로 효율적일 뿐만 아니라 실질적으로 빠를 것으로 추정되는 이유를 상세히 설명하면 다음과 같다. 구체적으로, 속도
Figure pct00014
단일-서버 PIR 스킴(a rate
Figure pct00015
single-server PIR scheme)을 얻을 수 있는데, 상기 스킴에서 서버의 상각 작업(the server's amortized work)은 데이터베이스의 모든 바이트에 대해 1.5 단일 정밀-모듈식 곱하기에 불과하다(only 1.5 single-precision modular multiplication). 비교를 위해, 전체 데이터베이스를 전송하는 종래의 PIR 솔루션을 예를 들어 보면, 이 솔루션은 적어도 전체 데이터베이스를 암호화해야 하므로 (통신 보안을 위해), 16 데이터베이스 바이트당 AES 블록 암호화 비용이 발생하는데, 이것은 확실히 여기의 예시적 스킴보다 더 많은 작업이다. 따라서, 콘트라 시온-카르부나르[77], PIR이 통신 측면뿐만 아니라 계산 측면에서도 상기 종래 솔루션보다 최종적으로는 더 효율적이다.
[0048] (R)LWE-기반 동형 암호화를 비실용적인 것으로 생각하는 데 익숙한 사람들은 PIR 스킴들의 낮은 계산 오버헤드를 믿기 어려울 수 있다. 그러나, RLWE-기반 HE - 특히, 여기에 기술된 예시적 구성들을 갖는 GSW 스킴 -는 아래의 몇 가지 이유들 때문에 PIR 세팅에서 정말로 빛을 발한다. 첫째, GSW 암호문들에서 노이즈가 왼쪽으로부터 곱해진 메시지들이
Figure pct00016
에 있을 때 정도에 따라 부가적으로만 증가한다(수신자의 GSW 암호문들은 그 것의 타겟 인덱스의 비트들을 암호화한다). 또한 N 파일들을 갖는 데이터베이스에 대해
Figure pct00017
암호문 연산들을 수행해야 하더라도, 노이즈는
Figure pct00018
에 비례적으로만 증가할 수 있다(따라서 그 것의 비트 크기는 오직
Figure pct00019
으로만 증가한다). 상기 작은 노이즈 증가는 예시적인 PIR 스킴이 작은 RLWE 모듈러스 q를 사용할 수 있게 하고, 상기 모듈러스 q는 기본 RLWE-기반 PKE 스킴에서 사용하는 것보다 크지 않다. 셋째, 단일-서버 PIR에 대한 고전적 접근법[58, 79]의 재귀적/계층적 특성을 이용하여 RLWE-기반 동형 평가의 더 비싼 단계들, 즉 다항식 FFT들(그리고 덜 중요하게는 CRT 리프팅)을 숨길 수 있다. PIR에 대한 고전적인 계층적 접근법에서 계산적으로 지배적인 단계는 제1 단계이며, 일 예시적인 실시 예에서 효과적인 데이터베이스 크기는
Figure pct00020
에서
Figure pct00021
로 감소된다. 이 제1 단계의 효율성을 극대화하기 위해 상기 데이터베이스의 다항식들은 또한 평가 표현에 이미 포함되도록 사전 처리될 수 있으며, 이에 의해서 다항식 FFT들을 피하고 상기 데이터베이스의 각 (log q)-비트 블록이 작은 상수의 mod-
Figure pct00022
곱하기들을 사용하여 암호화된 질의로 "흡수"될 수 있게 한다. 예를 들어, 제1 단계에서, 서버는 FFT들을 포함하는, 클라이언트의
Figure pct00023
암호문들로부터
Figure pct00024
암호문들을 생성하지만, 그들의 상각 비용(amortized cost)은
Figure pct00025
일 때는 미미하다. 따라서 상기 제1 단계의 계산 오버헤드는 정수들 modulo q를 곱하는 오버헤드로 감소되며, 여기서 q는 매우 작을 수 있다. modulo q 곱하기들은 q를 소수들의 곱(a product of primes)이 되게 하고 CRT 표현을 사용함으로써 점근적으로 더 빠르게 수행될 수 있으며, modulo 소수 디바이저들 곱하기(multiplication modulo the prime divisors)는 테이블 룩업을 사용하여 더 가속화될 수 있다. 상기 PIR의 제1 단계 이후, GSW-esque 동형 평가는 다항식들의 계수와 평가 표현 사이의 변환을 요구하지만, 유효 데이터베이스가 이미 훨씬 작아졌기 때문에(최대
Figure pct00026
이고, 여기서
Figure pct00027
이다), 이 것은 이 예시적인 PIR 스킴의 오버헤드에 큰 영향을 주지 않는다.
[0049] 암호문 압축과 관련하여, 암호문 압축은 공개-키 세팅에서(그리고 때때로 대칭 키 맥락에서, 예: [57]) 항상 분명한 매력을 갖고 있었다. 아마도 가장 잘 알려진 암호문 압축 기술은 하이브리드 암호화일 것이다: (긴) 메시지는 대칭 암호화 스킴 하에서 암호화되고, 오직 대칭 암호 해독 키만 공개-키 스킴 하에서 암호화된다. 암호문 압축의 다른 예들은 타원 곡선 점의
Figure pct00028
좌표만을 단지 사용하는 것[11, 34]과, 인수분해 n에 기초한 보안을 사용하여 라빈(Rabin) 암호문들을
Figure pct00029
비트들로 압축하는 것을 포함한다(메시지가 엔트로피의
Figure pct00030
보다 적은 비트들을 갖는다고 가정함)[44].
[0050] 리베스트(Rivest), 알데만(Adleman), 및 더토우조스(Dertouzos) [73]는 공개 키 암호화의 발명 직후 동형 암호화의 개념을 제안하였다[32, 72]. 젠트리(Gentry) [45]는 최초의 그럴듯한 보안의 동형 암호화(FHE) 스킴을 구축했으며(암호화된 동안 데이터에 대한 임의 연산들을 허용), 현재는 훨씬 더 나은 성능과 보안을 보장하는 FHE 스킴들이 있다 [80, 78, 42, 16, 27, 15, 18, 39, 38, 40, 61, 21, 12, 63, 14, 37, 43, 3, 4, 50, 48, 68, 74, 26, 17, 49, 33, 36, 23, 6, 81, 82, 28, 54, 46, 24, 19, 10, 22, 65, 20, 56, 29].
[0051] FHE 및 기타 (R)LWE-기반 암호 시스템들의 속도 개선에 대한 연구도 또한 많이 수행되었다. 몇몇 중요한 예들은 차원 감축과 모듈러스 감축[16, 15]이며, 이를 통해 암호문은 더 작은 모듈러스에 의해서 감축된 계수들(coefficients)를 갖는 저-차원 벡터로 변환될 수 있고, 이는 암호문을 더 작게 만들 수 있으며, 또한 그것의 암호 해독의 복잡성을 줄일 수 있다 [16, 15]. (이 방향의 추가 연구에 대해서는 [75]를 참조) 또 다른 중요한 방향은 "암호문 팩" 이며[70, 78, 15, 14], 여기서 각 암호문은 평문 엘리멘트 하나를 암호화하는 것이 아니라 평문 엘리멘트들의 어레이를 암호화한다. 사실, 단지 속도뿐만 아니라 전체 FHE 계산의 오버헤드가 감축될 수 있는데, 때로는, 보안 파리미터의 다대수 함수(a polylogarithmic function)로 까지 감축될 수 있다 [39]. 또한, 일부 FHE 스킴들은 평문들도 매트릭스들이 될 수 있게 한다 [70, 14, 52, 35].
[0052] HE의 맥락에서 하이브리드 암호화에 대한 연구도 있다[45, 41, 66]: AES 하에서 암호화된 데이터는 HE 스킴 하의 AES 키의 암호화를 사용하여 동형으로(homomorphically) 암호 해독이 가능하며, 그 이후에는 데이터를 암호화된 상태에서 연산 될 수 있다. 그러나, 다른 방향은 불가능하다(그렇게 알려져 있다). HE 암호문을 비밀키를 사용하지 않고는 동일한 메시지에 대한 AES 암호문으로 변환할 방법이 없다. 일부 이전 연구들은, 정수 기반 HE에 대한 반 다이크 등(van Dijk et al.)의 연구[80], 및 속성-기반 암호화에 대한 호헨버그 등(Hohenberger etal)등의 연구[47] 와 같은, "사후-평가(post-evalution)" 암호문 압축 기술을 포함하였다. 그러나, 달성된 속도는 여전히 낮으며, 실제로 이 연구 이전의 어떤 스킴도 속도 1/2 장벽을 무너뜨릴 수 없었다. (따라서 예를 들어 LWE 기반 스킴은 바드리나라얀 등(Badrinarayan etal)의 고속 OT 애플리케이션[9]에 대해서는 사용될 수 없었다).
[0053] 반 다이크 등[80]의 스킴은 상기 논문에서 구체적으로 설명된 바와 같이, 이 스킴은 암호문당 1비트만 암호화한다. 따라서, 만일 암호문이 RSA 모듈러스만큼만 크더라도, 예를 들어 1024비트만 되더라도, 암호문의 길이가 평문의 1024배가 된다. 일반적으로 괜찮은 보안(decent security)을 획득하기 위해서, 암호문은 100비트 이상이어야 하고, 따라서 암호문당 1비트만 안전하게 암호화하는 모든 스킴의 속도는 <1/100이 된다.
[0054] 더 길게 설명하면 다음과 같다. 반 다이크 등의 상기 스킴은 한 번에 1비트 이상을 암호화하도록 수정될(tweaked) 수 있지만, 여전히 매우 좋은 속도를 얻는 방법은 명확하지 않다. 이것을 이해하기 위해서는 반 다이크에 대한 배경이 조금 더 필요하다. 비밀 키는 큰 정수 p이며, 숫자 x modulo n (즉, {0, 1, … n-1}의 숫자)}을 암호화하는 암호문은 c = q1*p + q2*n + x 형식을 가지고 있으며, 여기서 숫자 q2와 n은 q2*n+x의 크기가 p보다 훨씬 작도록 선택된다. 암호 해독은 x = (c mod p) mod n이고, 여기서 (c mod p)는 상기 값들을 {0, …, p-1} 범위로 감축하고, mod n은 상기 결과를 {0, …, n-1}로 감축한다. 암호문 c는 통상적으로 p보다 훨씬 더 많은 비트들이고, p는 통상적으로 평문보다 훨씬 더 많은 비트들이고, {0, …, n-1}의 숫자이다.
[0055] 상기 암호문 압축 기법은, 곱하기 그룹 modulo N이 M(<N)차(order)를 갖도록 gc mod N를 계산하며, 여기서 M은 p로 나누어질 수 있다. 기본적으로 gc를 취하면 (c mod p) 값이 보존되고 p에 대한 다른 정보는 버려진다. 따라서, 초기 c가 p보다 훨씬 더 많은 비트들이어야 한다는 문제는 어느 정도 완화되었다.
[0056] 그러나, p는 여전히 n (평문 공간)보다 훨씬 더 많은 비트들일 필요가 있고, 위의 숫자 N도 p보다는 실질적으로 훨씬 더 많은 비트들일 필요가 있다 (N이 원래 c만큼 많은 비트들일 필요는 없지만). p가 n보다 훨씬 더 많은 비트들이어야 하는 이유는 일반적인 동형 암호화 문제이다: 동형 연산들은 노이즈의 크기를 증가시키며, 여기서 노이즈의 크기는 (c mod p)의 크기이다. 한 번 곱하기도 이 크기의 비트들의 수를 두 배로 증가시킬 것이지만, 그러나 이 크기는 정확한 암호 해독이 가능하도록 p보다는 적어야 한다. 이것은 n이 p보다 몇 배나 더 적은 비트들을 가지고 있음을 암시한다. 숫자 N은 최소한 p보다 4배나 많은 비트들을 가져야 하고, 그렇지 않으면 N을 인수분해하여, 시스템을 손상시킬 수 있다. 전체적으로, 숫자 modulo N인, 압축된 암호문은 mod-n 평문 공간보다 훨씬 더 많은 비트들을 갖는다. 따라서 반 다이크 스킴은 어디에서도 여기에 설명된 가능한 속도들에 근접한 속도를 제공하지 않는다.
[0057] 1/2 보다 나은 속도를 갖는 것으로 알려진 동형 특성들 가진 이전의 유일한 암호화 시스템은 담가드와 주리크(Damgεrd and Jurik)[31]에서 비롯되었다. 그들은 부가적 동형(additive homomorphism)으로 속도-
Figure pct00031
암호화를 허용하는 파일리어(Paillier) 암호화 시스템[69]의 확장에 대해 설명했는데: 특히, mod-
Figure pct00032
평문은 RSA modulus N 및 임의 지수
Figure pct00033
에 대해 mod-
Figure pct00034
암호문 내에서 암호화될 수 있다고 했다.
[0058] 개인 정보 검색(PIR)과 관련하여, PIR이 코어 등(Chor etal)의 연구[25]에 도입되었다. 이 세팅에서, 클라이언트는 그 것의 타겟 인덱스
Figure pct00035
를 서버(들)로부터 숨기면서 데이터베이스로부터 N-번째 비트 (또는 파일)를 획득할 수 있고, 모두는 N에서 전체 통신 서브리니어(total communication sublinear)로 이루어진다. (서브리니어 통신 요건은 사소한 프로토콜을 배제하고, 서버는 전체 데이터베이스를 클라이언트로 전송한다.) 코어 등(Chor et al. )은 다수의 서버들을 사용하는 구성들(constructions with multiple servers)을 제공했으며, 후에 쿠실레비츠와 오스트로브스키(Kushilevitz and Ostrovsky)[58]는
Figure pct00036
비트들의 데이터베이스에 대한 재귀적 PIR 구성을 설명했는데, 이 구성의 제1 단계에서 PIR 스킴을 상기 데이터베이스의
Figure pct00037
Figure pct00038
-엘리멘트 슬라이스들에 병렬로 적용하고, 그 다음 PIR을
Figure pct00039
PIR 응답들의 "새로운 데이터베이스"에 적용하는 등의 작업을 수행한다고 했다. 스턴(Stern)[79]은 다른 부가적 동형 암호화 스킴들을 사용하여 상기 구성을 개선하였다. 키야스 등(Kiayias et al.)[55](또한 [60] 참조)은, 담가드와 주리크 [31]에 기초하여, 속도
Figure pct00040
를 갖는 최초의 단일-서버 PIR 스킴을 제공했다. [55, 1, 60]에서 언급한 바와 같이, 속도를 극대화하는 것은 PIR의 현대 애플리케이션들에 매우 중요한데, 이는 개별 파일이 매우 클 수 있기 때문이다-수천 편의 영화들 중에서 기가비트 영화 파일을 스트리밍한다고 생각해 보라. 그러나, 담가드와 주리크는 계산 비용이 너무 많이 들어 대규모 PIR[77, 67]에 실제로 사용될 수 없다. 담가드와 주리크를 사용하는 PIR은, 최소한, 서버가 상기 데이터베이스의 비트당 mod N-곱하기를 계산할 것을 요구하는데, 여기서 N은 2048 또는 그 이상의 비트를 갖는다. 네스트된 암호 해독(The nested decryption)에도 또한 비용이 많이 든다. 상기 논문들[55, 60]은 그들의 속도-최적 PIR 스킴들을 계산적으로 덜 비싸게 만들기 위해 담가드와 주리크를 대체할 기본 암호화 스킴(an underlying encryption)을 명시적으로 요구한다. GSW의 예시적인 매트릭스-기반 버전은 네스팅(nesting)을 허용하는 것에 주목해야 하며, 여기서 평문은 PIR에 대한 담가드와 주리크 접근법에서와 같이 회귀적으로(recursively) 다음 수준에서 암호문이 된다. 따라서 여기서 설명한 예시적인 스킴들은 그들 스킴들의 효율성을 개선하기 위한 대체 수단으로서 사용될 수 있다. 그러나, 네스팅을 피하고 GSW의 자연적인 동형을 사용하는 것이 훨씬 더 효율적인 것으로 밝혀졌다.
[0059] 모든 단일-서버 PIR 프로토콜에서, 상기 서버의 계산은 적어도 N이어야 한다; 그렇지 않으면, 서버는 응답을 구성하는 동안 서버가 건드리지 않았던 비트들이 질의와 무관하였다는 것을 알게 될 것이다(이에 의하여 프라이버시를 파괴한다). PIR의 이"문제"는, 멀티-서버 프로토콜들에 대해서조차, 매우 근본적이어서, 보일 등(Boyle et al.)[13]은 "PIR 경도(hardness)"가 다자간 계산(Multi-Party Computation: MPC) 문제들을 준선형 계산(sublinear computation)으로 프로토콜을 가질 수 있는 문제들과 그렇게 할 수 없는 문제들로 분할하는 유용한 방법임을 발견했다(그러한 프로토콜은 준선형 계산이 있는 PIR을 의미하기 때문이다). 많은 MPC 문제들이 PIR-경도 문제임을 감안할 때, PIR의 계산 오버헤드를 최소화하는 것이 매우 중요하다. 계산 측면에서, 최첨단 PIR 스킴은 체계는 아길라-멜초 등(Aguilar-Melchor et al.) [1]에 의한 XPIR이고, 안젤 등(Angel et al.) [5]의 SealPIR 연구에서 추가의 최적화들이 이루어졌다. 이 스킴은 RLWE를 기반으로 하며, 데이터베이스를 평가 표현으로 사전 처리하는 것을 포함하여, 많은 영리한 최적화들이 특징이지만, 재귀의 깊이(the depth of the recursion)에 따라 속도가 기하급수적으로 감소하고(각 레벨에서 5 또는 그 이상의 팩터를 손실), 너무 적은 레벨들에도 고객의 작업이 크게 증가한다. 실제로, 안젤 등도 그들의 최적화들에도 불구하고 "대규모 데이터베이스를 지원하는 것은 여전히 도달할 수 없다"고 언급했다.
[0060] 높은 레벨에서, 본 발명의 예시적 압축가능 스킴들은 두 개의 암호화 시스템들(cryptosystems)을 결합한다: 하나는, GSW[43]의 약간 변형인, 저-속(비압축) FHE 스킴이고, 다른 하나는, 히로마사 등(Hiromasa et al.) [52]의 매트릭스 동형 암호화와 다소 유사한, 매트릭스에 대한 새로운 고속(압축) 부가-동형 스킴(a new high-rate (compressed) additively-homomorphic scheme for matrices)이다. 본 발명의 예시적 스킴을 압축 가능하게 하는 것은, 이들 두 개의 암호화 시스템들을 "훌륭하게 작동(play nice)"시켜서 이들이 동일 비밀 키를 공유하고 사용자가 여러 GSW 암호문들을 단일의 압축된 암호문에 팩(pack)할 수 있도록 하였기 때문이다.
[0061] 저속 스킴(The low-rate scheme)은, 매트릭스들이 벡터들이 아닌 키들로서 사용된다는 점을 제외하고, 참고문헌[70]에서와 같은, GSW와 거의 동일하다. 즉, 예시적인 비밀 키는
Figure pct00041
형식의 매트릭스이며, 공개 키는, LWE 모듈러스가 q이고 낮은 놈 매트릭스(a low norm matrix)가 E인,
Figure pct00042
를 만족시키는 슈도랜덤 매트릭스(a pseudorandom matrix) P이다. GSW에서와 마찬가지로, 저속 암호 시스템은 작은 스칼라들(통상적으로 비트들이
Figure pct00043
인)을 암호화하고, 암호문은 매트릭스 C이며, 그리고 암호 해독 불변량(the decryption invariant)은
Figure pct00044
이다(G는 미시안시오-페이커트(Micciancio-Peikert) 가젯 매트릭스 [64]이고, E는 낮은-놈 매트릭스이다).
[0062] 여기서 예시한 고속 스킴(An exemplary high-rate scheme herein)은 전체 매트릭스 modulo q를 단일 암호문 매트릭스로 암호화하며, 이 것의 차원들은 평문 매트릭스보다 약간 더 크다. 새롭게 도입된 기술적 엘리멘트는, H라 불리는, 다른 가젯 매트릭스이다: GSW의 가젯 매트릭스 G와 마찬가지로, 이 예시적인 매트릭스 H는 암호문에 중복성(redundancy)을 더하고, H는 암호 해독 시 노이즈를 제거할 수 있는 "공개 트랩 도어(public trapdoor)"를 갖는다. 차이점은 H는 거의 정사각형 매트릭스이고, 따라서 거의 확장되지 않기 때문에, 고속 암호문들을 가능하게 한다는 것이다. 더 자세히 말하자면, G는 차원들
Figure pct00045
을 갖고, 여기서
Figure pct00046
이다. 예를 들어, 만일
Figure pct00047
이면, m은 n보다 60배 더 크다. 반면, H는 통상적으로 행들보다 열을 하나만 더 많이 갖는다. 거의 직사각형인 H는 많은 중복성을 추가할 수 없고 따라서 고품질의 트랩 도어를 가질 수 없다는 점에 유의해야 한다. 따라서 H는 적은 양의 노이즈만을 제거할 수 있는 저품질의 트랩 도어로 이루어진다.
[0063] 예시적인 스킴에서 평문으로부터 암호문까지 차원들에서 약간의 증가는 두 단계들로 이루어진다. 첫째, 특수 형식의 비밀 키들이 일부 추가의 0의 행들로 평문 매트릭스 M을 "패드(pad)" 하기 위해 사용되며,
Figure pct00048
를 얻기 위해
Figure pct00049
를 세트 한다 (히로마사 등(Hiromasa et al.)는 동일 목적을 위해 동일 특수 형식을 [52]에서 사용하였다). 둘째, 암호 해독 중에 적은 양의 노이즈를 제거할 수 있도록, 이 매트릭스의 오른쪽에 가젯 매트릭스 H를 곱하여
Figure pct00050
에 중복성을 추가한다. 알려진 바와 같이, 추가, 특히 암호문들에 관한 곱하기와 같은 동형 연산들에서 노이즈가 증가한다. 압축 암호문들에 대한 암호 해독 불변량은
Figure pct00051
이다. 고속의 압축 암호문들을 얻기 위해, 예시적인 실시 예는 평문으로부터에서 암호문으로의 차원들의 증가를 가능한 한 작게 한다.
Figure pct00052
평문 매트릭스들 M에서는, LWE 비밀의 차원(k로 표시)만큼 많은 0의 행들을 추가하는 것이 필요하다.
Figure pct00053
를 나타내는, 패드된 매트릭스
Figure pct00054
은 차원
Figure pct00055
를 갖는다. 중복성은 차원
Figure pct00056
의 거의 직사각형인 가젯 매트릭스 H를 오른쪽에 곱함으로써 추가된다. 암호문의 최종 차원은
Figure pct00057
이므로, 압축된 암호문들의 정보 속도(the information rate)는
Figure pct00058
이 된다.
[0064] 크기
Figure pct00059
의 모듈러스 q를 사용하여, 모든 원하는
Figure pct00060
에 대해
Figure pct00061
를 얻을 수 있도록 다양한 파라미터들을 조정하는(orchestrate) 방법을 지금부터 소개한다. 이 것은 다항식 간극이 있는 LWE의 경도를 가정하는 모든 상수
Figure pct00062
를 지원할 수 있고, 만일 하위 지수 간극(subexponential gap)이 있는 LWE의 경도를 가정한다면 다항식의 작은
Figure pct00063
조차도 지원할 수 있음을 의미한다. 자세한 내용에 관해서는 아래에 설명한다.
[0065] 새로운 가젯 매트릭스 H를 사용하는 대신에, 충분히 큰 정수
Figure pct00064
(예를 들어,
Figure pct00065
)에 대해 암호 해독 불변량
Figure pct00066
를 사용하여 암호문에 중복성을 추가할 수 있음에 주목해야 한다. 이 변형(아래 설명)은 H를 사용하는 변형과 점근 양상(asymptotic behavior)이 동일하지만, 구체적인 효율성은 다소 더 나빠졌다. 그러나 여전히 사용할 수 있는 것으로 보인다.
[0066] 요약하면, 압축 가능한 FHE를 기술할 때 아래에 기술되는 프로세스는 일반적으로 (1) 저속(비압축된) 암호문들로 데이터를 암호화하고, 암호화된 데이터에 대해 계산하는 단계, 그 다음 (2) 그 결과를 고속(압축된) 암호문으로 압축하는 단계, 최종적으로 (3) 암호 해독하여 그 결과를 복구하는 단계를 포함한다. 아래에서 압축된(F) HE 스킴을 논의할 때, "평문에 중복성을 추가함"과 같은 같은 구문이 사용되는데, 이것은, 예를 들어, 마치 평문을 고속 암호문들로 직접 암호화하는 것과 같은 방식으로 평문이 처리되는 것처럼 들리게 한다 점에 유의해야 한다. 평문을 압축된 암호문으로 직접 암호화할 수 있는 것은 사실이지만(그리고 아래 설명에서도 이것이 어떻게 일어날 수 있는지 설명되기는 하지만) 아래 설명의 핵심은 다른 기술의 사용이다. 특히, 두 공식
Figure pct00067
(위에서 그리고 아래에서 제1 변형으로 설명됨)와
Figure pct00068
(위에서 다른 변형으로 설명됨)는 암호 해독 프로세스를 설명한다. 먼저 암호문 C에 비밀키 S를 곱하면
Figure pct00069
또는
Figure pct00070
가 나온다. 항 E는 제거해야 하는 노이즈이므로, 그래서
Figure pct00071
(또는
Figure pct00072
)가 약간의 중복성을 가지고 있다는 사실을 이용할 수 있다. 따라서 아래의 설명의 핵심은 위에서 설명한 프로세스 (1)-(3)를 사용하여, 방금 설명한 암호 해독 프로세스도 또한 통합하는 것이다.
[0067] 지금까지의 아이디어들은 점근적으로 효율적인 체계를 얻기에 충분하며, 이에 관해 아래에서 설명한다. 그러나 실용적인 효율성을 얻기 위해 더 많은 구체적인 요령들이 사용될 수 있다. 구체적으로 예시적인 실시 예는 기본 스킴에 LWE가 아닌 RLWE를 사용하고, FFT들에 저장할 데이터베이스를 사전 처리하며, 더 나은 노이즈 관리를 위해 모듈러스 전환 기법들(modulus-switching techniques)을 적용할 수 있으며, 이러한 모든 요령들은 아래에서 설명된다. 그러나, 이들 아이디어들을 제공하기 전에 본 명세서의 다음 부분에서 예시적인 방법과 시스템에 대한 개요를 제공하고 추가 배경을 설명한다.
[0068] 도 1을 참조하면, 이 도면은 예시적인 일 실시 예에서 압축가능(F)HE 스킴을 사용하여 클라이언트와 서버 간 암호화된 통신을 위한 예시적인 방법의 플로차트이다. 이 방법은 PIR을 위한 기본 블록들은 포함하지만 PIR을 포함하지 않는다. PIR은 나중에 설명한다. 클라이언트(110)가 취한 조치들((예: 사용자의 통제 하에서)이 왼쪽에 표시되고 서버(170)이 취한 조치들(예: 서비스 제공 업체의 운영들의 일부로서)이 오른쪽에 표시된다.
[0069] 아래에 더 상세히 기술되는 바와 같이, 압축 가능(F)HE 스킴(70)이 제공되고, 다음절차들을 포함하며, 이에 관하여 더 상세하게 설명하면 다음과 같다: KeyGen은 키 생성 절차이고; 암호화(Encrypt)는 평문의 동형 암호화를 수행하며; 평가(Evaluate)는 암호문들 상의 회로를 사용하여 동형 평가들을 수행하고; 압축(Compress)은 동형 평가를 받은 암호문들을 압축하며; 그리고 암호해독(Decrypt)은 압축된 암호문들의 암호 해독을 수행한다. 이 스킴은, 아래에서 설명하는 바와 같이, 도 1의 다수의 위치들에서 사용될 수 있다.
[0070] 블록(10)에서, 클라이언트(110)은 서버(170)에 공개키(pk)를 전송하고 서버(170)은 블록(20)에서 공개키를 수신한다. 블록(30)에서, 클라이언트(110)은 (F)HE 암호화 스킴(70)의 키(예: 공용 키 또는 개인 키)를 사용하여 데이터를 암호화하며, 이에는 특히, 아래에서 설명하는 바와 같은, 가젯 매트릭스 또는 그 것의 변형의 사용을 포함한다. 클라이언트(110)은, 블록(40)에서, 암호화된 데이터(예: 암호문들)를 서버로 전송하고, 서버는, 블록(50)에서, 암호화된 데이터를 수신한다. 서버(170)은 이 데이터를 데이터베이스(28)에 암호문들로서 저장한다. 또한, 일부 실시 예들에서, 데이터베이스(28)는 암호문만을 포함하는 대신에 혼합된 평문과 암호문을 또는 단순히 평문만을 포함할 수 있다. 데이터베이스(28)에 포함된 평문과 관련하여, 아래에서 설명하는 바와 같이, 암호화된 질의가 사용될 수 있고, 그리고 평문 전용 데이터베이스도 사용될 수 있다.
[0071] 어떤 시점에서, 클라이언트는, 예를 들어, 서버에 저장된 정보에 대해 암호화된 요청 및 질의를 생성하는데, 이 요청과 질의는 (F)HE 스킴(70)을 통해 암호화될 수 있다. 질의는 회로로 실현될 수 있다. 블록(55)는 클라이언트(110)이 요청 및 질의(예: 회로)를 서버(170)으로 전송하고, 서버(170)은 블록(60)에서 전송된 요청 및 질의를 수신한다는 것을 표시한다. 원칙적으로, 암호화된 데이터상에서 평가될 회로는 어디에서나 올 수 있다. 예를 들어, FHE의 한 가지 시나리오는 클라이언트가 자신의 재무 데이터를 암호화하고 그 암호화된 데이터를 온라인 세금 문서 작성 회사(데이터베이스(28)에 암호화된 데이터를 저장함)에 전송한 다음 클라이언트는 납세액(tax liability) 평가를 요청하는 것이다. 이 경우 요청은 단지 회사에 세금 평가를 수행하도록 지시할 뿐 암호화되지 않을 수 있다. 상기 회사(서버 170 사용)는 납세액 평가를 획득하기 위해 자사 소유의 세금 양식 소프트웨어(예를 들어, 회로로서)를 암호화된 금융 데이터에 적용한다. 이 시나리오에서는 회로가 클라이언트로부터 오는 것이 아니다.
[0072] 다른 (대체 또는 추가) 옵션은 이 플로의 시작 부분이 반드시 클라이언트(110)과 서버(170) 사이에 직접 있을 필요는 없다는 것이다. 예를 들어, 다양한 (예: 무작위) 당사자 또는 다양한 당사자들이 클라이언트의 공개 키 아래에서 데이터를 암호화하였고, 이 정보가 최종적으로 데이터베이스(28)의 서버에서 (클라이언트의 공개 키, pk와 함께)수집된 경우이다. 나중에, 클라이언트(110)는 "일부 키워드를 포함하는 당사의 키 아래에서 귀사가 암호화한 모든 파일들을 전송바랍니다"와 같은 내용(회로를 사용하여)의 요청을 생성하고 서버에 전송할 수 있고, 서버는 이 요청에 응답할 수 있다. 실제로 그러한 일은 자동으로 이루어진다(이런 일에 필요한 것은 사용되는 키에 관하여 클라이언트(110)와 서버(170)가 동의하는 것뿐이기 때문이다).
[0073] 서버(170)은 데이터베이스(28)에 저장된 암호문들의 계산들(예들 들어, 부분적으로 상기 회로에 의해 정의됨)을 블록(65)에서 수행한다. 이 지점에서, 서버(170)는 질의에 대한 답변을 암호문으로 생성한다. 통상적인 (F)HE 시나리오에서, 최종 암호문은 상당히 클 수 있다. 그러나, 본 발명의 (F)HE스킴(70)을 사용하면, 암호문을 압축하기 때문에 암호문의 크기를 실질적으로 감소시킬 수 있다. 따라서 블록(65)는 서버가 암호문을 압축하여 압축된 암호문을 생성하는 것을 포함한다.
[0074] 블록(70)에서 서버(170)은 요청 및 질의에 대응하는 압축된 암호문을 포함하는 메시지를 형성한다. 서버는 또한 질의에 대한 대답의 압축된 암호문을 포함하는 메시지(또는 메시지들)를 전송한다. 클라이언트(110)는 압축된 암호문(70) 메시지를 블록(80)에서 수신하고, 평문을 얻기 위해, 예를 들어 (F)HE 스킴(70)을 사용하여, 압축된 암호문(70)을 블록(90)에서 암호 해독한다. 클라이언트 (110)은, 알려진 대로, 평문으로 하나 또는 그 이상의 연산들을 수행할 수 있다.
[0075] 본 발명의 스킴들에 포함된 컴퓨터 시스템을 클라이언트(110)과 서버(170)으로 부르지만, 이들 컴퓨터 시스템들 사이에 클라이언트/서버 관계가 있을 필요는 없다. 예를 들어, 대신 피어 투 피어 관계(a peer-to-peer relationship)도 있을 수 있다.
[0076] 도 2로 돌아가면, 이 도면은 도 1의 다수의 디바이스들에 사용될 수 있는 예시적 컴퓨터 시스템의 블록 다이어그램이다. 컴퓨터 시스템(210)은, 하나 또는 그 이상의 버스들(227)을 통해 상호 연결된, 하나 또는 그 이상의 프로세서들(220), 하나 또는 그 이상의 메모리들(225), 하나 또는 그 이상의 트랜스시버들(230), 하나 또는 그 이상의 네트워크(N/W) 인터페이스들(I/F들)(245) 및 사용자 인터페이스 회로(265)를 포함한다. 하나 또는 그 이상의 트랜스시버들(230)의 각각은 수신기, Rx(232) 및 송신기, Tx(233)를 포함한다. 사용자(201)는 사용자 인터페이스 엘리멘트들(205)과 상호 작용할 수 있다. 상기 송수신기들은 와이-파이(Wi-Fi), 블루투스, 근거리 무선 통신(NFC) 및/또는 4G(4세대) 또는 5G(5세대)와 같은 셀룰러 프로토콜들과 같은, 모든 적용가능 프로토콜들을 사용할 수 있다. 하나 또는 그 이상의 버스들(227)은 주소, 데이터 및/또는 컨트롤 버스들일 수 있으며, 마더보드 또는 집적회로 상의 일련의 라인들, 광섬유들 또는 기타 광통신 장비 등과 같은 모든 상호연결 메커니즘을 포함할 수 있다. 하나 또는 그 이상의 송수신기들(230)은 하나 또는 그 이상의 안테나들(228)에 연결되어 있다. 하나 또는 그 이상의 메모리들(225)는 컴퓨터 프로그램 코드(223)을 포함한다.
[0077] 컴퓨터 시스템(210)은 부품들(240-1 및/또는 240-2) 중 하나 또는 둘 모두를 포함하는 컨트롤 모듈(240)을 포함한다. 컨트롤 모듈(240)은 컴퓨터 시스템 (210)이 상기 개별 디바이스들에 여기서 수행되는 전술한 연산들을 수행하도록 한다. 컨트롤 모듈(240)은 여러 가지 방법으로 구현될 수 있다. 컨트롤 모듈(240)은 하나 또는 그 이상의 프로세서들(220)의 일부로 구현되는, 컨트롤 모듈 (240-1)로서, 하드웨어로 구현될 수 있다. 컨트롤 모듈(240-1)은 집적 회로 또는 프로그래밍 가능한 게이트 어레이와 같은 다른 하드웨어를 통해서도 구현될 수 있다. 다른 예에서, 컨트롤 모듈(240)은 컴퓨터 프로그램 코드(223)로 구현되고 하나 또는 그 이상의 프로세서들(220)에 의해 실행되는, 컨트롤 모듈(240-2)로 구현될 수 있다. 예를 들어, 하나 또는 그 이상의 메모리들(225)와 컴퓨터 프로그램 코드(223)는 하나 또는 그 이상의 프로세서들(220)을 사용하여 사용자 컴퓨터 시스템(210)이 여기에 설명된 연산들 중 하나 또는 그 이상의 연산들을 수행하도록 구성될 수 있다. 또한 사용자 컴퓨터 시스템(210)에 도시된 디바이스들은 제한되지 않으며, 다른 디바이스들, 상이한 디바이스들, 또는 더 적은 수의 디바이스들을 사용할 수 있다는 점에 유의해야 한다. 예를 들어, 만일 하나 또는 그 이상의 송수신기들(230)을 통한 무선 네트워킹만 사용한다면, 유선 N/W IF(225)는 필요하지 않을 수 있다.
[0078] 사용자 인터페이스 회로(265)는 구현될 수도 있고 구현되지 않을 수도 있으며, 만일 구현된다면, 하나 또는 그 이상의 사용자 인터페이스 엘리멘트들(205)과 통신하고, 하나 또는 그 이상의 사용자 인터페이스 엘리멘트들(205)은 사용자 컴퓨터 시스템(210)에 통합되어 형성되거나 사용자 컴퓨터 시스템(210) 외부에 있을 수도 있지만 사용자 컴퓨터 시스템(210)과 결합될 수도 있다. 사용자 인터페이스 엘리멘트들(205)은 하나 또는 그 이상의 카메라(들), 하나 또는 그 이상의 오디오 디바이스들(예: 마이크(들), 스피커(들) 등), 하나 또는 그 이상의 센서들(예: GPS 센서(들), 지문 센서(들), 방향 센서(들) 등), 하나 또는 그 이상의 디스플레이들 및/또는 하나 또는 그 이상의 키보드들을 포함한다. 이 목록은 완전하거나 제한적이지 않으며 다른 엘리멘트들, 상이한 엘리멘트들 또는 더 적은 수의 엘리멘트들을 사용할 수 있다. 사용자(201)(예: 클라이언트(110)을 사용함)는 사용자 인터페이스 엘리멘트들(205)과 상호 작용하여 대응하는 컴퓨터 시스템(210)이 연산들을 수행하게 할 수 있다. 예를 들어, 클라이언트(110)은 사용자(201) 측에서 컨트롤 할 수 있는데, 예를 들어, 은행으로부터 정보를 요청하기 위해 컨트롤 할 수 있고, 은행은 대응하는 사용자(201)과의 상호 작용 없이 서버(170)를 컨트롤 할 수 있다.
[0079] 도 2에서 다른 디바이스들을 위한 예시적 구현들에서, 컨트롤 모듈(240)은 대응하는 디바이스의 컴퓨터 시스템(210)을 위해 다음 중 하나로서 구현될 수 있다: 클라이언트(110)의 (완전) 동형 암호화 및 통신 (예를 들어, 그리고 PIR) 애플리케이션(112) 또는 서버(170)의 (완전) 동형 암호화 및 통신(예를 들어, 그리고 PIR)의 애플리케이션(172).
[0080] 또한, 컴퓨터 시스템(210)은 클라우드 내에 있을 수 있으며, 예를 들어, 서버(170)에 할당된 자원들로서, 프로세서들(220)과 메모리들(225)로부터 형성될 수 있다. 컴퓨터 시스템(210)은, 예를 들어 클라이언트(11)을 위한 사용자(201)용 디바이스, 예를 들어 스마트폰, 태블릿 또는 개인 컴퓨터와 같은 디바이스가 될 수 있다.
[0081] 이제 예시적인 방법과 시스템에 대한 개요가 설명되었으므로, 몇 가지 추가적인 배경이 설명된다. (링) 오류 있는 학습(LWE)과 관련하여, GSW 암호화 시스템의 보안[43]은 결정(링) 오류 있는 학습(R)LWE 문제의 경도(the hardness of the decision (ring) learning with errors (R)LWE problem)에 기초한다[71, 62]. LWE는 정수들
Figure pct00073
의 링을 사용하는 반면, RLWE는 통상적으로 사이클로토믹 필드(a cyclotomic field)의 정수들 R의 링을 사용한다. 모듈러스 q, 차원 k, 및 R에 대한 노이즈 분포
Figure pct00074
에 대한 이 문제의 "예"인스턴스(instance)는 값들
Figure pct00075
와 함께 많은 균등(many uniform)
Figure pct00076
로 구성되고, 여기서
Figure pct00077
는 고정 비밀 벡터이고
Figure pct00078
이다. "아니오"예에서,
Figure pct00079
Figure pct00080
는 모두 균등(uniform)하다. 상기 결정(R)LWE 가정은 두 분포들이 계산적으로 구분할 수 없다는 것이다. 즉, "예" 인스턴스들은 유사랜덤(pseudorandom)이라는 것이다. 통상적으로
Figure pct00081
는 보안 파리미터
Figure pct00082
에서 압도하는 확률을 갖는 특정 크기 경계
Figure pct00083
에 대해
Figure pct00084
가 되는 그러한 값이다. 상기 보안 파라미터도 또한 링 크기 및/또는 차원 k 및 비율
Figure pct00085
의 하한이다. RLWE 기반 스킴들이 더 효율적이지만, LWE가 본 명세서의 나머지 부분에 언급된다.
[0082] 매트릭스 비밀들이 있는 LWE에서, LWE 인스턴스는 (더 일반적으로) 비밀 매트릭스
Figure pct00086
와 연관될 수 있으며, LWE의 매트릭스 버전을 깨는 것이 기존의 LWE를 깨는 것만큼 어렵다는 것은 하이브리드 아규먼트(a hybrid argument)를 통해 증명될 수 있다. 이 버전에서, "예" 인스턴스는 균일한 매트릭스 A와
Figure pct00087
로 구성된다. 이들 매트릭스들에 차원들을 부여하면:
Figure pct00088
Figure pct00089
, A는
Figure pct00090
, B, E는
Figure pct00091
이 된다. 일 예시적인 구성에서 이들 매트릭스들의 예시에 대해서는 도 3을 참조한다.
Figure pct00092
으로 세트 한다.
Figure pct00093
를 세트하고 P를 B 위에 -A가 있는(with - A on top of B ) 매트릭스가 되도록 세트 한다. 그러면
Figure pct00094
이 된다. LWE 가정(매트릭스 버전)은 이 P를 유사랜덤(pseudorandom)이라 한다. GSW(매트릭스에 대해 일반화된)에서, P는 공개 키로 세트 된다.
[0083] 도 3을 참조하면, 일부의 작은
Figure pct00095
이면
Figure pct00096
이 되고
Figure pct00097
이 된다. 따라서,
Figure pct00098
이 된다. 또한 가젯 매트릭스 H를 사용하는 오류가 E인 암호문들을 정확하게 암호 해독하기 위해서
Figure pct00099
가 필요하다. 다음 사항도 주목해야 한다:
Figure pct00100
는 "매우 중복성이 있는" 스칼라;
Figure pct00101
는 "다소 중복성이 있는" 매트릭스;
Figure pct00102
는 "다소 중복성이 있는" 매트릭스;
Figure pct00103
는 압축된 암호문(ctxt)이다.
[0084] 가젯 매트릭스들와 관련하여, GSW는 직사각형 가젯 매트릭스[64],
Figure pct00104
를 사용하여 암호문(이는 동형 곱하기와 암호 해독 모두를 위해 사용됨)에 중복성을 추가한다. 종종 G는
Figure pct00105
가 되게 세트 되는데, 여기서
Figure pct00106
는 벡터
Figure pct00107
이다-즉,
Figure pct00108
이고 G의 행들은 벡터
Figure pct00109
의 시프트들로 구성된다. 문헌에서 흔히 볼 수 있듯이, 표기법
Figure pct00110
Figure pct00111
와 같이 계수들이 작은(with small coefficients) 매트릭스를 표시하는 데 사용된다. G가
Figure pct00112
를 사용할 때,
Figure pct00113
에 계수들을 갖는 적절한
Figure pct00114
를 효율적으로 찾을 수 있다. 엔트리들이
Figure pct00115
에 있고 R에 대해 풀 랭크인 표준(a canonical)
Figure pct00116
가 존재한다.
Figure pct00117
를 계산하여 먼저
Figure pct00118
와 같은 Y를 찾고 그 다음 Y에 가깝고
Figure pct00119
의 벡터들에 의해 생성된 격자 안에 있는
Figure pct00120
를 빼서 Y를 작게 만드는 것을 생각할 수 있다. 일반적으로
Figure pct00121
이면,
Figure pct00122
Figure pct00123
에서 계수들을 갖는다. 만일 C가 차원
Figure pct00124
를 갖는다면,
Figure pct00125
는 차원
Figure pct00126
를 갖는다.
[0085] GSW 암호화 및 암호해독의 경우, 스칼라 매트릭스
Figure pct00127
를 암호화하기 위해서, 암호화기(the encrypter)는
Figure pct00128
로 세트 하고, 엔트리들이 작은 놈(small norm) 가진 R의 엘리멘트들인 랜덤의
Figure pct00129
매트릭스 X를 선택하여,
Figure pct00130
를 출력한다. 암호 해독하기 위해서, 다음을 계산한다.
[0086]
Figure pct00131
[0087] 여기서
Figure pct00132
는 작은 계수들(small coefficients)을 갖는다.
Figure pct00133
가 적절한
Figure pct00134
에 의해 제한된(bounded) 계수들을 갖는다고 가정하면,
Figure pct00135
는 너무 작은 엔트리들을 갖게 되어 모듈로 q를 감쌀 수 없고, 이는 암호 해독기(the decrypter)가
Figure pct00136
를 복구하고(
Figure pct00137
는 R과 연관된 분수들의 필드(the field of fractions)에 대해 풀 랭크 및 가역이기 때문에) 따라서
Figure pct00138
를 복구할 수 있게 해 준다.
Figure pct00139
는 랭크
Figure pct00140
(사실 서브 매트릭스로
Figure pct00141
를 포함)를 가지고 있기 때문에, 암호 해독기는 M과
Figure pct00142
를 획득할 수 있다. 만일
Figure pct00143
로 한정된 E에 대해
Figure pct00144
이면 C M을 GSW-암호화한다고 한다.
[0088] 만일 M이 스칼라 매트릭스가 아라면, M의 GSW-암호화를 획득하는 방법은 불분명하다. 만약 후보 암호문이, 이전과 같이,
Figure pct00145
라면,
Figure pct00146
Figure pct00147
를 만족시킬 필요가 있다. M이 스칼라 매트릭스일 때
Figure pct00148
을 찾는 것은 쉽다: M은 동일한 스칼라 매트릭스이지만 더 큰 차원의 스칼라 매트릭스이다. 그러나, M이 스칼라 매트릭스가 아닐 때, 그러한
Figure pct00149
을 찾는 것은 S를 아는 것을 필요로 하는 것처럼 보인다. 히로마사 등 [52]은 LWE를 가정하여 비스칼라 매트릭스를 암호화하는 GSW 버전을 획득하는 방법과 순환 보안 가정: 매트릭스 암호화 단계에 비밀 키의 암호화가 필요하다는 것을 보여주었다. 일 예시적인 구현에서, 암호화 단계를 위해 LWE(순환 암호화 없음)에 의존하므로 GSW 암호문들은 스칼라들만 암호화한다.
[0089] GSW의 동형 연산들과 관련하여,
Figure pct00150
Figure pct00151
를 GSW-암호화하는
Figure pct00152
Figure pct00153
가 각각 존재한다고 가정한다. 그런 다음, 오류들의 합계가
Figure pct00154
-제한(bounded)된다면, 분명히
Figure pct00155
Figure pct00156
를 GSW 암호화한다. 곱하기를 위해,
Figure pct00157
를 세트 하면, 그 결과는 다음과 같다:
[0090]
Figure pct00158
[0091] 따라서, 새로운 오류
Figure pct00159
Figure pct00160
-제한된다면
Figure pct00161
Figure pct00162
를 GSW-암호화한다. 상기 새 오류(the new error)에서,
Figure pct00163
는 작은 계수들을 갖기 때문에 항
Figure pct00164
가 원래 오류
Figure pct00165
보다 약간만 더 크다. 항
Figure pct00166
를 작게 유지하기 위해, 두 가지 전략들이 있다. 첫째, 만약
Figure pct00167
이 작은 스칼라에 해당한다면-예를 들어 0 또는 1이라면, 이 항은
Figure pct00168
내부의 원래 오류만큼 작게 된다. 둘째, 만약
Figure pct00169
이라면, 이 항은 나타나지 않는다. 예를 들어, 만약 상수
Figure pct00170
를 동형적으로 곱하려 한다면, 단지
Figure pct00171
(
Figure pct00172
없이)를 세트 하고, 위와 같이
Figure pct00173
를 계산하면 된다.
Figure pct00174
내부의 평문에
Figure pct00175
가 곱해지고, 새로운 오류가
Figure pct00176
Figure pct00177
에 의존하지 않게 됨에 따라서,
Figure pct00178
에서 임의적이 될 수 있다.
[0092] GSW 암호문들의 부분압축과 관련하여, 많은 비트의 암호문들이 (노이즈를 많이 증가시키지 않고) R에서 더 큰 스칼라를 암호화하는 단일 암호문으로 압축될 수 있다는 점에서, GSW는 이미 암호문들의 부분압축(상대적으로 말하면, 최종 압축된 암호문들은 본 발명에서 달성된 압축된 암호문들 보다 훨씬 큼)을 지원하고 있다. 쉬운 예로, LWE 기반 GSW(여기서
Figure pct00179
)의 경우를 고려하고,
Figure pct00180
를 비트
Figure pct00181
를 암호화하는 GSW 암호문이라고 하자. 압축을 하려면, 단순히
Figure pct00182
를 세트 하면 된다. 즉, 위에서 설명한 상수-곱하기 절차(the multiply-by-constant procedure) (노이즈를 실질적으로 증가시키지 않음)를 사용하여 스칼라들
Figure pct00183
Figure pct00184
에 곱하고 그 다음 결과들을 합산한다. 명확하게 C는 스칼라
Figure pct00185
를 암호화한다.
Figure pct00186
가 일단 암호 해독만 되면,
Figure pct00187
의 이진수 표현에서 비트들
Figure pct00188
를 읽을 수 있다.
[0093] 이진수의 스칼라들
Figure pct00189
Figure pct00190
(
Figure pct00191
Figure pct00192
와 "
Figure pct00193
의 비트들"로서
Figure pct00194
' 들과는 무관한 고정 베이스임) 로 인코딩할 수 있고, 암호 해독 시
Figure pct00195
로부터
Figure pct00196
를 복구할 수 있는 한, 이것은 다른 링들 R로 일반화된다. 예를 들어
Figure pct00197
를 위해,
Figure pct00198
Figure pct00199
에 대해서 기본 엘리멘트들
Figure pct00200
를 사용할 수 있다.
[0094] 그러나, 이것은 GSW 암호문을 부분적으로만 압축하며: 평문/암호 텍스트 비율은 기껏해야
Figure pct00201
인 점을 주목해야 한다. 노이즈를 작게 기 위해, GSW 암호문들은 통상적으로 비트들을 암호화한다. 대략적으로 말하면, 특정 상한(upper bound) L 에 대해, 비트들
Figure pct00202
를 암호화하는
Figure pct00203
GSW 암호문
Figure pct00204
을 이진 표현이
Figure pct00205
Figure pct00206
를 암호화하는 단일 암호문 C로 압축할 수 있다. 이 이진 표현을 위해서는,
Figure pct00207
에 의해 주어진 맵
Figure pct00208
은 주입식(injective)이고, p의 사전 이미지들(preimages)은 효율적으로 계산될 수 있는 엘리멘트들
Figure pct00209
이 있어야 한다. 예를 들어, 만일
Figure pct00210
이면,
Figure pct00211
Figure pct00212
에 대해
Figure pct00213
로 간단히 세트 될 수 있다. (만일 R이 다항식 링이면, 상기 이진 표현은 약간 더 복잡해진다). 압축하려면, 간단히
Figure pct00214
를 세트 하면 된다. 즉, 위에서 설명한 상수 곱하기 절차를 사용하여
Figure pct00215
의 평문에
Figure pct00216
를 곱하고(노이즈를 실질적으로 중가시키지는 않는다) 그 결과를 더할 수 있다. 암호 해독은 암호화된
Figure pct00217
엘리멘트를 복구한 다음 고유한 이진 표현을 추출함으로써 실시한다. 그러나, 이 것은 GSW 암호문들을 부분적으로만 압축하고: 평문/암호 텍스트 비율은 기껏해야
Figure pct00218
이다.
[0095] 압축 가능 동형 암호화에 관해 설명하려면, (완전히) 동형 암호화의 개념을 정의하는 것으로 시작하며, 그 다음에 LWE(및 순환 보안 만일 FHE를 얻고자 한다면)를 기반으로 한 암호화를 실현하는 방법을 설명한다.
[0096] 정의들의 관점에서, 압축가능(F)HE는, 암호 해독이 제1 압축 후 "압축된 암호 해독"으로 분해(brake)된다고 주장하는 것을 제외하면, 표준 (F)HE와 매우 유사하다. 여기서 정의는 비트들에 대한 1-홉 완전 동형 암호화(1-hop fully homomorphic encryption for bits)의 단순한 경우에 대해서만 제시되지만, 동일한 유형의 정의는 다수의 홉들, 다른 평문 공간들 및/또는 부분적으로 동형인 경우에 동일하게 적용된다. (이 모든 변형에 대한 자세한 취급에 대해서는 [51] 참조)
[0097] 정의 1. 압축 가능 완전 동형 암호화 스킴(예: 도 1의 스킴 25)은 5가지 절차들을 포함한다.
Figure pct00219
:
[0098] 1)
Figure pct00220
. 보안 파라미터
Figure pct00221
를 사용하여 비밀/공개 키 쌍을 출력한다.
[0099] 2)
Figure pct00222
. 공개키와 평문 비트가 주어지면, 저속 암호문을 출력한다.
[00100] 3)
Figure pct00223
. 공개 키 pk, 회로
Figure pct00224
,
Figure pct00225
의 모든 입력 비트에 대한 벡터인, 저속 암호문들
Figure pct00226
의 벡터를 사용하여,
Figure pct00227
의 모든 출력 비트에 대한 벡터인, 저속 암호문
Figure pct00228
의 또 다른 벡터를 출력한다.
[00101] 4)
Figure pct00229
. 공용 키 pk와 저속 암호문들
Figure pct00230
의 벡터를 사용하여, 하나 또는 그 이상의 압축된 암호문들
Figure pct00231
를 출력한다.
[00102] 5)
Figure pct00232
. 비밀 키와 압축된 암호문 상에서, 일련의 평문 비트들을 출력한다.
[00103] 절차
Figure pct00233
는 각각을 개별적으로 암호 해독함으로써 압축된 암호문 벡터로 확장된다. 상기 스킴은 만일 모든 회로
Figure pct00234
및 평문 비트
Figure pct00235
에 대해,
Figure pct00236
의 모든 입력 비트에 대해 하나씩, 아래의 방정식 (1)을 참조한다면 정확하다:
Figure pct00237
(1)
Figure pct00238
의 출력이
Figure pct00239
의 출력 길이보다 길 수 있으므로 접두사가 허용된다는 점에 유의한다.
[00104] 만일 충분히 긴 출력을 갖는 모든 회로
Figure pct00240
, 평문 비트
Figure pct00241
및 방정식 1에서와 같은 저속 암호문들
Figure pct00242
에 대해 다음을 갖는다면:
Figure pct00243
, 상기 스킴은 속도
Figure pct00244
를 갖는다.
[00105] 가젯 매트릭스 H에 관해서, 예시적인 구성의 한 변형에서 새로운 기술적 컴포넌트는 "거의 정사각형(nearly square)" 가젯 매트릭스이다. 먼저, GSW에 사용되는, 통상의 미시안시오-페이커트(Micciancio-Peikert) 가젯 매트릭스[64]
Figure pct00245
가 왜 높은 속도를 주지 못하는지를 생각해 본다. 만일(위에서 논의한 대로, 그리고 [52]와 유사하게)
Figure pct00246
의 암호화가
Figure pct00247
에 대해 형식
Figure pct00248
를 갖는다면, 속도는 단순하게 생각해서 기껏해야
Figure pct00249
가 될 수 있을 뿐인데, 이는 C M 보다
Figure pct00250
배 많은 열들을 갖고 있기 때문이다. 다. 이 속도는 통상적인 G의
Figure pct00251
보다 적다.
[00106] 물론
Figure pct00252
를 사용할 수 있고, 여기서
Figure pct00253
일 때
Figure pct00254
이고,
Figure pct00255
는 여전히 최대
Figure pct00256
인 크기 계수를 갖게 될 것이다. 그러나 이 것도 최대 속도가 1/2인 스킴(
Figure pct00257
)에 대해)을 산출할 수 있는데, 그 이유는 단지 무시할 수 없는
Figure pct00258
가 적어도 2의 차원을 가져야 하기 때문이다. 1에 근접할 수 없는 속도에 도달하기 위해, G를 "거의 정사각형(nearly square)"매트릭스로 대체할 수 있다. G 로부터 요구되는 속성은 알려진 매트릭스
Figure pct00259
가 다음을 만족하도록 존재하는 것이다.
[00107] 1. F는 작은 엔트리들( =q )을 가짐
[00108] 2.
Figure pct00260
[00109] 3. F는 R에 대해 풀 랭크(full-rank)임(그러나 물론, 그 것은 G의 커널이므로,
Figure pct00261
에 대해서는 아님).
[00110] 그러한 F가 주어지면,
Figure pct00262
의 엔트리들이 F의 계수들보다 훨씬 더 크지 않도록, 모든 암호문
Figure pct00263
에 대해
Figure pct00264
를 쉽게 계산할 수 있다.
[00111] 예시적인 세팅에서, 새로운 가젯 매트릭스(혼동을 피하기 위해 G가 아닌 H로 불림)가 거의 풀 랭크 모듈로 q(그래서 "거의 정사각형")를 갖는 것이 바람직하고, 그래서
Figure pct00265
도 매우 낮은 랭크 모듈로 q를 갖는 것이 바람직하다. 일단 R에 대해 풀 랭크를 갖지만 매우 낮은 랭크 모듈로 q를 갖는 낮은-놈 매트릭스 F가 존재하면, H는 F의 mod-q 커널의 기초로 간단히 세트 된다.
[00112] 단순성을 위해 어떤 정수들
Figure pct00266
에 대해
Figure pct00267
를 갖는다고 가정하자. "약간 작은" 계수들을 갖는 매트릭스
Figure pct00268
가 생성될 수 있는데, 이는 실수들에 대해 풀 랭크를 갖지만 다음과 같은 랭크 원 모듈로 q를 갖는다.
Figure pct00269
Figure pct00270
의 엔트리들은 최대
Figure pct00271
의 크기를 가지며, 또한 모든 벡터
Figure pct00272
에 대해 다음이 성립함에 주목해야 한다.
Figure pct00273
(2)
게다가 이 경계(bound)는 다소 엄격하며, 특히
Figure pct00274
인 것에 주목해야 한다.
[00113] 이 F'는,
Figure pct00275
항등 매트릭스(identity matrix)
Figure pct00276
로 F'를 텐서링(tensoring)함으로써, 실수들에 대해서는 랭크가
Figure pct00277
이지만 (모든 r에 대해서는) 랭크가 r modulo q인 매트릭스 F를 생성하기 위해 일 예시적 실시 예에서 사용될 수 있다. 이 것은
Figure pct00278
놈들(norms) 상에서 위와 동일한 한계들(bounds)을 산출한다. 가젯 매트릭스 H는 행들이 F modulo q의 널(null) 공간에 걸쳐 있는
Figure pct00279
매트릭스이다(모든 그러한 매트릭스도 그럴 것이다). 따라서 이 예시적인 스킴을 위해,
Figure pct00280
Figure pct00281
이 세트 될 수 있다.
[00114] 아래의 압축된 암호문들의 암호 해독에서는,
Figure pct00282
의 "다소 작음"이 사용된다. 구체적으로,
Figure pct00283
인 매트릭스
Figure pct00284
가 주어지면, 먼저 매트릭스
Figure pct00285
에 F modulo q를 곱하여
Figure pct00286
를 얻는다(
Figure pct00287
이므로). 그렇지만
Figure pct00288
이고, 그러므로 정수들에 대해서
Figure pct00289
이다. 이제 F가 실수들에 대해서 풀 랭크를 갖고,
Figure pct00290
를 복구한다는 사실을 사용한다. 그런 다음
Figure pct00291
를 계산하면, H는 랭크
Figure pct00292
modulo q를 가지고 있으므로 MH로부터 M을 복구할 수 있다. 따라서 압축된 암호문들을 암호 해독할 때 정확성을 보장하려면, 압축된 암호문들의 노이즈 크기에 관한 한계(bound)
Figure pct00293
를 사용하는 것으로 충분하다.
[00115] 제한
Figure pct00294
는 실제로 필요하지 않다; 많은 변형들이 가능하다. 다음과 같은 다소 조잡한 접근법은 마주칠 가능성이 있는 모든 q에 적용된다.
Figure pct00295
인, 벡터
Figure pct00296
modulo q의 배수들의 격자를 L이라하고,
Figure pct00297
의 행들이,
Figure pct00298
에 대해서,
Figure pct00299
인, L-벡터
Figure pct00300
라고 하면, F'가 랭크 1 모듈로 q를 갖는 것이 명백하다. (F'가 정수들에 대해 풀 랭크임에 대한 증명은 생략되었다). 여기서, F'의 모든 엔트리들은 작다고 간주한다.
Figure pct00301
의 j번째 계수를,
Figure pct00302
,
Figure pct00303
에 대해
Figure pct00304
라고 하고,
Figure pct00305
라고 하면,
Figure pct00306
Figure pct00307
에 의해 크기가 제한된다.
Figure pct00308
의 경우,
Figure pct00309
Figure pct00310
에서 정수이므로 최대
Figure pct00311
modulo q가 된다. 따라서
Figure pct00312
는 최대
Figure pct00313
modulo q이다.
Figure pct00314
인 한,
Figure pct00315
이고, 즉,
Figure pct00316
Figure pct00317
사용되었을 때만큼 거의 작다. 위에서 보았듯이, q는 어찌되었던지
Figure pct00318
를 초과해야 하며, 여기서
Figure pct00319
는 암호문들의 노이즈에 관한 한계이므로,
Figure pct00320
의 조건은 이미 충족되었을 가능성이 높다.
[00116] 만약 서로 상대적으로 소수인
Figure pct00321
들에 대해
Figure pct00322
인 경우, 벡터
Figure pct00323
modulo q의 배수들의 격자 L로부터 F'를 이끌어 낼 수 있다. 구체적으로, F'의 i번째 행을
Figure pct00324
이 라고 하면, 이 F'는 풀 랭크임이 명백하고,
Figure pct00325
들이 대략 같은 크기일 때
Figure pct00326
에 필적하는 엔트리들을 갖는다.
[00117] 이제 고속 HE 스킴들 및 압축 기법들과 같은, 예시적 압축 가능 동형 암호화 스킴들을 포함하는 다른 절차들이 자세히 설명된다.
[00118] 비밀/공개 키 쌍을 생성하는, 키 생성의 경우, 두 개의 균일한 랜덤 매트릭스
Figure pct00327
Figure pct00328
와 작은 매트릭스
Figure pct00329
를 선택하고 유사 랜덤 매트릭스
Figure pct00330
을 계산할 수 있다.
[00119] 비밀 키는 매트릭스
Figure pct00331
이고 공개 키는
Figure pct00332
이며,
Figure pct00333
이다.
[00120] 암호화, 암호 해독 및 평가와 관련하여, 소형 스칼라들의 암호화 및 암호 해독과 그 위의 회로 평가는 원래의 GSW 스킴에서와 동일하게 수행될 수 있다. 즉, 스칼라
Figure pct00334
는 작은 엔트리들이 있는 매트릭스
Figure pct00335
를 선택한 다음 암호문
Figure pct00336
를 출력함으로써 암호화된다.
[00121] 암호 해독 불변량은
Figure pct00337
이고, 여기서
Figure pct00338
이다. 암호 해독을 하려면,
Figure pct00339
을 세트한 다음 G의 트랩 도어를 사용하여 작은 노이즈 E를 제거하고
Figure pct00340
를 찾는다.
[00122] 평가 역시 GSW에서와 동일하며, 암호문 더하기는 단지 암호문 매트릭스들 modulo q를 더함으로써 구현되고 곱하기는
Figure pct00341
로서 구현된다. 이들 연산들이 암호 해독 불변량을 유지한다 것을 보여주는 것은(암호화된 스칼라들이 작은 한) GSW에서와 똑같이 다시 수행된다.
[00123] 압축된 암호 해독을 수행하려면, 압축된 암호문들이 매트릭스
Figure pct00342
이고, 평문 매트릭스
Figure pct00343
를 암호화하고 있음을 기억해야 한다. 압축 암호문들에 대한 암호 해독 불변량은 낮은-놈 매트릭스
Figure pct00344
에 대해
Figure pct00345
이며, 여기서 H는 앞에서 설명한 거의 정사각형에 가까운 가젯 매트릭스이다.
Figure pct00346
인 한, 작은 노이즈 E를 제거하고 매트릭스 M을 복구하기 위해 트랩도어
Figure pct00347
를 사용하여 암호 해독을 완료할 수 있다.
[00124] 지금부터, 여러 GSW 비트 암호화들을 단일의 압축된 암호문으로 압축하는 방법을, 압축과 관련하여, 보여준다. 편의상, 위에서 설명한 부분 압축 기법을 사용하여 비트를
Figure pct00348
의 엘리멘트들을 암호화하는 (더 적은) 암호문들로 암호화하는 (많은) GSW 암호문들을 압축한 것으로 가정한다. 그러나, 만일 전체 압축을 두 단계가 아닌 한 단계로 수행한다면 최종 압축된 암호문의 노이즈 레벨은 더 낮아질 것임에 주목해야 한다. 또한 원래의 GSW 암호문들은 예시적인 압축된 HE 스킴에 적합한 키 S 아래에 있다고 가정하였다. 그렇지 않다면, 그렇게 하기 위해 "키 전환"을 할 수 있다. 키 전환 [16, 15, 39]은 동형 암호 해독을 통해 하나의 키 아래에 있는 메시지를 다른 키로 변환하지만, 노이즈 수준을 감소시키지 않고 부트스트래핑보다 계산 비용이 훨씬 덜 드는 "선형" 방식으로 변환한다.
[00125]
Figure pct00349
GSW 암호문들
Figure pct00350
,
Figure pct00351
에서, 각 암호문이
Figure pct00352
의 엘리멘트
Figure pct00353
을 암호화한다고 가정해 본다. 그러면,
Figure pct00354
를 갖게 된다.
[00126] 이들 암호문들 전부를 단일의 압축된 암호문으로 압축하려면, 엔트리
Figure pct00355
에는 1을 그리고 그 밖의 장소에는 0을 갖는 정사각형
Figure pct00356
싱글톤 매트릭스를
Figure pct00357
로, 즉
Figure pct00358
(여기서
Figure pct00359
는 위치들
Figure pct00360
에, 각각, 1을 갖는 차원-
Figure pct00361
유닛 벡터들임)로 표시해야 한다. 또한 위(top)에 k개의 0의 행들을 갖는
Figure pct00362
의 패드된 버전,
Figure pct00363
,을
Figure pct00364
로 표시해야 한다.
Figure pct00365
Figure pct00366
를 계산함으로써 압축된다.
Figure pct00367
Figure pct00368
매트릭스들이고, 따라서
Figure pct00369
Figure pct00370
매트릭스들이며,
Figure pct00371
Figure pct00372
매트릭스들이므로, 필요에 따라
Figure pct00373
가 됨을 먼저 주목해야 하고 된다. 그러면 다음을 관찰할 수 있다.
Figure pct00374
(3)
여기서
Figure pct00375
이다. (등호
Figure pct00376
Figure pct00377
이고
Figure pct00378
이므로 유지되고 따라서
Figure pct00379
이다.)
[00127] 위의 압축된 암호 해독이 매트릭스 M를 복구한 다음 M의 엔트리들인
Figure pct00380
를 읽어낼 수 있다는 점을 주목해야 한다.
[00128] 기본적인 압축 가능한 HE 인터페이스들에 더하여, 일 예시적인 스킴은 또한 PIR 애플리케이션에서 도움이 되는 여러 다른 연산들을 지원한다. 이들 연산들은 아래에서 설명된다.
[00129] 절차(i)로 표시된 절차, 압축된 암호문들의 암호화와 관련하여, 작은 엔트리들을 갖는 랜덤의
Figure pct00381
를 선택하고, 유사랜덤
Figure pct00382
와 다소 중복된 평문
Figure pct00383
을 계산하여 암호문
Figure pct00384
를 출력함으로써 압축된 암호문으로 매트릭스
Figure pct00385
를 직접 암호화할 수 있다.
[00130] 절차(ii)로서 표시된 절차, 압축된 암호문을 위한 부가적 동형과 관련하여, 압축된 암호문들이 작은 스칼라들에 의해 더해지고 곱해질 수 있다는 것은 분명하다. 실제로 만일
Figure pct00386
Figure pct00387
에 대한 매트릭스들이고
Figure pct00388
가 작은 스칼라이며,
Figure pct00389
에 대해
Figure pct00390
이면,
Figure pct00391
이고
Figure pct00392
가 된다.
Figure pct00393
Figure pct00394
Figure pct00395
보다 더 작은
Figure pct00396
규범을 갖는 한, 상기 결과들은
Figure pct00397
Figure pct00398
에 대해, 각각, 유효한 압축된 암호문이다.
[00131] 절차 (iii)으로 표시된 절차, GSW 암호문들에 압축된 암호문을 곱하는 것과 관련하여, 작은 스칼라
Figure pct00399
를 암호화하는 GSW 암호문 C에
Figure pct00400
E에 대해 매트릭스 M을 암호화하는 압축된 암호문
Figure pct00401
를 곱하여 매트릭스
Figure pct00402
을 암호화하는 압축된 암호문
Figure pct00403
를 얻을 수 있음을 또한 알 수 있다. 이 것은
Figure pct00404
를 세트 함으로써 행해진다(
Figure pct00405
Figure pct00406
Figure pct00407
행들을 갖는 것으로 잘 정의됨을 주목해야 한다). 정확성을 위해,
Figure pct00408
에 대해
Figure pct00409
이고
Figure pct00410
되며, 따라서 다음과 같이 됨을 기억해야 한다.
Figure pct00411
(4)
Figure pct00412
이것은 노이즈
Figure pct00413
가 여전히 한계
Figure pct00414
보다 더 작은 한
Figure pct00415
의 유효한 압축된 암호화이다.
[00132] 절차(iv)로 표시된 절차, GSW 암호문을 평문 매트릭스로 곱하는 것과 관련하여, 압축된 암호문들에 의해서 GWE 암호문들에 오른쪽-곱하기를 하게 하는 동일 기술이 평문 매트릭스들에 의해서 그들을 오른쪽-곱하기를 하게 하는 것을 알 수 있다. 사실 만일
Figure pct00416
가 평문 매트릭스이고 M'이 그것의 패드된 버전
Figure pct00417
이라면, 다소 중복된 매트릭스
Figure pct00418
는 노이즈 없는 암호문으로 간주될 수 있고 (
Figure pct00419
임에 주목한다) 따라서 위와 같이 GSW 암호문에 의해서 곱해질 수 있다. 유일한 차이점은 이 경우 큰 스칼라를 암호화하는 GSW 암호문을 사용할 수 있다는 것이다. "노이즈 없는 암호문"
Figure pct00420
Figure pct00421
을 가지고, 따라서 위로부터 항
Figure pct00422
Figure pct00423
가 아무리 크더라도 최종 노이즈 항에는 나타나지 않는다.
[00133] 예시적인 PIR 애플리케이션을 논의할 때 많은 추가의 가능한 최적화들 및 변형들이 아래에서 설명된다. 일 예시적인 주요 최적화는 더 큰 노이즈를 처리하기 위해 모듈러스-전환 기술을 사용하는 것이다.
[00134] 파라미터를 세트하는 것과 관련하여, 매트릭스 차원들
Figure pct00424
, 노이즈 한계들
Figure pct00425
Figure pct00426
를 포함하는- 다양한 파라미터들을 보안 파라미터의 함수로 세트하는 방법은 다음과 같다. 만일 부트스트래핑이 없는 GSW의 다소 동형인 변형이 사용된다면, 평가된 암호문들에서 노이즈를 제한하는 파라미터
Figure pct00427
은 계산되기를 원하는 함수들에 따라 달라질 수 있다. 하나의 그러한 구체적인 예(완전히 지정된 상수들을 갖는)가 예시적인 PIR 애플리케이션을 위해 아래에 제공된다. 여기에서 파리미터의 점근적 분석이 부트스트랩이 있는 완전-동형 스킴으로서 GSW를 사용할 때 제공된다. 그 결과, 암호화된 데이터에 대한 긴 출력(GSW FHE 체계 사용)으로 임의의 함수를 평가한 다음, 최종 암호화된 비트들을 암호 해독 가능한 상태인 압축된 암호문들로 팩(pack)할 수 있다.
[00135] 일 예시적인 실시 예는 압축된 암호문들이 주어진 선택의 일부 작은
Figure pct00428
에 대해
Figure pct00429
의 속도를 갖는 것을 보장한다. 이것은
Figure pct00430
가 필요하고, 그래서
Figure pct00431
모두를 적어도
Figure pct00432
로 세트 하면 충분하다는 것을 의미한다. 거의 정사각형 가젯 매트릭스 H에 대해
Figure pct00433
를 사용하는 것은 암호 해독을 가능하게 하기 위해
Figure pct00434
이하의 노이즈를 유지해야 한다는 것을 의미한다.
[00136] 참고문헌 [43, 17]에 따르면,
Figure pct00435
크기의 신선-암호문 노이즈와 차원
Figure pct00436
의 암호문 매트릭스들을 갖는 GSW를 사용할 때, 임의 계산이 수행될 수 있고 그 다음 그 결과를 부트스트래핑 하는 것이 수행될 수 있으며, 그리고 부트스트래핑 이후의 노이즈는
Figure pct00437
이하로 제한된다. 위의 기술들을 사용하는 부분 압축과 방정식 (3)으로부터의 추가 압축을 한 단계로 통합하면, 한 세트의
Figure pct00438
오류 매트릭스들
Figure pct00439
를 가질 수 있고, 이 모두는
Figure pct00440
를 만족한다. 따라서 압축 후의 오류 항은
Figure pct00441
이 되고, 그 크기는
Figure pct00442
에 의해서 제한된다. 따라서 한계
Figure pct00443
로 상기 스킴을 인스턴스화하면 충분하다.
Figure pct00444
가 되어야하기 때문에 정확성 제약은 다음과 같이 결정된다.
Figure pct00445
(5)
[00137]
Figure pct00446
를 세트 한다는 것은
Figure pct00447
가 되어야 한다는 것을 의미한다. 따라서, 상기 스킴의 보안은 간격
Figure pct00448
를 갖는 LWE의 경도에 의존하며, 특히 만일
Figure pct00449
이 상수이면 다항식 간격을 갖는 LWE에 의존할 수 있다.
[00138] 노이즈의 성장을 늦추기 위해 적용될 수 있는 많은 기술이 있다는 점에 주목해야 한다. 이러한 기술들(예를 들어, 모듈러스 스위칭) 중 다수는 예시적인 PIR 애플리케이션과 관련하여 아래에 설명된다. 항상 필요할 것 같은 점근적 동작 -
Figure pct00450
을 변경하지는 않지만, 상기 지수에서 상수를 크게 향상시킬 수 있다.
[00139] 가젯 매트릭스 H가 없는 변형과 관련하여 설명하면, 예시적인 스킴의 변형은 가젯 매트릭스 H를 사용하지 않지만 메시지가 노이즈보다 더 크게 되도록 상기 메시지를 스케일 업하는 것에 의존한다는 점에서 리제프(Regev) 암호화와 더 유사하다고 할 수 있다. 구체적으로, 이 스킴은 암호문 모듈러스
Figure pct00451
보다 더 작은 평문 모듈러스를 특징으로 한다. 압축된 암호문들은, 평문 벡터
Figure pct00452
를 암호화하는, 벡터들
Figure pct00453
이고, 암호 해독 불변량은 낮은-놈 벡터
Figure pct00454
에 대해
Figure pct00455
이다. 한계
Figure pct00456
이고,
Figure pct00457
이면, 평문은
Figure pct00458
를 통해 복구될 수 있다(Regev 암호화에서 와 마찬가지로).
[00140] 압축된 암호문들의 속도는
Figure pct00459
이다. 이전과 같이 작은 오류
Figure pct00460
를 보장하고
Figure pct00461
를 세트 할 수 있다. 이것은
Figure pct00462
을 산출하고,
Figure pct00463
와 함께 속도
Figure pct00464
를 산출한다.
[00141] 비트 암호화들을 부분적으로 스칼라 암호화들로 압축할 때
Figure pct00465
에 의해서 스케일 해야 한다는 점을 제외하면 GSW 암호문들을 압축하는 것은 위와 유사하다. 즉,
Figure pct00466
GSW 암호문들이 비트들
Figure pct00467
를 암호화하는 경우, 위에 제시된 기술은 단일 GSW 암호문 암호화
Figure pct00468
로 그것들을 부분적으로 압축하는 데 사용될 수 있다. 이것은 일부
Figure pct00469
에 대해
Figure pct00470
형식의 스칼라를 암호화하는 GSW 암호문을 산출한다.
Figure pct00471
의 그러한 암호문
Figure pct00472
Figure pct00473
를 암호화하는 경우,
Figure pct00474
를 세트함으로써 이들은 압축되고, 여기서
Figure pct00475
가 k개의 0들로 프리펜드된 i번째 유닛 벡터이다. (즉,
Figure pct00476
그 결과는 벡터
Figure pct00477
를 압축된 암호화이다.
[00142] 이 변형도 또한 압축된 암호문들의 부가적 동형과 GSW 암호문 오른쪽에 압축된 암호문을 곱하는 기능(상기 곱을 암호화하는 압축된 암호문을 산출하는)을 제공한다는 사실을 쉽게 확인할 수 있다.
[00143] 암호문들의 (F)HE 압축을 위한 일반적인 스킴들이 설명되었으므로 이들 스킴들을 개인 정보 검색(PIR)에 적용하는 방법에 대해 설명한다. PIR을 사용하면 서버가 어떤 엔트리들이 검색되는지를 알게 하지 않고도 클라이언트가 서버가 보유한 데이터베이스로부터 엔트리들을 검색할 수 있다. 순진한 솔루션은 서버에게 전체 데이터베이스를 클라이언트로 전송하게 하는 것이며, 코어 등(Chor et al.)[25]은 보다 대역폭 효율적인 솔루션에 대한 연구를 시작했다. PIR 프로토콜들은 대역폭 오버헤드를 줄이는 방법들(안전하지 않은 솔루션과 비교하여)을 제공하는데, 이들은 데이터베이스의 N개의 엔트리들을 서브리니어로 만든다.
[00144] 그 목적을 위해 동형 암호화를 사용할 수 있다는 것은 잘 알려져 있다. 클라이언트는 원하는 엔트리의 인덱스를 암호화할 수 있고 서버는 테이블 룩업 기능의 동형 평가를 수행하여 암호화된 엔트리를 반환할 수 있다. 이 솔루션은 서버가 단일의 암호화된 엔트리를 반환하므로 대역폭 오버헤드는 대부분 엔트리들의 수와 무관한 동형 스킴의 평문 대 암호문 비율일 뿐이다. 그러나, 만일 엔트리들 자체가 크다면(각 영화의 길이가 몇 기가바이트인 영화 데이터베이스에서와 같이) 이 N-독립적인 오버헤드 조차도 
Figure pct00478
매우 비용이 많이 들 수 있다. 더 자세한 논의들은 [55, 1, 60]을 참조한다. 분명히, 압축 가능한 HE 스킴이 있다면, 대역폭 오버헤드를 임의로 1에 가깝게 만드는 데 사용할 수 있다.
[00145] 대규모 엔트리들을 위한 최초의 단일-서버 속도(rate)-1 PIR 스킴은 카야이아스 등(Kiayias et al.) [55]이, 임의의 1에 가까운 평문 대 암호문 확장 비율을 지원하는 담가드-주리크(Damgεrd-Jurik) 암호화 방식[31]을 사용하여, 기술하였다. 그러나 담가드-주리크는 부가적으로만 동형이기 때문에 분기 프로그램들 [53]을 위한 이샤이-파스킨(Ishai-Paskin) 동형 구성(내부적으로 담가드-주리크 사용)에 의존하여, 그들의 솔루션은 훨씬 더 복잡하게 된다. 따라서, 예시적인 압축가능 HE 스킴들은, 담가드-주리크의 N-번째 잔류 경도 가정 대신 (양자 안전) LWE 경도에 의존하는, 속도-1 PIR을 얻기 위한 새로운 길을 제공한다. 대역폭을 넘어, 실제 PIR 시스템들은 계산 효율성에 대해서도 걱정해야 한다. PIR 스킴은 모든 질의에 대해 데이터베이스의 모든 비트들을 처리해야 하므로, 대부분의 단일 서버 PIR 스킴은 각 비트에 대해 상당히 비싼 처리를 적용한다. 특히 참조문헌[55]의 속도-최적 스킴은 RSA 모듈러스(최소 2048비트)에 비트 모듈로당 최소 한 번 곱하기를 적용해야 한다. 이것은 2007년에 시온(Sion)과 카부나(Carbunar)[77]의 연구에서 강조되었으며, 이 연구는 "최근 과거의 실제 하드웨어 상에 사소하지-않은 단일 서버 PIR 프로토콜을 배치하는 것이 전체 데이터베이스를 사소하게 전송하는 것보다 훨씬 덜 시간-효율적이었다" 고 결론을 내렸다. 전체 데이터베이스를 전송하는 것이 계산상 무료가 아니라는 점에 유의해야 한다. 그것은 통신 보안을 위해 전체 데이터베이스를 최소한 암호화하는 것을 포함한다. 그럼에도 불구하고 시온-카부나 연구 후 10년이 넘는 기간 동안 상기 인스턴트 작업(instant work) 이전에는 계산 측면에서 사소한 스킴과 경쟁할 수 있는 단일 서버 PIR 스킴이 없었다. 아래에서, 대역폭 효율적일 뿐만 아니라 전체 데이터베이스 AES 암호화보다 성능이 우수한 구성을 산출하는, 예시적인 스킴들에 대해 일련의 최적화들을 설명한다.
[00146] 예시적인 최적화된 PIR 스킴들에 관한 설명은 기본 계층적 PIR에서 시작하고, 여기서 
Figure pct00479
데이터베이스 엔트리들은 차원들
Figure pct00480
의 하이퍼큐브에 배열되고 상기 스킴은 차수-d 동형(degree-
Figure pct00481
homomorphism)을 사용한다. 
[00147] 1) 클라이언트의 인덱스 
Figure pct00482
는 기초 
Figure pct00483
의 혼합 기수(mixed radix)로, 즉
Figure pct00484
가 되게 하는
Figure pct00485
로서 표현된다. 클라이언트의 메시지는 모든
Figure pct00486
들의 암호화된 단항 표현(an encrypted unary representation)을 획득하기 위해 처리된다. 즉, 각 차원 j에 대해 암호화된 비트들의 차원-
Figure pct00487
벡터가 획득되며, 여기서
Figure pct00488
번째 비트 1이고 다른 모든 비트들은 0이다.
[00148] 2) 제1 차원의 처리는, 각 하이퍼-행
Figure pct00489
에,
Figure pct00490
의 첫번째 하이퍼-행만 제외하고 모두 0인, 상기 제1 벡터로부터의 u번째 암호화 비트를 곱함으로써 수행된다. i번째 하이퍼-행(예를 들어, 제1 차원에서)은 단지 제1 인덱스가 i인 하이퍼 큐브의 하나의 슬라이스일 뿐임에 주목해야 한다. 즉, 하이퍼큐브 내의 모든 엔트리들의 인덱스는 (i, *, *,.., *)형식을 갖는다(여기서 *는 무엇이든 될 수 있다). 마찬가지로 제2 차원의 i번째 하이퍼 행도 (*, i, *,.., *)형식의 인덱스들을 갖는 모든 엔트리들이다. 그 다음 모든 암호화된 하이퍼-행들을 더하여, 데이터베이스의
Figure pct00491
번째 하이퍼-행으로만 구성되는, 차원
Figure pct00492
의 더 작은 하이퍼 큐브를 얻는다.
[00149] 3) 선택된 엔트리 i만으로 구성된 0차원 하이퍼큐브를 남길 때까지 다른 차원들을 한 번에 하나씩 접기 위해 유사한 방식이 사용된다.
[00150] 데이터베이스 크기를
Figure pct00493
으로부터
Figure pct00494
으로 감소시키는, 제1 단계(단계 (1))는 가장 많은 데이터를 처리하기 때문에 통상적으로 가장 비용이 많이 든다는 점에 유의해야 한다. 반면에 이 단계는 암호문과 평문의 곱하기들(ciphertext-by-plaintext multiplications)만 (다음 단계에서 요구되는 암호문과 암호문의 곱하기들과 비교하여)요구하므로 이 단계는 때때로 다른 단계들보다 더 잘 최적화될 수 있다.
[00151] 이제 예시적인 최종 구성을 얻기 위해 유도 및 최적화의 순서가 설명되며, 예시적인 최종 구성은 결과적으로 계산적으로도 효율적인 고속 PIR 스킴을 달성한다. 이 구성은 대역폭과 계산 간의 절충을 특징으로 한다. 아래에서 속도 4/9를 갖는 변형이 설명된다.
[00152] 링-LWE 스킴을 사용하면, LWE 스킴과 마찬가지로, 링(또는 모듈) 변형으로 전환함으로써 성능을 향상시킬 수 있고, 여기서 LWE 비밀은 큰 확장 필드에 대해 낮은 차원을 갖는다. 큰 매트릭스들을 조작해야 하는 대신에, 이들 변형들은 동일의 큰 확장 필드에 대해서 낮은-차원 매트릭스들을 조작하는데, 이는 기술하는데 더 적은 비트들이 소요되고(FFT들을 사용하여) 더 빠르게 곱해질 수 있다. 비교 가능한 보안을 얻기 위해, 만일 기본 LWE 스킴이 차원 k의 LWE 비밀들을 필요로 한다면, 새로운 스킴이
Figure pct00495
가 되도록, 차수 d의 확장 필드에 대해 차원-k' 비밀들을 갖게 될 것이다. (링-LWE의 경우
Figure pct00496
이고
Figure pct00497
이다) 상기 스킴에서 다양한 매트릭스들이 확장-필드 엘리멘트들로 구성되며 그들의 차원들은
Figure pct00498
Figure pct00499
( 각각
Figure pct00500
대신에)이다. 아래에서, 표시
Figure pct00501
Figure pct00502
은 RLWE 컨텍스트에서 더 작은 값들을 강조하기 위해 사용된다.
[00153] FFT들에 관한 절약과 관련하여, 사용될 수 있고, 예시적인 PIR 스킴들을 보다 효율적으로 만드는(대형 데이터베이스들에 대해서) 한 가지 최적화는 처리 동안 FFT들의 수를 최소화하기 위해 데이터베이스를 사전 처리하는 것이다. 상기 인스턴트 스킴들의 링-LWE 변형에서 연산들은 엘리멘트들이 평가(CRT) 기반으로 표현될 때 가장 효율적인 기본 필드에 대한 매트릭스 곱하기와 계수(디코딩) 기반으로 표현이 필요한
Figure pct00503
의 애플리케이션들을 포함한다. 둘 사이의 변환은 FFT를 사용하여 준선형 시간으로(in quasi-linear time) 수행될 수 있지만, 그 것은 구현에 사용되는 단연코 가장 비용이 많이 드는 연산들이다. (예시적인 통상적인 크기의 경우 이들 표현들 간의 엘리멘트를 변환하는 것은 CRT 기반으로 표현된 두 엘리멘트들을 곱하는 것보다 10-20배 더 느리다.)
[00154] XPIR 연구[1]에서와 같이, 데이터베이스를 사전-처리하고 그것을 모두 CRT 표현에 넣는다면 FFT들의 수를 크게 감소시킬 수 있다. 이렇게 하면, 클라이언트의 메시지가
Figure pct00504
들의 암호화된 단항 표현(데이터베이스에서 엔트리들의 크기와 무관함)을 얻기 위해 처리될 때 그리고 그런 다음 제1 차원이 접힌 후에만 FFT들을 계산하면 된다(따라서 FFT들은
Figure pct00505
 데이터베이스 엔트리들을 암호화하는 압축된 암호문들에 대해서만 적용된다).
[00155] 만일
Figure pct00506
을 충분히 크게(FFT 오버헤드에 비해) 세트 한다면, 제1 차원을 접은 후 FFT들은 상각 되어(amortized) 중요하지 않게 된다. 반면에, 초기 FFT들(이들 중 하나가 약 
Figure pct00507
를 가짐)도 또한 중요하지 않게 되려면, 
Figure pct00508
은 충분히 작게 (
Figure pct00509
및 엔트리들의 길이-L에 비해) 세트 해야 한다.
[00156] 아래 설명에서,
Figure pct00510
인 다양한 파리미터들이 예시되는데, 이들은 좋은 절충안을 제공하는 것으로 보인다. 다른 
Figure pct00511
들에 대해서, 그들을 크게 만들 이유가 (거의) 없기 때문에, 
Figure pct00512
를 사용할 수 있다. 아래의 구성에 대해서 그러한 작은 
Figure pct00513
들을 얼마나 많이 사용할 수 있는 지에는 (거의) 제한이 없다는 점에 주목해야 한다. 아래에 일 예시적 구성은
Figure pct00514
엔트리들이 있는 데이터베이스에 대해 예시하지만 상기 구성은 훨씬 더 큰 데이터베이스들을 처리할 수 있다. (동일 파리미터들은 무한대까지, 적어도
Figure pct00515
엔트리들까지는 작동한다.)
[00157] 클라이언트-측 암호화와 관련하여, PIR 스킴의 컨텍스트에서, 암호화 주체는 암호 해독 키를 가진 클라이언트이다. 따라서 클라이언트는, 각 암호문에 대해 새로운 유사랜덤 공개 키
Figure pct00516
 를 선택하고
Figure pct00517
를 세트 함으로써, 비밀 키를 사용하여 암호문들을 생성할 수 있다. 이것은 약간 더 작은 노이즈의 암호문들, 즉 낮은-놈 
Figure pct00518
들의 암호문들을 생성한다(공개 키 암호화된 암호문들로부터 얻어진
Figure pct00519
와 반대되는).
[00158] 일 예시적인 PIR 구성은 작은 차원들
Figure pct00520
을 사용하기 때문에, 클라이언트는 이들 차원들을 위해 암호화된 단항 벡터들을 직접 전송할 수 있다. 즉, 각 
Figure pct00521
에 대해, 클라이언트는 네개의 암호문들 
Figure pct00522
를 전송하는데,
Figure pct00523
는 1을 암호화하고 다른 것들은 0을 암호화한다.
[00159] 그러나, 제1 차원의 경우 큰
Figure pct00524
이 있으므로, 클라이언트는
Figure pct00525
의 비트들의 암호화들을 전송하고 GSW 동형은 이 차원을 위해 암호화된 단항 벡터를 계산하는 데 사용된다. 따라서 클라이언트 전송하는 전체 암호화된 비트들은
Figure pct00526
암호화된 비트들이고, 예시적인 크기들의 예시에서, 이 것은
Figure pct00527
암호화된 비트들에 이른다.
[00160] 다수의
Figure pct00528
매트릭스들과 관련하여, 일 예시적인 스킴에서 축적된 노이즈는
Figure pct00529
형태의 많은 항들을 갖지만, 그들 모두가 동일하게 생성되는 것은 아니다. 특히, 제1(큰) 차원
Figure pct00530
을 접을 때, GSW 암호문들은 평가되고 그들에서 노이즈는 그들의 합계 그 자체이다. 이들 GSW 암호문들이 평문 매트릭스에 의해서 곱해졌을 때, 더 큰 값인,
Figure pct00531
이 얻어진다. 반면에, 다른 (작은) 차원들의 경우에, 이들은 새로운 암호문들에 의해서 곱해지고, 따라서 훨씬 더 작은 노이즈가 달성된다. 이러한 불균형은 자원들의 낭비로 이어진다.
[00161] 또한, 클라이언트 비트들의 초기 처리 동안 
Figure pct00532
에 의한 곱하기는 소량의 데이터에만 적용된다. 그러나 GSW 매트릭스들과 평문 데이터 간의 곱하기는 데이터베이스의 모든 데이터를 건드린다. 따라서 후자가 훨씬 더 비용이 많이 들어가므로, 관련된 매트릭스들의 차원을 가능한 한 많이 감소시키는 것이 유리할 수 있다.
[00162] 이들 모든 이유들 때문에, 계산의 다른 부분들에서 서로 다른 G 매트릭스들을 사용하는 것이 좋다. 특히, 클라이언트의 비트를 초기에 처리할 때 매우 넓고-짧은 G 매트릭스들(
Figure pct00533
의 더 작은 놈을 갖는)이 사용될 수 있고, 나중에는 더-정사각형/더높은-놈의 G 매트릭스들이 사용될 수 있다.
[00163] 모듈러스 전환을 위해서, G 매트릭스들의 세심한 균형을 유지하더라도, 예시적인 압축된 스킴을 위해 필요한 만큼 노이즈를 작게 만들 수 없다. 따라서 참조문헌[16, 15]으로부터의 모듈러스 전환 기법이 사용될 수 있다. 즉, 계산은 큰 모듈러스
Figure pct00534
에 관해 수행되고, 그 다음 최종 결과를 클라이언트로 전송하기 전에 더 작은 모듈러스 q로 전환되고, 이에 의해서 노이즈는 대략
Figure pct00535
만큼 스케일된다.
[00164] 일 예시적인 초기 노이즈 분석은 표시하기를, 넓고 짧은 매트릭스를 사용하면 계산 내내 노이즈를 매우 작게 유지할 수 있기 때문에, 만일 GSW G 매트릭스가 매우 넓고 짧게 세트 되었다면, 대략 64비트의 모듈러스 q를 사용하는 것이 가능할 수 있다고 표시하였다. 그러나 이 것은 서버에서 대역폭, 계산 및 스토리지의 큰 증가를 초래했을 것이다. 예를 들어, 서버는, 평문 매트릭스 M 자체보다 32배 이상 큰, 모든 평문 매트릭스
Figure pct00536
를 CRT 기반으로 저장해야 한다. (또한 이 경우 1/3 보다 나은 속도를 달성할 수 있는 파라미터가 발견되지 않았다.)
[00165] 더 나은 선택은, 적어도 초기에는, 상당히 큰 모듈러스를 사용하는 것이고, 그 다음 모듈러스 전환을 사용하여 그 것을 64비트들(또는 아마도 더 작은 값)로 스케일 다운하는 것이다. 이것에 의해서 시스템의 노이즈에 대한 내성을 높일 수 있으므로 많은 파라미터들이 개선된다. 예를 들어,
Figure pct00537
를 사용하여 실제 데이터를 위해 G 매트릭스를 항등 매트릭스로 대체할 수도 있다. 비록 그것이 두 배 차원의 LWE 비밀을 사용하고 두 배 이상의 큰 숫자를 써야 한다는 것을 의미하더라도, 항등 매트릭스를 사용하면 여전히 큰 상수 팩터를 절약할 수 있다. 또한, 그 것은 더 정사각형의 매트릭스 H(예:
Figure pct00538
)를 사용하게 하고, 이에 의해서 더 높은 속도를 얻을 수 있게 한다.
[00166] 모듈러스 전환을 사용하면 비밀키가 균일하게 선택되지 않고 오류 분포로부터 선택되어야 하는 점을 유의해야 한다. (또한 모듈러스 전환이 구현될 수 있는 방식에서, 일부 비트들의 경우,
Figure pct00539
자체보다
Figure pct00540
가 암호화되며, 여기서
Figure pct00541
이다).
[00167] 자세한 PIR 스킴의 예가 지금부터 설명된다. 이 것은, 부분적으로, 도 4를 참조하여 설명되며, 도 4는 PIR에 대한 애플리케이션을 갖는 압축 가능 (F)HE를 사용하는 일 예시적 방법의 플로차트이다. 이 예에서, 일 예시적인 구성은 인덱스
Figure pct00542
와 차원
Figure pct00543
, 즉
Figure pct00544
의 원분 링(the cyclotomic ring)으로 구성된다. 새로운 GSW 암호문의 암호문 모듈러스는
Figure pct00545
Figure pct00546
(둘 모두는 유니티(unity)의 원시
Figure pct00547
번째 근들을 갖고 따라서 FFT들 모듈로
Figure pct00548
를 수행하는 것이 쉽다)를 갖는, 복합
Figure pct00549
이다. 링들 모듈로 아래에서 이 세 모듈로들(moduli)은
Figure pct00550
로 표시된다.
[00168]
Figure pct00551
에 대해 링-LWE가 이 예에서 사용되며, 특히 LWE 비밀은
Figure pct00552
내의 스칼라이고, 오류 분포로부터 선택된다[7](참조문헌[2]에서 테이블 1 참조, 최대 111비트들 크기의 모듈러스
Figure pct00553
를 사용하여 128비트들의 보안 레벨을 산출함).
[00169] 이 예의 상기 예시적인 구성의 다양한 매트릭스들에서, 차원들
Figure pct00554
,
Figure pct00555
,
Figure pct00556
이 사용되고 평문 엘리멘트들은
Figure pct00557
로부터 얻어진다. 따라서
Figure pct00558
의 속도가 달성될 수 있다. 그러나 처리하는 동안 대부분의 암호문들은 더 큰
Figure pct00559
로 모듈로가 될 것이므로, 클라이언트들에 전송되기 전에 이들은 모드-전환되어 q로 다운된다. 위에서 설명한 구성은 2x3 매트릭스 H로 사용된다.
[00170] 도 4(a, b)는 좌측에는 클라이언트(110)에 의해서 수행되는 가능한 연산들을 예시하고 우측에는 서버(170)에 의해서 수행되는 연산들을 예시한다. 도 4에서, 이 예를 위해 압축 가능 (F)HE 스킴을 셋업하고 사용하기 위한, 도 1의 조정 연산들은 도시되지 않는다. 그러나, 수행되는 하나의 셋업 연산이 블록(405)(도 4a)에 의해서 예시되며, 여기서 서버(170)는 사용자 개인 정보의 평문의 인덱스된(예를 들어, 계층적) 데이터베이스를 구축하며, 상기 데이터베이스는 N 데이터베이스 엔트리들을 갖고, 상기 N 데이터베이스 엔트리들은 N 차원들(예를 들어, ND 베이스들을 갖는)의 하이퍼큐브에 위치한다. 이 데이터베이스(28-1)는 클라이언트(110) 또는 다른 제공자들에 의해 제공되는 사용자(201)의 개인 정보를 사용하여 구축될 수 있다. 아래 예는 데이터베이스(28-1)의 평문을 사용하지만, 데이터베이스(28-1)는 사용자(201)로부터의 암호문(평문 대신)을 저장할 수도 있다. 
[00171] 일 예에서, 블록(406)에서, 서버(170)은 사용자(201)과 연관된 평문의 크기-N 데이터베이스를 구축하고, 그리고 블록(408)에서, 서버(170)은 상기 크기-N 데이터베이스를 하이퍼큐브 데이터베이스로 분할한다. 더 자세히 설명하면, 크기-N 데이터베이스는 차원들
Figure pct00560
의 하이퍼큐브로 분할된다. 엔트리
Figure pct00561
를 검색하고자 하는 클라이언트는 먼저 모든
Figure pct00562
에 대해
Figure pct00563
Figure pct00564
로 i를
Figure pct00565
로서 나타낸다. 블록(415)에서, 클라이언트(110)은 클라이언트가 원하는 데이터베이스 엔트리의 인덱스 i를 암호화하며, 예를 들어, 인덱스 i는 N D 베이스들의 혼합 기수(a mixed radix)로 표현된다. 이것은 상기 Encrypt(암호화) 절차를 사용한다. 추가로 더 자세히 설명하면,
Figure pct00566
Figure pct00567
의 비트들이라고 하고, 그 다음 클라이언트(110)이 GSW 암호문들(모듈로
Figure pct00568
)의 스칼라들
Figure pct00569
Figure pct00570
를 암호화한다고 하자. 클라이언트는 GSW 암호문들을 사용하여 유닛 벡터
Figure pct00571
의 비트들을 암호화하는데, 여기서 상기 유닛 벡터
Figure pct00572
는 위치
Figure pct00573
에서는 1이고 다른 위치들에서는 0이다. 이 예에서, 세 개의 다른 가젯 매트릭스들이 이들 GSW 암호문들을 위해 사용된다:
[00172] a)
Figure pct00574
의 LSB(GSW를 사용하여 곱해질 최우측 비트)를 위해, 가젯 매트릭스 G는 모두 제거되고 항등 매트릭스(the identity)만 사용되지만, 비트
Figure pct00575
Figure pct00576
에 의해서 곱해진다. 즉,
Figure pct00577
이 성립하도록 하는
Figure pct00578
이 존재한다.
[00173] b)
Figure pct00579
의 다른 비트들을 위해, 넓고 짧은
Figure pct00580
가 사용되며, 여기서 
Figure pct00581
이다. 각 비트 
Figure pct00582
Figure pct00583
가 성립하도록 하는
Figure pct00584
에 의해서 암호화된다.
[00174] c) 다른 
Figure pct00585
들(
Figure pct00586
)의 단항 표현을 인코드하는 비트들을 위해, 다소 직사각형(3x6) 매트릭스 
Figure pct00587
가 사용되며, 여기서 
Figure pct00588
이다.
[00175] 클라이언트(110)는, 블록(420)에서의 암호화된 인덱스를 사용하는 서버로부터 아이템의 요청 검색의 일부로서, 모든 이들 암호문들을 서버로 전송한다.
Figure pct00589
의 비트들의 암호화는 상기 LSB를 암호화하는 9개의 엘리멘트들과 상기 다른 7 비트들을 암호화하는
Figure pct00590
엘리멘트들로 구성된다. 블록(425)에서 서버는 요청을 수신한다. 블록(430)에서, 서버(170)는 (예를 들어, D) 인덱스 엘리멘트들, 예를 들어, (i 1 ,…,i D )의 단항 표현을 획득하기 위해 클라이언트의 메시지를 처리한다. 이것은, 위에서 설명한 바와 같이, 압축된 암호문들에 의해서 GSW 암호문들을 곱하는, 절차 (iii)을 사용할 수 있다는 것을 주목해야 한다. 예를 들어, 상기 요청은 GSW 질의 암호문들의 형태일 수 있다. 구체적으로는, 상기 다른 인덱스들
Figure pct00591
의 각각을 위해,
Figure pct00592
엘리멘트가 사용되어
Figure pct00593
의 단항 표현을 암호화한다.
Figure pct00594
데이터베이스 엔트리들을 갖는 이 수치적 예에서,
Figure pct00595
들이 6개 더 있으므로 클라이언트가 전송하는 링 엘리멘트들의 수는
Figure pct00596
이 된다. 각 엘리멘트는 명시하기 위해
Figure pct00597
비트를 취하므로 따라서 클라이언트에 의해 전송되는 총 비트들의 수는
Figure pct00598
이된다(벌크로 198MB). 클라이언트 질의 크기가 중요한 애플리케이션들을 위해, 파라미터를 조정(tweak)할 수 있는데, 예를 들어 속도에서 2의 팩터(factor)를 포기하고 클라이언트 질의 크기에서 2-4배 향상시킬 수 있다. 더 좋은 예로서, 실 PIR(SealPIR) 연구[5]의 질의-확장 기술이 상기 인스턴트 세팅에 적용될 수 있는데, 이 기술은 속도를 저하시키지 않고 클라이언트 질의 크기를 크게 줄일 수 있다. 
[00176] 이것은 데이터베이스(28-1)가 블록(430) 이전에 사전 처리되었다고 가정한다는 점에 유의한다. 즉, 블록(410)에서 서버는 각 엔트리를
Figure pct00599
에 대해 2x2 평문 매트릭스로 분해함으로써 자신의 데이터베이스를 사전 처리한다(
Figure pct00600
임을 기억한다). 따라서 각 매트릭스는 
Figure pct00601
비트들(대략 138KB)을 보유한다. 서버는 이들 매트릭스들의 각 엔트리를 CRT 표현 모듈
Figure pct00602
로 인코드(블록 410) 한다. 이 이후의 추가 프로세스들은, 만일 데이터베이스(28-1)가 평문을 포함한다면, 위에서 설명한 바와 같이, GSW 암호문들을 평문 매트릭스들에 의해서 곱하는, 절차(iv)를 사용할 수 있음을 주목해야 한다. CRT 표현 모듈
Figure pct00603
의 결과는 평문이다. 또한 이 예는 평문(또는 일부 평문) 데이터베이스(28-1)를 사용하지만, 상기 데이터베이스도 암호화될 수 있고, 위에서 설명한 바와 같이, 압축된 암호문들에 의해서 GSW 암호문들을 곱하는, 절차(iii)도 사용될 수 있다는 점을 주목해야 한다. 평문 매트릭스의 엔트리들은 작지만(
Figure pct00604
범위), 그들의 CRT 표현 모듈
Figure pct00605
는 그렇지 않다. 따라서, 이 표현은 서버에서의 스토리지 요건에서
Figure pct00606
폭발(blowup)을 수반한다. 아래에서, L은 단일 데이터베이스 엔트리를 인코드 하는 데 사용되는 매트릭스들의 수로 세트 된다. (단일 JPEG 사진은
Figure pct00607
을 갖지만, 4GB 동영상은 약 29K 매트릭스들로 인코드 된다.)
[00177] 클라이언트의 암호문이 주어지면, 서버는, 블록(435)에서, GSW 평가를 사용하여 제1차원에 대한 유닛 벡터
Figure pct00608
의 GSW 암호화를 계산할 수 있다(이 것은
Figure pct00609
보다 적은 GSW 곱하기들을 사용하여 행해질 수 있다). 이 프로세스는 또한, 위에서 설명한 바와 같은, 평문 매트릭스들에 의해서 GSW 암호문을 곱하는, 절차(iv)를 사용할 수도 있다.
Figure pct00610
에 대해, 서버는 이 차원을 접는데(fold), (1) 하이퍼큐브의 r번째 하이퍼-행의 모든 엔트리들의 모든 평문 매트릭스들에 의해서 이 벡터의 r번째 암호문을 곱함(multiplying)에 의해서, (2) 제1 하이퍼큐브 차원을 가로질러 모든 것을 더함(adding)에 의해서, 접는다. 상기 더함은, 위에서 설명한 바와 같은, 압축된 암호문들을 위한 부가적 동형, 절차(ii)를 사용할 수 있다는 점에 유의한다. 결과는 (차원
Figure pct00611
의) 단일 암호화된 하이퍼-행이고, 이 것의 각 엔트리는 L개의 압축된 암호문들로 구성된다.
[00178] 다음에(도 4b, 블록 440) 서버는 차례로 작은 차원들을 접는다(fold). 각 크기-4 차원을 위해, 서버는 4개의 하이퍼-열들의 모든 압축된 암호문들에 의해서 4개의 GSW 암호화 비트들을, 각각, 곱하고, 그 다음 그 결과를 현재 차원을 가로질러 더하여, 암호문들의 수를 4배 감축한다. 이것은 서버가 L 압축된 암호문들 모듈로
Figure pct00612
의 하나의 단일 엔트리만 남겨둘 때까지 계속된다.
[00179] 마지막으로, 서버는 모듈러스 전환을 수행(블록 445)하여 각 암호문 C를
Figure pct00613
에 의해서 대체하고, 최종 암호문들을 암호 해독하기 위해 클라이언트로 전송한다. 암호문 C가
Figure pct00614
를 만족한다는 점을 주목해야 한다. 에 의해서 반올림 오류를 표시하면, 새 암호문은 다음과 같다.
Figure pct00615
키 S는 오류 분포와 로부터 선택되었기 때문에, 더해진 노이즈는 작으며 결과는 유효한 암호문이다. (자세한 내용은 아래를 참조함.)
[00180] 블록(450)에서, 서버(170)는, 요청에 대한 암호화된 답변인, 선택된 엔트리를 사용자에게 전송하고, 클라이언트(110)는, 블록(455)에서, 암호화된 답변을 수신한다. 블록(460)에서, 클라이언트(110)는 암호화된 답변을 평문으로 암호 해독하고, 따라서 요청된 엔트리가 드러난다. 블록(465)에서, 클라이언트(110)는 평문을 사용하여 하나 또는 그 이상의 연산들을 수행한다. 예를 들어, 사용자(201)가 그들의 당좌예금에 대한 잔액을 요청했다면, 사용자(201)는, 예를 들어, 그들의 당좌예금에 더 많은 돈을 추가하거나 또는 그들의 당좌예금을 사용하여 신용카드를 지불할 것이다.
[00181] 노이즈 분석을 하려면, 제1 차원에 대해서, GSW 평가를 사용하여 암호화된 단항 벡터를 계산해야 하며, 여기서 상기 벡터에서 각 암호문은 
Figure pct00616
암호문들의 곱(product)이다. 따라서 이들 평가된 암호문들 각각의 노이즈는 암호화 동안에 샘플된 오류 매트릭스들 중 하나인
Figure pct00617
를 사용하여 대략적으로 형태 
Figure pct00618
를 갖는다. 일단 이들이 평문 매트릭스들(the plaintext matrices)에 의해서 곱해져서 데이터베이스가 식 (4)에서와 같은 압축된 암호화를 얻고 모든 암호문들이 
Figure pct00619
-size 차원을 가로질러 더해지면, 다음 형식의 노이즈 항이 결정된다:
Figure pct00620
(엔트리들이
Figure pct00621
아래에서 제한되는(bounded) 평문 매트릭스들에 의해 오른쪽에서 곱하기가 수행되지만, 어떠한
Figure pct00622
도 없이 수행된다는 점에 유의해야 한다.) 점근적으로 보면, 그리고 구체적인 성능을 최적화하는 평문들을 도입하기 위해 여기서 사용된 파격적인 방법을 무시한다면, 이 단계로부터 노이즈는
Figure pct00623
과 함께 선형으로 증가한다는 점에 유의해야 한다. 만일 보안 파리미터
Figure pct00624
에 대해
Figure pct00625
가 세트된다면, 이 단계와 나머지 단계들로부터 노이즈는
Figure pct00626
에 의해서 제한될 것이고 그래서 q는 이들 양들의 상수-차수 다항식(a constant-degree polynomial)에 의해서 제한될 수 있다. mod-q 곱하기의 복잡도가
Figure pct00627
로 주어지면, 이 예시적인 PIR 스킴의 점근적 오버헤드는
Figure pct00628
가 될 것이다.
[00182]
Figure pct00629
의 엔트리들은 분산 8의 분포(a distribution of variance 8) (Arora-Ge 공격들[8]을 피하기에 충분한)로부터 선택될 수 있다.
Figure pct00630
의 엔트리들은 
Figure pct00631
범위에 있으므로 (
Figure pct00632
이기 때문에),
Figure pct00633
에 의한 곱하기는 상기 분산을
Figure pct00634
보다 적은 팩터(factor)만큼 증가시킨다. 유사하게, (
Figure pct00635
의 엔트리들의) 평문 매트릭스에 의한 곱하기는 상기 분산을 다음: 
Figure pct00636
의 팩터만큼 증가시킨다. 따라서 각 노이즈 좌표의 분산은
Figure pct00637
에 의해서 제한된다(bounded). 각 노이즈 좌표는 유사한 가중치들을 갖는 
Figure pct00638
의 엔트리들의 가중치 합이므로, 그 것을 정상 랜덤 변수(a normal random variable)로 취급하는 것이 합리적이다. 이 오류의 크기에 관한 양호한 고 확률 경계는 (말하자면), 확률
Figure pct00639
에 대응하는,
Figure pct00640
표준 편차들이다. 즉, 제1 차원을 접은 후, 모든 압축된 암호문들은 높은 확률과 함께
Figure pct00641
을 갖는다.
[00183] 계속해서 더 많은 차원들을 접게 됨에 따라, 상기 암호화된 단항 벡터들은 이전 차원의 결과들(압축된 암호문들)에 의해서 이들 차원들(GSW 암호문들)에 대해 다시 곱해지는데, 방정식(4)를 사용하여, 이번에는 
Figure pct00642
를 사용하여, 곱해진다. 이들 차원들의 GSW 암호문들은 신선하므로, 따라서 그들의 노이즈 항들은 암호화 동안에 선택된 매트릭스들
Figure pct00643
뿐이다는 점에 유의해야 한다. 따라서 이 차원에서 
Figure pct00644
노이즈 항들의 각각은 이들
Figure pct00645
매트릭스들 중 하나를 위해 형식 
Figure pct00646
을 갖는다. 더 나아가, 각 차원의 4개의 항들 중 하나만 암호화된 비트 
Figure pct00647
를 갖고 한편 다른 하나는 
Figure pct00648
을 갖는다. 따라서 항
Figure pct00649
Figure pct00650
번째 차원을 접은 후 최종 노이즈 항에서 오직 한 번만 나타난다. 그러므로, 각각의 작은 차원
Figure pct00651
를 접으면 이전 차원으로부터의 노이즈에 형식
Figure pct00652
의 4개의 노이즈 항들이 더해진다.
[00184]
Figure pct00653
Figure pct00654
를 가지므로,
Figure pct00655
의 각 엔트리는 간격 
Figure pct00656
에 위치하고, 그리고
Figure pct00657
에 의한 곱하기는
Figure pct00658
(
Figure pct00659
임을 기억할 것)보다 적은 팩터만큼 분산을 증가시킨다. 이들 항들의
Figure pct00660
를 사용하여, 상기 더해진 노이즈 항에서 각 좌표의 분산은 
Figure pct00661
에 의해서 제한된다. 따라서 모든 작은 하이퍼큐브 차원들로 인해 더해진 노이즈의 크기에 관한 높은 확률 경계 
Figure pct00662
를 사용할 수 있다.
[00185] 지금까지의 분석은 모듈러스 전환 연산 이전에 노이즈는 크기가 
Figure pct00663
아래로 제한됨을 암시한다. 모듈러스 전환에서 반올림 오류로 인해 더해진 노이즈 항은 
Figure pct00664
이고, 이 식에서 각 잡음 좌표의 분산은 
Figure pct00665
이다. 따라서 이 최종 노이즈 항의 크기에는 높은 확률 경계 
Figure pct00666
가 있다. 그러므로 클라이언트에 반환되는 암호문의 총 노이즈는 다음에 의해서 제한된다.
Figure pct00667
거의 정사각형 가제트 매트릭스 
Figure pct00668
가 
Figure pct00669
와 함께 사용된다는 점을 상기하면, 노이즈는 실제로 필요에 따라
Figure pct00670
아래로 제한되므로, 따라서 클라이언트에 반환되는 암호문들은 압도적인 확률로 정확하게 암호 해독될 것이다.
[00186] 복잡도 분석을 위해, 질의를 처리하는 동안 서버의 작업은 대부분 
Figure pct00671
곱하기들과 FFT들로 구성된다. (일단 FFT들이 수행되면
Figure pct00672
의 더하기들 및 적용들과 같은 다른 연산들은 비교적 시간이 거의 걸리지 않는다.)
[00187] 차원
Figure pct00673
의 원분 링(a cyclotomic ring)을 사용하면, 각 FFT 연산은 평가 표현에서 링 곱하기 연산보다 약 10-20배 더 느리게 된다(slower). 그러나 데이터베이스 엔트리들의 크기 L 의 N/N 1 배가 충분히 클 때, 곱하기들의 수가 FFT들의 수를 
Figure pct00674
팩터 보다 훨씬 더 많이 축소한다(dwarf)는 것을 쉽게 알 수 있다. 실제로, FFT들은 클라이언트에 의해서 전송된 인덱스
Figure pct00675
의 비트들(L N/N 1 과 무관함)이 처리되는 초기 단계와 제1 차원(데이터의
Figure pct00676
에 대해서만 적용됨)을 접은 후에만 수행된다. 예시적인 세팅에서, 곱하기 시간은 일단 
Figure pct00677
가 수천 보다 크다면 FFT 시간을 초과한다. 이 예에서
Figure pct00678
을 사용하면, 단일 JPEG 이미지를 각 엔트리에 유지하더라도 FFT 처리는 전체 시간의 50 %보다 적게 차지한다는 것을 의미한다. 그리고
Figure pct00679
인 영화의 경우, FFT 시간은 완전히 중요하지 않다.
[00188] 이제 곱하기들에 소요된 시간은, 데이터베이스 크기의 함수로서, 평가될 수 있다. 
Figure pct00680
가 큰 경우, 지금까지 가장 많은 수의 곱하기들은, 1 하이퍼큐브 차원을 접는 동안, 데이터베이스를 인코드 하는 평문 매트릭스들에 의해 GSW 암호문들을 곱할 때 수행된다. 이들 곱하기들은 형태 
Figure pct00681
를 갖는데, 여기서
Figure pct00682
는 차원
Figure pct00683
의 하이브리드 암호문이고 
Figure pct00684
는 차원
Figure pct00685
(여기에
Figure pct00686
)의 중복 평문 매트릭스이다. 어떠한 최적화들 없이 순진하게 처리하려면, 이들 매트릭스 곱하기들의 각각, 모듈로 이중-크기의 모듈러스
Figure pct00687
를 위해
Figure pct00688
링 곱하기들이 필요하다. 각 링 곱하기(CRT 표현의 엘리멘트들에 대한)는
Figure pct00689
이중-크기 모듈러 정수 곱하기 구성되므로, 그러한 매트릭스 곱하기 각각은 총
Figure pct00690
모듈러 곱하기들을 취한다. 이 작업을 위해, 약
Figure pct00691
바이트들을 포함하는, 단일 평문 매트릭스가 처리되어 상각된 작업(the amortized work)은 데이터베이스 바이트당 약 1.56 모듈러 곱하기가 된다. (레이더맨의 방법을 사용하면 오직 23개의 곱하기들만으로 3x3 매트릭스를 곱할 수 있으므로[59], 상각된 작업은 바이트당 1.33 모듈러 곱하기들에 지나지 않는다.) 나머지 작업을 고려하면, L이 클 때 이 숫자는 어떠한 중요한 방법으로도 변경할 수 없으므로, 이들 곱하기들은 실행 시간의 적어도 90%를 차지할 가능성이 높다.
[00189] 바이트당 하나(또는 두 개)의 모듈러 곱하기는 동일 데이터의 AES 암호화보다 훨씬 더 빠르다. 예를 들어, 어떠한 하드웨어 지원도 없는 AES의 소프트웨어 구현들은 바이트당 25사이클 또는 그 이상으로 추정된다[76, 30]. 동일 GSW 매트릭스가 매우 많은 평문 매트릭스들에 의해서 곱해진다는 사실을 사용하여 모듈러 곱하기들을 사전 처리할 수 있으며, 이는 CPU의 하드웨어 지원을 기반으로 구축된 AES 구현들에서도 성능을 경쟁력 있게 만들 것이다.
[00190] 큰 데이터베이스들의 경우, 위에서 설명한 접근 방식은, 엄청난 통신 절약들을 고려하지 않더라도, 전체 데이터베이스를 전송하는 순진한 접근 방식보다 계산 속도가 더 빠르다. 이 속도는 대역폭을 여전히 크게 절약하면서 달성되었으며, 실제로 이 솔루션의 속도는 0.44이고 그래서 개인 정보 보호를 획득하기 위해 대역폭에서 2.25 × 을 지불하는 것과 같다는 점이 강조된다.
[00191] 참조들에 대한 인용들은 괄호들 안에 숫자들로 배치된다(예: ["1"]은 참조 번호 1에 대한 것이다). 이 참고문헌들은 아래와 같다.
[00192] [1] Carlos Aguilar-Melchor, Joris Barrier, Laurent Fousse, 및 Marc-Olivier Killijian. Xpir: 모든 사람을 위한 개인 정보 검색. 프라이버시 강화 기술에 관한 회보, 2016(2):155-174, 2016
[00193] [2] Martin Albrecht, Melissa Chase, Hao Chen, Jintai Ding, Shafi Goldwasser, Sergey Gorbunov, Shai Halevi, Jeffrey Hoffstein, Kim Laine, Kristin Lauter, Satya Lokam, Daniele Micciancio, Dustin Moody Travis Morrison, Amit Sahai, 및 Vinod Vaikuntanathan. 동형 암호화 표준. http://homomorphicencryption.org/에서 이용 가능하고, 2019년 2월, 2018년 11월에 액세스됨.
[00194] [3] Jacob Alperin-Sheriff 및 Chris Peikert. 준선형 시간의 실용적인 부트스트래핑. Ran Canetti 및 Juan A. Garay, 편집자들, 암호학의 발전 - Crypto'13, 컴퓨터 과학 강의 노트 권 8042, 1-20 쪽. Springer, 2013.
[00195] [4] Jacob Alperin-Sheriff 및 Chris Peikert. 다항식 오류를 갖는 더 빠른 부트스트래핑. Juan A. Garay 및 Rosario Gennaro, 편집자들, 암호학의 발전 - Crypto 2014, 파트 I 297-314쪽. Springer, 2014.
[00196] [5] Sebastian Angel, Hao Chen, Kim Laine, 및 Srinath Setty. 압축된 질의들과 상각된 질의 처리가 포함된 PIR. 2018 IEEE 보안 및 개인 정보 보호 심포지엄(SP) 962~979쪽. IEEE, 2018에서.
[00197] [6] Yoshinori AONO, Takuya HAYASHI, Le Trieu PHONG, 및 Lihua WANG. 동형 암호화를 통한 분산 데이터 소스들로 개인 정보 보호 로지스틱 회귀. 정보 및 시스템에 관한 IEICE 트랜잭션들, E99.D(8):2079-2089, 2016.
[00198] [7] Benny Applebaum, David Cash, Chris Peikert, 및 Amit Sahai. 하드 러닝 문제를 기반으로 한 빠른 암호화 원시 엘리멘트 및 순환 보안 암호화. 암호학의 발전 - Crypto 2009, 2009년 8월 16일부터 20일까지 미국, CA, 산타 바버라에서 열린 제29회 연례 국제 암호 학술회의, 회보 595~618쪽 2009.
[00199] [8] Sanjeev Arora and Rong Ge. 오류가 있을 때 학습할 수 있는 새로운 알고리즘. ICALP(1), 컴퓨터 과학 강의 노트 6755권 403~415쪽. 스프링거, 2011년.
[00200] [9] Saikrishna Badrinarayanan, Sanjam Garg, Yuval Ishai, Amit Sahai, 및 Akshay Wadia. 새로운 가정들로부터 일반 모델의 두 개 메시지 증인 구별 불가능성 및 안전한 계산. 암호학 및 정보보안의 이론과 적용에 관한 국제회의 275-303쪽. Springer, 2017.
[00201] [10] Daniel Benarroch, Zvika Brakerski, 및 Tancrede Lepoint. 정수에 대한 FHE: 퀀텀 이후 체제에서 분해되고 배치됨. 공개키 암호화(2), 컴퓨터 과학 강의 노트 10175권 271~301쪽. Springer, 2017.
[00202] [11] 타원 곡선 포인트 곱하기, en.wikipedia.org/wiki/Elliptic_curve_point_multiplication, 6/13/19에 다운로드됨.
[00203] [12] Dan Boneh, Craig Gentry, Shai Halevi, Frank Wang 및 David J. Wu. 다소 동형 암호화를 사용하는 개인 데이터베이스 질의. ACNS, 컴퓨터 과학 강의 노트 7954권은 102-118쪽이다. Springer, 2013.
[00204] [13] Elette Boyle, Yuval Ishai, 및 Antigoni Polychroniadou. 실용적인 서브리니어 보안 계산의 한계. 국제암호학회 연례회의 302-332쪽. Springer, 2018.
[00205] [14] Zvika Brakerski, Craig Gentry, 및 Shai Halevi. LWE 기반 동형 암호화로 팩된 암호문. Kaoru Kurosawa and Goichiro Hanaoka, 편집자들 공개키 암호 편집자, 컴퓨터 과학 강의 노트 제7778권 1쪽부터 13쪽까지. Springer, 2013.
[00206] [15] Zvika Brakerski, Craig Gentry, 및 Vinod Vaikuntanathan. 부트스트래핑 없이 완전 동형 암호화. 이론 컴퓨터 과학의 혁신(ITCS'12), 2012. http://eprint.iacr.org/2011/277에서 이용 가능.
[00207] [16] Zvika Brakerski 및 Vinod Vaikuntanathan. (표준) LWE부터의 효율적인 완전 동형 암호화. 컴퓨팅에 관한 SIAM 저널, 43(2):831-871, 2014.
[00208] [17] Zvika Brakerski 및 Vinod Vaikuntanathan. PKE만큼 안전한 격자 기반 FHE Moni Naor, 편집자, 이론 컴퓨터 과학의 혁신, ITCS'14, 1-12쪽. ACM, 2014.
[00209] [18] Zvika Brakersk. 클래식 GAPSYP로부터 모듈러스 전환 없는 완전 동형 암호화. Reihaneh Safavi-Naini 및 Ran Canetti, 편집자들, CRYPTO, 컴퓨터 과학 강의 노트 7417권 868-886쪽, Springer, 2012.
[00210] [19] Hao Chen, Kim Laine, Rachel Player. 단순 암호화 산술 라이브러리 - SEAL v2.1. 금융 암호 워크샵에서, 컴퓨터 과학 강의 노트 10323권 3~18쪽. Springer, 2017.
[00211] [20] Jingwei Chen, Yong Feng, Yang Liu, Wenyuan Wu. 암호화된 정수들에 관한 더 빠른 이진 산술 연산들. WCSE'17에서, 2017년 제7회 컴퓨터 과학 및 엔지니어링 국제 워크숍의 회보, 2017.
[00212] [21] Jung Hee Cheon, Jean-Sιbastien Coron, Jinsu Kim, Moon Sung Lee, Tancr
Figure pct00692
de Lepoint, Mehdi Tibouchi, Aaram Yun. 정수들에 대한 완전 동형 암호화의 배치. 암호학의 발전들- EURCYPT 2013에서, 2013년 5월 26일부터 30일까지 그리스 아테네에서 열린 제32회 국제암호학술회의. 회보, 315-335쪽, 2013.
[00213] [22] Jung Hee Chon, Andrey Kim, Miran Kim, Yong Soo Song. 대략적인 숫자들의 산술을 위한 동형 암호화. ASIACRYPT (1)에서, 컴퓨터 과학 강의 노트 10624권 409~437쪽. Springer, 2017.
[00214] [23] Jung Hee Cheon, Miran Kim, Myungsun Kim. 암호화된 데이터에 관한 검색과계산. 금융암호 및 데이터 보안에 관한 국제회의에서, 142~159쪽. Springer, 2015.
[00215] [24] Ilaria Chillotti, Nicolas Gama, Mariya Georgieva, Malika Izabach
Figure pct00693
ne. TFHE 개선: 보다 빠른 팩된 동형 연산들 및 효율적인 회로 부트스트래핑. ASIACryPT (1)에서, 컴퓨터 과학 강의 노트 10624권 377~408쪽. Springer, 2017.
[00216] [25] Benny Chor, Oded Goldreich, Eyal Kushilevitz, Madhu Sudan. 개인 정보 검색. ACM(JACM)JACM 저널, 제45권 1998년 11월 6일자 965-981면.
[00217] [26] Jean-Sιbastien Coron, Tancr
Figure pct00694
de Lepoint, Mehdi Tibouchi. 정수들에 대한 스케일 불변 완전 동형 암호화. 공개 키 암호화 - PKC'14에서, 컴퓨터 과학 강의 노트 8383 311~328쪽. Springer, 2014.
[00218] [27] Jean-Sιbastien Coron, David Naccache, Mehdi Tibouchi. 정수들에 대한 완전 동형 암호화를 위한 공개 키 압축 및 모듈러스 전환. 암호화에서 발전- EUROCRYPT 2012에서 - 2012년 4월 15일부터 19일까지 영국 케임브리지에서 열린 제31회 암호기술 이론 및 적용에 관한 연례 국제 암호 학술 회의. 회보, 446~464쪽, 2012.
[00219] [28] Anamaria Costache, Nigel P. Smart, Srinivas Vivek, Adrian Waller. SHE 스킨들의 고정 소수점 산술. SAC에서, 컴퓨터 과학 강의 노트 10532권 401~422쪽. Springer, 2016.
[00220] [29] Jack L.H. Crawford, Craig Gentry, Shai Halevi, Daniel Platt, Victor Shoup. FHE와 함께 실제 작업을 수행: 로지스틱 회귀 분석의 경우. Cryptology ePrint Archive, 보고서 2018/202, 2018. https://eprint.iacr.org/2018/202.
[00221] [30] Crypto++ 5.6.0, 펜티엄 4 벤치마크. https://www.cryptopp.com/benchmarks-p4.html,은 2009년 2월에 접속.
[00222] [31] Ivan Damgεrd, Mads Jurik. 페일리에의 확률론적 공개 키 시스템의 일반화, 단순화 및 일부 응용. 공개 키 암호에 관한 국제 워크샵, 119-136쪽. Springer, 2001.
[00223] [32] Whitfield Diffie, Martin Hellman. 암호학의 새로운 방향. IEEE 정보 이론에 대한 트랜잭션, 22(6):644-654, 1976.
[00224] [33] Lιo Ducas, Daniele Micciancio. FHE: 1초 내 부트스트래핑 동형 암호화. EUROCRYPT (1)에서, 컴퓨터 과학 강의 노트 9056권 617~640쪽. Springer, 2015.
[00225] [34] Steven D Galbraith, Xibin Lin. x 좌표만을 사용하여 쌍들을 계산. 디자인, 코드 및 암호화, 50(3):305-324, 2009.
[00226] [35] Nicholas Genise, Craig Gentry, Shai Halevi, Baiyu Li, Daniele Micciancio. 유한 오토마타를 위한 동형 암호화. Cryptology ePrint 아카이브, 보고서 2019/176, 2019. https://eprint.iacr.org/2019/176.
[00227] [36] Craig Gentry, Shai Halevi, Charanjit S. Jutla, Mariana Raykova HE-OVER-ORAM 아키텍처로 개인 데이터베이스 액세스. ACNS에서, 컴퓨터 과학 강의 노트 9092권 172~191쪽. Springer, 2015.
[00228] [37] Craig Gentry, Shai Halevi, Chris Peikert, Nigel P. Smart. BGV 스타일의 동형 암호화의 필드 전환. 컴퓨터 보안 저널, 21(5):663-684, 2013.
[00229] [38] Craig Gentry, Shai Halevi, Nigel P. Smart. 완전 동형 암호화에서 더 나은 부트스트래핑. 공개 키 암호 - PKC 2012에서, 컴퓨터 과학 강의 노트 7293권 1-16쪽. Springer, 2012.
[00230] [39] Craig Gentry, Shai Halevi, Nigel Smart. 폴리 로그 오버헤드가 있는 완전 동형 암호화. "암호학에서의 발전 - 유로크립트 2012"에서, 컴퓨터 과학 강의 노트 7237권 465-482쪽. Springer, 2012. 정식 버전은 http://eprint.iacr.org/2011/566에서.
[00231] [40] Craig Gentry, Shai Halevi, Nigel Smart. AES 회로의 동형 평가. "암호학에서의 발전 - Crypto 2012"에서, 컴퓨터 과학 강의 노트 7417권 850-867쪽. Springer, 2012. 정식 버전은 http://eprint.iacr.org/2012/099에서.
[00232] [41] Craig Gentry, Shai Halevi. 깊이-3-산술 연산 회로들을 사용하여 스쿼싱 없는 완전 동행 암호화. 컴퓨터 과학의 기초(FOCS)에서, 2011 년 IEEE 52차 연례 심포지엄, 쪽 107-109. IEEE, 2011.
[00233] [42] Craig Gentry, Shai Halevi. 젠트리의 완전 동형 암호화 스킴 구현. 암호학의 발전 - 유로크립트'11에서, 컴퓨터 과학 강의 노트 6632, 129~148쪽. Springer, 2011.
[00234] [43] Craig Gentry, Amit Sahai, Brent Waters. 오류 있는 학습에서 얻은 동형 암호화: 개념적으로 단순하고 점근적으로 더 빠르며 속성 기반. Ran Canetti, Juan A. Garay에서. 편집자들, 암호학의 발전 - Crypto 2013, Part I, 75-92쪽. Springer, 2013.
[00235] [44] Craig Gentry. Rabin 암호문 및 서명 등을 압축하는 방법. 연례 국제암호학술회의에서, 179~200쪽. Springer, 2004.
[00236] [45] Craig Gentry. 이상적인 격자들을 사용한 완전 동형 암호화. 제41회 ACM 컴퓨팅 이론 심포지엄 회보 - STOC 2009, 169-178쪽. ACM, 2009.
[00237] [46] Ran Gilad-Bachrach, Nathan Dowlin, Kim Laine, Kristin E. Lauter, Michael Naehrig, John Wernsing. 암호넷츠: 높은 처리량과 정확도로 암호화된 데이터에 신경망 적용. ICML에서 JMLR 워크샵 및 컨퍼런스 회보 48권 201~210쪽. JMLR.org, 2016.
[00238] [47] Matthew Green, Susan Hohenberger, Brent Waters. ABE 암호문들의 암호 해독 아웃소싱. 2011년 8월 8일부터 12일까지 미국 캘리포니아주 샌프란시스코에서 열린 제20회 USENIX 보안 심포지엄에서, 회보. USENIX 협회, 2011.
[00239] [48] Shai Halevi, Victor Shoup. HElib의 알고리즘. 크립토 (1)에서, 컴퓨터 과학 강의 노트 8616권 554-571쪽. Springer, 2014.
[00240] [49] Shai Halevi, Victor Shoup. HElib용 부트스트래핑. 유로크립트 (1)에서, 컴퓨터 과학 강의 노트 9056권 641~670쪽. Springer, 2015.
[00241] [50] Shai Halevi, Victor Shoup. HElib - 동형 암호화 구현. https://github.com/shaih/HElib/, 2014년 9월 액세스됨.
[00242] [51] Shai Halevi. 동형암호화. 암호의 기초에 관한 튜토리얼에서, 219-276쪽. Springer International Publishing, 2017.
[00243] [52] Ryo Hiromasa, Masayuki Abe, Tatsuaki Okamoto. GSW-FHE에서 메시지 포장 및 부트스트래핑 최적화. 전자, 통신 및 컴퓨터 과학 기초에 관한 IEICE 트랜잭션들, 99(1):73-82, 2016.
[00244] [53] Yuval Ishai, Anat Paskin. 암호화된 데이터에 대한 분기 프로그램들 평가. 암호학 회의 이론에서, 575-594쪽. 2007년 스프링거.
[00245] [54] Alhassan Khedr, P. Glenn Gulak, Vinod Vaikuntanathan. SHIELD: 암호화된 데이터 분류기의 확장 가능한 동형 구현. IEEE 트랜스. 컴퓨터, 2016년 65(9):2848-2858.
[00246] [55] Aggelos Kiayias, Nikos Leonardos, Helger Lipmaa, Kateryna Pavlyk, Qiang Tang. 동형 암호화로부터 개인 정보 검색 속도 최적화. 프라이버시 강화 기술에 관한 회보, 2015(2):222-243, 2015.
[00247] [56] Miran Kim, Yongsoo Song, Shuang Wang, Yuhou Xia, Xiaoqian Jiang. 동형 암호화를 기반으로 한 안전한 로지스틱 회귀 분석. Cryptology ePrint Archive, 보고서 2018/074, 2018. https://eprint.iacr.org/2018/074.
[00248] [57] Demijan Klinc, Carmit Hazay, Ashish Jagmohan, Hugo Krawczyk, Tal Rabin. 블록 암호화기들로 암호화된 데이터 압축에 대해. arXiv:1009.1759 [cs]IT).
[00249] [58] Eyal Kushilevitz , Rafail Ostrovsky. 복제가 필요하지 않음: 단일 데이터베이스, 계산 및 개인 정보 검색. 1997년 컴퓨터 과학의 기초에서. 회보, '제38회 연례 심포지엄' 364쪽~373쪽. IEEE, 1997.
[00250] [59] Julian D. Laderman. 23 곱하기를 사용하여
Figure pct00695
매트릭스를 곱하기 위한 비가환 알고리즘. 불. 아메르, 수학. SOC. 82(1):126-128, 1976년 01.
[00251] [60] Helger Lipmaa, Kateryna Pavlyk. 간단한 속도 최적 CPIR 프로토콜. 금융암호 및 데이터 보안에 관한 국제회의에서, 621~638쪽. Springer, 2017.
[00252] [61] Adriana Lσpez-Alt, Eran Tromer, Vinod Vaikuntanathan. 멀티키 완전 동형 암호화를 통한 클라우드상의 즉각적인 다자간 연산. STOC에서, 2012년 1219-1234쪽.
[00253] [62] Vadim Lyubashevsky, Chris Peikert, Oded Regev. 이상적인 격자와 링에 대한 오류 있는 학습. J. ACM, 60(6):43, 2013. 유로크립트 2010의 초기 버전.
[00254] [63] Vadim Lyubashevsky, Chris Peikert, Oded Regev. 링-LWE 암호화를 위한 툴킷. Thomas Johansson, Phong Q. Nguyen에서. 편집자, 암호학의 발전 - EURCYPT 2013, 35~54쪽. Springer, 2013.
[00255] [64] Daniele Micciancio, Chris Peikert. 격자들을 위한 트랩도어들: 더 단순하고, 더 촘촘하고, 더 빠르고, 더 작은. EURCYPT에서, 컴퓨터 과학 강의 노트 7237권 700-718쪽. Springer, 2012.
[00256] [65] Payman Mohassel, Yupeng Zhang. Secureml: 확장 가능한 개인 정보 보호 머신러닝을 위한 시스템. 2017년 5월 22일부터 26일까지 미국 캘리포니아주 산호세에서 열린 2017 IEEE 보안 및 개인 정보 심포지엄 SP 2017에서, 19~38쪽. IEEE 컴퓨터 협회, 2017.
[00257] [66] Michael Naehrig, Kristin Lauter, Vinod Vaikuntanathan. 동형 암호화가 실용적일 수 있을까요? 클라우드 컴퓨팅 보안 워크샵에 대한 제3회 ACM 워크샵의 회보에서. 113~124쪽. ACM, 2011.
[00258] [67] Femi Olumofin , Ian Goldberg. 개인 정보 검색의 계산 실용성에 대한 회고. 금융암호 및 데이터 보안에 관한 국제회의에서, 158~172쪽. 스프링거, 2011년.
[00259] [68] Emmanuela Orsini, Joop van de Pol, Nigel P. Smart. P 및 Q 중에서 더 넓은 선택을 갖는 BGV 암호문들의 부트스트래핑. Cryptology ePrint Archive, 보고서 2014/408, 2014. http://eprint.iacr.org/.
[00260] [69] Pascal Paillier. 복합 정도 거주성 클래스들에 기초한 공개 키 암호화 시스템. 암호기술의 이론과 적용에 관한 국제회의에서, 223-238쪽. 스프링거, 1999년.
[00261] [70] Chris Peikert, Vinod Vaikuntanathan, Brent Waters. 효율적이고 구성 가능한 망각 전송을 위한 프레임워크. 암호학의 발전 - Crypto 2008, 컴퓨터 과학 강의 노트 5157권 554-571쪽. Springer, 2008.
[00262] [71] Oded Regev. 격자, 오류 있는 학습, 랜덤 선형 코드, 및 암호화에 관하여. J. ACM, 56(6):34:1-34:40, 2009.
[00263] [72] Ronald L Rivest, Adi Shamir, Leonard Adleman. 디지털 서명 및 공개 키 암호 시스템을 획득하기 위한 방법. ACM의 통신, 21(2):120-126, 1978.
[00264] [73] R. Rivest, L. Adleman, M. Dertouzos. 데이터 뱅크와 프라이버시 동형성에 관하여. 보안 계산 기초에서, 169~177쪽. 아카데미 출판사, 1978.
[00265] [74] Kurt Rohloff and David B. Cousins. NTRU에 구축된 완전 동형 암호화의 확장 가능한 구현. 응용 동형 암호화 및 암호화 컴퓨팅에 대한 2차 워크샵, WAHC'14, 2014. https://www.dcsec.uni-hannover.de/fileadmin/ful/mitarbeiter/brenner/wahc14_RC.pdf 에서 이용 가능하고, 2014년 9월에 액세스됨
[00266] [75] Markku-Juhani Olavi Saarinen. 링-LWE 암호문 압축 및 오류 수정: 경량 포스트 퀀텀 암호화 도구emf. IoT 프라이버시, 신뢰, 보안에 관한 제3회 ACM 국제 워크숍 회보, 15~22쪽. ACM, 2017.
[00267] [76] Patrick Schmid, Achim Roos. "AES-NI 성능 분석, 코어 i5 CPU 32nm로 제한" https://www.tomshardware.com/reviews/clarkdale-aes-ni-encryption,2538.html, 2010년 2월에 액세스됨.
[00268] [77] Radu Sion, Bogdan Carbunar. 개인 정보 검색의 실용성에 관하여. 2007년 2월 28일 - 3월 2일, 미국 캘리포니아주 샌디에이고에서 열린 NDSS 2007 네트워크 및 분산 시스템 보안 심포지엄 회보, 2007.
[00269] [78] Nigel P. Smart, Frederik Vercauteren. 완전 동형 SIMD 연산들. Des. Code Cryptography, 71(1):57-81, 2014. http://eprint.iacr.org/2011/133에서 초기 버전.
[00270] [79] Julien P Stern. 새롭고 효율적인 비밀 프로토콜 완전 공개. 암호학 및 정보보안의 이론과 적용에 관한 국제회의에서, 357~371쪽. 1998년 스프링거.
[00271] [80] Marten van Dijk, Craig Gentry, Shai Halevi, Vinod Vaikuntanathan. 정수에 대한 완전 동형 암호화. 암호화의 발전 - EURCYPT 2010에서. 2010년 5월 30일부터 6월 3일까지 프랑스 리비에라에서 열린 제29회 국제암호학술회의 회보, 24-43쪽, 2010.
[00272] [81] Shuang Wang, Yuchen Zhang, Wenrui Dai, Kristin Lauter, Miran Kim, Yuzhe Tang, Hongkai Xiong, Xiaoqian Jiang. 치유자: GWAS에서 안전한 희귀 질환 변형 분석을 위한 정확한 로지스틱 회귀 분석의 동형 계산. 생물정보학, 32(2):211-218, 2016.
[00273] [82] Chen Xu, Jingwei Chen, Wenyuan Wu, Yong Feng. 정수 링에 대한 동형적으로 암호화된 산술 연산. Feng Bao, Liqun Chen, Robert H. Deng, Guojun Wang, 편집자, 정보 보안 실무 및 경험에서, 167-181쪽, 참, 2016. 스프링거 국제 출판사. https://ia.cr/2017/387.
[00274] 본 발명은 시스템, 방법, 및/또는 컴퓨터 프로그램 제품이 될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 스토리지 매체를 포함할 수 있으며, 이 매체 상에 프로세서가 본 발명의 실시 예들을 수행하도록 하는 컴퓨터 판독 가능 프로그램 명령들을 갖는다.
[00275] 상기 컴퓨터 판독 가능 스토리지 매체는 명령 실행 장치에 의해 사용될 명령들을 유지 및 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 상기 컴퓨터 판독 가능 스토리지 매체는, 예를 들면, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것들의 모든 적절한 조합일 수 있으며, 그러나 이에 한정되지는 않는다. 컴퓨터 판독 가능 스토리지 매체의 더 구체적인 예들의 비포괄적인 목록에는 다음이 포함될 수 있다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 및 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 천공-카드들 또는 명령들이 기록된 홈에 있는 융기된 구조들 같이 기계적으로 인코드 된 장치, 및 전술한 것들의 모든 적절한 조합. 본 명세서에서 사용될 때, 컴퓨터 판독 가능 스토리지 매체는 무선 전파들이나 다른 자유롭게 전파되는 전자기파들, 도파 관이나 기타 전송 매체(예를 들어, 광섬유 케이블을 통해 전달되는 광 펄스들)를 통해 전파되는 전자기파들, 또는 선(wire)을 통해 전송되는 전기 신호들 같이 그 자체로 일시적인(transitory) 신호들로 해석되지는 않는다.
[00276] 본 명세서에 기술되는 컴퓨터 판독 가능 명령들은, 예를 들어, 인터넷, 근거리 통신망, 광역 통신망 및/또는 무선 네트워크 등의 통신망(네트워크)을 통해 컴퓨터 판독 가능 스토리지 매체로부터 각각 컴퓨팅/처리 디바이스들로 또는 외부 스토리지 디바이스로부터 외부 컴퓨터로 다운로드 될 수 있다. 상기 통신망은 구리 전송 케이블들, 광 전송 섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 엣지 서버들을 포함할 수 있다. 각 컴퓨팅/처리 장치 내 네트워크 어댑터 카드 또는 네트워크 인터페이스는 상기 통신망으로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 그 컴퓨터 판독 가능 프로그램 명령들을 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독 가능 스토리지 매체에 저장하기 위해 포워드 한다.
[00277] 본 발명의 연산들을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령들은 Smalltalk, C++ 또는 그와 유사 언어 등의 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 그와 유사한 프로그래밍 언어 등의 종래의 절차적 프로그래밍 언어들을 포함하여, 하나 또는 그 이상의 프로그래밍 언어들을 조합하여 작성된(written) 어셈블러 명령들, 명령-세트-아키텍처(ISA) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 상태-셋팅 데이터, 집적회로를 위한 구성 데이터, 또는 소스 코드나 목적 코드일 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 독립형(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터나 서버상에서 실행될 수 있다. 위에서 마지막의 경우에, 원격 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 포함한 모든 종류의 네트워크를 통해서 사용자의 컴퓨터에 접속될 수 있고, 또는 이 접속은 (예를 들어, 인터넷 서비스 제공자를 이용한 인터넷을 통해서) 외부 컴퓨터에 이루어질 수도 있다. 일부 실시 예들에서, 예를 들어 프로그램 가능 로직 회로, 필드-프로그램 가능 게이트 어레이들(FPGA), 또는 프로그램 가능 로직 어레이들(PLA)을 포함한 전자 회로는 본 발명의 실시 예들을 수행하기 위해 전자 회로를 맞춤화하도록 상기 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 활용하여 상기 컴퓨터 판독 가능 프로그램 명령들을 실행할 수 있다.
[00278] 본 명세서에서는 본 발명의 실시 예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 플로 차트 예시도들 및/또는 블록도들을 참조하여 본 발명의 실시 예들을 기술한다. 플로 차트 예시도들 및/또는 블록도들의 각 블록과 플로 차트 예시도들 및/또는 블록도들 내 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다.
[00279] 이들 컴퓨터 판독 가능 프로그램 명령들은 범용 컴퓨터, 특수목적용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 장치의 프로세서에 제공되어 머신(machine)을 생성하고, 그렇게 하여 그 명령들이 상기 컴퓨터 또는 기타 프로그램가능 데이터 처리 장치의 프로세서를 통해서 실행되어, 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 수단을 생성할 수 있다. 이들 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터 판독 가능 스토리지 매체에 저장될 수 있으며, 컴퓨터, 프로그램가능 데이터 처리 장치 및/또는 기타 디바이스들에 지시하여 명령들이 저장된 상기 컴퓨터 판독 가능 스토리지 매체가 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능/동작의 특징들을 구현하는 명령들을 포함하는 제조품(an article of manufacture)을 포함하도록 특정한 방식으로 기능하게 할 수 있다.
[00280] 상기 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 데이터 처리 장치, 또는 다른 디바이스에 로드 되어, 상기 컴퓨터, 기타 프로그램가능 장치 또는 다른 디바이스에서 일련의 동작 단계들이 수행되게 하여 컴퓨터 구현 프로세스를 생성하며, 그렇게 하여 상기 컴퓨터, 기타 프로그램가능 장치, 또는 다른 디바이스 상에서 실행되는 명령들이 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현할 수 있다.
[00281] 도면들 내 플로 차트 및 블록도들은 본 발명의 여러 실시 예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능(functionality), 및 연산(operation)을 예시한다. 이와 관련하여, 상기 플로 차트 또는 블록도들 내 각 블록은 상기 명시된 논리적 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행 가능한 명령들을 포함한 모듈, 세그먼트 또는 명령들의 일부분을 나타낼 수 있다. 일부 다른 구현들에서, 상기 블록에 언급되는 기능들은 도면들에 언급된 순서와 다르게 일어날 수도 있다. 예를 들면, 연속으로 도시된 두 개의 블록들은 실제로는 사실상 동시에 실행될 수도 있고, 또는 이 두 블록들은 때때로 관련된 기능에 따라서는 역순으로 실행될 수도 있다. 블록도들 및/또는 순서 예시도의 각 블록, 및 블록도들 및/또는 순서 예시도 내 블록들의 조합들은 특수목적용 하드웨어 및 컴퓨터 명령들의 명시된 기능들 또는 동작들, 또는 이들의 조합들을 수행하는 특수목적용 하드웨어-기반 시스템들에 의해 구현될 수 있다는 것에 또한 주목해야 한다.
[00282] 본 발명은, 바람직한 실시 예들에 따라, 다음과 같이 요약될 수 있다.
1. 방법에 있어서, 상기 방법은: 제 1 컴퓨터 시스템 상의 데이터베이스 내의 데이터를 사용하여 결정될 수 있는 특정 정보에 대한 요청을, 제 1 컴퓨터 시스템에서 그리고 제 2 컴퓨터 시스템으로부터, 수신하는 단계-상기 데이터의 적어도 일부가 암호화되거나 또는 상기 요청이 암호화되며, 상기 암호화된 데이터 또는 상기 암호화된 요청을 암호 해독하기 위한 암호 해독 키를 상기 제1 컴퓨터 시스템은 갖지 않음-; 상기 데이터베이스 내의 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 결정하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 연산들을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계-상기 압축 가능한 동형 암호화 연산들은 제1의 비압축 동형 암호화 스킴(scheme) 및 제2의 압축된 동형 암호화 스킴을 사용하고, 상기 압축 가능한 동형 암호화 연산들을 수행하는 단계는 다른 다수의 암호문들을 생성하기 위해 상기 데이터에 관해 상기 제1 동형 암호화 스킴을 사용하는 단계 및 상기 다른 다수의 암호문들을 압축되는 더 적은 수의 암호문들로 팩(pack)하기 위해 상기 다른 다수의 암호문들에 관해 상기 제2의 압축된 동형 암호화 스킴을 사용하는 단계를 포함하며, 상기 제1의 압축된 동형 암호화 스킴 및 상기 제2의 압축된 동형 암호화 스킴은 모두 동일 비밀 키를 사용함-; 그리고 상기 요청에 대한 응답을, 상기 제1 컴퓨터 시스템에 의해서 그리고 상기 제2 컴퓨터 시스템으로, 전송하는 단계를 포함하고, 상기 응답은 요청된 상기 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 포함한다.
2. 제1항의 방법에 있어서, 상기 제2 압축 동형 암호화 스킴을 사용함으로써, 상기 압축된 암호문들의 크기는 상기 압축된 암호문들이 대응하는 비암호화 데이터(unencrypted data)의 크기에 임의로(arbitrarily) 근접될 수 있다.
3. 제2항의 방법에 있어서, 모든 선택된 ε에 대해, 상기 압축된 암호문들의 크기가 상기 대응 평문의 크기의 (1 + ε)배가 되는 상기 제2의 동형 암호화 스킴의 인스턴스화(an instantiation)가 되게 상기 제2의 동형 암호화 스킴이 구성되기 때문에, 상기 압축된 암호문들의 크기는 상기 압축된 암호문들이 대응하는 평문의 크기에 임의로(arbitrarily) 근접될 수 있다.
4. 제1항의 방법에 있어서, 상기 데이터에 관해 압축 가능한 동형 암호화 연산들을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는 많은 비트의 암호문들을 정수들의 링 R에서 더 큰 스칼라(a larger scalar in a ring of integers R)를 암호화하는 단일의 암호문으로 압축하기 위해 정수들의 링 R에서 스칼라(a scalar in a ring of integers R)를 나타내는 많은 비트의 암호문을 포함하는 데이터에 관해 부분 압축을 수행하는 단계를 더 포함한다.
5. 제 1항의 방법에 있어서, 상기 다수의 동형 암호문들을 단일의 압축된 암호문으로 팩(pack)하기 위해 상기 다수의 동형 암호문들에 관해 상기 제2의 동형 암호화 스킴을 사용하는 단계는
Figure pct00696
를 계산함에 의해서 암호문들
Figure pct00697
를 압축하는 단계를 더 포함하고,
Figure pct00698
의 암호문들이 있으며,
Figure pct00699
,
Figure pct00700
이고,
Figure pct00701
Figure pct00702
은 차원들(dimensions)이며, q는 학습 오류(LWE) 모듈러스(a learning with errors (LWE) modulus)이고, G는 직사각형 가젯 매트릭스이며, H는 거의 정사각형인 가젯 매트릭스(a nearly square gadget matrix),
Figure pct00703
이고, 그리고
Figure pct00704
는 엔트리
Figure pct00705
에서는 1이며 다른 곳에서는 0인 정사각형
Figure pct00706
싱글톤 매트릭스, 즉
Figure pct00707
이고,
Figure pct00708
는 위치들
Figure pct00709
에서 1이고, 각각
Figure pct00710
인, 차원-
Figure pct00711
의 단위 벡터들이다.
6. 제1항의 방법에 있어서, 상기 데이터에 관해 압축 가능한 동형 암호화 연산들을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는, 비트들
Figure pct00712
을 암호화하는
Figure pct00713
젠트리, 사하이 및 워터스(GSW) 암호문들이 주어졌을 때, 상기 GSW 암호문을
Figure pct00714
를 암호화하는 단일 GSW 암호문으로 부분적으로 압축하는 단계, 일부
Figure pct00715
에 대해 스칼라의 형태
Figure pct00716
를 암호화하는 단일 GSW 암호문을 생성하는 단계-여기서 Z는 정수의 집합임-, 그리고,
Figure pct00717
를 암호화하는
Figure pct00718
의 암호문들
Figure pct00719
가 주어졌을 때,
Figure pct00720
를 세트 함에 의해서 상기 암호문들
Figure pct00721
를 압축하는 단계를 포함하고, 여기서,
Figure pct00722
는 k개의 0들이 프리펜드 된(prepended) i번째 유닛 벡터이고, G는 직사각형 가젯 매트릭스이며 그리고 k는 비밀 키의 길이이고, 상기 단일 GSW 암호문을 생성하는 단계는
Figure pct00723
벡터의 압축된 암호화를 생성한다.
7. 방법에 있어서, 상기 방법은: 암호화된 데이터를 생성하기 위해 평문을, 제1 컴퓨터 시스템으로 전송하고 제2 컴퓨터 시스템에서 수행하기 위해, 암호화하는 단계; 상기 암호화된 데이터를 암호 해독하기 위한 암호 해독 키를 상기 제1 컴퓨터 시스템이 갖지 않고, 상기 제2 컴퓨터 시스템으로부터 상기 제1 컴퓨터 시스템으로 상기 암호화된 데이터를 전송하는 단계; 상기 암호화된 데이터를 사용하여 결정될 수 있는 특정 정보에 대한 요청을 상기 제2 컴퓨터 시스템에 의해서 전송하는 단계; 상기 요청에 대한 응답을, 상기 제2 컴퓨터 시스템에서 그리고 상기 제1 컴퓨터 시스템으로부터, 수신하는 단계-상기 응답은 요청된 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 포함함-; 및 상기 하나 또는 그 이상의 압축된 암호문들을 대응하는 평문으로 상기 제2 컴퓨터 시스템에 의해서 암호 해독하는 단계를 포함한다.
8. 제7항의 방법에 있어서, 상기 암호 해독하는 단계는 상기 하나 또는 그 이상의 압축된 암호문들에 대응하는 평문의 중복 인코딩(a redundant encoding) 및 추가의 노이즈(additional noise)를 포함하는 매트릭스를 획득하기 위해 상기 하나 또는 그 이상의 압축된 암호문들을 포함하는 응답을 비밀 키를 사용하여 암호 해독하고, 상기 노이즈를 제거하고 상기 하나 또는 그 이상의 압축된 암호문들에 대응하는 평문을 복구하기 위해 상기 인코딩의 중복성(redundancy)을 사용하는 단계를 포함한다.
9. 제8항의 방법에 있어서, 상기 평문의 중복 인코딩은 거의 정사각형 가젯 매트릭스(a nearly square gadget matrix)에 의해서 곱해진, 상기 평문을 포함하는 일부 매트릭스를 포함한다.
10. 제9항의 방법에 있어서, 거의 정사각형 가젯 매트릭스 H에 대해, 풀 랭크(full rank)와 q보다 훨씬 작은 엔트리들을 갖는 다른 매트릭스 F가 존재하고, q는 오류 있는 학습 모듈러스(a learning with errors modulus)이고,
Figure pct00724
이며, 매트릭스 F의 엔트리들은 충분히 작아서 상기 엔트리들이 암호문으로부터 노이즈에 의해서 곱해진 후에도, 결과는 여전히 q보다 작다.
11. 제9항의 방법에 있어서, 상기 비밀 키는
Figure pct00725
형식의 매트릭스이고, 여기서 S'는 오류 있는 학습(LWE) 비밀(a learning with errors (LWE) secret)이며, 상기 평문을 포함하는 일부 매트릭스는 매트릭스
Figure pct00726
이고, 여기서 M은,
Figure pct00727
을 얻기 위한 상기 평문이다.
12. 제11항의 방법에 있어서, 상기 평문은
Figure pct00728
매트릭스 M이고, 상기 매트릭스 M'은 상기 오류 있는 학습(LWE) 비밀의 차원만큼 많은 0의 행들을 더함으로써 M으로부터 획득되며, 상기 차원은 k로 표시되고,
Figure pct00729
으로 표시되며, 상기 패드된 매트릭스 M'은 차원
Figure pct00730
를 갖는다.
13. 제12항의 방법에 있어서, 오른쪽의 M'에 차원
Figure pct00731
의 가젯 매트릭스 H를 곱한 것을 포함하는 상기 중복 인코딩이 n1Хn2의 암호문들 매트릭스의 최종 차원을 생성한다(result in).
14. 제8항의 방법에 있어서, 상기 평문의 중복 인코딩은 1보다 큰 정수에 의해서 곱해진, 상기 평문을 포함하는 일부 매트릭스를 포함한다.
15. 제14항의 방법에 있어서, 상기 비밀 키는
Figure pct00732
형식의 매트릭스이고, 여기서 S'는 오류 있는 학습(LWE) 비밀이며; 상기 평문을 포함하는 합계 매트릭스는 매트릭스
Figure pct00733
이고, 여기서 M은
Figure pct00734
를 얻을 수 있는, 평문이다.
16. 제15항의 방법에 있어서, 상기 평문은
Figure pct00735
매트릭스 M이고, 매트릭스 M'은 상기 오류 있는 학습(LWE) 비밀의 차원만큼 많은 0의 행들을 더함으로써 M으로부터 획득되며, 상기 차원은 k에 의해서 표시되고,
Figure pct00736
으로 표시되고, 상기 패드된 매트릭스 M'은 차원
Figure pct00737
을 갖는다.
17. 방법에 있어서, 상기 방법은: 제 1 컴퓨터 시스템 상의 데이터베이스로부터 선택된 엔트리에 대한 요청을, 제 1 컴퓨터 시스템에서 그리고 제 2 컴퓨터 시스템으로부터, 수신하는 단계; 상기 데이터베이스 내의 선택된 엔트리에 대응하는 암호화된 대답을 계산하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계-상기 압축 가능한 동형 암호화 스킴은 대응하는 평문 대답(cleartext answer)보다 훨씬 더 길지 않는 상기 암호화된 대답을 생성하고, 상기 암호화된 대답을 계산하는 단계는 상기 데이터베이스 내의 각 바이트에 대해 몇 사이클들이 걸림-; 그리고 상기 요청에 대한 응답을, 상기 제1 컴퓨터 시스템에 의해서 그리고 상기 제2 컴퓨터 시스템으로, 전송하는 단계(sending)를 포함하고, 상기 응답은 요청된 상기 선택된 엔트리에 대응하는 상기 암호화된 대답을 포함한다.
18. 제17항의 방법에 있어서, 상기 데이터베이스는 대응하는 N 차원들의 N 데이터베이스 엔트리들로 인덱스 되고; 상기 요청은 상기 데이터베이스에서 인덱스 i를 갖는 선택된 엔트리에 대응하며; 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는: 인덱스 엘리멘트들
Figure pct00738
을 갖는 인덱스 엘리멘트들의 단항 표현(a unary representation of index elements)을 획득하기 위해 상기 요청을 처리하는 단계; N 차원들 중 제1 차원에 대해, 작은 수의 차원의 작은 데이터베이스(smaller database of a smaller number of dimension)를 얻기 위해 각 하이퍼-행 r에 i1-번째 차원에 대응하는 제1 벡터로부터 상기 하이퍼-행에 대응하는 r번째 암호화된 비트를 곱하고-상기 곱하기는 i1-번째 하이퍼-행을 제외하고 모두 0이 됨-, 그리고 모든 최종 암호화된 하이퍼-행들 더하여서 상기 제1 차원을 접는 단계(folding); 및 인덱스 i에 대응하는 상기 선택된 엔트리만을 포함하는 0-차원 하이퍼큐브가 남을 때까지, 한 번에 하나씩, 다른 차원들을 접기 위해 진행하는 단계(proceeding)를 포함하고; 전송하는 단계(sending)는 상기 인덱스 i에 대응하는 엔트리를 전송하는 단계를 포함한다.
19. 제18항의 방법에 있어서, 암호화된 대답을 계산하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는, 상기 접는 단계 전에, 상기 데이터베이스를 더 작은 매트릭스들로 분해하고(break) 이들 더 작은 매트릭스들을 중국의 나머지 정리(Chinese Remainder Theorem: CRT) 표현으로 인코딩함에 의해서 상기 데이터베이스를 사전-처리하는 단계(pre-processing)를 더 포함한다.
20. 제19항의 방법에 있어서, 상기 더 작은 매트릭스들을 중국의 나머지 정리(CRT) 표현으로 인코딩한 후, 상기 인코딩된 더 작은 매트릭스들은 암호문 매트릭스들에 의해서 왼쪽에서 곱해진다.
21. 제20항의 방법에 있어서, 상기 암호문 매트릭스들, C는 작은 스칼라들
Figure pct00739
를 암호화하고, 암호문 C에 의해서 왼쪽에서 평문 매트릭스 M을 곱한 결과는 매트릭스
Figure pct00740
를 암호화하는 압축된 암호문이며, 여기서 q는 오류 있는 학습(LWE) 계수이다.
22. 제18항의 방법에 있어서, 암호화된 대답을 계산하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는, 모든 접는 단계가 수행된 후 그러나 전송 단계 수행 전에, 계수 스위칭(modulus switching)을 수행하는 단계, 상기 선택된 엔트리의 각 암호문을 다른 계수를 갖는 암호문으로 변환하는 단계를 더 포함한다.
23. 제18항의 방법에 있어서, 상기 더하는 단계(adding)는 압축된 암호문들에 대해 부가적 동형(additive homomorphism)을 사용하며, 상기 압축된 암호문들은 작은 스칼라들에 의해서 더해지고 곱해진다.
24. 제18항의 방법에 있어서, 곱하는 단계는 암호문들을 갖는 매트릭스들을 평문 매트릭스들에 의해서 오른 쪽-곱하는 단계(right-multiplying)를 더 포함한다.
25. 방법에 있어서, 상기 방법은: 제1 컴퓨터 시스템에 의해 저장된 데이터베이스로 엔트리의, 상기 제1 컴퓨터 시스템으로 그리고 제2 컴퓨터 시스템에 의해서, 전송될 인덱스 i를 암호화하는 단계- 상기 인덱스 i는 ND 베이스들(bases)의 혼합 기수(a mixed radix)로 표현되고 상기 데이터베이스는 또한 ND 베이스들을 가짐-; 상기 암호화된 인덱스를 사용하여 상기 제1 컴퓨터 시스템으로부터 아이템의 검색을 상기 제2 컴퓨터 시스템에 의해 요청하는 단계; 상기 요청에 대한 응답을, 상기 제2 컴퓨터 시스템에 의해서 그리고 상기 제1 컴퓨터 시스템으로부터, 수신하는 단계-상기 응답은 상기 암호화된 인덱스를 사용하여 요청된 상기 데이터베이스의 엔트리에 대응하는, 하나 또는 그 이상의 압축된 암호문들을 포함하는, 암호화된 대답을 포함함-; 그리고 상기 하나 또는 그 이상의 압축된 암호문들을 대응하는 평문으로 상기 제2 컴퓨터 시스템에 의해 암호 해독하는 단계를 포함한다.
26. 제25항의 방법에 있어서, 상기 혼합 기수 ND 베이스들은 인덱스 엘리멘트들
Figure pct00741
를 갖고, 상기 데이터베이스는 N 차원들을 가지며,
Figure pct00742
이고, 여기서 모든
Figure pct00743
에 대해
Figure pct00744
Figure pct00745
이며, 인덱스 i를 암호화하는 단계는 스칼라들
Figure pct00746
Figure pct00747
를 암호화하는 단계-여기서
Figure pct00748
Figure pct00749
의 비트들임- 및
Figure pct00750
에 대해, 위치
Figure pct00751
에서는 1이고 그 밖의 위치에서는 0(zero elsewhere)인, 유닛 벡터
Figure pct00752
의 비트들을 암호화 하기 위해 암호문들을 암호화 하는 단계를 포함하고, 암호문의 암호문 모듈러스는 합성(composite)
Figure pct00753
이고, 여기서
Figure pct00754
이며
Figure pct00755
이다.
27. 제26항의 방법에 있어서, 인덱스 i를 암호화하는 단계는: 
Figure pct00756
의 최하위 비트, 
Figure pct00757
,에 대해서는 식별(an identity)을 사용하여 상기 최하위 비트를 곱하고, 또한 상기 비트
Figure pct00758
를 
Figure pct00759
에 의하여 곱하는 단계;
Figure pct00760
의 다른 비트들에 대해서는 넓고 짧은 가젯 매트릭스(a wide and short gadget matrix)를 사용하여 상기 다른 비트를 곱하는 단계; 및
Figure pct00761
인 상기 다른
Figure pct00762
의 단항 표현(the unary representation)을 인코딩하는 비트들에 대해서는, 다소 직사각형 가젯 매트릭스(a somewhat rectangular gadget matrix)를 사용하여 상기 단항 표현을 인코딩하는 비트들을 곱하는 단계를 포함한다.
28. 제25항의 방법에 있어서, 상기 암호 해독하는 단계는 상기 하나 또는 그 이상의 압축된 암호문들에 대응하는 상기 평문의 중복 인코딩 및 추가 노이즈를 포함하는 매트릭스를 획득하기 위해 상기 하나 또는 그 이상의 압축된 암호문들을 포함하는 상기 응답을 비밀 키를 사용하여 암호 해독하는 단계, 및 상기 노이즈를 제거하고 상기 하나 또는 그 이상의 압축된 암호문들에 대응하는 평문을 복구하기 위해 상기 인코딩의 중복성을 사용하는 단계를 포함한다.
29. 제28항의 방법에 있어서, 상기 평문의 중복 인코딩은, 거의 정사각형 가젯 매트릭스에 의해서 곱해진, 상기 평문을 포함하는 일부 매트릭스를 포함한다.
30. 제29항의 방법에 있어서, 상기 거의 정사각형 가제트 매트릭스 H에 대해, 풀 랭크를 갖고 q 보다 훨씬 작은 엔트리를 갖는 또 다른 매트릭스 F 가 존재하고, 여기서 q는 오류 있는 학습(LWE)계수이며,
Figure pct00763
이고, 매트릭스 F의 상기 엔트리들은 충분히 작아서 상기 엔트리들이 암호문으로부터 노이즈에 의해서 곱해진 후에도, 결과가 여전히 q 보다 더 작다.
31. 제29항의 방법에 있어서, 상기 비밀 키는
Figure pct00764
형식의 매트릭스이고, 여기서
Figure pct00765
는 오류 있는 학습(LWE) 비밀이며; 상기 평문을 포함하는 일부 매트릭스는 매트릭스
Figure pct00766
이고 여기서 M은,
Figure pct00767
을 얻기 위한, 상기 평문이다.
32. 제31항의 방법에 있어서, 상기 평문은
Figure pct00768
매트릭스 M이고, 매트릭스 M'은 오류 있는 학습(LWE) 비밀의 차원만큼 많은 0의 행들을 더함에 의해서 M으로부터 획득되며, 상기 차원은 k에 의해서 표시되고,
Figure pct00769
로 표시되며, 상기 패드된 매트릭스 M'은 차원
Figure pct00770
을 갖는다.
33. 제32항의 방법에 있어서, 차원
Figure pct00771
의 상기 가젯 매트릭스 H로 오른쪽에서 M'을 곱하는 단계를 포함하는 상기 중복 인코딩은 n1Хn2의 암호문들의 매트릭스의 최종 차원을 생성한다.
34. 제30항의 방법에 있어서, 상기 평문의 중복 인코딩은, 1보다 큰 정수에 의해서 곱해진 상기 평문을 포함하는 일부 매트릭스를 포함한다.
35. 제34항의 방법에 있어서, 상기 비밀 키는
Figure pct00772
형식의 매트릭스이고, 여기서 S'는 오류 있는 학습(LWE) 비밀이며; 상기 평문을 포함하는 일부 매트릭스는 매트릭스
Figure pct00773
이고, 여기서 M은,
Figure pct00774
를 얻기 위한, 상기 평문이다.
36. 제35항의 방법에 있어서, 상기 평문은
Figure pct00775
매트릭스 M이고, 상기 매트릭스 M'은 상기 오류 있는 학습(LWE) 비밀의 차원만큼 많은 0의 행들을 더함에 의해서 M으로부터 획득되며, 상기 차원은 k로 표시되고,
Figure pct00776
를 표시하며, 상기 패드된 매트릭스 M'은 차원
Figure pct00777
을 갖는다.

Claims (36)

  1. 방법에 있어서, 상기 방법은:
    제 1 컴퓨터 시스템 상의 데이터베이스 내의 데이터를 사용하여 결정될 수 있는 특정 정보에 대한 요청을, 제 1 컴퓨터 시스템에서 그리고 제 2 컴퓨터 시스템으로부터, 수신하는 단계-상기 데이터의 적어도 일부가 암호화되거나 또는 상기 요청이 암호화되며, 상기 암호화된 데이터 또는 상기 암호화된 요청을 암호 해독하기 위한 암호 해독 키를 상기 제1 컴퓨터 시스템은 갖지 않음-;
    상기 데이터베이스 내의 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 결정하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 연산들을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계-상기 압축 가능한 동형 암호화 연산들은 제1의 비압축 동형 암호화 스킴(scheme) 및 제2의 압축된 동형 암호화 스킴을 사용하고, 상기 압축 가능한 동형 암호화 연산들을 수행하는 단계는 다른 다수의 암호문들을 생성하기 위해 상기 데이터에 관해 상기 제1 동형 암호화 스킴을 사용하는 단계 및 상기 다른 다수의 암호문들을 압축되는 더 적은 수의 암호문들로 팩(pack)하기 위해 상기 다른 다수의 암호문들에 관해 상기 제2의 압축된 동형 암호화 스킴을 사용하는 단계를 포함하며, 상기 제1의 압축된 동형 암호화 스킴 및 상기 제2의 압축된 동형 암호화 스킴은 모두 동일 비밀 키를 사용함-; 그리고
    상기 요청에 대한 응답을, 상기 제1 컴퓨터 시스템에 의해서 그리고 상기 제2 컴퓨터 시스템으로, 전송하는 단계를 포함하고, 상기 응답은 요청된 상기 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 포함하는
    방법.
  2. 제1항에 있어서, 상기 제2 압축 동형 암호화 스킴을 사용함으로써, 상기 압축된 암호문들의 크기는 상기 압축된 암호문들이 대응하는 비암호화 데이터(unencrypted data)의 크기에 임의로(arbitrarily) 근접될 수 있는
    방법.
  3. 제2항에 있어서, 모든 선택된 ε에 대해, 상기 압축된 암호문들의 크기가 상기 대응 평문의 크기의 (1 + ε)배가 되는 상기 제2의 동형 암호화 스킴의 인스턴스화(an instantiation)가 되게 상기 제2의 동형 암호화 스킴이 구성되기 때문에, 상기 압축된 암호문들의 크기는 상기 압축된 암호문들이 대응하는 평문의 크기에 임의로(arbitrarily) 근접될 수 있는
    방법.
  4. 제1항에 있어서, 상기 데이터에 관해 압축 가능한 동형 암호화 연산들을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는 많은 비트의 암호문들을 정수들의 링 R에서 더 큰 스칼라(a larger scalar in a ring of integers R)를 암호화하는 단일의 암호문으로 압축하기 위해 정수들의 링 R에서 스칼라(a scalar in a ring of integers R)를 나타내는 많은 비트의 암호문을 포함하는 데이터에 관해 부분 압축을 수행하는 단계를 더 포함하는
    방법. 
  5. 제1항에 있어서, 상기 다수의 동형 암호문들을 단일의 압축된 암호문으로 팩(pack)하기 위해 상기 다수의 동형 암호문들에 관해 상기 제2의 동형 암호화 스킴을 사용하는 단계는
    Figure pct00778
    를 계산함에 의해서 암호문들
    Figure pct00779
    를 압축하는 단계를 더 포함하고,
    Figure pct00780
    의 암호문들이 있으며,
    Figure pct00781
    ,
    Figure pct00782
    이고,
    Figure pct00783
    Figure pct00784
    은 차원들(dimensions)이며, q는 학습 오류(LWE) 모듈러스(a learning with errors (LWE) modulus)이고, G는 직사각형 가젯 매트릭스이며, H는 거의 정사각형인 가젯 매트릭스(a nearly square gadget matrix),
    Figure pct00785
    이고, 그리고
    Figure pct00786
    는 엔트리
    Figure pct00787
    에서는 1이며 다른 곳에서는 0인 정사각형
    Figure pct00788
    싱글톤 매트릭스, 즉
    Figure pct00789
    이고,
    Figure pct00790
    는 위치들
    Figure pct00791
    에서 1이고, 각각
    Figure pct00792
    인, 차원-
    Figure pct00793
    의 단위 벡터들인
    방법.
  6. 제1항에 있어서, 상기 데이터에 관해 압축 가능한 동형 암호화 연산들을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는, 비트들
    Figure pct00794
    을 암호화하는
    Figure pct00795
    젠트리, 사하이 및 워터스(GSW) 암호문들이 주어졌을 때, 상기 GSW 암호문을
    Figure pct00796
    를 암호화하는 단일 GSW 암호문으로 부분적으로 압축하는 단계, 일부
    Figure pct00797
    에 대해 스칼라의 형태
    Figure pct00798
    를 암호화하는 단일 GSW 암호문을 생성하는 단계-여기서 Z는 정수의 집합임-, 그리고,
    Figure pct00799
    를 암호화하는
    Figure pct00800
    의 암호문들
    Figure pct00801
    가 주어졌을 때,
    Figure pct00802
    를 세트 함에 의해서 상기 암호문들
    Figure pct00803
    를 압축하는 단계를 포함하고, 여기서,
    Figure pct00804
    는 k개의 0들이 프리펜드 된(prepended) i번째 유닛 벡터이고, G는 직사각형 가젯 매트릭스이며 그리고 k는 비밀 키의 길이이고, 상기 단일 GSW 암호문을 생성하는 단계는
    Figure pct00805
    벡터의 압축된 암호화를 생성하는
    방법.
  7. 방법에 있어서, 상기 방법은:
    암호화된 데이터를 생성하기 위해 평문을, 제1 컴퓨터 시스템으로 전송하고 제2 컴퓨터 시스템에서 수행하기 위해, 암호화하는 단계; 
    상기 암호화된 데이터를 암호 해독하기 위한 암호 해독 키를 상기 제1 컴퓨터 시스템이 갖지 않고, 상기 제2 컴퓨터 시스템으로부터 상기 제1 컴퓨터 시스템으로 상기 암호화된 데이터를 전송하는 단계;
    상기 암호화된 데이터를 사용하여 결정될 수 있는 특정 정보에 대한 요청을 상기 제2 컴퓨터 시스템에 의해서 전송하는 단계;
    상기 요청에 대한 응답을, 상기 제2 컴퓨터 시스템에서 그리고 상기 제1 컴퓨터 시스템으로부터, 수신하는 단계-상기 응답은 요청된 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 포함함-; 및
    상기 하나 또는 그 이상의 압축된 암호문들을 대응하는 평문으로 상기 제2 컴퓨터 시스템에 의해서 암호 해독하는 단계를 포함하는
    방법.
  8. 제7항에 있어서, 상기 암호 해독하는 단계는 상기 하나 또는 그 이상의 압축된 암호문들에 대응하는 평문의 중복 인코딩(a redundant encoding) 및 추가의 노이즈(additional noise)를 포함하는 매트릭스를 획득하기 위해 상기 하나 또는 그 이상의 압축된 암호문들을 포함하는 응답을 비밀 키를 사용하여 암호 해독하고, 상기 노이즈를 제거하고 상기 하나 또는 그 이상의 압축된 암호문들에 대응하는 평문을 복구하기 위해 상기 인코딩의 중복성(redundancy)을 사용하는 단계를 포함하는
    방법.
  9. 제8항에 있어서, 상기 평문의 중복 인코딩은 거의 정사각형 가젯 매트릭스(a nearly square gadget matrix)에 의해서 곱해진, 상기 평문을 포함하는 일부 매트릭스를 포함하는
    방법.
  10. 제9항에 있어서, 거의 정사각형 가젯 매트릭스 H에 대해, 풀 랭크(full rank)와 q보다 훨씬 작은 엔트리들을 갖는 다른 매트릭스 F가 존재하고, q는 오류 있는 학습 모듈러스(a learning with errors modulus)이고,
    Figure pct00806
    이며, 매트릭스 F의 엔트리들은 충분히 작아서 상기 엔트리들이 암호문으로부터 노이즈에 의해서 곱해진 후에도, 결과는 여전히 q보다 작은
    방법. 
  11. 제9항에 있어서, 상기 비밀 키는
    Figure pct00807
    형식의 매트릭스이고, 여기서 S'는 오류 있는 학습(LWE) 비밀(a learning with errors (LWE) secret)이며, 상기 평문을 포함하는 일부 매트릭스는 매트릭스
    Figure pct00808
    이고, 여기서 M은,
    Figure pct00809
    을 얻기 위한 상기 평문인
    방법.
  12. 제11항에 있어서, 상기 평문은
    Figure pct00810
    매트릭스 M이고, 상기 매트릭스 M'은 상기 오류 있는 학습(LWE) 비밀의 차원만큼 많은 0의 행들을 더함으로써 M으로부터 획득되며, 상기 차원은 k로 표시되고,
    Figure pct00811
    으로 표시되며, 상기 패드된 매트릭스 M'은 차원
    Figure pct00812
    를 갖는
    방법.
  13. 제12항에 있어서, 오른쪽의 M'에 차원
    Figure pct00813
    의 가젯 매트릭스 H를 곱한 것을 포함하는 상기 중복 인코딩이 n1Хn2의 암호문들 매트릭스의 최종 차원을 생성하는(result in)
    방법.
  14. 제8항에 있어서, 상기 평문의 중복 인코딩은 1보다 큰 정수에 의해서 곱해진, 상기 평문을 포함하는 일부 매트릭스를 포함하는
    방법.
  15. 제14항에 있어서, 상기 비밀 키는
    Figure pct00814
    형식의 매트릭스이고, 여기서 S'는 오류 있는 학습(LWE) 비밀이며;
    상기 평문을 포함하는 합계 매트릭스는 매트릭스
    Figure pct00815
    이고, 여기서 M은
    Figure pct00816
    를 얻을 수 있는, 평문인
    방법.
  16. 제15항에 있어서, 상기 평문은
    Figure pct00817
    매트릭스 M이고, 매트릭스 M'은 상기 오류 있는 학습(LWE) 비밀의 차원만큼 많은 0의 행들을 더함으로써 M으로부터 획득되며, 상기 차원은 k에 의해서 표시되고,
    Figure pct00818
    으로 표시되고, 상기 패드된 매트릭스 M'은 차원
    Figure pct00819
    을 갖는
    방법.
  17. 방법에 있어서, 상기 방법은:
    제 1 컴퓨터 시스템 상의 데이터베이스로부터 선택된 엔트리에 대한 요청을, 제 1 컴퓨터 시스템에서 그리고 제 2 컴퓨터 시스템으로부터, 수신하는 단계;
    상기 데이터베이스 내의 선택된 엔트리에 대응하는 암호화된 대답을 계산하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계-상기 압축 가능한 동형 암호화 스킴은 대응하는 평문 대답(cleartext answer)보다 훨씬 더 길지 않는 상기 암호화된 대답을 생성하고, 상기 암호화된 대답을 계산하는 단계는 상기 데이터베이스 내의 각 바이트에 대해 몇 사이클들이 걸림-; 그리고
    상기 요청에 대한 응답을, 상기 제1 컴퓨터 시스템에 의해서 그리고 상기 제2 컴퓨터 시스템으로, 전송하는 단계(sending)를 포함하고, 상기 응답은 요청된 상기 선택된 엔트리에 대응하는 상기 암호화된 대답을 포함하는
    방법.
  18. 제17항에 있어서, 상기 데이터베이스는 대응하는 N 차원들의 N 데이터베이스 엔트리들로 인덱스 되고;
    상기 요청은 상기 데이터베이스에서 인덱스 i를 갖는 선택된 엔트리에 대응하며;
    상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는:
    인덱스 엘리멘트들
    Figure pct00820
    을 갖는 인덱스 엘리멘트들의 단항 표현(a unary representation of index elements)을 획득하기 위해 상기 요청을 처리하는 단계;
    N 차원들 중 제1 차원에 대해, 작은 수의 차원의 작은 데이터베이스(smaller database of a smaller number of dimension)를 얻기 위해 각 하이퍼-행 r에 i1-번째 차원에 대응하는 제1 벡터로부터 상기 하이퍼-행에 대응하는 r번째 암호화된 비트를 곱하고-상기 곱하기는 i1-번째 하이퍼-행을 제외하고 모두 0이 됨-, 그리고 모든 최종 암호화된 하이퍼-행들 더하여서 상기 제1 차원을 접는 단계(folding); 및 
    인덱스 i에 대응하는 상기 선택된 엔트리만을 포함하는 0-차원 하이퍼큐브가 남을 때까지, 한 번에 하나씩, 다른 차원들을 접기 위해 진행하는 단계(proceeding)를 포함하고; 
    전송하는 단계(sending)는 상기 인덱스 i에 대응하는 엔트리를 전송하는 단계를 포함하는
    방법.
  19. 제18항에 있어서, 암호화된 대답을 계산하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는, 상기 접는 단계 전에, 상기 데이터베이스를 더 작은 매트릭스들로 분해하고(break) 이들 더 작은 매트릭스들을 중국의 나머지 정리(Chinese Remainder Theorem: CRT) 표현으로 인코딩함에 의해서 상기 데이터베이스를 사전-처리하는 단계(pre-processing)를 더 포함하는
    방법.
  20. 제19항에 있어서, 상기 더 작은 매트릭스들을 중국의 나머지 정리(CRT) 표현으로 인코딩한 후, 상기 인코딩된 더 작은 매트릭스들은 암호문 매트릭스들에 의해서 왼쪽에서 곱해지는
    방법.
  21. 제20항에 있어서, 상기 암호문 매트릭스들, C는 작은 스칼라들
    Figure pct00821
    를 암호화하고, 암호문 C에 의해서 왼쪽에서 평문 매트릭스 M을 곱한 결과는 매트릭스
    Figure pct00822
    를 암호화하는 압축된 암호문이며, 여기서 q는 오류 있는 학습(LWE) 계수인
    방법.
  22. 제18항에 있어서, 암호화된 대답을 계산하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는, 모든 접는 단계가 수행된 후 그러나 전송 단계 수행 전에, 계수 스위칭(modulus switching)을 수행하는 단계, 상기 선택된 엔트리의 각 암호문을 다른 계수를 갖는 암호문으로 변환하는 단계를 더 포함하는
    방법. 
  23. 제18항에 있어서, 상기 더하는 단계(adding)는 압축된 암호문들에 대해 부가적 동형(additive homomorphism)을 사용하며, 상기 압축된 암호문들은 작은 스칼라들에 의해서 더해지고 곱해지는
    방법. 
  24. 제18항에 있어서, 곱하는 단계는 암호문들을 갖는 매트릭스들을 평문 매트릭스들에 의해서 오른 쪽-곱하는 단계(right-multiplying)를 더 포함하는
    방법.
  25. 방법에 있어서, 상기 방법은:
    제1 컴퓨터 시스템에 의해 저장된 데이터베이스로 엔트리의, 상기 제1 컴퓨터 시스템으로 그리고 제2 컴퓨터 시스템에 의해서, 전송될 인덱스 i를 암호화하는 단계- 상기 인덱스 i는 ND 베이스들(bases)의 혼합 기수(a mixed radix)로 표현되고 상기 데이터베이스는 또한 ND 베이스들을 가짐-;
    상기 암호화된 인덱스를 사용하여 상기 제1 컴퓨터 시스템으로부터 아이템의 검색을 상기 제2 컴퓨터 시스템에 의해 요청하는 단계;
    상기 요청에 대한 응답을, 상기 제2 컴퓨터 시스템에 의해서 그리고 상기 제1 컴퓨터 시스템으로부터, 수신하는 단계-상기 응답은 상기 암호화된 인덱스를 사용하여 요청된 상기 데이터베이스의 엔트리에 대응하는, 하나 또는 그 이상의 압축된 암호문들을 포함하는, 암호화된 대답을 포함함-; 그리고
    상기 하나 또는 그 이상의 압축된 암호문들을 대응하는 평문으로 상기 제2 컴퓨터 시스템에 의해 암호 해독하는 단계를 포함하는
    방법.
  26. 제25항에 있어서, 상기 혼합 기수 ND 베이스들은 인덱스 엘리멘트들
    Figure pct00823
    를 갖고, 상기 데이터베이스는 N 차원들을 가지며,
    Figure pct00824
    이고, 여기서 모든
    Figure pct00825
    에 대해
    Figure pct00826
    Figure pct00827
    이며, 인덱스 i를 암호화하는 단계는 스칼라들
    Figure pct00828
    Figure pct00829
    를 암호화하는 단계-여기서
    Figure pct00830
    Figure pct00831
    의 비트들임- 및
    Figure pct00832
    에 대해, 위치
    Figure pct00833
    에서는 1이고 그 밖의 위치에서는 0(zero elsewhere)인, 유닛 벡터
    Figure pct00834
    의 비트들을 암호화 하기 위해 암호문들을 암호화 하는 단계를 포함하고, 암호문의 암호문 모듈러스는 합성(composite)
    Figure pct00835
    이고, 여기서
    Figure pct00836
    이며
    Figure pct00837

    방법.
  27. 제26항에 있어서, 인덱스 i를 암호화하는 단계는: 
    Figure pct00838
    의 최하위 비트, 
    Figure pct00839
    ,에 대해서는 식별(an identity)을 사용하여 상기 최하위 비트를 곱하고, 또한 상기 비트
    Figure pct00840
    Figure pct00841
    에 의하여 곱하는 단계;
    Figure pct00842
    의 다른 비트들에 대해서는 넓고 짧은 가젯 매트릭스(a wide and short gadget matrix)를 사용하여 상기 다른 비트를 곱하는 단계; 및
    Figure pct00843
    인 상기 다른
    Figure pct00844
    의 단항 표현(the unary representation)을 인코딩하는 비트들에 대해서는, 다소 직사각형 가젯 매트릭스(a somewhat rectangular gadget matrix)를 사용하여 상기 단항 표현을 인코딩하는 비트들을 곱하는 단계를 포함하는
    방법.
  28. 제25항에 있어서, 상기 암호 해독하는 단계는 상기 하나 또는 그 이상의 압축된 암호문들에 대응하는 상기 평문의 중복 인코딩 및 추가 노이즈를 포함하는 매트릭스를 획득하기 위해 상기 하나 또는 그 이상의 압축된 암호문들을 포함하는 상기 응답을 비밀 키를 사용하여 암호 해독하는 단계, 및 상기 노이즈를 제거하고 상기 하나 또는 그 이상의 압축된 암호문들에 대응하는 평문을 복구하기 위해 상기 인코딩의 중복성을 사용하는 단계를 포함하는
    방법.
  29. 제26항 내지 제28항의 항들 중 어느 한 항에 있어서, 상기 평문의 중복 인코딩은, 거의 정사각형 가젯 매트릭스에 의해서 곱해진, 상기 평문을 포함하는 일부 매트릭스를 포함하는
    방법.
  30. 제29항에 있어서, 상기 거의 정사각형 가제트 매트릭스 H에 대해, 풀 랭크를 갖고 q 보다 훨씬 작은 엔트리를 갖는 또 다른 매트릭스 F 가 존재하고, 여기서 q는 오류 있는 학습(LWE)계수이며,
    Figure pct00845
    이고, 매트릭스 F의 상기 엔트리들은 충분히 작아서 상기 엔트리들이 암호문으로부터 노이즈에 의해서 곱해진 후에도, 결과가 여전히 q 보다 더 작은
    방법.
  31. 제29항에 있어서, 상기 비밀 키는
    Figure pct00846
    형식의 매트릭스이고, 여기서
    Figure pct00847
    는 오류 있는 학습(LWE) 비밀이며;
    상기 평문을 포함하는 일부 매트릭스는 매트릭스
    Figure pct00848
    이고 여기서 M은,
    Figure pct00849
    을 얻기 위한, 상기 평문인
    방법. 
  32. 제31항에 있어서, 상기 평문은
    Figure pct00850
    매트릭스 M이고, 매트릭스 M'은 오류 있는 학습(LWE) 비밀의 차원만큼 많은 0의 행들을 더함에 의해서 M으로부터 획득되며, 상기 차원은 k에 의해서 표시되고,
    Figure pct00851
    로 표시되며, 상기 패드된 매트릭스 M'은 차원
    Figure pct00852
    을 갖는
    방법. 
  33. 제32항에 있어서, 차원
    Figure pct00853
    의 상기 가젯 매트릭스 H로 오른쪽에서 M'을 곱하는 단계를 포함하는 상기 중복 인코딩은 n1Хn2의 암호문들의 매트릭스의 최종 차원을 생성하는
    방법.
  34. 제30항에 있어서, 상기 평문의 중복 인코딩은, 1보다 큰 정수에 의해서 곱해진 상기 평문을 포함하는 일부 매트릭스를 포함하는
    방법.
  35. 제34항에 있어서, 상기 비밀 키는
    Figure pct00854
    형식의 매트릭스이고, 여기서 S'는 오류 있는 학습(LWE) 비밀이며;
    상기 평문을 포함하는 일부 매트릭스는 매트릭스
    Figure pct00855
    이고, 여기서 M은,
    Figure pct00856
    를 얻기 위한, 상기 평문인
    방법.
  36. 제35항에 있어서, 상기 평문은
    Figure pct00857
    매트릭스 M이고, 상기 매트릭스 M'은 상기 오류 있는 학습(LWE) 비밀의 차원만큼 많은 0의 행들을 더함에 의해서 M으로부터 획득되며, 상기 차원은 k로 표시되고,
    Figure pct00858
    를 표시하며, 상기 패드된 매트릭스 M'은 차원
    Figure pct00859
    을 갖는
    방법.
KR1020217039840A 2019-06-18 2020-06-15 개인 정보 검색에 대한 애플리케이션들을 갖는 동형 암호화 KR20220004201A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16/444,540 US10985904B2 (en) 2019-06-18 2019-06-18 Compressible (F)HE with applications to PIR
US16/444,278 US10972252B2 (en) 2019-06-18 2019-06-18 Compressible (F)HE with applications to PIR
US16/444,278 2019-06-18
US16/444,540 2019-06-18
PCT/EP2020/066490 WO2020254248A1 (en) 2019-06-18 2020-06-15 Homomorphic encryption with applications to private information retrieval

Publications (1)

Publication Number Publication Date
KR20220004201A true KR20220004201A (ko) 2022-01-11

Family

ID=74038352

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217039840A KR20220004201A (ko) 2019-06-18 2020-06-15 개인 정보 검색에 대한 애플리케이션들을 갖는 동형 암호화

Country Status (12)

Country Link
US (4) US10972252B2 (ko)
EP (1) EP3984160B1 (ko)
JP (2) JP7486529B2 (ko)
KR (1) KR20220004201A (ko)
CN (1) CN113906712A (ko)
AU (1) AU2020294855B2 (ko)
BR (1) BR112021025744A2 (ko)
CA (1) CA3143362A1 (ko)
IL (1) IL288975B2 (ko)
MX (1) MX2021014837A (ko)
SG (1) SG11202110349VA (ko)
WO (1) WO2020254248A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240018910A (ko) 2022-08-03 2024-02-14 경희대학교 산학협력단 양자 단대단 암호화 시스템 및 그 동작 방법

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180373882A1 (en) * 2017-06-23 2018-12-27 Thijs Veugen Privacy preserving computation protocol for data analytics
CN112182595B (zh) * 2019-07-03 2024-03-26 北京百度网讯科技有限公司 基于联邦学习的模型训练方法及装置
US11526466B2 (en) * 2019-08-23 2022-12-13 Salesforce, Inc. Uniform growth for differently sized files
US20210081807A1 (en) * 2019-09-17 2021-03-18 Sap Se Non-Interactive Private Decision Tree Evaluation
IL272520A (en) * 2020-02-06 2021-08-31 Google Llc Aggregation of encrypted network values
KR20210146513A (ko) * 2020-05-27 2021-12-06 삼성전자주식회사 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치
EP3993308A1 (en) * 2020-10-29 2022-05-04 Zama SAS Fully homomorphic cryptography with improved data item representation
CN112766495A (zh) * 2021-01-26 2021-05-07 支付宝(杭州)信息技术有限公司 一种基于混合环境的深度学习模型隐私保护方法及装置
EP4050471A1 (en) * 2021-02-26 2022-08-31 Zama SAS Encrypted scalar multiplication
US20220321332A1 (en) * 2021-03-30 2022-10-06 International Business Machines Corporation Post-quantum cryptography secured execution environments for edge devices
US20220358237A1 (en) * 2021-05-04 2022-11-10 International Business Machines Corporation Secure data analytics
US11722290B2 (en) * 2021-05-21 2023-08-08 Samsung Electronics Co., Ltd. Method and apparatus for modulus refresh in homomorphic encryption
US11461481B1 (en) * 2021-06-04 2022-10-04 Polyverse Corporation Encrypted to be executed software code and execution environment apparatuses, systems, and methods
US12021967B2 (en) * 2021-07-14 2024-06-25 Siemens Healthineers Ag Privacy preserving artificial intelligence based clinical decision support
CN115694776A (zh) * 2021-07-27 2023-02-03 三星电子株式会社 存储设备、存储***操作方法和计算***
CN113660085B (zh) * 2021-08-13 2023-06-06 北方工业大学 一种基于量子同态加密的量子安全多方计算方法
US20230143175A1 (en) * 2021-10-29 2023-05-11 Seagate Technology Llc Device specific multiparty computation
US20230327847A1 (en) * 2022-04-10 2023-10-12 International Business Machines Corporation Compression of homomorphic ciphertexts
CN115378571A (zh) * 2022-06-28 2022-11-22 中国人民武装警察部队工程大学 具有高效密文扩展过程的gsw型多密钥全同态加密方法
CN116016571A (zh) * 2022-12-29 2023-04-25 中国科学技术大学 基于rcrt的分布式存储方法、***、设备及存储介质
US11977657B1 (en) * 2023-02-22 2024-05-07 Lorica Cybersecurity Inc. Method and system for confidential repository searching and retrieval
CN117729534A (zh) * 2023-05-17 2024-03-19 荣耀终端有限公司 一种查询方法、电子设备及***

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569771B2 (en) 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
KR101795771B1 (ko) * 2013-03-18 2017-11-09 한국전자통신연구원 정수 기반 준동형 암호 기법에서 압축 암복호화를 제공하는 시스템 및 방법
KR102019159B1 (ko) * 2013-12-23 2019-09-09 한국전자통신연구원 정수 기반 준동형 암호 기법에 일반적으로 적용 가능한 압축 암복호화 장치 및 방법
US9397832B2 (en) * 2014-08-27 2016-07-19 International Business Machines Corporation Shared data encryption and confidentiality
WO2016048775A1 (en) 2014-09-26 2016-03-31 Thomson Licensing Xor-homomorphic cryptosystems with fast key generation
JP6381128B2 (ja) * 2015-02-05 2018-08-29 国立研究開発法人産業技術総合研究所 検索システム、クライアント、サーバ、検索プログラムおよび検索方法
FR3035986B1 (fr) 2015-05-06 2018-07-27 Morpho Procede de generation d'une signature de message a partir d'un jeton de signature chiffre a l'aide d'une fonction de chiffrement homomorphique
WO2017008043A1 (en) * 2015-07-08 2017-01-12 Brown University Homomorphic encryption
FR3040842B1 (fr) * 2015-09-03 2018-12-07 Commissariat A L'energie Atomique Et Aux Energies Alternatives Methode d'interrogation confidentielle d'un service geodependant par cryptographie homomorphe
US10554385B2 (en) * 2015-09-04 2020-02-04 Nec Corporation Method for providing encrypted data in a database and method for searching on encrypted data
EP3361469B8 (en) * 2015-10-09 2021-03-10 Mitsubishi Electric Corporation Secret search system, management device, secret search method, and secret search program
US11290252B2 (en) * 2017-01-20 2022-03-29 Enveil, Inc. Compression and homomorphic encryption in secure query and analytics
KR101919940B1 (ko) * 2017-02-08 2018-11-19 서울대학교산학협력단 완전 동형 암호 방법에 의한 동적 데이터의 처리 방법
CN108964869A (zh) * 2018-06-08 2018-12-07 浙江捷尚人工智能研究发展有限公司 短密钥全同态加密方法及***

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240018910A (ko) 2022-08-03 2024-02-14 경희대학교 산학협력단 양자 단대단 암호화 시스템 및 그 동작 방법

Also Published As

Publication number Publication date
JP2022537531A (ja) 2022-08-26
US11394526B2 (en) 2022-07-19
MX2021014837A (es) 2022-01-18
EP3984160A1 (en) 2022-04-20
AU2020294855B2 (en) 2023-08-10
US20200403781A1 (en) 2020-12-24
US10972252B2 (en) 2021-04-06
US10985904B2 (en) 2021-04-20
BR112021025744A2 (pt) 2022-02-22
EP3984160B1 (en) 2023-07-26
US20210111864A1 (en) 2021-04-15
IL288975B2 (en) 2024-06-01
AU2020294855A1 (en) 2021-10-14
EP3984160C0 (en) 2023-07-26
US20210111865A1 (en) 2021-04-15
SG11202110349VA (en) 2021-10-28
US20200403772A1 (en) 2020-12-24
WO2020254248A1 (en) 2020-12-24
US11502821B2 (en) 2022-11-15
CA3143362A1 (en) 2020-12-24
IL288975B1 (en) 2024-02-01
JP2024063125A (ja) 2024-05-10
IL288975A (en) 2022-02-01
CN113906712A (zh) 2022-01-07
JP7486529B2 (ja) 2024-05-17

Similar Documents

Publication Publication Date Title
KR20220004201A (ko) 개인 정보 검색에 대한 애플리케이션들을 갖는 동형 암호화
Gentry et al. Compressible FHE with applications to PIR
Geng Homomorphic encryption technology for cloud computing
Liu et al. An efficient privacy-preserving outsourced computation over public data
CN112270006A (zh) 电商平台中隐藏搜索模式和访问模式的可搜索加密方法
KR101866935B1 (ko) 연관된 개인 키 부분을 사용하는 보다 빠른 공개 키 암호화를 위한 시스템들 및 방법들
Benzekki et al. A secure cloud computing architecture using homomorphic encryption
KR20150073753A (ko) 정수 기반 준동형 암호 기법에 일반적으로 적용 가능한 압축 암복호화 장치 및 방법
Schoinianakis Residue arithmetic systems in cryptography: a survey on modern security applications
Brakerski et al. Better security for deterministic public-key encryption: The auxiliary-input setting
WO2019220900A1 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
Yoosuf et al. FogDedupe: A Fog‐Centric Deduplication Approach Using Multi‐Key Homomorphic Encryption Technique
Vo-Huu et al. EPiC: efficient privacy-preserving counting for MapReduce
WO2023278848A1 (en) Encrypted information retrieval
Blass et al. Epic: Efficient privacy-preserving counting for mapreduce
Xu et al. Efficient Private Information Retrieval Protocol with Homomorphically Computing Univariate Polynomials
Hong et al. A Miniature CCA public key encryption scheme based on non-abelian factorization problem in finite groups of lie type
Hoffstein et al. Pass-encrypt: a public key cryptosystem based on partial evaluation of polynomials
US11728984B2 (en) Hybrid public-key and private-key encryption system
Yerukhimovich A General framework for one database private information retrieval
Ekong et al. Hybridized Cryptography and Cloud Folder Model (CFM) for Secure Cloud-Based Storage
Blackwell et al. Leibniz International Proceedings in Informatics (LIPIcs): 15th Innovations in Theoretical Computer Science Conference (ITCS 2024)
Rasina Begum et al. A Secured Cloud Storage Scheme Using ECC-IRNS Based Deduplication Approach in IoT Networks
김진수 Efficient Fully Homomorphic Encryption over the Integers
JP2019117232A (ja) 暗号化装置、復号装置、暗号化方法、復号方法、プログラム

Legal Events

Date Code Title Description
E902 Notification of reason for refusal