Vergleich von DES-, Triple DES-, AES- und Blowfish-Verschlüsselung für Daten

Antworten:

245

Verwenden Sie AES.

In weiteren Details:

  • DES ist der alte "Datenverschlüsselungsstandard" aus den siebziger Jahren. Die Schlüsselgröße ist zu kurz für eine angemessene Sicherheit (56 effektive Bits; dies kann brutal erzwungen werden, wie vor mehr als zehn Jahren gezeigt wurde ). Außerdem verwendet DES 64-Bit-Blöcke, was einige potenzielle Probleme beim Verschlüsseln mehrerer Gigabyte Daten mit demselben Schlüssel aufwirft (ein Gigabyte ist heutzutage nicht mehr so ​​groß).
  • 3DES ist ein Trick zur Wiederverwendung von DES-Implementierungen, indem drei DES-Instanzen (mit unterschiedlichen Schlüsseln) kaskadiert werden. Es wird angenommen, dass 3DES bis zu einer Sicherheit von mindestens " 2 112 " sicher ist (was ziemlich viel ist und weit im Bereich "mit der heutigen Technologie nicht zerbrechlich" liegt). Aber es ist langsam, besonders in der Software (DES wurde für eine effiziente Hardware-Implementierung entwickelt, aber es saugt Software an, und 3DES saugt dreimal so viel).
  • Blowfish ist eine von Bruce Schneier vorgeschlagene Blockchiffre, die in einigen Softwareprogrammen eingesetzt wird. Blowfish kann riesige Schlüssel verwenden und gilt als sicher, mit Ausnahme der Blockgröße von 64 Bit, genau wie DES und 3DES. Blowfish ist in Software effizient, zumindest auf einigen Softwareplattformen (es verwendet schlüsselabhängige Nachschlagetabellen, daher hängt die Leistung davon ab, wie die Plattform mit Speicher und Caches umgeht).
  • AES ist der Nachfolger von DES als standardmäßiger symmetrischer Verschlüsselungsalgorithmus für US-Bundesorganisationen (und als Standard für so ziemlich alle anderen). AES akzeptiert Schlüssel mit 128, 192 oder 256 Bit (128 Bit sind bereits sehr unzerbrechlich), verwendet 128-Bit-Blöcke (also kein Problem) und ist sowohl in der Software als auch in der Hardware effizient. Es wurde durch einen offenen Wettbewerb ausgewählt, an dem mehrere Jahre lang Hunderte von Kryptographen teilnahmen. Grundsätzlich kann man nichts Besseres haben.

Verwenden Sie im Zweifelsfall AES.

Beachten Sie, dass eine Blockverschlüsselung eine Box ist, die "Blöcke" (128-Bit-Datenblöcke mit AES) verschlüsselt. Wenn Sie eine "Nachricht" verschlüsseln, die länger als 128 Bit sein kann, muss die Nachricht in Blöcke aufgeteilt werden. Die tatsächliche Art der Aufteilung wird als Betriebsmodus oder "Verkettung" bezeichnet. Der naive Modus (einfache Aufteilung) heißt EZB und hat Probleme. Die ordnungsgemäße Verwendung einer Blockverschlüsselung ist nicht einfach und wichtiger als die Auswahl zwischen z. B. AES oder 3DES.

Thomas Pornin
quelle
4
Da ich ein bisschen verrückt bin, würde ich AES256
hdost
2
Holy Sh * t, die NSA konnte DES 1976 knacken, ermutigte aber bis 2002 zu ihrem Einsatz! Nennen Sie mich paranoid, aber ich habe Angst vor dem Vorstoß für AES
Dr. Deo
25

Alle diese Schemata mit Ausnahme von AES und Blowfish weisen bekannte Schwachstellen auf und sollten nicht verwendet werden.
Blowfish wurde jedoch durch Twofish ersetzt .

SLaks
quelle
11

Die beschriebenen Verschlüsselungsmethoden sind symmetrische Schlüsselblockchiffren.

Data Encryption Standard (DES) ist der Vorgänger, der Daten in 64-Bit-Blöcken mit einem 56-Bit-Schlüssel verschlüsselt. Jeder Block wird isoliert verschlüsselt, was eine Sicherheitslücke darstellt.

Triple DES erweitert die Schlüssellänge von DES durch Anwenden von drei DES-Operationen auf jeden Block: eine Verschlüsselung mit Schlüssel 0, eine Entschlüsselung mit Schlüssel 1 und eine Verschlüsselung mit Schlüssel 2. Diese Schlüssel können verwandt sein.

DES und 3DES treten normalerweise bei der Verbindung mit älteren kommerziellen Produkten und Dienstleistungen auf.

AES gilt als Nachfolger und moderner Standard. http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

Ich glaube, von der Verwendung von Blowfish wird abgeraten.

Es wird dringend empfohlen, dass Sie nicht versuchen, Ihre eigene Kryptografie zu implementieren, sondern stattdessen eine Implementierung auf hoher Ebene wie GPG für ruhende Daten oder SSL / TLS für übertragene Daten verwenden. Hier ist ein exzellentes und ernüchterndes Video zu Verschlüsselungslücken http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/

rohannes
quelle
2
Warum wird von der Verwendung von Blowfish abgeraten? Ist das nicht die sicherste?
Yogasma
5
@yogsma: Blowfish hat eine Blockgröße von nur 64 Bit (da dies als Ersatz für DES in Protokollen gedacht war) und wird daher problematisch, nachdem einige GB Daten mit demselben Schlüssel verschlüsselt wurden.
Paŭlo Ebermann
@rohannes, warum BlowFish entmutigt ist, habe ich irgendwo in Bezug auf Leistung gelesen. BlowFish ist besser als AES. Schauen Sie sich diesen Artikel auf brighthub.com an
Yogesh
9

AES ist ein symmetrischer kryptografischer Algorithmus, während RSA ein asymmetrischer (oder öffentlicher Schlüssel) kryptografischer Algorithmus ist. Die Ver- und Entschlüsselung erfolgt in AES mit einem einzigen Schlüssel, während Sie in RSA separate Schlüssel (öffentliche und private Schlüssel) verwenden. Die Stärke eines 128-Bit-AES-Schlüssels entspricht in etwa einem 2600-Bit-RSA-Schlüssel.

BHEEMA RAM
quelle
7
Können Sie die Mathematik für diese Antwort oder eine Quelle angeben? Es würde mich interessieren, wie Sie zu dem Schluss gekommen sind, dass 128-Bit-AES ungefähr 2600-Bit-RSA entspricht (mir ist klar, dass dies eine alte Antwort ist)
Russell Uhl
3
@RussellUhl - Ich stimme zu, dass die Geschichte dieser Zahlen auch nach zwei weiteren Jahren des Schweigens eine interessante Frage ist. :) Diese Zahlen scheinen aus diesem PDF-Papier ableitbar zu sein: eprint.iacr.org/2013/635.pdf mit dem Titel Universal security - from bits and mips to pools, lakes – and beyond.
Jesse Chisholm
4

TripleDESCryptoServiceProvider ist zwar eine sichere und gute Methode, aber zu langsam. Wenn Sie sich auf MSDN beziehen möchten, erhalten Sie den Rat, AES anstelle von TripleDES zu verwenden. Bitte überprüfen Sie den folgenden Link: http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledescryptoserviceprovider.aspx Sie werden diese Aufmerksamkeit im Abschnitt "Bemerkung" sehen:

Hinweis Ein neuerer symmetrischer Verschlüsselungsalgorithmus, Advanced Encryption Standard (AES), ist verfügbar. Verwenden Sie möglicherweise die AesCryptoServiceProvider-Klasse anstelle der TripleDESCryptoServiceProvider-Klasse. Verwenden Sie TripleDESCryptoServiceProvider nur aus Gründen der Kompatibilität mit älteren Anwendungen und Daten.

Viel Glück

QMaster
quelle
3
Dies ist lustig, da Microsoft TripleDES in einigen seiner Produkte immer noch aktiv zur Verschlüsselung verwendet ( en.wikipedia.org/wiki/Triple_DES#Usage )
Tom Heard,
@Tom Sie haben Recht, aber vergessen Sie nicht, dass viele Software alte Technologien verwendet und dass es einige Zeit dauert, sich mit neuen Methoden anzupassen. Speziell für große Unternehmen wie Microsoft, obwohl ich Ihnen zustimme, dass ein Update erforderlich ist, und dies ist schlecht, wenn unser Unternehmen einige Dinge vorschlägt und andere Dinge tut.
QMaster
1
Microsoft ist bekannt für seine Abwärtskompatibilität. Ihre Verwendung von TripleDES fällt direkt unter "nur aus Gründen der Kompatibilität mit älteren Anwendungen und Daten".
Dan Bechard
1

Geben Sie hier die Bildbeschreibung ein

DES ist der alte "Datenverschlüsselungsstandard" aus den siebziger Jahren.

Keshav Gera
quelle
0

AES ist der derzeit akzeptierte Standardalgorithmus (daher der Name Advanced Encryption Standard ).

Der Rest ist nicht.

Ian Boyd
quelle
3
Daher der Name? Wie bedeutet der Name "AES", dass er verwendet werden sollte?
CodyBugstein
15
Was ist Data Encryption Standard - ? Ihre Logik "es hat <standard> im Namen - daher sollte dies verwendet werden" ist ziemlich fehlerhaft.
Zlatin Zlatev
0
                DES                               AES
Developed       1977                              2000
Key Length      56 bits                           128, 192, or 256 bits
Cipher Type     Symmetric                         Symmetric
Block Size      64 bits                           128 bits
Security        inadequate                        secure
Performance     Fast                              Slow
Ikarayel
quelle
AES ist schneller als 3DES, insbesondere auf CPUs, die AES-NI unterstützen. (aber auch ohne das - DES wurde für schnelle Hardware-Implementierungen entwickelt, nicht für Software-Implementierungen) (Normales DES ist bei einigen Benchmarks etwas schneller , aber 56-Bit-Schlüssel machen es für jede aktuelle Verwendung ungeeignet)
Gert van den Berg