[정보보안] 8. AES

2021. 10. 25. 16:15Computer Sciences/Security

1. 등장 배경

  • DES가 깨지면서 DES를 대체할 암호 알고리즘이 필요해짐
  • NIST에서는 암호 알고리즘 프로젝트를 전 세계에 공표함.
    • 128비트의 블럭
    • 128비트, 192비트, 256비트의 키 길이를 준수할 것
  • 벨기에 연구자 Joan Daemen과 Vincent Rijmen이 설계한 블록 암호 Rijndael이 채택됨

선정 기준

  1. 안전성: 128비트 키에 대한 안정성 요구
  2. 비용: 하드웨어, 소프트웨어 등을 고려한 구현 환경
  3. 계산 효율성, 저장 공간 등의 해결
  4. 구현: 유연성과 단순성
  5. ⇒ 어느 플랫폼 상에서도 구현되어야 함

2. 라운드 구조

AES는 128비트 평문을 128비트 암호문으로 출력한다.

  • non-Feistel 구조
    • DES처럼 L과 R을 분리하고 R은 따로 P-Box, S-Box, E-Box 연산을 거치고 다음 라운드에 L과 R을 바꿔서 입력하는 방식이 아니라 순차적인 방식이다. AES는 SPN 구조이다.
  • 라운드 - 10, 12, 14 라운드를 사용함
    • 각 라운드 별로 키의 비트도 128, 196, 256을 사용함

3. 데이터 단위

  • 기본적으로 AES는 bit, byte, word, block, state의 5가지 단위를 사용하여 계산함
  • STATE는 16개의 문자를 4x4 행렬로 표현한다. 빈 칸은 z로 입력한다.
    • 예시
      • 평문 AES uses a matrix이를 행렬로 변환하면 아래와 같다.

4. 암호화 과정의 라운드 함수 - State

암호화 과정은 다음의 과정을 순서대로 수행한다.

  1. sub byte: 대치
    • 16개의 독립된 바이트 단위의 변환을 수행한다.
    • 4x4 행렬로 나타내고 독립적으로 S-Box 변환테이블의 값을 가져온다. 블록 암호는 S-Box가 필수이다.
    • 이 행렬을 S-Box로 대치하면 아래와 같다.
  2. shift rows: 치환
    • 4바이트 단위로 된 행을 왼쪽으로 규칙적으로 이동해서 뒤섞는 처리이다.
    • 이때 이동하는 수는 State 행렬의 행 번호(0~3)에 의존한다.
    • 0번째 행은 이동하지 않는다.
    • 1번째 행은 1바이트만큼 순환이동한다.
    • 2번째 행은 2바이트만큼 순환이동한다.
    • 3번째 행은 3바이트만큼 순환이동한다.즉 sub byte의 결과를 shitf rows 과정을 거치면 다음과 같다.
  3. mix columns: 뒤섞기
    • 행렬 계산을 통해 값을 섞는다. 열 행렬에 상수 정방행렬을 곱하는 연산이다.
    • 4바이트 값을 비트 연산을 사용하여 다른 4바이트 값으로 변환처리한다.
    • 행렬 계산이 들어가 계산식이 복잡해지기 때문에 이 과정은 가급적 생략하는 경우가 많다.
  4. add round key: 키 더하기
    • 라운드마다 제공되는 키 값과 XOR를 수행한다.

5. AES 동작과 해석

1. 동작

  1. 암호화 1라운드는 sub bytes → shift rows → mix columns → add round key 순으로 처리한다.
  2. sub bytes는 바이트마다, shift rows는 행마다, mix columns는 열마다 병렬 처리를 수행한다.
  3. AES는 128, 192, 256 비트 키를 사용하고, 키 크기에 따라 각각 10, 12, 14 라운드를 갖는 세 버전이 있다. 그러나 마스터 키의 크기가 달라도 라운드 키는 모두 128비트이다.

2. 해석

  1. 안정성
    • DES를 대체할 수 있는 안정성을 가지고 있다.
  2. 구현
    • 단순함
  3. 비용
    • 싸다
  4. 수행시간
    • 고속으로 수행 가능하다.
  5. 수학적 해독
    • 현재까지 차분 공격과 선형 공격에 대해 보고되지 않음

6. 결론

DES

  • 사용 X
  • 과거 소프트웨어와의 호환성 유지를 위해서만 사용

트리플 DES

  • 호환성 때문에 앞으로도 당분간은 사용됨
  • 점차 AES로 대체될 것

SEED 및 ARIA

  • 우리나라 표준

AES(Rijndael)

  • 고속
  • 다양한 플랫폼
  • 현재까지 안전
  • 사용 권장
  • Rijndael 외에 최종 후보 5개도 사용 가능

'Computer Sciences > Security' 카테고리의 다른 글

[정보보안] 9. 공개 키 암호  (0) 2021.10.25
[정보보안] 7. 블록 암호 - DES  (0) 2021.10.25
[정보보안] 6. 현대 암호  (0) 2021.10.25
[정보보안] 5. 접근 제어  (0) 2021.10.25
[정보보안] 4. 난수  (0) 2021.10.25