Kryptographie mit elliptischen Kurven - Elliptic-curve cryptography

Elliptische-Kurven - Kryptographie ( ECC ) ist ein Ansatz zur Public-Key - Kryptographie basiert auf der algebraischen Struktur von elliptischen Kurven über endlichen Körpern . ECC erlaubt kleinere Schlüssel im Vergleich zu Nicht-EC-Kryptografie (basierend auf einfachen Galois-Feldern ), um eine gleichwertige Sicherheit zu bieten.

Elliptische Kurven sind für Schlüsselübereinstimmung , digitale Signaturen , Pseudozufallsgeneratoren und andere Aufgaben anwendbar . Indirekt können sie zur Verschlüsselung verwendet werden, indem die Schlüsselvereinbarung mit einem symmetrischen Verschlüsselungsverfahren kombiniert wird . Elliptische Kurven werden auch in mehreren ganzzahligen Faktorisierungsalgorithmen verwendet, die auf elliptischen Kurven basieren, die Anwendungen in der Kryptographie haben, wie z. B. Lenstra-Elliptische-Kurven-Faktorisierung .

Begründung

Die Kryptographie mit öffentlichem Schlüssel basiert auf der Unlösbarkeit bestimmter mathematischer Probleme . Frühe Public-Key - Systeme , um ihre Sicherheit basiert auf der Annahme , dass es zu schwierig ist , Faktor eine große ganze Zahl , bestehend aus zwei oder mehreren großen Primfaktoren. Für spätere elliptische Kurven-basierte Protokolle ist die Grundannahme, dass es nicht möglich ist, den diskreten Logarithmus eines zufälligen elliptischen Kurvenelements in Bezug auf einen öffentlich bekannten Basispunkt zu finden: Dies ist das "Elliptic Curve Discrete Logarithm Problem" (ECDLP). Die Sicherheit der Elliptische - Kurven - Kryptographie ist abhängig von der Fähigkeit , einen berechnen Punkt Multiplikation und die Unfähigkeit des Multiplikanden der ursprünglichen und Produktpunkte gegeben zu berechnen. Die Größe der elliptischen Kurve, gemessen an der Gesamtzahl diskreter ganzzahliger Paare, die die Kurvengleichung erfüllen, bestimmt die Schwierigkeit des Problems.

Das US-amerikanische National Institute of Standards and Technology (NIST) hat die elliptische Kurvenkryptographie in seinem Suite-B- Satz empfohlener Algorithmen unterstützt, insbesondere Elliptic-Curve Diffie-Hellman (ECDH) für den Schlüsselaustausch und Elliptic Curve Digital Signature Algorithm (ECDSA) für die digitale Signatur . Die US-amerikanische National Security Agency (NSA) erlaubt ihre Verwendung zum Schutz von bis zu streng geheimen Informationen mit 384-Bit-Schlüsseln. Im August 2015 gab die NSA jedoch bekannt, dass sie aufgrund von Bedenken hinsichtlich Quantencomputing- Angriffen auf ECC plant, Suite B durch eine neue Verschlüsselungssuite zu ersetzen .

Während das RSA-Patent im Jahr 2000 auslief, sind möglicherweise noch Patente in Kraft, die bestimmte Aspekte der ECC-Technologie abdecken . Einige argumentieren jedoch, dass der digitale Signaturstandard für elliptische Kurven der US-Regierung (ECDSA; NIST FIPS 186-3) und bestimmte praktische ECC-basierte Schlüsselaustauschschemata (einschließlich ECDH) implementiert werden können, ohne sie zu verletzen, einschließlich RSA Laboratories und Daniel J. Bernstein .

Der Hauptvorteil der elliptischen Kurvenkryptographie ist eine kleinere Schlüsselgröße , die den Speicher- und Übertragungsbedarf reduziert, dh dass eine elliptische Kurvengruppe das gleiche Sicherheitsniveau bieten könnte, das ein RSA- basiertes System mit einem großen Modul und entsprechend größerem Schlüssel bietet : Beispielsweise sollte ein öffentlicher 256-Bit-Schlüssel mit elliptischer Kurve eine vergleichbare Sicherheit bieten wie ein öffentlicher 3072-Bit-RSA-Schlüssel.

Geschichte

Die Verwendung von elliptischen Kurven in der Kryptographie wurde 1985 unabhängig von Neal Koblitz und Victor S. Miller vorgeschlagen . Die Algorithmen der elliptischen Kurvenkryptographie wurden von 2004 bis 2005 weit verbreitet.

Theorie

Für aktuelle kryptographische Zwecke ist eine elliptische Kurve eine ebene Kurve über einem endlichen Körper (anstelle der reellen Zahlen), die aus den Punkten besteht, die die Gleichung erfüllen:

zusammen mit einem ausgezeichneten Punkt im Unendlichen , bezeichnet mit ∞. Die Koordinaten sind hier von einem festen gewählt wurden finite Feld der Charakteristik nicht gleich 2 oder 3 ist , oder die Kurvengleichung mehr wird etwas kompliziert.

Diese Menge zusammen mit der Gruppenoperation elliptischer Kurven ist eine abelsche Gruppe mit dem Punkt im Unendlichen als Identitätselement. Die Struktur der Gruppe wird von der Teilergruppe der zugrunde liegenden algebraischen Varietät geerbt :

Kryptografische Schemata

Mehrere auf diskretem Logarithmus basierende Protokolle wurden an elliptische Kurven angepasst und die Gruppe durch eine elliptische Kurve ersetzt:

Auf der RSA Conference 2005 kündigte die National Security Agency (NSA) Suite B an, die ausschließlich ECC für die digitale Signaturgenerierung und den Schlüsselaustausch verwendet. Die Suite soll sowohl klassifizierte als auch nicht klassifizierte nationale Sicherheitssysteme und Informationen schützen.

Kürzlich wurde eine große Anzahl kryptographischer Primitive basierend auf bilinearen Abbildungen auf verschiedene elliptische Kurvengruppen, wie die Weil- und Tate-Paarungen , eingeführt. Schemata, die auf diesen Grundelementen basieren, bieten eine effiziente identitätsbasierte Verschlüsselung sowie paarungsbasierte Signaturen, Signaturverschlüsselung , Schlüsselvereinbarung und Proxy- Neuverschlüsselung .

Implementierung

Einige gängige Überlegungen zur Implementierung umfassen:

Domänenparameter

Um ECC zu verwenden, müssen sich alle Parteien auf alle Elemente einigen, die die elliptische Kurve definieren, dh die Domänenparameter des Schemas. Die Größe des verwendeten Feldes ist typischerweise entweder eine Primzahl (und als p bezeichnet) oder eine Zweierpotenz ( ); der letztere Fall wird binärer Fall genannt und erfordert auch die Wahl einer mit f bezeichneten Hilfskurve . Somit ist der Körper im Primzahlfall durch p und im Binärfall durch das Paar m und f definiert . Die elliptische Kurve wird durch die Konstanten a und b definiert, die in ihrer Definitionsgleichung verwendet werden. Schließlich wird die zyklische Untergruppe durch ihren Generator (auch bekannt als Basispunkt ) G definiert . Für kryptographische Anwendungen ist die Ordnung von G , also der kleinsten positiven Zahl n , die (der Punkt im Unendlichen der Kurve und das Identitätselement ) normalerweise eine Primzahl ist. Da n die Größe einer Untergruppe ist , folgt aus dem Satz von Lagrange, dass die Zahl eine ganze Zahl ist. In kryptographischen Anwendungen muss diese Zahl h , Cofaktor genannt , klein ( ) sein und vorzugsweise . Zusammenfassend: Im ersten Fall sind die Domänenparameter ; im binären Fall sind sie .

Es sei denn , es ist eine Zusicherung , dass Domain - Parameter von einer Partei in Bezug auf ihre Verwendung vertraut erzeugt wurden, die Domainparameter müssen vor Gebrauch validiert werden.

Die Generierung von Domänenparametern wird normalerweise nicht von jedem Teilnehmer durchgeführt, da dies die Berechnung der Anzahl von Punkten auf einer Kurve erfordert, was zeitaufwendig und mühsam zu implementieren ist. Als Ergebnis veröffentlichten mehrere Normungsgremien Domänenparameter elliptischer Kurven für mehrere gängige Feldgrößen. Solche Domänenparameter sind allgemein als "Standardkurven" oder "benannte Kurven" bekannt; auf eine benannte Kurve kann entweder durch den Namen oder durch die in den Standarddokumenten definierte eindeutige Objektkennung verwiesen werden :

SEKG-Testvektoren sind ebenfalls verfügbar. NIST hat viele SEKG-Kurven genehmigt, daher gibt es eine erhebliche Überschneidung zwischen den von NIST und SECG veröffentlichten Spezifikationen. EC-Domänenparameter können entweder nach Wert oder nach Name angegeben werden.

Wenn man (trotz des oben Gesagten) eigene Domänenparameter konstruieren möchte, sollte man das zugrunde liegende Feld auswählen und dann eine der folgenden Strategien verwenden, um eine Kurve mit geeigneter (dh nahezu Primzahl) Anzahl von Punkten mit einer der folgenden Methoden zu finden :

  • Wählen Sie eine zufällige Kurve und verwenden Sie einen allgemeinen Punktzählalgorithmus, zum Beispiel den Schoof-Algorithmus oder den Schoof-Elkies-Atkin-Algorithmus .
  • Wählen Sie eine zufällige Kurve aus einer Familie, die eine einfache Berechnung der Punktzahl ermöglicht (zB Koblitz-Kurven ), oder
  • Wählen Sie die Anzahl der Punkte aus und erzeugen Sie mit der komplexen Multiplikationstechnik eine Kurve mit dieser Anzahl von Punkten .

Mehrere Klassen von Kurven sind schwach und sollten vermieden werden:

  • Kurven mit nicht-primem m sind anfällig für Angriffe wegen Abstiegs .
  • Kurven, bei denen n sich teilt (wobei p die Eigenschaft des Feldes ist: q für ein Primfeld oder für ein binäres Feld) für ausreichend kleines B sind anfällig für einen Menezes-Okamoto-Vanstone (MOV)-Angriff, der das übliche Problem des diskreten Logarithmus ( DLP) in einem kleingradigen Erweiterungsfeld , um ECDLP zu lösen. Die Schranke B sollte so gewählt werden, dass diskrete Logarithmen im Feld mindestens so schwer zu berechnen sind wie diskrete Logarithmen auf der elliptischen Kurve .
  • Kurven, die anfällig für den Angriff sind, der die Punkte auf der Kurve der additiven Gruppe von zuordnet .

Schlüsselgrößen

Da alle schnellsten bekannten Algorithmen, die es ermöglichen, das ECDLP zu lösen ( Baby-Step Giant-Step , Pollards Rho usw.), Schritte benötigen , folgt daraus, dass die Größe des zugrunde liegenden Feldes ungefähr das Doppelte des Sicherheitsparameters betragen sollte. Für 128-Bit-Sicherheit braucht man beispielsweise eine Kurve über , wobei . Dies steht im Gegensatz zur Finite-Field-Kryptografie (z. B. DSA ), die öffentliche 3072-Bit-Schlüssel und 256-Bit-private Schlüssel erfordert , und Ganzzahlfaktorisierungskryptografie (z. B. RSA ), die einen 3072-Bit-Wert von n erfordert , wobei der private Schlüssel sollte genauso groß sein. Der öffentliche Schlüssel kann jedoch kleiner sein, um eine effiziente Verschlüsselung zu ermöglichen, insbesondere wenn die Verarbeitungsleistung begrenzt ist.

Das bisher härteste (öffentlich) gebrochene ECC-Schema hatte einen 112-Bit-Schlüssel für den Fall des Primfeldes und einen 109-Bit-Schlüssel für den Fall des binären Feldes. Für den Fall Prime Field wurde dies im Juli 2009 mit einem Cluster von über 200 PlayStation 3 -Spielkonsolen gebrochen und hätte bei kontinuierlichem Betrieb in 3,5 Monaten mit diesem Cluster abgeschlossen werden können. Der binäre Feldfall wurde im April 2004 mit 2600 Computern über 17 Monate gebrochen.

Ein aktuelles Projekt zielt darauf ab, die ECC2K-130-Herausforderung von Certicom durch den Einsatz unterschiedlichster Hardware zu brechen: CPUs, GPUs, FPGA.

Projektive Koordinaten

Eine genaue Betrachtung der Additionsregeln zeigt, dass man zum Addieren zweier Punkte nicht nur mehrere Additionen und Multiplikationen, sondern auch eine Inversionsoperation benötigt. Die Inversion (für gegebene Entdeckung , dass ) ein bis zwei Größenordnungen langsamer als Multiplikation. Punkte auf einer Kurve können jedoch in verschiedenen Koordinatensystemen dargestellt werden, die keine Inversionsoperation erfordern, um zwei Punkte hinzuzufügen. Mehrere solcher Systeme wurden vorgeschlagen: Im projektiven System wird jeder Punkt durch drei Koordinaten unter Verwendung der folgenden Beziehung dargestellt: , ; im Jacobi-System wird ein Punkt auch mit drei Koordinaten dargestellt , aber es wird eine andere Beziehung verwendet: , ; im López-Dahab-System ist die Beziehung , ; im modifizierten Jacobi- System werden die gleichen Beziehungen verwendet, aber vier Koordinaten werden gespeichert und für Berechnungen verwendet ; und im Chudnovsky Jacobian System werden fünf Koordinaten verwendet . Beachten Sie, dass es unterschiedliche Namenskonventionen geben kann, zum Beispiel verwendet der Standard IEEE P1363-2000 "projektive Koordinaten", um sich auf das zu beziehen, was allgemein als Jacobi-Koordinaten bezeichnet wird. Eine zusätzliche Beschleunigung ist möglich, wenn gemischte Koordinaten verwendet werden.

Schnelle Reduktion (NIST-Kurven)

Reduktion modulo p (die für Addition und Multiplikation benötigt wird) kann viel schneller ausgeführt werden, wenn die Primzahl p eine Pseudo- Mersenne-Primzahl ist , d . B. oder Im Vergleich zur Barrett-Reduktion kann es zu einer Beschleunigung um eine Größenordnung kommen. Die Beschleunigung hier ist eher praktisch als theoretisch und ergibt sich aus der Tatsache, dass die Moduli von Zahlen gegen Zahlen in der Nähe von Zweierpotenzen effizient von Computern durchgeführt werden können, die mit binären Zahlen mit bitweisen Operationen arbeiten .

Die Kurven über mit Pseudo-Mersenne p werden von NIST empfohlen. Ein weiterer Vorteil der NIST-Kurven besteht darin, dass sie a  = –3 verwenden, was die Addition in Jacobi-Koordinaten verbessert.

Laut Bernstein und Lange sind viele der effizienzbezogenen Entscheidungen in NIST FIPS 186-2 suboptimal. Andere Kurven sind sicherer und laufen genauso schnell.

Anwendungen

Elliptische Kurven sind anwendbar für Verschlüsselung , digitale Signaturen , Pseudo-Zufallsgeneratoren und andere Aufgaben. Sie werden auch in mehreren ganzzahligen Faktorisierungsalgorithmen verwendet , die Anwendungen in der Kryptographie haben, wie z. B. Lenstra Elliptic-Curve Factorization .

1999 empfahl NIST fünfzehn elliptische Kurven. Konkret hat FIPS 186-4 zehn empfohlene endliche Felder:

  • Fünf Primzahlenfelder für bestimmte Primzahlen p der Größen 192, 224, 256, 384 und 521 Bit. Für jedes der Primfelder wird eine elliptische Kurve empfohlen.
  • Fünf binäre Felder für m entsprechen 163, 233, 283, 409 und 571. Für jedes der binären Felder wurde eine elliptische Kurve und eine Koblitz- Kurve ausgewählt.

Die NIST-Empfehlung enthält somit insgesamt fünf Primkurven und zehn Binärkurven. Die Kurven wurden vorgeblich für optimale Sicherheit und Implementierungseffizienz gewählt.

Im Jahr 2013 erklärte die New York Times , dass die Dual Elliptic Curve Deterministic Random Bit Generation (oder Dual_EC_DRBG) aufgrund des Einflusses der NSA , die eine bewusste Schwäche des Algorithmus und der empfohlenen elliptischen Kurve beinhaltete, als nationaler NIST-Standard aufgenommen wurde . RSA Security hat im September 2013 eine Empfehlung herausgegeben, in der seinen Kunden empfohlen wird, keine auf Dual_EC_DRBG basierende Software zu verwenden. Im Zuge der Entlarvung von Dual_EC_DRBG als „eine verdeckte NSA-Operation“ haben Kryptographie-Experten auch Bedenken hinsichtlich der Sicherheit der vom NIST empfohlenen elliptischen Kurven geäußert und eine Rückkehr zur Verschlüsselung basierend auf nicht-elliptischen Kurvengruppen vorgeschlagen.

Die elliptische Kurvenkryptographie wird von der Kryptowährung Bitcoin verwendet . Ethereum Version 2.0 verwendet umfassend elliptische Kurvenpaare unter Verwendung von BLS-Signaturen – wie im IETF- Entwurf der BLS-Spezifikation angegeben –, um kryptografisch sicherzustellen, dass ein bestimmter Eth2-Validator eine bestimmte Transaktion tatsächlich verifiziert hat.

Sicherheit

Seitenkanalangriffe

Im Gegensatz zu den meisten anderen DLP- Systemen (bei denen das gleiche Verfahren zum Quadrieren und Multiplizieren verwendet werden kann) unterscheidet sich die EC-Addition für die Verdoppelung ( P = Q ) und die allgemeine Addition ( PQ ) je nach verwendetem Koordinatensystem erheblich . Folglich ist es wichtig, Seitenkanalangriffen (z. B. Timing- oder einfache/differentielle Leistungsanalyse-Angriffe ) entgegenzuwirken, indem beispielsweise Verfahren mit festem Musterfenster (auch bekannt als Kamm) verwendet werden (beachten Sie, dass dies die Rechenzeit nicht erhöht). Alternativ kann man eine Edwards-Kurve verwenden ; Dies ist eine spezielle Familie von elliptischen Kurven, für die Verdoppelung und Addition mit derselben Operation durchgeführt werden können. Ein weiteres Problem für ECC-Systeme ist die Gefahr von Fehlerangriffen , insbesondere wenn sie auf Smartcards ausgeführt werden .

Hintertüren

Kryptografische Experten haben Bedenken geäußert, dass die National Security Agency eine kleptografische Hintertür in mindestens einen elliptischen Kurven-basierten Pseudozufallsgenerator eingefügt hat . Interne Memos des ehemaligen NSA-Auftragnehmers Edward Snowden deuten darauf hin, dass die NSA eine Hintertür in den Dual EC DRBG- Standard eingebaut hat . Eine Analyse der möglichen Hintertür ergab, dass ein Gegner im Besitz des geheimen Schlüssels des Algorithmus Verschlüsselungsschlüssel mit nur 32 Byte PRNG-Ausgabe erhalten könnte.

Das Projekt SafeCurves wurde ins Leben gerufen, um Kurven zu katalogisieren, die einfach und sicher zu implementieren sind und die vollständig öffentlich überprüfbar gestaltet sind, um die Wahrscheinlichkeit einer Hintertür zu minimieren.

Quantencomputing-Angriffe

Der Algorithmus von Shor kann verwendet werden, um die Kryptographie mit elliptischen Kurven zu brechen, indem diskrete Logarithmen auf einem hypothetischen Quantencomputer berechnet werden . Die neuesten Schätzungen der Quantenressourcen für das Brechen einer Kurve mit einem 256-Bit-Modul (128-Bit-Sicherheitsstufe) sind 2330 Qubits und 126 Milliarden Toffoli-Gates . Im Vergleich dazu erfordert die Verwendung des Shor-Algorithmus zum Brechen des RSA- Algorithmus 4098 Qubits und 5,2 Billionen Toffoli-Gates für einen 2048-Bit-RSA-Schlüssel, was darauf hindeutet, dass ECC ein einfacheres Ziel für Quantencomputer ist als RSA. All diese Zahlen übersteigen bei weitem alle jemals gebauten Quantencomputer, und Schätzungen gehen davon aus, dass die Entwicklung solcher Computer in einem Jahrzehnt oder länger liegt.

Supersingular Isogeny Diffie-Hellman Key Exchange bietet eine post-quantensichere Form der elliptischen Kurvenkryptographie, indem Isogenien verwendet werden , um Diffie-Hellman- Schlüsselaustausch zu implementieren . Dieser Schlüsselaustausch verwendet viel von der gleichen Feldarithmetik wie die existierende elliptische Kurvenkryptographie und erfordert einen Rechen- und Übertragungsaufwand ähnlich vielen derzeit verwendeten öffentlichen Schlüsselsystemen.

Im August 2015 gab die NSA bekannt, dass sie "in nicht ferner Zukunft" auf eine neue Verschlüsselungssuite umsteigen will, die gegen Quantenangriffe resistent ist . "Leider kollidiert das Wachstum der Verwendung elliptischer Kurven mit der Tatsache, dass die Forschung zum Quantencomputing kontinuierlich voranschreitet, was eine Neubewertung unserer kryptografischen Strategie erforderlich macht."

Angriff mit ungültiger Kurve

Wenn ECC in virtuellen Maschinen verwendet wird , kann ein Angreifer eine ungültige Kurve verwenden, um einen vollständigen privaten PDH-Schlüssel zu erhalten.

Patente

Mindestens ein ECC-Schema ( ECMQV ) und einige Implementierungstechniken sind durch Patente geschützt.

Alternative Darstellungen

Alternative Darstellungen elliptischer Kurven sind:

Siehe auch

Anmerkungen

Verweise

Externe Links