Académique Documents
Professionnel Documents
Culture Documents
FPGA Implementation
Abdullah AlWatyan, Wesam Mater, Omar Almutairi, Aisha Al-Noori and Saed Abed
Mohammed Almutairi Computer Engineering Department
Computer Engineering Department Kuwait University
Kuwait University Kuwait, Kuwait
Kuwait, Kuwait s.abed@ku.edu.kw
Abstract Secrecy in communication is critical for people steganographic techniques deal with the frequencies of the
that have sensitive information. Steganography is a field that image to hide the secret data.
secures sensitive information by hiding it inside media files (such
as images). What makes the concept of steganography powerful is The image steganography system presented in this paper is
that the secret message is hidden cleverly within the media file an automated tool that provides two levels of security for the
and thus carried around invisibly. Our paper proposed an secret data in an automated process. The first level of security
automated method to secure a message using two levels of is encrypting the secret data based on our encryption method
security. In the first level, the data is encrypted by our encryption named Character Bit Shuffler (CBS) algorithm that is
method developed in Java and named Character Bit Shuffler developed using Java programming language. The second level
(CBS). Then in the second level, the encrypted data is hidden of security is hiding the encrypted secret data inside an image
inside an image using the Least Significant Bit (LSB) technique by using our proposed steganographic method. The objective
that changes only the last bits of the image pixels. The advantage of this work is to combine the concepts of cryptography and
of the LSB method is that it is simple as well as it maintains the steganography to improve the security of the secret data
quality of the image. A 1-1-0 LSB scheme will be used on 32-bit without degrading the image quality.
images in this paper. Experimental results that measure the
image quality of our proposed approach are presented at the end The steganographic method that the system uses is a spatial
of the paper. domain method called the Least Significant Bit (LSB) method.
The LSB method deals with the pixels of an image to hide the
Keywords Steganography; Cryptography; PSNR; Least secret data. It takes each bit of the secret data and replaces it
Significant Bit (LSB); FPGA; CBS. with the LSB of the pixel. The system implements the
steganography techniques using a Field-Programmable Gate
Array (FPGA) and the programming language used to
I. INTRODUCTION
implement the design is Verilog Hardware Description
Steganography is the art and the science of concealing and Language.
hiding secret data inside media files like images, videos and
audios. Steganographic techniques try to hide the existence of
the secret data [1]. This is different from cryptographic
techniques which try to make the secret data unreadable.
Steganographic techniques can be utilized to hide the
copyrights information inside digital media.
A steganographic technique has three main objects: the
secret data, the cover file (the media file that is used to hide the
secret data) and lastly the stego-file (the cover file with the
secret data hidden inside it). A powerful steganographic
technique should focus on maintaining and optimizing three
essential properties: robustness (the resistance of eliminating Fig. 1. Image steganography system.
the secret data from the stego-file), imperceptibility (the
property of not being able to distinguish between the stego-file As shown in Fig. 1, the input files of the system are the
and the cover file) and capacity (the maximum amount of secret data and the cover image. The secret data is encrypted
secret data that the cover file can conceal) [1]. Steganography using CBS algorithm (software). The encrypted data and the
can be applied in two domains: the spatial domain and the cover image are automatically sent to the FPGA board
frequency domain [2, 3]. In the spatial domain, the (hardware) after they are converted into a Memory
steganographic techniques deal with the pixels of the image to Initialization File (MIF) format. The MIF file is used to
hide the secret data. In the frequency domain, the initialize the RAM with the input data. The FPGA
Example:
Let us assume that we have:
Cover image pixels: (10110011) (10001100) (01100011)
Secret data bits: (011) Fig. 2. 3 bit LSB example.
Stego-image pixels (10110010) (10001101) (01100011)
Fig. 3 shows an example of embedding two bits inside each
As seen in the example, two of the image pixels are pixel. As seen in Fig. 3, the process is fixed. This means that
changed to hide the secret data bits inside the LSB of these for each iteration of hiding one byte of the secret data, four
pixels. However, one of the image pixels (the last one) did not image pixels are needed. In short, there is only one case that is
change because it was similar to the secret data bit by chance. the secret bits starts from the Red channel and ends at the
When hiding data inside an image using this technique, the Green channel.
probability for the image pixels to change from zero to one or
from one to zero is 50%. This means that on average, half of
the image pixels are going to be changed. Images consist of
pixels represented in bits. The images used in this paper consist
of 32 bits. These 32 bits represent 4 color channels namely red,
green, blue and alpha channels. Each channel is represented by
8 bits. Data can only be embedded inside the red, the green and
the blue channels. The alpha channel should not be modified.
The reason behind that is that the alpha channel controls the
image transparency and it is easy to spot any manipulation in
this channel. Therefore, three channels out of four can be used
to embed data namely the RGB channels. This means that the
maximum number of bits that can be embedded inside a single Fig. 3. 2 bit LSB example.
image pixel using 1 bit-LSB method is 3 bits. However, using
the three channels to embed 3 bits of the secret data inside each
pixel has two negative effects. First, changing the color of all IV. PROPOSED METHODOLOGY
the RGB channels can result in increasing the damage to the
The system consists of two main parts, the hardware part
quality of the image. Second, the complexity of the embedding
(FPGA) and the Software part (Java code). Each operation of
process is rapidly increased.
the Java code is discussed separately below as well as the
Fig. 2 shows two secret data Bytes being embedded in the hardware implementation.
RGB channels of each pixel. As seen in Fig. 2, the first three
bits of the first Byte of the secret data were embedded in the A. Encrypting The Secret Data
first pixel. The second three bits were embedded in the second The secret data is encrypted automatically after receiving it
pixel. The first Byte of the secret message now has two bits from the user. For encryption, we used our developed
remaining and they are going to be hidden in the third pixel. algorithm named the Character Bit Shuffler (CBS). CBS takes
Now, there is one unused bit in the third pixel. Therefore, the the characters of the secret data and shuffles the bits of each
next secret data Byte should start being embedded from this Byte separately. CBS has five modes of encryption schemes.
unused bit. Then, move to the next pixel until it is completely The mode that is going to be used depends on the size of the
embedded. It can be noticed that there are three cases that secret data.
could occur during the embedding operation. In the first case,
the first bit of a message byte starts from the Red channel. In
B. Converting The Input Files into an MIF
the second case, the first bit of a message byte starts from the
Green channel. In the third case, the first bit of a message byte We developed a Java code to create an MIF by creating a
starts from the Blue channel. Having three cases will increase string that starts with an MIF header followed by the encrypted
the complexity of the hardware implementation. Using two secret data and the image data followed by an MIF trailer.
channels to hide the secret data makes the process simpler. After that, the MIF is sent automatically to the FPGA
Also, changing two bits only results in a better image implementation to continue the process.
imperceptibility than in changing three bits.
C. Embeding module (Hardware) D. Extracting Module (Hardware)
After initializing the RAM with the MIF, the control unit Just like the embedding operation, the control unit starts
starts the operation by sending the addresses to the RAM. the operation by sending the addresses to the RAM. Upon
Upon receiving the addresses, the RAM sends the cover image receiving the addresses, the RAM sends the stego-image Bytes
Bytes and the secret data Bytes to the embedding module. The to the extracting module. The extracting module takes the
embedding module then takes the bits of the secret data and Bytes of the stego-image and extracts the secret data from the
embeds them in the LSB of each cover image Byte. After that, LSB of each Byte. After that, the extracting module sends the
the embedding module sends the result, which is the stego- result, which is the secret data Bytes to the RAM to store
image Bytes, to the RAM to store them. The control unit them. The control unit specifies the address where the secret
specifies the address where the stego-image Bytes are stored. data Bytes are stored.
After embedding all the secret data Bytes, the RAM After extracting all the secret data Bytes, the RAM
contents are going to be the stego-image Bytes, which is the contents are going to be the final result which is the encrypted
final result of the embedding operation. Then the RAM secret data. Then, the RAM outputs the encrypted secret data.
outputs the Stego-image. The embedding operation takes six The extracting operation takes 20 clock cycles to extract four
clock cycles to embed two bits inside one image pixel. Fig. 4 Bytes of the secret data from 16 image pixels. In other words,
shows the RTL of the embedding module. the extracting module extracts two bits per image pixel.
REFERENCES