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?
No comments yet.