선릉역 1번 출구

AES 본문

Computer/Cryptology

AES

choideu 2023. 2. 6. 14:59

AES(advanced encryption standard)

  • 연산 능력의 향상으로 DES가 더 이상 안전하지 않아 새롭게 표준으로 선정된 블록 암호 알고리즘
  • Rijndael 구조가 채택되어 생성됨
  • 체(field)와 군(group)에 대한 이해가 필요함

SPN(substitution permutation network)

  • 곱 암호의 일종
  • S-Box를 사용하는 치환과 P-Box를 사용하는 순열을 여러 라운드에 걸쳐 반복함
  • 라운드마다 입력 전체에 라운드 함수를 적용하여 같은 수의 라운드를 사용할 때 SPN이 페이스텔 구조에 비해 두 배의 암호학적 안정성을 갖음

AES 구조

  • 라운드마다 128비트 크기의 블록을 암호화하는 블록 암호
  • 키 길이: 128, 192, 256
  • 라운드 수: 10, 12, 14

AES 암호화 진행

  1. 각 블록을 4행 4열의 상태 배열로 재구성
  2. state의 각 칸에는 8bit(=1byte)가 저장됨
  3. AddRoundKey 함수를 적용하고 마지막 라운드 전까지 매 라운드마다 SubBtyes, ShiftRows, MixColumns, AddRoundKey 함수를 반복해 적용함
  4. 마지막 라운드에서는 MixColumns를 제외한 나머지 함수들만 적용함

*AES의 라운드 함수들은 역함수가 존재하여, 역함수를 가지고 AES 복호화가 이뤄짐

 

SubBytes

  • State의 각 바이트를 S-Box를 참조해 치환하는 함수
  • 상위 4bit -> 행, 하위 4bit -> 열

ShiftRows

  • 각 행을 구성하는 바이트들을 쉬프트하는 함수
  • 4가지 함수중 유일하게 순열의 역할을 수행함
  • 2행은 왼쪽으로 1칸, 3행은 왼쪽으로 2칸, 4행은 왼쪽으로 3칸

MixColumns

  • 열 단위로 치환을 수행하는 함수
  • 이 치환은 갈루아 필드 내에서의 행렬 연산으로 구해짐

AddRoundKey

  • 이 함수는 키 생성 함수로 생성된 라운드 키의 state를 각 바이트 별로 xor 진행함

키 생성 함수

- 입력된 키로부터 각 라운드에 쓰일 라운드 키를 생성함

- 각 라운드 키는 4행 4열의 행렬 -> 4행 44열의 키 행렬을 하나 만들고 4열씩 나눠서 매 AddRoundKey마다 사용함

- W_i≥4는 W_i-1에 RotWord, SubWord, Rcon 을 적용하고 이를 W_i-4와 XOR해 생성함

  • RotWord: 열을 위로 한 번 회전
  • SubWord: S-Box를 사용해 각 바이트를 치환
  • Rcon: [01, 02, 04, 08, 10, 20, 40, 80, 1B, 36] 인 R에 대해 Wi의 최상위 바이트를 R[i/4 - 1]과 XOR한다. 

 

'Computer > Cryptology' 카테고리의 다른 글

암호학  (1) 2023.10.12
DES  (0) 2023.02.06
현대 암호  (0) 2023.02.06
고전 암호  (0) 2023.02.06
Cryptology 도입  (0) 2023.02.06
Comments