Das letzte Beispiel „aus fremder Feder“ ist ein Programm von Abhijeet Adarsh, das ich seinem Github-Archiv https://github.com/abhijeet-adarsh/Steganography entnommen habe und minimal angepasst habe. Mittels einer grafischen Benutzeroberfläche wählt Ihr zuerst das „Trägerbild“ aus, dann könnt Ihr den zu versteckenden Text entweder eingeben oder aus einer Textdatei einlesen und am Ende vergebt Ihr ein Passwort für die Verschlüsselung, bevor das neue Bild gespeichert wird.
Die Dekodierung erfolgt analog – zuerst das Trägerbild mit der versteckten Nachricht auswählen, das Entschlüsselungspasswort eingeben und dann wird die versteckte Nachricht in einem Fenster angezeigt (die Informationen werden auch auf der Konsole ausgegeben. Noch ein Hinweis: die vom Programm angebotene Option „verstecken in einer Audio-Datei“ ist seitens des Autors nicht realisiert worden.
Ich verzichte hier auf die Anzeige des Quellcodes (2 Java-Dateien mit mehr als 900 Programmzeilen). Dafür zeige ich Euch das Ergebnis der Einbettung in mein Musterbild:
Auch dieses Ergebnis ist bei einer reinen Betrachtung zufriedenstellend und Dank der Verschlüsselung auch „sicher“, allerdings ist die Einbettung über das Analyseprogramm deutlich erkennbar (Programm G06 Steganographie Analyse, Analyse: G06 Analyse K04).
Hier ist der Vollständigkeit halber noch die Ausgabe auf der Konsole:
1 2 3 4 5 6 7 8 9 10 11 |
Guten Tag und herzlich Willkommen auf meiner Seite. In dieser Webseite gebe ich Euch Antworten zu Kryptographie-Fragen rund um Java. Ich stelle Euch Beispiele für die symmetrische Verschlüsselung null asymmetrische Verschlüsselung null digitale Signatur null den sicheren Schlüsselaustausch sowie der Erzeugung und Nutzung von Hashes und MACs vor. Dabei werde ich mich nicht nur auf Verschlüsselung null Co. beschränken null sondern werde auch auf Themen wie „Steganographie“ null verstecken von Informationen null eingehen. Dem Thema „Sicherheit“ oder „Unsicherheit“ werde ich auch den notwendigen Raum geben null denn was nützt die beste Verschlüsselung null wenn durch einen Denkfehler die geheimen Daten nahezu öffentlich bereitstehen oder unbemerkt verändert werden können – ein erschreckendes Beispiel findet Ihr in dem AES Padding Orakel. Eine eigene Rubrik hat die Kryptographie-Bibliothek Google Tink erhalten null denn sie bietet neben einem breiten Spektrum von „State of the art“-Verfahren null z.B. die Elliptische Kurve ED25519 null zudem eine sehr hohe Sicherheit bei der Implementierung null daher lege ich Euch diese Bibliothek sehr ans Herz. Eine praktische Anwendung der asymmetrischen Verfahren findet Ihr in meinem Tutorial zur Blockchain und einer selbsterstellten Krypto-Währung null dem JavaCryptoCoin. Mich stört es immer null wenn ich auf Webseiten eine Lösung mit Quelltext präsentiert bekomme und diese dann in meiner Umgebung nicht funktioniert. Daher stelle ich grundsätzlich den vollen Sourcecode mit allen Imports und gegebenenfalls eingebundenen null externen null Bibliotheken zur Verfügung null damit Ihr die Beispiele bei Euch zum Laufen bekommt. Alle Quelltexte findet Ihr in meinem Github-Depot null https null Die Erst-Entwicklung von Kryptographie-Programmen mache ich mittels Eclipse und Java null null Build null und höher null null Alle Programme werden zusätzlich unter Java null getestet und wo notwendig angepasst. Mein Github-Depot enthält entweder null Versionen oder Programme null die ohne Anpassung unter Java null und Java null lauffähig sind. Auch wenn Ihr „alte Java-Hasen“ seid – blickt doch mal in die Rubrik „Allgemeines„ null denn da findet Ihr wertvolle Hinweise im Hinblick auf Kryptographie. Gerne lese ich Eure Anmerkungen null Kommentare und Anregungen per Email unter javacrypto null gmx.de und nun „happy secret coding“ null null null null Michael PS null Nahezu alle Beispiele und Programme von mir veröffentliche ich unter der „UNLICENCE“-Lizenz null die Erläuterungen hierzu findet Ihr auf der separaten Lizenz-Seite. 123456 -115-106-98-17110-54-45-62-1025898-110-128-26-122-4912639390-122-81-13-5418212-11058-36108-110 Hex format : 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 Length of message : 2586 hello5 Message is: Guten Tag und herzlich Willkommen auf meiner Seite. In dieser Webseite gebe ich Euch Antworten zu Kryptographie-Fragen rund um Java. Ich stelle Euch Beispiele für die symmetrische Verschlüsselung null asymmetrische Verschlüsselung null digitale Signatur null den sicheren Schlüsselaustausch sowie der Erzeugung und Nutzung von Hashes und MACs vor. Dabei werde ich mich nicht nur auf Verschlüsselung null Co. beschränken null sondern werde auch auf Themen wie „Steganographie“ null verstecken von Informationen null eingehen. Dem Thema „Sicherheit“ oder „Unsicherheit“ werde ich auch den notwendigen Raum geben null denn was nützt die beste Verschlüsselung null wenn durch einen Denkfehler die geheimen Daten nahezu öffentlich bereitstehen oder unbemerkt verändert werden können – ein erschreckendes Beispiel findet Ihr in dem AES Padding Orakel. Eine eigene Rubrik hat die Kryptographie-Bibliothek Google Tink erhalten null denn sie bietet neben einem breiten Spektrum von „State of the art“-Verfahren null z.B. die Elliptische Kurve ED25519 null zudem eine sehr hohe Sicherheit bei der Implementierung null daher lege ich Euch diese Bibliothek sehr ans Herz. Eine praktische Anwendung der asymmetrischen Verfahren findet Ihr in meinem Tutorial zur Blockchain und einer selbsterstellten Krypto-Währung null dem JavaCryptoCoin. Mich stört es immer null wenn ich auf Webseiten eine Lösung mit Quelltext präsentiert bekomme und diese dann in meiner Umgebung nicht funktioniert. Daher stelle ich grundsätzlich den vollen Sourcecode mit allen Imports und gegebenenfalls eingebundenen null externen null Bibliotheken zur Verfügung null damit Ihr die Beispiele bei Euch zum Laufen bekommt. Alle Quelltexte findet Ihr in meinem Github-Depot null https null Die Erst-Entwicklung von Kryptographie-Programmen mache ich mittels Eclipse und Java null null Build null und höher null null Alle Programme werden zusätzlich unter Java null getestet und wo notwendig angepasst. Mein Github-Depot enthält entweder null Versionen oder Programme null die ohne Anpassung unter Java null und Java null lauffähig sind. Auch wenn Ihr „alte Java-Hasen“ seid – blickt doch mal in die Rubrik „Allgemeines„ null denn da findet Ihr wertvolle Hinweise im Hinblick auf Kryptographie. Gerne lese ich Eure Anmerkungen null Kommentare und Anregungen per Email unter javacrypto null gmx.de und nun „happy secret coding“ null null null null Michael PS null Nahezu alle Beispiele und Programme von mir veröffentliche ich unter der „UNLICENCE“-Lizenz null die Erläuterungen hierzu findet Ihr auf der separaten Lizenz-Seite. Encoded message is: ??m?{;;?LL"ò4Ìk?õ??ï§B%Vsú¼)êF¶Å? ? §«O?å´YÞGÜ+û1g?áR¯µ?O?¤÷3?òy@Õ?T;»Ò¯??d9zÊxs¸?Ï$J4?éóÉ?#¾¿% [TLh_dJ6??M'8ëA?g足7{ÄbÊËÞ? ÚåÀþ?Ï?ù?Iº2O²??N?1é> |
Alle Quellcodes zur Steganographie findet Ihr zum Download in meinem Github-Repository, welches Ihr über diesen Link erreicht: https://github.com/java-crypto/K-Steganographie. Alle Programme sind sowohl unter Java 8 als auch unter Java 11 lauffähig.
Der Autor gibt auf der Github-Projektseite keinen Hinweis auf eine vorhandene Lizenz.
Letzte Aktualisierung: 05.11.2019