"타원곡선암호"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
11번째 줄: 11번째 줄:
  
 
=== 타원 곡선의 방정식 ===
 
=== 타원 곡선의 방정식 ===
[[파일:타원_곡선_암호화.PNG |썸네일|450픽셀|가운데|'''타원 곡선'''의 그래프]]
+
[[파일:타원_곡선_암호화.PNG |썸네일|350픽셀|가운데|'''타원 곡선'''의 그래프]]
타원 곡선의 방정식은 y^2=x^3+ax+b로 표현할 수 있으며 이러한 타원 곡선 암호화로 10^77 정도의 경우의 수를 얻을 수 있다.<ref>〈[https://www.tokenpost.kr/terms/14092 타원 곡선 암호화]〉, 《토큰 포스트》</ref>
+
타원 곡선의 방정식은 '''y^2=x^3+ax+b'''로 표현할 수 있으며 이러한 타원 곡선 암호화로 '''10^77''' 정도의 경우의 수를 얻을 수 있다.<ref>〈[https://www.tokenpost.kr/terms/14092 타원 곡선 암호화]〉, 《토큰 포스트》</ref>
  
 
=== 난수 생성기의 중요성 ===
 
=== 난수 생성기의 중요성 ===

2019년 5월 8일 (수) 14:23 판

타원곡선암호(Elliptic Curve Cryptography;ECC)는 타원곡선능 기반으로 한 암호방식으로, 대표적인 공개키 방식 중 하나이다.[1] 타원곡선암호기술은 1985년 RSA암호방식에 대한 대안으로 1985년도에 제안된 방식이다. 비트코인이 타원곡선암호기술 방식에 속하는 ECDSA(Elliptic Curve Digital Signature Algorithm) 암호 알고리즘을 사용하고 있다.[2]

개요

타원곡선암호는 타원곡선 군의 연산에서 정의되는 이산대수 문제의 어려움의 이용을 기초로 하는 공개키 암호 알고리즘 시스템으로서 RSA/DSA와 같은 공개키 암호보다 짧은 키 길이와 빠른 연산속도를 가지면서 동일한 수준의 보안 강도를 제공하는 암호 알고리즘이다.[3] 보안을 강화하기 위해서 암호키의 길이는 늘리는 방법이 있지만 그에 따라 암호 연산 속도가 느려진다는 문제가 있다. 그래서 사람들은 RSA방식을 사용하여 암호키 길이를 늘리는 대신 타원곡선암호 기술을 선택하는 경우가 많다. 타원곡선암호는 유한체상의 타원곡선의 수학적 성질을 이용한 암호 기술을 이야기 한다. 유한체(Finite Field)는 집합에 속해 있는 원소의 수가 한정되어 있으며, 덧셈,곱셈 연산에 대하여 닫혀 있는 집합을 의미한다. 유한체를 사용하는 이유는 암호 연산은 정수를 기반으로 계산해야 하기 때문이다.[2]

특징

공개키 알고리즘

공개키 암호 알고리즘(public key cryptosystem) 또는 비대칭키 암호 알고리즘이란 개인이 비밀통신을 할 경우엔 대칭키 암호를 사용할 수 있지만, 다수가 통신을 할 때에는 키의 개수가 급증하게 되어 큰 어려움이 따른다. 이런 어려움을 극복하기 위해 나타난 것이 공개키 암호이다. 공개키 암호는 다른 유저와 키를 공유하지 않더라도 암호를 통한 안전한 통신을 할 수 있다는 장점을 갖는다.

공개키 알고리즘은 서로 다른 키를 가지고 있으며 키의 이름은 공개키(Public Key)와 비밀키(Private Key)이다. 이 공개키와 비밀키를 만드는 알고리즘인 공개키 알고리즘은 두 가지 방식으로 분류할 수 있다. 소인수분해 문제를 이용해서 만드는 방법과 이산 로그 문제를 이용해서 만드는 방법이 있다. RSA는 소인수분해 문제를 선택하고 있다면 타원곡선 암호는 이산 로그 문제를 사용하고 있다.[4]

타원 곡선의 방정식

타원 곡선의 그래프

타원 곡선의 방정식은 y^2=x^3+ax+b로 표현할 수 있으며 이러한 타원 곡선 암호화로 10^77 정도의 경우의 수를 얻을 수 있다.[5]

난수 생성기의 중요성

RSA에 비교한 타원곡선암호의 약점은 사용되는 프라이빗 키의 비트(bit)수가 적다는 것이다. 프라이빗 키는 난수 생성기를 통해서 만들어지기 때문에 난이도가 낮다면 공격자에 의해 프라이빗 키가 예측될 위험이 존재한다. 타원곡선을 이용한 전자서명 알고리즘인 ECDSA 암호 알고리즘의 보안성은 사용되는 개인키의 보안성에 의해 좌우 된다. 그렇기 때문에 예측할 수 없는 난수를 가진 개인 키를 생성해야 한다.[2]

장점

타원곡선 이론은 대수기하의 한 분야로서 자연스러운 군연산과 그 연산을 수행해주는 효율적인 알고리즘을 가지고 있어 암호학적 응용이 가능하다. 다른 공개키 암호시스템과 비교하여 타원곡선 이론의 장점은 다음과 같다.

1. 주어진 유한체상에서 정의된 다양한 타원곡선을 선택할 수 있다. 주어진 소수 중에서 유한체의 부분군을 이용하는 것과 대조적인 모습을 통해 풍부한 타원곡선군을 활용할 수 있는 장점을 가진다.

2. 초특이곡선같은 특별한 유형의 타원곡선을 제외하고는 알려진 이산대수 문제를 푸는 가장 효율적인 지수계산 알고리즘을 적용할 수 없어 안전한 암호시스템의 설계가 용이하다.

3. 타원곡선암호는 다른 암호시스템과 비교하여 짧은 키 길이를 보유하고 있지만 대등한 안정성을 제공하여 높은 효율성을 보여준다.

4. 타원곡선상의 연산은 유한체의 연산을 포함하고 있으므로 H/W와 S/W로 구현하기가 용이하다. 모든 사용자가 동일한 유한체와 유한체 연산을 수행하는 같은 H/W를 사용하더라도 서로 다른 타원곡선을 선택하여 사용할 수 있으며 추가 보안을 위해 주기적으로 타원곡선을 바꿀 수 있다.[6]

한계점

타원곡선 암호화 기법은 다른 암호화 기법에 비해 높은 효율을 보여주지만 한계점도 분명 존재한다. 그 한계는 구현의 어려움이다. 실제로 비트코인에서 사용된 타원곡선 암호화 기술도 오랫동안 OpenSSL에 기반한 모듈을 사용하다가 최근들어 자체적인 알고리즘으로 바뀌기도 했다. 현재 IoT 기기들의 가장 큰 문제점이 무거운 공개키 기반 구조를 적용하기 어렵다는 부분인데, 타원곡선암호가 이에 대한 해결책으로 언급되지만 이 역시 구현의 어려움으로 지체되고 있다.[7]

각주

  1. ilovemylif, 〈타원곡선암호, Elliptic Curve Cryptography (1)〉, 《네이버 블로그》, 2018-01-17
  2. 2.0 2.1 2.2 AEP코리아네트, 〈비트코인에서 사용하는 타원곡선암호기술(ECC)〉, 《네이버 블로그》, 2018-01-05
  3. 밤공기후하후하, 〈암호학 - ECC, 타원곡선암호란 무엇인가〉, 《네이버 블로그》, 2018-08-23
  4. 그래비티Grabity, 〈타원곡선 암호과 이더리움 전자서명 ( feat. 우주를 줄게 )〉, 《네이버 블로그》, 2019-03-26
  5. 타원 곡선 암호화〉, 《토큰 포스트》
  6. giaysm, 〈타원곡선 암호시스템 급부상〉, 《네이버 블로그》, 2014-12-09
  7. 안경잡이개발자, 〈타원곡선암호화 기법(Elliptic Curve Cryptographt)〉, 《네이버 블로그》, 2018-04-28

참고자료

같이 보기