현대 암호학

[현대 암호학] 04-6. AES - Rijindael

Uggjjini 2021. 6. 22. 18:14

6. AES - Rijindael

 

Rijndael 이란?

 

  • 벨기에 연구자 Joan Daemen과 Vincent Rijmen이 설계한 블록 암호알고리즘
  • 블록 길이 : 128비트
  • 키의 비트 길이: 128비트(16 bytes), 192비트(24 bytes), 256비트(32 bytes)

 

 

Rijndael 암호화/복호화

 

SPN 구조 = (혼돈)Confusion + (확산)Diffusion

 

SPN 구조는 Substitution LayerPermutation Layer 이용하여 ConfustionDiffusion을 만족시켜는 암호다.

(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