Steganography: The Word Combines Two Greek Words Steganos Meaning "Covered or
Steganography: The Word Combines Two Greek Words Steganos Meaning "Covered or
• If we have an image in the bitmap format, then changing only the last
bit or even the last 2 bit of every byte(if we need to cram in a lot of
information) would result in no visible changes in the way the image
looks like.
• We can hide our secret message in the image by changing these bits.
10000110 10000100
• The difference between the images is not visible to the naked eyed.
• And that is why when we send the image with the hidden message,
we avoid sending them the original one.
• So that when they see the image, they don’t have a reference to
compare it with.
• So an image can be converted into a series of cosine wave and there are
coefficients which tell us how much of each of those waves we have.
• So what JSteg does is, it crams the DCT coefficients with as much data as
it can.
• So it takes the coefficient, usually the low frequency ones(coefficients
that don’t appear frequently) and changes them up or down. This makes
it difficult to detect differences even when we subtract the images.
Extracting Hidden Message from an Image
• So generally, we would want to encrypt the messages as
steganography only hides the message inside the image.
• So we encrypt our message and put it in the image either through the
DCT coefficient or through the least significant bits, and then we send
the image.
• Now the person receiving the image should know the process we
used to hide the message in the image.
• They will run the program type in the decryption key to remove
encryption, and then fetch the hidden message out.
• When JSteg was invented, it was robust to visual attacks.
• Then researchers came out with a method to detect whether a JSteg
message has been buried inside an image.
• As we apply quantization to the DCT coefficients, most of them are set
to the value 0.
• So JSteg doesn’t put anything in places where there is 0, as its too
obvious because of the large occurrences
• It will only put them in a few at the top corner that are big.
• We notice a subtle imbalance in where our coefficients are because
we are expecting most of our coefficients to be 0, maybe a fair few to
be -1 or 1 and -2 and 2 (very close to 0).
• But then we start seeing a bunch of 3s and 4s which we weren’t
expecting.
• That is, the distribution of these numbers go off a bit, and we start to
predict if the JSteg file has been buried inside.
• This happens on every 8X8 block, so we can test this on every 8X8
block and find out which blocks may have messages buried inside
them.
• For example we may find that the first 60% of the image may be
buried with message, and then it abruptly stops, that’s a blatant clue
that there may be a message hidden inside the image.
• We can plot the DCT coefficient vs frequency graph(histogram) to find
out if they have been changed.
• People improved JSteg method to make it more subtle.
• Where they keep track of the statistics of the coefficients and try to
keep them balanced.
• So if we put in a 1, we try to take one out from somewhere else.
• This makes it harder to use our histogram analysis technique to find
out if there’s a message hidden in the image.
• Now what they do is use machine learning to classify images which
may have a message buried inside them from the ones that don’t.
• We just need to have a lot of positive and negative samples for
training of the machine learning model.
DIGITAL WATERMARKING
• One of the most common uses of steganography is digital
watermarking.
• In digital watermarking what we try to do is fingerprint a file, so that
we know where it came from or to whom it belongs.
• Examples, Copyright reasons, to trace who’s been distributing illegal
material(Breivik Terrorist case lawyer).
• We should try to mark an image with a small piece of information
repeated over and over again(Identification even after cropping).