Stegano/docs/software.rst
2017-05-16 08:27:53 +02:00

247 lines
6.7 KiB
ReStructuredText

Using Stéganô in command line
=============================
The command ``stegano-lsb``
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Hide and reveal a message with the LSB method.
Display help
------------
.. code-block:: bash
$ stegano-lsb --help
usage: stegano-lsb [-h] {hide,reveal} ...
positional arguments:
{hide,reveal} sub-command help
hide hide help
reveal reveal help
optional arguments:
-h, --help show this help message and exit
.. code-block:: bash
$ stegano-lsb hide --help
usage: stegano-lsb hide [-h] -i INPUT_IMAGE_FILE [-e {UTF-8,UTF-32LE}]
(-m SECRET_MESSAGE | -f SECRET_FILE) -o
OUTPUT_IMAGE_FILE
optional arguments:
-h, --help show this help message and exit
-i INPUT_IMAGE_FILE, --input INPUT_IMAGE_FILE
Input image file.
-e {UTF-8,UTF-32LE}, --encoding {UTF-8,UTF-32LE}
Specify the encoding of the message to hide. UTF-8
(default) or UTF-32LE.
-m SECRET_MESSAGE Your secret message to hide (non binary).
-f SECRET_FILE Your secret to hide (Text or any binary file).
-o OUTPUT_IMAGE_FILE, --output OUTPUT_IMAGE_FILE
Output image containing the secret.
.. code-block:: bash
$ stegano-lsb reveal --help
usage: stegano-lsb reveal [-h] -i INPUT_IMAGE_FILE [-e {UTF-8,UTF-32LE}]
[-o SECRET_BINARY]
optional arguments:
-h, --help show this help message and exit
-i INPUT_IMAGE_FILE, --input INPUT_IMAGE_FILE
Input image file.
-e {UTF-8,UTF-32LE}, --encoding {UTF-8,UTF-32LE}
Specify the encoding of the message to reveal. UTF-8
(default) or UTF-32LE.
-o SECRET_BINARY Output for the binary secret (Text or any binary
file).
Hide and reveal a text message
------------------------------
.. code-block:: bash
$ stegano-lsb hide -i ./tests/sample-files/Lenna.png -m 'Hello World!' -o ./Lenna_enc.png
$ stegano-lsb reveal -i ./Lenna_enc.png
Hello World!
Specify an encoding
-------------------
.. code-block:: bash
$ stegano-lsb hide -i ./tests/sample-files/Lenna.png -m 'I love 🍕 and 🍫.' -e UTF-32LE -o ./Lenna_enc.png
$ stegano-lsb reveal -i ./Lenna_enc.png
I love 🍕 and 🍫.
The default encoding is UTF-8.
Hide and reveal a binary file
-----------------------------
.. code-block:: bash
$ wget http://www.gnu.org/music/free-software-song.ogg
$ stegano-lsb hide -i ./tests/sample-files/Montenach.png -f ./free-software-song.ogg -o ./Montenach_enc.png
$ rm free-software-song.ogg
$ stegano-lsb reveal -i ./Montenach_enc.png -o ./song.ogg
The command ``stegano-lsb-set``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sets are used in order to select the pixels where the message will be hidden.
Hide and reveal a text message
------------------------------
.. code-block:: bash
# Hide the message with the Sieve of Eratosthenes
$ stegano-lsb-set hide -i ./tests/sample-files/Montenach.png --generator eratosthenes -m 'Joyeux Noël!' -o ./surprise.png
# Try to reveal with Mersenne numbers
$ stegano-lsb-set reveal --generator mersenne -i ./surprise.png
# Try to reveal with fermat numbers
$ stegano-lsb-set reveal --generator fermat -i ./surprise.png
# Try to reveal with carmichael numbers
$ stegano-lsb-set reveal --generator carmichael -i ./surprise.png
# Try to reveal with Sieve of Eratosthenes
$ stegano-lsb-set reveal --generator eratosthenes -i ./surprise.png
An other example:
.. code-block:: bash
# Hide the message - LSB with a set defined by the identity function (f(x) = x).
stegano-lsb-set hide -i ./tests/sample-files/Montenach.png --generator identity -m 'I like steganography.' -o ./enc-identity.png
# Hide the message - LSB only.
stegano-lsb hide -i ./tests/sample-files/Montenach.png -m 'I like steganography.' -o ./enc.png
# Check if the two generated files are the same.
sha1sum ./enc-identity.png ./enc.png
# The output of lsb is given to lsb-set.
stegano-lsb-set reveal -i ./enc.png --generator identity
# The output of lsb-set is given to lsb.
stegano-lsb reveal -i ./enc-identity.png
List all available generators
------------------------------
.. code-block:: bash
$ stegano-lsb-set list-generators
Generator id:
ackermann
Desciption:
Ackermann number.
Generator id:
ackermann_naive
Desciption:
Ackermann number.
Generator id:
carmichael
Desciption:
Composite numbers n such that a^(n-1) == 1 (mod n) for every a coprime
to n.
https://oeis.org/A002997
Generator id:
composite
Desciption:
Generate the composite numbers using the sieve of Eratosthenes.
https://oeis.org/A002808
Generator id:
eratosthenes
Desciption:
Generate the prime numbers with the sieve of Eratosthenes.
https://oeis.org/A000040
Generator id:
fermat
Desciption:
Generate the n-th Fermat Number.
https://oeis.org/A000215
Generator id:
fibonacci
Desciption:
Generate the sequence of Fibonacci.
https://oeis.org/A000045
Generator id:
identity
Desciption:
f(x) = x
Generator id:
log_gen
Desciption:
Logarithmic generator.
Generator id:
mersenne
Desciption:
Generate 2^p - 1, where p is prime.
https://oeis.org/A001348
Generator id:
triangular_numbers
Desciption:
Triangular numbers: a(n) = C(n+1,2) = n(n+1)/2 = 0+1+2+...+n.
http://oeis.org/A000217
The command ``stegano-red``
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Hide and reveal a text message with the red portion of a pixel.
Display help
------------
.. code-block:: bash
$ stegano-red hide --help
usage: stegano-red hide [-h] [-i INPUT_IMAGE_FILE] [-m SECRET_MESSAGE]
[-o OUTPUT_IMAGE_FILE]
optional arguments:
-h, --help show this help message and exit
-i INPUT_IMAGE_FILE, --input INPUT_IMAGE_FILE
Image file
-m SECRET_MESSAGE Your secret message to hide (non binary).
-o OUTPUT_IMAGE_FILE, --output OUTPUT_IMAGE_FILE
Image file
Hide and reveal a text message
------------------------------
.. code-block:: bash
$ stegano-red hide -i ./tests/sample-files/Lenna.png -m 'Basic steganography technique.' -o ~/Lenna1.png
$ stegano-red reveal -i ~/Lenna1.png
Basic steganography technique.