AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Steganographie mit JPEGs
Thema durchsuchen
Ansicht
Themen-Optionen

Steganographie mit JPEGs

Ein Thema von Shaman · begonnen am 7. Jun 2004 · letzter Beitrag vom 8. Jun 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Shaman
Shaman

Registriert seit: 2. Nov 2003
Ort: Schweiz
407 Beiträge
 
Turbo Delphi für Win32
 
#1

Steganographie mit JPEGs

  Alt 7. Jun 2004, 15:43
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?
TJPEGImage ist da glaub keine grosse Hilfe...

Hat irgendjemand einen Vorschlag?

Gruss
Shaman
Daniel Pauli
Looking for answers from the great beyond
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#2

Re: Steganographie mit JPEGs

  Alt 7. Jun 2004, 16:24
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
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#3

Re: Steganographie mit JPEGs

  Alt 7. Jun 2004, 16:31
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
  Mit Zitat antworten Zitat
Benutzerbild von Shaman
Shaman

Registriert seit: 2. Nov 2003
Ort: Schweiz
407 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Steganographie mit JPEGs

  Alt 7. Jun 2004, 16:37
Ich werd mal versuchen, ob ich was hinkrieg, Pionierarbeit motiviert immer
Nur blöd, dass man nicht den Source der Jpeg-Unit hat...
Daniel Pauli
Looking for answers from the great beyond
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Steganographie mit JPEGs

  Alt 7. Jun 2004, 16:41
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 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.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Shaman
Shaman

Registriert seit: 2. Nov 2003
Ort: Schweiz
407 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Steganographie mit JPEGs

  Alt 7. Jun 2004, 16:48
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 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?
Daniel Pauli
Looking for answers from the great beyond
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#7

Re: Steganographie mit JPEGs

  Alt 7. Jun 2004, 16:50
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
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Steganographie mit JPEGs

  Alt 7. Jun 2004, 16:50
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*
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#9

Re: Steganographie mit JPEGs

  Alt 7. Jun 2004, 16:59
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
  Mit Zitat antworten Zitat
Benutzerbild von Shaman
Shaman

Registriert seit: 2. Nov 2003
Ort: Schweiz
407 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Steganographie mit JPEGs

  Alt 7. Jun 2004, 17:28
Dafür braucht man wohl ein Vielfaches der Mathematik über die ich verfüge, und das mach ich mit Kreativität einfach nicht wett
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 würde das wohl kein grosses Problem mehr darstellen...
Daniel Pauli
Looking for answers from the great beyond
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 Uhr.
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