선택 평문 (Chosen Plaintext)
선택 평문(chosen plaintext)은 암호 분석에서 공격자가 직접 골라 알 수 없는 키로 암호화하게 한 평문, 그리고 공격자가 평문을 정해 그 암호문을 얻을 수 있는 정보 조건을 말합니다. 영어 문헌에서는 드물게 defined plaintext라고도 하며, 이를 옮긴 정의된 평문(defined plaintext)도 같은 뜻입니다. 이 조건을 이용하는 공격을 선택 평문 공격(Chosen-Plaintext Attack, CPA)이라고 하며, 목표는 키를 알아내거나 다른 암호문의 내용을 추측하는 등 암호화 체계의 보안을 약화시킬 추가 정보를 얻는 것입니다.
쉽게 이해하기
잠긴 상자(암호화)가 있고, 그 안에 든 비밀 메시지를 알아내고 싶다고 가정해 보겠습니다. 선택 평문 조건에서는 공격자가 상자에 넣을 내용을 직접 고르고, 상자가 잠긴 뒤 어떤 모습이 되는지 확인할 수 있습니다. 목적은 상자를 직접 여는 것이 아니라, 자물쇠의 작동 방식을 드러내는 패턴과 단서를 찾는 것입니다.
선택 평문 조건의 구성
- 공격자가 테스트하려는 특정 평문을 직접 만듭니다.
- 공격자는 알아내려는 비밀 키로 그 평문을 암호화하게 할 수 있습니다. 공격자는 키를 모르지만 암호화 결과는 얻을 수 있으며, 이렇게 요청에 따라 암호화해 주는 장치나 서비스를 “암호화 오라클”이라고 부릅니다.
- 공격자는 결과 암호문을 받아 평문이 암호문으로 변환되는 방식에서 패턴이나 약점을 찾습니다.
시도가 충분히 쌓이면 공격자는 다음을 노릴 수 있습니다.
- 비밀 키에 대한 정보를 추론합니다.
- 다른 메시지가 어떻게 암호화될지 예측합니다.
- 키 없이 같은 키로 암호화된 다른 메시지를 해독합니다.
- 두 암호문 중 어느 것이 어떤 평문에서 나왔는지 구별합니다.
공격 모델 안에서의 위치
암호 분석에서는 공격자가 얻을 수 있는 정보에 따라 공격 모델을 나눕니다.
- 암호문 단독 공격: 암호문만 가지고 있습니다.
- 기지 평문 공격: 일부 평문과 그 암호문 쌍을 알고 있지만 평문을 고를 수는 없습니다.
- 선택 평문 공격: 원하는 평문을 골라 암호문을 얻을 수 있습니다.
- 선택 암호문 공격: 원하는 암호문을 골라 복호화 결과까지 얻을 수 있습니다.
뒤로 갈수록 공격자에게 유리한 조건입니다. 예를 들어 선택한 평문의 차이가 암호문에 어떤 차이를 만드는지 관찰해 키 정보를 얻는 차분 공격은 선택 평문 조건을 전제로 합니다.
현실에서 이 조건이 생기는 경우
- 공개키 암호: 공개키는 누구나 알 수 있으므로, 공격자는 언제든 원하는 평문을 암호화해 볼 수 있습니다. 그래서 공개키 암호는 기본적으로 선택 평문 공격에 안전해야 합니다.
- 암호화 서비스: 사용자가 입력한 데이터를 서버가 암호화해 저장하거나 전송하는 시스템에서는 공격자가 입력을 조작해 같은 조건을 만들 수 있습니다.
- 역사적 사례: 제2차 세계 대전 중 연합군은 특정 해역에 기뢰를 부설해 독일군이 그 지명을 암호화해 보고하도록 유도했습니다(“가드닝”). 암호화될 내용을 공격자가 사실상 정한 셈이어서 선택 평문에 가까운 사례로 자주 언급됩니다.
현대 암호는 선택 평문 공격에도 안전하도록(IND-CPA 안전성) 설계됩니다. 같은 평문을 암호화해도 매번 다른 암호문이 나오도록 무작위 값(초기화 벡터, 논스)을 섞는 확률적 암호화가 대표적인 방법입니다.
연구와 실무에서의 의미
- 암호 연구: 암호화 알고리즘의 약점을 식별해 더 강력한 암호화 방법을 개발하는 데 도움이 됩니다.
- 보안 감사: 암호 구현의 견고성을 평가하는 보안 테스트에서 기준으로 쓰입니다.
- 교육: 암호화 원리와 취약점을 보여 주는 실질적인 예가 됩니다.
- 가정의 한계: 대칭 키 암호를 쓰는 시스템에서는 공격자가 원하는 평문을 암호화하게 만들 수 없는 경우도 많아, 이 모델이 실제 공격 가능성보다 강한 가정일 수 있습니다. 그래도 설계 기준으로는 이 강한 가정 아래에서 안전한 방식을 고릅니다.
금융 거래나 보안 통신에 의존하는 시스템을 설계하거나 구현한다면, 사용하는 암호 방식이 선택 평문 공격에 안전한지 확인해야 합니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.