4 ms·
Sparse-text steganography: hiding messages in plain sight
I'm sure I'm not the first person to come up with this, but I don't
recall where I might have first heard it or remixed it from.
The idea is to distribute the letters of a secret in a much longer,
innocuous text, using a key phrase at least as long as the message (or
repeat it). The value (e.g., position in alphabet, or unicode index)
of each letter specifies how far apart each secret letter is.
The hope is that sparse enough messages are computationally infeasible
to permute elidations, but still trivial to extract with the right phrase.
> SECRET
> KEYWORD: 11 5 25 23 15 18 4
> S1234567890E1234C123456789012345678901234R1234567890123456789012E12345678901234T
> Sometimes9hE1catChes4the8ball3with8his2huRt2hand,8and2winces9aftEr2he5catches3iT.
> Sometimes he catches the ball with his hurt hand, and winces after he catches it.
For additional difficulty, rot13 the message first, though this might
alert the letter-frequency counters. Also, the first letter of the
secret message should probably not be the first letter of the encoded text.
To select from a wide array of keys not prearranged, the filler text
can hint at the key. Write the filler text manually (slow), or search
via regex for a filler text which matches the spacing of the secret
text (needs access to a lot of text, and a computer), or generate text
with a realistic-text algorithm (text will probably not pass human
inspection).
To extract the message, create a filter from the keyword, and apply it
to the encoded text.
> _abcdefghijKabcdEabcdefghijklmnopqrstuvwxYabcdefghijklmnopqrstuvWabcdefghijklmnO
> Sometimes hE catChes the ball with his huRt hand, and winces aftEr he catches iT.
> SECRET
Other than the obvious difficulty of filling in the text, what do you
all think of the security of this method, and its ability to hide a
message in an innocuous cover text?