https://www.youtube.com/watch?v=1X-R1var9-k
- AES 후보에 대한 요구사항
- 128 bit 블록 길이
- 3종류의 키 길이 : 128, 192, 256 bits
- 알려진 알고리즘에 비해 우수한 안전성
- 효율적인 SW 와 HW 구현
⇒ Rijndael (레인돌) 이라는 알고리즘이 채택되었다.
AES 특징
- 반복 단계를 거친다 (이 점은 DES 와 같음)
- Fiestel cipher 는 아니다.
- 블록 크기는 128 bits (원래 레인돌 알고리즘에서는 128, 192, 256 bits 3가지를 사용)
- 키 길이 : 128, 192, 256 bits (블록 크기와 상관 없음)
- 반복 (round) 는 키 길이에 따라 달라진다. → 10, 12, 14
- Key expansion (키 확장 알고리즘)
- 16 바이트(128비트) 의 키를 176 바이트로 확장한다. → 16bytes x 11 = 176, 11개의 subkey
- 매 단계(round) 마다 확장된 키에서 16바이트 키를 하나씩 사용한다.
AES 알고리즘
x=입력 블록
y=출력 블록
입력 블록(128bits) 을 state 변수로 만듦.
state 는 4x4 array 배열로 구성된다→ 16bytes (=128bits)
위에서 사용되는 함수(operations)는 총 4가지가 있다.
1. SubBytes : 위치를 바꾸는 연산, 치환.
2. ShiftRows : permutation (순서를 바꿈)
3. MixColumns : 위치를 바꾸는 연산, 치환.
4. AddRoundKey : bitwise XOR
a 하나가 1개 바이트, key_r 은 subkey 이다.
'암호학' 카테고리의 다른 글
전자 서명 : 정보 보안 - 암호학 (0) | 2024.09.30 |
---|---|
메시지 인증 코드 (MAC); 키 해시 (HMAC) : 정보 보안 - 암호학 (0) | 2024.09.29 |
암호 해시 함수 : 정보 보안 - 암호학 (0) | 2024.09.29 |
블록 암호 : 정보 보안 - 암호학 (1) | 2024.09.26 |
암호 기초 : 정보 보안 - 암호학 (0) | 2023.09.11 |