From 0e8229e13e1e7c6443785890ad9bf5db104c5c24 Mon Sep 17 00:00:00 2001 From: Laan Tungir Date: Sun, 28 Jun 2026 20:30:26 -0400 Subject: [PATCH] Update inspiration FAQ to reference waxwing's Primal post and the Meteor paper --- www/js/version.json | 6 ++--- www/llm-steganography.html | 49 ++++++++++++++++++++------------------ 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/www/js/version.json b/www/js/version.json index 14df189..8599883 100644 --- a/www/js/version.json +++ b/www/js/version.json @@ -1,5 +1,5 @@ { - "VERSION": "v0.7.61", - "VERSION_NUMBER": "0.7.61", - "BUILD_DATE": "2026-06-29T00:27:13.001Z" + "VERSION": "v0.7.62", + "VERSION_NUMBER": "0.7.62", + "BUILD_DATE": "2026-06-29T00:30:26.801Z" } diff --git a/www/llm-steganography.html b/www/llm-steganography.html index 250fef8..3c24872 100644 --- a/www/llm-steganography.html +++ b/www/llm-steganography.html @@ -744,35 +744,38 @@

- This project is inspired by research into linguistic - steganography — the art of hiding information within natural - language. Traditional steganography hides data in images, audio, or - file metadata, but text-based steganography is harder because text is - compact and every character is visible. + The direct inspiration for this project is a + post by waxwing on Primal + that walks through the core idea of using a language model's + next-token probability distribution as a steganographic carrier + channel. The post explains how secret bits can steer token selection + while preserving the model's output distribution, making the + resulting cover text statistically indistinguishable from normal + model output.

- The breakthrough idea is to use a language model's own - probability distribution as the carrier channel. Instead of - tweaking pixels or LSBs, you steer which token the model emits next, - encoding one secret bit per token. Key inspirations include: + That post references the academic paper that formalized this + approach:

- The half-splitting scheme used here is one of the simplest robust - approaches: it guarantees exactly one bit per token, is symmetric - (encoder and decoder run the same logic), and produces text that's - indistinguishable from normal model output to a casual reader. + The half-splitting scheme implemented in this demo is a simplified + version of Meteor's approach: it guarantees exactly one bit per + token, is symmetric (encoder and decoder run the same logic), and + produces text that's indistinguishable from normal model output to + a casual reader. The full arithmetic-coding version from the paper + is more efficient but the core principle is identical — secret bits + steer selection within the model's probability distribution.