Home / LinuxUser / 2010 / 12 / Wavelet-basierte digitale Wasserzeichen

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Eingedost
(161 Punkte bei 4 Stimmen)
Aufteiler
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

AA_wavelet_sxc1263024_gerard79.jpg

© gerard79, sxc.hu

Perfekte Welle

Wavelet-basierte digitale Wasserzeichen

16.11.2010 Einfache digitale Wasserzeichen lassen sich sehr leicht aus Dateien entfernen. Wollen Sie Bilder dauerhaft manipulationssicher markieren, müssen Sie zu ausgefeilteren Algorithmen greifen.

Wasserzeichen kennt man in der physischen Welt vorrangig von Geldscheinen oder teuren Papieren. Sie fungieren als quasi unsichtbare Echtheitsnachweise, die nur bei genauer Betrachtung auffallen. Die unmittelbare Verbindung von Wasserzeichen im Papier garantiert hier den Wert etwa der Banknote. In der digitalen Welt haben Wasserzeichen zwar ein Pendant, bedeuten dort allerdings etwas grundlegend Anderes.

Zum einen hat es sich in den letzten Jahren eingebürgert, kleine, manchmal unscheinbare, manchmal auffallende Schriftzüge (oft Copyright-Vermerke oder URLs) auf Bildern so zu bezeichnen, selbst wenn man sie immer und ohne besondere Hilfsmittel sehen kann und sie das Bild stören. Bringt der Urheber solche Vermerke am Rand an, reicht es, das Bild geringfügig zu beschneiden, um den Vermerk wieder zu entfernen. Genauso einfach ist es mit in den Metadaten eingebrachten Anmerkungen: Auch sie lassen sich mit minimalem Aufwand wieder löschen.

Zum anderen gibt es aber auch vollständig unsichtbare digitale Wasserzeichen [1], die man in Bilder oder auch Audio- und Video-Dateien einbettet und die sich nur mit speziellen Programmen wieder auslesen lassen. Das Stichwort heißt hier DRM. Bei Wasserzeichen gibt es dazu zwei unterschiedliche Ansätze: "Copyright Protection" bettet immer das gleiche dem Urheber zugeordnete Wasserzeichen ein und kennzeichnet so dessen Urheberschaft, "Fingerprinting" geht vom Käufer der Dateien aus und verwendet ein ihm zugeordnetes Wasserzeichen. Damit kann der Urheber später feststellen, wer die möglicherweise unberechtigt weitergegebenen Dateien zur Verfügung gestellt hat.

Methodik

Zum Einbringen der Wasserzeichen kann man eine versteckte Nachricht (den Copyright-Vermerk) unsichtbar mittels Steganographie in die Datei einzubetten ([2],[3]). Das eigentlich zum Verschleiern der Existenz einer Nachricht gedachte Verfahren ist jedoch "fragil": Jede Manipulation an der Trägerdatei zerstört die versteckte Nachricht und damit die Signatur. Es reicht dabei schon aus, das Bild geringfügig zu skalieren oder die Helligkeit zu verändern. Derartige Wasserzeichen kommen daher vorrangig zum Einsatz, um die Unverfälschtheit einer Datei nachzuweisen.

Digitale Wasserzeichen für Copyright-Vermerke müssen dagegen "robust" sein, also bei den eben genannten und weiteren Manipulationen wenigstens teilweise erhalten bleiben [4]. Dafür hat sich die Methode der auf Wavelets [5] basierenden Wasserzeichen als geeignet erwiesen. Als Wavelets bezeichnet man mathematische Funktionen, die insbesondere in der Signal- und Bildbearbeitung weite Anwendung finden.

Die im Folgenden vorgestellten Programme implementieren eine ganze Reihe von Wavelet-Wasserzeichen-Algorithmen mit unterschiedlichen Schwerpunkten, verschiedener Robustheit [6] gegenüber den Manipulationen sowie mit variierenden Rechenzeit- und Ressourcenverbrauch. Sie stammen alle aus einer Programmsammlung des Computerwissenschaftlers Peter Meerwald [7] und sind nicht als fertige Produkte anzusehen, sondern wurden für Studienzwecke entwickelt.

Daher arbeiten sie in der hier verwendeten Form nur mit Graustufenbildern, was aber keine wesentliche Einschränkung darstellt, da sich beliebige Bilder automatisch in diese umwandeln ("decompose") und später – nach dem Signieren eines oder mehrerer Teile – wieder zu einem Farbbild montieren lassen ("compose"). Auch müssen die Bildgrößen Vielfache von 8 Pixeln sein. Es existieren derzeit nur über Optionen gesteuerte Befehlszeilenvarianten, die sich aber einfach anwenden lassen und stabil laufen.

Um die Programme aus Peter Meerwalds Sammlung zu verwenden, laden Sie das Programmarchiv  [8] herunter und entpacken es. Nach einem Wechsel in das neu entstandene Verzeichnis wm_source übersetzt make die Quelltexte. In den Verzeichnissen Meerwald und Fotopoulos entstehen nun die Programme, die Sie anschließend manuell nach /usr/local/bin/ verschieben. Dort finden sich auch unkomprimierte Manpages (gehören nach /usr/local/man/man1/) für die Programme.

Theorie …

Die Programme nutzen alle verschiedene Algorithmen und gliedern sich in vier grundsätzliche Typen:

  • gen_algorithmus_sig – erzeugt Signaturen, speichert sie in einer Datei
  • wm_algorithmus_d – bettet Signaturen in Bilder ein
  • wm_algorithmus_e – extrahiert Signaturen aus Bildern
  • cmp_algorithmus_sig – überprüft originale und aus dem Bild ausgelesene Signatur und zeigt so das noch vorhandene Maß an Authentizität

Nach dem Aufspalten der Farbbilder in drei Graustufenbilder (R-, G- und B-Kanal) versehen Sie diese einzeln – oder zumindest eines von ihnen – mit einer zuvor automatisch generierten Signatur. Die Art der Signatur hängt von gewählten Verfahren ab; ein Generatorprogramm erzeugt sie und speichert sie zur späteren Authentifikation in einer Datei. Alle gen_*-Programme nutzen dazu einen Pseudo-Zufallszahlengenerator, wodurch bei jedem Aufruf eine neue Signatur entsteht.

Anschließend bringt ein zweites Programm die Daten in die Bilddatei ein. Normalerweise erfolgt das, ohne sichtbare Artefakte zu hinterlassen. Abbildung 1 zeigt, was bei einer ungeschickten Wahl der Parameter geschieht. Allerdings sind diese Fehler unproblematisch, da sie sich zum einen mit anderen Parametern leicht vermeiden lassen und die Signatur zum anderen auch nach dem Entfernen der Artefakte – in Gimp etwa durch Verwischen oder Klonen – weitestgehend erhalten bleibt (siehe auch Kasten "Original oder Fälschung?").

Abbildung 1

Abbildung 1: Im Testbild zeigen sich Artefakte durch die eingebrachte Signatur (in der Ausschnittsvergößerung im Detail). Normalerweise bleiben die durch eine Signatur hervorgerufenen Veränderungen unsichtbar.

Abbildung 2

Abbildung 2: Vergleich zwischen Original und signierten Bild, mit Gimp im Ebenenmodus Faser extrahieren erstellt. Die meisten Bereiche sind wirklich identisch, was das einheitliche Grau beweist.

Original oder Fälschung?

Bei Bildern, die vollständig und daneben auch im Original vorliegen, benötigt man zur Überprüfung eigentlich keine Wasserzeichen. Hier genügt es, Original und zu untersuchendes Bild als zwei Ebenen in Gimp zu laden und mit einem geeigneten Ebenenmodus (etwa Faser extrahieren) zu vergleichen. Gimp stellt dann die Unterschiede pixelgenau dar (Abbildung 2). Unterscheiden sich die beiden Bilder aufgrund von Manipulationen, zeigt diese Methode viel mehr Unterschiede, als menschliche Augen tatsächlich wahrnehmen. Wasserzeichen in den Originalbildern helfen hier zu beweisen, dass ein manipuliertes Bild aus einem (bekannten und signierten) Original entstanden ist.

Tip a friend    Druckansicht Bookmark and Share
Kommentare

2507 Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...