P-256 es la curva de Weierstrass corta y² = x³ − 3x + b sobre el primo p = 2²⁵⁶ − 2²²⁴ + 2¹⁹² + 2⁹⁶ − 1, y el orden del grupo es primo (cofactor 1). Se especifica en NIST SP 800-186 §3.2.1.3 y en SEC 2 como secp256r1; OpenSSL la llama prime256v1, su OID es 1.2.840.10045.3.1.7, TLS la denomina secp256r1 (grupo 23) y JOSE/COSE usan "crv": "P-256".
Tamaños: claves privadas de 32 bytes; claves públicas de 65 bytes sin comprimir (04‖x‖y) o de 33 bytes comprimidas; firmas ECDSA de 64 bytes como r‖s en bruto (JWS ES256) o de 70 a 72 bytes en DER (X.509, TLS, aserciones de WebAuthn y los valores por defecto de OpenSSL y Java). Mezclar las dos codificaciones es la causa más frecuente de «invalid signature» con claves válidas.
Es la opción por defecto casi en todas partes: JWT ES256, llaves de acceso (algoritmo COSE −7), certificados TLS ECDSA y key shares, el Secure Enclave de Apple y la mayoría de los HSM y las tarjetas inteligentes, que a menudo no admiten ninguna otra curva. En un núcleo de un Apple M4 Max, OpenSSL 3.6.5 genera unas 87.000 firmas ECDSA P-256 y verifica unas 29.000 por segundo.
Sus coeficientes proceden de una semilla de la NSA que nunca se explicó, una de las razones por las que algunos diseñadores prefieren Curve25519; no se conoce ninguna debilidad de la propia P-256. Como toda curva elíptica, cae ante una computadora cuántica grande, y NIST IR 8547 (borrador) propone no permitir ECDSA ni ECDH con ningún nivel de seguridad después de 2035. Para la curva de Bitcoin, consulta P-256 vs secp256k1.