AES가 128비트 블록 하나를 처리하는 단계 16바이트 평문을 4행 4열 state로 배치하고 AddRoundKey, SubBytes, ShiftRows, MixColumns를 반복한 뒤 마지막 round에서 MixColumns를 생략해 암호문 블록을 만드는 과정이다. AES는 16바이트를 4×4 state로 바꾸며 여러 round를 반복합니다 AES-128은 10 rounds, AES-192는 12 rounds, AES-256은 14 rounds입니다. Block size는 모두 128 bits로 같습니다. 평문 16 bytes 128 bits를 4×4 state에 배치 초기 AddRoundKey state ⊕ round key 0 키를 state에 처음 섞음 Rounds 1 … Nr−1 네 연산을 반복 AES-128이면 1…9 마지막 round MixColumns만 생략 SubBytes → ShiftRows → Key 암호문 16 bytes 중간 round 하나를 확대하면 1. SubBytes 각 byte를 S-box로 다른 값에 치환 비선형성 추가 2. ShiftRows 0·1·2·3번째 행을 각각 0·1·2·3칸 회전 열 사이로 byte 이동 3. MixColumns 각 열의 네 byte를 수학적으로 섞음 변화가 넓게 퍼짐 4. AddRoundKey 현재 state와 해당 round key XOR 키 없이는 되돌릴 수 없음 다음 round 같은 네 단계를 round 수만큼 반복하되, 마지막 round에서는 MixColumns를 하지 않습니다. Key expansion 원래 AES key 하나에서 round마다 사용할 round key 0, 1, 2, …를 미리 만듭니다. 중요한 구분 AES의 block size는 항상 128 bits입니다. 128/192/256은 block size가 아니라 key length입니다. 복호화 InvShiftRows, InvSubBytes, AddRoundKey, InvMixColumns처럼 역연산을 반대 순서로 적용합니다.