Shine's dev log
공개키 암호 (Public key Cryptography) 본문
이때까지 살펴본 DES나 AES는 모두 대칭키 암호들이다. 대칭키 암호는 비밀키 암호라고도 하는데, 송신자와 수신자가 하나의 비밀로 된 같은 키를 사용하기 때문이다.
이런 대칭키 암호의 경우 크게 두가지 문제점이 있다.
1) 처음에 비밀키를 안전하게 주고받는 것이 어렵다.
2) 너무 많은 키가 필요하다. (n명의 사람이 통신할 경우, n(n-1)/2개의 키가 필요)
그래서 나온 방법이 공개키 암호이다.
1. 공개키 암호(Public key Cryptography)
우선 용어를 명확하게 정리해보자.
공개키 암호 = 비대칭키 암호
비공개키 암호 = 대칭키 암호 = 비밀키 암호
공개키 암호의 경우 위의 그림에서 볼 수 있듯이 평문을 public key로 암호화하고, 암호문을 private key로 복호화한다.
대칭키 암호의 경우 엄청 많은 키를 관리했어야 하지만, 공개키 암호의 경우 자신의 공개키 1개와 비밀키 1개, 총 2개의 키만 관리하면 끝 이다. (n명의 사람이 통신할 경우 2n개의 키가 필요)
그래서 어떤 사람한테 메시지를 보내고 싶다면, 그 사람의 공개키로 암호화하고, 그 사람은 자신의 비밀키로 복호화하면 된다.
2. 공개키 암호의 단점
이렇게 장점만 있을 것 같은 공개키 암호는 치명적인 단점이 있다. 느리다.
대칭키 암호에 비해 수백~수만배가 느리다고 하니 많은 양의 데이터를 통신할때는 적합하지 않을 것이다.
그래서 공개키 암호는 주로, 대칭키 암호 통신을 위한 키쌍을 만들 때 사용한다. 즉, 데이터 통신은 대칭키 암호로 빠르게 하되, 키를 처음에 교환할 때 공개키 암호를 사용하는 것이다.
이 때 만들어지는 대칭키(비밀키) 쌍을 세션키(Session Key) 라고 한다.
3. 공개키 암호의 종류
가장 대표적인 공개키 암호로는 3가지가 있다.
1) RSA
2) Diffie-Hellman
3) Elliptic Curve
셋 다 중요한 암호이므로 하나씩 다뤄볼 예정이다.
오늘 배운 내용을 정리해보면,
1. 대칭키 암호는 처음 키를 교환하기 마땅치 않고, 키가 너무 많이 생긴다는 단점이 있다.
2. 공개키 암호는 대칭키 암호에 비해 키가 적게 생긴다는 장점이 있다.
3. 하지만 공개키 암호는 대칭키 암호에 비해 느려서 주로 세션키를 교환하는 데 사용한다.
4. 대표적인 공개키 암호로는 RSA, DF, Elliptic Curve 암호가 있다.
본 내용은 공부하며 정리한 것으로, 치명적인 오류가 있을 수 있습니다.
'보안' 카테고리의 다른 글
RSA 암호화 (0) | 2020.07.19 |
---|---|
Diffie-Hellman 알고리즘 (0) | 2020.05.28 |
메세지 인증 (Message Authentication) (1) | 2020.05.15 |
블록 암호 운용방식 (Modes of operation) (0) | 2020.05.14 |
RC4 암호 알고리즘 (0) | 2020.05.14 |