6. AES - Rijindael
Rijndael 이란?
- 벨기에 연구자 Joan Daemen과 Vincent Rijmen이 설계한 블록 암호알고리즘
- 블록 길이 : 128비트
- 키의 비트 길이: 128비트(16 bytes), 192비트(24 bytes), 256비트(32 bytes)
Rijndael 암호화/복호화
SPN 구조 = (혼돈)Confusion + (확산)Diffusion
SPN 구조는 Substitution Layer와 Permutation Layer 이용하여 Confustion과 Diffusion을 만족시켜는 암호다.
(http://reinliebe.tistory.com/76)
SPN(Substitution-Permutation Network) 구조
- 복수의 라운드(round)로 구성(10~14)
- SubBytes - 바이트 대체
- ShiftRows - 행 이동
- MixColumns - 열 섞기
- AddRoundKey - 라운트 키와 XOR 연산
AES(Rijndael) 암호화 과정
참고 : https://www.crocus.co.kr/1230
for round in range(1, Nr): SubBytes() ShiftRows() MixColumns() AddRoundKey(round) SubBytes() ShiftRows() AddRoundKey(Nr) |
AES 암호 알고리즘에서 마지막 라운드에서는 MixColumns 단계가 없다.
Rijndael 해독
Rijndael 알고리즘의 수학적 구조
- Rijndael 수식을 수학적인 조작에 의해 풀수 있다면, Rijndael을 수학적으로 해독할 수 있을 것이다.
- Rijndael에 대한 유효한 공격은 현재로서는 발견되지 않았다.
어떤 암호를 사용하면 좋은가?
(X) DES/3DES => (0) AES
DES
- 사용하지 말것
- 과거 소프트웨어와의 호환성 유지를 위해 필요
트리플 DES
- 호환성 때문에 앞으로도 당분간 사용
- 점차 AES로 대체
AES(Rijndael)
- 고속
- 다양한 플랫폼
- 현재까지 안전
- 사용 권장
- AES 최종 후보 5개도 사용가능
요점정리
대칭키 암호
스트림 암호(ex: ARC4, chacha20, XchaCha20, Salsa20)
블록 암호(ex: DES/3DES, AES, SEED, ARIA)
DES(Data Encryption Standard) - Feistel 구조
키 : 56비트
* 키(56비트) => 키 스케줄 => 서브키(48비트 x 16)
암호시스템 : Feistel 구조, F함수, S-BOX
입력 : 64비트 평문블록
출력 : 64비트 암호문
3DES(Triple DES) - Feistel 구조
DES-EDE2
DES-EDE3
AES(Advanced Encryption Standard) - SPN 구조
키 : 128비트, 192비트(128+64), 256비트(128+128)
암호시스템 : SPN 구조
입력 : 128비트 평문블록
출력 : 128비트 암호문
'현대 암호학' 카테고리의 다른 글
[현대 암호학] 04. 실습(2) (0) | 2021.06.23 |
---|---|
[현대 암호학] 04. 실습(1) (0) | 2021.06.23 |
[현대 암호학] 04-5. AES 선정 과정 (0) | 2021.06.22 |
[현대 암호학] 04-4. 트리플 DES (0) | 2021.06.22 |
[현대 암호학] 04-3. DES (0) | 2021.06.22 |