Shine's dev log
타원 곡선 암호(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를 생성해낸다.
본 내용은 공부하며 정리한 것으로, 오류가 있을 수 있습니다.
'보안' 카테고리의 다른 글
[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 |