Goomba

[블록 암호화] 블록 암호화 - ECB 모드

  • crypto

블록 암호화는 평문을 일정한 크기의 블록으로 나누어 동일한 키로 암호화하는 방식입니다.
이러한 블록 암호화는 특정한 운용 모드를 통해 사용할 수 있는데,
그 중 ECB 모드에 대해 간단히 정리합니다.

ECB 모드는 Electronic CodeBook의 약자로, 운용 방식 중 가장 간단한 암호화 방식입니다.

1. AES-ECB 란?

특징설명
암호 알고리즘AES (Advanced Encryption Standard)
지원 키 길이128비트, 192비트, 256비트
암호화 방식16바이트씩 독립적으로 암호화

1-1. 키 128/192/256 차이

모든 키의 길이에서 동작은 같지만, 내부 라운드 수만 다르다고 합니다. (블록 크기 동일)

구분AES-128AES-192AES-256
키 길이128비트(16바이트)192비트(24바이트)256비트(32바이트)
라운드101214
블록 크기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의 내부에서 사용