AES-128, AES-192, AES-256의 숫자는 각 알고리즘의 키 길이인 128·192·256비트를 나타냅니다. 세 알고리즘이 처리하는 블록의 크기는 모두 128비트, 즉 16바이트로 고정되어 있습니다.

비트 수를 바이트로 바꾸려면 8로 나눕니다. 따라서 키 길이는 각각 16·24·32바이트이며, AES-256이라고 해서 블록이 256비트가 되는 것은 아닙니다.

블록 크기와 키 길이는 서로 다른 칸입니다

블록 암호의 블록 크기는 알고리즘이 한 번의 기본 변환에서 다루는 데이터 블록의 크기입니다. 키 길이는 연산을 선택하고 수행할 때 주어지는 비밀키의 길이입니다. 두 값은 같은 ‘크기’라고 불려도 가리키는 대상이 다릅니다. NIST FIPS 197은 AES-128, AES-192, AES-256 세 가지를 규정하며, 각각이 데이터를 128비트 블록으로 변환한다고 설명합니다. 이름 뒤 숫자는 해당 키의 비트 길이입니다.

FIPS 197에 적힌 AES 블록·키 크기
알고리즘 이름블록 크기키 길이키 길이의 바이트 환산
AES-128128비트128비트16바이트
AES-192128비트192비트24바이트
AES-256128비트256비트32바이트

계산은 단위 변환 한 번이면 됩니다. 1바이트는 8비트이므로 128÷8=16바이트, 192÷8=24바이트, 256÷8=32바이트입니다. 블록은 모두 128÷8=16바이트입니다. 따라서 AES-256 라벨의 256은 32바이트 키를 가리키며, 한 블록의 길이는 여전히 16바이트입니다. 이 문장의 두 수를 바꾸어 쓰는 것이 대표적인 오답입니다.

자료를 블록 단위로 나눌 때 키 길이가 블록을 바꾸지는 않습니다

새로 만든 교육용 예를 보겠습니다. 길이가 40바이트인 평문을 AES 블록 길이에 따라 몇 개의 16바이트 덩어리로 볼지 묻는다고 합시다. 40=16×2+8이므로 완전한 16바이트 블록 두 개와 8바이트가 남습니다. 실제 암호화 모드에서는 이 나머지를 어떻게 처리할지, 패딩이나 모드 구성이 필요한지 별도로 따져야 합니다. 키가 AES-256이라도 기본 블록 길이는 그대로 16바이트이므로 계산의 나눗셈은 256이 아니라 16으로 합니다.

이 예는 블록 길이를 분류하는 산술만 보여 줍니다. 모드, 패딩, 인증 태그, IV나 nonce의 길이를 정하지 않으므로 완성된 암호화 절차가 아닙니다. 블록 크기가 128비트라고 해서 모든 모드의 출력 파일 길이도 항상 입력과 같거나 16바이트의 배수라고 단정해서도 안 됩니다. 모드가 추가하는 헤더, 태그, nonce, 패딩 여부가 결과 길이에 영향을 줄 수 있습니다.

  1. 문제에서 숫자가 붙은 알고리즘 이름을 찾습니다.
  2. 그 숫자를 키 길이 칸에 적습니다.
  3. 블록 크기는 알고리즘 표준에서 따로 확인합니다. AES는 세 선택 모두 128비트입니다.
  4. 문제가 바이트를 요구하면 비트를 8로 나누고 단위를 함께 표시합니다.
  5. 보안 강도나 운영 적합성을 물으면 키 길이만으로 결론 내리지 말고 모드·구현·키 관리 조건을 확인합니다.

키가 길다는 정보와 시스템 보안 강도는 같지 않습니다

키 길이는 가능한 키 값을 나타내는 중요한 표준 속성이지만 시스템의 모든 보안 성질을 요약하지는 않습니다. 어떤 모드를 쓰는지, nonce나 IV를 요구대로 다루는지, 키가 안전하게 생성·저장·폐기되는지, 구현이 실제 위협에 맞는지를 함께 봐야 합니다. NIST SP 800-57 Part 1 Rev. 5는 키 유형과 보호 수준, 수명주기와 키 관리 기능을 함께 다룹니다. 그래서 ‘AES-256이므로 시스템이 무조건 256비트 보안이다’ 같은 문장은 키 길이 하나만으로 너무 많은 것을 결론 냅니다.

공부할 때는 숫자를 기계적으로 외우기보다 이름·블록·키·바이트 환산을 서로 다른 칸에 적으세요. AES-128에서 128은 키, 128은 블록이기도 하지만 우연히 두 값이 같습니다. 이 일치 때문에 이름의 숫자가 언제나 블록 크기라고 착각하기 쉽습니다. AES-192와 AES-256으로 바꾸어 대입하면 블록은 128로 그대로이고 키만 달라진다는 점이 눈에 들어옵니다.

회상 연습: AES-256을 단위별로 풉니다

교육용 문제입니다. AES-256의 블록 길이는 몇 비트이며, 키 길이는 몇 비트인가요? 두 값을 바이트로 쓰면 각각 얼마인가요? 만약 40바이트 입력을 16바이트 블록 길이로만 나누어 본다면 완전한 블록과 남는 부분은 각각 몇 바이트인가요? 마지막 계산은 패딩이나 모드를 정한 암호화 결과 길이를 뜻하나요?

블록은 128비트=16바이트이고 키는 256비트=32바이트입니다. 40바이트는 16바이트 블록 두 개와 8바이트 나머지로 나뉩니다. 이 계산은 데이터 길이를 나눈 교육 예시일 뿐, 패딩과 모드를 정한 암호문 길이는 아닙니다. 단위와 계산 대상에 이름을 붙이면 AES 이름의 숫자와 블록 크기를 혼동하지 않을 수 있습니다.

정답을 가리고 확인해 보세요

이 글을 위해 만든 학습 예시이며 공식 기출문제나 판매 카드의 인용이 아닙니다.

AES-192의 블록 크기와 키 길이는 각각 몇 비트인가? 키 길이는 몇 바이트인가?

정답과 해설 확인블록은 128비트이고 키는 192비트, 즉 24바이트입니다.

FIPS 197은 AES-128/192/256 모두 128비트 블록을 사용하며 이름의 숫자가 키 길이라고 규정합니다. 192비트를 8로 나누면 24바이트입니다.