Image Steganography using Machine Learning

A machine learning model with deep neural network and auto-encoder technique.

  • Rating:
  • Project Nature: Major
  • Partner : Syed Sana Alizeh Fatima
  • Technology: Python,PyTorch,CUDA,U-architecture
  • Completed: 30 May 2019

Attending the cryptology and data secuirty class in final year I was still wondering about the project that I should undertake and our professor was teaching steganography. I thought why don't we revolutionize the steganography using machine learning.

The most important part of the project was to come up with the architecure that would suffice such technique. We both worked extensive on it and find out that we need a deep neural network to extract the features of the image and also an auto-encoder so as to learn when hidden image is covered their is an exact reversible proecess on the reciever side to extract the hidden image. We used the U architecture for the same. The machine learning library we came up with for this project was PyTorch. PyTorch has a great algorithm for distribution of work among the CPU and GPU cores.This would ease the workload on not so sophisticated computational devices.Also the paradigm was changed from the lossless compression to lossy compression. We were not intelligently looking for the pixel in which the data is to be stored but we trained the model to understand the different layers of an image and how to merge channels of two images making it immune to the stastical analysis. This increased the payload capacity to 97% or 23BPP which is revolutionary in terms of figure.Finally it takes 14 seconds to create one image with another one and given this number it's safe to say it's militarily vaible for secure communication.