Ⅰ.서론
타원 곡선 암호시스템을(ECC)을 제외하고 대부분의 공개키 시스템은 사이즈가 큰 키를 갖는다. 이러한 성질은 스마트 카드와 무선 통신과 같이 전력과 밴드 대여폭이 제한된 응용부분에서 비실용적이다. 많은 암호학자들은 제한된 하드웨어 환경에 적용 가능한 가장 효율적인 공개키 시스템을 ECC라고 생각하였다.
XTR 공개키 시스템은 Crypto 2000에서 소개되었다.⑹ 안전성의 관점에서 볼 때, XTRe 부분 군에서의 이산 대수 문제에 기반을 두고 있다. 그러나 XTRe 부분군의 원소를 표현하고 계산하는데 표준적인 방법을 사용하지 않으며, 전통적인 방법보다 대폭적인 통신상/계산상의 이점을 갖는다. 또한 XTR 은 GF带、)을 이용하여 6F(疥)의 안전성을 획득한 최초의 방법이며, GF(、甘、)을 명확하게 구성하여 사용하지 않는다.〔6〕에서 보여지는 것과 같이, 1024 비트 RSA의 안전성과 동일한 XTRe 임의의 소체 Z) 위에서의 ECC에 기반을 둔 암호시스템과 속도와 안전성 면에서 비슷하다. XTR의 공개키는 ECC 보다 두 배만큼 사이즈가 크지만, 파라미터를 초기화하는 데에는 RSA와 ECC의 파라미터 초기화 시간보다 무시할 만큼의 작은 시간이 소요된다. 따라서 XTRe 스마트 카드와 무선 통신과 같은 응용 부분에서 RSA나 EC*] 대한 훌륭한 대안이 될 수 있다. 그러므로 XTR을 위한 최적화된 확장체를 찾는 것은 의미 있는 일이 된다. GF(/>6”)형태의 확장 체를 이용하여 XTR이 일반화될 있고, 일반화에 대한 디자인이〔9〕 에서 간단하게 언급되었다. 그러나〔9〕 에서는 최적화된 확장체를 제시하지 않았다.
본 논문에서는, 32비트 워드 시스템에서 여러 확장체 GF3C중 최적화된 확장체를 제안한다. 소수의 크기에 따라 다음의 다섯 가지 XTR을 위한 확장 체를 살펴보면 충분하다.
□ XTR을 위한 일반화된 확장체 :
GF")— GF(、护””)
- GF(、們 — GF(社) , 소수 의 크기는 약 170비트이고, m = 1.
- GF(/>12) -+ GF(?). 소수》의 크기는 약 85비트이고, m = 2.
- GF(铲) — GF(/>6) , 소수 의 크기는 약 64비트이고, m = 3.
- GF(评、) — GF(p12). 소수 />의 크기는 약 32비트이고, m = 6.
- GF(Z>66) - GF<S), 소수 의 크기는 약 16비트이고. m=ll.
본 논문에서는 위의 다섯 가지 확장체의 기본연산에 대한 복잡도를 비교하고 XTR을 위한 최적 확장 체를 선택한다. 또한 77(g), " V Z이 주어질 때 Tr(gn) 을 계산하는 단순 지수승(single exponentiation) 의 비용도 고려한다. XTR에서'가장 자주 사용되는 연산은 다음 세 가지 형태이다:
#일 때, #
위의 세 가지 연산은 XTR 단순 지수승의 속도를향상시키는데 중요한 역할을 한다. GF(胪*)에서 기본 연산을 최적화하기 위해서, 소수 와 GF3) 위에서 GF(、£&、)을 정의하는 다항식을 선택하는데 있어서 다음의 세 가지 성질을 조건으로 명시한다.
1, 力를 pseudo-Mersenne 소수로 선택한다. 즉, log 2C S■ "을 만족하는 c에 대하여 p=2"±c 형태이며, 이것은 효율적인 부분체에서의 모듈러 reduction을 가능하게 한다.
2, GF3)위에서 GF(甘”、)을 정의하는 다항식을 이항다항식 (binomial)이나 2m-\h all-one-polynomial (AOP)로 선택하여 확장체에서 효율적인 부분체에서의 모듈러 reduction을 가능하게 한다.
3, 力의 크기를 프로세서의 워드사이즈보다 작고 동시에 비슷하게 선택하여 모든 부분체 연산이 프로세서의 빠른 정수 연산의 장점을 갖도록 한다.
세 번째 조건을 만족하기 위해서 m을 중분히 크게 선택한다. 그러면 위에서 설명한 바와 같이 프로세서의 워드사이즈보다 작고 가깝도록 t>를 선택할 수 있다. 반면 効(胪”)에서 다항식의 곱셈을 하는데 필요한 GF3)에서의 곱셈과 덧셈의 수가 빠르게 증가한다. 보통 GF3) 에서의 덧셈은 고려하지 않으나, 力가 작고 n이 크게 되면 GF3)에서의 덧셈은 무시할 수 없게 된다. 본 논문에서는 에서 카라슈바 형태의 다항식 곱셈방법任CarastubaTike method at polynomial multiplication)-®: 사용하여 부분체에서의 곱셈 수를 줄이고. GF3)에서 덧셈 수를 줄이기 위해서 카라슈바 방법을 수정한다. 위에서 언급한 소수 /)와 확장체 車(/户)에서 빠른 다항식 곱셈에 대한 고려 때문에 본 논문에서 제안하는 시스템은 단순 지수승 연산을 하는데 XTRre'10i 보다 평균적으로 두 배 이상 빠르다.
본 논문의 구성은 다음과 같다. 1절에서는 XTR 공개키 시스템에(631。)대해 간단하게 소개할 것이며, 3. 4절에서는 각각 일반화된 최적 확장체 (GOEF) 와 GOEF에서 효율적인 연산을 다룬다. 5절에서 본 논문의 구현 결과를 제시하고 이것을 기초로 하여 XTR을 위한 최적화된 확장체를 제안하며 마지막 절에서 결론을 맺는다.
Ⅱ. XTR 공개키 시스템에 대한 제고
이 절에서는〔6, 9, 10〕의 몇 가지 결과들을 다시 살펴본다.
[정의 1]
飯)에 대한 GF3&)위에서의 T心는 /z의 GF(/户)위에서 conjugates 의 합이다. 즉, Ti3) = h + h" + h 俨’ 이다.
XTR을 구성하는데 있어서, 소수 p, g와 자연수 me 다음의 조건을 만족해야 한다. :
- 力와 2所+1은 소수이고, />(mod 2所+1)은 Z2m+i 에서 원시근(primitive root)이어야 한다.
-。飯3)은 160비트 이상의 소수 g를 인수로 포함하여야 한다.
자연수 也에 대하여 0”(X)은 "-th cyclotomic 다항식이다. 위의 첫 번째 조건은 GF3&)에서 타입 I 의 최적 정규 기저 (Optimal Normal Basis of Type I)의 존재성을 보장한다.(“ 정리 5(2) 두 번째 조건에 의하여 위수가 g인 부분군은 GF(/>6*)의 진 부분 체에 속하지 않고 오직 GF(/>6”)에만 포함된다.
[정의 2]
cwGF(/>2”)에 대하여, 다항식 F(c, x)=x3-cXa+ceX-l w GF3&XX]은 GF(Z>6”)에서 如站, 知을 근(이 근들은 서로 틀리지 않아도 된다)으로 갖으며, 정수 "에 대하여 上=硫+ 给+織라고정의하자.
(Note)
만약 F(c, X)이 GF(/>2”)위에서 기약 다항식이면, c«= B(用)이다
보조정리 1 [9, 보조정리 2.1]
i . c= ci.
ii. 血)/] + »仿2 + 购加=c'.
iii. h0h1h2 = 1.
iv. 자연수 "에 대하여, c, , = c*广= c* .
v. 모든 4에 대하여, 。(如) 丨 舟-力*+1이고 如>3 이거나, e GF3&)이다.
vi. (c"), = c”=(c, )”.
vii. 정수 界 에 대하여 , c“v GF(p2m).
따름정리 1 [9, 보조정리 2.3].
c, C“T, Cn, C”+1 이 주어져 있다고 하자.
1 - C2* — c * — 2c” .
ii. c„+2 = c*c„+ ]-cc„+ c„_].
iii. c2n-i = cnex*cn- cp~* c/'+ c„+i r.
iv. c2„+i = c„*c„+1-c* c„fi"+ .
XTR에서 주어진 Tr(g)로부터 Tr(g”)을 계산하는 알고리즘은 이산 대수 문제에 기반을 둔 공개키 시스템에서 g”을 계산하는 것과 유사하다.
[정의 3]
&( C)= (, C“, C”+ J M GF32")3이 라고 하자.
주어진 cv GF(/)m), meZ+으로부터 S〃(c)을 계산하기 위해서, 〔6〕의 알고리즘 237( 也=1인 경우) 과〔9〕의 알고리즘 4.2에서 제안되었다. 또 다른 단순 지수승 계산 방법은'0 평균적으로〔6〕의 알고리즘 2.3.7보다 35% 빠르다. S”(c)을 계산하는 알고리즘에서 E9J0)가장 빈번하게 사용되는 연산은 보조정리 L의 i .iii.iv 이다. 따라서 S“(c)을 계산하는 알고리즘의 복잡도는 ", , 次 V GF(/>2次)에 대해 %2, 钊, 巧-无꺼을 계산하는 복잡도에 의존한다.
보조정리 2.[10' 보조정리 2-2]
x, y, z e GF(.p2), p — 2 mod 3 이라고 하자.
i . 事을 계산하는 것은 연산량이 없다.
ii. /을 계산하는 것은 GF3)에서 2번의 곱셈이 소요된다.
iii. ◎을 계산하는 것은 GF3)에서 2.5번의 곱셈이 소요된다.
iv. 巧-財을 계산하는 것은 GF(p)에서 3번의 곱셈이 소요된다.
보조정리 3.®' 보조정리 "I
와 2m+le 소수^고, 力(mod 2m+l)은 Zm+i 에서 원시근이라고 하자. 그러면 x, y, ze GFG>2")에 대하여 다음이 성립한다.
i . %까을 계산하는 것은 연산량이 없다.
ii. /을 계산하는 것은 GF3)에서 곱셈하는 복잡도의 80%가 소요된다.
iii. 々을 계산하는 것은 GF3) 에서 4必번의 곱셈 이 소요된다.
iv. 冷-以꺼을 계산하는 것은 GF3)에서 4伏번 의 곱셈이 소요된다.
(주의)
GF(Z>2)에서 S”(c)은 GF3)에서 710g”z의 곱셈으로 계산된다.™
[정리 1]
cu GF(/>2”)과 자연수 〃이 주어져 있다고 하자. 그러면 S”(c)은 GF3)에서 (2a+b)-
log 2”의 곱셈으로 계산된다. 여기서 a는 % m GF(p2m) 에 대하여 GF3)에서 /을 계산할 때 필요한 곱셈 수이며, b는 x, y, zw GF(》2”)에 대하여 GF(/>)에서 列-y/싸을 계산할 때 필요한 곱셈 수를 의미한다.
Ⅲ.일반화된 최적 확장체(GOEF)
GF3”) 에서 유한체 연산의 성능은 주로 소수 와 GFW)을 정의하는 다항식과 같은 확장체에 대한 파라미터의 선택에 의존한다. 곱셈에서 reduction 단계는 가장 많은 시간 복잡도를 갖는다. 따라서 reduction단계에서 복잡도를 줄이기 위해 다음과 같은 많은 방법들이 제안되었다.
[정의 4]
c이 양의 정수일 때, pseudo-Mersenne 소수는 2"士c , log2c m I (l/2)n 1 형태의 소수를 말한다.
[정의 5][3]
최적 확장체(Optimal Normal Extention : OEF)는 다음의 조건을 만족하는 유한체 GFS을 말한다.
i . 力는 pseudo-Mersenne 소수이다.
ii. GF3)위에서 기약 다항식 尸(%) = b-四이 존재한다.
[정리 2]
m ≥2인 정수이고, w 드 GF(》)*라고 하자. 그러면 이항 다항식 **-矛이 GF(舟[x]에서 기약이기 위한 필요충분조건은 다음의 두 조건이다.
i . m의 소인수는 GF(p)위에서 也의 위수 e를 나누고, 3-l)/e는 나누지 않는다.
ii. 만약 w=0 mod 4이면 />=1 mod 4이다.
추가적인 연산상의 장점을 갖는 두 가지 형태의 특별한 OEF가 있다. 소수 p=2n±l 인 타입 I OEF 은 매우 작은 복잡도로 부분체의 모듈로 reduction 이 가능하다. 기약 이항 다항식 *”-2을 갖는 타입 n OEF의 경우 확장체 모듈로 축소의 복잡도로 reduction가 가능하다. 확장체 모듈로 축소의 복잡도를 줄이는 또 다른 방법이 있다.
[정의 6]
다음 형태의 다항식 /, *을 %-th-all-one-polynomial (AOP) 라고 부른다.
#
다음의 정리는 AOP가 언제 기약이 되는지를 보여준다.
[정리 3]
P를 소수라고 할 때, /이 GF3)위에서 기약이기 위한 필요충분조건은 m+1은 소수이고, />(mod m+l)은 Z, ”+i에서 원시근이다.
[정리 4]
m+1은 소수이고, />(mod m+1)은 Z, ”+i에서 원시 근이고, 2는 소수이거나 소수의 멱승이고 a 를 m-th AOP의 근이라고 하자. 그러면 {a, a", a'""} 은 GF(舟위에서 GF(M)의 기저가 된다. 또한 {a, a", …, a""'} = {a, a2, ..., a”}이성립한다.
(증명)
정리의 첫째 사항은〔11〕에 의하여 성립한다. 둘째 사항을 증명하기 위하여 Z, "+i에서 {10疣 ..., /{1, 树을 증명하면 중분하다. OMjMM也-1 과 y mod(秫+1)이라고 하자. 그러면 护(力'- 丿-1)三0 mod(m+1)이다. 따라서 p{~}=l mod (m+1)이고 o(p) I (£-丿)이 성립한다. 그러나 0(力) = 秫(, ., 力는 mod 秫+1)에 대한 원시 근)과 /—注 秫에 의하여 다. 따라서 {1, /产T}은 모두 서로 다르며, (1, 代 P2, ■ Z>"i}= {1, 2, ..., 沥이다.
[정의 7]
집합 A = {a, , 戶…, /}이 GF(Z>)위에서 GF3") 의 기저를 이루면 4를 GF3)위에서 6瓦/产)의 nonconventional 기저라고 부른다.
본 논문에서는 기약 다항식을 AOP로 하는 GF(扩) 에 대한 non-conventional 기저의 표현법을 사용한다. am+1 = 1, 1 = — tf-------a* 두 성질 때문에 non-conventional 기저에서 확장체 모듈로 reduction속도를 증가시킬 수 있다. 자세한 설명은 4.3절에서 이루어진다. 새로운 형태의 Galois 체를 소개한다.
[정의 8]
일반화된 최적 확장체(Generalized Optimal Extension Field : GOEF)은 다음의 조건을 만족하는 유한체 GF3")이다.
i . {는 pseudo-Mersenne 소수이다.
ii. 이항 다항식 %”- 初과 wth AOP 둘 중에 하나는 기약이다.
한 쌍의 pseudo-Mersenne 소수와 기약 다항식을 가지고 GOEF를 구성할 수 있다. GOEF를 구성하기 위해서, 기약 다항식으로서 이항 다항식이나 AOP의 선택의 문제가 남아있다. 그러나 GOEF 에서 기약 다항식의 결정은 pseudo-Mersenne 소수의 선택에 관련이 있다. 기약 다항식의 선택은 확장체 모듈로 reduction를 하는데 소요되는 복잡도를 결정한다. 그리고 pseudo-Mersenne 소수의 선택은 부분체 모듈로 reduction에 영향을 준다. 따라서 한 쌍의 pseudo-Mersenne 소수와 기약다항식을 선택하는 것은 매우 중요한 일이다. 기약다항식 /에 따라 AuGF(0*)를 다항식 기저나 정규 기저로 표현하는 것을 살펴보자.
i . /(X)이 이항 다항식일 때 #
ii. /(x)이 AOP 일 때 #
p를 워드 사이즈보다 작게 선택하기 때문에, A(x) 를 m개의 레지스터로 표현할 수 있다.
Ⅳ. GOEF에서 효율적인 연산
본 절은 GOEF가 특별한 경우일 때, 유한체 GF成) 에서 연산을 위한 기본구성을 기술한다.
4.1 덧셈과 뺄샘
두 유한체의 원소를 더하고 빼는 것은 다항식 기저나 정규 기저 표현에 의한 계수를 더하고 뺌으로써 구현이 되며 필요시에는 계산된 결과로부터 少를 더하거나 빼어서 모듈로 reduction를 실행한다.
4.2 곱셈
유한체 곱셈은 두 단계로 구분할 수 있다. 첫째 단계는, 두 유한체 원소 4( a) 와 3( a) 의 곱을 이행한다. /(*)를 이항 다항식으로 설정하고 다항식 기저를 사용할 경우 중간단계의 곱 U(a)의 차수는 2m —2 보다 작거나 같다.
#
AOP를 사용할 경우 중간단계의 곱 C'(a)의 차수는 笊보다 작거나 같다.
#
계수 c'i, (, = 0, 1, …, —2)를 계산하는데 schoolbook method를 人}용하면 GP(0) 에서 以번의 곱셈과 (m-I)?번의 덧셈으로 가능하다. 많은 공개키 알고리즘에서 유한체 원소를 곱하는 것은 매우 중요한 연산이므로 본 논문에서는 계수를 구하는데 Karastubalike Method(카라슈바 방법)를⑸ 사용하는데 이 연산 방법은 복잡도가 以»狞59)이고 부분체에서 더 많은 덧셈비용이 필요하다.(1) 이 방법을 사용하면 부분체에서 곱셈비용에 대한 상당한 장점을 갖는다. 일반적으로 GF3)에서 덧셈과 뺄셈의 비용은 고려되지 않으나 소수 z의 크기가 보통의 프로세서의 워드 사이즈보다 작게 되도록 n을 선택하면 덧셈과 뺄셈의 비용은 반드시 고려되어야 한다. 예를 들어서, 6μ(庆)에서 곱셈을 계산하는데 GF3)에서 62번의 덧셈/뺄셈과 18번의 곱셈이 필요하지만, GF322) 의두 원소를 곱하는 데에는 GF3)에서 722번의 덧셈 /뺄셈과 147번의 곱셈이 든다무록 표 2 참죄.〔표 6〕 의 결과로부터 GF(》6)에서는 T, , , “〃、*+皿= 5.76, GF32)에서는 T tn니 / add+ sub = 1.7이다. 여기서 T, 邳과 T讪+诚은 부분체에서 곱셈과 덧셈/뺄셈을 하는데 요구되는 시간을 말한다. 카라슈바 방법의 자세한 기술은 지면이 부족한 관계로 본 논문에서 다루지 않는다. 대신에 부록에서 수정된 카라슈바방법으로 GF(/户) 에서 두 원소를 곱하는 예를 보인다.
또한, 유한체 원소의 곱셈 방법으로 Schnhage -Strassen FFT 방법이 있는데 이것은 O(»?(log2>«) (10g 210g 2的)) 의 복잡도를 갖는다 그러나 이 방법은 대략 m N 302일 때 고전적인 곱셈 방법보다 좋은 성능을 발휘한다.
다음 소절에서는 C(a)=C(a) mod/(a), GF(pm) 巨 C(a)을 계산하는 효율적인 방법을 제시한다.
4.3 확장체 모듈로 Reduction
유한체 원소를 곱한 후 중간단계의 결과값 U(a)를 얻는다. 일반적으로 /(%)가 이항 다항식일 때 C{d) 의 차수는 m보다 크고, AOP일 때에는 %+1보다 클 것이다. 이 경우 모듈로 reduction을 이행한다. 모듈로 reduction을 하는 자연스러운 방법은 기약다항식으로 나머지를 가지고 long division을 하는 것이다. 그러나 기약 다항식이 특별한 형태일 경우 모듈로 reductione 계산적인 효율성을 가능하게 한다.
기약 다항식이 이항 다항식일 때 : xm-w
[정리 5] (3)
차수가 2m-2보다 작거나 같은 GP3)위에서 주어진 다항식 (7(a)에 대하여, 많아야 GF3)에서 w 를 m-l번 곱하고, 仇-1번 더하는 연산으로 C(a) 은 모듈로 /(x) = x*—w 에 의해 reduction0] 가능하다.
축소된 후 다항식에 대한 일반적인 표현은 다음과 같다 :
#
최적화를 고려하면, 기약 이항 다항식을 xm-2 으로 선택하면 곱셈은 계수의 자리 이동(shifting) 으로서 구현이 가능하다.
기약 다항식이 AOP일 때 :
xm + xm~1+- + x+l
[정리 6]
차수가 2m보다 작거나 같은 GF3)위에서 주어진 다항식 (7(a)에 대하여, 많아야 GF3)에서 n-2 번의 덧셈과, m번의 뺄셈으로 모듈로 /(%) = 广 + ・” + 1에 의해 C"(a)은 reduction이 가능하다.
# 두 성질을 이용하면, reduction된 후 일반적인 표현은 다음과 같이 주어진다 :
#
(비교)
일반적으로 곱셈은 뺄셈보다 비용이 더 많이 든다. 정리 5에서 모듈로 reductioone 많아야 GF(/>) 에서 也를 7»—1번의 곱셈이 필요한데. 0=2이면 위의 두 방법에 의한 모듈로 reduction의 복잡도는 거의 비슷하다. 그러나 钏>2이면 AOP를 사용할 때의 확장체 모듈로 reduction이 더욱 효율적이다.
Reduction 단계를 결합하거나 또는 지연하는 방법 :
a, bv GF3)을 보통의 곱셈을 할 때. 정수 곱셈과 정수 reduction 단계가 필요하다. 일반적으로 schoolbook 방법을 이용하면 以의 곱셈이 필요하다. 즉 n?번의 정수 reduction 단계가 이행되어야 한다. 이 크다면 reduction 단계의 비용은 매우 클 것이다. 따라서 reduction 단계의 수를 줄이는 방법에 의해 전체 작업량에 기여를 할 수 있게 된다. 가능한 많은 수의 개개의 곱 항을 덧셈과 뺄셈에 의하여 결합함으로써 reduction 단계의 수를 줄일 수 있게 되는데, 그러면 모듈로 力로 축적된 합을 단 한 번의 reduction으로 이행할 수 있다. 따라서 단지 所번의 reduction 단계가 필요하게 된다. 중간 결과값이 절대값으로 胪보다 크기 때문에 力가 워드 사이즈와 가까운 소수로서 선택되면. 결과가 되는 최종 reduction 비용은 원래의 reduction비용 보다 크다. 본 논문의 구현 결과에 의하면, 가 워드 사이즈이고 wi이 클 경우는 성능이 좋지 못하다. 최신워크스테이션 CPU는 레지스터 폭에 맞는 피연산자에 대한 정수 연산을 최적화되도록 되어 있어서 결합 단계에서 생성되는 워드 크기의 두 배 혹은 세배가 되는 정수 연산은 하나의 워드로 표현되는 정수 연산보다 훨씬 비효율적이다. Reduction 단계를 결합하거나 지연하는 것이 전혀 새로운 것은 아니다. 초기의 응용으로서〔4〕에 예가 있다.
4.4 모듈로 Reduction에 대한 빠른 부분체 곱셈
일반적으로 빠른 부분체 곱셈은 *(/舟)에서 빠른 곱셈을 하는데 필수적이다. GF3)에서 부분체 연산은 표준적인 모듈로 정수 기법에 의하여 구현된다. 효율적인 GOEF 연산을 위해. 부분체 연산의 최적화는 성능에 매우 중대한 영향을 끼친다. 최신 워크스테이션 CPU는 레지스터 폭에 맞는 피연산자에 대한 정수 연산을 최적화되어 있다. 하나의 레지스터에서 정수로 표현되는 원소를 갖는 부분체를 구성함으로써 GOEF는 이러한 장점을 갖는다.
두 개의 단순 워드(single-word) 정수를 곱셈을 실행하고 일반적으로 결과로서 두 배의 워드 크기의 정수를 얻는다. 계산을 완료하기 위해서 모듈로 reduction-a 해야 한다. 빠른 모듈로 reductione모듈로가 2"±c( c는 작은 정수)일 때 가능하다. 이러한 형태의 정수는 나눗셈 없이 모듈로 reduction 을 가능하게 한다. 연산자<<과>>는 각각 왼쪽으로 계수 자리 이동(left shift)과 오른쪽으로 계수 자리 이동( right shift )을 의미한다.
알고리즘 : Reduction modulo
log2c M 考;2에 대하여. p=2n— c,
입력 : 이진법으로 표현한 수 *< 疣와 modulus p.
츨력 : r=x mod p.
1. ?o ♦ (x » n), 布—x-(如<<我), r — e — 0
2. a, >0인 동안 다음을 수행한다. :
2.1 «, + i — «, c» n, rt+I — ?, c-(«, +1« n).
2.2 i ' i+ 1, r <— r+ Vj
3. , N 인 동안 다음을 수행한다. : r ♦- r—p.
4. 반환 (r).
(주의)
/>=2"+c(c는 log*M (1/2)如을 만족하는 양의 정수)이면 위의 알고리즘은 다음과 같이 수정될 수 있다 : 단계 2.2에서 r «— r+r; 을 t — r+ (― DV; 으로 대체한다.
알고리즘 1은 while 반복문을 최대 두 번의 반복으로 종료되므로. 두 번의 c에 의한 곱셈이 요구된다. 실제로 이것은 명시적인 나눗셈을 수행하는데 성능을 매우 향상시킨다. />=2"+c을 사용하면 />=2"-c 을 사용할 때보다 두 번째 while 반복문 (단계 3)의 반복 횟수를 줄일 수 있다. 위의 알고리즘은 계수의 자리 이동, 덧셈, 뺄셈, c에 의한 곱셈을 연산으로 가지고 있고 c가 잘 선택되면 c에 의한 곱셈은 계수의 자리 이동으로 대체될 수 있기 때문에 뺄셈 수를 줄이는 것은 의미 있는 일이 된다.
Ⅴ.구현 결과
다양한 유한체에서 XTR을 구현하였으며, 전 절에서 소개된 기법을 사용하여 전형적인 마이크로 프로세서 (Pentium ffl/700MHz, 332-bit “P ; Window 2000, MSVC )를 가지고 XTR 연산을 실행하였다.
5.1 XTR에 대한 응용
본 절에서는 먼저〔표 1〕에서 보여지는 것과 같이 소수》와 기약 다항식으로서 XTR을 위한 최적화된 파라미터를 제안한다.〔표 1〕에서 소수 g는 160비트이상을 선택하여야 하나 pseudo-Mressen 소수 p 에 의존하여 a을 선택해야 하는 구현상의 편의때문에 300 비트 정도의 소수를 일괄적으로 선택하였다.
(표 1) XTR을 위한 확장체 구성
본 논문에서는 GFGe) 에서 곱셈의 효율성을 높 이기 위해 카라슈바 방법을 사용하였다.〔표 2〕는 GF(俨、) 의 두 원소를 곱하는데 필요한 GF3) 에서 곱셈, 덧셈, 뺄셈의 수를 보여주고 있다. 여기서 기약 다항식은 AOP가 사용되었다. 괄호 안의 수치는 schoolbook 방법에 의한 수를 말한다.
(표 2) 카라슈바 방법을 이용할 때 GF(疣*)에서 곱셈수
〔표 3〕에서는, 〔표 1, 2. 6〕의 값으로부터 선형회귀식, (c)을 계산하는 결과를 제시한다.
〔표 3] XTR을 위한 확장체 구성
〔표 6) GOEF에서 연산시간(700MHz)
#에서 XTR 단순 지수승의 속도는 원래의 XTR 단순 지수승보다 두 배 이상 빠름을 알 수 있다."
〔표 4〕의 결과로부터. XTR 단순 지수승의 속도를 향상시키기 위해 pseudo-Mersenne 소수와 카라슈바 방법이 필요하다는 것을 알게 된다.
(표 4) GF3)에서 XTR®'"과 GF3")에서 XTR의 비교확장체
마지막으로, 〔표 5〕에서 XTR을 위한 GOEF의파라미터를 추천한다.
표 5 GFC/产)에서 추천되는 소수와 /(X) 확장체
Ⅵ.결론
본 논문에서는 GFQ負)에서 유한체 연산의 속도를 빠르게 하는 다양한 기법을 제시하였으며. 유한체의 클래스 GOEF를 도입하였으며 GOEF는 마이크로프로세서에서 유한체 연산에 대해 잘 알려진 최적화를 이용한다. 본 논문에서 제시된 주요 개선점은 유한체의 원소에 대한 곱셈과 유한체 연산을 빠르게 하기 위한 파라미터의 주의 깊은 선택이다. 위의 결과를 가지고, XTR을 위한 최적 확장체 즉, GF(舟) - GF(舟)를 제시하였다. GF(舟)을 정의하는 기약다항식은 12-th AOP이며 좋은 소수의 후보는 2%+ 3 이다. 구현의 결과로부터 제안한 유한체는 TS)을계산하는데 XTR보다⑹ 두 배 이상 빠르다. 키 사이즈는 본래 XTR과 같다. 따라서 제안한 XTR을 위한 최적 확장체는 SSL/TLS(Secure Socket Layers, Transport Layer Security)와 공개키 기반 스마트카드, WAP/WTLS(Wireless Application Protocol, Wireless Transport Layer Security)와 같은 응용분야에서 RSA나 EC*】 대한 대안으로서 XTR보다⑹ 더욱 우수하다.
부록
[표 7] Reduction 단계에서 연산량
〔표 8] 총 연산량 단 계곱 셈덧 셈 뺄 셈
References
- The Design and Analysis of Computer Algorithms Aho, A.;Hopcroft, J.;Ullman, J.
- Algorithmic Number Theory v.1 Bach, E.;Shallit, J.
- Crypto '98 Optimal extension fields for fast arithmetic in publickey algorithms Bailey, D. V.;Paar, C.
- Math. Comp. v.48 Implementation of a new primality test H. Cohen;A. K. Lenstra https://doi.org/10.2307/2007877
- Seminumerical Algorithm(second edition) v.2 The art of computer programming D. E. Knuth
- Proceedings of Crypto 2000, LNCS 1880 The XTR public key system A. K. Lenstra;E. R. Verheul
- Proceedings of ACISP 1997, LNCS 1270 Using Cyclotomic Polynomial to Construct Efficient Discrete Logarithm Cryptosystems over Finite Fields A. K. Lenstra
- Lip 1.1 A. K. Lenstra
- Proceedings of SAC, LNCS 2259 XTR Extended to GF(p6m) Seongan Lim;Seungjoo Kim;Ikkwon Yie;Jaemoon Kim;Hongsub Lee
- Proceedings of Asiacrypt 2001, LNCS 2248 Speeding Up XTR Martijn Stam;A. K. Lenstra
- Applications of Finite Fields A. J. Menezes
- Electronics Letters v.761 Fast Algorithms for Implementating RSA Public Key Cryptosystem S. B. Mohan;A. S. Adiga
- Technical Report 99-2 An Extension Field of Characterstic Greater than Two and its Application S. Oh;S. Hong;D. Choen;C. Kim;J. Lim;M. Sung