정보보호 스터디

[대칭 암호] AES

녕녕펀치 2024. 2. 27. 11:52

1. AES ?

  • DES를 대신하여 새로운 표준이 된 대칭 암호 알고리즘
  • 2000년에 Rijndael이라는 대칭 암호 알고리즘이 AES로서 선정됨

2. Rijndael

  • 블록 암호 알고리즘
  • 블록 길이 : 128비트
  • 키의 비트 길이 : 128비트~256비트까지 32비트 단위로 선택 가능 (단, AES 규격 상으로 키 길이는 128, 192, 256비트의 3종류뿐)

3. Rijndael 암호화와 복호화

  • DES와 마찬가지로 라운드로 구성되어 있음
  • 1라운드 : Sub-Bytes, ShiftRows, MixColumns, AddRoundKey라는 4개의 처리를 계속해서 함
  • 페이스텔 네트워크가 아니라 SPN(Substitution-Permutation Network)이라는 구조 사용
  • 16 바이트 입력에 대해 각각 1 바이트마다 SubBytes라는 처리를 수행
SubBytes : 1 바이트의 값(0~255 중 어떤 값)을 인덱스로 하고, 256개의 값을 가지고 있는 치환표(S 박스)로부터 1개의 값을 얻는 처리

  • SubBytes 다음에 ShiftRows라는 처리를 행함
ShiftRows : 4 바이트 단위로 된 행을 좌로 규칙적으로 쉬프트해서 뒤섞는 처리

  • ShiftRows 다음에 MixColumns라는 처리를 행함
MixColumns : 4 바이트 값을 비트 연산을 써서 다른 4 바이트 값으로 변환하는 처리

 

  • 마지막으로, MixColunns의 출력과 라운드 키의 XOR을 취하는 AddRoundKey라는 처리를 행함

  • 실제의 Rijndael에서는 이러한 라운드를 10~14회 반복
  • 페이스텔 네트워크에 비해 라운드 수를 줄일 수 있음
  • SubBytes는 바이트마다, ShiftRows는 행마다, MixColumns는 열마다 병렬처리를 할 수 있음

 

  • 암호화 1라운드
    • SubBytes → ShiftRows → MixColumns → AddRoundKey
  • 복호화
    • AddRoundKey → InvMixColumns → InvShiftRows → InvSubBytes
    • AddRoundKey의 처리는 라운드 키와의 XOR이기 때문에, 암호화와 복호화에서 동일한 처리를 함

4. DES, 3DES, AES

  • DES : 컴퓨터 기술이 발전함에 따라 현실적인 시간 내에 전사 공격으로 해독될 수 있기에 새로운 용도로 사용하지는않을 것. 단, 과거 소프트웨어와의 호환성을 유지하기 위해 필요한 경우가 있음
  • 3DES : 다른 규격과의 호환성 때문에 앞으로도 당분간 사용하겠지만, 점점 AES로 대체될 것.
  • AES : 안전하고, 처리 속도가 고속이며 게다가 폭넓은 플랫폼에서 이용할 수 있음.
  • 우리나라의 경우 블록 암호 표준으로 SEED와 ARIA를 사용하고 있음