[블록 암호화] 블록 암호화 - ECB 모드
블록 암호화는 평문을 일정한 크기의 블록으로 나누어 동일한 키로 암호화하는 방식입니다.
이러한 블록 암호화는 특정한 운용 모드를 통해 사용할 수 있는데,
그 중 ECB 모드에 대해 간단히 정리합니다.
ECB 모드는 Electronic CodeBook의 약자로, 운용 방식 중 가장 간단한 암호화 방식입니다.
1. AES-ECB 란?
| 특징 | 설명 |
|---|---|
| 암호 알고리즘 | AES (Advanced Encryption Standard) |
| 지원 키 길이 | 128비트, 192비트, 256비트 |
| 암호화 방식 | 16바이트씩 독립적으로 암호화 |
1-1. 키 128/192/256 차이
모든 키의 길이에서 동작은 같지만, 내부 라운드 수만 다르다고 합니다. (블록 크기 동일)
| 구분 | AES-128 | AES-192 | AES-256 |
|---|---|---|---|
| 키 길이 | 128비트(16바이트) | 192비트(24바이트) | 256비트(32바이트) |
| 라운드 | 10 | 12 | 14 |
| 블록 크기 | 128비트(16바이트) 고정 | 동일 | 동일 |
2. ECB 동작 원리
ECB는 평문 블록 하나를 AES 블록 암호에 넣어 동일한 크기의 암호문 블록 하나를 얻습니다.
이때 평문이 동일하면 암호문도 동일하다는 특성을 가지게 되는데,
이러한 특성으로 패턴이 노출되어 보안성이 낮습니다.
또한 반드시 16바이트 블록 크기만큼의 데이터를 필요로 하기 때문에 PKCS#7과 같은 패딩이 필요합니다.
2-1. 암호화 / 복호화
ECB는 암호화와 복호화 모두 단순한 블록 변환입니다.
(XOR 기반의 구조가 아니다.)
2-2. ECB 장점
ECB는 구조가 단순하고 IV/Nonce와 같은 초기값이 필요 없습니다.
또한 추가 연산이 없기 때문에 빠르고, 블록 간의 상호 작용이 없기 때문에 병렬 처리가 가능합니다.
2-3. ECB의 문제
ECB는 보안적으로 매우 취약합니다.
따라서 현대 암호 표준에서는 대부분 사용이 금지(?)되어 있다고 합니다.
| 문제점 | 설명 |
|---|---|
| 패턴 노출 | 같은 평문 - 같은 암호문 |
| 구조적 문제 | 반복 데이터가 그대로 암호문 패턴에 노출 |
| 무결성 없음 | 단순한 블록 암호화로 변조 탐지가 불가능 |
| 표준 비권장 | TLS, SSH, WPA 등에서 금지 |
3. 사용 사례
취약점이 명확한 ECB는 보안 서비스에 바로 사용되지는 않고, 제한적인 목적에서 사용된다고 합니다.
- AES 알고리즘 테스트 : 성능 측정 및 라운드 테스트
- 고정값 변환 : 단순 AES 암호문 필요한 경우
- KW/KWP : 키 래핑 알고리즘인 KW/KWP의 내부에서 사용