안녕하세요.
방프개입니다.
앞전에 DES(Data Encryption Standard) 알고리즘에 관해 소개를 해드렸었는데요.
https://wjdtngus5511.tistory.com/category/IT/%EC%A0%95%EB%B3%B4%EB%B3%B4%EC%95%88
DES란 어떤 것인지 구조는 어떻게 되어있고 취약점은 무엇인지에 관해 적어봤었습니다.
오늘은 DES와 함께 항상 비교되는 AES(Advanced Encryption Standard)에 관해 적어보도록 하겠습니다.
AES(Advanced Encryption Standard) 란?
기존에 사용하던 DES는 56bit의 키를 사용했었는데 컴퓨터 성능의 발달로 인해 취약점이 발견되었습니다.
따라서 개선책으로 이중, 삼중 DES를 사용해봤지만 결국 더 이상 사용할 수 없는 상황에 이르렀고
1997년 NIST((미국 국립기술표준원)은 DES를 대체하기 위해 Advanced Encryption Standard,
즉 AES로 불리는 암호 알고리즘을 공모하였습니다.
치열한 경쟁 끝에 레인달(Rijndael)이 개발한 알고리즘인 AES 알고리즘이 채택되었습니다.
NIST에서 제시한 AES의 선정 기준은 안전성(Security), 비용(Cost), 구현 효율성(Implementation)
세 가지였고, 레인달이 이 세 가지 조건들에 가장 잘 부합하는 것으로 결정되었습니다.
높은 안전성과 속도로 인해 DES를 대체해 전 세계적으로 많이 사용되고 있습니다.
AES의 구조
AES는 DES와 동일하게 블록 대칭키 암호화 방식을 사용합니다. 이것을 제외하곤 DES와 전부 차이가 있는데
AES는 128bit 평문을 128bit 암호문으로 출력하는 알고리즘으로 non-Feistel 알고리즘에 속합니다.
또한 10, 12, 14 라운드를 사용하며, 각 라운드에 대응하는 키 크기는 128, 192, 256 bit입니다.
키의 크기에 따라 AES의 세 가지 버전이 존재하며 각각 AES-128, AES-192, AES-256으로 불립니다.
그러나 어떤 경우에도 키 확장 알고리즘으로부터 생성되는 라운드 키 크기는
평문과 암호문 크기와 동일한 128bit입니다.
레인달(Rijndael)의 암호(Cipher)
DES에서는 Feistel 네트워크라는 기본 구조를 사용하고 있지만
Rijndael 에서는 SPN(Substitution-Permutation Network)이라는 구조를 사용하고 있습니다.
# SPN 구조란?
SPN 구조는 라운드 함수가 역변환이 되어야 한다는 제약이 있지만 더 많은 병렬성(parallelism)을
제공하기 때문에 암, 복호화 알고리즘의 고속화를 요구하며, 컴퓨터 프로세서(CPU)가
더 많은 병렬성을 지원하게 된 현 추세에 부응하는 방식이라 할 수 있습니다.
AES 암호화 과정의 각 라운드는 비 선형성을 갖는
① S-Box를 적용하여 Byte 단위로 치환을 수행하는 SubBytes 연산
② 행 단위로 순환 시프트(Cyclic shift)를 수행하는 ShiftRows 연산
③ 높은 확산(Diffusion)을 제공하기 위해 열 단위로 혼합(Mixing)하는 MixColumns 연산
④ 라운드 키와 state를 EX-OR 하는 AddRoundKey 연산
으로 구성되어 있습니다.
특징으로 마지막 라운드에선 MixColumns 연산을 수행하지 않습니다.
AES는 알려진 블록 암호 알고리즘에 대한 모든 공격 방법으로부터 안전하도록 설계되었으며
하드웨어나 소프트웨어 구현 시 속도나 코드 압축성 면에서 효율적이므로
스마트카드와 같은 응용에 적합한 장점이 있다고 합니다.
이상으로 AES 알고리즘에 대해 알아봤습니다.
DES와 AES의 정의, 특징 등에 대해 알아봤는데 보통 같이 비교를 많이 해
아래에 표로 정리하고 마무리하도록 하겠습니다.
구분 | DES | AES |
년도 | 1976년 | 1999년 |
블록크기 | 64bits | 128bits |
키 길이 | 56bits | 128, 192, 256bits 이상 |
암호화 프리미티브 | 치환, 전치 | 치환, 시프트, 비트 혼합 |
암호학적 프리미티브 | 혼돈, 확산 | 혼돈, 확산 |
설계 | 공개 | 공개 |
설계 원칙 | 비공개 | 공개 |
선택 과정 | 비밀 | 비밀, 공모 |
출처 | IBM, NSA | 벨기에 암호학자 |
감사합니다.
'IT > 정보보안' 카테고리의 다른 글
[정보보안] 비대칭키 암호 알고리즘 (0) | 2020.09.19 |
---|---|
[정보보안] DES(Data Encryption Standard) 알고리즘이란? (0) | 2020.09.16 |
[정보보안] 02. 암호학 (0) | 2020.09.12 |