본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.


Advanced Encryption Standard
DES를 대체하는 미국 표준 대칭키 알고리즘
  • 하드웨어에 적용 가능한 효율적인 알고리즘
  • 블록 크기는 128비트로 고정이고 키 길이만 128·192·256비트 가운데 고른다. 원래 라인달(Rijndael)은 블록 크기도 바꿀 수 있었지만 AES 표준은 128비트 블록만 채택했다[1]
  • 메모리를 적게 사용하고 속도가 빨라 모바일 장비에서 사용하기 유리
구분 특징
블록 크기 128비트
키 가변 128, 192, 256 비트
라운드 키 길이에 따라 10, 12, 14 라운드
구조 SPN 구조
  • 컴퓨팅 파워의 증가, DES 취약점으로 DES 해독 가능성 높아짐
  • 1998을 기점으로 DES 표준 만료
  • 1997년 1월, NIST에서 128비트 이상의 새로운 블록 암호 AES 공모
  • 2000년, 벨기에의 Rijndael(라인달)이 AES로 채택
  • 2001년부터 표준으로 발표, 활용

  • Add round key
  • Substitute bytes
  • Shift rows
  • Mix columns
  • Add round key

AES 는 상태(state)라 부르는 4행 4열의 바이트 배열(16바이트 = 128비트)을 라운드마다 네 가지 변환으로 바꾼다. 라운드 수는 키 길이에 따라 10·12·14 이며, 마지막 라운드에는 MixColumns 가 빠진다.[1]

변환 단위 하는 일
SubBytes 1바이트 → 1바이트 상태의 바이트 하나하나에 S-box(비선형 치환표)를 독립적으로 적용한다. 혼돈(confusion)을 주는 유일한 비선형 단계이다
ShiftRows 행 첫 행은 그대로 두고 둘째·셋째·넷째 행을 각각 1·2·3바이트씩 왼쪽으로 순환 이동한다
MixColumns 열(4바이트 → 4바이트) 한 열의 4바이트를 GF(28) 위의 행렬 곱으로 섞어 새 4바이트를 만든다. 확산(diffusion)을 맡는다
AddRoundKey 128비트 전체 라운드 키와 XOR 한다
  • "4바이트를 새로운 4바이트로 바꾸는" 것은 MixColumns 이다. SubBytes 는 바이트 단위 치환이다
  • AES 는 DES 의 Feistel 구조가 아니라 SPN 구조여서 한 라운드에 블록 전체를 바꾼다. 그래서 복호화에는 각 변환의 역변환(InvSubBytes, InvShiftRows, InvMixColumns)이 따로 필요하다
  1. ↑ 1.0 1.1 「Advanced Encryption Standard (AES)」(FIPS 197, 2023 개정), NIST, https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdf, 확인일: 2026-11-04.