KR102582082B1 - Method and system for fully homomorphic encryption based on agcd using public key - Google Patents

Method and system for fully homomorphic encryption based on agcd using public key Download PDF

Info

Publication number
KR102582082B1
KR102582082B1 KR1020230003668A KR20230003668A KR102582082B1 KR 102582082 B1 KR102582082 B1 KR 102582082B1 KR 1020230003668 A KR1020230003668 A KR 1020230003668A KR 20230003668 A KR20230003668 A KR 20230003668A KR 102582082 B1 KR102582082 B1 KR 102582082B1
Authority
KR
South Korea
Prior art keywords
homomorphic encryption
public key
agcd
fully homomorphic
follows
Prior art date
Application number
KR1020230003668A
Other languages
Korean (ko)
Inventor
전삼구
강석진
최원석
송금진
Original Assignee
강석진
송금진
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 강석진, 송금진 filed Critical 강석진
Priority to KR1020230003668A priority Critical patent/KR102582082B1/en
Application granted granted Critical
Publication of KR102582082B1 publication Critical patent/KR102582082B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/552Indexing scheme relating to groups G06F7/552 - G06F7/5525
    • G06F2207/5523Calculates a power, e.g. the square, of a number or a function, e.g. polynomials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Abstract

본 발명은 AGCD 기반 공개키 완전동형암호 연산 방법 및 시스템에 관한 것으로, 본 발명의 일 실시예에 따른 AGCD 기반 공개키 완전동형암호 연산 방법은, 완전동형암호 연산 장치에 의해 수행되는 완전동형암호 연산 방법에 있어서, 입력의 차수를 감산하는 단계 - 상기 입력은 가 2보다 큰 소수이며 원문이 속하는 공간이 유한체 일 때 상기 유한체의 적어도 하나의 원소로 구성된 임의의 다항식을 포함함 - , 상기 차수가 감산된 입력을 비밀키 및 공개키를 이용하여 암호화하여 입력의 암호문을 생성하는 단계, 상기 생성된 입력의 암호문에 대하여 산술 연산을 수행하는 단계, 및 상기 산술 연산의 결과를 복호화하는 단계 - 상기 복호화 결과는 유한한 차수를 가지는 단항식 또는 다항식을 포함함 - 를 포함한다.The present invention relates to an AGCD-based public key fully homomorphic encryption operation method and system. The AGCD-based public key fully homomorphic encryption operation method according to an embodiment of the present invention includes a fully homomorphic encryption operation performed by a fully homomorphic encryption operation device. A method comprising: subtracting the order of an input, wherein the input is is a prime number greater than 2, and the space to which the original text belongs is a finite field. When , it includes an arbitrary polynomial composed of at least one element of the finite field - , encrypting the input whose degree has been subtracted using a private key and a public key to generate ciphertext of the input, It includes performing an arithmetic operation on the ciphertext, and decrypting a result of the arithmetic operation, wherein the decryption result includes a monomial or polynomial having a finite degree.

Description

공개키를 이용한 AGCD 기반 완전동형암호 연산 방법 및 시스템{METHOD AND SYSTEM FOR FULLY HOMOMORPHIC ENCRYPTION BASED ON AGCD USING PUBLIC KEY}AGCD-based fully homomorphic encryption calculation method and system using public key {METHOD AND SYSTEM FOR FULLY HOMOMORPHIC ENCRYPTION BASED ON AGCD USING PUBLIC KEY}

본 발명은 공개키를 이용한 AGCD(Approximate Greatest Common Divisor) 기반 완전동형암호 연산 방법 및 시스템에 관한 것이다.The present invention relates to a completely homomorphic encryption operation method and system based on AGCD (Approximate Greatest Common Divisor) using a public key.

동형암호 기술에 대한 설명하면 다음과 같다. 동형암호 시스템(homomorphic encryption system)이란 원문을 암호화한 암호문들 위에 덧셈과 곱셈을 기반으로 한 여러 가지 연산을 시행할 수 있는 암호시스템을 말한다. 동형암호시스템은 부분 동형암호, 제한 동형암호, 완전 동형암호, 이렇게 세 가지로 분류할 수 있다.The description of homomorphic encryption technology is as follows. A homomorphic encryption system is an encryption system that can perform various operations based on addition and multiplication on ciphertexts that encrypt the original text. Homomorphic encryption systems can be classified into three types: partially homomorphic encryption, limited homomorphic encryption, and fully homomorphic encryption.

부분 동형암호 시스템(Partially Homomorphic Encryption)은 암호문 위에 덧셈만, 또는 곱셈만 실행할 수 있는 암호 시스템이다. 잘 알려져 있는 Paillier 시스템은 덧셈에 대한, 그리고 RSA 시스템은 곱셈에 대한 부분 동형암호 시스템이다.Partially Homomorphic Encryption is an encryption system that can only perform addition or multiplication on the ciphertext. The well-known Paillier system is a partially homomorphic encryption system for addition, and the RSA system is a partially homomorphic encryption system for multiplication.

제한 동형암호 시스템(Somewhat Homomorphic Encryption)은 암호문 위에 덧셈과 곱셈을 모두 실행할 수 있지만 그 연산의 수가 제한되어 있는 경우이다. 지금까지 알려진 모든 동형암호 시스템의 기본이 이 부류에 속한다. Somewhat Homomorphic Encryption is a case where both addition and multiplication can be performed on the ciphertext, but the number of operations is limited. The basis of all homomorphic encryption systems known to date falls into this category.

완전 동형암호 시스템(Fully Homomorphic Encryption)은 암호문 위에 덧셈과 곱셈을 무한 번 실행할 수 있는 암호 시스템이다. 지금까지 알려진 완전 동형암호 시스템은 모두 제한 동형암호 시스템과 부트스트래핑 기법을 기반으로 하고 있다. 즉, 주어진 제한 동형암호 시스템에 부트스트래핑 기법을 적용하여 완전 동형암호 시스템으로 발전시키는 것이다. Fully Homomorphic Encryption is an encryption system that can perform addition and multiplication on the ciphertext an infinite number of times. All fully homomorphic encryption systems known so far are based on constrained homomorphic encryption systems and bootstrapping techniques. In other words, the bootstrapping technique is applied to a given limited homomorphic encryption system to develop it into a fully homomorphic encryption system.

종래 기술의 한계점을 설명하기로 한다. 그동안 발명된 동형 암호기술은 모두 노이즈(noise)에 대한 문제점을 지니고 있다. 암호문은 원문을 숨기기 위하여 필연적으로 작은 노이즈를 포함하게 마련이다. 그러나 연산을 거듭할수록 노이즈가 커지게 되고 어느 시점에 도달하면 노이즈가 너무 커져서 암호문을 복호화 했을 때 원문을 복원할 수 없게 된다.Let us explain the limitations of the prior art. All homomorphic encryption technologies that have been invented so far have problems with noise. Cipher text inevitably contains small noise to hide the original text. However, as the calculation continues, the noise increases, and at a certain point, the noise becomes so large that the original text cannot be restored when the ciphertext is decrypted.

이 문제를 해결하는 방법으로 나타난 것이 크레이그 젠트리(Craig Gentry)가 발명한 부트스트래핑(bootstrapping) 기법이다. 이 기법을 사용하면 어떤 종류의 제한 동형암호 시스템을 완전 동형암호 시스템으로 전환 시킬 수 있다. 이에 따라 부트스트래핑 기법은 현대 동형암호 시스템의 연구에 있어서 가장 중요한 주제가 되었다. 그리고 어떤 제한 동형암호 시스템에 부트스트래핑 기법을 적용할 수 있는가 하는 문제 역시 상당히 중요한 주제이다.A method to solve this problem is the bootstrapping technique invented by Craig Gentry. This technique can be used to transform any type of limited homomorphic encryption system into a fully homomorphic encryption system. Accordingly, bootstrapping techniques have become the most important topic in the research of modern homomorphic encryption systems. Also, the question of which constrained homomorphic encryption systems the bootstrapping technique can be applied to is also a very important topic.

그러나 부트스트래핑 기법은 커다란 키 사이즈를 필요로 하며 막대한 비용을 초래한다. 이것이 아직 동형암호 시스템이 본격적으로 상용화 되지 않은 결정적인 이유이다. 따라서, 보다 효율적인 부트스트래핑 기법을 찾기 위한 수많은 연구가 이뤄지고 있다. 현재 대부분의 동형함호 연구가 부트스트래핑 기법을 보다 빠르고 효율적으로 적용시키는 방법에 대한 것이라고 해도 과언이 아니다. However, the bootstrapping technique requires a large key size and incurs enormous costs. This is the decisive reason why homomorphic encryption systems have not yet been commercialized in earnest. Therefore, numerous studies are being conducted to find more efficient bootstrapping techniques. It is no exaggeration to say that most current homomorphic encoding research is about ways to apply bootstrapping techniques more quickly and efficiently.

본 발명의 실시예들은 간결한 수학적 원리를 사용하여 AGCD 기반 동형암호 시스템을 공개키를 이용한 완전 동형암호 시스템으로 발전시킴으로써, 혁신적이고 효율적으로 수행될 수 있는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 방법 및 시스템을 제공하고자 한다.Embodiments of the present invention develop an AGCD-based homomorphic encryption system into a fully homomorphic encryption system using a public key using simple mathematical principles, thereby providing an AGCD-based fully homomorphic encryption calculation method using a public key that can be performed innovatively and efficiently. and system.

다만, 본 발명의 해결하고자 하는 과제는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위의 환경에서도 다양하게 확장될 수 있을 것이다.However, the problem to be solved by the present invention is not limited to this, and may be expanded in various environments without departing from the spirit and scope of the present invention.

본 발명의 일 실시예에 따르면, 완전동형암호 연산 장치에 의해 수행되는 완전동형암호 연산 방법에 있어서, 입력의 차수를 감산하는 단계 - 상기 입력은 가 2보다 큰 소수이며 원문이 속하는 공간이 유한체 일 때 상기 유한체의 적어도 하나의 원소로 구성된 임의의 다항식을 포함함 - ; 상기 차수가 감산된 입력을 비밀키 및 공개키를 이용하여 암호화하여 입력의 암호문을 생성하는 단계; 상기 생성된 입력의 암호문에 대하여 산술 연산을 수행하는 단계; 및 상기 산술 연산의 결과를 복호화하는 단계 - 상기 복호화 결과는 유한한 차수를 가지는 단항식 또는 다항식을 포함함 - 를 포함하는, 공개키를 이용한 AGCD(Approximate Greatest Common Divisor) 기반 완전동형암호 연산 방법이 제공될 수 있다.According to an embodiment of the present invention, in a fully homomorphic encryption operation method performed by a fully homomorphic encryption operation device, the step of subtracting the degree of the input - the input is is a prime number greater than 2, and the space to which the original text belongs is a finite field. Contains any polynomial composed of at least one element of the finite field when - ; generating ciphertext of the input by encrypting the input whose degree has been subtracted using a private key and a public key; performing an arithmetic operation on the generated ciphertext of the input; And a step of decrypting the result of the arithmetic operation - the decryption result includes a monomial or polynomial with a finite degree - A fully homomorphic encryption operation method based on AGCD (Approximate Greatest Common Divisor) using a public key is provided. It can be.

공개키를 이용한 단계적 완전동형암호 연산 방법에서, 주어진 변수들 는 보안 파라미터, 비밀키 생성 조건 , 암호화 변수 생성 조건 , 비밀키 이면, 비밀키 는 구간 안에 있는 홀수, 암호화 변수 는 구간 안에 있는 정수, 노이즈 은 구간 안에 있는 정수일 때, 상기 공개키의 크기 는 하기의 수학식 와 같이 연산될 수 있다.In the stepwise fully homomorphic encryption method using public keys, given variables is a security parameter, secret key generation condition , Conditions for creating encryption variables , secret key If so, the secret key is the section Odd numbers inside, cryptographic variables is the section The essence within, the noise silver section The size of the public key when it is an integer inside is the following equation It can be calculated as follows.

암호화 변수 , 노이즈 , 일 때, 상기 공개키는 하기 수학식 와 같이 연산될 수 있다.encryption variable , noise , When , the public key is expressed by the following equation It can be calculated as follows.

상기 암호문을 생성하는 단계는, 원문 , 암호문 일 때, 암호화 수식이 하기 수학식 와 같이 연산되고, 상기 복호화하는 단계는, 복호화 수식이 하기 수학식 와 같이 연산될 수 있다.The step of generating the ciphertext is, the original text , ciphertext When , the encryption formula is the following equation It is calculated as follows, and in the decoding step, the decoding formula is the following equation It can be calculated as follows.

상기 임의의 다항식에 대한 완전동형암호 조건은, , , , 임의의 다항식 일 때, 원문 , 암호문 및 비밀키 는 각각 하기 수학식 원문 , 암호문 , 비밀키 와 같이 연산될 수 있다.The fully homomorphic encryption condition for the above arbitrary polynomial is, , , , arbitrary polynomial When, original text , ciphertext and secret key are the original text of the following equations, respectively: , ciphertext , secret key It can be calculated as follows.

본 발명의 일 실시예에서는 종래의 부트스트래핑 방법을 쓰지 않고 대수학적 접근 방법을 사용한다. 상기 임의의 다항식이 차수 만큼 크기가 증가했을 때, 상기 증가된 차수 에 상응하는 비밀키 및 공개키의 크기를 증가시키기 위하여, 상기 증가된 차수 에 상응하는 비밀키 생성 조건 , 비밀키 및 공개키의 크기 는 각각 하기 수학식 , , 와 같이 연산될 수 있다.In one embodiment of the present invention, an algebraic approach is used rather than a conventional bootstrapping method. If the above arbitrary polynomial is of order When the size increases, the increased order In order to increase the size of the corresponding private key and public key, the increased order Secret key generation conditions corresponding to , secret key and the size of the public key are the following equations, respectively: , , It can be calculated as follows.

본 발명의 일 실시예에서 사용하는 페르마(Fermat)의 작은 정리를 이용한 완전동형암호 연산 방법은, 메시지 크기 가 소수이고 일 때, 페르마(Fermat)의 작은 정리를 이용하여 , 이고 , 이면, 하기 수학식 를 도출할 수 있다.The fully homomorphic encryption calculation method using Fermat's small theorem used in an embodiment of the present invention is the message size is a prime number When , using Fermat's little theorem, , ego , If so, the following equation can be derived.

다항식으로 표현하면 , 을 도출하고, , , , 일 때, 복호화 과정인 하기 수학식 와 같이 연산할 수 있다.Expressed as a polynomial, , Derive , , , When , the following equation, which is the decoding process, It can be calculated as follows.

완전동형암호 연산을 위한 공개키 크기와 조건들은 하기 수학식 ,, , 와 같이 메시지 크기 , 및 보안 파라미터 에 의하여 결정된다.The public key size and conditions for fully homomorphic encryption operation are expressed in the following equation: , , , message size as , and security parameters It is decided by .

한편, 본 발명의 다른 실시예에 따르면, 입력의 차수를 감산하는 산술 연산 모듈 - 상기 입력은 가 2보다 큰 소수이며 원문이 속하는 공간이 유한체 일 때 상기 유한체의 적어도 하나의 원소로 구성된 임의의 다항식을 포함함 -; 및 상기 차수가 감산된 입력을 비밀키 및 공개키를 이용하여 암호화하여 입력의 암호문을 생성하는 동형암호화 모듈을 포함하고, 상기 산술 연산 모듈은 상기 생성된 입력의 암호문에 대하여 산술 연산을 수행하고, 상기 동형암호화 모듈은 상기 산술 연산의 결과를 복호화하는 - 상기 복호화 결과는 유한한 차수를 가지는 단항식 또는 다항식을 포함함 - , 공개키를 이용한 AGCD 기반 완전동형암호 연산 시스템이 제공될 수 있다.Meanwhile, according to another embodiment of the present invention, an arithmetic operation module for subtracting the order of the input - the input is is a prime number greater than 2, and the space to which the original text belongs is a finite field. includes any polynomial composed of at least one element of the finite field when -; and a homomorphic encryption module that generates ciphertext of the input by encrypting the degree-subtracted input using a private key and a public key, wherein the arithmetic operation module performs an arithmetic operation on the generated ciphertext of the input, The homomorphic encryption module decrypts the result of the arithmetic operation - the decryption result includes a monomial or polynomial with a finite degree - and an AGCD-based fully homomorphic encryption operation system using a public key may be provided.

공개키를 이용한 단계적 완전동형암호 연산 방법에서, 주어진 변수들 는 보안 파라미터, 비밀키 생성 조건 , 암호화 변수 생성 조건 , 비밀키 이면, 비밀키 는 구간 안에 있는 홀수, 암호화 변수 는 구간 안에 있는 정수, 노이즈 은 구간 안에 있는 정수일 때, 상기 공개키의 크기 는 하기의 수학식 와 같이 연산될 수 있다.In the stepwise fully homomorphic encryption method using public keys, given variables is a security parameter, secret key generation condition , Conditions for creating encryption variables , secret key If so, the secret key is the section Odd numbers inside, cryptographic variables is the section The essence within, the noise silver section The size of the public key when it is an integer inside is the following equation It can be calculated as follows.

암호화 변수 , 노이즈 , 일 때, 상기 공개키는 하기 수학식 와 같이 연산될 수 있다.encryption variable , noise , When , the public key is expressed by the following equation It can be calculated as follows.

상기 동형암호화 모듈은, 원문 , 암호문 일 때, 암호화 수식이 하기 수학식 와 같이 연산되고, 복호화 수식이 하기 수학식 와 같이 연산될 수 있다.The homomorphic encryption module is , ciphertext When , the encryption formula is the following equation It is calculated as follows, and the decryption formula is the following equation It can be calculated as follows.

상기 임의의 다항식에 대한 완전동형암호 조건은, , , , 임의의 다항식 일 때, 원문 , 암호문 및 비밀키 는 각각 하기 수학식 원문 , 암호문 , 비밀키 와 같이 연산될 수 있다.The fully homomorphic encryption condition for the above arbitrary polynomial is, , , , arbitrary polynomial When, original text , ciphertext and secret key are the original text of the following equations, respectively: , ciphertext , secret key It can be calculated as follows.

본 발명의 일 실시예에서는 종래의 부트스트래핑 방법을 쓰지 않고 대수학적 접근 방법을 사용한다. 상기 임의의 다항식이 차수 만큼 크기가 증가했을 때, 상기 증가된 차수 에 상응하는 비밀키 및 공개키의 크기를 증가시키기 위하여, 상기 증가된 차수 에 상응하는 비밀키 생성 조건 , 비밀키 및 공개키의 크기 는 각각 하기 수학식 , , 와 같이 연산될 수 있다.In one embodiment of the present invention, an algebraic approach is used rather than a conventional bootstrapping method. If the above arbitrary polynomial is of order When the size increases, the increased order In order to increase the size of the corresponding private key and public key, the increased order Secret key generation conditions corresponding to , secret key and the size of the public key are the following equations, respectively: , , It can be calculated as follows.

본 발명의 일 실시예에서 사용하는 페르마(Fermat)의 작은 정리를 이용한 완전동형암호 연산 방법은, 메시지 크기 가 소수이고 일 때, 페르마(Fermat)의 작은 정리를 이용하여 , 이고 , 이면, 하기 수학식 를 도출할 수 있다.The fully homomorphic encryption calculation method using Fermat's small theorem used in an embodiment of the present invention is the message size is a prime number When , using Fermat's little theorem, , ego , If so, the following equation can be derived.

다항식으로 표현하면 , 을 도출하고, , , , 일 때, 복호화 과정인 하기 수학식 와 같이 연산할 수 있다.Expressed as a polynomial, , Derive , , , When , the following equation, which is the decoding process, It can be calculated as follows.

완전동형암호 연산을 위한 공개키 크기와 조건들은 하기 수학식 , , , 와 같이 메시지 크기 , 및 보안 파라미터 에 의하여 결정된다. The public key size and conditions for fully homomorphic encryption operation are expressed in the following equation: , , , message size as , and security parameters It is decided by .

개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technology can have the following effects. However, since it does not mean that a specific embodiment must include all of the following effects or only the following effects, the scope of rights of the disclosed technology should not be understood as being limited thereby.

본 발명의 실시예들은 간결한 수학적 원리를 사용하여 AGCD 기반 동형암호 시스템을 공개키를 이용한 완전 동형암호 시스템으로 발전시킴으로써, 혁신적이고 효율적으로 수행될 수 있다.Embodiments of the present invention can be performed innovatively and efficiently by developing an AGCD-based homomorphic encryption system into a fully homomorphic encryption system using a public key using simple mathematical principles.

본 발명의 실시예들은 덧셈과 곱셈으로부터 나오는 모든 연산을 무한번 시행할 수 있는, 공개키 기반 완전 동형암호 시스템을 제공할 수 있다.Embodiments of the present invention can provide a public key-based fully homomorphic encryption system that can perform all operations resulting from addition and multiplication an infinite number of times.

본 발명의 실시예들은 대수학적 원리와 정수론을 바탕으로 매우 혁신적이며 효율적인 완전 동형암호 시스템을 구현할 수 있다.Embodiments of the present invention can implement a very innovative and efficient fully homomorphic encryption system based on algebraic principles and number theory.

그러므로 본 발명의 실시예들은 지금까지 거의 상용화되지 못했던 동형암호 시스템의 응용 분야를 광범위하게 개척해 나갈 수 있다.Therefore, embodiments of the present invention can pioneer a wide range of application fields of homomorphic encryption systems that have hardly been commercialized until now.

또한, 본 발명의 실시예들은 머신러닝, 딥러닝을 포함한 인공지능의 다양한 분야에도 매우 효율적으로 활용될 수 있다. Additionally, embodiments of the present invention can be used very efficiently in various fields of artificial intelligence, including machine learning and deep learning.

도 1은 본 발명의 일 실시예에 따른 공개키를 이용한 AGCD 기반 완전동형암호 연산 시스템의 구성도이다.
도 2는 AGCD 기반 완전동형암호 연산 시스템의 동작을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 AGCD 기반 완전동형암호 연산 시스템에서의 차수 감산 동작, 암호화 및 복호화 동작을 나타낸 도면이다.
도 4는 상에서의 완전동형암호 시스템의 연산 예시를 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 공개키를 이용한 AGCD 기반 완전동형암호 연산 방법의 흐름도이다.
Figure 1 is a configuration diagram of an AGCD-based fully homomorphic encryption operation system using a public key according to an embodiment of the present invention.
Figure 2 is a diagram showing the operation of the AGCD-based fully homomorphic encryption operation system.
Figure 3 is a diagram showing order subtraction operations, encryption and decryption operations in an AGCD-based fully homomorphic encryption operation system according to an embodiment of the present invention.
Figure 4 This diagram shows an example of the operation of a fully homomorphic encryption system.
Figure 5 is a flowchart of an AGCD-based fully homomorphic encryption calculation method using a public key according to an embodiment of the present invention.

본 발명은 다양한 변환을 가할 수 있고 여러가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해될 수 있다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.Since the present invention can be modified in various ways and can have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and may be understood to include all transformations, equivalents, and substitutes included in the technical idea and scope of the present invention. In describing the present invention, if it is determined that a detailed description of related known technologies may obscure the gist of the present invention, the detailed description will be omitted.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들이 용어들에 의해 한정되는 것은 아니다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms such as first, second, etc. may be used to describe various components, but the components are not limited by the terms. Terms are used only to distinguish one component from another.

본 발명에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 본 발명에서 사용한 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나 이는 당 분야에 종사하는 기술자의 의도, 판례, 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.The terms used in the present invention are only used to describe specific embodiments and are not intended to limit the present invention. The terms used in the present invention are general terms that are currently widely used as much as possible while considering the functions in the present invention, but this may vary depending on the intention of a person skilled in the art, precedents, or the emergence of new technology. In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the relevant invention. Therefore, the terms used in the present invention should be defined based on the meaning of the term and the overall content of the present invention, rather than simply the name of the term.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 발명에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly dictates otherwise. In the present invention, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, but are not intended to indicate the presence of one or more other features. It should be understood that this does not exclude in advance the possibility of the existence or addition of elements, numbers, steps, operations, components, parts, or combinations thereof.

이하, 본 발명의 실시예들을 첨부 도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the description with reference to the accompanying drawings, identical or corresponding components will be assigned the same drawing numbers and redundant description thereof will be omitted. do.

DGHV 동형암호 시스템은 포스트-퀀텀 암호화 시스템(post-quantum encryption system), 즉, 양자컴퓨터의 공격에도 안전하다고 여겨지는 암호시스템이며 이론적으로는 'AGCD problem(근사 최대공약수 문제)'에 기반하고 있다. 간략하게 설명하면 보안 파라미터 가 주어졌을 때 적절한 성질을 만족하는 의 다항함수 들로부터 나오는 근사 최대공약수 문제를 푸는 것은 양자 컴퓨터를 사용한다고 해도 불가능하다는 뜻이다. 즉, DGHV 시스템은 양자 컴퓨터를 사용한 공격에 대해서도 안전하다는 얘기가 된다. The DGHV homomorphic encryption system is a post-quantum encryption system, that is, an encryption system that is considered safe even against attacks by quantum computers, and is theoretically based on the 'AGCD problem (approximation greatest common divisor problem).' Briefly, security parameters Satisfies the appropriate properties when given polynomial function of This means that solving the approximate greatest common divisor problem that arises from fields is impossible even using a quantum computer. In other words, the DGHV system is safe even against attacks using quantum computers.

가 소수일 때 원문의 공간을 라고 하자. 이때 DGHV 시스템의 암호문은 를 사용하여 선택하는 홀수 를 비밀키로 하고, 의 범위에서 랜덤하게 선택하는 을 노이즈로 하며 만들어진다. 여느 동형암호 시스템이 그러하듯이 연산을 거듭할수록 노이즈의 크기가 커지고 이에 따라 의 크기도 커진다. 그렇게 해야만 원문을 복원할 수 있으며 안정성 또한 보장할 수 있다. When is a prime number, the space of the original text is Let's say At this time, the ciphertext of the DGHV system is to select odd numbers using Let's make it a secret key, randomly selected from the range of It is created by making noise. As with any homomorphic encryption system, as calculations are repeated, the size of the noise increases. The size also increases. Only then can the original text be restored and its stability guaranteed.

겐트리(Gentry)가 고안해 낸 부트스트래핑 테크닉은 노이즈가 너무 커지기 전에 노이즈와 암호문의 크기를 줄여서 거기서부터 비슷한 과정을 다시 (비슷하게, 그러나 보다 더 복잡하게) 시작하는 것이다. 물론 그 과정마다 원문을 복원할 수 있어야 한다. 그러나 앞에서도 지적했듯이 부트스트래핑을 하는 과정에서 키 길이가 매우 커지고 그에 따른 비용이 빠른 속도로 늘어난다. DGHV 시스템의 경우에는 일 경우에만 부트스트래핑 방법이 알려져 있다. The bootstrapping technique invented by Gentry is to reduce the size of the noise and ciphertext before the noise becomes too large, and then start the similar process again (similarly, but more complexly) from there. Of course, the original text must be able to be restored during each process. However, as pointed out earlier, during the bootstrapping process, the key length becomes very large and the resulting cost increases rapidly. In case of DGHV system Bootstrapping methods are known only in one case.

본 발명의 일 실시예에서는 간결한 수학적 원리를 사용하여 새로운 완전 동형암호 시스템을 구축할 수 있다. 본 발명의 일 실시예는 DGHV (Dijk-Gentry-Halevi-Vaikuntanathan) 동형암호 시스템에 부트스트래핑 기법이 아닌 새로운 수학적 원리를 적용하여 완전 동형암호 시스템을 구현한 것이다. 또한, 필요한 연산을 무한히 실행하여도 노이즈가 더 이상 커지지 않는 상한값을 발견하였다. In one embodiment of the present invention, a new fully homomorphic encryption system can be built using simple mathematical principles. One embodiment of the present invention implements a fully homomorphic encryption system by applying a new mathematical principle rather than a bootstrapping technique to the DGHV (Dijk-Gentry-Halevi-Vaikuntanathan) homomorphic encryption system. In addition, we found an upper limit at which the noise no longer increases even if the necessary calculations are performed infinitely.

도 1은 본 발명의 일 실시예에 따른 공개키를 이용한 AGCD 기반 완전동형암호 연산 시스템의 구성도이고, 도 2는 AGCD 기반 완전동형암호 연산 시스템의 동작을 나타낸 도면이다.Figure 1 is a configuration diagram of an AGCD-based fully homomorphic encryption operation system using a public key according to an embodiment of the present invention, and Figure 2 is a diagram showing the operation of the AGCD-based fully homomorphic encryption operation system.

도 1 및 도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 공개키를 이용한 AGCD 기반 완전동형암호 연산 시스템(100)은 산술 연산 모듈(110) 및 동형암호화 모듈(120)을 포함한다. 그러나 도시된 구성요소 모두가 필수 구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 AGCD 기반 완전동형암호 연산 시스템(100)이 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 AGCD 기반 완전동형암호 연산 시스템(100)이 구현될 수 있다.As shown in Figures 1 and 2, the AGCD-based fully homomorphic encryption operation system 100 using a public key according to an embodiment of the present invention includes an arithmetic operation module 110 and a homomorphic encryption module 120. . However, not all of the illustrated components are essential components. The AGCD-based fully homomorphic encryption operation system 100 may be implemented with more components than the components shown, or the AGCD-based fully homomorphic encryption operation system 100 may be implemented with fewer components.

이하, 도 1 및 도 2의 AGCD 기반 완전동형암호 연산 시스템(100)의 각 구성요소들의 구체적인 구성 및 동작을 설명한다.Hereinafter, the detailed configuration and operation of each component of the AGCD-based fully homomorphic encryption operation system 100 of FIGS. 1 and 2 will be described.

산술 연산 모듈(110)은 입력의 차수를 감산한다. 여기서, 입력은 가 2보다 큰 소수이며 원문이 속하는 공간이 유한체 일 때 상기 유한체의 적어도 하나의 원소로 구성된 임의의 다항식을 포함할 수 있다.The arithmetic operation module 110 subtracts the order of the input. Here, the input is is a prime number greater than 2, and the space to which the original text belongs is a finite field. When , it may include an arbitrary polynomial composed of at least one element of the finite field.

동형암호화 모듈(120)은 차수가 감산된 입력을 비밀키 및 공개키를 이용하여 암호화하여 입력의 암호문을 생성한다.The homomorphic encryption module 120 generates ciphertext of the input by encrypting the input whose order has been subtracted using a private key and a public key.

그리고 산술 연산 모듈(110)은 상기 생성된 입력의 암호문에 대하여 산술 연산을 수행한다.And the arithmetic operation module 110 performs an arithmetic operation on the generated ciphertext of the input.

동형암호화 모듈(120)은 산술 연산의 결과를 복호화한다. 여기서, 복호화 결과는 유한한 차수를 가지는 단항식 또는 다항식을 포함할 수 있다.The homomorphic encryption module 120 decrypts the result of the arithmetic operation. Here, the decoding result may include a monomial or polynomial with a finite degree.

도 3은 본 발명의 일 실시예에 따른 AGCD 기반 완전동형암호 연산 시스템에서의 차수 감산 동작, 암호화 및 복호화 동작을 나타낸 도면이다.Figure 3 is a diagram showing order subtraction operations, encryption and decryption operations in an AGCD-based fully homomorphic encryption operation system according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 완전동형암호 연산 시스템(100)은 임의의 다항식 에 대해 차수를 감산할 수 있다. 임의의 다항식 에 대한 암호문을 라고 하면, 암호문 는 복호하 과정을 거쳐 임의의 다항식 가 될 수 있다. 차수가 감산된 x에 대해서도 유사하게 암호화 및 복호화 과정을 통해 암호문 c 및 차수가 감산된 x가 될 수 있다.As shown in FIG. 3, the fully homomorphic encryption operation system 100 uses a random polynomial The order can be subtracted for . arbitrary polynomial ciphertext for If so, the ciphertext is a random polynomial through a decoding process. It can be. Similarly, for x with the degree subtracted, the ciphertext c and the degree subtracted x can be obtained through the encryption and decryption process.

실시예들에 따르면, 주어진 변수들 는 보안 파라미터, 비밀키 생성 조건 , 암호화 변수 생성 조건 , 비밀키 이면, 비밀키 는 구간 안에 있는 홀수, 암호화 변수 는 구간 안에 있는 정수, 노이즈 은 구간 안에 있는 정수일 때, 상기 공개키의 크기 는 하기의 [수학식 1]과 같이 연산될 수 있다. According to the embodiments, given variables is a security parameter, secret key generation condition , Conditions for creating encryption variables , secret key If so, the secret key is the section Odd numbers inside, cryptographic variables is the section The essence within, the noise silver section The size of the public key when it is an integer inside Can be calculated as in [Equation 1] below.

실시예들에 따르면, 암호화 변수 , 노이즈 , 일 때, 상기 공개키는 하기의 [수학식 2]와 같이 연산될 수 있다. According to embodiments, encryption variable , noise , When , the public key can be calculated as in [Equation 2] below.

실시예들에 따르면, 동형암호화 모듈(120)은 원문 , 암호문 일 때, 암호화 수식이 하기의 [수학식 3]과 같이 연산될 수 있다. According to embodiments, the homomorphic encryption module 120 is , ciphertext When , the encryption formula can be calculated as in [Equation 3] below.

복호화 수식이 하기의 [수학식 4]와 같이 연산될 수 있다. The decryption formula can be calculated as shown in [Equation 4] below.

실시예들에 따르면, 상기 임의의 다항식에 대한 완전동형암호 조건은, , , , 임의의 다항식 일 때, 원문 , 암호문 및 비밀키 는 각각 하기의 [수학식 5]와 같이 연산될 수 있다. According to embodiments, the fully homomorphic encryption condition for the arbitrary polynomial is: , , , arbitrary polynomial When, original text , ciphertext and secret key Can be calculated as in [Equation 5] below, respectively.

실시예들에 따르면, 동형암호화 모듈(120)은 임의의 다항식이 차수 만큼 크기가 증가했을 때, 증가된 차수 에 상응하는 비밀키 및 공개키의 크기를 증가시키기 위하여, 증가된 차수 에 상응하는 비밀키 생성 조건 , 비밀키 및 공개키의 크기 는 각각 하기의 [수학식 6]과 같이 연산될 수 있다. According to embodiments, the homomorphic encryption module 120 is a random polynomial of degree When the size increases, the increased order In order to increase the size of the corresponding private key and public key, the increased order Secret key generation conditions corresponding to , secret key and the size of the public key can be calculated as in [Equation 6] below.

, ,

실시예들에 따르면, 상기 동형암호화 모듈(120)은, 메시지 크기 가 소수이고 일 때, 페르마(Fermat)의 작은 정리를 이용하여 , 이고 , 이면, 하기의 [수학식 7]과 같이 도출할 수 있다. According to embodiments, the homomorphic encryption module 120 has a message size is a prime number When , using Fermat's little theorem, , ego , If so, it can be derived as in [Equation 7] below.

실시예들에 따르면, 동형암호화 모듈(120)은 임의의 다항식으로 , 을 도출하고, , , , 일 때, 복호화 과정인 하기의 [수학식 8]과 같이 연산될 수 있다. According to embodiments, the homomorphic encryption module 120 uses a random polynomial. , Derive , , , When , the decoding process can be calculated as in [Equation 8] below.

실시예들에 따르면, 완전동형암호 연산을 위한 공개키 크기와 조건들은 하기의 [수학식 9]와 같이 메시지 크기 , 및 보안 파라미터 에 의하여 결정될 수 있다.According to embodiments, the public key size and conditions for fully homomorphic encryption operation are the message size as shown in [Equation 9] below. , and security parameters It can be decided by .

, ,

, ,

한편, 본 발명의 일 실시예에 따른 공개키를 이용한 단계적 완전동형암호 기법에 대해 설명하기로한다.Meanwhile, a stepwise fully homomorphic encryption technique using a public key according to an embodiment of the present invention will be described.

본 발명의 일 실시예는 인 모든 소수에 대하여 고려한다. 그러므로 본 발명의 일 실시예에서 다루는 것은 모든 일반적인 경우이다. 우선 DGHV 비밀키 시스템부터 설명하기로 한다. One embodiment of the present invention is Consider all prime numbers that are . Therefore, all general cases are covered in one embodiment of the present invention. First, we will explain the DGHV secret key system.

DGHV 비밀키 시스템은 다음과 같이 주어진 변수들을 기반으로 한다. 여기서, 이 변수들이 만족시키는 조건들을 단순화하여 표현했다.The DGHV secret key system is based on the variables given as follows. Here, the conditions that these variables satisfy are simplified and expressed.

: 보안 파라미터 : Security parameters

: 노이즈 범위 : Noise range

: 비밀키 생성 조건 : Secret key generation conditions

: 암호화 변수 생성 조건 : Conditions for creating encryption variables

: 비밀키 : Secret key

완전동형암호 연산 시스템(100)은 이 변수들을 이용하여 비밀키 , 암호화 변수 , 노이즈 을 선택한다. 비밀키 , 암호화 변수 , 노이즈 는 하기와 같다. The fully homomorphic encryption operation system 100 uses these variables to create a secret key. , encrypted variable , noise Select . secret key , encrypted variable , noise is as follows.

비밀키 는 구간 안에 있는 홀수 secret key is the section odd number inside

암호화 변수 는 구간 안에 있는 정수encryption variable is the section essence within

노이즈 은 구간 안에 있는 정수noise silver section essence within

공개키의 크기 size of public key

그리고 완전동형암호 연산 시스템(100)은 공개키 일 때, And the fully homomorphic encryption operation system 100 is a public key when,

, ,

, ,

이다. am.

한편, 암호화 및 복호화는 다음과 같이 정의된다. Meanwhile, encryption and decryption are defined as follows.

: 메시지, 암호문 c : message, ciphertext c

암호화 과정: Encryption process:

복호화 과정: Decryption process:

한편, 임의의 다항식에 대한 동형암호 조건을 설명하기로 한다. , 일 때 이다. 원문 , 암호문 일 때 임의의 다항식은 이다. Meanwhile, we will explain the homomorphic encryption conditions for arbitrary polynomials. , when am. original text , ciphertext When an arbitrary polynomial is am.

원문 original text

암호문 cryptogram

비밀키 으로 정의한다.secret key It is defined as

한편, 동형암호문을 피연산자로 사용하여 곱셈 등의 연산을 반복하면 노이즈 값이 커지고 결국 암호화 및 복호화가 불가능해지는 상태로 진행된다. 그래서 기존 동형암호 알고리즘들은 부트스트래핑 기법을 적용하여 연산 횟수를 늘리는 방법을 채택한다. On the other hand, if operations such as multiplication are repeated using a homomorphic ciphertext as an operand, the noise value increases and eventually encryption and decryption become impossible. Therefore, existing homomorphic encryption algorithms adopt a method of increasing the number of operations by applying bootstrapping techniques.

그러나 본 발명의 일 실시예는 차수 만큼 크기가 증가했을 때 증가된 차수에 상응하는 비밀키 및 공개키의 크기를 증가시키는 [수학식 6]을 이용할 수 있다. However, one embodiment of the present invention is When the size increases, [Equation 6] can be used to increase the size of the private key and public key corresponding to the increased degree.

[수학식 6][Equation 6]

도 4는 상에서의 완전동형암호 시스템의 연산 예시를 나타낸 도면이다.Figure 4 This diagram shows an example of the operation of a fully homomorphic encryption system.

도 4를 참조하면, 산술 연산 모듈(110)은 입력 38351508258의 차수를 감산한다. 그 결과 입력의 지수 83, 150, 258은 각각을 10으로 나눈 나머지인 3, 0, 8로 감산된다. 동형암호화 모듈(120)은 차수 감산된 입력 335088을 암호화하고, 암호화된 입력의 연산 결과를 복호화한다.Referring to FIG. 4, the arithmetic operation module 110 subtracts the order of the input 3 83 5 150 8 258 . As a result, the input exponents 83, 150, and 258 are subtracted by 3, 0, and 8, which are the remainders of dividing them by 10, respectively. The homomorphic encryption module 120 encrypts the order-subtracted input 3 3 5 0 8 8 and decrypts the operation result of the encrypted input.

도 4의 예시에서, 입력은 유한체 Z11의 원소이므로 동형암호화 전후의 연산 결과는 3으로 동일하다. In the example of Figure 4, the input is an element of the finite field Z 11 , so the operation result before and after homomorphic encryption is the same as 3.

한편, 본 발명의 일 실시예에 따른 페르마(Fermat)의 작은 정리를 이용한 완전동형암호 기법에 대해 설명하기로 한다. Meanwhile, a fully homomorphic encryption technique using Fermat's little theorem according to an embodiment of the present invention will be described.

부트스트래핑 기법은 연산 상한치에 도달했을 때 반복적으로 수행해야 하기 때문에 비효율적이다. 본 발명의 일 실시예에서는 페르마(Fermat)의 작은 정리를 이용하여 조건에 따른 키 길이를 확정하고 피연산자의 크기를 줄임으로써 완전 동형 암호 연산을 수행할 수 있다. The bootstrapping technique is inefficient because it must be performed repeatedly when the upper computational limit is reached. In one embodiment of the present invention, a fully homomorphic encryption operation can be performed by using Fermat's little theorem to determine the key length according to the condition and reduce the size of the operand.

가 소수이고 일 때, 페르마(Fermat)의 작은 정리를 이용하면 를 도출할 수 있다. is a prime number When , using Fermat's little theorem, can be derived.

, 이고 , 이면 과 같이 구성할 수 있다. , ego , This side It can be configured as follows.

따라서 , 이고, , 이고, 과 같이 단항식으로 도출할 수 있다. thus , ego, , ego, It can be derived as a monomial expression as follows.

임의의 다항식으로 표현하면, Expressed as an arbitrary polynomial,

, ,

, ,

, ,

, ,

, ,

이며 Fermat의 작은 정리에 의하여 복호화는 상기의 [수학식 8]과 같으며, 아래와 같다. And according to Fermat's little theorem, the decoding is as in [Equation 8] above, and is as follows.

한편, 완전동형암호 연산을 위한 키 사이즈와 조건들은 메시지 크기 , 그리고 보안 파라미터 에 의하여 상기의 [수학식 9]와 같이 결정된다.Meanwhile, the key size and conditions for fully homomorphic encryption operation are message size , and security parameters It is determined as in [Equation 9] above.

[수학식 9][Equation 9]

이와 같이, 본 발명의 일 실시예서는 덧셈과 곱셈으로부터 나오는 모든 연산을 무한번 시행할 수 있는 공개키 기반 완전 동형암호 시스템을 제공할 수 있다. In this way, one embodiment of the present invention can provide a public key-based fully homomorphic encryption system that can perform all operations resulting from addition and multiplication infinite times.

도 5는 본 발명의 일 실시예에 따른 공개키를 이용한 AGCD 기반 완전동형암호 연산 방법의 흐름도이다.Figure 5 is a flowchart of an AGCD-based fully homomorphic encryption calculation method using a public key according to an embodiment of the present invention.

도 5를 참조하면, 단계 S101에서, 완전동형암호 연산 시스템(100)은 입력의 차수를 감산한다. 여기서, 입력은 가 2보다 큰 소수이며 원문이 속하는 공간이 유한체 일 때 상기 유한체의 적어도 하나의 원소로 구성된 임의의 다항식을 포함할 수 있다.Referring to Figure 5, in step S101, the fully homomorphic encryption operation system 100 subtracts the order of the input. Here, the input is is a prime number greater than 2, and the space to which the original text belongs is a finite field. When , it may include an arbitrary polynomial composed of at least one element of the finite field.

단계 S102에서, 완전동형암호 연산 시스템(100)은 차수가 감산된 입력을 비밀키 및 공개키를 이용하여 암호화하여 입력의 암호문을 생성한다.In step S102, the fully homomorphic encryption operation system 100 generates ciphertext of the input by encrypting the input whose degree has been reduced using a private key and a public key.

단계 S103에서, 완전동형암호 연산 시스템(100)은 생성된 입력의 암호문에 대하여 산술 연산을 수행한다.In step S103, the fully homomorphic encryption operation system 100 performs an arithmetic operation on the generated ciphertext of the input.

단계 S104에서, 완전동형암호 연산 시스템(100)은 산술 연산의 결과를 복호화한다. 여기서, 복호화 결과는 유한한 차수를 가지는 단항식 또는 다항식을 포함할 수 있다.In step S104, the fully homomorphic encryption operation system 100 decrypts the result of the arithmetic operation. Here, the decoding result may include a monomial or polynomial with a finite degree.

한편, 본 발명의 일 실시예에 따르면, 이상에서 설명된 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다. Meanwhile, according to an embodiment of the present invention, the various embodiments described above are implemented as software including instructions stored in a machine-readable storage media (e.g., a computer). It can be. The device is a device capable of calling instructions stored from a storage medium and operating according to the called instructions, and may include an electronic device (eg, electronic device A) according to the disclosed embodiments. When an instruction is executed by a processor, the processor may perform the function corresponding to the instruction directly or using other components under the control of the processor. Instructions may contain code generated or executed by a compiler or interpreter. A storage medium that can be read by a device may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' only means that the storage medium does not contain signals and is tangible, and does not distinguish whether the data is stored semi-permanently or temporarily in the storage medium.

또한, 본 발명의 일 실시예에 따르면, 이상에서 설명된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.Additionally, according to an embodiment of the present invention, the method according to the various embodiments described above may be provided and included in a computer program product. Computer program products are commodities and can be traded between sellers and buyers. The computer program product may be distributed on a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or online through an application store (e.g. Play Store™). In the case of online distribution, at least a portion of the computer program product may be at least temporarily stored or created temporarily in a storage medium such as the memory of a manufacturer's server, an application store's server, or a relay server.

또한, 본 발명의 일 실시예에 따르면, 이상에서 설명된 다양한 실시예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.In addition, according to an embodiment of the present invention, the various embodiments described above are stored in a recording medium that can be read by a computer or similar device using software, hardware, or a combination thereof. It can be implemented in . In some cases, embodiments described herein may be implemented in a processor itself. According to software implementation, embodiments such as procedures and functions described in this specification may be implemented as separate software modules. Each of the software modules may perform one or more functions and operations described herein.

한편, 상술한 다양한 실시예들에 따른 기기의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시예에 따른 기기에서의 처리 동작을 특정 기기가 수행하도록 한다. 비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.Meanwhile, computer instructions for performing processing operations of devices according to the various embodiments described above may be stored in a non-transitory computer-readable medium. Computer instructions stored in such a non-transitory computer-readable medium, when executed by a processor of a specific device, cause the specific device to perform processing operations in the device according to the various embodiments described above. A non-transitory computer-readable medium refers to a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short period of time, such as registers, caches, and memories. Specific examples of non-transitory computer-readable media may include CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, etc.

또한, 상술한 다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.In addition, each component (e.g., module or program) according to the various embodiments described above may be composed of a single or multiple entities, and some of the sub-components described above may be omitted, or other sub-components may be omitted. Sub-components may be further included in various embodiments. Alternatively or additionally, some components (e.g., modules or programs) may be integrated into a single entity and perform the same or similar functions performed by each corresponding component prior to integration. According to various embodiments, operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or at least some operations may be executed in a different order, omitted, or other operations may be added. It can be.

이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.In the above, preferred embodiments of the present invention have been shown and described, but the present invention is not limited to the specific embodiments described above, and may be used in the technical field pertinent to the disclosure without departing from the gist of the present invention as claimed in the claims. Of course, various modifications can be made by those skilled in the art, and these modifications should not be understood individually from the technical idea or perspective of the present invention.

100: 동형암호 연산 시스템
110: 산술 연산 모듈
120: 동형암호화 모듈
100: Homomorphic encryption operation system
110: Arithmetic operation module
120: Homomorphic encryption module

Claims (18)

완전동형암호 연산 장치에 의해 수행되는 완전동형암호 연산 방법에 있어서,
입력의 차수를 감산하는 단계 - 상기 입력은 가 2보다 큰 소수이며 원문이 속하는 공간이 유한체 일 때 상기 유한체의 적어도 하나의 원소로 구성된 임의의 다항식을 포함함 - ;
상기 차수가 감산된 입력을 비밀키 및 공개키를 이용하여 암호화하여 입력의 암호문을 생성하는 단계;
상기 생성된 입력의 암호문에 대하여 산술 연산을 수행하는 단계; 및
상기 산술 연산의 결과를 복호화하는 단계 - 상기 복호화 결과는 유한한 차수를 가지는 단항식 또는 다항식을 포함함 - 를 포함하고,
상기 임의의 다항식에 대한 완전동형암호 조건은,
, , , 임의의 다항식 일 때,
원문 , 암호문 및 비밀키 는 각각 하기 수학식
원문 ,
암호문 ,
비밀키 와 같이 연산되는, 공개키를 이용한 AGCD(Approximate Greatest Common Divisor) 기반 완전동형암호 연산 방법.
In a fully homomorphic encryption calculation method performed by a fully homomorphic encryption operation device,
Subtracting the order of the input - the input is is a prime number greater than 2, and the space to which the original text belongs is a finite field. Contains any polynomial composed of at least one element of the finite field when - ;
generating ciphertext of the input by encrypting the input whose degree has been subtracted using a private key and a public key;
performing an arithmetic operation on the generated ciphertext of the input; and
Decoding the result of the arithmetic operation, wherein the decoding result includes a monomial or polynomial with a finite degree,
The fully homomorphic encryption condition for the above arbitrary polynomial is,
, , , arbitrary polynomial when,
original text , ciphertext and secret key are the following equations, respectively:
original text ,
cryptogram ,
secret key A completely homomorphic encryption calculation method based on AGCD (Approximate Greatest Common Divisor) using a public key, which is calculated as follows.
제1항에 있어서,
주어진 변수들 는 보안 파라미터, 비밀키 생성 조건 , 암호화 변수 생성 조건 , 비밀키 이면, 비밀키 는 구간 안에 있는 홀수, 암호화 변수 는 구간 안에 있는 정수, 노이즈 은 구간 안에 있는 정수일 때, 하기의 수학식
와 같이 연산되는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 방법.
According to paragraph 1,
given variables is a security parameter, secret key generation condition , Conditions for creating encryption variables , secret key If so, the secret key is the section Odd numbers inside, cryptographic variables is the section The essence within, the noise silver section When it is an integer inside, the following equation
AGCD-based fully homomorphic encryption calculation method using a public key, which is calculated as follows.
제2항에 있어서,
암호화 변수 , 노이즈 , 일 때, 상기 공개키는 하기 수학식
와 같이 연산되는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 방법.
According to paragraph 2,
encryption variable , noise , When , the public key is expressed by the following equation
AGCD-based fully homomorphic encryption calculation method using a public key, which is calculated as follows.
제2항 또는 제3항에 있어서,
상기 암호문을 생성하는 단계는,
원문 , 암호문 일 때, 암호화 수식이 하기 수학식
와 같이 연산되고,
상기 복호화하는 단계는,
복호화 수식이 하기 수학식
와 같이 연산되는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 방법.
According to paragraph 2 or 3,
The step of generating the ciphertext is,
original text , ciphertext When , the encryption formula is the following equation
It is calculated as follows,
The decoding step is,
The decryption formula is the following equation:
AGCD-based fully homomorphic encryption calculation method using a public key, which is calculated as follows.
삭제delete 제1항에 있어서,
상기 암호문을 생성하는 단계는,
상기 임의의 다항식이 차수 만큼 크기가 증가했을 때, 상기 증가된 차수 에 상응하는 비밀키 및 공개키의 크기를 증가시키기 위하여,
상기 증가된 차수 에 상응하는 비밀키 생성 조건 , 비밀키 및 공개키의 크기 는 각각 하기 수학식
,
,
와 같이 연산되는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 방법.
According to paragraph 1,
The step of generating the ciphertext is,
If the above arbitrary polynomial is of order When the size increases, the increased order In order to increase the size of the corresponding private key and public key,
The increased order Secret key generation conditions corresponding to , secret key and the size of the public key are the following equations, respectively:
,
,
AGCD-based fully homomorphic encryption calculation method using a public key, which is calculated as follows.
제1항에 있어서,
상기 복호화하는 단계는,
메시지 크기 가 소수이고 일 때, 페르마(Fermat)의 작은 정리를 이용하여 , 이고 , 이면, 하기 수학식
를 도출하는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 방법.
According to paragraph 1,
The decoding step is,
message size is a prime number When , using Fermat's little theorem, , ego , If so, the following equation
AGCD-based fully homomorphic encryption calculation method using a public key to derive .
제7항에 있어서,
상기 복호화하는 단계는,
임의의 다항식으로 , 을 도출하고,
, , , 일 때, 복호화 과정인 하기 수학식
와 같이 연산하는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 방법.
In clause 7,
The decoding step is,
with an arbitrary polynomial , Derive
, , , When , the following equation, which is the decoding process,
AGCD-based fully homomorphic encryption calculation method using a public key, which is calculated as follows.
제8항에 있어서,
완전동형암호 연산을 위한 공개키 크기와 조건들은 하기 수학식
,
,
,
와 같이 연산하는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 방법.
According to clause 8,
The public key size and conditions for fully homomorphic encryption operation are expressed in the following equation:
,
,
,
AGCD-based fully homomorphic encryption calculation method using a public key, which is calculated as follows.
입력의 차수를 감산하는 산술 연산 모듈 - 상기 입력은 가 2보다 큰 소수이며 원문이 속하는 공간이 유한체 일 때 상기 유한체의 적어도 하나의 원소로 구성된 임의의 다항식을 포함함 -; 및
상기 차수가 감산된 입력을 비밀키 및 공개키를 이용하여 암호화하여 입력의 암호문을 생성하는 동형암호화 모듈을 포함하고,
상기 산술 연산 모듈은 상기 생성된 입력의 암호문에 대하여 산술 연산을 수행하고,
상기 동형암호화 모듈은 상기 산술 연산의 결과를 복호화하고 - 상기 복호화 결과는 유한한 차수를 가지는 단항식 또는 다항식을 포함함 - ,
상기 임의의 다항식에 대한 완전동형암호 조건은,
, , , 임의의 다항식 일 때,
원문 , 암호문 및 비밀키 는 각각 하기 수학식
원문 ,
암호문 ,
비밀키 와 같이 연산되는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 시스템.
An arithmetic operation module that subtracts the order of the input - the input is is a prime number greater than 2, and the space to which the original text belongs is a finite field. includes any polynomial composed of at least one element of the finite field when -; and
A homomorphic encryption module that generates ciphertext of the input by encrypting the degree-subtracted input using a private key and a public key,
The arithmetic operation module performs an arithmetic operation on the generated ciphertext of the input,
The homomorphic encryption module decrypts the result of the arithmetic operation, and the decryption result includes a monomial or polynomial with a finite degree.
The fully homomorphic encryption condition for the above arbitrary polynomial is,
, , , arbitrary polynomial when,
original text , ciphertext and secret key are the following equations, respectively:
original text ,
cryptogram ,
secret key AGCD-based fully homomorphic encryption calculation system using a public key, which is calculated as follows.
제10항에 있어서,
주어진 변수들 는 보안 파라미터, 비밀키 생성 조건 , 암호화 변수 생성 조건 , 비밀키 이면, 비밀키 는 구간 안에 있는 홀수, 암호화 변수 는 구간 안에 있는 정수, 노이즈 은 구간 안에 있는 정수일 때, 하기의 수학식
와 같이 연산되는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 시스템.
According to clause 10,
given variables is a security parameter, secret key generation condition , Conditions for creating encryption variables , secret key If so, the secret key is the section Odd numbers inside, cryptographic variables is the section The essence within, the noise silver section When it is an integer inside, the following equation
AGCD-based fully homomorphic encryption calculation system using a public key, which is calculated as follows.
제11항에 있어서,
암호화 변수 , 노이즈 , 일 때, 상기 공개키는 하기 수학식
와 같이 연산되는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 시스템.
According to clause 11,
encryption variable , noise , When , the public key is expressed by the following equation
AGCD-based fully homomorphic encryption calculation system using a public key, which is calculated as follows.
제11항 또는 제12항에 있어서,
상기 동형암호화 모듈은,
원문 , 암호문 일 때, 암호화 수식이 하기 수학식
와 같이 연산되고,
복호화 수식이 하기 수학식
와 같이 연산되는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 시스템.
According to claim 11 or 12,
The homomorphic encryption module,
original text , ciphertext When , the encryption formula is the following equation
It is calculated as follows,
The decryption formula is the following equation:
AGCD-based fully homomorphic encryption calculation system using a public key, which is calculated as follows.
삭제delete 제10항에 있어서,
상기 동형암호화 모듈은,
상기 임의의 다항식이 차수 만큼 크기가 증가했을 때, 상기 증가된 차수 에 상응하는 비밀키 및 공개키의 크기를 증가시키기 위하여,
상기 증가된 차수 에 상응하는 비밀키 생성 조건 , 비밀키 및 공개키의 크기 는 각각 하기 수학식
,
,
와 같이 연산되는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 시스템.
According to clause 10,
The homomorphic encryption module,
If the above arbitrary polynomial is of order When the size increases, the increased order In order to increase the size of the corresponding private key and public key,
The increased order Secret key generation conditions corresponding to , secret key and the size of the public key are the following equations, respectively:
,
,
AGCD-based fully homomorphic encryption calculation system using a public key, which is calculated as follows.
제10항에 있어서,
상기 동형암호화 모듈은,
메시지 크기 가 소수이고 일 때, 페르마(Fermat)의 작은 정리를 이용하여 , 이고 , 이면, 하기 수학식
를 도출하는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 시스템.
According to clause 10,
The homomorphic encryption module,
message size is a prime number When , using Fermat's little theorem, , ego , If so, the following equation
An AGCD-based fully homomorphic encryption operation system using a public key that derives .
제16항에 있어서,
상기 동형암호화 모듈은,
임의의 다항식으로 , 을 도출하고,
, , , 일 때, 복호화 과정인 하기 수학식
와 같이 연산하는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 시스템.
According to clause 16,
The homomorphic encryption module,
with an arbitrary polynomial , Derive
, , , When , the following equation, which is the decoding process,
AGCD-based fully homomorphic encryption calculation system using a public key that operates as follows.
제17항에 있어서,
완전동형암호 연산을 위한 공개키 크기와 조건들은 하기 수학식
,
,
,
와 같이 연산하는, 공개키를 이용한 AGCD 기반 완전동형암호 연산 시스템.
According to clause 17,
The public key size and conditions for fully homomorphic encryption operation are expressed in the following equation:
,
,
,
AGCD-based fully homomorphic encryption calculation system using a public key that operates as follows.
KR1020230003668A 2023-01-10 2023-01-10 Method and system for fully homomorphic encryption based on agcd using public key KR102582082B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230003668A KR102582082B1 (en) 2023-01-10 2023-01-10 Method and system for fully homomorphic encryption based on agcd using public key

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230003668A KR102582082B1 (en) 2023-01-10 2023-01-10 Method and system for fully homomorphic encryption based on agcd using public key

Publications (1)

Publication Number Publication Date
KR102582082B1 true KR102582082B1 (en) 2023-09-22

Family

ID=88189962

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230003668A KR102582082B1 (en) 2023-01-10 2023-01-10 Method and system for fully homomorphic encryption based on agcd using public key

Country Status (1)

Country Link
KR (1) KR102582082B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080014857A (en) * 2005-05-12 2008-02-14 아트멜 코포레이숀 Randomized modular polynomial reduction method and hardware therefor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080014857A (en) * 2005-05-12 2008-02-14 아트멜 코포레이숀 Randomized modular polynomial reduction method and hardware therefor

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Zhizhu Lian 외 3명, Bootstrapping of FHE over the Integers with Large Message Space, Hindawi Security and Communication Networks (2018.)* *
정진혁. Flexible Threshold Fully Homomorphic Encryption and its Decentralization via Key Generation Protocol. Diss. 서울대학교 대학원, 2019. *

Similar Documents

Publication Publication Date Title
US11301547B1 (en) Methods, systems, and devices for an encrypted and obfuscated algorithm in a computing environment
JP6665204B2 (en) Data encryption device and method, and data decryption device and method
KR102397579B1 (en) Method and apparatus for white-box cryptography for protecting against side channel analysis
KR20070039161A (en) Stream cipher combining system and method
JP6629466B2 (en) Security calculation system, security calculation device, security calculation method, program
JP6575532B2 (en) Encryption device, decryption device, encryption processing system, encryption method, decryption method, encryption program, and decryption program
KR20070057968A (en) Sharing a secret by using random function
KR20200047002A (en) Method for comparing ciphertext using homomorphic encryption and apparatus for executing thereof
EP3085005B1 (en) Secure data transformations
KR102096359B1 (en) Data transmission apparatus capable of secret key encryption based on involutory matrix and operating method thereof
EP3664359A1 (en) A computation device using shared shares
WO2018008547A1 (en) Secret computation system, secret computation device, secret computation method, and program
KR102582082B1 (en) Method and system for fully homomorphic encryption based on agcd using public key
CN116361849A (en) Backup data encryption and decryption method and device for encrypted database
KR101440680B1 (en) Homomorphic Encryption and Decryption Method using Chinese Remainder Theorem and apparatus using the same
KR102541388B1 (en) Apparatus and method for ring-lwe cryptoprocessor using mdf based ntt
US11558171B2 (en) Apparatus and method for encryption, apparatus and method for converting ciphertext
JP2009086746A (en) Information processor and information processing program
KR101219191B1 (en) Apparatus for protecting key information in volatile memory and method thereof
KR20230128728A (en) System and method for homomorphic encryption
CN115668334A (en) Secret information processing system, encryption device, encryption method, and encryption program
JP5573041B2 (en) Information processing apparatus, code generation method, code verification method, and program
KR102337865B1 (en) Homomorphic encryption-based arithmetic operation system and arithmetic operation method using the same
EP4280539A1 (en) Calculating method using zero-knowledge proof-friendly one-way function, and apparatus for implementing the same
Blackledge et al. Phase-Only Digital Encryption

Legal Events

Date Code Title Description
GRNT Written decision to grant