KR20210136815A - Encryption method and apparatus using homomorhpic encryption - Google Patents

Encryption method and apparatus using homomorhpic encryption Download PDF

Info

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
Application number
KR1020200139444A
Other languages
Korean (ko)
Inventor
노종선
이준우
김영식
이용우
이은상
Original Assignee
삼성전자주식회사
서울대학교산학협력단
조선대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 서울대학교산학협력단, 조선대학교산학협력단 filed Critical 삼성전자주식회사
Priority to US17/218,790 priority Critical patent/US20210351913A1/en
Priority to CN202110400670.2A priority patent/CN113630234A/en
Priority to JP2021077713A priority patent/JP2021177239A/en
Priority to EP21171810.1A priority patent/EP3907926A1/en
Publication of KR20210136815A publication Critical patent/KR20210136815A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

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

Disclosed are an encryption method and device. In an encryption method using homomorphic encryption, according to an embodiment of the present invention, the encryption method includes the steps of: generating a ciphertext by encrypting data; and bootstrapping the ciphertext by performing a modular reduction based on selection of the one or more target points for the modulus corresponding to the ciphertext.

Description

동형 암호를 이용한 암호화 방법 및 장치{ENCRYPTION METHOD AND APPARATUS USING HOMOMORHPIC ENCRYPTION}Encryption method and device using homomorphic encryption

아래 실시예들은 동형 암호를 이용한 암호화 방법 및 장치에 관한 것이다.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 encryption device 10 may perform data encryption. The encryption device 10 may generate encrypted data through data encryption. Hereinafter, encrypted data may be referred to as ciphertext.

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

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

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

암호화 장치(10)는 최적 근사 다항식을 타겟 근사 다항식으로 찾아냄으로써, 동형 암호 방식의 최소최대 근사 오차의 관점에서 우수한 성능을 제공할 수 있다.The encryption device 10 can provide excellent performance in terms of the minimum and maximum approximation error of the homomorphic encryption method by finding the optimal approximation polynomial as the target approximation polynomial.

암호화 장치(10)는 모듈러 리덕션 함수를 근사 하기 위한 근사 영역 정보를 이용하여 모듈러 리덕션 함수를 근사하는 타겟 근사 다항식을 생성할 수 있다.The encryption device 10 may generate a target approximation polynomial for approximating the modular reduction function by using the approximate region information for approximating the modular reduction function.

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

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

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

예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.For example, a data processing device implemented as hardware includes a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , an Application-Specific Integrated Circuit (ASIC), and a Field Programmable Gate Array (FPGA).

프로세서(100)는 데이터를 암호화함으로써 사이퍼텍스트(ciphertext)를 생성할 수 있다. 프로세서(100)는 생성한 사이퍼텍스트에 대응하는 모듈러스(modulus)에 대해 모듈러 리덕션(modular reduction)을 수행함으로써 사이퍼텍스트에 부트스트래핑(bootstrapping)을 수행할 수 있다.The processor 100 may generate ciphertext by encrypting data. The processor 100 may perform bootstrapping on the ciphertext by performing modular reduction on a modulus corresponding to the generated ciphertext.

프로세서(100)는 모듈러 리덕션에 대응하는 함수를 근사(approximate)함으로써 부트스트래핑을 수행할 수 있다. 프로세서(100)는 모듈러 리덕션에 대응하는 함수를 근사하는 타겟 근사 다항식(target approximation polynomial)을 생성할 수 있다.The processor 100 may perform bootstrapping by approximating a function corresponding to the modular reduction. The processor 100 may generate a target approximation polynomial approximating a function corresponding to the modular reduction.

프로세서(100)는 타겟 근사 다항식의 차수(degree of polynomial)에 기초하여 하나 이상의 기준점을 결정할 수 있다.The processor 100 may determine one or more reference points based on a degree of polynomial of the target approximation polynomial.

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

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

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

프로세서(100)는 획득한 후보점들 중에서 타겟 근사 다항식의 차수에 기초한 수의 타겟점들을 선택할 수 있다. 프로세서(100)는 후보점들 중에서 극대와 극소가 교대로 나타나도록 타겟점들을 선택할 수 있다. 프로세서(100)는 임의의 다항식과 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 절대값의 합이 최대가 되도록 타겟점들을 선택할 수 있다.The processor 100 may select a number of target points based on the order of the target approximation polynomial from among the obtained candidate points. The processor 100 may select target points so that maxima and minima are alternately displayed among the candidate points. The processor 100 may select the target points such that the sum of the absolute values of the errors between the arbitrary polynomial and the fragment continuous function passing through one or more reference points is the maximum.

프로세서(100)는 선택한 타겟점들에 기초하여 타겟 근사 다항식을 생성할 수 있다. 프로세서(100)는 하나 이상의 극점의 절대값의 최대값과 최소값의 상대오차가 임계값보다 작을 경우의 다항식을 타겟 근사 다항식으로 생성할 수 있다.The processor 100 may generate a target approximation polynomial based on the selected target points. The processor 100 may generate a polynomial when the relative error between the maximum and minimum absolute values of one or more poles is smaller than a threshold value as a target approximation polynomial.

이 때, 타겟 근사 다항식의 기저(basis)는 체비셰프(Chebyshev) 다항식의 기저일 수 있다.In this case, the basis of the target approximation polynomial may be the basis of the Chebyshev polynomial.

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

메모리(200)는 휘발성 메모리 장치 또는 불휘발성 메모리 장치로 구현될 수 있다.The memory 200 may be implemented as a volatile memory device or a nonvolatile memory device.

휘발성 메모리 장치는 DRAM(dynamic random access memory), SRAM(static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.The volatile memory device may be implemented as dynamic random access memory (DRAM), static random access memory (SRAM), thyristor RAM (T-RAM), zero capacitor RAM (Z-RAM), or twin transistor RAM (TTRAM).

불휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque(STT)-MRAM), Conductive Bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM(RRAM)), 나노 튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM(PoRAM)), 나노 부유 게이트 메모리(Nano Floating Gate Memory(NFGM)), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Eelectronic Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.Nonvolatile memory devices include EEPROM (Electrically Erasable Programmable Read-Only Memory), Flash memory, MRAM (Magnetic RAM), Spin-Transfer Torque (STT)-MRAM (Spin-Transfer Torque (STT)-MRAM), Conductive Bridging RAM (CBRAM). , FeRAM (Ferroelectric RAM), PRAM (Phase change RAM), Resistive RAM (RRAM), Nanotube RRAM (Nanotube RRAM), Polymer RAM (PoRAM), Nano Floating Gate Memory Memory (NFGM)), a holographic memory, a molecular electronic memory device, or an Insulator Resistance Change Memory.

이하에서, 도 2a 내지 도 2c를 참조하여 암호화 장치(10)가 암호화 및 부트스트래핑을 수행하는 과정을 상세히 설명한다. 이하에서, 암호화 장치(10)가 수행하는 암호화 동작에 대하여 설명한 후, 부트스트래핑 과정에 대하여 보다 상세하게 설명한다.Hereinafter, a process in which the encryption device 10 performs encryption and bootstrapping will be described in detail with reference to FIGS. 2A to 2C . Hereinafter, after the encryption operation performed by the encryption device 10 is described, the bootstrapping process will be described in more detail.

도 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 processor 100 may perform encryption on data.

이하에서, 프로세서(100)의 암호화 동작을 설명하기 위한 표기(notation)에 대하여 설명한다.Hereinafter, notation for describing the encryption operation of the processor 100 will be described.

Figure pat00001
,
Figure pat00002
,
Figure pat00003
Figure pat00004
는 각각 정수, 유리수, 실수 및 복소수의 집합을 나타낼 수 있다. C[D]는 도메인 D 상의 연속 함수의 집합을 의미할 수 있다. [d]는 d 이하의 양의 정수의 집합을 의미할 수 있다. 예를 들어, [d]는 {1, 2, ??, d}를 의미할 수 있다.
Figure pat00001
,
Figure pat00002
,
Figure pat00003
and
Figure pat00004
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에 대하여

Figure pat00005
는 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
Figure pat00005
denotes an M-th cyclotomic polynomial, and may be M=2N.

Figure pat00006
Figure pat00007
는 각각
Figure pat00008
Figure pat00009
를 의미할 수 있다.
Figure pat00010
는 M 번째 원분체(cyclotomic field)를 의미할 수 있다.
Figure pat00006
and
Figure pat00007
are each
Figure pat00008
and
Figure pat00009
can mean
Figure pat00010
may refer to the M-th cyclotomic field.

양의 실수 α에 대하여,

Figure pat00011
Figure pat00012
에서의 분포(distribution)로 정의되고, 그 엔트리들(entries)은 분산 α2의 이산 가우스 분포(discrete gaussian distribution)로부터 독립적으로 샘플링될 수 있다.For a positive real α,
Figure pat00011
Is
Figure pat00012
is defined as a distribution in , and its entries can be sampled independently from a discrete Gaussian distribution of variance α2.

Figure pat00013
는 해밍 가중치(Hamming weight) h를 갖는
Figure pat00014
의 부분집합을 의미할 수 있다.
Figure pat00015
Figure pat00016
에서의 분포(distribution)를 의미하고, 그 엔트리들은 각각의 ±1에 대하여 ρ/2의 확률을 갖고, 0이될 확률로 1-ρ를 갖고 독립적으로 샘플링될 수 있다.
Figure pat00013
has a Hamming weight h
Figure pat00014
may mean a subset of
Figure pat00015
Is
Figure pat00016
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.

체비셰프 다항식

Figure pat00017
Figure pat00018
로 정의될 수 있고, 이하에서 기재되는 로그(logarithm)의 밑(base)은 2이다.Chebyshev polynomials
Figure pat00017
Is
Figure pat00018
may be defined, and the base of the logarithm described below is 2.

이하에서, 프로세서(100)가 수행하는 암호화 동작에 대하여 설명한다.Hereinafter, an encryption operation performed by the processor 100 will be described.

프로세서(100)는 실수 또는 복소수의 암호화된 데이터에 대한 몇 개의 연산을 지원할 수 있다. 암호화 장치(10)는 주로 실수를 다루기 때문에, 암호화 방식의 보안을 보장(ensure)하는 노이즈가 데이터의 중요한 요소(significant figure)의 외부에 수용될(embraced) 수 있다.The processor 100 may support several operations on encrypted data of real or complex numbers. Since the encryption device 10 mainly deals with mistakes, noise that ensures the security of the encryption method may be embedded outside of a significant figure of data.

몇 개의 독립적인 메시지가 암호화 전에 기본 매장(canonical embedding)에 의해 하나의 다항식으로 인코딩될 수 있다. 기본 매장

Figure pat00019
Figure pat00020
Figure pat00021
Figure pat00022
의 원소(element)에 저장하고,
Figure pat00023
의 원소들은
Figure pat00024
의 개별 근에서 구해진
Figure pat00025
의 값을 의미할 수 있다.Several independent messages can be encoded into a single polynomial by canonical embedding before encryption. default store
Figure pat00019
Is
Figure pat00020
Figure pat00021
cast
Figure pat00022
stored in an element of
Figure pat00023
the elements of
Figure pat00024
obtained from the individual roots of
Figure pat00025
can mean the value of

Figure pat00026
의 근은 M 거듭 제곱근(M-th root of unity)의 홀수의 거듭제곱(power of odd integer)이고,
Figure pat00027
일 수 있다.
Figure pat00026
The root of is the power of odd integer of M-th root of unity,
Figure pat00027
can be

Figure pat00028
Figure pat00029
이고,
Figure pat00030
Figure pat00031
로부터
Figure pat00032
에 대한 자연 퉁영(natural projection)을 의미할 수 있다.
Figure pat00033
의 범위(range)는
Figure pat00034
일 수 있다.
Figure pat00028
Is
Figure pat00029
ego,
Figure pat00030
Is
Figure pat00031
from
Figure pat00032
It can mean a natural projection of
Figure pat00033
the range of
Figure pat00034
can be

N/2 복소수 메세지들은

Figure pat00035
에서 원소를 구성하고, 각각의 좌표는 슬롯(slot)으로 지칭될 수 있다. 인코딩 및 디코딩 과정은 아래와 같이 주어질 수 있다.N/2 complex number messages are
Figure pat00035
constituting an element in , and each coordinate may be referred to as a slot. The encoding and decoding process can be given as follows.

벡터

Figure pat00036
에 대해서, 인코딩
Figure pat00037
는 수학식1의 값을 반환(return)할 수 있다.vector
Figure pat00036
About encoding
Figure pat00037
may return the value of Equation 1.

Figure pat00038
Figure pat00038

여기서,

Figure pat00039
는 스케일링 팩터(scaling factor)를 나타내고,
Figure pat00040
Figure pat00041
Figure pat00042
의 원소로 이산화(discretization) 또는 반올림(rounding)하는 연산을 나타낼 수 있다.here,
Figure pat00039
represents a scaling factor,
Figure pat00040
Is
Figure pat00041
second
Figure pat00042
It can represent the operation of discretization or rounding with the elements of .

다항식

Figure pat00043
에 대해서, 디코딩
Figure pat00044
는 벡터
Figure pat00045
를 반환할 수 있고, 벡터의 인덱스(index)의 엔트리
Figure pat00046
Figure pat00047
에 대해
Figure pat00048
를 만족하고,
Figure pat00049
은 M 제곱근(M-th root of unity)을 나타낼 수 있다.polynomial
Figure pat00043
about, decoding
Figure pat00044
is vector
Figure pat00045
can return, and the entry at the index of the vector
Figure pat00046
Is
Figure pat00047
About
Figure pat00048
satisfied with
Figure pat00049
may represent M-th root of unity.

암호화 장치(10)는 키를 생성할 수 있다. 주어진 보안 파라미터

Figure pat00050
에 대해서, 암호화 장치(10)는 M의 거듭 제곱, 정수
Figure pat00051
, 정수
Figure pat00052
, 양의 실수
Figure pat00053
, 프레쉬 사이퍼텍스트 모듈러스(fresh ciphertext modulus)
Figure pat00054
및 최대 사이퍼텍스트 모듈러스가 되는 빅 사이퍼텍스트 모듈러스(big ciphertext modulus)
Figure pat00055
를 선택할 수 있다.The encryption device 10 may generate a key. given security parameters
Figure pat00050
For , the cryptographic device 10 is a power of M, an integer
Figure pat00051
, essence
Figure pat00052
, positive real
Figure pat00053
, fresh ciphertext modulus
Figure pat00054
and a big ciphertext modulus being the maximum ciphertext modulus.
Figure pat00055
can be selected.

프레쉬 사이퍼텍스트는 연산이 수행되지 않은 암호화된 데이터 또는 최초로 암호화된 데이터를 의미할 수 있다.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 processor 100 may set a public key (pk) and a secret key (sk) as in Equation (2).

Figure pat00056
Figure pat00056

여기서, s, a 및 e는 각각

Figure pat00057
,
Figure pat00058
Figure pat00059
를 의미할 수 있다.where s, a and e are each
Figure pat00057
,
Figure pat00058
and
Figure pat00059
can mean

프로세서(100)는 계산 키(evaluation key)를 수학식 3과 같이 설정할 수 있다.The processor 100 may set the calculation key (evaluation key) as in Equation (3).

Figure pat00060
Figure pat00060

Figure pat00061
Figure pat00062
는 각각
Figure pat00063
,
Figure pat00064
를 의미할 수 있다.
Figure pat00061
and
Figure pat00062
are each
Figure pat00063
,
Figure pat00064
can mean

프로세서(100)는 인코딩

Figure pat00065
를 수행함으로써 수학식 4와 같은 반환할 수 있다.Processor 100 encodes
Figure pat00065
It is possible to return the same as in Equation 4 by performing .

Figure pat00066
Figure pat00066

여기서,

Figure pat00067
,
Figure pat00068
Figure pat00069
는 각각
Figure pat00070
,
Figure pat00071
와 같이 샘플링될 수 있다.here,
Figure pat00067
,
Figure pat00068
and
Figure pat00069
are each
Figure pat00070
,
Figure pat00071
can be sampled as

프로세서(100)는 디코딩

Figure pat00072
을 수행하여
Figure pat00073
를 반환할 수 있다.The processor 100 decodes
Figure pat00072
by doing
Figure pat00073
can return

프로세서(100)는 두 사이퍼텍스트에 대한 덧셈

Figure pat00074
을 수행함으로써 수학식 5의 결과를 반환할 수 있다.The processor 100 adds two ciphertexts
Figure pat00074
By performing Equation 5, the result of Equation 5 may be returned.

Figure pat00075
Figure pat00075

프로세서(100)는 두 사이퍼텍스트

Figure pat00076
,
Figure pat00077
에 대한 곱셈
Figure pat00078
을 수행하여 수학식 6의 결과를 반환할 수 있다.The processor 100 has two ciphertexts
Figure pat00076
,
Figure pat00077
multiplication for
Figure pat00078
can be performed to return the result of Equation (6).

Figure pat00079
Figure pat00079

여기서,

Figure pat00080
일 수 있다.here,
Figure pat00080
can be

또한, 프로세서(100)는

Figure pat00081
를 수행하여 수학식 7의 결과를 반환할 수 있다.In addition, the processor 100
Figure pat00081
can be performed to return the result of Equation (7).

Figure pat00082
Figure pat00082

각각의 사이퍼텍스트는 부트스트래핑 없이 가능한 곱셈의 최대 횟수를 나타내는 레벨

Figure pat00083
을 가질 수 있다. 레벨
Figure pat00084
의 각 사이퍼텍스트에 대한 모듈러스
Figure pat00085
은 스케일링 팩터가
Figure pat00086
이고, 베이스 모듈러스가
Figure pat00087
일 때,
Figure pat00088
의 값을 가질 수 있다.Each ciphertext has a level representing the maximum number of possible multiplications without bootstrapping.
Figure pat00083
can have level
Figure pat00084
modulus for each ciphertext in
Figure pat00085
is the scaling factor
Figure pat00086
and the base modulus is
Figure pat00087
when,
Figure pat00088
can have a value of

추가적으로, 프로세서(100)는 부트스트래핑에서의 동형 선형 변환에 사용되는 복소 켤레(complex conjugation) 연산 및 회전(rotation) 연산을 수행할 수 있다.Additionally, the processor 100 may perform a complex conjugation operation and a rotation operation used for isolinear transformation in bootstrapping.

이하에서, 암호화 장치(10)가 수행하는 부트스래핑 동작에 대하여 설명한다.Hereinafter, a bootstrapping operation performed by the encryption device 10 will be described.

부트스트래핑의 목적은 곱셈이 더 이상 수행될 수 없는 레벨 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)는 모듈러스 증가를 수행할 수 있다. 모듈러스 증가 동작을 설명하기 위해서,

Figure pat00089
대신에
Figure pat00090
의 원소로 레벨 0의 사이퍼텍스트가 사용될 수 있다.The processor 100 may perform a modulus increase. To explain the modulus increasing behavior,
Figure pat00089
Instead of
Figure pat00090
A ciphertext of level 0 may be used as an element of .

레벨 0의 사이퍼텍스트는

Figure pat00091
의 상태일 수 있다. 여기서, ct는 사이퍼텍스트를 의미하고, sk는 시크릿 키를 의미할 수 있다. 프로세서(100)가 사이퍼텍스트를 복호화(decrypt)할 때에는 어떠한
Figure pat00092
에 대하여
Figure pat00093
의 형태를 가질 수 있다.Level 0 ciphertext is
Figure pat00091
may be in the state of Here, ct may mean ciphertext, and sk may mean a secret key. When the processor 100 decrypts the ciphertext, any
Figure pat00092
about
Figure pat00093
may have the form of

여기서, sk의 계수가 작은 수를 갖기 때문에,

Figure pat00094
의 계수의 절대값(absolute values of coefficient)은 작은 수를 가질 수 있다. 예를 들어,
Figure pat00095
의 계수의 절대값은 12 보다 작은 값을 가질 수 있다.Here, since the coefficient of sk has a small number,
Figure pat00094
The absolute values of the coefficient of may have a small number. E.g,
Figure pat00095
The absolute value of the coefficient of may have a value less than 12.

프로세서(100)는 레벨 0의 사이퍼텍스트에 부트스트래핑을 수행함으로써

Figure pat00096
을 만족하는
Figure pat00097
를 만들 수 있다. 이를 위해, 프로세서(100)는 동형 선형 변환 및 모듈러 리덕션 함수의 동형 계산(homomorphic evaluation)을 수행할 수 있다.The processor 100 performs bootstrapping on the level 0 ciphertext.
Figure pat00096
to satisfy
Figure pat00097
can make To this end, the processor 100 may perform homomorphic evaluation of the homolinear transformation and the modular reduction function.

이하에서, 프로세서(100)의 동형 선형 변환 동작에 대하여 설명한다. 모듈러스 증가가 수행된 이후, 사이퍼텍스트 ct는

Figure pat00098
를 암호화하는 사이퍼텍스트로 간주될 수 있다. 프로세서(100)는 메시지(message) 다항식의 계수에 모듈러 리덕션을 동형적으로 수행할 수 있다.Hereinafter, an isolinear transformation operation of the processor 100 will be described. After the modulus increase is performed, the ciphertext ct is
Figure pat00098
can be considered as ciphertext that encrypts The processor 100 may uniformly perform modular reduction on coefficients of a message polynomial.

연산들은 슬롯을 위한 것이고, 메시지 다항식의 계수에 대한 것이 아니기 때문에, 계수에 의미 있는 연산을 수행하기 위해서 프로세서(100)는 ct를

Figure pat00099
의 계수를 그 슬롯(slot)으로 암호화하는 사이퍼텍스트로 변환할 수 있다.Since the operations are for slots and not coefficients of the message polynomial, the processor 100 sets ct to perform meaningful operations on the coefficients.
Figure pat00099
can be converted into ciphertext that is encrypted with that slot.

프로세서(100)는 동형 모듈러 리덕션 함수의 계산 이후에 변환된 사이퍼텍스트를 이전의 사이퍼텍스의 슬롯을 그 메시지의 계수로 암호화하는 다른 사이퍼텍스트

Figure pat00100
로 역변환할 수 있다. 이하에서, 이러한 변환 및 역변환 연산을 각각
Figure pat00101
Figure pat00102
로 지칭한다.The processor 100 encodes the converted ciphertext after the calculation of the isomorphic modular reduction function into another ciphertext that encrypts the slots of the previous ciphertex with the coefficients of the message.
Figure pat00100
can be inversely transformed into Hereinafter, these transform and inverse transform operations are respectively
Figure pat00101
and
Figure pat00102
is referred to as

상술한 두 개의 변환 연산은 메시지의 인코딩 및 디코딩의 동형 계산으로 간주될 수 있고,

Figure pat00103
의 근에 대한 방데르몽드(Vandermonte) 행렬의 일부 변수에 의한 선형 변환일 수 있다. 또한, 변환 연산들은 일반적인 동형 행렬 곱셈 또는 FFT-유사(fast Fourier transform-like) 연산에 의해 수행될 수 있다.The two transform operations described above can be considered as isomorphic calculations of encoding and decoding of messages,
Figure pat00103
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 processor 100 may perform an isomorphic modular reduction (or a modular reduction) operation. Specifically, the processor 100 may perform a modular reduction operation using a homomorphic modular reduction function.

Figure pat00104
변환이 수행된 이후에 프로세서(100)는 모듈러스
Figure pat00105
에서 각 슬롯 상에 모듈러 리덕션을 동형적으로 수행할 수 있다. 이하에서, 이러한 과정은
Figure pat00106
로 지칭될 수 있다.
Figure pat00104
After the conversion is performed, the processor 100 modulus
Figure pat00105
Modular reduction can be performed homogeneously on each slot. In the following, this process is
Figure pat00106
may be referred to as

프로세서(100)는 메시지의 범위를

Figure pat00107
를 충분히 작게 하는 것과 같이 제한함으로써, 근사 영역(approximation region)을
Figure pat00108
의 배수의 근처로 제한할 수 있다. 이러한 범위의 제한을 통해, 프로세서(100)는 모듈러 리덕션을 보다 효과적으로 수행할 수 있다.The processor 100 determines the scope of the message.
Figure pat00107
By constraining to be small enough, the approximation region
Figure pat00108
may be limited to near multiples of . Through the limitation of this range, the processor 100 may more effectively perform the modular reduction.

이하에서, 도 2a의 알고리즘에 대하여 상세하게 설명한다.Hereinafter, the algorithm of FIG. 2A will be described in detail.

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

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

Figure pat00109
를 갖는 타겟 근사 다항식을 생성할 수 있다. 프로세서(100)는 차수가 d인 타겟 근사 다항식을 생성하기 위해서, 기저 함수
Figure pat00110
를 멱 기저(power basis)
Figure pat00111
로 선택할 수 있다. 여기서, n=d+1일 수 있다.The processor 100 is a basis function that satisfies a Haar condition
Figure pat00109
It is possible to generate a target approximation polynomial with The processor 100 generates a target approximation polynomial of degree d, the basis function
Figure pat00110
is the power basis
Figure pat00111
can be selected as Here, n=d+1 may be present.

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

Figure pat00112
가 [a, b] 상의 연속함수라고 할 때, 기준점의 집합 상의 최소최대 근사 다항식은 기저
Figure pat00113
를 갖는 일반화된 다항식
Figure pat00114
이고, 임의의 E 값에 대하여 수학식 8의 조건을 만족할 수 있다.
Figure pat00112
When is a continuous function on [a, b], the minimum and maximum approximate polynomial on the set of reference points is the basis
Figure pat00113
generalized polynomial with
Figure pat00114
, and the condition of Equation 8 may be satisfied for any E value.

Figure pat00115
Figure pat00115

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

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

프로세서(100)는

Figure pat00119
,
Figure pat00120
Figure pat00121
일 때,
Figure pat00122
Figure pat00123
사이에서
Figure pat00124
의 n 개의 영점들(zeros)
Figure pat00125
를 획득할 수 있고, 각각의
Figure pat00126
에서
Figure pat00127
의 n+1 개의 극점(extreme point)들인
Figure pat00128
를 획득할 수 있다.The processor 100
Figure pat00119
,
Figure pat00120
Figure pat00121
when,
Figure pat00122
Wow
Figure pat00123
between
Figure pat00124
n zeros of
Figure pat00125
can be obtained, and each
Figure pat00126
at
Figure pat00127
n+1 extreme points of
Figure pat00128
can be obtained.

프로세서(100)는

Figure pat00129
일 때,
Figure pat00130
에서
Figure pat00131
의 최소점(minimum point)을 선택하고,
Figure pat00132
일 때,
Figure pat00133
에서
Figure pat00134
의 최대점을 선택할 수 있다.The processor 100
Figure pat00129
when,
Figure pat00130
at
Figure pat00131
Choose the minimum point of
Figure pat00132
when,
Figure pat00133
at
Figure pat00134
You can choose the maximum point of

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

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

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

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

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

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

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

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

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

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

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

도 2b 및 도 2c는 도 2a의 알고리즘을 수정한 다항식 생성 방법을 나타낼 수 있다. 프로세서(100)는 모든 지역 극점들 중에서 새로운 극점을 선택하는 방법을 변경할 수 있다.2B and 2C may show a polynomial generating method by modifying the algorithm of FIG. 2A. The processor 100 may change a method of selecting a new pole among all local poles.

도 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 processor 100 may set d+2 points in the approximate region ( 210 ). d+2 points may mean one or more reference points described above.

프로세서(100)는 d+2 개의 기준점에 기초하여 임의의 다항식을 획득할 수 있다. 예를 들어, 프로세서(100)는 수학식 8을 만족하는 다항식

Figure pat00138
와 E 값을 찾을 수 있다(220).The processor 100 may obtain an arbitrary polynomial based on d+2 reference points. For example, the processor 100 is a polynomial that satisfies Equation (8).
Figure pat00138
and E values can be found (220).

프로세서(100)는

Figure pat00139
의 국소 극대점과 국소 극소점 중 절대값이 E보다 크거나 같은 점을 획득할 수 있다(230). 여기서, E 값은 상술한 미리 결정된 값을 의미하고, 획득된 국소 극대점과 국소 극소점은 위에서 설명한 후보점을 의미할 수 있다.The processor 100
Figure pat00139
Among the local maxima and local minima of , a point having an absolute value greater than or equal to E may be obtained ( 230 ). Here, the E value may mean the above-described predetermined value, and the obtained local maxima and local minima may mean the candidate points described above.

프로세서(100)는 획득한 점들 중에서 극대와 극소가 교대로 나타나도록 d+2 개의 점을 뽑는데,

Figure pat00140
의 절대값의 합이 최대가 되도록 d+2 개의 점을 선택할 수 있다. 절대값이 합이 최대가 되는 d+2 개의 점은 위에서 설명한 타겟점을 의미할 수 있다. 절대값의 합이 최대가 되도록 d+2 개의 점을 선택하는 과정은 도 4a, 4b를 참조하여 자세하게 설명한다.The processor 100 draws d + 2 points so that the maximum and minimum appear alternately among the obtained points,
Figure pat00140
d+2 points can be selected so that the sum of the absolute values of is maximum. The d+2 points at which the sum of the absolute values is the maximum may mean the target points described above. The process of selecting d+2 points so that the sum of absolute values becomes the maximum will be described in detail with reference to FIGS. 4A and 4B .

프로세서(100)는 선택한 d+2 개의 타겟점들 중에서 절대값의 최대값과 최소값의 상대오차가

Figure pat00141
보다 작은지를 판별할 수 있다(250).
Figure pat00142
는 위에서 설명한 임계값을 의미할 수 있다.The processor 100 determines that the relative error of the maximum value and the minimum value of the absolute value among the selected d + 2 target points is
Figure pat00141
It can be determined whether it is smaller than 250 .
Figure pat00142
may mean the threshold value described above.

프로세서(100)는 타겟점들에 대응하는 절대값의 최대값 및 최소값의 상대오차가

Figure pat00143
보다 작은 경우 임의의 다항식
Figure pat00144
를 타겟 근사 다항식으로 출력할 수 있다(260). 그렇지 않은 경우, 프로세서(100)는 220 내지 250의 과정을 반복적으로 수행할 수 있다.The processor 100 determines that the relative errors of the maximum and minimum absolute values corresponding to the target points are
Figure pat00143
Any polynomial if less than
Figure pat00144
may be output as a target approximation polynomial (260). Otherwise, the processor 100 may repeatedly perform steps 220 to 250 .

이하에서는, 도 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 processor 100 may be a normalized modular reduction function defined only near the finite number of integers expressed by Equation (9).

Figure pat00145
Figure pat00145

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

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

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

배각 공식을

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

Figure pat00148
Figure pat00148

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

Figure pat00149
Figure pat00149

여기서, 모든

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

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

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

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

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

프로세서(100)는 반복의 수를 최대한 줄이기 위해 각 반복에서 많은 수의 후보점들 중에서 n+1 개의 타겟점을 선택할 수 있다. 이를 통해, 프로세서(100)는 각 반복에서 생성하는 근사 다항식을 수렴시켜 최소최대 근사 다항식을 생성할 수 있다.The processor 100 may select n+1 target points from among a large number of candidate points in each iteration in order to minimize the number of iterations. Through this, the processor 100 converges the approximate polynomial generated in each iteration to generate the minimum and maximum approximate polynomial.

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

Figure pat00153
Figure pat00153

여기서,

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

프로세서(100)는

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

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

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

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

Figure pat00168
Figure pat00168

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

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

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

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

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

Figure pat00171
Figure pat00171

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

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

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

Figure pat00174
Figure pat00174

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

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

Figure pat00177
Figure pat00177

현재의 기준점들인

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

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

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

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

지역 극값 조건 및 교번 조건은 도 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 Algorithm 2 of FIG. 2B. The processor 100 may accelerate the convergence of the minimum maximum approximate polynomial by applying the maximum absolute sum condition.

집합

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

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

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

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

Figure pat00186
값들을 획득함으로써 타겟 근사 다항식을 생성할 수 있다. In other words, the processor 100 is a coefficient of Equation 17
Figure pat00186
A target approximation polynomial can be generated by obtaining the values.

Figure pat00187
Figure pat00187

여기서, 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 processor 100 may need to set higher accuracy for higher-order basis coefficients.

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

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

Figure pat00188
및 E를 계산함으로써 타겟 근사 다항식을 획득할 수 있다.The Chebyshev polynomial satisfies the above-mentioned Harr condition, and the processor 100 solves the system of d+2 linear equations in Equation 18 using d+2 reference points.
Figure pat00188
and E, to obtain a target approximation polynomial.

Figure pat00189
Figure pat00189

도 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 processor 100 may obtain an arbitrary polynomial based on a reference point, and search for a pole of an error between the arbitrary polynomial and a fragment continuous function passing through the reference point. The processor 100 may obtain candidate points whose absolute value is greater than or equal to a predetermined value among the poles of the error between the arbitrary polynomial and the fragment continuous function passing through the reference point. Hereinafter, a process in which the processor 100 searches for a pole to obtain a candidate point will be described.

프로세서(100)는 임의의 다항식과 조각 연속 함수 간의 오차인

Figure pat00190
를 작은 스텝(step)으로 스캔하여 증가와 감소가 변하는 극점들을 획득할 수 있다.The processor 100 is the error between the arbitrary polynomial and the fragment continuous function.
Figure pat00190
can be scanned in small steps to obtain poles with varying increments and decrements.

일반적으로, 작은 스텝은 극점 탐색의 정확도를 증가시킬 수 있지만, 스캔 시간이 증가될 수 있다. 구체적으로,

Figure pat00191
비트의 정확도로 극점을 획득하기 위해서는
Figure pat00192
에 비례하는 시간이 소요될 수 있다.In general, small steps can increase the accuracy of the pole search, but the scan time can be increased. Specifically,
Figure pat00191
In order to obtain the poles with bit accuracy,
Figure pat00192
It may take time proportional to

그러나, 프로세서(100)는 후술하는 탐색 동작을 통하여

Figure pat00193
시간 대신에
Figure pat00194
의 선형 시간(linear time) 내에 극점들을 탐색할 수 있다.However, the processor 100 performs a search operation to be described later.
Figure pat00193
instead of time
Figure pat00194
It is possible to search for poles within a linear time of .

프로세서(100)는 바이너리 서치(binary search) 방식을 이용하여 증가와 감소가 바뀌는 극점의 탐색시간을 감소시킬 수 있다. 이하에서, 임의의 다항식과 조각 연속 함수의 오차를

Figure pat00195
와 같이 나타내고, sc는 스캔 스텝을 나타낼 수 있다.The processor 100 may reduce the search time of the pole in which the increase and the decrease change by using a binary search method. Hereinafter, the errors of arbitrary polynomials and fragmentary continuous functions are
Figure pat00195
and sc may represent a scan step.

프로세서(100)는

Figure pat00196
Figure pat00197
를 만족하는
Figure pat00198
를 탐색하고, 수학식 19의 과정을 연속해서
Figure pat00199
번 수행함으로써 i 번째 극점을 획득할 수 있다.The processor 100
Figure pat00196
and
Figure pat00197
to satisfy
Figure pat00198
, and successively repeat the process of Equation 19
Figure pat00199
It is possible to obtain the i-th pole by performing

Figure pat00200
Figure pat00200

수학식 19의 과정을 통해 프로세서(100)는

Figure pat00201
비트의 정확도(precision)로 극점을 획득할 수 있다.Through the process of Equation 19, the processor 100
Figure pat00201
The pole can be obtained with bit precision.

이하에서, 상술한 극점 탐색을 통한 후보점 획득 과정을 자세히 설명한다. 프로세서(100)는 근사 영역 중 가장 작은 점 x를 획득할 수 있다(310). 프로세서(100)는 x가 극대값일 경우

Figure pat00202
가 E의 절대값 보다 크거나 같은지, x가 극소값일 경우
Figure pat00203
가 E의 절대값에 -1을 곱한 값보다 작은지를 판단할 수 있다(320)Hereinafter, a process of obtaining a candidate point through the above-described pole search will be described in detail. The processor 100 may obtain the smallest point x among the approximate regions ( 310 ). The processor 100 determines that when x is a local maximum,
Figure pat00202
is greater than or equal to the absolute value of E, and if x is minimal
Figure pat00203
It can be determined whether is smaller than the value obtained by multiplying the absolute value of E by -1 ( 320 ).

320의 조건이 만족될 경우 프로세서(100)는, x0를 배열 B에 추가할 수 있다(321). 320의 조건이 만족되지 않을 경우, 프로세서(100)는 x에 x+sc를 대입할 수 있다(330).When the condition of 320 is satisfied, the processor 100 may add x0 to the array B ( 321 ). If the condition of 320 is not satisfied, the processor 100 may substitute x+sc into x ( 330 ).

그 후, 프로세서(100)는 x가 근사 영역에 포함되는지 판단할 수 있다(340). X가 근사 영역에 포함되는 경우 프로세서(100)는 r(x)-r(x-sc)와 r(x+sc)-r(x)의 부호가 상이한지를 판단할 수 있다(350).Thereafter, the processor 100 may determine whether x is included in the approximate region ( 340 ). When X is included in the approximate region, the processor 100 may determine whether signs of r(x)-r(x-sc) and r(x+sc)-r(x) are different ( 350 ).

x가 근사 영역에 포함되지 않을 경우, 프로세서(100)는 x에 해당 구간의 가장 큰 값을 대입할 수 있다(341). 이 때, 프로세서(100)는 x가 극대값일 경우

Figure pat00204
가 E의 절대값 보다 크거나 같은지, x가 극소값일 경우
Figure pat00205
가 E의 절대값에 -1을 곱한 값보다 작은지를 판단할 수 있다(342).When x is not included in the approximate region, the processor 100 may substitute the largest value of the corresponding section for x ( 341 ). At this time, when x is the maximum value, the processor 100
Figure pat00204
is greater than or equal to the absolute value of E, and if x is minimal
Figure pat00205
It may be determined whether is smaller than a value obtained by multiplying the absolute value of E by -1 (342).

프로세서(100)는 342의 조건이 만족될 경우, x0를 배열 B에 추가할 수 있고, 342의 조건이 만족되지 않을 경우, x가 근사 영역의 최대 값인지 판단할 수 있다(344). 이 때, x가 근사 영역의 최대값인 경우 프로세서(100)는 동작을 종료할 수 있고, x가 근사 영역의 최대값이 아닌 경우 x를 다음 구간의 가장 작은 값으로 대입할 수 있다(345).If the condition of 342 is satisfied, the processor 100 may add x0 to the array B. If the condition of 342 is not satisfied, the processor 100 may determine whether x is the maximum value of the approximate region ( 344 ). At this time, when x is the maximum value of the approximate region, the processor 100 may end the operation, and if x is not the maximum value of the approximate region, x may be substituted with the smallest value of the next section ( 345 ). .

프로세서(100)는 r(x)-r(x-sc)와 r(x+sc)-r(x)의 부호가 같은 경우 330의 동작을 다시 수행할 수 있고, r(x)-r(x-sc)와 r(x+sc)-r(x)의 부호가 다른 경우

Figure pat00206
에 0을 대입하고, t에 sc/2를 대입할 수 있다(360).If the signs of r(x)-r(x-sc) and r(x+sc)-r(x) are the same, the processor 100 may perform operation 330 again, and r(x)-r( x-sc) and r(x+sc)-r(x) have different signs
Figure pat00206
0 can be substituted for , and sc/2 can be substituted for t (360).

프로세서(100)는 r(x)-r(x-sc)의 값이 0보다 큰지를 판단할 수 있다(370). 프로세서(100)는 370의 조건이 만족될 경우, x-t, x, x+t 중에서 r(x) 값이 큰 것을 선택하여 x에 대입할 수 있다(371). 그 후, 프로세서(100)는

Figure pat00207
Figure pat00208
+1을 대입하고, t에 t/2를 대입할 수 있다(372).The processor 100 may determine whether a value of r(x)-r(x-sc) is greater than 0 ( 370 ). When the condition of 370 is satisfied, the processor 100 may select a value having a larger r(x) from among xt, x, and x+t and substitute it for x ( 371 ). After that, the processor 100
Figure pat00207
to
Figure pat00208
+1 may be substituted, and t/2 may be substituted for t (372).

프로세서(100)는

Figure pat00209
이 정확도(precision) 값인지를 비교할 수 있다(373, 374). 프로세서(100)는
Figure pat00210
이 정확도 값이 아닌 경우에 371의 과정을 다시 수행할 수 있다. 프로세서(100)는
Figure pat00211
이 정확도 값인 경우 x-t, x, x+t 중에서 r(x) 값이 작은 것을 선택하여 x에 대입할 수 있다(375). 그 후, 프로세서(100)는
Figure pat00212
Figure pat00213
+1을 대입하고, t에 t/2를 대입할 수 있다(376).The processor 100
Figure pat00209
It can be compared whether this is a precision value (373, 374). The processor 100
Figure pat00210
If this is not the accuracy value, the process of 371 may be performed again. The processor 100
Figure pat00211
In the case of this accuracy value, one having a smaller r(x) value among xt, x, and x+t may be selected and substituted into x (375). After that, the processor 100
Figure pat00212
to
Figure pat00213
+1 can be substituted, and t/2 can be substituted for t (376).

프로세서(100)는 373, 374의 조건이 만족될 경우 320의 동작을 다시 수행할 수 있다. 최종적으로, 프로세서(100)는 배열 B에 속한 극점들을 후보점으로 획득할 수 있다.When the conditions 373 and 374 are satisfied, the processor 100 may perform the operation 320 again. Finally, the processor 100 may obtain the poles belonging to the array B as candidate points.

sc의 값이 충분히 작다면

Figure pat00214
Figure pat00215
이고,
Figure pat00216
근처의
Figure pat00217
에 대하여
Figure pat00218
와 유사하게 동작할 수 있다. 이러한, 동작을 통해, 프로세서(100)는
Figure pat00219
근처에서
Figure pat00220
일 경우,
Figure pat00221
를 보장할 수 있고, 그 역도 보장할 수 있다.If the value of sc is small enough
Figure pat00214
Is
Figure pat00215
ego,
Figure pat00216
nearby
Figure pat00217
about
Figure pat00218
can operate similarly to Through this operation, the processor 100 is
Figure pat00219
near
Figure pat00220
In case,
Figure pat00221
can be guaranteed, and vice versa.

상술한 극점 탐색을 통한 후보점의 획득 동작을 통해, 프로세서(100)는

Figure pat00222
비트 정확도를 가지는 극점들을
Figure pat00223
시간 대신에
Figure pat00224
의 선형 시간(linear time) 내에 탐색하여 후보점을 획득 수 있다.Through the operation of obtaining a candidate point through the above-described pole search, the processor 100
Figure pat00222
poles with bit accuracy
Figure pat00223
instead of time
Figure pat00224
A candidate point can be obtained by searching within a linear time of .

도 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 processor 100 may select a number of target points based on the order of the target approximation polynomial from among the candidate points found through the search operation of FIG. 3 .

프로세서(100)는 후보점들 중에서 극대와 극소가 교대로 나타나도록 타겟점들을 선택하고, 오차의 절대값의 합이 최대가 되도록 타겟점들을 선택할 수 있다. 타겟점들은 다음 반복(iteration) 동작에서의 새로운 기준점(new reference point)들이 될 수 있다.The processor 100 may select target points so that maxima and minima from among the candidate points appear alternately, and select the target points so that the sum of absolute values of errors becomes the maximum. The target points may become new reference points in the next iteration operation.

이하에서, 타겟 점들을 획득하는 과정에 대하여 상세하게 설명한다. 프로세서(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 processor 100 may select points satisfying the local extrema condition, the alternating condition, and the maximum absolute sum condition described above in a naive manner.

나이브한 선택 방식은 교번 조건을 만족하는 모든 n+1 개의 점들에 대하여 절대합을 계산하여 최대 절대합을 갖는 n+1 개의 점을 선택하는 것일 수 있다. 나이브한 선택 방식의 경우 지역 극점의 수가 m 인 경우,

Figure pat00225
개의 점을 모두 조사해야 할 수 있다.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,
Figure pat00225
You may have to check all the dots.

프로세서(100)는 도 4a 및 도 4b의 동작을 통해 나이브한 방식에 비하여 타겟점을 선택하는 시간을 감소시킬 수 있다. 이하에서, 타겟점을 효과적으로 선택하는 동작에 대하여 설명한다.The processor 100 may reduce the time for selecting the target point compared to the naive method through the operation of FIGS. 4A and 4B . Hereinafter, an operation for effectively selecting a target point will be described.

프로세서(100)는 각 반복 동작 마다 후보점들 중에서 일부 원소를 제거함으로써 최종적으로 n+1 개의 타겟점들을 획득할 수 있다.

Figure pat00226
인 경우라면 타겟점에 포함되지 않을 점이 적어도 하나는 존재하는 상태일 수 있다.The processor 100 may finally obtain n+1 target points by removing some elements from the candidate points for each repetition operation.
Figure pat00226
In the case of , at least one point not included in the target point may exist.

도 4a의 알고리즘을 통해, 프로세서(100)는

Figure pat00227
시간 내에 타겟점을 선택할 수 있다. 다시 말해, 프로세서(100)는 준선형(quasi-linear) 시간 안에 타겟점을 선택할 수 있다.Through the algorithm of Figure 4a, the processor 100
Figure pat00227
You can select a target point in time. In other words, the processor 100 may select the target point within a quasi-linear time.

순서대로 정렬된 집합 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 processor 100 may randomly remove these elements when the compared values are equal to or the smallest element is one or more.

도 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 processor 100 may obtain an array B having target points as elements.

프로세서(100)는 i에 1을 대입할 수 있다(410). 프로세서(100)는 xi와 xi+1이 둘다 극대이거나 극소인지 여부를 판단할 수 있다(420).The processor 100 may substitute 1 for i ( 410 ). The processor 100 may determine whether both x i and x i+1 are maximum or minimum ( 420 ).

420의 조건을 만족시킬 경우, 프로세서(100)는 xi와 xi+1 중에서

Figure pat00228
값이 작은 값은 배열에서 제거하고 배열의 원소들을 재배열할 수 있다(421).
Figure pat00229
값은 상술한 임의의 다항식과 조각 연속 함수의 오차 값을 의미할 수 있다. 420의 조건이 만족되지 않을 경우, 프로세서(100)는 i에 i+1을 대입할 수 있다(422).When the condition of 420 is satisfied, the processor 100 selects one of x i and x i+1 .
Figure pat00228
The smaller value may be removed from the array and the elements of the array may be rearranged ( 421 ).
Figure pat00229
The value may mean an error value of any polynomial and fragment continuous function described above. When the condition of 420 is not satisfied, the processor 100 may substitute i+1 for i ( 422 ).

재배열을 수행한 후, 프로세서(100)는 xi가 배열 B에서 가장 큰 점인지 여부를 판단할 수 있다(430). xi가 가장 큰 점이 아닐 경우, 프로세서(100)는 420의 동작을 다시 수행할 수 있다.After performing the rearrangement, the processor 100 may determine whether x i is the largest point in the array B ( 430 ). If x i is not the largest point, the processor 100 may perform operation 420 again.

410 내지 430의 동작은 도 4a의 알고리즘 3의 단계 1 내지 7의 동작에 대응될 수 있다.Operations 410 to 430 may correspond to operations 1 to 7 of Algorithm 3 of FIG. 4A .

xi가 가장 큰 점일 경우 프로세서(100)는 B의 원소의 개수가 d+2 개인지를 판단할 수 있다(440). B의 원소의 개수가 d+2 개인 경우 프로세서(100)는 타겟점의 선택 동작을 종료할 수 있다.When xi is the largest point, the processor 100 may determine whether the number of elements of B is d+2 ( 440 ). When the number of elements of B is d+2, the processor 100 may end the selection operation of the target point.

B의 원소의 개수가 d+2 개가 아닌 경우, 프로세서(100)는 인접한 두 점의

Figure pat00230
값을 더한 값을 모두 배열 T에 넣고 정렬할 수 있다(450). 다시 말해,
Figure pat00231
를 T에 넣고 정렬할 수 있다.If the number of elements of B is not d+2, the processor 100 is
Figure pat00230
All of the summed values can be put into the array T and sorted (450). In other words,
Figure pat00231
can be put into T and sorted.

440 내지 450의 동작은 도 4a의 알고리즘의 단계 9 내지 10의 동작에 대응될 수 있다.Operations 440 to 450 may correspond to operations 9 to 10 of the algorithm of FIG. 4A .

프로세서(100)는 B의 원소의 개수가 d+3 개인지를 판단할 수 있다(460). B의 원소의 개수가 d+3 개인 경우, 프로세서(100)는 x1, xd+3 중

Figure pat00232
값이 작은 값을 배열에서 버리고 배열의 재배열을 수행하고 동작을 종료할 수 있다(461).The processor 100 may determine whether the number of elements of B is d+3 ( 460 ). If the number of elements in B is d+3, the processor 100 selects one of x1 and xd+3.
Figure pat00232
A value having a small value may be discarded from the array, the array may be rearranged, and the operation may be terminated ( 461 ).

프로세서(100)는 B의 원소의 개수가 d+4 개인지 판단할 수 있다(470). B의 원소의 개수가 d+4 개인 경우, 프로세서(100)는 T에

Figure pat00233
를 추가하고 재정렬할 수 있다(471). 그 후, 프로세서(100)는 T에서 가장 작은 값에 해당되는 두 점을 B에서 제거하고 재배열한 후 동작을 종료할 수 있다(472).The processor 100 may determine whether the number of elements of B is d+4 ( 470 ). If the number of elements in B is d+4, the processor 100 in T
Figure pat00233
can be added and rearranged (471). Thereafter, the processor 100 may terminate the operation after removing and rearranging two points corresponding to the smallest value in T from B ( 472 ).

프로세서(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 processor 100 may determine whether one of two points at both ends is included among two points corresponding to the smallest value in T ( 480 ). When the condition of 480 is satisfied, the processor 100 may rearrange one of the two end points from B ( 481 ). If the condition of 480 is not satisfied, the processor 100 may rearrange both points corresponding to the smallest value in T by discarding them from B ( 482 ).

이후, 프로세서(100)는 T에서 버려진 원소가 포함되어 있는 값은 버리고 새롭게 인접하게 된 두 점의

Figure pat00234
값을 더한 값들을 추가하여 재정렬 한 후의 460의 동작을 다시 수행할 수 있다(490). 460 내지 490의 동작은 도 4a의 단계 11 내지 23의 동작에 대응될 수 있다.Thereafter, the processor 100 discards the value including the discarded element in T and returns the value of the two newly adjacent points.
Figure pat00234
After rearranging by adding values to which values are added, operation 460 may be performed again ( 490 ). Operations 460 to 490 may correspond to operations 11 to 23 of FIG. 4A .

도 4a의 알고리즘의 마지막 부분에서 극점 x2가 제거될 경우를 예로 들어 설명하면,

Figure pat00235
Figure pat00236
와 같이 변경될 수 있다.Taking the case where the pole x2 is removed in the last part of the algorithm of FIG. 4A as an example,
Figure pat00235
Is
Figure pat00236
can be changed as

도 4a 및 도 4b의 타겟점을 선택하는 동작을 통해 프로세서(100)는 준선형 시간 내에 후보점들로부터 타겟점을 선택할 수 있다.Through the operation of selecting the target point of FIGS. 4A and 4B , the processor 100 may select the target point from the candidate points within a quasi-linear time.

프로세서(100)는 선택한 타겟점들에 기초하여 모듈러 리덕션 함수를 최적으로 근사하는 타겟 근사 다항식을 생성할 수 있다. 다시 말해, 프로세서(100)는 선택한 타겟점들을 지나는 d차 다항식을 타겟 근사 다항식으로 생성할 수 있다.The processor 100 may generate a target approximation polynomial that optimally approximates the modular reduction function based on the selected target points. In other words, the processor 100 may generate a d-order polynomial passing through the selected target points as a target approximation polynomial.

도 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 processor 100 may encrypt data using homomorphic encryption. The processor 100 may generate ciphertext by encrypting the data ( 510 ).

프로세서(100)는 생성한 사이퍼텍스트에 대응하는 모듈러스(modulus)에 대해 하나 이상의 타겟점의 선택에 기초한 모듈러 리덕션(modular reduction)을 수행함으로써 사이퍼텍스트에 부트스트래핑(bootstrapping)을 수행할 수 있다(530).The processor 100 may perform bootstrapping on the ciphertext by performing modular reduction based on the selection of one or more target points on the modulus corresponding to the generated ciphertext (530). ).

프로세서(100)는 모듈러 리덕션에 대응하는 함수를 근사(approximate)함으로써 부트스트래핑을 수행할 수 있다. 프로세서(100)는 모듈러 리덕션에 대응하는 함수를 근사하는 타겟 근사 다항식을 생성할 수 있다.The processor 100 may perform bootstrapping by approximating a function corresponding to the modular reduction. The processor 100 may generate a target approximation polynomial that approximates a function corresponding to the modular reduction.

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

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

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

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

프로세서(100)는 획득한 후보점들 중에서 타겟 근사 다항식의 차수에 기초한 수의 타겟점들을 선택할 수 있다. 구체적으로, 프로세서(100)는 후보점들 중에서 극대와 극소가 교대로 나타나도록 타겟점들을 선택할 수 있다. 프로세서(100)는 조각 연속 함수의 임의의 다항식의 오차의 절대값의 합이 최대가 되도록 타겟점들을 선택할 수 있다.The processor 100 may select a number of target points based on the order of the target approximation polynomial from among the obtained candidate points. Specifically, the processor 100 may select target points so that maxima and minima are alternately displayed among the candidate points. The processor 100 may select the target points such that the sum of the absolute values of the errors of any polynomial of the fragment continuity function is the maximum.

프로세서(100)는 선택한 타겟점들에 기초하여 타겟 근사 다항식을 생성할 수 있다. 프로세서(100)는 하나 이상의 극점의 절대값의 최대값과 최소값의 상대오차가 임계값보다 작을 경우의 다항식을 타겟 근사 다항식으로 생성할 수 있다.The processor 100 may generate a target approximation polynomial based on the selected target points. The processor 100 may generate a polynomial when the relative error between the maximum and minimum absolute values of one or more poles is smaller than a threshold value as a target approximation polynomial.

이 때, 타겟 근사 다항식의 기저(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)

동형 암호(homomorphic encryption)를 이용한 암호화 방법에 있어서,
데이터를 암호화함으로써 사이퍼텍스트(ciphertext)를 생성하는 단계; 및
상기 사이퍼텍스트에 대응하는 모듈러스(modulus)에 대해 하나 이상의 타겟점의 선택에 기초한 모듈러 리덕션(modular reduction)을 수행함으로써 상기 사이퍼텍스트에 부트스트래핑(bootstrapping)을 수행하는 단계
를 포함하는 암호화 방법.
In the encryption method using homomorphic encryption,
generating ciphertext by encrypting the data; and
performing bootstrapping on the ciphertext by performing modular reduction based on selection of one or more target points on a modulus corresponding to the ciphertext;
An encryption method comprising
제1항에 있어서,
상기 수행하는 단계는,
상기 모듈러 리덕션에 대응하는 함수를 근사(approximate)함으로써 상기 부트스트래핑을 수행하는 단계
를 포함하는 암호화 방법.
According to claim 1,
The performing step is,
performing the bootstrapping by approximating a function corresponding to the modular reduction;
An encryption method comprising
제2항에 있어서,
상기 모듈러 리덕션에 대응하는 함수를 근사(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
제3항에 있어서,
상기 모듈러 리덕션에 대응하는 함수를 근사하는 타겟 근사 다항식을 생성하는 단계는,
상기 타겟 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정하는 단계;
상기 하나 이상의 기준점에 기초하여 임의의 다항식을 획득하는 단계;
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 타겟 근사 다항식을 생성하는 단계
를 포함하는 암호화 방법.
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
제4항에 있어서,
상기 획득하는 단계는,
상기 하나 이상의 기준점을 지나는 조각 연속(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
제5항에 있어서,
상기 조각 연속 함수와의 오차의 절대값이 미리 결정된 값이 되는 다항식을 생성함으로써 상기 임의의 다항식을 획득하는 단계는,
상기 하나 이상의 기준점에 포함된 제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
제4항에 있어서,
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 타겟 근사 다항식을 생성하는 단계는,
상기 임의의 다항식과 상기 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득하는 단계;
상기 후보점들 중에서 상기 차수에 기초한 수의 타겟점들을 선택하는 단계; 및
상기 타겟점들에 기초하여 상기 타겟 근사 다항식을 생성하는 단계
를 포함하는 암호화 방법.
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
제7항에 있어서,
상기 타겟점들을 선택하는 단계는,
상기 후보점들 중에서 극대와 극소가 교대로 나타나도록 상기 타겟점들을 선택하는 단계
를 포함하는 암호화 방법.
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
제7항에 있어서,
상기 타겟점들을 선택하는 단계는,
상기 오차의 절대값의 합이 최대가 되도록 상기 타겟점들을 선택하는 단계
를 포함하는 암호화 방법.
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
제4항에 있어서,
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 타겟 근사 다항식을 생성하는 단계는,
상기 하나 이상의 극점의 절대값의 최대값과 최소값의 상대오차가 임계값보다 작을 경우의 다항식을 상기 타겟 근사 다항식으로 생성하는 단계
를 포함하는 암호화 방법.
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
제3항에 있어서,
상기 타겟 근사 다항식의 기저(basis)는 체비셰프(Chebyshev) 다항식의 기저인
암호화 방법.
4. The method of claim 3,
The basis of the target approximation polynomial is the basis of the Chebyshev polynomial.
encryption method.
동형 암호(homomorphic encryption)를 이용한 암호화 장치에 있어서,
데이터를 암호화함으로써 사이퍼텍스트(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.
제12항에 있어서,
상기 프로세서는,
상기 모듈러 리덕션에 대응하는 함수를 근사(approximate)함으로써 상기 부트스트래핑을 수행하는
암호화 장치.
13. The method of claim 12,
The processor is
performing the bootstrapping by approximating a function corresponding to the modular reduction
encryption device.
제13항에 있어서,
상기 프로세서는,
상기 모듈러 리덕션에 대응하는 함수를 근사하는 타겟 근사 다항식을 생성하는
암호화 장치.
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.
제14항에 있어서,
상기 프로세서는,
상기 타겟 근사 다항식의 차수에 기초하여 하나 이상의 기준점을 결정하고,
상기 하나 이상의 기준점에 기초하여 임의의 다항식을 획득하고,
상기 임의의 다항식으로부터 선택된 하나 이상의 극점에 기초하여 상기 타겟 근사 다항식을 생성하는
암호화 장치.
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.
제15항에 있어서,
상기 프로세서는,
상기 하나 이상의 기준점을 지나는 조각 연속(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.
제16항에 있어서,
상기 프로세서는,
상기 하나 이상의 기준점에 포함된 제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.
제15항에 있어서,
상기 프로세서는,
상기 임의의 다항식과 상기 하나 이상의 기준점을 지나는 조각 연속 함수 간의 오차의 극점 중에서 절대값이 미리 결정된 값보다 크거나 같은 후보점들을 획득하고,
상기 후보점들 중에서 상기 차수에 기초한 수의 타겟점들을 선택하고,
상기 타겟점들에 기초하여 상기 타겟 근사 다항식을 생성하는
암호화 장치.
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.
제18항에 있어서,
상기 프로세서는,
상기 후보점들 중에서 극대와 극소가 교대로 나타나도록 상기 타겟점들을 선택하는
암호화 장치.
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.
제18항에 있어서,
상기 프로세서는,
상기 오차의 절대값의 합이 최대가 되도록 상기 타겟점들을 선택하는
암호화 장치.
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.
제15항에 있어서,
상기 프로세서는,
상기 하나 이상의 극점의 절대값의 최대값과 최소값의 상대오차가 임계값보다 작을 경우의 다항식을 상기 타겟 근사 다항식으로 생성하는
암호화 장치.
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.
제14항에 있어서,
상기 타겟 근사 다항식의 기저(basis)는 체비셰프(Chebyshev) 다항식의 기저인
암호화 장치.
15. The method of claim 14,
The basis of the target approximation polynomial is the basis of the Chebyshev polynomial.
encryption device.
KR1020200139444A 2020-05-08 2020-10-26 Encryption method and apparatus using homomorhpic encryption KR20210136815A (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117640065A (en) * 2024-01-24 2024-03-01 北京隐算科技有限公司 Multi-user homomorphic encryption and decryption method

Cited By (2)

* Cited by examiner, † Cited by third party
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
JP5448863B2 (en) KEY GENERATION DEVICE, KEY GENERATION METHOD, PROGRAM, AND RECORDING MEDIUM
KR20210136815A (en) Encryption method and apparatus using homomorhpic encryption
US11558172B2 (en) Encryption method and apparatus based on homomorphic encryption using composition of functions
da Silva et al. A new approach towards fully homomorphic encryption over geometric algebra
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
Aguilar-Melchor et al. CDT-based Gaussian sampling: From multi to double precision
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
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

Legal Events

Date Code Title Description
A201 Request for examination