KR20220004201A - 개인 정보 검색에 대한 애플리케이션들을 갖는 동형 암호화 - Google Patents
개인 정보 검색에 대한 애플리케이션들을 갖는 동형 암호화 Download PDFInfo
- 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
Links
- 230000004044 response Effects 0.000 claims abstract description 51
- 239000011159 matrix material Substances 0.000 claims description 194
- 238000000034 method Methods 0.000 claims description 159
- 239000013598 vector Substances 0.000 claims description 43
- 230000006835 compression Effects 0.000 claims description 22
- 238000007906 compression Methods 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 7
- 239000000654 additive Substances 0.000 claims description 5
- 230000000996 additive effect Effects 0.000 claims description 5
- 239000003643 water by type Substances 0.000 claims description 5
- OAICVXFJPJFONN-UHFFFAOYSA-N Phosphorus Chemical compound [P] OAICVXFJPJFONN-UHFFFAOYSA-N 0.000 claims description 4
- 229910052698 phosphorus Inorganic materials 0.000 claims description 4
- 239000011574 phosphorus Substances 0.000 claims description 4
- 238000007781 pre-processing Methods 0.000 claims description 3
- 238000003860 storage Methods 0.000 description 26
- 238000004590 computer program Methods 0.000 description 22
- 238000011156 evaluation Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 18
- 230000015654 memory Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000005457 optimization Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000013459 approach Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 8
- 230000009466 transformation Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 5
- 238000010276 construction Methods 0.000 description 5
- 229910052709 silver Inorganic materials 0.000 description 5
- 239000004332 silver Substances 0.000 description 5
- 238000007792 addition Methods 0.000 description 4
- 238000007477 logistic regression Methods 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 102000001708 Protein Isoforms Human genes 0.000 description 2
- 108010029485 Protein Isoforms Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000032258 transport Effects 0.000 description 2
- 241001503974 Adriana Species 0.000 description 1
- 241001156002 Anthonomus pomorum Species 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 208000035977 Rare disease Diseases 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003760 hair shine Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000036039 immunity Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000033001 locomotion Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
- H04N21/2353—Processing 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 컴퓨터 시스템은 상기 특정 정보에 대응하는 압축된 암호문(들)을 포함하는 응답을 전송한다.
제 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의 계속이다.)
[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)는 종종 통신과 계산 모두에서 비현실적인 것으로 간주된다. 여기서는 거의 최적의 속도(모든에 대해)를 갖는 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-multiplication per database byte)보다 적을 것이며, 여기서 q는 길이가 약 50-60 bit들인 수(a number of length about 50 to 60 bits)이다. 점근적으로(Asymptotically), 이 예시적 PIR 스킴의 계산 오버헤드는 이며, 여기서 는 보안 파라미터이고 은, 충분히 크다고 가정되는, 데이터베이스 파일들의 수이다.
[0042] (전체)동형암호화((F)HE)는 어떻게 대역폭(bandwidth)이 효율적이 될 수 있는가? 대역폭에서 손실이 거의 없이 메시지를 암호화하는 것은 쉽지만, 동형 암호화의 경우 일반적으로 그것은 사실이 아닌다. 현대의 HE 스킴들에서 평가된(Evaluated) 암호문들은 그들이 암호화하는 평문보다, 적어도 상당한 상수 팩터 및 종종 그 이상으로, 훨씬 더 큰 경향이 있다.
[0043] FHE의 대역폭 한계들에 대한 근본적인 이론적 관심을 넘어, 높은 속도를 가진 동형 스킴은 여러 애플리케이션들을 갖고 있다. 아마도 가장 분명한 것은, 대역폭이 필수적인, 개인 정보 검색(PIR)일 것이다. HE는 PIR을 구현하는 데 분명히 사용될 수 있지만, [1, 5]와 같은 지금까지의 최고의 PIR 구현조차 여전히 대규모 데이터베이스들을 지원할 수는 없으며, 이는 주로 현대의 HE 스킴들의 대규모 확장 엘리멘트(the large expansion factor) 때문이다. 다른 애플리케이션은 바드리나라야난(Badrinarayanan) 등[9]의 연구에서 찾아볼 수 있으며, 이 연구는 보다 나은 속도를 가진 압축 가능한 (부가적인) 동형 암호화가, 보안 계산의 맥락에서 다양한 목적으로 사용될 수 있는, 고속 암호화 전송(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)은 모든 에 대해 가 될 수 있다(전체 평문이 충분히 크고, 에 비례한다고 가정한다). 상기 압축된 암호문들은 더 이상 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)이다. 점근적으로, 상기 계산 오버헤드는 이며, 여기서 는 보안 파라미터이고 는 데이터베이스 파일들의 수이며 충분히 크다고 가정된다.
[0047] 이 예시적인 PIR 스킴이 이론적으로 효율적일 뿐만 아니라 실질적으로 빠를 것으로 추정되는 이유를 상세히 설명하면 다음과 같다. 구체적으로, 속도 단일-서버 PIR 스킴(a rate 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 암호문들에서 노이즈가 왼쪽으로부터 곱해진 메시지들이 에 있을 때 정도에 따라 부가적으로만 증가한다(수신자의 GSW 암호문들은 그 것의 타겟 인덱스의 비트들을 암호화한다). 또한 N 파일들을 갖는 데이터베이스에 대해 암호문 연산들을 수행해야 하더라도, 노이즈는 에 비례적으로만 증가할 수 있다(따라서 그 것의 비트 크기는 오직 으로만 증가한다). 상기 작은 노이즈 증가는 예시적인 PIR 스킴이 작은 RLWE 모듈러스 q를 사용할 수 있게 하고, 상기 모듈러스 q는 기본 RLWE-기반 PKE 스킴에서 사용하는 것보다 크지 않다. 셋째, 단일-서버 PIR에 대한 고전적 접근법[58, 79]의 재귀적/계층적 특성을 이용하여 RLWE-기반 동형 평가의 더 비싼 단계들, 즉 다항식 FFT들(그리고 덜 중요하게는 CRT 리프팅)을 숨길 수 있다. PIR에 대한 고전적인 계층적 접근법에서 계산적으로 지배적인 단계는 제1 단계이며, 일 예시적인 실시 예에서 효과적인 데이터베이스 크기는 에서 로 감소된다. 이 제1 단계의 효율성을 극대화하기 위해 상기 데이터베이스의 다항식들은 또한 평가 표현에 이미 포함되도록 사전 처리될 수 있으며, 이에 의해서 다항식 FFT들을 피하고 상기 데이터베이스의 각 (log q)-비트 블록이 작은 상수의 mod- 곱하기들을 사용하여 암호화된 질의로 "흡수"될 수 있게 한다. 예를 들어, 제1 단계에서, 서버는 FFT들을 포함하는, 클라이언트의 암호문들로부터 암호문들을 생성하지만, 그들의 상각 비용(amortized cost)은 일 때는 미미하다. 따라서 상기 제1 단계의 계산 오버헤드는 정수들 modulo q를 곱하는 오버헤드로 감소되며, 여기서 q는 매우 작을 수 있다. modulo q 곱하기들은 q를 소수들의 곱(a product of primes)이 되게 하고 CRT 표현을 사용함으로써 점근적으로 더 빠르게 수행될 수 있으며, modulo 소수 디바이저들 곱하기(multiplication modulo the prime divisors)는 테이블 룩업을 사용하여 더 가속화될 수 있다. 상기 PIR의 제1 단계 이후, GSW-esque 동형 평가는 다항식들의 계수와 평가 표현 사이의 변환을 요구하지만, 유효 데이터베이스가 이미 훨씬 작아졌기 때문에(최대 이고, 여기서 이다), 이 것은 이 예시적인 PIR 스킴의 오버헤드에 큰 영향을 주지 않는다.
[0049] 암호문 압축과 관련하여, 암호문 압축은 공개-키 세팅에서(그리고 때때로 대칭 키 맥락에서, 예: [57]) 항상 분명한 매력을 갖고 있었다. 아마도 가장 잘 알려진 암호문 압축 기술은 하이브리드 암호화일 것이다: (긴) 메시지는 대칭 암호화 스킴 하에서 암호화되고, 오직 대칭 암호 해독 키만 공개-키 스킴 하에서 암호화된다. 암호문 압축의 다른 예들은 타원 곡선 점의 좌표만을 단지 사용하는 것[11, 34]과, 인수분해 n에 기초한 보안을 사용하여 라빈(Rabin) 암호문들을 비트들로 압축하는 것을 포함한다(메시지가 엔트로피의 보다 적은 비트들을 갖는다고 가정함)[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)으로 속도-암호화를 허용하는 파일리어(Paillier) 암호화 시스템[69]의 확장에 대해 설명했는데: 특히, mod- 평문은 RSA modulus N 및 임의 지수 에 대해 mod-암호문 내에서 암호화될 수 있다고 했다.
[0058] 개인 정보 검색(PIR)과 관련하여, PIR이 코어 등(Chor etal)의 연구[25]에 도입되었다. 이 세팅에서, 클라이언트는 그 것의 타겟 인덱스 를 서버(들)로부터 숨기면서 데이터베이스로부터 N-번째 비트 (또는 파일)를 획득할 수 있고, 모두는 N에서 전체 통신 서브리니어(total communication sublinear)로 이루어진다. (서브리니어 통신 요건은 사소한 프로토콜을 배제하고, 서버는 전체 데이터베이스를 클라이언트로 전송한다.) 코어 등(Chor et al. )은 다수의 서버들을 사용하는 구성들(constructions with multiple servers)을 제공했으며, 후에 쿠실레비츠와 오스트로브스키(Kushilevitz and Ostrovsky)[58]는 비트들의 데이터베이스에 대한 재귀적 PIR 구성을 설명했는데, 이 구성의 제1 단계에서 PIR 스킴을 상기 데이터베이스의 -엘리멘트 슬라이스들에 병렬로 적용하고, 그 다음 PIR을 PIR 응답들의 "새로운 데이터베이스"에 적용하는 등의 작업을 수행한다고 했다. 스턴(Stern)[79]은 다른 부가적 동형 암호화 스킴들을 사용하여 상기 구성을 개선하였다. 키야스 등(Kiayias et al.)[55](또한 [60] 참조)은, 담가드와 주리크 [31]에 기초하여, 속도를 갖는 최초의 단일-서버 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와 거의 동일하다. 즉, 예시적인 비밀 키는 형식의 매트릭스이며, 공개 키는, LWE 모듈러스가 q이고 낮은 놈 매트릭스(a low norm matrix)가 E인, 를 만족시키는 슈도랜덤 매트릭스(a pseudorandom matrix) P이다. GSW에서와 마찬가지로, 저속 암호 시스템은 작은 스칼라들(통상적으로 비트들이인)을 암호화하고, 암호문은 매트릭스 C이며, 그리고 암호 해독 불변량(the decryption invariant)은 이다(G는 미시안시오-페이커트(Micciancio-Peikert) 가젯 매트릭스 [64]이고, E는 낮은-놈 매트릭스이다).
[0062] 여기서 예시한 고속 스킴(An exemplary high-rate scheme herein)은 전체 매트릭스 modulo q를 단일 암호문 매트릭스로 암호화하며, 이 것의 차원들은 평문 매트릭스보다 약간 더 크다. 새롭게 도입된 기술적 엘리멘트는, H라 불리는, 다른 가젯 매트릭스이다: GSW의 가젯 매트릭스 G와 마찬가지로, 이 예시적인 매트릭스 H는 암호문에 중복성(redundancy)을 더하고, H는 암호 해독 시 노이즈를 제거할 수 있는 "공개 트랩 도어(public trapdoor)"를 갖는다. 차이점은 H는 거의 정사각형 매트릭스이고, 따라서 거의 확장되지 않기 때문에, 고속 암호문들을 가능하게 한다는 것이다. 더 자세히 말하자면, G는 차원들 을 갖고, 여기서 이다. 예를 들어, 만일 이면, m은 n보다 60배 더 크다. 반면, H는 통상적으로 행들보다 열을 하나만 더 많이 갖는다. 거의 직사각형인 H는 많은 중복성을 추가할 수 없고 따라서 고품질의 트랩 도어를 가질 수 없다는 점에 유의해야 한다. 따라서 H는 적은 양의 노이즈만을 제거할 수 있는 저품질의 트랩 도어로 이루어진다.
[0063] 예시적인 스킴에서 평문으로부터 암호문까지 차원들에서 약간의 증가는 두 단계들로 이루어진다. 첫째, 특수 형식의 비밀 키들이 일부 추가의 0의 행들로 평문 매트릭스 M을 "패드(pad)" 하기 위해 사용되며, 를 얻기 위해 를 세트 한다 (히로마사 등(Hiromasa et al.)는 동일 목적을 위해 동일 특수 형식을 [52]에서 사용하였다). 둘째, 암호 해독 중에 적은 양의 노이즈를 제거할 수 있도록, 이 매트릭스의 오른쪽에 가젯 매트릭스 H를 곱하여 에 중복성을 추가한다. 알려진 바와 같이, 추가, 특히 암호문들에 관한 곱하기와 같은 동형 연산들에서 노이즈가 증가한다. 압축 암호문들에 대한 암호 해독 불변량은 이다. 고속의 압축 암호문들을 얻기 위해, 예시적인 실시 예는 평문으로부터에서 암호문으로의 차원들의 증가를 가능한 한 작게 한다. 평문 매트릭스들 M에서는, LWE 비밀의 차원(k로 표시)만큼 많은 0의 행들을 추가하는 것이 필요하다. 를 나타내는, 패드된 매트릭스 은 차원 를 갖는다. 중복성은 차원 의 거의 직사각형인 가젯 매트릭스 H를 오른쪽에 곱함으로써 추가된다. 암호문의 최종 차원은 이므로, 압축된 암호문들의 정보 속도(the information rate)는 이 된다.
[0064] 크기 의 모듈러스 q를 사용하여, 모든 원하는 에 대해 를 얻을 수 있도록 다양한 파라미터들을 조정하는(orchestrate) 방법을 지금부터 소개한다. 이 것은 다항식 간극이 있는 LWE의 경도를 가정하는 모든 상수 를 지원할 수 있고, 만일 하위 지수 간극(subexponential gap)이 있는 LWE의 경도를 가정한다면 다항식의 작은 조차도 지원할 수 있음을 의미한다. 자세한 내용에 관해서는 아래에 설명한다.
[0065] 새로운 가젯 매트릭스 H를 사용하는 대신에, 충분히 큰 정수 (예를 들어, )에 대해 암호 해독 불변량 를 사용하여 암호문에 중복성을 추가할 수 있음에 주목해야 한다. 이 변형(아래 설명)은 H를 사용하는 변형과 점근 양상(asymptotic behavior)이 동일하지만, 구체적인 효율성은 다소 더 나빠졌다. 그러나 여전히 사용할 수 있는 것으로 보인다.
[0066] 요약하면, 압축 가능한 FHE를 기술할 때 아래에 기술되는 프로세스는 일반적으로 (1) 저속(비압축된) 암호문들로 데이터를 암호화하고, 암호화된 데이터에 대해 계산하는 단계, 그 다음 (2) 그 결과를 고속(압축된) 암호문으로 압축하는 단계, 최종적으로 (3) 암호 해독하여 그 결과를 복구하는 단계를 포함한다. 아래에서 압축된(F) HE 스킴을 논의할 때, "평문에 중복성을 추가함"과 같은 같은 구문이 사용되는데, 이것은, 예를 들어, 마치 평문을 고속 암호문들로 직접 암호화하는 것과 같은 방식으로 평문이 처리되는 것처럼 들리게 한다 점에 유의해야 한다. 평문을 압축된 암호문으로 직접 암호화할 수 있는 것은 사실이지만(그리고 아래 설명에서도 이것이 어떻게 일어날 수 있는지 설명되기는 하지만) 아래 설명의 핵심은 다른 기술의 사용이다. 특히, 두 공식 (위에서 그리고 아래에서 제1 변형으로 설명됨)와 (위에서 다른 변형으로 설명됨)는 암호 해독 프로세스를 설명한다. 먼저 암호문 C에 비밀키 S를 곱하면 또는 가 나온다. 항 E는 제거해야 하는 노이즈이므로, 그래서 (또는 )가 약간의 중복성을 가지고 있다는 사실을 이용할 수 있다. 따라서 아래의 설명의 핵심은 위에서 설명한 프로세스 (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는 정수들 의 링을 사용하는 반면, RLWE는 통상적으로 사이클로토믹 필드(a cyclotomic field)의 정수들 R의 링을 사용한다. 모듈러스 q, 차원 k, 및 R에 대한 노이즈 분포 에 대한 이 문제의 "예"인스턴스(instance)는 값들 와 함께 많은 균등(many uniform) 로 구성되고, 여기서 는 고정 비밀 벡터이고 이다. "아니오"예에서,와는 모두 균등(uniform)하다. 상기 결정(R)LWE 가정은 두 분포들이 계산적으로 구분할 수 없다는 것이다. 즉, "예" 인스턴스들은 유사랜덤(pseudorandom)이라는 것이다. 통상적으로 는 보안 파리미터 에서 압도하는 확률을 갖는 특정 크기 경계 에 대해 가 되는 그러한 값이다. 상기 보안 파라미터도 또한 링 크기 및/또는 차원 k 및 비율의 하한이다. RLWE 기반 스킴들이 더 효율적이지만, LWE가 본 명세서의 나머지 부분에 언급된다.
[0082] 매트릭스 비밀들이 있는 LWE에서, LWE 인스턴스는 (더 일반적으로) 비밀 매트릭스와 연관될 수 있으며, LWE의 매트릭스 버전을 깨는 것이 기존의 LWE를 깨는 것만큼 어렵다는 것은 하이브리드 아규먼트(a hybrid argument)를 통해 증명될 수 있다. 이 버전에서, "예" 인스턴스는 균일한 매트릭스 A와 로 구성된다. 이들 매트릭스들에 차원들을 부여하면: 는, A는 , B, E는 이 된다. 일 예시적인 구성에서 이들 매트릭스들의 예시에 대해서는 도 3을 참조한다. 으로 세트 한다. 를 세트하고 P를 B 위에 -A가 있는(with - A on top of B ) 매트릭스가 되도록 세트 한다. 그러면 이 된다. LWE 가정(매트릭스 버전)은 이 P를 유사랜덤(pseudorandom)이라 한다. GSW(매트릭스에 대해 일반화된)에서, P는 공개 키로 세트 된다.
[0083] 도 3을 참조하면, 일부의 작은 이면 이 되고 이 된다. 따라서, 이 된다. 또한 가젯 매트릭스 H를 사용하는 오류가 E인 암호문들을 정확하게 암호 해독하기 위해서 가 필요하다. 다음 사항도 주목해야 한다: 는 "매우 중복성이 있는" 스칼라; 는 "다소 중복성이 있는" 매트릭스; 는 "다소 중복성이 있는" 매트릭스; 는 압축된 암호문(ctxt)이다.
[0084] 가젯 매트릭스들와 관련하여, GSW는 직사각형 가젯 매트릭스[64], 를 사용하여 암호문(이는 동형 곱하기와 암호 해독 모두를 위해 사용됨)에 중복성을 추가한다. 종종 G는 가 되게 세트 되는데, 여기서 는 벡터 이다-즉, 이고 G의 행들은 벡터 의 시프트들로 구성된다. 문헌에서 흔히 볼 수 있듯이, 표기법 는 와 같이 계수들이 작은(with small coefficients) 매트릭스를 표시하는 데 사용된다. G가 를 사용할 때, 에 계수들을 갖는 적절한 를 효율적으로 찾을 수 있다. 엔트리들이 에 있고 R에 대해 풀 랭크인 표준(a canonical) 가 존재한다. 를 계산하여 먼저 와 같은 Y를 찾고 그 다음 Y에 가깝고 의 벡터들에 의해 생성된 격자 안에 있는 를 빼서 Y를 작게 만드는 것을 생각할 수 있다. 일반적으로 이면, 는 에서 계수들을 갖는다. 만일 C가 차원 를 갖는다면, 는 차원 를 갖는다.
[0085] GSW 암호화 및 암호해독의 경우, 스칼라 매트릭스 를 암호화하기 위해서, 암호화기(the encrypter)는 로 세트 하고, 엔트리들이 작은 놈(small norm) 가진 R의 엘리멘트들인 랜덤의 매트릭스 X를 선택하여, 를 출력한다. 암호 해독하기 위해서, 다음을 계산한다.
[0087] 여기서 는 작은 계수들(small coefficients)을 갖는다. 가 적절한 에 의해 제한된(bounded) 계수들을 갖는다고 가정하면, 는 너무 작은 엔트리들을 갖게 되어 모듈로 q를 감쌀 수 없고, 이는 암호 해독기(the decrypter)가 를 복구하고(는 R과 연관된 분수들의 필드(the field of fractions)에 대해 풀 랭크 및 가역이기 때문에) 따라서 를 복구할 수 있게 해 준다. 는 랭크 (사실 서브 매트릭스로 를 포함)를 가지고 있기 때문에, 암호 해독기는 M과 를 획득할 수 있다. 만일로 한정된 E에 대해 이면 C M을 GSW-암호화한다고 한다.
[0088] 만일 M이 스칼라 매트릭스가 아라면, M의 GSW-암호화를 획득하는 방법은 불분명하다. 만약 후보 암호문이, 이전과 같이, 라면, 은 를 만족시킬 필요가 있다. M이 스칼라 매트릭스일 때 을 찾는 것은 쉽다: M은 동일한 스칼라 매트릭스이지만 더 큰 차원의 스칼라 매트릭스이다. 그러나, M이 스칼라 매트릭스가 아닐 때, 그러한 을 찾는 것은 S를 아는 것을 필요로 하는 것처럼 보인다. 히로마사 등 [52]은 LWE를 가정하여 비스칼라 매트릭스를 암호화하는 GSW 버전을 획득하는 방법과 순환 보안 가정: 매트릭스 암호화 단계에 비밀 키의 암호화가 필요하다는 것을 보여주었다. 일 예시적인 구현에서, 암호화 단계를 위해 LWE(순환 암호화 없음)에 의존하므로 GSW 암호문들은 스칼라들만 암호화한다.
[0089] GSW의 동형 연산들과 관련하여, 와 를 GSW-암호화하는 와 가 각각 존재한다고 가정한다. 그런 다음, 오류들의 합계가 -제한(bounded)된다면, 분명히 는 를 GSW 암호화한다. 곱하기를 위해, 를 세트 하면, 그 결과는 다음과 같다:
[0091] 따라서, 새로운 오류 가 -제한된다면 는 를 GSW-암호화한다. 상기 새 오류(the new error)에서, 는 작은 계수들을 갖기 때문에 항 가 원래 오류 보다 약간만 더 크다. 항 를 작게 유지하기 위해, 두 가지 전략들이 있다. 첫째, 만약이 작은 스칼라에 해당한다면-예를 들어 0 또는 1이라면, 이 항은 내부의 원래 오류만큼 작게 된다. 둘째, 만약 이라면, 이 항은 나타나지 않는다. 예를 들어, 만약 상수 를 동형적으로 곱하려 한다면, 단지(없이)를 세트 하고, 위와 같이 를 계산하면 된다. 내부의 평문에 가 곱해지고, 새로운 오류가 나 에 의존하지 않게 됨에 따라서, 에서 임의적이 될 수 있다.
[0092] GSW 암호문들의 부분압축과 관련하여, 많은 비트의 암호문들이 (노이즈를 많이 증가시키지 않고) R에서 더 큰 스칼라를 암호화하는 단일 암호문으로 압축될 수 있다는 점에서, GSW는 이미 암호문들의 부분압축(상대적으로 말하면, 최종 압축된 암호문들은 본 발명에서 달성된 압축된 암호문들 보다 훨씬 큼)을 지원하고 있다. 쉬운 예로, LWE 기반 GSW(여기서 )의 경우를 고려하고, 를 비트 를 암호화하는 GSW 암호문이라고 하자. 압축을 하려면, 단순히 를 세트 하면 된다. 즉, 위에서 설명한 상수-곱하기 절차(the multiply-by-constant procedure) (노이즈를 실질적으로 증가시키지 않음)를 사용하여 스칼라들 를 에 곱하고 그 다음 결과들을 합산한다. 명확하게 C는 스칼라 를 암호화한다. 가 일단 암호 해독만 되면, 의 이진수 표현에서 비트들 를 읽을 수 있다.
[0093] 이진수의 스칼라들 를 (는 와 "의 비트들"로서' 들과는 무관한 고정 베이스임) 로 인코딩할 수 있고, 암호 해독 시 로부터 를 복구할 수 있는 한, 이것은 다른 링들 R로 일반화된다. 예를 들어를 위해, 및 에 대해서 기본 엘리멘트들 를 사용할 수 있다.
[0094] 그러나, 이것은 GSW 암호문을 부분적으로만 압축하며: 평문/암호 텍스트 비율은 기껏해야 인 점을 주목해야 한다. 노이즈를 작게 기 위해, GSW 암호문들은 통상적으로 비트들을 암호화한다. 대략적으로 말하면, 특정 상한(upper bound) L 에 대해, 비트들 를 암호화하는 GSW 암호문 을 이진 표현이 인 를 암호화하는 단일 암호문 C로 압축할 수 있다. 이 이진 표현을 위해서는,에 의해 주어진 맵 은 주입식(injective)이고, p의 사전 이미지들(preimages)은 효율적으로 계산될 수 있는 엘리멘트들 이 있어야 한다. 예를 들어, 만일이면, 는 에 대해 로 간단히 세트 될 수 있다. (만일 R이 다항식 링이면, 상기 이진 표현은 약간 더 복잡해진다). 압축하려면, 간단히 를 세트 하면 된다. 즉, 위에서 설명한 상수 곱하기 절차를 사용하여 의 평문에 를 곱하고(노이즈를 실질적으로 중가시키지는 않는다) 그 결과를 더할 수 있다. 암호 해독은 암호화된 엘리멘트를 복구한 다음 고유한 이진 표현을 추출함으로써 실시한다. 그러나, 이 것은 GSW 암호문들을 부분적으로만 압축하고: 평문/암호 텍스트 비율은 기껏해야 이다.
[0095] 압축 가능 동형 암호화에 관해 설명하려면, (완전히) 동형 암호화의 개념을 정의하는 것으로 시작하며, 그 다음에 LWE(및 순환 보안 만일 FHE를 얻고자 한다면)를 기반으로 한 암호화를 실현하는 방법을 설명한다.
[0096] 정의들의 관점에서, 압축가능(F)HE는, 암호 해독이 제1 압축 후 "압축된 암호 해독"으로 분해(brake)된다고 주장하는 것을 제외하면, 표준 (F)HE와 매우 유사하다. 여기서 정의는 비트들에 대한 1-홉 완전 동형 암호화(1-hop fully homomorphic encryption for bits)의 단순한 경우에 대해서만 제시되지만, 동일한 유형의 정의는 다수의 홉들, 다른 평문 공간들 및/또는 부분적으로 동형인 경우에 동일하게 적용된다. (이 모든 변형에 대한 자세한 취급에 대해서는 [51] 참조)
[00100] 3) . 공개 키 pk, 회로 , 의 모든 입력 비트에 대한 벡터인, 저속 암호문들 의 벡터를 사용하여,의 모든 출력 비트에 대한 벡터인, 저속 암호문 의 또 다른 벡터를 출력한다.
[00103] 절차 는 각각을 개별적으로 암호 해독함으로써 압축된 암호문 벡터로 확장된다. 상기 스킴은 만일 모든 회로 및 평문 비트 에 대해, 의 모든 입력 비트에 대해 하나씩, 아래의 방정식 (1)을 참조한다면 정확하다: (1)
의 출력이 의 출력 길이보다 길 수 있으므로 접두사가 허용된다는 점에 유의한다.
[00105] 가젯 매트릭스 H에 관해서, 예시적인 구성의 한 변형에서 새로운 기술적 컴포넌트는 "거의 정사각형(nearly square)" 가젯 매트릭스이다. 먼저, GSW에 사용되는, 통상의 미시안시오-페이커트(Micciancio-Peikert) 가젯 매트릭스[64] 가 왜 높은 속도를 주지 못하는지를 생각해 본다. 만일(위에서 논의한 대로, 그리고 [52]와 유사하게) 의 암호화가 에 대해 형식를 갖는다면, 속도는 단순하게 생각해서 기껏해야 가 될 수 있을 뿐인데, 이는 C 가 M 보다 배 많은 열들을 갖고 있기 때문이다. 다. 이 속도는 통상적인 G의 보다 적다.
[00106] 물론 를 사용할 수 있고, 여기서일 때 이고, 는 여전히 최대 인 크기 계수를 갖게 될 것이다. 그러나 이 것도 최대 속도가 1/2인 스킴()에 대해)을 산출할 수 있는데, 그 이유는 단지 무시할 수 없는 가 적어도 2의 차원을 가져야 하기 때문이다. 1에 근접할 수 없는 속도에 도달하기 위해, G를 "거의 정사각형(nearly square)"매트릭스로 대체할 수 있다. G 로부터 요구되는 속성은 알려진 매트릭스 가 다음을 만족하도록 존재하는 것이다.
[00107] 1. F는 작은 엔트리들( =q )을 가짐
[00111] 예시적인 세팅에서, 새로운 가젯 매트릭스(혼동을 피하기 위해 G가 아닌 H로 불림)가 거의 풀 랭크 모듈로 q(그래서 "거의 정사각형")를 갖는 것이 바람직하고, 그래서 도 매우 낮은 랭크 모듈로 q를 갖는 것이 바람직하다. 일단 R에 대해 풀 랭크를 갖지만 매우 낮은 랭크 모듈로 q를 갖는 낮은-놈 매트릭스 F가 존재하면, H는 F의 mod-q 커널의 기초로 간단히 세트 된다.
[00112] 단순성을 위해 어떤 정수들 에 대해 를 갖는다고 가정하자. "약간 작은" 계수들을 갖는 매트릭스 가 생성될 수 있는데, 이는 실수들에 대해 풀 랭크를 갖지만 다음과 같은 랭크 원 모듈로 q를 갖는다.
[00113] 이 F'는, 항등 매트릭스(identity matrix) 로 F'를 텐서링(tensoring)함으로써, 실수들에 대해서는 랭크가 이지만 (모든 r에 대해서는) 랭크가 r modulo q인 매트릭스 F를 생성하기 위해 일 예시적 실시 예에서 사용될 수 있다. 이 것은 놈들(norms) 상에서 위와 동일한 한계들(bounds)을 산출한다. 가젯 매트릭스 H는 행들이 F modulo q의 널(null) 공간에 걸쳐 있는 매트릭스이다(모든 그러한 매트릭스도 그럴 것이다). 따라서 이 예시적인 스킴을 위해, 와 이 세트 될 수 있다.
[00114] 아래의 압축된 암호문들의 암호 해독에서는, 의 "다소 작음"이 사용된다. 구체적으로, 인 매트릭스가 주어지면, 먼저 매트릭스 에 F modulo q를 곱하여 를 얻는다( 이므로). 그렇지만
이고, 그러므로 정수들에 대해서 이다. 이제 F가 실수들에 대해서 풀 랭크를 갖고, 를 복구한다는 사실을 사용한다. 그런 다음 를 계산하면, H는 랭크 modulo q를 가지고 있으므로 MH로부터 M을 복구할 수 있다. 따라서 압축된 암호문들을 암호 해독할 때 정확성을 보장하려면, 압축된 암호문들의 노이즈 크기에 관한 한계(bound) 를 사용하는 것으로 충분하다.
[00115] 제한 는 실제로 필요하지 않다; 많은 변형들이 가능하다. 다음과 같은 다소 조잡한 접근법은 마주칠 가능성이 있는 모든 q에 적용된다. 인, 벡터 modulo q의 배수들의 격자를 L이라하고, 의 행들이, 에 대해서, 인, L-벡터 라고 하면, F'가 랭크 1 모듈로 q를 갖는 것이 명백하다. (F'가 정수들에 대해 풀 랭크임에 대한 증명은 생략되었다). 여기서, F'의 모든 엔트리들은 작다고 간주한다. 의 j번째 계수를, , 에 대해 라고 하고, 라고 하면, 는 에 의해 크기가 제한된다. 의 경우, 는 에서 정수이므로 최대 modulo q가 된다. 따라서 는 최대 modulo q이다. 인 한, 이고, 즉, 는 사용되었을 때만큼 거의 작다. 위에서 보았듯이, q는 어찌되었던지를 초과해야 하며, 여기서 는 암호문들의 노이즈에 관한 한계이므로, 의 조건은 이미 충족되었을 가능성이 높다.
[00116] 만약 서로 상대적으로 소수인 들에 대해 인 경우, 벡터 modulo q의 배수들의 격자 L로부터 F'를 이끌어 낼 수 있다. 구체적으로, F'의 i번째 행을 이 라고 하면, 이 F'는 풀 랭크임이 명백하고, 들이 대략 같은 크기일 때 에 필적하는 엔트리들을 갖는다.
[00117] 이제 고속 HE 스킴들 및 압축 기법들과 같은, 예시적 압축 가능 동형 암호화 스킴들을 포함하는 다른 절차들이 자세히 설명된다.
[00120] 암호화, 암호 해독 및 평가와 관련하여, 소형 스칼라들의 암호화 및 암호 해독과 그 위의 회로 평가는 원래의 GSW 스킴에서와 동일하게 수행될 수 있다. 즉, 스칼라 는 작은 엔트리들이 있는 매트릭스 를 선택한 다음 암호문 를 출력함으로써 암호화된다.
[00122] 평가 역시 GSW에서와 동일하며, 암호문 더하기는 단지 암호문 매트릭스들 modulo q를 더함으로써 구현되고 곱하기는로서 구현된다. 이들 연산들이 암호 해독 불변량을 유지한다 것을 보여주는 것은(암호화된 스칼라들이 작은 한) GSW에서와 똑같이 다시 수행된다.
[00123] 압축된 암호 해독을 수행하려면, 압축된 암호문들이 매트릭스 이고, 평문 매트릭스 를 암호화하고 있음을 기억해야 한다. 압축 암호문들에 대한 암호 해독 불변량은 낮은-놈 매트릭스 에 대해 이며, 여기서 H는 앞에서 설명한 거의 정사각형에 가까운 가젯 매트릭스이다. 인 한, 작은 노이즈 E를 제거하고 매트릭스 M을 복구하기 위해 트랩도어 를 사용하여 암호 해독을 완료할 수 있다.
[00124] 지금부터, 여러 GSW 비트 암호화들을 단일의 압축된 암호문으로 압축하는 방법을, 압축과 관련하여, 보여준다. 편의상, 위에서 설명한 부분 압축 기법을 사용하여 비트를 의 엘리멘트들을 암호화하는 (더 적은) 암호문들로 암호화하는 (많은) GSW 암호문들을 압축한 것으로 가정한다. 그러나, 만일 전체 압축을 두 단계가 아닌 한 단계로 수행한다면 최종 압축된 암호문의 노이즈 레벨은 더 낮아질 것임에 주목해야 한다. 또한 원래의 GSW 암호문들은 예시적인 압축된 HE 스킴에 적합한 키 S 아래에 있다고 가정하였다. 그렇지 않다면, 그렇게 하기 위해 "키 전환"을 할 수 있다. 키 전환 [16, 15, 39]은 동형 암호 해독을 통해 하나의 키 아래에 있는 메시지를 다른 키로 변환하지만, 노이즈 수준을 감소시키지 않고 부트스트래핑보다 계산 비용이 훨씬 덜 드는 "선형" 방식으로 변환한다.
[00126] 이들 암호문들 전부를 단일의 압축된 암호문으로 압축하려면, 엔트리에는 1을 그리고 그 밖의 장소에는 0을 갖는 정사각형 싱글톤 매트릭스를 로, 즉 (여기서 는 위치들 에, 각각, 1을 갖는 차원- 유닛 벡터들임)로 표시해야 한다. 또한 위(top)에 k개의 0의 행들을 갖는 의 패드된 버전, ,을 로 표시해야 한다.
[00128] 기본적인 압축 가능한 HE 인터페이스들에 더하여, 일 예시적인 스킴은 또한 PIR 애플리케이션에서 도움이 되는 여러 다른 연산들을 지원한다. 이들 연산들은 아래에서 설명된다.
[00129] 절차(i)로 표시된 절차, 압축된 암호문들의 암호화와 관련하여, 작은 엔트리들을 갖는 랜덤의 를 선택하고, 유사랜덤 와 다소 중복된 평문 을 계산하여 암호문 를 출력함으로써 압축된 암호문으로 매트릭스 를 직접 암호화할 수 있다.
[00130] 절차(ii)로서 표시된 절차, 압축된 암호문을 위한 부가적 동형과 관련하여, 압축된 암호문들이 작은 스칼라들에 의해 더해지고 곱해질 수 있다는 것은 분명하다. 실제로 만일 가 에 대한 매트릭스들이고가 작은 스칼라이며, 에 대해 이면, 이고 가 된다. 와 가 보다 더 작은 규범을 갖는 한, 상기 결과들은 와 에 대해, 각각, 유효한 압축된 암호문이다.
[00131] 절차 (iii)으로 표시된 절차, GSW 암호문들에 압축된 암호문을 곱하는 것과 관련하여, 작은 스칼라 를 암호화하는 GSW 암호문 C에 E에 대해 매트릭스 M을 암호화하는 압축된 암호문 를 곱하여 매트릭스 을 암호화하는 압축된 암호문 를 얻을 수 있음을 또한 알 수 있다. 이 것은 를 세트 함으로써 행해진다(는 가 행들을 갖는 것으로 잘 정의됨을 주목해야 한다). 정확성을 위해, 에 대해 이고 되며, 따라서 다음과 같이 됨을 기억해야 한다.
[00132] 절차(iv)로 표시된 절차, GSW 암호문을 평문 매트릭스로 곱하는 것과 관련하여, 압축된 암호문들에 의해서 GWE 암호문들에 오른쪽-곱하기를 하게 하는 동일 기술이 평문 매트릭스들에 의해서 그들을 오른쪽-곱하기를 하게 하는 것을 알 수 있다. 사실 만일가 평문 매트릭스이고 M'이 그것의 패드된 버전 이라면, 다소 중복된 매트릭스 는 노이즈 없는 암호문으로 간주될 수 있고 ( 임에 주목한다) 따라서 위와 같이 GSW 암호문에 의해서 곱해질 수 있다. 유일한 차이점은 이 경우 큰 스칼라를 암호화하는 GSW 암호문을 사용할 수 있다는 것이다. "노이즈 없는 암호문" 은 을 가지고, 따라서 위로부터 항 는 가 아무리 크더라도 최종 노이즈 항에는 나타나지 않는다.
[00133] 예시적인 PIR 애플리케이션을 논의할 때 많은 추가의 가능한 최적화들 및 변형들이 아래에서 설명된다. 일 예시적인 주요 최적화는 더 큰 노이즈를 처리하기 위해 모듈러스-전환 기술을 사용하는 것이다.
[00134] 파라미터를 세트하는 것과 관련하여, 매트릭스 차원들 , 노이즈 한계들 및 를 포함하는- 다양한 파라미터들을 보안 파라미터의 함수로 세트하는 방법은 다음과 같다. 만일 부트스트래핑이 없는 GSW의 다소 동형인 변형이 사용된다면, 평가된 암호문들에서 노이즈를 제한하는 파라미터 은 계산되기를 원하는 함수들에 따라 달라질 수 있다. 하나의 그러한 구체적인 예(완전히 지정된 상수들을 갖는)가 예시적인 PIR 애플리케이션을 위해 아래에 제공된다. 여기에서 파리미터의 점근적 분석이 부트스트랩이 있는 완전-동형 스킴으로서 GSW를 사용할 때 제공된다. 그 결과, 암호화된 데이터에 대한 긴 출력(GSW FHE 체계 사용)으로 임의의 함수를 평가한 다음, 최종 암호화된 비트들을 암호 해독 가능한 상태인 압축된 암호문들로 팩(pack)할 수 있다.
[00135] 일 예시적인 실시 예는 압축된 암호문들이 주어진 선택의 일부 작은 에 대해 의 속도를 갖는 것을 보장한다. 이것은 가 필요하고, 그래서 모두를 적어도 로 세트 하면 충분하다는 것을 의미한다. 거의 정사각형 가젯 매트릭스 H에 대해 를 사용하는 것은 암호 해독을 가능하게 하기 위해 이하의 노이즈를 유지해야 한다는 것을 의미한다.
[00136] 참고문헌 [43, 17]에 따르면, 크기의 신선-암호문 노이즈와 차원 의 암호문 매트릭스들을 갖는 GSW를 사용할 때, 임의 계산이 수행될 수 있고 그 다음 그 결과를 부트스트래핑 하는 것이 수행될 수 있으며, 그리고 부트스트래핑 이후의 노이즈는 이하로 제한된다. 위의 기술들을 사용하는 부분 압축과 방정식 (3)으로부터의 추가 압축을 한 단계로 통합하면, 한 세트의 오류 매트릭스들 를 가질 수 있고, 이 모두는 를 만족한다. 따라서 압축 후의 오류 항은 이 되고, 그 크기는 에 의해서 제한된다. 따라서 한계 로 상기 스킴을 인스턴스화하면 충분하다. 가 되어야하기 때문에 정확성 제약은 다음과 같이 결정된다.
[00137] 를 세트 한다는 것은 가 되어야 한다는 것을 의미한다. 따라서, 상기 스킴의 보안은 간격 를 갖는 LWE의 경도에 의존하며, 특히 만일 이 상수이면 다항식 간격을 갖는 LWE에 의존할 수 있다.
[00138] 노이즈의 성장을 늦추기 위해 적용될 수 있는 많은 기술이 있다는 점에 주목해야 한다. 이러한 기술들(예를 들어, 모듈러스 스위칭) 중 다수는 예시적인 PIR 애플리케이션과 관련하여 아래에 설명된다. 항상 필요할 것 같은 점근적 동작 - 을 변경하지는 않지만, 상기 지수에서 상수를 크게 향상시킬 수 있다.
[00139] 가젯 매트릭스 H가 없는 변형과 관련하여 설명하면, 예시적인 스킴의 변형은 가젯 매트릭스 H를 사용하지 않지만 메시지가 노이즈보다 더 크게 되도록 상기 메시지를 스케일 업하는 것에 의존한다는 점에서 리제프(Regev) 암호화와 더 유사하다고 할 수 있다. 구체적으로, 이 스킴은 암호문 모듈러스 보다 더 작은 평문 모듈러스를 특징으로 한다. 압축된 암호문들은, 평문 벡터 를 암호화하는, 벡터들 이고, 암호 해독 불변량은 낮은-놈 벡터 에 대해 이다. 한계 이고, 이면, 평문은 를 통해 복구될 수 있다(Regev 암호화에서 와 마찬가지로).
[00141] 비트 암호화들을 부분적으로 스칼라 암호화들로 압축할 때 에 의해서 스케일 해야 한다는 점을 제외하면 GSW 암호문들을 압축하는 것은 위와 유사하다. 즉, GSW 암호문들이 비트들 를 암호화하는 경우, 위에 제시된 기술은 단일 GSW 암호문 암호화 로 그것들을 부분적으로 압축하는 데 사용될 수 있다. 이것은 일부 에 대해 형식의 스칼라를 암호화하는 GSW 암호문을 산출한다. 의 그러한 암호문 가 를 암호화하는 경우, 를 세트함으로써 이들은 압축되고, 여기서 가 k개의 0들로 프리펜드된 i번째 유닛 벡터이다. (즉, 그 결과는 벡터 를 압축된 암호화이다.
[00142] 이 변형도 또한 압축된 암호문들의 부가적 동형과 GSW 암호문 오른쪽에 압축된 암호문을 곱하는 기능(상기 곱을 암호화하는 압축된 암호문을 산출하는)을 제공한다는 사실을 쉽게 확인할 수 있다.
[00143] 암호문들의 (F)HE 압축을 위한 일반적인 스킴들이 설명되었으므로 이들 스킴들을 개인 정보 검색(PIR)에 적용하는 방법에 대해 설명한다. PIR을 사용하면 서버가 어떤 엔트리들이 검색되는지를 알게 하지 않고도 클라이언트가 서버가 보유한 데이터베이스로부터 엔트리들을 검색할 수 있다. 순진한 솔루션은 서버에게 전체 데이터베이스를 클라이언트로 전송하게 하는 것이며, 코어 등(Chor et al.)[25]은 보다 대역폭 효율적인 솔루션에 대한 연구를 시작했다. PIR 프로토콜들은 대역폭 오버헤드를 줄이는 방법들(안전하지 않은 솔루션과 비교하여)을 제공하는데, 이들은 데이터베이스의 N개의 엔트리들을 서브리니어로 만든다.
[00144] 그 목적을 위해 동형 암호화를 사용할 수 있다는 것은 잘 알려져 있다. 클라이언트는 원하는 엔트리의 인덱스를 암호화할 수 있고 서버는 테이블 룩업 기능의 동형 평가를 수행하여 암호화된 엔트리를 반환할 수 있다. 이 솔루션은 서버가 단일의 암호화된 엔트리를 반환하므로 대역폭 오버헤드는 대부분 엔트리들의 수와 무관한 동형 스킴의 평문 대 암호문 비율일 뿐이다. 그러나, 만일 엔트리들 자체가 크다면(각 영화의 길이가 몇 기가바이트인 영화 데이터베이스에서와 같이) 이 N-독립적인 오버헤드 조차도 매우 비용이 많이 들 수 있다. 더 자세한 논의들은 [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에서 시작하고, 여기서 데이터베이스 엔트리들은 차원들 의 하이퍼큐브에 배열되고 상기 스킴은 차수-d 동형(degree- homomorphism)을 사용한다.
[00147] 1) 클라이언트의 인덱스 는 기초 의 혼합 기수(mixed radix)로, 즉 가 되게 하는 로서 표현된다. 클라이언트의 메시지는 모든 들의 암호화된 단항 표현(an encrypted unary representation)을 획득하기 위해 처리된다. 즉, 각 차원 j에 대해 암호화된 비트들의 차원- 벡터가 획득되며, 여기서 번째 비트 1이고 다른 모든 비트들은 0이다.
[00148] 2) 제1 차원의 처리는, 각 하이퍼-행 에, 의 첫번째 하이퍼-행만 제외하고 모두 0인, 상기 제1 벡터로부터의 u번째 암호화 비트를 곱함으로써 수행된다. i번째 하이퍼-행(예를 들어, 제1 차원에서)은 단지 제1 인덱스가 i인 하이퍼 큐브의 하나의 슬라이스일 뿐임에 주목해야 한다. 즉, 하이퍼큐브 내의 모든 엔트리들의 인덱스는 (i, *, *,.., *)형식을 갖는다(여기서 *는 무엇이든 될 수 있다). 마찬가지로 제2 차원의 i번째 하이퍼 행도 (*, i, *,.., *)형식의 인덱스들을 갖는 모든 엔트리들이다. 그 다음 모든 암호화된 하이퍼-행들을 더하여, 데이터베이스의 번째 하이퍼-행으로만 구성되는, 차원 의 더 작은 하이퍼 큐브를 얻는다.
[00149] 3) 선택된 엔트리 i만으로 구성된 0차원 하이퍼큐브를 남길 때까지 다른 차원들을 한 번에 하나씩 접기 위해 유사한 방식이 사용된다.
[00150] 데이터베이스 크기를 으로부터 으로 감소시키는, 제1 단계(단계 (1))는 가장 많은 데이터를 처리하기 때문에 통상적으로 가장 비용이 많이 든다는 점에 유의해야 한다. 반면에 이 단계는 암호문과 평문의 곱하기들(ciphertext-by-plaintext multiplications)만 (다음 단계에서 요구되는 암호문과 암호문의 곱하기들과 비교하여)요구하므로 이 단계는 때때로 다른 단계들보다 더 잘 최적화될 수 있다.
[00151] 이제 예시적인 최종 구성을 얻기 위해 유도 및 최적화의 순서가 설명되며, 예시적인 최종 구성은 결과적으로 계산적으로도 효율적인 고속 PIR 스킴을 달성한다. 이 구성은 대역폭과 계산 간의 절충을 특징으로 한다. 아래에서 속도 4/9를 갖는 변형이 설명된다.
[00152] 링-LWE 스킴을 사용하면, LWE 스킴과 마찬가지로, 링(또는 모듈) 변형으로 전환함으로써 성능을 향상시킬 수 있고, 여기서 LWE 비밀은 큰 확장 필드에 대해 낮은 차원을 갖는다. 큰 매트릭스들을 조작해야 하는 대신에, 이들 변형들은 동일의 큰 확장 필드에 대해서 낮은-차원 매트릭스들을 조작하는데, 이는 기술하는데 더 적은 비트들이 소요되고(FFT들을 사용하여) 더 빠르게 곱해질 수 있다. 비교 가능한 보안을 얻기 위해, 만일 기본 LWE 스킴이 차원 k의 LWE 비밀들을 필요로 한다면, 새로운 스킴이 가 되도록, 차수 d의 확장 필드에 대해 차원-k' 비밀들을 갖게 될 것이다. (링-LWE의 경우 이고 이다) 상기 스킴에서 다양한 매트릭스들이 확장-필드 엘리멘트들로 구성되며 그들의 차원들은 과 ( 각각 대신에)이다. 아래에서, 표시 와 은 RLWE 컨텍스트에서 더 작은 값들을 강조하기 위해 사용된다.
[00153] FFT들에 관한 절약과 관련하여, 사용될 수 있고, 예시적인 PIR 스킴들을 보다 효율적으로 만드는(대형 데이터베이스들에 대해서) 한 가지 최적화는 처리 동안 FFT들의 수를 최소화하기 위해 데이터베이스를 사전 처리하는 것이다. 상기 인스턴트 스킴들의 링-LWE 변형에서 연산들은 엘리멘트들이 평가(CRT) 기반으로 표현될 때 가장 효율적인 기본 필드에 대한 매트릭스 곱하기와 계수(디코딩) 기반으로 표현이 필요한 의 애플리케이션들을 포함한다. 둘 사이의 변환은 FFT를 사용하여 준선형 시간으로(in quasi-linear time) 수행될 수 있지만, 그 것은 구현에 사용되는 단연코 가장 비용이 많이 드는 연산들이다. (예시적인 통상적인 크기의 경우 이들 표현들 간의 엘리멘트를 변환하는 것은 CRT 기반으로 표현된 두 엘리멘트들을 곱하는 것보다 10-20배 더 느리다.)
[00154] XPIR 연구[1]에서와 같이, 데이터베이스를 사전-처리하고 그것을 모두 CRT 표현에 넣는다면 FFT들의 수를 크게 감소시킬 수 있다. 이렇게 하면, 클라이언트의 메시지가 들의 암호화된 단항 표현(데이터베이스에서 엔트리들의 크기와 무관함)을 얻기 위해 처리될 때 그리고 그런 다음 제1 차원이 접힌 후에만 FFT들을 계산하면 된다(따라서 FFT들은 데이터베이스 엔트리들을 암호화하는 압축된 암호문들에 대해서만 적용된다).
[00155] 만일 을 충분히 크게(FFT 오버헤드에 비해) 세트 한다면, 제1 차원을 접은 후 FFT들은 상각 되어(amortized) 중요하지 않게 된다. 반면에, 초기 FFT들(이들 중 하나가 약 를 가짐)도 또한 중요하지 않게 되려면, 은 충분히 작게 ( 및 엔트리들의 길이-L에 비해) 세트 해야 한다.
[00156] 아래 설명에서, 인 다양한 파리미터들이 예시되는데, 이들은 좋은 절충안을 제공하는 것으로 보인다. 다른 들에 대해서, 그들을 크게 만들 이유가 (거의) 없기 때문에, 를 사용할 수 있다. 아래의 구성에 대해서 그러한 작은 들을 얼마나 많이 사용할 수 있는 지에는 (거의) 제한이 없다는 점에 주목해야 한다. 아래에 일 예시적 구성은 엔트리들이 있는 데이터베이스에 대해 예시하지만 상기 구성은 훨씬 더 큰 데이터베이스들을 처리할 수 있다. (동일 파리미터들은 무한대까지, 적어도 엔트리들까지는 작동한다.)
[00157] 클라이언트-측 암호화와 관련하여, PIR 스킴의 컨텍스트에서, 암호화 주체는 암호 해독 키를 가진 클라이언트이다. 따라서 클라이언트는, 각 암호문에 대해 새로운 유사랜덤 공개 키 를 선택하고 를 세트 함으로써, 비밀 키를 사용하여 암호문들을 생성할 수 있다. 이것은 약간 더 작은 노이즈의 암호문들, 즉 낮은-놈 들의 암호문들을 생성한다(공개 키 암호화된 암호문들로부터 얻어진와 반대되는).
[00158] 일 예시적인 PIR 구성은 작은 차원들 을 사용하기 때문에, 클라이언트는 이들 차원들을 위해 암호화된 단항 벡터들을 직접 전송할 수 있다. 즉, 각 에 대해, 클라이언트는 네개의 암호문들 를 전송하는데, 는 1을 암호화하고 다른 것들은 0을 암호화한다.
[00159] 그러나, 제1 차원의 경우 큰 이 있으므로, 클라이언트는 의 비트들의 암호화들을 전송하고 GSW 동형은 이 차원을 위해 암호화된 단항 벡터를 계산하는 데 사용된다. 따라서 클라이언트 전송하는 전체 암호화된 비트들은 암호화된 비트들이고, 예시적인 크기들의 예시에서, 이 것은 암호화된 비트들에 이른다.
[00160] 다수의 매트릭스들과 관련하여, 일 예시적인 스킴에서 축적된 노이즈는 형태의 많은 항들을 갖지만, 그들 모두가 동일하게 생성되는 것은 아니다. 특히, 제1(큰) 차원을 접을 때, GSW 암호문들은 평가되고 그들에서 노이즈는 그들의 합계 그 자체이다. 이들 GSW 암호문들이 평문 매트릭스에 의해서 곱해졌을 때, 더 큰 값인, 이 얻어진다. 반면에, 다른 (작은) 차원들의 경우에, 이들은 새로운 암호문들에 의해서 곱해지고, 따라서 훨씬 더 작은 노이즈가 달성된다. 이러한 불균형은 자원들의 낭비로 이어진다.
[00161] 또한, 클라이언트 비트들의 초기 처리 동안 에 의한 곱하기는 소량의 데이터에만 적용된다. 그러나 GSW 매트릭스들과 평문 데이터 간의 곱하기는 데이터베이스의 모든 데이터를 건드린다. 따라서 후자가 훨씬 더 비용이 많이 들어가므로, 관련된 매트릭스들의 차원을 가능한 한 많이 감소시키는 것이 유리할 수 있다.
[00162] 이들 모든 이유들 때문에, 계산의 다른 부분들에서 서로 다른 G 매트릭스들을 사용하는 것이 좋다. 특히, 클라이언트의 비트를 초기에 처리할 때 매우 넓고-짧은 G 매트릭스들(의 더 작은 놈을 갖는)이 사용될 수 있고, 나중에는 더-정사각형/더높은-놈의 G 매트릭스들이 사용될 수 있다.
[00163] 모듈러스 전환을 위해서, G 매트릭스들의 세심한 균형을 유지하더라도, 예시적인 압축된 스킴을 위해 필요한 만큼 노이즈를 작게 만들 수 없다. 따라서 참조문헌[16, 15]으로부터의 모듈러스 전환 기법이 사용될 수 있다. 즉, 계산은 큰 모듈러스 에 관해 수행되고, 그 다음 최종 결과를 클라이언트로 전송하기 전에 더 작은 모듈러스 q로 전환되고, 이에 의해서 노이즈는 대략 만큼 스케일된다.
[00164] 일 예시적인 초기 노이즈 분석은 표시하기를, 넓고 짧은 매트릭스를 사용하면 계산 내내 노이즈를 매우 작게 유지할 수 있기 때문에, 만일 GSW G 매트릭스가 매우 넓고 짧게 세트 되었다면, 대략 64비트의 모듈러스 q를 사용하는 것이 가능할 수 있다고 표시하였다. 그러나 이 것은 서버에서 대역폭, 계산 및 스토리지의 큰 증가를 초래했을 것이다. 예를 들어, 서버는, 평문 매트릭스 M 자체보다 32배 이상 큰, 모든 평문 매트릭스 를 CRT 기반으로 저장해야 한다. (또한 이 경우 1/3 보다 나은 속도를 달성할 수 있는 파라미터가 발견되지 않았다.)
[00165] 더 나은 선택은, 적어도 초기에는, 상당히 큰 모듈러스를 사용하는 것이고, 그 다음 모듈러스 전환을 사용하여 그 것을 64비트들(또는 아마도 더 작은 값)로 스케일 다운하는 것이다. 이것에 의해서 시스템의 노이즈에 대한 내성을 높일 수 있으므로 많은 파라미터들이 개선된다. 예를 들어, 를 사용하여 실제 데이터를 위해 G 매트릭스를 항등 매트릭스로 대체할 수도 있다. 비록 그것이 두 배 차원의 LWE 비밀을 사용하고 두 배 이상의 큰 숫자를 써야 한다는 것을 의미하더라도, 항등 매트릭스를 사용하면 여전히 큰 상수 팩터를 절약할 수 있다. 또한, 그 것은 더 정사각형의 매트릭스 H(예: )를 사용하게 하고, 이에 의해서 더 높은 속도를 얻을 수 있게 한다.
[00166] 모듈러스 전환을 사용하면 비밀키가 균일하게 선택되지 않고 오류 분포로부터 선택되어야 하는 점을 유의해야 한다. (또한 모듈러스 전환이 구현될 수 있는 방식에서, 일부 비트들의 경우, 자체보다 가 암호화되며, 여기서 이다).
[00167] 자세한 PIR 스킴의 예가 지금부터 설명된다. 이 것은, 부분적으로, 도 4를 참조하여 설명되며, 도 4는 PIR에 대한 애플리케이션을 갖는 압축 가능 (F)HE를 사용하는 일 예시적 방법의 플로차트이다. 이 예에서, 일 예시적인 구성은 인덱스 와 차원 , 즉 의 원분 링(the cyclotomic ring)으로 구성된다. 새로운 GSW 암호문의 암호문 모듈러스는 와 (둘 모두는 유니티(unity)의 원시 번째 근들을 갖고 따라서 FFT들 모듈로 를 수행하는 것이 쉽다)를 갖는, 복합 이다. 링들 모듈로 아래에서 이 세 모듈로들(moduli)은 로 표시된다.
[00168] 에 대해 링-LWE가 이 예에서 사용되며, 특히 LWE 비밀은 내의 스칼라이고, 오류 분포로부터 선택된다[7](참조문헌[2]에서 테이블 1 참조, 최대 111비트들 크기의 모듈러스 를 사용하여 128비트들의 보안 레벨을 산출함).
[00169] 이 예의 상기 예시적인 구성의 다양한 매트릭스들에서, 차원들 , , 이 사용되고 평문 엘리멘트들은 로부터 얻어진다. 따라서 의 속도가 달성될 수 있다. 그러나 처리하는 동안 대부분의 암호문들은 더 큰 로 모듈로가 될 것이므로, 클라이언트들에 전송되기 전에 이들은 모드-전환되어 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 데이터베이스는 차원들의 하이퍼큐브로 분할된다. 엔트리 를 검색하고자 하는 클라이언트는 먼저 모든 에 대해 와 로 i를 로서 나타낸다. 블록(415)에서, 클라이언트(110)은 클라이언트가 원하는 데이터베이스 엔트리의 인덱스 i를 암호화하며, 예를 들어, 인덱스 i는 N D 베이스들의 혼합 기수(a mixed radix)로 표현된다. 이것은 상기 Encrypt(암호화) 절차를 사용한다. 추가로 더 자세히 설명하면, 를 의 비트들이라고 하고, 그 다음 클라이언트(110)이 GSW 암호문들(모듈로 )의 스칼라들 와 를 암호화한다고 하자. 클라이언트는 GSW 암호문들을 사용하여 유닛 벡터 의 비트들을 암호화하는데, 여기서 상기 유닛 벡터 는 위치 에서는 1이고 다른 위치들에서는 0이다. 이 예에서, 세 개의 다른 가젯 매트릭스들이 이들 GSW 암호문들을 위해 사용된다:
[00172] a) 의 LSB(GSW를 사용하여 곱해질 최우측 비트)를 위해, 가젯 매트릭스 G는 모두 제거되고 항등 매트릭스(the identity)만 사용되지만, 비트 은 에 의해서 곱해진다. 즉, 이 성립하도록 하는 이 존재한다.
[00175] 클라이언트(110)는, 블록(420)에서의 암호화된 인덱스를 사용하는 서버로부터 아이템의 요청 검색의 일부로서, 모든 이들 암호문들을 서버로 전송한다. 의 비트들의 암호화는 상기 LSB를 암호화하는 9개의 엘리멘트들과 상기 다른 7 비트들을 암호화하는 엘리멘트들로 구성된다. 블록(425)에서 서버는 요청을 수신한다. 블록(430)에서, 서버(170)는 (예를 들어, D) 인덱스 엘리멘트들, 예를 들어, (i 1 ,…,i D )의 단항 표현을 획득하기 위해 클라이언트의 메시지를 처리한다. 이것은, 위에서 설명한 바와 같이, 압축된 암호문들에 의해서 GSW 암호문들을 곱하는, 절차 (iii)을 사용할 수 있다는 것을 주목해야 한다. 예를 들어, 상기 요청은 GSW 질의 암호문들의 형태일 수 있다. 구체적으로는, 상기 다른 인덱스들 의 각각을 위해, 엘리멘트가 사용되어 의 단항 표현을 암호화한다. 데이터베이스 엔트리들을 갖는 이 수치적 예에서, 들이 6개 더 있으므로 클라이언트가 전송하는 링 엘리멘트들의 수는 이 된다. 각 엘리멘트는 명시하기 위해 비트를 취하므로 따라서 클라이언트에 의해 전송되는 총 비트들의 수는 이된다(벌크로 198MB). 클라이언트 질의 크기가 중요한 애플리케이션들을 위해, 파라미터를 조정(tweak)할 수 있는데, 예를 들어 속도에서 2의 팩터(factor)를 포기하고 클라이언트 질의 크기에서 2-4배 향상시킬 수 있다. 더 좋은 예로서, 실 PIR(SealPIR) 연구[5]의 질의-확장 기술이 상기 인스턴트 세팅에 적용될 수 있는데, 이 기술은 속도를 저하시키지 않고 클라이언트 질의 크기를 크게 줄일 수 있다.
[00176] 이것은 데이터베이스(28-1)가 블록(430) 이전에 사전 처리되었다고 가정한다는 점에 유의한다. 즉, 블록(410)에서 서버는 각 엔트리를 에 대해 2x2 평문 매트릭스로 분해함으로써 자신의 데이터베이스를 사전 처리한다(임을 기억한다). 따라서 각 매트릭스는 비트들(대략 138KB)을 보유한다. 서버는 이들 매트릭스들의 각 엔트리를 CRT 표현 모듈 로 인코드(블록 410) 한다. 이 이후의 추가 프로세스들은, 만일 데이터베이스(28-1)가 평문을 포함한다면, 위에서 설명한 바와 같이, GSW 암호문들을 평문 매트릭스들에 의해서 곱하는, 절차(iv)를 사용할 수 있음을 주목해야 한다. CRT 표현 모듈 의 결과는 평문이다. 또한 이 예는 평문(또는 일부 평문) 데이터베이스(28-1)를 사용하지만, 상기 데이터베이스도 암호화될 수 있고, 위에서 설명한 바와 같이, 압축된 암호문들에 의해서 GSW 암호문들을 곱하는, 절차(iii)도 사용될 수 있다는 점을 주목해야 한다. 평문 매트릭스의 엔트리들은 작지만( 범위), 그들의 CRT 표현 모듈 는 그렇지 않다. 따라서, 이 표현은 서버에서의 스토리지 요건에서 폭발(blowup)을 수반한다. 아래에서, L은 단일 데이터베이스 엔트리를 인코드 하는 데 사용되는 매트릭스들의 수로 세트 된다. (단일 JPEG 사진은 을 갖지만, 4GB 동영상은 약 29K 매트릭스들로 인코드 된다.)
[00177] 클라이언트의 암호문이 주어지면, 서버는, 블록(435)에서, GSW 평가를 사용하여 제1차원에 대한 유닛 벡터 의 GSW 암호화를 계산할 수 있다(이 것은 보다 적은 GSW 곱하기들을 사용하여 행해질 수 있다). 이 프로세스는 또한, 위에서 설명한 바와 같은, 평문 매트릭스들에 의해서 GSW 암호문을 곱하는, 절차(iv)를 사용할 수도 있다. 에 대해, 서버는 이 차원을 접는데(fold), (1) 하이퍼큐브의 r번째 하이퍼-행의 모든 엔트리들의 모든 평문 매트릭스들에 의해서 이 벡터의 r번째 암호문을 곱함(multiplying)에 의해서, (2) 제1 하이퍼큐브 차원을 가로질러 모든 것을 더함(adding)에 의해서, 접는다. 상기 더함은, 위에서 설명한 바와 같은, 압축된 암호문들을 위한 부가적 동형, 절차(ii)를 사용할 수 있다는 점에 유의한다. 결과는 (차원의) 단일 암호화된 하이퍼-행이고, 이 것의 각 엔트리는 L개의 압축된 암호문들로 구성된다.
[00178] 다음에(도 4b, 블록 440) 서버는 차례로 작은 차원들을 접는다(fold). 각 크기-4 차원을 위해, 서버는 4개의 하이퍼-열들의 모든 압축된 암호문들에 의해서 4개의 GSW 암호화 비트들을, 각각, 곱하고, 그 다음 그 결과를 현재 차원을 가로질러 더하여, 암호문들의 수를 4배 감축한다. 이것은 서버가 L 압축된 암호문들 모듈로 의 하나의 단일 엔트리만 남겨둘 때까지 계속된다.
[00179] 마지막으로, 서버는 모듈러스 전환을 수행(블록 445)하여 각 암호문 C를 에 의해서 대체하고, 최종 암호문들을 암호 해독하기 위해 클라이언트로 전송한다. 암호문 C가 를 만족한다는 점을 주목해야 한다. 에 의해서 반올림 오류를 표시하면, 새 암호문은 다음과 같다.
키 S는 오류 분포와 로부터 선택되었기 때문에, 더해진 노이즈는 작으며 결과는 유효한 암호문이다. (자세한 내용은 아래를 참조함.)
[00180] 블록(450)에서, 서버(170)는, 요청에 대한 암호화된 답변인, 선택된 엔트리를 사용자에게 전송하고, 클라이언트(110)는, 블록(455)에서, 암호화된 답변을 수신한다. 블록(460)에서, 클라이언트(110)는 암호화된 답변을 평문으로 암호 해독하고, 따라서 요청된 엔트리가 드러난다. 블록(465)에서, 클라이언트(110)는 평문을 사용하여 하나 또는 그 이상의 연산들을 수행한다. 예를 들어, 사용자(201)가 그들의 당좌예금에 대한 잔액을 요청했다면, 사용자(201)는, 예를 들어, 그들의 당좌예금에 더 많은 돈을 추가하거나 또는 그들의 당좌예금을 사용하여 신용카드를 지불할 것이다.
[00181] 노이즈 분석을 하려면, 제1 차원에 대해서, GSW 평가를 사용하여 암호화된 단항 벡터를 계산해야 하며, 여기서 상기 벡터에서 각 암호문은 암호문들의 곱(product)이다. 따라서 이들 평가된 암호문들 각각의 노이즈는 암호화 동안에 샘플된 오류 매트릭스들 중 하나인 를 사용하여 대략적으로 형태 를 갖는다. 일단 이들이 평문 매트릭스들(the plaintext matrices)에 의해서 곱해져서 데이터베이스가 식 (4)에서와 같은 압축된 암호화를 얻고 모든 암호문들이 -size 차원을 가로질러 더해지면, 다음 형식의 노이즈 항이 결정된다:
(엔트리들이 아래에서 제한되는(bounded) 평문 매트릭스들에 의해 오른쪽에서 곱하기가 수행되지만, 어떠한 도 없이 수행된다는 점에 유의해야 한다.) 점근적으로 보면, 그리고 구체적인 성능을 최적화하는 평문들을 도입하기 위해 여기서 사용된 파격적인 방법을 무시한다면, 이 단계로부터 노이즈는 과 함께 선형으로 증가한다는 점에 유의해야 한다. 만일 보안 파리미터 에 대해 가 세트된다면, 이 단계와 나머지 단계들로부터 노이즈는 에 의해서 제한될 것이고 그래서 q는 이들 양들의 상수-차수 다항식(a constant-degree polynomial)에 의해서 제한될 수 있다. mod-q 곱하기의 복잡도가 로 주어지면, 이 예시적인 PIR 스킴의 점근적 오버헤드는 가 될 것이다.
[00182] 의 엔트리들은 분산 8의 분포(a distribution of variance 8) (Arora-Ge 공격들[8]을 피하기에 충분한)로부터 선택될 수 있다. 의 엔트리들은 범위에 있으므로 (이기 때문에), 에 의한 곱하기는 상기 분산을 보다 적은 팩터(factor)만큼 증가시킨다. 유사하게, (의 엔트리들의) 평문 매트릭스에 의한 곱하기는 상기 분산을 다음: 의 팩터만큼 증가시킨다. 따라서 각 노이즈 좌표의 분산은 에 의해서 제한된다(bounded). 각 노이즈 좌표는 유사한 가중치들을 갖는 의 엔트리들의 가중치 합이므로, 그 것을 정상 랜덤 변수(a normal random variable)로 취급하는 것이 합리적이다. 이 오류의 크기에 관한 양호한 고 확률 경계는 (말하자면), 확률 에 대응하는, 표준 편차들이다. 즉, 제1 차원을 접은 후, 모든 압축된 암호문들은 높은 확률과 함께 을 갖는다.
[00183] 계속해서 더 많은 차원들을 접게 됨에 따라, 상기 암호화된 단항 벡터들은 이전 차원의 결과들(압축된 암호문들)에 의해서 이들 차원들(GSW 암호문들)에 대해 다시 곱해지는데, 방정식(4)를 사용하여, 이번에는 를 사용하여, 곱해진다. 이들 차원들의 GSW 암호문들은 신선하므로, 따라서 그들의 노이즈 항들은 암호화 동안에 선택된 매트릭스들 뿐이다는 점에 유의해야 한다. 따라서 이 차원에서 노이즈 항들의 각각은 이들 매트릭스들 중 하나를 위해 형식 을 갖는다. 더 나아가, 각 차원의 4개의 항들 중 하나만 암호화된 비트 를 갖고 한편 다른 하나는 을 갖는다. 따라서 항은 번째 차원을 접은 후 최종 노이즈 항에서 오직 한 번만 나타난다. 그러므로, 각각의 작은 차원 를 접으면 이전 차원으로부터의 노이즈에 형식의 4개의 노이즈 항들이 더해진다.
[00184] 는 를 가지므로, 의 각 엔트리는 간격 에 위치하고, 그리고 에 의한 곱하기는 (임을 기억할 것)보다 적은 팩터만큼 분산을 증가시킨다. 이들 항들의 를 사용하여, 상기 더해진 노이즈 항에서 각 좌표의 분산은 에 의해서 제한된다. 따라서 모든 작은 하이퍼큐브 차원들로 인해 더해진 노이즈의 크기에 관한 높은 확률 경계 를 사용할 수 있다.
[00185] 지금까지의 분석은 모듈러스 전환 연산 이전에 노이즈는 크기가 아래로 제한됨을 암시한다. 모듈러스 전환에서 반올림 오류로 인해 더해진 노이즈 항은 이고, 이 식에서 각 잡음 좌표의 분산은 이다. 따라서 이 최종 노이즈 항의 크기에는 높은 확률 경계 가 있다. 그러므로 클라이언트에 반환되는 암호문의 총 노이즈는 다음에 의해서 제한된다.
거의 정사각형 가제트 매트릭스 가 와 함께 사용된다는 점을 상기하면, 노이즈는 실제로 필요에 따라 아래로 제한되므로, 따라서 클라이언트에 반환되는 암호문들은 압도적인 확률로 정확하게 암호 해독될 것이다.
[00186] 복잡도 분석을 위해, 질의를 처리하는 동안 서버의 작업은 대부분 곱하기들과 FFT들로 구성된다. (일단 FFT들이 수행되면 의 더하기들 및 적용들과 같은 다른 연산들은 비교적 시간이 거의 걸리지 않는다.)
[00187] 차원 의 원분 링(a cyclotomic ring)을 사용하면, 각 FFT 연산은 평가 표현에서 링 곱하기 연산보다 약 10-20배 더 느리게 된다(slower). 그러나 데이터베이스 엔트리들의 크기 L 의 N/N 1 배가 충분히 클 때, 곱하기들의 수가 FFT들의 수를 팩터 보다 훨씬 더 많이 축소한다(dwarf)는 것을 쉽게 알 수 있다. 실제로, FFT들은 클라이언트에 의해서 전송된 인덱스의 비트들(L 및 N/N 1 과 무관함)이 처리되는 초기 단계와 제1 차원(데이터의 에 대해서만 적용됨)을 접은 후에만 수행된다. 예시적인 세팅에서, 곱하기 시간은 일단 가 수천 보다 크다면 FFT 시간을 초과한다. 이 예에서 을 사용하면, 단일 JPEG 이미지를 각 엔트리에 유지하더라도 FFT 처리는 전체 시간의 50 %보다 적게 차지한다는 것을 의미한다. 그리고 인 영화의 경우, FFT 시간은 완전히 중요하지 않다.
[00188] 이제 곱하기들에 소요된 시간은, 데이터베이스 크기의 함수로서, 평가될 수 있다. 가 큰 경우, 지금까지 가장 많은 수의 곱하기들은, 1 하이퍼큐브 차원을 접는 동안, 데이터베이스를 인코드 하는 평문 매트릭스들에 의해 GSW 암호문들을 곱할 때 수행된다. 이들 곱하기들은 형태 를 갖는데, 여기서 는 차원 의 하이브리드 암호문이고 는 차원 (여기에 )의 중복 평문 매트릭스이다. 어떠한 최적화들 없이 순진하게 처리하려면, 이들 매트릭스 곱하기들의 각각, 모듈로 이중-크기의 모듈러스 를 위해 링 곱하기들이 필요하다. 각 링 곱하기(CRT 표현의 엘리멘트들에 대한)는 이중-크기 모듈러 정수 곱하기 구성되므로, 그러한 매트릭스 곱하기 각각은 총 모듈러 곱하기들을 취한다. 이 작업을 위해, 약 바이트들을 포함하는, 단일 평문 매트릭스가 처리되어 상각된 작업(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, Tancrde 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 Izabachne. 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, Tancrde 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 곱하기를 사용하여 매트릭스를 곱하기 위한 비가환 알고리즘. 불. 아메르, 수학. 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의 동형 암호화 스킴을 사용하는 단계는 를 계산함에 의해서 암호문들 를 압축하는 단계를 더 포함하고, 의 암호문들이 있으며, , 이고, 및 은 차원들(dimensions)이며, q는 학습 오류(LWE) 모듈러스(a learning with errors (LWE) modulus)이고, G는 직사각형 가젯 매트릭스이며, H는 거의 정사각형인 가젯 매트릭스(a nearly square gadget matrix), 이고, 그리고 는 엔트리 에서는 1이며 다른 곳에서는 0인 정사각형 싱글톤 매트릭스, 즉 이고, 는 위치들 에서 1이고, 각각 인, 차원- 의 단위 벡터들이다.
6. 제1항의 방법에 있어서, 상기 데이터에 관해 압축 가능한 동형 암호화 연산들을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는, 비트들 을 암호화하는 젠트리, 사하이 및 워터스(GSW) 암호문들이 주어졌을 때, 상기 GSW 암호문을 를 암호화하는 단일 GSW 암호문으로 부분적으로 압축하는 단계, 일부 에 대해 스칼라의 형태 를 암호화하는 단일 GSW 암호문을 생성하는 단계-여기서 Z는 정수의 집합임-, 그리고, 를 암호화하는 의 암호문들 가 주어졌을 때, 를 세트 함에 의해서 상기 암호문들 를 압축하는 단계를 포함하고, 여기서, 는 k개의 0들이 프리펜드 된(prepended) i번째 유닛 벡터이고, G는 직사각형 가젯 매트릭스이며 그리고 k는 비밀 키의 길이이고, 상기 단일 GSW 암호문을 생성하는 단계는 벡터의 압축된 암호화를 생성한다.
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)이고, 이며, 매트릭스 F의 엔트리들은 충분히 작아서 상기 엔트리들이 암호문으로부터 노이즈에 의해서 곱해진 후에도, 결과는 여전히 q보다 작다.
11. 제9항의 방법에 있어서, 상기 비밀 키는 형식의 매트릭스이고, 여기서 S'는 오류 있는 학습(LWE) 비밀(a learning with errors (LWE) secret)이며, 상기 평문을 포함하는 일부 매트릭스는 매트릭스 이고, 여기서 M은, 을 얻기 위한 상기 평문이다.
12. 제11항의 방법에 있어서, 상기 평문은 매트릭스 M이고, 상기 매트릭스 M'은 상기 오류 있는 학습(LWE) 비밀의 차원만큼 많은 0의 행들을 더함으로써 M으로부터 획득되며, 상기 차원은 k로 표시되고, 으로 표시되며, 상기 패드된 매트릭스 M'은 차원 를 갖는다.
13. 제12항의 방법에 있어서, 오른쪽의 M'에 차원 의 가젯 매트릭스 H를 곱한 것을 포함하는 상기 중복 인코딩이 n1Хn2의 암호문들 매트릭스의 최종 차원을 생성한다(result in).
14. 제8항의 방법에 있어서, 상기 평문의 중복 인코딩은 1보다 큰 정수에 의해서 곱해진, 상기 평문을 포함하는 일부 매트릭스를 포함한다.
15. 제14항의 방법에 있어서, 상기 비밀 키는 형식의 매트릭스이고, 여기서 S'는 오류 있는 학습(LWE) 비밀이며; 상기 평문을 포함하는 합계 매트릭스는 매트릭스 이고, 여기서 M은 를 얻을 수 있는, 평문이다.
16. 제15항의 방법에 있어서, 상기 평문은 매트릭스 M이고, 매트릭스 M'은 상기 오류 있는 학습(LWE) 비밀의 차원만큼 많은 0의 행들을 더함으로써 M으로부터 획득되며, 상기 차원은 k에 의해서 표시되고, 으로 표시되고, 상기 패드된 매트릭스 M'은 차원 을 갖는다.
17. 방법에 있어서, 상기 방법은: 제 1 컴퓨터 시스템 상의 데이터베이스로부터 선택된 엔트리에 대한 요청을, 제 1 컴퓨터 시스템에서 그리고 제 2 컴퓨터 시스템으로부터, 수신하는 단계; 상기 데이터베이스 내의 선택된 엔트리에 대응하는 암호화된 대답을 계산하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계-상기 압축 가능한 동형 암호화 스킴은 대응하는 평문 대답(cleartext answer)보다 훨씬 더 길지 않는 상기 암호화된 대답을 생성하고, 상기 암호화된 대답을 계산하는 단계는 상기 데이터베이스 내의 각 바이트에 대해 몇 사이클들이 걸림-; 그리고 상기 요청에 대한 응답을, 상기 제1 컴퓨터 시스템에 의해서 그리고 상기 제2 컴퓨터 시스템으로, 전송하는 단계(sending)를 포함하고, 상기 응답은 요청된 상기 선택된 엔트리에 대응하는 상기 암호화된 대답을 포함한다.
18. 제17항의 방법에 있어서, 상기 데이터베이스는 대응하는 N 차원들의 N 데이터베이스 엔트리들로 인덱스 되고; 상기 요청은 상기 데이터베이스에서 인덱스 i를 갖는 선택된 엔트리에 대응하며; 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는: 인덱스 엘리멘트들 을 갖는 인덱스 엘리멘트들의 단항 표현(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는 작은 스칼라들 를 암호화하고, 암호문 C에 의해서 왼쪽에서 평문 매트릭스 M을 곱한 결과는 매트릭스 를 암호화하는 압축된 암호문이며, 여기서 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 베이스들은 인덱스 엘리멘트들 를 갖고, 상기 데이터베이스는 N 차원들을 가지며, 이고, 여기서 모든 에 대해 와 이며, 인덱스 i를 암호화하는 단계는 스칼라들 와 를 암호화하는 단계-여기서 는 의 비트들임- 및 에 대해, 위치 에서는 1이고 그 밖의 위치에서는 0(zero elsewhere)인, 유닛 벡터 의 비트들을 암호화 하기 위해 암호문들을 암호화 하는 단계를 포함하고, 암호문의 암호문 모듈러스는 합성(composite) 이고, 여기서 이며 이다.
27. 제26항의 방법에 있어서, 인덱스 i를 암호화하는 단계는: 의 최하위 비트, ,에 대해서는 식별(an identity)을 사용하여 상기 최하위 비트를 곱하고, 또한 상기 비트 를 에 의하여 곱하는 단계; 의 다른 비트들에 대해서는 넓고 짧은 가젯 매트릭스(a wide and short gadget matrix)를 사용하여 상기 다른 비트를 곱하는 단계; 및 인 상기 다른 의 단항 표현(the unary representation)을 인코딩하는 비트들에 대해서는, 다소 직사각형 가젯 매트릭스(a somewhat rectangular gadget matrix)를 사용하여 상기 단항 표현을 인코딩하는 비트들을 곱하는 단계를 포함한다.
28. 제25항의 방법에 있어서, 상기 암호 해독하는 단계는 상기 하나 또는 그 이상의 압축된 암호문들에 대응하는 상기 평문의 중복 인코딩 및 추가 노이즈를 포함하는 매트릭스를 획득하기 위해 상기 하나 또는 그 이상의 압축된 암호문들을 포함하는 상기 응답을 비밀 키를 사용하여 암호 해독하는 단계, 및 상기 노이즈를 제거하고 상기 하나 또는 그 이상의 압축된 암호문들에 대응하는 평문을 복구하기 위해 상기 인코딩의 중복성을 사용하는 단계를 포함한다.
29. 제28항의 방법에 있어서, 상기 평문의 중복 인코딩은, 거의 정사각형 가젯 매트릭스에 의해서 곱해진, 상기 평문을 포함하는 일부 매트릭스를 포함한다.
30. 제29항의 방법에 있어서, 상기 거의 정사각형 가제트 매트릭스 H에 대해, 풀 랭크를 갖고 q 보다 훨씬 작은 엔트리를 갖는 또 다른 매트릭스 F 가 존재하고, 여기서 q는 오류 있는 학습(LWE)계수이며, 이고, 매트릭스 F의 상기 엔트리들은 충분히 작아서 상기 엔트리들이 암호문으로부터 노이즈에 의해서 곱해진 후에도, 결과가 여전히 q 보다 더 작다.
31. 제29항의 방법에 있어서, 상기 비밀 키는 형식의 매트릭스이고, 여기서 는 오류 있는 학습(LWE) 비밀이며; 상기 평문을 포함하는 일부 매트릭스는 매트릭스 이고 여기서 M은, 을 얻기 위한, 상기 평문이다.
32. 제31항의 방법에 있어서, 상기 평문은 매트릭스 M이고, 매트릭스 M'은 오류 있는 학습(LWE) 비밀의 차원만큼 많은 0의 행들을 더함에 의해서 M으로부터 획득되며, 상기 차원은 k에 의해서 표시되고, 로 표시되며, 상기 패드된 매트릭스 M'은 차원 을 갖는다.
33. 제32항의 방법에 있어서, 차원 의 상기 가젯 매트릭스 H로 오른쪽에서 M'을 곱하는 단계를 포함하는 상기 중복 인코딩은 n1Хn2의 암호문들의 매트릭스의 최종 차원을 생성한다.
34. 제30항의 방법에 있어서, 상기 평문의 중복 인코딩은, 1보다 큰 정수에 의해서 곱해진 상기 평문을 포함하는 일부 매트릭스를 포함한다.
35. 제34항의 방법에 있어서, 상기 비밀 키는 형식의 매트릭스이고, 여기서 S'는 오류 있는 학습(LWE) 비밀이며; 상기 평문을 포함하는 일부 매트릭스는 매트릭스 이고, 여기서 M은, 를 얻기 위한, 상기 평문이다.
Claims (36)
- 방법에 있어서, 상기 방법은:
제 1 컴퓨터 시스템 상의 데이터베이스 내의 데이터를 사용하여 결정될 수 있는 특정 정보에 대한 요청을, 제 1 컴퓨터 시스템에서 그리고 제 2 컴퓨터 시스템으로부터, 수신하는 단계-상기 데이터의 적어도 일부가 암호화되거나 또는 상기 요청이 암호화되며, 상기 암호화된 데이터 또는 상기 암호화된 요청을 암호 해독하기 위한 암호 해독 키를 상기 제1 컴퓨터 시스템은 갖지 않음-;
상기 데이터베이스 내의 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 결정하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 연산들을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계-상기 압축 가능한 동형 암호화 연산들은 제1의 비압축 동형 암호화 스킴(scheme) 및 제2의 압축된 동형 암호화 스킴을 사용하고, 상기 압축 가능한 동형 암호화 연산들을 수행하는 단계는 다른 다수의 암호문들을 생성하기 위해 상기 데이터에 관해 상기 제1 동형 암호화 스킴을 사용하는 단계 및 상기 다른 다수의 암호문들을 압축되는 더 적은 수의 암호문들로 팩(pack)하기 위해 상기 다른 다수의 암호문들에 관해 상기 제2의 압축된 동형 암호화 스킴을 사용하는 단계를 포함하며, 상기 제1의 압축된 동형 암호화 스킴 및 상기 제2의 압축된 동형 암호화 스킴은 모두 동일 비밀 키를 사용함-; 그리고
상기 요청에 대한 응답을, 상기 제1 컴퓨터 시스템에 의해서 그리고 상기 제2 컴퓨터 시스템으로, 전송하는 단계를 포함하고, 상기 응답은 요청된 상기 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 포함하는
방법. - 제1항에 있어서, 상기 제2 압축 동형 암호화 스킴을 사용함으로써, 상기 압축된 암호문들의 크기는 상기 압축된 암호문들이 대응하는 비암호화 데이터(unencrypted data)의 크기에 임의로(arbitrarily) 근접될 수 있는
방법. - 제2항에 있어서, 모든 선택된 ε에 대해, 상기 압축된 암호문들의 크기가 상기 대응 평문의 크기의 (1 + ε)배가 되는 상기 제2의 동형 암호화 스킴의 인스턴스화(an instantiation)가 되게 상기 제2의 동형 암호화 스킴이 구성되기 때문에, 상기 압축된 암호문들의 크기는 상기 압축된 암호문들이 대응하는 평문의 크기에 임의로(arbitrarily) 근접될 수 있는
방법. - 제1항에 있어서, 상기 데이터에 관해 압축 가능한 동형 암호화 연산들을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는 많은 비트의 암호문들을 정수들의 링 R에서 더 큰 스칼라(a larger scalar in a ring of integers R)를 암호화하는 단일의 암호문으로 압축하기 위해 정수들의 링 R에서 스칼라(a scalar in a ring of integers R)를 나타내는 많은 비트의 암호문을 포함하는 데이터에 관해 부분 압축을 수행하는 단계를 더 포함하는
방법. - 제1항에 있어서, 상기 다수의 동형 암호문들을 단일의 압축된 암호문으로 팩(pack)하기 위해 상기 다수의 동형 암호문들에 관해 상기 제2의 동형 암호화 스킴을 사용하는 단계는 를 계산함에 의해서 암호문들 를 압축하는 단계를 더 포함하고, 의 암호문들이 있으며, , 이고, 및 은 차원들(dimensions)이며, q는 학습 오류(LWE) 모듈러스(a learning with errors (LWE) modulus)이고, G는 직사각형 가젯 매트릭스이며, H는 거의 정사각형인 가젯 매트릭스(a nearly square gadget matrix), 이고, 그리고 는 엔트리 에서는 1이며 다른 곳에서는 0인 정사각형 싱글톤 매트릭스, 즉 이고, 는 위치들 에서 1이고, 각각 인, 차원- 의 단위 벡터들인
방법. - 제1항에 있어서, 상기 데이터에 관해 압축 가능한 동형 암호화 연산들을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는, 비트들 을 암호화하는 젠트리, 사하이 및 워터스(GSW) 암호문들이 주어졌을 때, 상기 GSW 암호문을 를 암호화하는 단일 GSW 암호문으로 부분적으로 압축하는 단계, 일부 에 대해 스칼라의 형태 를 암호화하는 단일 GSW 암호문을 생성하는 단계-여기서 Z는 정수의 집합임-, 그리고, 를 암호화하는 의 암호문들 가 주어졌을 때, 를 세트 함에 의해서 상기 암호문들 를 압축하는 단계를 포함하고, 여기서, 는 k개의 0들이 프리펜드 된(prepended) i번째 유닛 벡터이고, G는 직사각형 가젯 매트릭스이며 그리고 k는 비밀 키의 길이이고, 상기 단일 GSW 암호문을 생성하는 단계는 벡터의 압축된 암호화를 생성하는
방법. - 방법에 있어서, 상기 방법은:
암호화된 데이터를 생성하기 위해 평문을, 제1 컴퓨터 시스템으로 전송하고 제2 컴퓨터 시스템에서 수행하기 위해, 암호화하는 단계;
상기 암호화된 데이터를 암호 해독하기 위한 암호 해독 키를 상기 제1 컴퓨터 시스템이 갖지 않고, 상기 제2 컴퓨터 시스템으로부터 상기 제1 컴퓨터 시스템으로 상기 암호화된 데이터를 전송하는 단계;
상기 암호화된 데이터를 사용하여 결정될 수 있는 특정 정보에 대한 요청을 상기 제2 컴퓨터 시스템에 의해서 전송하는 단계;
상기 요청에 대한 응답을, 상기 제2 컴퓨터 시스템에서 그리고 상기 제1 컴퓨터 시스템으로부터, 수신하는 단계-상기 응답은 요청된 특정 정보에 대응하는 하나 또는 그 이상의 압축된 암호문들을 포함함-; 및
상기 하나 또는 그 이상의 압축된 암호문들을 대응하는 평문으로 상기 제2 컴퓨터 시스템에 의해서 암호 해독하는 단계를 포함하는
방법. - 제7항에 있어서, 상기 암호 해독하는 단계는 상기 하나 또는 그 이상의 압축된 암호문들에 대응하는 평문의 중복 인코딩(a redundant encoding) 및 추가의 노이즈(additional noise)를 포함하는 매트릭스를 획득하기 위해 상기 하나 또는 그 이상의 압축된 암호문들을 포함하는 응답을 비밀 키를 사용하여 암호 해독하고, 상기 노이즈를 제거하고 상기 하나 또는 그 이상의 압축된 암호문들에 대응하는 평문을 복구하기 위해 상기 인코딩의 중복성(redundancy)을 사용하는 단계를 포함하는
방법. - 제8항에 있어서, 상기 평문의 중복 인코딩은 거의 정사각형 가젯 매트릭스(a nearly square gadget matrix)에 의해서 곱해진, 상기 평문을 포함하는 일부 매트릭스를 포함하는
방법. - 제8항에 있어서, 상기 평문의 중복 인코딩은 1보다 큰 정수에 의해서 곱해진, 상기 평문을 포함하는 일부 매트릭스를 포함하는
방법. - 방법에 있어서, 상기 방법은:
제 1 컴퓨터 시스템 상의 데이터베이스로부터 선택된 엔트리에 대한 요청을, 제 1 컴퓨터 시스템에서 그리고 제 2 컴퓨터 시스템으로부터, 수신하는 단계;
상기 데이터베이스 내의 선택된 엔트리에 대응하는 암호화된 대답을 계산하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계-상기 압축 가능한 동형 암호화 스킴은 대응하는 평문 대답(cleartext answer)보다 훨씬 더 길지 않는 상기 암호화된 대답을 생성하고, 상기 암호화된 대답을 계산하는 단계는 상기 데이터베이스 내의 각 바이트에 대해 몇 사이클들이 걸림-; 그리고
상기 요청에 대한 응답을, 상기 제1 컴퓨터 시스템에 의해서 그리고 상기 제2 컴퓨터 시스템으로, 전송하는 단계(sending)를 포함하고, 상기 응답은 요청된 상기 선택된 엔트리에 대응하는 상기 암호화된 대답을 포함하는
방법. - 제17항에 있어서, 상기 데이터베이스는 대응하는 N 차원들의 N 데이터베이스 엔트리들로 인덱스 되고;
상기 요청은 상기 데이터베이스에서 인덱스 i를 갖는 선택된 엔트리에 대응하며;
상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는:
인덱스 엘리멘트들 을 갖는 인덱스 엘리멘트들의 단항 표현(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에 대응하는 엔트리를 전송하는 단계를 포함하는
방법. - 제18항에 있어서, 암호화된 대답을 계산하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는, 상기 접는 단계 전에, 상기 데이터베이스를 더 작은 매트릭스들로 분해하고(break) 이들 더 작은 매트릭스들을 중국의 나머지 정리(Chinese Remainder Theorem: CRT) 표현으로 인코딩함에 의해서 상기 데이터베이스를 사전-처리하는 단계(pre-processing)를 더 포함하는
방법. - 제19항에 있어서, 상기 더 작은 매트릭스들을 중국의 나머지 정리(CRT) 표현으로 인코딩한 후, 상기 인코딩된 더 작은 매트릭스들은 암호문 매트릭스들에 의해서 왼쪽에서 곱해지는
방법. - 제18항에 있어서, 암호화된 대답을 계산하기 위해 상기 데이터베이스 내의 데이터에 관해 압축 가능한 동형 암호화 스킴을 상기 제1 컴퓨터 시스템에 의해서 수행하는 단계는, 모든 접는 단계가 수행된 후 그러나 전송 단계 수행 전에, 계수 스위칭(modulus switching)을 수행하는 단계, 상기 선택된 엔트리의 각 암호문을 다른 계수를 갖는 암호문으로 변환하는 단계를 더 포함하는
방법. - 제18항에 있어서, 상기 더하는 단계(adding)는 압축된 암호문들에 대해 부가적 동형(additive homomorphism)을 사용하며, 상기 압축된 암호문들은 작은 스칼라들에 의해서 더해지고 곱해지는
방법. - 제18항에 있어서, 곱하는 단계는 암호문들을 갖는 매트릭스들을 평문 매트릭스들에 의해서 오른 쪽-곱하는 단계(right-multiplying)를 더 포함하는
방법. - 방법에 있어서, 상기 방법은:
제1 컴퓨터 시스템에 의해 저장된 데이터베이스로 엔트리의, 상기 제1 컴퓨터 시스템으로 그리고 제2 컴퓨터 시스템에 의해서, 전송될 인덱스 i를 암호화하는 단계- 상기 인덱스 i는 ND 베이스들(bases)의 혼합 기수(a mixed radix)로 표현되고 상기 데이터베이스는 또한 ND 베이스들을 가짐-;
상기 암호화된 인덱스를 사용하여 상기 제1 컴퓨터 시스템으로부터 아이템의 검색을 상기 제2 컴퓨터 시스템에 의해 요청하는 단계;
상기 요청에 대한 응답을, 상기 제2 컴퓨터 시스템에 의해서 그리고 상기 제1 컴퓨터 시스템으로부터, 수신하는 단계-상기 응답은 상기 암호화된 인덱스를 사용하여 요청된 상기 데이터베이스의 엔트리에 대응하는, 하나 또는 그 이상의 압축된 암호문들을 포함하는, 암호화된 대답을 포함함-; 그리고
상기 하나 또는 그 이상의 압축된 암호문들을 대응하는 평문으로 상기 제2 컴퓨터 시스템에 의해 암호 해독하는 단계를 포함하는
방법. - 제26항에 있어서, 인덱스 i를 암호화하는 단계는:
의 최하위 비트, ,에 대해서는 식별(an identity)을 사용하여 상기 최하위 비트를 곱하고, 또한 상기 비트 를 에 의하여 곱하는 단계;
의 다른 비트들에 대해서는 넓고 짧은 가젯 매트릭스(a wide and short gadget matrix)를 사용하여 상기 다른 비트를 곱하는 단계; 및
인 상기 다른 의 단항 표현(the unary representation)을 인코딩하는 비트들에 대해서는, 다소 직사각형 가젯 매트릭스(a somewhat rectangular gadget matrix)를 사용하여 상기 단항 표현을 인코딩하는 비트들을 곱하는 단계를 포함하는
방법. - 제25항에 있어서, 상기 암호 해독하는 단계는 상기 하나 또는 그 이상의 압축된 암호문들에 대응하는 상기 평문의 중복 인코딩 및 추가 노이즈를 포함하는 매트릭스를 획득하기 위해 상기 하나 또는 그 이상의 압축된 암호문들을 포함하는 상기 응답을 비밀 키를 사용하여 암호 해독하는 단계, 및 상기 노이즈를 제거하고 상기 하나 또는 그 이상의 압축된 암호문들에 대응하는 평문을 복구하기 위해 상기 인코딩의 중복성을 사용하는 단계를 포함하는
방법. - 제26항 내지 제28항의 항들 중 어느 한 항에 있어서, 상기 평문의 중복 인코딩은, 거의 정사각형 가젯 매트릭스에 의해서 곱해진, 상기 평문을 포함하는 일부 매트릭스를 포함하는
방법. - 제30항에 있어서, 상기 평문의 중복 인코딩은, 1보다 큰 정수에 의해서 곱해진 상기 평문을 포함하는 일부 매트릭스를 포함하는
방법.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240018910A (ko) | 2022-08-03 | 2024-02-14 | 경희대학교 산학협력단 | 양자 단대단 암호화 시스템 및 그 동작 방법 |
Families Citing this family (22)
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)
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 | 浙江捷尚人工智能研究发展有限公司 | 短密钥全同态加密方法及*** |
-
2019
- 2019-06-18 US US16/444,278 patent/US10972252B2/en active Active
- 2019-06-18 US US16/444,540 patent/US10985904B2/en active Active
-
2020
- 2020-06-15 EP EP20733265.1A patent/EP3984160B1/en active Active
- 2020-06-15 BR BR112021025744A patent/BR112021025744A2/pt unknown
- 2020-06-15 AU AU2020294855A patent/AU2020294855B2/en active Active
- 2020-06-15 KR KR1020217039840A patent/KR20220004201A/ko not_active Application Discontinuation
- 2020-06-15 CN CN202080039791.2A patent/CN113906712A/zh active Pending
- 2020-06-15 IL IL288975A patent/IL288975B2/en unknown
- 2020-06-15 SG SG11202110349VA patent/SG11202110349VA/en unknown
- 2020-06-15 WO PCT/EP2020/066490 patent/WO2020254248A1/en unknown
- 2020-06-15 MX MX2021014837A patent/MX2021014837A/es unknown
- 2020-06-15 CA CA3143362A patent/CA3143362A1/en active Pending
- 2020-06-15 JP JP2021574206A patent/JP7486529B2/ja active Active
- 2020-12-23 US US17/132,286 patent/US11394526B2/en active Active
- 2020-12-23 US US17/132,388 patent/US11502821B2/en active Active
-
2024
- 2024-02-29 JP JP2024029851A patent/JP2024063125A/ja active Pending
Cited By (1)
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 |