DES(Data Encryption Standard)는 오랫동안 널리 사용되어 온 대칭키 암호 알고리즘으로, 그 강점은 크게 56비트 키의 사용, 알고리즘의 견고한 구조, 그리고 타이밍 공격에 대한 대응이라는 세 가지 관점에서 살펴볼 수 있습니다.
1. 56비트 키의 사용
56비트 키는 암호화에 널리 활용될 수 있으며, 가능한 키의 조합은 총 256개에 달합니다. 이렇게 방대한 수의 키를 대상으로 하는 무차별 대입(Brute Force) 공격은 사실상 불가능합니다.
마이크로초(μs)당 한 번의 DES 암호화를 수행할 수 있는 기계라고 하더라도, 암호문을 해독하는 데 수천 년 이상이 소요됩니다.
다만 '마이크로초당 한 번의 암호화'라는 가정은 다소 보수적인 추정입니다. Diffie와 Hellman은 백만 개의 암호화 장치를 병렬로 구성하고, 각 장치가 마이크로초당 한 번씩 암호화를 수행하는 병렬 처리 기계를 만들 수 있는 기술이 이미 존재한다고 전제했습니다.
또한 키 탐색 공격은 단순히 모든 가능한 키를 순차적으로 시도하는 것 이상의 과정을 필요로 합니다. 메시지가 영어 평문인 경우 결과를 판별하기는 비교적 쉽지만, '영어 여부'를 식별하는 절차 자체를 자동화해야 한다는 부담이 있습니다.
만약 텍스트 메시지가 암호화되기 전에 압축되었다면, 해독된 결과가 올바른지 판별하는 작업은 더욱 복잡해집니다.
2. 알고리즘의 특성
암호해독가(Cryptanalyst)는 DES 알고리즘 자체의 특징을 이용해 암호분석을 시도할 수 있습니다.
특히 각 라운드(iteration)마다 사용되는 8개의 치환 테이블, 즉 S-박스(S-box)의 약점을 찾는 것이 주요 공격 경로가 될 수 있습니다.
그동안 상당한 연구가 진행되었고, S-박스에서 여러 규칙성과 예상치 못한 동작들이 발견되었지만, 아직까지 S-박스의 결정적인 약점을 성공적으로 찾아낸 사례는 없습니다.
이처럼 S-박스의 구조는 오랫동안 연구자들의 흥미를 자극해 왔으며, 수년에 걸쳐 다양한 규칙성과 이례적인 동작이 보고되었음에도 실질적인 공격으로 이어지지 않았습니다.
3. 타이밍 공격(Timing Attack)과 대응 방안
타이밍 공격은 공격자가 로컬 또는 원격 시스템의 취약점을 파악한 뒤, 해당 시스템이 다양한 입력에 응답하는 데 걸리는 시간을 분석하여 민감한 데이터나 비밀 정보를 추출하는 보안 공격 기법입니다. 타이밍 공격은 사이드 채널 공격(Side-channel Attack)이라 불리는 더 넓은 범주의 공격에 속합니다.
공격자는 여러 쿼리에 대한 시스템의 응답 시간을 측정함으로써, 보안 시스템 내부에 유지되고 있는 비밀 정보를 추출할 수 있습니다.
Kocher는 RSA 복호화에 사용되는 비밀 키를 노출시키기 위한 타이밍 공격을 설계했습니다. 당시 이러한 공격은 주로 스마트카드와 같은 하드웨어 보안 토큰 환경에서 적용되었습니다.
타이밍 공격은 공개키 알고리즘과 밀접한 관련이 있으며, 여러 암호문에 대한 복호화에 소요되는 시간을 관찹함으로써 키 또는 평문에 대한 정보를 획득할 수 있습니다.
타이밍 공격이 성립하는 핵심 원리는, 암호화나 복호화 과정에서 알고리즘이 입력값에 따라 서로 다른 연산 시간을 소요한다는 사실입니다.
이러한 공격은 일정 수준까지 방어가 가능합니다. 바로 암·복호화 연산을 수행하는 장치에 '블라인딩(Blinding)' 기법을 적용하여, 사용되는 키와 메시지의 종류와 무관하게 모든 연산이 동일한 성능과 시간을 갖도록 만드는 것입니다.
결론적으로 DES는 방대한 키 공간과 검증된 알고리즘 구조를 바탕으로 강력한 보안성을 제공해 왔습니다. 다만 현대의 컴퓨팅 성능 향상으로 인해 현재는 DES보다 더 긴 키 길이를 사용하는 AES(Advanced Encryption Standard)로 대체되는 추세이며, 타이밍 공격과 같은 사이드 채널 공격에 대한 방어 설계도 함께 고려하는 것이 안전한 암호 시스템 구축의 핵심입니다.