암호 분석(Cryptanalysis)의 정의
암호 분석은 코드, 암호(cipher) 또는 암호화된 텍스트를 해독하고 연구하는 학문입니다. 암호 분석은 수학적 규칙을 활용하여 암호화 알고리즘의 취약점을 찾아내고, 그 결과를 암호학 및 정보 보안 시스템의 개선에 반영합니다.
암호 분석의 핵심 목표는 암호화 알고리즘의 약점을 발견하거나 이를 무력화하는 것입니다. 이러한 연구 성과는 암호학자들이 기존 알고리즘을 더욱 강화하거나, 치명적인 결함을 지닌 알고리즘을 새롭게 대체하는 데 활용됩니다.
대부분의 암호 분석 공격은 알고리즘 자체가 지닌 특성을 이용하여, 암호화된 메시지로부터 원래의 평문(plaintext)이나 사용된 키(key)를 얻어내는 방식으로 진행됩니다.
암호 분석의 작동 방식
암호 분석은 일반적으로 대상 암호 시스템(cryptosystem)에 대한 직접적인 분석을 필요로 하며, 암호 설계에 관해 이미 알려진 정보를 바탕으로 복호화를 시도하는 고도의 수학적 작업인 경우가 많습니다.
이 과정에서 활용되는 데이터는 다음과 같습니다.
- 가로챈 암호문(ciphertext)
- 전체, 일부, 추정 또는 연관된 평문(plaintext)
- 연속적인 시도에 맞춰 적응적으로 사용할 수 있는 기타 알려진 정보
암호 분석에는 상당한 컴퓨팅 자원, 즉 시간·메모리·정보가 요구됩니다. 또한 공격의 성공 정도도 다양하여, 알고리즘의 완전한 해독(total break)부터 내부 취약점 확인에 이르기까지 여러 단계로 나뉩니다.
주요 암호 분석 공격 유형
1. 암호문 단독 공격(Ciphertext-only Attack)
공격자는 암호문만 접근 가능하며, 이를 통해 해당 키와 평문을 찾아냅니다. 이때 공격자는 암호화 알고리즘을 이해하고 있고 암호문을 가로챌 수 있다고 가정합니다.
2. 기지 평문 공격(Known-Plaintext Attack)
암호 분석가가 이전에 수집한 평문-암호문 쌍을 알고 있는 상태에서, 가로챈 암호문을 해독하려는 공격입니다.
3. 선택 평문 공격(Chosen-Plaintext Attack)
기지 평문 공격과 유사하지만, 평문 쌍을 공격자가 직접 선택한다는 점이 다릅니다. 구현은 비교적 쉽지만 실제 환경에서 발생할 가능성은 낮습니다.
4. 무차별 대입 공격(Brute Force Attack)
가능한 모든 논리적인 평문 조합을 추측하여 암호화한 뒤, 원본 암호문과 비교하는 방식의 공격입니다.
5. 선택 암호문 공격(Chosen-Ciphertext Attack)
선택 평문 공격과 유사하게, 공격자가 임의의 암호문을 선택해 복호화 결과를 얻는 공격입니다. 공격자가 수신자의 컴퓨터에 접근할 수 있는 경우에 유효합니다.
6. 사전 공격(Dictionary Attack)
단어 목록(wordlist)을 활용해 평문 또는 키의 일치 항목을 찾는 공격으로, 주로 암호화된 비밀번호를 크랙할 때 사용됩니다.
7. 레인보우 테이블 공격(Rainbow Table Attack)
사전 계산된 해시(precomputed hash) 값들과 암호문을 비교하여 일치하는 항목을 찾아내는 공격입니다.
8. 중간자 공격(Man-in-the-Middle, MITM)
두 당사자가 메시지나 키를 주고받을 때, 안전해 보이지만 실제로는 침해된 통신 채널을 통해 통신하는 상황에서 발생합니다. 공격자는 이 공격을 이용해 통신 채널을 오가는 메시지를 가로채며, 해시 함수(hash function)를 사용하면 MITM 공격을 예방할 수 있습니다.
9. 적응형 선택 평문 공격(Adaptive Chosen-Plaintext Attack, ACPA)
선택 평문 공격(CPA)과 유사하지만, 과거 암호화 과정에서 학습한 정보를 바탕으로 평문과 암호문을 선택한다는 점이 특징입니다.