Shine's dev log

타원 곡선 암호(Elliptic Curve Cryptography) 본문

보안

타원 곡선 암호(Elliptic Curve Cryptography)

dong1 2020. 7. 30. 15:10

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를 생성해낸다.

 

 

본 내용은 공부하며 정리한 것으로, 오류가 있을 수 있습니다.

 

 

 

 

'보안' 카테고리의 다른 글

[JAVA] 대칭키와 비대칭키를 활용한 채팅 프로그램  (0) 2020.08.06
디지털 서명 & PKI  (0) 2020.08.06
RSA 암호화  (0) 2020.07.19
Diffie-Hellman 알고리즘  (0) 2020.05.28
공개키 암호 (Public key Cryptography)  (0) 2020.05.27