it-swarm.com.de

AES vs Blowfish für die Dateiverschlüsselung

Ich möchte eine Binärdatei verschlüsseln. Mein Ziel ist es, zu verhindern, dass jemand die Datei liest, der kein Passwort hat.

Welches ist die bessere Lösung, AES oder Blowfish mit der gleichen Schlüssellänge? Wir können davon ausgehen, dass der Angreifer über große Ressourcen (Software, Wissen, Geld) verfügt, um die Datei zu knacken.

106
mimrock

wahrscheinlich AES. Blowfish war der direkte Vorgänger von Twofish. Twofish war Bruce Schneiers Einstieg in den Wettbewerb, der AES hervorbrachte. Es wurde als schlechter beurteilt als ein Eintrag namens Rijndael, der zu AES wurde.

Nebenbei interessant: An einem Punkt des Wettbewerbs wurden alle Teilnehmer gebeten, ihre Meinung zur Rangordnung der Chiffren abzugeben. Es ist wahrscheinlich keine Überraschung, dass jedes Team seinen eigenen Eintrag als das Beste auswählte - aber jedes andere Team wählte Rijndael als das zweitbeste.

Das heißt, es gibt einige grundlegende Unterschiede in den grundlegenden Zielen von Blowfish vs. AES, die (wohl) Blowfish in Bezug auf absolute Sicherheit begünstigen können. Blowfish versucht insbesondere, einen Brute-Force-Angriff (Schlüssel-Erschöpfung) zu erschweren, indem das anfängliche Einrichten der Schlüssel zu einem relativ langsamen Vorgang wird. Für einen normalen Benutzer ist dies von geringer Bedeutung (es ist immer noch weniger als eine Millisekunde), aber wenn Sie Millionen von Schlüsseln pro Sekunde ausprobieren, um das Problem zu lösen, ist der Unterschied beträchtlich.

Letztendlich sehe ich das jedoch nicht als großen Vorteil. Ich würde allgemein AES empfehlen. Meine nächste Wahl wäre wahrscheinlich Serpent, MARS und Twofish in dieser Reihenfolge. Blowfish würde irgendwo nach diesen kommen (obwohl es ein paar andere gibt, die ich wahrscheinlich vor Blowfish empfehlen würde).

187
Jerry Coffin

Es ist eine nicht oft anerkannte Tatsache, dass die Blockgröße einer Blockverschlüsselung auch ein wichtiger Sicherheitsaspekt ist (wenn auch bei weitem nicht so wichtig wie die Schlüsselgröße).

Blowfish (und die meisten anderen Blockchiffren der gleichen Epoche wie 3DES und IDEA) haben eine 64-Bit-Blockgröße, die für die heutzutage üblichen großen Dateien als unzureichend angesehen wird (je größer die Datei und je kleiner die Blockgröße) Je höher die Wahrscheinlichkeit eines wiederholten Blocks im Chiffretext ist - und solche wiederholten Blöcke sind in der Kryptoanalyse äußerst nützlich).

AES hingegen hat eine Blockgröße von 128 Bit. Allein diese Überlegung rechtfertigt die Verwendung von AES anstelle von Blowfish.

23
caf

In Bezug auf die Algorithmen selbst würde ich mich für AES entscheiden, denn der einfache Grund ist, dass es vom NIST akzeptiert wird und jahrelang von Fachleuten begutachtet und kryptografiert wird. Ich würde jedoch vorschlagen, dass in praktischen Anwendungen, es sei denn, Sie speichern eine Datei, die die Regierung geheim halten möchte (in diesem Fall liefert Ihnen der NSA wahrscheinlich einen besseren Algorithmus als AES und Blowfish), bei dem einer dieser Algorithmen verwendet wird, stellt keinen großen Unterschied dar. Die gesamte Sicherheit sollte im Vordergrund stehen, und beide Algorithmen sind resistent gegen Brute-Force-Angriffe Nutze nicht die vollen 16 Runden. Und während AES neuer ist, sollte dich diese Tatsache mehr zu BlowFish neigen (wenn du nur das Alter berücksichtigst). Wenn du es so betrachtest, gibt es BlowFish schon seit den 90ern und niemand (von dem wir wissen) hat es noch gebrochen ....

Hier ist, was ich für Sie darstellen würde ... Anstatt diese beiden Algorithmen zu betrachten und zu versuchen, zwischen den Algorithmen zu wählen, warum betrachten Sie nicht Ihr Schlüsselerzeugungsschema. Ein potenzieller Angreifer, der Ihre Datei entschlüsseln möchte, wird nicht dort sitzen und sich einen theoretischen Satz von Schlüsseln ausdenken, der verwendet werden kann, und dann einen Brute-Force-Angriff ausführen, der Monate dauern kann. Stattdessen wird er etwas anderes ausnutzen, z. B. Ihre Serverhardware angreifen, Ihre Assembly zurückentwickeln, um den Schlüssel zu finden, eine Konfigurationsdatei zu finden, die den Schlüssel enthält, oder Ihren Freund erpressen, um eine Datei von Ihrem Computer zu kopieren . Diese werden dort sein, wo Sie am anfälligsten sind, nicht der Algorithmus.

16
nerdybeardo

AES.

(Ich nehme auch an, du meinst Twofish, nicht den viel älteren und schwächeren Blowfish)

Beide (AES & Twofish) sind gute Algorithmen. Aber selbst wenn sie gleich wären oder in technischer Hinsicht etwas voraus wären, würde ich mich immer noch für AES entscheiden.

Warum? Werbung. AES ist DER Standard für Regierungsverschlüsselung und wird daher auch von Millionen anderer Unternehmen verwendet. Ein talentierter Kryptoanalytiker findet bei AES einfach mehr "Bang for the Buck" als bei weniger bekannten und verwendeten Twofishs.

Unbekanntheit bietet keinen Schutz bei der Verschlüsselung. Es ist immer besser, mehr Körper zu sehen, zu studieren, zu untersuchen und einen Algorithmus anzugreifen. Sie möchten den "überprüften" Algorithmus, der derzeit möglich ist, nämlich AES. Wenn ein Algorithmus keiner intensiven und kontinuierlichen Prüfung unterzogen wird, sollten Sie ein geringeres Vertrauen in seine Stärke setzen. Sicher, Twofish wurde nicht kompromittiert. Liegt das an der Stärke der Chiffre oder einfach daran, dass nicht genug Leute genau hinschauen ..... NOCH

8
Gerald Davis

Die Wahl des Algorithmus spielt wahrscheinlich keine Rolle. Ich würde AES verwenden, da es besser erforscht wurde. Viel wichtiger ist die Wahl der richtigen Betriebsart und Tastenableitungsfunktion .

Sie können sich auch die TrueCrypt-Formatspezifikation ansehen, um sich inspirieren zu lassen, wenn Sie schnellen Direktzugriff wünschen. Wenn Sie keinen Direktzugriff benötigen, ist XTS nicht der optimale Modus, da es Schwächen aufweist, die andere Modi nicht aufweisen. Vielleicht möchten Sie auch eine Art Integritätsprüfung (oder einen Nachrichtenauthentifizierungscode) hinzufügen.

5
CodesInChaos

Beide Algorithmen (AES und Twofish) gelten als sehr sicher. Dies wurde in anderen Antworten ausführlich behandelt.

Da AES im Jahr 2016 weit verbreitet ist, wurde es auf mehreren Plattformen wie ARM und x86) spezifisch hardwarebeschleunigt. Obwohl es vor der Hardwarebeschleunigung nicht wesentlich schneller als Twofish ist, ist es jetzt AES viel schneller dank der dedizierten CPU-Anweisungen.

3
galinette