LLM 대화 속에 비밀 메시지를 숨기는 도구를 만들었습니다
built a tool that hides secret messages inside innocent-looking LLM conversations
핵심 요약
LLM의 토큰 생성 확률을 조작해 일반적인 대화 속에 암호화된 메시지를 숨기는 스테가노그래피 도구입니다.
- LLM 스테가노그래피 — 토큰 확률 분포를 이용해 비밀 데이터를 대화 속에 은닉함
- 작동 원리 — 산술 부호화를 통해 암호화된 페이로드를 토큰 선택 과정에 삽입함
- 오픈 소스 — 로컬 LLM(GPT2, LLAMA)을 활용하는 CLI 도구로 공개됨
- 기술적 한계 — 텍스트 수정이나 의역 시 복호화가 불가능하며 통계적 탐지 가능성 존재
메시지 스캔이 조용히 기본값이 되어가고 있습니다. 인스타그램은 지난 5월 DM에서 (선택적) 종단간 암호화를 제거했고, EU는 자발적인 CSAM 스캔 규칙을 2028년까지 유지하기로 했으며, 강제적인 클라이언트 측 스캔 버전도 여전히 협상 중입니다. 이동 방향은 명확합니다. 당신이 보내는 내용 중 더 많은 부분이 상대방에게 도달하기 전에 무언가에 의해 읽히게 될 것입니다.
그래서 저는 LLM 스테가노그래피를 가지고 놀다가 작은 POC를 만들었습니다.
각 생성 단계에서 언어 모델은 가능한 다음 토큰에 점수나 확률을 할당합니다. 정상적으로 샘플링하는 대신, 산술 부호화(arithmetic coder)를 사용하여 해당 후보들 중에서 암호화된 페이로드 비트를 선택할 수 있습니다. 동일한 모델, 토크나이저, 설정, 공유 비밀, 대화 상태를 가진 수신자는 토큰 분포를 재현하고 암호화된 페이로드를 복구할 수 있습니다.
목표는 일반적인 모델 생성 산문과 유사한 텍스트를 생성하는 것이며, 페이로드 용량과 텍스트 품질 사이의 절충안을 찾는 것입니다. 이 개념 증명은 통계적으로 탐지 불가능하다는 것이 입증되지 않았으며, 출력값은 정확하게 복사되어야 합니다. 편집, 자동 수정, 번역 또는 의역은 복호화 실패를 유발할 수 있습니다. 이 도구는 로컬 LLM(현재 GPT2 및 LLAMA 지원)을 사용하여 작동합니다.
Conversation Stenography는 이 실험을 구현한 오픈 소스 로컬 CLI입니다. AES-SIV로 메시지를 압축 및 인증하고, 산술 부호화된 토큰 선택을 통해 암호화된 데이터를 삽입하며, 일치하는 로컬 모델과 공유 문구를 사용하여 이를 재구성합니다.

