본문 바로가기
Security Study/cryptography

Rijndael 알고리즘 (AES 암호)

by yeong-yi 2025. 5. 24.
Contents

라인달(Rijndael) 알고리즘은 현재 AES로 채택되어 가장 널리 쓰이는 대칭키 블록 암호이다.

 

블록 크기와 키 크기를 모두 128, 192, 256비트 중 자유롭게 선택 가능하지만 AES 표준은 블록 크기 고정 128비트, 키 크기는 128/192/256비트만 허용한다.

 

Rijndael의 암호화

[ SubBytes -> ShiftRows -> MixColumns -> AddRoundkey ] : 1round

10-14회 정도 라운드 반복하여 암호화

 

Rijndael의 복호화

[ AddRoundKey -> InvMixColumns -> InvShiftRows -> InvSubBytes ]

- AddRoundKey의 처리는 라운드 키와의 XOR이기 때문에 암호화와 동일한 처리

나머지 3개는 Inv, 즉 역처리

 

Rijndael 구조

: 함수의 층으로 구성

- 바이트 대치 계층 : s-box

   SubBytes (바이트 치환 : 비선형층)

- 확산계층

   ShiftRows (행 이동 : 선형혼합층)

   MixColumns (열 혼합 : 비선형층)

- 키 덧셈 계층

   AddRoundKey (라운드키와의 XOR : 키 추가층)

 

 

AddRoundKey

  • 상태 배열 각 바이트와 해당 라운드 키 바이트를 XOR 연산

SubBytes

  • 각 바이트를 S-Box 기반으로 바꿈
  • S-Box? : 16*16 행렬로 총 256개의 바이트 치환 표 --> 보안성 증가

 

ShiftRows

  • 상태 배열의 각 행을 왼쪽으로 순환 shift 한다.
  • 행 번호에따라 시프트 크기가 다르며 이를 통해 확산(diffusion) 효과 강화
  • ex. 0행-1시프트/3행-3시프트 ..

MixColumns

  • 배열의 각 열을 고정된 4*4 행렬과 새로운 상수 곱셈
  • 수학적으로 복잡하지만. 데이터가 서로 섞이며 역시 확산 효과가 강화된다

 

Rijndael 해독

- Rijndael 알고리즘의 배후에는 수학적 구조가 있어, 암호문을 만들어내는 계산을 수학적으로 표현이 가능하다.

-> 수학적인 조작에 의해 풀 수 있다면 수학적인 해독도 가능하며 공격의 가능성도 배제할 수 없다.

-> 하지만 아직까진 유효한 발견이 있지 않았다.