IT/정보보안

[정보보안] DES(Data Encryption Standard) 알고리즘이란?

디지털 은행원 이야기 2020. 9. 16. 23:00
반응형

안녕하세요.

방프개입니다.

 

아직까지 정보보안기사 준비를 잘하고 있는데요.

암호학에서 진도를 빼기가 좀 버겁긴 한데..

(이해하고 넘어가려고 하니 복습하는데 시간이 오래 걸리네요.)

그래도 강사님의 설명을 따라 한걸음 한걸음 잘 진행해나가고 있습니다.

 

오늘은 암호화 알고리즘 중 DES(Data Encryption Standard)에 관해 적어보려고 합니다.

 

# DES(Data Encryption Standard) 란?

 > DES(Data Encryption Standard)는 블록 암호의 일종으로, 미국 국립기술표준원(NIST)은 1973년

    국가적으로 사용할 대칭키 암호 시스템의 제안 요청서를 발표했는데 이때 Lucifer 프로젝트의 수정판인

    IBM의 제안이 DES로 채택되며 초안이 공표되었습니다.

 

    평문의 길이는 64bit이고 키의 길이는 56bit입니다. 이보다 긴 평문은 64bit 블록으로 나누면 됩니다.

    DES 구조는 Feistel 네트워크의 변형된 형태입니다. 라운드 횟수는 16회이고 56 bit 짜리

    원래 키로부터 16개의 서브키를 생성하고 그 서브키로 각 라운드에서 사용하게 됩니다.

 

    DES의 복호화 과정은 근본적으로 암호화 과정과 동일합니다. 암호문을 알고리즘의 입력으로 사용하고

    서브키 K(i)는 순서를 뒤집어서 적용합니다. 즉, 첫 번째 라운드에 K(16)을 사용하고,

    다음 라운드에 K(15)를 사용하며 마지막 라운드인 16라운드에서 K(1)을 사용할 때까지 라운드를 계속 반복합니다.

 

# DES(Data Encryption Standard)의 구조

 > 암호화 과정은 두 개의 전치(P-박스)와 16개의 Feistel 라운드 함수로 구성됩니다.

    여기서 사용된 두 개의 P-박스 중 하나는 초기 전치(Initial permutation)이고

    다른 하나는 최종 전치(Final permutation)라고 합니다.

 

    각 라운드는 라운드 키 생성기에 의해 암호키로부터 생성된 48bit 라운드 키를 사용합니다.

    DES는 16번의 라운드 함수를 사용하고 각 라운드 함수는 Feistel 암호로 되어 있습니다.

 

 

 

    라운드 함수의 경우는 이전 라운드 함수(또는 초기 전치 박스)의 출력 값 L(i-1)과 R(i-1)을 입력으로 받아

    다음 라운드(또는 최종 전치 박스)에 입력으로 전송될 L(i)와 R(i)를 생성합니다.

 

    각 라운드에는 혼합기(mixer)와 교환기(swapper)라는 2개의 암호 요소가 있습니다.

    이론 요소들은 역연산이 가능합니다.

 

DES 함수

    DES의 핵심은 DES 함수입니다. DES 함수란 라운드 함수에 사용된 f(R(i-1), K(i))를 가리킵니다.

    DES 함수는 32bit 출력 값을 산출하기 위해 가장 오른쪽의 32bit(R(i-1))에 48bit 키를 적용합니다.

 

    DES 함수는 확장 P-박스, 키 XOR, 8개의 S-박스 그리고 단순 P-박스의 4개 부분으로 구성되어 있습니다.

 

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

 

    위의 그림처럼 혼합기와 교환기를 사용하여 16라운드 암호화 알고리즘(cipher)과

    복호화 알고리즘(reverse cipher)을 만들 수 있습니다.

    여기서 중요한 점은 라운드 키들(K(1)에서 K(16))이 역순으로 적용되어야 한다는 사실입니다.

    암호화 과정에서 1라운드는 K(1)을 사용하고 16라운드는 K(16)을 사용합니다.

    복호화 과정에서 1라운드는 K(16)을 사용하고 16라운드는 K(1)을 사용합니다.

 

# DES 분석

 > S-박스

    S-박스는 각 라운드에서부터 그다음 라운드까지 혼돈을 만족하도록 설계되어 있습니다.

    비선형 함수로 입력값의 한 bit를 바꾼다면, 출력 값에서는 두 bit 이상이 바뀌게 되어 있습니다.

 

 > P-박스

    32bit에서 32bit로 가는 하나의 단순 P-박스와 32bit에서 48bit로 가는 하나의 확장 P-박스가 있습니다.

    이런 2개의 P-박스는 bit들을 동시에 확산(diffusion) 시켜줍니다.

 

# DES의 취약점

 > DES는 평문 또는 키의 작은 변화가 암호문에 큰 변화를 만드는 쇄도 효과(Avalanche Effect)가 매우 크고,

    암호문의 각 비트가 평문의 많은 비트들에 의존하는 완비성(completeness)이 높은 것으로 증명되어

    암호문으로부터 평문을 추론하기가 매우 어렵습니다.

 

    그러나 DES는 56비트 키를 사용하므로 최대 키 공간의 크기는 2^56 이 되고,

    이 수는 DES 개발 당시에는 전사 공격(Brute Force Attack)을 감행할 수 없을 정도로 큰 수였지만

    계산 능력이 놀랍게 발전한 현대에는 더 이상 전사 공격에 안전하지 못합니다.

 

    실제로 DES 키는 1998년 3일 만에 전사 공격에 의해 해독되었으며, 이후 컴퓨터 성능 발전으로

    해독에 걸리는 시간이 점차 짧아져 지금은 중요 정보의 암호화에는 적용할 수 없는 알고리즘이 되었습니다.

 

 

최근에는 사용하고 있지 않은 DES 암호화 알고리즘이지만

DES 가 어떻게 생기게 되었고 구조는 어떻게 되어있는지 알아볼 수 있는 시간이었습니다.

앞으로 AES 등 다른 정보보안의 내용 중 정리해볼 만한 게 있다면 정리해보도록 하겠습니다.

 

감사합니다.

반응형