KR20210136815A - Encryption method and apparatus using homomorhpic encryption - Google Patents
Encryption method and apparatus using homomorhpic encryption Download PDFInfo
- Publication number
- KR20210136815A KR20210136815A KR1020200139444A KR20200139444A KR20210136815A KR 20210136815 A KR20210136815 A KR 20210136815A KR 1020200139444 A KR1020200139444 A KR 1020200139444A KR 20200139444 A KR20200139444 A KR 20200139444A KR 20210136815 A KR20210136815 A KR 20210136815A
- Authority
- KR
- South Korea
- Prior art keywords
- polynomial
- processor
- points
- target
- encryption
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
Description
아래 실시예들은 동형 암호를 이용한 암호화 방법 및 장치에 관한 것이다.The following embodiments relate to an encryption method and apparatus using homomorphic encryption.
완전 동형 암호화(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 according to an embodiment includes generating a ciphertext by encrypting data, and one for a modulus corresponding to the ciphertext. and performing bootstrapping on the ciphertext by performing modular reduction based on the selection of the above target point.
상기 수행하는 단계는, 상기 모듈러 리덕션에 대응하는 함수를 근사(approximate)함으로써 상기 부트스트래핑을 수행하는 단계를 포함할 수 있다.The performing may include performing the bootstrapping by approximating a function corresponding to the modular reduction.
상기 모듈러 리덕션에 대응하는 함수를 근사(approximate)함으로써 상기 부트스트래핑을 수행하는 단계는, 상기 모듈러 리덕션에 대응하는 함수를 근사하는 타겟 근사 다항식을 생성하는 단계를 포함할 수 있다.The step of performing the bootstrapping by approximating the function corresponding to the modular reduction may include generating a target approximation polynomial that approximates the function corresponding to the modular reduction.
상기 모듈러 리덕션에 대응하는 함수를 근사하는 타겟 근사 다항식을 생성하는 단계는, 상기 타겟 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정하는 단계와, 상기 하나 이상의 기준점에 기초하여 임의의 다항식을 획득하는 단계와, 상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 타겟 근사 다항식을 생성하는 단계를 포함할 수 있다.The generating a target approximation polynomial approximating a function corresponding to the modular reduction includes: determining one or more reference points based on an order of the target approximation polynomial; and obtaining an arbitrary polynomial based on the one or more reference points. and generating the target approximation polynomial based on one or more poles selected from the arbitrary polynomial.
상기 획득하는 단계는, 상기 하나 이상의 기준점을 지나는 조각 연속(piecewise continuous) 함수를 획득하는 단계와, 상기 하나 이상의 기준점에서 상기 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는 단계를 포함할 수 있다.The obtaining may include obtaining a piecewise continuous function passing through the one or more reference points, and generating a polynomial such that an absolute value of an error with the piecewise continuous function at the one or more reference points is a predetermined value. and obtaining any of the polynomials.
상기 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는 단계는, 상기 하나 이상의 기준점에 포함된 제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 target approximation polynomial based on one or more poles selected from the arbitrary polynomials may include: an absolute value of the poles of the error between the arbitrary polynomial and the fragment continuous function passing through the one or more reference points is greater than a predetermined value, or The method may include obtaining the same candidate points, selecting a number of target points based on the order from among the candidate points, and generating the target approximation polynomial based on the target points.
상기 타겟점들을 선택하는 단계는, 상기 후보점들 중에서 극대와 극소가 교대로 나타나도록 상기 타겟점들을 선택하는 단계를 포함할 수 있다.The selecting of the target points may include selecting the target points so that a maximum and a minimum appear alternately among the candidate points.
상기 타겟점들을 선택하는 단계는, 상기 오차의 절대값의 합이 최대가 되도록 상기 타겟점들을 선택하는 단계를 포함할 수 있다.The selecting of the target points may include selecting the target points such that the sum of the absolute values of the errors becomes a maximum.
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 타겟 근사 다항식을 생성하는 단계는, 상기 하나 이상의 극점의 절대값의 최대값과 최소값의 상대오차가 임계값보다 작을 경우의 다항식을 상기 타겟 근사 다항식으로 생성하는 단계를 포함할 수 있다.The generating of the target approximation polynomial based on the one or more poles selected from the arbitrary polynomials may include: converting the polynomial when the relative error between the maximum and minimum absolute values of the one or more poles is less than a threshold value as the target approximate polynomial. It may include the step of generating
상기 타겟 근사 다항식의 기저(basis)는 체비셰프(Chebyshev) 다항식의 기저일 수 있다.The basis of the target approximation polynomial may be a basis of a Chebyshev polynomial.
동형 암호(homomorphic encryption)를 이용한 암호화 장치에 있어서, 일 실시예에 따른 암호화 장치는, 데이터를 암호화함으로써 사이퍼텍스트(ciphertext)를 생성하고, 상기 사이퍼텍스트에 대응하는 모듈러스(modulus)에 대해 하나 이상의 타겟점의 선택에 기초한 모듈러 리덕션(modular reduction)을 수행함으로써 상기 사이퍼텍스트에 부트스트래핑(bootstrapping)을 수행하는 프로세서와, 상기 프로세서에 의해 실행가능한 인스트럭션을 저장하는 메모리를 포함한다.In an encryption device using homomorphic encryption, the encryption device according to an embodiment generates a ciphertext by encrypting data, and at least one target for a modulus corresponding to the ciphertext. and a processor that bootstraps the ciphertext by performing modular reduction based on selection of a point, and a memory that stores instructions executable by the processor.
상기 프로세서는, 상기 모듈러 리덕션에 대응하는 함수를 근사(approximate)함으로써 상기 부트스트래핑을 수행할 수 있다.The processor may perform the bootstrapping by approximating a function corresponding to the modular reduction.
상기 프로세서는, 상기 모듈러 리덕션에 대응하는 함수를 근사하는 타겟 근사 다항식을 생성할 수 있다.The processor may generate a target approximation polynomial that approximates a function corresponding to the modular reduction.
상기 프로세서는, 상기 타겟 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정하고, 상기 하나 이상의 기준점에 기초하여 임의의 다항식을 획득하고, 상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 타겟 근사 다항식을 생성할 수 있다.The processor is configured to determine one or more reference points based on the order of the target approximation polynomial, obtain a random polynomial based on the one or more reference points, and the target approximation polynomial based on one or more poles selected from the arbitrary polynomial. can create
상기 프로세서는, 상기 하나 이상의 기준점을 지나는 조각 연속(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 target approximation polynomial may be generated based on the target points.
상기 프로세서는, 상기 후보점들 중에서 극대와 극소가 교대로 나타나도록 상기 타겟점들을 선택할 수 있다.The processor may select the target points such that a maximum and a minimum appear alternately among the candidate points.
상기 프로세서는, 상기 오차의 절대값의 합이 최대가 되도록 상기 타겟점들을 선택할 수 있다.The processor may select the target points such that the sum of the absolute values of the errors is a maximum.
상기 프로세서는, 상기 하나 이상의 극점의 절대값의 최대값과 최소값의 상대오차가 임계값보다 작을 경우의 다항식을 상기 타겟 근사 다항식으로 생성할 수 있다.The processor may generate a polynomial when a relative error between a maximum value and a minimum value of the absolute values of the one or more poles is smaller than a threshold value as the target approximation polynomial.
상기 타겟 근사 다항식의 기저(basis)는 체비셰프(Chebyshev) 다항식의 기저일 수 있다.The basis of the target approximation polynomial may be a basis of a Chebyshev polynomial.
도 1은 일 실시예에 따른 암호화 장치의 개략적인 블록도를 나타낸다.
도 2a는 도 1에 도시된 암호화 장치가 타겟 근사 다항식을 생성하는 알고리즘의 일 예를 나타낸다.
도 2b는 도 1에 도시된 암호화 장치가 타겟 근사 다항식을 생성하는 알고리즘의 다른 예를 나타낸다.
도 2c는 도 1에 도시된 암호화 장치가 타겟 근사 다항식을 생성하는 동작의 순서도를 나타낸다.
도 3은 도 1에 도시된 암호화 장치가 극점을 탐색하는 동작의 순서도를 나타낸다.
도 4a는 도 1에 도시된 암호화 장치가 타겟점들을 선택하는 알고리즘의 예를 나타낸다.
도 4b는 도 1에 도시된 암호화 장치가 타겟점들을 선택하는 동작의 순서도를 나타낸다.
도 5는 도 1에 도시된 암호화 장치의 전체 동작의 순서를 나타낸다.1 shows a schematic block diagram of an encryption apparatus according to an embodiment.
FIG. 2A shows an example of an algorithm in which the encryption device shown in FIG. 1 generates a target approximation polynomial.
FIG. 2B shows another example of an algorithm in which the encryption device shown in FIG. 1 generates a target approximation polynomial.
FIG. 2C shows a flowchart of an operation in which the encryption device shown in FIG. 1 generates a target approximation polynomial.
FIG. 3 is a flowchart of an operation in which the encryption device shown in FIG. 1 searches for a pole.
FIG. 4A shows an example of an algorithm in which the encryption device shown in FIG. 1 selects target points.
FIG. 4B is a flowchart of an operation in which the encryption device shown in FIG. 1 selects target points.
FIG. 5 shows a sequence of overall operations 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)는 동형 암호를 이용하여 암호화된 데이터를 복호화(decryption) 없이도 연산할 수 있는 암호 기술을 제공할 수 있다. 예를 들어, 암호화 장치(10)는 동형 암호를 이용하여 암호화된 상태에서 연산한 결과를 복호화함으로써 평문(plain text) 상태의 데이터를 연산한 결과와 동일한 결과가 도출될 수 있다. 암호화 장치(10)는 임의의 실수 또는 복소수에 대한 동형 암호 연산을 제공할 수 있다.The
암호화 장치(10)는 동형 암호(homomorphic encryption)에 필요한 부트스트래핑(bootstrapping)을 수행할 수 있다. 암호화 장치(10)는 동형 암호에 요구되는 모듈러 리덕션(modular reduction)에 대응하는 함수를 근사하기 위해 타겟 근사 다항식을 생성할 수 있다.The
암호화 장치(10)는 최적의 최소최대 근사 다항식(optimal minimax approximate polynomial)의 각 차수에 대하여 최소최대 근사 오차(minimax approximation error)를 찾아낼 수 있다.The
암호화 장치(10)는 최적 근사 다항식을 타겟 근사 다항식으로 찾아냄으로써, 동형 암호 방식의 최소최대 근사 오차의 관점에서 우수한 성능을 제공할 수 있다.The
암호화 장치(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)를 생성할 수 있다. 프로세서(100)는 생성한 사이퍼텍스트에 대응하는 모듈러스(modulus)에 대해 모듈러 리덕션(modular reduction)을 수행함으로써 사이퍼텍스트에 부트스트래핑(bootstrapping)을 수행할 수 있다.The
프로세서(100)는 모듈러 리덕션에 대응하는 함수를 근사(approximate)함으로써 부트스트래핑을 수행할 수 있다. 프로세서(100)는 모듈러 리덕션에 대응하는 함수를 근사하는 타겟 근사 다항식(target approximation polynomial)을 생성할 수 있다.The
프로세서(100)는 타겟 근사 다항식의 차수(degree of polynomial)에 기초하여 하나 이상의 기준점을 결정할 수 있다.The
프로세서(100)는 결정된 하나 이상의 기준점에 기초하여 임의의 다항식을 획득할 수 있다. 프로세서(100)는 하나 이상의 기준점을 지나는 조각 연속(piecewise continuous) 함수를 획득할 수 있다. 프로세서(100)는 하나 이상의 기준점에서 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The
프로세서(100)는 하나 이상의 기준점에 포함된 제1 기준점에서의 오차와 제1 기준점과 인접한 제2 기준점의 오차의 부호가 상이하고 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The
프로세서(100)는 임의의 다항식으로부터 선택된 하나 이상의 극점(extremum point)에 기초하여 타겟 근사 다항식을 생성할 수 있다. 구체적으로, 프로세서(100)는 임의의 다항식과 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득할 수 있다.The
프로세서(100)는 획득한 후보점들 중에서 타겟 근사 다항식의 차수에 기초한 수의 타겟점들을 선택할 수 있다. 프로세서(100)는 후보점들 중에서 극대와 극소가 교대로 나타나도록 타겟점들을 선택할 수 있다. 프로세서(100)는 임의의 다항식과 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 절대값의 합이 최대가 되도록 타겟점들을 선택할 수 있다.The
프로세서(100)는 선택한 타겟점들에 기초하여 타겟 근사 다항식을 생성할 수 있다. 프로세서(100)는 하나 이상의 극점의 절대값의 최대값과 최소값의 상대오차가 임계값보다 작을 경우의 다항식을 타겟 근사 다항식으로 생성할 수 있다.The
이 때, 타겟 근사 다항식의 기저(basis)는 체비셰프(Chebyshev) 다항식의 기저일 수 있다.In this case, the basis of the target approximation polynomial may be the basis of the Chebyshev polynomial.
메모리(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.
이하에서, 도 2a 내지 도 2c를 참조하여 암호화 장치(10)가 암호화 및 부트스트래핑을 수행하는 과정을 상세히 설명한다. 이하에서, 암호화 장치(10)가 수행하는 암호화 동작에 대하여 설명한 후, 부트스트래핑 과정에 대하여 보다 상세하게 설명한다.Hereinafter, a process in which the
도 2a 및 도 2b는 도 1에 도시된 암호화 장치가 타겟 근사 다항식을 생성하는 알고리즘의 예들을 나타내고, 도 2c는 도 1에 도시된 암호화 장치가 타겟 근사 다항식을 생성하는 동작의 순서도를 나타낸다.2A and 2B show examples of an algorithm in which the encryption device shown in FIG. 1 generates a target approximation polynomial, and FIG. 2C shows a flowchart of an operation in which the encryption device shown in FIG. 1 generates a target approximation polynomial.
도 2a 내지 도 2c를 참조하면, 프로세서(100)는 데이터에 대한 암호화를 수행할 수 있다.2A to 2C , the
이하에서, 프로세서(100)의 암호화 동작을 설명하기 위한 표기(notation)에 대하여 설명한다.Hereinafter, notation for describing the encryption operation of the
, , 및 는 각각 정수, 유리수, 실수 및 복소수의 집합을 나타낼 수 있다. C[D]는 도메인 D 상의 연속 함수의 집합을 의미할 수 있다. [d]는 d 이하의 양의 정수의 집합을 의미할 수 있다. 예를 들어, [d]는 {1, 2, ??, d}를 의미할 수 있다. , , and may represent sets of integers, rational numbers, real numbers, and complex numbers, respectively. C[D] may mean a set of continuous functions on domain D. [d] may mean a set of positive integers less than or equal to d. For example, [d] may mean {1, 2, ??, d}.
round(x)는 x에 가장 가까운 정수를 출력하는 함수를 의미할 수 있다. 2의 거듭제곱인 M에 대하여 는 M 번째 원분 다항식(cyclotomic polynomial)을 의미하고, M=2N일 수 있다.round(x) may mean a function that outputs the nearest integer to x. For M, which is a power of 2 denotes an M-th cyclotomic polynomial, and may be M=2N.
및 는 각각 및 를 의미할 수 있다. 는 M 번째 원분체(cyclotomic field)를 의미할 수 있다. and are each and can mean may refer to the M-th cyclotomic field.
양의 실수 α에 대하여, 는 에서의 분포(distribution)로 정의되고, 그 엔트리들(entries)은 분산 α2의 이산 가우스 분포(discrete gaussian distribution)로부터 독립적으로 샘플링될 수 있다.For a positive real α, Is is defined as a distribution in , and its entries can be sampled independently from a discrete Gaussian distribution of variance α2.
는 해밍 가중치(Hamming weight) h를 갖는 의 부분집합을 의미할 수 있다. 는 에서의 분포(distribution)를 의미하고, 그 엔트리들은 각각의 ±1에 대하여 ρ/2의 확률을 갖고, 0이될 확률로 1-ρ를 갖고 독립적으로 샘플링될 수 있다. has a Hamming weight h may mean a subset of Is means the distribution in , and the entries can be independently sampled with a probability of ρ/2 for each ±1, and 1-ρ with a probability of being zero.
체비셰프 다항식 는 로 정의될 수 있고, 이하에서 기재되는 로그(logarithm)의 밑(base)은 2이다.Chebyshev polynomials Is may be defined, and the base of the logarithm described below is 2.
이하에서, 프로세서(100)가 수행하는 암호화 동작에 대하여 설명한다.Hereinafter, an encryption operation performed by the
프로세서(100)는 실수 또는 복소수의 암호화된 데이터에 대한 몇 개의 연산을 지원할 수 있다. 암호화 장치(10)는 주로 실수를 다루기 때문에, 암호화 방식의 보안을 보장(ensure)하는 노이즈가 데이터의 중요한 요소(significant figure)의 외부에 수용될(embraced) 수 있다.The
몇 개의 독립적인 메시지가 암호화 전에 기본 매장(canonical embedding)에 의해 하나의 다항식으로 인코딩될 수 있다. 기본 매장 는 를 의 원소(element)에 저장하고, 의 원소들은 의 개별 근에서 구해진 의 값을 의미할 수 있다.Several independent messages can be encoded into a single polynomial by canonical embedding before encryption. default store Is cast stored in an element of the elements of obtained from the individual roots of can mean the value of
의 근은 M 거듭 제곱근(M-th root of unity)의 홀수의 거듭제곱(power of odd integer)이고, 일 수 있다. The root of is the power of odd integer of M-th root of unity, can be
는 이고, 는 로부터 에 대한 자연 퉁영(natural projection)을 의미할 수 있다. 의 범위(range)는 일 수 있다. Is ego, Is from It can mean a natural projection of the range of can be
N/2 복소수 메세지들은 에서 원소를 구성하고, 각각의 좌표는 슬롯(slot)으로 지칭될 수 있다. 인코딩 및 디코딩 과정은 아래와 같이 주어질 수 있다.N/2 complex number messages are constituting an element in , and each coordinate may be referred to as a slot. The encoding and decoding process can be given as follows.
벡터 에 대해서, 인코딩 는 수학식1의 값을 반환(return)할 수 있다.vector About encoding may return the value of
여기서, 는 스케일링 팩터(scaling factor)를 나타내고, 는 을 의 원소로 이산화(discretization) 또는 반올림(rounding)하는 연산을 나타낼 수 있다.here, represents a scaling factor, Is second It can represent the operation of discretization or rounding with the elements of .
다항식 에 대해서, 디코딩 는 벡터 를 반환할 수 있고, 벡터의 인덱스(index)의 엔트리 는 에 대해 를 만족하고, 은 M 제곱근(M-th root of unity)을 나타낼 수 있다.polynomial about, decoding is vector can return, and the entry at the index of the vector Is About satisfied with may represent M-th root of unity.
암호화 장치(10)는 키를 생성할 수 있다. 주어진 보안 파라미터 에 대해서, 암호화 장치(10)는 M의 거듭 제곱, 정수 , 정수 , 양의 실수 , 프레쉬 사이퍼텍스트 모듈러스(fresh ciphertext modulus) 및 최대 사이퍼텍스트 모듈러스가 되는 빅 사이퍼텍스트 모듈러스(big ciphertext modulus) 를 선택할 수 있다.The
프레쉬 사이퍼텍스트는 연산이 수행되지 않은 암호화된 데이터 또는 최초로 암호화된 데이터를 의미할 수 있다.Fresh ciphertext may refer to encrypted data on which no operation is performed or initially encrypted data.
프로세서(100)는 퍼블릭 키(public key, pk) 및 시크릿 키(secret key, sk)를 수학식 2와 같이 설정할 수 있다.The
여기서, s, a 및 e는 각각 , 및 를 의미할 수 있다.where s, a and e are each , and can mean
프로세서(100)는 계산 키(evaluation key)를 수학식 3과 같이 설정할 수 있다.The
및 는 각각 , 를 의미할 수 있다. and are each , can mean
프로세서(100)는 인코딩 를 수행함으로써 수학식 4와 같은 반환할 수 있다.
여기서, , 및 는 각각 , 와 같이 샘플링될 수 있다.here, , and are each , can be sampled as
프로세서(100)는 디코딩 을 수행하여 를 반환할 수 있다.The
프로세서(100)는 두 사이퍼텍스트에 대한 덧셈 을 수행함으로써 수학식 5의 결과를 반환할 수 있다.The
프로세서(100)는 두 사이퍼텍스트 , 에 대한 곱셈 을 수행하여 수학식 6의 결과를 반환할 수 있다.The
여기서, 일 수 있다.here, can be
또한, 프로세서(100)는 를 수행하여 수학식 7의 결과를 반환할 수 있다.In addition, the
각각의 사이퍼텍스트는 부트스트래핑 없이 가능한 곱셈의 최대 횟수를 나타내는 레벨 을 가질 수 있다. 레벨 의 각 사이퍼텍스트에 대한 모듈러스 은 스케일링 팩터가 이고, 베이스 모듈러스가 일 때, 의 값을 가질 수 있다.Each ciphertext has a level representing the maximum number of possible multiplications without bootstrapping. can have level modulus for each ciphertext in is the scaling factor and the base modulus is when, can have a value of
추가적으로, 프로세서(100)는 부트스트래핑에서의 동형 선형 변환에 사용되는 복소 켤레(complex conjugation) 연산 및 회전(rotation) 연산을 수행할 수 있다.Additionally, the
이하에서, 암호화 장치(10)가 수행하는 부트스래핑 동작에 대하여 설명한다.Hereinafter, a bootstrapping operation performed by the
부트스트래핑의 목적은 곱셈이 더 이상 수행될 수 없는 레벨 0의 사이퍼텍스트(ciphertext)를 리프레쉬(refresh)하여, 동일한 메세지(message)를 갖는 레벨 L의 사이퍼텍스트를 생성하는 것일 수 있다.The purpose of bootstrapping may be to refresh the level 0 ciphertext in which multiplication can no longer be performed, thereby generating a level L ciphertext with the same message.
사이퍼텍스트는 암호화된 데이터를 의미할 수 있다. 사이퍼텍스트의 레벨은 부트스트래핑 없이 가능한 곱셈의 수를 의미할 수 있다.The ciphertext may mean encrypted data. The level of ciphertext may mean the number of possible multiplications without bootstrapping.
부트스트래핑은 4 가지 동작을 포함할 수 있다. 첫 번째로, 부트스트래핑은 모듈러스 증가(modulus rasing) 동작을 포함하고, 두 번째로, 동형 선형 변환(homomorphic linear transformation) 동작을 포함할 수 있다. 세 번째로, 동형 모듈러 리덕션(homomorphic modular reduction) 동작을 포함하고, 네 번째로, 동형 선형 변환 동작을 포함할 수 있다.Bootstrapping may include four operations. First, the bootstrapping may include a modulus rasing operation, and secondly, it may include a homomorphic linear transformation operation. Third, it may include a homomorphic modular reduction operation, and fourthly, it may include a homomorphic linear transformation operation.
프로세서(100)는 모듈러스 증가를 수행할 수 있다. 모듈러스 증가 동작을 설명하기 위해서, 대신에 의 원소로 레벨 0의 사이퍼텍스트가 사용될 수 있다.The
레벨 0의 사이퍼텍스트는 의 상태일 수 있다. 여기서, ct는 사이퍼텍스트를 의미하고, sk는 시크릿 키를 의미할 수 있다. 프로세서(100)가 사이퍼텍스트를 복호화(decrypt)할 때에는 어떠한 에 대하여 의 형태를 가질 수 있다.Level 0 ciphertext is may be in the state of Here, ct may mean ciphertext, and sk may mean a secret key. When the
여기서, sk의 계수가 작은 수를 갖기 때문에, 의 계수의 절대값(absolute values of coefficient)은 작은 수를 가질 수 있다. 예를 들어, 의 계수의 절대값은 12 보다 작은 값을 가질 수 있다.Here, since the coefficient of sk has a small number, The absolute values of the coefficient of may have a small number. E.g, The absolute value of the coefficient of may have a value less than 12.
프로세서(100)는 레벨 0의 사이퍼텍스트에 부트스트래핑을 수행함으로써 을 만족하는 를 만들 수 있다. 이를 위해, 프로세서(100)는 동형 선형 변환 및 모듈러 리덕션 함수의 동형 계산(homomorphic evaluation)을 수행할 수 있다.The
이하에서, 프로세서(100)의 동형 선형 변환 동작에 대하여 설명한다. 모듈러스 증가가 수행된 이후, 사이퍼텍스트 ct는 를 암호화하는 사이퍼텍스트로 간주될 수 있다. 프로세서(100)는 메시지(message) 다항식의 계수에 모듈러 리덕션을 동형적으로 수행할 수 있다.Hereinafter, an isolinear transformation operation of the
연산들은 슬롯을 위한 것이고, 메시지 다항식의 계수에 대한 것이 아니기 때문에, 계수에 의미 있는 연산을 수행하기 위해서 프로세서(100)는 ct를 의 계수를 그 슬롯(slot)으로 암호화하는 사이퍼텍스트로 변환할 수 있다.Since the operations are for slots and not coefficients of the message polynomial, the
프로세서(100)는 동형 모듈러 리덕션 함수의 계산 이후에 변환된 사이퍼텍스트를 이전의 사이퍼텍스의 슬롯을 그 메시지의 계수로 암호화하는 다른 사이퍼텍스트 로 역변환할 수 있다. 이하에서, 이러한 변환 및 역변환 연산을 각각 및 로 지칭한다.The
상술한 두 개의 변환 연산은 메시지의 인코딩 및 디코딩의 동형 계산으로 간주될 수 있고, 의 근에 대한 방데르몽드(Vandermonte) 행렬의 일부 변수에 의한 선형 변환일 수 있다. 또한, 변환 연산들은 일반적인 동형 행렬 곱셈 또는 FFT-유사(fast Fourier transform-like) 연산에 의해 수행될 수 있다.The two transform operations described above can be considered as isomorphic calculations of encoding and decoding of messages, It may be a linear transformation by some variables of the Vandermonte matrix for the root of . In addition, the transform operations may be performed by a general isomorphic matrix multiplication or a fast Fourier transform-like operation.
프로세서(100)는 동형 모듈러 리덕션(또는, 모듈러 리덕션) 동작을 수행할 수 있다. 구체적으로, 프로세서(100)는 동형 모듈러 리덕션 함수를 이용하여 모듈러 리덕션 동작을 수행할 수 있다.The
변환이 수행된 이후에 프로세서(100)는 모듈러스 에서 각 슬롯 상에 모듈러 리덕션을 동형적으로 수행할 수 있다. 이하에서, 이러한 과정은 로 지칭될 수 있다. After the conversion is performed, the
프로세서(100)는 메시지의 범위를 를 충분히 작게 하는 것과 같이 제한함으로써, 근사 영역(approximation region)을 의 배수의 근처로 제한할 수 있다. 이러한 범위의 제한을 통해, 프로세서(100)는 모듈러 리덕션을 보다 효과적으로 수행할 수 있다.The
이하에서, 도 2a의 알고리즘에 대하여 상세하게 설명한다.Hereinafter, the algorithm of FIG. 2A will be described in detail.
프로세서(100)는 도 2a의 알고리즘 1을 이용하여 구간 [a, b] 상의 임의의 연속 함수에 대하여 최소 최대 근사 다항식을 찾아냄으로써 타겟 근사 다항식을 생성할 수 있다. 프로세서(100)는 체비셰프 교번 정리(Chebyshev alternation theorem)을 이용하여 이퀴오실레이션(equioscillation) 조건을 만족하는 타겟 근사 다항식을 생성할 수 있다.The
프로세서(100)는 하르 조건(Haar condition)을 만족하는 기저 함수 를 갖는 타겟 근사 다항식을 생성할 수 있다. 프로세서(100)는 차수가 d인 타겟 근사 다항식을 생성하기 위해서, 기저 함수 를 멱 기저(power basis) 로 선택할 수 있다. 여기서, n=d+1일 수 있다.The
프로세서(100)는 최소최대 근사 다항식의 극점에 수렴하는 기준점의 집합을 초기화할 수 있다. 프로세서(100)는 기준점의 집합에 대해서 최소 최대 다항식을 획득할 수 있다. 기준점의 집합은 [a, b]에서 유한한 점의 집합이기 때문에, [a, b]의 닫힌 부분 집합일 수 있고, 기준점에 집합에 대하여 체비셰프 교번 정리가 만족될 수 있다.The
가 [a, b] 상의 연속함수라고 할 때, 기준점의 집합 상의 최소최대 근사 다항식은 기저 를 갖는 일반화된 다항식 이고, 임의의 E 값에 대하여 수학식 8의 조건을 만족할 수 있다. When is a continuous function on [a, b], the minimum and maximum approximate polynomial on the set of reference points is the basis generalized polynomial with , and the condition of
프로세서(100)는 수학식 8을 이용하여 임의의 다항식 를 획득할 수 있다. 수학식 8에 따라, 및 E의 n 계수의 n+1 변수들 및 n+1 방정식들을 갖는 선형 방적식의 시스템이 형성되고, 선형 방적식은 하르 조건에 의해 특이적(singular)이지 않으므로, 프로세서(100)는 수학식 8의 조건을 만족하는 다항식 를 획득할 수 있다.The
프로세서(100)는 , 일 때, 와 사이에서 의 n 개의 영점들(zeros) 를 획득할 수 있고, 각각의 에서 의 n+1 개의 극점(extreme point)들인 를 획득할 수 있다.The
프로세서(100)는 일 때, 에서 의 최소점(minimum point)을 선택하고, 일 때, 에서 의 최대점을 선택할 수 있다.The
이를 통해, 프로세서(100)는 새로운 극점의 집합 을 후보점으로 선택할 수 있다. 이러한 후보점들이 이퀴오실레이션 컨디션을 만족한다면 프로세서(100)는 체비셰프 교번 정리로부터 최소 최대 근사 다항식을 반환함으로써 타겟 근사 다항식을 생성할 수 있다.Through this, the
또한, 프로세서(100)는 기준점의 집합을 상술한 과정을 통해 획득한 새로운 극점의 집합인 로 대체하고, 상술한 다항식의 생성 과정을 반복적으로 수행할 수 있다.In addition, the
도 2a에 도시된 알고리즘 1은 하나의 구간의 다중 부분 구간들(multiple sub-intervals)로 확장될 수 있다. 다중 부분 구간들로 확장하여 적용될 경우, 도 2a의 단계 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.
도 2b 및 도 2c는 도 2a의 알고리즘을 수정한 다항식 생성 방법을 나타낼 수 있다. 프로세서(100)는 모든 지역 극점들 중에서 새로운 극점을 선택하는 방법을 변경할 수 있다.2B and 2C may show a polynomial generating method by modifying the algorithm of FIG. 2A. The
도 2b의 알고리즘을 순서도로 나타내면 도 2c와 같을 수 있다. 프로세서(100)는 근사 영역에서 d+2 개의 점을 설정할 수 있다(210). d+2 개의 점은 위에서 설명한 하나 이상의 기준점을 의미할 수 있다.When the algorithm of FIG. 2B is shown as a flowchart, it may be the same as that of FIG. 2C. The
프로세서(100)는 d+2 개의 기준점에 기초하여 임의의 다항식을 획득할 수 있다. 예를 들어, 프로세서(100)는 수학식 8을 만족하는 다항식 와 E 값을 찾을 수 있다(220).The
프로세서(100)는 의 국소 극대점과 국소 극소점 중 절대값이 E보다 크거나 같은 점을 획득할 수 있다(230). 여기서, E 값은 상술한 미리 결정된 값을 의미하고, 획득된 국소 극대점과 국소 극소점은 위에서 설명한 후보점을 의미할 수 있다.The
프로세서(100)는 획득한 점들 중에서 극대와 극소가 교대로 나타나도록 d+2 개의 점을 뽑는데, 의 절대값의 합이 최대가 되도록 d+2 개의 점을 선택할 수 있다. 절대값이 합이 최대가 되는 d+2 개의 점은 위에서 설명한 타겟점을 의미할 수 있다. 절대값의 합이 최대가 되도록 d+2 개의 점을 선택하는 과정은 도 4a, 4b를 참조하여 자세하게 설명한다.The
프로세서(100)는 선택한 d+2 개의 타겟점들 중에서 절대값의 최대값과 최소값의 상대오차가 보다 작은지를 판별할 수 있다(250). 는 위에서 설명한 임계값을 의미할 수 있다.The
프로세서(100)는 타겟점들에 대응하는 절대값의 최대값 및 최소값의 상대오차가 보다 작은 경우 임의의 다항식 를 타겟 근사 다항식으로 출력할 수 있다(260). 그렇지 않은 경우, 프로세서(100)는 220 내지 250의 과정을 반복적으로 수행할 수 있다.The
이하에서는, 도 2b 및 도 2c의 동작을 보다 자세하게 설명한다.Hereinafter, the operation of FIGS. 2B and 2C will be described in more detail.
프로세서(100)가 근사하고자 하는 함수는 수학식 9로 표현되는 유한한 숫자의 정수 근처에서만 정의되는 정규화된 모듈러 리덕션(normalized modular reduction) 함수일 수 있다. The function to be approximated by the
수학식 9는 도메인(domain) 및 범위(range)에 대하여 스케일링된 모듈러 리덕션 함수를 나타낼 수 있다.
프로세서(100)는 동형 계산(homorphic evaluation)을 효율적으로 수행하기위해서, 를 근사하기 위해 코사인 함수를 배각 공식(double-angle formula)을 이용하여 근사할 수 있다.The
배각 공식을 번 사용하면 수학식 10의 코사인 함수가 근사되어야 할 수 있다.doubling formula Once used, the cosine function of
수학식 9, 10의 함수를 포함하는 조각 연속 함수(piecewise continuous function)을 근사하기 위해서, 프로세서(100)는 수학식 11과 같이 주어지는 유한하게 많은 수의 닫힌 구간들의 합집합(union) 상에 정의되는 일반적인 조각 연속 함수를 가정할 수 있다.In order to approximate a piecewise continuous function including the functions of
여기서, 모든 에 대해서, 일 수 있다.here, all about, can be
프로세서(100)는 d 이하의 차수를 갖는 다항식으로 주어진 조각 연속 함수를 수학식 11의 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)는 수학식 12의 함수를 정의할 수 있다.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)는 함수의 집합 를 수학식 13과 같이 정의할 수 있다.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) 조건을 설정할 수 있다. 만약, 가 설정된 기준점들에서의 절대 오차라면, 수학식 14의 조건이 설정될 수 있다.As a first condition, the
프로세서(100)는 지역 극값 조건을 만족시키기 위해 의 지역 최대값이 음수이거나 의 지역 최소값이 양수인 경우에 그 극점을 버릴 수 있다.The
두 번째로, 프로세서(100)는 교번 조건(alternating condition)을 설정할 수 있다. 다시 말해, 수학식 15의 조건이 설정될 수 있다. 다시 말해, 인접하는 두 극점 중 하나의 극점이 지역 최대값이라면 다른 하나의 극점은 지역 최소값일 수 있다.Second, the
세 번째로, 프로세서(100)는 최대 절대 합 조건(maximum absolute sum condition)을 설정할 수 있다. 프로세서(100)는 지역 극값 조건 및 교번 조건을 만족하는 들 중에서 수학식 16의 값을 최대화하는 를 선택할 수 있다.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
지역 극값 조건 및 교번 조건은 도 2a 및 도 2b의 알고리즘 모두에 적용될 수 있고, 최대 절대 합 조건은 도 2b의 알고리즘 2에 적용될 수 있다. 프로세서(100)는 최대 절대 합 조건을 적용시킴으로써 최소최대 근사 다항식의 수렴을 가속화할 수 있다.The local extrema condition and the alternating condition can be applied to both algorithms of FIGS. 2A and 2B, and the maximum absolute sum condition can be applied to
집합 는 지역 극값 조건 및 교번 조건을 만족하는 적어도 하나의 원소 를 항상 포함하고, 어떠한 에 대하여, 를 만족하는 를 가질 수 있다.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)는 도 2b의 알고리즘 2의 단계 2, 3 및 4를 아래와 같이 보다 효율적으로 수행할 수 있다. 프로세서(100)는 연속 함수 에 대한 현재의 기준점에서의 멱 기저를 갖는 근사 다항식의 계수들을 찾아낼 수 있다.The
다시 말해, 프로세서(100)는 수학식 17의 계수 값들을 획득함으로써 타겟 근사 다항식을 생성할 수 있다. In other words, the
여기서, E는 선형 방정식의 임의의 미지수일 수 있다. 근사 다항식의 기저의 차수가 증가할수록, 계수는 감소할 수 있다. 프로세서(100)는 높은 차수의 기저의 계수에 대해서 더 높은 정확도를 설정해야 할 수 있다.Here, E may be any 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 개의 기준점들을 이용하여 수학식 18의 d+2 개의 선형 방적식의 시스템을 풀어 및 E를 계산함으로써 타겟 근사 다항식을 획득할 수 있다.The Chebyshev polynomial satisfies the above-mentioned Harr condition, and the
도 3은 도 1에 도시된 암호화 장치가 극점을 탐색하는 동작의 순서도를 나타낸다.FIG. 3 is a flowchart of an operation in which the encryption device shown in FIG. 1 searches for a pole.
도 3을 참조하면, 프로세서(100)는 기준점에 기초하여 임의의 다항식을 획득하고, 임의의 다항식과 기준점을 지나는 조각 연속 함수 간의 오차의 극점을 탐색할 수 있다. 프로세서(100)는 임의의 다항식과 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득할 수 있다. 이하에서, 프로세서(100)가 극점을 탐색하여 후보점을 획득하는 과정에 대하여 설명한다.Referring to FIG. 3 , the
프로세서(100)는 임의의 다항식과 조각 연속 함수 간의 오차인 를 작은 스텝(step)으로 스캔하여 증가와 감소가 변하는 극점들을 획득할 수 있다.The
일반적으로, 작은 스텝은 극점 탐색의 정확도를 증가시킬 수 있지만, 스캔 시간이 증가될 수 있다. 구체적으로, 비트의 정확도로 극점을 획득하기 위해서는 에 비례하는 시간이 소요될 수 있다.In general, small steps can increase the accuracy of the pole search, but the scan time can be increased. Specifically, In order to obtain the poles with bit accuracy, It may take time proportional to
그러나, 프로세서(100)는 후술하는 탐색 동작을 통하여 시간 대신에 의 선형 시간(linear time) 내에 극점들을 탐색할 수 있다.However, the
프로세서(100)는 바이너리 서치(binary search) 방식을 이용하여 증가와 감소가 바뀌는 극점의 탐색시간을 감소시킬 수 있다. 이하에서, 임의의 다항식과 조각 연속 함수의 오차를 와 같이 나타내고, sc는 스캔 스텝을 나타낼 수 있다.The
프로세서(100)는 및 를 만족하는 를 탐색하고, 수학식 19의 과정을 연속해서 번 수행함으로써 i 번째 극점을 획득할 수 있다.The
수학식 19의 과정을 통해 프로세서(100)는 비트의 정확도(precision)로 극점을 획득할 수 있다.Through the process of
이하에서, 상술한 극점 탐색을 통한 후보점 획득 과정을 자세히 설명한다. 프로세서(100)는 근사 영역 중 가장 작은 점 x를 획득할 수 있다(310). 프로세서(100)는 x가 극대값일 경우 가 E의 절대값 보다 크거나 같은지, x가 극소값일 경우 가 E의 절대값에 -1을 곱한 값보다 작은지를 판단할 수 있다(320)Hereinafter, a process of obtaining a candidate point through the above-described pole search will be described in detail. The
320의 조건이 만족될 경우 프로세서(100)는, x0를 배열 B에 추가할 수 있다(321). 320의 조건이 만족되지 않을 경우, 프로세서(100)는 x에 x+sc를 대입할 수 있다(330).When the condition of 320 is satisfied, the
그 후, 프로세서(100)는 x가 근사 영역에 포함되는지 판단할 수 있다(340). X가 근사 영역에 포함되는 경우 프로세서(100)는 r(x)-r(x-sc)와 r(x+sc)-r(x)의 부호가 상이한지를 판단할 수 있다(350).Thereafter, the
x가 근사 영역에 포함되지 않을 경우, 프로세서(100)는 x에 해당 구간의 가장 큰 값을 대입할 수 있다(341). 이 때, 프로세서(100)는 x가 극대값일 경우 가 E의 절대값 보다 크거나 같은지, x가 극소값일 경우 가 E의 절대값에 -1을 곱한 값보다 작은지를 판단할 수 있다(342).When x is not included in the approximate region, the
프로세서(100)는 342의 조건이 만족될 경우, x0를 배열 B에 추가할 수 있고, 342의 조건이 만족되지 않을 경우, x가 근사 영역의 최대 값인지 판단할 수 있다(344). 이 때, x가 근사 영역의 최대값인 경우 프로세서(100)는 동작을 종료할 수 있고, x가 근사 영역의 최대값이 아닌 경우 x를 다음 구간의 가장 작은 값으로 대입할 수 있다(345).If the condition of 342 is satisfied, the
프로세서(100)는 r(x)-r(x-sc)와 r(x+sc)-r(x)의 부호가 같은 경우 330의 동작을 다시 수행할 수 있고, r(x)-r(x-sc)와 r(x+sc)-r(x)의 부호가 다른 경우 에 0을 대입하고, t에 sc/2를 대입할 수 있다(360).If the signs of r(x)-r(x-sc) and r(x+sc)-r(x) are the same, the
프로세서(100)는 r(x)-r(x-sc)의 값이 0보다 큰지를 판단할 수 있다(370). 프로세서(100)는 370의 조건이 만족될 경우, x-t, x, x+t 중에서 r(x) 값이 큰 것을 선택하여 x에 대입할 수 있다(371). 그 후, 프로세서(100)는 에 +1을 대입하고, t에 t/2를 대입할 수 있다(372).The
프로세서(100)는 이 정확도(precision) 값인지를 비교할 수 있다(373, 374). 프로세서(100)는 이 정확도 값이 아닌 경우에 371의 과정을 다시 수행할 수 있다. 프로세서(100)는 이 정확도 값인 경우 x-t, x, x+t 중에서 r(x) 값이 작은 것을 선택하여 x에 대입할 수 있다(375). 그 후, 프로세서(100)는 에 +1을 대입하고, t에 t/2를 대입할 수 있다(376).The
프로세서(100)는 373, 374의 조건이 만족될 경우 320의 동작을 다시 수행할 수 있다. 최종적으로, 프로세서(100)는 배열 B에 속한 극점들을 후보점으로 획득할 수 있다.When the
sc의 값이 충분히 작다면 는 이고, 근처의 에 대하여와 유사하게 동작할 수 있다. 이러한, 동작을 통해, 프로세서(100)는 근처에서 일 경우, 를 보장할 수 있고, 그 역도 보장할 수 있다.If the value of sc is small enough Is ego, nearby about can operate similarly to Through this operation, the
상술한 극점 탐색을 통한 후보점의 획득 동작을 통해, 프로세서(100)는 비트 정확도를 가지는 극점들을 시간 대신에 의 선형 시간(linear time) 내에 탐색하여 후보점을 획득 수 있다.Through the operation of obtaining a candidate point through the above-described pole search, the
도 4a는 도 1에 도시된 암호화 장치가 타겟점들을 선택하는 알고리즘의 예를 나타내고, 도 4b는 도 1에 도시된 암호화 장치가 타겟점들을 선택하는 동작의 순서도를 나타낸다.FIG. 4A shows an example of an algorithm in which the encryption device shown in FIG. 1 selects target points, and FIG. 4B shows a flowchart of an operation in which the encryption device shown in FIG. 1 selects target points.
도 4a 및 도 4b를 참조하면, 프로세서(100)는 도 3의 탐색 동작을 통해 찾은 후보점들 중에서 타겟 근사 다항식의 차수에 기초한 수의 타겟점들을 선택할 수 있다.4A and 4B , the
프로세서(100)는 후보점들 중에서 극대와 극소가 교대로 나타나도록 타겟점들을 선택하고, 오차의 절대값의 합이 최대가 되도록 타겟점들을 선택할 수 있다. 타겟점들은 다음 반복(iteration) 동작에서의 새로운 기준점(new reference point)들이 될 수 있다.The
이하에서, 타겟 점들을 획득하는 과정에 대하여 상세하게 설명한다. 프로세서(100)는 타겟점(또는, 새로운 기준점)들을 찾기 위해서 위에서 설명한 지역 극값 조건, 교번 조건 및 최대 절대합 조건을 만족하는 점들을 나이브(naive)한 방식으로 선택할 수 있다.Hereinafter, a process of acquiring the target points will be described in detail. In order to find target points (or new reference points), the
나이브한 선택 방식은 교번 조건을 만족하는 모든 n+1 개의 점들에 대하여 절대합을 계산하여 최대 절대합을 갖는 n+1 개의 점을 선택하는 것일 수 있다. 나이브한 선택 방식의 경우 지역 극점의 수가 m 인 경우, 개의 점을 모두 조사해야 할 수 있다.The naive selection method may be to select n+1 points having the maximum absolute sum by calculating the absolute sum of all n+1 points satisfying the alternating condition. For the naive selection method, if the number of local poles is m, You may have to check all the dots.
프로세서(100)는 도 4a 및 도 4b의 동작을 통해 나이브한 방식에 비하여 타겟점을 선택하는 시간을 감소시킬 수 있다. 이하에서, 타겟점을 효과적으로 선택하는 동작에 대하여 설명한다.The
프로세서(100)는 각 반복 동작 마다 후보점들 중에서 일부 원소를 제거함으로써 최종적으로 n+1 개의 타겟점들을 획득할 수 있다. 인 경우라면 타겟점에 포함되지 않을 점이 적어도 하나는 존재하는 상태일 수 있다.The
도 4a의 알고리즘을 통해, 프로세서(100)는 시간 내에 타겟점을 선택할 수 있다. 다시 말해, 프로세서(100)는 준선형(quasi-linear) 시간 안에 타겟점을 선택할 수 있다.Through the algorithm of Figure 4a, the
순서대로 정렬된 집합 B에서 원소가 제거될 때마다 남은 원소들은 정렬되고 인덱스들인 오름 차순으로 다시 레이블링될(relabeled) 수 있다.Whenever an element is removed from an ordered set B, the remaining elements can be sorted and relabeled in ascending order of indices.
프로세서(100)는 알고리즘 4a에서 일부 극점을 제거하기 위해서 값들을 비교할 때, 비교되는 값들이 같거나 가장 작은 원소가 하나 이상일 경우에 이러한 원소들을 무작위로(randomly) 제거할 수 있다.When comparing values to remove some poles in Algorithm 4a, the
도 4b의 순서도는 도 4a의 알고리즘의 동작의 순서를 나타낼 수 있다. 도 4a 및 도 4b의 동작을 통해, 프로세서(100)는 타겟점들을 원소로 갖는 배열 B를 획득할 수 있다.The flowchart of FIG. 4B may represent a sequence of operations of the algorithm of FIG. 4A . 4A and 4B , the
프로세서(100)는 i에 1을 대입할 수 있다(410). 프로세서(100)는 xi와 xi+1이 둘다 극대이거나 극소인지 여부를 판단할 수 있다(420).The
420의 조건을 만족시킬 경우, 프로세서(100)는 xi와 xi+1 중에서 값이 작은 값은 배열에서 제거하고 배열의 원소들을 재배열할 수 있다(421). 값은 상술한 임의의 다항식과 조각 연속 함수의 오차 값을 의미할 수 있다. 420의 조건이 만족되지 않을 경우, 프로세서(100)는 i에 i+1을 대입할 수 있다(422).When the condition of 420 is satisfied, the
재배열을 수행한 후, 프로세서(100)는 xi가 배열 B에서 가장 큰 점인지 여부를 판단할 수 있다(430). xi가 가장 큰 점이 아닐 경우, 프로세서(100)는 420의 동작을 다시 수행할 수 있다.After performing the rearrangement, the
410 내지 430의 동작은 도 4a의 알고리즘 3의 단계 1 내지 7의 동작에 대응될 수 있다.
xi가 가장 큰 점일 경우 프로세서(100)는 B의 원소의 개수가 d+2 개인지를 판단할 수 있다(440). B의 원소의 개수가 d+2 개인 경우 프로세서(100)는 타겟점의 선택 동작을 종료할 수 있다.When xi is the largest point, the
B의 원소의 개수가 d+2 개가 아닌 경우, 프로세서(100)는 인접한 두 점의 값을 더한 값을 모두 배열 T에 넣고 정렬할 수 있다(450). 다시 말해, 를 T에 넣고 정렬할 수 있다.If the number of elements of B is not d+2, the
440 내지 450의 동작은 도 4a의 알고리즘의 단계 9 내지 10의 동작에 대응될 수 있다.
프로세서(100)는 B의 원소의 개수가 d+3 개인지를 판단할 수 있다(460). B의 원소의 개수가 d+3 개인 경우, 프로세서(100)는 x1, xd+3 중 값이 작은 값을 배열에서 버리고 배열의 재배열을 수행하고 동작을 종료할 수 있다(461).The
프로세서(100)는 B의 원소의 개수가 d+4 개인지 판단할 수 있다(470). B의 원소의 개수가 d+4 개인 경우, 프로세서(100)는 T에 를 추가하고 재정렬할 수 있다(471). 그 후, 프로세서(100)는 T에서 가장 작은 값에 해당되는 두 점을 B에서 제거하고 재배열한 후 동작을 종료할 수 있다(472).The
프로세서(100)는 B의 원소의 개수가 d+4가 아닌 경우 T에서 가장 작은값에 해당되는 두 점 중에서 양끝의 두 점 중 하나가 포함되어 있는지 판단할 수 있다(480). 480의 조건을 만족하는 경우, 프로세서(100)는 양끝 두 점 중 하나를 B에서 버리고 재배열할 수 있다(481). 480의 조건을 만족하지 않는 경우, 프로세서(100)는 T에서 가장 작은 값에 해당하는 두 점을 모두 B에서 버리고 재배열할 수 있다(482).When the number of elements of B is not d+4, the
이후, 프로세서(100)는 T에서 버려진 원소가 포함되어 있는 값은 버리고 새롭게 인접하게 된 두 점의 값을 더한 값들을 추가하여 재정렬 한 후의 460의 동작을 다시 수행할 수 있다(490). 460 내지 490의 동작은 도 4a의 단계 11 내지 23의 동작에 대응될 수 있다.Thereafter, the
도 4a의 알고리즘의 마지막 부분에서 극점 x2가 제거될 경우를 예로 들어 설명하면, 는 와 같이 변경될 수 있다.Taking the case where the pole x2 is removed in the last part of the algorithm of FIG. 4A as an example, Is can be changed as
도 4a 및 도 4b의 타겟점을 선택하는 동작을 통해 프로세서(100)는 준선형 시간 내에 후보점들로부터 타겟점을 선택할 수 있다.Through the operation of selecting the target point of FIGS. 4A and 4B , the
프로세서(100)는 선택한 타겟점들에 기초하여 모듈러 리덕션 함수를 최적으로 근사하는 타겟 근사 다항식을 생성할 수 있다. 다시 말해, 프로세서(100)는 선택한 타겟점들을 지나는 d차 다항식을 타겟 근사 다항식으로 생성할 수 있다.The
도 5는 도 1에 도시된 암호화 장치의 전체 동작의 순서를 나타낸다.FIG. 5 shows a sequence of overall operations of the encryption device shown in FIG. 1 .
프로세서(100)는 동형 암호(homomorphic encryption)를 이용하여 데이터에 대한 암호화를 수행할 수 있다. 프로세서(100)는 데이터를 암호화함으로써 사이퍼텍스트(ciphertext)를 생성할 수 있다(510).The
프로세서(100)는 생성한 사이퍼텍스트에 대응하는 모듈러스(modulus)에 대해 하나 이상의 타겟점의 선택에 기초한 모듈러 리덕션(modular reduction)을 수행함으로써 사이퍼텍스트에 부트스트래핑(bootstrapping)을 수행할 수 있다(530).The
프로세서(100)는 모듈러 리덕션에 대응하는 함수를 근사(approximate)함으로써 부트스트래핑을 수행할 수 있다. 프로세서(100)는 모듈러 리덕션에 대응하는 함수를 근사하는 타겟 근사 다항식을 생성할 수 있다.The
프로세서(100)는 타겟 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정할 수 있다. 프로세서(100)는 결정한 하나 이상의 기준점에 기초하여 임의의 다항식을 획득할 수 있다.The
구체적으로, 프로세서(100)는 하나 이상의 기준점을 지나는 조각 연속(piecewise continuous) 함수를 획득하고, 하나 이상의 기준점에서 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.Specifically, the
프로세서(100)는 하나 이상의 기준점에 포함된 제1 기준점에서의 오차와 제1 기준점과 인접한 제2 기준점의 오차의 부호가 상이하고 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 임의의 다항식을 획득할 수 있다.The
프로세서(100)는 획득한 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 타겟 근사 다항식을 생성할 수 있다. 프로세서(100)는 임의의 다항식과 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득할 수 있다.The
프로세서(100)는 획득한 후보점들 중에서 타겟 근사 다항식의 차수에 기초한 수의 타겟점들을 선택할 수 있다. 구체적으로, 프로세서(100)는 후보점들 중에서 극대와 극소가 교대로 나타나도록 타겟점들을 선택할 수 있다. 프로세서(100)는 조각 연속 함수의 임의의 다항식의 오차의 절대값의 합이 최대가 되도록 타겟점들을 선택할 수 있다.The
프로세서(100)는 선택한 타겟점들에 기초하여 타겟 근사 다항식을 생성할 수 있다. 프로세서(100)는 하나 이상의 극점의 절대값의 최대값과 최소값의 상대오차가 임계값보다 작을 경우의 다항식을 타겟 근사 다항식으로 생성할 수 있다.The
이 때, 타겟 근사 다항식의 기저(basis)는 체비셰프(Chebyshev) 다항식의 기저가 사용될 수 있다.In this case, the basis of the target approximation polynomial may be the basis of the Chebyshev polynomial.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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 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)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may comprise a computer program, code, instructions, or a combination of one or more of these, 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 (22)
데이터를 암호화함으로써 사이퍼텍스트(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 selection of one or more target points 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 a function corresponding to the modular reduction;
An encryption method comprising
상기 모듈러 리덕션에 대응하는 함수를 근사(approximate)함으로써 상기 부트스트래핑을 수행하는 단계는,
상기 모듈러 리덕션에 대응하는 함수를 근사하는 타겟 근사 다항식을 생성하는 단계
를 포함하는 암호화 방법.
3. The method of claim 2,
The step of performing the bootstrapping by approximating the function corresponding to the modular reduction,
generating a target approximation polynomial that approximates a function corresponding to the modular reduction;
An encryption method comprising
상기 모듈러 리덕션에 대응하는 함수를 근사하는 타겟 근사 다항식을 생성하는 단계는,
상기 타겟 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정하는 단계;
상기 하나 이상의 기준점에 기초하여 임의의 다항식을 획득하는 단계;
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 타겟 근사 다항식을 생성하는 단계
를 포함하는 암호화 방법.
4. The method of claim 3,
Generating a target approximation polynomial approximating a function corresponding to the modular reduction comprises:
determining one or more reference points based on the order of the target approximation polynomial;
obtaining an arbitrary polynomial based on the one or more reference points;
generating the target approximation polynomial based on one or more poles selected from the arbitrary polynomial;
An encryption method comprising
상기 획득하는 단계는,
상기 하나 이상의 기준점을 지나는 조각 연속(piecewise continuous) 함수를 획득하는 단계; 및
상기 하나 이상의 기준점에서 상기 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는 단계
를 포함하는 암호화 방법.
5. The method of claim 4,
The obtaining step 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 기준점의 오차의 부호가 상이하고 절대값이 상기 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는 단계
를 포함하는 암호화 방법.
6. The method of claim 5,
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
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 타겟 근사 다항식을 생성하는 단계는,
상기 임의의 다항식과 상기 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득하는 단계;
상기 후보점들 중에서 상기 차수에 기초한 수의 타겟점들을 선택하는 단계; 및
상기 타겟점들에 기초하여 상기 타겟 근사 다항식을 생성하는 단계
를 포함하는 암호화 방법.
5. The method of claim 4,
generating the target approximation polynomial based on one or more poles selected from the arbitrary polynomials,
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 target approximation polynomial based on the target points;
An encryption method comprising
상기 타겟점들을 선택하는 단계는,
상기 후보점들 중에서 극대와 극소가 교대로 나타나도록 상기 타겟점들을 선택하는 단계
를 포함하는 암호화 방법.
8. The method of claim 7,
The step of selecting the target points comprises:
selecting the target points so that maxima and minima are alternately displayed among the candidate points
An encryption method comprising
상기 타겟점들을 선택하는 단계는,
상기 오차의 절대값의 합이 최대가 되도록 상기 타겟점들을 선택하는 단계
를 포함하는 암호화 방법.
8. The method of claim 7,
The step of selecting the target points comprises:
selecting the target points such that the sum of the absolute values of the errors is a maximum;
An encryption method comprising
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 타겟 근사 다항식을 생성하는 단계는,
상기 하나 이상의 극점의 절대값의 최대값과 최소값의 상대오차가 임계값보다 작을 경우의 다항식을 상기 타겟 근사 다항식으로 생성하는 단계
를 포함하는 암호화 방법.
5. The method of claim 4,
generating the target approximation polynomial based on one or more poles selected from the arbitrary polynomials,
generating a polynomial when the relative error between the maximum and minimum absolute values of the one or more poles is smaller than a threshold value as the target approximation polynomial
An encryption method comprising
상기 타겟 근사 다항식의 기저(basis)는 체비셰프(Chebyshev) 다항식의 기저인
암호화 방법.
4. The method of claim 3,
The basis of the target approximation polynomial is the basis of the Chebyshev polynomial.
encryption method.
데이터를 암호화함으로써 사이퍼텍스트(ciphertext)를 생성하고, 상기 사이퍼텍스트에 대응하는 모듈러스(modulus)에 대해 하나 이상의 타겟점의 선택에 기초한 모듈러 리덕션(modular reduction)을 수행함으로써 상기 사이퍼텍스트에 부트스트래핑(bootstrapping)을 수행하는 프로세서; 및
상기 프로세서에 의해 실행가능한 인스트럭션을 저장하는 메모리
를 포함하는 암호화 장치.
In the encryption device using homomorphic encryption,
Generate ciphertext by encrypting data, and bootstrapping the ciphertext by performing modular reduction based on selection of one or more target points on the modulus corresponding to the ciphertext. ) a processor that performs; and
a memory storing instructions executable by the processor
Encryption device comprising.
상기 프로세서는,
상기 모듈러 리덕션에 대응하는 함수를 근사(approximate)함으로써 상기 부트스트래핑을 수행하는
암호화 장치.
13. The method of claim 12,
The processor is
performing the bootstrapping by approximating a function corresponding to the modular reduction
encryption device.
상기 프로세서는,
상기 모듈러 리덕션에 대응하는 함수를 근사하는 타겟 근사 다항식을 생성하는
암호화 장치.
14. The method of claim 13,
The processor is
generating a target approximation polynomial that approximates a function corresponding to the modular reduction
encryption device.
상기 프로세서는,
상기 타겟 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정하고,
상기 하나 이상의 기준점에 기초하여 임의의 다항식을 획득하고,
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 타겟 근사 다항식을 생성하는
암호화 장치.
15. The method of claim 14,
The processor is
determine one or more reference points based on the order of the target approximation polynomial;
obtain an arbitrary polynomial based on the one or more reference points,
generating the target approximation polynomial based on one or more poles selected from the arbitrary polynomial.
encryption device.
상기 프로세서는,
상기 하나 이상의 기준점을 지나는 조각 연속(piecewise continuous) 함수를 획득하고,
상기 하나 이상의 기준점에서 상기 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는
암호화 장치.
16. The method of claim 15,
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 기준점의 오차의 부호가 상이하고 절대값이 상기 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는
암호화 장치.
17. The method of claim 16,
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. The method of claim 15,
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 target approximation polynomial based on the target points
encryption device.
상기 프로세서는,
상기 후보점들 중에서 극대와 극소가 교대로 나타나도록 상기 타겟점들을 선택하는
암호화 장치.
19. The method of claim 18,
The processor is
selecting the target points so that maxima and minima appear alternately among the candidate points
encryption device.
상기 프로세서는,
상기 오차의 절대값의 합이 최대가 되도록 상기 타겟점들을 선택하는
암호화 장치.
19. The method of claim 18,
The processor is
selecting the target points so that the sum of the absolute values of the errors is maximum
encryption device.
상기 프로세서는,
상기 하나 이상의 극점의 절대값의 최대값과 최소값의 상대오차가 임계값보다 작을 경우의 다항식을 상기 타겟 근사 다항식으로 생성하는
암호화 장치.
16. The method of claim 15,
The processor is
Generating a polynomial when the relative error of the maximum value and the minimum value of the absolute value of the one or more poles is smaller than a threshold value as the target approximation polynomial
encryption device.
상기 타겟 근사 다항식의 기저(basis)는 체비셰프(Chebyshev) 다항식의 기저인
암호화 장치.15. The method of claim 14,
The basis of the target approximation polynomial is the basis of the Chebyshev polynomial.
encryption device.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/218,790 US20210351913A1 (en) | 2020-05-08 | 2021-03-31 | Encryption method and apparatus using homomorphic encryption |
CN202110400670.2A CN113630234A (en) | 2020-05-08 | 2021-04-14 | Encryption method and device using homomorphic encryption |
JP2021077713A JP2021177239A (en) | 2020-05-08 | 2021-04-30 | Encryption method and device using homomorphic encryption |
EP21171810.1A EP3907926A1 (en) | 2020-05-08 | 2021-05-03 | Encryption method and apparatus using homomorphic encryption |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063021761P | 2020-05-08 | 2020-05-08 | |
US63/021,761 | 2020-05-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210136815A true KR20210136815A (en) | 2021-11-17 |
Family
ID=78703126
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200139444A KR20210136815A (en) | 2020-05-08 | 2020-10-26 | Encryption method and apparatus using homomorhpic encryption |
KR1020200139479A KR20210136816A (en) | 2020-05-08 | 2020-10-26 | Encryption method and apparatus based on homomorhpic encryption using odd function property |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200139479A KR20210136816A (en) | 2020-05-08 | 2020-10-26 | Encryption method and apparatus based on homomorhpic encryption using odd function property |
Country Status (1)
Country | Link |
---|---|
KR (2) | KR20210136815A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117640065A (en) * | 2024-01-24 | 2024-03-01 | 北京隐算科技有限公司 | Multi-user homomorphic encryption and decryption method |
-
2020
- 2020-10-26 KR KR1020200139444A patent/KR20210136815A/en active Search and Examination
- 2020-10-26 KR KR1020200139479A patent/KR20210136816A/en unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117640065A (en) * | 2024-01-24 | 2024-03-01 | 北京隐算科技有限公司 | Multi-user homomorphic encryption and decryption method |
CN117640065B (en) * | 2024-01-24 | 2024-04-05 | 北京隐算科技有限公司 | Multi-user homomorphic encryption and decryption method |
Also Published As
Publication number | Publication date |
---|---|
KR20210136816A (en) | 2021-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Smart et al. | Fully homomorphic SIMD operations | |
JP5957120B1 (en) | Secret sharing method, secret sharing system, distribution apparatus, and program | |
JP5491638B2 (en) | Proxy calculation system, calculation device, capability providing device, proxy calculation method, capability providing method, program, and recording medium | |
Scholl et al. | Improved key generation for Gentry’s fully homomorphic encryption scheme | |
JP2021177239A (en) | Encryption method and device using homomorphic encryption | |
Banegas et al. | DAGS: Key encapsulation using dyadic GS codes | |
CN108923907B (en) | Homomorphic inner product method based on modular fault-tolerant learning problem | |
JP6044738B2 (en) | Information processing apparatus, program, and storage medium | |
Horlemann et al. | Information-set decoding with hints | |
KR20210136815A (en) | Encryption method and apparatus using homomorhpic encryption | |
da Silva et al. | A new approach towards fully homomorphic encryption over geometric algebra | |
EP3902195A1 (en) | Encryption method and apparatus based on homomorphic encryption using composition of functions | |
JP5918884B1 (en) | Decoding device, decoding method, and program | |
JP2005507513A (en) | Method and apparatus for decrypting lattice ciphers and multilevel residue ciphers | |
Li et al. | Privacy preserving via multi-key homomorphic encryption in cloud computing | |
KR20230078510A (en) | Apparatus and method of homomorphic encryption opeation | |
Löndahl et al. | Improved algorithms for finding low-weight polynomial multiples in F _ 2^ x F 2 x and some cryptographic applications | |
KR20210128313A (en) | Method and apparatus for processing ciphertext based on homogeneous encryption | |
KR20210130620A (en) | Homomorhpic encryption based encryption method and apparatus using composition of function | |
US11671239B2 (en) | Encryption method and apparatus based on homomorphic encryption using odd function property | |
Joye et al. | Liberating TFHE: programmable bootstrapping with general quotient polynomials | |
KR20220157843A (en) | Method and apparatus of modulus refresh in homomorhpic encryption | |
Mittal et al. | Understanding integer-based fully homomorphic encryption | |
Yang et al. | A secure and fast dispersal storage scheme based on the learning with errors problem | |
KR20240047269A (en) | Homomorphic encryption opeation apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |