03.08.2013 Aufrufe

Sicherheit in Rechnernetzen - Professur Datenschutz und ...

Sicherheit in Rechnernetzen - Professur Datenschutz und ...

Sicherheit in Rechnernetzen - Professur Datenschutz und ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4.1 Systematik<br />

dann kann der Empfänger so auch prüfen, ob beide möglichen Werte des Bits hätten e<strong>in</strong>gebettet<br />

werden können <strong>und</strong> ob der Sender folglich e<strong>in</strong>betten konnte. Der Empfänger gibt das errechnete<br />

emb also nur nach außen, wenn E(stego, not(emb)) e<strong>in</strong> akzeptabler Wert für den Stegotext ist.<br />

E<strong>in</strong>e effiziente Implementierung des verbesserten Extraktionsalgorithmusses E −1 lautet:<br />

function <strong>in</strong>vE’(<strong>in</strong>: stego; out: emb);<br />

emb := <strong>in</strong>vE(stego);<br />

stego_alternate := E(stego, not(emb));<br />

if R(stego_alternate) = someth<strong>in</strong>g_hidden<br />

then emb := empty;<br />

Es stellt sich nun die Frage: Ist obiges Ziel für E <strong>und</strong> E −1 nur zu erreichen, wenn das Stegosystem<br />

die obigen Gleichungen erfüllt? Die Antwort ist e<strong>in</strong> konstruktives Ne<strong>in</strong>.<br />

Die <strong>in</strong>effiziente Konstruktion:<br />

Die Idee besteht dar<strong>in</strong>, den Sender wie den Empfänger prüfen zu lassen, ob auch <strong>in</strong> stego beide<br />

möglichen Werte e<strong>in</strong>es Bits e<strong>in</strong>gebettet werden können. Nur dann gilt das Bit als übertragen. Im<br />

e<strong>in</strong>zelnen:<br />

Der Sender prüft, ob E(cover, 0) <strong>und</strong> E(cover, 1) jeweils akzeptable, d. h. aus se<strong>in</strong>er Sicht<br />

für e<strong>in</strong>en Stegoanalytiker die E<strong>in</strong>bettung nicht verratende Werte für Stegotext s<strong>in</strong>d <strong>und</strong> bettet<br />

nur dann e<strong>in</strong>, d. h. sendet nur dann stego := E(cover, emb) statt cover. Wenn sowohl Ecover, 0<br />

wie auch E(cover, 1) akzeptable Werte s<strong>in</strong>d, betrachtet der Sender emb als übertragen, ansonsten<br />

sendet er emb noch mal.<br />

E<strong>in</strong>e Implementierung des verbesserten E<strong>in</strong>bettungsalgorithmusses E ′ mit möglichst wenig<br />

Aufrufen von E <strong>und</strong> R lautet:<br />

function E’(<strong>in</strong>: cover, emb; out: stego);<br />

stego := E(cover,emb);<br />

stego_alternate := E(cover, not(emb));<br />

if R(stego) = someth<strong>in</strong>g_hidden or R(stego_alternate) = someth<strong>in</strong>g_hidden<br />

then beg<strong>in</strong> stego := cover; E’(next cover, emb) end<br />

else<br />

if R(E(stego, 0)) = someth<strong>in</strong>g_hidden or R(E(stego, 1)) = someth<strong>in</strong>g_hidden<br />

then E’(next cover, emb);<br />

Der Empfänger erhält stego ′ (dies kann stego oder cover se<strong>in</strong>) <strong>und</strong> berechnet emb ′ := E −1 (stego ′ ).<br />

Der Empfänger prüft, ob E(stego ′ , 0) <strong>und</strong> E(stego ′ , 1) jeweils akzeptable Werte für Stegotext<br />

s<strong>in</strong>d <strong>und</strong> empfängt ggf. emb ′ , ansonsten nichts.<br />

Warum funktioniert dies?<br />

Fall 1: Der Sender sendet stego, d. h. stego ′ = stego. Der Empfänger empfängt also emb ′ =<br />

emb genau dann, wenn der Sender emb als übertragen betrachtet.<br />

Fall 2: Der Sender sendet cover, d. h. stego ′ = cover. Dann ist entweder E(cover, 0) oder<br />

E(cover, 1) nicht akzeptabel - oder beide. Wegen stego ′ = cover, gilt Gleiches also für<br />

die vom Empfänger getesteten Werte E(stego ′ , 0) <strong>und</strong> E(stego ′ , 1).<br />

185

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!