1. AES (Advanced Encryption Standard)
ㅇ 미국 NIST에서 개발 공모 형식으로 만든 블록 암호 알고리즘
- 2001년 최종적으로 채택된 블록 암호는 Rijndael
. 이의 개발자는 벨기에 연구자 Joan Daemen과 Vincent Rijmen
ㅇ 표준 : FIPS PUB 197
- `Federal Information Processing Standards Publication 197 (FIPS PUBS)` (2001)
ㅇ 출현배경
- 그 이전 DES (FIPS 46)이 해독 가능성이 높아지고, DES 표준 기한이 만료됨
- 3DES 보다 더 안전하고, 더 효율적이며, 다양한 하드웨어 상에서도 구현이 용이하기 위함
2. AES 특징
ㅇ 대칭키 방식
ㅇ 블록 크기 (Nb 워드) : 128 비트 (4 워드) (1 워드 = 32 비트 = 4 바이트)
- 크기 고정됨 : 입력 128 비트 블록 및 출력 128 비트 블록으로 고정됨
ㅇ 키 길이 (Nk 워드) : 128 비트 (4 워드), 192 비트 (6 워드), 256 비트 (8 워드)
- 키 길이는 셋 중 선택 가능
ㅇ 라운드 수 (Nr 번) : 10 번, 12 번, 14 번
- 매 라운드가 128/192/256 비트 단위로 입출력이 이루어짐
- 선택된 키 길이 종류(128/192/256 비트)에 따라 라운드 수(10/12/14 번)가 정해짐
- 실제 라운드 수는 초기 라운드(라운드 0)가 있어서, 총 (Nr + 1)번이 있게 됨
- 각 라운드별로 원래의 키에서 유도된 라운드 키를 갖도록 키 확장이 이루어짐
. 여기서, 원래의 키는 초기 라운드(라운드 0)에서 얻어진 것을 말함
ㅇ 각 라운드별로 수행되는 변환
- SubBytes(SB) 변환
- ShiftRows(SR) 변환
- MixColumns(MC) 변환
- AddRoundKey(ARK) 변환
ㅇ 연산
- 연산 구조
. 128 비트가 4 x 4 행렬 (1 열이 4 바이트 씩 총 4열로 구성)로 표현되며 연산 수행
- 기본 연산은, 바이트 단위로 수행
. 스마트 카드 상에서의 8 비트 연산 및 PC 상에서의 32 비트 연산 구조 등에서도 가능
- 기본 연산은, 유한체 GF(28) 상에서 합(XOR) 및 곱이 수행됨