전자 코드북 (Electronic Codebook, ECB)

고급암호학수정일

전자 코드북(Electronic Codebook, ECB)은 블록 암호의 작동 방식(운영 모드)입니다. 이름은 키가 고정되어 있을 때 블록 암호가 실제 코드북처럼 동작한다는 관찰에서 비롯되었습니다. 가능한 각 평문 블록 값에는 해당 암호문 값이 있고 그 반대도 마찬가지입니다. ECB는 블록 암호를 적용하는 방법으로, 평문을 적절한 크기의 블록으로 분할하고 각 블록을 각각 독립적으로 암호화합니다.

코드북에 비유하면

“회의는 월요일” 또는 “계획 취소”와 같은 각 구문에 해당하는 암호 단어가 적힌 코드북으로 비밀 메시지를 주고받는다고 상상해 보세요. 메시지를 보낼 때마다 코드북에서 구문을 찾아 암호 단어를 적습니다. ECB는 이 방식을 디지털 데이터 블록에 적용한 것입니다. 블록 암호는 키가 없으면 데이터를 읽을 수 없게 만드는 잠금 장치와 같고, ECB 모드는 이 잠금 장치를 메시지에 한 번에 하나의 블록씩 따로 적용합니다.

ECB 작동 방식

  1. 평문 메시지는 암호의 블록 크기(예: AES는 128비트)와 일치하도록 고정 크기의 블록으로 나뉩니다. 마지막 블록이 모자라면 패딩으로 채웁니다.
  2. 각 평문 블록은 동일한 키를 사용하여 다른 블록과 상관없이 독립적으로 암호화됩니다.
  3. 결과 암호문 블록이 연결되어 전체 암호문을 형성합니다.

복호화는 역방향 프로세스로, 암호문 블록이 동일한 키로 개별적으로 복호화되어 평문 블록을 복구합니다.

중요한 한계: 패턴 노출

각 블록이 독립적으로 암호화되기 때문에 동일한 키로 암호화된 동일한 평문 블록은 항상 동일한 암호문 블록을 생성합니다. 코드북에서 같은 암호 단어가 반복되면 내용을 몰라도 같은 말을 했다는 사실이 드러나는 것처럼, ECB 암호문에서는 같은 블록이 어디서 반복되는지가 그대로 보입니다. 같은 내용의 엽서를 같은 모양의 봉투에 넣으면 봉투만 보고도 어느 엽서끼리 같은지 알아볼 수 있는 것과 같습니다. 잘 알려진 예로, 단색 영역이 많은 이미지를 ECB로 암호화하면 원래 그림의 윤곽이 암호화된 이미지에서도 그대로 드러납니다. 또한 누군가 키를 손에 넣으면 물리적 코드북을 빼앗긴 것처럼 모든 메시지를 해독할 수 있습니다.

ECB의 장점

  • 단순성: ECB는 이해하고 구현하기가 매우 쉽습니다.
  • 병렬 처리 가능: 개별 블록의 암호화 및 복호화는 병렬로 수행할 수 있어 프로세스 속도를 잠재적으로 높일 수 있습니다.

ECB의 단점

  • 확산 부족: 동일한 평문 블록이 항상 동일한 암호문 블록을 만들기 때문에, ECB는 특히 반복 패턴이 있는 메시지의 경우 암호 분석에 매우 취약합니다.
  • 블록 스와핑 공격에 대한 취약성: 블록이 독립적으로 암호화되기 때문에 공격자는 탐지 없이 암호문 블록을 재정렬하거나 재생하여 메시지의 의미를 잠재적으로 변경할 수 있습니다.

ECB의 애플리케이션

ECB는 고유한 보안 취약점 때문에 대부분의 최신 암호화 애플리케이션에서 사용하지 않는 것이 좋습니다. 대신 CBC, CTR, GCM처럼 블록마다 이전 블록이나 카운터 값을 반영하는 모드가 쓰입니다. 다만 평문이 본질적으로 짧고 식별 가능한 패턴이 없는 매우 제한된 시나리오, 예를 들어 단일 임의 키를 한 블록으로 암호화하는 경우에는 고려될 수 있습니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.