고급 암호화 표준
|
|
이 문서의 내용은 출처가 분명하지 않습니다. 지금 바로 이 문서를 편집하여, 참고하신 문헌이나 신뢰할 수 있는 출처를 주석 등으로 표기해 주세요. 검증되지 않은 내용은 삭제될 수도 있습니다. 내용에 대한 의견은 토론 문서에서 나누어 주세요. |
|
|
이 문서는 위키백과의 편집 지침에 맞춰 다듬어야 합니다. 더 좋은 문서가 되도록 문서 수정을 도와주세요. 내용에 대한 의견이 있으시다면 토론 문서에서 나누어 주세요. |
고급 암호화 표준(AES)(AES, Advanced Encryption Standard)은 미국 정부 표준으로 지정된 블록 암호 형식이다. 이전의 DES를 대체하며, 미국 표준 기술 연구소(NIST)가 5년의 표준화 과정을 거쳐 2001년 11월 26일에 연방 정보 처리 표준(FIPS 197)으로 발표하였다. 2002년 5월 26일부터 표준으로 효력을 발휘하기 시작했다.
벨기에 암호학자인 존 대먼과 빈센트 라이먼에 의해서 만들어졌으며, 처음에는 두 사람의 이름을 합해서 레인달(Rijndael, [rɛindaːl])이라는 이름을 썼다.
128비트의 블록 크기를 가지고 있고 128, 160, 192, 224, 256비트 등 128비트 이상의 모든 32의 배수 비트 길이의 키를 사용할 수 있으며, 미국 표준으로 인정받은 것은 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 chracteristics)
"안전성"은 절대적으로 갖춰야 하는 부분이었으며 특히 당시 대칭키 암호를 분석하는 방법인 '선형 공격(linear cryptanalysis)'와 '차분 공격(Differential cryptanalysis)'에 대한 안전성 증명이 주를 이루었다.
"비용"은 '스마트 카드, 하드웨어, 소프트웨어, 구현'을 위한 다양한 형태의 계산효율성(computational efficiency)을 참고하여 평가 되었다. 여기서 계산효율성이라고 하는 것은 속도 및 메모리 요구량(speed and memory requirement)등을 의미 하였다.
"알고리즘 및 구현 특성"은 유연성(Flexibility)와 알고리즘의 단순성(simplicity)을 주로 평가 하였다.
마지막 평가과정에서 남았던 5개의 알고리즘중 4개의 알고리즘은 탈락했지만 안전성이 떨어지는 알고리즘은 절대 아니였다.
다만 Rijndael의 알고리즘이 안전성, 속도, 효율성, 구현 및 유연성이 다른 알고리즘들 보다 우수했을 뿐이다.[1]
주석 [편집]
- ↑ Douglas R. Stinson, 《Cryptography Thory and Practice 3rd edition》, Chanpman & Hall/CRC, 2006, pp. 102-103