An improved security and message capacity using AES and Huffman coding on image steganography

,


Introduction
Currently, information security is widely used to secure or protect the information.Several common aspects that exist in information security has been implemented such as cryptography and steganography.According to [1], cryptography is a technique that aims to transform the message becomes the random message by encrypting it.On the other hand, steganography is a branch of information hiding method that aims to conceal the message in a medium, such as an image, video, audio, file [2][3][4].Steganography has two different kinds of domains that are mostly used, such as spatial domain and frequency domain [4,5].
The spatial domain is a message concealment technique that directly deals with the original pixel or data in a medium [6].On the other hand, the frequency domain is a message concealment technique that transformed the original pixel or data in a medium becomes the frequency [7].According to [8], the frequency domain is a better concealment technique than spatial domain because it spreads the pixel area to conceal the message.Discrete Wavelet Transform (DWT) is the algorithm that mostly used to implement the frequency domain because it has the advantage which is closed to the Human Visual System (HVS) [9,10].
According to [11,12], there are several aspects that should be concerned to achieve a good steganography result, such as robustness, capacity, and imperceptibility.Imperceptibility is very important because the steganography quality level will be tested by using PSNR [13].A good imperceptibility should achieve more than 40 dB [14].However, DWT for steganography has a weakness which is has a lower capacity to conceal a bigger message [15].The weakness can affect the imperceptibility level will be lower when the message size that will be concealed is bigger, so needs a method that can minimize the DWT weakness.
According to [16], image compression is a technique that can be utilized to decrease the image size.There are several algorithms that can be implemented, including Run-Length Encoding (RLE), Lempel-Ziv (LZ), Discrete Cosine Transform (DCT), and Huffman Coding.According to [17], Huffman Coding is a lossless image compression (do not remove or change the original information) and easy to implement.In the implementation of steganography, the message integrity should be considered [18], so that Huffman Coding can be a suited ISSN: 1693-6930 ◼ An improved security and message capacity using AES... (Christy Atika Sari) 2401 algorithm for compressing the message because of its advantage.Utilizing an image compression, hopefully, can minimize the DWT weakness and increase the capacity.To secure the message authenticity, a cryptography method can be implemented in the message before concealing the message.Many popular algorithms that can be applied in cryptography, such as Data Encryption Standard (DES), 3-DES, Blowfish, Rivest-Shamir-Adleman (RSA), RC4, and Advanced Encryption Standard (AES) [19,20].Comparing to the other algorithms, AES has a good cryptographic algorithm based on its security and time to process [21].In this research, a combination of cryptography and steganography which are using AES and DWT can protect the message.On the other hand, utilizing Huffman Coding in the message before doing steganography, hopefully, can increase the payload by decreasing the message bit.

Research Method 2.1. Basic Theory 2.1.1. Discrete Wavelet Transform (DWT)
In DWT there are several filters that can be implemented to process the signal and Haar is the simplest filter that mostly used.The implementation of DWT in the 2D image is by dividing the image into four subbands, such as LL-LH-HL-HH [10,22], can be seen in Figure 1.where, x = number of row, y = number of column, and p = the image pixel.

Advanced Encryption Standard (AES)
AES is the most popular cryptography algorithm that has a good security level and the fastest encryption [21,24].Generally, AES has four actual steps, such as SubBytes-ShiftRows-MixColumns-AddRoundKey [25,26].Visualization of the encryption and decryption process at AES can be seen in Figure 2 and Figure 3.To understand each process in AES, the explanation are given as below : a. AddRoundKey Implementing the XOR operation between each component of the block message and each component of the block key, as shown in Figure 4.

b. SubBytes & InvSubBytes
In the SubBytes and InvSubBytes process, it can be performed by looking up in the SubBytes Box (S-Box) as shown in Figure 5 for the SubBytes Process and Figure 6 for InvSubBytes.In this process, it is used to shift or move each message component as shown in Figure 7 for the shifting process and Figure 8

for inverse d. MixColumns & InvMixColumns
Apply the XOR operation between the message block and the MixColumns box for the MixColumns process shown in Figure 9 and InvMixColumns Box for the InvMixColumns process that can be displayed in Figure 10.

Huffman Coding
Huffman Coding has several advantages, such as lossless image compression and easy to implement [27].In the implementation, Huffman Coding used the occurrence of each data, then it will be sorted by ascending.Huffman Coding produced Huffman Tree that should be used to restore the data becomes the original data after being compressed.

Data Resource
Six images were downloaded from the sipi.usc.edusite used in this experiment, the image is shown in Figure 11.

Proposed Method
A combination of AES, Huffman Coding, and Haar DWT which aims to reduce the total of message's bit in steganography.There are two main processes, which are: embedding the message process and extracting the message process.The scheme can in Figure 12 for embedding and Figure 13 for extracting.

Embedding The Message Process
In the embedding process, there are several steps that should be done as follow : − Firstly, a 128x128 pixel message image will be processed by using AES with a key and turns into an encrypted message image.− Implementing Huffman Coding in an encrypted message image and producing two different results which are a compressed encrypted message image and Huffman tree file.− Next step is decomposing a 512x512 pixel cover image by using DWT to get four subbands which are LL, LH, HL, and HH.− From a compressed encrypted message image that already got, embed into the chosen subbands (LH, HL, and HH) and produce an embedding subbands of the cover image.− The final step is composing embedding subbands of the cover image by using Inverse DWT and producing a stego image.

Extracting The Message Process
For the extracting process to gain a message, several steps should be followed : − A stego image will be processed by using DWT to produce four subbands of stego image.− Extract a message from the chosen subbands (LH, HL, and HH) and produce a compressed encrypted message image.− Next step is by using the Huffman tree file and implementing Huffman Coding, decompress a compressed encrypted message image and producing an encrypted message image.− Finally, decrypting an encrypted message image by using AES with a key and producing a message image.

Results and Analysis 3.1. Method Testing
In this research, to test and to measure the quality of stego image will be done the calculation using MSE and PSNR between an original cover image and a stego image.The details as follow : (5) From ( 5), according to [28], achieved the smaller value indicated that a stego image is more closely to be the same as an original cover image.

Peak Signal to Noise Ratio (PSNR)
According to [14], the higher the PSNR result and achieved more than 40 dB indicated that a stego image has a good imperceptibility.

Experiment
In this experiment, used all ten images and divided into two different sections, one image will be a cover image, and the rest which is nine images will be a message image.Here is the result of several experiments that have been done as shown in Figure 14.
After implementing Huffman Coding in each message, based on Figure 14, the total of bits are reducing and achieved the average of the total of bit reached up to 29,255 bits from 131,072 bits or it is about 22.319%.After doing several experiments achieved the average of MSE result is 1.5711 and the average of PSNR result is 46.1788.As shown in Table 1, the PSNR value means that image quality is in an excellent category.Based on Table 2, can be concluded that a few pixel difference that has been achieved between an original cover image and a stego image.The stego image with Huffman Coding also gave the effect in decreasing the pixel difference than the stego image without Huffman Coding, so that in a human visualization, a stego image still looks like an original cover image.This proposed method that concealed a 128x128 pixel message image into a 512x512 pixel of the cover image is produced a good quality of stego image.

◼Figure 14 .
Figure 14.Total of bits before-after implementing Huffman Coding

Table 1 .
MSE and PSNR results of implementing the proposed method