Steganographie (versteckte Bilder, etc.)

Hallo allerseits,

also, rein theoretisch weiß ich schon, worum es sich handelt. Ich habe im Vorfeld selbstverständlich auch die allmächtige Gottheit namens google bemüht, aber entweder waren die Beschreibungen für mich den böhmischen Dörfern gleich oder ich bin schlicht zu doof, um das nachvollziehen zu können. Pixelverschiebung? Änderung der Farbtiefe? Umwandlung in Dual? Hääää?

Sieht sich jemand von Euch in der Lage, das Prinzip von Steganographie einer Nicht-Informatikerin (nein, ich bin kein DAU) in einigen verständlichen Sätzen zu vermitteln?

Hierfür besten Dank im voraus.

Viele Grüße

Renee

also, rein theoretisch weiß ich schon, worum es sich handelt.
Ich habe im Vorfeld selbstverständlich auch die allmächtige
Gottheit namens google bemüht, aber entweder waren die
Beschreibungen für mich den böhmischen Dörfern gleich oder ich
bin schlicht zu doof, um das nachvollziehen zu können.
Pixelverschiebung? Änderung der Farbtiefe? Umwandlung in Dual?
Hääää?

Nehmen wir ein „Schwarzweibild“ mit 256 Graustufen. Das heißt: Jedes Pixel kann 256 Farbwerte annehmen. 0 für schwarz, 255 für weiß, alles andere dazwischen sind Grautöne.

Die Zahlen von 0 bis 255 lassen sich in einem Byte (8 Bit) darstellen

Nehmen wir folgendes Beispiel:

1 0 1 0 1 1 0 1 Binräzahl

128 64 32 16 8 4 2 1 Wert der Bit-Stellen


128 32 8 4 1 Gewertete Bits

Wenn man die „gewertetetn Bits“ zusammenzählt, kommt man auf 173. Die binäre Zahl 10101101 entspricht also 173, ein mittelheller Grauton.

Wenn man sich jetzt das Bit ganz rechts ansieht, so erkennt man, daß es nur einen geringen Unterschied macht, wäre es nicht gesetzt, würde die Zahl 172 lauten, also eine Idee dunkler. Dem unvoreingenommenen Auge fällt das Bißchen eher nicht auf.

Wenn man jetzt sich darauf einigt, daß das letzte Bit „unwichtig“, hat man pro Pixel nur noch die Werte von 0, 2, 4, 5, 6, … 254, also nur noch 128 verschiedene Grautöne. („reduzierung der Farbtiefe“) Die Stufen sind allerdings etwas größer geworden, aber dem flüchtigen Betrachter fällt das nicht auf.

Nun hat man pro Pixel ein Bit freigeschaufelt und da kann man Information verstecken, ein Bit pro Pixel in diesem Beispiel. Wenn das Originalbild nun eine weiße Fläche ist, bekommt sie in einem bildbetrachter einen ganz minimalen Grauschleier, da das letzte Bit ja gelegentlich mit „1“ gesetzt ist. Homogene Bilder sind also schlechte Träger von steganographischer Information.

Wir sehen:

  • Die Daten, in denen Information versteckt werden, müssen deutlich größer sein, als die zu versteckenden Daten.

  • Die Trägerdaten müssen auch mit kleinen Veränderungen einen Sinn machen. Wenn man bei einem Programm von jedem Byte ein Bit verändert, knallt es.

  • Kompressionsalgorithmen können Steganographeie empfindlich stören. Wenn man das genannte Bild als JPG speichert und dann wieder im Ursprungsformat abspeichert, ist die Information futsch.

  • Es ist eine gute Idee, wenn die zu versteckenden Daten geinge Redundanz haben. Also vorher komprimieren (zip etc.).

  • Steganographie ist keine sichere Verschlüsselung.

  • Faustregel: Je mehr zu versteckende Daten pro Tägerdaten anfallen, desto größer die Gefahr der Entdeckung.

  • Das beschriebene Verfahren ist ein Beispiel, die konkrete Realisation kann auch anders und besser vorgenommen werden.

HTH,

Sebastian

Hallo,

Sieht sich jemand von Euch in der Lage, das Prinzip von
Steganographie einer Nicht-Informatikerin (nein, ich bin kein
DAU) in einigen verständlichen Sätzen zu vermitteln?

Ein Bild (oder auch andere Dateitypen wie bspw. Audiodateien) bestehen aus einer aneinandergereihten Vielzahl von Einzelinformationen. Bleiben wir beim Bild und einer vereinfachten(!) Beschreibung des Verfahrens:

Im Prinzip werden eine Reihe von Punkten definiert, und jeder Punkt hat je einen Wert für bspw. Rot, Grün und Blau. Das kann man in Bitwerten kodieren. Nun kann ich aber auch Textinformationen in Bitwerten kodieren. Wir haben also folgendes:

Ein Originalbild bitweise kodiert und einen Text bitweise kodiert.
Jetzt kann ich die Bits des Textes einfach zu denen des Bildes hinzuaddieren. Es entsteht ein Objekt „Bild+Text“. Um das Originalbild nicht allzusehr zu verändern, streue ich das noch, indem ich sage, ich nehme nur jedes zehnte Bit des Originalbildes, um einen Textwert hinzuzuaddieren. Damit verändere ich das Originalbild nur sehr gestreut, so sehr, daß dem Betrachter die daraus resultierenden anderen, „falschen“, Frabwerte nicht auffallen - das Auge nimmt so feine Unterschiede nicht wahr, erst recht nicht am Bildschirm. Das „Bild+Text“ sieht also scheinbar genauso aus, wie das Originalbild.

Der Empfänger hat als „Schlüssel“ das Originalbild zur Verfügung (wir vorher vereinbart) und bekommt nun „Bild+Text“ zugesandt. Jetzt muß er nur von diesem Objekt bitweise das Originalbild abziehen und erhält - den Text.

Weshalb das verschlüsselt:

Ein Beobachter, der „Bild+Text“ abfängt, hat weder das Originalbild zur Verfügung, kann also nicht entschlüsseln, noch bemerkt er überhaupt, daß in „Bild+Text“ ein Text versteckt ist - er sieht ja ein stimmiges Bild.

Nochmal: Die Hex-Farbwerte kennst Du ja aus dem Chat. Die Farbe #45a37c sieht für das Auge quasi genauso aus wie die Farbe #45a37d. Den Unterschied erkennst Du bestenfalls mit einem sehr guten Monitor, guten Augen und im direkten Vergleich. Dennoch steckt in dem Unterschied der beiden Farben ein Bit an zusätzlicher Information.

HTH,

Malte.

Das habe ich verstanden! Danke, Malte (mG & owT)
.

Auch an Dich ein ‚Danke‘, Sebastian (mG & owT)
.

dazu 2 fragen
hallo malte,

Das
„Bild+Text“ sieht also scheinbar genauso aus, wie das
Originalbild.

1.) kennst du einen link, wo man sich sowas mal begucken kann? klingt nämlich interessant (nein! ich habe noch nciht gegoogelt :wink:

HTH,

2.) was heißt HTH?

gruß
ann

Steganographie: ein konkretes Beispiel

hallo malte,

Das
„Bild+Text“ sieht also scheinbar genauso aus, wie das
Originalbild.

1.) kennst du einen link, wo man sich sowas mal begucken kann?
klingt nämlich interessant

niehaus@toxic:/tmp$ cat outtest 
Dies ist nur ein Test
niehaus@toxic:/tmp$ 

Das ist also der Inhalt der Datei „outtest“. Man nehme ein bild von „annjabusch“(http://www.mindcrime.net/~niehaus/anja.jpg), outguess (ein Steganographieprogramm) und setze es auf die beiden Dateien an, das Ergenbis wird in die Datei „anjamittext.jpg“ (http://www.mindcrime.net/~niehaus/anjamittext.jpg) geschrieben:

niehaus@toxic:/tmp$ outguess -d outtest anja.jpg anjamittext.jpg
Reading anja.jpg....
JPEG compression quality set to 75
Extracting usable bits: 5869 bits
Correctable message size: 2205 bits, 37.57%
Encoded 'outtest': 176 bits, 22 bytes
Finding best embedding...
 0: 88(42.3%)[50.0%], bias 100(1.14), saved: 0, total: 1.50%
 1: 91(44.0%)[51.7%], bias 96(1.05), saved: 0, total: 1.55%
 9: 94(45.2%)[53.4%], bias 89(0.95), saved: 0, total: 1.60%
 32: 94(45.4%)[53.4%], bias 87(0.93), saved: 0, total: 1.60%
 39: 92(44.4%)[52.3%], bias 77(0.84), saved: 0, total: 1.57%
39, 169: Embedding data: 176 in 5869
Bits embedded: 207, changed: 92(44.4%)[52.3%], bias: 77, tot: 5894, skip: 5687
Foiling statistics: corrections: 55, failed: 3, offset: 19.058824 +- 22.628717
Total bits changed: 169 (change 92 + bias 77)
Storing bitmap into data...
Writing anjamittext.jpg....
niehaus@toxic:/tmp$ 

Fertich. Sehen wir mal nach, ob es geklappt hat:

niehaus@toxic:/tmp$ outguess -r anjamittext.jpg Versteckter\_Text
Reading anjamittext.jpg....
Extracting usable bits: 5869 bits
Steg retrieve: seed: 39, len: 22
niehaus@toxic:/tmp$ 

Irgendwas hat das Programm aus dem Bild herausgepuhlt, mal sehen, was:

niehaus@toxic:/tmp$ cat Versteckter\_Text 
Dies ist nur ein Test
niehaus@toxic:/tmp$ 

Oh, da kommt der ursprüngliche Text zum Vorschein. Prima :smile:

HTH[1],

Sebastian

[1] Hope that helps

1 „Gefällt mir“

(http://www.mindcrime.net/~niehaus/anja.jpg),

[…]

(http://www.mindcrime.net/~niehaus/anjamittext.jpg)

Wenn man die Bilder nebeneinanderhält, sieht man recht gut, wo Bits zugunsten des versteckten Textes gespart wurden.

Sebastian

WHOW!

(http://www.mindcrime.net/~niehaus/anja.jpg),
(http://www.mindcrime.net/~niehaus/anjamittext.jpg)

Wenn man die Bilder nebeneinanderhält, sieht man recht gut, wo
Bits zugunsten des versteckten Textes gespart wurden.

ja, ich sehs: anjamittext hat viel mehr falten!

schlimm genug, dass du mich missbraucht hast - aber meine bilder auch noch „anja“ zu nennen schlägt ja wohl dem faß die krone ins gesicht!

LOL
danke für die eindruckvolle demo

ann