Stegano ist eine Open-Source-Software für Steganographie. Steganographie beschreibt in der Kryptographie die Wissenschaft, Informationen in unauffälligen Dateien wie Bildern zu verstecken. Dabei geht es weniger um die tatsächliche Vertraulichkeit der versteckten Daten durch Verschlüsselung, sondern eher um das Verstecken dieser Verschlüsselung. Steganographie wird häufig angewandt, wenn Verschlüsselung in totalitären Staaten verboten ist.
Stegano versteckt den Klartext verschlüsselt in Bilddateien. Diese werden nach einem bestimmten Prozedere verändert, sodass in jedem Bildpixel 3 Bit an Informationen versteckt werden können. Jeder Pixel besteht aus 4 Byte (Rot, Grün, Blau, Transparenz). Stegano ändert in jedem Farb-Byte das Bit mit der geringsten Wertigkeit, zu einem Bit aus dem Chiffretext. Das veränderte Bild ist vom Originalbild nicht zu unterscheiden, da sich ein Byte-Wert (0-255) maximal um 1 ändert, wenn überhaupt.
Die veränderten Bilder werden im verlustfreien PNG-Format gespeichert. Auf eine Signatur in den Bilddateien wird absichtlich verzichtet, damit Bilder mit verstecktem Chiffretext algorithmisch nicht von normalen Bildern unterschieden werden können. Das bedeutet aber ebenso, dass das Programm nicht unter der Eingabe eines falschen Passworts und unter der Verwendung eines Bildes ohne versteckte Informationen unterscheiden kann.
Informationen werden mit dem sicheren Algorithmus AES/Rijndael im GCM-Modus verschlüsselt. Der Initialisierungsvektor wird bei jeder Verschlüsselung pseudozufällig erzeugt und ebenso im Bild versteckt.
Stegano bietet eine sehr übersichtliche Benutzeroberfläche, aber trotzdem eine umfangreiche Funktionalität. Zunächst wird im Programm ein Pfad zur Quell-Bilddatei gefordert, die später steganographisch verändert werden soll. Dazu kann man einen absoluten oder relativen Pfad eingeben oder einfach über den anliegenden Knopf Browse auswählen. Der Speicherort für die Zieldatei im PNG-Format lässt sich ebenso vollständig frei wählen. Im mehrzeiligen Textfeld darunter kann nun der Klartext eingegeben werden, der später als Chiffretext im Bild versteckt wird. Es ist zu beachten, dass Zeilensprünge wegen der anschließenden Komprimierung entfallen werden. In den zwei letzten Feldern soll nun der Schlüssel für die Verschlüsselung gewählt werden. Am Ende wird die Zieldatei unter dem angegebenen Pfad geschrieben.
Die Entschlüsselung ist ebenso sehr einfach. Im oberen Feld muss der Pfad für die Datei mit versteckten Informationen angegeben werden, im Feld darunter der Schlüssel. Nach einer erfolgreichen Entschlüsselung wird der Text im großen Textfeld darunter angezeigt, sobald der Knopf betätigt wurde. In der jetzigen Version (1.1.2) kann es dazu kommen, dass ein falsches Passwort zu einem Programmabsturz führt. Es sollte also darauf geachtet werden, dass das Passwort beim ersten Versuch richtig ist.
Da in jedem Pixel maximal 3 Bit verändert werden, kann die Veränderung mit dem bloßen Auge nicht auffallen. Das Dateiformat PNG erhält die Informationen mit seiner verlustfreien Natur. Aus offensichtlichen Gründen dürfen Bilder mit steganographischen Nachrichten nicht komprimiert werden und auch nicht in Dateiformaten als zum Beispiel PNG oder Bitmap gespeichert werden.