Abstract
Achievement of high-capacity data hiding using a digital media is an important research issue in the field of steganography. In this paper, we have introduced a novel scheme of data hiding directly within the video stream using bit plane slicing through (7, 4) Hamming code with the help of shared secret key. In the proposed scheme, a secret logo image is embedded within the cover video stream for authentication and ownership identification through Hamming code based video steganography. Each frame of secret video has been separated into individual three basic color blocks (R, G and B) and then partitioned into (3 × 3) pixel blocks. After that, each color block is sliced up into 4 bit planes starting from LSB plane. The pixels’ positions of cover images are randomly selected by Pseudorandom Number Generator (PRNG) using a shared secret seed value and data embedding performed using (7, 4) Hamming code. As a result, 36 bits secret data can be embedded within a (3 × 3) pixel block which is almost eight times greater than Ramadhan and Khaled’s scheme (Systems, applications and technology conference (LISAT), 2014 IEEE Long Island, 2014) [1]. Here, we achieve a high payload with good visual quality stego video. Furthermore, the video compression is lossless so the video file size is strictly preserved for post-data embedding.
Access provided by CONRICYT-eBooks. Download conference paper PDF
Similar content being viewed by others
Keywords
1 Introduction
Steganography is the art and science of hidden data communication. Till date, many data hiding schemes [2] are developed but only few of them are considered being more secured and have less distortion. The data hiding schemes are useful in many application areas to solve the problem of ownership identification, copyright protection, authentication, verification, and more. The main aims of data hiding schemes are to ensure extraction of secret data and recovery of original object from stego media. On the other hand, data should stay hidden in stego media even if the eavesdropper tampered the stego or degrading through natural phenomenon like transmission resampling, compression, or filtering, etc. The main drawbacks of data hiding schemes are not to provide a good solution in such cases. The degree of distortion will be high due to increase of data embedding capacity that should be balanced mathematically using spread spectrum. The data embedding in video is considered to be more unsuspicious and secured and less exploration has been done till today in this research area using Hamming code.
2 Related Work
Video hiding inside a video stream using nonuniform rectangular partition is done by Sheng et al. [3]. Then, another video hiding scheme is proposed by Yadav et al. [4] based on LSB technique which replaces the least significant bits of pixels selected to hide the secret information. Video as a collection of numerous frames has greater data hiding capacity as the small color change in the whole video stream is hard to detect in human eyes. Dasgupta et al. [5] proposed hash-based LSB techniques in spatial domain where the bits of the message can be inserted in intensity pixels of the video in LSB positions. Here, we have proposed video steganography using (7, 4) Hamming code for color images. We have divided R, G, B color pixels in bit plane [6] starting from LSB to LSB-3 (up to 4 bit plane) partitioned into (3 × 3) blocks and then apply Hamming code based data hiding scheme. In this scheme, 36 bits of data are embedded within nine pixels which is more higher than other existing LSB technique [1, 4, 5] and most of the LSB techniques are prone to attack [7, 8]. Also, it maintains high visual quality. Additionally to provide more security, the message is encrypted using symmetric key encryption techniques. Thus, we have achieved secure steganographic system for hiding data in video stream using both cryptography and steganography techniques.
3 Proposed Method
A video stream consists of collection of frames and the secret data is embedded in these frames as payload. The cover video is broken down into frames before embedding. Each frame is now considered as a cover image. Now, the proposed technique has been applied to conceal the secret data in the carrier frames.
Suppose, I is considered as the cover frame image of size (M × N), and I’ is the marked image after embedding data D = {d1, …, dX}, where di∈ {0, 1}, 1 ≤ i ≤ X. Here, H is a parity check matrix of the Hamming code. Let H be
\( H = \left| {\begin{array}{*{20}l} 0 \hfill & 0 \hfill & 0 \hfill & 1 \hfill & 1 \hfill & 1 \hfill & 1 \hfill & 0 \hfill & 0 \hfill \\ 0 \hfill & 0 \hfill & 1 \hfill & 0 \hfill & 1 \hfill & 1 \hfill & 0 \hfill & 1 \hfill & 0 \hfill \\ 0 \hfill & 0 \hfill & 1 \hfill & 1 \hfill & 0 \hfill & 1 \hfill & 0 \hfill & 0 \hfill & 1 \hfill \\ \end{array} } \right|, \) Embedding capacity is an important metric for data embedding. It is measured by the number of secret bits that can be embedded into a cover image. The embedding capacity is calculated as [2] \( ER = L/M \times N{\kern 1pt} {\text{bpp}} \) where L is the length of the secret message. Before embedding the secret data, we take 36 bit secret key k1 which is known to both the sender and the receiver, to encrypt the secret data bit using symmetric key encryption. We have taken each pixel block of size (3 × 3) and 4 bit plane of each pixel is used to embed the data, which results in (3 × 3) × 4 = 36 bits of data (D1) in one iteration. As an additional security measure, instead of choosing the cover image pixel block serially, we will use Pseudorandom Number Generator (PRNG) function with a secret predefined seed k2 (which is only known to the sender and the receiver) to determine the next available block for embedding. Since this seed will be known to the sender and receiver only, the generated unique pattern of pixel block selection can be used in embedding and extraction process securely. The data embedding procedure is enlisted in Algorithm 1 and the data extraction procedure is depicted in Algorithm 2 (Fig. 1).
Algorithm 1:
Data embedding process
Input: Cover video, secret data bits D, Hamming matrix H, secret key k1, and seed value k2
Output: A stego video
-
Step 1:
Extract each frame from video stream as a color image I of size (M × N).
-
Step 2:
Collect random sequence of pixel blocks of size (3 × 3) from cover image IM×N using PRNG (k2). Say the pixel blocks are X1, X2, …, XMN.
-
Step 3:
Convert Xi into three separate RGB color blocks XiR, XiG, and XiB.
-
Step 4:
Convert each Xi’s into binary form.
-
Step 5:
Perform bit plane slicing of each Xi ‘s up to 4 bit plane starting from LSB that is XiR(LSB), XiR(LSB−1), XiR(LSB−2), XiR(LSB−3).
-
Step 6:
Take c = XiR(LSB) and calculate the syndrome S1 = (H × (c)T)T.
-
Step 7:
Perform D1’ = (D1 ⊕ k1); k1 = 36 bit length and D1 is also same length.
-
Step 8:
Take 3 bits secret data di = {d1, d2, d3} from D1’ where di ∈ {0, 1}.
-
Step 9:
Calculate S2 = (di ⊕ S1); if S2 = 0, no change, otherwise flip a bit at the positional value of S2 and generate H’.
-
Step 10:
Compute S3 = (H’ ⊕ c) and store the data.
-
Step 11:
Replace the matrix (c) with S3 and update XiR(LSB).
-
Step 12:
Repeat Step 4 to 10 using XiR(LSB−1), XiR(LSB−2) and XiR(LSB−3).
-
Step 13:
Repeat Step 5 to 11 to embed secret data on XiG and XiB color blocks.
-
Step 14:
Repeat Step 2 to 12 to embed secret data on each and every random sequence of (Xi’s) of pixel blocks.
-
Step 15:
Finally, after combining each stego block, we get stego frame (I’) of size (M × N).
-
Step 16:
Generate stego video stream with encoded frames.
-
Step 17:
End.
Algorithm 2:
Data extraction process
Input: Stego video stream, Hamming matrix H, secret key k1, and seed value k2
Output: Original Secret Message D.
-
Step 1:
Convert the video stream into frames. Extract each frame as a color cover image I’ of size (M × N).
-
Step 2:
Use PRNG with predetermined seed k2 to determine the stego pixel of random sequence X’i of size [3 × 3] from stego image I’.
-
Step 3:
Separate RGB components into X’iR, X’iG, X’iB.
-
Step 4:
Convert into binary form of each X’iR, X’iG, and X’iB.
-
Step 5:
Perform 4 bit plane slicing of each X’i‘s starting from LSB that is X’iR(LSB), X’iR(LSB−1), X’iR(LSB−2), X’iR(LSB−3).
-
Step 6:
Take c’ = X’iR(LSB) and calculate the syndrome S’ = (H × (c’)T)T.
-
Step 7:
Concatenate syndrome S’ with data unit of D’ that is D’ = D’ || (S’).
-
Step 8:
Repeat Steps 4 to 6 using X’iG and X’iB.
-
Step 9:
Compute Di = D’ ⊕ k1.
-
Step 10:
Repeat Steps 2 to 8 using next random sequence of Xi block.
-
Step 11:
Concatenate Di’s, we get original secret message D.
-
Step 12:
End.
3.1 Numerical Illustration
Example 1
Data Embedding
-
1.
Let I is a color pixel block with (3 × 3) pixel. D = {d1, d2, …, d36} = {0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0}. k1 = {0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0} and ER = 36/(3 × 3) = 4 bpp and D’ = D ⊕ k1 = {0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}
-
2.
Divided into three RGB pixel blocks shown below.
-
3.
Take red pixel block and transform into binary number matrix.
-
4.
Divide it into 4 bit plane matrices starting from LSB.
-
5.
Read the LSB matrix and form a 1D matrix. c = [1 1 1 1 0 0 0 1 1]
-
6.
Calculate the syndrome
$$ \begin{aligned} S_{1} & = H \times \left( c \right)^{T} = \left| {\begin{array}{*{20}c} 0 & 0 & 0 & 1 & 1 & 1 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 \\ 0 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 1 \\ \end{array} } \right| \\ & \quad \times \left| {\begin{array}{*{20}c} 1 & 1 & 1 & 1 & 0 & 0 & 0 & 1 & 1 \\ \end{array} } \right|^{T} = \left| {\begin{array}{*{20}c} 1 \\ 0 \\ 1 \\ \end{array} } \right| \\ \end{aligned} $$ -
7.
Transpose the syndrome and XOR with the secret data bit, i.e., [1 0 1] ⊕ [0 1 1] = [1 1 0] which matches with the fifth column of Hamming matrix.
-
8.
Generate the code H’ = [0 0 0 0 1 0 0 0 0] and XOR with the original code c.
S3 = [1 1 1 1 0 0 0 1 1] ⊕ [0 0 0 0 1 0 0 0 0] = [1 1 1 1 1 0 0 1 1].
-
9.
Transform into a new LSB matrix.
-
10.
Similarly compute the LSB-1, LSB-2, and LSB-3 matrices as follows:
-
11.
Update all four modified binary matrices to their corresponding position in original RED pixel matrix.
$$ R^{{\prime }}_{3 \times 3} = \left| {\begin{array}{*{20}c} {10001101} & {10001101} & {10001101} \\ {10000101} & {10001111} & {10001100} \\ {10001100} & {10001111} & {10001011} \\ \end{array} } \right| = \left| {\begin{array}{*{20}c} {141} & {141} & {141} \\ {133} & {143} & {140} \\ {140} & {143} & {139} \\ \end{array} } \right| $$ -
12.
Similarly get updated green and blue pixel matrices.
Example 2: Data Extraction
-
1.
The marked frame pixel block is divided into three RGB color pixel blocks.
-
2.
Take red image pixel block and transform into binary numbers.
-
3.
Divide it into 4 bit plane matrices starting from LSB.
-
4.
Read LSB matrix and form a 1D matrix. c = [1 1 1 1 1 0 0 1 1]
-
5.
Calculate the syndrome S1 = H × (c)T =
-
6.
Transpose the syndrome to get secret data bits d = [0 1 1]
-
7.
Repeat the above steps until we do not get the secret data bits. Concatenate all the data bits to get the data, that is, D’ = {0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0}.
-
8.
XOR the modified secret data with secret key k1 to get the original secret data bits that is D = {0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0}.
4 Experimental Result and Comparison
The scheme is implemented using NetBeans IDE 8.0 on standard color images to measure the performance. The standard cover video sequences are Audio Video Interleave (AVI) format with the size of (192 × 352). These are collected from the video database of department of computer science at University of Mannheim [9]. The secret message is a binary image logo. Upon extraction, the secret data is retrieved without any loss or noise. The qualities of the stego frame images are measured using Mean Square Error (MSE) and Peak Signal-to-Noise Ratio (PSNR).
Following tables are representing the PSNR values of stego videos generated by our algorithm with varying payload. The average capacity of data embedding per frame is 16.5 KB (when ER = 2 bpp), 24.68 KB (when ER = 3 bpp), 32.9 KB (when ER = 4 bpp) which is almost eight times that of other existing algorithms [1]. The standard video sequences are 25 fps. So, we can embed maximum 823 KB data per second which is a high payload compare to any other algorithm [5] (Tables 1, 2, 3 and 4).
5 Security Analysis
Security analysis is an important key factor of data hiding process. In this paper, we have used two levels of security to enhance our proposed scheme from security perspective. First, we take a 36 bits secret key and encrypt the secret data bits using symmetric key encryption. As it is only known to the sender and receiver, the third party will not be able to decrypt it without knowing the secret key. In the second level, we have taken a secret seed which is also known to the receiver and sender only. Using this seed, we generate a sequence of unique numbers with the help of PRNG function. We have taken the cover image pixel blocks according to the generated numbers. So without knowing this seed, no one will be able to predict the number sequence.
We also verified our algorithm against standard measurement like SSIM. The Structural Similarity (SSIM) index is a method for measuring the similarity between two images. The SSIM index can be viewed as a quality measure of one of the images being compared provided the other image is regarded as of perfect quality. From the tables, it is observed that the SSIM values of all test images are nearer to 1.
6 Conclusion
In this paper, we introduced a novel secure data hiding scheme using Hamming Code for video steganography. Bit plane slicing of the each RGB color cover frame pixel block is also introduced to increase data hiding capacity. So the data embedding rate is raised up to 4 bpp which is greater than other existing schemes [1, 4, 5]. In our algorithm, PSNR is also high compared to existing schemes [4, 5] which means that we generate better visual quality stego videos. From security perspective, we introduced a shared secret key to find suitable bit pattern through XOR operation during data embedding as well as data extraction. The cover video frame block has been chosen in random location through PRNG which enhances security. We have tested our stego image with SSIM and observed that the proposed scheme is preferable for data embedding where visual quality and security constraint needs to be maintained for high payload. In future, the scheme has been extended to enhance security, capacity, and quality in different domains for video-based steganography.
References
Mstafa, R.J., Elleithy, K.M.: A highly secure video steganography using Hamming code (7, 4). In: Systems, Applications and Technology Conference (LISAT), 2014 IEEE Long Island. IEEE (2014)
Cao, Z., Yin, Z., Hu, H., Gao, X., Wang, L.: High capacity data hiding scheme based on (7, 4) Hamming code. SpringerPlus 5(1), 175 (2016)
Hu, S.D.: A novel video steganography based on non-uniform rectangular partition. In: 2011 IEEE 14th International Conference on Computational Science and Engineering (CSE). IEEE (2011)
Yadav, P., Mishra, N., Sharma, S.: A secure video steganography with encryption based on LSB technique. In: 2013 IEEE International Conference on Computational Intelligence and Computing Research (ICCIC). IEEE (2013)
Dasgupta, K., Mandal, J.K., Dutta, P.: Hash based least significant bit technique for video steganography (HLSB). Int. J. Secur. Priv. Trust Manage. (IJSPTM) 1(2), 1–11 (2012)
Banik, B.G., Bandyopadhyay, S.K.: Image Steganography using BitPlane complexity segmentation and hessenberg QR method. In: Proceedings of the First International Conference on Intelligent Computing and Communication (pp. 623–633). Springer Singapore
Fridrich, J., Du, R., Meng, L. Steganalysis of LSB encoding in color images. In: Proceedings of ICME 2000, Jul.–Aug. 2000, N.Y., USA
Westfield, A., Pfitzmann, A.: Attacks on steganographic systems. In: Proceedings of 3rd Info. Hiding Workshop, Dresden, Germany, Sept. 28–Oct. 1, pp. 61–75 (1999)
University of Mannheim, Department of Computer science. http://ls.wim.uni-mannheim.de/de/pi4/research/projects/retargeting/test-sequences/
Xu, W., Wang, R.D., Shi, Y.Q.: Data hiding in encrypted H.264/AVC video streams by codeword substitution. IEEE Trans. Inform. Forens. Secur. 9(4), 596–606 (2014)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Singapore Pte Ltd.
About this paper
Cite this paper
Banerjee, A., Jana, B. (2018). A Secure High-Capacity Video Steganography Using Bit Plane Slicing Through (7, 4) Hamming Code. In: Bhattacharyya, S., Chaki, N., Konar, D., Chakraborty, U., Singh, C. (eds) Advanced Computational and Communication Paradigms. Advances in Intelligent Systems and Computing, vol 706. Springer, Singapore. https://doi.org/10.1007/978-981-10-8237-5_9
Download citation
DOI: https://doi.org/10.1007/978-981-10-8237-5_9
Published:
Publisher Name: Springer, Singapore
Print ISBN: 978-981-10-8236-8
Online ISBN: 978-981-10-8237-5
eBook Packages: EngineeringEngineering (R0)