Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Verschlüsselungsalgorhythmen (https://www.delphipraxis.net/59538-verschluesselungsalgorhythmen.html)

Chrissi91 23. Dez 2005 21:07


Verschlüsselungsalgorhythmen
 
Hallo :hi:,

ich suche einen Verschlüsselungsalgorhythmus, den ich einfach einbinden kann ( Unit ). Mit diesem Algorhythmus möchte ich alle möglichen Daten verschlüsseln und wieder entschlüsseln können. Das Ver - und Entschlüsseln soll mittels eines Passwortes geschehen.

Die Unit möchte ich einbinden, und nur mit einem Befehl aufrufen, wie Xor ( auch wenn Xor keine Unit ist, oder? :lol: ).

Dieser Verschlüsselungsalgorhythmus soll möglichst sicher sein. Ich weiß, es gibt keinen 100%ig sicheren Verschlüsselungsalgorhythmus. Auf das Thema möchte ich jetzt auch nicht weiter eingehen :xmas:.

Also, um noch mal auf meine eigentliche Frage zurückzukehren: Welcher moderne Verschlüsselungsalgorhythmus ist für meine Beanspruchungen empfehlenswert?

PierreB 23. Dez 2005 21:09

Re: Verschlüsselungsalgorhythmen
 
Hier im Forum suchenMD5 oder Hier im Forum suchenDEC. Nur zwei von vielen...

Chrissi91 23. Dez 2005 21:12

Re: Verschlüsselungsalgorhythmen
 
Ich dachte MD5 ist solch ein Teil mit Hash und dings da bums :lol: , oder war das MD4?

GuenterS 23. Dez 2005 21:13

Re: Verschlüsselungsalgorhythmen
 
Zitat:

Zitat von PierreB
Hier im Forum suchenMD5 oder Hier im Forum suchenDEC. Nur zwei von vielen...

Also MD5 ist _kein_ Verschlüsselungsalgorythmus. Du kannst zwar Deinen Ausgangstext wunderbar unkenntlich machen, aber leider nicht mehr zurück, da das MD5 Verfahren ein one-way Hash Verfahren ist.

3_of_8 23. Dez 2005 21:14

Re: Verschlüsselungsalgorhythmen
 
Bei den JEDIS gibt es einige Verschlüsselungsalgorithmen.

Chrissi91 23. Dez 2005 21:14

Re: Verschlüsselungsalgorhythmen
 
Zitat:

Zitat von GuenterS
Zitat:

Zitat von PierreB
Hier im Forum suchenMD5 oder Hier im Forum suchenDEC. Nur zwei von vielen...

Also MD5 ist _kein_ Verschlüsselungsalgorythmus. Du kannst zwar Deinen Ausgangstext wunderbar unkenntlich machen, aber leider nicht mehr zurück, da das MD5 Verfahren ein one-way Hash Verfahren ist.

Sag ich doch :mrgreen:

Immer diese Leute, die posten, ohne vorher nachzudenken :-D *scherz*

PierreB 23. Dez 2005 21:18

Re: Verschlüsselungsalgorhythmen
 
Zitat:

Zitat von Chrissi91
Sag ich doch :mrgreen:

Immer diese Leute, die posten, ohne vorher nachzudenken :-D *scherz*

Hm, zu meiner Verteidigung, selbst MD5 wurde schon geknackt und der vorher "gehashte" Text (oder was auch immer) wurde wiederhergestellt. Man barucht nur Zeit und viel Rechenpower :P

Warum bastelst du dir nich einfach einen mega-monster-komplizierten Algorithmus mit XOR ? :-)

Chrissi91 23. Dez 2005 21:25

Re: Verschlüsselungsalgorhythmen
 
Weil ich schon viel mit Xor gemacht habe und ich mich nun mit einem anderen, moderneren Algorhythmus auseinandersetzen möchte. :???:

Tut mir leid, ich wurde mit der Suche DEC nicht fündig. Ich habe nirgends eine Unit, noch ein Beispiel gefunden. In der CodeLibary war auch nichts, was mir weiterhilft. Ich glaube ich stelle mich zu dämlich an, wie so oft. :-D :mrgreen:

hanselmansel 23. Dez 2005 21:35

Re: Verschlüsselungsalgorhythmen
 
Wenn ich mich recht erinnere ist hagens DEC u.a. auf www.luckie-online.de und auch mehreren anderen Delphi-Seiten zu finden.

PierreB 23. Dez 2005 21:36

Re: Verschlüsselungsalgorhythmen
 
Lies mal hier:
http://www.delphipraxis.net/internal...t=dec+download

Chrissi91 23. Dez 2005 21:44

Re: Verschlüsselungsalgorhythmen
 
Aha. Ich glaube, ich verstehe langsam. DEC beinhaltet viele Algorhythmen, richtig? Wenn ja, welcher davon ist denn jetzt empfehlenswert? :lol:

PierreB 23. Dez 2005 21:47

Re: Verschlüsselungsalgorhythmen
 
Zitat:

Zitat von Chrissi91
Aha. Ich glaube, ich verstehe langsam. DED beinhaltet viele Algorhythmen, richtig? Wenn ja, welcher davon ist denn jetzt empfehlenswert? :lol:

Nach nur 10 Minuten Suche in der DP habe ich bereits viele sehr (für dich) interessante Threads gefunden, warum suchst du nicht einfach mal und liest dir die Threads auch intensiv durch ?

Matze 23. Dez 2005 21:47

Re: Verschlüsselungsalgorhythmen
 
Ich denke, das kommt darauf an, was du machen möchtest. Früher habe ich mal den genutzt:

Delphi-Quellcode:
with TCipher_Twofish.Create(crypt_pw, nil) do [...]
Also Twofish


Rjindael soll auch gut sein, ob dieser integriert ist, weiß ich nicht, doch das Dec ist allgemein ein klasse Teil, was die Algorithmen anbelangt.

hanselmansel 23. Dez 2005 21:48

Re: Verschlüsselungsalgorhythmen
 
Du hast es durchschaut. Aber wenn ich mich immernoch richtig erinnere, habe ich bei Lukie auch eine Doku dazu gesehen. Ich kann micht diesbezüglich aber irren.

Generell sagt Hagen selbst vom DEC, dass es keine neuen Algorithmen enthält, sondern sehr sauber implementierte Codes bekannter und anerkannter Verschlüsselungen. Von denen kannst du dir also den Algorithmus deines Vertrauens auswählen, und den Herrn Google nach der entsprecheneden Doku fragen.

Chrissi91 23. Dez 2005 21:52

Re: Verschlüsselungsalgorhythmen
 
Zitat:

Zitat von PierreB
Warum bastelst du dir nich einfach einen mega-monster-komplizierten Algorithmus mit XOR ? :-)

um nochmal darauf zurückzgreifen. Mir föllt da im Moment nich viel ein. Was meinst du damit? Wnn der User ein PW angibt, was soll ich denn da noch xor?

St.Pauli 23. Dez 2005 21:55

Re: Verschlüsselungsalgorhythmen
 
XOR Funktioniert nur mit Text und Passwort! Im groben gesagt

Delphi-Quellcode:
Verschlüsseltertext := Text XOR Passwort;
Und du sollst dir da noch ein paar Kniffe überlegen, es komplizierter zu machen :wink:

jfheins 23. Dez 2005 22:01

Re: Verschlüsselungsalgorhythmen
 
Hier in der Code-Library ist auch ein RCx von Hagen, der ist recht einfach anzuwenden ;)

Airblader 23. Dez 2005 22:09

Re: Verschlüsselungsalgorhythmen
 
Zitat:

Zitat von PierreB
Zitat:

Zitat von Chrissi91
Sag ich doch :mrgreen:

Immer diese Leute, die posten, ohne vorher nachzudenken :-D *scherz*

Hm, zu meiner Verteidigung, selbst MD5 wurde schon geknackt und der vorher "gehashte" Text (oder was auch immer) wurde wiederhergestellt. Man barucht nur Zeit und viel Rechenpower :P

was aber keine Entschlüsselung sondern BruteForcing ist. Wo ist da deine Verteidigung? :gruebel: ;)

air

PierreB 23. Dez 2005 22:17

Re: Verschlüsselungsalgorhythmen
 
Zitat:

Zitat von Airblader
was aber keine Entschlüsselung sondern BruteForcing ist. Wo ist da deine Verteidigung? :gruebel: ;)

Wie man das bezeichnet ist wohl nicht relevant, hauptsache man kommt wieder zum ursprünglichen Text. ;)

jfheins 23. Dez 2005 22:21

Re: Verschlüsselungsalgorhythmen
 
Zitat:

Zitat von PierreB
Zitat:

Zitat von Airblader
was aber keine Entschlüsselung sondern BruteForcing ist. Wo ist da deine Verteidigung? :gruebel: ;)

Wie man das bezeichnet ist wohl nicht relevant, hauptsache man kommt wieder zum ursprünglichen Text. ;)

Was nicht garantiert ist :wink:

Beispiel:

qwertzu gibt 2bf345c67ab45678d6789e789f3ea93f8
asdfghjk gibt auch 2bf345c67ab45678d6789e789f3ea93f8

Du hast 2bf345c67ab45678d6789e789f3ea93f8 - welches ist der orginaltext?

>>> Man kann einen Text mit dem gleichen Hash finden, aber es ist nicht garantiert, dass es der Ausgangstext ist.

XHelp 24. Dez 2005 00:06

Re: Verschlüsselungsalgorhythmen
 
hash und verschlüsselung kann man nicht auf eine ebene stellen... das sind verschiedene sachen...
Du kannst auch das mittels rar (oder aehnlichem) mit einem password packen... hast auch den vorteil, dass dein verschl. text kleiner ist...
Wie "sicher" muss denn dein text verschluesselt sein?

Chrissi91 24. Dez 2005 08:03

Re: Verschlüsselungsalgorhythmen
 
Zitat:

Zitat von St.Pauli
XOR Funktioniert nur mit Text und Passwort! Im groben gesagt

Delphi-Quellcode:
Verschlüsseltertext := Text XOR Passwort;
Und du sollst dir da noch ein paar Kniffe überlegen, es komplizierter zu machen :wink:

Sco klar, aber meine Frage bezog sich auf die sogenannten Kniffe. ;)

Zitat:

Zitat von XHelp
hash und verschlüsselung kann man nicht auf eine ebene stellen... das sind verschiedene sachen...
Du kannst auch das mittels rar (oder aehnlichem) mit einem password packen... hast auch den vorteil, dass dein verschl. text kleiner ist...
Wie "sicher" muss denn dein text verschluesselt sein?

Ich hatte mal ein Verschlüsselungsprogramm (Xor) programmiert. Jetzt bin ich gerade am Umschreiben für andere Algorhythmen.

GuenterS 24. Dez 2005 09:39

Re: Verschlüsselungsalgorhythmen
 
Zitat:

Zitat von St.Pauli
XOR Funktioniert nur mit Text und Passwort! Im groben gesagt

Delphi-Quellcode:
Verschlüsseltertext := Text XOR Passwort;
Und du sollst dir da noch ein paar Kniffe überlegen, es komplizierter zu machen :wink:

XOR funktioniert mit jedem beliebigen Zeichen.

PierreB 24. Dez 2005 09:41

Re: Verschlüsselungsalgorhythmen
 
Zitat:

Zitat von jfheins
qwertzu gibt 2bf345c67ab45678d6789e789f3ea93f8
asdfghjk gibt auch 2bf345c67ab45678d6789e789f3ea93f8

Du hast 2bf345c67ab45678d6789e789f3ea93f8 - welches ist der orginaltext?

Ehrlich ? Ich dachte MD5 generiert einen eindeutigen einmaligen Hash ? :gruebel:

Luckie 24. Dez 2005 09:46

Re: Verschlüsselungsalgorhythmen
 
Zitat:

Zitat von PierreB
Ich dachte MD5 generiert einen eindeutigen einmaligen Hash ? :gruebel:

Wie sollte es?
Zitat:

Zitat von Wikipedia
MD5 erzeugt aus einer Nachricht variabler Länge eine Ausgabe fester Länge (128 Bit).

Du hast nur 128 Bit zur Verfügung. Es gibt also nur 2 hoch 128 kombinationen. Es dürfte aber wesentlich mehr Zeichenkombinationen geben, so dass es irgendwann zu einer Kollision kommen muss. Die Wahrscheinlichkeit einer Kollision ist nur sehr gering.

PierreB 24. Dez 2005 09:49

Re: Verschlüsselungsalgorhythmen
 
Zitat:

Du hast nur 128 Bit zur Verfügung. Es gibt also nur 2 hoch 128 kombinationen. Es dürfte aber wesentlich mehr Zeichenkombinationen geben, so dass es irgendwann zu einer Kollision kommen muss.
Ah ok, und welches Verfahren wäre dann eindeutig (gibt es etwas eindeutiges?) ?

Luckie 24. Dez 2005 09:53

Re: Verschlüsselungsalgorhythmen
 
Ja, ein Hash Verfahren, dass genauso groß wie die Daten ist. Damit würde man aber den Sinn eines Hashes ad adsurdum führen, da ein Hash die vereinfachte Darstellung von etwas wesentlich komplexeren sein soll. Beispiel: Um zwei große Dateien zu vergleichen, kann ich zum Beispiel einen Hash von beiden generieren und dann die beiden Hashes vergleichen. Dies ist meist effizienter, als beide Dateien direkt zu vergleichen.

PierreB 24. Dez 2005 09:59

Re: Verschlüsselungsalgorhythmen
 
Warte mal, heißt das jetzt das das CRC32 verfahren auch nicht eindeutig ist ? Jetzt versteh ich gar nichts mehr. :gruebel:

negaH 25. Dez 2005 07:15

Re: Verschlüsselungsalgorhythmen
 
Überlege doch mal logisch:

Du hast eine Menge von Datenelementen wobei jedes Element beispielweise 256 Bit groß ist. Ergo die Cardinalität dieser Menge ist exakt 2^256, es gibt also 2^256 verscheidene Elemente in dieser Menge.

Nun ereugst du einen Hash oder meinetwegen Prüfsumme die selber aber kürzer als 256 Bit ist. Sagen wir mal 128 Bit groß. D.h. die Hashfunktion mappt alle 2^256 Elemente auf eine Menge von nur 2^128 möglichen Hashs. Ergo um eine eineindeutige Abbildung der 2^256 Elemente erreichen zu können müsste die Hashfunktion ebenfalls 2^256 mögliche Outputs erzeugen können. Kann sie aber bei 128 Bit Größe niemals. Infakt ist es so das bei 2^256 Elementen zu jedem dieser 2^256 Elemente exakt 2^128 andere Elemente gäbe die den gleichen Hash erzeugen würde. Es gibt also zu EINEM dieser 2^256 Elemente exakt 2^128 mögliche Kollisionen !

Wenn man nun die Größe der möglichen Eingangsmenge auf unendlich hoch setzt, was die größe der in der Natur existenten Datenmenge darstellt so wird es zu jedem dieser unendlich vielen Datenelementen exakt "unendlich - 2^128" mögliche Kollisionen geben. Unendlich - 2^128 == Unendlich, ergo die Wahrscheinlichkeit eines Duplikates einer 128 Bit Hashfunktion beträgt 100% - 1 / (unendlich - 2^128), defakto also 100% !

ABER, alleine diese ganz ganz kleine Differenz von 1 zu "1 - 1 / (unendlich - 2^128)" also dieses 2^128 ist für den Menschen so gewaltig groß das er praktisch gesehen nicht mehr in der Lage ist solche Kollisionen gezielt zu erzeugen !

Das Begreifen dieser Erkenntnis war es das die Mathematiker lange Zeit glauben ließen das es einen Algortihmus wie Hashfunktionen garnicht geben kann. Infinitiv betrachtet stimmt das auch heute noch denn 1 - 1 / (unendlich - 2^128) ist defakto 0,9999... mit unendlichen 9'en nach dem Komma, also gerundet 1,0.
Aber praktisch bedeutet die Differenz von 0,00000 unendlich 01 eine Differenzmenge von 2^128 möglichen Hashs und das ist schon so gewaltig groß das es praktisch unknackbar wird.

Eine Hashfunktion ist also ein mathematisches Konstrukt das aus Sicht der Unendlichkeit niemals funktioniert, aber aus Sicht UNSERER Endlichkeit, unserer zeitlichen Lebenspanne, unserer begrenzten Resourcen und unserem unendlich kleinem Wissen, sehrwohl funktioniert.

Denn wir leben und begreifen die Unendlichkeit nicht, alles ist für uns endlich und diese Endlichkeit hat aus heutiger Sicht eine Grenze bei ca. 2^128.

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz