P-521 es una curva de Weierstrass corta y² = x³ + ax + b sobre un campo primo de 521 bits, con un subgrupo de orden primo de 521 bits y cofactor 1; su nivel de seguridad estimado es de 256 bits. Estado: recomendada para sistemas nuevos.
P-521 es y² = x³ − 3x + b sobre el campo del primo de Mersenne 2^521 − 1, que convierte la reducción modular en un desplazamiento y una suma. El orden del grupo es un primo de 521 bits, lo que da unos 256 bits de seguridad.
Su tamaño poco habitual provoca errores en las implementaciones: las coordenadas y las claves privadas ocupan 66 bytes, una firma ECDSA en bruto ocupa 132 bytes, y ES512 de JOSE significa P-521 con SHA-512, aunque ambos nombres sugieran 512 bits (RFC 7518 §3.4). El código que rellena o trunca a 64 bytes produce claves y firmas que otras bibliotecas rechazan.
Está registrada para TLS (secp521r1, sin la marca Recommended de la IANA), JOSE, COSE (ES512, ESP512) y SSH (ecdsa-sha2-nistp521), pero los despliegues suelen elegir P-256 o P-384, que son más rápidas.
Parámetros de dominio
campo primo de 521 bits · seguridad de unos 256 bits
- Primo del campo p
- 0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
- Coeficiente a
- 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
- Coeficiente b
- 0x51953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00
- Punto base x
- 0xc6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66
- Punto base y
- 0x11839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650
- Orden n del punto base
- 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409
- Cofactor h
- 0x1
- Semilla
- 0xd09e8800291cb85396cc6717393284aaa0da64ba