Computer Science/Network

대칭키 공개키

앵도라지 2023. 4. 6. 16:43

암호화, 복호화란?

  • 예를 들어, Password를 문자 그대로 서버의 DB에 저장한다면 보안상 굉장히 위험하다.
  • 이를 해결하기 위해 Password를 평문 상태로 저장하지 말고 특정한 알고리즘을 적용하여 암호화된 Password를 서버의 DB에 저장한다. 이러한 과정을 암호화라고 한다.
  • 반대로 암호화된 Password를 다시 평문으로 복구시키는 과정을 복호화라고 한다.

 

대칭키와 공개키

  • 대칭키 암호화 방식은 암복호화에 사용하는 키가 동일한 암호화 방식을 말한다.
  • 공개키 암호화 방식은 암복호화에 사용하는 키가 서로 다른 암호화 방식을 말한다. (비대칭키 암호화라고도 한다.)

 

대칭키

  • 대칭키 암호화 방식은 암복호화에 사용하는 키가 동일한 암호화 방식을 말한다.
    • 해당키를 아는 사람만이 문서를 복호화해 볼 수 있게 된다.
  • 속도가 빠르다는 장점이 있지만, 키를 교환해야하는 문제(키 배송문제)가 발생한다.
    • 이 과정에서 탈취가 일어날 수도 있고, 사람이 증가할수록 전부 따로따로 키 교환을 해야 하기 때문에, 관리해야 할 키가 방대하게 많아진다.
  • 대표 알고리즘으로는 DES, 3DES, AES, SEED(공인인증서 암호화방식), ARIA 등이 있다.
더보기

💡 장점 : 수행 시간이 짧음

단점 : 안전한 키교환 방식이 요구됨, 사람이 증가할수록 키관리가 어려워짐

 

공개키 (비대칭키)

  • 공개키 암호화 방식은 암복호화에 사용하는 키가 서로 다른 암호화 방식을 말한다. (비대칭키 암호화라고도 한다.)
  • 대칭키의 키교환 문제를 해결하기 위해 등장했다.
    • 키가 공개되어 있기 때문에, 키를 교환할 필요가 없다.
      • 공개키는 모든 사람이 접근가능한 키이고, 개인키는 각 사용자만이 가지고 있는 키이다.
      • 예를 들어, A가 B에게 데이터를 보낸다고 할 때, A는 B의 공개키로 암호화한 데이터 를 보내고 B는 본인의 개인키로 해당 암호화된 데이터를 복호화해서 보기 때문에 암호화된 데이터는 B의 공개키에 대응되는 개인키를 갖고 있는 B만이 볼 수 있게 되는 것이다.
      • 중간 공격자가 B의 공개키를 얻는다고 해도 B의 개인키로만 복호화가 가능하기 때문에 기밀성을 제공하며 개인키를 가지고있는 수신자만이 암호화된 데이터를 복호화할 수 있으므로 일종의 인증기능도 제공한다는 장점이 있다.
  • 공개키 암호화 에서는 송수신자 모두 한쌍의 키(개인키, 공개키)를 갖고있게 된다.
  • 대표적인 알고리즘
    • Diffie Hellman : 최초의 공개키 알고리즘, 위조에 취약
    • RSA : 대표적 공개키 알고리즘
    • DSA : 전자서명 알고리즘 표준
    • ECC : 짧은 키로 높은 암호 강도, 빠른 구현 가능 PDA, 스마트폰등에 사용
더보기

💡 장점: 키분배 필요X, 기밀성/인증/부인방지 기능을 제공

단점: 대칭키 암호화 방식에 비해 속도가 느림 (복잡함)

 

하이브리드 방식

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

 


질문 & 응답

Q1. 공개키와 대칭키의 차이점은 무엇인가요?

  • 대칭키 암호화 방식은 암복호화에 사용하는 키가 동일한 암호화 방식이지만, 공개키 암호화 방식은 사용하는 키가 서로 다른 방식이다.

Q2. 공개키와 대칭키의 장단점을 각각 설명해보세요

  • 대칭키의 장점은 수행 시간이 짧다는 것이다. 반면에, 안전한 키 방식이 요구되므로 관리가 어렵다. 
  • 공개키는 키 분배가 필요없고, 기밀성 등의 기능을 제공한다. 반면, 대칭키에 비해 속도가 느리다.