본문 바로가기
IT Knowledge

대칭키 VS 공개키(비대칭키), 디지털 인증서 원리

by 몰라닉네임 2023. 9. 20.

대칭키

대칭키는 암복호화에 사용하는 키가 동일한 암호화 방식이다.

 

(대표적 알고리즘) DES, 3DES, AES, SEED ,ARIA 등이 있다

 

(장점) 공개키 암호화 방식에 비해 속도 빠르다

(문제) 키를 교환해야하는 문제 (중간에 키를 탈취당할 수 있다.), 사람이 증가할수록 전부 따로 키교환을 해야하기 때문에 관리해야 할 키가 방대하게 많아진다.


공개키 (비대칭키)

공개키(비대칭키)는 대칭키의 키교환 문제를 해결하기 위해 등장한 암호화 방식이다. 

 

이름 그대로 키가 공개되어 있어 키를 교환할 필요가 없다. 공개키는 모든 사람이 접근가능한 키이고,

개인키는 각 사용자만이 가지고 있는 키이다.

 

(대표적 알고리즘) RSA, Diffie-Hellman, DSA, ECC 등이 있다.

 

(장점) 키분배 필용 없다. 기밀성/인증/ 부인방지 기능 제공

(단점) 속도가 느리다. 

 

A가 B에게 데이터를 보낸다고 할 때, A는 B의 공개키로 데이터를 암호화해서 보내고 B는 본인의 개인키로 해당 암호화된 데이터를 복호화해서 보게 된다, 여기서 암호화된 데이터는 B의 공개키에 대응되는 개인키를 갖고 있는 B만이 볼 수 있게 된다.

 

HTTPS

대칭키만을 사용하면 키가 탈취될 수 있다는 위험이 존재한다. 그렇다고 공개키만을 사용하면 HTTP 메시지의 길이가 큰 경우에 부하에 큰 무리를 줄 수 있다. (공개키 알고리즘은 암호화, 복호화 알고리즘이 매우 복잡함)

 

그래서 HTTPS에서는 공개(비 대칭)키 방식으로 대칭키를 전달하고, 서로 공유된 대칭키를 가지고 통신하게 된다.

 

과정을 정리하면 아래와 같다.

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

즉, 사용자 측에서는 대칭키 알고리즘을 통해 안전하게 키 교환을 한 후 해당 키로 대칭키 알고리즘을 통해 통신한

 

디지털 인증서 원리

 

디지털 인증서에는 모두가 신뢰할 수 있는 제3자인 CA (인증기간)와 비대칭키 암호화가 필요.

  1. B는 CA(인증기관)에게 자신이 B임을 증명하고 자신의 공개키가 B의 공개 키가 맞음을 인증하는 인증서 발급.
  2. A에게 B의 공개키가 포함된 이 인증서를 주면,
  3. 이를 받은 A는 자신이 신뢰할 수 있는 CA에게 CA가 진짜 발급한 인증서인지 확인하고,
  4. 맞으면 그 인증서에 포함된 B의 공개 키로 데이터를 암호화해서 B에게 전달

만약 최종적으로 B가 올바르게 자신의 개인키로 복호화한다면, CA가 인증하는 B의 공개키에 대응하는 개인키를 가지고 있다는 것이므로, 이 과정을 통해 현재 통신하고 있는 상대방이 B가 맞음을 인증할 수 있음.

 

참고

(디지털 인증서 원리, 해쉬함수 )

https://velog.io/@gs0351/%EB%8C%80%EC%B9%AD%ED%82%A4-vs-%EA%B3%B5%EA%B0%9C%ED%82%A4%EB%B9%84%EB%8C%80%EC%B9%AD%ED%82%A4

 

https://jaehoney.tistory.com/290