Wednesday, 29 July 2020

MATLAB code of Image steganography based on pixel value difference and random pixel positioning

Hello, friends today I would like to post one project in the field of information security. This code is about MATLAB implementation of Image steganography based on pixel value difference and random pixel positioning. Text, image, audio, and video can be represented as digital data. The explosion of Internet applications leads people into the digital world, and communication via digital data becomes frequent. However, new issues also arose, such as data security in digital communications, copyright protection of digitized properties, invisible communication via digital media, etc. So to overcome the above issues the different steganography methods are evolved. The YouTube video of this project is shown below. just have a look.

Pixel value differencing:
In the embedding method, we simply divide the cover image into a number of non-overlapping two-pixel blocks. Each block is categorized according to the difference of the gray values of the two pixels in the block. A small difference value indicates that the block is in a smooth area and a large one indicates that it is in an edged area. The pixels in edged areas may, as mentioned previously, tolerate larger changes of pixel values than those in the smooth areas. So, in this method we embed more data in edged areas than in the smooth areas. And it is in this way that we keep the changes in the resulting stego-image unnoticeable.

Fig: Illustration of Embedding Process

An illustration of the data embedding process is shown in the above figure. In the figure, the gray values of a sample two-pixel block are assumed to be (50,65). The difference value is 15, which is in the range of 8 through 23. The width of the range is 16 = 2^4, which means that a difference value in the range can be used to embed four bits of secret data. Assume that the four leading bits of the secret data are 1010. The value of this bitstream is 10. It is added to the lower bound value 8 of the range to yield the new difference value 18. Finally, the values (48,66) are computed for use as the gray values in the stego-image. Note that 66 - 48 = 18.

Random Pixel Positioning:
In the embedding process the pixels of the cover-image are selected randomly and their red plane‟s LSB is replaced with the bits of the secret message. As image comprises of pixel contribution from color components and changing the LSBs does not affect the perception of the resulting image. For 24-bit bitmap image if a pixel‟s red plane value is 10111011and changing the LSB with the secret bit, then at the worst case the pixel value changes to 10111010, which does not affect the statistics of the image. Changing the least bit in a byte of an image, either increment or decrement value from the pixel it represents. So, the secret messages are stored into LSBs of red plane of the cover-image‟s pixels.

MATLAB Implementation of the project:

Fig: Steganography Embedding MATLAB GUI

Fig: Steganography Extraction MATLAB GUI