A P-256 é a curva de Weierstrass curta y² = x³ − 3x + b sobre o primo p = 2^256 − 2^224 + 2^192 + 2^96 − 1, cuja forma especial permite uma redução rápida. O grupo dela tem ordem prima (cofator 1) de cerca de 2^256, o que dá aproximadamente 128 bits de segurança. A mesma curva tem três nomes: P-256 (NIST, JOSE, COSE), secp256r1 (SEC 2, TLS) e prime256v1 (ANSI X9.62, OpenSSL).
Uma chave pública é um ponto: 65 bytes na forma não comprimida (0x04 ‖ x ‖ y) ou 33 bytes na forma comprimida. Uma assinatura ECDSA tem 64 bytes como r ‖ s bruto (JOSE, WebCrypto) e, em geral, de 70 a 72 bytes em DER (X.509, TLS, OpenSSL, asserções do WebAuthn); confundir as duas codificações é um dos bugs de interoperabilidade mais comuns, e o conversor DER ⇄ bruto converte de uma para a outra.
O suporte em hardware é amplo: o Secure Enclave da Apple cria apenas chaves P-256, e as chaves de segurança FIDO2 e os autenticadores de plataforma costumam criar chaves de acesso P-256 (algoritmo −7 do COSE, ES256). Como nas outras curvas do NIST, b foi derivado com SHA-1 de uma semente cuja origem não está documentada, e esse é um dos motivos pelos quais alguns projetistas de protocolos preferem a Curve25519; nenhuma fraqueza foi encontrada na P-256.