1993-03-12 - Re: HIDE: embedding msgs into snd & graphics

Header Data

From: blojo@sting.Berkeley.EDU (Jon Blow)
To: cypherpunks@toad.com
Message Hash: 6e8e139505721bb8e08e9c75dfdb7a73823a0dacb2b2d72b4413f921a608490c
Message ID: <9303120259.AA03718@sting.Berkeley.EDU>
Reply To: N/A
UTC Datetime: 1993-03-12 02:59:47 UTC
Raw Date: Thu, 11 Mar 93 18:59:47 PST

Raw message

From: blojo@sting.Berkeley.EDU (Jon Blow)
Date: Thu, 11 Mar 93 18:59:47 PST
To: cypherpunks@toad.com
Subject: Re:  HIDE: embedding msgs into snd & graphics
Message-ID: <9303120259.AA03718@sting.Berkeley.EDU>
MIME-Version: 1.0
Content-Type: text/plain

> I would have it take a GIF file and a
> binary file to be embedded, and produce an output GIF with the low order 
> bit of each byte changed to be the next bit of the embedded binary file.  

I've been thinking about writing this too, but, alas, I have been too busy.

If you write this program, I would encourage you to support encoding/decoding
in more than just GIF files.  My main reasoning behind this is something
like: if there is one piece of software that is commonly used to hide data
in noise bits, and it only supports one format, then things in that one format
are automatically suspect-- it's almost as bad as not hiding the data.

I'd encourage you to support JPEG and sunaudio formats (though the info
density one could store in each of these is probably a lot lower than what
you could pack into a GIF), as well as some less-used formats like tiff
and rast.  Hmm... and if you can figure out how to pack a useful amount
of data into an XPM, I'll be really impressed.

I don't know if you actually know GIF format (I don't) but I know that you'd
have to do some reasonably intelligent churning of the data.  For one, it's
just not going to be as easy as dropping a noise bit from each n-byte set;
GIF format is fairly compressed as I understand.  Also, if you're not
careful, you'll end up with a picture that chokes displays after encoding
that worked fine before encoding.  (Many machines have 8-plane displays,
which means a 256-color colormap.  If you mess with the noise bits on a
GIF that has 200 colors, you're going to come up with one that has 400
colors.  Many display programs (like xv) will compress the colormap when
they see this; the X server will also slide colors together when you
allocate things and the map is full.  BUT, such high-colormap-size gifs
would basically have "I AM A CONTAINER FOR ENCRYPTED DATA" tattooed on
the backs of their necks.