KR100742093B1 - A method for calculating a polynomial convolution operation for ntru encryption and decryption - Google Patents

A method for calculating a polynomial convolution operation for ntru encryption and decryption Download PDF

Info

Publication number
KR100742093B1
KR100742093B1 KR1020070045297A KR20070045297A KR100742093B1 KR 100742093 B1 KR100742093 B1 KR 100742093B1 KR 1020070045297 A KR1020070045297 A KR 1020070045297A KR 20070045297 A KR20070045297 A KR 20070045297A KR 100742093 B1 KR100742093 B1 KR 100742093B1
Authority
KR
South Korea
Prior art keywords
polynomial
coefficients
convolution operation
ntru
convolution
Prior art date
Application number
KR1020070045297A
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 KR1020070045297A priority Critical patent/KR100742093B1/en
Application granted granted Critical
Publication of KR100742093B1 publication Critical patent/KR100742093B1/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Abstract

A method for calculating a polynomial convolution operation for NTRU encryption and description is provided to improve a speed of a polynomial convolution operation by using a previously stored value in place of an addition calculation when using a simple pattern in the convolution operation. A method for calculating a polynomial convolution operation for NTRU encryption and description includes the steps of: selecting coefficients of a second polynomial as binary coefficients; searching simple patterns having two '1' and a predetermined number of '0' between the two '1'; classifying the simple patterns according to the number of '0'; calculating and storing the coefficients of a first polynomial and all combination values; and performing convolution operations of the first polynomial and the second polynomial by referring values stored corresponding to the specific simple pattern.

Description

엔티알유 암호화 및 복호화를 위한 다항식 컨볼루션 연산 방법{A METHOD FOR CALCULATING A POLYNOMIAL CONVOLUTION OPERATION FOR NTRU ENCRYPTION AND DECRYPTION}A METHOD FOR CALCULATING A POLYNOMIAL CONVOLUTION OPERATION FOR NTRU ENCRYPTION AND DECRYPTION}

도 1은 Bailey 등이 제안한 다항식 컨볼루션 연산 방법을 구현한 알고리즘의 간단한 형태를 나타내는 도면.1 is a diagram illustrating a simple form of an algorithm implementing the polynomial convolution calculation method proposed by Bailey et al.

도 2는 본 발명에 따른 다항식 컨볼루션 연산 방법을 구현한 알고리즘의 간단한 형태를 나타내는 도면.2 is a diagram showing a simple form of an algorithm implementing the polynomial convolution calculation method according to the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for main parts of the drawings>

Algorithm 1 : 기존의 다항식 컨볼루션 연산 방법을 구현한 알고리즘Algorithm 1: Algorithm Implementing Conventional Polynomial Convolution

Algorithm 2 : 본 발명의 일 실시예에 따른 다항식 컨볼루션 연산 방법을 구현한 알고리즘Algorithm 2: Algorithm Implementing Polynomial Convolution Calculation Method According to an Embodiment of the Present Invention

본 발명은 NTRU 암호화 및 복호화에서 사용될 수 있는 다항식 컨볼루션 연산 방법으로서, 보다 구체적으로는 임의선택 가능한 다항식의 계수들을 이진 계수들로 선택한 후, 상기 선택된 계수들에서 그 사이에 소정의 개수 이하의 '0'을 갖는 2개 의 '1'을 포함하는 단순 패턴(simple pattern)들을 '1'을 서로 공유하지 않도록 검색하여 그에 대응하는 모든 조합 값들을 미리 계산하여 저장해 두고, 실제 컨볼루션 연산에서 단순 패턴이 사용되는 경우 미리 저장된 값을 참조하는 것에 의해 덧셈 계산을 대신함으로써, NTRU 암호화 및 복호화에서의 다항식 컨볼루션 연산의 속도를 대폭 향상시킬 수 있는 방법에 관한 것이다.The present invention is a polynomial convolution operation method that can be used in NTRU encryption and decryption. More specifically, the coefficients of the randomly selectable polynomial are selected as binary coefficients, and then the predetermined number of ' Simple patterns containing two '1's with' 0 'are searched so that' 1 'is not shared with each other, and all the corresponding combination values are precomputed and stored, and the simple pattern in the actual convolution operation When used, the present invention relates to a method that can greatly speed up polynomial convolutional operations in NTRU encryption and decryption by substituting addition calculations by referring to previously stored values.

현재 IEEE P1363.1 표준으로 고려되고 있는 NTRU 암호체계는, 다항식 링(polynomial rings)에 대한 공개 키 암호체계(public key cryptosystem)로서, 그 보안성은 격자 난제(hard problems over lattices)에 기초하고 있다. NTRU 암호의 소개 이후, NTRUsign이라 불리는 NTRU 격자를 이용한 디지털 서명 스킴도 제안되었다. Coppersmith와 Shamir가 격자 기저 축소 알고리즘(lattice basis reduction algorithm)을 사용하여 NTRU에 대한 공격을 제안한 이후, NTRUencrypt 및 NTRUsign을 깨뜨리기 위한 다양한 시도가 있어왔다. 그러나 이들 시도 중 어느 것도 NTRU에서 사용된 격자 문제에서의 중요한 약점을 발견하지 못했다.The NTRU cryptosystem, currently considered an IEEE P1363.1 standard, is a public key cryptosystem for polynomial rings, whose security is based on hard problems over lattices. Since the introduction of NTRU cryptography, a digital signature scheme using an NTRU grid called NTRUsign has also been proposed. Since Coppersmith and Shamir proposed an attack on NTRU using a lattice basis reduction algorithm, various attempts have been made to break NTRUencrypt and NTRUsign. However, none of these attempts found a significant weakness in the lattice problem used in NTRU.

한편, NTRU의 효율적인 구현에 대한 광대한 연구가 계속되어 오고 있다. Hoffstein과 Silverman은 NTRU의 보안성은 유지한 채 계산량을 줄이기 위해 특별한 형태의 다항식을 사용하는 것을 제안하였으며, Bailey 등은 NTRU가 리소스-제한 장치 상에서 효과적으로 구현될 수 있다는 것을 증명하였다. 최근에, Gaubatz, Kaps 및 Sunar는 3,000개 이하의 게이트만을 사용하는 NTRU의 하드웨어 구현을 제안하면서, 센서 노드 상에서 공개 키 암호체계를 사용하는 것이 가능하다는 것을 증명하였다. 이와 같은 노력들에 의해 NTRU를 구현하는데 요구되는 계산량이 크게 줄어 들기는 했지만, NTRU의 계산량을 감소시킬 필요성은 아직도 존재한다. 특히, NTRU의 계산량에 있어서 가장 큰 비중을 차지하는 다항식 컨볼루션 연산에 대한 계산량을 줄일 필요가 있다.On the other hand, extensive research on the efficient implementation of NTRU has been continued. Hoffstein and Silverman proposed using a special form of polynomial to reduce computations while maintaining NTRU security, and Bailey et al. Demonstrated that NTRU can be effectively implemented on resource-limited devices. Recently, Gaubatz, Kaps and Sunar proposed a hardware implementation of NTRU using only 3,000 gates or less, proving that it is possible to use public key cryptography on sensor nodes. Although these efforts have greatly reduced the amount of computation required to implement NTRU, there is still a need to reduce the computation of NTRU. In particular, there is a need to reduce the amount of computation for polynomial convolution operations, which account for the largest portion of the computation of NTRU.

본 발명은 상기와 같은 필요성에 대한 인식에서 비롯된 것으로서, NTRU 암호화 및 복호화에 수반되는 다항식 컨볼루션 연산(polynomial convolution operation)들에서 특정 서브-연산들이 빈번하게 반복된다는 사실에 기초하여, 그 계산량을 대폭 감소시킨 새로운 다항식 컨볼루션 연산 방법을 제안하는 것을 그 목적으로 한다.The present invention derives from the recognition of this need and, on the basis of the fact that certain sub-operations are frequently repeated in polynomial convolution operations involved in NTRU encryption and decryption, greatly reducing the amount of computation. The objective is to propose a new method for reducing polynomial convolution.

상기한 목적을 달성하기 위한 본 발명의 특징에 따른, NTRU 암호화 및 복호화를 위한 다항식 컨볼루션 연산 방법은,Polynomial convolution calculation method for NTRU encryption and decryption, according to a feature of the present invention for achieving the above object,

NTRU 암호화 및 복호화에서, 제1 다항식('공개 키' 또는 '암호문'에 해당함)과 임의선택 가능한 제2 다항식과의 컨볼루션(convolution) 연산 방법으로서,In NTRU encryption and decryption, as a convolution operation method of a first polynomial (corresponding to a 'public key' or 'password') and a second polynomial that can be arbitrarily selected,

(1) 임의선택 가능한 상기 제2 다항식의 계수들을 이진 계수('0' 또는 '1')들로 선택하는 제1 단계;(1) a first step of selecting randomly selectable coefficients of the second polynomial as binary coefficients ('0' or '1');

(2) 상기 제1 단계에서 선택된 상기 이진 계수들을 나열한 비트스트링에서, 2개의 '1'을 포함하고, 상기 2개의 '1' 사이에 소정의 개수 이하의 '0'을 포함하는 단순 패턴(simple pattern)들을 '1'을 서로 공유하지 않도록 검색하는 제2 단계;(2) a simple pattern including two '1's in a bitstring enumerating the binary coefficients selected in the first step and having a predetermined number or less' 0's between the two '1s' searching for patterns) so that they do not share '1' with each other;

(3) 상기 제2 단계에서 검색된 단순 패턴들을, 포함하고 있는 '0'의 개수에 따라 분류하는 제3 단계;(3) a third step of classifying the simple patterns searched in the second step according to the number of '0's included;

(4) 상기 제3 단계에서 분류된 각각의 단순 패턴에 대하여, 상기 제1 다항식의 계수들과 발생될 수 있는 모든 조합 값들을 미리 계산하여 그 값을 저장하는 제4 단계; 및(4) a fourth step of, for each simple pattern classified in the third step, pre-calculating the coefficients of the first polynomial and all possible combination values and storing the values; And

(5) 상기 제1 다항식과 상기 제2 다항식의 컨볼루션 연산에서, 특정 단순 패턴이 사용되는 경우에, 상기 제4 단계에서 상기 특정 단순 패턴에 대응하여 저장된 값을 참조하는 것에 의해 계산을 대신하는 제5 단계를 포함하는 것을 그 구성상의 특징으로 한다.(5) In a convolution operation of the first polynomial and the second polynomial, when a specific simple pattern is used, the calculation is performed by referring to a stored value corresponding to the specific simple pattern in the fourth step. Including the fifth step is characterized in its configuration.

바람직하게는, 상기 제3 단계에서, 특정 분류에 속하는 단순 패턴의 개수가 1개일 경우 상기 특정 분류를 삭제할 수 있다.Preferably, in the third step, when the number of simple patterns belonging to a specific classification is one, the specific classification may be deleted.

더욱 바람직하게는, 상기 제2 단계에서, 소정의 개수를 4로 설정할 수 있다.More preferably, in the second step, the predetermined number may be set to four.

이하에서는 첨부된 도면들을 참조하여, 본 발명의 실시예에 대해 상세하게 설명하기로 한다.Hereinafter, with reference to the accompanying drawings, it will be described in detail an embodiment of the present invention.

1. 다항식 Polynomial 컨볼루션Convolution 연산( calculate( polynomialpolynomial convolutionconvolution operationoperation ))

Z를 정수들의 집합이라고 하자. Z[X]로 표시되는 Z에 대한 다항식 링은, Z의 계수들을 갖는 모든 다항식들의 집합이다. 몫 링(quotient ring) R을

Figure 112007034625304-pat00001
로 정의한다. R에 속하는 원소 a는 다항식 또는 벡터로서 다음 수학식 1과 같이 적을 수 있다.Let Z be a set of integers. The polynomial ring for Z, represented by Z [X], is the set of all polynomials with coefficients of Z. Quotient ring R
Figure 112007034625304-pat00001
Defined as The element a belonging to R is a polynomial or a vector and may be written as in Equation 1 below.

Figure 112007034625304-pat00002
Figure 112007034625304-pat00002

R에 속하는 원소 a와 b에 대한 컨볼루션 곱 c(

Figure 112007034625304-pat00003
)는, 다음 수학식 2와 같이 표시되는 계수를 갖는다.Convolution product c () for elements a and b belonging to R
Figure 112007034625304-pat00003
) Has a coefficient represented by the following expression (2).

Figure 112007034625304-pat00004
Figure 112007034625304-pat00004

여기서,

Figure 112007034625304-pat00005
이기 때문이다.here,
Figure 112007034625304-pat00005
Because it is.

원칙적으로, 이 연산은 N2개의 정수 곱셈을 필요로 하여 그 계산량이 많다. 그러나 NTRU에 의해 사용되는 다항식 컨볼루션 연산은, 일반적으로 a 또는 b 중 어느 하나가 작은 계수들을 가지며, 따라서 a*b의 계산은 매우 빠르게 수행될 수 있다.In principle, this operation requires N 2 integer multiplications, which is expensive. However, polynomial convolutional operations used by NTRU generally have either small coefficients a or b, so the calculation of a * b can be performed very quickly.

2. 2. NTRUNTRU 공개-키 암호체계 Public-key cryptosystem

다양한 종류의 NTRU 암호체계가 존재하지만, Hoffstein이나 Bailey 등에 의해 제안된 개량 버전은 다음과 같이 설명될 수 있다:There are many different types of NTRU cryptosystems, but the improved version proposed by Hoffstein or Bailey can be explained as follows:

- NTRU는 3가지 공개 파라미터(N, p, q)를 가진다(여기서, p와 q의 최대공약수는 1이고, p ≪ q임).NTRU has three public parameters (N, p, q), where p and q have a greatest common divisor of 1 and p &lt; q.

- 다항식의 계수들은 mod p or q로 감산된다(reduced mod p or q).The coefficients of the polynomial are reduced to mod p or q.

- f-1 mod q로 표시되는 다항식 f의 mod q 상의 역원은,

Figure 112007034625304-pat00006
을 만족하는 다항식으로서 정의된다.The inverse of mod q of polynomial f represented by f −1 mod q is
Figure 112007034625304-pat00006
It is defined as a polynomial that satisfies.

IEEE P1363.1 표준의 초안(working draft)은 NTRU에 대한 몇 가지 전형적인 파라미터 집합을 제안하는데, 그 중 하나는 (N, p, q) = (251, 2, 197)이다.The working draft of the IEEE P1363.1 standard proposes some typical sets of parameters for NTRU, one of which is (N, p, q) = (251, 2, 197).

2.1 키 생성(2.1 Key Generation KeyKey GenerationGeneration ))

R에 속하며 작은 계수들을 갖는 다항식 F, g를 임의로 선택한다. 그 후,

Figure 112007034625304-pat00007
Figure 112007034625304-pat00008
을 계산한다. 여기서, mod q는 다항식 내의 모든 계수가 mod q로 감산됨, 즉 q로 나눈 나머지로 계산됨을 의미한다. 개인 키(private key)는 다항식 f이며, 공개 키는 다항식 h이다.Randomly select the polynomials F, g belonging to R and having small coefficients. After that,
Figure 112007034625304-pat00007
Wow
Figure 112007034625304-pat00008
Calculate Here, mod q means that all coefficients in the polynomial are subtracted by mod q, i.e., the remainder divided by q. The private key is polynomial f and the public key is polynomial h.

2.2 암호화(2.2 encryption ( EncryptionEncryption ))

m을 메시지를 나타내는 다항식이라고 하자. 작은 계수를 갖는 N-1차의 다항식 r을 임의로 선택하고, 암호문(ciphertext)

Figure 112007034625304-pat00009
을 계산한다.Let m be a polynomial that represents a message. Randomly selects N-1th order polynomial r with small coefficients, and ciphertext
Figure 112007034625304-pat00009
Calculate

2.3 복호화(2.3 Decryption DecryptionDecryption ))

e를 복호화하기 위해 먼저

Figure 112007034625304-pat00010
을 계산하되, a의 계수들이 A ≤ ai < A + q를 만족하도록 선택한다. A의 값은 고정되며, 나머지 파라미터에 의존하 는 간단한 공식에 의해 결정된다. 그 후,
Figure 112007034625304-pat00011
로서 평문(plaintext) m을 복구한다.first to decode e
Figure 112007034625304-pat00010
Is calculated so that the coefficients of a satisfy A < a i &lt; A + q. The value of A is fixed and determined by a simple formula that depends on the rest of the parameters. After that,
Figure 112007034625304-pat00011
Restore plaintext m as

2.4 복호화의 유효성2.4 Validation of Decryption

2.3에서 계산된 다항식 a는 다음 수학식 3을 만족한다.Polynomial a calculated in 2.3 satisfies Equation 3 below.

Figure 112007034625304-pat00012
Figure 112007034625304-pat00012

최종 다항식 pr*g + m*f를 고려해 보자. 파라미터들을 적당히 선택하는 것에 의해, q보다 작은 길이의 인터벌 내에 놓이도록 계수들을 조정할 수 있다. 따라서 우리는 다음 수학식 4와 같이 a를 복구할 수 있다.Consider the final polynomial pr * g + m * f. By appropriately selecting the parameters, the coefficients can be adjusted to lie within an interval of length less than q. Therefore, we can recover a as in Equation 4 below.

Figure 112007034625304-pat00013
Figure 112007034625304-pat00013

즉, mod q에 대해서가 아니라 정확한 등식이 성립하므로 m ≡ a mod p이다.That is, m ≡ a mod p because the exact equation holds, not for mod q.

3. 기존의 다항식 3. Conventional Polynomials 컨볼루션Convolution

NTRU 암호화에서 가장 시간 소모가 많은 부분은, 컨볼루션 곱 r(X) * h(X) mod q를 계산하는 부분이다. 마찬가지로, NTRU 복호화에서 가장 시간 소모가 많은 부분은, 컨볼루션 곱 e(X) * f(X) ≡ e(X) + pe(X) * F(X)이므로 결국 컨볼루션 곱 e(X) * F(X)를 계산하는 부분이다.The most time consuming part of NTRU encryption is the calculation of the convolution product r (X) * h (X) mod q. Similarly, the most time consuming part of NTRU decryption is the convolution product e (X) * f (X) ≡ e (X) + pe (X) * F (X), so convolution product e (X) * This part calculates F (X).

다항식 h(X)와 e(X)의 계수들은 거의 임의로 분포되는데 반하여, r(X)과 F(X)는 계수를 임의로 선택하여 그 형태를 제어할 수 있다. 따라서 r(X)과 F(X)는, 계수들이 곱셈 연산 없이 계산될 수 있도록 흔히 이진 계수(binary coefficient)들, 즉 0 또는 1을 갖도록 선택된다. 예를 들어, 만약 r(X)이 Hamming 가중치 HW(r), 즉 HW(r)개의 1을 갖는 이진 다항식이라면, 곱셈 r(X) * h(X) mod q의 계산은 대략 HW(r) x N 번의 연산을 요구한다. 여기서, 각각의 연산은 한 번의 덧셈과 한 번의 모듈로 q 감산(reduction modulo q)이다. 그러므로 만약 우리가 낮은 Hamming 가중치를 갖는 r(X)과 F(X)를 사용할 수 있다면, 암호화와 복호화 절차는 매우 효율적이 된다. 다만, 너무 작은 값의 HW(r)과 HW(F)는, r과 f에 대한 공간의 크기가 너무 작아지기 때문에 보안성을 손상시킬 수 있다는 점에 주의해야 한다. IEEE P1363.1의 표준 초안에서는, HW(r)과 HW(F)에 대한 대략적인 값이 공개 키 (N, p, q)의 선택에 따라 주어진다.While the coefficients of the polynomials h (X) and e (X) are distributed almost randomly, r (X) and F (X) can control their shape by arbitrarily selecting coefficients. Thus r (X) and F (X) are often chosen to have binary coefficients, i.e. 0 or 1, so that the coefficients can be calculated without a multiplication operation. For example, if r (X) is a binary polynomial with Hamming weights HW (r), i.e., HW (r) 1s, then the computation of multiplication r (X) * h (X) mod q is approximately HW (r). Requires x N operations. Here, each operation is one addition and one modulo q subtraction. Therefore, if we can use r (X) and F (X) with low Hamming weights, the encryption and decryption procedure becomes very efficient. It should be noted, however, that too small values of HW (r) and HW (F) may impair security because the space for r and f becomes too small. In the draft standard of IEEE P1363.1, approximate values for HW (r) and HW (F) are given according to the choice of public key (N, p, q).

Bailey 등은 2개의 입력 다항식 중 하나는 이진 계수들을 갖는다는 가정 하에서 효율적인 다항식 컨볼루션 연산 방법을 제안하였다. 도 1은 Bailey 등이 제안한 다항식 컨볼루션 연산 방법을 구현한 알고리즘의 간단한 형태를 나타내는 도면이다. 도 1에 도시된 Bailey 등에 의해 제안된 알고리즘에서, c(X)∈R은 일반 다항식이며, a(X)∈R은 HW(a) = d를 갖는 이진 다항식이다. 즉, a(X)는 NTRU에서 r(X)과 F(X)를 나타낸다. 도 1에 도시된 알고리즘에서, 제6행은 dN번 반복되며, 매번 2번의 덧셈(한 번은 ck의 덧셈을 위해서, 다른 한 번은 index k + b[j]의 계산을 위해서)을 요구한다. 반면에, 제10행은 N번 반복되며, 매번 2번의 덧셈과 한 번의 모듈로 감산을 요구한다. 따라서, 도 1에 도시된 알고리즘에 요구되는 연산의 전체 수는 정확히 2(d + 1)N 번의 덧셈과 N번의 모듈로 감산이다.Bailey et al. Proposed an efficient polynomial convolution calculation method under the assumption that one of the two input polynomials has binary coefficients. 1 is a diagram illustrating a simple form of an algorithm implementing the polynomial convolution calculation method proposed by Bailey et al. In the algorithm proposed by Bailey et al. Shown in FIG. 1, c (X) ∈R is a general polynomial and a (X) ∈R is a binary polynomial with HW (a) = d. That is, a (X) denotes r (X) and F (X) in the NTRU. In the algorithm shown in FIG. 1, the sixth row is repeated dN times, requiring two additions each time (one for the addition of c k , the other for the calculation of index k + b [j]). On the other hand, row 10 is repeated N times, requiring two additions each time and one module subtraction. Thus, the total number of operations required for the algorithm shown in FIG. 1 is exactly 2 (d + 1) N additions and N modulo subtractions.

4. 개선된 다항식 4. Improved polynomial 컨볼루션Convolution

이제 본격적으로 본 발명에 따른 개선된 다항식 컨볼루션 연산 방법을 설명하기로 한다.Now, the improved polynomial convolution calculation method according to the present invention will be described in earnest.

4.1 기본 아이디어4.1 Basic Idea

먼저 다항식 컨볼루션 연산의 구조를 조사하는 것부터 시작한다. a∈R과 c∈R의 컨볼루션 곱 t∈R은 다음 수학식 5와 같은 계수를 갖게 된다.Start by examining the structure of polynomial convolution operations. The convolution product t∈R of a∈R and c∈R has the same coefficient as Equation 5 below.

Figure 112007034625304-pat00014
Figure 112007034625304-pat00014

t는 또한 벡터로서 표시될 수도 있으므로, 상기 다항식 컨볼루션 연산은 다음 수학식 6과 같은 매트릭스 형태로서 다시 적을 수 있다.Since t may also be represented as a vector, the polynomial convolution operation may be written again as a matrix form as shown in Equation 6 below.

Figure 112007034625304-pat00015
Figure 112007034625304-pat00015

수학식 6의 N x N 매트릭스를 통해, 각각의 행이 이전 행을 오른쪽으로 한 위치만큼 회전시킴으로써 생성된다는 것을 관찰할 수 있다.From the N × N matrix of Equation 6, it can be observed that each row is created by rotating the previous row by one position to the right.

이해를 쉽게 하기 위해, 이진 다항식

Figure 112007034625304-pat00016
을 가지며, N = 10, d = 6인 간단한 예를 생각해 보기로 한다. 단순화를 위해, 이진 다항식을 비트 스트링(bit string)으로서 적기로 하자. 이에 따르면, a(X)는 0110011011로서 다시 적을 수 있으며, a(X) * c(X)는 다음 수학식 7과 같이 적을 수 있다.Binary polynomials for ease of understanding
Figure 112007034625304-pat00016
Let's consider a simple example where N = 10 and d = 6. For simplicity, let's write a binary polynomial as a bit string. According to this, a (X) may be rewritten as 0110011011, and a (X) * c (X) may be written as Equation 7 below.

Figure 112007034625304-pat00017
Figure 112007034625304-pat00017

여기서 t0

Figure 112007034625304-pat00018
로서 계산될 수 있으며, 6번의 덧셈을 필요로 한다(여기서는 설명의 편이를 위해, 인덱스 계산과 모듈로 q 감산에 대한 비용은 고려하지 않음). 이들 덧셈 중, 우리는 c1 + c2의 항에 집중할 필요가 있는데, 이 항은 t3과 t7의 계산에서도 발생한다는 것을 확인할 수 있다. 이것은 패턴 '11'이 a(X)의 이진 표현에서 3번 반복되기 때문이다. 정확하게는, t0, t3, t7의 계산에서 c1 + c2는 a(X) = 011 1 0011 2 011 3 에서 각각 11 3 , 11 1 , 11 2 에 해당한다. 항 c1 + c2가 3번 발생하므로, 우리는 이 항을 단지 한 번만 계산하고 그 값을 룩업 테이블(look-up table)에 저장한 후 그 값이 요구될 때 재사용함으로써, 덧셈의 수를 2만큼 감소시킬 수 있다. 이와 같은 감소는 패턴 ‘11’과 관련된 다른 항들에서도 적용될 수 있다. 예를 들어, t1, t4, t8의 계산에서는 항 c2 + c3이 발생하고, t2, t5, t9의 계산에서는 항 c3 + c4가 발생하며, t3, t6, t0의 계산에서는 항 c4 + c5가 발생하는 식이다. 따라서 패턴 ‘11’에 의한 전체 절약은 2 x N = 20이 된다.Where t 0 is
Figure 112007034625304-pat00018
It can be calculated as, and requires six additions (for the sake of explanation, the cost of index calculation and modulo q subtraction are not taken into account here). Of these additions, we need to focus on the terms c 1 + c 2 , which can be seen in the calculation of t 3 and t 7 . This is because the pattern '11' is repeated three times in the binary representation of a (X). To be precise, c 1 + c 2 corresponds to 11 3 , 11 1 , 11 2 in a (X) = 0 11 1 00 11 2 0 11 3 in the calculation of t 0 , t 3 , t 7 . Since the term c 1 + c 2 occurs three times, we compute this term only once, store the value in a look-up table, and reuse the value when needed, so we can add the number of additions. Can be reduced by 2. This reduction can be applied to other terms related to the pattern '11'. For example, the term c 2 + c 3 occurs in the calculation of t 1 , t 4 , t 8 , and the term c 3 + c 4 occurs in the calculation of t 2 , t 5 , t 9 , and t 3 , t In the calculation of 6 , t 0 , the term c 4 + c 5 occurs. Thus, the overall savings by the pattern '11' is 2 x N = 20.

상기 아이디어는, 만약 다항식의 이진 표현에서 '1'을 공유하지 않도록 이들 패턴들을 발견할 수 있다면, '101', '1001', '111' 등과 같은 다른 패턴들에 대해서도 적용될 수 있다는 점에 주의해야 한다.Note that the idea can also be applied to other patterns such as '101', '1001', '111', etc. if one can find these patterns so as not to share '1' in the binary representation of the polynomial. do.

일반적으로, 만약 N개의 계수들을 갖는 다항식의 이진 표현에서 '1'을 n개 포함하는 패턴이 m번 발생하면, N개의 임시 정수들을 저장하기 위한 메모리의 비용으로 정수 덧셈의 수를 N(m-1)(n-1)만큼 줄일 수 있음을 쉽게 보일 수 있다. 따라서 많은 수의 '1'을 포함하며 여러 차례 발생하는 패턴을 찾는 것이 계산량 절약을 위해 중요하다.In general, if a pattern containing n '1's occurs n times in a binary representation of a polynomial with N coefficients, then the number of integer additions is given as N (m−) as the cost of memory for storing N temporary integers. It can be easily seen that it can be reduced by (n-1). Therefore, finding a pattern that contains a large number of '1's and occurs multiple times is important to save computations.

4.2 패턴 검색4.2 Pattern Search

본 발명에서 제안하는 패턴 검색 방법은 2개의 1 사이에 소정 개수 이하(0개 포함)의 0을 갖는 패턴들, 즉 '11', '101', '1001' 등만을 고려하는 것이며, 세 개 이상의 '1'을 포함하는 패턴은 검색하지 않는다. 아래에서는 이러한 결정의 근거가 되는 분석 및 실험 결과를 제시한다. 먼저 2개의 비트 위치들 사이의 거리를 각각의 위치에 대한 인덱스의 차이로서 정의하자. 예를 들어, 스트링 1001에서 2개의 '1' 사이의 거리는 3이다. 이때 '1'이 선택되는 확률이 p인 분포에 따라 한 개의 비트를 선택하는 작업을 독립적으로 반복하여 이진 다항식의 계수들을 선택한다고 가정하면, 2개의 인접하게 발생한 '1' 사이의 거리 Z에 대하여 다음 수학식 8이 성립함을 쉽게 증명할 수 있다.The pattern retrieval method proposed by the present invention considers only patterns having a number less than or equal to zero (including zero) between two 1s, that is, '11', '101', '1001', and the like. Patterns containing '1' are not searched. The analysis and experimental results that underlie these decisions are presented below. First define the distance between two bit positions as the difference in index for each position. For example, the distance between two '1's in string 1001 is three. In this case, assuming that the coefficients of the binary polynomials are selected by independently repeating the operation of selecting one bit according to a distribution having a probability that '1' is selected, p for a distance Z between two adjacent '1's. Equation 8 can be easily proved.

Pr[Z = d] = (1 - p)d-1pPr [Z = d] = (1-p) d-1 p

앞서 언급한 IEEE P1363.1의 표준 초안에 따르면, 이진 다항식 F(X)와 r(X)은 각각 dF와 dr개의 계수들이 1이 되고, 나머지 계수들은 0이 되도록 임의로 선택된다. 이 상황은 위의 다항식 계수 선택 방법에 대한 가정과 정확히 동일하지는 않지만, p ≒ dF/N 또는 p ≒ dr/N이라고 근사화하면, 실제 분포와 유사한 행태를 나타낸다. 표 1은 다항식 F(X) 및 다항식 r(X)에서 인접한 2개의 1 사이의 거리 d의 분포를 나타내는 표로서, 표 1은 IEEE P1363.1의 드래프트에서 제시된 파라미터 값들을 사용한 실험 결과들이지만, 그 값이 수학식 8(여기서 p = dF/N = dr/N)로부터 예측되는 값들과 거의 동일하다는 것을 확인할 수 있다.According to the aforementioned draft standard of IEEE P1363.1, the binary polynomials F (X) and r (X) are arbitrarily chosen such that dF and dr coefficients are 1, and the remaining coefficients are 0. This situation is not exactly the same as the assumption for the polynomial coefficient selection method above, but approximating p ≒ dF / N or p ≒ dr / N shows a behavior similar to the actual distribution. Table 1 shows the distribution of the distance d between two adjacent 1s in the polynomial F (X) and polynomial r (X). Table 1 shows the experimental results using the parameter values presented in the draft of IEEE P1363.1. It can be seen that the value is almost equal to the values predicted from Equation 8 (where p = dF / N = dr / N).

파라미터 집합Parameter set (N, dF = dr)(N, dF = dr) d = 1d = 1 d = 2d = 2 d = 3d = 3 d = 4d = 4 d = 5d = 5 d = 6d = 6 ees251ep6ees251ep6 (251, 48)(251, 48) 0.1910.191 0.1560.156 0.1260.126 0.1010.101 0.0830.083 0.0660.066 ees347ep2ees347ep2 (347, 66)(347, 66) 0.1910.191 0.1550.155 0.1250.125 0.1020.102 0.0820.082 0.0670.067 ees397ep1ees397ep1 (397, 74)(397, 74) 0.1860.186 0.1520.152 0.1240.124 0.1010.101 0.0820.082 0.0670.067 ees491ep1ees491ep1 (491, 91)(491, 91) 0.1860.186 0.1520.152 0.1230.123 0.1010.101 0.0820.082 0.0670.067 ees587ep1ees587ep1 (587, 108)(587, 108) 0.1840.184 0.1510.151 0.1230.123 0.1010.101 0.0820.082 0.0670.067 ees787ep1ees787ep1 (787, 140)(787, 140) 0.1770.177 0.1470.147 0.1200.120 0.0990.099 0.0810.081 0.0670.067

수학식 8과 표 1은, IEEE P1363.1의 표준 초안에서 주어진 실제 파라미터 집합들에 대하여 2개의 인접한 1사이의 거리가 거의 2/3의 확률로 5이하라는 것을 보여준다. 따라서 '11', '101', '1001', '10001', '100001'과 같은 패턴들이 F(X)와 r(X)의 상당한 크기의 위치를 커버하게 되며, 그 결과 본 발명에 따른 방법을 채택할 경우 (2개의 인접한 '1' 사이에 포함되는 '0'의 개수를 4개 이하로 한정하더라도) 상당한 속도 향상을 기대할 수 있다는 것을 확인할 수 있다. 이들 패턴들을 각각 길이 2 내지 6을 갖는 단순 패턴(simple pattern)이라고 정의한다. 한편, 2개가 넘는 1을 포함하는 패턴들은 너무 드물게 발생하기 때문에 이들 패턴들을 고려할 필요가 없다. 예를 들어, '1'의 고정된 위치에 대하여 다음 2개의 비트들이 모두 1일 확률, 즉 패턴 '111'을 만들 확률은 N = 251, d =48에 대하여 p2 ≒ 0.037로서 매우 작은 값이며, 패턴에 포함되는 1의 개수가 증가할수록 그 확률은 더욱 작은 값을 갖게 된다.Equation 8 and Table 1 show that for the actual parameter sets given in the standard draft of IEEE P1363.1, the distance between two adjacent ones is less than five with a probability of nearly two thirds. Thus, patterns such as '11', '101', '1001', '10001', and '100001' cover significant positions of F (X) and r (X), resulting in a method according to the present invention. It can be seen that a significant speedup can be expected (if the number of '0's included between two adjacent'1's is 4 or less). These patterns are defined as simple patterns each having a length of 2 to 6. On the other hand, patterns containing more than two 1 occur so rarely that it is not necessary to consider these patterns. For example, the probability that the next two bits are all 1 for a fixed position of '1', that is, the probability of creating a pattern '111', is very small, p 2 ≒ 0.037 for N = 251 and d = 48. As the number of 1s included in the pattern increases, the probability has a smaller value.

따라서 컨볼루션 연산의 두 피연산자 중 하나가 이진 다항식이라 할 때, 이 이진 다항식을 비트 스트링으로 표현한 뒤 단순 패턴들 '11', '101', '1001', '10001', '100001'을 찾고 이들의 위치를 저장하면 4.1에서 기술한 계산량 절약 방법에 활용할 수 있다. 구체적으로, 이진 다항식을 나타내는 비트 스트링에서 단순 패턴들 '11', '101', '1001', '10001', '100001'이 나타나는 오른쪽 끝 위치의 인덱스들을 저장하는 배열을 b1, b2, b3, b4, b5라 하자(비트 스트링의 맨 왼쪽 위치를 인덱스 0으로 정의한다). 단, 비트 스트링 내에서 인접한 '1'과의 거리가 멀어 단순 패턴으로 짝지어질 수 없는 격리된 '1'이 존재할 수 있으므로, 이들의 위치를 저장하는 배열을 b0로 정의하기로 하자. 비트 스트링 내의 '1'의 수를 d라 하고, 배열 bi(0 <= i <= 5) 내의 원소의 수를 di라 하면 다음 수학식 9가 성립한다.Therefore, when one of the two operands of the convolution operation is a binary polynomial, the binary polynomial is represented as a bit string and then the simple patterns '11', '101', '1001', '10001' and '100001' are found. Storing the location of can be used for the computational savings method described in 4.1. Specifically, an array storing the indices of the rightmost positions where the simple patterns '11', '101', '1001', '10001', and '100001' appear in the bit string representing the binary polynomial is b 1 , b 2 , Let b 3 , b 4 , and b 5 (define the leftmost position of the bit string at index 0). However, since there may be an isolated '1' in the bit string that cannot be paired with a simple pattern because the distance from the adjacent '1' is far, let 'b' define an array storing these positions as b 0 . If the number of '1' in the bit string is d and the number of elements in the array b i (0 <= i <= 5) is d i , the following equation (9) is established.

d = d0 + 2(d1 + d2 + d3 + d4 + d5)d = d 0 + 2 (d 1 + d 2 + d 3 + d 4 + d 5 )

예를 들면, N=35인 비트 스트링 '10000110010001001010101110001000001'은 '100001 1001 000 1001 0 101 0 11 10001 00000 1'과 같이 구분될 수 있으며, 이 때 배열 bi 및 d, di 값들은 다음과 같이 결정된다.For example, the bit string '10000110010001001010101110001000001' with N = 35 may be divided into '100001 1001 000 1001 0 101 0 11 10001 00000 1', where the arrays b i and d, d i The values are determined as follows.

b0 = [34], b1 = [23], b2 = [20], b3 = [16, 9], b4 = [28], b5 = [5]b 0 = [34], b 1 = [23], b 2 = [20], b 3 = [16, 9], b 4 = [28], b 5 = [5]

d = 13, d0 = 1, d1 = 1, d2 = 1, d3 = 2, d4 = 1, d5 = 1d = 13, d 0 = 1, d 1 = 1, d 2 = 1, d 3 = 2, d 4 = 1, d 5 = 1

4.3 새로운 다항식 4.3 New Polynomials 컨볼루션Convolution 알고리즘 algorithm

4.2에서 제시된 패턴 검색 방법에 의해 단순 패턴들에 대한 위치가 주어지 면, 본 발명에 따른 새로운 다항식 컨볼루션 연산 방법이 사용될 수 있다. 도 2는 본 발명에 따른 다항식 컨볼루션 연산 방법을 구현한 알고리즘의 간단한 형태를 나타내는 도면이다. 본 발명에 따른 알고리즘은 도 1에 도시된 Bailey 등이 제안한 다항식 컨볼루션 연산 방법을 구현한 알고리즘의 개량 버전으로 간주될 수 있다. 이 개량된 알고리즘은 4.2에서 제시된 패턴 검색 방법에 의해 이진 다항식 a(X)의 비트 스트링 표현에서 검색된 단순 패턴들의 위치를 입력으로 받고, 또한 일반 다항식 c(X)를 입력으로 받아 컨볼루션 t(X) = a(X)*c(X)를 계산한다. 단, 알고리즘을 좀 더 일반화할 수 있도록 인자 w를 추가하였는데, 이는 4.2에서의 패턴 검색 방법이 검색하고자 하는 패턴의 최대 길이를 나타낸다. 즉, 4.2에서 기술된 바와 같이 단순 패턴 '11', '101', '1001', '10001', '100001'들을 찾고, 인접한 '1' 사이에 0이 5개 이상 연속되는 패턴은 무시할 경우, w = 6이 된다. 또한, 기술을 간단하게 하기 위하여 단순 패턴을 기호로 p1 = '11', p2 = '101', p3 = '1001', p4 = '10001', p5 = '100001'과 같이 표기하고, 단순 패턴에 포함되지 못한 격리된 '1'을 p0 로 표기하였다. 도 2의 알고리즘에서, 제1행 내지 제8행은 사전 계산 단계로서, 인덱스 계산을 포함하는 2(w - 1)N + (w - 1)번의 정수 덧셈을 필요로 한다. 반면에, 도 2에 도시된 알고리즘의 제9행 내지 제26행은 컨볼루션 단계로서, 2(d0 + d1 + … + dw -1 + 1)N번의 덧셈과 N번의 모듈러 감산을 필요로 한다. 따라서 도 2에 도시된 알고리즘에 요구되는 총 계산량은, 2(d0 + d1 + … + dw -1 + w)N + (w - 1)번 의 덧셈과 N번의 모듈러 감산이다. 도 1에 도시된 기존의 알고리즘이 2(d + 1)N번의 덧셈과 N번의 모듈러 감산을 필요로 했다는 것을 상기해 보자. 일반적으로는 d0 + d1 + … + dw -1 + w는 d + 1보다 훨씬 더 작으므로, 도 2에 도시된 본 발명에 따른 알고리즘에 의한 상당한 속도 향상을 기대할 수 있다.Given a position for simple patterns by the pattern retrieval method presented in 4.2, a new polynomial convolution calculation method according to the present invention can be used. 2 is a diagram illustrating a simple form of an algorithm implementing the polynomial convolution calculation method according to the present invention. The algorithm according to the present invention may be regarded as an improved version of the algorithm implementing the polynomial convolution calculation method proposed by Bailey et al. This improved algorithm takes as input the positions of the simple patterns retrieved from the bit string representation of the binary polynomial a (X) by the pattern retrieval method presented in 4.2, and also accepts the convolution t (X) as input. ) = a (X) * c (X) However, in order to make the algorithm more general, the parameter w is added, which indicates the maximum length of the pattern to be searched by the pattern search method in 4.2. That is, when searching for the simple patterns' 11 ',' 101 ',' 1001 ',' 10001 ', and' 100001 'as described in 4.2, and ignoring a pattern having five or more consecutive zeros between adjacent'1's, w = 6 In addition, to simplify the technique, a simple pattern is written as p 1 = '11', p 2 = '101', p 3 = '1001', p 4 = '10001', p 5 = '100001'. In addition, an isolated '1' not included in the simple pattern was denoted by p 0 . In the algorithm of Fig. 2, rows 1 to 8 are precomputation steps and require integer addition of 2 (w-1) N + (w-1) times including index calculation. On the other hand, rows 9 to 26 of the algorithm shown in FIG. 2 are convolution steps, which require 2 (d 0 + d 1 +… + d w −1 + 1) N additions and N modular subtractions. Shall be. Therefore, the total amount of calculation required for the algorithm shown in Figure 2, 2 (d 0 + d 1 + ... + d w -1 + w) N + (w - 1) is the addition and subtraction of the number N single modular. Recall that the conventional algorithm shown in FIG. 1 required 2 (d + 1) N additions and N modular subtractions. Generally d 0 + d 1 +... Since + d w −1 + w is much smaller than d + 1, a significant speedup can be expected by the algorithm according to the invention shown in FIG. 2.

5. 실험 결과5. Experimental Results

w = 5일 경우, 즉 단순 패턴 '11', '101', '1001', '10001'들만을 이용할 경우, IEEE P1363.1의 표준 초안에서 주어진 다양한 파라미터 집합에 대한 본 발명의 일 실시예에 따른 실험 결과는 다음 표 2와 같다.When w = 5, i.e., using only the simple patterns '11', '101', '1001', and '10001', one embodiment of the present invention for various parameter sets given in the standard draft of IEEE P1363.1 Experimental results are shown in Table 2 below.

파라미터 집합Parameter set (N, p, q, dF = dr)(N, p, q, dF = dr) 기존 알고리즘Existing Algorithm 본 발명에 따른 알고리즘Algorithm according to the present invention 암호화encryption 복호화Decrypt 암호화encryption 복호화Decrypt ees251ep6ees251ep6 (251, 2, 197, 48)(251, 2, 197, 48) 10431043 10451045 766766 783783 ees347ep2ees347ep2 (347, 2, 269, 66)(347, 2, 269, 66) 19371937 20012001 13801380 13921392 ees397ep1ees397ep1 (397, 2, 307, 74)(397, 2, 307, 74) 25102510 25232523 17831783 17961796 ees491ep1ees491ep1 (491, 2, 367, 91)(491, 2, 367, 91) 37603760 37963796 26492649 26502650 ees587ep1ees587ep1 (587, 2, 439, 108)(587, 2, 439, 108) 53275327 53795379 36853685 37423742 ees787ep1ees787ep1 (787, 2, 587, 140)(787, 2, 587, 140) 93439343 94199419 64206420 64086408

표 2는, 1.0GB RAM을 갖는 펜티엄 4 3.0GHz CPU 상에서의 NTRU 암호화 및 복호화 연산의 성능을 기존의 알고리즘(도 1에 도시된 알고리즘)과 본 발명에 따른 알고리즘(도 2에 도시된 알고리즘)을 비교하여 보여준다. C 언어와 Microsoft Visual Studio .NET 1.0 환경이 사용되었다. 표 2의 제3열 및 제4열은 각각, 기존의 알고리즘을 사용하여 암호화 및 복호화를 수행하기 위해 요구되는 시간을 표시한 것이며, 단위는 마이크로초(μsec)이다. 제5열 및 제6열은 본 발명에 따른 알고리즘을 사용하는 경우에 요구되는 시간을 표시한다. 표 2의 실험 결과 값들로부터, 본 발명에 따른 알고리즘이 기존의 알고리즘에 비해 연산 속도를 25% 내지 32%만큼 향상시키는 것을 확인할 수 있다.Table 2 shows the performance of NTRU encryption and decryption operations on a Pentium 4 3.0 GHz CPU with 1.0 GB RAM. Show by comparison. The C language and the Microsoft Visual Studio .NET 1.0 environment were used. The third column and the fourth column of Table 2 indicate the time required for performing encryption and decryption using an existing algorithm, respectively, and the unit is microsecond (μsec). Columns 5 and 6 indicate the time required when using the algorithm according to the present invention. From the experimental results of Table 2, it can be seen that the algorithm according to the present invention improves the calculation speed by 25% to 32% compared to the conventional algorithm.

이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.The present invention described above may be variously modified or applied by those skilled in the art, and the scope of the technical idea according to the present invention should be defined by the following claims.

본 발명의 다항식 컨볼루션 연산 방법에 따르면, 임의선택 가능한 다항식의 계수들을 이진 계수들로 선택한 후, 상기 선택된 계수들에서 그 사이에 소정의 개수 이하의 '0'을 갖는 2개의 '1'을 포함하는 단순 패턴(simple pattern)들을 '1'을 서로 공유하지 않도록 검색하여 그에 대응하는 모든 조합 값들을 미리 계산하여 저장해 두고, 실제 컨볼루션 연산에서 단순 패턴이 사용되는 경우 미리 저장된 값을 참조하는 것에 의해 덧셈 계산을 대신함으로써, NTRU 암호화 및 복호화에서의 다항식 컨볼루션 연산의 속도를 대폭 향상시킬 수 있다.According to the polynomial convolution calculation method of the present invention, after selecting the coefficients of the arbitrarily selectable polynomial as binary coefficients, the selected coefficients include two '1's having a predetermined number or less' 0' therebetween. Simple patterns are searched so that '1' is not shared with each other, and all the corresponding combination values are calculated and stored in advance. By substituting addition calculations, the speed of polynomial convolution operations in NTRU encryption and decryption can be greatly improved.

Claims (3)

NTRU 암호화 및 복호화에서, 제1 다항식('공개 키' 또는 '암호문'에 해당함)과 임의선택 가능한 제2 다항식과의 컨볼루션(convolution) 연산 방법으로서,In NTRU encryption and decryption, as a convolution operation method of a first polynomial (corresponding to a 'public key' or 'password') and a second polynomial that can be arbitrarily selected, (1) 임의선택 가능한 상기 제2 다항식의 계수들을 이진 계수('0' 또는 '1')들로 선택하는 제1 단계;(1) a first step of selecting randomly selectable coefficients of the second polynomial as binary coefficients ('0' or '1'); (2) 상기 제1 단계에서 선택된 상기 이진 계수들을 나열한 비트스트링에서, 2개의 '1'을 포함하고, 상기 2개의 '1' 사이에 소정의 개수 이하의 '0'을 포함하는 단순 패턴(simple pattern)들을 '1'을 서로 공유하지 않도록 검색하는 제2 단계;(2) a simple pattern including two '1's in a bitstring enumerating the binary coefficients selected in the first step and having a predetermined number or less' 0's between the two '1s' searching for patterns) so that they do not share '1' with each other; (3) 상기 제2 단계에서 검색된 단순 패턴들을, 포함하고 있는 '0'의 개수에 따라 분류하는 제3 단계;(3) a third step of classifying the simple patterns searched in the second step according to the number of '0's included; (4) 상기 제3 단계에서 분류된 각각의 단순 패턴에 대하여, 상기 제1 다항식의 계수들과 발생될 수 있는 모든 조합 값들을 미리 계산하여 그 값을 저장하는 제4 단계; 및(4) a fourth step of, for each simple pattern classified in the third step, pre-calculating the coefficients of the first polynomial and all possible combination values and storing the values; And (5) 상기 제1 다항식과 상기 제2 다항식의 컨볼루션 연산에서, 특정 단순 패턴이 사용되는 경우에, 상기 제4 단계에서 상기 특정 단순 패턴에 대응하여 저장된 값을 참조하는 것에 의해 계산을 대신하는 제5 단계(5) In a convolution operation of the first polynomial and the second polynomial, when a specific simple pattern is used, the fourth step replaces the calculation by referring to a stored value corresponding to the specific simple pattern. 5th step 를 포함하는 방법.How to include. 제1항에 있어서,The method of claim 1, 상기 제3 단계에서, 특정 분류에 속하는 단순 패턴의 개수가 1개일 경우 상기 특정 분류를 삭제하는 방법.In the third step, if the number of simple patterns belonging to a specific classification is one, the method of deleting the specific classification. 제1항 또는 제2항에 있어서,The method according to claim 1 or 2, 상기 제2 단계에서, 소정의 개수를 4로 설정하는 방법.In the second step, setting a predetermined number to four.
KR1020070045297A 2007-05-10 2007-05-10 A method for calculating a polynomial convolution operation for ntru encryption and decryption KR100742093B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070045297A KR100742093B1 (en) 2007-05-10 2007-05-10 A method for calculating a polynomial convolution operation for ntru encryption and decryption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070045297A KR100742093B1 (en) 2007-05-10 2007-05-10 A method for calculating a polynomial convolution operation for ntru encryption and decryption

Publications (1)

Publication Number Publication Date
KR100742093B1 true KR100742093B1 (en) 2007-07-24

Family

ID=38499385

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070045297A KR100742093B1 (en) 2007-05-10 2007-05-10 A method for calculating a polynomial convolution operation for ntru encryption and decryption

Country Status (1)

Country Link
KR (1) KR100742093B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230082783A (en) 2021-12-02 2023-06-09 조선대학교산학협력단 Polynomial inverse generating apparatus and method for an encryption system that encrypts and decrypts data using polynomials
KR20230082789A (en) 2021-12-02 2023-06-09 조선대학교산학협력단 Inverse generating apparatus and method for generating the inverse of a polynomial used in an encryption system that performs encryption/decryption of data using a polynomial

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02204A (en) * 1987-12-21 1990-01-05 Forest Lab Inc Lasting release drug administration system containing hydroxypropyl methyl cellulose and alkali metal carboxylate
US6081597A (en) 1996-08-19 2000-06-27 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
KR20030043448A (en) * 2001-11-28 2003-06-02 한국전자통신연구원 apparatus for NTRU Cryptosystem
US7031468B2 (en) 2000-08-29 2006-04-18 Ntru Cryptosystems, Inc. Speed enhanced cryptographic method and apparatus
KR20070011293A (en) * 2004-05-12 2007-01-24 마쯔시다덴기산교 가부시키가이샤 Encryption system, encryption device, decryption device, program, and integrated circuit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02204A (en) * 1987-12-21 1990-01-05 Forest Lab Inc Lasting release drug administration system containing hydroxypropyl methyl cellulose and alkali metal carboxylate
US6081597A (en) 1996-08-19 2000-06-27 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
US7031468B2 (en) 2000-08-29 2006-04-18 Ntru Cryptosystems, Inc. Speed enhanced cryptographic method and apparatus
KR20030043448A (en) * 2001-11-28 2003-06-02 한국전자통신연구원 apparatus for NTRU Cryptosystem
KR20070011293A (en) * 2004-05-12 2007-01-24 마쯔시다덴기산교 가부시키가이샤 Encryption system, encryption device, decryption device, program, and integrated circuit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문(2002.04.)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230082783A (en) 2021-12-02 2023-06-09 조선대학교산학협력단 Polynomial inverse generating apparatus and method for an encryption system that encrypts and decrypts data using polynomials
KR20230082789A (en) 2021-12-02 2023-06-09 조선대학교산학협력단 Inverse generating apparatus and method for generating the inverse of a polynomial used in an encryption system that performs encryption/decryption of data using a polynomial

Similar Documents

Publication Publication Date Title
Coppersmith Small solutions to polynomial equations, and low exponent RSA vulnerabilities
KR101255393B1 (en) Elliptic curve point multiplication
Ernst et al. Partial key exposure attacks on RSA up to full size exponents
Cheon et al. Need for controllers having integer coefficients in homomorphically encrypted dynamic system
US8862651B2 (en) Method and apparatus for modulus reduction
TW200817999A (en) Multiplying two numbers
US20100067690A1 (en) Spa-resistant left-to-right recoding and unified scalar multiplication methods
JP2006276786A (en) Calculating method, calculating device, and computer program
CN101911009B (en) Countermeasure method and devices for asymmetrical cryptography with signature diagram
CN113472525B (en) Low-memory-occupation secret key generation method based on post-quantum cryptography Saber algorithm, encryption and decryption method and system thereof
KR100742093B1 (en) A method for calculating a polynomial convolution operation for ntru encryption and decryption
Amutha et al. Public key exchange protocols based on tropical lower circulant and anti circulant matrices
Lu et al. Factoring multi-power RSA modulus N= prq with partial known bits
Ebeid et al. On binary signed digit representations of integers
US11343070B2 (en) System and method for performing a fully homomorphic encryption on a plain text
JP3907976B2 (en) Arithmetic apparatus and arithmetic method using SPN structure in F function
Chevallier-Mames et al. Linear bandwidth naccache-stern encryption
RU2188513C2 (en) Method for cryptographic conversion of l-bit digital-data input blocks into l-bit output blocks
KR20210061194A (en) Method and apparatus for public-key cryptography based on structured matrices
Lau et al. A new encryption scheme based on rank metric codes
Kolokotronis Cryptographic properties of stream ciphers based on T-functions
Samardjiska et al. An encryption scheme based on Random Split of St-Gen codes
Mani et al. Enhancing the security in cryptosystems based on magic rectangle
JP4200259B2 (en) Public key generation device, encryption device, and decryption device
KR102600166B1 (en) Inverse generating apparatus and method for generating the inverse of a polynomial used in an encryption system that performs encryption/decryption of data using a polynomial

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130527

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140612

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150423

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160715

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180711

Year of fee payment: 12