본문 바로가기

Secure UC

타원곡선기반 암호화, ECC


시작하며
인터넷 보안은 다양한 프로토콜과 알고리즘을 사용합니다. 보안 강화에 대한 요구가 높아지면서 좀더 안전하고 신뢰할 수 있는 암호화기법에 대한 요구가 늘고 있습니다. 인터넷 전화 보안에서는 TLS와 SRTP가 필수적인 암호화 프로토콜이지만, 세부적인 해쉬 함수와 암호화 알고리즘은 계속 변화하고 있습니다. 


기존의 3DES 는 슈퍼키의 존재에 대한 의문과 해킹 가능성에 대한 우려로 인해 AES로, 해쉬의 대표적인 알고리즘이였던 MD5는 SHA로 대체되었습니다. 이제 PKI의 근간이 되는 키관리 및 키 교환 알고리즘도 RSA와 ECC가 경합을 벌이고 있습니다. 새롭게 대두된 ECC에 대해 살펴보겠습니다. 


위의 내용을 잘 이해하기 어려우신 분들은 Secure UC에 대한 기초 내용을 설명한 아래 카테고리를 먼저 참조하여 읽으시길 권합니다.    


http://www.nexpert.net/category/Secure%20UC



공개키 암호 알고리즘 개요

공개키 암호 알고리즘은 크게 소인수 분해를 이용한 알고리즘과 이산대수 문제를 이용한 알고리즘으로 나뉩니다. 



간단하게 정리해봅니다. 

  • 소인수분해 문제기반 암호 알고리즘 
    어떤 수 A를 두 수의 곱으로 나타낼 수 있을 때 (A =  B*C) 두 수 B와 C를 인수라 하고, B와C가 소수일 경우 소인수라고 합니다. 소인수가 충분히 큰 수일 경우 인수 분해하기가 매우 어렵다는 원리를 이용한 암호 기법입니다. 즉, 두  개의 큰 소수 (백자리 이상) B와 C 가 있을 때 B와 C를 알면 A를 찾기 쉽지만, A만 가지고 소수 B와 C로 인수분해하기는 어렵습니다. 소수는 1과 자기자신으로만 나누어지기 때문입니다. 그래서 새로운 소수를 찾는 것이 중요하고, 많은 수학자들이 소수를 찾는 방법이나 원리를 연구합니다. 소수를 찾는 새로운 공식을 만든다면 수학자들의 노벨상인 필즈상을 받을 수도 있습니다. ^^

    소인수 분해를 이용한 대표적인 암호화 알고리즘이 RSA입니다. 


  • 이산 대수 문제기반 암호 알고리즘
    어떤 수 A를 B의 C승으로 나타내는 낼 때 (A=B^C), C의 값을 찾는 것을 이산대수 문제니입니다. 2^C = 8이라면 C가 3인 것을 찾는 것인데 아래 그림처럼 타원 곡선 (Elliptic curve)으로 옮겨 놓으면 풀기가 매우 어렵다는 원리에서 출발한 암호화가 ECC입니다.   




    제가 한참을 찾아보았으나 이산대수 문제가 왜 어려운지를 설명한 내용을 도저히 이해하기가 어려웠습니다. 그래서 그냥 외우기로 했습니다. -,-:? 그냥 ECC는 풀기 어려운 암호화 기법이다 정도로.. 머 개발할 것도 아니므로



ECC (Elliptic curve cryptography)의 개요
ECC는 타원곡선 암호에 기반한 공개키 암호방식입니다. 1985년 닐코블리츠와 빅터 밀러가 거의 같은 시기에 독립적으로 제안하였습니다.  
ECC는 RSA 보다 매우  짧은 길이의 키를 사용하면서도 비슷한 수준의 안정성을 제공하는 것이 특징입니다. 아래표에서 보듯이 RSA 암호 시스템의 1024 비트 정도의 안전도를 제공하는 ECC의 키길이는 160 비트 정도면 됩니다.
 


현재 ECC는 암호화에는 사용되지 않으며, 전자서명과 키교환 부분에서 주로 응용되고 있습니다.    

  • 전자서명 (ECDSA, Elliptic Curve Digital Signature Algorithm)
    ECDSA는 미국 연방 표준 서명 알고리즘인 DSA (FIPS 186)를 타원곡선 알고리즘으로 변환한 것으로 사용자 인증에 활용됩니다.  

  • 키교환알고리즘 (ECDH, Elliptic Curve Diff-Hellman)
    ECDH는 RSA의 Diff-Hellman 키교환 알고리즘과 마찬가지로 키교환을 위한 알고리즘입니다. 


ECC의 현황
웹상의 자료들을 살펴보니 ECC가 분명히 RSA보다 상대적으로 안전한 알고리즘이라는 의견이 지배적입니다. 그러나 상대적으로 복잡하고 실제 구현을 위해 전문 지식이 필요하여 업계 전반으로 확대되는 데에는 많은 시간이 필요하다고 합니다. 또한, 특정 타원 곡선 유형에서는 쉽게 풀리는 문제점이 지적되고 있습니다.  

위키피디아에 소개된 ECC 관련 보안 위협 사례가 몇 가지 있습니다. 
  • 2010년 12월 소니는 PlayStation3에 ECDSA 개인키가 해킹되었으며, 잘못된 알고리즘 사용이 원인이였습니다. 
  • 2011년 3월 29일 서버의 TLS 개인키가 노출될 수 있는 가능성이 제기되어 OpenSSL 1.0.0e에서 수정되었습니다. 
  • 2013년 8월 자바 SecureRandom 클래스의 결함이 발견되었습니다.

현재 국가에서 진행중인 행정기관 인터넷 전화 보안의 기기인증 부문에서는 ECC와 RSA를 동시에 사용할 수 있도록 규정되어 있습니다. 또한, 무선 분야나 USN 분야에서는 ECC가 매우 효과적입니다. ECC의 짧은 키길이로 인해 기존 RSA보다 훨씬 짧은 시간에 키 생성 및 교환이 가능하기 때문입니다.


마치며 - 신기술은 숙성시간이 필요하다
IT분야에서는 "IT 갈라파고스 대한민국"라는 말이 회자됩니다. IT 기술의 기형적인 발전으로 인해 국제표준과 호환이 되지않기 때문입니다. 대표적인 사례가 공인인증서일 것입니다. 도입 초기에는 혁신적인 기술로 전세계 최초로 인증 방식을 도입하였지만, 국제 표준의 변화를 받아들이지 않아 고립을 자초하여 지금은 역사 속으로 사라질 위기에 처해있습니다. 이미 사라진 WIPI도 그렇습니다.

신기술을 빠르게 도입하는 것이 능사가 아니라 산업계 전반에 적용되는 데 필요한 시간, 신기술의 효과를 확인하기 위한 시간, 기술적인 오류나 문제점이 자연 발생적으로 해결되는 시간이 필요합니다. 섣부른 도입이 만들어낼 파장을 생각한다면 신기술은 숙성되는 시간이 필요합니다. 

아마도 ECC는 좀 더 시간이 필요한 기술이 아닌가 생각됩니다. 



참조자료
한국 정보통신기술협회 관련 자료

 


라인하트 (CCIEV #18487) _______________________________________________________________
ucwana@gmail.com (라인하트의 구글 이메일) 
http://twitter.com/ucwana (라인하트의 트위터 ) 
http://twitter.com/nexpertnet (넥스퍼트 블로그의 트위터, 최신 업데이트 정보 및 공지 사항) 
http://groups.google.com/group/cciev (시스코 UC를 공부하는 사람들이 모인 구글 구룹스) 
http://groups.google.com/group/ucforum (UC를 공부하는 사람들이 모인 구글 구룹스) 
세상을 이롭게 하는 기술을 지향합니다. ____________________________________________________