대칭키, 비대칭키

코난·2023년 11월 30일
0

CS 면접 정리

목록 보기
18/67

대칭키

  • 암복호화에 사용하는 키가 동일한 암호화 방식을 말함
  • 알고리즘 : DES, 3DES, AES, SEED, ARIA
  • 특징
    • 공개키에 비해 연산 속도가 빠름
    • 대용량 데이터 암호화에 적합
    • 키를 교환해야 한다는 문제 발생(키 탈취 위험)
    • 사용자가 증가할수록 관리해야할 키가 방대하게 많아짐
  • 문제점 해결방법
    • 키의 사전 공유
    • 키 배포 센터 사용
    • Diffie-Hellman 키 교환
    • 공개키 암호화 방식
  • 기밀성을 제공하고 무결성/인증/부인방지를 제공하지 않음
  • 키의 개수 : nC2 = n * (n - 1) / 2
    (전체 구성원 중 2명이 선택될때마다 새로운 키가 필요하기 때문)

비대칭키(공개키)

  • 암복호화에 사용하는 키가 서로 다른 암호화 방식을 말함
  • 알고리즘 : Diffie-Hellman, RSA, DSA, ECC
  • 특징
    • 대칭키 알고리즘에 비해 속도가 느림(연산 복잡)
    • 키 전달 문제를 해결하여 안전성 확보
  • A가 B에게 데이터를 보내는 과정
    1. A는 공개되어 있는 B의 공개키로 데이터를 암호화해서 보냄
    2. B는 본인의 개인키로 해당 암호화된 데이터를 복호화해서 봄
      (이때, 암호화된 데이터는 B의 공개키에 대응되는 개인키를 갖고 있는 B 본인만이 볼 수 있게 됨)
  • 기밀성/인증/부인방지를 제공하고 무결성을 제공하지 않음
  • 키의 개수 : 2n

기밀성, 무결성, 인증, 부인방지

  • 기밀성
    • 허락하지 않은 사용자 및 객체가 정보를 확인하지 못하도록 설정되어야 한다.
  • 무결성
    • 허락하지 않은 사용자 및 객체가 정보를 함부로 변조하지 못하거나 변조가 발생하지 않았는지 확인하는 것이다.
    • 두 알고리즘 모두 성립하지 않아서 전자 서명(인증서)을 추가해 무결성을 보장한다.
  • 인증
    • 사용자 또는 객체의 디지털 정체성 식별
  • 부인 방지
    • 정보를 송수신한 사실을 부인할 경우 증명하는 기술을 말한다.

HTTPS

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에게 전달한다.
    5. B는 CA가 인증하는 B의 공개키에 대응하는 개인키가 있으므로 이를 이용하여 복호화한다.

참고

https://velog.io/@octo__/%EB%8C%80%EC%B9%AD%ED%82%A4%EC%99%80-%EA%B3%B5%EA%B0%9C%ED%82%A4%EB%B9%84%EB%8C%80%EC%B9%AD%ED%82%A4
https://tussle.tistory.com/1036
https://jaehoney.tistory.com/290

profile
몸은 커졌어도, 머리는 그대로... 하지만 불가능을 모르는 명탐정 현아! 진실은 언제나 하나!

0개의 댓글