보안/암호학

[암호학] AES 암호 알고리즘 (Advanced Encryption Standard)

나야, 웅이 2023. 4. 5. 21:43
728x90
반응형
SMALL


AES (Advanced Encryption Standard)

미 정부의 표준 암호 알고리즘

AES-128, AES-192, AES-256

SPN구조 (↔DES는 Feistel구조)

 

AES의 요구사항

  • 대칭키 암호 알고리즘
  • 키 길이가 128, 192, 256비트에 대응
  • 입출력 블록 길이는 128비트

AES 암호화 알고리즘

마지막 라운드에는 MixColumns() 없음

  • 평문 128비트 블록을 4 x 4 행렬로 표현하여 연산 수행
  • 행렬의 각 열은 32비트 워드(word)라고 함
  • 기본 연산은 byte 단위로 수행


AES의 라운드 수

키 길이 128, 192, 256 비트에 따라 라운드 수 다름


SubBytes()

바이트 대체
1바이트의 값(0~255 중 어떤 값)을 인덱스로 하고, 256개의 값을 가지고 있는 S-Box로 부터 1개의 값을 얻는 처리

암호문이 비선형성을 갖도록 함 → SubBytes()의 입력과 출력이 서로 관련이 없어 보이도록 비선형 연산 수행

바이트 단위로 역변환 가능한 S-Box 적용

ex) 02에 대한 SubBytes() 연산 = 77 // S-Box의 0번 행, 2번 열의 값

      57에 대한 SubBytes() 연산 = 5B // S-Box의 5번 행, 7번 열의 값

AES의 S-Box


ShiftRows()

state의 각 행 단위로 정해진 수만큼 순환 시프트 수행
→ 0번째 행은 그대로, 1번째 행은 1번 시프트, 2번째 행은 2번 시프트


MixColumns()

높은 확산(diffusion)을 제공하기 위해 열 단위로 혼합하는 연산 (행렬의 곱 이용)

MixColumns()의 설계

State의 각 열을 4개의 항을 갖는 3차 다항식으로 표현

 

행렬의 곱으로 표현


AddRoundKey()

라운드 키와 현재 State를 비트 단위로 Exclusive-OR 연산
암호화 과정의 State와 라운드 키는 동일 크기 가짐

 

728x90
반응형
LIST