Genstego
An image steganography with high embedding capacity based on a genetic algorithm
Install / Use
/learn @labellson/GenstegoREADME
#+TITLE: [[https://dani.codes/post/genstego/][Genstego: Image Steganography Based on a Genetic Algorithm]] #+AUTHOR: Daniel Laguna - [[mailto:labellson@gmail.com][labellson@gmail.com]] #+EMAIL: labellson@gmail.com
#+Options: date:nil H:2
=genstego= is an image steganography package based on [[https://github.com/deap/deap][deap]]. It is able to embed/decode secret images into/from a host image. The main idea of =genstego=, is to model steganography as a search and optimization problem using genetic algorithms.
The genetic algorithm allows finding an optimal stochastic solution. Therefore, making the steganalysis more complex. Also, =genstego= provides a set of different optimal solutions in the last generation.
At this moment, =genstego= only use grayscale images as host and stego messages. But, it can be modified to use color images, or to hide different formats like text messages, sound files, etc...
You can find a [[file:README_ES.org][Spanish version of this README here]].
- Requirements Run in =Python 3=.
=genstego= use the following packages: =numpy, PIL, matplotlib, deap=
It is easily installed by =pip= #+BEGIN_EXAMPLE pip install <package> #+END_EXAMPLE
- Usage To run =genstego.py= there are two required arguments: =-ht= and =-s=. First one is the path to the host image and second to the secret image.
#+BEGIN_EXAMPLE usage: genstego.py [-h] -ht HOST -s SECRET [-g GENERATIONS] [-p POPULATION] [-c CROSSOVER] [-m MUTATION] #+END_EXAMPLE
Usage example:
#+BEGIN_EXAMPLE python genstego. py -ht img/lenna-256.ppm -s img/grumpy-115.png -g 300 -p 200 #+END_EXAMPLE
- As a =python= package It can also be imported into other programs. The main methods are: ~genstego.embed()~ embeds a secret message. And, ~genstego.decode()~ decodes secret messages.
