타원 곡선 암호(Elliptic Curve Cryptography)
1. ECC(Elliptic Curve Cryptography)란?
타원 곡선 암호(ECC)는 공개키 암호 알고리즘이며, RSA와 같은 다른 공개키 암호에 비해 짧은 키를 사용한다는 것이 특징이다.
대표적으로 비트코인 시스템이나 ad-hoc 무선 인터넷 환경, 모바일 네트워크 환경에서 자주 이용된다.
짧은 키를 사용하기 때문에 1) 긴 키를 계산할 수 없는 조건일 때 2) 빠른 속도가 필요할 때 3) 서명, 검증, 인증이 필요할 때 사용한다.
2. ECC의 원리
타원곡선은 E : y^2 = x^3 ~ 의 형태로 나타낼 수 있다. (y에대한 3차식, x에 대한 2차식)
위의 곡선을 지나는 직선이 있다고 할 때, 지나는 점 P Q -R이 있다고 가정해보자.
이 경우, R = P + Q 이라고 정의한다. (여기서 +기호는 덧셈기호가 아니라 그냥 약속이다.)
만약 위의 그림과 같이 교점이 한개만 나온다면(더블링), P가 Q가 되는 것이다. 2P = 2Q = R
여기서 결국 ECC의 목적은 public key와 private key를 생성해 내는 것이다.
만약 P를 d번만큼 더한 값이 Q라고 해보자 (dP = Q) 여기서, d와 P의 값을 알고 있다면 Q의 값을 알기란 매우 쉬우나, P와 Q값을 가지고 d값을 알기란 매우 힘든 일이다. 따라서 이를 공개키 알고리즘에 적용해보면,
public Key = Q
private Key = d
가 된다. 공개키만을 가지고 비밀키를 알아내기란 매우 힘들기 때문이다.
3. ECC의 암/복호화
ECC를 암호화하는 방법은 크게 세가지가 있다. 1) RSA방식 2) DH방식 3) ECDLP방식
사실 아직 타원 곡선 암호에 대한 것은 나도 잘 모르겠다. 일단 타원 곡선을 이용해서 public key, private key를 알아낼 수 있다는 사실과, 이를 이용해 암호화 하는 방식은 RSA, DH, ECDLP방식이 있다는 것을 알고 있고, 추후에 더 공부하여 보충해 보도록 하겠다.
오늘 배운 내용을 정리해보면,
1. 타원 곡선 암호(ECC)는 공개키 암호이다.
2. 키의 길이는 대칭키보다는 길지만, 비대칭키 중에서는 굉장히 짧은 편이다.
3. ECC에서 정의한 + 로 private key와 public key를 생성해낸다.
본 내용은 공부하며 정리한 것으로, 오류가 있을 수 있습니다.