대칭키(Symmetric Key) 암호 알고리즘이란?
-
대칭키(Symmetric Key) 암호화란
하나의 키로 암호화와 복호화
를 모두 수행하는 것을 말합니다. 이러한 대칭키 암호 알고리즘은 다양한 종류가 있습니다. -
암호화는 다음과 같은 종류가 있습니다.
- DES(Data Encryption Standard)는 대칭키 암호 중 하나인 64-비트 블록암호이며 56-비트 비밀키를 사용합니다.
- AES(Advanced Encryption Standard)는 미국 표준 블록암호였던 DES의 안전성 문제가 제기됨에 따라 2000년 미국 표준 블록암호로 채택된 128-비트 블록암호입니다.
- 아리아(ARIA)는 전자상거래, 금융, 무선통신 등에서 전송되는 개인정보와 같은 중요한 정보를 보호하기 위해 1999년 2월 한국인터넷진흥원과 한국의 암호 전문가들이 순수 한국 기술로 개발한 128-비트 블록암호입니다.
- 시드(SEED)는 전자상거래, 금융, 무선통신 등에서 전송되는 개인정보와 같은 중요한 정보를 보호하기 위해 1999년 2월 한국인터넷진흥원과 한국의 암호 전문가들이 순수 한국 기술로 개발한 128-비트 블록암호입니다.
-
대칭키 암호화는
양방향 암호화
로써, 복호화가 가능한 암호 알고리즘입니다. 암호화와 복호화에 쓰이는 키 크기가 상대적으로 작고 암호 알고리즘 내부 구조가 단순하여, 시스템 개발 환경에 용이하고, 비대칭키에 비해 암호화와 복호화 속도가 빠릅니다. -
하지만 교환
당사자간에 동일한 키를 공유
해야 하기 때문에 키관리의 어려움이 있고, 잦은 키 변경이 있는 경우에 불편함을 초래합니다. 뿐만 아니라 디지털 서명 기법에 적용이 곤란하고 안전성을 분석하기가 어렵고 중재자가 필요합니다.
DES와 3DES(Data Encryption Standard)란?
- DES(Data Encryption Standard)는 64비트의 평문을 64비트의 암호문으로 만드는 블록암호 시스템으로 56비트 혹은 64비트의 키를 사용합니다. 이를 데이터 암호화 표준이라고 합니다. 64비트의 키(외부 키)중에서 56비트는 실제의 키(내부 키)가 되고 나머지는 거사용 비트로 사용됩니다.
- DES는 1971년에 IBM에서 '루시퍼'라는 암호 알고리즘을 개발했는데 이를 개량하여 NIST가 국가 표준으로 지정한 알고리즘이 DES 입니다. 이름부터가 'Data Encryption Standard'로 표준임을 어필하고 있습니다.
- DES는 블록 암호 기법을 사용하며, 16단계의 파이스텔 네트워크(Feistel Network)를 거쳐 암호화를 수행합니다. 이는 보다 상세한 원리로써, 참고문헌을 참조해주시기 바랍니다.
-
3DES는 DES 알고리즘을 3중으로 만들어 DES 암호를 보다 보완한 암호 알고리즘으라 할 수 있습니다. 이를 3DES 혹은
TDEA(Triple Data Encryption Algorithm)
는 FIPS 승인된 DES 알고리즘의 개선입니다. 3DES는 NIST Special Publication 800-67에 기술되어 있습니다. -
3DES의 암호화는 세 개의 키를 이용하여 암호화, 복호화, 암호화 과정의 세 단계로 암호화를 수행합니다. 이러한 과정을
DES-EDE(DES - Encryption Decryption Encryption)
모드라고 합니다. 3DES 키는 3개로 구성되며, 3개 키는 키 묶음으로 참조됩니다. 따라서 총 키 묶음의 크기는 3 * 64 == 192 bit입니다.
AES(Advanced Encryption Standard)란?
- AES(Advanced Encryption Standard)는 DES의 암호화 강도가 약해지면서 개발되었으며, 향후 30년 정도 사용할 수 있는 안정성, 128비트 암호화 블록, 다양한 키의 길이(128/192/256 비트)를 갖춘 대칭형 암호 알고리즘입니다. 고급 암호화 표준이라고 합니다.
-
AES는
암호화 키로 128, 192, 256 bit를 가질 수 있는데 이를 AES-128, AES-192, AES-256
라고 합니다. 사용하는 키에 따라 실행하는 라운드 수가 다르며 128bit 키 사용시에는 10라운드, 192bit에서는 12라운드, 256bit에서는 14라운드를 실행합니다. 또한 AES는 DES와 다르게 Feistel Network를 사용하지 않습니다. Feistel은 총 bit에서 반을 암호화 하는 방식인 반면에 AES는 대입치환 - Substitution-Permutation Network을 사용하는데, 용어 그대로 대입(Substitution)과 치환(Permutation)을 이용하여 암호화 하는 방법이고 전체 bit를 암호화 하는 방식을 사용합니다. - DES는 블록 암호 기법을 사용하며, 16단계의 파이스텔 네트워크(Feistel Network)를 거쳐 암호화를 수행합니다. 이는 보다 상세한 원리로써, 참고문헌을 참조해주시기 바랍니다.
-
AES는
NIST에서 1997년 이후 DES의 안전성에 대한 논란
이 일어나자 NIST는 DES를 대체할 차세대 표준 알고리즘 제정을 위한 프로젝트를 추진하였습니다. 이때 1997년 ~ 1998년 까지 12개국에서 총 15개의 알고리즘이 제안되었습니다. 정부는 구현하기 쉽고 신뢰성 있는 빠른 암호화가 필요하기에 속도, 다양성 및 계산 요구 사항 등이 검토되었습니다.
# | DES | AES |
---|---|---|
날짜 | 1976 | 1999 |
블록 크기 | 64 | 128 |
키 크기 | 56 | 128, 196, 256 |