KR20220157843A - Method and apparatus of modulus refresh in homomorhpic encryption - Google Patents
Method and apparatus of modulus refresh in homomorhpic encryption Download PDFInfo
- Publication number
- KR20220157843A KR20220157843A KR1020210112965A KR20210112965A KR20220157843A KR 20220157843 A KR20220157843 A KR 20220157843A KR 1020210112965 A KR1020210112965 A KR 1020210112965A KR 20210112965 A KR20210112965 A KR 20210112965A KR 20220157843 A KR20220157843 A KR 20220157843A
- Authority
- KR
- South Korea
- Prior art keywords
- ciphertext
- modulus
- processor
- generating
- refresh
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000007781 pre-processing Methods 0.000 claims description 74
- 239000013598 vector Substances 0.000 claims description 25
- 230000001131 transforming effect Effects 0.000 claims description 17
- 230000006870 function Effects 0.000 description 9
- 239000000284 extract Substances 0.000 description 7
- 238000012857 repacking Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000005442 molecular electronic Methods 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002071 nanotube Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000003643 water by type 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
-
- 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/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Advance Control (AREA)
Abstract
Description
아래 실시예들은 정수 또는 실수를 지원하는 동형 암호에서 모듈러스 리프레시 방법 및 장치에 관한 것이다.The embodiments below relate to a method and apparatus for modulus refresh in homomorphic encryption supporting integer or real numbers.
동형 암호(homomorphic encryption)는 암호화된 데이터 사이에서 임의의 연산을 가능하게 하는 유망한 암호화 방법이다. 동형 암호를 활용하면 암호화된 데이터를 복호화하지 않고, 암호화된 상태에서 임의의 연산을 수행할 수 있을 뿐만 아니라, 격자 상의 수학적 난제를 기반(lattice-based)으로 하여 양자 알고리즘에 내성(resistant)이 있어 안전하다.Homomorphic encryption is a promising encryption method that allows arbitrary operations between encrypted data. Homomorphic cryptography can perform arbitrary operations in an encrypted state without decrypting encrypted data, and is resistant to quantum algorithms because it is based on a mathematical puzzle on a lattice. safe.
동형 암호에서 암호화된 데이터 사이의 연산을 수행하는 과정에서 암호문인 사이퍼텍스트에 대응하는 모듈러스가 감소하기 때문에 모듈러스를 복원하는 모듈러스 리프레시 과정이 요구된다.Since the modulus corresponding to the ciphertext, which is ciphertext, decreases in the process of performing an operation between encrypted data in homomorphic encryption, a modulus refresh process for restoring the modulus is required.
종래의 동형 암호에서의 모듈러스 리프레시 방식은 복호화 알고리즘을 동형 연산 가능한 회로로 표시하는 방식이었다. 종래의 모듈러스 리프레시 방식에는 모듈러스 연산을 사인 함수로 근사한 뒤 사인 함수에 근접한 근사 다항식 연산을 하는 방법, 모듈러스 연산을 사인 함수 근사 없이 낮은 최소 오차와 분산을 가지도록 직접적으로 근사 연산하는 방법 등이 있다.A modulus refresh method in a conventional homomorphic encryption is a method of expressing a decryption algorithm as a circuit capable of performing homomorphic operations. Conventional modulus refresh methods include a method of approximating the modulus operation with a sine function and then performing an approximation polynomial operation close to the sine function, a method of directly approximating the modulus operation to have a low minimum error and variance without approximating the sine function, and the like.
종래의 모듈러스 리프레시 방식은 근사 다항식으로 인해 출력 값에 대한 정확도(precision bit)가 기존 사이퍼텍스트보다 떨어지는 문제가 발생하며 큰 차수의 근사 다항식을 이용하면 모듈러스 리프레시 과정에서 획득된 모듈러스의 값이 크지 않다.The conventional modulus refresh method has a problem that the precision bit of the output value is lower than that of the existing ciphertext due to the approximation polynomial, and the modulus value obtained in the modulus refresh process is not large when a large order approximation polynomial is used.
따라서, 모듈러스 리프레시 결과 획득된 모듈러스 함수를 연산하기위한 직접적인 방법을 통해 높은 모듈러스와 높은 정확도를 달성할 수 있는 방법이 요구된다.Therefore, a method capable of achieving high modulus and high accuracy through a direct method for calculating a modulus function obtained as a result of modulus refresh is required.
정수와 실수를 다루는 동형 암호(homomorphic encryption)에서 사이퍼텍스트의 모듈러스 리프레시 방법에 있어서, 일 실시예에 따른 모듈러스 리프레시 방법은, 제1 모듈러스에 대응하는 제1 사이퍼텍스트를 수신하는 단계와, 상기 제1 사이퍼텍스트에 블라인드 로테이션(blind rotation) 연산을 수행함으로써 제2 사이퍼텍스트를 생성하는 단계와, 상기 제1 사이퍼텍스트 및 상기 제2 사이퍼텍스트에 기초하여 상기 제1 모듈러스보다 큰 제2 모듈러스에 대응하는 타겟 사이퍼텍스트를 생성하는 단계를 포함한다.A ciphertext modulus refresh method in homomorphic encryption that handles integers and real numbers, the modulus refresh method according to an embodiment includes the steps of receiving a first ciphertext corresponding to a first modulus; Generating a second ciphertext by performing a blind rotation operation on ciphertext, and a target corresponding to a second modulus greater than the first modulus based on the first ciphertext and the second ciphertext and generating the ciphertext.
상기 제2 사이퍼텍스트를 생성하는 단계는, 상기 제1 모듈러스 및 상기 제1 사이퍼텍스트의 다항식 차수에 기초하여 상기 제1 사이퍼텍스트에 동형 연산에 기반한 전처리를 수행하는 단계와, 전처리가 수행된 제1 사이퍼텍스트에 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는 단계를 포함할 수 있다.The generating of the second ciphertext may include performing preprocessing based on an isomorphic operation on the first ciphertext based on the first modulus and a polynomial order of the first ciphertext, and performing preprocessing based on isomorphic operation on the first ciphertext. and generating the second ciphertext by performing the blind rotation operation on the ciphertext.
상기 제1 모듈러스 및 상기 제1 사이퍼텍스트의 다항식 차수에 기초하여 상기 제1 사이퍼텍스트에 동형 연산에 기반한 전처리를 수행하는 단계는, 상기 제1 모듈러스를 상기 다항식 차수에 기초하여 변환함으로써 변환된 제1 모듈러스를 계산하는 단계와, 상기 변환된 제1 모듈러스에 기초하여 상기 제1 사이퍼텍스트를 변환함으로써 제3 사이퍼텍스트를 생성하는 단계와, 상기 변환된 제1 모듈러스, 상기 제3 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 전처리를 수행하는 단계를 포함할 수 있다.The step of performing isomorphic operation-based preprocessing on the first ciphertext based on the first modulus and the polynomial order of the first ciphertext, wherein the first modulus is converted based on the polynomial order, and the converted first calculating a modulus, generating a third ciphertext by converting the first ciphertext based on the converted first modulus, and generating the third ciphertext based on the converted first modulus and the third ciphertext and performing pre-processing on the first ciphertext.
상기 변환된 제1 모듈러스, 상기 변환된 제1 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 전처리를 수행하는 단계는, 상기 제1 사이퍼텍스트와 상기 제3 사이퍼텍스트의 차이를 상기 변환된 제1 모듈러스로 나눔으로써 상기 전처리를 수행하는 단계를 포함할 수 있다.The step of performing pre-processing on the first ciphertext based on the converted first modulus and the converted first ciphertext, wherein the difference between the first ciphertext and the third ciphertext is calculated as the converted first ciphertext. It may include performing the preprocessing by dividing by .
상기 동형 연산에 기반한 전처리가 수행된 제1 사이퍼텍스트에 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는 단계는, 상기 동형 연산에 기반한 전처리가 수행된 제1 사이퍼텍스트의 계수에 기초하여 LWE(learning with error) 벡터를 추출하는 단계와, 상기 LWE 벡터에 기초하여 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는 단계를 포함할 수 있다.In the step of generating the second ciphertext by performing the blind rotation operation on the first ciphertext preprocessed based on the isomorphic operation, based on the coefficients of the first ciphertext preprocessed based on the isomorphic operation, The method may include extracting a learning with error (LWE) vector and generating the second ciphertext by performing the blind rotation operation based on the LWE vector.
상기 LWE 벡터에 기초하여 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는 단계는, 상기 제1 사이퍼텍스트를 생성하는데 사용된 비밀키(secret key)에 기초하여 암호 상수를 생성하는 단계와, 상기 암호 상수에 기초하여 블라인드 로테이션 키를 생성하는 단계와, 상기 블라인드 로테이션 키에 기초하여 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는 단계를 포함할 수 있다.Generating the second ciphertext by performing the blind rotation operation based on the LWE vector includes generating an encryption constant based on a secret key used to generate the first ciphertext; , generating a blind rotation key based on the cryptographic constant, and generating the second ciphertext by performing the blind rotation operation based on the blind rotation key.
상기 블라인드 로테이션 키에 기초하여 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는 단계는, 상기 제1 사이퍼텍스트의 다항식의 차수에 따라 블라인드 로테이션 키에 대응하는 복수의 블라인드 로테이션 사이퍼텍스트를 생성하는 단계와, 상기 복수의 블라인드 로테이션 사이퍼텍스트를 결합함으로써 상기 제2 사이퍼텍스트를 생성하는 단계를 포함할 수 있다.The generating of the second ciphertext by performing the blind rotation operation based on the blind rotation key may include generating a plurality of blind rotation ciphertexts corresponding to the blind rotation key according to the degree of a polynomial of the first ciphertext. and generating the second ciphertext by combining the plurality of blind rotation ciphertexts.
상기 제1 모듈러스 및 상기 제1 사이퍼텍스트의 다항식 차수에 기초하여 상기 제1 사이퍼텍스트에 동형 연산에 기반한 전처리를 수행하는 단계는, 상기 제1 모듈러스를 상기 다항식의 차수에 기초하여 변환함으로써 변환된 제1 모듈러스를 계산하는 단계와, 상기 변환된 제1 모듈러스에 기초하여 상기 제1 사이퍼텍스트를 변환함으로써 제3 사이퍼텍스트를 생성하는 단계와, 상기 제3 사이퍼텍스트에 플레인텍스트의 개수에 기초한 간격으로 회전 연산(rotation operation)을 수행함으로써 상기 제1 사이퍼텍스트에 전처리를 수행하는 단계를 포함할 수 있다.The step of performing isomorphic operation-based preprocessing on the first ciphertext based on the first modulus and the order of the polynomial of the first ciphertext, by converting the first modulus based on the order of the polynomial, Calculating 1 modulus, generating third ciphertext by converting the first ciphertext based on the converted first modulus, and rotating the third ciphertext at intervals based on the number of plain texts and performing pre-processing on the first ciphertext by performing a rotation operation.
상기 제1 모듈러스, 상기 변환된 제1 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 동형 연산에 기반한 전처리를 수행하는 단계는, 상기 제1 모듈러스 및 상기 다항식의 차수에 기초하여 상기 제1 사이퍼텍스트를 변환함으로써 변환된 제1 사이퍼텍스트를 생성하는 단계와, 상기 변환된 제1 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 전처리를 수행하는 단계를 포함할 수 있다.The step of performing isomorphic operation-based preprocessing on the first ciphertext based on the first modulus and the converted first ciphertext, to obtain the first ciphertext based on the first modulus and the order of the polynomial. The method may include generating a converted first ciphertext by converting, and performing pre-processing on the first ciphertext based on the converted first ciphertext.
상기 변환된 제1 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 전처리를 수행하는 단계는, 상기 제1 사이퍼텍스트에 상기 다항식의 차수의 두배를 곱한 값과 상기 변환된 제1 사이퍼텍스트의 차이에 기초하여 상기 전처리를 수행하는 단계를 포함할 수 있다.The step of performing preprocessing on the first ciphertext based on the converted first ciphertext is based on a difference between a value obtained by multiplying the first ciphertext by twice the order of the polynomial and the converted first ciphertext. and performing the pre-processing.
상기 타겟 사이퍼텍스트를 생성하는 단계는, 상기 제1 사이퍼텍스트와 상기 제2 사이퍼텍스트를 더함으로써 상기 타겟 사이퍼텍스트를 생성하는 단계를 포함할 수 있다.The generating of the target ciphertext may include generating the target ciphertext by adding the first ciphertext and the second ciphertext.
정수와 실수를 다루는 동형 암호(homomorphic encryption)에서 사이퍼텍스트의 모듈러스 리프레시 장치에 있어서, 일 실시예에 따른 모듈러스 리프레시 장치는, 제1 모듈러스에 대응하는 제1 사이퍼텍스트를 수신하는 수신기와, 상기 제1 사이퍼텍스트에 블라인드 로테이션 연산을 수행함으로써 제2 사이퍼텍스트를 생성하고, 상기 제1 사이퍼텍스트 및 상기 제2 사이퍼텍스트에 기초하여 상기 제1 모듈러스보다 큰 제2 모듈러스에 대응하는 타겟 사이퍼텍스트를 생성하는 프로세서를 포함한다.In a ciphertext modulus refresh apparatus in homomorphic encryption that handles integers and real numbers, the modulus refresh apparatus according to an embodiment includes: a receiver for receiving a first ciphertext corresponding to a first modulus; A processor for generating second ciphertext by performing a blind rotation operation on ciphertext, and generating target ciphertext corresponding to a second modulus greater than the first modulus based on the first ciphertext and the second ciphertext includes
상기 프로세서는, 상기 제1 모듈러스 및 상기 제1 사이퍼텍스트의 다항식 차수에 기초하여 상기 제1 사이퍼텍스트에 동형 연산에 기반한 전처리를 수행하고, 전처리가 수행된 제1 사이퍼텍스트에 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성할 수 있다.The processor performs isomorphic operation-based preprocessing on the first ciphertext based on the first modulus and the polynomial order of the first ciphertext, and performs the blind rotation operation on the preprocessed first ciphertext. By doing so, the second ciphertext can be generated.
상기 프로세서는, 상기 제1 모듈러스를 상기 다항식 차수에 기초하여 변환함으로써 변환된 제1 모듈러스를 계산하고, 상기 변환된 제1 모듈러스에 기초하여 상기 제1 사이퍼텍스트를 변환함으로써 제3 사이퍼텍스트를 생성하고, 상기 변환된 제1 모듈러스, 상기 제3 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 전처리를 수행할 수 있다.The processor calculates a transformed first modulus by transforming the first modulus based on the polynomial order, generates a third ciphertext by transforming the first ciphertext based on the transformed first modulus, and , preprocessing may be performed on the first ciphertext based on the converted first modulus and the third ciphertext.
상기 프로세서는, 상기 제1 사이퍼텍스트와 상기 제3 사이퍼텍스트의 차이를 상기 변환된 제1 모듈러스로 나눔으로써 상기 전처리를 수행할 수 있다.The processor may perform the preprocessing by dividing a difference between the first ciphertext and the third ciphertext by the converted first modulus.
상기 프로세서는, 상기 동형 연산에 기반한 전처리가 수행된 제1 사이퍼텍스트의 계수에 기초하여 LWE(Learning With Error) 벡터를 추출하고, 상기 LWE 벡터에 기초하여 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성할 수 있다.The processor extracts a Learning With Error (LWE) vector based on coefficients of the first ciphertext on which preprocessing based on the isomorphic operation has been performed, and performs the blind rotation operation based on the LWE vector to obtain the second cipher text can be generated.
상기 프로세서는, 상기 제1 사이퍼텍스트를 생성하는데 사용된 비밀키(secret key)에 기초하여 암호 상수를 생성하고, 상기 암호 상수에 기초하여 블라인드 로테이션 키를 생성하고, 상기 블라인드 로테이션 키에 기초하여 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성할 수 있다.The processor generates an encryption constant based on a secret key used to generate the first ciphertext, generates a blind rotation key based on the encryption constant, and generates the blind rotation key based on the blind rotation key. The second ciphertext may be generated by performing a blind rotation operation.
상기 프로세서는, 상기 제1 사이퍼텍스트의 다항식의 차수에 따라 블라인드 로테이션 키에 대응하는 복수의 블라인드 로테이션 사이퍼텍스트를 생성하고, 상기 복수의 블라인드 로테이션 사이퍼텍스트를 결합함으로써 상기 제2 사이퍼텍스트를 생성할 수 있다.The processor may generate a plurality of blind rotation ciphertexts corresponding to a blind rotation key according to a degree of a polynomial of the first ciphertext, and generate the second ciphertext by combining the plurality of blind rotation ciphertexts. have.
상기 프로세서는, 상기 제1 모듈러스를 상기 다항식의 차수에 기초하여 변환함으로써 변환된 제1 모듈러스를 계산하고, 상기 변환된 제1 모듈러스에 기초하여 상기 제1 사이퍼텍스트를 변환함으로써 제3 사이퍼텍스트를 생성하고, 상기 제3 사이퍼텍스트에 플레인텍스트의 개수에 기초한 간격으로 회전 연산(rotation operation)을 수행함으로써 상기 제1 사이퍼텍스트에 전처리를 수행할 수 있다.The processor calculates a transformed first modulus by transforming the first modulus based on the degree of the polynomial, and generates a third ciphertext by transforming the first ciphertext based on the transformed first modulus. and pre-processing the first ciphertext by performing a rotation operation on the third ciphertext at intervals based on the number of plain texts.
상기 프로세서는, 상기 제1 모듈러스 및 상기 다항식의 차수에 기초하여 상기 제1 사이퍼텍스트를 변환함으로써 변환된 제1 사이퍼텍스트를 생성하고, 상기 변환된 제1 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 전처리를 수행할 수 있다.The processor generates a converted first ciphertext by transforming the first ciphertext based on the first modulus and the degree of the polynomial, and generates the first ciphertext based on the converted first ciphertext. Pre-processing can be done.
상기 프로세서는, 상기 제1 사이퍼텍스트에 상기 다항식의 차수의 두배를 곱한 값과 상기 변환된 제1 사이퍼텍스트의 차이에 기초하여 상기 전처리를 수행할 수 있다.The processor may perform the preprocessing based on a difference between a value obtained by multiplying the first ciphertext by twice the degree of the polynomial and the converted first ciphertext.
상기 프로세서는, 상기 제1 사이퍼텍스트와 상기 제2 사이퍼텍스트를 더함으로써 상기 타겟 사이퍼텍스트를 생성할 수 있다.The processor may generate the target ciphertext by adding the first ciphertext and the second ciphertext.
도 1은 일 실시예에 따른 모듈러스 리프레시 장치의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 모듈러스 리프레시 장치의 모듈러스 리프레시 동작의 흐름도를 나타낸다.
도 3은 도 2의 모듈러스 리프레시 동작을 이용한 암호문 생성의 동작의 구현의 일 예를 나타낸다.
도 4는 도 2의 모듈러스 리프레시 동작을 이용한 암호문 생성의 동작의 구현의 다른 예를 나타낸다.
도 5는 도 2의 모듈러스 리프레시 동작을 이용한 암호문 생성의 동작의 구현의 또 다른 예를 나타낸다.
도 6은 도 1에 도시된 모듈러스 리프레시 장치의 동작의 흐름도를 나타낸다.1 shows a schematic block diagram of a modulus refresh device according to an embodiment.
FIG. 2 is a flowchart of a modulus refresh operation of the modulus refresh device shown in FIG. 1 .
FIG. 3 shows an example of implementation of an operation of generating ciphertext using the modulus refresh operation of FIG. 2 .
FIG. 4 shows another example of implementing an operation of generating ciphertext using the modulus refresh operation of FIG. 2 .
FIG. 5 shows another example of implementing an operation of generating ciphertext using the modulus refresh operation of FIG. 2 .
FIG. 6 is a flowchart of an operation of the modulus refresh device shown in FIG. 1 .
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, since various changes can be made to the embodiments, the scope of the patent application is not limited or limited by these embodiments. It should be understood that all changes, equivalents or substitutes to the embodiments are included within the scope of rights.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in the examples are used only for descriptive purposes and should not be construed as limiting. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "include" or "have" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in the present application, they should not be interpreted in an ideal or excessively formal meaning. don't
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted. In describing the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description will be omitted.
또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다. In addition, in describing the components of the embodiment, terms such as first, second, A, B, (a), and (b) may be used. These terms are only used to distinguish the component from other components, and the nature, order, or order of the corresponding component is not limited by the term. When an element is described as being “connected,” “coupled to,” or “connected” to another element, that element may be directly connected or connected to the other element, but there may be another element between the elements. It should be understood that may be "connected", "coupled" or "connected".
어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.Components included in one embodiment and components having common functions will be described using the same names in other embodiments. Unless stated to the contrary, descriptions described in one embodiment may be applied to other embodiments, and detailed descriptions will be omitted to the extent of overlap.
도 1은 일 실시예에 따른 모듈러스 리프레시 장치의 개략적인 블록도를 나타낸다.1 shows a schematic block diagram of a modulus refresh device according to an embodiment.
도 1을 참조하면, 모듈러스 리프레시(modulus refresh) 장치(10)는 데이터에 대응하는 사이퍼텍스트에 대하여 모듈러스 리프레시를 수행할 수 있다. 모듈러스 리프레시 장치(10)는 데이터의 암호화를 통해 생성된 암호화된 데이터를 수신할 수 있다. 이하에서, 암호화된 데이터 또는 암호문은 사이퍼텍스트(ciphertext)로 지칭될 수 있다. 사이퍼텍스트는 다항식 또는 다항식을 포함하는 벡터의 형태를 가질 수 있다. 암호화되기 전의 데이터 또는 메시지는 플레인텍스트로 지칭될 수 있다.Referring to FIG. 1 , a
모듈러스 리프레시 장치(10)는 정수와 실수를 다루는 동형 암호를 이용하여 암호화된 데이터를 복호화(decryption) 없이도 연산할 수 있는 암호 기술을 제공할 수 있다. 예를 들어, 모듈러스 리프레시 장치(10)는 동형 암호를 이용하여 암호화된 상태에서 연산한 결과를 복호화함으로써 플레인텍스트(plaintext) 상태의 데이터를 연산한 결과와 동일한 결과가 도출될 수 있다. 모듈러스 리프레시 장치(10)는 임의의 실수 또는 복소수에 대한 동형 암호 연산을 제공할 수 있다.The
모듈러스 리프레시 장치(10)는 동형 암호(homomorphic encryption)에 필요한 모듈러스 리프레시(modulus refresh)를 수행할 수 있다. 동형 암호를 이용하여 생성된 사이퍼텍스트를 이용하여 연산을 수행할 경우, 사이퍼텍스트에 대응되는 모듈러스 값이 작아질 수 있다. 모듈러스 리프레시는 작아진 모듈러스를 더 큰 값의 모듈러스로 변경함으로써 더 많은 사이퍼텍스트 연산을 수행할 수 있게 하는 동작을 의미할 수 있다.The
모듈러스 리프레시 장치(10))는 동형 암호를 이용하는 임의의 장치와 서비스에서 입력값을 암호화하는 암호화 과정을 수행할 수 있다. 모듈러스 리프레시 장치(10)는 실수로 이루어진 플레인텍스트의 사이퍼텍스트를 연산하는 근사 동형 암호를 이용한 암호화를 수행할 수 있다. 모듈러스 리프레시 장치(10)는 실수(real number)로 이루어진 플레인텍스트(plain text)의 암호문 연산을 지원하는 RLWE(ring learning with error) 기반 근사 동형 암호를 이용한 암호화 동작을 수행할 수 있다. The
모듈러스 리프레시 장치(10)는 프라이버시 보존 기계 학습(privacy preserving machine learning(PPML)) 및 응용 서비스에서 입력값을 암호화하는 암호화 과정을 수행할 수 있다. 모듈러스 리프레시 장치(10)는 모듈러스 리프레시를 수행한 후 오차를 크게 증가시키지 않음으로써 높은 정확도를 요구하는 암호화 서비스에 적용될 수 있다. The
모듈러스 리프레시 장치(10)는 레벨 소모 없이 사이퍼텍스트의 모듈러스 리프레시를 수행할 수 있다. 모듈러스 리프레시 장치(10)는 모듈러스 리프레시를 수행한 이후에도 사이퍼텍스트를 이용한 연산에서 정확한 결과를 획득할 수 있다. 모듈러스 리프레시 장치(10)는 레벨 소모가 없기 때문에 암호화 과정에서 낮은 차수의 다항식을 사용할 수 있다.The
모듈러스 리프레시 장치(10)는 칩(chip) 형태로 구현되어 동형 암호를 활용하는 하드웨어 가속기에 탑재할 수 있다. 예를 들어, 모듈러스 리프레시 장치(10)는 PC(personal computer), 데이터 서버, 또는 휴대용 장치 내에 구현될 수 있다.The
휴대용 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 또는 스마트 디바이스(smart device)로 구현될 수 있다. 스마트 디바이스는 스마트 와치(smart watch), 스마트 밴드(smart band), 또는 스마트 링(smart ring)으로 구현될 수 있다.Portable devices include laptop computers, mobile phones, smart phones, tablet PCs, mobile internet devices (MIDs), personal digital assistants (PDAs), and enterprise digital assistants (EDAs). , digital still camera, digital video camera, portable multimedia player (PMP), personal navigation device or portable navigation device (PND), handheld game console, e-book ( e-book) or a smart device. A smart device may be implemented as a smart watch, a smart band, or a smart ring.
모듈러스 리프레시 장치(10)는 수신기(100) 및 프로세서(200)를 포함한다. 모듈러스 리프레시 장치(10)는 메모리(300)를 더 포함할 수 있다.The
수신기(100)는 수신 인터페이스를 포함할 수 있다. 수신기(100)는 데이터를 수신할 수 있다. 수신기(100)는 플레인텍스트(plaintext) 또는 사이퍼텍스트(ciphertext)를 수신할 수 있다. 사이퍼텍스트는 사이퍼텍스트에 대응하는 모듈러스를 가질 수 있다. 수신기(100)는 수신한 플레인 텍스트 또는 사이퍼텍스트를 프로세서(200)로 출력할 수 있다.The
프로세서(200)는 메모리(300)에 저장된 데이터를 처리할 수 있다. 프로세서(200)는 메모리(300)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(200)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The
"프로세서(200)"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다."
예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.For example, a data processing unit implemented in hardware includes a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , Application-Specific Integrated Circuit (ASIC), and Field Programmable Gate Array (FPGA).
프로세서(200)는 동형 암호를 이용한 암호화에 필요한 모듈러스 리프레시를 수행할 수 있다. 프로세서(200)는 데이터를 암호화함으로써 생성된 제1 모듈러스에 대응하는 제1 사이퍼텍스트를 수신할 수 있다.The
프로세서(200)는 제1 사이퍼텍스트에 블라인드 로테이션(blind rotation) 연산(예: LUT(look up table) 연산)을 수행함으로써 제2 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 제1 모듈러스 및 제1 사이퍼텍스트의 다항식 차수에 기초하여 제1 사이퍼텍스트에 동형 연산에 기반한 전처리를 수행할 수 있다. 프로세서(200)는 제1 모듈러스를 다항식의 차수에 기초하여 변환함으로써 변환된 제1 모듈러스를 계산할 수 있다. 프로세서(200)는 변환된 제1 모듈러스에 기초하여 제1 사이퍼텍스트를 변환함으로써 제3 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 제3 사이퍼텍스트에 플레인텍스트의 개수에 기초한 간격으로 회전 연산(rotation operation)을 수행함으로써 제1 사이퍼텍스트에 전처리를 수행할 수 있다. 회전 연산에 대해서는 도 4를 참조하여 자세하게 설명한다.The
프로세서(200)는 제1 모듈러스를 다항식 차수에 기초하여 변환함으로써 변환된 제1 모듈러스를 계산할 수 있다. 프로세서(200)는 변환된 제1 모듈러스에 기초하여 제1 사이퍼텍스트를 변환함으로써 제3 사이퍼텍스트를 생성할 수 있다.The
프로세서(200)는 변환된 제1 모듈러스, 제3 사이퍼텍스트에 기초하여 제1 사이퍼텍스트에 전처리를 수행할 수 있다. 프로세서(200)는 제1 사이퍼텍스트와 제3 사이퍼텍스트의 차이를 변환된 제1 모듈러스로 나눔으로써 전처리를 수행할 수 있다. The
프로세서(200)는 제1 모듈러스 및 다항식의 차수에 기초하여 제1 사이퍼텍스트를 변환함으로써 변환된 제1 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 변환된 제1 사이퍼텍스트에 기초하여 제1 사이퍼텍스트에 전처리를 수행할 수 있다. 프로세서(200)는 제1 사이퍼텍스트에 다항식의 차수의 두 배를 곱한 값과 변환된 제1 사이퍼텍스트의 차이에 기초하여 전처리를 수행할 수 있다.The
프로세서(200)는 전처리가 수행된 제1 사이퍼텍스트에 블라인드 로테이션 연산을 수행함으로써 제2 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 전처리가 수행된 제1 사이퍼텍스트의 계수에 기초하여 LWE(learning with error) 벡터를 추출할 수 있다. LWE 벡터를 추출하는 과정은 도 3을 참조하여 보다 자세하게 설명한다.The
프로세서(200)는 LWE 벡터에 기초하여 블라인드 로테이션 연산을 수행함으로써 제2 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 제1 사이퍼텍스트를 생성하는데 사용된 비밀키(secret key)에 기초하여 암호 상수를 생성할 수 있다. 프로세서(200)는 암호 상수에 기초하여 블라인드 로테이션 키를 생성할 수 있다. 프로세서(200)는 블라인드 로테이션 키에 기초하여 블라인드 로테이션 연산을 수행함으로써 제2 사이퍼텍스트를 생성할 수 있다.The
프로세서(200)는 제1 사이퍼텍스트의 다항식의 차수에 따라 블라인드 로테이션 키에 대응하는 복수의 블라인드 로테이션 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 복수의 블라인드 로테이션 사이퍼텍스트를 결합함으로써 제2 사이퍼텍스트를 생성할 수 있다. 블라인드 로테이션 연산은 도 3을 참조하여 보다 자세하게 설명한다.The
프로세서(200)는 제1 사이퍼텍스트 및 제2 사이퍼텍스트에 기초하여 제1 모듈러스보다 큰 제2 모듈러스에 대응하는 타겟 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 제1 사이퍼텍스트와 제2 사이퍼텍스트를 더함으로써 타겟 사이퍼텍스트를 생성할 수 있다.The
메모리(300)는 프로세서(200)에 의해 실행가능한 인스트럭션들(또는 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서(200)의 동작 및/또는 프로세서(200)의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.The memory 300 may store instructions (or programs) executable by the
메모리(300)는 휘발성 메모리 장치 또는 비휘발성 메모리 장치로 구현될 수 있다.The memory 300 may be implemented as a volatile memory device or a non-volatile memory device.
휘발성 메모리 장치는 DRAM(dynamic random access memory), SRAM(static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.The volatile memory device may be implemented as dynamic random access memory (DRAM), static random access memory (SRAM), thyristor RAM (T-RAM), zero capacitor RAM (Z-RAM), or twin transistor RAM (TTRAM).
비휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque(STT)-MRAM), Conductive Bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM(RRAM)), 나노 튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM(PoRAM)), 나노 부유 게이트 메모리(Nano Floating Gate Memory(NFGM)), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Electronic Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.Non-volatile memory devices include electrically erasable programmable read-only memory (EEPROM), flash memory, magnetic RAM (MRAM), spin-transfer torque (STT)-MRAM (conductive bridging RAM), and conductive bridging RAM (CBRAM). , FeRAM (Ferroelectric RAM), PRAM (Phase change RAM), Resistive RAM (RRAM), Nanotube RRAM (Polymer RAM (PoRAM)), Nano Floating Gate Memory Memory (NFGM)), holographic memory, molecular electronic memory device (Molecular Electronic Memory Device), or Insulator Resistance Change Memory.
도 2는 도 1에 도시된 모듈러스 리프레시 장치의 모듈러스 리프레시 동작의 흐름도를 나타낸다.FIG. 2 is a flowchart of a modulus refresh operation of the modulus refresh device shown in FIG. 1 .
도 2를 참조하면, 프로세서(200)는 동형 암호를 이용한 암호화 과정에서 요구되는 모듈러스 리프레시를 수행할 수 있다. 프로세서(200)는 모듈러스 리프레시를 수행함으로써 모듈러스가 증가된 암호문을 생성할 수 있다.Referring to FIG. 2 , the
동형 암호의 플레인텍스트 및 사이퍼텍스트는 임의의 정수 q에 대해 계수가 모듈러스(modulus) q 상의 정수인 N차 다항식 형태를 가질 수 있다. N은 1 이상의 정수를 의미할 수 있다. Plaintext and ciphertext of homomorphic encryption can have the form of polynomials of order N where the coefficients are integers on the modulus q for any integer q. N may mean an integer of 1 or more.
동형 연산(homomorphic operation)을 수행할 경우, 사이퍼텍스트의 모듈러스는 작아지기 때문에 반복적인 동형 연산을 수행하기 위해서는 작아진 모듈러스를 큰 값의 모듈러스로 리프레시하는 과정이 필요할 수 있다. When a homomorphic operation is performed, since the modulus of ciphertext decreases, a process of refreshing the reduced modulus to a larger modulus may be required to perform repetitive homomorphic operations.
프로세서(200)는 모듈러스 q 상의 사이퍼텍스트를 입력으로 수신할 수 있다(210). 모듈러스 q 상의 사이퍼텍스트는 도 1에서 설명한 제1 사이퍼텍스트에 대응될 수 있다.The
프로세서(200)는 초기 사이퍼텍스트(예: 제1 사이퍼텍스트)에 전처리를 수행할 수 있다(220). 예를 들어, 프로세서(200)는 제1 모듈러스 및 제1 사이퍼텍스트의 다항식 차수에 기초하여 제1 사이퍼 텍스트에 전처리를 수행할 수 있다. 전처리 과정은 도 3 내지 도 5의 실시예를 참조하여 자세하게 설명한다.The
프로세서(220)는 블라인드 로테이션 연산을 위하여 사이퍼텍스트(예: 제3 사이퍼텍스트)의 전처리를 수행할 수 있다(230). 프로세서(200)는 변환된 제1 모듈러스, 제3 사이퍼텍스트에 기초하여 제1 사이퍼텍스트에 전처리를 수행할 수 있다. 다시 말해, 프로세서(200)는 블라인드 로테이션 연산을 수행하기에 적합한 형태로 제1 사이퍼텍스트를 변형할 수 있다.The
프로세서(200)는 전처리가 수행된 제1 사이퍼텍스트에 블라인드 로테이션 연산(예: 동형 LUT 연산)을 수행할 수 있다(240). 프로세서(200)는 블라인드 로테이션 연산이 수행된 제1 사이퍼텍스트를 결합(또는, 리팩(repack))함으로써 제2 사이퍼텍스트를 생성할 수 있다(250).The
프로세서(200)는 제2 사이퍼텍스트를 이용하여 제1 사이퍼텍스트(또는, 제3 사이퍼텍스트)를 보정할 수 있다(260). 프로세서(200)는 q보다 큰 Q에 대해 모듈러스 Q 상의 사이퍼텍스트를 출력할 수 있다(270).The
도 3은 도 2의 모듈러스 리프레시 동작을 이용한 암호문 생성의 동작의 구현의 일 예를 나타낸다.FIG. 3 shows an example of implementation of an operation of generating ciphertext using the modulus refresh operation of FIG. 2 .
도 3을 참조하면, 프로세서(예: 도 1의 프로세서(200))는 제1 사이퍼텍스트를 수신할 수 있다(311). 프로세서(200)는 제1 사이퍼텍스트 와 계수가 {-1, 0, 1}인 비밀키 에 대해 를 만족하는 제1 사이퍼텍스트에 대한 모듈러스 리프레시를 수행함으로써, 입력 사이퍼텍스트의 모듈러스 q를 출력 사이퍼텍스트의 모듈러스 Q로 증가시킬 수 있다. 이 때, 사이퍼텍스트의 다항식의 차수 N은 2의 거듭제곱으로 를 만족할 수 있다.Referring to FIG. 3 , a processor (eg, the
후술하는 수식에서 볼드(bold)로 표기된 알파벳은 차 다항식을 의미하고, 볼드로 표기되지 않은 알파벳은 정수 또는 실수와 같은 일반적인 숫자를 의미할 수 있다. 은 다항식 간 곱셈 연산을 의미하고, mod는 나머지 연산을 의미하고, 는 가 로 나누어 떨어지는 조건을 의미할 수 있다. 는 다항식의 모든 계수들에 대해 연산의 수행을 의미할 수 있고, 로 표현할 수도 있다.Alphabets marked in bold in the formulas described below are It means a quadratic polynomial, and letters not marked in bold can mean general numbers such as integers or real numbers. means multiplication operation between polynomials, mod means remainder operation, Is go It can mean a condition that is divided by . is for all coefficients of the polynomial It can mean the performance of an operation, can also be expressed as
제1 사이퍼텍스트는 일 수 있고, 복호화 과정은 와 같이 나타낼 수 있다. 복호화 과정은 실수 상에서 와 같이 나타낼 수 있다. 는 비밀키 를 이용한 메시지 을 암호화한 사이퍼텍스트를 의미할 수 있다.The first ciphertext is , and the decryption process is can be expressed as The decoding process is on the real number can be expressed as is the secret key message using It may mean cipher text encrypted.
프로세서(200)는 제1 모듈러스 및 상기 제1 사이퍼텍스트의 다항식 차수에 기초하여 제1 사이퍼텍스트에 전처리를 수행할 수 있다(313). 프로세서(200)는 제1 모듈러스를 변환하여 변환된 제1 모듈러스를 계산할 수 있다. 프로세서(200)는 변환된 제1 모듈러스에 기초하여 제1 사이퍼텍스트를 변환함으로써 제3 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 제1 사이퍼텍스트 에 연산을 수행함으로써 를 획득할 수 있다. 는 실수 상에서 와 같이 나타낼 수 있다.The
프로세서(200)는 변환된 제1 모듈러스, 제3 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 전처리를 수행할 수 있다(315). 프로세서(200)는 제1 사이퍼텍스트와 제3 사이퍼텍스트의 차이를 변환된 제1 모듈러스로 나눔으로써 전처리를 수행할 수 있다. 프로세서(200)는 프로세서(200)는 제1 사이퍼텍스트 로부터 제3 사이퍼텍스트 를 뺀 뒤, 변환된 제1 모듈러스 로 나눔으로써 전처리가 수행된 제1 사이퍼텍스트인 를 획득할 수 있다. 전처리가 수행된 제1 사이퍼텍스트는 실수 상에서 와 같이 나타낼 수 있다.The
프로세서(200)는 블라인드 로테이션 연산의 반복 수행을 위해 루프 인덱스 i에 0을 대입할 수 있다(317). 프로세서(200)는 동작319 부터 동작 325를 반복적으로 수행함으로써 반복적으로 블라인드 로테이션 연산을 수행할 수 있다. 반복 블라인드 로테이션 연산을 위해 프로세서(200)는 i가 N-1보다 작거나 같은지 여부를 판단할 수 있다(319). 프로세서(200)는 i가 N-1보다 작거나 같을 경우 321 동작을 수행하고, i가 N-1보다 클 경우 327 동작을 수행할 수 있다.The
프로세서(200)는 전처리가 수행된 제1 사이퍼텍스트에 블라인드 로테이션 연산을 수행함으로써 제2 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 전처리가 수행된 제1 사이퍼텍스트의 계수에 기초하여 LWE 벡터를 추출할 수 있다(321). 는 다항식 와 를 이용하여 LWE 벡터를 의 형태로 추출하는 함수를 의미할 수 있다.The
는 모듈러스 2N 상에서 을 만족할 수 있다. 여기서, 의 각 계수들은 다항식 및 의 계수들로 표현될 수 있다. 를 비밀키 의 계수 벡터라고 할 때, 프로세서(200)는 로부터 추출된 계수들을 와 같이 정의할 수 있다. 이 때, 에 대하여 이 만족될 수 있다. is on the modulus 2N can be satisfied. here, Each coefficient of is a polynomial and can be expressed as coefficients of the secret key When the coefficient vector of , the
프로세서(200)는 LWE 벡터에 기초하여 블라인드 로테이션 연산을 수행할 수 있다(323). The
프로세서(200)는 전처리가 수행된 제1 사이퍼텍스트 에 대하여 함수 를 이용한 연산을 수행하여 제2 사이퍼텍스트 를 생성할 수 있다. 제2 사이퍼텍스트 는 를 만족할 수 있다. 는 함수 f와 비밀키 s에 대한 블라인드 로테이션 연산을 수행하는 동작을 의미할 수 있다.The
프로세서(200)는 블라인드 로테이션 키를 생성할 수 있다. 프로세서(200)는 제1 사이퍼텍스트를 생성하는데 사용된 비밀키에 기초하여 암호 상수를 생성할 수 있다.
프로세서(200)는 비밀키 의 각 계수인 에 대하여 암호 상수 및 를 후술하는 조건에 따라 생성할 수 있다. 프로세서(200)는 인 경우, , 와 같이 암호 상수를 생성할 수 있다. 프로세서(200)는 인 경우, , 와 같이 암호 상수를 생성할 수 있다. 프로세서(200)는 인 경우, 와 같이 암호 상수를 생성할 수 있다.The
프로세서(200)는 암호 상수에 기초하여 블라인드 로테이션 키를 생성하고, 블라인드 로테이션 키에 기초하여 블라인드 로테이션 연산을 수행할 수 있다. 예를 들어, 프로세서(200)는 , 를 상수항으로 하는 다항식에 대한 RGSW(ring Gentry, Sahai, Waters) 사이퍼텍스트를 생성하여 블라인드 로테이션 키로 사용할 수 있다. RGSW 사이퍼텍스트로 이루어진 블라인드 로테이션 키는 와 같이 나타낼 수 있다.The
프로세서(200)는 RLWE(ring learning with error) 사이퍼텍스트를 이용하여 RGSW 사이퍼텍스트를 생성할 수 있다. 비밀키 에 대한 메시지 의 RLWE 사이퍼텍스트는 와 같이 정의될 수 있다. 여기서, 는 계수가 모듈러스 q 상의 다항식이고, 는 계수가 작은 오차 다항식을 의미할 수 있다. 프로세서(200)는 매 암호화시에 및 를 무작위로 생성할 수 있다.The
프로세서(200)는 에 대한 메시지 의 RLWE' 사이퍼텍스트를 와 같이 정의할 수 있다. 여기서, 는 임의의 정수를 분할(decomposition)하기 위해 사전에 정의된 벡터를 의미할 수 있고, 임의의 정수 에 대해 의 형태를 가지거나 에 대하여 로 설정될 수 있다. 최종적으로, 프로세서(200)는 비밀키 에 대한 메시지 의 RGSW 사이퍼텍스트를 와 같이 정의할 수 있다.
프로세서(200)는 각 계수 에 대하여 를 이용하여 블라인드 로테이션 연산을 수행할 수 있다. 프로세서(200)는 함수 를 와 같이 정의하고, 로 초기화를 수행할 수 있다. 프로세서(200)는 모든 에 대하여 를 반복적으로 수행함으로써 에 대한 사이퍼텍스트 를 획득할 수 있다.
프로세서(200)는 루프 인덱스 i에 1을 더할 수 있다(325).The
프로세서(200)는 블라인드 로테이션 연산이 수행된 제1 사이퍼텍스트를 결합 또는 리팩함으로써 제2 사이퍼텍스트를 생성할 수 있다(327). 는 복수의 사이퍼텍스트 다항식을 하나의 다항식으로 결합하는 동작을 의미할 수 있다. 프로세서(200)는 블라인드 로테이션 연산을 N 번 반복하여 에 대한 사이퍼텍스트들을 획득한 후, 획득한 사이퍼텍스트들을 에 대한 제2 사이퍼텍스트 로 결합할 수 있다.The
프로세서(200)는 제2 사이퍼텍스트를 이용하여 제1 사이퍼텍스트를 보정함으로써 타겟 사이퍼텍스트를 생성할 수 있다(329). 예를 들어, 프로세서(200)는 과 타겟 사이퍼텍스트 를 획득할 수 있다. 는 와 같이 나타낼 수 있다.The
프로세서(200)는 메시지 에 대하여 모듈러스가 Q로 증가된 타겟 사이퍼텍스트를 출력할 수 있다(331).
도 4는 도 2의 모듈러스 리프레시 동작을 이용한 암호문 생성의 동작의 구현의 다른 예를 나타낸다.FIG. 4 shows another example of implementing an operation of generating ciphertext using the modulus refresh operation of FIG. 2 .
도 4를 참조하면, 프로세서(예: 도 1의 프로세서(200))는 제1 사이퍼텍스트를 수신할 수 있다(411). 프로세서(200)는 제1 모듈러스를 다항식의 차수에 기초하여 변환함으로써 변환된 제1 모듈러스를 계산할 수 있다. 프로세서(200) 변환된 제1 모듈러스에 기초하여 제1 사이퍼텍스트로 변환함으로써 제3 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 제3 사이퍼텍스트에 플레인텍스트의 개수에 기초한 간격으로 회전 연산을 수행할 수 있다(415).이하에서, 회전 연산 과정을 구체적으로 설명한다.Referring to FIG. 4 , a processor (eg, the
동형 암호에서 형태의 최대N/2 개의 메시지가 다항식에 와 같은 형태로 인코딩(encoding)되어 암호화될 수 있다. 메시지의 수 n이 N/2보다 작은 경우, 전체 공간 N/2 중에서 일부 공간만 사용되므로, 희소 인코딩(sparse encoding)으로 지칭될 수 있고, 희소 인코딩의 경우 다항식은 in homomorphic encryption At most N/2 messages of the form polynomial It can be encoded and encrypted in the same form. If the number of messages n is less than N/2, only a part of the space N/2 is used, so it can be referred to as sparse encoding, and in the case of sparse encoding, the polynomial is
메시지 수 이 보다 작은 경우, 전체 공간 중 일부 공간만 사용하게 되므로 Sparse Encoding이라 부르며, 다항식은 와 같이 일부 계수가 0으로 구성될 수 있다. 이 경우, 프로세서(200)는 를 구성하는 계수 중 0이 아닌 에 대해서만 블라인드 로테이션 연산을 수행함으로써 연산량을 감소시킬 수 있다.number of messages this less than, the total space Since only a part of the space is used, it is called sparse encoding, and the polynomial is Some coefficients may consist of zeros, such as In this case, the
프로세서(200)는 희소 인코딩된 사이퍼텍스트에 대한 모듈러스 리프레시를 수행하기 위해서 메시지 m에 대한 모듈러스 q 상의 사이퍼텍스트(예: 제1 사이퍼 텍스트)를 입력으로 받아, 최종적으로 메시지 m에 대한 모듈러스 Q 상의 사이퍼텍스트(예: 타겟 사이퍼텍스트)를 출력할 수 있다.In order to perform modulus refresh on sparse encoded ciphertext, the
프로세서(200)는 희소 인코딩된 사이퍼텍스트를 처리하기 위해 전처리 과정을 변형하여 수행할 수 있다. 프로세서(200)는 사이퍼텍스트 에 간격만큼 회전 연산 를 순차적으로 수행하여 를 획득할 수 있다. 는 와 같이 나타낼 수 있다. 또한, 는 와 같이 구성될 수 있다.The
프로세서(200)는 도 3의 실시예에서 블라인드 로테이션 연산 과정에서 모든 계수 에 대해서 블라인드 로테이션 연산을 수행한 것과는 달리, 0이 아닌 계수 에 대해서만 블라인드 로테이션 연산을 수행함으로써 2n 개의 사이퍼텍스트를 획득하고, 획득한 2n 개의 사이퍼텍스트들을 결합함으로써 제2 사이퍼텍스트를 생성할 수 있다. 메시지의 수가 N/2 개인 풀 인코딩(full encoding)인 경우, 프로세서(200)는 N 번의 블라인드 로테이션 연산 및 N 개의 사이퍼텍스트의 결합을 수행하지만, 희소 인코딩의 경우, 프로세서(200)는 2n 번의 블라인드 로테이션 연산 및 2n 개의 암호문 결합으로 연산을 효율적으로 수행할 수 있다.The
프로세서(200)는 변환된 제1 모듈러스, 제3 사이퍼텍스트에 기초하여 제1 사이퍼텍스트에 전처리를 수행할 수 있다(417). 417 동작은 도 3의 315 동작과 동일할 수 있다.The
프로세서(200)는 블라인드 로테이션 연산의 반복 수행을 위해 루프 인덱스 i에 0을 대입할 수 있다(419). 프로세서(200)는 동작421 부터 동작 427을 반복적으로 수행함으로써 반복적으로 블라인드 로테이션 연산을 수행할 수 있다. 반복 블라인드 로테이션 연산을 위해 프로세서(200)는 i가 2N-1보다 작거나 같은지 여부를 판단할 수 있다(421). 프로세서(200)는 i가 2n-1보다 작거나 같을 경우 423 동작을 수행하고, i가 2n-1보다 클 경우 429 동작을 수행할 수 있다.The
프로세서(200)는 전처리가 수행된 제1 사이퍼텍스트에 블라인드 로테이션 연산을 수행함으로써 제2 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 전처리가 수행된 제1 사이퍼텍스트의 계수에 기초하여 LWE 벡터를 추출할 수 있다(423). 423 동작은 도 3의 321 동작과 동일할 수 있다.The
프로세서(200)는 LWE 벡터에 기초하여 블라인드 로테이션 연산을 수행할 수 있다(425). 425 동작은 도 3의 323 동작과 동일할 수 있다. 프로세서(200)는 루프 인덱스 i에 1을 더할 수 있다(427).The
프로세서(200)는 블라인드 로테이션 연산이 수행된 제1 사이퍼텍스트를 결합 또는 리팩함으로써 제2 사이퍼텍스트를 생성할 수 있다(429). 429 동작은 도 3의 327 동작과 동일할 수 있다.The
프로세서(200)는 제2 사이퍼텍스트를 이용하여 제1 사이퍼텍스트를 보정함으로써 타겟 사이퍼텍스트를 생성할 수 있다(431). 프로세서(200)는 메시지 에 대하여 모듈러스가 Q로 증가된 타겟 사이퍼텍스트를 출력할 수 있다(433). 431 동작은 도 3의 329 동작과 동일하고, 433 동작은 도 3의 331 동작과 동일할 수 있다.The
도 5는 도 2의 모듈러스 리프레시 동작을 이용한 암호문 생성의 동작의 구현의 또 다른 예를 나타낸다.FIG. 5 shows another example of implementing an operation of generating ciphertext using the modulus refresh operation of FIG. 2 .
도 5를 참조하면, 프로세서(예: 도 1의 프로세서(200))는 제1 사이퍼텍스트를 생성할 수 있다(511). 프로세서(200)는 제1 모듈러스 및 제1 사이퍼텍스트의 다항식 차수에 기초하여 제1 사이퍼텍스트에 전처리를 수행할 수 있다. Referring to FIG. 5 , a processor (eg, the
프로세서(200)는 제1 모듈러스 및 다항식의 차수에 기초하여 제1 사이퍼텍스트를 변환함으로써 변환된 제1 사이퍼텍스트에 전처리를 수행할 수 있다. 프로세서(200)는 변환된 제1 사이퍼텍스트에 기초하여 제1 사이퍼텍스트에 전처리를 수행할 수 있다. 프로세서(200)는 제1 사이퍼텍스트에 다항식의 차수의 두 배를 곱한 값과 변환된 제1 사이퍼텍스트의 차이에 기초하여 전처리를 수행할 수 있다.The
프로세서(200)는 를 만족하지 않는 레지듀 넘버 시스템(residue number system(RNS) 구조를 처리하기 위해 전처리 과정을 변형하여 수행할 수 있다. 프로세서(200)는 제1 사이퍼텍스트를 변환하여 제3 사이퍼텍스트를 생성할 수 있다(513). 프로세서(200)는 제1 사이퍼텍스트, 제3 사이퍼텍스트 및 다항식의 차수에 기초하여 전처리를 수행함으로써 전처리가 수행된 제1 사이퍼텍스트를 수행할 수 있다(515). 이하에서, 변형된 전처리 과정을 설명한다.
동형 암호의 사이퍼텍스트는 임의의 작은 소수 들의 곱인 에 대한 모듈러스 상의 사이퍼텍스트로 표현될 수 있다. 이 경우, 프로세서(200)는 각각의 에 대한 모듈러스 상의 사이퍼텍스트로 Q에 대응하는 사이퍼텍스트를 분할할 수 있다. 이러한 구조는 상술한 레지듀 넘버 시스템으로 지칭되고, 를 만족하지 않기 때문에, 레지듀 넘버 시스템을 처리하기 위해서 프로세서(200)는 전처리 과정을 변형할 수 있다.The ciphertext of a homomorphic cipher is an arbitrary small prime number. product of It can be expressed in ciphertext on the modulus for . In this case, the
프로세서(200)는 제1 사이퍼텍스트 에 2N을 곱한 뒤 모듈러스 q'연산을 수행하여 를 획득할 수 있다. 변환된 사이퍼텍스트 는 실수 상에서 와 같이 나타낼 수 있다.The
프로세서(200)는 사이퍼텍스트 로부터 를 뺀 뒤, q로 나누어 를 획득할 수 있다. 전처리가 수행된 사이퍼텍스트 는 실수 상에서 와 같이 나타낼 수 있다.The
프로세서(200)는 블라인드 로테이션 연산의 반복 수행을 위해 루프 인덱스 i에 0을 대입할 수 있다(517). 프로세서(200)는 동작519 부터 동작 527을 반복적으로 수행함으로써 반복적으로 블라인드 로테이션 연산을 수행할 수 있다. 반복 블라인드 로테이션 연산을 위해 프로세서(200)는 i가 N-1보다 작거나 같은지 여부를 판단할 수 있다(519). 프로세서(200)는 i가 N-1보다 작거나 같을 경우 521 동작을 수행하고, i가 N-1보다 클 경우 527 동작을 수행할 수 있다.The
프로세서(200)는 전처리가 수행된 제1 사이퍼텍스트에 블라인드 로테이션 연산을 수행함으로써 제2 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 전처리가 수행된 제1 사이퍼텍스트의 계수에 기초하여 LWE 벡터를 추출할 수 있다(521). 521 동작은 도 3의 321 동작과 동일할 수 있다.The
프로세서(200)는 LWE 벡터에 기초하여 블라인드 로테이션 연산을 수행할 수 있다(523). 523 동작은 도 3의 323 동작과 동일할 수 있다. 프로세서(200)는 루프 인덱스 i에 1을 더할 수 있다(525).The
프로세서(200)는 블라인드 로테이션 연산이 수행된 제1 사이퍼텍스트를 결합 또는 리팩함으로써 제2 사이퍼텍스트를 생성할 수 있다(527). 527 동작은 도 3의 327 동작과 동일할 수 있다.The
프로세서(200)는 제2 사이퍼텍스트를 이용하여 제1 사이퍼텍스트를 보정함으로써 타겟 사이퍼텍스트를 생성할 수 있다(529). 프로세서(200)는 메시지 에 대하여 모듈러스가 Q로 증가된 타겟 사이퍼텍스트를 출력할 수 있다(531). 529 동작은 도 3의 329 동작과 동일하고, 531 동작은 도 3의 331 동작과 동일할 수 있다.The
도 6은 도 1에 도시된 모듈러스 리프레시 장치의 동작의 흐름도를 나타낸다.FIG. 6 is a flowchart of an operation of the modulus refresh device shown in FIG. 1 .
도 6을 참조하면, 수신기(예: 도 1의 수신기(100))는 제1 모듈러스에 대응하는 제1 사이퍼텍스트를 수신할 수 있다(610). 수신기(100)는 수신한 제1 사이퍼텍스트를 프로세서(예: 도 1의 프로세서(200))로 출력할 수 있다.Referring to FIG. 6 , a receiver (eg, the
프로세서(200)는 동형 암호연산을 위한 모듈러스 리프레시를 수행할 수 있다.The
프로세서(200)는 제1 사이퍼텍스트에 블라인드 로테이션 연산을 수행함으로써 제2 사이퍼텍스트를 생성할 수 있다(630). 프로세서(200)는 제1 모듈러스 및 제1 사이퍼텍스트의 다항식 차수에 기초하여 제1 사이퍼텍스트에 동형 연산에 기반한 전처리를 수행할 수 있다. 예를 들어, 프로세서(200)는 제1 사이퍼텍스트에 다항식의 차수에 기초한 간격으로 회전 연산(rotation operation)을 수행함으로써 제1 사이퍼텍스트에 전처리를 수행할 수 있다.The
프로세서(200)는 제1 모듈러스를 다항식 차수에 기초하여 변환함으로써 변환된 제1 모듈러스를 계산할 수 있다. 프로세서(200)는 변환된 제1 모듈러스에 기초하여 제1 사이퍼텍스트를 변환함으로써 제3 사이퍼텍스트를 생성할 수 있다.The
프로세서(200)는 변환된 제1 모듈러스, 제3 사이퍼텍스트에 기초하여 제1 사이퍼텍스트에 전처리를 수행할 수 있다. 프로세서(200)는 제1 사이퍼텍스트와 제3 사이퍼텍스트의 차이를 변환된 제1 모듈러스로 나눔으로써 전처리를 수행할 수 있다.The
프로세서(200)는 제1 모듈러스를 다항식의 차수에 기초하여 변환함으로써 변환된 제1 모듈러스를 계산하고, 변환된 제1 모듈러스에 기초하여 제1 사이퍼텍스트를 변환함으로써 제3 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 제3 사이퍼텍스트에 플레인텍스트의 개수에 기초한 간격으로 회전 연산을 수행함으로써 제1 사이퍼텍스트에 전처리를 수행할 수 있다.The
또는, 프로세서(200)는 제1 모듈러스 및 다항식의 차수에 기초하여 제1 사이퍼텍스트를 변환함으로써 변환된 제1 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 변환된 제1 사이퍼텍스트에 기초하여 제1 사이퍼텍스트에 전처리를 수행할 수 있다. 프로세서(200)는 제1 사이퍼텍스트에 다항식의 차수의 두 배를 곱한 값과 변환된 제1 사이퍼텍스트의 차이에 기초하여 전처리를 수행할 수 있다.Alternatively, the
프로세서(200)는 전처리가 수행된 제1 사이퍼텍스트에 블라인드 로테이션 연산을 수행함으로써 제2 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 전처리가 수행된 제1 사이퍼텍스트의 계수에 기초하여 LWE 벡터를 추출할 수 있다.The
프로세서(200)는 LWE 벡터에 기초하여 블라인드 로테이션 연산을 수행함으로써 제2 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 제1 사이퍼텍스트를 생성하는데 사용된 비밀키(secret key)에 기초하여 암호 상수를 생성할 수 있다. 프로세서(200)는 암호 상수에 기초하여 블라인드 로테이션 키를 생성할 수 있다. 프로세서(200)는 블라인드 로테이션 키에 기초하여 블라인드 로테이션 연산을 수행함으로써 제2 사이퍼텍스트를 생성할 수 있다.The
프로세서(200)는 제1 사이퍼텍스트의 다항식의 차수에 따라 블라인드 로테이션 키에 대응하는 복수의 블라인드 로테이션 사이퍼텍스트를 생성할 수 있다. 프로세서(200)는 복수의 블라인드 로테이션 사이퍼텍스트를 결합함으로써 제2 사이퍼텍스트를 생성할 수 있다.The
프로세서(200)는 제1 사이퍼텍스트 및 제2 사이퍼텍스트에 기초하여 제1 모듈러스보다 큰 제2 모듈러스에 대응하는 타겟 사이퍼텍스트를 생성할 수 있다(650). 프로세서(200)는 제1 사이퍼텍스트와 제2 사이퍼텍스트를 더함으로써 타겟 사이퍼텍스트를 생성할 수 있다.The
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. The device can be commanded. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited drawings, those skilled in the art can apply various technical modifications and variations based on the above. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.
Claims (22)
제1 모듈러스에 대응하는 제1 사이퍼텍스트를 수신하는 단계;
상기 제1 사이퍼텍스트에 블라인드 로테이션(blind rotation) 연산을 수행함으로써 제2 사이퍼텍스트를 생성하는 단계; 및
상기 제1 사이퍼텍스트 및 상기 제2 사이퍼텍스트에 기초하여 상기 제1 모듈러스보다 큰 제2 모듈러스에 대응하는 타겟 사이퍼텍스트를 생성하는 단계
를 포함하는 모듈러스 리프레시 방법.
In the modulus refresh method of ciphertext in homomorphic encryption that handles integers and real numbers,
receiving a first ciphertext corresponding to a first modulus;
generating a second ciphertext by performing a blind rotation operation on the first ciphertext; and
generating a target ciphertext corresponding to a second modulus greater than the first modulus based on the first ciphertext and the second ciphertext;
Modulus refresh method comprising a.
상기 제2 사이퍼텍스트를 생성하는 단계는,
상기 제1 모듈러스 및 상기 제1 사이퍼텍스트의 다항식 차수에 기초하여 상기 제1 사이퍼텍스트에 동형 연산에 기반한 전처리를 수행하는 단계; 및
전처리가 수행된 제1 사이퍼텍스트에 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는 단계
를 포함하는 모듈러스 리프레시 방법.
According to claim 1,
The step of generating the second ciphertext,
performing isomorphic operation-based preprocessing on the first ciphertext based on the first modulus and a polynomial degree of the first ciphertext; and
generating the second ciphertext by performing the blind rotation operation on the preprocessed first ciphertext;
Modulus refresh method comprising a.
상기 제1 모듈러스 및 상기 제1 사이퍼텍스트의 다항식 차수에 기초하여 상기 제1 사이퍼텍스트에 동형 연산에 기반한 전처리를 수행하는 단계는,
상기 제1 모듈러스를 상기 다항식 차수에 기초하여 변환함으로써 변환된 제1 모듈러스를 계산하는 단계;
상기 변환된 제1 모듈러스에 기초하여 상기 제1 사이퍼텍스트를 변환함으로써 제3 사이퍼텍스트를 생성하는 단계; 및
상기 변환된 제1 모듈러스, 상기 제3 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 전처리를 수행하는 단계
를 포함하는 모듈러스 리프레시 방법.
According to claim 2,
Performing isomorphic operation-based preprocessing on the first ciphertext based on the first modulus and the polynomial order of the first ciphertext,
calculating a transformed first modulus by transforming the first modulus based on the polynomial order;
generating a third ciphertext by converting the first ciphertext based on the converted first modulus; and
Performing pre-processing on the first ciphertext based on the converted first modulus and the third ciphertext.
Modulus refresh method comprising a.
상기 변환된 제1 모듈러스, 상기 제3 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 전처리를 수행하는 단계는,
상기 제1 사이퍼텍스트와 상기 제3 사이퍼텍스트의 차이를 상기 변환된 제1 모듈러스로 나눔으로써 상기 전처리를 수행하는 단계
를 포함하는 암호화 방법.
According to claim 3,
Performing pre-processing on the first ciphertext based on the converted first modulus and the third ciphertext,
Performing the preprocessing by dividing the difference between the first ciphertext and the third ciphertext by the converted first modulus.
Encryption method including.
상기 동형 연산에 기반한 전처리가 수행된 제1 사이퍼텍스트에 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는 단계는,
상기 동형 연산에 기반한 전처리가 수행된 제1 사이퍼텍스트의 계수에 기초하여 LWE(learning with error) 벡터를 추출하는 단계; 및
상기 LWE 벡터에 기초하여 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는 단계
를 포함하는 모듈러스 리프레시 방법.
According to claim 2,
Generating the second ciphertext by performing the blind rotation operation on the first ciphertext preprocessed based on the isomorphic operation,
extracting a learning with error (LWE) vector based on coefficients of the first ciphertext on which the preprocessing based on the isomorphic operation is performed; and
Generating the second ciphertext by performing the blind rotation operation based on the LWE vector.
Modulus refresh method comprising a.
상기 LWE 벡터에 기초하여 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는 단계는,
상기 제1 사이퍼텍스트를 생성하는데 사용된 비밀키(secret key)에 기초하여 암호 상수를 생성하는 단계;
상기 암호 상수에 기초하여 블라인드 로테이션 키를 생성하는 단계; 및
상기 블라인드 로테이션 키에 기초하여 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는 단계
를 포함하는 모듈러스 리프레시 방법.
According to claim 5,
Generating the second ciphertext by performing the blind rotation operation based on the LWE vector,
generating a cryptographic constant based on a secret key used to generate the first ciphertext;
generating a blind rotation key based on the cryptographic constant; and
Generating the second ciphertext by performing the blind rotation operation based on the blind rotation key.
Modulus refresh method comprising a.
상기 블라인드 로테이션 키에 기초하여 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는 단계는,
상기 제1 사이퍼텍스트의 다항식의 차수에 따라 블라인드 로테이션 키에 대응하는 복수의 블라인드 로테이션 사이퍼텍스트를 생성하는 단계; 및
상기 복수의 블라인드 로테이션 사이퍼텍스트를 결합함으로써 상기 제2 사이퍼텍스트를 생성하는 단계
를 포함하는 모듈러스 리프레시 방법.
According to claim 6,
Generating the second ciphertext by performing the blind rotation operation based on the blind rotation key,
generating a plurality of blind rotation ciphertexts corresponding to a blind rotation key according to a degree of a polynomial of the first ciphertext; and
generating the second ciphertext by combining the plurality of blind rotation ciphertexts;
Modulus refresh method comprising a.
상기 제1 모듈러스 및 상기 제1 사이퍼텍스트의 다항식 차수에 기초하여 상기 제1 사이퍼텍스트에 동형 연산에 기반한 전처리를 수행하는 단계는,
상기 제1 모듈러스를 상기 다항식의 차수에 기초하여 변환함으로써 변환된 제1 모듈러스를 계산하는 단계;
상기 변환된 제1 모듈러스에 기초하여 상기 제1 사이퍼텍스트를 변환함으로써 제3 사이퍼텍스트를 생성하는 단계; 및
상기 제3 사이퍼텍스트에 플레인텍스트의 개수에 기초한 간격으로 회전 연산(rotation operation)을 수행함으로써 상기 제1 사이퍼텍스트에 전처리를 수행하는 단계
를 포함하는 모듈러스 리프레시 방법.
According to claim 2,
Performing isomorphic operation-based preprocessing on the first ciphertext based on the first modulus and the polynomial order of the first ciphertext,
calculating a transformed first modulus by transforming the first modulus based on an order of the polynomial;
generating a third ciphertext by converting the first ciphertext based on the converted first modulus; and
performing pre-processing on the first ciphertext by performing a rotation operation on the third ciphertext at intervals based on the number of plaintexts;
Modulus refresh method comprising a.
상기 제1 모듈러스, 상기 제1 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 동형 연산에 기반한 전처리를 수행하는 단계는,
상기 제1 모듈러스 및 상기 다항식의 차수에 기초하여 상기 제1 사이퍼텍스트를 변환함으로써 변환된 제1 사이퍼텍스트를 생성하는 단계; 및
상기 변환된 제1 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 전처리를 수행하는 단계
를 포함하는 모듈러스 리프레시 방법.
According to claim 2,
The step of performing preprocessing based on isomorphic operation on the first ciphertext based on the first modulus and the first ciphertext,
generating a transformed first ciphertext by transforming the first ciphertext based on the first modulus and the degree of the polynomial; and
Performing preprocessing on the first ciphertext based on the converted first ciphertext.
Modulus refresh method comprising a.
상기 변환된 제1 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 전처리를 수행하는 단계는,
상기 제1 사이퍼텍스트에 상기 다항식의 차수의 두 배를 곱한 값과 상기 변환된 제1 사이퍼텍스트의 차이에 기초하여 상기 전처리를 수행하는 단계
를 포함하는 모듈러스 리프레시 방법.
According to claim 9,
Performing pre-processing on the first ciphertext based on the converted first ciphertext,
Performing the preprocessing based on a difference between a value obtained by multiplying the first ciphertext by twice the degree of the polynomial and the converted first ciphertext.
Modulus refresh method comprising a.
상기 타겟 사이퍼텍스트를 생성하는 단계는,
상기 제1 사이퍼텍스트와 상기 제2 사이퍼텍스트를 더함으로써 상기 타겟 사이퍼텍스트를 생성하는 단계
를 포함하는 모듈러스 리프레시 방법.
According to claim 1,
The step of generating the target ciphertext,
generating the target ciphertext by adding the first ciphertext and the second ciphertext;
Modulus refresh method comprising a.
제1 모듈러스에 대응하는 제1 사이퍼텍스트를 수신하는 수신기; 및
상기 제1 사이퍼텍스트에 블라인드 로테이션 연산을 수행함으로써 제2 사이퍼텍스트를 생성하고,
상기 제1 사이퍼텍스트 및 상기 제2 사이퍼텍스트에 기초하여 상기 제1 모듈러스보다 큰 제2 모듈러스에 대응하는 타겟 사이퍼텍스트를 생성하는 프로세서
를 포함하는 모듈러스 리프레시 장치.
In a ciphertext modulus refresh device in homomorphic encryption that handles integers and real numbers,
a receiver receiving a first ciphertext corresponding to a first modulus; and
Generating a second ciphertext by performing a blind rotation operation on the first ciphertext;
A processor for generating a target ciphertext corresponding to a second modulus greater than the first modulus based on the first ciphertext and the second ciphertext.
A modulus refresh device comprising a.
상기 프로세서는,
상기 제1 모듈러스 및 상기 제1 사이퍼텍스트의 다항식 차수에 기초하여 상기 제1 사이퍼텍스트에 동형 연산에 기반한 전처리를 수행하고,
전처리가 수행된 제1 사이퍼텍스트에 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는
모듈러스 리프레시 장치.
According to claim 12,
the processor,
performing preprocessing based on isomorphic operation on the first ciphertext based on the first modulus and a polynomial order of the first ciphertext;
Generating the second ciphertext by performing the blind rotation operation on the preprocessed first ciphertext
Modulus refresh device.
상기 프로세서는,
상기 제1 모듈러스를 상기 다항식 차수에 기초하여 변환함으로써 변환된 제1 모듈러스를 계산하고,
상기 변환된 제1 모듈러스에 기초하여 상기 제1 사이퍼텍스트를 변환함으로써 제3 사이퍼텍스트를 생성하고,
상기 변환된 제1 모듈러스, 상기 제3 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 전처리를 수행하는
모듈러스 리프레시 장치.
According to claim 13,
the processor,
Calculate a transformed first modulus by transforming the first modulus based on the polynomial order;
generating third ciphertext by converting the first ciphertext based on the converted first modulus;
Performing preprocessing on the first ciphertext based on the converted first modulus and the third ciphertext
Modulus refresh device.
상기 프로세서는,
상기 제1 사이퍼텍스트와 상기 제3 사이퍼텍스트의 차이를 상기 변환된 제1 모듈러스로 나눔으로써 상기 전처리를 수행하는
모듈러스 리프레시 장치.
According to claim 14,
the processor,
Performing the preprocessing by dividing the difference between the first ciphertext and the third ciphertext by the converted first modulus.
Modulus refresh device.
상기 프로세서는,
상기 동형 연산에 기반한 전처리가 수행된 제1 사이퍼텍스트의 계수에 기초하여 LWE(Learning With Error) 벡터를 추출하고,
상기 LWE 벡터에 기초하여 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는
모듈러스 리프레시 장치.
According to claim 13,
the processor,
Extracting a Learning With Error (LWE) vector based on the coefficients of the first ciphertext on which the preprocessing based on the isomorphic operation is performed;
Generating the second ciphertext by performing the blind rotation operation based on the LWE vector
Modulus refresh device.
상기 프로세서는,
상기 제1 사이퍼텍스트를 생성하는데 사용된 비밀키(secret key)에 기초하여 암호 상수를 생성하고,
상기 암호 상수에 기초하여 블라인드 로테이션 키를 생성하고,
상기 블라인드 로테이션 키에 기초하여 상기 블라인드 로테이션 연산을 수행함으로써 상기 제2 사이퍼텍스트를 생성하는
모듈러스 리프레시 장치.
According to claim 16,
the processor,
generating an encryption constant based on a secret key used to generate the first ciphertext;
generating a blind rotation key based on the cryptographic constant;
Generating the second ciphertext by performing the blind rotation operation based on the blind rotation key.
Modulus refresh device.
상기 프로세서는,
상기 제1 사이퍼텍스트의 다항식의 차수에 따라 블라인드 로테이션 키에 대응하는 복수의 블라인드 로테이션 사이퍼텍스트를 생성하고,
상기 복수의 블라인드 로테이션 사이퍼텍스트를 결합함으로써 상기 제2 사이퍼텍스트를 생성하는
모듈러스 리프레시 장치.
According to claim 17,
the processor,
generating a plurality of blind rotation ciphertexts corresponding to blind rotation keys according to the order of the polynomial of the first ciphertext;
Generating the second ciphertext by combining the plurality of blind rotation ciphertexts.
Modulus refresh device.
상기 프로세서는,
상기 제1 모듈러스를 상기 다항식의 차수에 기초하여 변환함으로써 변환된 제1 모듈러스를 계산하고,
상기 변환된 제1 모듈러스에 기초하여 상기 제1 사이퍼텍스트를 변환함으로써 제3 사이퍼텍스트를 생성하고,
상기 제3 사이퍼텍스트에 플레인텍스트의 개수에 기초한 간격으로 회전 연산(rotation operation)을 수행함으로써 상기 제1 사이퍼텍스트에 전처리를 수행하는
모듈러스 리프레시 장치.
According to claim 13,
the processor,
Calculating a transformed first modulus by transforming the first modulus based on the degree of the polynomial;
generating third ciphertext by converting the first ciphertext based on the converted first modulus;
Performing pre-processing on the first ciphertext by performing a rotation operation on the third ciphertext at intervals based on the number of plaintexts.
Modulus refresh device.
상기 프로세서는,
상기 제1 모듈러스 및 상기 다항식의 차수에 기초하여 상기 제1 사이퍼텍스트를 변환함으로써 변환된 제1 사이퍼텍스트를 생성하고,
상기 변환된 제1 사이퍼텍스트에 기초하여 상기 제1 사이퍼텍스트에 전처리를 수행하는모듈러스 리프레시 장치.
According to claim 13,
the processor,
Transforming the first ciphertext based on the first modulus and the degree of the polynomial to generate a transformed first ciphertext;
A modulus refresh device performing pre-processing on the first ciphertext based on the converted first ciphertext.
상기 프로세서는,
상기 제1 사이퍼텍스트에 상기 다항식의 차수의 두배를 곱한 값과 상기 변환된 제1 사이퍼텍스트의 차이에 기초하여 상기 전처리를 수행하는
모듈러스 리프레시 장치.
According to claim 20,
the processor,
Performing the preprocessing based on a difference between a value obtained by multiplying the first ciphertext by twice the order of the polynomial and the converted first ciphertext.
Modulus refresh device.
상기 프로세서는,
상기 제1 사이퍼텍스트와 상기 제2 사이퍼텍스트를 더함으로써 상기 타겟 사이퍼텍스트를 생성하는
모듈러스 리프레시 장치.According to claim 12,
the processor,
Generating the target ciphertext by adding the first ciphertext and the second ciphertext
Modulus refresh device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/678,596 US11722290B2 (en) | 2021-05-21 | 2022-02-23 | Method and apparatus for modulus refresh in homomorphic encryption |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210065429 | 2021-05-21 | ||
KR1020210065429 | 2021-05-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220157843A true KR20220157843A (en) | 2022-11-29 |
Family
ID=84234903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210112965A KR20220157843A (en) | 2021-05-21 | 2021-08-26 | Method and apparatus of modulus refresh in homomorhpic encryption |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20220157843A (en) |
-
2021
- 2021-08-26 KR KR1020210112965A patent/KR20220157843A/en active Search and Examination
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107147484B (en) | Floating point number fully homomorphic encryption method facing privacy protection | |
CA2723319C (en) | A closed galois field cryptographic system | |
US20150312028A1 (en) | Homomorphic encryption and decryption methods using ring isomorphism, and apparatuses using the same | |
Banegas et al. | DAGS: Key encapsulation using dyadic GS codes | |
JP6386198B1 (en) | Encryption device and decryption device | |
EP3661115B1 (en) | Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program | |
JP6915375B2 (en) | Polynomial-based homomorphic encryption | |
US10516534B2 (en) | Cryptographic system and key generation apparatus | |
KR20140095179A (en) | Homomorphic Encryption and Decryption Method using Ring Isomorphism and apparatus using the same | |
KR20200087061A (en) | Apparatus for processing approximate encripted messages and methods thereof | |
JPWO2016088453A1 (en) | Encryption device, decryption device, encryption processing system, encryption method, decryption method, encryption program, and decryption program | |
Usama et al. | Chaos-based simultaneous compression and encryption for Hadoop | |
US11799628B2 (en) | Apparatus and method for processing non-polynomial operation on encrypted messages | |
KR20220120410A (en) | Encryption method and apparatus using commutative property and associative perperty in homomorphic encryption | |
KR20230078510A (en) | Apparatus and method of homomorphic encryption opeation | |
KR20210136815A (en) | Encryption method and apparatus using homomorhpic encryption | |
US20230246807A1 (en) | Apparatus and method with homomorphic encryption using automorphism | |
US11722290B2 (en) | Method and apparatus for modulus refresh in homomorphic encryption | |
US11514192B2 (en) | Secure reading apparatus, secure writing apparatus, method thereof, and program for reading and writing data in a sequence without revealing an access position | |
KR20220157843A (en) | Method and apparatus of modulus refresh in homomorhpic encryption | |
JP2023064757A (en) | Cipher processing device, cipher processing method, and cipher processing program | |
KR20220157844A (en) | Encryption key generating method, appratus, ciphertext operation method and apparatus using the generated encryption key | |
JP2022160985A (en) | Apparatus for processing non-polynomial operation on homomorphic encrypted message and method thereof | |
KR20240047269A (en) | Homomorphic encryption opeation apparatus and method | |
KR20240047280A (en) | Homomorphic encryption opeation apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |