DOI QR코드

DOI QR Code

Fast Scalar Multiplication Algorithm on Elliptic Curve over Optimal Extension Fields

최적확장체 위에서 정의되는 타원곡선에서의 고속 상수배 알고리즘

  • Chung Byungchun (Dept. of Electrical Engineering & Computer Science, KAIST) ;
  • Lee Soojin (Dept. of Electrical Engineering & Computer Science, KAIST) ;
  • Hong Seong-Min (Dept. of Electrical Engineering & Computer Science, KAIST) ;
  • Yoon Hyunsoo (Dept. of Electrical Engineering & Computer Science, KAIST)
  • 정병천 (한국과학기술원 전자전산학과) ;
  • 이수진 (한국과학기술원 전자전산학과) ;
  • 홍성민 (한국과학기술원 전자전산학과) ;
  • 윤현수 (한국과학기술원 전자전산학과)
  • Published : 2005.06.01

Abstract

Speeding up scalar multiplication of an elliptic curve point has been a prime approach to efficient implementation of elliptic curve schemes such as EC-DSA and EC-ElGamal. Koblitz introduced a $base-{\phi}$ expansion method using the Frobenius map. Kobayashi et al. extended the $base-{\phi}$ scalar multiplication method to suit Optimal Extension Fields(OEF) by introducing the table reference method. In this paper we propose an efficient scalar multiplication algorithm on elliptic curve over OEF. The proposed $base-{\phi}$ scalar multiplication method uses an optimized batch technique after rearranging the computation sequence of $base-{\phi}$ expansion usually called Horner's rule. The simulation results show that the new method accelerates the scalar multiplication about $20\%{\sim}40\%$ over the Kobayashi et al. method and is about three times as fast as some conventional scalar multiplication methods.

EC-DSA나 EC-ElGamal과 같은 타원곡선 암호시스템의 성능 향상을 위해서는 타원곡선 상수배 연산을 빠르게 하는 것이 필수적이다. 타원곡선 특유의 Frobenius 사상을 이용한 $base-{\phi}$ 전개 방식은 Koblitz에 의해 처음 제안되었으며, Kobayashi 등은 최적확장체 위에서 정의되는 타원곡선에 적용할 수 있도록 $base-{\phi}$ 전개 방식을 개선하였다. 그러나 Kobayashi 등의 방법은 여전히 개선의 여지가 남아있다. 본 논문에서는 최적확장체에서 정의되는 타원곡선상에서 효율적인 상수배 연산 알고리즘을 제안한다. 제안한 상수배 알고리즘은 Frobenius사상을 이용하여 상수 값을 Horner의 방법으로 $base-{\phi}$ 전개하고, 이 전개된 수식을 최적화된 일괄처리 기법을 적용하여 연산한다. 제안한 알고리즘을 적용할 경우, Kobayashi 등이 제안한 상수배 알고리즘보다 $20\%{\sim}40\%$ 정도의 속도 개선이 있으며, 기존의 이진 방법에 비해 3배 이상 빠른 성능을 보인다.

Keywords

1.서론

타원곡선 암호시스템 (Elliptic Curve Crypto- system)은 1985년에 Miller[1] 와 Koblitz[2]에의해 독자적으로 제안되었다. 그 이후 타원곡선 암호 시스템은 안전하고 효율적 구현이 가능한 암호 시스템으로 주목을 받아왔다. 타원곡선 암호시스템의 안전성은 타원곡선 이산대수 문제(ECDLP; Elliptic Curve Discrete Logarithm Problem)에 기반한다. 유한체 상에서 정의되는 타원곡선에서의 이산대수 문제는 일반적으로 타원곡선과 동일한 크기를 갖는 유한체에서의 이산대수 문제보다 더 어렵다고 알려져 있다[3] . 따라서 타원곡선 암호시스템은 동등한 안전도를 갖는 유한체에서의 암호 시스템보다 작은 크기의 키를 요구하기 때문에 고속의 소형 암호 시스템 구현이 용이하다. 보통 160 비트 크기의 타원곡선과 1024 비트 크기의 유한체가 동등한 안전성을 가진 것으로 비교된다[4]. 이러한 장점은 계산능력이나 대역폭, 메모리가 제한된 스마트카드나 무선 단말기 등의 응용에 적합함을 보여준다.

타원곡선 암호시스템에서는 타원곡선 위의 한 점 P에 대한 상수배 (scalar multiplication) kP 연산이 주된 연산이다. 상수배 연산은 반복적인 덧셈과 두 배 연산으로 이루어지기 때문에, 타원곡선 암호 시스템의 성능은 덧셈과 두 배 연산의 반복 횟수에 비례하게 된다. 반복 횟수를 줄이기 위한 방법들은 기존 모듈러 멱승연산에서 곱셈 횟수를 줄이려는 방법과 유사하다[5] . 따라서 모듈러 멱승연산에서의 이러한 연구를 타원곡선 상수배 연산에 적용할 수 있다. 그러나 타원곡선에서는 타원곡선 덧셈과 뺄셈의 계산량 차가 거의 없기 때문에, 모듈러 멱승에서는 적용이 쉽지 않던 부호화된 이진 방법 (signed binary method)이나 덧셈-뺄셈 사슬(addition- subtrac- tion chain), 부호화된 윈도우 방법 (signed win- dow method) 등의 방법을 효과적으로 적용할 수 있다.

한편, 타원곡선에서는 타원곡선 특유의 방법인 Frobenius 사상 (Frobenius map) 을 이용한 base-Φ전개방법을 사용하여 덧셈/뺄셈 횟수를 획기적으로 줄일 수 있다. 이는 기존의 어떤 방법보다 효율적인 방법으로 알려져 있다[5].

Frobenius 사상을 이용한 base-Φ전개 방식은 Koblitz에 의해 처음 제안되었다[6]. Koblitz의방법은 GF(2). GF(4), GF" GF(16) 유한체에서 정의되는 타원곡선에만 적용 가능한 방법이다. Muller[7]와 Cheon 등[8]은 basep 전개 방식을 GF(2r), 에서 정의되는 타원곡선으로 확장시켰다. 한편, Koblitz는 특성계수(characteris- tic) 2가 아닌 GF(3)과 GF(7)의 홀수 특성계수를 갖는 유한체에서 정의되는 타원곡선에서의 base-Φ전개 방식을 제안하였으며[9], Smart는 128이하의 작은 홀수 특성계수를 갖는 유한체 GF(q)에서 정의되는 타원곡선에서의 일반화된 base-Φ전개 방식을 제시하였다[10].

1998년, Bailey와 Paar는 32 또는 64 비트 고성능 마이크로프로세서에서 소프트웨어 구현에 적합한 GF(pm) 형태의 유한체인 최적확장체(OEF; Optimal Extension Field)를 제안하였다[11] . OEF에서는 프로세서를 최대한 활용할 수 있도록 특성계수 P 를 프로세서 워 드 크기에 적합한 232 또는 264 에 가까운 큰 소수를 사용한다. 따라서 Muller나 Smart의 base-Φ전개 방식을 OEF 위에서의 타원곡선에 그대로 적용하기 위해서는 232 또는 264 크기의 방대한 테이블이 필요하게 된다. Kobayashi 등은 Muller나 Smart의 방법을 작은 크기의 테이블을 사용하여 OEF에 적용할 수 있도록 개선하였으나[12], 여전히 개선의 여지가 남아있다.

본 논문에서는 OEF 위에서의 타원곡선에서 base-Φ전개 방식을 적용한 효율적인 상수배 연산 알고리즘을 제안한다. 본 논문에서 제안하는 base-Φ전개 방식은 Horner의 법칙(Horner's rule)[13]을 적용한 방법으로 Kobayashi 등의 방법과는 다른 base-Φ전개식을 사용한다. 이와 같은 전개 방식을 적용하게 되면 큰 상수배 연산 문제가 여러 개의 작은 상수배 연산 문제로 바뀌게 된다. 이 때, 작은 상수는 유한체의 특성계수 정도의 크기가 된다. 이렇게 해서 생긴 여러 개의 작은 상수배 연산은 일괄처리 기법[14] 을 이용하여 계산의 효율을 더욱 높일 수 있다. 일괄처리 기법은 여러 개의 상수배 연산을 동시에 계산하는 과정에서 중복되는 연산 부분을 제거함으로써, 각각 독립적으로 처리하는 것보다 계산의 효율을 높일 수 있는 방법이다. 기존의 이러한 일괄처리 기법은 인증서버와 같이 동시에 많은 서명을 일괄적으로 생성하거나 검증하는 과정에서 발생하는 상수배 연산에 대하여 적용할 수 있는 방법이었다. 그러나 본 논문에서는 한 서명 내에서 일괄처리 기법을 적용하며, 또한 일괄처리 기법을 최적화함으로써 계산의 효율을 극대화한다. 본 논문에서 제안하는 방법은 Kobayashi 등의 방법보다 20%~ 40% 정도의 속도 향상이 있고, 또한 기존의 이진 방법에 비해서는 3배 이상 빠른 성능을 보인다.

본 논문의 구성은 다음과 같다. 2장에서는 OEF 위에서의 타원곡선과 이 타원곡선에서 정의되는 Frobenius 사상, 그리고 Kobayashi 등의 base-Φ전개 방식을 이용한 상수배 연산 알고리즘을 살펴본다. 3장에서는 일괄처리 기법에 대해 살펴보고, 4장에서는 Horner 방법을 이용한 base-Φ 전개에 최적화된 일괄처리 기법을 적용한 효율적인 상수배연산 알고리즘을 제안한다. 5장에서는 4장에서 제안한 상수배 연산 알고리즘을 분석하고, 다른 상수배연산 알고리즘과 성능 비교를 한다. 마지막으로 6장에서 결론을 맺는다.

Ⅱ. 최적확장체 위에서의 타원곡선

1. 타원곡선의 정의

GF(p), p>3 상에서 정의되는 정규 타원곡선 (non-supersingular elliptic curve) E는 다음과 같은 형태의 방정식으로 표현된다.

E: y2=x3+ax+b       (1)

여기서 a, b∈GF(p) 이고, 4a3+27b2≠0을 만족한다. GF(p)상에서 타원곡선 E를 정의하는 이유는 상수배 연산에서 Frobenius 사상을 이용한 base-Φ전개 방식을 적용하기 위함이다.

E(GF(pm))는 GF(p)의 확장체 GF(pm)상의 타원곡선 E 위의 점들의 집합으로 정의된다. E(GF(pm))는 O(point at infinity)와 식 (1)을 만족하는 점(x, y)∈GF(pm) × GF(pm)들로 구성되며, O을 항등원으로 하는 덧셈에 대한 가환군(abelian group) 을이룬다.

2. Frobenius 사상

P=(x, y)를 타원곡선 E 위의 GF(pm)-점이라 하면, Frobenius 사상 Φ는 다음과 같이 정의된다.

Φ: (x, y)→(xp, yp)

이 Frobenius 사상 Φ는 E(GF(pm))의 자기준동형(endomorphism) 사상이 되며, 다음의 방정식을 만족한다.

\(\phi^{2}-t \phi+p=0,-2 \sqrt{p} \leq t \leq 2 \sqrt{p}\)

Frobenius 사상을 구현 관점에서 살펴보면, 다항식 기저 표현의 원소일 경우 Frobenius 사상 Φ를 계산하는데 2(m-1)번의 GF(p) 곱셈이 필요하다[12]. 따라서 Frobenius 사상 연산은 m2번의 GF(p) 곱셈을 필요로 하는 확장체 곱셈보다 빠르게 구현될 수 있는 연산이다.

3. Frobenius 사상을 이용한 base-Φ 전개

타원곡선에서의 상수배 연산은 상수 k와 타원곡선 위의 한 점 p가 주어졌을 때, kP를 구하는 연산을 말한다. 여기서 상수 k를 Frobenius 사상 Φ 의 다항식으로 전개할 수 있다[12].

\(k=\sum_{i=0}^{l} u_{i} \phi^{i}, \text { where }-\frac{p}{2} \leq u_{i} \leq \frac{p}{2}\)       (2)

이 식에서 I은 대략 2m+3 정도 된다.

길이가 2m+ 4인 k에 대한 Φ의 다항식 표현은 다음 정리 1에 의하여 길이가 m인 Φ의 다항식 표현으로 축소될 수 있다.

정리 1 E(GF(pm))에서 Frobenius 사상 Φ를 m 번 반복하면 항등사상(identity map)이 된다.

Φm = 1 on E(GF(pm)).

이는 \(x^{p^{\prime \prime \prime}}=x\), ∀x∈GF(pm)이기 때문이다. 따라서 Φ의 다항식 표현은 다음과 같이 축소된다.

\(\begin{aligned} &\sum_{i=0}^{2 m+3} u_{i} \phi^{i}=\sum_{i=0}^{m-1}\left(u_{i}+u_{i+m}+u_{i+2 m}\right) \phi^{i} \\ &=\sum_{i=0}^{m-1} d_{i} \phi^{i}, \text { where }-\frac{3 p}{2} \leq d_{i} \leq \frac{3 p}{2} \end{aligned}\)       (3)

Kobayashi 등은 이를 Type I 전개라 하였다.

다음의 사실을 이용하여 Type I 전개를 더 최적화 할 수 있다. 이는 di의 비트 표현에서 1'의 수를 줄이기 위한 방법이다.

\(\sum_{i=0}^{m-1} \phi^{i}=0\)       (4)

이는 정리 1과 Φ≠1라는 사실로부터 유도된 것이다. 식 (4)를 이용하면 동일한 값을 di 에 더하거나 빼도 결과는 변화가 없다. 따라서 식 (3)의 표현은 다음과 같이 바뀐다.

\(\begin{aligned} &\sum_{i=0}^{m-1} d_{i} \phi^{i}=\sum_{i=0}^{m-1}\left(d_{i}-z\right) \phi^{i}, \text { where }-\frac{p}{2}<z<\frac{p}{2} \\ &=\sum_{i=0}^{m-1} c_{i} \phi^{i}, \text { where }-2 p<c_{i}<2 p \end{aligned}\)       (5)

여기서 z는 \(\sum w_{H}\left(c_{i}\right) ^2)\)를 최소화하는 정수이다. Kobayashi 등은 이를 Type II 전개라 하였다.

4. Base-상수배 연산 알고리즘

식 (5)를 이용하면, 상수배 연산 kP를 다음과 같이 표현할 수 있다.

\(\begin{aligned} &k P=\sum_{i=0}^{m-1} c_{i} \phi^{i} P, \text { where }-2 p<c_{i}<2 p \\ &=c_{0} P+c_{1} \phi P+c_{2} \phi^{2} P+\cdots+c_{m-1} \phi^{m-1} P \end{aligned}\)       (6)

\(\begin{aligned} =& c_{0} P+\phi\left(c_{1} P+\phi\left(c_{2} P+\phi(\cdots+\right.\right.\left.\left.\left.\phi\left(c_{m-1} P\right) \cdots\right)\right)\right) \end{aligned}\)       (7)

전통적인 base-Φ상수배 연산 방식들은 GF(2r), r≤6 또는 GF(q), q<128과 같은 작은 유한체에서 정의된 타원곡선에서만 적용되었다[6-8][10]. 이들 방법은 식 (7)에서 iP, 1≤ i ≤2p를 미리 계산하여 테이블에 저장해 놓고, 식을 연산하는 과정에서 ciP는 테이블 참조를 통하여 처리하는 방식을 취하였기 때문이다. 따라서 232 또는 264에 가까운 큰 소수를 특성계수로 갖는 OEF에서는 이러한 테이블 이용 방식을 적용할 수 없다. Kobayashi 등은 이러한 base-Φ상수배 연산 방식을 OEF에 적용할 수 있도록 이전의 방법을 개선하였다[12].

Kobayashi 등의 방법을 간단한 예를 들어 설명한다. 어떤 상수배 kP가 식 (6)의 형태로 전개되었다고 하자.

kP=15P+13Φ2P+2Φ3P=(1111)2P+(1101)2Φ2+(0010)2Φ3P

우선, ΦP, Φ2P, Φ3P를 계산하여 테이블에 저장한다. X는 O로 초기화한다. 그리고 base-Φ 전개식에서 계수의 이진표현 중에서 첫 번째 비트 (MSB)가 '1'인 항들을 찾아 테이블을 참조하여 덧셈하고 두 배 한다. 따라서 X←X+P+Φ2P를 계산하고, X←2X를 수행한다. 마찬가지로 두 번째 비트가 '1'인 항들을 찾아 덧셈하고 두 배 한다. 그리고 마지막 비트(LSB)에서는 덧셈만 수행한다.

이 알고리즘은 Type I 전개의 경우 평균적으로 m( [ log2p ] +1)/2번의 덧셈과 [ log2p ] 번의 두 배 연산을 필요로 한다. Type II 전개의 경우는 \(m \cdot \overline{w_{H}}\)번의 덧셈과 [ log2p ] 번의 두 배 연산을 필요로 한다. 여기서 \( \overline{w_{H}}\)는 ci들의 평균 해밍중을 의미한다.

Ⅲ. 일괄처리 기법(Batch Technique)

일괄처리 기법은 여러 개의 상수배 연산을 동시에 처리하는 과정에서 중복되는 연산 부분을 제거함으로써. 각각 독립적으로 처리하는 것보다 계산의 효율을 높일 수 있는 방법이다. 이는 인증 서버와 같이 동시에 많은 서명을 일괄적으로 생성하거나 검증하는 과정에서 발생하는 상수배 연산에 대해서 적용할 수 있다. 본 장에서는 일괄처리 기법의 기본 개념을 기술한다[14].

우선, 일괄처리 개념 설명에 필요한 간단한 병렬이진 상수배 연산 알고리즘을 소개한다. n개의 t 비트 정수 kj(0 < j < n-1)와 타원곡선 위의 한 점 P가 주어졌을 때, 상수배 kj P(0≤j≤n-1)을구하는 알고리즘은 알고리즘 1과 같다.

알고리즘 1. Parall이 Binary Scalar Multiplication

이 알고리즘은 t -1번의 타원곡선 두 배 연산과 \(\sum\left(w_{H}\left(k_{j}\right)-1\right)\)번의 타원곡선 덧셈 연산을 필요로한다.

따라서 이 알고리즘의 연산 속도를 향상시키기 위해서는 \(\sum w_{H}\left(k_{j}\right)\)를 줄이는 것이 중요하다.

다음으로, 내용 전개에 있어 필요한 집합 연산자를 살펴본다. 집합 연산자  ∩, ∪, Δ은 각각 교집합, 합집합, 차집합을 의미하며, 다음과 같이 구현될 수 있다.

a∩b:=a&b, a∪b:=a|b, aΔb:=a^(a&b)

여기서 &, |, ^는 비트단위(bitwise) 연산자 AND, OR. XOR를 나타낸다.

다음 보조정리 2는 일괄처리 기법의 기본 아이디어를 제공한다.

보조정리 2 임의로 선택된 \(a=\sum_{i=0}^{t-1} a_{i} 2^{i}\), \(b=\sum_{i=0}^{t-1} b_{i} 2^{i}\)가 주어졌을 때, a와 b의 교집합을 c = a∩b라 하면 다음의 부등식을 만족한다.

wH(aΔc)+wH(bΔc)+wH(c)≤wH(a)+wH(b)

증명. t비트 a와 b가 임의로 선택되었으므로, 교집합 \(c=a \cap b=\sum_{i=0}^{t-1} a_{i} b_{i} 2^{i}\)의 평균해밍중 wH(c)는 \(\frac{t}{4}\)이다.

따라서 wH(a)+wH(b)-(wH(aΔc)+wH(bΔc)+wH(c))≥0, 단 등호는 c = Φ일 때만 성립한다.

실제로 알고리즘 1을 이용하여 aP와 bP를 구하는 데 필요한 덧셈의 횟수를 살펴보면, aP와 bP를독립적으로 계산할 경우는 t-2 번의 덧셈이 필요하고, 교집합 c를 이용하여 aP = (aΔc)P + cP, bP = (bΔc)P + cP를 계산할 경우는 3t/4-1번의 덧셈이 필요하다. 따라서 교집합을 이용하면 약 25% 정도의 덧셈을 줄일 수 있다. 보조정리 2는 n 개의 경우로도 확장이 가능하다. 단, n 개로 확장된 경우는 상수배 연산에 필요한 덧셈의 횟수가 교집합을 어떻게 생성하고 결합하느냐에 따라 차이가 발생하게 된다. 따라서 효율적인 교집합 생성 및 결합알고리즘이 필요하다.

Ⅳ. 제안하는 상수배 연산 알고리즘

본 장에서는 OEF 위에서의 타원곡선에서 base- Φ 전개 방식에 일괄처리 기법을 적용한 효율적인 상수배 연산 알고리즘을 제안한다. 제안하는 방식은 식 (7)처럼 Horner의 법칙(Horner's rule)[13]을 적용한 방법으로 Kobayashi 등의 방법과는 다른 base-Φ 전개식을 사용한다. 이와 같이 식을 전개하면 큰 상수배 문제가 여러 개의 작은 상수배 문제로 바뀌게 된다. 즉 kP 문제가 여러 개의 작은 ciP 문제로 바뀌는 것이다. 이렇게 해서 생긴 여러 개의 작은 상수배 문제에 일괄처리 기법을 적용하여 계산의 효율성을 높일 수 있다. 본 논문에서는 이 일괄처리 기법을 최적화하여 상수배 연산 알고리즘에 적용함으로써 계산의 효율성을 극대화한다.

1. 최적화된 일괄처리 알고리즘

본 절에서는 n(>1) 개의 상수배 연산이 동시에 주어졌을 때, 이를 효율적으로 처리할 수 있는 최적화된 일괄처리 알고리즘을 제안한다. 이 알고리즘은 크게 분할 단계 (partitioning stage)와 결합 단계 (combining stage)로 구성된다. 분할 단계에서는 주어진 상수 ci들을 서로소(disjoint)인 부분집합으로 나누는 기능을 하고, 결합 단계에서는 분할 단계에서 만들어진 부분집합들을 결합하여 원래의 각 집합들을 복원하는 기능을 한다.

1.1 분할 단계 (Partitioning Stage)

n개의 상수 cj가 주어지면 공집합이 아닌 서로소인 부분집합은 최대 2n- 1개까지 가능하다. 여기서 공집합은 0을 의미한다.

인덱스 i를 (en-1 … e1e0)2와 같이 이진수로 표현하면, 서로소인 부분집합 si, 1 ≤ i ≤ 2n-1는 다음의 공식에 의해 쉽게 구할 수 있다.

\(s_{i}=\bigcap_{e_{j}=1} c_{j} \Delta \bigcup_{e_{j}=0} c_{j}\)

예를 들어 n = 3인 경우, 서로소인 부분집합을 벤 다이어그램으로 표현하면 그림 1과 같다. s101은 (c2∩c0)Δc1과 같이 구할 수 있다.

그림 1. n = 3일 때의 분할 벤 다이어그램

1.2 결합 단계 (Combining Stage)

분할 단계에서 서로소인 부분집합으로 나누어진 조각들은 다시 결합과정을 통하여 원래의 집합으로 복원되어야 한다.

n = 3인 경우를 예로 들어 설명한다. 〔14〕에서는 다음과 같은 단순한 방법으로 원래의 집합을 복원하였다.

c0=s001∪s011∪s101∪s111

c1=s010∪s011∪s110∪s111

c2=s100∪s101∪s110∪s111

그러나 s110∪s111을 미리 계산해둔다면 e1과 c2에서 1번의 ∪을 줄일 수 있다. 여기서 ∪은 실제로 상수배 연산 알고리즘에서 타원곡선 덧셈 연산에 해당한다. 따라서 ∪ 연산을 최소화하는 방법이 필요하다. n = 3인 경우는 눈으로 쉽게 찾을 수 있지만, n이 커지면 이러한 방법은 쉽지 않으므로 정형화된 방법이 필요하다.

1.3 최적화된 결합 알고리즘

분할 단계에서 생성된 부분집합 si에서 인덱스 i = (en-1 … e1e0)2들 중에서 e0 = 1인 si 들을 찾아 합집합을 구한다. 이것이 c0가 된다. 그리고 e0을 제외한 (en-1 … e1)2의 비트 패턴이 동일한 si들의 합집합을 구하여 \(\left.\mathcal{S}_{\left(e_{n-1}\right.} \cdots e_{1} 0\right)_{2}\)에 저장하고, 나머지는 삭제한다. 이렇게 해서 한 단계가 끝난다. 다음에 ei =1인 si를 찾아 합집합을 구한다. 이는 c1이 된다. 그리고 (en-1 … e2)2의 비트 패턴이 동일한 si들의 합집합을 구하여 \(\left.\mathcal{S}_{\left(e_{n-1}\right.} \cdots e_{2} 00\right)_{2}\)에 저장하고, 나머지는 삭제한다. 계속 이 과정을 반복하면 ci, 0≤i≤n-1을 구할 수 있게 된다. 구현 측면에서 볼 때, 연결 리스트(linked list) 자료구조를 사용하면 효율적인 구현이 가능하다. 자세한 알고리즘은 알고리즘 2를 참고하기 바란다.

알고리즘 2. Optimized Batch Scalar Multiplication (OBSM)

이해를 돕기 위해 n = 3인 간단한 예를 들어본다.

c0=s001∪s011∪s101∪s111

s010=s010∪s011, delete s011

s100=s100∪s101, delete s101

s110=s110∪s111, delete s110∪s111

c1=s010∪s110

s100=s100∪s110, delete s110

c2=s100

일반적으로〔14〕의 경우는 n(2n-1-1) 번의 ∪이 사용되고, 제안 알고리즘의 경우 2n+1-2n-2번의 ∪이 사용된다. 증명은 정리 4를 참고하기 바란다. n = 3인 경우 〔14〕는 9번의 ∪ 이 사용되고, 제안 알고리즘은 8번의 ∪이 사용된다. n이 커짐에 따라 차이는 더 커지게 되는데 이를 표 1에 정리하였다.

표 1. n에 따른 결합에 필요한 합집합 연산의 수

2. 상수배 연산 알고리즘

본 절에서는 최적화된 일괄처리 기법을 base-Φ 상수배 연산 알고리즘에 적용한 새로운 상수배 연산알고리즘을 제안한다. 일괄처리 기법에서 설명한 방법을 그대로 상수배 연산 알고리즘에 적용할 수 있다. 먼저 식 (7)에 있는 상수배 연산 kP의 base- Φ 전개를 다시 기술하면 다음과 같다.

\(\begin{aligned} &k P=\sum_{i=0}^{m-1} c_{i} \phi^{i} P, \text { where }-2 p<c_{i}<2 p \\ &=c_{0} P+\phi\left(c_{1} P+\phi\left(c_{2} P+\phi(\cdots+\right.\right. \\ &\left.\left.\left.\phi\left(c_{m-1} P\right) \cdots\right)\right)\right) \end{aligned}\)       (8)

제안 알고리즘은 이 식에 있는 c0P, c1P, … , cm-1P 를 일괄처리 기법으로 계산하고, 그 결과에 몇 번의 Frobenius 사상과 덧셈을 수행하면 상수배 연산을 완결 짓게 된다.

식 (8)을 연산하기 위한 모든 과정을 알고리즘 3 에 기술하였다.

알고리즘 3. Base- Scalar Multiplication with Batch Technique

Ⅴ. 알고리즘 분석 및 성능 비교

본 장에서는 제안한 상수배 연산 알고리즘의 성능을 분석한다. 타원곡선에서 상수배 연산은 반복적인 덧셈과 두 배 연산으로 이루어지기 때문에, 타원곡선암호 시스템의 성능은 덧셈과 두 배 연산의 반복 횟수에 비례하게 된다. 따라서 본 장에서는 알고리즘의 성능을 덧셈과 두 배 연산의 반복 횟수 관점에서 분석하고 다른 알고리즘과 성능을 비교한다.

제안 알고리즘은 상수배 연산 kP를 수행하는데, 식 (8)에서 작은 상수배 연산 ciP와 Frobenius 사상, 그리고 나머지 덧셈 연산을 필요로 한다. 제안 알고리즘에 필요한 모든 연산의 수는 정리 3과 같다. 식 (8)을 보면 직관적으로 알 수 있으므로 증명은 생략한다.

정리 3 k는 m [ log2p ] 비트 정수이고, P는 타원곡선 E(GF(pm))위의한 점이라 할 때, 상수배 연산 kP는 m개의 [ log2p ] +1 비트 상수배 연산과 m-1 번의 Frobenius 사상, 그리고 m-1 번의 타원곡선 덧셈 연산을 필요로 한다.

그럼, 이제 정리 3에서 m개의 [ log2p ] +1 비트 상수배 연산에 필요한 타원곡선 덧셈과 두 배 연산 회수를 알아본다. 제안 알고리즘에서는 이를 위해 최적화된 일괄처리 방식을 사용한다. 이때 일괄처리 방식에 필요한 덧셈과 두 배 연산은 다음 정리를 기반으로 구할 수 있다.

정리 4 \(\overline{w_{H}}>2^{n-1}\)을 만족하는 임의의 71개의 [ log2p ] +1 비트 정수 c0, c1, …, cn-1이 주어졌을 때, 상수배 연산 ciP(0≤i≤n-1)는 [ log2p ] 번의 두 배 연산과 평균 \(\frac{2^{n}-1}{2^{n-1}} \overline{w_{H}}+2^{n}-2 n-1\)번의 덧셈 연산을 필요로 한다. 여기서 \( \overline{w_{H}}\)는 ci들의 평균해밍중을 나타낸다.

증명. 알고리즘 2에서 타원곡선 연산이 사용되는 부분은 3, 8. 10번째 줄이다.

3번째 줄을 살펴보면, 각 부분집합 si의 평균 해밍중은 \(\frac{\overline{w_{H}}}{2^{n-1}}\)이 된다. \(\overline{w_{H}}>2^{n-1}\)의 조건을 만족한다면, si의 평균 해밍중은 1보다 크게 된다. 그러므로 이에 필요한 덧셈 연산은 \(\frac{\overline{w_{H}}}{2^{n-1}}-1\)회가 된다. 따리서 3번째 줄의 2n-1개의 siP구에는 \(\left(2^{n}-1\right) • \left(\frac{\overline{w_{H}}}{2^{n-1}}-1\right)\)번의 덧셈과 [ log2p ]번의 두 배 연산이 필요하다.

8, 10번째 줄에서는 i = 0일 때 6번째 줄 for 루프에서 각각 2n-2-1번의 덧셈이 필요하다. 이 둘을 더하면 2n-1-2가 된다. 이런 식으로 계속하면 i = n-1일 때는 각각 20-1번의 덧셈이 필요하다. 따라서 이들을 모두 더하면 다음과 같다.

\(\sum_{i=0}^{n-1} 2^{n}-2=2^{n+1}-2 n-2\)

따라서 전 과정에 필요한 연산을 정리하면 [ log2p ]번의 두 배 연산과 평균 \(\frac{2^{n}-1}{2^{n-1}} \overline{w_{H}}+2^{n}-2 n-1\)번의덧셈 연산이 필요하다.

정리 4에서 \(\overline{w_{H}}>2^{n-1}\)의 조건이 필요한 이유를 살펴본다.  ci가 [ log2p ] +1비트이므로 알고리즘 2의 분할 단계에서 0이 아닌 서로소인 부분집합 의수는 최대 [ log2p ]+1개까지 가능하다. 따라서 필요 이상의 ci를 사용하면 많은 수의 부분 집합이 공집합이 되므로 일괄처리 방식의 장점을 최대로 활용하지 못하게 되는 결과를 초래한다. 따라서 알고리즘 3에서 일괄 처리 방식을 사용할 때 평균 해밍중을 고려하여 최적의 n을 선택해야 한다. 이렇게 n개씩 나누어 처리하는 것이 최적의 방법이 된다. 물론 이때 한 번 계산된 2iP 테이블은 다시 계산할 필요 없다.

예를 들어 EC-KCDSA 표준에서 권고하고 있는 32비트 프로세서에 적합한 파라미터 ECP31M07K(p=231-1, m=7)과 64비트 프로세서에 적합한 파라미터 ECP61M05K(p = 261 -1, m = 5)의 경우를 고려해보자[15].

우선 p = 231-1, m = 7의 경우를 살펴보면, 상수 4를 Type I과 Type II로 base-Φ 전개했을 경우 n을 1부터 7까지 선택했을 때, ciP당 필요한 덧셈 횟수의 분석 값과 시뮬레이션 값은 각각 그림 2와 그림 3과 같다. 시뮬레이션 결과 Type I 전개의 경우는 n = 4일 때 가장 좋았고, Type II 전개의 경우는 n = 5일 때 가장 좋은 결과를 보였다. m = 7이므로 이 경우는 3과 4 두 개로 나누어 처리하는 것이 가장 바람직하다.

그림 2. \( \overline{w_{H}}\) = 16일 때의 ciP당 필요한 덧셈 수(Type I)

그림 3. \( \overline{w_{H}}\) = 11 일 때의 ciP당 필요한 덧셈 수(Type II)

그림 2와 그림 3을 분석해 보자. Type I 전개의 경우 n이 4보다 커질 때 분석 값과 시뮬레이션 값이 차이가 나는 것을 볼 수 있는데, 이는 분석 값에는 부분집합이 공집합인 경우도 덧셈 연산 횟수에 포함되었기 때문이다. Type II 전개의 경우 시뮬레이션 값이 분석 값보다 성능이 떨어지는 것을 볼 수 있는데 이는 Type II 전개 과정에서 해밍중을 최소화하기 위해 공통되는 비트 패턴을 많이 제거했기 때문이다. 이는 일괄처리 방식에서 공통되는 비트 패턴을 최대한 이용하려는 의도와 개념상 상반된다. 이 모든 방법을 적용하여 상수배 연산을 수행할 경우 정리 3에 의해 Type I 전개의 경우는 31번의 두 배 연산과 72번의 덧셈 연산이 소요되고, Type II의 경우는 31번의 두 배 연산과 60번의 덧셈 연산이 소요된다. 이는 Kobayashi 등의 방법이 Type I의 경우 143회와 Type Ⅱ의 경우 108회인 것에 비해 각각 40%. 20% 정도 향상된 수치이다. 또한 이진 방법보다는 3배 이상 빠름을 알 수 있다. 이를 표 2에 정리하였다.

표 2. E(GF(231-1)7) 에서 상수배 연산 알고리즘에 필요한 연산수의 비교

p = 261-1, m=5의 경우는 상수 k를 Type I과 Type II로 base-Φ 전개했을 경우 n을 1부터 5까지 선택했을 때, ciP당 필요한 덧셈 횟수의 분석 값과 시뮬레이션 값은 각각 그림 4와 그림 5와 같다. 이 경우는 n = 5일 경우 최적의 값을 갖는 것을 확인할 수 있다. 따라서 m = 5이므로 한 번에 일괄처리 기법을 이용하여 처리하면 된다. 상수배 연산에 소요되는 총 연산수를 표 3에 정리하였다.

그림 4. \( \overline{w_{H}}\) = 31일 때의 ciP당 필요한 덧셈 수(Type I)

표 3. E(GF(261-1)5) 에서 상수배 연산 알고리즘에 필요한 연산수의 비교

마지막으로 상수배 연산에 소요되는 메모리양을 분석한다. p = 231-1, m = 7 경우와 같이 한 번에 일괄처리 기법으로 처리가 안 되는 경우는 알고리즘 1에서 2iP를 테이블에 저장할 필요가 있다. 따라서 [ log2pm ] 비트 원소를 [ log2p ] 개의 엔트리에 저장하려면 [ log2p ] [ log2pm ] 비트 메모리를 필요로 한다. 또한 알고리즘 3에서 n개 단위로 일괄처리를 하므로 알고리즘 2에 필요한 메모리양은 결합과정에서 2n개의 [ log2pm ] 비트 원소를 테이블에 저장해야 하므로 2n [ log2pm ] 비트 메모리를 필요로 한다. 반면 p = 261-1, m = 5와 같은 경우는 한 번에 일괄처리 기법을 적용할 수 있으므로 알고리즘 1을 한번만 실행하면 된다. 따라서 2iP를 테이블에 저장할 필요가 없다. 따라서 알고리즘 2에 필요한 메모리양만을 고려하면 된다. 알고리즘 2에서는 결합 단계를 위해 2m개의 [ log2pm ] 비트 원소를 테이블에 저장해야 하므로 2m [ log2pm ] 비트 메모리만을 필요로 한다. 이를 종합하여 표 4에 정리하였다.

그림 5. \( \overline{w_{H}}\)=20 일 때의 ciP당 필요한 덧셈 수(Type II)

표 4. 상수배 연산 알고리즘에 필요한 메모리양 분석 (단위 비트)

Ⅵ. 결론

본 논문에서는 OEF에서 정의되는 타원곡선에서 효율적인 상수배 연산 알고리즘을 제안하였다. 이 알고리즘은 base-Φ 전개 방식에 최적화된 일괄처리기법을 적용한 방법으로 Kobayashi 등의 방법에 비해 Type I 전개에 대해서는 40%정도, Type II 전개에 대해서는 20%정도의 속도 개선이 있었다. 또한 이는 기존의 이진 방법에 비해서는 3배 이상 빠른 성능을 보였다.

일괄 처리 기법은 주로 인증 서버와 같이 동시에 많은 서명을 생성하고 검증하는 경우에 적용 가능한 방법이었다. 그러나 본 논문에서는 한 서명 내에서도 일괄처리 기법을 적용할 수 있도록 함으로써, 클라이언트 측에서도 효율적으로 서명을 생성하고 검증할 수 있는 방법을 제공하였다. 그러나 이 방법은 일괄처리 기법을 사용함에 따라 Kobayashi 등의 방법보다는 약간의 메모리를 더 사용하는 단점이 있다. 이는 작은 상수배 계산 과정과 결합 단계에서 필요한 부분인데, 그 양은 수 KB 정도이며 그리 부담되는 양은 아니다.

일괄처리 기법을 이용한 base-Φ상수배 연산을 타원곡선 암호시스템에 적용함으로써, 고속의 소형암호 시스템을 필요로 하는 임베디드 시스템과 같은 분야에서 타원곡선 암호시스템이 효과적으로 활용될 수 있을 것으로 기대된다.

* 본 연구는 첨단정보기술 연구센터를 통하여 과학재단의 지원을 받았고 정보통신부 및 정보통신연구진흥원의 대학 IT연구센터 육성·지원사업의 연구결과로 수행되었음.

References

  1. V. Miller, 'Use of Elliptic Curve in Cryptography,' in Advances in Cryptology - CRYPTO'85, LNCS, pp. 417-426, 1985
  2. N. Koblitz, 'Elliptic Curve Crypto- systems,' Mathematics of Computa- tion, vol. 48, pp. 203-209, 1987 https://doi.org/10.2307/2007884
  3. M. Wiener and R. Zuccherato, 'Fast Attacks on Elliptic Curve Crypto- systems,' in Selected Areas in Crypto- graphy - SAC'98, 1998
  4. A. Menezes, 'Elliptic Curve Crypto- systems,' CryptoBytes, vol. 1, no. 2, pp. 1-4, 1995
  5. D. Gordon, 'A Survey of Fast Exponentiation Methods,' Journal of Algorithms, vol. 27, pp. 129-146, 1998 https://doi.org/10.1006/jagm.1997.0913
  6. N. Koblitz, 'CM-curves with Good Cryptogrpahic Properties,' in Advances in Cryptology - CRYPTO'91, LNCS 576, pp. 279-287, 1991
  7. V. Muller, 'Fast Multiplication on Elliptic Curves over Small Fields of Characteristic Two,' Journal of Cryptology, vol. 11, pp. 219-234, 1998 https://doi.org/10.1007/s001459900045
  8. J. Cheon, S. Park, S. Park and D. Kim, 'Two Efficient Algorithms for Arithmetic of Elliptic Curves Using Frobenius Map,' in Proceedings of the First International Workshop - PKC'98, LNCS, pp.195-202, 1998
  9. N. Koblitz, 'An Elliptic Curve Implementation of the Finite Field Digital Signature Algorithm, in Advances in Cryptology - CRYPTO'98, LNCS 1462, pp. 327-337, 1998
  10. N. Smart, 'Elliptic Curve Crypto- system over Small Fields of Odd Characteristic,' Journal of Cryptology, vol. 12, pp. 141-151, 1999 https://doi.org/10.1007/PL00003820
  11. D. Bailey and C. Paar, 'Optimal Extension Fields for Fast Arithmetic in Public-Key Algorithms,' in Advances in Cryptology - CRYPTO'98, LNCS 1462, pp. 472-485, 1998
  12. T. Kobayashi, H. Morita, K. Kobayashi and F. Hoshino, 'Fast Elliptic Curve Algorithm Combining Frobe- nius Map and Table Reference to Adapt to Higher Characteristic, 'in Advances in Cryptology - EURO- CRYPT'99, LNCS 1592, pp. 176-189, 1999
  13. D. Knuth, The Art of Computer Programming. Volume 2: Seminumeri- cal Algorithms, Addition-Wesley, 1981
  14. D. M'Raihi and D. Naccache, 'Batch Exponentiation : A First DLP-based Signature Generation Strategy,' in 3rd ACM Conference on Computer and Communication Security, pp. 58-61, 1996
  15. TTA 표준 : 부가형 전자 서명 방식 표준 - 제3부 : 타원곡선을 이용한 인증서 기반 전자서명 알고리즘, 2001년 11월