Zum Hauptinhalt springen

8.2. A Very High Security Cryptographic Key (Ein kryptographischer Schlüssel mit sehr hoher Sicherheit)

8.2. A Very High Security Cryptographic Key (Ein kryptographischer Schlüssel mit sehr hoher Sicherheit)

Nehmen Sie an, dass ein Schlüssel mit sehr hoher Sicherheit für symmetrische Verschlüsselung/Entschlüsselung zwischen zwei Parteien benötigt wird. Nehmen Sie auch an, dass ein Gegner Kommunikationen beobachten kann und den verwendeten Algorithmus kennt. Innerhalb des Feldes der zufälligen Möglichkeiten kann der Gegner Schlüsselwerte ausprobieren in der Hoffnung, den verwendeten zu finden. Nehmen Sie weiter an, dass das brutale Ausprobieren von Schlüsseln das Beste ist, was der Gegner tun kann.

8.2.1. Aufwand pro Schlüsselversuch

Wie viel Aufwand wird es kosten, jeden Schlüssel auszuprobieren? Für Anwendungen mit sehr hoher Sicherheit ist es am besten, einen niedrigen Aufwandswert anzunehmen. Selbst wenn es eindeutig Zehntausende von Computerzyklen oder mehr kosten würde, einen einzigen Schlüssel auszuprobieren, kann es ein Muster geben, das es ermöglicht, riesige Blöcke von Schlüsselwerten mit viel weniger Aufwand pro Schlüssel zu testen. Somit ist es wahrscheinlich am besten, nicht mehr als ein paar hundert Zyklen pro Schlüssel anzunehmen. (Es gibt keine klare Untergrenze hierfür, da Computer parallel an einer Anzahl von Bits arbeiten und ein schlechter Verschlüsselungsalgorithmus es ermöglichen könnte, viele Schlüssel oder sogar Gruppen von Schlüsseln parallel zu testen. Wir müssen jedoch irgendeinen Wert annehmen und können hoffen, dass ein vernünftig starker Algorithmus für unsere hypothetische Hochsicherheitsaufgabe gewählt wurde.)

Wenn der Gegner einen hochparallelen Prozessor oder ein großes Netzwerk von Workstations befehligen kann, sind 10^11 Zyklen pro Sekunde heute wahrscheinlich eine Mindestannahme. Ein paar Jahre vorausschauend sollte es mindestens eine Größenordnung Verbesserung geben. Somit ist es vernünftig anzunehmen, dass 10^10 Schlüssel pro Sekunde überprüft werden könnten, oder 3,610^12 pro Stunde oder 610^14 pro Woche oder 2,4*10^15 pro Monat. Dies impliziert einen Bedarf an mindestens 63 Bits Zufälligkeit in Schlüsseln, um sicherzustellen, dass sie nicht in einem Monat gefunden werden können. Selbst dann ist es möglich, dass ein hochgradig entschlossener und ressourcenreicher Gegner in ein paar Jahren den Schlüssel in 2 Wochen brechen könnte; im Durchschnitt müssen sie nur die Hälfte der Schlüssel ausprobieren.

Diese Fragen werden ausführlich in "Minimal Key Lengths for Symmetric Ciphers to Provide Adequate Commercial Security: A Report by an Ad Hoc Group of Cryptographers and Computer Scientists" [KeyStudy] betrachtet, das von der Business Software Alliance gesponsert wurde. Es kam zu dem Schluss, dass eine vernünftige Schlüssellänge im Jahr 1995 für sehr hohe Sicherheit im Bereich von 75 bis 90 Bits liegt und, da die Kosten der Kryptographie nicht stark mit der Schlüsselgröße variieren, empfiehlt es 90 Bits. Um diese Empfehlungen zu aktualisieren, addieren Sie einfach 2/3 eines Bits pro Jahr für Moores Gesetz [MOORE]. Dies übersetzt sich in eine Bestimmung, im Jahr 2004, dass eine vernünftige Schlüssellänge im Bereich von 81 bis 96 Bits liegt. Tatsächlich ist es heute zunehmend üblich, Schlüssel zu verwenden, die länger als 96 Bits sind, wie 128-Bit (oder längere) Schlüssel mit AES und Schlüssel mit effektiven Längen von 112 Bits mit Triple-DES.

8.2.2. Meet-in-the-Middle-Angriffe

Wenn gewählter oder bekannter Klartext und der resultierende verschlüsselte Text verfügbar sind, ist ein "Meet-in-the-Middle"-Angriff möglich, wenn die Struktur des Verschlüsselungsalgorithmus es erlaubt. (Bei einem Known-Plaintext-Angriff kennt der Gegner alle oder einen Teil (möglicherweise einige Standard-Kopf- oder Fußzeilenfelder) der verschlüsselten Nachrichten. Bei einem Chosen-Plaintext-Angriff kann der Gegner erzwingen, dass ein gewählter Klartext verschlüsselt wird, möglicherweise indem ein aufregender Text "durchsickert", der vom Gegner über einen verschlüsselten Kanal gesendet wird, weil der Text so interessant ist.)

Die folgende ist eine vereinfachte Erklärung des Meet-in-the-Middle-Angriffs: Der Gegner kann den bekannten oder gewählten Klartext mit allen möglichen ersten Halbschlüsseln halb verschlüsseln, die Ausgabe sortieren und dann den kodierten Text mit allen zweiten Halbschlüsseln halb entschlüsseln. Wenn eine Übereinstimmung gefunden wird, kann der vollständige Schlüssel aus den Hälften zusammengesetzt und verwendet werden, um andere Teile der Nachricht oder andere Nachrichten zu entschlüsseln. Im besten Fall kann diese Art von Angriff den Exponenten der vom Gegner erforderlichen Arbeit halbieren, während ein sehr großer aber ungefähr konstanter Aufwand hinzugefügt wird. Somit ist, wenn dieser Angriff montiert werden kann, eine Verdopplung der Zufälligkeit im sehr starken Schlüssel auf mindestens 192 Bits (96*2) für das Jahr 2004 erforderlich, basierend auf der [KeyStudy]-Analyse.

Diese Menge an Zufälligkeit liegt weit über der Grenze der in den vom US DoD empfohlenen Eingaben für die Passwortgenerierung und könnte Benutzer-Tipp-Timing, Hardware-Zufallszahlengenerierung oder andere Quellen von Zufälligkeit erfordern.

Der Meet-in-the-Middle-Angriff nimmt an, dass der kryptographische Algorithmus auf diese Weise zerlegt werden kann. Hoffentlich hat kein moderner Algorithmus diese Schwäche, aber es kann Fälle geben, in denen wir uns dessen nicht sicher sind oder sogar nicht wissen, mit welchem Algorithmus ein Schlüssel verwendet wird. Selbst wenn ein Basisalgorithmus nicht einem Meet-in-the-Middle-Angriff unterliegt, wird ein Versuch, einen stärkeren Algorithmus zu produzieren, indem der Basisalgorithmus zweimal (oder zwei verschiedene Algorithmen sequenziell) mit verschiedenen Schlüsseln angewendet wird, weniger zusätzliche Sicherheit gewinnen als erwartet. Ein solcher zusammengesetzter Algorithmus wäre einem Meet-in-the-Middle-Angriff ausgesetzt.

Enorme Ressourcen können erforderlich sein, um einen Meet-in-the-Middle-Angriff zu montieren, aber sie liegen wahrscheinlich im Bereich der nationalen Sicherheitsdienste einer großen Nation. Im Wesentlichen spionieren alle Nationen den Verkehr anderer Nationen aus.

8.2.3. Andere Überlegungen

[KeyStudy] berücksichtigt auch die Möglichkeiten von spezieller Codebrecher-Hardware und einer angemessenen Sicherheitsmarge.

Beachten Sie, dass Schlüssellängenberechnungen wie die oben kontrovers sind und von verschiedenen Annahmen über die verwendeten kryptographischen Algorithmen abhängen. In einigen Fällen könnte ein Fachmann mit tiefer Kenntnis von Algorithmus-Breaking-Techniken und der Stärke des verwendeten Algorithmus mit weniger als der Hälfte der oben abgeleiteten 192-Bit-Schlüsselgröße zufrieden sein.

Für weitere Beispiele konservativer Designprinzipien siehe [FERGUSON].