Title: Implementation of Least Significant Bit Image Steganography and its Steganalaysis
1Third Quarter
Implementation of Least Significant Bit Image
Steganography and its Steganalaysis
By Deniz Oran
2Goals
- To conceal either an image or a text message into
a "carrier" image with Least Significant Bit
Steganography -
- To detect that an image has been compromised or
altered and to extract that message -
- To extend the method to apply to various image
formats -
- To make the program usable with a Graphical User
Interface (GUI)
3What is Steganography?
- Literally means "concealed writing" in Greek
-
- Opposite of cryptography, in which a message is
made unintelligible, but transmitted through
public means -
- Steganography is the concealment of the fact
that a message is even being transferred.
4Historical Methods
- Shaving hair
- Wax tablets
- Jargon
- Cardano grille
- Invisible Inks
- Thermo-activated inks
- Micro dots
- Enigma Machine
- All of the above have been used for espionage and
for coordinating attacks on other bodies.
5Current Method
- Hiding an entire text or image binary in either
an image or audio carrier using Least
Significant Bit encoding - Previously done as a Senior Technology Lab using
the same technique with .wav audio files in
2007. - There is currently no established method for
encoding something with steganography because
better encoding methods translate to lower
carrier image capacity. - There is no established method for universally
detecting steganography because of the variety of
methods.
6Least Significant Bit Encoding
- Images on computers are made out of pixels
- Each pixel is represented by three bytes
- Each byte is composed of eight bits or 1s and 0s
10010101 00001101 11001001 10010110 00001111
11001011 10011111 00010000 10010100 00001101
11001000 10010110 00001110 11001011 10011111
00010001
- The second set of bytes represents the encoded
- ASCII character G (01000111)
7Program Design in JAVA
- Create a GUI
- Dropdown menu
- Input a suspected image
- Attempt to detect if it has been compromised
- Place the two image next to each other for
visual comparison when extraction is finished.
8Inputing the Image
- Read the binary of the image using Buffered
Reader, DataBufferByte, and WritableRaster into a
three dimensional array (data cube) with the row,
column and corresponding color value (depends on
image format). - Alter every Least Significant Bit in each byte in
order to spell out the word. The ASCII values
are understood by DataBufferByte instead of
having me define each one. - Save the altered image because it is ready to be
sent - Saving should be done using a lossless image
standard because this form of steganography
exploits the noise of an image. Therefore,
.PNG is a good start.
9Steganalysis
- Detecting a message encoded using steganography
is only feasible if the original image is
available or if the exact encoding method is
known. - The program will still be able to detect if an
image has been compromised by converting the
suspected image into hexadecimal but the message
may not be extracted. - This method wont work if a proper LSB is done,
since the encoding starts after the data for the
hex tags, thus not altering them.
10Decoding
- Just attempt to reverse the process of Least
Significant Bit encoding. This method is always
tried by commercial software but hardly works if
the LSB is done differently. - The suspected image is inputted, converted to
binary, the length of the message was hidden in
the first 32 bytes, that length is the parameter
for the for-loop which traverses the rest of the
image extracting the least significant bits in
the same manner they were isolated when they were
inserted - The output is the original ASCII message
inputted by the first user
11Possible Problems
- Steganography is an increasingly complex field
because of new algorithms and unique ways of
analyzing images - There are many methods to inconspicuously hide an
image or text message with computer science, some
are less complex (microdots) and some use higher
level mathematical algorithms (stochastic
modulation) - The Least Significant Bit method is an
established method and can be detected at 80
accuracy using highly advanced math but not the
human eye
12Testing
- Tests involve inserting a character into an
image, finding where the character is hidden, and
verifying that it is indeed the letter. Tests on
file size versus message length as well should be
done. Visual comparison is required.
Image 1 Image 2
13Testing continued
Binary comparison revealed that after 32 bytes
there was a variation when the letter G
(01000111) was encoded Image 1 Image 2 There
was also testing on the rendering time of the
image, the time it took to encode and decode the
image with varied message lengths and image
sizes. The trend appeared linear for each
process, but the slopes of the curved varied.
14Learned Concepts
- How images of various formats are constructed,
especially .PNG. - How to manipulate binary code and understanding
the role of bits within bytes. Binary operations
such as AND, OR, ADD. - Various methods of Steganography and
Steganalysis and which are the most effective - How to determine a file's extension using JAVA
15Future Plans
- Extend the program to work with other image
formats and improve the algorithms susceptibility
to common detection methods (using padding and
random byte locations) - Pairing the steganography with a simple
encryption algorithm