고급 암호화 표준

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

고급 암호화 표준(AES, Advanced Encryption Standard)은 2001년 미국 표준 기술 연구소(NIST)에 의해 제정된 암호화 방식이다. AES는 두 명의 벨기에 암호학자인 존 대먼빈센트 라이먼에 의해 개발된 Rijndael(레인달, [rɛindaːl]) 암호에 기반하며 AES 공모전에서 선정되었다.

AES는 미국 정부가 채택한 이후 전 세계적으로 널리 사용되고 있다. 1977년 공표된 DES를 대체한 AES는, 암호화와 복호화 과정에서 동일한 키를 사용하는 대칭 키 알고리즘이다.

미국 표준 기술 연구소(NIST)는 2001년 11월 26일 AES를 미국 연방 정보 처리 표준(FIPS-197)으로 공포하였다. NIST는 5년의 표준화 과정을 거쳤으며 이 과정에서 15개의 알고리즘이 경쟁, Rijndael 암호가 가장 적합한 알고리즘으로 선정되었다. 이 표준은 2002년 5월 26일부터 효력을 발휘하기 시작했다. AES는 ISO/IEC 18033-3 표준에 포함되어 있으며 여러 암호화 패키지에서 사용되고 있다. AES는 또한 미 국가안보국에 의해 1급비밀(Top Secret)에 사용할 수 있도록 승인된 알고리즘 중 최초로 공개되어 있는 알고리즘이다.

Rijndael알고리즘의 개발자인 존 데이먼(Joan Daemen)과 빈센트 라이먼(Vincent Rijmen)의 이름을 따서 지은 것으로 AES 표준은 여러 Rijndael 알고리즘 중 블록 크기가 128비트인 알고리즘을 말한다.

개요[편집]

1997년 1월 2일 미국국립표준원(NIST)에서는 DES를 대체할 목적으로 암호알고리즘을 제안받았으며 DES를 대체할 암호를 공모하였으며 암호의 정식 명칭은 1997년 9월 2일 AES(Advanced Encryption Standard)로 하기로 정해졌다. NIST의 암호 요구 사항은 128비트 블록을 128혹은 192혹은 256비트 키 길이로 처리할 수 있는 암호 알고리즘을 요구 하였다. 뿐만 아니라 로열티 측면에서도 무료로 배포 할 수 있는 알고리즘이어야 했다. (NIST의 이러한 요구안은 암호론의 Kerckhoffs' principle 에 기반한 것이다.) 1998년 1월 15일까지 제안할 수 있었으며 21개의 암호 알고리즘이 제안되었고 그 중 15개 암호 알고리즘이 AES 후보로 선정되어 안전성을 평가 받았다. NIST는 15개의 암호 알고리즘에 대하여 "First AES Candidate Conference"를 1998년 8월 20일에 개최 하였고 "Second ARS Candidate Conference"를 1999년 3월에 개최하였으며 이후, 1999년 8월에는 5개의 후보 알고리즘을 최종 후보로 선정하여 많은 암호학자들로 부터 안전성 평가를 받게 하였다. 이 때, 남은 5개 알고리즘의 이름은 MARS, RC6, Rijndael, Serpent, Twofish 였다. 그리고 2000년 4월 "Third AES Candidate Conference"이 개최되고 2000년 10월 2일 AES 알고리즘으로 Rijndael을 선정 하였다. 이어 NIST는 2001년 2월 28일에 연방 정보 처리 표준으로 AES를 공개/리뷰/배포 하면서 기밀성있는 정보에 DES를 대체하여 AES를 사용하기 시작한다. 2001년 11월 16일에는 표준으로 채택되었으며 2001년 12월 4일에는 FIPS 197로 등록 되었다.

AES 선정과정에서 주목해야할 점은 개방성과 국제 흐름을 반영하였다는 점이다. 세 번의 conference와 많은 사람들(전문가/비전문가)의 코멘트를 공개/반영 하였으며 피드백의 기회를 부여하고 다함께 이슈에 대하여 토론하는 과정이 있었다. 뿐만아니라 다양한 분야의 전문가들의 의견이 반영 되었다. 수학자, 컴퓨터 학자, 암호학자, 공학자등 다양한 분야의 전문가들이 의견을 적극적으로 반영하여 안전하면서도 훌륭한 퍼포먼스를 갖는 알고리즘을 선택할 수 있었다. 국제화 측면에서 AES는 15개의 후보 알고리즘의 저자들의 국적 만큼이나 다양한 국가의 평가를 받았다. 당시 알고리즘 안전성 평가에 적극적이었던 국가로는 대한민국을 비롯하여 일본, 이스라엘, 독일, 프랑스, 코스타리카, 케나다, 벨기에, 호주. 노르웨이, 영국, 미국이 있었다. Rijndael은 Daemen과 Rijndael이라는 두 명의 벨기에 연구원에 의해 설계 되었다. AES 선정과정에서 재밌는 점중 다른 하나는 Second AES Candidate Conference가 미국이 아닌 이탈리아 로마에서 개최되었다는 점이다. AES 후보 알고리즘들은 다음과 같은 세가지 조건을 만족해야 했다.

  • 안전성(security)
  • 비용(cost)
  • 알고리즘 및 구현 특성(algorithm and implementation characteristics)

"안전성"은 절대적으로 갖춰야 하는 부분이었으며 특히 당시 대칭키 암호를 분석하는 방법인 '선형 공격(linear cryptanalysis)'와 '차분 공격(Differential cryptanalysis)'에 대한 안전성 증명이 주를 이루었다.

"비용"은 '스마트 카드, 하드웨어, 소프트웨어, 구현'을 위한 다양한 형태의 계산효율성(computational efficiency)을 참고하여 평가 되었다. 여기서 계산효율성이라고 하는 것은 속도 및 메모리 요구량(speed and memory requirement)등을 의미 하였다.

"알고리즘 및 구현 특성"은 유연성(Flexibility)와 알고리즘의 단순성(simplicity)을 주로 평가 하였다.

마지막 평가과정에서 남았던 5개의 알고리즘중 4개의 알고리즘은 탈락했지만 안전성이 떨어지는 알고리즘은 절대 아니였다.

다만 Rijndael의 알고리즘이 안전성, 속도, 효율성, 구현 및 유연성이 다른 알고리즘들 보다 우수했을 뿐이다.[1]

주석[편집]

  1. Douglas R. Stinson, 《Cryptography Theory and Practice 3rd edition》, Chanpman & Hall/CRC, 2006, pp. 102-103

같이 보기[편집]

  • SEED — AES와 유사하며 대한민국에서 개발한 블록 암호 형식.
  • Botan - AES에 사용되는 라이브러리의 하나.