KR20210130620A - Homomorhpic encryption based encryption method and apparatus using composition of function - Google Patents

Homomorhpic encryption based encryption method and apparatus using composition of function Download PDF

Info

Publication number
KR20210130620A
KR20210130620A KR1020200139489A KR20200139489A KR20210130620A KR 20210130620 A KR20210130620 A KR 20210130620A KR 1020200139489 A KR1020200139489 A KR 1020200139489A KR 20200139489 A KR20200139489 A KR 20200139489A KR 20210130620 A KR20210130620 A KR 20210130620A
Authority
KR
South Korea
Prior art keywords
function
polynomial
processor
approximate
obtaining
Prior art date
Application number
KR1020200139489A
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 US17/236,176 priority Critical patent/US11558172B2/en
Priority to CN202110438433.5A priority patent/CN113541918A/en
Priority to EP21169784.2A priority patent/EP3902195A1/en
Publication of KR20210130620A publication Critical patent/KR20210130620A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Abstract

A homomorphic encryption-based encryption method using synthesis of functions and a device thereof are disclosed. The encryption method uses homomorphic encryption. The encryption method comprises the following steps of: generating a ciphertext by encrypting data; and performing bootstrapping on the ciphertext by performing modular reduction based on synthesis of functions for a modulus corresponding to the ciphertext.

Description

함수의 합성을 이용한 동형 암호 기반 암호화 방법 및 장치{HOMOMORHPIC ENCRYPTION BASED ENCRYPTION METHOD AND APPARATUS USING COMPOSITION OF FUNCTION}Homomorphic cipher-based encryption method and device using function composition

아래 실시예들은 함수의 합성을 이용한 동형 암호 기반 암호화 방법 및 장치에 관한 것이다.The following embodiments relate to a homomorphic encryption-based encryption method and apparatus using function composition.

완전 동형 암호화(fully homomorphic encryption)는 암호화된 데이터를 이용한 임의의 논리적 연산 또는 수학적 연산을 가능하게 하는 암호화 방식이다. 완전 동형 암호화 방식은 데이터 처리에서 보안을 유지하도록 한다.Fully homomorphic encryption is an encryption method that enables arbitrary logical or mathematical operations using encrypted data. Fully homogeneous encryption ensures security in data processing.

하지만, 종래의 암호화 방식은 암호화된 데이터의 처리가 어렵기 때문에 고객 프라이버시의 보호가 미흡할 수밖에 없었다.However, since the conventional encryption method is difficult to process encrypted data, the protection of customer privacy was inevitably insufficient.

완전 동형 암호화는 고객들이 프라이버시를 지키면서 많은 서비스를 받는 것을 가능하게 한다.Fully homogeneous encryption enables customers to receive many services while maintaining their privacy.

동형 암호(homomorphic encryption)를 이용한 암호화 방법에 있어서, 상기 암호화 방법은, 데이터를 암호화함으로써 사이퍼텍스트(ciphertext)를 생성하는 단계와, 상기 사이퍼텍스트에 대응하는 모듈러스(modulus)에 대해 함수의 합성에 기초한 모듈러 리덕션(modular reduction)을 수행함으로써 상기 사이퍼텍스트에 부트스트래핑(bootstrapping)을 수행하는 단계를 포함한다.In the encryption method using homomorphic encryption, the encryption method comprises the steps of: generating a ciphertext by encrypting data; and performing bootstrapping on the ciphertext by performing modular reduction.

상기 수행하는 단계는, 상기 함수 및 상기 함수의 역함수에 기초하여 상기 모듈러 리덕션을 근사(approximate)함으로써 상기 부트스트래핑을 수행하는 단계를 포함할 수 있다.The performing may include performing the bootstrapping by approximating the modular reduction based on the function and an inverse function of the function.

상기 함수 및 상기 함수의 역함수에 기초하여 상기 모듈러 리덕션을 근사(approximate)함으로써 상기 부트스트래핑을 수행하는 단계는, 상기 함수의 근사 다항식을 획득하는 단계와, 상기 역함수의 근사 다항식을 획득하는 단계와, 상기 함수의 근사 다항식 및 상기 역함수의 근사 다항식의 합성 함수에 기초하여 상기 모듈러 리덕션을 근사하는 합성 함수를 생성하는 단계를 포함할 수 있다.The step of performing the bootstrapping by approximating the modular reduction based on the function and the inverse of the function comprises: obtaining an approximate polynomial of the function; obtaining an approximate polynomial of the inverse function; and generating a synthesis function approximating the modular reduction based on the synthesis function of the approximate polynomial of the function and the approximate polynomial of the inverse function.

상기 함수는, 삼각 함수를 포함할 수 있다.The function may include a trigonometric function.

상기 함수의 근사 다항식을 획득하는 단계는, 상기 함수가 삼각 함수인 경우, 상기 삼각 함수에 배각 공식을 적용하여 상기 삼각 함수의 배각 함수를 획득하는 단계를 포함할 수 있다.The obtaining of the approximate polynomial of the function may include, when the function is a trigonometric function, obtaining a quadrangular function of the trigonometric function by applying a quadrangular formula to the trigonometric function.

상기 함수의 근사 다항식을 획득하는 단계는, 상기 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정하는 단계와, 상기 하나 이상의 기준점에 기초하여 임의의 다항식을 획득하는 단계와, 상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 근사 다항식을 생성하는 단계를 포함할 수 있다.The obtaining of the approximate polynomial of the function comprises: determining one or more reference points based on a degree of the approximate polynomial; obtaining an arbitrary polynomial based on the one or more reference points; generating the approximate polynomial based on one or more poles.

상기 임의의 다항식을 획득하는 단계는, 상기 하나 이상의 기준점을 지나는 조각 연속(piecewise continuous) 함수를 획득하는 단계와, 상기 하나 이상의 기준점에서 상기 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는 단계를 포함할 수 있다.The obtaining of the arbitrary polynomial may include obtaining a piecewise continuous function passing through the one or more reference points, and an absolute value of an error with the piecewise continuous function at the one or more reference points being a predetermined value. obtaining the arbitrary polynomial by generating the polynomial.

상기 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는 단계는, 상기 하나 이상의 기준점에 포함된 제1 기준점에서의 오차와 상기 제1 기준점과 인접한 제2 기준점의 오차의 부호가 상이하고 절대값이 상기 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는 단계를 포함할 수 있다.The obtaining of the arbitrary polynomial by generating a polynomial in which the absolute value of the error with the piecewise continuous function is a predetermined value may include: an error at a first reference point included in the one or more reference points and an error at the first reference point adjacent to the first reference point and obtaining the arbitrary polynomial by generating a polynomial in which the sign of the error of the second reference point is different and the absolute value is the predetermined value.

상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 근사 다항식을 생성하는 단계는, 상기 임의의 다항식과 상기 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득하는 단계와, 상기 후보점들 중에서 상기 차수에 기초한 수의 타겟점들을 선택하는 단계와, 상기 타겟점들에 기초하여 상기 근사 다항식을 생성하는 단계를 포함할 수 있다.The generating of the approximate polynomial based on the one or more poles selected from the arbitrary polynomial may include: an absolute value greater than or equal to a predetermined value among poles of an error between the arbitrary polynomial and the fragment continuous function passing through the one or more reference points. The method may include obtaining candidate points, selecting a number of target points based on the order from among the candidate points, and generating the approximate polynomial based on the target points.

동형 암호(homomorphic encryption)를 이용한 암호화 장치에 있어서, 상기 암호화 장치는, 데이터를 암호화함으로써 사이퍼텍스트(ciphertext)를 생성하고, 상기 사이퍼텍스트에 대응하는 모듈러스(modulus)에 대해 함수의 합성에 기초한 모듈러 리덕션(modular reduction)을 수행함으로써 상기 사이퍼텍스트에 부트스트래핑(bootstrapping)을 수행하는 프로세서와, 상기 프로세서에 의해 실행가능한 인스트럭션을 저장하는 메모리를 포함한다.In an encryption device using homomorphic encryption, the encryption device generates a ciphertext by encrypting data, and modular reduction based on the synthesis of a function with respect to a modulus corresponding to the ciphertext. and a processor that bootstraps the ciphertext by performing modular reduction, and a memory that stores instructions executable by the processor.

상기 프로세서는, 상기 함수 및 상기 함수의 역함수에 기초하여 상기 모듈러 리덕션을 근사(approximate)함으로써 상기 부트스트래핑을 수행할 수 있다.The processor may perform the bootstrapping by approximating the modular reduction based on the function and an inverse function of the function.

상기 프로세서는, 상기 함수의 근사 다항식을 획득하고, 상기 역함수의 근사 다항식을 획득하고, 상기 함수의 근사 다항식 및 상기 역함수의 근사 다항식의 합성 함수에 기초하여 상기 모듈러 리덕션을 근사하는 합성 함수를 생성할 수 있다.The processor is configured to obtain an approximate polynomial of the function, obtain an approximate polynomial of the inverse function, and generate a synthesis function approximating the modular reduction based on a synthesis function of the approximate polynomial of the function and the approximate polynomial of the inverse function. can

상기 함수는, 삼각 함수를 포함할 수 있다.The function may include a trigonometric function.

상기 프로세서는, 상기 함수가 삼각 함수인 경우, 상기 삼각 함수에 배각 공식을 적용하여 상기 삼각 함수의 배각 함수를 획득할 수 있다.When the function is a trigonometric function, the processor may obtain a quadrangular function of the trigonometric function by applying a quadrangular formula to the trigonometric function.

상기 프로세서는, 상기 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정하고, 상기 하나 이상의 기준점에 기초하여 임의의 다항식을 획득하고, 상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 근사 다항식을 생성할 수 있다.The processor determines one or more reference points based on the degree of the approximate polynomial, obtains an arbitrary polynomial based on the one or more reference points, and generates the approximate polynomial based on one or more poles selected from the arbitrary polynomial. can do.

상기 프로세서는, 상기 하나 이상의 기준점을 지나는 조각 연속(piecewise continuous) 함수를 획득하고, 상기 하나 이상의 기준점에서 상기 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득할 수 있다.The processor is configured to obtain a piecewise continuous function passing through the one or more reference points, and generate a polynomial such that an absolute value of an error from the piecewise continuous function at the one or more reference points is a predetermined value. can be obtained.

상기 프로세서는, 상기 하나 이상의 기준점에 포함된 제1 기준점에서의 오차와 상기 제1 기준점과 인접한 제2 기준점의 오차의 부호가 상이하고 절대값이 상기 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득할 수 있다.The processor is configured to generate a polynomial in which an error at a first reference point included in the one or more reference points is different from an error of a second reference point adjacent to the first reference point and an absolute value becomes the predetermined value by generating a polynomial. polynomials can be obtained.

상기 프로세서는, 상기 임의의 다항식과 상기 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득하고, 상기 후보점들 중에서 상기 차수에 기초한 수의 타겟점들을 선택하고, 상기 타겟점들에 기초하여 상기 근사 다항식을 생성할 수 있다.The processor is configured to obtain candidate points whose absolute value is greater than or equal to a predetermined value from among the poles of the error between the arbitrary polynomial and the fragment continuous function passing through the one or more reference points, and among the candidate points, the number of points based on the degree Target points may be selected and the approximate polynomial may be generated based on the target points.

도 1은 일 실시예에 따른 암호화 장치의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 암호화 장치가 근사 함수를 획득하는 동작의 순서를 나타낸다.
도 3은 도 1에 도시된 암호화 장치가 함수 및 그 역함수에 대한 근사 다항식을 획득하는 알고리즘의 일 예를 나타낸다.
도 4는 도 1에 도시된 암호화 장치가 함수 및 그 역함수에 대한 근사 다항식을 획득하는 알고리즘의 다른 예를 나타낸다.
도 5는 도 1에 도시된 암호화 장치의 동작의 순서를 나타낸다.
1 shows a schematic block diagram of an encryption apparatus according to an embodiment.
FIG. 2 shows a sequence of operations in which the encryption device shown in FIG. 1 obtains an approximation function.
FIG. 3 shows an example of an algorithm in which the encryption device shown in FIG. 1 obtains an approximate polynomial for a function and its inverse function.
4 shows another example of an algorithm in which the encryption device shown in FIG. 1 obtains an approximate polynomial for a function and its inverse function.
FIG. 5 shows an operation sequence of the encryption device shown in FIG. 1 .

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, since various changes may 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 modifications, equivalents and substitutes for the embodiments are included in the scope of the rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for description purposes only, and should not be construed as limiting. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present specification, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one 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 should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components are given the same reference numerals regardless of the reference numerals, and the overlapping description thereof will be omitted. In the description of 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 thereof 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), (b), etc. may be used. These terms are only for distinguishing the components from other components, and the essence, order, or order of the components are not limited by the terms. When it is described that a component is “connected”, “coupled” or “connected” to another component, the component may be directly connected or connected to the other component, but another component is between each component. It will be understood that may also be "connected", "coupled" or "connected".

어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.Components included in one embodiment and components having a common function will be described using the same names in other embodiments. Unless otherwise stated, a description described in one embodiment may be applied to another embodiment, and a detailed description in the overlapping range will be omitted.

도 1은 일 실시예에 따른 암호화 장치의 개략적인 블록도를 나타낸다.1 shows a schematic block diagram of an encryption apparatus according to an embodiment.

도 1을 참조하면, 암호화(encryption) 장치(10)는 데이터의 암호화를 수행할 수 있다. 암호화 장치(10)는 데이터의 암호화를 통해 암호화된 데이터를 생성할 수 있다. 이하에서, 암호화된 데이터는 사이퍼텍스트(ciphertext)로 지칭될 수 있다.Referring to FIG. 1 , an encryption device 10 may perform data encryption. The encryption device 10 may generate encrypted data through data encryption. Hereinafter, encrypted data may be referred to as ciphertext.

암호화 장치(10)는 동형 암호(homomorphic encryption)를 이용한 암호화 및 복호화를 수행할 수 있다. 암호화 장치(10)는 동형 암호를 이용하여 암호화된 데이터를 복호화(decryption) 없이도 연산할 수 있는 암호 기술을 제공할 수 있다. 예를 들어, 암호화 장치(10)는 동형 암호를 이용하여 암호화된 상태에서 연산한 결과를 복호화함으로써 평문(plain text) 상태의 데이터를 연산한 결과와 동일한 결과가 도출될 수 있다. 암호화 장치(10)는 임의의 실수 또는 복소수에 대한 동형 암호 연산을 제공할 수 있다.The encryption apparatus 10 may perform encryption and decryption using homomorphic encryption. The encryption device 10 may provide an encryption technology capable of calculating data encrypted using homomorphic encryption without decryption. For example, the encryption device 10 may derive the same result as the result of calculating data in a plain text state by decrypting the result of the operation in the encrypted state using the homomorphic encryption. The encryption device 10 may provide a homomorphic encryption operation for any real number or complex number.

암호화 장치(10)는 동형 암호에 필요한 부트스트래핑(bootstrapping)을 수행할 수 있다. 암호화 장치(10)는 동형 암호에 요구되는 모듈러 리덕션(modular reduction)에 대응하는 함수를 근사하기 위해 근사 다항식을 생성할 수 있다.The encryption device 10 may perform bootstrapping required for homomorphic encryption. The encryption device 10 may generate an approximate polynomial to approximate a function corresponding to a modular reduction required for homomorphic encryption.

암호화 장치(10)는 최적의 최소최대 근사 다항식(optimal minimax approximate polynomial)의 각 차수에 대하여 최소최대 근사 오차(minimax approximation error)를 찾아낼 수 있다.The cryptographic device 10 may find a minimax approximation error for each order of an optimal minimax approximate polynomial.

암호화 장치(10)는 모듈러 리덕션 동작을 최적으로 근사하는 근사 다항식으로 찾아냄으로써, 동형 암호 방식의 최소최대 근사 오차의 관점에서 우수한 성능을 제공할 수 있다.The encryption apparatus 10 may provide excellent performance in terms of the minimum and maximum approximation error of the homomorphic encryption method by finding an approximate polynomial that optimally approximates the modular reduction operation.

암호화 장치(10)는 모듈러 리덕션 함수를 근사 하기 위한 근사 영역 정보를 이용하여 모듈러 리덕션 함수를 근사하는 근사 다항식을 생성할 수 있다. 암호화 장치(10)는 함수의 합성에 기초한 모듈러 리덕션을 수행할 수 있다. 암호화 장치(10)는 함수의 합성에 기초한 모듈러 리덕션을 수행함으로써 부트스트래핑을 수행할 수 있다.The encryption device 10 may generate an approximate polynomial for approximating the modular reduction function by using the approximate region information for approximating the modular reduction function. The encryption device 10 may perform modular reduction based on function synthesis. The encryption device 10 may perform bootstrapping by performing modular reduction based on function synthesis.

암호화 장치(10)는 프로세서(100) 및 메모리(200)를 포함한다.The encryption device 10 includes a processor 100 and a memory 200 .

프로세서(100)는 메모리(200)에 저장된 데이터를 처리할 수 있다. 프로세서(100)는 메모리(200)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(100)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The processor 100 may process data stored in the memory 200 . The processor 100 may execute computer-readable codes (eg, software) stored in the memory 200 and instructions induced by the processor 100 .

"프로세서(100)"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.The “processor 100” may be a data processing device implemented in hardware having circuitry having a physical structure for executing desired operations. For example, desired operations may include code or instructions included in a program.

예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(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 device implemented as hardware includes a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , an Application-Specific Integrated Circuit (ASIC), and a Field Programmable Gate Array (FPGA).

프로세서(100)는 데이터를 암호화함으로써 사이퍼텍스트(ciphertext)를 생성할 수 있다. 데이터는 컴퓨터가 처리할 수 있는 문자, 숫자, 소리, 그림 따위의 형태로 된 정보를 의미할 수 있다.The processor 100 may generate ciphertext by encrypting data. Data may refer to information in the form of letters, numbers, sounds, pictures, etc. that a computer can process.

프로세서(100)는 생성한 사이퍼텍스트에 대응하는 모듈러스(modulus)에 대해 함수의 합성(composition)에 기초한 모듈러 리덕션(modular reduction)을 수행함으로써 사이퍼텍스트에 부트스트래핑(bootstrapping)을 수행할 수 있다.The processor 100 may perform bootstrapping on the ciphertext by performing modular reduction based on a composition of a function on a modulus corresponding to the generated ciphertext.

프로세서(100)는 함수 및 그 함수의 역함수에 기초하여 모듈러 리덕션을 근사(approximate)함으로써 부트스트래핑을 수행할 수 있다. 프로세서(100)는 함수의 근사 다항식을 획득할 수 있다. 프로세서(100)는 역함수의 근사 다항식을 획득할 수 있다.The processor 100 may perform bootstrapping by approximating the modular reduction based on the function and the inverse function of the function. The processor 100 may obtain an approximate polynomial of the function. The processor 100 may obtain an approximate polynomial of the inverse function.

프로세서(100)는 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정할 수 있다. 프로세서(100)는 하나 이상의 기준점에 기초하여 임의의 다항식을 획득할 수 있다. 프로세서(100)는 하나 이상의 기준점을 지나는 조각 연속(piecewise continuous) 함수를 획득할 수 있다. 프로세서(100)는 하나 이상의 기준점에서 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The processor 100 may determine one or more reference points based on the degree of the approximate polynomial. The processor 100 may obtain any polynomial based on one or more reference points. The processor 100 may obtain a piecewise continuous function passing through one or more reference points. The processor 100 may obtain an arbitrary polynomial by generating a polynomial in which the absolute value of the error with the piece continuity function at one or more reference points is a predetermined value.

프로세서(100)는 하나 이상의 기준점에 포함된 제1 기준점에서의 오차와 제1 기준점과 인접한 제2 기준점의 오차의 부호가 상이하고 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The processor 100 obtains an arbitrary polynomial by generating a polynomial in which the sign of the error at the first reference point included in one or more reference points and the error of the second reference point adjacent to the first reference point are different and the absolute value is a predetermined value. can do.

프로세서(100)는 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 근사 다항식을 생성할 수 있다. 프로세서(100)는 임의의 다항식과 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득할 수 있다.The processor 100 may generate an approximate polynomial based on one or more poles selected from any polynomial. The processor 100 may obtain candidate points whose absolute value is greater than or equal to a predetermined value among the poles of the error between the arbitrary polynomial and the fragment continuous function passing through one or more reference points.

프로세서(100)는 후보점들 중에서 차수에 기초한 수의 타겟점들을 선택할 수 있다. 프로세서(100)는 타겟점들에 기초하여 근사 다항식을 생성할 수 있다. The processor 100 may select the number of target points based on the degree from among the candidate points. The processor 100 may generate an approximate polynomial based on the target points.

프로세서(100)는 함수 및 그 역함수 중 적어도 하나의 근사 다항식을 획득한 후, 획득한 근사 다항식에 기초한 함수의 합성을 수행함으로써 모듈러 리덕션을 수행할 수 있다. 함수 및 그 역함수의 근사 다항식을 획득하는 과정은 도 3 및 도 4를 참조하여 자세하게 설명한다.After obtaining at least one approximate polynomial of a function and an inverse function thereof, the processor 100 may perform modular reduction by performing synthesis of a function based on the obtained approximate polynomial. A process of obtaining an approximate polynomial of a function and its inverse function will be described in detail with reference to FIGS. 3 and 4 .

프로세서(100)는 함수의 근사 다항식 및 역함수의 근사 다항식의 합성 함수에 기초하여 모듈러 리덕션을 근사하는 합성 함수를 생성할 수 있다. 이 때, 함수는 삼각 함수를 포함할 수 있다. 예를 들어, 삼각 함수는 sin 함수 및 cos 함수 중에서 적어도 하나를 포함할 수 있다.The processor 100 may generate a synthesis function approximating the modular reduction based on the synthesis function of the approximate polynomial of the function and the approximate polynomial of the inverse function. In this case, the function may include a trigonometric function. For example, the trigonometric function may include at least one of a sin function and a cos function.

프로세서(100)는 함수가 삼각 함수인 경우, 삼각 함수에 배각 공식을 적용하여 삼각 함수의 배각 함수를 획득할 수 있다.When the function is a trigonometric function, the processor 100 may obtain a quadrangular function of the trigonometric function by applying a quadrangular formula to the trigonometric function.

메모리(200)는 프로세서에 의해 실행가능한 인스트럭션들(또는 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서의 동작 및/또는 프로세서의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.The memory 200 may store instructions (or programs) executable by the processor. For example, the instructions may include instructions for executing an operation of a processor and/or an operation of each component of the processor.

메모리(200)는 휘발성 메모리 장치 또는 불휘발성 메모리 장치로 구현될 수 있다.The memory 200 may be implemented as a volatile memory device or a nonvolatile 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 Eelectronic Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.Nonvolatile memory devices include EEPROM (Electrically Erasable Programmable Read-Only Memory), Flash memory, MRAM (Magnetic RAM), Spin-Transfer Torque (STT)-MRAM (Spin-Transfer Torque (STT)-MRAM), Conductive Bridging RAM (CBRAM). , FeRAM (Ferroelectric RAM), PRAM (Phase change RAM), Resistive RAM (RRAM), Nanotube RRAM (Nanotube RRAM), Polymer RAM (PoRAM), Nano Floating Gate Memory Memory (NFGM)), a holographic memory, a molecular electronic memory device, or an Insulator Resistance Change Memory.

도 2는 도 1에 도시된 암호화 장치가 근사 함수를 획득하는 동작의 순서를 나타낸다.FIG. 2 shows a sequence of operations in which the encryption device shown in FIG. 1 obtains an approximation function.

도 2를 참조하면, 프로세서(100)는 모듈러 리덕션 함수를 근사함으로써 부트스트래핑을 수행할 수 있다. 프로세서(100)는 부트스트래핑 과정 중에 모듈러스 연산(예를 들어, 모듈러스 리덕션 연산)을 필요로 하는 암호문(또는, 사이퍼텍스트)을 감지할 수 있다(210). 예를 들어, 프로세서(100)는 모듈러스가 임계점 이하의 값을 가져 더 이상 연산이 수행될 수 없는 사이퍼텍스트를 감지할 수 있다.Referring to FIG. 2 , the processor 100 may perform bootstrapping by approximating the modular reduction function. The processor 100 may detect a ciphertext (or ciphertext) requiring a modulus operation (eg, a modulus reduction operation) during the bootstrapping process ( 210 ). For example, the processor 100 may detect a ciphertext in which the modulus has a value less than or equal to a threshold, so that no further operation can be performed.

프로세서(100)는 부트 스트래핑을 수행하기 위해 모듈러 리덕션 함수를 근사할 수 있다. 프로세서(100)는 임의의 함수의 근사 다항식을 획득하고, 역함수의 근사 다항식을 획득할 수 있다. 예를 들어, 임의의 함수는 삼각 함수를 포함할 수 있다.The processor 100 may approximate a modular reduction function to perform bootstrapping. The processor 100 may obtain an approximate polynomial of an arbitrary function and obtain an approximate polynomial of an inverse function. For example, any function may include a trigonometric function.

도 2의 예시는 임의의 함수가 sin 함수인 경우를 기준으로 설명하지만, cos의 경우도 동일한 방식으로 모듈러 리덕션 함수를 근사할 수 있다.The example of FIG. 2 is described based on a case in which an arbitrary function is a sin function, but in the case of cos, the modular reduction function may be approximated in the same manner.

프로세서(100)는 함수의 근사 다항식 및 역함수의 근사 다항식의 합성 함수에 기초하여 모듈러 리덕션을 근사하는 합성 함수를 생성할 수 있다. 프로세서(100)는 상대적으로 낮은 차수를 갖는 복수의 다항식의 합성을 통해, 모듈러 리덕션 함수를 근사할 수 있다.The processor 100 may generate a synthesis function approximating the modular reduction based on the synthesis function of the approximate polynomial of the function and the approximate polynomial of the inverse function. The processor 100 may approximate the modular reduction function through synthesis of a plurality of polynomials having a relatively low order.

예를 들어, 프로세서(100)는 sin(t)에 대한 근사 다항식 f(t)를 획득할 수 있다(230). 프로세서(100)는 arcsin(t)에 대한 근사 다항식 g(t)를 획득할 수 있다(250). 근사 다항식을 획득하는 과정은 도 3 및 도 4를 참조하여 보다 자세하게 설명한다.For example, the processor 100 may obtain an approximate polynomial f(t) for sin(t) ( 230 ). The processor 100 may obtain an approximate polynomial g(t) for arcsin(t) ( 250 ). A process of obtaining the approximate polynomial will be described in more detail with reference to FIGS. 3 and 4 .

프로세서(100)는 획득한 g(t)와 f(t)를 합성하여 g

Figure pat00001
f(t)를 획득할 수 있다(270). 프로세서(100)는 합성 함수에 기초하여 모듈러스 함수(예를 들어, 모듈러 리덕션 함수)를 근사할 수 있다(290).The processor 100 synthesizes the obtained g(t) and f(t) to obtain g
Figure pat00001
f(t) can be obtained (270). The processor 100 may approximate a modulus function (eg, a modular reduction function) based on the composition function ( 290 ).

프로세서(100)는 모듈러스 함수를 삼각 함수와 역삼각 함수의 합성 함수로 근사함으로써 삼각 삼수만을 이용하여 근사한 모듈러스 함수에 비해 오차를 줄일 수 있다.The processor 100 approximates the modulus function as a composite function of a trigonometric function and an inverse trigonometric function, thereby reducing an error compared to an approximated modulus function using only trigonometric trigonometric functions.

프로세서(100)는 함수와 그 역함수의 근사 다항식의 합성에 기반한 모듈러 리덕션 함수를 이용하여 삼각 함수만을 이용한 근사로 인해 발생하는 근본적인 오차를 감소시킬 수 있다. 프로세서(100)는 삼각 함수의 배각 공식을 적용시킴으로써 넌 스칼라 곱셈(non-scalar multiplication)의 수를 감소시킬 수 있다. 함수와 그 역함수의 합성을 통해, 프로세서(100)는 근사 함수에 대한 연산의 수를 감소시킬 수 있다.The processor 100 may reduce a fundamental error caused by approximation using only trigonometric functions by using a modular reduction function based on the synthesis of an approximate polynomial of a function and its inverse function. The processor 100 may reduce the number of non-scalar multiplications by applying the quadrangular formula of the trigonometric function. Through the synthesis of functions and their inverse functions, the processor 100 can reduce the number of operations for the approximate function.

함수 f 가 sin 함수이고 g가 arcsin 함수인 경우, 두 함수는 수학식 1 및 수학식 2와 같이 정의될 수 있다.When the function f is a sin function and g is an arcsin function, the two functions may be defined as in Equations 1 and 2.

Figure pat00002
Figure pat00002

Figure pat00003
Figure pat00003

여기서,

Figure pat00004
Figure pat00005
의 범위를 가질 수 있다.here,
Figure pat00004
silver
Figure pat00005
may have a range of

수학식 1 및 수학식 2의 함수에 대한 합성 함수는 수학식 3과 같이 나타낼 수 있다.A synthesis function for the functions of Equations 1 and 2 can be expressed as Equation 3 above.

Figure pat00006
Figure pat00006

여기서,

Figure pat00007
를 대입하면 합성 함수는 수학식 4와 같을 수 있다.here,
Figure pat00007
By substituting , the composition function may be the same as in Equation (4).

Figure pat00008
Figure pat00008

여기서, normod(t)는 정규화된 모듈러 리덕션 함수를 의미할 수 있다. 수학식 1 내지 4를 참조하면, 프로세서(100)는 함수 f 및 g를 근사 다항식을 통해 근사시킨 후 합성함으로써 모듈러 리덕션 함수의 오차를 감소시킬 수 있다.Here, normod(t) may mean a normalized modular reduction function. Referring to Equations 1 to 4, the processor 100 may reduce the error of the modular reduction function by approximating the functions f and g through an approximate polynomial and then synthesizing them.

프로세서(100)는 상대적으로 작은

Figure pat00009
에 대해서도 선형 다항식을 이용하여 g(x)를 근사시킬 수 있다. 예를 들어, 프로세서(100)는 g(x)를 항등 함수(identity function)인 x로 근사시킬 수 있다.The processor 100 is relatively small
Figure pat00009
Also, g(x) can be approximated using a linear polynomial. For example, the processor 100 may approximate g(x) to x, which is an identity function.

또한, cos 함수는 sin 함수의 평행 이동(parallel shift) 함수이므로, 프로세서(100)는 cos 함수에 대해서도 위와 같이 동일한 함수의 합성을 수행할 수 있다.In addition, since the cos function is a parallel shift function of the sin function, the processor 100 may perform synthesis of the same function as above for the cos function.

임의의 함수가 홀 함수(odd function)인 경우, 그 근사 다항식도 홀 함수 일 수 있다. 즉, 역함수가 arcsine 함수인 경우 arcsin 함수의 근사 다항식은 홀 함수일 수 있다.When an arbitrary function is an odd function, its approximate polynomial may also be an odd function. That is, if the inverse function is an arcsine function, the approximate polynomial of the arcsin function may be a Hall function.

따라서, 차수가 2차 이하인 다항식 중에서 arcsin 함수의 근사 다항식은 선형 다항식이기 때문에, 근사 다항식과 arsin 함수 간의 오차는 체비 셰프(Chebyshev) 교번 정리(alternating theorem)을 만족하는 4 개의 전역 극점(global extreme point)을 가질 수 있다.Therefore, since the approximate polynomial of the arcsin function is a linear polynomial among polynomials of second order or less, the error between the approximate polynomial and the arsin function is four global extreme points satisfying the Chebyshev alternating theorem. ) can have

프로세서(100)는 구간

Figure pat00010
에서 arcsin 함수에 대한 최소 최대 근사 다항식
Figure pat00011
을 수학식 5와 같이 획득할 수 있다.The processor 100 is a section
Figure pat00010
min max approximation polynomial for arcsin function in
Figure pat00011
can be obtained as in Equation 5.

Figure pat00012
Figure pat00012

또한, 수학식 6의 관계가 만족될 수 있다.Also, the relation of Equation 6 may be satisfied.

Figure pat00013
Figure pat00013

이 때, 모든 함수의 정의역(domain)은

Figure pat00014
일 수 있다.In this case, the domain of all functions is
Figure pat00014
can be

Figure pat00015
이고,
Figure pat00016
일 때, 수학식 4의 정규화된 모듈러 리덕션 함수는 수학식 7과 같이 계산될 수 있다.
Figure pat00015
ego,
Figure pat00016
When , the normalized modular reduction function of Equation 4 may be calculated as Equation 7.

Figure pat00017
Figure pat00017

여기서,

Figure pat00018
의 최소 선형 다항식은
Figure pat00019
와 같을 수 있다. 따라서, 원래의 근사 공식에 상수
Figure pat00020
가 곱해진 형태를 가지기 때문에, 프로세서(100)는 cos 근사가 가지는 근본적인 근사 오차를 1/4 배만큼 감소시킬 수 있다.here,
Figure pat00018
The least linear polynomial of
Figure pat00019
can be the same as Therefore, constant in the original approximation formula
Figure pat00020
Since has a multiplied form, the processor 100 can reduce the fundamental approximation error of the cos approximation by a factor of 1/4.

이를 통해, 프로세서(100)는 곱셈의 팩터(multiplicative factor)를 조절하는 것 만으로 2 비트의 정확도를 추가적으로 획득할 수 있다.Through this, the processor 100 may additionally acquire 2-bit accuracy only by adjusting a multiplicative factor.

수학식 5 내지 수학식 7은 역함수의 근사 다항식의 차수가 일차인 경우를 설명한 것이고, 프로세서(100)는 역함수의 근사 다항식의 차수를 2차 이상으로 근사함으로써 최소 최대 오차를 더욱 더 감소시킬 수 있다.Equations 5 to 7 describe a case where the order of the approximate polynomial of the inverse function is first-order, and the processor 100 may further reduce the minimum and maximum error by approximating the order of the approximate polynomial of the inverse function to the second or higher order. .

프로세서(100)는 수학식 8과 같이 근사 다항식의 차수를 3차로 높여 근사시킬 수 있다.The processor 100 may increase the degree of the approximate polynomial to the third order to approximate it as shown in Equation (8).

Figure pat00021
Figure pat00021

여기서, 다항식의 계수 c1, c3를 획득하는 과정은 도 3을 참조하여 설명한다. 수학식 8을 수학식 4에 적용하면 수학식 9와 같이 정규화된 모듈러 리덕션 함수를 획득할 수 있다.Here, a process of obtaining the coefficients c 1 and c 3 of the polynomial will be described with reference to FIG. 3 . When Equation 8 is applied to Equation 4, a normalized modular reduction function as Equation 9 can be obtained.

Figure pat00022
Figure pat00022

모듈러 리덕션 함수를 근사하기 위해서, 프로세서(100)는 sin 또는 cos 함수를 최소최대 근사 다항식을 이용하여 근사한 후, 수학식 8의

Figure pat00023
를 근사할 수 있다. 프로세서(100)는 sin 또는 cos 함수를 근사하기 위해 배각 공식을 적용할 수 있다.In order to approximate the modular reduction function, the processor 100 approximates the sin or cos function using the minimum and maximum approximate polynomial, and then
Figure pat00023
can be approximated. The processor 100 may apply a double angle formula to approximate a sin or cos function.

배각 공식을 적용함으로써 sin 또는 cos 함수가 근사된 후에 두 개의 깊이(depth) 및 두 개의 넌스칼라 곱셈이 추가적으로 요구될 수 있다. 배각 공식을 통해, 정규화된 모듈러 리덕션 함수에 대한 최소 최대 근사 오차는 역함수의 근사 다항식의 차수가 1인 경우의 근사 평탄 오차(approximation flat error)인

Figure pat00024
와 수학식 8을 이용하여 모듈러 리덕션 함수를 근사한 경우의 최소 최대 근사 오차인
Figure pat00025
사이의 값을 가질 수 있다.After the sin or cos function is approximated by applying the double angle formula, two depth and two nonscalar multiplications may be additionally required. Through the double angle formula, the minimum and maximum approximation error for the normalized modular reduction function is the approximation flat error when the approximate polynomial of the inverse function is of degree 1.
Figure pat00024
The minimum maximum approximate error when the modular reduction function is approximated using Equation 8 and
Figure pat00025
It can have values between

Figure pat00026
Figure pat00027
의 2n+1 차의 최적의 최소최대 근사 다항식(optimal minimax approximate polynomial)이라고 할 때,
Figure pat00028
은 홀수 차항만을 포함할 수 있다. 이하에서,
Figure pat00029
Figure pat00030
의 최소최대 근사 오차를 의미할 수 있다.
Figure pat00026
cast
Figure pat00027
Given the optimal minimax approximate polynomial of the 2n+1 order of
Figure pat00028
can contain only odd derivative terms. Below,
Figure pat00029
silver
Figure pat00030
It may mean the minimum maximum approximate error of .

최소최대 근사 오차가

Figure pat00031
Figure pat00032
사이의 값을 갖도록 하기 위해, 프로세서(100)는 수학식 10과 같은 정규화된 모듈러 리덕션 함수를 획득할 수 있다.Minimum Maximum Approximate Error
Figure pat00031
Wow
Figure pat00032
In order to have a value between, the processor 100 may obtain a normalized modular reduction function as in Equation (10).

Figure pat00033
Figure pat00033

여기서, n이 증가할수록

Figure pat00034
은 0에 가까워질 수 있다. 프로세서(100)는 삼각 함수와 역삼각 함수의 근사 함수의 합성을 통해서, 근사 오차를 감소시킬 수 있다.Here, as n increases,
Figure pat00034
can be close to 0. The processor 100 may reduce an approximation error by synthesizing an approximate function of a trigonometric function and an inverse trigonometric function.

이하에서, 도 3 및 도 4를 참조하여 함수 및 그 역함수의 근사 다항식을 획득하는 과정에 대하여 자세하게 설명한다.Hereinafter, a process of obtaining an approximate polynomial of a function and its inverse function will be described in detail with reference to FIGS. 3 and 4 .

도 3은 도 1에 도시된 암호화 장치가 함수 및 그 역함수에 대한 근사 다항식을 획득하는 알고리즘의 일 예를 나타낸다.FIG. 3 shows an example of an algorithm in which the encryption device shown in FIG. 1 obtains an approximate polynomial for a function and its inverse function.

도 3을 참조하면, 프로세서(100)는 함수 및/또는 그 함수의 역함수의 근사 다항식을 획득할 수 있다. 프로세서(100)는 도 3의 알고리즘 1을 이용하여 함수 및/또는 그 역함수의 근사 다항식을 획득할 수 있다.Referring to FIG. 3 , the processor 100 may obtain an approximate polynomial of a function and/or an inverse of the function. The processor 100 may obtain an approximate polynomial of a function and/or an inverse function thereof using Algorithm 1 of FIG. 3 .

프로세서(100)는 함수 및 그 역함수 중에서 적어도 하나에 대한 근사 다항식을 획득할 수 있다. 함수 및 그 역함수의 근사 다항식을 획득하는 과정을 동일할 수 있다.The processor 100 may obtain an approximate polynomial for at least one of a function and an inverse function thereof. A process for obtaining an approximate polynomial of a function and its inverse function may be the same.

프로세서(100)는 도 3의 알고리즘 1을 이용하여 구간 [a, b] 상의 임의의 연속 함수에 대하여 최소 최대 근사 다항식을 찾아냄으로써 근사 다항식을 생성할 수 있다. 프로세서(100)는 체비셰프 교번 정리(Chebyshev alternation theorem)을 이용하여 이퀴오실레이션(equioscillation) 조건을 만족하는 근사 다항식을 생성할 수 있다.The processor 100 may generate the approximate polynomial by finding the minimum and maximum approximate polynomial for any continuous function on the interval [a, b] using Algorithm 1 of FIG. 3 . The processor 100 may generate an approximate polynomial that satisfies an equioscillation condition by using the Chebyshev alternation theorem.

프로세서(100)는 하르 조건(Haar condition)을 만족하는 기저 함수

Figure pat00035
를 갖는 근사 다항식을 생성할 수 있다. 프로세서(100)는 차수가 d인 근사 다항식을 생성하기 위해서, 기저 함수
Figure pat00036
를 멱 기저(power basis)
Figure pat00037
로 선택할 수 있다. 여기서, n=d+1일 수 있다.The processor 100 is a basis function that satisfies a Haar condition
Figure pat00035
We can create an approximate polynomial with The processor 100 generates an approximate polynomial of degree d, the basis function
Figure pat00036
is the power basis
Figure pat00037
can be selected as Here, n=d+1 may be present.

프로세서(100)는 획득하려는 근사 다항식의 차수 d에 기초하여 하나 이상의 기준점을 결정할 수 있다. 프로세서(100)는 최소최대 근사 다항식의 극점에 수렴하는 기준점의 집합을 초기화할 수 있다. 프로세서(100)는 기준점의 집합에 대해서 최소 최대 다항식을 획득할 수 있다. 기준점의 집합은 [a, b]에서 유한한 점의 집합이기 때문에, [a, b]의 닫힌 부분 집합일 수 있고, 기준점에 집합에 대하여 체비셰프 교번 정리가 만족될 수 있다.The processor 100 may determine one or more reference points based on the degree d of the approximate polynomial to be obtained. The processor 100 may initialize a set of reference points converging to the poles of the minimum and maximum approximate polynomials. The processor 100 may obtain a minimum and maximum polynomial for a set of reference points. Since the set of reference points is a set of finite points in [a, b], it can be a closed subset of [a, b], and the Chebyshev alternating theorem can be satisfied for the set of reference points.

프로세서(100)는 하나 이상의 기준점에 기초하여 임의의 다항식을 획득할 수 있다. 프로세서(100)는 하나 이상의 기준점을 지나는 조각 연속 함수를 획득할 수 있다. 프로세서(100)는 하나 이상의 기준점에서 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The processor 100 may obtain any polynomial based on one or more reference points. The processor 100 may obtain a fragment continuous function passing through one or more reference points. The processor 100 may obtain an arbitrary polynomial by generating a polynomial in which the absolute value of the error with the piece continuity function at one or more reference points is a predetermined value.

프로세서(100)는 하나 이상의 기준점에 포함된 제1 기준점에서의 오차와 제1 기준점과 인접한 제2 기준점의 오차의 부호가 상이하고 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The processor 100 obtains an arbitrary polynomial by generating a polynomial in which the sign of the error at the first reference point included in one or more reference points and the error of the second reference point adjacent to the first reference point are different and the absolute value is a predetermined value. can do.

Figure pat00038
는 하나 이상의 기준점을 지나는 조각 연속 함수일 수 있다.
Figure pat00039
가 [a, b] 상의 연속 함수라고 할 때, 기준점의 집합 상의 최소최대 근사 다항식은 기저
Figure pat00040
를 갖는 일반화된 다항식
Figure pat00041
이고, 임의의 E 값에 대하여 수학식 11의 조건을 만족할 수 있다. 임의의 E 값은 위에서 설명한 미리 결정된 값일 수 있다.
Figure pat00038
may be a fragment continuous function passing through one or more reference points.
Figure pat00039
When is a continuous function on [a, b], the minimum-maximum approximate polynomial on the set of reference points is the basis
Figure pat00040
generalized polynomial with
Figure pat00041
, and the condition of Equation 11 may be satisfied for any E value. Any E value may be the predetermined value described above.

Figure pat00042
Figure pat00042

프로세서(100)는 수학식 11을 이용하여 임의의 다항식

Figure pat00043
를 획득할 수 있다. 수학식 11에 따라,
Figure pat00044
및 E의 n 계수의 n+1 변수들 및 n+1 방정식들을 갖는 선형 방적식의 시스템이 형성되고, 선형 방적식은 하르 조건에 의해 특이적(singular)이지 않으므로, 프로세서(100)는 수학식 11의 조건을 만족하는 다항식
Figure pat00045
를 획득할 수 있다.The processor 100 uses Equation (11) to obtain an arbitrary polynomial
Figure pat00043
can be obtained. According to Equation 11,
Figure pat00044
And since a system of linear equations with n+1 variables and n+1 equations of n coefficients of E is formed, and the linear equation is not singular by the Harr condition, the processor 100 is polynomial that satisfies the condition
Figure pat00045
can be obtained.

프로세서(100)는 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 근사 다항식을 생성할 수 있다. 구체적으로, 프로세서(100)는 임의의 다항식과 상기 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득할 수 있다. 프로세서(100)는 후보점들 중에서 상기 차수에 기초한 수의 타겟점들을 선택할 수 있다. 프로세서(100)는 선택한 타겟점들에 기초하여 근사 다항식을 생성할 수 있다.The processor 100 may generate an approximate polynomial based on one or more poles selected from any polynomial. Specifically, the processor 100 may obtain candidate points whose absolute value is greater than or equal to a predetermined value among the poles of the error between the arbitrary polynomial and the fragment continuous function passing through the one or more reference points. The processor 100 may select the number of target points based on the order from among the candidate points. The processor 100 may generate an approximate polynomial based on the selected target points.

프로세서(100)는

Figure pat00046
,
Figure pat00047
Figure pat00048
일 때,
Figure pat00049
Figure pat00050
사이에서
Figure pat00051
의 n 개의 영점들(zeros)
Figure pat00052
를 획득할 수 있고, 각각의
Figure pat00053
에서
Figure pat00054
의 n+1 개의 극점(extreme point)들인
Figure pat00055
를 획득할 수 있다.The processor 100
Figure pat00046
,
Figure pat00047
Figure pat00048
when,
Figure pat00049
Wow
Figure pat00050
between
Figure pat00051
n zeros of
Figure pat00052
can be obtained, and each
Figure pat00053
at
Figure pat00054
n+1 extreme points of
Figure pat00055
can be obtained.

프로세서(100)는

Figure pat00056
일 때,
Figure pat00057
에서
Figure pat00058
의 최소점(minimum point)을 선택하고,
Figure pat00059
일 때,
Figure pat00060
에서
Figure pat00061
의 최대점을 선택할 수 있다.The processor 100
Figure pat00056
when,
Figure pat00057
at
Figure pat00058
Choose the minimum point of
Figure pat00059
when,
Figure pat00060
at
Figure pat00061
You can choose the maximum point of

이를 통해, 프로세서(100)는 새로운 극점의 집합

Figure pat00062
을 후보점으로 선택할 수 있다. 이러한 후보점들이 이퀴오실레이션 컨디션을 만족한다면 프로세서(100)는 체비셰프 교번 정리로부터 최소 최대 근사 다항식을 반환함으로써 함수 또는 그 역함수의 근사 다항식을 생성할 수 있다.Through this, the processor 100 sets a new pole
Figure pat00062
can be selected as a candidate point. If these candidate points satisfy the equioscillation condition, the processor 100 may generate an approximate polynomial of a function or its inverse function by returning a minimum and maximum approximate polynomial from Chebyshev's alternating theorem.

또한, 프로세서(100)는 기준점의 집합을 상술한 과정을 통해 획득한 새로운 극점의 집합인

Figure pat00063
로 대체하고, 상술한 다항식의 생성 과정을 반복적으로 수행할 수 있다.In addition, the processor 100 is a set of new pole points obtained through the above-described process for the set of reference points.
Figure pat00063
, and the above-described polynomial generation process may be repeatedly performed.

도 3에 도시된 알고리즘 1은 하나의 구간의 다중 부분 구간들(multiple sub-intervals)로 확장될 수 있다. 다중 부분 구간들로 확장하여 적용될 경우, 도 3의 단계 3과 단계 4가 변경될 수 있다.Algorithm 1 shown in FIG. 3 may be extended to multiple sub-intervals of one interval. When applied by extending to multiple partial sections, steps 3 and 4 of FIG. 3 may be changed.

각 반복(iteration)에서 프로세서(100)는 오차 함수

Figure pat00064
의 모든 지역 극점(local extreme point)들을 획득할 수 있고, 이러한 지역 극점들의 절대 오차값은 현재 기준점들에서의 절대 오차값 보다 클 수 있다.At each iteration, the processor 100 returns an error function
Figure pat00064
It is possible to obtain all local extreme points of , and the absolute error value of these local extreme points may be greater than the absolute error value at the current reference points.

그 후, 프로세서(100)는 획득한 모든 지역 극점들 중에서 아래의 두 조건을 만족하는 n+1 개의 새로운 극점들을 선택할 수 있다.Thereafter, the processor 100 may select n+1 new poles that satisfy the following two conditions from among all the acquired local poles.

1. 오차 값은 부호가 교대로 표시된다.1. Error values are indicated by alternating signs.

2. 새로운 극점들의 집합은 전역 극점(global extreme point)를 포함한다.2. The set of new poles contains a global extreme point.

상술한 두 개의 조건은 최소 최대 일반화 다항식의 수렴을 보장할 수 있다. The above two conditions can ensure convergence of the minimum and maximum generalized polynomials.

도 4는 도 1에 도시된 암호화 장치가 함수 및 그 역함수에 대한 근사 다항식을 획득하는 알고리즘의 다른 예를 나타낸다.4 shows another example of an algorithm in which the encryption device shown in FIG. 1 obtains an approximate polynomial for a function and its inverse function.

도 4를 참조하면, 프로세서(100)는 함수 및/또는 그 함수의 역함수의 근사 다항식을 도 4의 알고리즘 2를 이용하여 획득할 수 있다.Referring to FIG. 4 , the processor 100 may obtain an approximate polynomial of a function and/or an inverse of the function using Algorithm 2 of FIG. 4 .

프로세서(100)가 근사를 통해 획득하려고 하는 모듈러 리덕션 함수는 수학식 12로 표현되는 유한한 숫자의 정수 근처에서만 정의되는 정규화된 모듈러 리덕션(normalized modular reduction) 함수일 수 있다. The modular reduction function that the processor 100 intends to obtain through approximation may be a normalized modular reduction function defined only in the vicinity of a finite number of integers expressed by Equation (12).

Figure pat00065
Figure pat00065

수학식 12는 정의역(domain) 및 범위(range)에 대하여 스케일링된 모듈러 리덕션 함수를 나타낼 수 있다.Equation 12 may represent a scaled modular reduction function with respect to a domain and a range.

프로세서(100)는 동형 계산(homorphic evaluation)을 효율적으로 수행하기위해서,

Figure pat00066
를 근사하기 위해 코사인 함수를 배각 공식(double-angle formula)을 이용하여 근사할 수 있다.The processor 100 is configured to efficiently perform homomorphic evaluation,
Figure pat00066
To approximate , the cosine function can be approximated using the double-angle formula.

배각 공식을

Figure pat00067
번 사용하면 수학식 13의 코사인 함수가 근사되어야 할 수 있다.doubling formula
Figure pat00067
When used, the cosine function of Equation 13 may have to be approximated.

Figure pat00068
Figure pat00068

수학식 12, 13의 함수를 포함하는 조각 연속 함수(piecewise continuous function)을 근사하기 위해서, 프로세서(100)는 수학식 14와 같이 주어지는 유한하게 많은 수의 닫힌 구간들의 합집합(union) 상에 정의되는 일반적인 조각 연속 함수를 가정할 수 있다.In order to approximate a piecewise continuous function including the functions of Equations 12 and 13, the processor 100 is defined on the union of a finite number of closed intervals given as Equation 14. A general fragmentary continuous function can be assumed.

Figure pat00069
Figure pat00069

여기서, 모든

Figure pat00070
에 대해서,
Figure pat00071
일 수 있다.here, all
Figure pat00070
about,
Figure pat00071
can be

프로세서(100)는 d 이하의 차수를 갖는 다항식으로 주어진 조각 연속 함수를 수학식 14의 D 상에 근사하기 위해서, 복수의 극점들 중에서 새로운 d+2 개의 기준점들을 선택하기 위한 기준(criterion)을 설정할 수 있다.The processor 100 sets a criterion for selecting d+2 new reference points from among a plurality of poles in order to approximate a fragment continuous function given by a polynomial having a degree of d or less on D of Equation 14. can

프로세서(100)는 [a, b] 상에서 하르 조건을 만족하는

Figure pat00072
를 다항식의 기저로 하여 근사 다항식을 생성할 수 있다. 프로세서(100)는 각 반복에서 기준점들의 집합에 따른 최소최대 근사 다항식을 획득할 수 있고, 다음 반복에서 새로운 기준점의 집합을 선택할 수 있다.The processor 100 satisfies the Haar condition on [a, b]
Figure pat00072
An approximate polynomial can be generated by using as the basis of the polynomial. The processor 100 may obtain a minimum-maximum approximate polynomial according to the set of reference points in each iteration, and may select a new set of reference points in the next iteration.

프로세서(100)가 기준점의 집합을 이용하여 획득한 임의다항식을 이용하여 계산한 오차 함수의 극점들 중에서 n+1 개의 점들을 선택하는 경우의 수는 매우 많을 수 있다. 프로세서(100)가 수행하는 암호화 과정에서 많은 구간들이 고려될 수 있기 때문에 후보 극점의 수가 매우 많을 수 있다.The number of cases in which the processor 100 selects n+1 points from among poles of an error function calculated using an arbitrary polynomial obtained by using a set of reference points may be very large. Since many sections may be considered in the encryption process performed by the processor 100, the number of candidate poles may be very large.

프로세서(100)는 반복의 수를 최대한 줄이기 위해 각 반복에서 많은 수의 후보점들 중에서 n+1 개의 타겟점을 선택할 수 있다. 이를 통해, 프로세서(100)는 각 반복에서 생성하는 근사 다항식을 수렴시켜 최소최대 근사 다항식을 생성할 수 있다. 이 때, 최종적으로 생성된 최소최대 근사 다항식이 위에서 설명한 함수 및/또는 그 역함수의 근사 다항식일 수 있다.The processor 100 may select n+1 target points from among a large number of candidate points in each iteration in order to minimize the number of iterations. Through this, the processor 100 converges the approximate polynomial generated in each iteration to generate the minimum and maximum approximate polynomial. In this case, the finally generated min/max approximation polynomial may be an approximation polynomial of the above-described function and/or an inverse function thereof.

n+1 개의 타겟점을 선택하는 기준을 설정하기 위해, 프로세서(100)는 수학식 15의 함수를 정의할 수 있다.In order to set a criterion for selecting n+1 target points, the processor 100 may define a function of Equation (15).

Figure pat00073
Figure pat00073

여기서,

Figure pat00074
각 반복에서 획득한 임의의 다항식을 의미하고,
Figure pat00075
는 근사될 조각 연속 함수를 의미할 수 있다. 이하에서 편의를 위해
Figure pat00076
Figure pat00077
로 지칭될 수 있다.here,
Figure pat00074
means any polynomial obtained at each iteration,
Figure pat00075
may mean a fragment continuous function to be approximated. Below for convenience
Figure pat00076
Is
Figure pat00077
may be referred to as

프로세서(100)는

Figure pat00078
의 모든 극점을 획득하여 집합
Figure pat00079
를 생성할 수 있다.
Figure pat00080
는 유한 집합으로
Figure pat00081
와 같이 나타낼 수 있다. 프로세서(100)는
Figure pat00082
에 속한 하나의 구간에서 한 점을 선택할 수 있다.The processor 100
Figure pat00078
Set by obtaining all poles of
Figure pat00079
can create
Figure pat00080
is a finite set
Figure pat00081
can be expressed as The processor 100
Figure pat00082
You can select a point in one interval belonging to .

Figure pat00083
Figure pat00084
와 같이 오름차순으로 정렬되어 있다고 가정하면,
Figure pat00085
의 값은 1 또는 -1일 수 있다. 극점의 수는
Figure pat00086
를 만족할 수 있다.
Figure pat00083
go
Figure pat00084
Assuming they are sorted in ascending order,
Figure pat00085
The value of may be 1 or -1. number of poles
Figure pat00086
can be satisfied

프로세서(100)는 함수의 집합

Figure pat00087
를 수학식 16과 같이 정의할 수 있다.The processor 100 is a set of functions
Figure pat00087
can be defined as in Equation 16.

Figure pat00088
Figure pat00088

이 때, n+1=m 인 경우, 집합

Figure pat00089
는 항등 함수(identity function)만을 포함할 수 있다. At this time, if n+1=m, set
Figure pat00089
may include only an identity function.

프로세서(100)는 n+1 개의 극점을 선택하기 위해 세 가지 기준을 설정할 수 있다.The processor 100 may set three criteria to select n+1 poles.

첫 번째 조건으로 프로세서(100)는 지역 극값(local extreme value) 조건을 설정할 수 있다. 만약,

Figure pat00090
가 설정된 기준점들에서의 절대 오차라면, 수학식 17의 조건이 설정될 수 있다.As a first condition, the processor 100 may set a condition of a local extreme value. if,
Figure pat00090
If is an absolute error at the set reference points, the condition of Equation 17 may be set.

Figure pat00091
Figure pat00091

프로세서(100)는 지역 극값 조건을 만족시키기 위해

Figure pat00092
의 지역 최대값이 음수이거나
Figure pat00093
의 지역 최소값이 양수인 경우에 그 극점을 버릴 수 있다.The processor 100 is configured to satisfy the local extrema condition.
Figure pat00092
If the local maximum of is negative, or
Figure pat00093
If the local minimum of is positive, the pole can be discarded.

두 번째로, 프로세서(100)는 교번 조건(alternating condition)을 설정할 수 있다. 다시 말해, 수학식 18의 조건이 설정될 수 있다. 다시 말해, 인접하는 두 극점 중 하나의 극점이 지역 최대값이라면 다른 하나의 극점은 지역 최소값일 수 있다.Second, the processor 100 may set an alternating condition. In other words, the condition of Equation 18 may be set. In other words, if one of the two adjacent poles is a local maximum, the other pole may be a local minimum.

Figure pat00094
Figure pat00094

세 번째로, 프로세서(100)는 최대 절대 합 조건(maximum absolute sum condition)을 설정할 수 있다. 프로세서(100)는 지역 극값 조건 및 교번 조건을 만족하는

Figure pat00095
들 중에서 수학식 19의 값을 최대화하는
Figure pat00096
를 선택할 수 있다.Third, the processor 100 may set a maximum absolute sum condition. The processor 100 is configured to satisfy the local extrema condition and the alternating condition.
Figure pat00095
Among them, which maximizes the value of Equation 19
Figure pat00096
can be selected.

Figure pat00097
Figure pat00097

현재의 기준점들인

Figure pat00098
에서의 절대 오차 값은 최소최대 근사 오차보다 작고, 반복 횟수가 증가할수록 최소최대 근사 오차로 수렴할 수 있다.current reference points
Figure pat00098
The absolute error value at is smaller than the minimum and maximum approximation error, and as the number of iterations increases, it can converge to the minimum and maximum approximation error.

또한, 현재의 기준점들의 절대 오차 값은

Figure pat00099
에서 이전 반복에서의 근사 다항식의 절대 오차값의 가중 평균(weighted average)일 수 있다.In addition, the absolute error value of the current reference points is
Figure pat00099
may be a weighted average of the absolute error values of the approximate polynomials in the previous iteration.

프로세서(100)는 최대 절대 합 조건을 이용하여 현재의 기준점들의 절대 오차 값이 최소최대 근사 오차로 빠르게 수렴하도록 할 수 있다.The processor 100 may allow the absolute error values of current reference points to quickly converge to the minimum maximum approximate error using the maximum absolute sum condition.

지역 극값 조건 및 교번 조건은 도 3 및 도 4의 알고리즘 모두에 적용될 수 있고, 최대 절대 합 조건은 도 4의 알고리즘 2에 적용될 수 있다. 프로세서(100)는 최대 절대 합 조건을 적용시킴으로써 최소최대 근사 다항식의 수렴을 가속화할 수 있다.The local extrema condition and the alternating condition may be applied to both the algorithms of FIGS. 3 and 4 , and the maximum absolute sum condition may be applied to the algorithm 2 of FIG. 4 . The processor 100 may accelerate the convergence of the minimum maximum approximate polynomial by applying the maximum absolute sum condition.

집합

Figure pat00100
는 지역 극값 조건 및 교번 조건을 만족하는 적어도 하나의 원소
Figure pat00101
를 항상 포함하고, 어떠한
Figure pat00102
에 대하여,
Figure pat00103
를 만족하는
Figure pat00104
를 가질 수 있다.set
Figure pat00100
is at least one element that satisfies the local extrema condition and the alternating condition
Figure pat00101
always include, and any
Figure pat00102
about,
Figure pat00103
to satisfy
Figure pat00104
can have

프로세서(100)는 도 4의 알고리즘 2의 단계 2, 3 및 4를 아래와 같이 보다 효율적으로 수행할 수 있다. 프로세서(100)는 연속 함수

Figure pat00105
에 대한 현재의 기준점에서의 멱 기저를 갖는 근사 다항식의 계수들을 찾아낼 수 있다.The processor 100 may perform steps 2, 3, and 4 of Algorithm 2 of FIG. 4 more efficiently as follows. The processor 100 is a continuous function
Figure pat00105
We can find the coefficients of an approximate polynomial with a power basis at the current reference point for .

다시 말해, 프로세서(100)는 수학식 20의 계수

Figure pat00106
값들을 획득함으로써 근사 다항식을 생성할 수 있다. In other words, the processor 100 is a coefficient of Equation 20
Figure pat00106
An approximate polynomial can be generated by obtaining the values.

Figure pat00107
Figure pat00107

여기서, 선형 방정식의 미지수일 수 있다. 근사 다항식의 기저의 차수가 증가할수록, 계수는 감소할 수 있다. 프로세서(100)는 높은 차수의 기저의 계수에 대해서 더 높은 정확도를 설정해야 할 수 있다.Here, it may be an unknown of the linear equation. As the order of the basis of the approximate polynomial increases, the coefficients may decrease. The processor 100 may need to set higher accuracy for higher-order basis coefficients.

따라서, 프로세서(100)는 근사 다항식의 기저를 체비셰프 다항식의 기저를 사용함으로써 정확도 문제를 효과적으로 해결할 수 있다. 체비셰프 기저를 이용한 다항식의 계수는 대부분 같은 차수(order)를 가지기 때문에 프로세서(100)는 멱 기저 대신에 체비셰프 기저를 이용하여 근사 다항식을 생성할 수 있다.Accordingly, the processor 100 can effectively solve the accuracy problem by using the basis of the Chebyshev polynomial as the basis of the approximate polynomial. Since most coefficients of polynomials using the Chebyshev basis have the same order, the processor 100 may generate an approximate polynomial using the Chebyshev basis instead of the power basis.

체비 셰프 다항식은 상술한 하르 조건을 만족시키고, 프로세서(100)는 d+2 개의 기준점들을 이용하여 수학식 21의 d+2 개의 선형 방적식의 시스템을 풀어

Figure pat00108
및 E를 계산함으로써 근사 다항식을 획득할 수 있다.The Chebyshev polynomial satisfies the above-mentioned Harr condition, and the processor 100 solves the system of d+2 linear equations in Equation 21 using d+2 reference points.
Figure pat00108
and E, an approximate polynomial can be obtained.

Figure pat00109
Figure pat00109

도 5는 도 1에 도시된 암호화 장치의 동작의 순서를 나타낸다.FIG. 5 shows a sequence of operations of the encryption device shown in FIG. 1 .

도 5를 참조하면, 프로세서(100)는 데이터를 암호화함으로써 사이퍼텍스트를 생성할 수 있다(510). 프로세서(100)는 생성한 사이퍼텍스트에 대응하는 모듈러스에 대해 함수의 합성에 기초한 모듈러 리덕션을 수행함으로써 사이퍼텍스트에 부트스트래핑을 수행할 수 있다(530). 이 때, 함수는 삼각 함수를 포함할 수 있다. Referring to FIG. 5 , the processor 100 may generate ciphertext by encrypting data ( 510 ). The processor 100 may perform bootstrapping on the ciphertext by performing modular reduction based on the synthesis of a function on the modulus corresponding to the generated ciphertext ( 530 ). In this case, the function may include a trigonometric function.

프로세서(100)는 함수 및 그 함수의 역함수에 기초하여 모듈러 리덕션을 근사함으로써 부트스트래핑을 수행할 수 있다. 프로세서(100)는 함수의 근사 다항식을 획득하고, 역함수의 근사 다항식을 획득할 수 있다.The processor 100 may perform bootstrapping by approximating the modular reduction based on the function and the inverse function of the function. The processor 100 may obtain an approximate polynomial of a function and obtain an approximate polynomial of an inverse function.

프로세서(100)는 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정하고, 하나 이상의 기준점에 기초하여 임의의 다항식을 획득할 수 있다.The processor 100 may determine one or more reference points based on the degree of the approximate polynomial, and obtain an arbitrary polynomial based on the one or more reference points.

프로세서(100)는 하나 이상의 기준점을 지나는 조각 연속 함수를 획득하고, 하나 이상의 기준점에서 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The processor 100 may obtain an arbitrary polynomial by obtaining a fragment continuity function passing through one or more reference points, and generating a polynomial such that an absolute value of an error with the fragment continuity function at one or more reference points becomes a predetermined value.

프로세서(100)는 하나 이상의 기준점에 포함된 제1 기준점에서의 오차와 제1 기준점과 인접한 제2 기준점의 오차의 부호가 상이하고 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The processor 100 obtains an arbitrary polynomial by generating a polynomial in which the sign of the error at the first reference point included in one or more reference points and the error of the second reference point adjacent to the first reference point are different and the absolute value is a predetermined value. can do.

프로세서(100)는 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 근사 다항식을 생성할 수 있다. 프로세서(100)는 임의의 다항식과 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득하고, 후보점들 중에서 차수에 기초한 수의 타겟점들을 선택할 수 있다.The processor 100 may generate an approximate polynomial based on one or more poles selected from any polynomial. The processor 100 obtains candidate points whose absolute value is greater than or equal to a predetermined value among the poles of the error between the arbitrary polynomial and the fragment continuous function passing through one or more reference points, and selects a number of target points based on the degree among the candidate points. You can choose.

프로세서(100)는 선택한 타겟점들에 기초하여 함수 또는 그 역함수의 근사 다항식을 생성할 수 있다.The processor 100 may generate an approximate polynomial of a function or its inverse function based on the selected target points.

프로세서(100)는 함수의 근사 다항식 및 역함수의 근사 다항식의 합성 함수에 기초하여 모듈러 리덕션을 근사하는 합성 함수를 생성할 수 있다. 이 때, 프로세서(100)는 함수가 삼각 함수인 경우, 삼각 함수에 배각 공식을 적용하여 삼각 함수의 배각 함수를 획득할 수 있다.The processor 100 may generate a synthesis function approximating the modular reduction based on the synthesis function of the approximate polynomial of the function and the approximate polynomial of the inverse function. In this case, when the function is a trigonometric function, the processor 100 may obtain a quadrangular function of the trigonometric function by applying a quadrangular formula to the trigonometric function.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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 in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer readable recording medium 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 floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. 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)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited drawings, those skilled in the art may apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (19)

동형 암호(homomorphic encryption)를 이용한 암호화 방법에 있어서,
데이터를 암호화함으로써 사이퍼텍스트(ciphertext)를 생성하는 단계; 및
상기 사이퍼텍스트에 대응하는 모듈러스(modulus)에 대해 함수의 합성에 기초한 모듈러 리덕션(modular reduction)을 수행함으로써 상기 사이퍼텍스트에 부트스트래핑(bootstrapping)을 수행하는 단계
를 포함하는 암호화 방법.
In the encryption method using homomorphic encryption,
generating ciphertext by encrypting the data; and
performing bootstrapping on the ciphertext by performing modular reduction based on the synthesis of a function on a modulus corresponding to the ciphertext;
An encryption method comprising
제1항에 있어서,
상기 수행하는 단계는,
상기 함수 및 상기 함수의 역함수에 기초하여 상기 모듈러 리덕션을 근사(approximate)함으로써 상기 부트스트래핑을 수행하는 단계
를 포함하는 암호화 방법.
According to claim 1,
The performing step is,
performing the bootstrapping by approximating the modular reduction based on the function and the inverse of the function.
An encryption method comprising
제2항에 있어서,
상기 함수 및 상기 함수의 역함수에 기초하여 상기 모듈러 리덕션을 근사(approximate)함으로써 상기 부트스트래핑을 수행하는 단계는,
상기 함수의 근사 다항식을 획득하는 단계;
상기 역함수의 근사 다항식을 획득하는 단계; 및
상기 함수의 근사 다항식 및 상기 역함수의 근사 다항식의 합성 함수에 기초하여 상기 모듈러 리덕션을 근사하는 합성 함수를 생성하는 단계
를 포함하는 암호화 방법.
3. The method of claim 2,
Performing the bootstrapping by approximating the modular reduction based on the function and the inverse function of the function,
obtaining an approximate polynomial of the function;
obtaining an approximate polynomial of the inverse function; and
generating a synthesis function approximating the modular reduction based on the synthesis function of the approximate polynomial of the function and the approximate polynomial of the inverse function;
An encryption method comprising
제1항에 있어서,
상기 함수는,
삼각 함수를 포함하는 암호화 방법.
According to claim 1,
The function is
An encryption method involving trigonometric functions.
제3항에 있어서,
상기 함수의 근사 다항식을 획득하는 단계는,
상기 함수가 삼각 함수인 경우, 상기 삼각 함수에 배각 공식을 적용하여 상기 삼각 함수의 배각 함수를 획득하는 단계
를 포함하는 암호화 방법.
4. The method of claim 3,
Obtaining an approximate polynomial of the function comprises:
When the function is a trigonometric function, applying a quadrangular formula to the trigonometric function to obtain a quadrangular function of the trigonometric function
An encryption method comprising
제3항에 있어서,
상기 함수의 근사 다항식을 획득하는 단계는,
상기 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정하는 단계;
상기 하나 이상의 기준점에 기초하여 임의의 다항식을 획득하는 단계; 및
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 근사 다항식을 생성하는 단계
를 포함하는 암호화 방법.
4. The method of claim 3,
Obtaining an approximate polynomial of the function comprises:
determining one or more reference points based on the degree of the approximate polynomial;
obtaining an arbitrary polynomial based on the one or more reference points; and
generating the approximate polynomial based on one or more poles selected from the arbitrary polynomial;
An encryption method comprising
제6항에 있어서,
상기 임의의 다항식을 획득하는 단계는,
상기 하나 이상의 기준점을 지나는 조각 연속(piecewise continuous) 함수를 획득하는 단계; 및
상기 하나 이상의 기준점에서 상기 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는 단계
를 포함하는 암호화 방법.
7. The method of claim 6,
The step of obtaining the arbitrary polynomial is,
obtaining a piecewise continuous function passing through the one or more reference points; and
obtaining the arbitrary polynomial by generating a polynomial in which the absolute value of the error with the piecewise continuous function at the one or more reference points is a predetermined value;
An encryption method comprising
제7항에 있어서,
상기 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는 단계는,
상기 하나 이상의 기준점에 포함된 제1 기준점에서의 오차와 상기 제1 기준점과 인접한 제2 기준점의 오차의 부호가 상이하고 절대값이 상기 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는 단계
를 포함하는 암호화 방법.
8. The method of claim 7,
Obtaining the arbitrary polynomial by generating a polynomial in which the absolute value of the error with the piecewise continuous function is a predetermined value comprises:
Obtaining the arbitrary polynomial by generating a polynomial whose sign is different from an error at a first reference point included in the one or more reference points and an error of a second reference point adjacent to the first reference point and whose absolute value is the predetermined value step
An encryption method comprising
제6항에 있어서,
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 근사 다항식을 생성하는 단계는,
상기 임의의 다항식과 상기 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득하는 단계;
상기 후보점들 중에서 상기 차수에 기초한 수의 타겟점들을 선택하는 단계; 및
상기 타겟점들에 기초하여 상기 근사 다항식을 생성하는 단계
를 포함하는 암호화 방법.
7. The method of claim 6,
generating the approximate polynomial based on one or more poles selected from the arbitrary polynomial,
obtaining candidate points whose absolute value is greater than or equal to a predetermined value among the poles of the error between the arbitrary polynomial and the fragment continuous function passing through the one or more reference points;
selecting a number of target points based on the order from among the candidate points; and
generating the approximate polynomial based on the target points;
An encryption method comprising
하드웨어와 결합되어 제1항 내지 제9 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
A computer program stored in a medium for executing the method of any one of claims 1 to 9 in combination with hardware.
동형 암호(homomorphic encryption)를 이용한 암호화 장치에 있어서,
데이터를 암호화함으로써 사이퍼텍스트(ciphertext)를 생성하고, 상기 사이퍼텍스트에 대응하는 모듈러스(modulus)에 대해 함수의 합성에 기초한 모듈러 리덕션(modular reduction)을 수행함으로써 상기 사이퍼텍스트에 부트스트래핑(bootstrapping)을 수행하는 프로세서; 및
상기 프로세서에 의해 실행가능한 인스트럭션을 저장하는 메모리
를 포함하는 암호화 장치.
In the encryption device using homomorphic encryption,
By encrypting data, a ciphertext is generated, and the modulus corresponding to the ciphertext is subjected to modular reduction based on the synthesis of a function to perform bootstrapping on the ciphertext. the processor; and
a memory storing instructions executable by the processor
Encryption device comprising.
제11항에 있어서,
상기 프로세서는,
상기 함수 및 상기 함수의 역함수에 기초하여 상기 모듈러 리덕션을 근사(approximate)함으로써 상기 부트스트래핑을 수행하는
암호화 장치.
12. The method of claim 11,
The processor is
performing the bootstrapping by approximating the modular reduction based on the function and the inverse function of the function
encryption device.
제12항에 있어서,
상기 프로세서는,
상기 함수의 근사 다항식을 획득하고,
상기 역함수의 근사 다항식을 획득하고,
상기 함수의 근사 다항식 및 상기 역함수의 근사 다항식의 합성 함수에 기초하여 상기 모듈러 리덕션을 근사하는 합성 함수를 생성하는
암호화 장치.
13. The method of claim 12,
The processor is
obtaining an approximate polynomial of the function,
obtaining an approximate polynomial of the inverse function,
generating a synthesis function approximating the modular reduction based on the synthesis function of the approximate polynomial of the function and the approximate polynomial of the inverse function
encryption device.
제11항에 있어서,
상기 함수는,
삼각 함수를 포함하는 암호화 장치.
12. The method of claim 11,
The function is
A cryptographic device containing a trigonometric function.
제13항에 있어서,
상기 프로세서는,
상기 함수가 삼각 함수인 경우, 상기 삼각 함수에 배각 공식을 적용하여 상기 삼각 함수의 배각 함수를 획득하는
암호화 장치.
14. The method of claim 13,
The processor is
When the function is a trigonometric function, applying a quadrangular formula to the trigonometric function to obtain a quadrangular function of the trigonometric function
encryption device.
제13항에 있어서,
상기 프로세서는,
상기 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정하고,
상기 하나 이상의 기준점에 기초하여 임의의 다항식을 획득하고,
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 근사 다항식을 생성하는
암호화 장치.
14. The method of claim 13,
The processor is
determining one or more reference points based on the degree of the approximate polynomial;
obtain an arbitrary polynomial based on the one or more reference points,
generating the approximate polynomial based on one or more poles selected from the arbitrary polynomial
encryption device.
제16항에 있어서,
상기 프로세서는,
상기 하나 이상의 기준점을 지나는 조각 연속(piecewise continuous) 함수를 획득하고,
상기 하나 이상의 기준점에서 상기 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는
암호화 장치.
17. The method of claim 16,
The processor is
obtaining a piecewise continuous function passing through the one or more reference points;
obtaining the arbitrary polynomial by generating a polynomial in which the absolute value of the error with the fragment continuous function at the one or more reference points is a predetermined value
encryption device.
제17항에 있어서,
상기 프로세서는,
상기 하나 이상의 기준점에 포함된 제1 기준점에서의 오차와 상기 제1 기준점과 인접한 제2 기준점의 오차의 부호가 상이하고 절대값이 상기 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는
암호화 장치.
18. The method of claim 17,
The processor is
Obtaining the arbitrary polynomial by generating a polynomial whose sign is different from an error at a first reference point included in the one or more reference points and an error of a second reference point adjacent to the first reference point and whose absolute value is the predetermined value
encryption device.
제16항에 있어서,
상기 프로세서는,
상기 임의의 다항식과 상기 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득하고,
상기 후보점들 중에서 상기 차수에 기초한 수의 타겟점들을 선택하고,
상기 타겟점들에 기초하여 상기 근사 다항식을 생성하는
암호화 장치.
17. The method of claim 16,
The processor is
obtain candidate points whose absolute value is greater than or equal to a predetermined value among the poles of the error between the arbitrary polynomial and the fragment continuous function passing through the one or more reference points,
selecting a number of target points based on the order from among the candidate points;
generating the approximate polynomial based on the target points
encryption device.
KR1020200139489A 2020-04-22 2020-10-26 Homomorhpic encryption based encryption method and apparatus using composition of function KR20210130620A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/236,176 US11558172B2 (en) 2020-04-22 2021-04-21 Encryption method and apparatus based on homomorphic encryption using composition of functions
CN202110438433.5A CN113541918A (en) 2020-04-22 2021-04-22 Encryption method and device based on composite homomorphic encryption of use function
EP21169784.2A EP3902195A1 (en) 2020-04-22 2021-04-22 Encryption method and apparatus based on homomorphic encryption using composition of functions

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063013706P 2020-04-22 2020-04-22
US63/013,706 2020-04-22
US202063021761P 2020-05-08 2020-05-08
US63/021,761 2020-05-08

Publications (1)

Publication Number Publication Date
KR20210130620A true KR20210130620A (en) 2021-11-01

Family

ID=78519378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200139489A KR20210130620A (en) 2020-04-22 2020-10-26 Homomorhpic encryption based encryption method and apparatus using composition of function

Country Status (1)

Country Link
KR (1) KR20210130620A (en)

Similar Documents

Publication Publication Date Title
US11277256B2 (en) Ciphertext comparison method using homomorphic encryption and apparatus for performing the same
Genise et al. Building an efficient lattice gadget toolkit: Subgaussian sampling and more
US11164484B2 (en) Secure computation system, secure computation device, secure computation method, and program
JPWO2012057134A1 (en) Proxy calculation system, calculation device, capability providing device, proxy calculation method, capability providing method, program, and recording medium
US11558172B2 (en) Encryption method and apparatus based on homomorphic encryption using composition of functions
JP2021177239A (en) Encryption method and device using homomorphic encryption
KR20210113833A (en) Data processing method and appratus using vector conversion
US20220182242A1 (en) Implementing opportunistic authentication of encrypted data
KR20210136816A (en) Encryption method and apparatus based on homomorhpic encryption using odd function property
KR20210130620A (en) Homomorhpic encryption based encryption method and apparatus using composition of function
EP4221069A1 (en) Apparatus and method with homomorphic encryption using automorphism
JPWO2018008547A1 (en) Secret calculation system, secret calculation device, secret calculation method, and program
KR20230078510A (en) Apparatus and method of homomorphic encryption opeation
Scardicchio Classical and quantum dynamics of a particle constrained on a circle
JP7228286B1 (en) Cryptographic processing device, cryptographic processing method, and cryptographic processing program
US11671239B2 (en) Encryption method and apparatus based on homomorphic encryption using odd function property
KR20210128313A (en) Method and apparatus for processing ciphertext based on homogeneous encryption
KR20220021854A (en) Encryption method and apparatus based on an error variance in homomorhpic 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
KR20240047269A (en) Homomorphic encryption opeation apparatus and method
KR102595938B1 (en) Polynomial inverse generating apparatus and method for an encryption system that encrypts and decrypts data using polynomials
KR102451633B1 (en) Apparatus and Method of Cryptographic Processing for Homomorphic Encryption
KR20230116641A (en) Apparatus and method of homomorphic encryption opeation using automorphism
KR20220157844A (en) Encryption key generating method, appratus, ciphertext operation method and apparatus using the generated encryption key
KR20220157843A (en) Method and apparatus of modulus refresh in homomorhpic encryption