본문 바로가기
기초 CS 정리

대칭키와 공개키

by 쿠리의일상 2023. 2. 7.

Symmetric Key (대칭키)

  • 암호화와 복호화 같은 암호키(대칭키)를 사용하는 알고리즘
  • 동일한 키를 주고 받기 때문에 매우 빠르다는 장점이 있지만 대칭키 전달과정에서 해킹 위험에 노출

 

공개키(Public Key)/비대칭키(Asymmetric Key)

  • 암호화와 복호화에 사용하는 암호키를 분리한 알고리즘
  • 대칭키일 때는 송수신자 키를 알아야하기 때문에 분배가 복잡하고 어렵지만 공개키와 비밀키로 분리할 경우 남들이 알아도 되는 공개키만 공개하면 되므로 대칭키의 키 분배 문제를 해결하기 위해 고안됐다.
  • 자신이 가지고 있는 고유한 암호키(비밀키)로만 복호화할 수 있는 암호키(공개키)를 대중에 공개한다.

 

공개키 암호화 방식 진행 과정

  1. A가 웹 상에 공개된 B의 공개키를 이용하여 평문을 암호화하여 B에 보낸다.
  2. B는 자신의 비밀키로 복호화한 평문을 확인, A의 공개키로 응답을 암호화하여 A에게 보낸다.
  3. A는 자신의 비밀키로 암호화된 응답문을 복호화한다.
  • 하지만 이 방식은 Confidentiallity만 보장해줄 뿐 Integrity나 Authenticity는 보장해주지 못한다.
  • 이는 Mac (Message Authentication Code)나 전자 서명으로 해결
    • Mac은 공개키 방식이 아니라 대칭키 방식임을 유의해야 한다.
  • 대칭키에 비해 암호화 복호화가 매우 복잡하다.

 

 

대칭키와 공개키 암호화 방식을 혼합한다면

SSL 탄생의 시초가 된다.

대칭키를 주고 받을 때만 공개키 암호화 방식을 사용하고 이후에는 계속 대칭키 암호화 방식으로 통신하는 것이다.

  1. A가 B의 공개키로 암호화 통신에 사용할 대칭키를 암호화하고 B에게 보낸다.
  2. B는 암호문을 받고 자신의 비밀키로 복호화한다.
  3. B는 A로부터 얻은 대칭키로 A에 보낼 평문을 암호화하여 A에게 보낸다.
  4. A는 자신의 대칭키로 암호문을 복호화한다.
  5. 앞으로 이 대칭키로 암호화를 통신한다.

'기초 CS 정리' 카테고리의 다른 글

TLS/SSL handshaking  (0) 2023.02.09
HTTP & HTTPS  (0) 2023.02.08
TCP/IP의 흐름제어, 혼합제어  (1) 2023.02.05
TCP 3way handshake  (0) 2023.02.05
OSI 7계층  (0) 2023.02.04