블록 암호란 무엇인가?
블록 암호(Block Cipher)는 고정된 크기의 데이터 블록을 공유된 비밀 키를 사용하여 처리하는 대칭키 암호 알고리즘입니다. 암호화 과정에서 평문(Plaintext)이 입력되며, 그 결과로 생성된 텍스트를 암호문(Ciphertext)이라고 부릅니다. 동일한 키 하나로 평문을 암호화하고, 그 암호문을 다시 복호화할 수 있다는 점이 대칭키 방식의 특징입니다.
블록 암호는 어떤 방식으로 블록을 연결하고 처리하느냐에 따라 여러 가지 작동 모드(Mode of Operation)로 나뉩니다. 각 모드는 보안성, 성능, 오류 전파 특성이 서로 다르기 때문에 용도에 맞는 선택이 중요합니다.
블록 암호의 주요 작동 모드
1. 전자 코드북(ECB) 모드
ECB(Electronic Code Book) 모드는 가장 단순한 구조의 모드입니다. 평문을 64비트 크기의 블록으로 분할한 뒤, 각 블록을 독립적으로 암호화합니다. 모든 블록에 동일한 키를 사용하며, 각 블록은 키를 통해 개별적으로 암호문 블록을 생성합니다.
ECB 모드는 모든 평문 블록에 암호 함수를 개별적으로 적용하기 때문에(복호화 시에는 역함수를 적용), 블록들이 서로 의존하지 않아 여러 블록을 병렬로 처리할 수 있어 속도가 빠르다는 장점이 있습니다.
다만 동일한 평문 블록이 항상 동일한 암호문 블록으로 변환되므로 데이터 패턴이 노출될 수 있어, 실제 환경에서는 신중하게 사용해야 합니다.
2. 암호문 블록 연쇄(CBC) 모드
CBC(Ciphertext Block Chaining) 모드에서는 각 평문 블록이 암호화되기 전에 이전 암호문 블록과 XOR 연산됩니다. 첫 번째 블록의 경우에는 초기화 벡터(IV, Initialization Vector)를 사용하며, 송신자와 수신자는 이 IV를 사전에 공유·합의합니다.
연쇄(Chaining) 구조 덕분에 패턴 노출 문제를 해결할 수 있지만, 이전 블록의 결과가 다음 블록에 영향을 주기 때문에 병렬 처리가 불가능합니다. 또한 임의 접근(Random Access) 방식의 파일 데이터를 암복호화하는 용도로는 적합하지 않습니다.
3. 출력 피드백(OFB) 모드
OFB(Output Feedback) 모드는 CFB 모드와 유사하지만 결정적인 차이가 하나 있습니다. 바로 암호문의 각 비트가 이전 비트와 독립적이라는 점입니다. 이러한 특성 덕분에 오류가 한 블록에서 다른 블록으로 전파되는 것을 방지할 수 있습니다.
- 장점: 전송 중 발생한 비트 오류가 다른 블록으로 재현·확산되지 않습니다.
- 단점: CFB 모드에 비해 메시지 흐름 변조(Message Flow Modification) 공격에 더 취약합니다.
4. 암호 피드백(CFB) 모드
CFB(Cipher Feedback) 모드는 데이터를 8비트와 같은 작은 단위로 나누어 암호화합니다. 따라서 스트림 암호화가 필요한 응용 프로그램에서 활용하기에 적합합니다.
암호화 과정에서 각 암호문 블록은 다음 평문 블록의 입력으로 사용됩니다. ECB 모드와 달리, CFB 모드에서 각 암호문 블록의 암호화는 입력 평문 블록, 암호화 키, 그리고 이전 암호문 블록 세 가지 요소에 모두 기반합니다.
CFB 모드는 블록 단위가 아닌 더 작은 데이터 단위로 동작하도록 설계된 응용 프로그램에서 일반적으로 사용됩니다.
5. 카운터(CTR) 모드
CTR(Counter) 모드에서는 평문 블록과 같은 크기의 카운터 값을 사용합니다. 암호화 시에는 카운터를 먼저 암호화한 뒤 평문 블록과 XOR 연산하여 암호문 블록을 생성합니다.
복호화 시에도 동일한 순서의 카운터 값 시퀀스를 사용하며, 각각 암호화된 카운터를 암호문 블록과 XOR 연산하면 원래의 평문을 얻을 수 있습니다.
CTR 모드는 다음과 같은 상황에서 유용하게 활용됩니다.
- 하드웨어 및 소프트웨어에서의 높은 처리 효율성
- 암호화 연산의 사전 처리(Pre-processing) 가능
- 데이터 보호 및 무결성 확보
마무리: 모드별 특징 비교
블록 암호의 작동 모드는 각각의 구조적 차이로 인해 보안성과 성능 면에서 뚜렷한 차이를 보입니다. ECB는 단순하고 빠르지만 패턴 노출 위험이 있고, CBC는 안전하지만 병렬 처리가 어렵습니다. OFB와 CFB는 스트림 암호처럼 동작하며 오류 전파 특성이 다르고, CTR은 병렬 처리와 효율성 면에서 우수합니다. 시스템의 요구 사항과 데이터 특성을 고려하여 적절한 모드를 선택하는 것이 정보 보안 설계의 핵심입니다.