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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/3026—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
Abstract
Description
아래 실시예들은 함수의 합성을 이용한 동형 암호 기반 암호화 방법 및 장치에 관한 것이다.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
암호화 장치(10)는 동형 암호(homomorphic encryption)를 이용한 암호화 및 복호화를 수행할 수 있다. 암호화 장치(10)는 동형 암호를 이용하여 암호화된 데이터를 복호화(decryption) 없이도 연산할 수 있는 암호 기술을 제공할 수 있다. 예를 들어, 암호화 장치(10)는 동형 암호를 이용하여 암호화된 상태에서 연산한 결과를 복호화함으로써 평문(plain text) 상태의 데이터를 연산한 결과와 동일한 결과가 도출될 수 있다. 암호화 장치(10)는 임의의 실수 또는 복소수에 대한 동형 암호 연산을 제공할 수 있다.The
암호화 장치(10)는 동형 암호에 필요한 부트스트래핑(bootstrapping)을 수행할 수 있다. 암호화 장치(10)는 동형 암호에 요구되는 모듈러 리덕션(modular reduction)에 대응하는 함수를 근사하기 위해 근사 다항식을 생성할 수 있다.The
암호화 장치(10)는 최적의 최소최대 근사 다항식(optimal minimax approximate polynomial)의 각 차수에 대하여 최소최대 근사 오차(minimax approximation error)를 찾아낼 수 있다.The
암호화 장치(10)는 모듈러 리덕션 동작을 최적으로 근사하는 근사 다항식으로 찾아냄으로써, 동형 암호 방식의 최소최대 근사 오차의 관점에서 우수한 성능을 제공할 수 있다.The
암호화 장치(10)는 모듈러 리덕션 함수를 근사 하기 위한 근사 영역 정보를 이용하여 모듈러 리덕션 함수를 근사하는 근사 다항식을 생성할 수 있다. 암호화 장치(10)는 함수의 합성에 기초한 모듈러 리덕션을 수행할 수 있다. 암호화 장치(10)는 함수의 합성에 기초한 모듈러 리덕션을 수행함으로써 부트스트래핑을 수행할 수 있다.The
암호화 장치(10)는 프로세서(100) 및 메모리(200)를 포함한다.The
프로세서(100)는 메모리(200)에 저장된 데이터를 처리할 수 있다. 프로세서(100)는 메모리(200)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(100)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The
"프로세서(100)"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.The “
예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(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
프로세서(100)는 생성한 사이퍼텍스트에 대응하는 모듈러스(modulus)에 대해 함수의 합성(composition)에 기초한 모듈러 리덕션(modular reduction)을 수행함으로써 사이퍼텍스트에 부트스트래핑(bootstrapping)을 수행할 수 있다.The
프로세서(100)는 함수 및 그 함수의 역함수에 기초하여 모듈러 리덕션을 근사(approximate)함으로써 부트스트래핑을 수행할 수 있다. 프로세서(100)는 함수의 근사 다항식을 획득할 수 있다. 프로세서(100)는 역함수의 근사 다항식을 획득할 수 있다.The
프로세서(100)는 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정할 수 있다. 프로세서(100)는 하나 이상의 기준점에 기초하여 임의의 다항식을 획득할 수 있다. 프로세서(100)는 하나 이상의 기준점을 지나는 조각 연속(piecewise continuous) 함수를 획득할 수 있다. 프로세서(100)는 하나 이상의 기준점에서 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The
프로세서(100)는 하나 이상의 기준점에 포함된 제1 기준점에서의 오차와 제1 기준점과 인접한 제2 기준점의 오차의 부호가 상이하고 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The
프로세서(100)는 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 근사 다항식을 생성할 수 있다. 프로세서(100)는 임의의 다항식과 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득할 수 있다.The
프로세서(100)는 후보점들 중에서 차수에 기초한 수의 타겟점들을 선택할 수 있다. 프로세서(100)는 타겟점들에 기초하여 근사 다항식을 생성할 수 있다. The
프로세서(100)는 함수 및 그 역함수 중 적어도 하나의 근사 다항식을 획득한 후, 획득한 근사 다항식에 기초한 함수의 합성을 수행함으로써 모듈러 리덕션을 수행할 수 있다. 함수 및 그 역함수의 근사 다항식을 획득하는 과정은 도 3 및 도 4를 참조하여 자세하게 설명한다.After obtaining at least one approximate polynomial of a function and an inverse function thereof, the
프로세서(100)는 함수의 근사 다항식 및 역함수의 근사 다항식의 합성 함수에 기초하여 모듈러 리덕션을 근사하는 합성 함수를 생성할 수 있다. 이 때, 함수는 삼각 함수를 포함할 수 있다. 예를 들어, 삼각 함수는 sin 함수 및 cos 함수 중에서 적어도 하나를 포함할 수 있다.The
프로세서(100)는 함수가 삼각 함수인 경우, 삼각 함수에 배각 공식을 적용하여 삼각 함수의 배각 함수를 획득할 수 있다.When the function is a trigonometric function, the
메모리(200)는 프로세서에 의해 실행가능한 인스트럭션들(또는 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서의 동작 및/또는 프로세서의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.The
메모리(200)는 휘발성 메모리 장치 또는 불휘발성 메모리 장치로 구현될 수 있다.The
휘발성 메모리 장치는 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
프로세서(100)는 부트 스트래핑을 수행하기 위해 모듈러 리덕션 함수를 근사할 수 있다. 프로세서(100)는 임의의 함수의 근사 다항식을 획득하고, 역함수의 근사 다항식을 획득할 수 있다. 예를 들어, 임의의 함수는 삼각 함수를 포함할 수 있다.The
도 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
예를 들어, 프로세서(100)는 sin(t)에 대한 근사 다항식 f(t)를 획득할 수 있다(230). 프로세서(100)는 arcsin(t)에 대한 근사 다항식 g(t)를 획득할 수 있다(250). 근사 다항식을 획득하는 과정은 도 3 및 도 4를 참조하여 보다 자세하게 설명한다.For example, the
프로세서(100)는 획득한 g(t)와 f(t)를 합성하여 gf(t)를 획득할 수 있다(270). 프로세서(100)는 합성 함수에 기초하여 모듈러스 함수(예를 들어, 모듈러 리덕션 함수)를 근사할 수 있다(290).The
프로세서(100)는 모듈러스 함수를 삼각 함수와 역삼각 함수의 합성 함수로 근사함으로써 삼각 삼수만을 이용하여 근사한 모듈러스 함수에 비해 오차를 줄일 수 있다.The
프로세서(100)는 함수와 그 역함수의 근사 다항식의 합성에 기반한 모듈러 리덕션 함수를 이용하여 삼각 함수만을 이용한 근사로 인해 발생하는 근본적인 오차를 감소시킬 수 있다. 프로세서(100)는 삼각 함수의 배각 공식을 적용시킴으로써 넌 스칼라 곱셈(non-scalar multiplication)의 수를 감소시킬 수 있다. 함수와 그 역함수의 합성을 통해, 프로세서(100)는 근사 함수에 대한 연산의 수를 감소시킬 수 있다.The
함수 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
여기서, 은 의 범위를 가질 수 있다.here, silver may have a range of
수학식 1 및 수학식 2의 함수에 대한 합성 함수는 수학식 3과 같이 나타낼 수 있다.A synthesis function for the functions of
여기서, 를 대입하면 합성 함수는 수학식 4와 같을 수 있다.here, By substituting , the composition function may be the same as in Equation (4).
여기서, normod(t)는 정규화된 모듈러 리덕션 함수를 의미할 수 있다. 수학식 1 내지 4를 참조하면, 프로세서(100)는 함수 f 및 g를 근사 다항식을 통해 근사시킨 후 합성함으로써 모듈러 리덕션 함수의 오차를 감소시킬 수 있다.Here, normod(t) may mean a normalized modular reduction function. Referring to
프로세서(100)는 상대적으로 작은 에 대해서도 선형 다항식을 이용하여 g(x)를 근사시킬 수 있다. 예를 들어, 프로세서(100)는 g(x)를 항등 함수(identity function)인 x로 근사시킬 수 있다.The
또한, cos 함수는 sin 함수의 평행 이동(parallel shift) 함수이므로, 프로세서(100)는 cos 함수에 대해서도 위와 같이 동일한 함수의 합성을 수행할 수 있다.In addition, since the cos function is a parallel shift function of the sin function, the
임의의 함수가 홀 함수(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)는 구간 에서 arcsin 함수에 대한 최소 최대 근사 다항식 을 수학식 5와 같이 획득할 수 있다.The
또한, 수학식 6의 관계가 만족될 수 있다.Also, the relation of
이 때, 모든 함수의 정의역(domain)은 일 수 있다.In this case, the domain of all functions is can be
이고, 일 때, 수학식 4의 정규화된 모듈러 리덕션 함수는 수학식 7과 같이 계산될 수 있다. ego, When , the normalized modular reduction function of Equation 4 may be calculated as Equation 7.
여기서, 의 최소 선형 다항식은 와 같을 수 있다. 따라서, 원래의 근사 공식에 상수 가 곱해진 형태를 가지기 때문에, 프로세서(100)는 cos 근사가 가지는 근본적인 근사 오차를 1/4 배만큼 감소시킬 수 있다.here, The least linear polynomial of can be the same as Therefore, constant in the original approximation formula Since has a multiplied form, the
이를 통해, 프로세서(100)는 곱셈의 팩터(multiplicative factor)를 조절하는 것 만으로 2 비트의 정확도를 추가적으로 획득할 수 있다.Through this, the
수학식 5 내지 수학식 7은 역함수의 근사 다항식의 차수가 일차인 경우를 설명한 것이고, 프로세서(100)는 역함수의 근사 다항식의 차수를 2차 이상으로 근사함으로써 최소 최대 오차를 더욱 더 감소시킬 수 있다.
프로세서(100)는 수학식 8과 같이 근사 다항식의 차수를 3차로 높여 근사시킬 수 있다.The
여기서, 다항식의 계수 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
모듈러 리덕션 함수를 근사하기 위해서, 프로세서(100)는 sin 또는 cos 함수를 최소최대 근사 다항식을 이용하여 근사한 후, 수학식 8의 를 근사할 수 있다. 프로세서(100)는 sin 또는 cos 함수를 근사하기 위해 배각 공식을 적용할 수 있다.In order to approximate the modular reduction function, the
배각 공식을 적용함으로써 sin 또는 cos 함수가 근사된 후에 두 개의 깊이(depth) 및 두 개의 넌스칼라 곱셈이 추가적으로 요구될 수 있다. 배각 공식을 통해, 정규화된 모듈러 리덕션 함수에 대한 최소 최대 근사 오차는 역함수의 근사 다항식의 차수가 1인 경우의 근사 평탄 오차(approximation flat error)인 와 수학식 8을 이용하여 모듈러 리덕션 함수를 근사한 경우의 최소 최대 근사 오차인 사이의 값을 가질 수 있다.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
를 의 2n+1 차의 최적의 최소최대 근사 다항식(optimal minimax approximate polynomial)이라고 할 때, 은 홀수 차항만을 포함할 수 있다. 이하에서, 은 의 최소최대 근사 오차를 의미할 수 있다. cast Given the optimal minimax approximate polynomial of the 2n+1 order of can contain only odd derivative terms. Below, silver It may mean the minimum maximum approximate error of .
최소최대 근사 오차가 와 사이의 값을 갖도록 하기 위해, 프로세서(100)는 수학식 10과 같은 정규화된 모듈러 리덕션 함수를 획득할 수 있다.Minimum Maximum Approximate Error Wow In order to have a value between, the
여기서, n이 증가할수록 은 0에 가까워질 수 있다. 프로세서(100)는 삼각 함수와 역삼각 함수의 근사 함수의 합성을 통해서, 근사 오차를 감소시킬 수 있다.Here, as n increases, can be close to 0. The
이하에서, 도 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
프로세서(100)는 함수 및 그 역함수 중에서 적어도 하나에 대한 근사 다항식을 획득할 수 있다. 함수 및 그 역함수의 근사 다항식을 획득하는 과정을 동일할 수 있다.The
프로세서(100)는 도 3의 알고리즘 1을 이용하여 구간 [a, b] 상의 임의의 연속 함수에 대하여 최소 최대 근사 다항식을 찾아냄으로써 근사 다항식을 생성할 수 있다. 프로세서(100)는 체비셰프 교번 정리(Chebyshev alternation theorem)을 이용하여 이퀴오실레이션(equioscillation) 조건을 만족하는 근사 다항식을 생성할 수 있다.The
프로세서(100)는 하르 조건(Haar condition)을 만족하는 기저 함수 를 갖는 근사 다항식을 생성할 수 있다. 프로세서(100)는 차수가 d인 근사 다항식을 생성하기 위해서, 기저 함수 를 멱 기저(power basis) 로 선택할 수 있다. 여기서, n=d+1일 수 있다.The
프로세서(100)는 획득하려는 근사 다항식의 차수 d에 기초하여 하나 이상의 기준점을 결정할 수 있다. 프로세서(100)는 최소최대 근사 다항식의 극점에 수렴하는 기준점의 집합을 초기화할 수 있다. 프로세서(100)는 기준점의 집합에 대해서 최소 최대 다항식을 획득할 수 있다. 기준점의 집합은 [a, b]에서 유한한 점의 집합이기 때문에, [a, b]의 닫힌 부분 집합일 수 있고, 기준점에 집합에 대하여 체비셰프 교번 정리가 만족될 수 있다.The
프로세서(100)는 하나 이상의 기준점에 기초하여 임의의 다항식을 획득할 수 있다. 프로세서(100)는 하나 이상의 기준점을 지나는 조각 연속 함수를 획득할 수 있다. 프로세서(100)는 하나 이상의 기준점에서 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The
프로세서(100)는 하나 이상의 기준점에 포함된 제1 기준점에서의 오차와 제1 기준점과 인접한 제2 기준점의 오차의 부호가 상이하고 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The
는 하나 이상의 기준점을 지나는 조각 연속 함수일 수 있다. 가 [a, b] 상의 연속 함수라고 할 때, 기준점의 집합 상의 최소최대 근사 다항식은 기저 를 갖는 일반화된 다항식 이고, 임의의 E 값에 대하여 수학식 11의 조건을 만족할 수 있다. 임의의 E 값은 위에서 설명한 미리 결정된 값일 수 있다. may be a fragment continuous function passing through one or more reference points. When is a continuous function on [a, b], the minimum-maximum approximate polynomial on the set of reference points is the basis generalized polynomial with , and the condition of
프로세서(100)는 수학식 11을 이용하여 임의의 다항식 를 획득할 수 있다. 수학식 11에 따라, 및 E의 n 계수의 n+1 변수들 및 n+1 방정식들을 갖는 선형 방적식의 시스템이 형성되고, 선형 방적식은 하르 조건에 의해 특이적(singular)이지 않으므로, 프로세서(100)는 수학식 11의 조건을 만족하는 다항식 를 획득할 수 있다.The
프로세서(100)는 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 근사 다항식을 생성할 수 있다. 구체적으로, 프로세서(100)는 임의의 다항식과 상기 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득할 수 있다. 프로세서(100)는 후보점들 중에서 상기 차수에 기초한 수의 타겟점들을 선택할 수 있다. 프로세서(100)는 선택한 타겟점들에 기초하여 근사 다항식을 생성할 수 있다.The
프로세서(100)는 , 일 때, 와 사이에서 의 n 개의 영점들(zeros) 를 획득할 수 있고, 각각의 에서 의 n+1 개의 극점(extreme point)들인 를 획득할 수 있다.The
프로세서(100)는 일 때, 에서 의 최소점(minimum point)을 선택하고, 일 때, 에서 의 최대점을 선택할 수 있다.The
이를 통해, 프로세서(100)는 새로운 극점의 집합 을 후보점으로 선택할 수 있다. 이러한 후보점들이 이퀴오실레이션 컨디션을 만족한다면 프로세서(100)는 체비셰프 교번 정리로부터 최소 최대 근사 다항식을 반환함으로써 함수 또는 그 역함수의 근사 다항식을 생성할 수 있다.Through this, the
또한, 프로세서(100)는 기준점의 집합을 상술한 과정을 통해 획득한 새로운 극점의 집합인 로 대체하고, 상술한 다항식의 생성 과정을 반복적으로 수행할 수 있다.In addition, the
도 3에 도시된 알고리즘 1은 하나의 구간의 다중 부분 구간들(multiple sub-intervals)로 확장될 수 있다. 다중 부분 구간들로 확장하여 적용될 경우, 도 3의 단계 3과 단계 4가 변경될 수 있다.
각 반복(iteration)에서 프로세서(100)는 오차 함수 의 모든 지역 극점(local extreme point)들을 획득할 수 있고, 이러한 지역 극점들의 절대 오차값은 현재 기준점들에서의 절대 오차값 보다 클 수 있다.At each iteration, the
그 후, 프로세서(100)는 획득한 모든 지역 극점들 중에서 아래의 두 조건을 만족하는 n+1 개의 새로운 극점들을 선택할 수 있다.Thereafter, the
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
프로세서(100)가 근사를 통해 획득하려고 하는 모듈러 리덕션 함수는 수학식 12로 표현되는 유한한 숫자의 정수 근처에서만 정의되는 정규화된 모듈러 리덕션(normalized modular reduction) 함수일 수 있다. The modular reduction function that the
수학식 12는 정의역(domain) 및 범위(range)에 대하여 스케일링된 모듈러 리덕션 함수를 나타낼 수 있다.Equation 12 may represent a scaled modular reduction function with respect to a domain and a range.
프로세서(100)는 동형 계산(homorphic evaluation)을 효율적으로 수행하기위해서, 를 근사하기 위해 코사인 함수를 배각 공식(double-angle formula)을 이용하여 근사할 수 있다.The
배각 공식을 번 사용하면 수학식 13의 코사인 함수가 근사되어야 할 수 있다.doubling formula When used, the cosine function of Equation 13 may have to be approximated.
수학식 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
여기서, 모든 에 대해서, 일 수 있다.here, all about, can be
프로세서(100)는 d 이하의 차수를 갖는 다항식으로 주어진 조각 연속 함수를 수학식 14의 D 상에 근사하기 위해서, 복수의 극점들 중에서 새로운 d+2 개의 기준점들을 선택하기 위한 기준(criterion)을 설정할 수 있다.The
프로세서(100)는 [a, b] 상에서 하르 조건을 만족하는 를 다항식의 기저로 하여 근사 다항식을 생성할 수 있다. 프로세서(100)는 각 반복에서 기준점들의 집합에 따른 최소최대 근사 다항식을 획득할 수 있고, 다음 반복에서 새로운 기준점의 집합을 선택할 수 있다.The
프로세서(100)가 기준점의 집합을 이용하여 획득한 임의다항식을 이용하여 계산한 오차 함수의 극점들 중에서 n+1 개의 점들을 선택하는 경우의 수는 매우 많을 수 있다. 프로세서(100)가 수행하는 암호화 과정에서 많은 구간들이 고려될 수 있기 때문에 후보 극점의 수가 매우 많을 수 있다.The number of cases in which the
프로세서(100)는 반복의 수를 최대한 줄이기 위해 각 반복에서 많은 수의 후보점들 중에서 n+1 개의 타겟점을 선택할 수 있다. 이를 통해, 프로세서(100)는 각 반복에서 생성하는 근사 다항식을 수렴시켜 최소최대 근사 다항식을 생성할 수 있다. 이 때, 최종적으로 생성된 최소최대 근사 다항식이 위에서 설명한 함수 및/또는 그 역함수의 근사 다항식일 수 있다.The
n+1 개의 타겟점을 선택하는 기준을 설정하기 위해, 프로세서(100)는 수학식 15의 함수를 정의할 수 있다.In order to set a criterion for selecting n+1 target points, the
여기서, 각 반복에서 획득한 임의의 다항식을 의미하고, 는 근사될 조각 연속 함수를 의미할 수 있다. 이하에서 편의를 위해 는 로 지칭될 수 있다.here, means any polynomial obtained at each iteration, may mean a fragment continuous function to be approximated. Below for convenience Is may be referred to as
프로세서(100)는 의 모든 극점을 획득하여 집합 를 생성할 수 있다. 는 유한 집합으로 와 같이 나타낼 수 있다. 프로세서(100)는 에 속한 하나의 구간에서 한 점을 선택할 수 있다.The
가 와 같이 오름차순으로 정렬되어 있다고 가정하면, 의 값은 1 또는 -1일 수 있다. 극점의 수는 를 만족할 수 있다. go Assuming they are sorted in ascending order, The value of may be 1 or -1. number of poles can be satisfied
프로세서(100)는 함수의 집합 를 수학식 16과 같이 정의할 수 있다.The
이 때, n+1=m 인 경우, 집합 는 항등 함수(identity function)만을 포함할 수 있다. At this time, if n+1=m, set may include only an identity function.
프로세서(100)는 n+1 개의 극점을 선택하기 위해 세 가지 기준을 설정할 수 있다.The
첫 번째 조건으로 프로세서(100)는 지역 극값(local extreme value) 조건을 설정할 수 있다. 만약, 가 설정된 기준점들에서의 절대 오차라면, 수학식 17의 조건이 설정될 수 있다.As a first condition, the
프로세서(100)는 지역 극값 조건을 만족시키기 위해 의 지역 최대값이 음수이거나 의 지역 최소값이 양수인 경우에 그 극점을 버릴 수 있다.The
두 번째로, 프로세서(100)는 교번 조건(alternating condition)을 설정할 수 있다. 다시 말해, 수학식 18의 조건이 설정될 수 있다. 다시 말해, 인접하는 두 극점 중 하나의 극점이 지역 최대값이라면 다른 하나의 극점은 지역 최소값일 수 있다.Second, the
세 번째로, 프로세서(100)는 최대 절대 합 조건(maximum absolute sum condition)을 설정할 수 있다. 프로세서(100)는 지역 극값 조건 및 교번 조건을 만족하는 들 중에서 수학식 19의 값을 최대화하는 를 선택할 수 있다.Third, the
현재의 기준점들인 에서의 절대 오차 값은 최소최대 근사 오차보다 작고, 반복 횟수가 증가할수록 최소최대 근사 오차로 수렴할 수 있다.current reference points 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.
또한, 현재의 기준점들의 절대 오차 값은 에서 이전 반복에서의 근사 다항식의 절대 오차값의 가중 평균(weighted average)일 수 있다.In addition, the absolute error value of the current reference points is may be a weighted average of the absolute error values of the approximate polynomials in the previous iteration.
프로세서(100)는 최대 절대 합 조건을 이용하여 현재의 기준점들의 절대 오차 값이 최소최대 근사 오차로 빠르게 수렴하도록 할 수 있다.The
지역 극값 조건 및 교번 조건은 도 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
집합 는 지역 극값 조건 및 교번 조건을 만족하는 적어도 하나의 원소 를 항상 포함하고, 어떠한 에 대하여, 를 만족하는 를 가질 수 있다.set is at least one element that satisfies the local extrema condition and the alternating condition always include, and any about, to satisfy can have
프로세서(100)는 도 4의 알고리즘 2의 단계 2, 3 및 4를 아래와 같이 보다 효율적으로 수행할 수 있다. 프로세서(100)는 연속 함수 에 대한 현재의 기준점에서의 멱 기저를 갖는 근사 다항식의 계수들을 찾아낼 수 있다.The
다시 말해, 프로세서(100)는 수학식 20의 계수 값들을 획득함으로써 근사 다항식을 생성할 수 있다. In other words, the
여기서, 선형 방정식의 미지수일 수 있다. 근사 다항식의 기저의 차수가 증가할수록, 계수는 감소할 수 있다. 프로세서(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
따라서, 프로세서(100)는 근사 다항식의 기저를 체비셰프 다항식의 기저를 사용함으로써 정확도 문제를 효과적으로 해결할 수 있다. 체비셰프 기저를 이용한 다항식의 계수는 대부분 같은 차수(order)를 가지기 때문에 프로세서(100)는 멱 기저 대신에 체비셰프 기저를 이용하여 근사 다항식을 생성할 수 있다.Accordingly, the
체비 셰프 다항식은 상술한 하르 조건을 만족시키고, 프로세서(100)는 d+2 개의 기준점들을 이용하여 수학식 21의 d+2 개의 선형 방적식의 시스템을 풀어 및 E를 계산함으로써 근사 다항식을 획득할 수 있다.The Chebyshev polynomial satisfies the above-mentioned Harr condition, and the
도 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
프로세서(100)는 함수 및 그 함수의 역함수에 기초하여 모듈러 리덕션을 근사함으로써 부트스트래핑을 수행할 수 있다. 프로세서(100)는 함수의 근사 다항식을 획득하고, 역함수의 근사 다항식을 획득할 수 있다.The
프로세서(100)는 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정하고, 하나 이상의 기준점에 기초하여 임의의 다항식을 획득할 수 있다.The
프로세서(100)는 하나 이상의 기준점을 지나는 조각 연속 함수를 획득하고, 하나 이상의 기준점에서 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The
프로세서(100)는 하나 이상의 기준점에 포함된 제1 기준점에서의 오차와 제1 기준점과 인접한 제2 기준점의 오차의 부호가 상이하고 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The
프로세서(100)는 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 근사 다항식을 생성할 수 있다. 프로세서(100)는 임의의 다항식과 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득하고, 후보점들 중에서 차수에 기초한 수의 타겟점들을 선택할 수 있다.The
프로세서(100)는 선택한 타겟점들에 기초하여 함수 또는 그 역함수의 근사 다항식을 생성할 수 있다.The
프로세서(100)는 함수의 근사 다항식 및 역함수의 근사 다항식의 합성 함수에 기초하여 모듈러 리덕션을 근사하는 합성 함수를 생성할 수 있다. 이 때, 프로세서(100)는 함수가 삼각 함수인 경우, 삼각 함수에 배각 공식을 적용하여 삼각 함수의 배각 함수를 획득할 수 있다.The
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded 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)
데이터를 암호화함으로써 사이퍼텍스트(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
상기 수행하는 단계는,
상기 함수 및 상기 함수의 역함수에 기초하여 상기 모듈러 리덕션을 근사(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
상기 함수 및 상기 함수의 역함수에 기초하여 상기 모듈러 리덕션을 근사(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
상기 함수는,
삼각 함수를 포함하는 암호화 방법.
According to claim 1,
The function is
An encryption method involving trigonometric functions.
상기 함수의 근사 다항식을 획득하는 단계는,
상기 함수가 삼각 함수인 경우, 상기 삼각 함수에 배각 공식을 적용하여 상기 삼각 함수의 배각 함수를 획득하는 단계
를 포함하는 암호화 방법.
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
상기 함수의 근사 다항식을 획득하는 단계는,
상기 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정하는 단계;
상기 하나 이상의 기준점에 기초하여 임의의 다항식을 획득하는 단계; 및
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 근사 다항식을 생성하는 단계
를 포함하는 암호화 방법.
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
상기 임의의 다항식을 획득하는 단계는,
상기 하나 이상의 기준점을 지나는 조각 연속(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
상기 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는 단계는,
상기 하나 이상의 기준점에 포함된 제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
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 근사 다항식을 생성하는 단계는,
상기 임의의 다항식과 상기 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득하는 단계;
상기 후보점들 중에서 상기 차수에 기초한 수의 타겟점들을 선택하는 단계; 및
상기 타겟점들에 기초하여 상기 근사 다항식을 생성하는 단계
를 포함하는 암호화 방법.
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
A computer program stored in a medium for executing the method of any one of claims 1 to 9 in combination with hardware.
데이터를 암호화함으로써 사이퍼텍스트(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.
상기 프로세서는,
상기 함수 및 상기 함수의 역함수에 기초하여 상기 모듈러 리덕션을 근사(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.
상기 프로세서는,
상기 함수의 근사 다항식을 획득하고,
상기 역함수의 근사 다항식을 획득하고,
상기 함수의 근사 다항식 및 상기 역함수의 근사 다항식의 합성 함수에 기초하여 상기 모듈러 리덕션을 근사하는 합성 함수를 생성하는
암호화 장치.
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.
상기 함수는,
삼각 함수를 포함하는 암호화 장치.
12. The method of claim 11,
The function is
A cryptographic device containing a trigonometric function.
상기 프로세서는,
상기 함수가 삼각 함수인 경우, 상기 삼각 함수에 배각 공식을 적용하여 상기 삼각 함수의 배각 함수를 획득하는
암호화 장치.
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.
상기 프로세서는,
상기 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정하고,
상기 하나 이상의 기준점에 기초하여 임의의 다항식을 획득하고,
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 근사 다항식을 생성하는
암호화 장치.
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.
상기 프로세서는,
상기 하나 이상의 기준점을 지나는 조각 연속(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.
상기 프로세서는,
상기 하나 이상의 기준점에 포함된 제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.
상기 프로세서는,
상기 임의의 다항식과 상기 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득하고,
상기 후보점들 중에서 상기 차수에 기초한 수의 타겟점들을 선택하고,
상기 타겟점들에 기초하여 상기 근사 다항식을 생성하는
암호화 장치.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.
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) |
-
2020
- 2020-10-26 KR KR1020200139489A patent/KR20210130620A/en unknown
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 |