P-256 es la curva de Weierstrass corta y² = x³ − 3x + b sobre el primo p = 2^256 − 2^224 + 2^192 + 2^96 − 1, cuya forma especial permite una reducción rápida. Su grupo tiene orden primo (cofactor 1) de unos 2^256, lo que da aproximadamente 128 bits de seguridad. La misma curva lleva tres nombres: P-256 (NIST, JOSE, COSE), secp256r1 (SEC 2, TLS) y prime256v1 (ANSI X9.62, OpenSSL).
Una clave pública es un punto: 65 bytes en formato sin comprimir (0x04 ‖ x ‖ y) o 33 bytes en formato comprimido. Una firma ECDSA ocupa 64 bytes como r ‖ s en bruto (JOSE, WebCrypto) y normalmente de 70 a 72 bytes en DER (X.509, TLS, OpenSSL, aserciones de WebAuthn); confundir las dos codificaciones es uno de los errores de interoperabilidad más comunes, y el conversor DER ⇄ raw convierte de una a otra.
La compatibilidad en hardware es amplia: el Secure Enclave de Apple solo crea claves P-256, y las llaves de seguridad FIDO2 y los autenticadores de plataforma suelen crear llaves de acceso P-256 (algoritmo COSE −7, ES256). Como en las demás curvas NIST, b se derivó con SHA-1 de una semilla cuyo origen no está documentado, y esa es una de las razones por las que algunos diseñadores de protocolos prefieren Curve25519; no se ha encontrado ninguna debilidad en P-256.