Data Encryption Standard 알고리즘에 대하여 알아보도록 하겠습니다.

DES 알고리즘은 1977년 미국 NIST 표준으로 공표된 이후
AES 알고리즘이 나오기 전 까지 전 세계적으로 널리 사용된 암호지요 ...

간단한 History를 살펴보면,

1972년 미쿡 상무성에서 공모를 시작하여 IBM이 개발한 알고리즘을 채택합니다.

이 DES의 개발자는 아직도 알려져 있지 않으며, 제작당시 64비트의 키를 갖는 암호 알고리즘 이었지만
미쿡 NSA에서 키 크기를 56비트로 줄이면서
미국 정보기관에서 DES의 백도어를 만들지 않았나 하는 의혹까지 일기도 하였습니다.
(현재까지 많은 학자들의 연구 결과, 백도어는 없을것이다 ... 라는게 지배적인 의견입니다)

아무튼 이 모든 사실이 아직까지 의문으로 남은 채 세상에 나오게 되었습니다.

DES는 기본 사양으로 암호 블록은 64비트, 키는 56비트를 사용하며
전체 16라운드 Feistel 구조에 8개의 비선형 함수인 S-Box를 사용합니다.

일단 만든 사람이 불명인데다 NSA에서 키 비트를 56비트로 만든것도 석연찮다는 의견같은건 배제 하더라도
DES는 실로 굉장히 안전한 암호 알고리즘이라 볼 수 있습니다.
다만 ... 70년대에 나온 알고리즘이다 보니, 당시 56비트의 키는 분석이 불가능했겠지만
근래에 이르러 컴퓨팅 파워가 늘어남에 따라 이 56비트의 키 크기도 그다지 안전하지 않게 되었습니다.

(Differential Cryptanalysis(1990년, Biham & Shamir)와 Linear Cryptanalysis(1993년, Matsui)에 대한 얘기는 일단 논외로 하겠습니다)
일례로 1997년 1차 DES Challenge에서 분산처리를 통해 96일만에 키를 분석 할 수 있었으며
1998년 2차 DES Challenge에서는 분산처리로 41일, 전용칩을 이용하여 56시간만에 키 분석이 가능 했습니다.
1999년 3차 DES Challenge에서는 전용칩과 분산처리를 이용하여 22시간만에 DES의 키를 찾을 수 있엇습니다.

단순하게 키 크기가 작은 이유로 안전하지 않은 까닭에
근래에는 2개의 키로 DES를 3번 암호화 하는 Triple-DES 사용을 권장합니다.
56비트의 키를 2개 사용하면 키 크기가 112비트가 되기 때문에
현재의 컴퓨팅 파워로도 2^112 만큼의 키를 전수키조사 하는 것은 무리가 있습니다.
따라서 보안 측면에서 매우 유리해집니다만 ... 3번 암호화를 하기 때문에 속도는 3배 느려지게 되지요 ;;;
이런 까닭에 AES가 등장하게 됩니다. 

그래도 20년가량 써온 암호이기 때문에 아직까지도 널리 사용되고 있기는 합니다.

아래는 DES의 상세 명세서 ... 

소스코드는 검색창에 DES라고만 쳐도 쏟아지지만 ... ...

http://ubiqx.org/libcifs/source/Auth/DES.c

이 곳의 소스 코드가 이용하기도 편하고, 잘 만들어 진 것 같아 소개합니다.

출처 - http://reinliebe.tistory.com/

'Security > Cryptography' 카테고리의 다른 글

암호학 - Block Cipher :: AES C# 소스  (0) 2011.05.07
암호학 - Block Cipher :: AES  (0) 2011.05.07
암호학 - Block Cipher :: DES C# 소스  (0) 2011.05.07
암호학 - Block Cipher  (0) 2011.05.07
암호학 - Introduction  (0) 2011.05.07

+ Recent posts