DOI QR코드

DOI QR Code

A Fast Multiplication Method for Elliptic Curves defined on small finite fields

작은 유한체 위에 정의된 타원곡선의 고속연산 방법

  • 박영호 (세종사이버대학교 정보시스템공학과) ;
  • 정수환 (숭실대학교 정보통신전자공학부)
  • Published : 2002.10.01

Abstract

As Koblitz curve, the Frobenius endomorphism is know to be useful in efficient implementation of multiplication on non-supersingular elliptic cures defined on small finite fields of characteristic two. In this paper a method using the extended Frobenius endomorphism to speed up scalar multiplication is introduced. It will be shown that the proposed method is more efficient than Muller's block method in [5] because the number of point addition for precomputation is small but on the other hand the expansion length is almost same.

Koblitz 타원곡선과 같이 표수(characteristic)가 2인 작은 유한체 위에서 정의된 non-supersingular 타원곡선은 스칼라 곱을 효율적으로 구현하기 위하여 프로베니우스 자기준동형 (Frobenius endomorphism)이 유용하게 사용된다. 본 논문은 확장된 프로베니우스 함수를 사용하여 스칼라 곱의 고속연산을 가능하게 하는 방법을 소개한다. 이 방법은 Muller[5]가 제안한 블록방법(block method) 보다 선행계산을 위해 사용되는 덧셈량을 줄이는 반면에 확장길이는 거의 같게 하므로 M(equation omitted )ller의 방법보다 효율적이다.

Keywords

Ⅰ. 서론

타원곡선 암호시스템의 효율적인 구현을 위하여 Koblitz 곡선'3: 또는 작은 표수의 유한체 위에서 정의된 타원곡선들의 사용이 제안되었다:°成. 최근 PKCO2⑹에서 표수(characteristic)가 2인 작은유한체 위에서 정의된 non-supersingular 타원곡선중 작은 cofactor를 갖는 암호학적으로 효율적인 곡선들의 사용을 제안하였다. 이들 곡선들은 타원곡선 연산 중 두 배하는 연산(doubling) 대신에 효율적으로 계산가능한 프로베니우스 자기준동형을 이용한 고속연산을 가능하게 하는 방법을 사용한다. 즉, 스칼라 곱 연산시 스칼라 정수를 이진 전개하는 대신에 프로베니우스를 사용하여 확장전개하여 고속연산을 가능하게 한다. 일반적으로 이러한 곡선의 연산속도는 프로베니우스 확장길이와 밀접한 관계가 있을 뿐만 아니라 binary method, window method"' 와 같은 프로베니우스 확장전개를 적용하는 방법에 따라 달라진다.

Miillei■는 연산속도를 향상시키기 위해 스칼라 정수를 프로베니우스 함수로 확장전개 후 block 단위로 나누어 선계산을 사용하는 방법을 제안하였다⑸. 만일 타원곡선 E(F, ) 에서 임의의 점에 대한 스칼라 곱셈을 할 때 block을 "로 잡으면 프로베니우스의 확장길이는 1/w 배 줄어드는 반면에 매번 ((g+1)" —1)/2개 점들의 선계산을 해야한다. 따라서 유한체와 타원곡선의 위수 등의 파라미터들의 환경에 따라 효과적인 연산 방법이 될 수도 있다.

본 논문에서는 정수를 프로베니우스 자기준동형 。으로 확장전개하는 방법대신 적당히 작은 m에 대해 프로베니우스의 w 제곱승인로 전개하므로 Muller의 방법에 비해 확장길이는 거의 같고 선계산량을 줄이는 새로운 방법을 제안한다. 이 방법은 유한체 Fq. 이 에서 정규기저 (normal basis)로 구성되었을 경우 프로베니우스 0가 한번 쉬프트연산이라면 0"도 钏번 쉬프트 하는 연산이므로 e 처럼 쉽게 계산 가능하다는 것에 기반하였다.

본 논문은 다음과 같이 구성되어 있다. 2절에서는 표수 2인 유한체 위에 정의된 타원곡선의 일반적인 성질과 프로베니우스 자기준동형의 확장방법을 소개한다. 3절에서 확장된 프로베니우스 함수를 사용하여 확장길이를 줄이는 방법을 제안하고 효율적인 알고리즘을 제시한다. 4절에서 제안된 방법의 선계산양을 Miiller의 방법과 비교하여 분석하고 5절에서 결론을 맺는다.

Ⅱ. 타원곡선과 프로베니우스 확장

암호학적 응용의 관점에서, 표수가 2인 유한체위에서 정의된 non-supersingular 타원곡선들이 많은 관심을 끌어왔으므로 본 논문에서는 표수 2인 유한체 위에서 정의된 곡선들만 고려할 것이다. F。는。개의 원소를 갖는 표수 2인 유한체라 하고 ?=2s(l<se5) 라 흐!자. 또한 瓦를 의 대수적폐포(algebraic closure)라 하자. 다음과 같은 형태의 Weierstrass 방정식에 의해 주어진 non-supersingular 타원곡선 E(F)를 표현하면

#(1)

이다. 여기서 «2 ㈣는 의 원소이고, a6 丰 0이다. E(F) 의 厂지수승 프로베니우스 자기준동형 (Frobenius endomorphsim)은 다음과 같이 정의된다;

#

유명한 Hasse 정리로부터, 瓦 尸。)의 위수는

#

로 정수 /와 밀접하게 관련된다. 여기서 t는 다음식 (2)을 만족하는 프로베니우스 자기준동형 0의 자취 (trace) 이匸}:

#(2)

여기서 /는 non-supersingular 타원곡선 E(、F) 에 대해서는 홀수여야 함에 주의호].자.

이제 작은 정수 如21에 대하여 車=0"라 하자. 다시 Hasse-Weil 정리에 의해 다음을 만족한다:

#(3)

여기서 t0 = 2, 九 = 7 그리고 1 > 2에 대하여,

#

이다. 그러면 함수 夕= e”는

#

이므로 타원곡선 E의 정의체가 으로 간주하면 W는 研尸*)에서의 프로베니우스 함수로 볼 수 있으므로 기존의 방식'"■或의 프로베니우스 전개방식이 그대로 사용될 수 있다. 즉, 0의 기약다항식 (3)에 의해, 임의의 정수 m 을 所冬力列로 간주하여 0로 다음과 같이 확장전개할 수 있다. ([2.4.5.6] 참조).

[정리 1]

에 대하여, 임의의 는 p= M广로 표현되어진다. 여기서 정수계수 %M {— E72 + 1, •• •072}이고, 为 w "%Tog WVzm〃z(0)1 +3이다.

다음은 정리 1의 결과를 얻기 위한 임의의 P=a, + QjWwZ[ 質]에 대하여 0의 확장을 효율적으로 계산하는 알고리즘 제시한다.

(알고리즘 1)

〔알고리즘 1〕은 Miiller가 제시한 알고리즘과 거의 같으며 단지 단계 3에서 卽-확장의 계수 "는 ± 〃2 까지 허용하는 것이 다르다. 하지만 °에 대하여 W- 확장이 유일하게 표현되지 않아도 되므로 아무런 문제가 발생하지 않으며 Miiller의 알고리즘보다 확장길이를 조금이라도 줄일 수 있게끔 한다.

Ⅲ. W확장을 이용한 곱셈연산

본 절에서는 정수 을 卽로 확장전개시킬 때 확장 길이를 축소시키는 방법을 살펴본다. 공개키 암호 시스템에서는 E(F, .)의 위수가 최소한 160비트 정도길이의 큰 소수 인수 t>을 가질 것을 요구한다⑺. 따라서 타원곡선 E(F, .)가 큰 소수 위수 0인 점 P를 갖는다 하자. 타원곡선 군의 위수를 #E(FA로 표시하면 lfE(F/) = /ip로 나타낼 수 있고, 이때 h를 E(Fr)의 cofactor라 부른다. 또한 Hasse 정리에 의해 타원곡선의 위수는。"-1의 노름(Norm), 즉,

E(F)=N(0-1)

을 만족한다. 일반적으로, 타원곡선의 스칼라 곱은큰 정수 »次寸”에 대하여 mP 계산을 해야한다. 정리 1에 따르면, m의 프로베니우스 확장길이는 m의 노름에 비례한다. 프로베니우스 확장길이를 줄이기 위해 Smart™, Solinas(4)는 정수 ”?을 勿0]의 원소로 보아 m을 0” —1로 나누어 나머지 를얻고 »«대신에 Q를 사용하여 프로베니우스 전개를 하는 방법을 제안했다. 이때 나머지 0은 의 노름에 절반정도인 <7b + 1의 크기의 노름을 갖고 따라서 프로베니우스 확장길이를 약 50%나 줄일 수 있다. 또한 최근 PKCO2⑹에서는 노름이 2인 원소 a를 사용하여 0을 나눈 나머지 p를 가지고 프로베니우스 확장길이를 최적화하여 줄이는 방법과 알고리즘을 제시하였다.

하지만 이 방법은 프로베니우스。로 전개하는 것 대신에 車=0°로 전개할 때에는 직접 적용할 수가 없다. 왜냐하면 일반적으로 tfeZ[<2>] 이지만 aaZRf] 이기 때문에 m을 a로 나눈 나머지 Q는 Z[0]의 원소이지만 勿 0]의 원소라고 할 수가 없다. 따라서 알고리즘 1을 적용할 수가 없다. 그러므로 이 문제를 해결하기 위한 방법으로 다음과 같은 정리들이 필요하다.

[보조정리 2]

작은 정수 z心1에 대하여 歹= 0*라하고 砂 -堀 + g=0을 만족한다. 하자. 정수 &, 匕에 대해서 0= dw+ c*라 하면

#(4)

#(5)

여기서 ci = l, di = 0 이다. 또한 c“Mq% 을 만족한다.

[증명]

碎=仰-<1로 부터 夕= 0"= ㎛"T= + C 1 <Z>) = M-10+ C 河-@2 = - gc dw-i)0+ ( C 代+

을 얻고 이 식으로부터 첫 번째 식 (4)와 (5)를 얻는다. 이제 마지막 식을 증명호].자. 만일 0=1, 2 경우 Hasse 정리에 의해 쉽게 증명할 수 있다. m约3에 대하여 수학적 귀납법을 이용하여 증명하자. 먼저 w보다 작은 경우 마지막 식이 만족한다. 가정하자.

그러면

#

을 갖는다. t가 홀수이고 #이므로

#

을 갖는다. 그러므로 It+lKg 이므로 Ic/M(严 만족하고 증명이 완성된다. □

[정리 3]

작은 정수 沙41에 대하여 勿= 0"'=d+c0라하고 임의의 원소 p=a+bg (E 로 놓자. 그러면 다음을 만족하는 정수 的 y, z가 존재한다:

1. p= (x+ y W) + z0, — qu>/2<.z<qu, /2.

2. Nm/z(x+y質)M “Nz啊z(P), “S严

3. 만일 凡*娘(0)约22心'이면

Nz[u, yz(x+yV)<2Nztmj/zkp) 이다.

[증명]

T= 以2[。1伝(0/。)로 놓자. 먼저 다음 조건과 , 2 = sc+z를 만족하는 s, zwZ를 계산한다:

#(6)

그러면 P= n + r20=, j + (sc+z)0= s ( V— d) + r} + z<Z>= s 0+分 - sd+z<2>이다. x=, [ —sd와 y=s로 놓으면 보조정리 2에 의해 p = (x+ye)+ze>^ 를 만족한다. 이제 두 번째 부분을 증명하자.

X=Q(0)라 하자, (x + y 田)/0=1 — z(0/p) 이므로

#

이다. 식 ⑹에 의하여 zTUO이므로

#

이다. 마지막 부분은 두 번째 부분으로부터 쉽게 유도된다. 口

정리 3은 정수 %을 a로 나눈 나머지 p7\ peZ[ 罚 임을 제공하는 것이 아니고 Nzsvz<x +炉旷) M 以Nz[0〕/z(p)를 만족하는 p=(x+y0) + z(P로 표현될 수 있음을 나타낸다. 또한, 如가 작은 값이므로 대개 모든 나머지。들의 노름 값은 0版+1보다 크다. 따라서 우리는 Nzml伝怎+ y勁RNzs/z(Q)임을 얻고 이것은 m의 叩로 확장전개길이나 0로 확장 전개한 길이가 거의 같음을 알 수 있다. 특별히, 喝=1인 경우 2 = 0 이고 x + yV= p 이다.

마침내, 정리 3에 따라 우리는 mP의 계산을 다음과 같이 시행한다. :

mP= pP= ((x + y T) + zl>)P=(, x + yW)P+ <D(zP) 여기서 (* + >@)戶를 계산시 x+y哗Z[質]이므로 알고리즘 1을 사용하여 ?>.로 확장전개할 수 있다. 또한 0(zP)의 계산은 -q%<z<矿[2이므로- 次 가선 계산에 포함된다. 그러므로 mP의 총 계산량은 W 확장전개를 사용한 x + j浊의 계산에다 많아야 타원곡선 덧셈 하나만을 추가하면 중분하다.

다음은 정수 所에 대해 노름이 0인 원소 a ( 02"J/z(a) = />) 를 사용하여 m을 나눈 나머지。를 구하는 알고리즘 2伯9와 정리 3을 사용하여 mP를 계산하는 알고리즘 3을 제시한다.

(알고리즘2)

(알고리즘 3)

Ⅳ. 선계산량

3절에서 우리는 秫尸의 계산을 프로베니우스。의 전개를 이용하지 않고 적당히 작은 정수 犯에 대한 平= 时의 확장전개를 이용한 고속곱셈 연산 방법을 소개했다. 본 절에서는 Miiliei■의 Block 방법에 필요한 선계산량과 제안된 방법의 선계산량을 비교할 것이다.

프로베니우스 0의 확장방법을 이용하여 mP를 계산하는 방법은 다음과 같다⑸ :

#(7)

여기서 - MZUW시2 이며 정리 1에서 w=l이므로 확장길이는 k<. \ log 小%如/z(P)1 +3이다. 고속연산을 위해 Mtiller는 (7)식에 Block 방법을 다음과 같이 적용하였다. 만일 블록의 사이즈를

犯41로 잡는다면

#

로 표현할 수 있다. 따라서 대괄호 안의 #를 선계산하여 저장한 후 I 初妃 개의 타원곡선 덧셈을 하여 »2尸를 계산한다. 이 때 -g/2+lMr耳〃2 이므로 (q+l)개의 写尸를 如개 만큼 더해야 하므로 (<?+1)*개를 개산해야 한다. 이 계산 중에 모든 ry=0 경우와 - Q는。로부터 쉽게 구할 수 있으므로 이 사실들을 고려한다면 실질적으로 ((g+1)祉-1)/2 점을 선계산하여 저장해야 한다. ([5. 정리3〕). 이 방법은 블록 사이즈 "가 커지면 상당히 많은 양을 선계산해야 하므로 효율적이지 못하다, 그러므로 Miiller의 Block 방법은 고정된 점의 스탈라곱이나 아주 작은 블록사이즈 경우에만 실질적인 적용이 가능하다.

우리의 방법은 적당한 블록사이즈 ar를 미리 결정한 다음 정리 1과 3 그리고 알고리즘 1, 2, 3을 사용하여 다음과 같이 계산한다.

#

여기서 -q"/2 + lQ声#72 이다. 따라서 제안된 방법은 Miiller의 Block 방법과 같은 기술을 적용하지 않지만 프로베니우스。를 璽=<护로 확장하여 전개하므로 Miiller의 Block 방법과 유사한 효과를 얻을 수 있다. 이 경우 선계산 하여 저장할 양은 정리 1에 의해 广/2점들이다. 따라서 이 방법은 Miiller 의 ((g+l)”-l)/2의 선계산해야 할 점을 <?"72개의 점으로 줄여준다. 여기서의 선계산은 mP를 계산하기 위한 임의의 점 P가 주어질 때마다 계산되어져야 하므로 선계산의 양을 줄이는 것은 고속연산을 가능케 하는 중요한 요소가 된다. 그 뿐만 아니라 모바일이나 스마트 카드와 같이 대폭역과 저장능력이 낮은 환경에서는 더욱더 중요하다.

다음〔표 1〕과〔그래프 L2.3〕들은 작은 a와 w 에 대해서 Muller 방법과 우리의 방법의 선계산해야할 양을 비교한 것이다.

[표 1] 선계산양 비교

[그래프 1]

[그래프 2]

[그래프 3]

Ⅴ. 결론

본 논문에서는 표수(characteristic)가 2인 작은 유한체 위에서 정의된 non-supersingular 타원곡선에서 스칼라인 정수를 프로베니우스 자기준동형 6으로 확장전개하여 적당한 블록사이즈 而에 대해 블록방법을 사용하는 Milllei■의 방법대신에 프로베니우스의 w 제곱승인 車= (殆로 전개하므로서 Muller 의 방법에 비해 확장길이는 거의 같고 선계산량을 ((々+1)"'-1)/2에서 qtv/2 으로 줄이는 새로운 방법을 제안하여 스칼라 곱의 고속연산을 좀더 가능하게 하였다.

References

  1. London Mathematical Society Lecture Note Series v.265 Elliptic Curves in Cryptography Ian Blake;Gadiel Seroussi;Nigel Smart
  2. ETRI Journal v.32 no.1 Scalar Multiplication on Elliptic Curves by Frobenius Expansions J. Cheon;S. Park;C. Park;S. Hahn
  3. Advances in Cryptology-Crypto '91 CM-curves with good cryptographic properties N. Koblitz
  4. Advances in Cryptology-Crypto '97 An improved algorithm for arithmetic on a family of elliptic curves J. Solinas
  5. Journal of Cryptology Fast multipication in elliptic curves over small fields of characteristic two V. Muller
  6. LNCS v.2274 Public Key Cryptography, PKC 2002: An improved method of multiplication on certain elliptic curves Young-Ho Park;Sangho Oh;Sangjin Lee;Jongin Lim;Maenghee Sung
  7. IEEE Trans. Inform. Theory v.24 An improved algorithm for computing logarithms over GF(p) its cryptographic significance S. Pohlig;M. Hellman https://doi.org/10.1109/TIT.1978.1055817
  8. Journal of Cryptology Elliptic curve cryptosystems over small fields of odd characteristic N. Smart
  9. 한국정보보호학회 논문지 v.12 no.2 타원곡선에서 스칼라 곱의 고속연산 박영호;한동국;오상호;이상진;임종인;주학수