Hackerboard WikiHaboBlog

[HaBo]

 
Cryptography & Encryption Ver- und Entschlüsselung, Algorithmen, Kryptoanalyse ? Kryptographie in der Praxis. Blowfish, Triple-DES, XOR u.a.

Plaintext Watermarking

Diskussion: Plaintext Watermarking im Forum Cryptography & Encryption, in der Kategorie Security Area; hallo miteinander, ich plage mich seit geraumer seit mit einem thema das offensichtlich viel komplexer ist als es sich anhört... ...

Antwort
Alt 17.09.09, 11:39   #1 (permalink)
 
Registriert seit: 17.09.09
below_zero Leistung: Facit NTK
Likes: 0
Standard Plaintext Watermarking


hallo miteinander,

ich plage mich seit geraumer seit mit einem thema das offensichtlich viel komplexer ist als es sich anhört...
es geht primär um das verstecken von informationen in klartext (also wirklich pures ASCII von 0 - 127 bit)

ausgehend von einem unbekanntem text T, muß ich eine markierung vornehmen und irgendwann auch mal
überprüfen ob T markiert wurde, also T = T'

meine constraints (die ich BEIDE erfüllen muss) sind die folgenden:
-------------------------------------------------------------------------
1.) ich darf den text von seiner semantischen ebene (also dem "sinn") her unter keinen umständen verändern...
was dank Natural Language Processing (kurz: NLP) Techniken irgendwie zu schaffen ist...

---> Beispiel:

Orginal, also T: "Das Haus, dass wir gesehen haben, war grün...hmm, oder doch blau?"
Markiert, also T' : "Das Haus, dass wir gesehen haben, war blau...hmm, oder doch grün?"

somit haben wir hier die semantik nicht verändert wohl aber die syntax...was uns zum
zweiten constraint führt...


2.) von der syntaktischen ebene her, darf ich tun und lassen was ich will...dies beinhaltet also z.b
das einfügen von nonprintable charachters wie die ersten: 0 - 32 bits sowie das 127 bit des ascii-
zeichensatzes (und ja ich bin an diesen gebunden, unicode kommt leider NICHT in frage...)
-------------------------------------------------------------------------

der 2.) constraint ist dahingehend eine herrausforderung, da wie wir alle wissen das kryptische
zeichen entstehen, wenn wir sonderzeichen irgendwo anhängen und damit der 1.) constraint zunichte
gemacht wird...das einizigste was den 1.) constraint nicht kapput machen würde, wäre das einfügen
von leerzeichen, jedoch aber auch nur am ende des textes. Das doofe dabei ist, hiermit lassen
sich keine bits unterscheiden ! angenommen wir haben folgenden text:

T = "jungs haben nur frauen, drogen und bla im kopf"
T' = "jungs haben nur drogen, frauen und bla im kopf"

somit wurde das 4 wort mit dem 5 wort vertauscht, diese positionen müsste ich logischerweise
irgendwo protokollieren und da liegt die problematik, ich habe nur leerzeichen zur verfügung :-(

hat irgendjemand ein denkanstoss für mich, wie ich die positionen unterbringen könnte ??
noch ein kleiner constraint ---> die protokollierung muß IM SELBEN file reingeschrieben werden...

wäre dankbar für jede idee...

below_zero ist offline   Mit Zitat antworten
Alt 17.09.09, 17:52   #2 (permalink)
Senior Member
 
Registriert seit: 13.07.08
enkore Leistung: Pentium Ienkore Leistung: Pentium Ienkore Leistung: Pentium I
Likes: 60
Standard

Ähem TAB = 1 Leerzeichen = 0 :o
__________________
"It is the human race! The deterioration of the spirit of man. Man undermining himself, causing a self-willed, self-imposed, self-evident self-destruction."
+++ BREAKING +++ Troll ertrinkt im Planschbecken +++
enkore ist offline   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 18.09.09, 06:07   #3 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
also entweder bischen mit den Leerzeichen spielen, zum Beispiel mach aus einem Leerzeichen zwei Leerzeichen. Das Einfügen von Leerzeichen oder sonstigen Whitespaces ändert den Sinn ja nicht.

Oder vor jedem Zeilenumbruch fügt man ein Tab ein.
Elderan ist offline   Mit Zitat antworten
Alt 18.09.09, 08:12   #4 (permalink)
 
Registriert seit: 06.05.04
RedEagle Leistung: Facit NTK
RedEagle eine Nachricht über ICQ schicken
Likes: 0
Standard

Ich würde einfach am Zeilenende - vor '\n' ein/mehrer Leerzeichen einfügen

T:
Code:
Das ist ein Test.
Und das auch.
T':
Code:
Das ist ein Test.         
Und das auch.
Das hat weder auswirkungen auf den Inhalt noch auf die Formatierung

---
mist - Elderan tab-idee übersehen
RedEagle ist offline   Mit Zitat antworten
Alt 18.09.09, 11:36   #5 (permalink)
Themenstarter
 
Registriert seit: 17.09.09
below_zero Leistung: Facit NTK
Likes: 0
Standard

vielen dank für den tipp mit den tab, damit hätte ich schon mal 2 verschiedene zeichen die unsichtbar bleiben und könnte damit ein pseudo-binärsystem simmulieren um zumindest wort-positionen als zahlen zu codieren...

frage nun, wie codiere ich z.B eine vertauschung inkl. die positionen in denen diese erfolgt sind..??

Noch mal zurück zum beispiel:

T = "jungs haben nur frauen, drogen und bla im kopf"
T' = "jungs haben nur drogen, frauen und bla im kopf"

in T' müsste ich also am ende der zeile diese info unterbringen: Transformation(c,4,5)
was so zu interpretieren ist:

Es wurde die Transformation 'c' (ich habe insgesammt 8 zur auswahl: a,b,c,...) ausgewählt für den markierungsprozess mit den parametern 4 und 5, die die vertauschung der wort positionen entsprechen...

diese ganze infos mit 2 verschiedenen zeichen zu codieren ist eine kleine herrausforderung :-(

ich hatte gedacht ich könnte andere zeichen einsetzen z.B ein \n bzw. \r aber natürlich getrennt sonst ergeben sie beide ein absatz...benutze ich diese aber einzeln, treten die kryptischen zeichen auf ('quadrat') womit wieder die semantik kaputt geht...lustigerweise ist das aber auch editor-abhängig, im notepad tauchen z.B die kryptischen zeichen auf, wenn ich ein einzelnes \r einfüge, während in wordpad dieses zeichen unbemerkt bleibt (aber gut, wordpad hat ja auch eine RichEdit-komponente die eben fehlerhafte formatierungen einfach schluckt) ich muss also wirklich auf der untersten ebene bleiben (notepad oder ähnliche plaintext editoren)

ich habe im netz schon länger nach dem thema textmarkierungen gesucht, konnte aber nur wirklich 2 brauchbare sachen finden die ich nun nachimplementieren müsste:

1.) unter unix: "Snowdrop" (http://linuxappfinder.com/package/snowdrop) dieser verfolgt zumindest einen netten ansatz, liefert jedoch oft unbrauchbare resultate...

2.) unter windows: "TextMark" (http://www.compris.com/general/en/autoTextMark.html) hier wird auf der webseite viel versprochen, aber das tool, kann man gar nicht erst runterladen...die webseite ist ziemlich schlampig aufgebaut, sodass die da den download-link wohl vergessen haben...

alternativseiten habe ich nicht gefunden...überhaupt scheint das thema relativ frisch zu sein


naja, falls mir jemand noch einen konstruktiven denkanstoss geben könnte, wie ich die nötigen infos unterbringen soll, wäre ich ihm sehr dankbar..
below_zero ist offline   Mit Zitat antworten
Alt 18.09.09, 19:18   #6 (permalink)
 
Registriert seit: 07.12.03
Mechanius Leistung: Z3
Likes: 2
Standard

Mein Ansatz, vll hilf er dir:

Annahme es gibt nur N Möglichkeiten zwischen 2 Zeilenumbrüchen im Text Vertauschungen vor zunehmen. Der Algo um diese zu finden wird ja immer der selbe sein.
Ich würde jetzt
Code:
bla bla \n _ _ _ _
Wo soll er heute hin Kino, Kneipe oder doch ins Bett. 
Ein Film wäre nett oder doch lieber ein Buch? bla bla \n _ _ _ _ _
Usw.
'_' stellt Leerzeichen dar.
Code:
\n _ _
Vertauschung wurde in dieser Zeile vorgenommen. Zusätzliche "_" gibt die genutzte Möglichkeit an.
Im Bsp. Möglichkeit 1:
Zitat:
Kino, Kneipe oder doch ins Bett
Möglichkeit 2:
Zitat:
Ein Film wäre nett oder doch lieber ein Buch
4 '_' folglich wurde zwischen diesem '\n' und dem nächsten die 2te Möglichkeit genutzt.
beim nächsten '\n' wird mit '_' die Variante codiert

MfG
Mechanius ist offline   Mit Zitat antworten
Alt 18.09.09, 19:34   #7 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
eine Transformation von
"jungs haben nur frauen, drogen und bla im kopf" => "jungs haben nur drogen, frauen und bla im kopf" halte ich äußerst schwierig, da man erst (maschinell!!) die Semantik des Textes analysieren muss um dann zu gucken, ob man nichts kaputt macht.

Einfach nach z.B. einem Komma suchen und dann die Wörter vertauschen geht nicht. Da würde der Satz 'Dieser Satz, den ich mir gerade ausdenke, ergibt keinen Sinn' noch weniger Sinn ergeben.


Sonst wie gesagt, am besten lassen sich Zeilenumbrüche manipulieren (wenn man davon ausgeht, dass der Eingabetext ein paar hat).
Dann kann man jeden Zeilenumbruch als eine Stelle in einer Binärzahl sehen und ein zusätzliches Tab bedeutet eine 1 und wenn keins da ist eine 0.

Oder am Ende des Textes hängt man ne Kombo von Leerzeichen und Tabs an. Z.B. \t_\t_\t\t_ wäre die Zahl 1010110.

Wenn man nicht von 7 Bit Ascii ausgeht, was eh keiner nutzt, sondern von 8 Bit ASCII oder vergleichbaren (also kein Unicode), so haben diese i.d.R ein 'Space' und ein 'Non-breakable Space'. Wenn man als Space durch Non-breakable Spaces ersetzt, sollte das keinem Auffallen und man kann dann ähnlich wie mit der tab-Methode beliebige Binärwerte verstecken, indem man an den entsprechenden Stellen das Space durch ein non-breakable Space ersetzt.
Elderan ist offline   Mit Zitat antworten
Alt 18.09.09, 23:13   #8 (permalink)
Themenstarter
 
Registriert seit: 17.09.09
below_zero Leistung: Facit NTK
Likes: 0
Standard

vielen dank euch beiden, habt mich auf eine neue idee gebracht ;-)
below_zero ist offline   Mit Zitat antworten
Alt 19.09.09, 03:13   #9 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
wäre schön, wenn du die mit uns teilen würdest
Elderan ist offline   Mit Zitat antworten
Antwort
   

Werbung ist gerade online    

[HaBo] » Security Area » Cryptography & Encryption » Plaintext Watermarking
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[gelöst] Mehrere Plaintext Dateien zu Tabelle parsen T-Moe Code Kitchen 2 26.12.08 20:56
DES:Known Plaintext, known Ciphertext rhopimy Cryptography & Encryption 10 23.11.07 15:12
useradd mit plaintext-passwort?! keksinat0r Linux/UNIX 1 03.04.07 19:15
per "Known plaintext" Verschlüsselungsverfahren ermitteln? korda Cryptography & Encryption 3 12.05.05 19:07


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61