Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Steganographie mit JPEGs (https://www.delphipraxis.net/23658-steganographie-mit-jpegs.html)

Shaman 7. Jun 2004 14:43


Steganographie mit JPEGs
 
Hallo zusammen

Ich habe bereits ein Programm gemacht, mit dem man Daten in Bitmaps verstecken kann. Nun möchte ich dasselbe für JPEGs realisieren. Bloss wie?
JPEGs kurz in Bitmaps umwandeln, diese manipulieren und wieder zurückwandeln wär nicht so schlau, da die Grösse des JPEG-Files auffällig wäre.
Soviel ich weiss, müsste man nach der diskreten Kosinustransformation die LSBs der Frequenzkomponenten ersetzen. Nur wie macht man das? :gruebel:
TJPEGImage ist da glaub keine grosse Hilfe...

Hat irgendjemand einen Vorschlag?

Gruss
Shaman

negaH 7. Jun 2004 15:24

Re: Steganographie mit JPEGs
 
Dies ist eine sehr schwierige Frage die dir keiner so ohne weiteres beantworten wird.
Einerseits gibts nur wenige Experten die bescheidwissen, und wenn dann werden sie dir nicht verraten wie es richtig gemacht wird, sondern ein Patent anmelden.

Ich kann dir nur soweit empfehlen auf die Suche nach "digital wathermarks", digitalen Wasserzeichen, zu gehen.

Du hast mit deiner Annahme schon recht, es ist eine Möglichkeit. Die JPEG's Komponenten können dir nur insofern helfen das sie dir den Zugriff auf die Pixeldaten erlauben. D.h. mit TJpegImage kann man die Bilddaten in einfachere Bitmaps konvertieren, per FFT die Daten umwandeln in deren Frequenzspektren, dann die Steganographischen Daten einbauen und per inverser FFT wieder in Bitmaps umwandeln und danach ein Jpeg daraus erzeugen. Wichtig ist zur Überprüfung eine Test-Enschlüsselung der Daten durchzuführen um sicherzustellen das durch die Jpeg Umwandlung keine Informationen verloren gingen. Aber, normalerweise macht man dies nicht auf diesem Wege, sondern baut eine eigene JPEG Komprimierung/Bildumwandlung die die Besonderheiten der Steganographischen Einschlüsse exakt berücksichtigt. Die meisten Verfahren über die ich mich informiert habe für Jpegs, MP3's oder MPEG's nutzen eigene Encoder/Decoder die die Steganographischen Daten explizit unterstützen.
Zudem, über die FFT Methode wird der ereichbare Datenspace zur Einbettung von Informationen stark reduziert. D.h. es können nicht mehr so große Steganographischen Daten eingebettet werden. Dafür steigt aber die Redundanz und die Datenmanipulierungssicherheit enorm. Eine so benutzte Jpeg kann also in Grenzen durchaus noch nachträglich manipuliert werden OHNE das deine Informationen verloren gehen.

Ist also echt keine leichte Aufgabe die du dir da vorgenommen hast. WENN du eine Lösung gefunden haben solltest dann wäre ich sehr stark an deinen Erfahrungen interesiert ;)

Gruß Hagen

negaH 7. Jun 2004 15:31

Re: Steganographie mit JPEGs
 
Achso, eventuell wären die Zahlentheoretischen FFT's eine Lösung für dich. Solche FFT's werden benutzt um mit sehr sehr großen Zahlen zu rechnen. Jede gute mathematische Bibliothek die mit sehr großen Zahlen rechnen kann, wäre eine Fundgrube für dich. Die Idee dabei ist es die Jpeg->Bitmap als super große Zahl zu berachten. Dies "Zahl" wird mit einer großen Zufallszahl = Schlüssel per FFT multipliziert, bzw. die FFT führt erstmal die den ersten Schritt dieser Multiplikation aus. Es ergibt sich dann ein FFT Zahlenraum, in dem du nun nur die untersten Bits mit deinen Steganographiedaten manipulierst. Danach wird der zweite Schritt der FFT durchgeführt, die Inversion, die eine Zahl ergibt die fast identisch zu orginalen Bitmap ist. Dies Zahl wird in eine Bitmap konvertiert die demzufolge keine erkennbaren Untrschiede mehr zur originalen Bitmap enthält. Wichtig ist nun das durch eine JPeg Umwandlung = verlustbehaftete Komprimierung die in der Bitmap enthaltenen Steganographischen Inhalte nicht zerstört werden können.

bei dieser Methode ist es WICHTIG die Rot/Grün/Blau Anteile des Bildes separat zu bearbeiten, d.h. die Bitmap wird in 3 Bitmaps für jeden Farbanteil zerlegt.

Gruß hagen

Shaman 7. Jun 2004 15:37

Re: Steganographie mit JPEGs
 
Ich werd mal versuchen, ob ich was hinkrieg, Pionierarbeit motiviert immer :)
Nur blöd, dass man nicht den Source der Jpeg-Unit hat...

shmia 7. Jun 2004 15:41

Re: Steganographie mit JPEGs
 
Zitat:

Zitat von Shaman
Ich habe bereits ein Programm gemacht, mit dem man Daten in Bitmaps verstecken kann. Nun möchte ich dasselbe für JPEGs realisieren. Bloss wie?
JPEGs kurz in Bitmaps umwandeln, diese manipulieren und wieder zurückwandeln wär nicht so schlau, da die Grösse des JPEG-Files auffällig wäre.

Die Grösse wäre nicht das Problem, sondern die verlustbehaftete Komprimierung von JPEG.
Damit würden die feinsten Farbänderungen, die du mit Steganographie vornimmst teilweise
zerstört werden und damit auch die Klartext-Mitteilung.
Zitat:

Zitat von Shaman
Soviel ich weiss, müsste man nach der diskreten Kosinustransformation die LSBs der Frequenzkomponenten ersetzen

Richtig und danach folgt dann noch eine Huffmann Komprimierung. Man müsste also die Blackbox JPEG-Codierung aufreisen und mittendrin Änderungen vornehmen. Also brauchst du die JPEG-Codierung/Decodierung als Delphi Sourcecode, damit du deine Eingriffe vornehmen kannst.

Shaman 7. Jun 2004 15:48

Re: Steganographie mit JPEGs
 
Zitat:

Zitat von shmia
Die Grösse wäre nicht das Problem, sondern die verlustbehaftete Komprimierung von JPEG.
Damit würden die feinsten Farbänderungen, die du mit Steganographie vornimmst teilweise
zerstört werden und damit auch die Klartext-Mitteilung.

Genau, darum darf man gar nicht verlustbehaftet komprimieren, was das JPEG-File eben auffällig gross macht.

Zitat:

Zitat von shmia
Also brauchst du die JPEG-Codierung/Decodierung als Delphi Sourcecode, damit du deine Eingriffe vornehmen kannst.

Denke ich auch, nur woher nehm ich die? :?

negaH 7. Jun 2004 15:50

Re: Steganographie mit JPEGs
 
Dieser Source wäre irrelevant für dich. Du könntest ohne Probleme ein beliebiges Image Format durch eine externe Software in einen Bitmap umwandeln lassen. Danach werden über dein Steganographie Algortihmus die Daten eingebettet und als Bitmap gespeichert. Eine Manipulierung der Helligkeiten, Farbauflösung, Kontraste oder sogar die Konvertierung in eine Jpeg durch externe Programme dürfen dann KEINE Auswirkungen auf die eingebetten Informationen haben. DANN und nur DANN haste einen echt superguten Steganographie Algorithmus entwickelt, der auch als Digitaler Wasserzeichen Algo. anwendbar ist. Der nächste Schritt von dir wäre die Anmeldung eines Patentes und das Hoffen darauf das noch kein andere ein ähnliches Patent innehat. Du könntest reich werden ;)

Das Ziel wäre also das Einbetten deiner Daten in den INHALTLICHEN Kontexts eines Bildes oder Sounds. Nur wenn das Bild inhaltlich seine Informationen verliert, also aus einem Katzenbild ein Hochhausbild wird, würden deine eingetetten Daten zerstört. So lange man also im Katzenbild noch die Katze erkennen würde wären deinen Informationen sicher.

Die heute gängigsten Verfahren bauen ihre Informationen immer nur Kontext-unbezogen ein, und manipulieren auf Farb/Rauschebene ihre Daten ein. Eine einfache Anti-Steganographie-Taktik wäre es also diese Rauschinformation durch eigenes Zufallsrauschen zu ersetzen. D.h. ein Angreifer würde einfach auf Verdacht hin alle Stegano-Daten löschen, er weis also nicht ob tatsächlich solche daten zerstört wurden. Dies ist ihm aber auch ziemlich egal da es nur sein Interesse war eine verdeckte Kommunikation zu unterdrücken. Durch das Manipulieren mit eigenem Rauschen wird aber die eigentliche Träger-Information keineswegs zerstört. Ein Jpeg Bild einer Katze würde eben immer noch eine Katze darstellen, aber die geheimen Steganographie Daten wären zerstört.
Um dies zu vermeiden MUSS man also Kontextbezogen, eg. Inhaltsbezogen, die Daten einbetten.

Gruß Hagen

dizzy 7. Jun 2004 15:50

Re: Steganographie mit JPEGs
 
Die Sourcen würden mich auch brennend interessieren!!!
Man kann zwar auch per OCX glaube ich auf so eine Windowskompression OHNE die jpeg.pas zurückgreifen, aber am Ende ist dadurch ja nix gewonnen.

Kennt jemand einen jpeg-source!? *hoff*

negaH 7. Jun 2004 15:59

Re: Steganographie mit JPEGs
 
Bei dieser "Inhaltsbezogenen" Methode wird nun das Bild so umgewandelt das ganze Bildbereiche zusammengefasst werden. In jedem dieser zusammengefassten Bereiche werden dann die Infos eingebettet. Danach wird der Schritt der Zusammenfassung wieder rückgänig gemacht. Es ensteht ein Bild das nun die Steganographischen Daten auf viele Einzel-Informationen des Bildes nichtlinear verteilt. Dies erklärt auch meine Aussage das sich der verfügbare Datenspace für die Steganodaten stark verkleinert.
Nun, bei deiner FFT Methode wüde das Zusammenfassen verschiedener Bildbereiche nichts anderes sein als das man das Bild in sein Frequenzspektrum zerlegt. Dabei würden also ganz verschiedene Bildbereiche, bzw. sogar ALLE Bildbereiche Auswirkungen auf einen lokalen Bereich im Frequnzspekrtum haben. Nun werden in diese Spektren deine Daten eingebettet und der Konvertierungsprozess rückgänig gemacht. Nun würden deine Spektrenbezogenen Änderungen wiederum Auswirkungen auf ALLE Bildbereiche haben. Eine partielle Änderung im Bild die zB. nur Kontraste, Farben oder Informationskomprimierungen durchführen hätte KEINE Auswirkungen auf das Frequenzspektrum des Bildes = Inhalt, ergo keine Auswirkungen auf deine Daten.

Gruß hagen

Shaman 7. Jun 2004 16:28

Re: Steganographie mit JPEGs
 
Dafür braucht man wohl ein Vielfaches der Mathematik über die ich verfüge, und das mach ich mit Kreativität einfach nicht wett :wink:
Darüber können sich schlauere Leute den Kopf zerbrechen, mir reicht die klassische Variante mit dem Verstecken im Rauschen. Und mit dem JPEG-Source :love: würde das wohl kein grosses Problem mehr darstellen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:17 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz