JPEG stands for The Joint Photographic Experts Group algorithm that contains two compression techniques; lossy and lossless. This is the most ubiquitous picture file format since it is the most common in the world today. The overview of the JPEG algorithm is as follows: First there is the color plane conversion which involves converting RGB (Red, Green and Blue) values into the YCrCb values where Y is the luminance component, Cr the red difference and Cb the blue difference. What follows next is the working out of the Discrete Cosine Transform (DCT) coefficients, which is then followed by a quantization and entropy coding process using a combination of the Huffman Encoding and the Run-Length Encoding (RLE). Now we will delve deeper into the JPEG steganography and detection techniques.
There are several ways in which we can hide additional data into a JPEG file. One of the ways involves swapping of two DCT coefficients with the same values in the quantization tables. The coefficients are swapped before quantization. There are several limitations with this process and they are that a certain block chosen might be very poor in data hiding and also it has a low capacity which is only 1 bit per 8×8 block. There is another technique which involves swapping of the DCT coefficients but this is done after quantization has been done and it uses 3 coefficients to store the message. It is an improved version of the previous technique. Thirdly there is the High Capacity Swap DCT technique which involves using multiple pairs as opposed to using a small number of the matching pairs of coefficients. The fourth technique is where we use the third technique but now we add cryptography in it.
This involves changing the JPEG file to an undecipherable format after doing the high capacity swap unless one has the decryption key to decode the data. The fifth and last technique is the DCT Least Significant Bit (LSB). This technique works with coefficient values which are not 0 or 1. This is because if used they would greatly increase distortion, image size and capacity in the file formats and our main aim of hiding this data is so as to go undetected.
There are also other methods which can be used in detecting the hidden data in JPEG files. Steganography is very useful in our world today and it means concealing or hiding information. Steganography is greatly used in cryptography since there are many cryptography techniques which involve making information into an undecipherable format so as to hide information from an intruder who might want to access the information. Even if the intruder were to gain access to the file he won’t be able to understand it since it is in an encrypted format unless he also gains access to decryption key which most of the time he or she won’t gain access to.
Steganography can be used in many applications in our world today. The first is having to transmit confidential information over the internet. The data has to be encrypted first before it is sent and be decrypted at the receivers end so as to maintain the integrity of the data. Steganography can also be used in saving of password files. This might be very useful when for example a hacker gains account details to a certain site but he or she won’t be able to do anything with the data since it is already encrypted.
Detection is useful when we suspect that a certain file might be corrupted and we therefore use detection so as to also maintain the integrity of the data.