151 lines
8.5 KiB
Plaintext
151 lines
8.5 KiB
Plaintext
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;
|