Ⅰ.서론
T. ElGamal이 Crypto'84 학회에서 이산대수에 기반한 서명기법을 제안한 이후(1), 그의 기법으로부터 많은 변종들이 개발되고 또 표준서명 기법으로 제정되었다.
서명 기법은 키 생성 알고리즘, 서명 생성 알고리즘. 서명 검증 알고리즘의 세 개의 알고리즘으로 구성되는데, 대부분의 ElGamal 기법의 변종들은 서명 생성 알고리즘에 변형을 주어 만들어진다. 일반적으로 ElGamal형 서명기법의 서명 생성 알고리즘에는 다음과 같은 모양의 방정식이 관련되어 있다⑸.
#(1)
여기서 는 생성된 서명의 일부로서 서명이 행해지면 공개되는 값들이고, X는 서명자의 비밀키, 为는 서명시 주어진 문서에 사용된 message nonce로서 어떤 종류의 공격자에게도 비밀로 지켜져야 할 값이다. 좀 더 구체적으로, 다음은 몇 가지 ElGamal형 서명 기법에서 서명과 관련된 방정식들을 모은 것이다.
표 1. ElGamal 형식 서명 기법의 서명 방정식
여기서 Me 서명되어 질 문서의 내용이고 H는해쉬함수이다. 또, KCDSA에서의 丫는 서명자의 공개 키이다.
지금부터 앞으로 쓰여지는 문자 g 는 고정된 소수를 의미한다.
ElGamal형 서명기법의 운용의 기본적인 요구사항 중 하나는 한번 사용되었던 message nonce를 다시 사용하는 일이 없어야 한다는 것이다. 뿐만 아니라 message nonce k는 1三为^《-1의 범위에서 랜덤하게 선택되어야 한다. H. Kuwakado와 H. Tanaka는 그들의 논문〔2〕에서 만일 사용된 message nonce k k27\ 0<加, »2^0(/") 의범위에 있는 것으로 알려진 두 개의 서명이 주어진다면 다항식 시간으로 서명자의 비밀키를 계산해내는 알고리즘을 발표하였다. 우리는 편의상 그들의 알고리즘을 KT알고리즘이라 부르기로 한다. 그들은 KT 알고리즘의 시간복잡도■가 0((log 0)3) 비트 연산이라고 주장하였다.
KT알고리즘이 주장된 것과 같은 계산 복잡도를 가진다는 것을 보이기 위해서는 알고리즘 수행 도중에 생성되는 벡터들 71, 72의 크기가 특정한 경계 안에 들어온다는 것을 알아야 한다. 그러나 Kuwakado오]" Tanaka는 이 경계에 대한 구체적인 언급은 없이 컴퓨터 시뮬레이션을 통해 얻어진 벡터들의 평균값만을 제시하고 있다.
이 논문에서 우리는 KT알고리즘의 중요한 한 단계를 개선하고자 한다. 최근에 Gallant 등이 타원곡선에서의 스칼라배 연산을 가속시키기 위해 정수를 작은 계수를 가지는 형태로 분해하는 방법을 소개하였다(3). 그들은 유클리드 알고리즘을 이용하여 두 개의 일차 독립인벡터를 찾아냈는데, 그 중 첫째 벡터에 대해서는 그 길이가 항상 'Tq 이하가 되도록 조절할 수 있었다. 우리는 Gallant 등의 방법을 이용하여 KT알고리즘에 소용될 적당한 벡터(7|, /, ) 를 찾아내었다. 또한 이 과정에서 message nonce 에 대한조건을 완화시켜 丨 加 I , I k21 M0(%) 인 경우에도 적용할 수 있도록 하였다. 그리고 KT 알고리즘에서는 가능한 최소의 크기를 갖는 벡터를 찾고자 하는데.우리의 개선된 알고리즘으로 찾은 벡터의 크기가 평균적으로 KT알고리즘이 찾은 벡터의 크기의 60% 정도이며 (전체 알고리즘의 복잡도에 대한 영향은 미미하지만) 이 부분의 실행시간은 개선된 알고리즘이 KT알고리즘의 대략 1/40인 것을 실험적으로 확인하였다.
이 논문의 구성은 다음과 같다. 2절에서는 KT 알고리즘을 간단히 소개한다. 3절에서는 Gallant 등이 사용한 대로의 유클리드 알고리즘을 소개하고, 그들의 방법을 응용하여 KT알고리즘에 소용되는 짧은 벡터 (八, ")를 구체적인 범위 안에서 찾는 방법을 이야기한다. 그리고 4절에서는 이렇게 개선된 KT알고리즘의 효율성을 엄정하게 분석하였다. 마지막으로 5절에서는 본 논문의 결말을 지었다.
이 절을 마무리하기 전에 P. Nguyen 과 I. Shparlinski의 최근 논문⑹에 대해 언급할 필요가 있겠다. Nguyen과 Shparlinski는 이 논문에서, 적당한 수의 서명에서 사용된 nonce들에 대해서 몇 개의 연속한 비트들이 알려지면, 이 정보로부터 서명자의 비밀키를 계산해내는 다 항식 시간 알고리즘을 선보였다. 좀 더 정확하게 말하자면, 그들의 알고리즘은 log q 에 선형으로 변하는 개수의 서명에서 각각의 nonce에 대해 대략 (log q) '〃개의 비트가 알려지면 다항식 시간에 실행된다. 하지만 그들은 오히려 부지수의 실행시간을 감수하면서라도 알아야 하는 nonce의 비트수를 줄이는 데 더욱 초점을 맞주고 있다. 따라서 그들은 nonce들에 대해 단지 2~3 비트만이 알려졌다는 가정 아래 여러 가지 실험을 진행하였다. 한편, KT알고리즘이나 우리의 결과는 반대쪽으로의 극단으로, nonce들의 절반에 해당하는 비트들을 알아야 하는 반면에 단지 두 개의 서명에 대해서만 이런 정보를 알면 충분하다. 그러므로 이 논문의 결과는 ElGamal 형식의 서명기법에서는 message nonce들이 '아주 random'하게 선택되어져야 하-는 또 다른 이유를 제공하.는 것이라 하겠다.
Ⅱ. KT알고리즘
이 절에서는 Kuwakado와 Tanaka가〔2〕 에서제안한 KT알고리즘을 살펴보도록 하겠다.
우선 문서 m j, 에 각각 message nonce k !, 为 2를 사용하여 생성된 두 개의 서명이 주어졌다고 가정하자. 그러면 식(1)로부터 다음의 연립방정식을 얻게 된다.
#(1)
여기서 X를 소거하면 미지수 k , , & 2에 대한 부정방정식
#(2)
을 얻게 된다. KT알고리즘은 이 부정방정식을 풀기 위한 것으로 다음의 세 단계로 요약될 수 있다.
1단계 : 아래의 조건을 만족하는 정수들의 쌍 (벡터라 부르자.) (乃, ")弋 二2를 찾는다.
①두 합동식 71 = 次( 初 *2)(mod g) 와/2 = w( — V 1w 2)( mod q) 를 동시에 만족하는 정수 如가 존재한다.
② 0^/i, yQ 0세.
③ J、과 〃 는서로 소이다.
2단계 확장된 유클리드 알고리즘을 이용하여 K{Yi + K2y2 = 1을 만족하는 정수 KlK?를 구하고, r :t = w( u jV 2 — u 2v (mod g) 를 계산한다.
3단계: gk'= gk' ( mod /))를 만족하는 정수 k' 을 집합 S = {("+, 3)K]+ 方시 /, 记二}에서 전수조사를 통해 찾는다.
위의 3단계에서 을 위와 같은 집합S에서 찾는 이유는 다음과 같다. 부정방정식(2)의 양변에 如을 곱하면 »1八 + »2, 2( mod q) 이고, 따라서 적당한 정수/에 대하여
#(3)
가 된다. 이제 양변에 K] 을 곱하여 항들을 정리하면
#
를 얻는다. 이러한 계산의 목표 자체가 서명에 사용된 nonce. 예를 들어k), 하나를 구하기 위한 것이므로, 위식에서 如鸵 - 魅3 t라 놓은 후 이 /의정확한 값을 찾아가도 되는 것이다.
위에서 岸을 찾을 때의 조건gk'=gk{ modp) 은 서명 기법에 따라 달라지는데, 여기서는 편의상 ElGamal의 본래 서명 기법에서의 조건만을 고려하였다. 일단 々'이 하나만 찾아지면, 서명방정식 k j = XV ] + k w ] ( mod g) 으로부터 서명자의 비밀키가 X = ( W ] — k' w x)v mod a) 로 계산되어진다.
Kuwakado오]. Tanaka는 그들의 논문〔3〕 에서만약 0< 们, 幻; M *3) 라면 그들의 알고리즘의 복잡도가 0((log a) 3) 비트연산이라고 주장하였다. 이 KT알고리즘의 복잡도는 3단계에서 전수조사를 할 때 시도되어질 I, /의씽.의 개수에 의해 결정되는데. 이 숫자는 1단계에서 찾은 벡터 (71, ")의 크기와 직접적으로 관계가 있다. 따라서 이 알고리즘의 복잡도가 주장된 것과 같다는 것을 확인하기 위해서는 벡터(7 1, 72)를 찾을 때 그 크기가 특정한 범위 안에 있도록 찾는 것이 중요하다. 그러나 Kuwakado와 Tanaka는 이 범위를 구체적으로 주는 대신, 그들의 컴퓨터 시뮬레이션에서 조사된 벡터들의 평균 크기만을 제공하고 있고, 따라서 그들의 복잡도에 대한 분석은 엄밀한 것으로 볼 수 없다.
Ⅲ. KT알고리즘에 대한 개선
앞절에서 우리는 1단계의 벡터(7 1, 72)를 구체적으로 어떻게 찾을 것인가에 대해서는 언급하지 않았다. Kuwakado와 Tanaka는 이 벡터를 찾기 위해 연분수를 사용했으며, 앞에서 언급한 바와 같이이 벡터의 크기에 대한 구체적인 정보를 주지는 못하였다. 이 절에서 우리는 Gallant 등이 (3)에서 보여준 유클리드 알고리즘을 이용하여 짧은 벡터를 찾아가는 방법을 적절히 변형하여 KT알고리즘의 1 단계를 개선하고, 더불어 여기서 찾게 되는 벡터의 크기의 구체적인 범위를 제시할 것이다.
우선 Gallant 등의 방법을 간단히 살펴보자. 소수 <7와 그보다 작은 양의 정수 人 가 있다. 하자. q 와 人의 최대공약 수를 계산하기 위해 확장된 유클리드 알고리즘을 실행시키면 모든 항들이식s s’q + ttA = 七을 만족하는 수열 들 % ", 乙가 생성된다. 이수열들의 초기항들은 s°=l, 如=0, 七 = g, & = 0, 上 = 1, 七 = 人 이고, 또 이 수열들은 다음식들을 만족한다.
#
수열 七는 감소 수열이고 언젠가는 g와 人의 최대공약수인 1이 그 항으로 나타나게 되므로, rm+1 >3 < t m을 만족하는 유일한 정수m m이 존재한다. 또, 위의 관계식 rm\ tm+l I + r„+1 I tm\ q 로부터 I l+i 丨<万 임을 알 수 있다. 그러므로 확장된 유클리드 알고리즘을 적용하여 식s”+w+ t = 7.+ 1을 만족하고 0< 7 „, +1, I t m+i 丨< % 인두정수 r m+l, 을 항상 구할 수 있다. 지금까지의 논의를 정리하면 다음 정리를 얻는다.
정리1. [3]소수 g와 그보다 작은 양의 정수 人 0< 匕 丨 시< 代 , r - M = 0가 있을 때, ( mod q) 인 정수r, t 가 존재한다.
위의 정리를 이용하면 다음과 같은 개선된 KT 알고리즘의 1단계를 얻을 수 있다.
정리2. 소수g와 두정수 0<X, y< 가 있다. 그러면 다음 세조건을 만족하는 정수w, 7i, 72 가존재한다.
#
#
② 0<七, I丨M \厂》; ③ 7 1과 72는 서로 소이다
증명법 g 에 대한 X, y 의 역원을 각각 a 1, a 2라고 흐卜자. 즉, a 1% = a 2y = 1 ( mod q) 이다. 여기서 /I = — (知*丁 ( mod g) 라 두고, 정리 1을 적용하면.0 0< 八, 丨 " 丨< 代 이고 71 + 7丿 = 0 ( mod <7)인 두정수 7 1, 72를 얻게 된다. 이제 人에 관한 두 합동식으로부터 « 1/ 1 =« 2/2 ( mod q) 임을 알 수 있는데.이 값을 力라 두면 정리의 조건 ①이 성립하게 된다.
만약 71과 改가 서로 소가 아니라면, 이들의 최대공약수 d로 두수를 나누어 Yi = Yjd, 72 = 하고 71', 叫'로 71, 72를 대신하게 하면, 정리의 조건을 만족하는 오히려 더 작은수들을 찾은 것이 된다. (물론 이때 三 a “ j 三 a 2V2 ( mod g) 이m를 대신하게 된다.)
Ⅳ. 계산 복잡도
이제 앞절의 결과로 KT알고리즘 1단계의 벡터 ( /!, ")를 그 크기에 관하여 정확한 범위 안에서 찾을 수 있게 되었고, 따라서 KT알고리즘의 복잡도를 정확하게 분석할 수 있게 되었다.
구체적인 분석에 앞서 먼저 사용될 기호들을 정하기로 하자. 먼저 b는 소수이고 g는 소체 GF 3) 의원소로 그 곱셈에 대한 위수가(이다. 이미 앞에서가 소수인 것은 가정하였다. 이제 g에 의해 생성된 부분군 위에 ElGamal의 서명 기법을 운용한다고 가정하자. 이런 상황에서 누군가가 message nonce 妇, 们; 를 사용하여 생성한 두 개의 서명이 주어진 것으로부터 문제가 시작된다.
2절의 시작 부분에서와 같이 서명 방정식과 두 개의 서명으로부터 부정방정식(2)를 유도해내고, 여기에 정리2를 적용하여 KT알고리즘 1단계의 벡터 (7i, 72)를 계산해낸다. 그리고 2단계에서 K]. ■心와 七产 为/1 + 为2, 2( mod g)를 계산한다그러 면적 당한 정수 Z에 대하여 kx = (Zg + K. + 以 如- 炳K) 이 되고. 따라서 우리는 집합 S = {(%+, 3)Ki+’并 I l, tv Z) 안에서 전수조사를 통하여 如을 찾을 수 있게 된다.
이 전수조사의 실현 가능성을 위해 知, 知와 (71, 72)가/ 적당한 상수배 범위에 있다는 전제 아래에서 모든 논의가 시작되었다. 논문〔2〕 에서는 이와 더불어 이들 숫자들이 모두 양수인 것을 가정하고 있다. 그러나 아래의 논의에서 드러나는 바와 같이 이들 중 몇 개의 숫자를 자신의 广여수 (즉, 어떤 수 X 대신 q—X)로 대체하더라도 모든 이야기가 완전히 똑같이 진행될 수 있음을 알 수 있다. 따라서 이 모든 경우를 포함하기 위해 의미를 확대 해석하여丨加 丨, I 饥I 와 丨7」, I, " 가。(代) 의 범위에 있다 말할 것이다.
4.1.집합 S 안에서의《에 대한 전수조사
논.의를 위하여 먼저 / 은 상수라 가정하고 /( I) = I ( /? +, 3)用 + 七 시라 하자. 우선 / = 0이라 놓고, 이 경우에 적절한 t의 값을 찾기 위해 /의 값이 최소가 되게 하는 정수t= t0 ( - ‘中'3 를 정수로 반올림 한 값)에서부터 시작하자.이 제 k' 0 = ( lq + 7 3)K[ + 7邪0 가 S의 원소들 중 그 절대 값이 가장 작은 것임은 자명하다.
만약 gk'=gk'° ( mod 力) 라면, 원하는 k = k'o 을 찾은 것이다.만약 아니라면, 정수/에 대해 k', -= ( lq + 7i)Kx + Y2(. t(, +, )라 둔다. 이제 \ H t \가 사용된 message nonce의 예상된 범위에 있는 동안 i = ±1, ±2, ±3, ...로 키워가며 합동식 g*』g** ( mod/))이 성립하는지 확인한다. 만일 丨 为', . 丨 가 예상된 범위를 벗어날 때까지 이 합동 식을 만족하는 것을 찾지 못했다면, 그때는 차례로 1= ±1, ±2, ±3, ...이라 가정하고 앞의 과정을 반복한다.
이제 서명에 사용된 nonce들이 0(/転)의 범위에 있다고 가정하자. 또한, 정리1에 의해 丨 九 丨 , Is I M 0이다. KT 알고리즘의 계산 복잡도에는 다음의 세 가지 구성 요소가 있다.
.벡터(71, ")를 계산할 때의 계산 복잡도
.집합 S에서 전수조사를 할 때 시도해야 할 정수 쌍 I, /의 개수
.고정된 정수쌍 I, t7\ 원하는 0을 주는지 확인할 때의 계산 복잡도
첫째 요소인( 儿, 七, )의 계산은 확장된 유클리드 알고리즘을 사용하며 . 그 복잡도는 0(( log 2p)2) 인 것이 알려져 있다. 셋째 요소의 계산은 gk, = gk'-(mod/>)이 성립하는지 확인하게 위한 거듭제곱 연산인데, 그 복잡도는 0(( log 2 力 3)이다. 따라서 남은 것은 둘째 요소인 시도해야 할 정수쌍 I, t의 개수를 추정하는 것뿐이다.
4.2.정수 /의 범위
식(3) 如 7] = S + , 3 — 과 조건 I /1 I > I 7 2 丨 % 으로부터
#
임을 알 수 있다. 그러므로 Z의 선택의 범위는 P 또는。의 크기와는 상관이 없고, 최초에 们, 冷2의 존재 범위에 대한 가정에 관련된 상수의 2배 이하가 된다.
4.3.정수 /의 범위
먼저 /은 고정된 것으로 가정한다. 4.1 소절에서와 같이 4는-쏙끄 를 정수로 반올림한 값이라 하고, = 0, ±2, ±3, ...에 대해서 叭 = ( S + 7, 3)K] + 了2( % + /)라 하자. 그러면 儿 의 선택에 의하여 丨 互 ° I 는 小 로 무언가를 나눌 때의 나머지가 되므로 丨 互 ° 丨< 丨 " 丨 가 성립한다. 이로부터
#
임을 알 수 있다. 사용된 nonce가 丨 加 丨 M 0(%) 의 범위에 있으므로, 그의 추정값인 I 泛 , 丨 도 같은 범위에 있는 것들만 고려하면 된다. 여기서 만약 丨 7七 丨 의 크기가 爲와 거의 같다면 (즉, 1에 가까운 상수배라면), 九 + /에서의 I 시의 선택도 앞 소절의 /의 선택과 마찬가지로 상수의 범위에서 선택하게 된다. Gallant 등의 방법은 대부분의 경우 I 龄 丨 의 크기가 %와 아주 가까운 산출해낸다. 하지만 아주 드문 경우에 丨 丨 가 너무 작게 나타나는 경우도 있는데, 이때는 같은 조건의 다른 서명을 이용하여 알고리즘을 적용하게 된다.
따라서 집합S에서의 전수조사에서 시도해야 할 정수 쌍I, f의 개수는 상수의 범위에 있다고 말할 수 있다. 그러므로 종합적인 KT알고리즘의 계산 복잡도는 논문(2)에서 주장된 대로 0(( log/) 3) 이다.
4.4. 예제
이번 소절에서는 우리의 개선된 KT알고리즘이 수행되는 두 개의 예제를 제시한다. 우선 가상으로 1024비트 소수 力와 160비트 소수 q를 사용하는 ELGamal 서명 기법을 구성한다. 다음은 16진법으로 표시한 이 기법의 주요 변수들이다.
#
첫 번째 예제에서는 0<知, &1000% 인 nonce k lt 为? 를 사용하여 서명을 생성한다.
#
서명을 생성할 때 메시지를 미리 정하는 대신, 편의상 心, 四2의 값을 임의로 추춤한 값으로 미리 정하여 사용하였다. ElGamal 서명기법에서는 V j = gk' mod pt / = 1, 2이므로 u !, h 2는 서명 방정식 (1)에 의해 결정된다.
#
를 얻는다. 이 경우에는 八의 값이 I I 보다 두 배 가까이 크므로/ !, 丫2의 역할을 서로 바꾸어 집합 S = { -("十 儿)樓+ " 丨 /, 作 泛}에서 "를찾는 편이 계산량이 적게 된다. 이 전수조사에서 I = 205, t = 九 + 780일 때 处를 찾았다.
다음 예제에서는 0 1000/7 인 nonce 们, 们?를 사용하여 서명을 생성한다.
#
편의상 该 ], 花 ?의 값은 앞의 예제와 갇게 잡았다.
이제 』三--心으上 (modq) 라 두고 우리의 w ■)V
알고리즘을 적용하면,
#
를 얻는다. 이 경우에는 qf 을 집합 S = {(Zg+, 3)K|+W I 旧 Z}에서 찾게 되며, I = 708, t = /0+ 548일 때 q — k }= (lq + 儿)缶 + y.t 를 찾았다.
Ⅴ. 결론
이 논문에서 우리는 Gallant 등의 방법에서와 같이 확장된 유클리드 알고리즘을 적용하여 KT 알고리즘에 소용되는 짧은 벡터를 보다 구체적이고 효율적으로 찾는 방법을 제시하였다. 구체적으로 우리의 개선된 알고리즘으로 찾은 짧은 벡터의 경우, KT 알고리즘의 경우와 비교해서 크기는 60% 정도이고 이 벡터를 찾는데 걸린 시간은 대략 1/40 정도가 되었다. 또 KT알고리즘을 적용하기 위한 nonce K베대한 조건을 I 如 M 0(/1)로 약화시켰다. 더불어 이렇게 개선된 KT알고리즘의 계산 복잡도가 정확하게 0(( log 2力)3)임을 보였고, 여기에 포함된 상수 인수를 비교적 정확하게 분석하였다.
References
- Advances of Cryptology-CRYPTO '84. LNCS 196 A Public Key Crypto-system and a signature scheme based on discrete logarithms T.ElGamal
- IEICE Trans. Fundamentals v.E82-A no.1 On the Security of the ElGamal-Type Signature Scheme with small parameters H.Kuwakado;H.Tanaka
- Advances in Cryptology-CRYPTO Faster Point Multip-lication on Elliptic Curves with Efficient Endomorphism R.Gallant;R.Lambert;S.Vanstone
- Advances in Cryptology-Asiacrypt '1998. LNCS 1514 A Study on the proposed Korean digital signature algorithm C.H.Lim;P.J.Lee
- Handbook of Applied Cryptography A.Menezes;P.Ooschot;S.Vanstone
- J. Cryptology v.15 The Insecurity of the Digital Signature Algorithm with Partially Known Nonces P.Q.Nguyen;I.E.shparlinski
- Advances in Cryptology-Crypto'1989. LNCS 435 Efficient Identification and signatures for smart cards C.P.Schnorr
- Digital Signature Standard U.S. Department of Commerce N.I.S.T.