[컴][상식] 암호화의 두가지 방식 - 대칭키 방식, 공개키 방식



Symmetric

symmetirc-key(또는 private key 라 부른다.) : 대칭 키,
암호화(encryption), 복호화(decryption)를 같은 키로 한다. 양방향 통신을 할 때 같은 key 를 가지고 있어야 한다. 흔히 첩보영화에서 나오는 책을 보고 암호지령을 해독할 때 이 책이 서로 공유하는 비밀 key(secret key) 가 된다. 영화에서도 보면 알겠지만 이 secret key 가 노출이 되면, 암호가 풀려버리기 때문에 이 secret key 의 보안이 매우 중요하다.



Public

public-key encryption : 공개 키
누구에게나 encrypt(암호화) 할 수 있는 key(public key) 를 발행해 주지만, 수신자만이 decryption key(private key) 에 대한 접근이 있다. 결국 수신자만이 수신된 내용을 알 수 있다.

비교적 최신에 발명된 것이라서, 옛날 얘기에 나오는 암호는 대부분 symmetric-key 라고 보면 된다.

단순히 public key 만 가지고 private key 를 유추해내기는 매우 어렵다. 그래서 public key 를 처음에 교환할 때 굳이 보안에 신경 쓸 필요가 없는 것이다.

우리가 사용하는 https 에도 이 공개키 방식 중 하나인 TLS(Transport Layer Security) 가 사용된다.

이 공개키 방식은 아래 2가지 방식으로 사용이 된다.
  • 공개키 암호화 :  public key 로 암호화 해서 메시지를 보내면, 수신자가 private key 로 복호화해서 볼 수 있게 하는 방법.
  • 디지털 서명 : private key 를 가진 사람이 private key 로 암호화를 해서 메시지를 보내면, public key 를 가진 쪽에서는 이 사람이 private key 를 사용했다는 사실을 통해 private key 를 가지고 있으니(유일한 것이니) 보낸 사람을 믿게 되는 것이다.


비유

ref.1 에서 설명해주는 비유를 번역하면,
  • 공개키 암호화
    한개의 메일을 넣는 입구가 있는 잠겨있는 우체통(mail box) 이다.
    노출되어 있고, 대중이 접근할 수 있다. 우체통의 주소는 public key 가 된다.
    주소를 알면, 문에가서 slot 을 통해서 자신의 메시지를 넣을 수 있다.
    하지만 mail box 의 열쇠(private key) 를 가진 사람만이 메일박스를 열어서 메시지를 열어볼 수 있다.
  • digital signature(디지털 서명)봉투의 봉인(seal)이다. 개인의 wax 로 봉인을 했다.(외국 영화에서 자주 볼 수 있는데 자신의 문양을 찍어서 seal 을 하곤 한다.)
    누구나 이 봉투를 열 수 있지만, 유일한 seal 의 존재는 보낸이를 증명해 준다.

문제

공개키의 핵심적인 문제는 신뢰다.
이 public key 가 과연 믿을만한 곳에서 배포된 것인가에 대한 신뢰(이상적으로는 증명) 가 관건이다.
이것에 대한 완벽한 해결책은 아직 안알려져 있는 것 같다. 대신에 해결책으로 Public-key infrastructure(PKI) 를 이용해서 키를 배포하는 사람들이 자격증을 얻게 하는 방법이 있고, PGP 와 같은 단체들은 "신뢰웹(Web of Trust)"이라고 불리는 방법을 추가적으로 사용한다. 이 Web of Trust 는 특정 web 에 대한 신뢰가 있으면 이 녀석이 배포하는 key 를 믿는 방식이다. 굳이 PKI 같은 조직에서 새롭게 자격증(certificate) 같은 것을 발급받지 않아도 되는 것이다.



See Also



Reference

  1. http://en.wikipedia.org/wiki/Public_key_encryption

댓글 없음:

댓글 쓰기