2023년 7월 1일
블록 암호화 모드(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. 블록 암호화 모드 간 비교
비교 항목 | ECB | CBC | CFB | OFB | CTR |
---|---|---|---|---|---|
초기화벡터 | 불필요 | 필요 | 필요 | 필요 | 불필요 |
오류전파 | 미전파 | 이후블록 | 이후블록 | 미전파 | 미전파 |
병렬처리 | 암/복호화 | 복호화 | 복호화 | 불가 | 암/복호화 |
복잡도 | 낮음 | 중간 | 중간 | 높음 | 높음 |
- 블럭 암호 모드 중 OFB와 CTR 모드는 스트림 암호 특성의 동일 구조 형태이나, OFB 모드는 동일 스트림 값에 대한 공격 취약점 존재하므로 재전송 공격 대응을 위해 비표(Nonce)와 Counter 기반 연속적 난수를 생성하는 CTR 모드 사용 권장
[참고]
- 도서출판 그린(원동호저), 현대 암호학
2 Comments
네모칸 안에 BCE는 무슨뜻 인가요?
BCE는 Block Cipher Encryption의 약자로, 평문 등 입력된 블록(Block)에 암호화(링크)의 원리(대체, 치환, 혼돈과 확산 등)를 적용하는 부분입니다.