콘텐츠로 이동

암호화

1. 암호화 개요

구분 설명
평문(Plaintext) 암호화 전 원본 데이터
암호문(Ciphertext) 암호화된 데이터
키(Key) 암호화/복호화에 사용하는 값
암호화(Encryption) 평문 → 암호문
복호화(Decryption) 암호문 → 평문

2. 대칭키 암호화 (Symmetric Key)

암호화와 복호화에 같은 키를 사용합니다.

평문 --[암호화: Key A]--> 암호문 --[복호화: Key A]--> 평문
알고리즘 특징
DES 56비트 키, 현재 취약 (사용 지양)
3DES DES를 3회 적용, DES보다 안전하나 느림
AES 128/192/256비트 키, 현재 표준, 빠름
  • 장점: 속도 빠름
  • 단점: 키 배송 문제 (안전하게 키를 전달하기 어려움), 통신 상대마다 별도 키 필요

3. 비대칭키 암호화 (Asymmetric Key)

공개키(Public Key)와 개인키(Private Key) 쌍을 사용합니다.

암호화: 수신자의 공개키로 암호화
복호화: 수신자의 개인키로 복호화
알고리즘 특징
RSA 소인수 분해 기반, 가장 널리 사용
ECC 타원 곡선 기반, 짧은 키로 높은 보안
DSA 디지털 서명 전용
  • 장점: 키 배송 문제 없음 (공개키는 공개해도 됨)
  • 단점: 대칭키보다 훨씬 느림

대칭키 vs 비대칭키

구분 대칭키 비대칭키
키 수 1개 2개 (공개/개인)
속도 빠름 느림
키 배송 문제 있음 문제 없음
용도 대용량 데이터 암호화 키 교환, 디지털 서명
예시 AES RSA

실제 HTTPS: 비대칭키로 대칭키를 안전하게 교환 후 대칭키로 통신


4. 해시 함수 (Hash Function)

임의 길이의 데이터를 고정 길이의 해시값으로 변환합니다. 단방향으로 복호화 불가합니다.

"hello" → SHA-256 → 2cf24dba5fb0a30e...
알고리즘 출력 길이 특징
MD5 128비트 빠름, 충돌 취약 (사용 지양)
SHA-1 160비트 충돌 취약 (사용 지양)
SHA-256 256비트 현재 표준, 안전
SHA-3 가변 최신 표준

해시의 특성

  • 단방향성: 해시값으로 원본 복원 불가
  • 결정론적: 같은 입력 → 항상 같은 출력
  • 충돌 저항성: 다른 입력이 같은 해시값 가지기 어려움
  • 눈사태 효과: 입력 1비트만 바뀌어도 출력이 완전히 달라짐

활용

  • 비밀번호 저장 (해시 + Salt)
  • 파일 무결성 검증
  • 디지털 서명

5. 디지털 서명 (Digital Signature)

문서의 무결성발신자 인증을 보장합니다.

서명:    문서 해시 --[개인키로 암호화]--> 서명값
검증:    서명값 --[공개키로 복호화]--> 해시 비교
  1. 송신자가 문서를 해시
  2. 해시값을 개인키로 암호화 → 서명값 생성
  3. 수신자가 서명값을 공개키로 복호화 → 해시값 획득
  4. 문서를 직접 해시한 값과 비교 → 일치하면 무결성 확인

6. PKI (Public Key Infrastructure)

공개키 암호화를 안전하게 사용하기 위한 인증서 기반 체계입니다.

구성요소 역할
CA (인증기관) 인증서 발급 및 관리
인증서 공개키 + 소유자 정보 + CA 서명
CRL 폐기된 인증서 목록
RA CA 대신 인증서 신청 접수
사용자 → [공개키 제출] → CA → [CA 개인키로 서명] → 인증서 발급
브라우저 → [CA 공개키로 인증서 검증] → 신뢰 여부 결정

시험 포인트

  • 대칭키: 같은 키, 빠름, 키 배송 문제 — AES
  • 비대칭키: 공개/개인키 쌍, 느림, 키 배송 안전 — RSA
  • HTTPS: 비대칭키로 대칭키 교환 → 대칭키로 통신
  • 해시: 단방향, 복호화 불가 — SHA-256
  • 디지털 서명: 개인키로 서명, 공개키로 검증
  • PKI: CA가 발급한 인증서로 공개키 신뢰성 보장