암호화¶
1. 암호화 개요¶
| 구분 | 설명 |
|---|---|
| 평문(Plaintext) | 암호화 전 원본 데이터 |
| 암호문(Ciphertext) | 암호화된 데이터 |
| 키(Key) | 암호화/복호화에 사용하는 값 |
| 암호화(Encryption) | 평문 → 암호문 |
| 복호화(Decryption) | 암호문 → 평문 |
2. 대칭키 암호화 (Symmetric Key)¶
암호화와 복호화에 같은 키를 사용합니다.
| 알고리즘 | 특징 |
|---|---|
| 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)¶
임의 길이의 데이터를 고정 길이의 해시값으로 변환합니다. 단방향으로 복호화 불가합니다.
| 알고리즘 | 출력 길이 | 특징 |
|---|---|---|
| MD5 | 128비트 | 빠름, 충돌 취약 (사용 지양) |
| SHA-1 | 160비트 | 충돌 취약 (사용 지양) |
| SHA-256 | 256비트 | 현재 표준, 안전 |
| SHA-3 | 가변 | 최신 표준 |
해시의 특성¶
- 단방향성: 해시값으로 원본 복원 불가
- 결정론적: 같은 입력 → 항상 같은 출력
- 충돌 저항성: 다른 입력이 같은 해시값 가지기 어려움
- 눈사태 효과: 입력 1비트만 바뀌어도 출력이 완전히 달라짐
활용¶
- 비밀번호 저장 (해시 + Salt)
- 파일 무결성 검증
- 디지털 서명
5. 디지털 서명 (Digital Signature)¶
문서의 무결성과 발신자 인증을 보장합니다.
- 송신자가 문서를 해시
- 해시값을 개인키로 암호화 → 서명값 생성
- 수신자가 서명값을 공개키로 복호화 → 해시값 획득
- 문서를 직접 해시한 값과 비교 → 일치하면 무결성 확인
6. PKI (Public Key Infrastructure)¶
공개키 암호화를 안전하게 사용하기 위한 인증서 기반 체계입니다.
| 구성요소 | 역할 |
|---|---|
| CA (인증기관) | 인증서 발급 및 관리 |
| 인증서 | 공개키 + 소유자 정보 + CA 서명 |
| CRL | 폐기된 인증서 목록 |
| RA | CA 대신 인증서 신청 접수 |
시험 포인트¶
- 대칭키: 같은 키, 빠름, 키 배송 문제 — AES
- 비대칭키: 공개/개인키 쌍, 느림, 키 배송 안전 — RSA
- HTTPS: 비대칭키로 대칭키 교환 → 대칭키로 통신
- 해시: 단방향, 복호화 불가 — SHA-256
- 디지털 서명: 개인키로 서명, 공개키로 검증
- PKI: CA가 발급한 인증서로 공개키 신뢰성 보장