Zum Inhalt springen
ecdsa.com
EmpfohlenKurze Weierstraß-Form

P-521

P-521 (secp521r1) ist die größte NIST-Kurve über einem Primkörper; ihr liegt die Mersenne-Primzahl 2^521 − 1 zugrunde – 521 Bit, nicht 512.

P-521 ist eine Kurve in kurzer Weierstraß-Form y² = x³ + ax + b über einem 521-Bit-Primkörper mit einer 521-Bit-Untergruppe von Primordnung und dem Kofaktor 1; das geschätzte Sicherheitsniveau beträgt 256 Bit. Status: empfohlen für Neuentwicklungen.

P-521 ist y² = x³ − 3x + b über dem Körper der Mersenne-Primzahl 2^521 − 1, wodurch die modulare Reduktion zu einer Bitverschiebung und einer Addition wird. Die Gruppenordnung ist eine 521-Bit-Primzahl, was ein Sicherheitsniveau von etwa 256 Bit ergibt.

Die ungewöhnliche Größe bringt Implementierungen ins Stolpern: Koordinaten und private Schlüssel belegen 66 Byte, eine ECDSA-Signatur im Rohformat 132 Byte, und ES512 aus JOSE bedeutet P-521 mit SHA-512, obwohl beide Namen 512 Bit nahelegen (RFC 7518 §3.4). Code, der auf 64 Byte auffüllt oder kürzt, erzeugt Schlüssel und Signaturen, die andere Bibliotheken ablehnen.

Die Kurve ist für TLS (secp521r1, von IANA nicht als „Recommended“ markiert), JOSE, COSE (ES512, ESP512) und SSH (ecdsa-sha2-nistp521) registriert, doch in der Praxis fällt die Wahl meist auf P-256 oder P-384, die schneller sind.

Namen in Standards

StandardName
NIST FIPS 186-5 / SP 800-186P-521
SEC 2secp521r1
JOSE / COSEP-521
SSHnistp521

Object Identifier

Domainparameter

521-Bit-Primkörper · etwa 256-Bit-Sicherheit

Primzahl p des Körpers
0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Koeffizient a
0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
Koeffizient b
0x51953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00
x-Koordinate des Basispunkts
0xc6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66
y-Koordinate des Basispunkts
0x11839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650
Ordnung n des Basispunkts
0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409
Kofaktor h
0x1
Seed
0xd09e8800291cb85396cc6717393284aaa0da64ba

Verwendet in

  • TLS 1.3
  • X.509
  • JOSE (ES512)
  • COSE (ES512, ESP512)
  • SSH (ecdsa-sha2-nistp521)

Kennungen in Registern

TLS-Supported-Groups
secp521r1 0x0019
TLS-Signaturverfahren
ecdsa_secp521r1_sha512 0x0603
JOSE-Algorithmen
ES512HPKE-2HPKE-2-KE
JWK-Kurven
P-521
COSE-Algorithmen
ESP512 -52
Elliptische Kurven für COSE
P-521 3
SSH-Schlüsselaustauschmethoden
ecdh-sha2-nistp521gss-nistp521-sha512-*
SSH-Algorithmen für öffentliche Schlüssel
ecdsa-sha2-nistp521x509v3-ecdsa-sha2-nistp521
HPKE-KEM-Kennungen
DHKEM(P-521, HKDF-SHA512) 0x0012DHKEM(CP-521, HKDF-SHA512) 0x0015

Standards und Quellen

Alle Kurven