Zum Inhalt springen
ecdsa.com

ECDSA (Signaturalgorithmus mit elliptischen Kurven)

Die Variante von DSA auf elliptischen Kurven, spezifiziert in FIPS 186-5 und SEC 1; die Signatur ist ein Paar ganzer Zahlen (r, s), berechnet mit einem privaten Skalar und einer frischen, geheimen Nonce.
Auch geschrieben alsElliptic Curve Digital Signature AlgorithmECDSA signature

Die Schlüssel sind ein privater Skalar d in 1…n−1 und der öffentliche Punkt Q = d·G, wobei G der Basispunkt der Kurve ist und n ihre Primordnung. Um einen Hash z zu signieren, wählt der Signierer eine geheime Nonce k, setzt r auf die x-Koordinate von k·G modulo n und berechnet s = k⁻¹·(z + r·d) mod n; der Verifizierer berechnet u₁ = z·s⁻¹ und u₂ = r·s⁻¹ und prüft, ob die x-Koordinate von u₁·G + u₂·Q gleich r ist (FIPS 186-5 §6.4). Der Hash wird auf die Bitlänge von n gekürzt, SHA-512 mit P-256 nutzt also nur die linken 256 Bit.

Gängige Kennungen: In X.509 hat ecdsa-with-SHA256 die OID 1.2.840.10045.4.3.2 (SHA-384: …4.3.3, SHA-512: …4.3.4); in JOSE ES256, ES384, ES512 und ES256K; in COSE −7, −35, −36 und −47; in TLS 1.3 ecdsa_secp256r1_sha256 (0x0403). Die üblichen Kurven sind P-256, P-384, P-521 und für Blockchains secp256k1.

Dieselbe Signatur kommt in zwei Kodierungen vor: roh als r‖s fester Länge (64 Byte bei P-256; JOSE, WebCrypto, COSE) und als SEQUENCE in ASN.1 DER aus zwei Werten vom Typ INTEGER (70–72 Byte bei P-256; X.509, TLS, OpenSSL, Java). Zu jedem gültigen (r, s) besteht auch das Paar (r, n − s) die Prüfung, weshalb Blockchains Low-S-Signaturen verlangen.

Die Nonce ist der Schwachpunkt: Ein wiederholtes oder auch nur leicht verzerrtes k verrät den privaten Schlüssel, deshalb leiten moderne Bibliotheken es deterministisch ab (RFC 6979, von FIPS 186-5 §6.3.2 zugelassen) oder mischen zusätzlich Zufall bei (Hedging). Auf einem Kern eines Apple M4 Max schafft OpenSSL 3.6.5 etwa 87.000 P-256-Signaturen und 29.000 Prüfungen pro Sekunde. NIST IR 8547 (erster öffentlicher Entwurf) schlägt vor, ECDSA nach 2035 in jeder Sicherheitsstufe nicht mehr zuzulassen, weil der Shor-Algorithmus es bricht.

Standards und Quellen

Tools

Vergleiche

Begriffe

Bibliotheken

Kurven

Artikel

Rezepte

Fehler

Alle Begriffe