Hacker News new | past | comments | ask | show | jobs | submit login

This is a side project I've been working on for the Lisp in Summer Projects[1] contest.

It's a text steganography app using a simple book cipher, written in Clojure.

I welcome any feedback from HN so let me know what you think!

[1] http://lispinsummerprojects.org/




it's not steganography. the messages have little dots in them - they are very distinctive. it's trivial to find anyone using this.

why not use a typo instead? switch the letter at that point to another letter (could be a different one for each sentence). use fuzzy matching (eg locality sensitive hash) to find the correct sentence.

and construct the dictionary from previous tweets rather than books. then tweets look like tweets.


Good idea about using typos instead of a middle dot marker (TBH, it's not as unobtrusive as I would like, so perhaps it's better to rethink that part of the system).


I could see an advertiser making interesting use of this. "Drink more ovaltine!"

Have you thought about trying to do a public-key based version? People could list their key in their profile.


For those who aren't aware, "Drink more Ovaltine" is a reference to the movie A Christmas Story [1]. The boy in the story is excited to decode a message from the Ovaltine fan club using his decoder ring and is let down when the message is just "Be sure to drink your Ovaltine." [2]

[1] http://www.imdb.com/title/tt0085334/

[2] http://en.wikipedia.org/wiki/Secret_decoder_ring#Messages


Actually, it predates the movie. https://en.wikipedia.org/wiki/Secret_decoder_ring


The ad application is interesting; I hadn't been thinking along those lines at all...

I considered using public keys, but I didn't want the resulting encoded tweet to be illegible or look like gibberish.

The conceit here is that even a secret message looks completely innocent, something that no eavesdropper would notice as being out of the ordinary (though the middle dot marker does give it away, to people paying attention).


Another idea: use a corpus of tweets to retweet.


Yes, that's the simplest way to make the encoded tweets look natural, i.e., truly steganographic, but it's a fine balancing act between that and not making the corpus obvious.


Is it a big deal if it's obvious that the corpus is of tweets? There's many many ways to build one and order the tweets, right?


The content of the corpus doesn't matter, so the answer to your first question is no, and yes, if you're clever in terms of how you've composed the corpus so that no one could re-create it easily, then it's ok (relatively speaking, of course).


The problem there is the 140 char limit.


The keys would not be transmitted via tweets, just messages.


You can split a sentence across multiple tweets. V1.1?


Twitlonger isn't annoying enough?


Oh, cool!


Instead of using a corpus, why not select tweets from a list of followers and re-tweet them? This would make your encoded messages more like a natural twitter stream. You could curate followers lists to be themed around a subject (tech, gardening) to make them more naturally align with the rest of your twitter stream.

Edit: oops, this idea was already mentioned by akkatirk elsewhere in this thread.


This is so cool. Well Done!




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: