Thema: Delphi Dateien verschlüsseln

Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 

Re: Dateien verschlüsseln

  Alt 9. Mai 2005, 08:07
Benutzt hier irgend jemand die Suche ?
oder schaut mal in der CodeLib rein ?

http://www.delphipraxis.net/internal...830&highlight=

ist eine sehr kompakte Unit die aber denoch sehr sichere Verschlüsselungen erlaubt.

Nochwas zum Aberglaube das XOR-Verschlüsselungen gleichbedeutend mit unsicherer Verschlüsselungen sind. Das ist schlichtweg falsch. Die XOR Operation als Operation innerhalb einer Verschlüsselung ist mathematisch gesehen absolut perfekt. Sie kippt/verändert ein Bit mit exakt 50% Wahrscheinlichkeit in einer Domain die aus 50%,50% -> eg. 0,1 Werten besteht. Sogesehen ist XOR als Operation eine der besten Möglichkeiten in der Verschlüsselung.

Was aber dabei wichtig ist ist die Frage mit WAS wird denn die Nachricht XOR verschlüsselt ? Und genau das ist der Punkt in dem die meisten XOR Verschlüsselungen, so wie die obige, absolut unsicher sind. Die meisten verchlüsseln XOR mit viel zu kurzen Schlüsseln und wiederholen stückchenweise immer den selben Schlüsseltext. Man nennt dies Schlüsselstrom, ein kontinuierlicher Strom von Bytes der von einem Initialschlüssel abhängig ist und mit der Nachricht XOR verknüpft wird. Ergo: ist dieser Strom von schlechter Qualität so wird das Ganze absolut unsicher. Hier mal eine Einstufung verschiedener Schlüsselströme:

1.) der sicherste ist der OTP basierend auf einem absolut zufälligem Schlüsselstrom. Nur das ist ein echter One Time Pad (es gibt nämlich viele andere Algorithmen die die Buchstaben OTP schamlos mißbrauchen).
Der Schlüssel beim OTP ist gleich dem Passwort, und dieses besteht komplett aus Zufallsdaten die nicht zb. durch Delphi Random erzeugt wurden. Dieser Schlüssel ist damit exakt so groß die die Nachticht selber und darf niemals wieder ein zweites mal benutzt werden.
Diese Form der Verschlüsselung ist die absolut sicherste Verschlüsselung, denn sie eben exakt auf Grund der mathematischen Eigenschaften der XOR Operation + dem Zufallspasswort mathematisch beweisbar sicher. Es ist mathematisch bewiesen wurden das es keinen Algorithmus geben kann der noch sicherer als ein solcher OTP ist. Begründung: bei einem OTP mit unbekanntem Passwort ist aus Sicht des Angreifers JEDE Nachrichtenkombination mit gleicher Länge zur Originalnachricht exakt gleichwahrscheinlich eine korrekte Lösung, ergo: nur mit dem absolut korrekten Schlüssel kann man exakt die originale Nachricht restaurieren. Die Verschlüsselungs-dichte ist also maximal, d.h. exakt gleich der Schlüssellänge und damit gleich der Nachrichtenlänge.

2.) die starken Verschlüsselungen, eben solche wie in den einschlägigen Standards und alle die im DEC integriert sind. Das sind schon wesentlich komplexere Verfahren. Essentiell geht es immer darum aus einem kurzen Passwort einen Strom von Bytes zu erzeugen der nicht vorhersagbar ist wenn man dieses Passwort nicht besitzt. Nicht vorhersagbar bezieht sich aber immer auf die entsprechenden Schranken. Das bedeutet im Idealfalle das man ein solches Verfahren nur knacken kann wenn man alle möglichen Schlüsselkombinationen durchprobieren muß. Ergo: die Schlüssellänge in Bits bestimmt die Gesamt-Maximal-Sicherheit des Systemes. Im besten Falle ist der Algorithmus so gut das er mit einem Zufallspasswort das die gleiche länge wie die Nachricht selber hat den in Punkt 1.) besprochenen idealem OTP entspräche. Kann man dies mathematisch beweisen so ist der Algorithmus definitiv sicher. Da im Normalfall aber das Passwort eben nicht die Länge der Nachricht hat und eben nicht per reinem Zufall gewählt wurde kann auch ein solcher starker Algorithmus niemals mathematisch 100% sicher sein. Die effektiven Schlüssellänge und die Qualtität des Schlüssels bestimmt dann als Alleiniges die Sicherheit. Jede Mehrfachbenutzung des gleichen Passwortes reduziert somit auch die Gesamtsicherheit aller vorherig verschlüsselten Nachrichten umd den Faktor 2. Logisch da das aus der Definition der 100%'tig sicheren Verschlüsselung, obiger Punkt 1.) OTP, ersichtlich wird.

3.) XOR Verschlüsselungen die solche Funktionen wie Delphi's Random() als Schlüsselstrom benutzen. Delphis Random ist ein LCG=Linear Congruential Generator und mit seinen 32Bit viel zu kurz. LCG's sind an sich schon schlechte Pseudozufallsgeneratoren und in der Kryptographie verpönt, weil sie eben knackbar sind.

4.) XOR Verschlüsselungen die das Passwort direkt als Schlüsselstrom benutzen. Das ist wohl die übelste und unsicherste Form überhaupt. Der obige Algo. ist ein solcher. Ich schicke dir eine Nachricht die in weiten Teilen nur aus Nullen=$00 besteht und du schickst mir das verschlüsselte Resultat zurück. In dieser Nachricht kann ich in 1 zu 1 Form dein benutztes Passwort ablesen. Somit entsteht folgende Situation:

Du glaubst das dein Verfahren sicher ist und verlässt dich darauf. Ich weis das dein Verfahren unsicher ist und nutze das aus um dich zu schädigen.

Wenn man garnicht verschlüsselt so beträgt die Sicherheit exakt 0 Prozent. Wenn man mit solchen Verfahren wie oben verschlüsselt beträgt die Sicherheit exakt -100 %, in Worten: minus hundert Prozent. Denn du glaubst es ist sicher und ich weis das es unsicher ist. Während du dich also 100'prozentig in Sicherheit wähnst habe ich deine Daten mit 100% Wahrschenlichkeit schon längst geknackt. Übrig bleibt wweit eniger als 0 Prozent Sicherheit, sozusagen 100% Un-Sicherheit.

Fazit: obigen Algorithmus zu benutzen grenzt an Sabotage, denn er ist unsicherer als garnicht zu verschlüsseln. Denn wenn ich man nicht verschlüsselt weis man das es unsicher sein [b]muß[/]. Benutzt man obigen Algorithmus dann wähnt man sich sicher obwohl es definitiv unsicher ist. Es sollte logischerweise wohl jedem von euch einleuchtend sein das dies gefährlicher ist als garnicht zu verschlüsseln.

Gruß Hagen
  Mit Zitat antworten Zitat