Title:
A Highly Secure Video Steganography using Hamming Code (7, 4)
Members:
Dibyadarshan Hota (16C0154) - dibyadarshan.hota@gmail.com
Omkar Prabhu (16C0233) - omkarp.nitk@gmail.com
Abstract:
Preventing unauthorized access, use, disclosure or destruction of data is gaining importance in the Digital world. Steganography and data hiding have become necessary for information security. Steganography is the practice of concealing a file, message, image, or video within another file, message, image, or video.
The paper referenced has proposed a secure video steganography algorithm using linear block code. The algorithm requires a video to be converted into frames and changing the pixel positions. The message which is to be transmitted must be converted into one-dimension, XOR and Hamming code are applied to this message. Then this encoded message is embedded in the scrambled video frames. These frames are reconstructed and sent to the receiver. The receiver can extract information using the same key as the sender side. The receiver has to disassemble the video, use XOR and hamming code to reconstruct the correct intended message.
Objectives:
-
Implement the following in MATLAB:
At sender's side:
-
Conversion of video frames into a YUV format.
-
Applying (7, 4) Hamming code to 1D structure of message which is a image to obtain the codeword.
-
Embedding the message codeword into the video frames.
-
Recontruct the video from the frames.
At receiver's side:
-
Split the received video into frames and convert them to YUV format.
-
Retrieve back the message codeword from the frames.
-
Retrieve back original message from the message codeword by using decoding for hamming code.
-
References:
Ramadhan J. Mstafa, Khaled M. Elleithy, "A highly secure video steganography using Hamming code (7, 4)," presented at Systems, Applications and Technology Conference (LISAT), 2014 IEEE Long Island, Farmingdale, NY, USA, May 2-2, 2014.
-
Specify the video to be used in the files:
main.m
,frames_to_video.m
andreceiver_retrieve.m
-
Specify the key to be used in the file
main.m
-
Run the following files in order
-
main.m
: In theframes
directory the following would be presentframesRGB
: RGB frames of the videosmall.mp4
orlarge.mp4
framesY
: srambled Y components for RGB framesframesU
: srambled U components for RGB framesframesV
: srambled V components for RGB frames
-
embed_message.m
: The binary imagemessage.png
will be embedded into the scrambled Y, U, V components. -
combine_frames.m
: In the directoryframes\embeddedFramesRGB
, the embedded RGB frames will be created. -
frames_to_video.m
: Video namedem_small.avi
will be created from the embedded RGB frames. -
receiver_retrieve.m
: From the videoem_small.avi
the message will be constructed back and displayed. -
psnr.m
: Displays the PSNR value comparing the original and retrieved image message.
-
Original message:
- Using
large.mp4
the retrieved message and PSNR is: infintiy
- Using
small.mp4
the retrieved message and PSNR is: 13.9140
-
Introduction.md
- Explains theoretical aspects of the mini project. -
Design.md
- Explains design aspects of the mini project. -
main.m
- Main module of the implementation. -
construct_frames.m
- Construct RGB frames from the video and get their Y, U, V components. Save them in the mentioned location. -
embed_message.m
- Applying (7, 4) Hamming Code to the message and embed the same into the scrambled Y, U, V frames. -
combine_frames.m
- Combine the embedded Y, U, V frames into their embedded RGB frame. -
frames_to_video.m
- Construct the video from the embedded RGB frames. -
receiver_retrieve.m
- From the constructed video after embedding, it will retrieve the message back after applying Hamming correction. -
psnr.m
- Calculate Peak signal-to-noise ratio. -
scramble.m
- Scrambles all the Y, U, V frames given their directory based on a key. -
unscramble.m
- Unscrambles all the Y, U, V frames given their directory based on a key. -
yuv2rgb.m
- Converts Y, U, V components into a single RGB frame. -
rgb2yuv.m
- Converts a RGB frame to its Y, U, V components. -
small.mp4
- Video used to embed message into. -
large.mp4
- Video used to embed message into. -
message.png
- Binary image to be sent after embedding it into small.mp4 video and retreived at the other end.