KR101213399B1 - 비트-병렬 다항식 기저 곱셈 방법 - Google Patents
비트-병렬 다항식 기저 곱셈 방법 Download PDFInfo
- Publication number
- KR101213399B1 KR101213399B1 KR1020090085148A KR20090085148A KR101213399B1 KR 101213399 B1 KR101213399 B1 KR 101213399B1 KR 1020090085148 A KR1020090085148 A KR 1020090085148A KR 20090085148 A KR20090085148 A KR 20090085148A KR 101213399 B1 KR101213399 B1 KR 101213399B1
- Authority
- KR
- South Korea
- Prior art keywords
- polynomial
- bit
- case
- iterative
- equation
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명은 유한체(Finite Field)상에서 비트-병렬 다항식 기저 곱셈을 위한 기약다항식(irreducible polynomial)으로서 반복형 기약다항식(RFP: Repeated Form Polynomial)을 이용하는 비트-병렬 다항식 기저 곱셈 방법에 관한 것이다.
본 명세서에서 개시하는 비트-병렬 다항식 기저 곱셈 방법은 유한체(finite field)상에서의 비트-병렬 다항식 기저 곱셈을 위한 기약다항식 f(x)가 , deg(l(x)) ≤ v, deg(p(x)) < s을 만족하는지의 여부로 상기 f(x)가 반복형 기약다항식임을 판단하여 비트-병렬 다항식 기저 곱셈이 이루어진다. f(x)가 반복형 기약다항식임을 판단하는 것은 (a)상기 유한체상의 임의의 다항식 에 대해 xs = q(x)p(x) + 1을 만족하는 최소의 양의 정수 s와 상기 p(x)가 존재하는지 판단하는 단계; (b)상기 p(x)가 존재하는 경우, 상기 q(x)와 상기 유한체상의 임의의 다항식 h(x)에 대하여 을 만족하는 최소의 양의 정수 n0와 다항식 가 존재하는지 판단하는 단계; 및 (c)상기 n0와 상기 가 존재하는 경우, 상기 f(x)의 차수(degree) n에 대하여 xn+r = q(x)f(x) + h(x)를 만족하는지 판단하는 단계를 포함하여 이루어진다.
Description
본 발명은 비트-병렬 다항식 기저 곱셈 방법에 관한 것으로, 보다 상세하게는 유한체(Finite Field)상에서 비트-병렬 다항식 기저 곱셈을 위한 기약다항식(irreducible polynomial)으로서 반복형 기약다항식(RFP: Repeated Form Polynomial)을 이용하는 비트-병렬 다항식 기저 곱셈 방법에 관한 것이다.
암호 시스템에 적용되는 유한체에서 주로 사용되는 기약다항식은 All One Polynomial(AOP), Equally Spaced Polynomial(ESP), 삼항 기약다항식(Trinomial), 오항 기약다항식(Pentanomial)이 있다. 유한체의 특정 차수(degree)에서 비트-병렬 다항식 기저 곱셈의 효율성(곱셈 소요시간 및 곱셈에 필요한 게이트 수)을 고려한 기약다항식의 순서는 위와 같다. 그러나 암호 알고리즘에서 사용되는 유한체의 차수는 대부분 소수(prime number)이므로 AOP와 ESP는 거의 사용되지 않으며, 대부분 Trinomial과 Pentanomial이 사용된다.
유한체의 차수가 1000 이하인 것들 중 443개의 차수에 대해서는 AOP, ESP, Trinomial을 사용할 수 없고 Pentanomial만 사용할 수 있었는데, Pentanomial을 사 용함으로써 야기되는 곱셈의 비효율성을 개선하기 위해 Pentanomial 아닌 세 가지 종류의 기약다항식이 제안된 바 있다(H. Wu, "Bit-Parallel polynomial Basis Multiplier for New Classes of Finite Fields," IEEE Trans. Computers, vol. 57, no. 8). 그러나 제안된 기약다항식은 Pentanomial보다 효율적이지만 상기 443개의 차수 중 10개의 차수에 대해서만 사용할 수 있다. 따라서 나머지 433개의 차수에 대해서는 여전히 비효율적인 Pentanomial을 사용할 수밖에 없다. 특히 이 433개의 차수를 갖는 유한체(다항식)은 암호 시스템에서 많이 활용되는 차수가 많이 포함되어 있는바, 상기와 같은 문제는 결국 암호 시스템의 효율적 구현에 장애가 된다.
본 발명이 해결하고자 하는 과제는 유한체의 차수가 1,000 이하인 차수 중에서 Pentanomial을 사용하는 경우보다 더 효율적이고 아울러 상기 443개의 차수에 사용될 수 있는 반복형 기약다항식을 이용한 비트-병렬 다항식 기저 곱셈 방법을 제공하는 것이다.
상기와 같은 과제를 해결하기 위해 본 명세서에서 개시하는 비트-병렬 다항식 기저 곱셈 방법에 의하면
유한체(finite field)상에서의 비트-병렬 다항식 기저 곱셈을 위한 기약다항식 f(x)가 , deg(l(x)) ≤ v, deg(p(x)) < s을 만족하는 지의 여부로 상기 f(x)가 반복형 기약다항식임을 판단하여 비트-병렬 다항식 기저 곱셈이 이루어진다. f(x)가 반복형 기약다항식임을 판단하는 것은 (a)상기 유한체상의 임의의 다항식 에 대해 xs = q(x)p(x) + 1을 만족하는 최소의 양의 정수 s와 상기 p(x)가 존재하는지 판단하는 단계; (b)상기 p(x)가 존재하는 경우, 상기 q(x)와 상기 유한체상의 임의의 다항식 h(x)에 대하여 을 만족하는 최소의 양의 정수 n0와 다항식 가 존재하는지 판단하는 단계; 및 (c)상기 n0와 상기 가 존재하는 경우, 상기 f(x)의 차수(degree) n에 대하여 xn+r = q(x)f(x) + h(x)를 만족하는지 판단하는 단계를 포함하여 이루어진다.
이때, 상기 r은 1로 하고, 상기 h(x)의 0이 아닌 항의 개수를 3으로 하는 것이 본 발명의 과제를 해결함에 바람직하다. 또는 상기 r은 2 이상 8 이하로 하고, 상기 h(x)의 0이 아닌 항의 개수를 2 또는 3으로 하는 것이 본 발명의 과제를 해결함에 바람직하다.
본 발명에서 제안하는 반복형 기약다항식을 이용한 비트-병렬 다항식 기저 곱셈 방법에 의하면, 특히 유한체의 차수가 1000 이하의 차수 중 AOP, ESP, Trinomial을 사용할 수 없는 443개의 차수에 대해서도 모두 적용가능 하므로, 이들 443개의 차수에 대해 오항 기약다항식을 적용함으로써 야기되었던 곱셈의 비효율성을 개선시킬 수 있다. 즉, 차수 n인 반복형 기약다항식을 사용하는 경우 오항 기약다항식을 사용하는 경우보다 대략 n개의 XOR 게이트 수(공간 복잡도)를 줄일 수 있고, XOR 게이트의 Time Delay를 현저히 줄일 수 있어 비트-병렬 다항식 기저 곱셈 연산에 소요되는 시간을 획기적으로 줄일 수 있다. 따라서 상기 443개의 차수에 오항 기약다항식을 적용함으로써 야기되었던 비트-병렬 다항식 기저 곱셈의 비효율성을 개선시킬 수 있다.
이하, 본 발명이 해결하고자 하는 과제의 해결 방안을 명확하게 하기 위한 발명의 구성을 본 발명의 바람직한 실시예에 근거하여 첨부 도면을 참조하여 상세히 설명하되, 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여하였으며 당해 도면에 대한 설명시 필요한 경우 다른 도면의 구성요소를 인용할 수 있음을 미리 밝혀둔다. 아울러 본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명 그리고 그 이외의 제반 사항이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 상세한 설명을 생략한다.
1. 제안하는 반복형 기약다항식
유한체에서 비트-병렬 다항식 기저 곱셈의 효율성을 고려한 기약다항식의 순서는 상기한 바와 같이 ESP, Trinomial, Pentanomial의 순서를 가지며, 유한체의 차수(n, degree)가 정해지면 상기의 순으로 기약다항식을 선택하여 사용하게 된다. 그러나 n이 1000 이하인 경우에는 77개의 n에서만 ESP를 사용할 수 있고 543개의 n에서만 Trinomial을 사용할 수 있으며, ESP와 Trinomial을 같이 사용할 수 있는 경우까지 고려하면 총 557개의 n에서만 ESP 또는 Trinomial을 사용할 수 있으므로 나머지 443개의 n에서는 가장 비효율적인 Pentanomial을 사용하여야 한다. 따라서 본 발명에서는 이러한 문제를 해결하기 위해 Pentanomial을 사용하는 경우보다 효율적인 새로운 기약다항식 즉 반복형 기약다항식을 제안한다.
이 반복형 다항식은 s-ESP를 포함하며, 임의의 다항식 가 주어졌을 때 식 xn+r = h(x) mod f(x)를 만족하는 f(x)가 RFP임을 보이기 위하여 다음의 정리(theorem)들을 이용한다.
<Theorem 1> 위에서 임의의 다항식 에 대하여 xs = q(x)p(x) + 1을 만족하는 최소의 양의 정수 s와 다항식 p(x)가 존재할 때, 임의 의 양의 정수 m에 대하여 xm이 xm = q(x)pm(x) + 1을 만족하면 양의 정수 i에 대하여 m = i·s이다.
Proof of Theorem 1) xm = q(x)pm(x) + 1을 만족하는 m의 순서집합(ordered set)을 라 하자. 그러면 가정에 의하여 순서집합 의 최소값(m0)은 s이다. 다음으로 s보다 큰 순서집합 의 최소값을 m1라 하면 이므로 F2[x]에서,
이다.
이때 가정에 의하여 이므로 m1-s는 의 원소이다. m1은 s보다 큰 순서집합 의 최소값이며, m1 > m1 -s = s 이므로 m1 = 2s이고 이를 일반화하면 mi = i·s이다. 즉, 순서집합 의 원소는 양의 정수 i에 대하여 m = i·s이다.
<Theorem 2> 상기 다항식 q(x)와 임의의 다항식 h(x)에 대하여 을 만족하는 최소의 양의 정수 n0와 다항식 가 존재하면, 임의의 n에 대하여 xn+r = q(x)f(x) + h(x)를 만족하는 f(x)는 또는 인 반복형 다항식이다.
Proof of Theorem 2) 를 만족하는 ni의 순서집합을 라 하자. 가정에 의하여 을 만족하는 최소 양의 정수 n0와 다항식 가 존재하고, 의 원소인 n0보다 큰 최소값을 n1이라 하면 이다. 그러면 이고 <Theorem 1>에서 이므로 이다. 따라서 <Theorem 1>에 의하여 n1-n0는 i·s이며 n1이 n0보다 큰 최소값이므로 n1-n0=s이다. 실제로
이고, 순서집합 의 원소에 대하여 일반화하면 ni+1-ni=s이다. 따라서 이다. 다음으로 이므로 와 (n0+r)을 각각 , n0+r=v라 하면 이다. 따라서 <Theorem 1>의 다항식 q(x)와 임의의 다항식 h(x)(∈F2[x])에 대하여, xn+r = q(x)f(x) + h(x)를 만족하는 임의의 n이 존재하면 f(x)는 또는 인 반복형 다항식이다.
2. RFP를 이용한 비트-병렬 다항식 기저 곱셈
상기 <Theorem 2>로부터 임의의 q(x), h(x)에 대하여 xn+r = q(x)f(x) + h(x) => xn+r = h(x) mod f(x)를 만족하는 최소 차수의 가 주어졌을 때, xn+r = q(x)f(x) + h(x)를 만족하는 나머지 f(x)는 모두 와 p(x)를 이용한 반복형 기약다항식임을 알 수 있다. 반복형 기약다항식 f(x)에 의하여 정의된 의 임의의 두 원소를 a(α),b(α)라 하고, f(x)가 <Theorem 2>를 만족한다면 x n + r ≡ h(x) mod f(x)이다. 따라서
이다.
이때, 만약 deg(h(x)αi-r)≥n이면, h(x)αi-r는 모듈러 감산(modulo reduction)되어야 한다. 따라서 c(α)=a(α)·b(α)는 f(x)에 의하여 다음과 같다.
이때, 만약 deg(h(x))≥r+2이면 식(2.2)은 다시 모듈러 감산되어야 한다. 감산행렬 T에서 식(2.2)과 같이 h(x)로 표현되는 행을 REDUCTION BLOCK2라 하고 나머지 행을 REDUCTION BLOCK1라고 하면 RFP의 감산행렬 T는 도 1과 같다. c(α)의 계산에서 REDUCTION BLOCK1의 효율성은 h(x)의 0이 아닌 비트수에 의존하고 REDUCTION BLOCK2의 효율성은 h(x)와 r에 의존한다.
본 발명이 제안하는 반복형 기약다항식을 이용하여 식(2)의 간단한 예를 들면 다음과 같다.
q(x), h(x)(∈F2[x])를 각각 q(x)=x3+x2+x+1, h(x)=x5+x2+1이라 하면, x4+3=q(x)(x4+x3+x2+x+1)+h(x)이므로, <Theorem 2>에 의하여 이고, xn=q(x)f(x)+h(x)를 만족하는 반복형 기약다항식 f(x)는
3. 효율적인 RFP와 그 비트-병렬 다항식 기저 곱셈의 복잡도
오항 기약다항식 을 이용한 비트-병렬 다항식 기저 곱셈기의 복잡도는 도 2에 제시되어 있다. 도 2를 통해 알 수 있듯이, 본 오항 기약다항식을 이용하는 경우에 비트-병렬 다항식 기저 곱셈기의 AND 게이트 수(# AND)는 모두 n2이며, [k1=1 이고 k3-k2=1]인 경우를 제외하면 비트-병렬 다항식 기저 곱셈을 위한 XOR 게이트 수(#XOR)와 시간 지연(Time Delay, 시간 복잡도(Time Complexity))은 3가지 경우로 구분된다. 따라서 본 발명에서 제안하는 반복형 기약다항식이 오항 기약다항식보다 차수에 따라 시간 또는 공간 복잡도 측면에서 더 효율적이기 위해서 요구되는 XOR 게이트 수(#XOR)와 시간 복잡도(Time Complexity)는 다음의 3 경우(Case 1, Case 2, Case 3)와 같다.
TA는 AND 게이트의 게이트 지연(gate delay)을, TX는 XOR 게이트의 게이트 지연을 의미한다. 이때, 상기 배경기술에서 소개된 세 가지 타입의 RFP는 Case 1에 속한다(이때, 2r+2 < k1 < (n+3r+1)/2).
본 발명이 제안하는 RFP를 이용한 비트-병렬 다항식 기저 곱셈 방법에 의한 시간 복잡도 및 공간 복잡도를 제시하면 다음과 같다.
h(x)의 0이 아닌 항(non-zero term)의 개수를 H(h(x))라 하면, RFP 기반의 비트-병렬 다항식 기저 곱셈의 효율성은 다항식 q(x)의 차수 r과 H(h(x))에 의존한다. 따라서 효율적인 비트-병렬 다항식 기저 곱셈을 위한 r과 h(x)에 대하여 고려 하여야 한다.
우선 임의의 r에 대하여 h(x)=1인 경우를 살펴보면, 이 경우 RFP 는 <Theorem 2>의 증명에 의해 는 <Theorem 1>의 p(x)가 된다. 따라서 p(x)=l(x)이고 항상 이다. 결국 p(x)가 1이 아닌 경우 f(x)는 기약다항식이 될 수 없으며, p(x)=1인 경우 f(x)는 ESP가 된다. 따라서 p(x)=1인 경우를 제외하면 임의의 r에 대하여 최소 해밍 웨이트(hamming weight)인 H(h(x))=2인 경우가 가장 효율적이다.
다음으로 H(h(x))=2인 경우의 r을 살펴보면 다음과 같다. r=1인 경우 <Theorem 2>에서 q(x)는 가정에 의하여 q(x) = x+1이다. 따라서 xn+r + h(x) = q(x)f(x)에서 q(x)f(x)의 해밍 웨이트는 항상 짝수이다. 그러나 (xn+r + h(x))의 해밍 웨이트는 항상 홀수이므로 r=1과 H(h(x))=2를 만족하는 f(x)는 존재할 수 없다. 따라서 H(h(x))=2인 경우에는 r이 2 이상인 경우에만 반복형 기약다항식 f(x)가 존재한다.
그러면 r과 H(h(x))의 최대값을 고려해야 하는데, 이에 대해서는 다음과 같다. r이 9 이상인 경우는 식(2.1)의 계산에서만 3·TX가 소요되어 위에서 정의한 Case를 만족할 수 없다. 또한 H(h(x))가 4 이상인 경우는 식(2.2)가 다시 모듈러 감산되지 않는다 하여도 #XOR ≥ n2+3n이 되어 역시 상기 Case를 만족할 수 없다. 따라서 Case 1 내지 Case 3을 모두 만족하는 조건(r과 H(h(x))의 범위)은 다음과 같다.
[r=1 이고 H(h(x))=3] 또는 [2≤r≤8 이고 2≤H(h(x))≤3].
r과 H(h(x))에 따른(각 Case에 따른) RFP와 그 비트-병렬 다항식 기저 곱셈기의 공간 및 시간 효율성(공간 및 시간 복잡도)을 상기 각 Case에 대해 살펴보면 다음과 같다. 이하에서, 에서 u > v 또는 u < 0인 경우 이다.
3.1. Case 1인 경우
1) r=2 이고 H(h(x))=2인 경우
H(h(x))=2이므로 이다. 도 3의 (a)의 REDUCTION BLOCK1의 임의의 열에서 1의 개수가 네 개 이하가 되어야 3·TX내에 곱셈 연산이 가능하므로 k1의 범위는 k1≤(n+5)/2이다. 따라서 k1이 최대일 때(=(n+5)/2), 식(2) 내지 식(2.2)는 다음과 같이 전개된다.
따라서 모듈러 감산에 소요되는 XOR 게이트 수(공간 복잡도)는 식(3.1)에서 (n-k1+2)개, 식(3.2)에서 2개, 식(3.3)에서 (k1-3)개, 식(3.1)+식(3.3)에서 (n-3)개, (식(3.1)+식(3.3))+식(3.2)에서 최대 n개이므로 전체 (3n-2)개이다.
시간 복잡도의 경우 식(3.1)+식(3.3) 계산에서 2·TX가 필요하고, 식(3.2)의 ()에서 1·Tx와 t0,j + t1,j에서 1·Tx가 소요되므로 2·Tx가 소요된다. 따라서 모듈러 감산에서 최대 (3n-5)개의 XOR 게이트와 3·Tx가 추가적으로 필요하다.
2) r=3 이고 H(h(x))=2인 경우
도 3의 (a)의 REDUCTION BLOCK1의 임의의 열에서 1의 개수가 네 개 이하가 되어야 3·Tx내에 곱셈 연산이 가능하므로 k1의 범위는 6보다 작다. 따라서 라 하고, k1의 최대값을 5로 가정하면 식(2) 내지 식(2.2)은 다음과 같이 전개된다.
식(4.1)의 REDUCTION BLOCK1 의 XOR 게이트 수를 ε이라 하면 0 < ε < 2r-r 이다. 따라서 식(4.1)은 최대 4개(δ=1인 경우는 5개)의 XOR 게이트로 계산되며 식(4.2)는 [n-4+(n-3)](δ=1인 경우 n-4)개의 XOR 게이트로 계산되고, 식(4.1)+식(4.2)은 n개의 XOR 게이트로 계산되므로 모듈러 감산에서 최대 (3n-3)개의 XOR 게이트가 필요하다. 시간 복잡도의 경우 식(4.1)과 식(4.2)은 2·Tx내에 계산되므로 3·Tx의 시간 지연이 발생한다.
3) r=4 이고 H(h(x))=2인 경우
이 경우는 상기한 경우들과 마찬가지로 전개되므로 결과만 정리하면,
r=4, k1<6인 경우 #AND = n2, #XOR = n2+n+ε-10, Time Delay = TA+[log2(n)+3]TX이다. r>4인 경우 REDUCTION BLOCK1의 시간 지연만 3·Tx가 되어 Case 1에 해당하지 않는다.
결론적으로 RFP는 다음의 경우이어야 Case 1을 만족한다.
a) r=2, H(h(x))=2, k1 < (n+6)/2.
b) r=3, H(h(x))=2, k1 < 6.
c) r=4, H(h(x))=2, k1 < 6.
3.2. Case 2인 경우
1) r=2 이고 H(h(x))=2인 경우
우선 공간 복잡도(필요한 #XOR)를 살펴본다. 식(5.3)의 (d)의 (n-k1+2)개의 XOR 게이트로 (a), (b), (f), (g)는 모두 계산되고 식(5.3)의 (c)의 (-n+2k1-7)개의 XOR 게이트로 (e)가 계산된다. 식(5.1)은 3개의 XOR 게이트로 계산되며, 식(5.2)은 (n-k1+2)개의 XOR 게이트로 계산된다. 따라서 식(5.3)+식(5.4)은 연산량이 없으며 식(5.1)+식(5.2)는 n개의 XOR 게이트, (식(5.1)+식(5.2))+(식(5.3)+식(5.4))는 (n-5)개의 XOR 게이트로 계산되므로 모듈러 감산은 (3n-5)개의 XOR 게이트로 계산되며 전체적으로 n2개의 AND 게이트와 (n2+n-4)개의 XOR 게이트가 소요된다.
다음으로 시간 복잡도를 살펴본다. 식(5.1)의 계산에서 3·Tx, 식(5.2)의 계산에서 1·Tx, 식(5.3)+식(5.4)의 계산에서 2·Tx가 소요되므로, 모듈러 감산에 있어서 4·Tx가 추가적으로 필요하다.
2) r=3, H(h(x))=2, 6 ≤ k1 ≤ (n+7)/2 인 경우
k1이 최대 즉 k1=(n+7)/2이면, 식(2) 내지 식(2.2)은 다음과 같이 전개된다.
우선 공간 복잡도(필요한 #XOR)를 살펴본다. 식(6.1)의 계산에서 (ε+3)개의 XOR 게이트 계산, (a)의 계산에서 (2n-3k1+10)개의 XOR 게이트 계산 및 (c)의 (k1-7)개의 XOR 게이트 계산에 의해 (d)는 계산되었으므로 연산량이 없다. 그리고 (a)+(b)는 (2k1-14)개의 XOR 게이트로, 식(6.1)+((a)+(b))는 n개의 XOR 게이트로 계산되므로 모듈러 감산에서 (3n+ε-8)개의 XOR 게이트가 소요된다.
다음으로 시간 복잡도를 살펴보면, 식(6.1)에서 3·Tx, (a)+(b)에서 3·Tx 시간 지연이 발생되므로 모듈러 감산에서 4·Tx가 소요된다.
3) r=4, H(h(x))=2, 6 ≤ k1 ≤ (n+9)/2 인 경우
k1이 최대 즉 k1=(n+9)/2이면, 식(2) 내지 식(2.2)은 다음과 같이 전개된다.
우선 공간 복잡도(필요한 #XOR)를 살펴보면, 식(7.1)의 계산에서 (ε+3)개의 XOR 게이트 계산, (a)의 계산에서 (2n-3k1+13)개의 XOR 게이트 계산 및 (k1-7)개의 XOR 게이트 계산에 의해 (d)는 계산되었으므로 연산량이 없다. 그리고 (a)+(b)에서 (2k1-18)개의 XOR 게이트, 식(7.1)+((a)+(b))에서 n개의 XOR 게이트로 계산되므로 모듈러 감산에서 (3n+ε-10)개의 XOR 게이트가 소요된다.
다음으로 시간 복잡도를 살펴보면, 식(7.1)에서 3·Tx, (a)+(b)에서 3·Tx, 시간 지연이 발생되므로 모듈러 감산에서 4·Tx가 소요된다.
위에서 가정한 경우 보다 k1이 큰 경우 REDUCTION BLOCK 1의 계산에만 4·Tx가 소요되므로 상기 어느 Case에도 해당하지 않는다. Case 2에 해당하기 위해서는 REDUCTION BLOCK 1의 행의 개수가 8 이하가 되어야 한다. 식 (2.1)의 REDUCTION BLOCK 1에서 행 개수는 r이며, 식 (2.2)는 이므로 (n-r-2+k1)-(n-1)+r ≤ 8이다. 따라서 r > 4인 경우 Case 2를 만족하기 위해서는 r < 9이고 k1은 9 이하여야 한다. 이 경우 모듈러 감산의 공간 복잡도는 2(n-r-2)+ε+n=(3n-2r+ε-4)개의 XOR 게이트이고 추가되는 시간 복잡도는 4·Tx이다. 따라서 다음 RFP만 Case 2를 만족한다.
d) 4 < r < 9, H(h(x)) = 2, k1 ≤ 9.
3.3. Case 3인 경우
1) r=1, H(h(x))=3 인 경우
(a1)+(a2)는 k1 > k2이므로,
(b1)+(b2)와 (c1)+(c2)는
또한 식(9)와 (d)의 합은
이고, 위의 내용을 적용하여 식(8)을 정리하면 다음과 같다.
식(10.1)의 와 는 각각 log2(k1-1)TX, log2(k2-1)TX의 시간 지연을 가지므로 가정 2k1 < n+4에 의하여 모두 log2(n/2)TX보다 작은 계산시간을 가지며 ()는 Sn-1과 동시에 계산되므로 식(10.1)의 계산은 1·TX에 계산 가능하다. 또한 식(10.2) 내지 식(10.4)은 모두 1·TX에 계산되므로 식(10.1) 내지 식(10.4)의 시간지연은 1·TA+([log2n]+3)TX이다.
다음으로 공간 복잡도를 살펴보면, 식(10.2)+식(10.3)은 [(n-k1+l)+(k2-3)+(n-k1)+(n-2k1+3)+(k2-3)]개의 XOR 게이트와 2(k1-3)개의 XOR 게이트의 합이므로 전체 (3n-2k1+2k2-8)개의 XOR 게이트로 연산된다. 또한 식(10.1)은 2개의 XOR 게이트로 연산되며, 식(10.4)은 식(10.3)에서 계산되어 연산량이 없으므로 (식(10.2)+ 식(10.3))+식(10.4)는 (2k1-k2-3)개의 XOR 게이트로 연산되며, (식(10.2)+식(10.3)+식(10.4))+식(10.1)은 H(f(x))와 같으므로 비트-병렬 다항식 기저 곱셈 연산을 위한 총 게이트수는 n2[#AND]+((n)2+(n+k2+H(f(x))-8)[#XOR]이므로 #XORn2+2n이며 따라서 Case 3이다. 그리고 가정과 달리 2k1≥(n+4)인 경우에는 식(10.1)의 시간 지연이 2·TX가 되어 상기 어느 Case에도 해당하지 않는다.
Case 3의 경우 REDUCTION BLOCK2의 계산에서 2·TX가 소요되므로 REDUCTION BLOCK1의 행의 개수가 4보다 작은 r < 5이다. 따라서 1 ≤ r ≤ 4인 경우 식 (2.2)을 고려했을 때 (n-r-2+k1)-(n-1)+r≤4 이므로 k1≤5이다. 이 경우 모듈러 감산의 공간 복잡도는 3(n-r-2)+ε+n = (4n-2r+ε-4)개의 XOR 게이트이고 추가되는 시간 복잡도는 이다. 따라서 다음 RFP만 Case 3을 만족한다.
a) r = 1, H(h(x)) = 3, 2k1 ≤ n+3.
b) 1 < r < 5, H(h(x)) = 3, k1 ≤ 5.
본 발명은 암호 알고리즘에서 사용되는 1000 이하의 유한체 차수 중 AOP, ESP, Trinomial이 존재하지 않는 443개의 차수에서 모두 사용가능한 새로운 기약다항식인 반복형 기약다항식(RFP)을 제안하였으며, 도 2에서 보인 기존의 오항 기약다항식에 비해 차수에 따라 효율적인 세 가지 경우(Case 1, Case 2, Case 3)에서의 RFP를 제시하였다. 세 가지 경우의 기약다항식의 시간 및 공간 복잡도를 도 4에 r에 따라 정리하였다.
한편 차수가 1000 이하인 경우의 적용가능한 기약다항식의 개수는 도 5에 제시되어 있다. 기존에 가장 효율적으로 알려진 기약다항식인 ESP와 Trinomial이 없는 443개의 차수 중 Case 1의 경우 181(40.8%)개가 존재하며, Case 2의 경우 232(52.4%)개, Case 3의 경우 443(100%)개 존재한다. 또한 case 3(r=1)의 경우 n = 1, 2, 16, 515를 제외한 모든 차수에서 존재한다.
본 발명에서 제안하는 RFP는 타원곡선 암호시스템의 표준(ANSI X9.62, IEEE P1363, SEC2)에서 제안되어 사용되는 유한체 중 오항 기약다항식을 사용하는 차수인 n = 131, 163, 283, 571 모두에서 존재하는데(사용가능한데), 이를 살펴보면 다음과 같다.
n=163:
n=283:
이다. n=283인 경우, Case 2(r=3)에서 하나 존재하며 나머지는 모두 Case3(r=1)인 경우에서 존재한다. 따라서 제안하는 RFP 기약다항식은 유한체(유한체) 차수 1000 이하에서 모두 존재하며 EPS 또는 Trinomial이 사용될 수없는 차수에서 오항 기약다항식 보다 효율적이다.
본 방법발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 유무선 네트워크를 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예를 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다.
그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 균등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 본 발명에 의한 반복형 기약다항식의 감산행렬 T를 제시한 도면이다.
도 2는 오항 기약다항식 기반의 비트 병렬 다항식 기저 곱셈기의 시간 및 공간 복잡도를 제시한 도면이다.
도 3은 본 발명에 의한 반복형 기약다항식의 감산행렬 T의 일례를 제시한 도면으로 2≤r≤4 인 경우의 감산행렬 T이다.
도 4는 본 발명에 의한 반복형 기약다항식을 이용한 비트-병렬 다항식 기저 곱셈을 하는 곱셈기의 시간 및 공간 복잡도를 제시한 도면이다.
도 5는 차수가 1000 이하인 경우의 적용가능한 기약다항식의 개수를 제시한 도면이다.
Claims (9)
- 삭제
- 삭제
- 삭제
- 삭제
- 유한체(finite field)상에서의 비트-병렬 곱셈을 수행하는 방법에 있어서,적어도 하나의 비트-병렬 곱셈기가 소정 반복형 기약다항식을 이용하여 대상 다항식을 곱셈하는 단계; 및상기 적어도 하나의 비트-병렬 곱셈기가 상기 곱셈 결과에서 상기 대상 다항식보다 차수가 큰 다항식을 반복적으로 감산하는 단계를 포함하고,상기 소정 반복형 기약다항식은,(n은 상기 유한체의 차수, TA는 상기 비트-병렬 곱셈기의 AND 게이트의 게이트 지연, TX는 상기 비트-병렬 곱셈기의 XOR 게이트의 게이트 지연)중 적어도 하나를 만족하는 것을 특징으로 하는 방법.
- 제 5 항에 있어서,상기 제 1 경우에 따르는 상기 소정 반복형 기약다항식은,a) r=2, H(h(x))=2, k1 < (n+6)/2 인 경우,b) r=3, H(h(x))=2, k1 < 6 인 경우 및c) r=4, H(h(x))=2, k1 < 6 인 경우(r은 상기 대상 다항식의 차수, h(x)는 상기 대상 다항식의 곱셈 결과에 따른 감산 블록(reduction block), H(h(x))는 상기 소정 반복형 기약다항식의 0이 아닌 항의 개수, k1은 상기 소정 반복형 기약다항식의 0이 아닌 항의 최저 차수)중 적어도 하나인 것을 특징으로 하는 방법.
- 제 5 항에 있어서,상기 제 2 경우에 따르는 상기 소정 반복형 기약다항식은,d) 4 < r < 9, H(h(x)) = 2, k1 ≤ 9 인 경우(r은 상기 대상 다항식의 차수, h(x)는 상기 대상 다항식의 곱셈 결과에 따른 감산 블록(reduction block), H(h(x))는 상기 소정 반복형 기약다항식의 0이 아닌 항의 개수, k1은 상기 소정 반복형 기약다항식의 0이 아닌 항의 최저 차수)중 적어도 하나인 것을 특징으로 하는 방법.
- 제 5 항에 있어서,상기 제 3 경우에 따르는 상기 소정 반복형 기약다항식은,a) r = 1, H(h(x)) = 3, 2k1 ≤ n+3 인 경우 및b) 1 < r < 5, H(h(x)) = 3, k1 ≤ 5 인 경우(r은 상기 대상 다항식의 차수, h(x)는 상기 대상 다항식의 곱셈 결과에 따른 감산 블록(reduction block), H(h(x))는 상기 소정 반복형 기약다항식의 0이 아닌 항의 개수, k1은 상기 소정 반복형 기약다항식의 0이 아닌 항의 최저 차수)중 적어도 하나인 것을 특징으로 하는 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090085148A KR101213399B1 (ko) | 2009-09-10 | 2009-09-10 | 비트-병렬 다항식 기저 곱셈 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090085148A KR101213399B1 (ko) | 2009-09-10 | 2009-09-10 | 비트-병렬 다항식 기저 곱셈 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110027175A KR20110027175A (ko) | 2011-03-16 |
KR101213399B1 true KR101213399B1 (ko) | 2013-01-10 |
Family
ID=43934029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090085148A KR101213399B1 (ko) | 2009-09-10 | 2009-09-10 | 비트-병렬 다항식 기저 곱셈 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101213399B1 (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040055550A (ko) * | 2002-12-20 | 2004-06-26 | 한국전자통신연구원 | 유한체 상의 두 원소의 곱을 구하는 직렬-병렬 곱셈기 |
KR100653358B1 (ko) | 2005-09-27 | 2007-02-28 | 고려대학교 산학협력단 | 유한체의 병렬곱셈 연산장치 |
KR20090059265A (ko) * | 2007-12-06 | 2009-06-11 | 고려대학교 산학협력단 | 여분 표현을 사용하는 유한체 비트―병렬 곱셈 장치 및방법 |
-
2009
- 2009-09-10 KR KR1020090085148A patent/KR101213399B1/ko not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040055550A (ko) * | 2002-12-20 | 2004-06-26 | 한국전자통신연구원 | 유한체 상의 두 원소의 곱을 구하는 직렬-병렬 곱셈기 |
KR100653358B1 (ko) | 2005-09-27 | 2007-02-28 | 고려대학교 산학협력단 | 유한체의 병렬곱셈 연산장치 |
KR20090059265A (ko) * | 2007-12-06 | 2009-06-11 | 고려대학교 산학협력단 | 여분 표현을 사용하는 유한체 비트―병렬 곱셈 장치 및방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20110027175A (ko) | 2011-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Akdemir et al. | Design of cryptographic devices resilient to fault injection attacks using nonlinear robust codes | |
US20150188578A1 (en) | Error correction encoding method and error correction encoding device | |
Erdem et al. | Polynomial basis multiplication over GF (2m) | |
Wu | Bit-parallel polynomial basis multiplier for new classes of finite fields | |
US8099655B1 (en) | Galois field multiplier system and method | |
KR101213399B1 (ko) | 비트-병렬 다항식 기저 곱셈 방법 | |
Wilson | A lemma on polynomials modulo pm and applications to coding theory | |
RU2314639C1 (ru) | Устройство декодирования кодов рида-соломона | |
KR101094354B1 (ko) | 유한체의 원소간 비트-병렬 곱셈방법 및 장치 | |
Beth et al. | Architectures for exponentiation in GF (2n) | |
EP3297170B1 (en) | Efficient reed-solomon encoding | |
KR20140091087A (ko) | 병렬 bch 복호기를 위한 고속 소면적의 수정된 스텝-바이-스텝 복호 방법 및 그 연산 회로 | |
KR100723863B1 (ko) | 랜덤화한 프로베니우스 분해방법을 이용한 차분 공격 방지방법 및 그 장치 | |
Jeon et al. | Elliptic curve based hardware architecture using cellular automata | |
US20160034255A1 (en) | Arithmetic Devices, Montgomery Parameter Calculation Method and Modular Multiplication Method Thereof | |
KR100954586B1 (ko) | 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법과 이를이용한 마이크로프로세서 | |
KR100893695B1 (ko) | 유한체 상의 고속 직렬 곱셈기 구조 | |
KR100976232B1 (ko) | 고속 비트-병렬 다항식 곱셈기, 그 곱셈 방법 | |
KR101626743B1 (ko) | 유한체상의 몽고메리 알고리즘을 이용한 곱셉기 및 곱셈 방법 | |
KR100653358B1 (ko) | 유한체의 병렬곱셈 연산장치 | |
KR101423947B1 (ko) | 확장된 nist 소수를 이용한 모듈러 곱셈 및 모듈러 지수승 방법 | |
KR100926828B1 (ko) | 유한체 내에서 역원 계산 장치 | |
US8566384B2 (en) | Multiplicative group counter | |
Vollala et al. | Modular Exponential Techniques | |
KR100606437B1 (ko) | 확장체에서 다항식 곱셈장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20151030 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160928 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |