티스토리 뷰
AES는 NIST(National Institute of Standards and Technology)에서 2001년에 만든 대칭키 블록 사이퍼이다. 공모전을 통해서 DES를 대체하려고 선택된 대칭키 블록 암호이다.
AES는 128bits의 데이터를 복호화/암호화 한다. 10, 12, 14, 라운드를 사용한다. key size는 128, 192, 256 비트 중 하나이다.
rounds |
cipher key size |
round key size |
|
AES-128 |
10 |
128 bits |
128 bits |
AES-192 |
12 |
192 bits |
128 bits |
AES-256 |
14 |
256 bits |
128 bits |
pre-round는 addRoundKey함수만 수행한다.
[Data Unit]
1word = 4byte
1block = 16byte
각각의 Round는 다음과 같은 형식으로 구성된다.
[Transformations]
AES에서 사용하는 transformation의 4가지 타입은 다음과 같다.
1) subsitution ( SubBytes )
2) permutation ( ShiftRows )
3) mixing ( MixColumns )
4) key-adding ( AddRoundKey )
1. substitution
다음 테이블을 이용해서 SubByte transformation을 해야한다.
예를 들어,
hex로 0C라는 숫자에 대해서, SubBytest Table을 통과하면 FE가 되고, FE는 binary로 11111110이다.
Inverse SubBytes
반대로 FE에서 0C가 나오게 하는 테이블이다.
이 두 표는 어떻게 만들어졌을까??
GF(2^8) 필드와 irreducible polynomial (x^8 + x^4 + x^3 + x + 1)을 이용해서 해결할 수 있다.
갈로아 체인 GF는 내 블로그에서 갈로아 체로 검색하면 어떤 내용인지 볼 수 있다.
SubBytes 식은 다음과 같다.
2. permutation ( ShiftRows )
3) mixing ( MixColumns )
4) key-adding ( AddRoundKey )
이렇게 하면 한 라운드가 끝난다.
Key Expansion
일단 AES-128에 대해서 다루면, 10 round이고, pre-round까지 11 round라서 44개의 word가 필요하다.
'정보보안' 카테고리의 다른 글
[정보보안] Multiplicative Inverse(곱셈역) (0) | 2021.04.16 |
---|---|
[정보보호] 갈로아 체 GF(p), 아벨군 (0) | 2021.04.13 |
[정보보안] DES Algorithm (0) | 2021.03.30 |
[정보보안] Euclidean Algorithm, Extended Euclidean Algorithm (0) | 2021.03.08 |
[정보보안] Mac terminal에서 내 컴퓨터 vmware Ubuntu로 ssh 연결하기 (1) | 2021.02.08 |