Ich möchte eine Binärdatei verschlüsseln. Mein Ziel ist es, zu verhindern, dass jemand die Datei liest, der nicht über das Passwort verfügt.
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.
security
encryption
aes
blowfish
Mimrock
quelle
quelle
Antworten:
Wahrscheinlich AES. Blowfish war der direkte Vorgänger von Twofish. Twofish war Bruce Schneiers Einstieg in den Wettbewerb, der AES hervorbrachte. Es wurde als minderwertig gegenüber einem Eintrag namens Rijndael beurteilt, der zu AES wurde.
Interessant beiseite: An einem Punkt des Wettbewerbs wurden alle Teilnehmer gebeten, ihre Meinung zur Rangfolge der Chiffren abzugeben. Es ist wahrscheinlich keine Überraschung, dass jedes Team seinen eigenen Beitrag als den besten ausgewählt hat - aber jedes andere Team hat Rijndael als den zweitbesten ausgewählt.
Trotzdem gibt es einige grundlegende Unterschiede in den grundlegenden Zielen von Blowfish gegenüber AES, die Blowfish in Bezug auf die absolute Sicherheit (wohl) begünstigen können. Insbesondere versucht Blowfish, einen Brute-Force-Angriff (Schlüsselerschöpfung) zu erschweren, indem die anfängliche Tastenkonfiguration relativ langsam ausgeführt 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 es zu brechen, ist der Unterschied ziemlich groß.
Letztendlich sehe ich das jedoch nicht als großen Vorteil. Ich würde generell AES empfehlen. Meine nächsten Entscheidungen wären wahrscheinlich Serpent, MARS und Twofish in dieser Reihenfolge. Blowfish würde irgendwo danach kommen (obwohl es ein paar andere gibt, die ich wahrscheinlich vor Blowfish empfehlen würde).
quelle
Blowfish
ist der schnellsteEs ist eine nicht oft anerkannte Tatsache, dass die Blockgröße einer Blockverschlüsselung ebenfalls ein wichtiger Sicherheitsaspekt ist (wenn auch bei weitem nicht so wichtig wie die Schlüsselgröße).
Blowfish (und die meisten anderen Blockchiffren der gleichen Zeit wie 3DES und IDEA) haben eine 64-Bit-Blockgröße, die für die heutzutage üblichen großen Dateigrößen (je größer die Datei und je kleiner die Blockgröße) als unzureichend angesehen wird , je höher die Wahrscheinlichkeit eines wiederholten Blocks im Chiffretext ist - und solche wiederholten Blöcke sind bei der Kryptoanalyse äußerst nützlich).
AES hingegen hat eine Blockgröße von 128 Bit. Diese Überlegung allein ist eine Rechtfertigung für die Verwendung von AES anstelle von Blowfish.
quelle
In Bezug auf die Algorithmen selbst würde ich mich für AES entscheiden, aus dem einfachen Grund, dass es von NIST akzeptiert wurde und jahrelang von Experten begutachtet und kryptografiert wird. Ich würde jedoch vorschlagen, dass in praktischen Anwendungen, sofern Sie keine Datei speichern, die die Regierung geheim halten möchte (in diesem Fall würde die NSA Ihnen wahrscheinlich einen besseren Algorithmus als AES und Blowfish liefern), einer dieser gewonnenen Algorithmen verwendet wird Es macht keinen großen Unterschied. Die gesamte Sicherheit sollte im Schlüssel enthalten sein, und beide Algorithmen sind gegen Brute-Force-Angriffe resistent. Blowfish hat sich nur bei Implementierungen als schwach erwiesen, bei denen die vollen 16 Runden nicht genutzt werden. Und während AES neuer ist, sollte diese Tatsache dazu führen, dass Sie sich mehr zu BlowFish neigen (wenn Sie nur das Alter berücksichtigen). Denk darüber so,
Folgendes würde ich Ihnen vorstellen ... Anstatt diese beiden Algorithmen zu betrachten und zu versuchen, zwischen den Algorithmen zu wählen, sollten Sie sich Ihr Schlüsselgenerierungsschema ansehen. Ein potenzieller Angreifer, der Ihre Datei entschlüsseln möchte, wird nicht dort sitzen und sich einen theoretischen Schlüsselsatz 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 rückentwickeln, um den Schlüssel zu sehen, versuchen, eine Konfigurationsdatei mit dem Schlüssel zu finden, 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.
quelle
AES.
(Ich gehe auch davon aus, dass Sie Twofish meinen, nicht den viel älteren und schwächeren Blowfish)
Beide (AES & Twofish) sind gute Algorithmen. Aber selbst wenn sie gleich wären oder zwei Fische aus technischen Gründen etwas voraus wären, würde ich mich immer noch für AES entscheiden.
Warum? Werbung. AES ist DER Standard für die staatliche Verschlüsselung, und daher verwenden ihn auch Millionen anderer Unternehmen. Ein talentierter Kryptoanalytiker bekommt einfach mehr "Bang for the Buck", wenn er einen Fehler in AES findet, als für die viel weniger bekannten und verwendeten Twofish.
Dunkelheit bietet keinen Schutz bei der Verschlüsselung. Es ist immer besser, wenn mehr Körper einen Algorithmus suchen, studieren, untersuchen oder angreifen. Sie möchten den bestmöglichen "geprüften" Algorithmus, und im Moment ist das 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 hingeschaut haben ... NOCH
quelle
Die Wahl des Algorithmus spielt wahrscheinlich keine Rolle. Ich würde AES verwenden, da es besser erforscht wurde. Was viel wichtiger ist , die richtige Betriebsart und Auswahl Schlüsselableitungsfunktion .
Wenn Sie einen schnellen Direktzugriff wünschen, sollten Sie sich die TrueCrypt-Formatspezifikation ansehen, um sich inspirieren zu lassen. Wenn Sie keinen wahlfreien Zugriff benötigen, ist XTS nicht der optimale Modus, da es Schwächen aufweist, die andere Modi nicht haben. Möglicherweise möchten Sie auch eine Art Integritätsprüfung (oder einen Nachrichtenauthentifizierungscode) hinzufügen.
quelle
Ich weiß, dass diese Antwort gegen die Bestimmungen Ihrer Frage verstößt, aber ich denke, die richtige Antwort auf Ihre Absicht lautet einfach: Verwenden Sie den Algorithmus, der Ihnen die längste Schlüssellänge ermöglicht, und wählen Sie dann einen wirklich guten Schlüssel. Kleinere Unterschiede in der Leistung der bekanntesten Algorithmen (kryptografisch und chronologisch) werden durch einige zusätzliche Schlüsselbits überfordert.
quelle
Beide Algorithmen (AES und Twofish) gelten als sehr sicher. Dies wurde in anderen Antworten ausführlich behandelt.
Da AES 2016 jedoch weit verbreitet ist, wurde es auf mehreren Plattformen wie ARM und x86 speziell hardwarebeschleunigt. Während AES vor der Hardwarebeschleunigung nicht wesentlich schneller als zwei Fische ist, ist es dank der dedizierten CPU-Anweisungen jetzt viel schneller.
quelle