Grin logo
de en es fr
Shop
GRIN Website
Publicación mundial de textos académicos
Go to shop › Ciencias de la computación - Programación

MATLAB Implementation of the Steganographic Algorithm F5

Matlab Codes for F5 Algorithm

Título: MATLAB Implementation of the Steganographic Algorithm F5

Proyecto de Trabajo , 2018 , 20 Páginas

Autor:in: Wassim Al Chamaa (Autor)

Ciencias de la computación - Programación
Extracto de texto & Detalles   Leer eBook
Resumen Extracto de texto Detalles

The F5 algorithm proposed by Westfeld is still one of the most known algorithms in the field of DCT-based steganography. It can make a JPEG image a container of a secret message, where no one knows the presence of the message except the sender and the intended receiver. In this programming work, we show how to realize the F5 algorithm via Matlab. We present the block diagrams of embedding and extracting processes and the entire Matlab code of the F5 algorithm.

Some Notes about the F5 Matlab code:

1- The implementation code works according to the method proposed by Andreas Westfield in his paper:
" F5—A Steganographic Algorithm : High Capacity Despite Better Steganalysis ".
Huffman coding and decoding are implemented using the Matlab JPEG Toolbox developed by Phil Sallee.

2- The two-part Matlab code included in the report, embedding and extracting parts, can be executed in Matlab IDE. The embedding part reads the cover JPEG file and the message file we want to hide, then it creates a Stego JPEG file according to the F5 algorithm. On the other side, The extracting part reads the Stego JPEG file, and then it extracts the hidden message file.

3- The F5 code calls the main two functions of Phil Sallee's Matlab Toolbox; JPEG reading and writing. These functions make it easier to access and manipulate the quantized DCT coefficients of a given JPEG file. Using Sallee's Toolbox should accord with the used operating system, whether it is 32 or 64 bits.

4- The F5 code contains the function to form the image matrix to show the input and output images. Running this function requires ALL the Sallee's Toolbox to be installed. Otherwise, the user can REMOVE this function from the code since it doesn't affect the main F5 process and thus keep ONLY using the main two function of the Sallee's Toolbox.

5- The message file we want to hide can be any file of any kind and whatever its extension. The size of the message file should be appropriate for the size of the used cover JPEG image, so no errors will occur when executed.

Extracto


Table of Contents

1. Introduction to JPEG-based Steganography

2. F5 Steganographic Method

3. Matlab Implementation of F5 Algorithm

3.1 Huffman Coding and Decoding

3.2 Implementation of F5 Embedding Process

3.2.1 Steps of F5 Embedding Process

3.2.2 Main Script and Called Functions

3.2.3 Matlab Codes of F5 Embedding Process

3.2.3.1 F5Embed Matlab Main Script

3.2.3.2 Msgsize Matlab Function

3.2.3.3 Qdct2Img Matlab Function

3.2.3.4 MediCap Matlab Function

3.2.3.5 MatEncod Matlab Function

3.2.3.6 GetkBits Matlab Function

3.2.3.7 DoEmbed Matlab Function

3.2.3.8 DoStego Matlab Function

3.2.3.9 F5Hash Matlab Function

3.2.3.10 DoChange Matlab Function

3.2.3.11 HistPlot Matlab Function

3.3 Implementation of F5 Extracting Process

3.3.1 Steps of F5 Extracting Process

3.3.2 Main Script and Called Functions

3.3.3 Matlab Codes of F5 Extracting Process

3.3.3.1 F5Extract Matlab Main Script

3.3.3.2 MediCap Matlab Function

3.3.3.3 DoExtract Matlab Function

3.3.3.4 F5Hash Matlab Function

4. Programming Notes

Objective & Topics

The primary objective of this work is to provide a practical, technical implementation of the F5 steganographic algorithm using the MATLAB environment. It aims to demonstrate how to hide secret messages within JPEG image files while maintaining invisibility, leveraging direct access to quantized DCT coefficients via the Sallee JPEG Toolbox to perform embedding and extraction operations.

  • Fundamentals of DCT-based steganography and JPEG image structure.
  • Matrix encoding techniques for minimizing modifications to DCT coefficients.
  • Detailed MATLAB implementation of embedding and extraction workflows.
  • Analysis of shrinkage effects on steganographic capacity.
  • Programming considerations for secure communication channels.

Excerpt from the Book

3.2.1 Steps of F5 Embedding Process

In this section, we present a block diagram showing the implementation steps of the F5 algorithm on the sender side of the connection, where we hide the message file into a given JPEG image.

At first, the “jpeg_read” function reads the given JPEG file and performs the entropy decoding. The “jpeg_read” function gives a Matlab structure containing the qDCT coefficients matrices, quantization tables, and other information. Only the qDCT coefficients matrix of Y component is used to embed the secret message because of its large size compared to those of the other two components.

Before running the F5 embedding process, we should have two tasks completed: 1- We define the matrix encoding ME by calculating the size of the message file and the number of Non-zero coefficients in the resulting Y matrix. The ME calculator gives the initial value of the matrix encoding that we should use in the embedding process. 2- Typically, the embedding process should be protected and connected with a secret key. Thus, we should use a key-based permutation generator. The generated permutation is applied to the qDCT coefficients matrix of Y component before running the F5_ME embedding process.

During the running of the F5 embedding process, we take into consideration the shrinkage of Non-zero qDCT coefficients, thus a shrinkage tester is always running. The tester aims to detect the occurrence of the shrinkage during the process, so the shrinking coefficient will be replaced by another one. In addition, the tester aims to ensure that the message file was embedded entirely according to the used ME, otherwise, the ME will be recalculated and the embedding process will be repeated according to the new ME.

Summary of Chapters

1. Introduction to JPEG-based Steganography: Discusses the fundamental differences between steganography and cryptography and introduces the F5 algorithm as a well-known method in DCT-based image hiding.

2. F5 Steganographic Method: Explains the mathematical foundation of F5, focusing on matrix encoding and XOR-based hash functions to minimize changes in DCT coefficients.

3. Matlab Implementation of F5 Algorithm: Provides the comprehensive source code and methodology to implement the embedding and extraction phases of the F5 algorithm within the MATLAB environment using external toolboxes.

4. Programming Notes: Outlines technical requirements for image manipulation and provides practical advice for improving security, handling message extensions, and managing coefficient shrinkage.

Keywords

Steganography, F5 Algorithm, DCT-based, JPEG, MATLAB, Matrix Encoding, Quantized DCT Coefficients, Information Hiding, Embedding, Extraction, Data Security, Image Processing, Hash Function, Permutation, Shrinkage

Frequently Asked Questions

What is the core focus of this publication?

This work focuses on the technical realization of the F5 steganographic algorithm, specifically providing a hands-on implementation guide and source code for MATLAB users.

Which specific cryptographic or steganographic method is explained?

The work explains the F5 steganographic algorithm, which uses matrix encoding to embed data in the quantized DCT coefficients of JPEG images.

What is the primary objective of this implementation?

The objective is to enable the secure, invisible embedding of arbitrary files into JPEG images as a hidden communication channel.

What scientific methods are utilized for this process?

The implementation uses matrix encoding, DCT coefficient manipulation, and XOR-based hash functions to ensure minimal impact on the cover object while hiding information.

What is covered in the main part of the document?

The main part contains a detailed breakdown of the F5 algorithm's embedding and extraction processes, including comprehensive MATLAB scripts and individual functional descriptions.

Which keywords characterize this work?

Key terms include Steganography, F5 Algorithm, DCT-based, MATLAB, Matrix Encoding, and Information Hiding.

How does the implementation handle image access in MATLAB?

The implementation utilizes the dedicated Matlab JPEG Toolbox developed by Phil Sallee to gain direct access to the structural elements and quantized DCT coefficients of JPEG files.

What role does the "shrinkage tester" play in the embedding process?

The shrinkage tester monitors the occurrence of shrinkage in non-zero DCT coefficients and triggers a recalculation of the matrix encoding if the message cannot be embedded effectively.

Why is the Y-component of the JPEG image preferred?

The Y-component matrix is prioritized for embedding because of its larger size compared to the other color components, allowing for higher data capacity.

Final del extracto de 20 páginas  - subir

Detalles

Título
MATLAB Implementation of the Steganographic Algorithm F5
Subtítulo
Matlab Codes for F5 Algorithm
Autor
Wassim Al Chamaa (Autor)
Año de publicación
2018
Páginas
20
No. de catálogo
V464340
ISBN (Ebook)
9783668933439
ISBN (Libro)
9783668933446
Idioma
Inglés
Etiqueta
JPEG Image Information Hiding Steganography F5 Algorithm F5 Method Matlab Codes DCT-Based Steganography JPEG-Based Steganography F5 Steganography Matlab code F5 Steganography Source code
Seguridad del producto
GRIN Publishing Ltd.
Citar trabajo
Wassim Al Chamaa (Autor), 2018, MATLAB Implementation of the Steganographic Algorithm F5, Múnich, GRIN Verlag, https://www.grin.com/document/464340
Leer eBook
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
Extracto de  20  Páginas
Grin logo
  • Grin.com
  • Envío
  • Contacto
  • Privacidad
  • Aviso legal
  • Imprint