Kryptographie in der IT - Empfehlungen zu Verschlüsselung und Verfahren

Seite 5: Elliptische Kurven Verschlüsselung

Inhaltsverzeichnis

Kurz: Ja, aber …

Die beste Alternative zu herkömmlicher, asymmetrischer Verschlüsselung sind derzeit Krypto-Systeme auf elliptischen Kurven. Diffie Hellman, RSA und DSA arbeiten mit ganzen Zahlen. Elliptic Curve Cryptography (ECC) benutzt stattdessen Punkte auf elliptischen Kurven. Mathematiker haben für diese dann Operationen wie die Addition und Multiplikation definiert (sie nennen das dann einen Körper).

Durch mehrfache Multiplikation hat man das Potenzieren und dessen Umkehrung – den diskreten Logarithmus. Und damit kann man alle Verfahren, die auf dem Problem der Berechnung diskreter Logarithmen beruhen, auf elliptische Kurven übertragen. Damit kann man ECDSA für digitale Signaturen und ECDH für den Schlüsselaustausch benutzen. Beides ist bereits standardisiert; alle halbwegs aktuellen TLS-Implementierungen auf Client- und Server-Seite unterstützen ECC.

Der Hauptvorteil: Da die Rechenoperationen auf elliptischen Kurven deutlich aufwendiger sind und sich auf Computern schlechter optimieren lassen als bei ganzen Zahlen, kann man wieder mit kürzeren Schlüsseln arbeiten. Das entlastet nicht nur Server, sondern kommt insbesondere den Entwicklern von Applikationen auf Embedded-Geräten etwa für das Internet of Things entgegen.

Konkret bieten bereits ECC-Schlüssel mit 256 Bit ein Sicherheitsniveau vergleichbar zu AES mit 128 Bit. Und das Schöne daran: Eine einfache Verdoppelung auf ECC-Schlüssel mit 512 Bit genügt bereits, um auch die langfristige 256-Bit-Sicherheit zu realisieren.

Der Pferdefuß bei dem Ganzen ist, dass bisher nur die von der NIST spezifizierten Kurven große Verbreitung gefunden haben. Da bei der Wahl der Parameter die NSA die Hand im Spiel hatte, standen die jedoch zunächst unter dem Verdacht, der US-Geheimdienst könnte sich einmal mehr eine Hintertür eingebaut haben. Diese Besorgnis hat sich in der Krypto-Szene weitgehend gelegt.

Auch ausgewiesene NSA-Kritiker wie Matthew Green und Bruce Schneier halten eine ECC-Hintertür der NIST-Kurven mittlerweile für nahezu ausgeschlossen. Doch es gibt andere Kritik. So sind die Kurven nicht optimal, was die Performance angeht, und die konkrete Implementierung in Krypto-Systemen ist kompliziert und damit fehleranfällig. Im Prinzip sind sich alle Experten einig, dass man eigentlich ECC auf Basis der von Dan J. Bernstein vorgeschlagenen Curve25519 haben möchte. Das setzen bereits OpenSSH, Apple für iOS und einige weitere Projekte erfolgreich ein.

Doch die Standardisierung von Curve25519 für TLS zieht sich in einem Trauerspiel der konsensorientierten Gremienarbeit seit Jahren hin. Mittlerweile ist Curve25519 in RFC 7748 standardisiert. Für die Nutzung im Rahmen von TLS ist draft-ietf-tls-rfc4492bis-07 zumindest auf der Zielgeraden; Googles Chrome unterstützt es bereits.

Curve25519 bietet ein Security-Level von etwa 128 Bit, was allgemein als ausreichend gilt. Für höhere Ansprüche spezifiziert RFC 7748 auch die sogenannte Goldilocks-Kurve (Curve448) mit 224 Bit, die aber bei weitem nicht so ausgereift ist. Als Alternative zu den NIST-Kurven vor allem im Bereich der Embedded-Geräte gibt es noch die ebenfalls schon standardisierten Brainpool-Kurven. Außerhalb des Einflussbereichs des BSI haben die jedoch wenig Fürsprecher gefunden.

Fazit: Man will ECC eigentlich schon heute; am besten mit Curve25519. Doch das Gerangel um die Standards von morgen ist immer noch in vollem Gang.

Kurz: Wir brauchen mehr Post Quantum Crypto.

Google und die NASA haben sich bereits einen QuantenComputer von D-Wave mit 512 Qubits angeschafft.

(Bild: D-Wave Systems)

Während sich die Beteiligten noch um die richtigen ECC-Standards balgen, hängt über ihnen schon das Damokles-Schwert der Quanten-Computer. Auf denen lässt sich nämlich Shors Algorithmus zum Berechnen von Primfaktoren und Logarithmen so effizient umsetzen, dass sowohl RSA, Diffie Hellman und DSA als auch ihre ECC-Äquivalente ECDSA und ECDH als geknackt gelten müssen. Symmetrische Verschlüsselung, etwa mit AES, ist davon nicht betroffen.

Um es noch einmal zu betonen: Quanten-Computer bedeuten das Ende aller derzeit etablierten Public-Key-Verfahren unter anderem für digitale Signaturen und Schlüsselaustausch. Damit bricht ein beträchtlicher Teil des Fundaments aktueller Krypto-Systeme komplett weg. Adäquater Ersatz ist bislang nicht in Sicht.

Die öffentliche Forschung im Bereich Quanten-Computer steckt noch in den Kinderschuhen; die größte mit Shors Verfahren bisher faktorisierte Zahl ist 21. Mit einem auf Quanten-Computern umgesetzten Verfahren zum Auffinden eines globalen Minimums gelang es immerhin schon 56 153 zu faktorisieren.

Das mag man belächeln, ist es doch um viele Größenordnungen von den Möglichkeiten klassischer Computer entfernt. Doch niemand weiß, was die NSA bereits in ihren Kellern stehen hat. Sicher ist nur, dass sie einen beträchtlichen Teil ihres Milliarden-Budgets in diese Rechenmaschinen der nächsten Generation investiert.

Post-Quantum-Kryptographie

Post Quantum Cryptography (PQC) ist folglich eines der wichtigsten aktuellen Forschungsgebiete. So fördert die EU das Forschungsprojekt PQCRYPTO; das BSI experimentiert bereits mit IPSec-Implementierungen, die Diffie-Hellman-Schlüsselaustausch durch ein Niederreiter-Kryptosystem ersetzen. Die NSA hat sogar einen konkreten Leitfaden und Zeitplan für den Umstieg auf PostQuantum-Crypto angekündigt.

Von der realen Praxis ist das alles jedoch noch sehr weit weg. Angesichts dessen, wie viele Jahre es dauert, kaputte Verfahren wie MD5, SHA1 und RSA-1024 auszumustern oder bereits praxiserprobte Verfahren wie Curve25519 zu standardisieren und einzuführen, kann man schon langsam nervös werden. Zwar sind auch die Quanten-Computer, die 2048-Bit-Zahlen faktorisieren, noch nicht gebaut – jedenfalls hoffen wir das. Doch die Uhr tickt.

Fazit: Post-Quantum-Crypto muss einsatzbereit sein, bevor die ersten echten Quanten-Computer ihren Betrieb aufnehmen. Dazu ist noch einiges an Forschung, Standardisierung und Tests erforderlich.

Update 31.3.2017: Blockgröße von AES korrigiert. (ju)