본문 바로가기
정보보안

DES(Data Encryption Standard)

by hgoon 2023. 2. 26.
반응형

DES는 대칭키 블록 암호로 미국 국립기술 표준원(NIST)에서 공표하였다

 

1. DES의 역사

 미국 국립 기술표준원은 1973년 국가적으로 사용할 대칭 키 암호 시스템의 제안 요청서를 발표하였다. 이에 따라 Lucifer 프로젝트의 수정판인 IBM의 제안으로  DES로 채택이 되었으며, DES는 1975년 3월에 연방관보에서 연방 정보처리기준의 초안으로 공표되었다.

공표 이후에, DES 초안은 다음과 같은 두 가지 이유로 인하여 신랄하게 비판을 받았다. 첫째로 56비트 밖에 되지 않는 키 사이즈에 대한 문제 제기이다. 작은 키 사이즈는 DES를 전수조사 공격에 대해 취약하게 만들기 때문이다. 둘째로,DES 내부 구조 안에 감춰진 설계 논리에 대한 염려이다. 비판가들은 DES의 S-박스에 트랩도아가 숨겨져 있어서 미국 안전 보안국이 키 없이도 메시지를 복호화할 수 있을지 모른다고 의심을 한 것이다. 후에 DES를 설계한 IBM 소속 설계자는  DES의 내부 구조가 차분 분석에 대해 안전하도록 설계되었다고 언급했다.

DES는 최종적으로 1977년 1월 연방 관보에 FIPS 46이란 이름으로 발표되었으며 비밀 데이터가 아닌 응용분야의 표준으로 정의되었다. DES는 발표된 이후 가장 널리 사용되는 대칭 키 블록암호가 되었다. 후에 미국 국립 기술 표준원은 훗날에 사용할 목적으로 DES를 세 번 반복하는 삼중 dES 사용을 권고하는 새로운 표준(FIPS 46-3) 역시 발표하였다.

 

블록암호 DES의 암호화 과정을 보면 64비트 평문을 가지고 64비트 암호문을 생성한다. 복호화 과정에서는 64비트 암호문을 가지고 64비트 평문을 만들어낸다. 이때 동일한 56비트 암호키가 암호화 복호화 과정에 모두 사용된다.

 

2. DES의 구조

DES의 암호화 과정은 구대의 치환(P박스)과 16개의 Feistel라운드 함수로 구성된다. 여기서 사용된 두 개의 P박스 중 하나는 초기치환, 다른 하나는 최종 치환이라고 한다. 각 라운드는 라운드 키 생성기에 의해 암호키로 부터 생성된 48비트 라운드 키를 사용한다.

 

초기치환과 최종치환

초기치환과 최종치환이라고 부르는 P박스를 나타낸 것이다. 각 치환은 64비트를 입력받아 미리 정의된 규칙에 재배열한다. 초기치환관 최종치환은 서로 역의 관계이며, 키가 없는 단순치환이다. 예를 들면 초기치환에서 58번째 입력 비트는 1번째 출력 비트가 된다. 최종치환에서는 이와 유사하게 1번째 입력비트는 58번째 출력비트가 된다 따라서 DES에서 초기치환과 최종 치환사이에 적용된 16라운드가 없다고 가정한다면, 초기치환 58번째 입력 비트값은 최종치환의 58번째 출력 비트 값과 동일하게 된다.

 

라운드 함수

DES는 16번의 라운드 함수를 사용한다. DES의 각 라운드 함수는 Feistel 암호이다.

라운드 함수의 경우는 이전 라운드 함수 출력값 LI-1과 RI-1을 입력으로 받아, 다음 라운드에 입력으로 적용될 L1 R1을 생성한다. 각 라운드는 2개의 암호 요소 혼합기(mixer)와 스와퍼(swapper)가 있다. 이런 요소들은 역연산이 가능하다. 스와퍼는 명백하게 역연산이 가능하다. 왜냐하면 스와퍼는 단순히 텍스트의 오른쪽 절반을 가지고 텍스트의 왼쪽 절반과 교환하기 때문이다. 혼합기는 단순히 XOR연산이기 때문에 역연산이 가능하다. 그 외 모든 비가역 요소들은 함수 f(RI-1, KI) 안에 모여 있다.

 

DES 함수

DES의 핵심은 DES함수이다. DES함수란 라운드 함수에 사용된 f(RI-1, KI)를 가리킨다 DES함수의 32비트 출력값을 산출하기 위하여 가장 오른쪽의 32비트 (RI-1)에 48 비트키를 적용한다 DES함수는 확장 P박스와 키 XOR, 8개의 S박스 그리고 단순 P박스 3개의 부분으로 구성되어 있다.

 

암호 알고리즘과 복호 알고리즘

혼합기와 스와퍼를 사용하여 16라운드 암호 알고리즘과 복호 알고리즘을 만들 수 있다. 암호 알고리즘은 암호화 과정에 사용되고, 복호 알고리즘은 복호호 과정에 사용된다. 전체 적인 아이디어는 암호 알고리즘과 복호 알고리즘을 비슷하게 설계하는 것이다.

 

다중 DES

DES에 대한 비판은 키 길일에 있다. 현재 이용 가능한 기술력과 병렬처리의 가능성을 이용하면, DES에 대한 전수조사 공격은 실행가능하다.

DES의 안정선을 향상하기 위하나 하나의 해결책은 DES를 폐기하고 새로운 암호알고리즘을 설계하는 것이다. 두 번째 해결책은 여러 개의 키를 가지고 DES를 여러 번 암호화하는 것이다. 잠시동안 사용된 이 해결책은 새로운 소프트웨어와 하드웨어의 투자를 요구하지 않는다. 여기에서는 두 번째 해결책을 알아본다.

 

이중 DES

암호화를 위하 두 개의 DES 암호 알고리즘을 사용하고 복호화를 위해서 DES 복호 알고리즘은 두 개 사용한다. 각 DES에 대해 서로 다른 키를 사용한다. 이는 키의 사이즈가 두 배인 112 비트가 됨을 뜻한다. 그러나 이중 DES는 기지 평문공격에 취약하다.

 

삼중 DES

DES의 안정성을 향상하기 위하여, 삼중 DES가 제안되었다. 이것은 암호화와 복호화에 대하여 DES를 세 번 사용한다. 오늘날 사용 중인 삼중 DES에  두 가지 버전이 있으며 하나는 두 개의 키를 갖는 삼중 DEA이고 다른 하나는 세 개의 키를 갖는 삼중 DES이다.

반응형

댓글