Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

DES의 역사: 데이터 암호화 표준의 탄생과 발전 과정

DES란 무엇인가?

데이터 암호화 표준(Data Encryption Standard, DES)은 64비트 단위의 평문 블록을 48비트 키를 사용해 암호문으로 변환하는 블록 암호 알고리즘입니다. DES는 대칭키 알고리즘이므로, 정보를 암호화할 때와 복호화할 때 동일한 키가 사용됩니다.

DES의 탄생 배경

DES는 미국 국립표준기술연구소(NIST, 당시 명칭은 국립표준국(NBS))가 주도해 만들어진 대칭키 블록 암호입니다. 1973년 NIST는 국가 표준으로 활용할 대칭키 암호 시스템에 대한 제안을 공개적으로 모집했습니다.

이 공모에 IBM이 제출한 안이 채택되었는데, 이는 '루시퍼(Lucifer)'라는 프로젝트를 수정·발전시킨 것이었습니다. DES는 1975년 3월 연방관보(Federal Register)에 연방정보처리표준(FIPS) 초안으로 게재되었습니다.

초기 비판과 S박스 논란

공표 직후 DES는 두 가지 이유로 거센 비판에 직면했습니다. 첫째, 비평가들은 키 길이가 너무 짧은(56비트) 점을 지적하며 무차별 대입(brute-force) 공격에 취약할 수 있다고 우려했습니다. 둘째, DES 내부 메커니즘 뒤에 숨겨진 비밀 설계가 있을 것이라는 의혹이 제기되었습니다.

특히 구성 요소 중 하나인 S박스(S-box)에 국가안보국(NSA)이 키 없이도 메시지를 복호화할 수 있는 비밀 트랩도어(trapdoor)가 숨겨져 있을 가능성이 의심받았습니다. 그러나 훗날 IBM 설계자들은 내부 메커니즘이 차분 암호분석(differential cryptanalysis)을 막기 위해 의도적으로 설계된 것임을 밝혔습니다.

연방 표준으로 공식 채택

DES는 최종적으로 1977년 1월 연방관보에 FIPS 46으로 발표되었으며, NIST는 이를 비분류(non-classified) 용도 소프트웨어에 사용할 표준으로 지정했습니다. 공표 이후 DES는 오랜 기간 가장 널리 쓰이는 대칭키 블록 암호로 자리 잡았습니다.

Feistel 구조와 16라운드

DES는 IBM의 저명한 학자이자 연구자인 호르스트 파이스텔(Horst Feistel)이 개발한 루시퍼(Lucifer), 즉 Feistel 블록 암호 구조를 기반으로 합니다. 원래 루시퍼는 128비트 키와 128비트 블록 크기를 사용했지만, DES로 표준화되면서 블록 크기는 64비트, 유효 키 길이는 56비트로 조정되었습니다.

DES 알고리즘은 16라운드로 구성된 Feistel 구조를 사용하며, 매 라운드마다 서로 다른 서브키(subkey)가 적용됩니다. 즉, 각 라운드가 고유한 키를 사용하는 방식으로 높은 보안성을 확보합니다.

트리플 DES의 등장과 AES로의 전환

1995년경에는 DES의 강화된 형태인 트리플 DES(Triple DES, 3DES 또는 TDES)가 소개되었으며, 공식 명칭은 트리플 데이터 암호화 알고리즘(Triple Data Encryption Algorithm, TDEA 또는 3DEA)입니다.

TDEA 역시 대칭키 블록 암호 알고리즘으로, 각 데이터 블록에 DES 암호 알고리즘을 세 번 적용합니다. 블록 크기는 64비트이며, 키 1, 2, 3에 따라 키 길이는 각각 168비트, 112비트, 56비트입니다. 또한 DES와 마찬가지로 총 48라운드, 즉 키당 16라운드를 수행합니다.

결국 2002년에는 AES(Advanced Encryption Standard)가 DES를 대신하는 공식 암호화 표준으로 자리 잡으면서, DES는 오랜 기간 수행해 온 역할을 AES에게 넘겨주게 되었습니다.