개념 사전 · 개념
AES
Advanced Encryption Standard · 에이에스
는 128비트 블록을 같은 비밀키로 암호화하고 복호화하는 대칭 블록암호다. 키 길이와 라운드 수는 달라질 수 있지만 긴 메시지의 처리 방식은 별도의 운영 모드가 정한다.
밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.
01무엇이고, 어떤 일을 하나
- 파일·네트워크 내용의 기밀성을 제공하는 기반이 된다.
- 치환·행 이동·열 혼합·키 XOR로 블록의 값을 여러 라운드에 걸쳐 바꾼다.
- 같은 모드와 결합해 암호화와 무결성 검증에 사용된다.
02어떤 순서로 동작하나
- 배치
16바이트 입력을 4×4 에 열 방향으로 넣고 128비트 키에서 필요한 라운드키를 준비한다.
- 초기 키 주입
에 첫 라운드키를 XOR하는 를 수행한다.
- 일반 라운드 반복
→→→를 9회 수행한다. 값 치환·위치 이동·확산·키 주입이 이어진다.
- 마지막 라운드
10번째 라운드는 →→이며 를 생략한다.
- 블록 출력
를 16바이트 암호문으로 읽는다. 긴 메시지의 연결과 인증은 운영 모드가 추가로 담당한다.
03먼저 알아둘 용어와 구성요소
- 16바이트 입력을 배치한 4×4 바이트 배열.
- 각 바이트를 로 치환하는 비선형 변환.
- 유한체 연산으로 한 열의 바이트를 혼합하는 변환.
- 원래 키에서 키 스케줄로 생성한 각 라운드의 키.
- 의 행별 바이트 위치를 다른 거리만큼 순환 이동하는 변환.
- 와 해당 라운드키를 XOR하는 변환.
- 원래 키에서 필요한 라운드키를 만드는 키 스케줄.
- 의 바이트 연산을 정의하는 256개 원소의 유한체.
- 바이트 값을 다른 바이트로 바꾸는 정해진 치환 표.
04예제로 따라가기
- -128은 128비트 키와 10라운드를 사용하며 초기 키 주입 뒤 일반 라운드와 마지막 라운드를 수행한다.
- -192와 -256은 각각 12·14라운드지만 데이터 블록은 모두 16바이트다.
- 마지막 라운드는 를 생략한다. 전체 블록 출력이 같아야 한다는 시험 벡터로 배치와 라운드 순서의 오류를 구분한다.
05혼동하기 쉬운 점과 확인 기준
- 자체는 긴 메시지의 Nonce 관리와 인증 태그 정책을 정의하지 않는다. 모드와 입력 조건을 함께 보아야 한다.
- -256이라는 이름만으로 키 보관·난수·Nonce 재사용·구현 부채널 문제가 해결되지는 않는다.
06상세 노트 · 실습 자료
헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.
공식 문서 · 표준
기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.