모드 (Mode)

중급암호학수정일

암호학에서 모드(Mode)는 블록 암호 운용 방식(mode of operation)을 줄여 부르는 말로, AES처럼 정해진 길이의 블록 하나만 처리하는 블록 암호를 그보다 긴 데이터의 암호화·복호화에 적용하는 규칙을 뜻합니다. 같은 블록 암호라도 어떤 모드로 쓰느냐에 따라 안전성과 성질이 크게 달라집니다.

자세히 알아보기

블록 암호는 고정 길이(AES는 128비트) 입력을 같은 길이의 출력으로 바꾸는 함수입니다. 실제 데이터는 이보다 길기 때문에 데이터를 블록으로 나누고, 블록 사이를 어떻게 연결할지, 초기화 벡터(IV)나 논스(nonce)를 어떻게 쓸지를 모드가 정합니다. 미국 NIST는 SP 800-38A(2001년)에서 기밀성용 다섯 가지 모드인 ECB, CBC, CFB, OFB, CTR을 규정했고, SP 800-38D(2007년)에서 인증 암호 모드인 GCM을 규정했습니다.

ECB(Electronic Codebook)는 각 블록을 독립적으로 암호화합니다. 같은 평문 블록은 항상 같은 암호문 블록이 되므로 데이터의 반복 패턴이 그대로 드러나, 일반 데이터 보호에는 적합하지 않습니다. CBC(Cipher Block Chaining)는 각 평문 블록을 직전 암호문 블록과 XOR한 뒤 암호화하며, 첫 블록에는 예측할 수 없는 IV를 씁니다. CTR(Counter)은 논스와 카운터 값을 암호화해 만든 키 스트림을 평문과 XOR하는 방식으로, 블록을 병렬로 처리할 수 있지만 같은 키로 카운터 값을 다시 쓰면 안전성이 무너집니다.

GCM(Galois/Counter Mode)은 CTR 방식의 암호화에 인증 태그 계산을 더한 인증 암호(AEAD) 모드입니다. 기밀성과 함께 데이터가 변조되지 않았음을 확인할 수 있어 현재 널리 쓰입니다. ECB·CBC·CTR 같은 기밀성 모드만으로는 변조를 탐지하지 못하므로, 이런 모드를 쓸 때는 별도의 메시지 인증 코드(MAC)를 함께 적용해야 합니다. 통계학의 최빈값(mode)은 이름만 같은 별개의 개념입니다.

블록체인·암호화폐에서는

블록체인 합의 자체는 주로 해시 함수와 전자서명에 의존하지만, 지갑 소프트웨어가 개인 키나 시드 문구를 비밀번호로 암호화해 저장할 때, 그리고 거래소·노드 간 통신을 보호하는 TLS에서 블록 암호와 운용 모드가 쓰입니다. 이때 어떤 모드를 쓰는지, IV나 논스를 재사용하지 않는지가 키 보관의 안전성을 좌우합니다.

쉽게 말하면

블록 암호를 한 장씩만 넣을 수 있는 서류 봉투 봉인기라고 하면, 모드는 수십 장짜리 보고서를 봉인하는 작업 절차입니다. 장마다 따로 봉인할지(ECB), 앞 장의 봉인 번호를 다음 장에 이어 적을지(CBC), 봉인과 함께 위조 방지 확인표를 붙일지(GCM)를 정하는 것과 같습니다. 같은 봉인기라도 절차가 허술하면 내용의 일부가 드러날 수 있습니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.