Zum Inhalt springen
ecdsa.com

secp256k1

Die 256-Bit-Koblitz-Kurve y² = x³ + 7 aus SEC 2, eine elliptische Kurve mit etwa 128 Bit Sicherheit; von Bitcoin gewählt, auch von Ethereum und Nostr genutzt.
Auch geschrieben alssecp256k1 curveBitcoin curveK-256

Parameter (SEC 2 §2.4.1): p = 2²⁵⁶ − 2³² − 977, a = 0, b = 7, Kofaktor 1, Gruppenordnung knapp unter 2²⁵⁶. Die spezielle Struktur ermöglicht einen effizient berechenbaren Endomorphismus (GLV), der die Skalarmultiplikation beschleunigt. Kennungen: OID 1.3.132.0.10, JOSE crv secp256k1 mit alg ES256K (RFC 8812), COSE −47. In TLS 1.3, WebCrypto, Apples Secure Enclave und den Standardprofilen der meisten HSMs wird die Kurve nicht angeboten.

NIST SP 800-186, Anhang H.2, erlaubt secp256k1 „für Blockchain-bezogene Anwendungen“. Verwendet wird die Kurve für die ECDSA- und BIP-340-Schnorr-Signaturen von Bitcoin, für Ethereum-Transaktionen, für Signaturen nach personal_sign und EIP-712 (65 Byte mit einem Recovery-Byte v) sowie für Nostr-Events.

Generische Bibliotheken sind auf dieser Kurve langsam: Node.js 26 mit OpenSSL 3.6.5 signiert auf demselben Kern eines Apple M4 Max etwa 6.500 Nachrichten pro Sekunde mit secp256k1, gegenüber etwa 68.800 mit P-256, weil OpenSSL keinen optimierten Code für secp256k1 hat. Verwende libsecp256k1 (die zeitkonstante Bibliothek von Bitcoin Core) oder @noble/curves, das in reinem JavaScript secp256k1 so schnell ausführt wie seine eigene P-256-Implementierung. Blockchain-Konventionen wie Low-S und die Wiederherstellung des öffentlichen Schlüssels weichen vom generischen ECDSA ab; siehe den Vergleich mit P-256.

Standards und Quellen

Alle Begriffe