跳到主要内容
ecdsa.com

P-521(secp521r1)

最大的 NIST 素域曲线,定义在梅森素数 2⁵²¹ − 1 上,安全强度约为 256 位;JOSE 的 ES512 指 P-521 上搭配 SHA-512 的 ECDSA,而不是 512 位曲线。
其他写法secp521r1NIST P-521P521

定义见 NIST SP 800-186 §3.2.1.5 和 SEC 2 §2.6.1。标识符:OID 1.3.132.0.35;TLS 组 secp521r1(25);TLS 1.3 中为 ecdsa_secp521r1_sha512(0x0603);JOSE 中 crv 为 P-521,alg 为 ES512;COSE 中为 −36。梅森素数让域上的模约简开销很低,但 521 位的长度让其他所有运算都更慢:在 Apple M4 Max 的单个核心上,OpenSSL 3.6.5 每秒约可完成 7,450 次签名和 4,180 次验证。

按“512 位”假设编写的代码常在这些大小上出错:私有标量为 66 字节(521 位),公钥未压缩形式为 133 字节、压缩形式为 67 字节,原始 JWS ES512 签名恰好 132 字节(r 和 s 各填充到 66 字节),DER 签名约为 137~139 字节。把坐标截断为 64 字节或去掉前导零字节,会生成其他库拒绝接受的密钥和签名。

在量子计算机构成威胁之前,P-521 提供的经典安全余量超出了抵御任何现实攻击者所需的程度,因此选择它通常出于政策要求,而不是安全工程上的考虑。和所有椭圆曲线一样,它会被 Shor 算法攻破,NIST IR 8547(草案)对它的处理与 P-256 相同。

标准与参考资料

全部术语