Hide and Seek v 4.1

    data hiding/seeking using GIF files (GIF format copyright Compuserve).

these programs take data, usually text, including encrypted text, and hide
it in a gif file. just type hide <infile.ext> <giffile[.gif]> [key] and 
viol !  your data is hidden away where it will be hard to detect. 
unfortunately the nature of the method doesn't allow for _perfect_ secrecy, 
and you can kinda tell the gif file has been changed a bit, and if you know 
what to look for, you could probably spot a GIF with hidden data in it, 
depending on how much data. i recommend black and white photo gifs for 
maximum security---it'll just look a tiny bit "noisy", and you can't really 
tell the difference at all with the naked eye, even with long files. be aware 
that the GIF file must be 256-color (or shades of gray) for hide and seek to 
work on it.....otherwise the picture degredation would be so severe as to be 
laughable.

   seek works by typing seek <giffile[.gif]> <outfile.ext> [key].
it takes the giffile, and produces a file called <outfile.ext>.

[key] is an optional key of 8 characters or less that "locks" the data into 
the gif file by encrypting the header information with the IDEA cipher.
since seek won't be able to read the header intelligently without the key,
the data becomes fairly hard to extract. don't forget your key, though. if 
you use no key the program still works fine, using a default key. note that 
this "lock" does not encrypt the DATA at all, only the header info. if you 
want to hide encrypted data, which is a good idea (see below), use a seperate 
encryption program (idea.exe, distributed with hideseek, is a fine choice.
again, see below). note that the security offered by this "locking" mechanism
is good but not great--using a key made up of 8-or-less ascii characters
significantly weakens any encryption scheme.  it will serve for most normal 
purposes, though. plus, as noted above, if your data is that sensitive,
it should be independently encrypted by a more secure method anyway.

hide produces a file called outfile.gif, so the original gif is left 
untouched. seek produces a file called whatever you tell it to, via the 
name you choose for <outfile.ext>, so be careful, because seek will overwrite
any file of the same name as <outfile.ext> without checking. it just doesn't
give a durn. programs today, sheesh.......(hide is better behaved (the older 
child, you understand) and will not overwrite outfile.gif unless you tell it 
its okay).

::::NOTICE:::: the file to be hidden must be short. it can't be longer than 
19K because each character takes 8 pixels to hide, and there are 320X480 
pixels in the maximum VGA display mode, thus ((320X480)/8), which = 19200...
which gets rounded down in practice to an even 19000 for safe dispersion....
sorry. note also that since it uniformly uses mode 23 it may make your GIF
look kinda funny....but since it doesn't delete the original, no harm done.

the way it works is it uses the Least Significant Bit of each pixel to encode
characters, 8 pixels per character.....sneaky, huh? it uses dispersion to 
spread the data (and thus the picture quality degredation) out a bit 
throughout the GIF in a pseudo-random fashion....."noise" is still noticeable 
for larger files, i'm afraid, but the smaller ones look really good...the 
smaller the better.  once again, greyscale is best by far....try it and see 
the difference for yourself.  dispersion also helps "lock" the data in---
without it, anyone could reverse engineer SEEK and just extract all the data 
there is and look at it to see if it makes sense. because the data is 
dispersed, in a pseudo-random way, and the header info is encrypted, there's 
no telling what's in a "locked" file. it would be quite a chore to sift 
through all the possible <outfiles> looking for data that could be encrypted
anyway.

simple, easy, effective, and FREE!!!! distribute it all you want! please
don't change it, and please don't charge for it. thanx. hide-and-seek are
copyright colin maroney, 1994.

this version of hide-and-seek is backwards compatible with version 3.5 and 
4.0---files hidden with 3.5 or 4.0 can be sought with 4.0 or 4.1
on very rare occasions seek will think a file is v 3.5 or v 4.0 when it is
really a garbage file or a file with a very unluckily encrypted header.
in these cases it will pull out garbage.
if you use seek with the wrong key or on a garbage file you will get an
error saying you may have the wrong version---this is because it cannot read
the correct version from a file with an encrypted header without the right 
key, and the garbage file will only extremely rarely chance to have a valid
version in the right place.  this error is the usual result of trying seek on 
a garbage file or of using the wrong key.

----------------------------------------------------------------------------
version 3.5 has a small error in that i did not allocate enough memory to 
hold the path. oops. and i thought i'd fixed that. this is only a problem
if your path is longer than 25 letters.(your "path" meaning not the PATH
variable in the environment, but rather the place you run hide or seek from.)
please distribute this version to anyone and anywhere there might be a 3.5
please distribute these files to anyplace at all, for that matter.

note that this version, 4.1, has improved dispersion considerably.
because of the pseudo-random nature of the dispersion, as the hiding 
progresses it becomes possible to re-calculate the dispersion level, and 
update it to a more effecient level. i have done this here.

============================================================================
----------------------------------------------------------------------------
test your program by doing the following.

first, to show off how good a b&w gif looks, type "seek ardalabw idea.zip".
this will extract idea.zip, a 14K zip file out of ardalabw.

idea is an encryption program. it'd be really really secure (relatively) to 
hide an encrypted text file....two layers of security, you understand......

i've done this here. type "seek ardala out.txt" to get a hidden secret 
message!!! (boy!). go ahead and try to read it. then use idea to decrypt it 
by typing "idea out.txt dw key" (first you have to unzip idea.zip, of course)
now you should be able to read it. wow! better than a captain cosmos decoder 
ring anyday, huh?

try hiding idea.zip in ardala.gif (the color one), by typing 
"hide idea.zip ardala".  see how shitty it looks?  remember, kids, black and 
white works best.

----------------------------------------------------------------------------
     
     The IDEA(tm) conventional block cipher used by HIDESEEK and IDEA is 
     covered by a patent in Europe, held by ETH and a Swiss company called 
     Ascom-Tech AG.  The patent number is PCT/CH91/00117.  International 
     patents are pending.  IDEA(tm) is a trademark of Ascom-Tech AG.  There 
     is no license fee required for noncommercial use of IDEA. 
     You may not extract the IDEA cipher from HIDESEEK or IDEA.EXE and put it 
     in another commercial product without a license.  Commercial users of 
     IDEA may obtain licensing details from Dieter Profos, Ascom Tech AG, 
     Solothurn Lab, Postfach 151, 4502 Solothurn, Switzerland, Tel +41 65 
     242885, Fax +41 65 235761.   

     HIDESEEK and IDEA are freeware and i am an amateur. they are tested as 
     well as i have been able to test them, are as safe as i can make them, 
     and i am confident that they are robust. NEVERTHELESS, you may only use 
     them at your own risk. i cannot and will not be responsible for lost 
     data.

=============================================================================

please distribute this stuff as you got it......thanx

source is included in this release. you asked for it, you got it. please see
source.doc in source.zip for relevant info.

the files in this release are:
                                hide.exe
                                seek.exe
                                ardala.gif  <=--contains a secret message!
                                ardalabw.gif <=--contains idea.zip
                                hideseek.doc <=--this file
                                source.zip <=--contains source code.
============================================================================

i am shaggy@phantom.com if you want or need to contact me.

-----remember: when cryptography is illegal, only 9*7^Py.> *8D7awQs ű×9Ikj;
