대화형 스테가노그래피 도구
로컬 LLM을 이용해 평범한 채팅 텍스트 속에 암호화된 메시지를 숨기고 같은 모델로 복원하는 데스크톱 애플리케이션
TL;DR
Conversation Stenography는 로컬에서 실행되는 언어 모델을 이용해 암호화된 바이트를 모델의 토큰 선택에 숨긴 뒤 평범한 대화 문장으로 전송해 수신 측에서 동일한 모델로 복원하는 도구입니다. AES-SIV와 PBKDF2(600,000회)를 결합한 암호화 계층과 메시지 체인 무결성 검사를 통해 위조·재정렬을 탐지하도록 설계되어 있습니다. 셋업 마법사가 모델 다운로드와 환경 구성을 자동화하지만 동일한 모델·설정·메시지 순서를 엄격히 유지해야 하며 탐지 기술에 취약할 수 있어 연구·교육 목적의 POC로 적합합니다.
주요 기능
- 커버 텍스트 생성으로 기존 메신저에 그대로 붙여넣어 사용합니다, 로컬 모델이 토큰 선택으로 암호화 바이트를 표현합니다.
- AES-SIV로 암호화해 기밀성과 무결성을 동시에 확보하며 메시지 체인으로 재전송·위조를 감지합니다.
- 설정 마법사가 모델 다운로드·환경 구성·가이드를 자동으로 처리해 초기 셋업 부담을 낮춥니다.
- 다중 참여자 체인 송수신을 위한 스크립트 API를 제공해 자동화·CI 환경에서 기록 기반 송수신을 지원합니다.
어떻게 동작하는가
사용자는 평문 비밀 메시지를 입력하면 먼저 PBKDF2-HMAC-SHA-256(600,000회)으로 공유 구절을 키로 확장하고 AES-SIV로 암호화합니다. 암호화된 바이트 시퀀트는 로컬에서 실행되는 언어 모델에게 입력되어 모델의 토큰 선택 패턴으로 매핑된 커버 텍스트를 생성하고, 수신자는 동일한 모델·설정·순서를 이용해 토큰 선택에서 암호화 바이트를 복원한 뒤 AES-SIV로 복호화합니다. 이 파이프라인은 모델이 오프라인으로 실행된다는 전제하에 동작하며 체인 인덱스와 이전 메시지 해시를 검증해 위조·재정렬을 탐지합니다.
해결 문제
메신저 플랫폼에서 암호화된 데이터 자체가 의심 신호가 되는 상황에서 평범한 대화 문장 형태로 암호화된 메시지를 전달해 검열 또는 자동 스캐닝을 회피하려는 문제를 다룹니다. 이 도구는 메시지 내용을 플랫폼에 평범한 텍스트로 노출시키되 내부적으로는 AES-SIV로 보호된 바이트를 로컬 모델의 생성 패턴에 숨깁니다. 동일 모델과 정확한 순서를 유지하면 수신 측에서 원문을 복원할 수 있어 메신저의 송수신 로그에선 은밀한 통신이 드러나지 않습니다.
지금 주목받는 이유
프라이버시 규제와 플랫폼의 메시지 스캔 기술 발전으로 단순 암호화만으로는 통신 은닉이 어려워졌습니다. 로컬에서 실행 가능한 경량 언어 모델과 오프라인 런타임(예: mlx, transformers)의 보급은 모델 기반 스테가노그래피를 현실적으로 만들었습니다. 이 조합이 개인 사용자와 연구자가 검열 회피·프라이버시 연구용 POC를 실험하기 좋은 환경을 제공하고 있습니다.
차별점
- 로컬 실행 모델을 기본 전제로 해 네트워크 전송이나 외부 API 호출을 전혀 요구하지 않습니다. 모델 선택과 다운로드를 셋업 마법사로 통합하여 환경별(Apple Silicon용 mlx, 일반 Linux용 transformers) 권장 구성을 제시합니다. 이로 인해 사용자는 자체 기기에서 끝점 보안과 데이터 위치 통제를 유지하면서 커버 텍스트 생성과 복원을 동시에 수행할 수 있습니다.
- 암호화 계층에 AES-SIV와 PBKDF2(600,000회)를 결합해 기밀성·무결성·키 스트레칭을 동시에 구현합니다. 메시지 체인 설계는 각 메시지에 이전 메시지의 해시와 인덱스를 포함해 순서 변경·중간 삽입·삭제를 검출할 수 있게 구성됩니다. 이 조합은 단순한 텍스트 매핑보다 높은 암호학적 강도를 제공합니다.
- 설계 목표를 애플리케이션 수준에서 실용성으로 잡아 복사·붙여넣기 기반 워크플로를 우선시합니다. 별도의 메신저 플러그인이나 서버가 필요 없도록 커버 텍스트를 생성해 사용자가 기존 채널로 전송하게 하며, 시뮬레이션 및 체인 관련 도구를 제공해 도입 전 동작을 로컬에서 검증할 수 있습니다. 이로 인해 비기술 사용자도 테스트 환경에서 프로토콜을 확인하기 쉽습니다.
사용 사례
- 검열이 심한 환경에서 민감한 약속이나 안전 관련 지시를 교환해야 하는 상황에서 기존 메신저를 그대로 사용하면서 은밀한 메시지를 주고받는 데 적합합니다. 두 사용자는 같은 모델·구성·순서를 유지하면 커버 텍스트를 통해 평범한 대화를 가장하면서도 암호화된 내용만을 복원할 수 있습니다. 복사·붙여넣기 워크플로로 운영되므로 별도 통합 없이 즉시 적용해 볼 수 있습니다.
- 보안 연구나 교육에서 LLM 기반 스테가노그래피의 공격-방어 사례를 재현할 때 유용합니다. 시뮬레이션 모드는 단일 기기에서 송수신 체인을 검증하고 토큰 매핑·복호화 실패 사례를 재현하는 데 쓰입니다. 연구자는 모델·체인 파라미터를 바꿔 탐지 기법에 대한 취약성 실험을 수행할 수 있습니다.
- 자동화된 로깅·릴레이가 필요한 환경에서 스크립트 인터페이스(chain-send/chain-receive)를 이용해 기록 기반 송수신을 구현할 수 있습니다. CI나 매크로 환경에서 비대화형으로 메시지를 생성·전달·수신 기록을 남기며 테스트 루프에 통합하는 용도로 활용할 수 있습니다. 이때 운영자는 환경변수와 상태 파일 보관 정책을 신중히 관리해야 합니다.
시작하기
레포를 클론한 뒤 Go 1.22+ 환경에서 go build로 실행 파일을 생성하면 초기 설치를 마칠 수 있습니다. 첫 실행 시 셋업 마법사가 모델 선택·다운로드·가상 환경 구성(py 관련 런타임 설치 포함)과 기본 구성 파일 생성을 자동으로 처리합니다. 셋업이 끝나면 simulate 명령으로 단일 기기에서 두 사용자 체인을 검증하거나 chat 명령으로 실제 복사·붙여넣기 워크플로를 시험할 수 있습니다.
요구사항
- Go 1.22 이상이 필요하며 로컬에서 빌드 및 실행을 위해 개발 도구 체인이 준비되어 있어야 합니다. Go 빌드 환경이 없으면 바이너리 빌드가 불가능하므로 사전 준비가 필요합니다. 운영체제에 따라 Python 3.9+와 런타임(mlx 또는 torch+transformers)이 설치되며, 셋업 마법사는 필요한 Python 패키지를 가상환경에 설치합니다.
- 로컬 모델을 실행할 여유 저장공간과 메모리가 필요합니다. 추천 모델별 용량 예시는 Llama 3.2 3B(약 2GB, Apple Silicon용 mlx 권장), Llama 3.1 8B(약 5GB), GPT-2(약 500MB) 등으로 사용자 기기 성능에 맞춰 선택해야 합니다. 모델 런타임에 따라 GPU/CPU 성능 차이가 복호화 신뢰도와 처리 시간에 영향을 미칠 수 있습니다.
- 운영자는 동일한 모델·버전·런타임 설정을 통신 당사자 모두에게 확보해야 합니다. 메시지 순서와 정확한 바이트 복사가 필수이므로 자동 교정·스마트 따옴표·포맷팅을 비활성화한 상태에서 커버 텍스트를 주고받아야 합니다. 또한 공유 구절은 오프라인에서 직접 합의하고 안전하게 관리해야 합니다.
이미지 분석

1.2k
Stars
86
Forks
+204
Trending
0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.