AES의 특징

1. 128비트 블록단위로 암호화하는 대칭 암호 알고리즘

2. 키의 비트 길이는 128, 192, 256비트

3. 10/12/14 라운드

4. SPN 구조

5. 바이트 단위의 연산 위주

 

 

AES의 구조

 

 

 

 

 

 

1. SubBytes

2. ShiftRows

3. MixColumns

4. AddRoundKey

 

 

 

 

 

 

 

 

- 마지막 라운드에는 MixColumns 수행하지 않음

- 구현 효율성과 암호화 / 복호화 대칭성에 유리하기 때문

 

SubBytes

Rijndaek field : GF(2^8) = GF(2)[X] / <m(x)>

M(x) = x^8+x^4+x^3+x+1

SubBytes 함수 : y = S(x) = Ax^(-1) + b

-> GF(2^8)에서 mod m(x) 상에서의 inverse계산

- >Affine 변환 적용(GF(2) 상)

 

AES의 S-Box

 

ShiftRows

각 행을 위로부터 0,1,2,3 만큼 왼쪽으로 회전

MixColumns 과 함께 확산효과를 위하여 사용

 

MixColumns

- 열 단위 확산함수

- 각 열을 GF(2^8) 상의 벡터로 간주한 선형 변환

- 각 열을 c(x) = 03x^3 + 01x^2 + 01x + 02와 mod x^4 + 1 상에서 곱한다.

- b(x) = c(x) * a(x) mod x^4 + 1

 

 

AES 라운드 함수의 테이블 구조 구현 1

- SubBytes, ShiftRows, MixColums

 

AES 라운드 함수의 테이블 구조 구현 2

- AddRoundKey

 

+ Recent posts