AES
IT위키
더 많은 작업
- Advanced Encryption Standard
- DES를 대체하는 미국 표준 대칭키 알고리즘
- 하드웨어에 적용 가능한 효율적인 알고리즘
- 블록 크기는 128비트로 고정이고 키 길이만 128·192·256비트 가운데 고른다. 원래 라인달(Rijndael)은 블록 크기도 바꿀 수 있었지만 AES 표준은 128비트 블록만 채택했다[1]
- 메모리를 적게 사용하고 속도가 빨라 모바일 장비에서 사용하기 유리
| 구분 | 특징 |
|---|---|
| 블록 크기 | 128비트 |
| 키 | 가변 128, 192, 256 비트 |
| 라운드 | 키 길이에 따라 10, 12, 14 라운드 |
| 구조 | SPN 구조 |
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)이 따로 필요하다
- 대칭키 암호
- 블록 암호 알고리즘
- Round 함수
- SPN 구조
- 가변 길이의 블록/키
- ↑ 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.
