Reicht 128-Bit-Sicherheit für die meisten praktischen Anwendungen nicht aus?
Reicht 128-Bit-Sicherheit für die meisten praktischen Anwendungen nicht aus?
Warum kaufen Leute rote Sportwagen? Sie fahren nicht schneller als Sportwagen anderer Farben ...
AES wird mit drei Standardschlüsselgrößen (128, 192 und 256 Bit) geliefert. Viele Leute sehen dies und denken, dass es einen Unterschied geben muss, wenn es drei verschiedene Größen statt nur einer gibt, und da die 256-Bit-Version etwas langsamer ist als die 128-Bit-Version (um etwa 40%), ist dies der Fall muss "sicherer" sein. Sie entscheiden sich also für "die sichersten" und wählen 256-Bit-Schlüssel.
In Wirklichkeit hat das AES drei unterschiedliche Schlüsselgrößen, da es als US-Bundesalgorithmus ausgewählt wurde, der in verschiedenen Bereichen verwendet werden kann unter der Kontrolle der US-Bundesregierung, und dazu gehört auch die US-Armee. Die US-Armee hat eine langjährige Tradition in der Verwendung von Kryptographie, und diese Tradition kristallisierte sich in interner Regulierung mit all der Flexibilität und Subtilität heraus, die Armeen auf der ganzen Welt ständig demonstrieren (hören Sie einfach "Militärmusik" und Sie werden verstehen, was ich meine). . Leider geschah dies vor einiger Zeit, bevor der Computer erfunden wurde, und zu dieser Zeit konnten die meisten Verschlüsselungssysteme kaputt gehen, und die robusteren waren auch sehr schwer und langsam zu bedienen. So kam das feine militärische Gehirn auf die Idee, dass es drei "Sicherheitsstufen" geben sollte, damit die wichtigsten Geheimnisse mit den schweren Methoden verschlüsselt wurden, die sie verdient hatten, aber mit Daten von geringerem taktischem Wert könnte mit praktischeren, wenn auch schwächeren Algorithmen verschlüsselt werden.
Diese Vorschriften forderten daher drei unterschiedliche Ebenen. Ihre Designer gingen nur davon aus, dass die untere Ebene notwendigerweise in irgendeiner Weise schwach war, aber Schwäche war nicht obligatorisch. Daher hat der NIST beschlossen, die Vorschriften formell zu befolgen (drei Schlüsselgrößen anzufordern), aber auch das Schlaue zu tun (die niedrigste Stufe musste mit vorhersehbarer Technologie unzerbrechlich sein). 128 Bit sind aus Sicherheitsgründen völlig ausreichend (siehe diese Antwort für Details). Aus diesem Grund akzeptiert AES 256-Bit-Schlüssel aufgrund bürokratischer Mattigkeit: Es war einfacher, etwas etwas Unsinniges (einen Schlüsselgrößen-Overkill) zu fordern, als militärische Vorschriften zu ändern.
Die meisten Menschen wissen es nicht oder kümmern sich nicht darum über die Geschichte, und sie gehen einfach groß raus, weil sie das Gefühl haben, dass sie es verdienen.
Wenn Sie ein Sicherheitssystem erstellen, müssen Sie einen Fehler planen. Dies ist die Idee hinter einer Tiefenverteidigungsstrategie.
Kryptografische Grundelemente werden mit der Zeit schwächer. Obwohl ein 128-Bit-Grundelement ausreichend ist, kann ein Fehler in der Verschlüsselung aufgedeckt werden, der diese Sicherheitsstufe verringert. Sie müssen also einen Sicherheitsabstand hinzufügen, wenn das unterstrichene Grundelement fehlschlägt.
Zum Beispiel erzeugt md5 einen 128-Bit-Hash. Mit einem ausgewählten Präfixangriff kann ein Angreifer jedoch eine Kollision mit einer Komplexität von nur 2 ^ 39 erzeugen.
Ich habe dies in den Antworten oder Kommentaren nicht erwähnt, daher dachte ich, dies als Antwort hinzuzufügen. Die Schlüsselgröße korreliert nicht immer direkt mit der Komplexität eines Algorithmus. Ein häufiger Irrtum ist die Annahme, dass eine mit AES256 verschlüsselte Nachricht schwieriger zu knacken ist (ein Gegner erhält nur unter Verwendung des Chiffretextes Bedeutungsinformationen) als dieselben Informationen, die mit AES128 geschützt wurden. Es ist logisch, dass eine größere Schlüsselgröße eine größere Komplexität mit sich bringt, aber wie bei jedem System sind Implementierungen Schwachstellen ausgesetzt.
Angenommen, Sie sprechen von AES 128 gegenüber AES 256, gibt es eine bekannte Schwäche in der Schlüsselerweiterungsfunktion, die sich auf AES256 auswirkt. Grundsätzlich reduziert die Schwäche die Komplexität von AES256 auf einen niedrigeren Wert als AES128. Es gibt auch einen ähnlichen Angriff für AES192, obwohl in diesem Fall die Komplexität von AES192 größer bleibt als die von AES128.
Moral der Geschichte, die Leute verstehen Krypto nicht ... j / k (ich bin kein Mathematiker). Die Realität ist, dass die Leute "groß" mit "sicher" annehmen. Eine große Waffe ist besser als eine kleine Waffe. Größere Schlüsselgrößen sind sicherer als kleinere Schlüsselgrößen.
In der Realität ist die Implementierung von Krypto wichtiger als die Schlüsselgröße allein.
FWIW, NIST-Entwurf zur Post-Quanten-Krypto empfiehlt 256.
http://csrc.nist.gov/publications/drafts/nistir-8105/nistir_8105_draft.pdf
Ihre Prämisse scheint mir falsch zu sein. Mir sind keine Beweise dafür bekannt, dass "die meisten Leute 256-Bit-Verschlüsselung anstelle von 128-Bit verwenden". In der Tat, wenn ich raten müsste, vermute ich, dass das Gegenteil der Fall ist.
Schließlich stoßen Sie auf ein Problem, das der Komprimierungssoftware ähnelt. Eine zu starke Komprimierung kann zu Datenverlust führen. Obwohl es "theoretisch" keine endliche Zahl für die Stärke der Verschlüsselung gibt, bedeutet dies nicht, dass Sie Ihre Daten mehr als 256 Bit verschlüsseln müssen. Möglicherweise sind Sie technisch in der Lage, dies zu tun, aber auf das Risiko, dass ein Computer einen Monat oder Jahre braucht, um hochzufahren und Ihr Betriebssystem zu laden?
Ich gehe davon aus, dass Sie über symmetrische Kryptographie sprechen. Die Antwort ist, dass es nie sicher genug ist (obwohl ich vermute, dass die Verwendung von 256-Bit- gegenüber 128-Bit-Schlüsseln eine Marketingstrategie ist, damit sich der Kunde sicherer fühlt).
Und vergessen Sie nicht den Aufstieg von Quantencomputer, der die für einen Brute-Force-Angriff benötigte Zeit erheblich verkürzt.