암호문 단독 공격 (Ciphertext-Only Attack, COA)

고급암호학수정일

암호문 단독 공격(Ciphertext-Only Attack, COA)은 공격자가 암호문만 가지고 평문이나 키를 알아내려는 공격입니다. 암호문만 주어진 조건에서 이루어지는 모든 공격을 말하며, 공격자에게 가장 적은 정보가 주어지는 공격 모델입니다. 영문으로는 줄여서 ciphertext-only라고도 합니다. 기지 평문 공격과 선택 평문 공격 항목도 참고하십시오.

공격 모델의 단계

암호 분석은 공격자가 가진 정보에 따라 나뉩니다. 암호문 단독 공격 외에, 일부 평문과 암호문의 쌍을 아는 기지 평문 공격(known-plaintext), 원하는 평문을 암호화해 볼 수 있는 선택 평문 공격(chosen-plaintext), 원하는 암호문을 복호화해 볼 수 있는 선택 암호문 공격(chosen-ciphertext)이 있으며, 뒤로 갈수록 공격자가 강해집니다.

평문에 대한 지식이 필요한 이유

기호와 코드 값 자체에는 아무 의미가 없습니다. 암호문을 원하는 만큼 모아도 평문과의 구조나 관계를 찾을 수 없다면 아무것도 얻을 수 없습니다. 그래서 공격자는 해독이 제대로 되었는지 판단하기 위해서라도 평문에 대해 어느 정도 알고 있어야 합니다. 이런 추가 정보는 ASCII 코드의 비트 구조, 언어의 문자 빈도와 단어 패턴, 메시지에 특정 형식이나 낱말이 쓰인다는 사실 등입니다. 예를 들어 키를 하나씩 대입해 보는 전수 조사도, 복호 결과가 “의미 있는 문장”인지 알아볼 수 있을 때에만 성공 여부를 판단할 수 있습니다. 섀넌은 키를 하나로 좁히는 데 필요한 암호문 길이를 유일성 거리(unicity distance)로 정의했습니다.

설계의 약점을 이용하는 방식

실제로 암호문 단독 공격은 평문의 일부 성질이 암호문에 그대로 드러나는 설계 오류나 약점에 의존합니다.

  • 빈도 분석: 단순 치환 암호처럼 같은 문자나 단어를 항상 같은 방식으로 암호화하면, 암호문 기호의 출현 빈도가 평문 언어의 빈도를 그대로 따릅니다. 영어에서 가장 흔한 문자 e, t, a 등에 대응하는 기호부터 찾아내고, 식별된 단어가 늘어날수록 나머지 빈칸을 채우기가 쉬워집니다.
  • 반복 패턴: 비즈네르 암호처럼 짧은 키를 반복하는 암호는 암호문의 반복 패턴으로 키 길이를 추정한 뒤 빈도 분석을 적용해 깰 수 있습니다.
  • 키 재사용: 같은 키 스트림으로 여러 메시지를 암호화하면 두 암호문을 결합해 키가 지워진 평문끼리의 관계를 얻을 수 있어 해독의 실마리가 됩니다.
  • 약한 설계: 오래되고 단순한 암호는 평문의 통계적 구조를 숨기지 못합니다.

암호화된 트래픽의 길이·빈도·시점을 분석하는 트래픽 분석도 암호문만 관찰한다는 점에서 비슷하지만, 내용을 해독하기보다 통신 패턴을 추론한다는 점에서 구별됩니다. 메시지 길이가 그대로 드러나는 방식에서는 요청의 종류를 추측할 수 있으므로, 민감한 시스템에서는 패딩으로 이런 유출을 줄이기도 합니다.

현대 암호와의 관계

현대 암호는 암호문이 평문에 대한 통계적 단서를 드러내지 않도록 설계되며, 보안 평가는 보통 공격자에게 더 많은 능력을 주는 기지 평문·선택 평문 모델을 기준으로 합니다. 따라서 올바르게 구현된 현대 암호에 대해 암호문 단독 공격은 현실적이기보다는 학문적인 경향이 있습니다. 반대로 어떤 암호가 암호문 단독 공격으로 깨진다면, 이는 가장 약한 공격자에게도 뚫린다는 뜻이므로 그 암호는 완전히 실패한 것으로 평가됩니다.

AES-GCM, ChaCha20-Poly1305 같은 현대 암호는 선택 평문·선택 암호문 공격까지 견디도록 설계되고 평가됩니다. 따라서 ‘암호문만 노출되니 안전하다’는 것은 최소 조건일 뿐, 충분한 보안 기준이 아닙니다.

블록체인·암호화폐에서는

  • 지갑 파일 탈취: 해커가 서버나 PC에서 암호화된 지갑 파일(이더리움 키스토어, wallet.dat 등)만 훔친 상황이 전형적인 암호문 단독 공격입니다. 이때 공격자는 암호 알고리즘이 아니라 약한 비밀번호를 노려 오프라인 대입 공격을 합니다. 그래서 키스토어는 scrypt 같은 느린 키 유도 함수를 쓰고, 사용자는 길고 무작위적인 비밀번호를 써야 합니다.
  • 트랜잭션은 대상이 아님: 블록체인 트랜잭션 자체는 암호화되지 않은 공개 데이터이므로 이 공격 모델의 대상이 아닙니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.