1Encode: the server's reply (what a client sees)
An ordinary-looking answer. The highlighted words are the ones secretly carrying bits,
each colour-matched to the character it spells on the right.
2Decode: the secret the attacker recovers
The attacker recovers the secret from the reply alone. For each token it reads the
model's ranked list of likely next words from the server's response and finds which rank the server
actually emitted, and that rank is the hidden bits. This works whenever the API returns that ranking,
as per-token logprobs or a sorted top-n list of tokens.
3Detect: the verifier's live monitor
This score tracks how often the server picks a token the secret seed did not predict.
Even honest servers do this a little, because the same model on a different GPU rounds numbers slightly
differently, so the detector allows a small baseline and only reacts above it. Once the score passes
the alarm line, the server is flagged.