Steganography scheme based on side match
vector quantization
Lee Shu-Teng Chen Ja-Chen Lin
National Chiao Tung University
Department of Computer Science and Information Engineering
1001 Ta Hsueh Road Hsinchu, 30050 Taiwan E-mail: [email protected]
Abstract. We propose a steganographic method that is based on side
match vector quantization共SMVQ兲. The secret data are encrypted and then embedded in an SMVQ-decompressed image. In the decoding pro-cess, both the hidden secret and the original SMVQ code can be recon-structed without any error. Experimental results demonstrate that the proposed method provides a high hiding capacity and acceptable stego-image quality, to an extent comparable to a well-known SMVQ-based reversible steganographic method. © 2010 Society of Photo-Optical Instrumenta-tion Engineers. 关DOI: 10.1117/1.3366654兴
Subject terms: data hiding; triangular inequality; reversible;-square analysis. Paper 090739R received Sep. 22, 2009; revised manuscript received Jan. 8, 2010; accepted for publication Feb. 3, 2010; published online Mar. 30, 2010.
1 Introduction
The transmission of digital media, including text, image, audio, and video, via computer networks is becoming in-creasingly popular. However, because networks are open environments, transmitted digital signals may be inter-cepted or distributed by illegal users. Secret data can be protected by using steganographic methods1–9to embed the secret data in a cover image, such that attackers cannot identify a hidden secret in the stego-image. Of all stegano-graphic approaches, the simplest is the least significant bit 共LSB兲 substitution scheme, which hides certain bits in the LSBs of the pixels of a cover image. However, the quality of the stego-image becomes worse when the number of used LSBs increases to over three. To mitigate this prob-lem, Wang et al.1 designed a theoretically optimal LSB scheme that was based on a generic algorithm. Wu and Tsai2embedded secret data in the difference value of two consecutive gray values in a cover image. Thien and Lin3 developed an efficient LSB substitution scheme that was based on a modulus function.
Because multimedia files are usually very large, some well-known image-compression techniques, such as vector quantization10共VQ兲 or Joint Photographic Experts Group11 共JPEG兲 have been developed to save storage space. Al-though VQ is not as well known as JPEG, it has a simple structure, especially in the decoding phase. In the encoding phase of VQ, an image is divided into several nonoverlap-ping blocks, each of which is replaced by its nearest code-word that is selected from a main codebook that was cre-ated earlier using an algorithm such as the Linde–Buzo– Gray algorithm.12 In VQ, the squared Euclidean distance 共SED兲 between a codeword M =共m0, m1, . . . , mk−1兲 and a block N =共n0, n1, . . . , nk−1兲 is defined as
SED共M,N兲 = 储M − N储2=
兺
i=0 k−1
共mi− ni兲2, 共1兲
where k is the block size 共e.g., k=16 if each block is 4⫻4 pixels兲. The codeword M with the lowest SED共M ,N兲 value is chosen to represent the block N. The VQ index of the chosen codeword is recorded for each block, and the whole image is represented by the VQ indices. Because each block is coded independently of every other, the arti-fact boundaries between neighboring blocks are clear. Therefore, Kim13 proposed a side match VQ共SMVQ兲 ap-proach to improve simultaneously visual quality and com-pression rate.
Some steganographic schemes that are based VQ or SMVQ have recently been investigated.4–9Hu5adopted VQ to compress secret images. The generated VQ indices and the parameters that are related to the secret images were all
encrypted using the Data Encryption Standard 共DES兲
cryptosystem.14The encrypted data were then embedded in a cover image by the LSB substitution scheme. Shie and Lin6 also employed VQ to compress secret images. The created VQ indices and the parameters that are related to the secret images were embedded in a main codebook using an adaptive LSB substitution scheme. The modified main codebook was further encrypted using the Advanced En-cryption Standard cryptosystem.15 Wang and Tsai7utilized Huffman coding to compress the VQ indices of secret im-ages, and the generated Huffman bit stream was hidden in a cover image. Although these hiding methods5–7could hide several secret images in a cover image or in a main code-book, the extracted secret images were not error free. To the contrary, Chang et al.9modified the codeword selection strategy of SMVQ and embedded secret data in an SMVQ-decompressed cover image. The hidden secret was ex-tracted without any loss, and the SMVQ code of the cover image was also reconstructed.
To improve further both the hiding capacity and stego-image quality in Chang et al.’s method,9this work proposes a high-capacity steganographic method that is based on SMVQ. The rest of the paper is organized as follows.
tion 2 reviews pertinent literature. Section 3 then describes the proposed method. Section 4 summarizes the experimen-tal results and makes comparisons to other methods. Sec-tion 5 draws the conclusions.
2 Related Works
Section 2.1 briefly introduces the SMVQ technique.13 Sec-tion 2.2 briefly reviews the hiding method of Chang et al.9
2.1 SMVQ
In SMVQ, an image is divided into some nonoverlapping blocks of 4⫻4 pixels each. All blocks in the top row and leftmost column of the image are called seed blocks and are encoded using VQ with the main codebook. The remaining blocks are called residual blocks, and each of them is en-coded using SMVQ with a subcodebook that is created with reference to the adjacent coded-decoded blocks, to reduce the effects of the artificial block boundaries. Accord-ing to Fig.1, the neighboring decoded pixels of each re-sidual block R are adopted to evaluate r0
⬘
=共u12+ l3兲/2, r1⬘
= u13, r2⬘
= u14, and r3⬘
= u15; r4⬘
= l7, r8⬘
= l11, and r12⬘
= l15.The obtained values are then employed to compute the side
match distortion 共SMD兲 for each codeword M
=共m0, m1, . . . , m15兲 in the main codebook as
SMD共M兲 =
冑
兺
i=0,1,2,3,4,8,12
共ri
⬘
− mi兲2. 共2兲Now, a subcodebook is generated by choosing from the main codebook 兩C兩 codewords that have the lowest SMD values共where 兩C兩 is the size of the subcodebook兲. The re-sidual block R is then encoded using its nearest codeword in the generated subcodebook. Because the subcodebook is a proper subset of the main codebook, the index length in SMVQ encoding is reduced. Therefore, the compression rate of SMVQ surpasses that of VQ.
2.2 Data Hiding Method of Chang et al.9
First, the secret data are encrypted using available
encryp-tion techniques, such as DES14 or
Rivest–Shamir–Adleman.16Next, a cover image is divided into numerous nonoverlapping blocks of 4⫻4 pixels each.
All seed blocks of the cover image are encoded using VQ, and the obtained VQ indices are immediately decoded without hiding any secret data. These decoded seed blocks then become the corresponding seed blocks in the stego-image. The residual blocks are processed in a raster scan. The upper and left decoded blocks of each residual block R are used to determine its subcodebook based on Eq. 共2兲. Then the generated subcodebook is searched to find the codeword X that is nearest to R using Eq.共1兲. Finally, if the to-be-hidden encrypted bit equals zero, then the codeword
X becomes the content of the corresponding residual block
in the stego-image. Otherwise, another codeword Y that is nearest to X must be found in the subcodebook, and the weighted-mix Z =共2⫻X+Y兲/3 of the codewords X and Y becomes the content of the corresponding residual block in the stego-image. Notably, the hybrid Z is closer to X than to all other codewords in the subcodebook such that, after the secret data have been extracted, Z can be used to distin-guish X from all other codewords in the subcodebook, en-abling the original SMVQ code of the cover image to be reconstructed. This property is the so-called reversibility of the compression code.
3 Proposed Method
Section 3.1 introduces the principal idea. Section 3.2 eluci-dates the embedding process. Section 3.3 presents a de-tailed justification of Sec. 3.2. Section 3.4 describes the extraction of the secret and the reconstruction of the origi-nal SMVQ code.
3.1 Use of Triangular Inequality
In the method of Chang et al.,9 the hybrid Z may be re-garded as a perturbed version of X. In the proposed method, other possible perturbed versions of X are also considered to increase the hiding capacity. Hence, a sphere centered at
X is defined such that all points on or in the sphere are
regarded as candidates for Z. More specifically, let
k =储X−Y储 be the Euclidean distance between X and Y and
define a 16-dimensional sphere S共X,t兲 with center X and radius t, where
t =k/2 − 1 = 储X − Y储/2 − 1. 共3兲
Now, based on Lemma 1, any point Z on or in the sphere
S共X,t兲 is always closer to X than to all other codewords in
the subcodebook. Because X is the unique codeword that is closest to Z, Z can be utilized to trace back X by inspecting all codewords in the subcodebook. Hence, each Z on or in the sphere S共X,t兲 can always be used to find X. The revers-ibility of X is thus ensured.
Lemma 1. For each residual block R of a cover image, assume that the subcodebook of R is searched to find: 共a兲 the codeword X that is closest to R and共b兲 another code-word Y that is closest to X. Let k =储X−Y储 be the Euclidean distance between X and Y, and let the sphere S共X,t兲 be centered at X with the radius t =k/2−1. Then, any point Z on or in the sphere S共X,t兲 will satisfy an inequality that identifies X: 储Z−X储⬍储Z−Q储 holds for every other code-word Q in the subcodebook.
Proof. 储X−Q储艌储X−Y储=k because Y is closest to X in
the subcodebook.储Z−X储艋t⬍k/2 because Z is on or in the Fig. 1 Generation of local subcodebook for residual block R using
sphere S共X,t兲. Applying the triangular inequality to ⌬XQZ
yields 储Z−Q储艌共储X−Q储−储Z−X储兲⬎k−k/2=k/2.
There-fore,储Z−X储⬍k/2⬍储Z−Q储.
3.2 Embedding Process
Assume that secret data are encrypted using the DES ap-proach and a cover image is divided into some nonoverlap-ping blocks of 4⫻4 pixels each. All blocks in the top row and leftmost column of the cover image are encoded by VQ, and the obtained VQ indices are then decoded without hiding the secret. The decoded blocks then become the cor-responding block in the stego-image. The upper and left decoded blocks of each residual block R are used to com-pute the subcodebook of that residual block using Eq.共2兲. Then, the generated subcodebook is searched to find the codeword X that is closest to R. 共Thus far, the process is similar to the encoding process of SMVQ.兲 The subcode-book is searched again to find the codeword Y that is clos-est to X. Now, based on the 16-dimensional codewords X and Y, and based on the discussion given between Eq.共3兲 and Lemma 1, the radius t =储X−Y储/2−1 of a sphere cen-tered at X is determined. Then, according to an analysis to be explained below, Eqs.共4兲–共6兲are employed to determine the hiding capacity of each of the 16 components of X. Finally, the encrypted bits are sequentially grabbed and then embedded in each of the 16 components of X. The data-embedding process is as follows.
Input: 共i兲 The encrypted data to be hidden and 共ii兲 a cover image of several nonoverlapping blocks of 4 ⫻4 pixels each.
Output: The stego-image.
Step 1: Encode all seed blocks共blocks in the top row or leftmost column兲 of the cover image using VQ; the created VQ indices are then decoded without hiding any secret. Let these decoded seed blocks be the corresponding seed blocks in the stego-image.
Step 2: Process the residual blocks共blocks in neither the top row nor the leftmost column兲 of the cover image as follows.
Step 2a: Grab the next not-yet-processed residual block
R of the cover image.
Step 2b: Generate the subcodebook that corresponds to the grabbed residual block R using Eq. 共2兲. Find in the subcodebook the codeword X that is closest to R. Then, find in the subcodebook another codeword Y that is closest to X.
Step 2c: Let k =储X−Y储 be the Euclidean distance
be-tween the 16-dimensional codewords X and Y, and let the sphere S共X,t兲 be centered at X with the radius t=k/2−1. Determine the hiding capacity H共xi兲 of the i’th component xiof X using Eqs.共4兲–共6兲 for each i in 0艋i艋15.
Step 2d: For 0艋i艋15, sequentially grab the next H共xi兲 not-yet-embedded bits from the encrypted data and let the single decimal value di be the decimal equivalent of the just-grabbed binary number with H共xi兲 bits. Then, use Eq.
共8兲 to hide each di in xi and determine the corresponding stego-value zi. Let the generated stego-codeword Z =共z0, z1, . . . , z15兲 be the content of the corresponding re-sidual block in the stego-image.
Step 2e: Repeat steps 2a–2d until all residual blocks have been examined. The whole stego-image is thus gener-ated.
3.3 Explanation of Proposed Design in Steps 2c and 2d in Section 3.2
3.3.1 Determine hiding capacity for each
component of the codeword X
The hiding capacity of each component of the codeword
X is variable because it is determined by two codewords: X =共x0, x1, . . . , x15兲, which is closest to R, and Y
=共y0, y1, . . . , y15兲, which is closest to X. The details are as follows. When secret data are embedded in X, the
code-word X is modified to a stego-codeword Z
=共z0, z1, . . . , z15兲. In the proposed design, Z is a perturbed
version of X, and the chosen Z must stay on or in the sphere
S共X,t兲, according to Lemma 1. Therefore, the zx constraint
兺i=0 15共z
i− xi兲2艋t2=共储X−Y储/2−1兲2 must be satisfied when X is modified to Z to embed the secret.
Following this zx constraint of the stego-codeword Z for the codeword X, the hiding capacity of each component xi of X can be derived. Assume thatv共1艋v艋4兲 bits of secret
data can be embedded when a value xi is modified to a stego-value zi. If thev-bit LSB substitution method is used, then thev secret bits are copied directly to fill the v LSBs
of the stego-value zi, and the leading共8−v兲 bits of ziis set to be identical to the leading 共8−v兲 bits of xi. Later, the decimal value of the hiddenv bits can be extracted easily
and rapidly by using zimod2v. Using thev-bit LSB substi-tution method causes the difference between ziand xito be
at most 2v− 1. Hence, for each i in 0艋i艋15,
共zi− xi兲2艋共2v− 1兲2, implying 兺i=0 15共z
i− xi兲2艋16共2v− 1兲2. To satisfy the zx constraint兺i=015共zi− xi兲2艋t2, a sufficient con-dition is to let v satisfy 16共2v− 1兲2艋t2, or equivalently
2v艋
冑
t2/16+1. Accordingly, v is set tov =log2共
冑
t2/16 + 1兲 = log2共t/4 + 1兲. 共4兲After v is determined using Eq. 共4兲, 16共2v− 1兲2 is very
likely still to be smaller than t2, rather than equal to t2. To
increase the hiding capacity, some of the 16 components of
X can hide one more bit共v+1 bits rather than v bits兲. Let w共⬍16兲 be the number of components that can hide one
more bit. Then, because the difference between xiand ziis at most 2v− 1 共or 2v+1− 1兲 when v bits 共or v+1 bits兲 are hidden in xito yield ziusing the LSB substitution method, the zx constraint 兺i=015共zi− xi兲2艋t2 can still be satisfied if w共2v+1− 1兲2+共16−w兲共2v− 1兲2艋t2. Hence, w关共2v+1− 1兲2
−共2v− 1兲2兴艋t2− 16共2v− 1兲2. Accordingly, the formula for w is
w =
t2− 16共2v− 1兲2
共2v+1− 1兲2−共2v− 1兲2
. 共5兲The w components of X can be arbitrarily assigned among the 16 positions兵0, 1, …, 15其. The simplest assignment is to allow the first w of the 16 components of X to hide one more bit
H共x0兲 = H共x1兲 = ¯ = H共xw−1兲 = v + 1;
H共xw兲 = H共xw+1兲 = ¯ = H共x15兲 = v. 共6兲
To increase security, users can assign the w locations among the 16 positions兵0, 1, 2, …, 15其 at will.
3.3.2 Hide each secret value diin the i’th component
xiof the codeword X and generate the stego-value zi
Probably the simplest means of hiding in the i’th compo-nent xiof the codeword X the secret value di, which is the decimal equivalent of the H共xi兲 grabbed bits, is to replace the final H共xi兲 bits of the value xi by the H共xi兲 bits of the secret value di. This method is called the H共xi兲-bit LSB substitution method. In symbols, the stego-value is zi共LSB兲 = xi−关ximod2H共xi兲兴+di= xi+ ei, where
ei= −共ximod2H共xi兲兲 + di 共7兲
is the shift from xito zi 共LSB兲= x
i+ ei.
To improve further the quality of the stego-image, the distortion between the stego-value zi and the i’th pixel value riof the current residual block R should be reduced further, if possible. The method thus refined is discussed below. Notably, to reduce共zi− ri兲2, two basic requirements must still be satisfied:共R1兲 共zi− xi兲2艋关2H共xi兲− 1兴2 and共R2兲 the secret value dimust be given by di= zimod2H共xi兲, which is also the secret extraction formula that is used in the
H共xi兲-bit LSB substitution method. Requirement 共R1兲 en-sures that the zx constraint 兺i=015共zi− xi兲2艋t2 remains satis-fied. 关Indeed, if 共zi− xi兲2艋关2H共xi兲− 1兴2 for each i in 0艋i 艋15, then 兺i=015共zi− xi兲2艋w共2v+1− 1兲2+共16−w兲共2v− 1兲2艋t2 will be satisfied, as described by the explanation given be-tween Eqs.共4兲and共5兲.兴 Requirement 共R2兲 ensures the fast extraction of the secret data.
Combining these two basic requirements to reduce 共zi− ri兲2changes the hiding of the secret value diin the i’th component xiof the codeword X as
zi
=
冦
xi+ eior xi+ ei− 2H共xi兲共choose the one closer to ri兲 if ei⬎ 0,
xi+ eior xi+ ei+ 2H共xi兲共choose the one closer to ri兲 if ei⬍ 0,
xi+ ei= xi, if ei= 0,
冧
共8兲
where ei= −关ximod2H共xi兲兴+di, as in Eq. 共7兲. Clearly, the stego-value zithat is given by Eq.共8兲has greater potential to reduce 共zi− ri兲2 than does the zi
共LSB兲= x
i+ ei of the H共xi兲-bit LSB substitution method. Additionally, the re-quirement di= zimod2H共xi兲 is satisfied in all three cases of Eq.共8兲 because
xi+ ei= xi−共ximod2H共xi兲兲 + di, 共9兲
yielding 共xi+ ei兲mod2H共xi兲= di. Another requirement 共zi − xi兲2艋关2H共xi兲− 1兴2 is met by Lemma 2.
Notably, in Eq.共8兲, neither underflow 共zi⬍0兲 nor over-flow 共zi⬎255兲 occurs whenever the stego-value zi equals x+ e because z= x+ e= x−关x mod2H共x兲兴+d causes an
overwriting of the final H共xi兲 bits of the 8-bit value xi by the H共xi兲 bits of the secret value di. The resulting ziis still an 8-bit value, and thus, there is no underflow or overflow. From this observation, in Eq. 共8兲, only the candidate
xi+ ei− 2H共xi兲 关or xi+ ei+ 2H共xi兲兴 may suffer from underflow 共or overflow兲. Therefore, when 2H共xi兲is subtracted from共or added to兲 xi+ ei in Eq. 共8兲 to yield one more candidate xi+ ei− 2H共xi兲 关or xi+ ei− 2H共xi兲兴 for the stego-value zi, the candidate xi+ ei− 2H共xi兲 关or xi+ ei+ 2H共xi兲兴 should be checked immediately and dropped if it is negative共or ⬎255兲.
Lemma 2. The inequality共zi− xi兲2艋关2H共xi兲− 1兴2is satis-fied for each zithat is given by Eq.共8兲.
Proof. Equation共9兲indicates that xi+ eiis the overwrit-ing of the final H共xi兲 bits of xiby the H共xi兲 bits of the secret value di. Because xi+ eiand xidiffer in their final H共xi兲 bits, their difference is at most 2H共xi兲− 1. Hence, 1 − 2H共xi兲艋e
i 艋2H共xi兲
− 1. Now, for the case of ei⬎0 共line 1兲 in Eq. 共8兲, two assignments 关zi= xi+ ei and zi= xi+ ei− 2H共xi兲兴 for zi are possible. If the assignment is zi= xi+ ei, then zi− xi= ei, which is shown in the range 1 − 2H共xi兲艋e
i艋2H共xi兲− 1. Ac-cordingly, 共zi− xi兲2艋关2H共xi兲− 1兴2. With respect to the alter-native assignment zi= xi+ ei− 2H共xi兲, because ei⬎0 and ei 艋2H共xi兲
− 1, zi− xi=关xi+ ei− 2H共xi兲兴−xi= ei− 2H共xi兲艌1−2H共xi兲, and zi− xi= ei− 2H共xi兲艋2H共xi兲− ei艋2H共xi兲− 1. Hence, 1 − 2H共xi兲艋z
i− xi艋2H共xi兲− 1 still applies, indicating 共zi− xi兲2 艋共2H共xi兲− 1兲2. This completes the proof in the case of ei⬎0 in Eq.共8兲. The proof for the case of ei⬍0 in Eq.共8兲 is similar and therefore omitted.
3.4 Extraction of Hidden Data and Reconstruction of Original SMVQ Code
When the stego-image is received, the secret data can be extracted, and the original SMVQ code can also be recon-structed. The details follow.
Input: The stego-image.
Output: The secret data and the original SMVQ code. Step 1: Divide the stego-image into non-overlapping blocks of 4⫻4 pixels each. Encode each seed block of the stego-image using VQ. The obtained VQ indices are the SMVQ indices required for these seed blocks.
Step 2: Process all residual blocks of the stego-image as follows.
Step 2a: Grab the next not-yet-processed residual block
Z of the stego-image.
Step 2b: Generate the subcodebook for the grabbed block Z using Eq.共2兲. Search in the generated subcodebook to find the codeword X that is closest to Z. Then, search in the subcodebook to find another codeword Y that is closest to X. Output the SMVQ index of the codeword X. The obtained SMVQ index is the desired SMVQ index for the current residual block.
Step 2c: On the basis of the 16-dimensional codewords
X and Y, calculate the radius t using Eq. 共3兲. For 0艋i
艋15, determine the hiding capacity H共xi兲 using Eqs.
共4兲–共6兲.
Step 2d: For 0艋i艋15, extract the hidden data value
from the i’th component ziof Z using
di= zimod2H共xi兲. 共10兲
Step 2e: Go to step 2a, unless all residual blocks have been examined. In that case, all of the encrypted secret bits have already been extracted, and all of the SMVQ indices have already been outputted.
After all the above steps have been performed, decrypt the extracted encryption bits to obtain the secret data. The indices obtained in steps 1 and 2b are always the same as in the original SMVQ code.
4 Experimental Results and Comparisons
Five 512⫻512 gray-scale images 共Lena, Jet, Boat, Peppers, and Baboon兲 are used in the experiments. The secret data are a randomly generated bit stream. The peak-signal-to-noise ratio共PSNR兲, defined by
PSNR = 10⫻ log10
2552
MSE, 共11兲
is employed to measure the similarity between the original image and its modified image共such as a stego-image or an SMVQ-decompressed image兲 where MSE represents the mean square error between the pixel values of the original image and those of its modified image.
For the 512⫻512 gray-scale image Lena, Table1shows the quality of the SMVQ-decompressed images in which there is no hidden secret. Table2presents the quality of our stego-images and the number of hidden bits共hiding capac-ity兲. The main codebooks of sizes 128, 256, and 512 with the subcodebooks of sizes 16, 32, 64, 128, and 256 are adopted in SMVQ to construct Tables 1 and 2. The pro-posed method can hide a large amount of secret data, while maintaining acceptable quality of the stego-images. Addi-tionally, the quality of our stego-images 共with hidden se-cret兲 is even better in terms of PSNR than that of the SMVQ-decompressed images共without any hidden secret兲. For example, when a main codebook of size 256 is equipped with the subcodebooks of sizes 16, 32, 64, and 128, the PSNRs of our stego-images are 29.20, 31.18, 32.91, and 33.86 dB, respectively, which values are a little better than the 28.32, 30.11, 31.60, and 32.39 dB values of the plain SMVQ-decompressed images. Similar observa-tions were made for other codebook sizes.
Figure 2共a兲 displays the SMVQ-decompressed image
Lena without any hidden secret. Figure 2共b兲 depicts our stego-image Lena after a secret of size 413,667 bits was hidden. A main codebook of size 256 and a subcodebook of size 128 are adopted in SMVQ for Fig. 2. As shown in Figs. 2共c兲 and 2共d兲, the quality of our stego-image Lena slightly exceeds that of the plain SMVQ-decompressed im-age. Table3compares the method of Chang et al.9with the proposed method in terms of hiding capacity and stego-Table 1 PSNRs of SMVQ-decompressed images when test image
is 512⫻512 gray-scale image Lena.
Size of main codebook
128 256 512
Size of
subcodebook Quality of SMVQ-decompressed image共dB兲
16 28.80 28.32 26.78
32 30.20 30.11 29.11
64 31.15 31.60 31.33
128 32.39 32.72
256 33.44
Table 2 Our hiding capacities and PSNRs of stego-images when cover image is 512⫻512 gray-scale image Lena.
Size of subcodebook
Size of main codebook
128 256 512 Hiding capacity 共bits兲 Stego-image quality 共dB兲 Hiding capacity 共bits兲 Stego-image quality 共dB兲 Hiding capacity 共bits兲 Stego-image quality 共dB兲 16 504,608 29.88 416,942 29.20 360,683 27.83 32 504,993 31.52 414,019 31.18 358,901 29.90 64 505,624 32.70 413,786 32.91 360,100 32.40 128 413,667 33.86 360,609 34.04 256 360,360 34.90
image quality. It is observed that the proposed method has a higher hiding capacity and better stego-image quality than those in Chang et al.9
Chi-square analysis is used by attackers to determine whether a stego-image contains secret data. As noted by Chang et al.,9 their method more effectively resists Chi-square attack than does the LSB substitution scheme. To demonstrate that the proposed method can also resist Chi-square attack, Guillermito’s17 Chi-square steganography test program is run to perform the statistical analysis. Fig-ure 3共a兲 presents a 512⫻512 gray-scale image, Baboon, without any hidden secret. Figure3共b兲 displays the stego-image Baboon that is generated by embedding the secret in Fig. 3共a兲 using the LSB substitution scheme. Figure 3共c兲 depicts our stego-image Baboon after a secret of size 675,226 bits was hidden. Figures3共d兲–3共f兲plot the results obtained when the Chi-square analysis tool was used to examine the pixels in Figs. 3共a兲–3共c兲, respectively. The cross curve indicates the probability that the pairs of values
are randomly distributed, and the circular curve represents the average value of all LSBs in one block of pixels. On the basis of the example in Section 3.5 of Guillermito’s work,17 the circular curves in Figs.3共d兲–3共f兲suggest to the attack-ers nothing because these circular curves are all around 共0+1兲/2=0.5. However, the cross curve in Fig. 3共e兲 is close to 1, indicating that some secret data are very prob-ably embedded in Fig.3共b兲. In contrast, the cross curves in Figs.3共d兲and3共f兲are both flat along the zero axis. There-fore, the attackers may ignore the hidden secret in Fig.3共c兲. Figure 4 plots the Chi-square analysis results for the gray-scale image Lena. All the circular curves in Figs. 4共d兲–4共f兲are still around共0+1兲/2=0.5. However, the cross curve in Fig.4共e兲differs from that in Fig.4共d兲, suggesting to the attackers that some secret data are embedded in Fig. 4共b兲. In contrast, the cross curves in Figs.4共d兲and4共f兲are still flat along the zero axis, and thus, the secret in Fig.4共c兲 is hidden more safely than that in Fig.4共b兲.
5 Summary
This work proposes a steganographic method that is based on SMVQ. In decoding, after lossless extraction of the se-cret data, the original SMVQ code can be reconstructed. The reconstructed SMVQ code can then be transmitted eco-nomically and reused many times to hide a new secret. Experimental results show that the proposed method pro-vides a high hiding capacity and acceptable stego-image quality. From Fig.2, the quality of our stego-image is even better than that of the SMVQ-decompressed image without
(a) (b)
(c) (d)
Fig. 2 SMVQ-decompressed image versus proposed stego-image: 共a兲 32.39 dB SMVQ-decompressed image Lena 共no hiding兲, 共b兲 pro-posed 33.86 dB stego-image Lena,共c兲 magnified nose and mouth of 共a兲, and 共d兲 magnified nose and mouth of 共b兲.
Table 3 Comparisons of hiding capacity and stego-image quality between method of Chang et al.9and proposed method.
Cover image
Chang et al.’s method Proposed method
Hiding capacity
共bits兲 Stego-imagequality共dB兲
Hiding capacity
共bits兲 Stego-imagequality共dB兲
Lena 16,129 32.45 413,667 33.86
Jet 16,129 31.09 433,881 32.53
Boat 16,129 29.93 467,367 31.39
Peppers 16,129 29.19 413,322 33.94
Baboon 16,129 23.66 675,226 26.52
Fig. 3 Results of Chi-square analysis:共a兲 gray-scale image Baboon without hidden secret, 共b兲 stego-image Baboon that is generated using LSB substitution scheme,共c兲 proposed stego-image Baboon; 共d–f兲 results of Chi-square analysis for the pixels in 共a兲, 共b兲, and 共c兲, respectively.
any hidden secret. As presented in Table 3, the proposed method outperforms that of Chang et al.9in terms of hiding capacity and stego-image quality. Therefore, as well as re-constructing the original SMVQ code, the proposed method also offers the advantages of high hiding capacity and low image distortion.
Acknowledgments
The work is supported by National Science Council of Re-public of China under Grant No. NSC97-2221-E-009-120-MY3. The authors thank the reviewers for valuable sugges-tions to improve the paper.
References
1. R. Z. Wang, C. F. Lin, and J. C. Lin, “Image hiding by optimum LSB substitution and generic algorithm,”Pattern Recogn.3共3兲, 671–683 共2001兲.
2. D. C. Wu and W. H. Tsai, “A steganographic scheme for images by pixel-value differencing,” Pattern Recogn. Lett. 24共9–10兲, 1613– 1626共2003兲.
3. C. C. Thien and J. C. Lin, “A simple and high-hiding capacity scheme for hiding digit-by-digit data in images based on modulus function,”Pattern Recogn.36共12兲, 2875–2881 共2003兲.
4. K. L. Chung, C. H. Shen, and L. C. Chang, “A novel SVD-and VQ-based image hiding scheme,”Pattern Recogn. Lett.22共9兲, 1051– 1058共2001兲.
5. Y. C. Hu, “Grayscale image hiding scheme based on vector quanti-zation,”IEE Electron. Lett.39共2兲, 202–203 共2003兲.
6. S. C. Shie and S. D. Lin, “Secret image transmission based on VQ and data embedding,” Int. J. Imaging Syst. Technol. 17共1兲, 1–9 共2007兲.
7. R. Z. Wang and Y. D. Tsai, “An image-hiding scheme with high hiding capacity based on best-block matching and k-means cluster-ing,”Pattern Recogn.40共2兲, 398–409 共2007兲.
8. Y. J. Chang, R. Z. Wang, and J. C. Lin, “Hiding images using modi-fied search order coding and modulus function,”Int. J. Pattern Rec-ognit. Artif. Intell.22共6兲, 1215–1240 共2009兲.
9. C. C. Chang, W. L. Tai, and C. C. Lin, “A reversible data hiding scheme based on side match vector quantization,”IEEE Trans. Cir-cuits Syst. Video Technol.16共10兲, 1301–1308 共2006兲.
10. R. M. Gray, “Vector quantization,” IEEE ASSP Mag. 1共2兲, 4–29 共1984兲.
11. W. B. Pennebaker and J. L. Mitchell, JPEG Still Image Data Com-pression Standard, Van Nostrand Reinhold, New York共1993兲. 12. Y. Linde, A. Buzo, and R. M. Gray, “An algorithm for vector
quan-tizer design,”IEEE Trans. Commun.28共1兲, 84–95 共1980兲. 13. T. Kim, “Side match and overlap match vector quantizers for
im-ages,”IEEE Trans. Image Process.1共4兲, 170–185 共1992兲.
14. National Bureau of Standards, “Data Encryption Standard,” Federal Information Processing Standard Publ. No. 46共1977兲.
15. National Bureau of Standards, “Advanced Encryption Standard,” Federal Information Processing Standards Publ. No. 197共2001兲. 16. R. L. Rivest, A. Shamir, and L. Adleman, “A scheme for obtaining
digital signatures and public-key cryptosystems,” Commun. ACM
21共2兲, 120–126 共1978兲.
17. S.Guillermito, “Chi-square steganography test program,” 具http:// www.guillermito2.net/stegano/tools/index.html共2004兲典.
Lee Shu-Teng Chen received his BS in computer and information science from Na-tional Chiao Tung University 共NCTU兲, Tai-wan, in 1999, and MS in computer science and information engineering from National Taiwan University, Taiwan, in 2001. He is a PhD candidate in the Department of Com-puter Science and Information Engineering at NCTU. His current research interests in-clude data hiding and image sharing.
Ja-Chen Lin received his BS and MS from NCTU, Taiwan. In 1988, he received his PhD in mathematics from Purdue Univer-sity, West Lafayette, Indiana. He joined the Department of Computer and Information Science at NCTU, where he became a pro-fessor. His research interests include pat-tern recognition and image processing. Dr. Lin is a member of the Phi-Tau-Phi Scholas-tic Honor Society.
(a) (b) (c)
(d)
(e)
(f)
Fig. 4 Another result of Chi-square analysis. Everything is as in Fig. 3, except image Baboon is replaced by image Lena.