Communication has to be secure in order to be kept private. The latest developments in the field of digital communication have made secret communication possible. Image hiding is a method in which a secret image is hidden in a cover image thereby forming a hybrid or stego image. In this paper, data hiding is performed by taking difference value of three and two neighbouring pixels by adapting Zig-Zag traversing scheme (ZZTS). This method enhances security and the quality of image in spite of high capacity of concealed information. Error correction mechanism using hamming code is applied to ensure reliable secret communication. The effectiveness of the proposed stego system has been estimated by computing Mean Square Error(MSE),Peak Signal to Noise Ratio (PSNR), Mean Structural SIMilarity index(MSSIM) and Bits per colour Pixel. This paper also illustrates how security has been enhanced using this algorithm
Categories and Subject Descriptors
Security and Protection
LSB steganography, Information hiding, Pixel value Differencing (PVD), Zig-Zag traversing scheme (ZZTS)
Steganography is the science of invisible communication. Information is transmitted by hiding it in innocuous cover objects to maintain security and confidentiality. In image steganography the cover object is the image and information is embedded in to images which may be color, grayscale or binary. A stego image is obtained from the cover image by accommodating the secret message into a digital image using some embedding algorithm that slightly modifies the cover image.
Digital Image Steganographic techniques have grown enormously [1-3] in order to enhance the security in a communication channel. The stego-image is later transmitted via a public channel. The public channel can have many trespassers who will want to disrupt the data flow from the sender to the receiver or might want to extract the data transmitted without the knowledge of the communicating parties. Out of the numerous steganographic methods proposed, Least Significant Bits (LSB) substitution is the most popular and simple method that utilizes the least bits of a pixel in the cover image for embedding.
A comparative analysis of various digital steganographic techniques are discussed in  which are capable of producing a secret-embedded image that is indistinguishable from the original image to the human eye.
A genetic algorithm based optimal LSB substitution is available to get better stego-image quality than the simple LSB method . In addition, Chang et al. proposed  a fast and efficient optimal LSB method based on the dynamic programming strategy that improves the computation time of Wang et al.'s scheme . A novel simple LSB technique based on optimal pixel adjustment is presented in and Lin also presented a simple LSB scheme based on the modulus function for improving the stego-image quality . Wang has proposed two new schemes based on the modulo operator . An effective steganographic scheme has to be implemented that thwarts the attacker from extracting the secret information during transmission and reception .
The LSB-based methods mentioned above, directly embed the secret data into the spatial domain in an unreasonable way without taking into consideration the difference in hiding capacity between edge and smooth areas. In general, the alteration tolerance of an edge area is higher than that of a smooth area. That is to say, an edge area can conceal more secret data than a smooth area. With this concept in mind, Wu and Tsai presented steganographic scheme that offers high imperceptibility to the stego-image by selecting two consecutive pixels as the object of embedding. The payload of Wu and Tsai's scheme is determined by the difference value between the pixels [22, 23]. Various authors have discussed different techniques in steganography (,  and ).
Recently, various kinds of steganalysis detectors have been under steady development. For example, the well-known RS steganalytic algorithm  by Fridrich et al. is able to detect the existence of LSB steganography based on the capacity of the hidden message. Especially the proposed algorithm could detect the existence of the LSB scheme with high precision if the hidden capacity is more than 0.005 bits per pixel. In these schemes, majority of the time, authors have adopted Raster scan [1-18, 20-25] for data embedding and extracting processes it traverse the image pixels from left to right and top to bottom as shown in Fig 1.
Figure 1. Raster scanning in images
However, the stego-image creation uses simple raster scan for embedding and extraction so there is a possibility of vulnerability of secret data threat. but it is obvious that, if random scan is employed instead of raster scan in secret data embedding, the effectiveness can be improved significantly.
Therefore, it has been obvious that an information hiding scheme must consists of the following. Initially, the stego image should be acceptable so that the human eye cannot identify the embedded data from the stego image. Next, the scheme should offer high payload so that more secret information could be embedded with high imperceptibility. In addition, the complexity against an adversary will be increased to many folds by adapting Zig-Zag traversing scheme (ZZTS) based embedding instead of raster scan for embedding. Last but not the least, in random scan applied to any stego system the key length plays a major role. But in the proposed method no key is shared between the parties. So the legitimate user could more correctly extract the embedded data from the stego-image without keys.
This proposed methodology enhances the Chang et al. technique  by increasing the embedding capacity and improves the stego image quality uses Thein et al. algorithm  by adapting Zig-Zag traversing scheme (ZZTS). The observations made with various images using the proposed scheme validate the same. To further extend the overall capacity of the proposed algorithm, a procedure to determine how many bits to be inserted into a target pixel by using largest difference value between the immediate three pixels is adopted in color image. Additionally modular operation and error correction scheme are also implemented to heighten the image quality and for reliable secret data transfer. This method is found to be have more efficient compared to the existing methods and quality of the image is also not degraded. The paper is arranged into the following sections: Section 2: steganographic algorithm for color image. Section 3: experimental results. Section 4: conclusion.
Steganographic algorithm for color image.
2.1 The proposed methodology:
The proposed system uses three pixels adjacent to a target pixel in the embedding process as shown in Fig 2 and 3.
Px, y :pixel value at point(x,y: coordinates)
Figure 2. Schematic of the pixel arrangement in color image RED plane alone.
Figure 3. the proposed Zig-Zag traversing scheme for embedding
The Insertion of secret Information
The present method refers to the three neighboring pixels that have already finished insertion process to embed the secret message into the target pixel (refer to Fig. 1 and Fig. 2). in the cover image: Given target pixel Px, y ,1, with color pixel value in plane 1 with gray value gx,y , let g1, g2, g3 be the gray values of its upper Px-1, y ,1, left Px, y-1 ,1 and upper-left Px-1, y-1 ,1 Â Âpixel values in red plane respectively
2.2.1 The embedding procedure:
Input: Cover Image (C), Secret data(M).
Output: Stego output (S).
Step 1: Read the color cover Image(C) and secret data to be embedded (M).
Step 2: Separate Color image into RGB individual plane.
Step 3: Run the Hamming code module on secret data (M), convert them to binary format (b).
Step 4: Call the Zig-Zag traversing Path for embedding the data, repeat 4.1 to 4.5 till the last secret data obtained from Step 3. is embedded.
Step 4.1: Select the maximum and the minimum gray values(g) among the three pixel values that have already finished the embedding process. Calculate the difference value d between the maximum pixel value and the minimum pixel value using the following among the upper pixel (g1), left pixel (g2) and the upper left pixel (g3) in a given target pixel gx,y by
d= [max (g1, g2, g3) - min (g1, g2, g3)] (1)
Using equation (1), we get an idea as to whether the target pixel is included in an edge area or in smooth area. This is how the number of bit n, inserted into the target pixel is determined by value d.
Step 4.2: Calculation of n: the number of the insertion bits in a target pixel Px,y is calculated, using the following formula:
n = (2)
If the value of d is less or equal to 3, n in P x,y is determined to be 1, otherwise value of n is taken from the result calculated using equation (2). We appropriately adjust n to enhance both the capacity and the imperceptibility within the cover image.
Step 4.3: Calculate a temporary value t x,y using:
t x,y = b - g x,y mod 2n (3)
Where, b is the decimal representation of secret messages for the n bits.
Step 4.4: To make the quality of the image higher, select the nearest value to the target pixel's value of the cover image by optimal pixel adjustment process.
t1 = (4)
Step 4.5: Finally, we can get the new pixel value g *
g* = g + t1; (5)
Step 5: Combine RGB plane to form color stego image (S)
2.2.1 The Extraction procedure:
In the extraction process, given the stego-image S, the embedded messages can be readily extracted without referring to the original cover-image. Using the same sequence as in the embedding process, the set of pixels storing the secret message bits are selected from the stego-image by adapting Zig-Zag traversing scheme.
Input: Stego Image(S)
Output: Secret data (M).
Step 1: Read the stego image(S)
Step 2: Call the Zig-Zag Traversing procedure for extraction of the data, repeat 3 to 5 till the last secret data is extracted.
Step 3: Calculate the difference value d between the upper pixel (g1) left pixel (g2) and the upper left pixel (g3)
d= [max (g1, g2, g3) - min (g1, g2, g3)] (6)
Step 4: Calculate n that is the number of the insertion bits in a target pixel P from d
n = (7)
Step 5: Finally, Calculate the value of b by
b = mod (g *, 2). (8)
The decimal value b is represented into a binary number of n bits.
Step 6: Call the hamming code retrieval module to extract the data without errors
Step 7: Convert them to suitable format and save secret data (M).
2.2.3 Hamming code generation:
Let N be the number of characters and art1 be the corresponding 8 bit representation of the character.
For example if there are 3 characters art1 will be a 3*8 matrix.
Define generator matrix
2. Generate parity check matrix 'h' using gen2par() function available in matlab.
3. Multiply generator and take modulo 2 for the product that is the code to be transmitted. Let it be R.
2.2.4 Hamming code Extraction:
1. Obtain c= h*R'
2. Take modulo2 for c
3. Compare the column of c with column of h and if it is equal error is present then complement the corresponding bit of received codeword R else no error is present.
3. Result and Discussion
For implementing the above discussed process, four standard color cover images shown in Figure 4a, 4b, 4c and 4d of size 256 x 256 pixels namely Lena, Baboon, Airplane and Brihadeeswarar Temple have been selected. The effectiveness of the stego process proposed has been studied through the following three different metrics for all the four digital images in RGB planes. The results obtained have been tabulated separately for the three different planes and also the average of all the planes has been calculated along with the number of bits embedded per pixel.
Figure 4 a. Lena 4.b. Baboon 4.c. Airplane
4.d. Brihadeeswarar Temple
Peak Signal to Noise Ratio (PSNR)
The PSNR is calculated using the equation,
where Imax is the intensity value of each pixel which is equal to 255 for 8 bit gray scale images. Higher the value of PSNR better the image quality
Mean Square Error (MSE)
The MSE is calculated using the equation,
where M and N denote the total number of pixels in the horizontal and the vertical dimensions of the image Xi, j represents the pixels in the original image and Yi, j, represents the pixels of the stego-image.
Mean Structural SIMilarity Index (MSSIM) (Zhou Wang et al 2004)
We use a mean SSIM (MSSIM) index to evaluate the overall image quality using the equation,
SSIM(X,Y) = (11)
where C1= (K1L)Â2 L=255
K1 = .01
C2= (K2L)Â2 L=255
K2 = .03
where Âµx is the estimate of the mean intensity of the cover image for N= 255, which is representing the total number of pixels, Ïƒx is the standard deviation (the square root of variance) as an estimate of the signal contrast.
Geometrically, the correlation coefficient Ïƒx y is computed using Ïƒx and Âµx is given by
Ïƒx y ÂÂÂÂÂ=
The value of MSSIM is in the interval [1, 0]. The value 1 means that the two images are exactly the same and 0 means they are totally unrelated.
All the estimating parameters of the four stego covers have been performed using Intel Core2 Duo CPU processor @ 1.60 GHz, 1GB RAM using indigenous MATLAB 7.1 coding.
The number of pixels embedded in the proposed ZZTS based PVD method, differs from cover to cover as in other methods. This difference is attributed to the contrast of the images used. If there is a cluster of pixels, with similar pixel values would have less information embedded in them when compared to a similar cluster with different values. This is the reason why the images Lena and Airplane would have very less no. of bits per pixel when compared to Baboon.
The Table 1 confirms these points above. Mean Squared Error (MSE) increases with increase in the no. of bits embedded in the image. PSNR is inversely proportional to MSE.
Zig zag method betters the conventional pixel value differencing method in terms of no. of bits embedded per pixel. This is accomplished because of the traversing scheme that is used in the method.
From the results it has been observed that Babboon has the highest embedding capacity of 646713 bits with utmost 10 bpp. Where it supersede the results of the methods proposed in [5, 14, 24]. Lowest among four observed in Lena 345297 bits with 5.31 bpp.
The corresponding stego output for full embedding capacity has been shown in Fig 5.
Fig 5. Stego output for full embedding capacity
4. SECURITY ANALYSIS:
Since hamming code is used it transforms a character of 8bits into 12 bit code word so number of bits increases by a factor of 1.5. So number of combinations may be 2^12
Then number of bits embedded in a pixel depends on a factor n=log2 (d);
d may vary between 0 and 255.
n may vary from 1 to 7So number of bits embedded in a pixel will vary from 1 to 7. n can be anything between 1 to 7. So, there are 7 possibilities
Hence complexity increases by a factor 2^12*7. In addition, if the secret information is encrypted before embedding then the complexity level to extract the secret information will be high.
The proposed methodology is found to be superior to normal LSB substitution and other sequential methods in terms of embedding capacity and imperceptibility. This methodology was also tested for various cover images by vigorously passing through various performance criteria. The greatest asset of pixel value differencing is its discern ability. One disadvantage of pixel value differencing is its predictability of the order of image. The Zig Zag method exploits the ability of the PVD and betters PVD in terms of predictability. Since the scanning process is random, it will not be possible for the would be attackers to even determine the method of scanning, so that their attack, if any, fails.
Table 1: The estimating parameters for Zig-Zag PVD Scheme
Total number of bits embedded
Bits per Pixel (bpp)
The first author wishes to thank Prof. R.Amirtharajan Assistant Professor / ECE School of Electrical & Electronics Engineering, for his valuable guidance, D.ADHARSH and V.VIGNESH former ECE Students / SEEE/ SASTRA University for their technical support.