lun apr 19 23:50:02 CEST 2010

Jastegal - Just Another Steganography Algorithm

--

On this weekend I read a very interesting paper about how to rec-
ognize a probably steganographed image through a properly trained
neural  network.  Of course, I couldn't avoid putting my hands on
the matter, studying a quite simple algorithm more robust,  effi-
cient  and  un-intrusive than the ones around. So, I've developed
Jastegal, a quite simple software for steganography to hide arbi-
trary  data  inside of an image large enough to store it, without
making these changes visible in the actual image.

Actually, the software takes a file or some data from stdin to be
steganographed inside an image. Than, it splits those data into 8
bits groups, and then each group inside 2 bits groups. Every cou-
ple  of  bits  is used to alter the two least significant bits in
the red and blue components of a RGB triple (the green  component
is left untouched, as human eye is more sensible to variations in
the green band of light spectrum, so a change on the green compo-
nent  may  result  more  evident in the image). This algorithm is
more efficient than most of the algorithm around. In  fact,  some
of  them  just  alter  the  least significant bit inside each RGB
triple. There's no need to be so accurate,  as  human  eye  won't
recognize  the  difference  between a #FFFFFF white and a #FDFFFD
one. Instead, being so accurate requires 8 RGB triples to store a
single byte, so we need very large images to store relatively big
pieces of data. My algorithm just requires 2 RGB triples to store
a  single  byte, as 4 bits per RGB triple are stored, without any
human eye could recognize this change. Some other algorithms  are
more  intrusive, altering all the components inside an RGB triple
(so without considering a human eye is more  sensible  to  varia-
tions in the band of green), and the differences between original
and modified image may so become slightly visible.

The data steganographied inside the image can be pulled out  then
using  Jastegal itself, that will reassemble the data bit per bit
from the RGB triples.

Take a look  at  this  image  for  example:  http://img200.image-
shack.us/img200/3149/gioconda1.png

Would  you  ever think there's the whole 1st Canto of Dante's Di-
vine Comedy hiding inside of it? Test and believe it:

jastegal -d -i gioconda1.png

Download  file:  http://0x00.ath.cx/prog/jastegal.tar.bz2  GitHub
link  (I  suggest you to download it from here, as you can always
find here the most recent version):

http://github.com/BlackLight/Jastegal/tree


--
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GAT d? a? C++++ U++++ P++++ L+++++ E--- W+++ !w PS+++ PE-- Y++ PGP++ X++
R+ tv-- b+>+++ DI++ G++ e+++ h* r++ z**
------END GEEK CODE BLOCK------