Ⅰ. 서론
유한체는 암호학에서 실질적으로 응용되고 있을 뿐만 아니라 코드이론凹등에도 폭넓게 적용되고 있기 때문에 많은 관심의 대상이 되고 있다. 예를 들어 RSA 암호화 과정回, Diffe-Hellman 키 교환 프로토콜의 과정向을 살펴보면 유한체의 연산이 적용되고 있음을 알 수 있다. 특히 최근에 동일한 안전도를 유지하면서 기타 다른 공개키 암호 시스템보다 짧은 길이의 키를 갖는 타원곡선을 이용한 암호시스템이 암호학적으로 여러 분야의 기능적 프로토콜에 응용되고 있다. 타원곡선 암호시스템9*皿은 제한적인 조건의 계산능력과 공간에 제약이 있는 스마트카드, 토큰, 단말기 등의 디바이스에서 적합하게 적용될 수 있음을 보여준다. 이러한 타원곡선 암호 기법을 사용하는 전자 서명 프로토言을 수행하는 과정과 암호화, 키동의 프로토콜에서도 역시 유한체의 효율적인 연산은 중요한 역할을 한다的.
유한체 연산 중에서 덧셈, 뺄셈의 경우에는 각각의 비트 논리 연산만을 사용하기 때문에 하드웨어의 효율성은 AND와 XOR 논리 연산이 복합적으로 결합된 형태의 곱셈 연산에 의해 좌우된다. 유한 체에서 곱셈 연산의 효율적인 구현은 암호 시스템의 효율성에 많은 영향을 미치기 때문에 구조적으로 간단하고, 연산하는 시간이 효율적으로 개선되도록 하는 연구가 진행되고 있다.
하드웨어 곱셈기는 구조적인 관점에서 직렬구조, 병렬구조 그리고 직렬-병렬 구조로 나눌 수 있다. 직렬구조는 쌍대기저 (dual basis) 또는 정규기저 (normal basis)를 이용한 연구가 이루어져 왔으며'지E, 병렬구조는 표준기저(standard basis), 정규기저 등 다양한 기저에 대한 연구가 이루어졌다. 그러나 최근에는 표준 기저가 아닌 기저를 사용할 때, 추가적으로 기저변환 하드웨어가 필요함으로 표준기저를 이용하여 시간 복잡도와 하드웨어 복잡도의 효율성을 최적화하려는 논문들이 다수 나오고 있다闵⑫. 직렬-병렬구조의 하드웨어는 대부분 유한체의 확장 차수가 합성 수일 때에 부분체(subfield)의 원소에 대한 연산은 병렬로 처리하고 전체적으로는 직렬로 처리하는 방식의 연구가 진행되어 왔다俱 그러나 [10]에서 Smart 가 언급했듯이 차수가 합성수인 어떤 확장체에서는 ECDLP 문제가 Weil descent 방법을 이용하여 분석되었다. 이러한 결과로 ECDLP에 안전성을 근거한 암호 시스템을 구축하기 위해서는 유한체를 선택할 때 차수에 대한 조건을 확인할 필요가 있다.
본 논문에서는 부분체를 이용하는 방법이 아닌 다른 방법으로 직렬-병렬 구조가 가능한 하드웨어 구조를 소개한다. 이 때 병렬 구조는 Mastrovito 방식의 곱셈기 구조이다. 또한 본 논문에서 사용하는 기약다항식 (iireducible polynomial)은 삼항 기약다항식 (trimo mial)을 사용하고, 곱셈 연산에서 한 원소를 두 부분으로 나누어 표현한 후 이들을 각각 다른 한 원소에 곱하는 방법을 택한다. 이 방법은 모듈러감산(modu lar reduction) 연산이 한 번만 발생하기 때문에 Mastrovito 행렬을 쉽게 구할 수 있으며 공간복잡도와 시간복잡도를 효율적으로 구성할 수 있다.
이 방법은 병렬 곱셈기와 비교할 때 공간복잡도가 절반 정도 줄어드는 반면, 시간복잡도가 두 배 늘어나는 교환이 있다. 앞에서도 언급했듯이 타원곡선 알고리즘은 차세대 공개키 알고리즘으로 환경이 제약적인 스마트카드, 스마트카드 리더기, 휴대폰 단말기 등에 적용이 가능하다. 또한 RSA 알고리즘과 더 불어 타원곡선 알고리즘이 여러 응용 분야에 사용될 가능성이 높아짐에 따라 이들 알고리즘을 통합한 칩의 설계가 필요한 시점이다. 이런 면에서 본 논문에서 제안하는 직렬-병렬 구조는 병렬구조와 직렬구조의 중간적인 위치에서 공간복잡도와 시간복잡도의 교환을 고려해야하는 환경에 적용될 수 있는 구조를 가짐을 시사한다.
본 논문의 구성은 다음과 같다. 먼저 2장에서는 유한체 및 삼항 기약다항식의 기본적인 특성을 살펴본다. 3장에서는 GF(2”), " = 2所인 경우에 삼항 기약다항식을 이용한 병렬 곱셈기의 하드웨어 구조에 대해 알아본다. 4장에서는 3장의 결과를 기반으로 직렬-병렬 곱셈기를 제시한다. 5장에서는 직렬-병렬 곱셈기의 복잡도에 대해 살피고 6장 결론에서는 n=2m+l 인 경우를 포함하여 병렬구조곱셈기와 제안하는 곱셈기의 효율성을 비교 분석하여 제안한 곱셈기가 갖는 장점과 단점에 대해서 기술하고자 한다.
Ⅱ. 유한체 및 삼항 기약다항식
유한체는 덧셈과 곱셈에 대해서 결합법칙과 교환법칙, 분배법칙이 성립하고, 덧셈에 대한 항등원과 역원, 곱셈에 대한 항등원과 역원을 가지는 유한개의 원소로 구성된 집합이다'61. 유한체 위에서 두 원소의 덧셈을 하드웨어로 구성하면, 각 비트를 XOR 것으로 나타난다. 그러나 유한체 위의 곱셈 연산은 덧셈과 달리 XOR와 AND가 연관되어 나타나는 복잡한 과정으로 이루어진다.
유한체 GF(2")는 GF(2) 위의 如차 기약 다항식 />(x)에 대해 GF(2)[妇/。(矿)로 생각할 수 있다. 그러므로, 유한체 GF(2")의 임의의 원소는 n-1 차 다항식으로 표현된다. 즉, 유한체의 두 원소 A(x), B(x)^GF(2n) 는
#
으로 표현된다. 여기에서 如一1 에 대해아, b戶GF(2) 이다 또한 이를 간단히 벡터 형식으로 71 = («„-i, zz„-2, ---, ai, e0)로 표현한다.
일반적으로 연산의 효율성을 위해서 유한체 GF(2") 을 생성하는 界차 기약 다항식 />(%)을 삼항 기약다항식으로 택한다.
정의 1
/>(/mGF(2)[x]인 也차 다항식 중 항의 개수 가세 개인 기약다항식을 GF⑵ 위의 삼항 기약다항식 (trinomial) 이라 한다.
기약다항식 》(%)는 GF(2”)의 원소 A(x), B(x) 의 곱셈연산의 결과가 유한체 GF(2") 의 원소가 되도록 모듈러 감산 연산에 쓰인다.
본 논문에서는 삼항 기약다항식 从x) = x"+ xk+l 에서 砂응로 가정한다. 삼항 기약다항식이 존재하는 경우 이러한 다항식은 항상 존재한다冋.
Ⅲ. 2m×m 병렬 곱셈기 (n=2m)
유한체의 차수가 n = 2m 이라 하면 A{x), B(x) 는 각각 다음과 같이 표현할 수 있다.
#
이 때 A{x)B(x) mod》(x) 는
#
여기서
#
이 때 A(x)Bi(x) modp(x), A(x)B()(:r) modZ>(x)는 2m차 다항식과 차 다항식의 모듈러 곱셈(modular multiplication)이다. 따라서 2”zx m 곱셈 기(multiplier)를 통해 위의 두 계산을 구현할 수 있고 A(x)B(x)mod Z>(x)는 A(x)B1(x) modX^), A(, x)B0(x) modX^) 결과값을 모듈라 연산을 통해 구할 수 있다. 따라서 2mx m 곱셈기을 통해 다시 2*%wn i 곱셈기를 만들 수 있다.
먼저 모듈러 감산을 하기 전 A(£)와 B()(x)의 곱셈 결과는 攵笊부터 %版-2항을 갖는다. 이 부분은 삼항 기약다항식 />*) (에 의해 모듈러 감산이 되어야 하는데 »에 대한 가정( 前:号)에 의해 차수 2 仇 이상의 항은 한번의 모듈러 감산만으로 ”( = 2m) 이하의 차수로 낮출 수 있다. 왜냐하면 의 최대 차수인 x3m-2 는 用:)에 의해 建“와 建+1 로 나누어 지는데 이 때 为< 号이므로 为一 2< 以이다.
A(x)와 BQ)의 곱셈 결과에서 %師부터 %3”-2 항에 대한 모듈러감산은 구체적으로 다음과 같다.
#(1)
이제 (1)을 기반으로 2m x 所 병렬 곱셈기를 구해보자.
#
라 하자. 일단 4愆)와 风愆)의 곱셈에서 x2ra 이상의 항을 고려하지 않는다면
#
이다.
이 부분은 아래 행렬식 (2)에서 T와 B의 곱으로 나타낼 수 있다.
必”이상의 항은 식(1)에서 각각 두 항으로 나누어진다. 이 때 나누어진 첫 번째 항만을 고려하면 co부터 c, "_2은 다음과 같이 바뀐다(A(x)와 B0(x) 의 곱셈의 최고차 항이 光訊-2 이고 이를 모듈라 감산한 항은 m~2 차이다).
#
이 부분은 다시 아래 행렬식 ⑵에서 (T+U) 와 3의 곱으로 나타낼 수 있다. 마지막으로 식 ⑴에서두 번째 항은 모듈러 감산 후에 각 계수가 아 부터 cm+k-2 에 더해지므로 최종적으로 행렬식 ⑵를 얻게 된다.
#(2)
이 때 C는 (2所XI) 행렬이고 B는 (mxl) 행렬이고 T, U, V는 모두 (2m X m) 행 렬이 다. 따라서 4(x)Bo(x)modZ>(x)의 계수 c()부터 c:"”—i은 T+ U + 丫의 각 행의 원소와 3행렬의 내적(inner product) 으로 얻을 수 있다.
이 때 T+ U+ 丫의 각 행은 규칙적인 성질을 가지고 있는데 구체적으로 다음과 같다.
#
는 다항식 A(x)를 벡터 형식으로 나타낸 것이라 하고
#
라 흐卜자. 또한, 4;는 A* 를 i+1 번 오른쪽으로 순환 이동한 벡터라 하고 Z, _»+i 은 Z를 i-k+1 번 오른쪽으로 순환이동한 벡터를 나타낸 것이라 하자. 그러면 행렬 T+"+y의 각 행은 다음과 같이 분류 될 수 있다.
① 0GM为一1, 인 행은 각 각 벡터의 앞에서 m개의 원소와 같다.
② 在인 행은 각각 Z+* i , _ 벡터의 앞에서 m개의 원소에서 얻어진다.
따라서 A(xXB()(x) mod0(x)을 계산하기 위한 2m xm 병렬 곱셈기는 A* 와 Z의 재배치와 내적에 의해 얻어질 수 있다.
[그림 1] 은 위에서 제시한 방법을 이용하여 GF©'。)에서 10x5 병렬 곱셈기를 나타낸 것이다.
[그림 1] #를 기약 다항식으로 갖는 GF(210)의 102×5 병렬곱셈기
Ⅳ. 2m×2m 곱셈기
이 장에서는 앞에서 제시한 2mxm 병렬 곱셈기를 바탕으로 2mx2m 곱셈기 구조를 제시한다.
#
라 하자. 이 때 A ( %) B( X) mod p( x)
#
이므로 A(x)Bl(x)xm 에 대한 모듈러감산이 필요하다. 구체적으로
① 術-…, , 當+1J後은 %"‘이 곱해져 차수가 (2m-l )보다 커진 항의 계수이므로 从%)에 의해 모듈라 감소되고 각각 …, 幻, 幼 와 gm+k-^Sm+k-2, "', gk+l, Sk 에 XOR 된다.
*2) f wi-\, f f\> f頒U S 2m— 1 > S 2w — 2 > m +1» g〃와 XOR 된다.
따라서 병렬 곱셈기를 기반으로 한 2mx2m 곱셈기는 단지 추가로 XOR gate 만 필요로 한다. 그림 2는 그림 1에서 제시한 10x5 병렬곱셈기를 기반으로 한 10x10 곱셈기이다.
(그림 2) GFC, 。)에서 10x5 병렬곱셈기를 기반으로 한 10x10 곱셈기
Ⅴ. 복잡도 분석
먼저 병렬 곱셈기는 실제 계산 전에 Z 를 만들어야 하므로 仇一1개의 2-input XOR 게이트가 필요하다. T+U+7와 B의 행렬 곱셈에서 2, 必 AND 게이트와 2成(仇一1) XOR 게이트가 필요하므로 2%x所 병렬 곱셈기의 하드웨어복잡도는
#
이다. Tx, 7肅를 각 각 XOR 게이트와 AND 게이트의 시간지연이라 하면 Z를 만들 때 XOR 게이트의 시간지연 Tx가 소요되고 행렬 계산에서 와 f log2”이 Tx가 필요하다. 따라서 병렬 곱셈기의 시간복잡도는
#
이다.
2mx2m 곱셈기는 마지막에 모듈러감산 연산이 필요하였다. 이 때 [그림 2]에서 보듯이 일부 幻는두 번 XOR되므로 "x의 시간지연과 3仇개의 XOR 게이트가 필요하다. 따라서 2m X 2m곱셈기의 하드웨어 복잡도는
#
이다.
그러나 두 클럭 후에 곱셈 결과를 얻는 구조이므로 시간복잡도는 한번 계산될 때의 시간 복잡도의 두 배가 된다. 따라서
#
이다.
Ⅵ. 결론
본 논문에서는 e=2m 경우에 GF(2")에 대한 새로운 곱셈기를 제시하였다. 이러한 구조는 n = 2m + 1인 경우에도 쉽게 적용될 수 있는데 B(x)를 다음과 같이 나누고
#
(2m+l)x(m+l) 병렬 곱셈기를 사용하여 구할 수 있다.
儿 = 2仇+1인 경우의 복잡도 분석은 아래 [표 1, 2]에 인 경우와 함께 제시하였다. 지금까지 본 논문에서 제시한 것과 같은 곱셈기 구조는 없어 两凹에서 제시한 병렬 곱셈기와 비교하였다.
[표 1, 2]에서 보듯이 제안된 곱셈기 구조는 기존의 구조에 비해 2배의 연산 시간이 소요되지만 면적이 1/2로 줄어드는 장점이 있다. 그런데 타원곡선 알고리즘은 차세대 공개키 알고리즘으로 환경이 제약적인 스마트카드, 스마트카드 리더기, 휴대폰 단말기 등에 적용이 가능하다. 또한 RSA 알고리즘과 더불어 타원곡선 알고리즘이 여러 응용 분야에 사용될 가능성이 높아짐에 따라 이들 알고리즘을 통합한 칩의 설계가 필요한 시점이다. 이런 면에서 본 논문에서 제안하는 직렬-병렬 구조는 병렬구조와 직렬구조의 중간적인 위치에서 공간복잡도와 시간복잡도의 교환을 고려해야하는 환경에 적용될 수 있는 구조를 가짐을 시사한다.
(표 1) 하드웨어 복잡도 비교
(표 2) 시간 복잡도 비교
본 연구는 한국전자통신연구원 위탁연구과제(2002-S-402) 지원으로 수행하였습니다.
참고문헌
- J.Cryptology v.3 An implementation for a fast public key cryptosystem G.B.Agnew;R.C.Mullin;I.Onyszchuk;A.Vanstone
- IEEE Trans. IT v.28 Bit-serial Reed- Solomon encoders E.R.Berlekamp https://doi.org/10.1109/TIT.1982.1056591
- IEEE Trans. Inform.Theory v.IT-22 New direction in cryptography W.Diffie;M.Hellman
- Mathematics of Computation v.48 Elliptic curve cryptosystems N.Koblitz
- IEEE Trans., Compt. v.48 no.5 Mastrovito Multiplier for all trinormials B.Sunar;C.K.Koc https://doi.org/10.1109/12.769434
- Introduction to finite fields and their applications R.Lidl;H.Niederreiter
- LNCS v.218 Uses of elliptic curves in cryp tography V.Miller
- IEEE Trans. on Compu v.48 no.10 Fast Arithmetic for Public-Key Algorithms in Galois Fields with Composite Exponents C.Paar;P.Fleischmann;P. Soria-Rodriguez https://doi.org/10.1109/12.805153
- Comm.ACM. v.21 A method for obtaining digital signatures and publickey cryptosystems R.L.Rivest;A.Shamir;L.Adelman https://doi.org/10.1145/359340.359342
- EUROCRYPT 2001, LNCS 2045 How Secure Are Elliptic Curves over Composite Extension Fields? N.P.Smart
- An introduction to error correcting codes with applications S.A.Vanston;P.C.V.Oorschot
- CHES'99 Low-complexity Arithmetic in finite field using polynomial basis H.Wu
- Standard for Public-Key Cryptosystem, Draft Version 13 IEEE P1363