본문 바로가기
Computer Science/네트워크

[네트워크] 대칭키와 공개키 암호화 방식과 종류 (SSL이란, 대칭키 공개키 장단점 및 차이, 공개키 암호화만 부인방지 기능을 제공할 수 있는 이유)

by 그적 2024. 3. 7.

목차

  • SSL (Secure Socket Layer)이란
  • 대칭키 암호화 방식
  • 공개키 암호화 방식
  • 대칭키와 공개키 차이
  • 공개키 암호화만 부인방지 기능을 제공할 수 있는 이유

 


1. SSL (Secure Socket Layer)이란

SSL은 Secure Socket Layer의 약자로, 네트워크 상에서 데이터에 대한 도청, 간섭, 위조 등을 막기 위해 사용한다. 공인된 제 3자가 보증해주는 SSL 인증서를 이용해 암호화가 이뤄지며, 인증서에는 서버 측 공개키에 관한 정보와 서비스에 관한 정보가 들어있다.

 

SSL을 사용하는 대표적인 프로토콜로 HTTPS가 있다. 클라이언트가 서버에 접속하면 SSL 인증서를 전달하는데, 이 인증서를 통해 클라이언트는 서버가 신뢰할 수 있는 사이트인지를 확인하고, CA의 공개키를 이용해 데이터를 인증서를 복호화한다. 그 후 인증서에 들어있는 대칭키를 이용해 데이터를 복호화하며, 만약 서버에 요청할 데이터가 존재한다면 비밀키로 암호

 

SSL은 대칭키와 공개키, 이 두 개의 암호화 방식을 혼용해서 사용한다. 

 


2. 대칭키 암호화 방식

 

 

(특징)

  • 데이터를 암호화 및 복호화 시 같은 키 사용
  • 공유되는 키를 대칭키 혹은 세션키라고 부름
  • SEED, DES, 3DES, AES, ChaCha20 등

(장점)

  • 속도가 빠름
  • 대용량 데이터에 적합

(단점)

  • 키 탈취 문제 발생 
  • 상대방에 따라 모두 다른 키를 사용하기 때문에, 키가 점점 방대해지고 키 관리가 필요함
  • 기밀성을 제공하나, 무결성/인증/부인방지 기능을 제공하지 않음

** 기밀성 : 인가되지 않은 사용자에게 데이터가 유출되더라도 평문으로 열람(해독)할 수 없다.

** 무결성 : 인가되지 않은 사용자가 데이터를 변조할 수 없다.

** 인증 : 수신한 데이터를 받은 대상임을 증명하는 것

** 부인방지 : 데이터를 받았던 사실이나 보냈던 사실을 부인할 때 증명하는 것


3. 공개키 암호화 방식

 

(특징)

  • 데이터 암호화 시 공개키 사용, 데이터 복호화 시 비밀키 사용
  • 일반적으로 안전한 키 교환을 위해 사용
  • 공개키 암호, 공개키 서명으로 나뉨
  • Diffie hellman, RSA, DSA, ECC 등

(장점)

  • 키를 관리할 필요가 없음
  • 기밀성/무결성/인증/부인방지 기능을 제공

(단점)

  • 속도가 느림

 


4. 대칭키와 공개키 암호화 방식 차이

  대칭키 암호화 공개키 암호화
키 분배 암호화 및 복호화 시 동일한 키 사용 암호화 및 복호화 시 다른 키 사용
(암호화는 개인키, 복호화 시 공개키)
속도 빠름 느림
데이터 길이 길이 제한 없음 길이 제한 있음
키 길이 64비트, 128비트 등 작은 길이 512비트, 1024비트, 2048비트 등 긴 길
기밀성 제공 제공
무결성 일부 제공 제공
인증 일부 제공 제공
부인방지 제공 X 제공
사용 예시 파일 암호화 전자서명
부인방지
HTTPS의 비밀키 공유

 


5. 공개키 암호화만 부인방지 기능을 제공할 수 있는 이유

공개키 암호화만 부인방지 기능을 제공할 수 있는데, 그건 바로 공개키 암호화에서 사용되는 비밀키 덕분이다. 두 개의 컴퓨터가 생성한 공개키와 비밀키를 서로 나눠가진 상태라고 가정해보자. 공개키로 데이터를 암호화해 상대방에게 전달하면 데이터를 받은 쪽은 비밀키로 데이터를 복호화할 것이다.

 

만약 데이터를 보낸 쪽에서 '이거 내가 보낸 데이터 아닌데'라고 부인한다면, 비밀키를 이용해 데이터를 복호화함으로써 '너가 보낸 게 맞아'라고 증명할 수 있게 된다. 그 이유는 공개키로 암호화된 데이터는 개인키를 이용해야만 복호화할 수 있기 때문이다.

 

결국 대칭키는 하나의 키를 공유해 암호화와 복호화를 하기 때문에, 상대방이 보낸 사실을 부인해버리면 이를 인증할 수 없으며, 두 개의 키를 사용하는 공개키 암호화만 부인방지 기능을 제공할 수 있다.

 

댓글