<< Habe meine beiden Hauptposts mal hier zusammengefasst >>
                                                              Zuletzt aktualisiert am: 
25.02.2004
Hi,
schon seit geraumer Zeit frag ich mich hier quer durchs Forum und hab schon einige gute Tipps 
bekommen und (hoffe ich) auch gegeben.  
 
 
Nun möchte ich mein erstes "grösseres" Programm mal von euch testen und auseinanderpflücken 
lassen. (Naja, grösser ist wohl relativ  

  )
Ich hoffe auf ein Feedback im Bezug auf 
Programmierstil (was könnte man einfacher machen) bzw. Funktionalität....
Vielleicht gibts ja noch Erweiterungs/Verbesserungsvorschläge..?!
Es geht um ein kleines Verschlüsselungsprogramm.
Nein, ich behaupte jetzt nicht, dass es unknackbar ist... 
 
 
Wäre cool wenn ihr mal ein paar Kommentare loswerden würdet... 
 
 
Ich programmiere mit Delphi nur so in meiner (sehr knappen) Freizeit..
Mit Verschlüsselung an sich kenn ich mich auch nich so aus.. 
 
 
Aber was besseres als ne Caesar-Verschöüsselung ist mir schon eingefallen...
Wer sich damit ein bischen auskennt könnte mir erklären wo mögliche Schwächen liegen... 
 
 
Versuchts einfach mal...
Bei Bedarf gibts auch ein paar Tipps...  
 Downloadlink : 
www.angelfire.com/ul...tverstecker_0006.zip
- Zum Zweck des Programms
 
Downloadlink : 
www.angelfire.com/ul...tverstecker_0006.zip
- Zum Zweck des Programms
  Mit diesem Programm kann man eine Textdatei "unsichtbar" in einem Bild verstecken...
  D.h. Das rechte Memofeld ist nur für die Ausgabe bestimmt....
  Man lädt ein Bild und eine Klartextnachricht. Wählt ein Passwort und legt los. (Verschlüsseln)
  Wahlweise lädt man ein codiertes Bild und gibt das Passwort ein (entschlüsseln).
  Man kann damit auch seine Bitmap Grafiken watermarken. Dann muss man sie weder in die Exe einbinden, noch umständlich in Resource files 
  packen.... Beim laden prüft man dann ob das entsprechende Bitmuster (Vgl. "Funktionsweise") vorliegt.
- Funktionsweise
  Das funktioniert so ähnlich wie ein digitales Watermarking. Ich verstecke die Informationen im "Least Significant Bit" (LSB)
  Ein Pixel hat sagen wir mal folgende Werte : Rot =213 Grün =45 Blau =52.
  Ein Zeichen des Klartextes ist als Bitfolge = "10011010" (zum Beispiel)...
  Nun einfach den ord() Wert als Pixelfarbe für R G oder B zu verwenden würde das Bild sehr stark verändern....
  Also interessiert man sich nur dafür ob der Wert gerade oder ungerade ist.....
  Entsprechend seiner Bitmaske des Zeichens verändert man diese Werte der Pixel dann (und zwar maximal um 1. Das sieht keiner....) Also aus .....
  (Rot =213 Grün =45 Blau =52) würde bei  key=1 und "gerade" zu codierendem Bit : (Rot =213 Grün =44 Blau =52).....
  Man benötigt also 8 Pixel zum Speichern eines Zeichens. Das bedeutet dass man in ein 800*600 Bitmap (ca. 250 KByte) max. 58 KByte Text 
  bekommt.... Aber egal... 
 
  Das Passwort erzeugt einen Key im Format: (Beispiel: 0,2,1,0,1,0,2,0,1,1,0,2), was angibt ob die Information 
  (gerade oder ungerade) im R G oder B Wert steckt... Hier sollen später über die Ulam Funktion noch Vieren eingefügt werden (Wer sagt denn
  das man in jedem Pixel was unterbringen muss.. 

 Wäre auch ne Lösung für den "Müll"-Bug.
- Bekannte Bugs
 -Das nach der Nachricht noch Müll decoded wird liegt daran, dass ich das ganze Bild decodieren lasse, da ich keine Möglichkeit habe, bisher zu erkennen 
  wann der codierte Text aufhört..... (siehe "weiterentwicklung")
 -An manchen Stellen treten auch in der ersten "korrekten" Sequenz einzelne Zeichenfehler auf. Davor und danach ist alles 
  fehlerfrei und die Zeichenfehler sind auch teilweise nicht reproduzierbar.... *dasmichetwasverwirrentut*
 -Text eingeben enabled den encode-it button nicht. Man muss ein textfile laden um encoden zu können
 -Der Decodieren-Button ist noch nicht DAU-proof.
 -Quelltext noch nicht dokumentiert.
 -Fortschrittsanzeige macht manchmal Mucken.........
- Vorteile (?)
  Man ahnt erstmal gar nicht das da überhaupt was verschlüsseltes drin ist ....
  Da nicht jeder Pixel verändert werden muss (wenn er gerade ist und das auch sein soll, bleibt er unverändert). D.h niemand 
  weiss was genau zum Code gehört und was nicht ...
  Auch durch ausprobieren nicht zu knacken... (denk ich mal.... ?????)
- Warum es Project1.exe heisst
  Weil mir, man glaubt es kaum, tatsächlich noch kein Name eingefallen ist ..  
 - Weiterentwicklung
- Weiterentwicklung (Reihenfolge nach abgeschätztem Schwierigkeitsgrad und pers. Priorität)
 - Einbau von Lücken um den Text über das gesamte Bild zu verteilen, dann wird auch kein Müll mehr am Ende decoded...
 - Ableiten einer Klasse 
TGenuineImage = class(TImage), die über Authentifizierungsmethoden verfügt und dies autonom 
   erledigt.
 - Die Wasserzeichen Variante "beständig" machen, d.h. Das Wasserzeichen darf beim resamplen nicht verlorengehen.. 
 - Mehrstufige Wasserzeichen dürfen sich nicht beeinflussen... (Evtl anderer Ansatz nötig?)
 - "Multi-Volume"- Archivierung. über mehrere Bilder hinweg... Krönung wäre: Inhalte in AVI-frames zu speichern.....
 - Das ganze für Audiodateien benutzen
Catweasel
 
Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.