블록 암호 운영 모드 (Block Cipher Mode of Operation)
한 줄 정의: 고정 크기 블록만 처리하는 블록 암호를 임의 길이의 데이터에 안전하게 적용하기 위한 반복 사용 규칙입니다.
쉽게 풀면
AES 같은 블록 암호는 한 번에 정해진 크기(예: 128비트)의 데이터만 다룰 수 있습니다. 하지만 실제 파일이나 메시지는 그보다 길죠. 운영 모드는 이 블록 암호를 여러 번 이어 붙여 긴 데이터를 처리하는 '연결 방식'입니다. 어떻게 이어 붙이느냐에 따라 안전성이 크게 달라집니다.
왜 중요한가
같은 블록 암호를 쓰더라도 운영 모드를 잘못 고르면 정보가 새어 나갑니다. 예를 들어 각 블록을 독립적으로 암호화하는 방식은 같은 평문 블록이 같은 암호문이 되어 이미지의 윤곽이 그대로 드러나기도 합니다. 그래서 운영 모드 선택은 실무 암호 구현에서 핵심 결정 사항입니다.
논문에서는 이렇게 쓰입니다
"CBC 모드는 이전 암호문 블록을 다음 평문에 XOR하여 패턴 노출을 막지만, 초기화 벡터를 예측 가능하게 사용하면 선택 평문 공격에 취약해진다."
조금 더 깊게 보면
대표적인 모드로는 각 블록을 독립 암호화하는 ECB, 앞 블록의 암호문을 되먹임하는 CBC, 카운터 값을 암호화해 키스트림을 만드는 CTR, 그리고 암호화와 무결성 검증을 동시에 제공하는 인증 암호 모드인 GCM이 있습니다. ECB는 패턴이 노출되어 거의 쓰지 않으며, 현대 프로토콜은 기밀성과 무결성을 함께 보장하는 GCM 같은 인증 암호 모드를 권장합니다. 대부분의 모드는 초기화 벡터나 논스를 필요로 합니다.
주의할 점
운영 모드는 블록 암호 알고리즘 자체가 아니라 그 '사용 방법'입니다. 암호화만 하는 모드는 데이터가 도중에 변조되어도 알 수 없으므로, 무결성이 필요하면 인증 암호 모드나 별도의 메시지 인증 코드를 함께 써야 합니다.