Blowfish oder doppelt hält besser
Blowfish oder doppelt hält besser
Hallo.
Ich verwende in einem Programm eine Implementierung des Blowfish-Algorithmus'. In unserem Fall verschlüsselt er Dateien.
Es gibt meines Wissens noch keine kryptoanalytischen Angriff, so daß die Entschlüsselung nur per brut-force-attack zum Erfolg führen kann.
Doch wie erkennt ein Angreifer, daß er den richtigen Schlüssel gewählt hat?
Er müßte sich die Datei mit einem Hexeditor anschauen um an bestimmten Merkmalen herauszufinden, mit welchem Programm er die vermeintlich entschlüsselte Datei öffnen kann.
So weit so klar, oder?
Wenn ich aber den Algorithmus zweimal anwende, die verschlüsselte Datei noch mal verschlüssele, kann der Angreifer bei keinem aller möglichen Schlüssel ein Treffer finden und ist gescheitert.
Oder sehe ich was falsch?
Wie seht ihr Profis das?
Bert
Ich verwende in einem Programm eine Implementierung des Blowfish-Algorithmus'. In unserem Fall verschlüsselt er Dateien.
Es gibt meines Wissens noch keine kryptoanalytischen Angriff, so daß die Entschlüsselung nur per brut-force-attack zum Erfolg führen kann.
Doch wie erkennt ein Angreifer, daß er den richtigen Schlüssel gewählt hat?
Er müßte sich die Datei mit einem Hexeditor anschauen um an bestimmten Merkmalen herauszufinden, mit welchem Programm er die vermeintlich entschlüsselte Datei öffnen kann.
So weit so klar, oder?
Wenn ich aber den Algorithmus zweimal anwende, die verschlüsselte Datei noch mal verschlüssele, kann der Angreifer bei keinem aller möglichen Schlüssel ein Treffer finden und ist gescheitert.
Oder sehe ich was falsch?
Wie seht ihr Profis das?
Bert
Meine erste Idee hierzu war: http://de.wikipedia.org/wiki/Data_Encry ... Triple-DES
a.
a.
- Lasse Kolb
- Vereinsvorstand
- Beiträge: 1355
- Registriert: 03.12.2002 21:06
- Wohnort: Braunschweig/Hondelage
- Kontaktdaten:
Re: Blowfish oder doppelt hält besser
Bin auch kein Experte, aber Lutz Donnerhacke hat - soweit ich mich erinnere - mal gesagt, dass eine Doppel-Verschlüsselung keinen Mehr-Nutzen bringt.
Der Blowfish-Algo an sich ist nach wie vor sehr gut!
Gruß,
Lasse
Der Blowfish-Algo an sich ist nach wie vor sehr gut!
Gruß,
Lasse
Re: Blowfish oder doppelt hält besser
...wenn man 2x mit dem gleichen Verfahren und den gleichen Schlüsseln verschlüsselt, oder?lasse hat geschrieben:Bin auch kein Experte, aber Lutz Donnerhacke hat - soweit ich mich erinnere - mal gesagt, dass eine Doppel-Verschlüsselung keinen Mehr-Nutzen bringt.
- Lasse Kolb
- Vereinsvorstand
- Beiträge: 1355
- Registriert: 03.12.2002 21:06
- Wohnort: Braunschweig/Hondelage
- Kontaktdaten:
Re: Blowfish oder doppelt hält besser
Vermutlich ...SpeedKing hat geschrieben:...wenn man 2x mit dem gleichen Verfahren und den gleichen Schlüsseln verschlüsselt, oder?lasse hat geschrieben:Bin auch kein Experte, aber Lutz Donnerhacke hat - soweit ich mich erinnere - mal gesagt, dass eine Doppel-Verschlüsselung keinen Mehr-Nutzen bringt.
http://www.softgames.de/forum/frage118721.html
Eine Zusammenfassung von dem Forum:
Wendet man 2x das gleiche Verfahren an, so ist es besser, stattdessen das Verfahren nur 1x mit einem längeren Schlüssel anzuwenden.
Wendet man zwei verschiedene Verfahren an, so kann das je nach Verfahren wesenlich mehr Sicherheit bringen als 1x mit einem längeren Schlüssel. Man muß aber genau wissen, welche Verfahren man verwendet, sonst kann es sogar einen Verlust an Sicherheit bewirken.
Wendet man 2x das gleiche Verfahren an, so ist es besser, stattdessen das Verfahren nur 1x mit einem längeren Schlüssel anzuwenden.
Wendet man zwei verschiedene Verfahren an, so kann das je nach Verfahren wesenlich mehr Sicherheit bringen als 1x mit einem längeren Schlüssel. Man muß aber genau wissen, welche Verfahren man verwendet, sonst kann es sogar einen Verlust an Sicherheit bewirken.
Re: Blowfish oder doppelt hält besser
Das halte ich für ein Gerücht.
Und zwar betrachte man folgenden sogenannten Meet-In-The-Middle Angriff, eine Form eines known-plaintext Angriffs (btw. nicht zu verwechseln mit dem Man-In-The-Middle Angriff):
Sei E(k,x) die Verschlüsselungsfunktion, D(k,x) die Entschlüsselungsfunktion
eines symmetrischen Kryptoverfahrens (wie Blowfish, AES, DES).
Wenn wir zweimal mit einem n-Bit Schlüssel verschlüsseln, berechnen wir also E(k1,E(k2,x)).
Angenommen wir haben ein Klartext/Chiffretext-Paar (m,c) gegeben, dann können wir folgendes machen:
1. Schritt:
D(k2,c) berechnen für alle Schlüssel k2 => Aufwand: O(2^n)
und speichern des Ergebnisses für alle k in einer Hashmap, so dass nach D(k2,c) im Mittel in O(1) zugegriffen werden kann => Speicheraufwand: O(2^n)
2. Schritt:
E(k1,m) berechnen für alle Schlüssel k1 und dabei jedes Mal prüfen, ob das Ergebnis in der Hashmap liegt, ist dies der Fall haben wir unser Schlüsselpaar k1,k2 gefunden
=> Aufwand: O(2^n)
Insgesamt haben wir also einen Zeitkomplexität von O(2^(n+1)) und eine Platzkomplexität von O(2^n).
Nehmen wir jetzt aber einen doppelt so langen Schlüssel und verschlüsseln nur einmal, haben wir im Brute-Force-Verfahren eine Zeitkomplexität von O(2^2n) und somit einen quadratischen Sicherheitszuwachs.
Das ist übrigens der Grund dafür, dass 3DES verwendet wird und nicht 2DES, bei 3DES funktioniert obiger Angriff nicht (zumindest nicht vollständig) und die effektive Schlüssellänge ist doppelt so lang.
Warum dann nicht einfach DES mit doppelt so langem Schlüssel nehmen?
Weil DES in vielen Anwendungen in Hardware realisiert ist und 3DES einfach die alte Implementierung verwenden kann.
Grüße
archre
Und zwar betrachte man folgenden sogenannten Meet-In-The-Middle Angriff, eine Form eines known-plaintext Angriffs (btw. nicht zu verwechseln mit dem Man-In-The-Middle Angriff):
Sei E(k,x) die Verschlüsselungsfunktion, D(k,x) die Entschlüsselungsfunktion
eines symmetrischen Kryptoverfahrens (wie Blowfish, AES, DES).
Wenn wir zweimal mit einem n-Bit Schlüssel verschlüsseln, berechnen wir also E(k1,E(k2,x)).
Angenommen wir haben ein Klartext/Chiffretext-Paar (m,c) gegeben, dann können wir folgendes machen:
1. Schritt:
D(k2,c) berechnen für alle Schlüssel k2 => Aufwand: O(2^n)
und speichern des Ergebnisses für alle k in einer Hashmap, so dass nach D(k2,c) im Mittel in O(1) zugegriffen werden kann => Speicheraufwand: O(2^n)
2. Schritt:
E(k1,m) berechnen für alle Schlüssel k1 und dabei jedes Mal prüfen, ob das Ergebnis in der Hashmap liegt, ist dies der Fall haben wir unser Schlüsselpaar k1,k2 gefunden
=> Aufwand: O(2^n)
Insgesamt haben wir also einen Zeitkomplexität von O(2^(n+1)) und eine Platzkomplexität von O(2^n).
Nehmen wir jetzt aber einen doppelt so langen Schlüssel und verschlüsseln nur einmal, haben wir im Brute-Force-Verfahren eine Zeitkomplexität von O(2^2n) und somit einen quadratischen Sicherheitszuwachs.
Das ist übrigens der Grund dafür, dass 3DES verwendet wird und nicht 2DES, bei 3DES funktioniert obiger Angriff nicht (zumindest nicht vollständig) und die effektive Schlüssellänge ist doppelt so lang.
Warum dann nicht einfach DES mit doppelt so langem Schlüssel nehmen?
Weil DES in vielen Anwendungen in Hardware realisiert ist und 3DES einfach die alte Implementierung verwenden kann.
Grüße
archre
Re: Blowfish oder doppelt hält besser
Verstehe ich nicht...archre hat geschrieben:Das halte ich für ein Gerücht.
O(2^(n+1)) ist doch kleiner als O(2^2n), oder?archre hat geschrieben: Insgesamt haben wir also einen Zeitkomplexität von O(2^(n+1)) und eine Platzkomplexität von O(2^n).
Nehmen wir jetzt aber einen doppelt so langen Schlüssel und verschlüsseln nur einmal, haben wir im Brute-Force-Verfahren eine Zeitkomplexität von O(2^2n) und somit einen quadratischen Sicherheitszuwachs.
Re: Blowfish oder doppelt hält besser
exakt und da die Zeitkomplexität quadratisch größer ist, ist das Verfahren sicherer
d.h. ein Angreifer, der bei einem Verfahren mit doppelter Verschlüsselung 10h zum Knacken braucht, bräuchte bei einem Verfahren mit doppelt so langem Schlüssel 100h
d.h. ein Angreifer, der bei einem Verfahren mit doppelter Verschlüsselung 10h zum Knacken braucht, bräuchte bei einem Verfahren mit doppelt so langem Schlüssel 100h
Re: Blowfish oder doppelt hält besser
Und warum ist das dann ein Gerücht?
Re: Blowfish oder doppelt hält besser
naja das ist doch nur so eine Redensart, "das halte ich für ein Gerücht"SpeedKing hat geschrieben:Und warum ist das dann ein Gerücht?
oder anders ausgedrückt "ich habe einen Gegenbeweis"...