Pular para o conteúdo
ecdsa.com

P-521 (secp521r1)

A maior curva prima do NIST, definida sobre o primo de Mersenne 2⁵²¹ − 1, com cerca de 256 bits de segurança; no JOSE, ES512 significa ECDSA na P-521 com SHA-512, e não uma curva de 512 bits.
Também escrito comosecp521r1NIST P-521P521

Definida no NIST SP 800-186 §3.2.1.5 e no SEC 2 §2.6.1. Identificadores: OID 1.3.132.0.35, grupo TLS secp521r1 (25), TLS 1.3 ecdsa_secp521r1_sha512 (0x0603), crv P-521 no JOSE com alg ES512, COSE −36. O primo de Mersenne torna barata a redução no corpo, mas o tamanho de 521 bits deixa todo o resto mais lento: cerca de 7.450 assinaturas e 4.180 verificações por segundo em um núcleo de um Apple M4 Max com o OpenSSL 3.6.5.

Os tamanhos confundem código escrito com a suposição de “512 bits”: o escalar privado tem 66 bytes (521 bits); a chave pública, 133 bytes na forma não comprimida ou 67 na comprimida; uma assinatura JWS ES512 bruta, exatamente 132 bytes (r e s preenchidos até 66 bytes cada um); e as assinaturas DER, cerca de 137–139 bytes. Truncar as coordenadas para 64 bytes ou descartar bytes zero à esquerda produz chaves e assinaturas que outras bibliotecas rejeitam.

A P-521 oferece mais margem de segurança clássica do que o necessário contra qualquer atacante realista até que os computadores quânticos façam diferença, por isso costuma ser escolhida por motivos de política, e não de engenharia de segurança. Como toda curva elíptica, ela é quebrada pelo algoritmo de Shor, e o NIST IR 8547 (rascunho) a trata da mesma forma que a P-256.

Padrões e referências

Todos os termos