최근 대규모 언어모델(LLM)이 생성한 자연어 텍스트 내부에 비밀 메시지를 숨기는 새로운 스테가노그래피(steganography) 도구 '스테가너(Steganeur)'가 개발되어 화제입니다. 스테가너는 LLM의 토큰(token) 선택 과정에 비밀 메시지를 인코딩하여, 겉으로는 일반적인 문장처럼 보이는 커버 텍스트(cover text)를 생성합니다. 수신자는 이 커버 텍스트와 동일한 LLM, 그리고 특정 설정만 있으면 숨겨진 메시지를 정확히 복구할 수 있습니다.
스테가너는 러스트(Rust) 언어로 구현되었으며, 메시지 인코딩을 위해 '거부(rejection)', '산술(arithmetic)', '허프만(huffman)', '블록(block)' 등 네 가지 방식을 지원합니다. 이 중 '거부' 방식은 모델의 확률 분포를 여러 개의 동일한 확률 질량 구간으로 나누고, 메시지 비트(bit)에 해당하는 구간에 속하는 토큰만 선택적으로 생성하는 방식입니다. 이 방법의 가장 큰 장점은 생성된 텍스트가 일반적인 LLM 출력과 통계적으로 완전히 동일하여, 제3자가 숨겨진 메시지의 존재 자체를 거의 탐지할 수 없다는 점입니다. 예를 들어, 특정 문맥 프롬프트와 함께 비밀 메시지를 입력하면, 스테가너는 메시지가 인코딩된 자연스러운 커버 텍스트를 출력하고, 수신자는 이 텍스트만으로 원본 메시지를 추출할 수 있습니다.
이 기술은 전통적인 암호화가 메시지 자체를 알아볼 수 없게 만드는 것과 달리, 통신 자체가 이루어지고 있다는 사실을 숨기는 스테가노그래피의 본질에 충실합니다. 스테가너는 포럼 게시물, 이메일, 블로그 등 다양한 온라인 환경에서 비밀 정보를 교환할 수 있는 새로운 채널을 제공할 잠재력이 있습니다. 특히 '거부' 방식의 높은 비탐지성은 정보 보안 및 프라이버시 보호에 있어 중요한 의미를 가지지만, 동시에 악용될 경우 은밀한 정보 유출이나 불법적인 통신에도 사용될 수 있어 윤리적 논의가 필요할 것으로 보입니다. LLM의 발전이 가져온 또 다른 흥미로운 기술적 진보이자 양날의 검이라 할 수 있습니다.