Digitaler Signaturalgorithmus mit elliptischer Kurve

Elliptic Curve Digital Signature Algorithm (ECDSA) ist einAlgorithmusderdigitalen Signatur-Public-Key-Variante vonDSA. Es verwendetKryptographie auf elliptischen Kurven.

Einführung

Der Algorithmus wurde 1992 von Scott Vanstone als Reaktion auf eine Ausschreibung für digitale Signaturen des National Institute of Standards and Technology (NIST) vorgeschlagen. Vanstone gründete Certicom 1985 und sein Unternehmen besitzt die meisten Patente für elliptische Kurvenalgorithmen. Die Vorteile von ECDSA gegenüber DSA und RSA sind kürzere Schlüssellängen und schnellere Signatur- und Verschlüsselungsvorgänge.

ECDSA ist durch den ANSI X9.62-1998 Standard, Public Key Cryptography For The Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA) definiert .

Algorithmus

Sei eine Formelkurve . Es ist eine elliptische Kurve auf einem endlichen Körper ganzer Zahlen modulo p mit p einer Primzahl und einem Punkt G der Kurve (sogenannter Basispunkt). Die Reihenfolge von G n , die kleinsten Ganzzahl , so dass nG gibt den Punkt im Unendlichen der Kurve und neutralen Elements der kommutativen Gruppe an den Punkten der Kurve . Damit alle ganzen Zahlen zwischen 1 und n-1 invertierbar modulo n sind, ist es zwingend erforderlich, dass der Ring ein Körper ist und daher n eine Primzahl ist (dies ist eine Folge des Satzes von Bézout). Daher bezeichnet im Folgenden die Notation, wenn eine ganze Zahl zwischen 1 und n-1 ist, die Umkehrung von im Feld . Z/nichtZ{\ displaystyle \ mathbb {Z} / n \ mathbb {Z}}Z/nichtZ{\ displaystyle \ mathbb {Z} / n \ mathbb {Z}}

Vorbereitung der Schlüssel

Unterschrift

Überprüfung

Demonstration





Wenn also , wird die Signatur verifiziert.

Sicherheit

Da alle bekannten Algorithmen zur Lösung des Problems des diskreten Logarithmus auf elliptischen Kurven in ( Baby-Step Giant-Step , Rho Pollards Algorithmus) sind, muss die Größe des Körpers daher ungefähr doppelt so groß sein wie der gewünschte Sicherheitsparameter. Für einen 128-Bit-Sicherheitsgrad (AES-128, RSA-3072) nehmen wir eine Kurve an einem Körper , wobei .

Integration

In der Praxis basiert ECDSA oft auf Kurven, die von Organisationen wie NIST oder Certicom empfohlen werden.

NIST empfiehlt beispielsweise fünfzehn verschiedene elliptische Kurven an zehn verschiedenen Körpern. Es werden fünf Kurven über fünf endliche Körper der Ordnung p prime empfohlen , genannt P-192, P-224, P-256, P-384, P-521, zehn Kurven über fünf endliche Körper der Form .

Die ANSSI empfiehlt die Verwendung der FRP256v1-Kurve, deren Parameter 2011 im Amtsblatt veröffentlicht wurden, und der P-256-Kurve, P-384, P-521, B-283, B-409 und B-571, definiert in FIPS 186 -2.

Hinweise und Referenzen

  1. ANSI-Entwurf X9.62-1998
  2. http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
  3. Artikel der BBC News Technology zur Sicherung der PS3
  4. Engadget: Wert der Zufallszahl k, die zum Signieren von PS3-Software verwendet wird .
  5. siehe deterministic_generate_k Funktion Ethereum Quellcode in Python
  6. FIPS PUB 186-4, Digital Signature Standard (DSS)
  7. Mitteilung über die vom französischen Staat festgelegten Parameter elliptischer Kurven, Amtsblatt Nr. 241 vom 16.10.2011 .
  8. Allgemeine Sicherheitsreferenz, Anhang B1, „Kryptografische Mechanismen Regeln und Empfehlungen zur Auswahl und Dimensionierung von kryptografischen Mechanismen“.

Anhänge

Zum Thema passende Artikel

Externe Links