정보보호 스터디
[대칭 암호] AES
녕녕펀치
2024. 2. 27. 11:52
1. AES ?
- DES를 대신하여 새로운 표준이 된 대칭 암호 알고리즘
- 2000년에 Rijndael이라는 대칭 암호 알고리즘이 AES로서 선정됨
2. Rijndael
- 블록 암호 알고리즘
- 블록 길이 : 128비트
- 키의 비트 길이 : 128비트~256비트까지 32비트 단위로 선택 가능 (단, AES 규격 상으로 키 길이는 128, 192, 256비트의 3종류뿐)
3. Rijndael 암호화와 복호화
- DES와 마찬가지로 라운드로 구성되어 있음
- 1라운드 : Sub-Bytes, ShiftRows, MixColumns, AddRoundKey라는 4개의 처리를 계속해서 함
- 페이스텔 네트워크가 아니라 SPN(Substitution-Permutation Network)이라는 구조 사용
- 16 바이트 입력에 대해 각각 1 바이트마다 SubBytes라는 처리를 수행
SubBytes : 1 바이트의 값(0~255 중 어떤 값)을 인덱스로 하고, 256개의 값을 가지고 있는 치환표(S 박스)로부터 1개의 값을 얻는 처리
- SubBytes 다음에 ShiftRows라는 처리를 행함
ShiftRows : 4 바이트 단위로 된 행을 좌로 규칙적으로 쉬프트해서 뒤섞는 처리
- ShiftRows 다음에 MixColumns라는 처리를 행함
MixColumns : 4 바이트 값을 비트 연산을 써서 다른 4 바이트 값으로 변환하는 처리
- 마지막으로, MixColunns의 출력과 라운드 키의 XOR을 취하는 AddRoundKey라는 처리를 행함
- 실제의 Rijndael에서는 이러한 라운드를 10~14회 반복
- 페이스텔 네트워크에 비해 라운드 수를 줄일 수 있음
- SubBytes는 바이트마다, ShiftRows는 행마다, MixColumns는 열마다 병렬처리를 할 수 있음
- 암호화 1라운드
- SubBytes → ShiftRows → MixColumns → AddRoundKey
- 복호화
- AddRoundKey → InvMixColumns → InvShiftRows → InvSubBytes
- AddRoundKey의 처리는 라운드 키와의 XOR이기 때문에, 암호화와 복호화에서 동일한 처리를 함
4. DES, 3DES, AES
- DES : 컴퓨터 기술이 발전함에 따라 현실적인 시간 내에 전사 공격으로 해독될 수 있기에 새로운 용도로 사용하지는않을 것. 단, 과거 소프트웨어와의 호환성을 유지하기 위해 필요한 경우가 있음
- 3DES : 다른 규격과의 호환성 때문에 앞으로도 당분간 사용하겠지만, 점점 AES로 대체될 것.
- AES : 안전하고, 처리 속도가 고속이며 게다가 폭넓은 플랫폼에서 이용할 수 있음.
- 우리나라의 경우 블록 암호 표준으로 SEED와 ARIA를 사용하고 있음