정보기 정리/PART 02

SE 03) 3. AES

리네양 2023. 6. 5. 23:06

(1) 개요

 

 1) 역사

 

    ① 1997년 미국 국립기술표준원은 DES를 대체하기 위해 Advanced Encryption Standard 또는 AES로 불리는 암호 알고리즘을 공모하였다.

    ② 1차 심사에서 15개의 응모작을 선택했고 2차 심사에서 5개(MARS, RC6, Rijndael, Serpent, Twofish)로 줄였다. NIST는 2001년 11월에 최종 선택안을 공표하였다.

    ③ NIST에서 AES 알고리즘으로 선택한 것은 레인달(Rijndael)이었다.  레인달을 개발하고 제출한 두 연구자는 벨기에의 암호학자인 요안 대문과 빈슨트 레이믄이었다.

 

 2) 선정 기준

 3) 라운드

 

(2) 암호 (Cipher)

 

 1) 개요

 

    ① DES에서는 페이스텔 네트워크라는 기본 구조를 사용하고 있지만, 레인달에서는 SPN(Substitution-Permutation Network)*이라는 구조를 사용하고 있다.

    ② AES암호화 과정의 각 라운드는 비 선형성을 갖는 S-Box를 적용하여 바이트 단위로 치환을 수행하는 SubBytes() 연산, 행 단위로 순환 시프트(Cyclic shift)를 수행하는 ShiftRows() 연산, 높은 확산을 제공하기 위해 열 단위로 혼합하는 MixColumns() 연산과 마지막으로 라운드 키와 state를 EX-OR하는 AddRoundKey() 연산으로 구성된다.

    ③ 암호화의 마지막 라운드에서는 MixColumns() 연산을 수행하지 않는다는 특징이 있다.

    ④ AES는 알려진 블록 암호 알고리즘에 대한 모든 공격 방법으로부터 안전하도록 설계되었으며, 하드웨어나 소프트웨어 구현 시, 속도나 코드 압축성 면에서 효율적이므로 스마트키와 같은 응용에 적합하다는 장점이 있다.

 

더보기

 * SPN 구조

   - SPN 구조는 라운드 함수가 역변환이 되어야 한다는 제약이 있지만 더 많은 병렬성을 제공하기 때문에 암·복호화 알고리즘의 고속화를 요구하며, 컴퓨터 프로세서(CPU)가 더 많은 병렬성을 지원하게 된 현 추세에 부응하는 방식이라 할 수 있다.

   - SPN은 입력을 여러 개의 소블록으로 나누고 각 소블록을 S-box에 입력하여 치환시키고 S-box의 출력을 P-box로 전치하는 과정을 반복한다.

 

 * Feistel과 SPN구조 알고리즘

   - Feistel : DES, LOKI, CAST, Blowfish, MISTY, RC5, RC6, CAST256, E2, Twofish, Mars

   - SPN : SAFER, SHARK, Square, CRYPTON, Rijndael, SAFER+, Serpent, PRESENT