IT보안 학습

3DES 암호화 총정리

김구티2 2023. 12. 29. 18:09

1. 3DES 암호화 개념

3DES의 기반이 되는 DES 알고리즘이 1975년 도입되었고, 1998년에 3DES가 도입되었다. 사실 기반인 DES 자체도 너무 오래되었고 3DES도 수명을 늘리기는 했으나 끝이 보인다. 점점 3DES를 허용하지 않는 곳은 늘어나기만 할 것이다. DES는 대칭 키 블록 암호로, 동일한 키를 사용하여 고정 크기 블록을 동시에 처리해 데이터를 암호화한다. 원래 DES 알고리즘은 56비트의 키 사용을 했는데, 컴퓨팅의 발전에 따라 DES는 보안에 취약해도 너무 너무 취약하다고 입증되며 폐기되기 시작했다. 이것의 수명을 강제로 늘린 것이 각 데이터 블록에 DES 암호화 알고리즘을 3번 적용하여 효과적인 키 길이를 위해 애쓴 3DES가 되겠다.

 

가장 기초적이지만 파괴적인 공격인 Brute Force Attack은 키 크기가 작을수록 강력했고, 56비트는 약 72조개의 가능성을 의미하지만, 72조는 안전한 숫자가 아닌지가 오래 됐다. 그리고 이제는 3DES도 안전하지 않은 영역에 이른 것이다.

 

2. 3DES 암호화 프로세스

3DES는 EDE(암호화→복호화 → 암호화)의 3단계로 작동한다. 3개의 56비트 키(K1, K2, K3)를 가져와 K1으로 암호화하고, 다음에 K2로 복호화하고, 마지막으로 K3으로 다시 암호화하는 과정을 거친다. 사실 모드가 EDE만 있는 것은 아니다. 이론상으로는 DED도 있을 것이고, DDD도 있을 것이고, 2^3=8가지의 경우의 수가 존재한다. 하지만 EDE가 가장 합리적인 선택으로 여겨진다. 우선, 맨 처음에 E가 오는 것은 필수적이다. 처음엔 일반 평문이 있으므로 암호화만 진행할 수 있고, 그래서 E가 와야 한다. 그리고 다음에 또 E가 오면 EE가 되는데, 그건 사실상 한 번의 암호화와 다를 바가 없다. 그리고 이미 암호문이 있으므로 복호화를 하는 것이 당연한 선택으로 느껴질 것이다. 그 다음엔 앞선 논리를 그대로 적용하여 E가 와서 EDE 시퀀스가 완성되는 것이다. EDE 시퀀스를 사용하는 표준적인 이유로 이렇게 DES와의 호환성을 꺼내는 것이 표준이다.

 

3. 3DES 암호화의 보안성

3DES가 56*3=168비트의 키 길이를 사용하긴 하지만, 중간자 공격을 고려할 때 3DES가 제공하는 실질적인 보안은 112비트에 불과하다. 또한, 64비트의 작은 블록 크기로 인해 HTTPS 세션과 같이 동일한 키로 대량의 데이터를 암호화하는 데 사용될 경우 블록 충돌 공격에 취약하게 될 것이다. 2016년에 Sweet32라는 생일 공격으로 인해 실제 프로토콜 환경에서 3DES의 작은 블록 크기가 문제되는 것을 확인하기도 하였으며, 이후 2017년에는 NIST에서 3DES의 사용 시 적용하는 데이터를 8MB로 제한했다. 8MB면 어지간한 움짤 용량도 소화하지 못하는 수준인 것인데, 이는 TLS, IPsec 또는 대용량 파일 암호화에서 3DES의 종말을 고하기도 했다.

 

4. 3DES의 대안

3DES의 대안으로 제시된 것이 AES(Advanced Encryption Standard)이다. AES는 3DES보다 수학적으로 더 효율적이며 훨씬 빠르므로, 낮은 대기 시간이나 높은 처리량이 요구되는 애플리케이션, 하드웨어에 이상적이었다. AES는 AES-128, AES-192, AES-256의 3가지 블록 암호로 구성되며, 각 암호는 128비트의 블록 크기를 갖고, 키 크기는 각각 128/192/256 비트를 갖는다. 그러므로 DES의 56비트에 비해, 3DES의 실질적으로는 112비트에 비해 당연히 보안 측면에서 강력한 스펙을 갖게 된 것이다. 아직까지는 AES는 Brute Force Attack에 대해 안전한 것으로 여겨지기는 한다. 특히 192비트 이상일 경우 그러하다는 평을 받고 있는데, 이것이 언제까지 안전할 지는 지켜봐야 할 것이다.

 

728x90

'IT보안 학습' 카테고리의 다른 글

IDEA 암호화 총정리  (0) 2023.12.31
AES 암호화 총정리  (0) 2023.12.30
데이터베이스 총정리  (2) 2023.12.29
FIDO2 총정리  (0) 2023.12.29
커버로스(Kerberos) 인증 총정리  (1) 2023.12.28