KR101094354B1 - 유한체의 원소간 비트-병렬 곱셈방법 및 장치 - Google Patents
유한체의 원소간 비트-병렬 곱셈방법 및 장치 Download PDFInfo
- Publication number
- KR101094354B1 KR101094354B1 KR1020090085149A KR20090085149A KR101094354B1 KR 101094354 B1 KR101094354 B1 KR 101094354B1 KR 1020090085149 A KR1020090085149 A KR 1020090085149A KR 20090085149 A KR20090085149 A KR 20090085149A KR 101094354 B1 KR101094354 B1 KR 101094354B1
- Authority
- KR
- South Korea
- Prior art keywords
- elements
- parallel
- bit
- mspb
- base
- 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/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명은 유한체의 원소간 비트-병렬 곱셈방법에 관한 것으로서, 을 원소의 개수가 q n 개(q는 소수, n은 자연수)인 유한체(finite field)라고 하고, 다항식 기저로 표현되며 에 속하는 임의의 두 원소의 곱셈 방법에 있어서, 다항식 기저로 표현되는 임의의 두 원소를 MSPB(Modified Shifted Polynomial Basis)로 기저변환을 하는 단계; 및 MSPB로 기저변환된 두 원소를 비트-병렬 곱셈하는 단계를 포함하고, MSPB로 기저변환을 하는 단계와 두 원소를 비트-병렬 곱셈하는 단계는 병렬로 수행되는 것을 특징으로 하며, 하드웨어 구현시 시간 복잡도 및 공간 복잡도 면에서 효율적인 유한체의 원소간 비트-병렬 곱셈방법 및 이를 포함하는 공개키 암호 방법을 제공한다.
Description
본 발명은 유한체의 원소간 비트-병렬 곱셈방법에 관한 것으로서, 더욱 상세하게는 하드웨어 구현시 시간 복잡도 및 공간 복잡도 면에서 효율적인 유한체의 원소간 비트-병렬 곱셈방법, 이를 포함하는 공개키 암호 방법 및 이를 이용한 장치에 관한 것이다.
다음의 성질을 만족하는 연산 +,·이 정의되어 있는 집합 F를 체(field)라고 한다.
(a) (F,+) 은 가환군(abelian group)이다. 이 때, 0를 +에 대한 항등원이라 한다.
(b) (F-{0},·) 역시 가환군이다. 1을 ·에 대한 항등원이라 한다.
F의 원소의 개수가 유한개라면, F를 유한체(finite field)라고 한다. 유한체 원소의 개수는 항상 소수의 멱승(p n ) 형태로 나타난다. 을 원소의 개수가 q n 개인 유한체라고 한다. n≥2에 대하여, 을 F q 위에서 차원이 n인 벡터 공간(vector space)으로 생각할 수 있다. 이 때, 크게 두 가지 형태의 기저(basis)를 의 원소를 표현하기 위하여 사용한다. 하나는 다항식 기저(polynomial basis)이고, 다른 하나는 정규 기저(normal basis)이다.
f를 F q 의 원소를 계수로 갖는 차수가 n인 기약 다항식(irreducible polynomial)이라고 하자. 이므로, 의 모든 원소는 n차 미만의 다항식으로 나타낼 수 있다. 이 때, {1(modf),x(modf),...,x n -1(modf)}가 F q 위에서 의 기저가 되는데, 이를 다항식 기저(polynomial basis)라고 한다. 또한, 는 {}과 같은 형태의 기저를 갖고 있는데, 이를 의 정규 기저라고 한다.
유한체 연산 중 곱셈 연산은 가장 높은 비중을 차지하며, 곱셈 연산의 효율성은 기저와 기약다항식 등에 의하여 달라진다. 효율적인 기약다항식을 선택하는 경우 All One Irreducible Polynomial(AOP)를 제외하고 대부분의 경우는 기약 다항식의 0이 아닌 항의 개수가 최소가 되는 경우가 가장 효율적이다. 따라서 이진체 환경에서는 이항 기약다항식이 존재하지 않으므로 삼항 기약다항식이 가장 효율적이다.
연산은 F 2 연산의 덧셈(뺄셈) 연산과 곱셈 연산에 의하여 계산되며, 덧 셈과 곱셈 연산은 비트 단위의 AND와 XOR 연산에 의하여 표현된다. 이는 하드웨어에서 2-입력 1-출력의 AND와 XOR 게이트(gate)이다. 또한 하드웨어에서 연산의 효율성은 시간 및 공간 복잡도에 의하여 정의되므로 공간복잡도 계산을 위하여 AND와 XOR 게이트 수를 각각 #AND와 #XOR로 표기하고 시간복잡도를 위하여 AND와 XOR 게이트 시간지연(time delay)을 각각 TA와 TX로 표기한다.
최근 Fan과 Dai는 이진체 곱셈기의 효율성을 개선하기 위하여 에서 Shifted Polynomial Basis(SPB)와 이를 이용한 non-pipeline 비트-병렬 곱셈기를 제안하였다. SPB는 PB에 1,α,…,α n-1에 α - υ 를 곱한 것으로, 이둘 사이의 기저 변환은 매우 쉽다. Shifted Polynomial Basis(SPB)는 비특허문헌 1[H. Fan and Y. Dai, "Fast bit parallel GF(2 n ) multiplier for all trinomials," IEEE Trans. Computers., vol. 54, no. 4, pp. 485-490, Apr. 2005.]에서 처음 제안했으며 이를 이용하여 파이프라인(pipeline)이 아닌 비트-병렬 곱셈기를 제안하였다. SPB는 Polynomial Basis(PB)를 변형한 형태로 둘 사이의 기저 변환이 매우 간단하게 수행된다. 따라서 기존의 SPB 비트-병렬 곱셈기는 기존의 PB 비트-병렬 곱셈기와 많이 비교되었다.
이하에서는 기존의 SPB 비트-병렬 곱셈기에 대하여 살펴보기로 한다.
는 ω개의 항을 가지는 기약다항식 에 의하여 생성되 고, f(x)의 근을 α라 정의하자. (이때 0=e 0<e 1<…<e ω -2<n이다.) 그러면 다항식 기저에 의하여 의 임의의 두 원소 a(α), b(α)는 , 이며(이때 a i , b i ∈F 2이다). 두 원소의 곱 c(α) 는 다음과 같은 두 과정에 의하여 계산된다.
1. 다항식 곱셈:
2. f(x)에 의한 모듈러 감산 연산:
따라서 곱셈 연산의 복잡도는 위의 두 과정에 의하여 결정되며, 모듈러 감산 연산 복잡도의 경우 기약다항식 f(x)의 항의 개수에 의하여 영향을 받는다.
정의 1. υ를 임의의 정수라 하고 Γ={α i |0≤i≤n-1}를 의 다항식기저라 할 때, 순서집합 α - υ Γ={α i - υ |0≤i≤n-1}를 Γ에 대한 Shifted Polynomial Basis(SPB)라 한다.
비트-병렬 곱셈기에서 SPB를 사용할 경우, H. Fan and M.A. Hasan, "Fast Bit Parallel Shifted Polynomial Basis Multipliers in GF(2 n )," IEEE Trans. Circuits & Systems-I, vol. 53, no. 12, pp. 2606-2615, Dec. 2006. 에서 소개된 바와 같이 υ는 k 또는 k-1에서 최적의 값을 가진다. SPB에 의하여 임의의 두 원소 a(α), b(α)는
따라서 곱 c(α)=a(α)b(α) modf(x)는 다음과 같다.
식 (1)에서 α t (-υ≤t≤n-υ-1)의 계수를 비교하여 연산량 감소를 위하여 공통 a i 를 이용하여 간소화한다. 예를 들어, t=n-2υ-1인 경우
이때 병렬 계산을 위하여 「υ/2」개의 a i b n - i -1항과 n-υ 개의 a i (b n - υ - i -1+b n - i -1) 항은 XOR 트리에 의하여 계산된다. 따라서 삼항 기약다항식 f(x)=x n +x k +1에 대하여 SPB 비트-병렬 곱셈기는 다음과 같은 복잡도를 가진다.
이때 υ는 k 또는 k-1이다.
따라서 본 발명이 해결하고자 하는 첫 번째 과제는 하드웨어 구현시 시간 복잡도 및 공간 복잡도 면에서 효율적인 유한체의 원소간 비트-병렬 곱셈방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 두 번째 과제는 하드웨어 구현시 시간 복잡도 및 공간 복잡도 면에서 효율적인 이진체 기반의 공개키 암호 방법 및 장치를 제공하는 것이다.
본 발명은 상기 첫 번째 과제를 달성하기 위하여, 을 원소의 개수가 q n 개(q는 소수, n은 자연수)인 유한체(finite field)라고 하고, 다항식 기저로 표현되며 상기 에 속하는 임의의 두 원소의 곱셈 방법에 있어서, 상기 다항식 기저로 표현되는 임의의 두 원소를 MSPB(Modified Shifted Polynomial Basis)로 기저변환을 하는 단계; 및 상기 MSPB로 기저변환된 두 원소를 비트-병렬 곱셈하는 단계를 포함하고, 상기 MSPB로 기저변환을 하는 단계와 상기 두 원소를 비트-병렬 곱셈하는 단계는 병렬로 수행되는 것을 특징으로 하는 유한체의 원소간 비트-병렬 곱셈방법을 제공한다.
본 발명의 일 실시예에 의하면, 상기 비트-병렬 곱셈하는 단계는 상기 두 원소를 비트-병렬 곱셈한 결과에 차수가 n인 기약 다항식(irreducible polynomial)으로 모듈러 감산 연산을 하는 단계를 포함할 수 있다.
또한, 상기 비트-병렬 곱셈한 결과에 상기 에 속한 임의의 원소를 두 번 더한 후, 상기 에 속한 임의의 원소가 두 번 더하여진 결과로부터 공통으로 연산되는 부분을 검출할 수 있다.
본 발명은 상기 두 번째 과제를 달성하기 위하여, 을 원소의 개수가 2 n 개(n은 자연수)인 유한체(finite field)라고 하고, 다항식 기저로 표현되며 상기 에 속하는 임의의 두 원소를 곱셈하는 방법을 포함하는 이진체 기반의 공개키 암호 방법에 있어서, 상기 다항식 기저로 표현되는 임의의 두 원소를 MSPB(Modified Shifted Polynomial Basis)로 기저변환을 하는 단계; 및 상기 MSPB로 기저변환된 두 원소를 비트-병렬 곱셈하는 단계를 포함하고, 상기 MSPB로 기저변환하는 단계와 상기 두 원소를 비트-병렬 곱셈하는 단계는 병렬로 수행되는 것을 특징으로 하는 이진체 기반의 공개키 암호 방법을 제공한다.
을 원소의 개수가 q n 개(q는 소수, n은 자연수)인 유한체(finite field)라고 하고, 다항식 기저로 표현되며 상기 에 속하는 임의의 두 원소를 곱셈하는 장치에 있어서, 상기 다항식 기저로 표현되는 임의의 두 원소를 MSPB(Modified Shifted Polynomial Basis)로 기저변환을 하는 기저변환부; 및 상기 MSPB로 기저변환된 두 원소를 비트-병렬 곱셈하는 비트-병렬 곱셈부를 포함하고, 상기 MSPB로의 기저변환과 상기 두 원소의 비트-병렬 곱셈은 병렬로 수행되는 것을 특징으로 하는 유한체의 원소간 비트-병렬 곱셈장치를 제공한다.
을 원소의 개수가 2 n 개(n은 자연수)인 유한체(finite field)라고 하고, 다항식 기저로 표현되며 상기 에 속하는 임의의 두 원소를 곱셈하는 장치를 포함하는 이진체 기반의 공개키 암호시스템에 있어서, 상기 다항식 기저로 표현되는 임의의 두 원소를 MSPB(Modified Shifted Polynomial Basis)로 기저변환을 하는 기저변환부; 및 상기 MSPB로 기저변환된 두 원소를 비트-병렬 곱셈하는 비트-병렬 곱셈부를 포함하고, 상기 MSPB로의 기저변환과 상기 두 원소의 비트-병렬 곱셈은 병렬로 수행되는 것을 특징으로 하는 이진체 기반의 공개키 암호시스템을 제공한다.
본 발명에 따르면, 하드웨어 구현시 시간 복잡도 및 공간 복잡도 면에서 효율적인 유한체의 원소간 비트-병렬 곱셈방법 및 이를 포함하는 공개키 암호 방법을 제공할 수 있다.
본 발명에 관한 구체적인 내용의 설명에 앞서 이해의 편의를 위해 본 발명이 해결하고자 하는 과제의 해결 방안의 개요(혹은 기술적 사상의 핵심)를 우선 제시한다.
을 원소의 개수가 q n 개(q는 소수, n은 자연수)인 유한체(finite field)라고 하고, 다항식 기저로 표현되며 상기 에 속하는 임의의 두 원소의 곱셈 방법에 관한 발명이다. 다항식 기저로 표현되는 임의의 두 원소를 MSPB(Modified Shifted Polynomial Basis)로 기저변환을 하고, MSPB로 기저변환된 두 원소를 비트-병렬 곱셈하게 된다. 이때 상기 MSPB로 기저변환을 하는 단계와 상기 두 원소를 비트-병렬 곱셈하는 단계는 병렬로 수행되는 것을 특징으로 한다.
이하, 본 발명이 해결하고자 하는 과제의 해결 방안을 명확하게 하기 위한 발명의 구성을 본 발명의 바람직한 실시예에 근거하여 첨부 도면을 참조하여 상세히 설명하되, 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여하였으며 당해 도면에 대한 설명시 필요한 경우 다른 도면의 구성요소를 인용할 수 있음을 미리 밝혀둔다. 아울러 본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명 그리고 그 이외의 제반 사항이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 상세한 설명을 생략한다.
비특허문헌 2[장남수, 김창한, 홍석희, 박영호, "삼항 기약다항식을 위한 효율적인 Shifted polynomial Basis 비트-병렬 곱셈기," 정보보호학회논문지, 19(2), pp. 49-61, 2009년 4월.]에서 Modified Shifted Poly- nomial Basis(MSPB)를 제안하고 이용하여 기존 결과들보다 시간 및 공간 복잡도에서 효율적인 type I, II SPB 곱셈기를 제안하였다.
본 발명의 일 실시예에 따르면, 비특허문헌 2의 결과와 같이 MSPB를 이용하여 새로운 SPB 비트-병렬 곱셈기를 제안한다. 삼항 기약다항식(f(x)=x n +x k +1) 기반에서 SPB를 사용하는 기존 결과에 비하여 본 발명의 일 실시예에 따른 비트-병렬 곱셈 장치는 작은 공간 복잡도를 가진다. 공간 복잡도에 있어서, 비특허문헌 2의 type II와 비교하여 1≤k≤(n+1)/3인 경우 항상 AND 및 XOR 게이트가 작으며 (n+2)/3≤k<n/2인 경우에도 k가 n/2에 매우 근사하는 경우를 제외하고 비특허문헌 2의 결과보다 항상 작은 공간 복잡도를 가진다. 따라서 본 발명의 일 실시예에 따르면, 비특허문헌 2의 type II 구조를 사용한다. 시간복잡도의 경우 n>2k를 만족하는 차수가 1≤n<1,000인 모든 삼항 기약다항식 1,491개에 대하여 비특허문헌 2의 type II와 비교하면, 942개(63.18%)가 같으며 549개(36.82%)가 1TX 증가한다. 비특허문헌 2의 Type II 곱셈기의 공간복잡도가 낮아 본 발명의 일 실시예에 따른 곱셈기를 사용하지 않고 비특허문헌 2의 type II 곱셈기를 사용하는 경우까지 모두 고려하면 실제 399개(26.76%)만 1TX 증가한다.
이하에서는 새로운 MSPB 기저와 υ값을 이용한 비트-병렬 SPB 곱셈 방법을 설명한다. 본 발명의 일 실시예에 따른 유한체의 원소간 비트-병렬 곱셈 방법은 다음 정의를 기반으로 한다.
이면, 순서집합(ordered set) △={α i - υ |δ 1≤i≤δ 1+k-1, δ 2≤i≤δ 2+n-k-1}를 α - υ Γ에 대한 삼항 기약다항식 f(x)=x n +x k +1를 위한 MSPB(Modified Shifted Poly-nomial Basis)라 한다.
도 1은 본 발명의 일 실시예에 따른 유한체의 원소간 비트-병렬 곱셈방법을 나타낸 것이다.
본 발명의 일 실시예에 따른 비트-병렬 곱셈방법의 경우 입/출력은 기존의 SPB를 사용하지만 최적 υ를 k 또는 k-1을 사용했던 기존의 결과와 달리 υ값을 정의 2에서와 같이 정의한다. mastrovito 곱셈을 수행하기 전에 도 1과 같이 MSPB로 기저를 변환하고 곱셈을 수행하며, 곱셈 결과는 다시 입력과 동일하게 처음의 SPB 로 표현된다. 이때, 도 1의 기저 변환과 비트-병렬 곱셈은 병렬로 수행된다. 상세한 곱셈방법 및 효율성은 정의 2에서와 같이 k에 따라 n>2k, n=2k 또는 n<2k로 구분하여 설명한다. 이때 n<2k인 경우는 n>2k인 경우의 곱셈 수행을 최저항부터 최고차항까지 서로 대칭이 되도록 수행하면 되므로 생략한다.
n>2k인 경우는 정의 2에서와 같이 υ=2k를 사용하며, f(x)=x n +x k +1에 의한 모듈러 감산 연산의 효율성을 최대화하기 위하여 다음과 같이 곱셈을 수행한다.
정의 2에 의하여 두 원소 a(α), b(α)는 f(x)를 이용하여 다음과 같이 MSPB 원소로 변환한다.
라 하면, a(α), b(α)는
따라서 c(α)=a(α)b(α)는 다음과 같다.
이때 (A 0+A 1)는
이므로, (A 0+A 1)와 (B 0+B 1)은 실제 연산이 없으며, 기저 변환시 연산이 수행되는 기저원소와 그렇지 않은 원소가 독립적으로 곱셈을 수행하므로 기저 변환은 병렬 연산이 가능하다. 따라서, 식 (1)-2는 다음과 같이 정리된다.
식 1-(3)에서 (ㄱ),(ㄷ),(ㅅ)는 모듈러 감산되어야 하며, f(x)=x n +x k +1에 의하여 (ㄷ)+(ㅁ)은
이므로, 식 1-(4)와 (ㄱ),(ㅅ)을 모듈러 감산 연산하면, 식 1-(3)은 다음과 같이 정리된다.
로 간소화된다. 따라서 이를 적용하여 식 1-(5)의 각 항을 k에 따른 XOR 게이트 시간 지연으로 정리하면 표 1과 같다.
표 1에서 시간 지연을 계산할 때 k에 따라 다른 행들이 사용된다. 예를 들어 k=1인 경우 t의 범위는 t=-k-1, t=-1의 3행, , t=n-3k-1, t=n-2k-1이며 나머지 행들은 k=1에서는 존재하지 않는다. 이와 같은 비트-병렬 곱셈을 type I mastrovito 곱셈기라 하며 다음 정리를 만족한다.
정리 1.(n>2k) 제안하는 type I mastrovito 곱셈기는 c k 또는 c 0에서 최대 시간지연을 가지며,
정리 2. (n>2k) Type I mastrovito 곱셈기의 공간 복잡도는
Type I mastrovito 곱셈기의 경우 시간 복잡도가 최소가 되도록 구성하였다. 따라서 공간 복잡도 입장에서는 식 1-(5)의 (a1)과 (a2), (b1)과 (b2)는 중복 연산이므로 독립 연산 후 다른 항과 더해져야만 한다. 따라서 표 1의 t=n-2k-1인 경우를 고려하면 각각 k,n-2k,k개의 또는 a i b j 를 더해야 한다. 이때 가 독립 연산이므로 이를 더하는데 소요되는 XOR 시간 지연은 (1+「log2(k)」)Tx이고 이때 나머지 n-k개는 (1+「log2(k)」)Tx 시간 동안 매번 반으로 감소하므로 t=n-2k-1일 때 전체 시간 복잡도는 다음과 같다.
이와 같이 제안하는 방법에서 공간 복잡도가 최소가 되도록 구성한 것을 Type II mastrovito 곱셈기라 하고 다음 정리를 만족한다.
정리 3.(n>2k) Type II mastrovito 곱셈기의 시간 복잡도는
1. k=1인 경우, TimeDelay=1TA+(log2(2n-3))T X
2. k≠1이고, k=2 m +1인 경우
3. k≠1이고, k≠2 m +1인 경우
이고, 공간 복잡도는
#AND=n2-k2
#XOR=n2-1-(k-1)2
식 1-(5)를 다시 정리하면 다음과 같다.
이다. 또한 이상에서 식 (2)의 (f)+((e)+(i))는 -k≤t≤n-3k-2사이에서
로 간소화됨을 보였다. 식 (2)에서 알 수 있듯이 n-3k 값의 범위에 따라 α t 항의 계수값이 일부 달라지며 도 2와 같다.
도 2는 n>2k인 경우의 α t 항의 계수값을 나타낸 것이다.
도 2에서와 같이 식 (2)에서 항 α t 의 계수들은 k의 조건에 따라 달라진다. t의 범위가
- -2k≤t≤-k-2 : (a1)+(b)+(c1)+(d) (k=1인 경우는 제외된다.)
- t=-k-1 : (a1)+(d)
- t=n-2k-1 : (a2)+(h)+(i)
인 경우를 제외하고, n>2k인 경우의 k를 범위에 따라 항 α t 를 구분하여 계수를 정리하면 표 2와 같으며 표 2에서 밑줄이 있는 부분은 간소화되는 부분이다.
구분된 항에 따라 계수 계산과 시간지연을 정리하면 표 1과 같다. 본 발명의 일 실시예에 따른 유한체의 원소간 비트-병렬 곱셈장치는 제안된 MSPB와 Karatsuba-Ofman(KO) 방법의 곱셈을 효율적으로 적용하여 KO 곱셈시 발생하는 시간 복잡도 증가의 trade-off를 제거하였다.
도 3은 기저변환, 다항식 곱셈, 및 모듈러 감산이 병렬로 계산되는 유한체의 원소간 비트-병렬 곱셈장치를 나타낸 것이다.
이상에서는 시간 복잡도를 최적화한 type I과 공간 복잡도를 최적화한 type II를 살펴보았다. 이하에서는 이상에서 살펴본 Type II mastrovito 곱셈기의 공간 복잡도보다 효율적인 본 발명의 일 실시예에 따른 삼항 기약다항식 f(x)=x n +x k +1 기반의 유한체의 원소간 비트-병렬 곱셈장치를 설명하기로 한다.
본 발명의 일 실시예에 따르면, n과 k의 값에 따라 각 항 α t 의 계수가 달라진다. 따라서 다음과 같이 세 가지 경우로 구분하면
1. n-3k≥0인 경우
2. n-3k=-1인 경우
3. n-3k≤-2인 경우
이다. 본 발명의 일 실시예에 따른 비트-병렬 곱셈은 식 (2)에서 t가 n-3k≤t≤n-2k-2 사이인 항에서 공간 복잡도를 효율적으로 줄인다. 만약 k≠1이고 n>2k이면, 식 (2)에
이다. 이때 (j2)를 풀어쓰면
이며, (j24)는
이므로 (a2)+(j1)+(j24)은
이므로 식 (6)의 값은 식 (2)의 (a1)+(b)+(c1)에 α n - k 를 곱한 값과 같다. 따라서 이 부분은 실제로 계산되지 않는다. 이를 이용하여 식 (4)를 정리하면 다음과 같다.
따라서 n-3k≥0, n-3k=-1, n-3k≤-2 세 가지 경우에 따라 달라지는 항 α t 의 계수에 대하여 살펴보기로 한다. 이때 식 (7)에서 t가 n-3k≤t≤n-2k-2 사이의 항인 경우의 (g)+(h)+(i)+(j21)+(j22)+(j23)를 고려한다.
1. n-3k≥0인 경우
식 (2)에서 (g)는
이고, t가 n-3k≤t≤n-2k-2일 때 (i)를 풀어쓰면
이다. 따라서 식 (5), (8), (9)으로부터 (g)+(i)+(j21)+(j22)+(j23)는 다음과 같다.
식 (10)에서 (g)와 (j21)은 같은 값으로 소거되고, (i 1)과 (j22), (i 3)와 (j23)는 각각 b i 와 a i 에 의하여 (k)와 같이 간소화된다. 비특허문헌 1에 소개된 바와 같이 ((f)+((e)+(i)))는 ()에 의하여 간소화된다. 이는 t=-k일 때 계산되는 값
는 가정 n≥3k에 의하여
이다. 결국 -k+1≤t≤n-3k-2에서 계산되는 모든 ()는 t=-k일 때 모두 계산되었으므로 실제 연산은 n-2k-1번의 XOR 연산만 수행된다. 식 (k)의 (a t - i - n +5 k +a t - i +4 k )와 (b t - i - n +5 k +b t - i +4 k )도 마찬가지로 t=n-3k일 때 계산되는
에 의하여 n-3k+1≤t≤n-2k-2에서 계산되는 모든 (a t - i - n +5 k +a t - i +4 k )와 (b t - i - n +5 k +b t - i +4 k )는 계산되었으므로 실제 연산은 2(k-1)번의 XOR 연산만 수행된다. 그러나 식 (12), (13)의 ()와 (b t - i - n +5 k +b t - i +4 k )는 일부 같은 값을 가진다. 가정에 의하여 n+1≥3k+1⇒n≥3k이므로, (12)에서 (k)의 모든 (b t - i - n +5 k +b t - i +4 k )이 계산되었으므로 식 (13)는 k-1번의 (a t - i - n +5 k +a t - i +4 k )의 XOR 연산으로 계산된다. 따라서 n-3k≥0인 경우 추가적으로 소요되는 XOR 연산량은 #XOR=n-k-2이다.
2. n-3k=-1인 경우와 n-3k≤-2인 경우
n-3k=-1 또는 n-3k≤-2인 경우에 t가 n-3k≤t≤n-2k-2 사이일 때 다음 항이 고려된다.
- n-3k≤t≤-2 : (c2)+(e)+(g)+(j21)+(j22)+(j23)
(n-3k=-1인 경우 존재하지 않는다.)
- t=-1 : (e)+(g)+(j21)+(j22)+(j23)
- 0≤t≤n-2k-2 : (g)+(h)+(i)+(j21)+(j22)+(j23)
(n=2k+1인 경우는 제외된다.)
이상에서 살펴본 바와 같이 (g)와 (j21)은 같은 값이므로 소거된다. t가 0≤t≤n-2k-2 사이일 때의 항의 계수는 식 (10)에 의하여
이다. n-3k≤t≤-2인 항과 t=-1인 항을 고려하기 위하여 (e),(c2),(j22)와 (j23)을 다시 정리하면 다음과 같다.
식 (a)에서 t=-1일 때 (j22-2)와(j23-2)는 존재하지 않는다. 식 (a)에서 (e 1)과 (j22-1), (e 2)와 (j23-1), (c2)와 (j23-2)는 다음과 같이 간소화된다.
식 (14)에서 (14.3)은 t=-1인 항에서 존재하지 않는다. 식 (11)은 가정 n-3k≤-1에 의하여 t=-k일 때 계산되는 값
에 의하여 나머지 -k+1≤t≤n-3k-2에서 계산되는 모든 가 계산된다. 그리고 식 (k)의 (a t - i - n +5 k +a t - i +4 k )와 (b t - i - n +5 k +b t - i +4 k )도 마찬가지로 t=0일 때 계산되는
에 의하여 1≤t≤n-2k-2에서 계산되는 모든 (a t - i - n +5 k +a t - i +4 k )와 (b t - i - n +5 k +b t - i +4 k )는 계산된다. 또한 식 (14)도 마찬가지로 t=n-3k일 때 계산되는 값
에 의하여 나머지 항에서 계산되는 모든 값이 계산된다.
n-3k=-1인 경우 위에서 기술한 바와 같이 (14.1)과 (14.2)의 계산값에 의하여 (k)와 식 (11)의 모든 값이 계산되며 (14.3)은 존재하지 않는다. n-3k≤t≤-2인 또한 (14.1)과 (14.2)의 계산값에 의하여 (k)와 식 (11)의 모든 값이 계산되며 추가적으로 (14.3)이 계산된다. 따라서 n-3k=-1 또는 n-3k≤-2 경우의 XOR 연산량은 다음과 같다. n-3k=-1인 경우 (14.1)과 (14.2)에서 2(n-k)=(n-2k+3k-1)=n-k-1 번의 XOR 연산이 소요되며, n-3k≤-2인 경우 (14.1)과 (14.2)에서 2(n-k)번의 XOR 연산과 (14.3)에서 -n+3k-1번의 XOR 연산이 소요되므로 전체 2(n-k)+(-n+3k-1)=n-k-1번의 XOR 연산이 소요된다. 즉, n-3k≤-1인 경우 추가적으로 소요되는 XOR 연산량은 #XOR=n-k-1이다.
이하에서는 본 발명의 일 실시예에 따른 비트-병렬 곱셈장치의 시간 복잡도 및 공간 복잡도에 대하여 살펴보기로 한다.
식 (10)에서 항 α t 의 계수들은 k의 조건에 따라 달라진다. 이와 같이 구분된 k에 따른 계수 c t +2 k 의 계산을 정리하면 표 3과 같다.
표 3에서 AND 게이트 수는 중복된 연산은 제외한 결과이다(표 3에서 [·]로 표현된 부분은 연산량에서 제외된다.). 즉, 식 (2)에서 (c2)와 식 (6)의 (a2)+(j1)+(j24)의 AND 게이트 수는 제외된 결과이다. 본 발명의 일 실시예에 따른 비트-병렬 곱셈 방법은 n≠1이고 n>2k인 경우 식 (6)의 n-3k≤t≤n-2k-2인 경우의 항만 식을 변형한다. 따라서 구분된 k에 따라 제안하는 형태로 식이 변형되는 부분을 정리하면 다음과 같다.
①. n≠2k+1인 경우 :
max{n-3k,0}≤t≤n-2k-2사이 항
②. n-3k=-1인 경우 :
t=-1인 항, max{n-3k,0}≤t≤n-2k-2사이 항
③. n-3k≤-2인 경우 :
n-3k≤t≤-2사이 항, t=-1인 항,
max{n-3k,0}≤t≤n-2k-2사이 항
본 발명의 일 실시예에 따른 비트-병렬 곱셈장치의 시간 및 공간 복잡도를 정리하면 다음 정리와 같다.
정리 1.(n>2k) 본 발명의 일 실시예에 따른 비트-병렬 곱셈장치의 공간 복잡도는
이다.
정리 2.(n>2k) 본 발명의 일 실시예에 따른 비트-병렬 곱셈장치의 시간 복잡도는
이다.
표 4는 f(x)=x n +x k +1인 경우의 게이트 수를 비교한 것이다.
여기서 [1]은 비특허문헌 3(E.D. Mastrovito, "VLSI designs for multiplication over finite fields GF(2m), " In Proceedings of the Sixth Symposium on Applied Algebra, Algebraic Algorithms, and Error Correcting Codes, vol. 6, pp. 297-309, July. 1988.)이고, [2]는 비특허문헌 4(E.D. Mastrovito, ""VLSI Architectures for Computation in Galois Fields, "" PhD thesis, Linkoping University Dept. Electr. Eng., Linkoping, Sweden, 1991.)이다.
표 5는 f(x)=x n +x k +1인 경우의 시간 지연을 비교한 것이다
삼항 기약다항식 기반에서 SPB를 사용하는 기존 결과와 본 발명의 일 실시예에 따른 유한체의 원소간 비트-병렬 곱셈장치의 공간 및 시간 복잡도를 비교하면 각각 표 3과 표 4와 같다. 표 3에서 알 수 있듯이 본 발명의 일 실시예에 따른 곱셈기는 작은 공간 복잡도를 가지는 Type II와 비교하여 1≤k≤(n+1)/3인 경우 항상 AND 및 XOR 게이트가 작으며 (n+2)/3≤k<n/2인 경우에도 k가 n/2에 매우 근사하는 경우를 제외하고 항상 작은 공간 복잡도를 가진다. 따라서 본 발명의 일 실시예에 따른 곱셈방법은 Type II 구조를 사용한다. n>2k를 만족하는 차수가 1≤n<1,000인 모든 삼항 기약다항식 1,491개 중 Type II 곱셈기가 더 작은 공간복잡도를 가지는 경우는 177개로 11.87% 존재한다. 기약다항식을 선택할 때 주어진 차수에서 가장 작은 k를 선택한다면 실제 이러한 기약다항식을 사용할 확률은 매우 낮다.
다음으로 표 4의 결과를 이용하여 시간복잡도를 고려하기로 한다. n>2k를 만족하는 차수가 1≤n<1,000인 모든 삼항 기약다항식 1,491개에 대하여 Type I, II와 비교하면 다음과 같다. Type I 곱셈기와 비교하여 2개(0.14%)가 1TX 감소하고, 969개(68.29%)가 같으며 343개(24.17%)가 1TX 증가한다. 또한 Type II 곱셈기와 비교하여 942개(63.18%)가 같으며 549개(36.82%)가 1TX 증가한다. Type II 곱셈기의 공간복잡도가 낮아 본 발명의 일 실시예에 따른 곱셈기를 사용하지 않고 Type II 곱셈기를 사용하는 경우까지 모두 고려하면 실제 399개(26.76%)만 1TX 증가한다.
본 발명의 일 실시예에서 n<2k인 경우는 k 대신에 n-k를 사용하여 전개하면 동일하다. 정리 1에서 알 수 있듯이 표 2의 1)∼4)의 경우는 Type I과 Type II의 결과보다 본 발명의 일 실시예에 따른 곱셈기의 AND 게이트와 XOR 게이트가 모두 감소한다. 그러나 5)의 경우 k에 따라 효율성이 달라진다. 따라서 Type II의 XOR 게이트 수 n 2-1-(k-1)2보다 2n 2-6nk+2n-1+5k(3k-1)/2가 큰 경우는 제안하는 방법을 적용하지 않고 Type II 곱셈기 구조를 사용한다. 이는 k가 n/2에 매우 근사한 경우 식 (13)의 (j22-2)가 매우 커지기 때문이다. 따라서 본 발명의 일 실시예에 따른 곱셈방법이 Type II 보다 효율성이 같거나 작은 경우는 다음과 같다.
1. n>2k인 경우
- k=1
2. n=2k인 경우
3. n<2k인 경우
- n=k+1
도 4는 본 발명의 일 실시예에 따른 유한체의 원소간 비트-병렬 곱셈장치의 하드웨어 구조를 나타낸 것이다. 도 4(a)는 Type I mastrovito 곱셈기를 나타낸 것이고, 도 4(b)는 Type II mastrovito 곱셈기를 나타낸 것이다.
도 5는 Type I mastrovito 곱셈기와 Type II mastrovito 곱셈기의 경우 에서의 유한체의 원소간 비트-병렬 곱셈장치이다. 이때 f(x)=x 5+x 2+1이다.
본 방법발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 유무선 네트워크를 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예를 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다.
그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 균등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 유한체의 원소간 비트-병렬 곱셈방법을 나타낸 것이다.
도 2는 n>2k인 경우의 α t 항의 계수값을 나타낸 것이다.
도 3은 기저변환, 다항식 곱셈, 및 모듈러 감산이 병렬로 계산되는 유한체의 원소간 비트-병렬 곱셈장치를 나타낸 것이다.
도 4는 본 발명의 일 실시예에 따른 유한체의 원소간 비트-병렬 곱셈장치의 하드웨어 구조를 나타낸 것이다.
Claims (8)
- 기저 변환부가 상기 다항식 기저로 표현되는 임의의 두 원소를 MSPB(Modified Shifted Polynomial Basis)로 기저변환을 하는 단계; 및비트-병렬 곱셈부가 상기 MSPB로 기저변환된 두 원소를 비트-병렬 곱셈하는 단계를 포함하고,상기 MSPB로 기저변환을 하는 단계와 상기 두 원소를 비트-병렬 곱셈하는 단계는 병렬로 수행되는 것을 특징으로 하는 유한체의 원소간 비트-병렬 곱셈방법.
- 제 1항에 있어서,상기 비트-병렬 곱셈하는 단계는 상기 두 원소를 비트-병렬 곱셈한 결과에 차수가 n인 기약 다항식(irreducible polynomial)으로 모듈러 감산 연산을 하는 단계를 포함하는 것을 특징으로 하는 유한체의 원소간 비트-병렬 곱셈방법.
- 을 원소의 개수가 2 n 개(n은 자연수)인 유한체(finite field)라고 하고, 다항식 기저로 표현되며 상기 에 속하는 임의의 두 원소를 곱셈하는 방법을 포함하는 이진체 기반의 공개키 암호 방법에 있어서,기저 변환부가 상기 다항식 기저로 표현되는 임의의 두 원소를 MSPB(Modified Shifted Polynomial Basis)로 기저변환을 하는 단계; 및비트-병렬 곱셈부가 상기 MSPB로 기저변환된 두 원소를 비트-병렬 곱셈하는 단계를 포함하고,상기 MSPB로 기저변환하는 단계와 상기 두 원소를 비트-병렬 곱셈하는 단계는 병렬로 수행되는 것을 특징으로 하는 이진체 기반의 공개키 암호 방법.
- 을 원소의 개수가 q n 개(q는 소수, n은 자연수)인 유한체(finite field)라 고 하고, 다항식 기저로 표현되며 상기 에 속하는 임의의 두 원소를 곱셈하는 장치에 있어서,상기 다항식 기저로 표현되는 임의의 두 원소를 MSPB(Modified Shifted Polynomial Basis)로 기저변환을 하는 기저변환부; 및상기 MSPB로 기저변환된 두 원소를 비트-병렬 곱셈하는 비트-병렬 곱셈부를 포함하고,상기 MSPB로의 기저변환과 상기 두 원소의 비트-병렬 곱셈은 병렬로 수행되는 것을 특징으로 하는 유한체의 원소간 비트-병렬 곱셈장치.
- 을 원소의 개수가 2 n 개(n은 자연수)인 유한체(finite field)라고 하고, 다항식 기저로 표현되며 상기 에 속하는 임의의 두 원소를 곱셈하는 장치를 포함하는 이진체 기반의 공개키 암호시스템에 있어서,상기 다항식 기저로 표현되는 임의의 두 원소를 MSPB(Modified Shifted Polynomial Basis)로 기저변환을 하는 기저변환부; 및상기 MSPB로 기저변환된 두 원소를 비트-병렬 곱셈하는 비트-병렬 곱셈부를 포함하고,상기 MSPB로의 기저변환과 상기 두 원소의 비트-병렬 곱셈은 병렬로 수행되는 것을 특징으로 하는 이진체 기반의 공개키 암호시스템.
- 제 1 항 내지 제 5 항의 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090085149A KR101094354B1 (ko) | 2009-09-10 | 2009-09-10 | 유한체의 원소간 비트-병렬 곱셈방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090085149A KR101094354B1 (ko) | 2009-09-10 | 2009-09-10 | 유한체의 원소간 비트-병렬 곱셈방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110027176A KR20110027176A (ko) | 2011-03-16 |
KR101094354B1 true KR101094354B1 (ko) | 2011-12-19 |
Family
ID=43934030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090085149A KR101094354B1 (ko) | 2009-09-10 | 2009-09-10 | 유한체의 원소간 비트-병렬 곱셈방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101094354B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101423947B1 (ko) * | 2011-08-31 | 2014-08-01 | 고려대학교 산학협력단 | 확장된 nist 소수를 이용한 모듈러 곱셈 및 모듈러 지수승 방법 |
KR101418686B1 (ko) * | 2013-08-02 | 2014-07-10 | 공주대학교 산학협력단 | 유한체에서 타입 4 가우시안 정규기저를 이용한 이차 미만의 공간 복잡도를 갖는 병렬 곱셈 연산방법 및 그 연산장치 |
KR102132935B1 (ko) * | 2019-02-14 | 2020-07-10 | 단국대학교 산학협력단 | 유한체 곱셈 방법 및 장치 |
-
2009
- 2009-09-10 KR KR1020090085149A patent/KR101094354B1/ko not_active IP Right Cessation
Non-Patent Citations (1)
Title |
---|
삼항 기약다항식을 이용한 GF(2)의 효율적인 저면적 비트-병렬 곱셈기, 2008년 12월 전자공학회 논문지 제45권 SD편 제12호 |
Also Published As
Publication number | Publication date |
---|---|
KR20110027176A (ko) | 2011-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sunar et al. | An efficient optimal normal basis type II multiplier | |
Okada et al. | Implementation of Elliptic Curve Cryptographic Coprocessor over GF (2 m) on an FPGA | |
JP5957120B1 (ja) | 秘密分散方法、秘密分散システム、分散装置、およびプログラム | |
Wu | Bit-parallel polynomial basis multiplier for new classes of finite fields | |
Namin et al. | A word-level finite field multiplier using normal basis | |
Lee et al. | Efficient design of low-complexity bit-parallel systolic Hankel multipliers to implement multiplication in normal and dual bases of GF (2 m) | |
Cenk et al. | Improved three-way split formulas for binary polynomial and Toeplitz matrix vector products | |
KR101094354B1 (ko) | 유한체의 원소간 비트-병렬 곱셈방법 및 장치 | |
Barenghi et al. | Evaluating the trade-offs in the hardware design of the ledacrypt encryption functions | |
CN107992283B (zh) | 一种基于降维实现有限域乘法的方法和装置 | |
Encarnación | Computing gcds of polynomials over algebraic number fields | |
EP3297171B1 (en) | Efficient erasure decoding for mds codes | |
KR100950581B1 (ko) | 여분 표현을 사용하는 유한체 비트―병렬 곱셈 장치 및방법 | |
KR100954584B1 (ko) | MSD first GF(3^m) 직렬 곱셈 장치, 그방법 및 이를 기록한 기록매체 | |
Fedorenko | A method for computation of the discrete Fourier transform over a finite field | |
Bouyukliev et al. | A method for efficiently computing the number of codewords of fixed weights in linear codes | |
KR100954586B1 (ko) | 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법과 이를이용한 마이크로프로세서 | |
KR100976232B1 (ko) | 고속 비트-병렬 다항식 곱셈기, 그 곱셈 방법 | |
KR101626743B1 (ko) | 유한체상의 몽고메리 알고리즘을 이용한 곱셉기 및 곱셈 방법 | |
Chiou et al. | Palindromic-like representation for Gaussian normal basis multiplier over GF (2m) with odd type t | |
Yan et al. | Fast and low-complexity decoding algorithm and architecture for quadruple-error-correcting RS codes | |
KR100653358B1 (ko) | 유한체의 병렬곱셈 연산장치 | |
Méloni et al. | High performance GHASH function for long messages | |
KR101213399B1 (ko) | 비트-병렬 다항식 기저 곱셈 방법 | |
Trujillo-Olaya et al. | Half-matrix normal basis multiplier over GF ($ p^{m} $) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for 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: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160928 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |