핵심 인사이트 (3줄 요약)

본질: AES (Advanced Encryption Standard) 키 스케줄은 하나의 마스터 키를 라운드 키들로 확장해, 각 라운드가 다른 서브키를 쓰게 만드는 절차다. 가치: 키를 단순 반복하지 않고 RotWord, SubWord, Rcon을 섞어 확장하므로, 패턴 누출을 줄이고 확산(Diffusion)을 높인다. 판단 포인트: 구현은 단순해 보여도 정답 벡터와 바이트 순서, 부채널(Side Channel) 방어가 틀리면 전체 암호가 무너진다.


Ⅰ. 개요 및 필요성

AES (Advanced Encryption Standard)는 128비트 블록 암호이고, 키 스케줄(Key Schedule)은 그 입력 키를 라운드 키로 확장하는 과정이다. 같은 키를 라운드마다 그대로 쓰면 중간 상태가 반복되어 구조가 드러나기 쉬우므로, 각 라운드에 다른 재료를 공급하는 절차가 필요하다.

키 스케줄의 목적은 "키를 더 복잡하게 만드는 것"이 아니라 "라운드별로 다른 마찰을 넣는 것"이다. 그래서 키 스케줄은 암호의 본체와 분리된 보조 단계처럼 보이지만, 실제로는 보안성과 구현 안정성을 함께 결정한다.

  • 📢 섹션 요약 비유: 열쇠 복제기

Ⅱ. 아키텍처 및 핵심 원리

AES의 키 확장은 워드(word) 단위로 진행된다. AES-128은 16바이트 키를 44개 워드로, AES-192는 52개 워드로, AES-256은 60개 워드로 늘려 라운드 키를 만든다. 핵심 연산은 RotWord(한 워드 회전), SubWord(S-box 대입), Rcon(라운드 상수 XOR), 그리고 이전 워드와의 XOR 체인이다.

Master Key -> Word Split -> RotWord -> SubWord(S-box) -> Rcon XOR -> Round Keys
                         \_______________________________________________/
                                      previous word XOR
키 길이라운드 수확장 워드 수특징
AES-1281044가장 단순하고 빠름
AES-1921252중간 균형
AES-2561460가장 길고 추가 변형 단계 존재

AES-256은 특정 위치마다 SubWord를 한 번 더 적용해 구조적 반복을 더 줄인다. 이 규칙 덕분에 확장 키는 단순 복사본이 아니라, 비선형 성질이 섞인 라운드 재료가 된다.

  • 📢 섹션 요약 비유: 레시피 책

Ⅲ. 비교 및 연결

키 스케줄은 KDF (Key Derivation Function)와 다르다. KDF는 비밀번호나 공유 비밀로부터 새 키를 안전하게 뽑는 절차이고, AES 키 스케줄은 이미 정해진 암호 키를 라운드용으로 전개하는 절차다. 즉 하나는 "입력 비밀을 키로 바꾸는 일"이고, 다른 하나는 "키를 라운드별로 나누는 일"이다.

또한 단순 반복 키와 달리 AES 키 스케줄은 S-box (Substitution box)의 비선형성을 끼워 넣어 회로적 규칙성을 줄인다. 그래서 구현자는 "암호화 함수만 맞으면 된다"고 생각하면 안 되고, 키 확장 테스트 벡터까지 확인해야 한다.

  • 📢 섹션 요약 비유: 다른 자물쇠 열쇠

Ⅳ. 실무 적용 및 기술사 판단

실무에서는 검증된 라이브러리를 쓰고, 직접 구현이 필요하면 표준 테스트 벡터와 함께 라운드 키를 대조해야 한다. 바이트 순서(endianness), 상수 XOR, 패딩은 자주 틀리는 지점이며, 키는 메모리에서 빠르게 지워야 한다. 부채널 방어가 필요한 환경이라면, 테이블 기반 S-box보다 하드웨어 명령이나 상수 시간 구현을 우선 고려한다.

체크리스트

  1. AES-128/192/256 각각의 라운드 수와 확장 크기를 검증했는가?
  2. 바이트 순서와 워드 조합을 명확히 정의했는가?
  3. 키와 라운드 키가 로그나 덤프에 남지 않는가?

안티패턴

  • 키 스케줄을 비밀번호 해싱처럼 오해하는 것

  • 테스트 벡터 없이 암호문만 맞는지 확인하는 것

  • 라운드 키를 디버그 출력으로 남기는 것

  • 📢 섹션 요약 비유: 보안 점검표


Ⅴ. 기대효과 및 결론

잘 설계된 키 스케줄은 라운드 간 분리를 강화해, 공격자가 특정 라운드의 규칙을 전체 키로 역추적하기 어렵게 만든다. 반면 구현이 틀리면 복호화가 아예 맞지 않거나, 더 나쁘게는 보안 구멍을 만든다. AES에서는 암호 본체 못지않게 키 스케줄의 정확성이 중요하다.

결론적으로 AES 키 스케줄은 "키를 늘리는 코드"가 아니라 "암호의 반사경을 흐리게 만드는 장치"로 기억해야 한다. 표준, 테스트, 부채널 대응이 함께 있어야 비로소 안전한 구현이 된다.

  • 📢 섹션 요약 비유: 라운드 키 제조실

📌 관련 개념 맵

개념연결 포인트
AES블록 암호의 본체
Key Schedule마스터 키를 라운드 키로 확장
S-box (Substitution box)비선형 치환으로 패턴 완화
Rcon라운드별 상수 주입
KDF (Key Derivation Function)키 스케줄과 구분해야 하는 외부 절차
AES-NI (Advanced Encryption Standard New Instructions)하드웨어 가속 경로

📈 관련 키워드 및 발전 흐름도

마스터 키
   ↓
워드 분해
   ↓
RotWord / SubWord / Rcon
   ↓
라운드 키 생성
   ↓
AES 라운드 암호화

👶 어린이를 위한 3줄 비유 설명

  1. AES 키 스케줄은 요리사가 큰 반죽을 10~14개의 작은 반죽으로 나누는 일이에요.
  2. 작은 반죽마다 재료를 조금씩 바꾸면 맛이 반복되지 않아요.
  3. 그래서 도둑이 한 조각만 보고 전체 레시피를 훔치기 어려워져요.