3
\$\begingroup\$

Robbers thread

Your task is to create a method for hiding information in an image. You will post three encoded messages of your choice (keep them classy), each with its associated image. Reveal the messages for the first two images and do not reveal the third. Robbers have the task of determining what your third hidden message is, along with an explanation of how your system works.

Rules and Scoring

  • Any data aside from the image required to make your algorithm work must be revealed openly and be constant across all possible message encodings.
    • For example, you may have a book cipher referencing The Great Gatsby (which is in the public domain as of January 1, 2021) as long as you link to the exact text required to make your system work.
    • RNG and Cryptographic algorithms are allowed under this caveat. Robbers should not be required to guess cryptographic secrets such as keys, hashes, salts, or initial seeds, as that easily makes cracking any given challenge infeasible. That would ruin the fun.
    • Do not share irrelevant information, e.g. "It's one of these 100 books" when you only use 1, or revealing a key which you don't use at all in your system, etc...
  • Data may not be hidden entirely in image metadata; you must incorporate at least one bit of one pixel in your system of encoding.
  • The encoded messages must be in English.
  • The encoded message does not need to be easily machine-readable (though it's perfectly acceptable if it is), but must be reasonably legible as rendered.
    • For example, you could have the message manifest itself as a rendering in Arial. Or perhaps it renders as a figlet font in ascii art.
    • The hidden message being rendered in something like Wingdings would be unacceptable, however. Using a frilly gothic font is probably pushing it.
  • You may encode the message as audio as long as it is intelligible to a fluent English speaker.
  • The encoded message should always be in the same format. So for example, using a rendered hidden text image for one message, an audio recording for the second, and plain text for the third, would not be allowed.
  • Data required to render the message as an image or audio is not considered part of the data required to make your algorithm work (which you would otherwise need to reveal)
  • A rendered encoding must be intelligible as-is and not require additional processing, e.g. a ROT13 cipher.
  • You may post more than 3 hidden messages if you wish, but keep in mind this is probably a disadvantage.
  • You may only encode one message in the image. No (intentional) decoy messages.
  • It's not required per-se that the images hiding your messages look like anything (e.g. cats, dinosaurs, scenic vistas, etc...), but you're no fun if they look like random noise and I will be downvoting any post that uses examples that do.

You will score 1 point if your system remains uncracked after 7 days.

\$\endgroup\$
11
  • 5
    \$\begingroup\$ Needing both an ASCII art as well as an image in combination to encode the message strikes me as overly complicated. I think this challenge would be more accessible if it were just one or the other. \$\endgroup\$ – xnor Apr 9 at 15:57
  • \$\begingroup\$ "Data hidden in the image must be hidden in the pixel data rather than headers or how the image is encoded; your system should still work if the image is converted to another lossless format." doesn't that ruin all the interesting things and restrict us to LSB steganography? If there are 10 ways to hide information in an image, 10 ways to hide it in ASCII art and 10 ways to combine them, don't we have to try 1000 different things to win? (this question has my imaginary downvote now; it's not an actual one because an actual one would magically push it to +5 in a few minutes) \$\endgroup\$ – the default. Apr 9 at 16:07
  • \$\begingroup\$ @Arnauld - yeah, that's pretty much what I had in mind. \$\endgroup\$ – Beefster Apr 9 at 16:11
  • \$\begingroup\$ @xnor I'm going to feel it out for a few days and remove the ascii art element if there are no submissions by monday. \$\endgroup\$ – Beefster Apr 9 at 16:12
  • \$\begingroup\$ @thedefault. LSB isn't the only way to hide information in pixels. One option off the top of my head is bit count parity. Another is to select specific pixels based on some key extracted from the ascii art and assemble them into a certain arrangement. \$\endgroup\$ – Beefster Apr 9 at 16:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.