블록 암호화 모드(ECB, CBC, CFB, OFB, CTR)

1. 블록 암호화 모드 (Block Cipher Mode)의 개요

(1) 블록 암호화의 개념

개념도개념
평문을 일정한 블록(Block) 단위로 나누어 각 블록마다 암호화 과정을 수행하여 고정된 크기의 블록 단위 암호문을 생성하는 양방향 대칭키 기반 암호화 방식
  • 블록 암호화는 평문을 일정한 블록 단위로 나누어 암호화하는 방식으로 스트림 암호화와 구분

(2) 블록 암호화의 원리 및 구조

원리혼돈 (Confusion)– 비선형 함수로 암호문과 키 사이의 상관관계 숨김
확산 (Diffusion)– 선형 함수로 암호의 특성을 전파
구조Feistel– 이전 암호문과 평문을 XOR 형태의 라운드 함수에 반복 적용
SPN (Substitution Permutation Network)– 전치와 치환 이용하여 고정된 블록 행렬로 나타내어 암호화
  • 현재 많이 사용되는 블록 암호화 알고리즘으로 3-DES, AES, ARIA, SEED 등이 있으며, 암호화 운영모드는 ECB, CBC, CFB, OFB, CTR 모드 존재

 

2. 블록 암호화 모드의 세부 방식

  • P: Plain Text, C: Cipher Text, BCE: Block Cipher Encryption
  • IV: Initial Vector, CTR: Counter

(1) ECB (Electronic Codebook) Mode

개념평문을 블록 단위로 나누어 비밀키로 암호화하여 오류 전파 방지 및 병렬 처리가 가능한 블록 암호화 모드
매커니즘
특징오류 전파 방지– 암호화 결과가 다음 블록에 영향을 주지 않아 오류 전파 방지
병렬 처리 가능– 동일 키 암호화 방식이므로 암/복호화 시 병렬 처리 가능
패딩 필요– 암호문은 블록의 N배가 되므로 복호화 후 패딩 필요
반복 공격 취약– 동일한 평문 블록은 동일하게 암호화되는 취약점 존재

(2) CBC (Cipher Block Chaining) Mode

개념첫 블록은 IV(초기화 벡터)로 암호화하고, 이후 블록은 이전 암호문 결과와 XOR 연산을 순차적으로 반복하는 블록 암호화 모드
매커니즘
특징블록 간 오류 전파– 암호화 결과 손상 시 다음 블록으로 오류 전파
암호화 순차 처리– 이전 암호화 결과가 다음 암호화에 영향을 주므로 순차 처리
복호화 병렬 처리– 복호화 시 블록 암호화 후 이전 암호화 블록과 XOR로 병렬 처리
초기 IV 공격 취약– 초기화 벡터가 동일하면 초기 출력 결과가 동일한 취약점 존재

(3) CFB (Cipher Feedback) Mode

개념첫 블록은 IV(초기화 벡터)를 암호화하고, 이후 블록은 평문과 XOR 연산 후 다음 블록으로 입력 및 암호화 하는 블록 암호화 모드
매커니즘
특징블록 간 오류 전파– 암호화 결과 손상 시 다음 블록으로 오류 전파
bit 단위 암호화– 키 스트림 활용으로 평문 블록 데이터를 1 bit 단위 암호화 가능
패딩 불필요– 평문이 아닌 초기화 벡터를 암호화하여 복호화 시 패딩 불필요
재전송 공격 취약– 전송된 암호 블록의 임의 부분 변경 시 평문 변경 취약점 존재

(4) OFB (Output Feedback) Mode

개념첫 블록은 IV(초기화 벡터)를 암호화하고, 이후 블록은 평문과 XOR 연산 전 다음 블록으로 입력 및 암호화하는 블록 암호화 모드
매커니즘
특징오류 영향 최소화– 암호문 블록 오류 발생 시 해당 평문 블록에만 영향
암/복호화 동일 방식– XOR 명령 대칭으로 암호화와 복호화 방식 동일
병렬 처리 불가– 암/복호화 시 키 스트림 영향으로 병렬 처리 불가
사전 준비로 성능 향상– 키 스트림 값 사전 생성, 암호화 및 XOR 연산 성능 향상

(5) CTR (Counter) Mode

개념블록을 암호화 시 증가하는 Counter를 암호화하여 키 스트림을 생성하는 블록 암호화 모드
매커니즘
특징오류 전파 방지– 암호화 결과가 다음 블록에 영향을 주지 않아 오류 전파 방지
낮은 구현 난이도– 암/복호화 구조가 동일하므로 구현 난이도가 낮음
병렬 처리 가능– 블록을 임의 순서로 처리 가능하므로 병렬 처리 가능
순서 변경 가능– 블록 번호 카운터 기반 블록 암/복호화 순서 임의 변경 가능
  • ECB 모드는 Brute-Force 공격, 사전 공격 등에 취약하고, CFB 모드는 재전송 공격에 취약 
  • CTR 모드는 OFB 모드와 동일한 스트림 암호의 일종이나 입력 값에 차이 존재

 

3. 블록 암호화 모드 간 비교

비교 항목ECBCBCCFBOFBCTR
초기화벡터불필요필요필요필요불필요
오류전파미전파이후블록이후블록미전파미전파
병렬처리암/복호화복호화복호화불가암/복호화
복잡도낮음중간중간높음높음
  • 블럭 암호 모드 중 OFB와 CTR 모드는 스트림 암호 특성의 동일 구조 형태이나, OFB 모드는 동일 스트림 값에 대한 공격 취약점 존재하므로 재전송 공격 대응을 위해 비표(Nonce)와 Counter 기반 연속적 난수를 생성하는 CTR 모드 사용 권장

 
[참고]

  • 도서출판 그린(원동호저), 현대 암호학
2 Comments

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^