Noise Filter
An experiment in message embedding, quite probably illegal in many nations as it involves encryption and other nasty things that only anarchists or enemies of the state might consider doing.

Every file here is open source.

Rationale
I'm doing this because "my" government has decided that it can, via Carnivore, do what is in essence a trunk-line wiretap and feed my email through a message filter, looking for questionable content.

This creature we call Government claims it will only filter for known or sought ostensible criminals, but the implications are profoundly disturbing. In order for Carnivore to read email from or to a suspect, it has to filter all content and (theoretically) point to only the suspect's messages.

But in order to do that it has, effectively, to read everything -- and that's where you get into trouble. The Fed says it's protecting user privacy, but does so by essentially reading all messages. It protects privacy by violating it utterly.

Unacceptable.

Carnivore filters by email addresses, so we are told, and then only looks at text content afterward. I don't believe that it's as innocuous as that, and I am certain it can be abused.

It's a hell of a lot harder to do that with an attached bitmap, say for instance a family photo. As net filtering companies have learned, image content is effectively unfilterable, unprocessable. Even the "best" neural nets can't tell with better than 50 percent accuracy whether an image is pornographic or a photo of someone's kid waving at Mickey Mouse.

So obviously a good place to embed messages is in images. (And I do not mean images with text captions on them -- those captions are readable, of course, when the image is loaded in any viewer. No, I mean messages encoded in the actual pixels that make up the picture itself. Grains of visual data, small onscreen as a single i's dot.)

"But why do it at all?" someone asks. Good question. Why have curtains over the windows in your home, if you are doing nothing illegal in there?

Privacy, man, privacy pure and simple. No other reason is necessary. Or would you rather have your love letters, for instance, on display for anyone to see?

This discussion, by the way, involves steganography, the process of embedding a message into images. The idea is hardly new; it's been around since at least the 15th Century. There are programs which already do a lot of what I'm discussing here as well, but as far as I know this is the first effort of its kind to use a very high-level language, specifically Lingo, the code engine employed by Macromedia's Director.

Table of Contents
All sections include discussion and sample files; executable code is written in Macromedia's Director version 7.0.2.
Beginnings: The basic principles involved in changing data in an image file, specifically using Macromedia's Director 7.0.2 or later.

Embedding a Message: Converting some text into simple color information which can then be used  to modify an image -- and being able to get that information back out again.

Taking it Up a Notch: In the previous section I covered using a 256-color index palette; here I use a fully-fledged RGB signal to triple the depth of the information.

Encrypting: Using an xOr key-based scrambler to make your text just that much harder to read when it's embedded.

Steganography, the Basics: In the encryption section we covered how to lay the data down in a linear fashion, which really is not much of a deterrent to cracking. Here we begin to consider how to recoverably randomize the locations of the text signal into the image we're using.

More Stegonography, but with Actual Images: Working with images which already contain or are information, and not destroying their data.

Better Encoding: Really, really hiding your message in an image.

Enciphering discussions: Advanced discussion, much deeper code, and so on.

NOTE that Macromedia, Director, Shockwave and Lingo are all trademarks owned and copyrighted by Macromedia, Inc., and their usage here does not constitute an infringement of that trademark ownership. Usage of other special terms which are specific to the Director programming environment, similarly, does not constitute such a violation.

Like the site? Buy the book! Director 8.5 Shockwave Studio: A Beginner's Guide by Warren Ockrassa, published by Osborne-McGraw/Hill; preview it now!