본 글은 개인 공부 기록용으로 작성된 글이니 참고용으로 보시기 바랍니다.
틀린점이 있다면 댓글을 통해 알려주세요!
1. DES 암호화 개요 및 구조
- 1979년 미국 NBS(현 NIST)가 국가 표준 암호 알고리즘으로 지정
- 블록 대칭키 암호화 방식 중 하나, 즉 암호화하는 키와 복호화하는 키가 같음
- 64비트 평문을 64비트 암호문으로 암호화함
- 키의 길이는 56비트, 라운드 수는 16, 각 라운드 마다 48비트의 16개 서브키가 생성
- 본래 키의 길이는 64비트(8바이트) 이지만 7비트마다 오류 검출을 위한 parity 비트가 1비트씩 있어 실질적인 키의 길이는 56비트임.
- 암호학자들은 56비트의 암호키 길이를 112비트로 늘려서 암호화하는 2-DES, 3-DES 사용을 권장한다. 그 이유는 64비트 암호키에 의한 DES 암호는 쉽게 해독이 가능하기 때문.
- DES의 구조는 아래와 같다.
- 두 개의 전치 (P-박스)와 16개의 Feistel 라운드 함수로 구성
- 각 라운드는 암호 혼합기(Mixer)와 스와퍼(Swqapper)로 구성
- DES에서 중요한 것은 라운드 함수.
- P-Box가 2번, XOR연산 한번, S-Box가 쓰임
- 입력값으로 들어온 32비트를 48비트로 확장한 후 라운드 함수 키 48비트와 XOR
2. DES의 특징
- 64bit(8byte) 블록 암호 알고리즘
- 키의 크기는 64bit (54bit의 비밀키 + 8bit의 parity비트)
- 안전성은 주로 비선형 함수로 구성된 8개의 S-Box에 의존
- 16라운드의 페이스텔(Feistel)구조
- 복호화는 암호화의 역순으로 하면 됨.
3. DES의 장, 단점
- 장점
- 비대칭형 암호에 비해 암호 및 복호 속도가 빠름
- 알고리즘이 간단하여 다양한 응용이 가능.
- 단점
- 역순으로 풀면 암호문이 풀리기 때문에 보안에 취약.
- 그래서 암호학자들은 비트수를 늘린 2-DES, 3-DES를 사용 권장
- 개발 당시엔 전사 공격을 감행할 수 없을 정도의 큰 수였지만, 크게 발전한 현대에서는 더 이상 전사 공격에 안전하지 못함.
- 외부 사용자에게 키가 절대 노출되지 않도록 관리해야 함.
Reference