[Network] 대칭키/공개키 (Symmetric Key/Public Key)

·2021년 7월 18일
0

Network

목록 보기
2/7

대칭키/공개키란?


대칭키 (Symmetric Key)

암호화와 복호화에 같은 암호키(대칭키)를 사용하는 알고리즘
하나의 키를 양쪽(client & server)가 같이 사용한다.

  • 장점 : 공개키 암호화 방식에 비해 암호화 및 복호화 속도가 빠르다. 비교적 간편하다.
  • 단점 : 암호화 통신을 하는 사용자끼리 같은 대칭키를 공유해야만 한다.
    이게 왜 단점?
    1. 물리적으로 직접 만나서 전달하지 않는한, 대칭키를 전달하는 과정에서 해킹의 위험에 노출될 수 있다!
    2. 관리해야 할 키의 개수가 방대해진다.
  • 대표 알고리즘 : DES, 3DES, AES, SEED, ARIA 등

공개키 (Public Key)

암호화와 복호화에 사용하는 암호키를 분리한 알고리즘
공개키와 비밀키 두 개가 존재한다.

공개키(Public Key)만 대중에게 공개하고, 암호화 된 데이터는 고유한 비밀키(Private Key)로만 복호화할 수 있다. 이 비밀키를 가진 사용자만이 내용을 열어볼 수 있다.

  • 장점 : 수신자의 개인키로만 해독할 수 있으므로 안전하다.
  • 단점 : 대칭키(Symmetric Key) 알고리즘에 비하여 속도가 느리다. (약 1000배)
  • 대표 알고리즘 : RSA 등


암호화/복호화 시나리오


대칭키(Symmetric Key) 암호화 시나리오

  1. A는 사전에 공유된 대칭키로 데이터를 암호화하여 B에게 전송한다.
  2. B는 같은 대칭키로 데이터를 복호화한다.

공개키(Public Key) 암호화 시나리오

  1. A가 웹 상에 공개된 B의 공개키를 이용하여 평문을 암호화 한다.
  2. 이 암호문(CiperText)는 B가 개인적으로 가지고 있는 B의 비밀키로만 복호화가 가능하다. B는 자신의 비밀키로 복호화한 평문을 확인하고, A의 공개키로 응답을 암호화하여 A에게 보낸다.
  3. A는 A의 비밀키로 암호화된 응답문을 복호화한다.
  • 장점 : 대칭키의 단점을 완벽하게 해결함
  • 단점 : 암호화/복호화가 매우 복잡함 (키가 서로 다르기 때문에)

이론적으로 완벽한 암호화 시나리오 (대칭키+공개키)

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

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

=> 이 방식이 바로 SSL(Secure Socket Layer)의 시초가 되었다.



출처

https://preamtree.tistory.com/38

profile
당근먹고 자라나는 개발자

0개의 댓글