DOI QR코드

DOI QR Code

Key Agreement Algorithms Based on Co-cyclic Hadamard Matrices

코사이클 Hadamard 행렬을 이용한 키 동의 알고리즘

  • Published : 2009.06.30

Abstract

In this paper, we analyze key agreement algorithms based on co-cyclic Jacket matrices, and propose key agreement algorithms based on co-cyclic Hadamard matrices to fix the problem. The performance of our proposal is better than conventional one's and the construction of the matrices is very simple. Also time complexity of our proposal is proportional to the factor that determinees the size of the matrix, and the length of the key. So our proposal is fast and will be useful for the communcations of two or three users, especially for those have low computing power.

본 논문에서는 코사이클 재킷 행렬 기반 키 동의 알고리즘의 문제점을 제시하고, 이를 해결할 수 있는 방안으로 코사이클 Hadamard 행렬 기반 키 동의 알고리즘을 제안한다. 제안하는 알고리즘은 기존 방식보다 성능 또한 우수하며, 코사이클 Hadamard 행렬의 생성은 매우 간단하다. 또한 키 동의 과정에 소요되는 시간은 키 동의 과정에서 사용하는 행렬의 크기와 키의 길이에 비례하므로 지수 연산이 필요한 다른 알고리즘에 비하여 계산 속도가 빨라 특히 계산 성능이 낮은 단말 사이의 통신에 유용할 것이다.

Keywords

Ⅰ. 서론

두 명의 사용자 A 와 B 가 공통키를 갖고자 할 때, A가 비밀키를 생성하여 이를 B의 공개키로 암호화하여 B에게 보내면 B가 이를 받아 복호함으로써 A와 B 가 동일한 키를 공유할 수 있다. 이 경우, 공통키는 한 사용자(여기에서는 A)에 의해서만 생성되며, 계산양이 많은 공개키 암호 방식을 사용하여야 한다.

Diffie-Hellman 알고리즘 이후, 여러가지 키 동의 알고리즘이 제안되었다.〔1, 2〕에서는 코사이클 재킷 행렬의한 형태를 이용한 몇 가지 키 동의 알고리즘이 제안되었다. 본 논문에서는 이를 수정하여 코 사이클 재킷 행렬에 포함되는 Sylvester Hadamard 행렬을 이용한 키 동의 알고리즘을 제안하고, 이를 통하여 기존 알고리즘의 문제점을 해결한다. 또한 제안하는 Sylvester Hadamard 행렬 기반 알고리즘의 성능이〔1.2〕의 재킷 행렬 기반 알고리즘보다 우수함을 확인한다.

Ⅱ. 코사이클 Hadamard 행렬

Sylvester Hadamard 행렬은 다음과 같이 정의될 수 있다.

#(1)

여기에서 ®는 Kronecker 곱셈 연산이며 mxn 행렬』에 대하여 다음과 같이 정의된다.

#(2)

또한 식 (1)은 다음과 같이 표현할 수 있다〔3〕.

#(3)

여기에서 <m>=g血+g也+...+%_也은 g 2, …, 撮와 九=(&-1也, -2, …也))의 2진내적이며, Sylvester Hadamard 행렬의 원소의 위치를 나타내는 행과 열의 인덱스가 된다. 따라서 이 행렬의 전체를 미리 계산 또는 저장하여 두지 않고 식 (3)을 이용하여 특정 원소를 바로 계산하여 얻을 수 있다. 단, 본 논문에서는 행렬의 행 또는 열 인덱스를 1이 아닌 0부터 시작한다. 즉, Sylvester Hadamard 행렬의 두 번째 행 세 번째 열에 위치한 원소는 [血(璀) = (-1广、2> =1이다. 또한 식 (3)은 밑이 -1 이므로 사실상 지수 연산을 할 필요 없이 (㎛扁, …, %.—也L J에 1(또는 0)이 몇 개인지만 세면 그 값을 바로 알 수 있다.

위수가。인 유한군 G와 위수가 也인 유한 가환군 C 에 대하여 다음과 같은 코사이클 방정식을 만족하는 사상 p: GxG—C를 코사이클이라고 한다〔3〕.

#(4)

이 코사이클은 행과 열의 인덱스를 G의 원소로 나타내어 (g, h) 위치의 원소가 両 ")인 v'Xv 정방행렬 必로 표현할 수 있다. 이러한 행렬 M<를 코사이클 행렬이라고 한다.

만약 甲(g, h) = ip(h, g), Vg"三G이면, M노 대칭행렬이며, 이때 식 (4)로부터 다음 식이 성糸한다.

#(5)

한편〔1, 2〕의 코사이클 재킷 행렬은 다음과 같이 표현할 수 있다.

#(6)

9。h는 g。h = (.gn_1®hn_l, gn_2®hn_2, -", g0<Sh0) 과 같은 비트 단위 XOR 연산으로 계산되는 2진 표현으로 정의되며, 식 (6)에서 8=1로 놓으면 식 (3) 과동일하다. 즉, 식 (3)은 식 (6)의한 형태라고 볼 수 있다. 식 (6)은 코사이클 행렬이므로〔1, 2〕식 (3) 또한 코 사이클 행렬이다.

Ⅲ. Hadamard 행렬 기반 키 동의 알고리즘

이 장에서는 앞에서 제시한 Sylvester Hadamard 행렬을 이용한 2, 3자간 키 동의 알고리즘을 제안한다. 각 사용자는 모두 TACTrusted Authority) 와 안전한 통신을 할 수 있으며, 이 TA에 의하여 인증된다. Sylvester Hadamard 행렬의 크기는 2”x2”이고, g, h, A는 a비트의 수(단, N=mn)S. 각각 (如 如 …, "1)과 같이 皿개의 n비트 수로 나눌 수 있으며 최종적으로 m비트의 세션키를 공유하게 된다.

3.1 2자간 키 동의 알고리즘

두 명의 사용자 A와 B가 공개 채널을 통하여 안전한 통신을 하기 위한 공통의 세션키를 갖고자 한다. 또한 두 사용자 중 어느 쪽도 세션키 생성에 필요한 비밀 정보를 독점하지 않으며 , 따라서 어느 쪽도 모든 비밀 정보를 알 수 없도록 하고자 한다.

TA와 A, B는 사전에 n을 공유한다. 즉, 동일한 크기의 행렬을 사용할 것을 약속한다.

① A와 TA, 日는 각각 임의의 수 g, 九 A를 생성한다.

② A와 B는 TA에게 각각 g, k를 안전하게 전송한다.

③ TA는 A에게 h。k와 Sj를, B에게 g。/i 와 SU를 각각 안전하게 전송한다., 와 岛는 다음과 같고, 여기에서 p(a, b)는 공유하는 Sylvester Hadamard 행렬의 °번째 행 b번째 열 위치의 원소로 ±1이 된다. 그리고 Ⅱ는 단순 연결 연산자이다. 즉 에게게0는(0, 1, 1, 0)이다.

#(7)

④ A와 B 는 다음과 같은 R 와 乌를 동시에 교환한다.

#(8)

⑤ A와 B는 다음과 같이 각자의 키 舟와 Kb를 계산한다.

#(9)

⑥ 식 (4)로부터 A와 B가 계산한 키는 다음과 같이 동일함을 알 수 있다.

#(10)

⑦ 이제 A와 B는 공통의 세션키 及=吗 =乌를 이용하여 안전한 통신을 할 수 있다.

3.2 3자간 키 동의 알고리즘

앞 절의 상황에 세 번째 사용자 C가 추가된다. TA와 A, B. C는 사전에 n을 공유한다. 즉, 동일한 크기의 행렬을 사용할 것을 약속한다.

① A, B, C는 임의로 각각 g, h, k를 생성하여. TA에게 안전하게 전송한다.

② TA는 A에게 h。k와 '를, B에게 k。g와 &를, C에게 g。九와 %■를 각각 안전하게 전송한다. SB, S<느 다음과 같다’

#(11)

③ A는 C에게, B는 A에게, C는 B에게 각각 다음과 같은 pa. pB. %를 동시에 전송한다.

#(12)

④ A. B, C는 각각 자신의 키 Ka, Kb, 瓦를 계산한다.

#(13)

⑤ 식 (5)로부터 A, B, C가 계산한 키는 다음과 같이 동일함을 알 수 있다.

#(14)

⑥ 이제 A, B, C는 공통의 세션키 k=ka=kb = 瓦■를 이용하여 안전한 통신을 할 수 있다.

Ⅳ. 재킷 행렬 기반 알고리즘과의 비교 및 안전성 분석

2장에서 언급한 바와 같이 , 〔1, 2〕에서는 코 사이클재킷 행렬을 이용하면서 g。/I를 비트 단위 XOR 연산으로 정의하였다. 이에 따라. 제안하는 2자간 키 동의 알고리즘에서 A는 g와 /j를 이미 알고 있고 B로 부터 h。Ar를 얻음으로써 k= h。<h。k)를 알 수 있으며 이는 B나 3자간 알고리즘의 경우에도 마찬가지이다. 이는 키 동의의 의미를 잃게 하는 결과를 낳는다. 본 논문에서는 이러한 문제를 해결하기 위하여 TA를 도입하였다. 2자간 알고리즘의 경우, h를 A(또는 B) 와 공유하지 않음으로써 A(또는 B)가 效또는 g)를 알 수 없도록 하였다. 3자간 알고리즘 역시, A(또는 B, C) 에게 /I와 k(또는 g와 h, 와 *)에 대한 정보를 제공하지 않기 때문에 이를 알 수가 없다. 부수적으로〔1, 2〕 에서 언급되지 않았던 인증 문제도 이 TA가 각 사용자를 인증하여 주는 것으로 해결할 수 있다.

제안하는 2자간 알고리즘에서 A가 자신이 알고 있는 정보(务, \。kt, *(务, ht), ip{gt。ht, 為))를 이용하여 나머지 비밀 정보(九, 또는 為)를 알아내려고 한다고 흐}자. 식 (1)에서 보면 Sylvester Hadamard 행렬은 첫 번째 행과 첫 번째 열을 제외하고는 각 행 또는 열의 원소로 1과 -1 이 각각 절반씩 존재하므로, 90, 厲로부터 가능한 九의 범위를 절반으로 줄일 수 있다. 이때 /1, 。為를 이용하여 각 九에 해당하는 kt 값이 정해진다. 이제 <p(gt ■> ht, 相)로부터 가능한 九의 범위를 다시 절반으로 줄일 수 있다. 따라서 A가 이와 같은 방법을 통하여 나머지 비밀 정보를 알 수 없도록 하기 위해서는 n > 3, 즉 8×8 이상의 Sylvester Hadamard 행렬을 적용하여야 한다. 이는 3자간 알고리즘에서도 마찬가지이다. 반면 재킷 행렬을 사용할 경우 행렬의 원소로 ±1, 土涉의 4가지가 존재하므로 같은 방법으로 보면 n M 4, 즉 16X16 이하의 크기로는 안전성을 보장할 수 없다. 결과적으로 m비트의 세션 키를 공유하기 위해서 재킷 행렬을 사용할 때에는 최소 5m비트의 g, h, k가 필요한 반면, Sylvester Hadamard 행렬을 사용하면 최소 3m비트로 가능하다. 또한 제안하는 알고리즘에서는〔1, 2〕와는 달리 w 가 존재하지 않아 이와 관련된 계산이 필요하지 않으므로 상대적으로 처리 속도가 그만큼 향상될 것이다.

Ⅴ. 결론

〔1, 2〕에서 제안한 코사이클 재킷 행렬 기반 키 동의 알고리즘은 빠른 속도로 실행될 수 있도록 하였지만 키 동의의 의미를 상실하게 되는 문제가 있다. 본 논문에서는 이러한 문제점을 확인하고 이를 해결할 수 있는 Sylvester Hadamard 행렬 기반 키 동의 알고리즘을 제안하였다. 추가적으로〔1, 2〕의 코 사이클재킷 행렬을 적용할 때보다 Sylverster Hadamard 행렬을 적용할 경우에 성능 향상 또한 기대할 수 있다는 점도 확인하였다. 제안하는 알고리즘에서 키 동의 과정에 소요되는 시간은 키의 길이 m과 사용되는 행렬의 크기를 결정하는 几의 곱, 에 비례하므로 지수 연산이 필요한 다른 기법에 비하여 빠른 속도 로키 동의를 할 수 있다.

제안하는 알고리즘을 이용하여 기존의 공개키 혹은 비밀키 암호 방식을 사용하지 않고 공통의 세션 키를 공유할 수 있으며, 또한 지수 연산을 할 필요가 없어 계산 성능이 떨어지는 단말 간의 안전한 통신에 유용할 것이다.

References

  1. C.H. Choe. G.Y. Hwang. S.H. Kim. H.S. Yoo. and M.H. Lee. "Key agreement protocols based on the center weighted Jacket matrix as a symmetric co-cyclic matrix." MRCS 2006. LNCS 4105. pp. 121-127. 2006
  2. C.H. Choe. J. Hou. S.J. Choi. S.Y. Kim. and M.H. Lee. "Co-cyclic Jacket matrices for secure communication." Proc. of IWSDA'05. pp. 103-105. Oct. 2005
  3. K.J. Horadam. Hadamard Matrices and Their Applications. Princeton University Press. pp. 10-11. Nov. 2006
  4. W. Stallings. Cryptography and Network Security. 4th Ed .. Prentice Hall. Nov. 2005
  5. K.J. Horadam and P. Udaya. "Cocyclic Hadamard codes." IEEE Transactions on Information Theory. vol. 46. no. 4. pp. 1545-1550. July 2000 https://doi.org/10.1109/18.850692
  6. M.H. Lee. "The center weighted Hadamard transform." IEEE Transactions on Circuits and Systems. vol. 36. no. 9. pp. 1247-1249. Sep. 1989 https://doi.org/10.1109/31.34673
  7. 강명희, 유황빈, "유비쿼터스 컴퓨팅 환경에서의 익명성을 보장하는 사용자 인증 및 키 동의 프로토콜설계," 정보보호학회논문지, 16(2), pp. 3-12, 2006년 4월
  8. 최구영, 황정연, 홍도원, 이동훈, "비대칭 컴퓨팅환경을 위한 ID-기반의 인증된 키 동의 프로토콜," 정보보호학회논문지, 16(1), pp. 23-33, 2006년 2월
  9. 신성철, 이성운, "동일 서버를 사용하는 두 사용자간효율적인 패스워드 기반의 키 교환 프로토콜," 정보보호학회논문지, 15(6), pp. 127-133, 2005년 12월
  10. 박영호, 이경현, "효율성을 개선한 신원기반의 3자간 복수 키 합의 프로토콜," 정보보호학회논문지, 15(3), pp. 77-89, 2005년 6월
  11. 이성운, 유기영, "간단하고 효율적인 상호 인증 키동의 프로토콜," 정보보호학회논문지, 13(5), pp. 105-112, 2003년 10월