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------