Croot Blog

Home About Tech Hobby Archive

⚠️

이 블로그의 모든 포스트는 Notion 데이터베이스를 자동 변환하여 작성 되었습니다.
따라서 문서에 따라 깨져 보일 수 있습니다.
더 많은 내용이 궁금하시다면 👀 Notion 보러가기

블록 암호 운용 모드(Block Cipher Mode of Operation)

정의

블록 암호 운용 모드는 고정 길이 블록 단위로 동작하는 블록 암호 알고리즘(BCE) 을 여러 블록의 평문 데이터에 적용하기 위한 처리 방식이다.

대표적인 운용 모드에는 ECB, CBC, OFB, CFB, CTR 가 있다.

특징

  • 블록 암호 자체는 단일 블록만 암호화 가능
  • 운용 모드는 여러 블록을 안전하게 연결
  • 대부분 IV 또는 nonce 를 사용

블록 암호 운용 모드 개념도

0Untitled.png

용어정리

  • I.V ;Initial Vectors
  • P ;Plain Text
  • C ;Cipher Text
  • BCE ;Block Cipher Encrypt
  • BCD ;Block Cipher Decrypt

블록 암호 운용 모드 유형

ECB (Electronic Code Book)

동작 방식

  • 각 평문 블록(P)을 독립적으로 암호화
  • IV 사용 ❌
  • C = BCE(P, key)

특징

  • 동일한 평문 → 동일한 암호문
  • 블록 간 연관성 없음

문제점

  • 평문 패턴이 그대로 노출됨
  • 이미지, 구조화된 데이터에 매우 취약

CBC (Cipher Block Chaining)

동작 방식

  • 이전 암호문 블록과 현재 평문을 XOR 후 암호화
  • 첫 블록은 IV 사용
  • Cₙ = BCE(Pₙ ⊕ Cₙ₋₁, key)

특징

  • 동일 평문이라도 암호문 달라짐
  • 블록 간 체인 구조

주의사항

  • IV 재사용 시 보안 취약
  • 병렬 복호화 가능 / 병렬 암호화 불가

OFB (Output Feedback)

동작 방식

  • 암호화 함수 출력값을 스트림처럼 사용
  • 평문과 XOR
  • C = P ⊕ Stream

특징

  • 암호화/복호화 구조 동일
  • 오류 전파 없음

주의사항

  • IV 재사용 시 치명적
  • 동기화 깨지면 전체 복호화 실패

CFB (Cipher Feedback)

동작 방식

  • 이전 암호문을 입력으로 암호화
  • 출력값과 평문 XOR
  • 블록 암호를 스트림 암호처럼 사용

특징

  • 블록 단위 또는 비트 단위 처리 가능
  • 암호화/복호화에 BCE 사용

주의사항

  • 오류 전파 발생
  • 병렬 처리 비효율적

CTR (Counter)

동작 방식

  • nonce + counter 값을 암호화
  • 결과를 평문과 XOR
  • C = P ⊕ BCE(nonce || counter)

특징

  • 병렬 암호화/복호화 가능
  • 스트림 암호처럼 동작
  • 패딩 불필요

주의사항

  • nonce + counter 절대 재사용 금지

블록 암호 운용 모드 비교

Mode IV / Nonce 병렬 처리 보안성 실무 사용
ECB
CBC IV 복호화만 ⭕ ⚠️ ⚠️
OFB IV ⚠️
CFB IV ⚠️
CTR Nonce