P-521 是形如 y² = x³ + ax + b 的短 Weierstrass 曲线,定义在 521 位素域上,其素数阶子群为 521 位,余因子为 1;估计安全级别为 256 位。状态:推荐用于新系统。
P-521 是定义在梅森素数 2^521 − 1 的素域上的曲线 y² = x³ − 3x + b,这个素数让模约简只需一次移位和一次加法。它的群阶是一个 521 位素数,安全强度约为 256 位。
这一不寻常的长度常让实现出错:坐标和私钥占 66 字节,原始 ECDSA 签名为 132 字节,而 JOSE 的 ES512 表示 P-521 搭配 SHA-512,尽管两个名称都让人以为是 512 位(RFC 7518 §3.4)。填充或截断到 64 字节的代码会生成其他库拒绝接受的密钥和签名。
它已在 TLS(secp521r1,IANA 未将其标记为推荐)、JOSE、COSE(ES512、ESP512)和 SSH(ecdsa-sha2-nistp521)中注册,但实际部署大多选择速度更快的 P-256 或 P-384。
各标准中的名称
| 标准 | 名称 |
|---|
| NIST FIPS 186-5 / SP 800-186 | P-521 |
| SEC 2 | secp521r1 |
| JOSE / COSE | P-521 |
| SSH | nistp521 |
域参数
521 位素域 · 约 256 位安全强度
- 域素数 p
- 0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
- 系数 a
- 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
- 系数 b
- 0x51953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00
- 基点 x 坐标
- 0xc6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66
- 基点 y 坐标
- 0x11839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650
- 基点的阶 n
- 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409
- 余因子 h
- 0x1
- 种子
- 0xd09e8800291cb85396cc6717393284aaa0da64ba
用于
- TLS 1.3
- X.509
- JOSE (ES512)
- COSE (ES512, ESP512)
- SSH (ecdsa-sha2-nistp521)
← 全部曲线