본문 바로가기
공부/정보보안

DES(Data Encryption Standard)

by Skogkatt의 개인 블로그 2019. 8. 1.
반응형

DES

  • AES를 사용하기 전, NBS에서 국가 표준으로 지정한 56bit의 키8bit의 패리티로 구성된 64bit 블록 암호 알고리즘
  • 70~80년대 당시엔 상당히 강력한 알고리즘이었고, AES가 표준화되기 전까지 세계적으로 널리 사용되었다.
  • 1972년 NBS(National Bureau of Standards, 현 NIST)는 미국 정부 규모의 표준적인 암호 알고리즘을 개발하기로 하였고, 이에 IBM에서 1971년에 만든 Lucifer 암호 알고리즘을 제안하였다.
  • 이후 NSA에서 Lucifer 암호 알고리즘을 수정하고[각주:1] 1975년 3월 17일에 DES를 발표하였다.
  • 1979년에는 미국 NBS가 국가 표준 암호 알고리즘으로 지정되었다.

DES의 구조

  • 두 개의 P-Box[각주:2]와 16개의 Feistel 라운드 함수로 구성된다.
  • 각 라운드에서는 56bit 암호 키에서 생성된 48bit의 라운드 키가 사용된다.
DES 라운드 함수
  • 기본적으로 Feistel 암호 구조를 따른다.
  • 각 라운드에는 2개의 암호 요소 혼합기(minxer)와 교환기(swapper)가 있다.
    이런 요소들은 역연산이 가능하다[각주:3]

 DES 함수 F
  • 라운드 함수에 사용된 $f(R_{i-1},K_i)$를 가리킨다.
  • Expansion P-Box, Straight P-Box, S-Box * 8, K가 사용된다.

DES의 취약점

  • 1997년 미국의 보안회사 RSA Security에서 DES Challenge라는 DES를 해독하는 대회를 열었다.
  • 1998년 두 번째 DES Challenge에서 Electronic Frontier Foundation(EFF)에서 개발한 Deep Crack가 56시간 만에 DES를 해독하는 데 성공하였다. 이때, 대회의 상금은 10,000달러였지만, Deep Crack의 개발비만 250,000달러가 들어갔다,
  • 1999년 세 번째 DES Challenge에서는 22시간 15분 만에 해독에 성공하였다.
  • 2006년에는 $10,000만으로 COPACOBANA(Cost-Optimized Parallel COde Breaker)와 같은 강력한 장치가 개발되었다.
  • 처리 속도가 월등히 빨라진 현재를 기준으로는 몇 시간 안에 해독이 가능하기 때문에 DES 암호화 의미가 없다.

3DES

  • DES의 가장 큰 단점은 56bit의 짧은 키이다.
    이 문제를 해결하기 위해 IBM은 새로운 블록 암호 알고리즘을 설계할 필요 없이 DES를 3중으로 적용하여 키 길이를 늘리는 비교적 간단한 방식을 제시했다.[각주:4][각주:5]
  • 암호화/복호화에 소요되는 시간이 약 3배 늘어나긴 했지만, DES가 널리 사용되고 있었기 때문에 비용적인 측면에서나 기술적인 측면에서나 유용한 해결책이었다.
  • 현재는 보다 빠르고 강력한 AES가 미국 표준으로 승인되었기 때문에 3DES를 사용하지 않는다.

두 개의 키를 갖는 3DES

  • 키 $k_1$와 키 $k_2$만을 사용하는 방식이다.
  • 첫 번째와 세 번째 암호화 단계에서는 $k_1$을, 두 번째 복호화 단계에서는 $k_2$를 사용한다.
  • Known-Plaintext attack에 대한 위험이 있다.

세 개의 키를 갖는 3DES

  • 키 $k_1$, $k_2$, $k_3$ 총 세 개를 사용하는 방식이다.
  • 3DES의 복호화는 암호화의 역이 된다.

  1. Lucifer/DES가 만들어질 당시에 민간 학계에 알려지지 않은 차분 공격 방식(differential cryptanalysis)에 루시퍼가 취약했기 때문에 NSA가 S-Box를 수정/보완하였다. 당시에는 취약한 공격을 감추기 위해 정확한 이유를 알리지 않았고 이 때문에 여러 루머가 돌아다니기도 하였다. [본문으로]
  2. 초기 전치(initial permutation)와 최종 전치(final permutation) [본문으로]
  3. 교환기는 명백히 역연산이 가능하다. [본문으로]
  4. 단순히 키를 늘리는 방식이라 할지라도 키 길이가 1비트만 늘어나면 무차별 공격에 필요한 대입 횟수는 2배로 늘어나기 때문에 키 길이를 늘리는 것은 효과적인 방법이다. [본문으로]
  5. 물론 3DES가 3중으로 적용돼 112~168bit의 키를 갖는다 할 지라도 현재는 '취약한 암호'로 간주된다. OpenSSL은 버전 1.1.0부터 3DES를 포함하지 않는다. [본문으로]
반응형

댓글