secp256r1
基于 P-256 的 ECDHE:RFC 8446 规定每个 TLS 1.3 实现都必须支持的密钥交换。
secp256r1(23)是 TLS 1.3 实现必须(MUST)支持的组(RFC 8446 §9.1),因此它是始终可用的回退选项。它的密钥共享(key share)是 65 字节的未压缩点;TLS 1.3 禁止这些曲线使用压缩点。参见 P-256。
显示 75 项中的 75 项
用于 TLS 密钥交换的命名组:椭圆曲线、有限域群、ML-KEM 以及混合后量子组。
| 值 | 名称 | 说明 | 推荐 | 参考文献 |
|---|---|---|---|---|
0x0001 | sect163k1 | sect163k1(0x0001)是使用 sect163k1 的椭圆曲线 Diffie–Hellman。sect163k1 | D | RFC 8422RFC 9847 |
0x0002 | sect163r1 | sect163r1(0x0002)是使用 sect163r1 的椭圆曲线 Diffie–Hellman。 | D | RFC 8422RFC 9847 |
0x0003 | sect163r2 | sect163r2(0x0003)是使用 sect163r2 的椭圆曲线 Diffie–Hellman。sect163r2 | D | RFC 8422RFC 9847 |
0x0004 | sect193r1 | sect193r1(0x0004)是使用 sect193r1 的椭圆曲线 Diffie–Hellman。 | D | RFC 8422RFC 9847 |
0x0005 | sect193r2 | sect193r2(0x0005)是使用 sect193r2 的椭圆曲线 Diffie–Hellman。 | D | RFC 8422RFC 9847 |
0x0006 | sect233k1 | sect233k1(0x0006)是使用 sect233k1 的椭圆曲线 Diffie–Hellman。sect233k1 | D | RFC 8422RFC 9847 |
0x0007 | sect233r1 | sect233r1(0x0007)是使用 sect233r1 的椭圆曲线 Diffie–Hellman。sect233r1 | D | RFC 8422RFC 9847 |
0x0008 | sect239k1 | sect239k1(0x0008)是使用 sect239k1 的椭圆曲线 Diffie–Hellman。 | D | RFC 8422RFC 9847 |
0x0009 | sect283k1 | sect283k1(0x0009)是使用 sect283k1 的椭圆曲线 Diffie–Hellman。sect283k1 | N | RFC 8422 |
0x000A | sect283r1 | sect283r1(0x000A)是使用 sect283r1 的椭圆曲线 Diffie–Hellman。sect283r1 | N | RFC 8422 |
0x000B | sect409k1 | sect409k1(0x000B)是使用 sect409k1 的椭圆曲线 Diffie–Hellman。sect409k1 | N | RFC 8422 |
0x000C | sect409r1 | sect409r1(0x000C)是使用 sect409r1 的椭圆曲线 Diffie–Hellman。sect409r1 | N | RFC 8422 |
0x000D | sect571k1 | sect571k1(0x000D)是使用 sect571k1 的椭圆曲线 Diffie–Hellman。sect571k1 | N | RFC 8422 |
0x000E | sect571r1 | sect571r1(0x000E)是使用 sect571r1 的椭圆曲线 Diffie–Hellman。sect571r1 | N | RFC 8422 |
0x000F | secp160k1 | secp160k1(0x000F)是使用 secp160k1 的椭圆曲线 Diffie–Hellman。 | D | RFC 8422RFC 9847 |
0x0010 | secp160r1 | secp160r1(0x0010)是使用 secp160r1 的椭圆曲线 Diffie–Hellman。 | D | RFC 8422RFC 9847 |
0x0011 | secp160r2 | secp160r2(0x0011)是使用 secp160r2 的椭圆曲线 Diffie–Hellman。 | D | RFC 8422RFC 9847 |
0x0012 | secp192k1 | secp192k1(0x0012)是使用 secp192k1 的椭圆曲线 Diffie–Hellman。secp192k1 | D | RFC 8422RFC 9847 |
0x0013 | secp192r1 | secp192r1(0x0013)是使用 P-192 的椭圆曲线 Diffie–Hellman。P-192 | D | RFC 8422RFC 9847 |
0x0014 | secp224k1 | secp224k1(0x0014)是使用 secp224k1 的椭圆曲线 Diffie–Hellman。secp224k1 | D | RFC 8422RFC 9847 |
0x0015 | secp224r1 | secp224r1(0x0015)是使用 P-224 的椭圆曲线 Diffie–Hellman。P-224 | D | RFC 8422RFC 9847 |
0x0016 | secp256k1 | secp256k1(0x0016)是使用 secp256k1 的椭圆曲线 Diffie–Hellman。secp256k1 | N | RFC 8422 |
0x0017说明 | secp256r1 | secp256r1(0x0017)是使用 P-256 的椭圆曲线 Diffie–Hellman。P-256 | Y | RFC 8422 |
0x0018说明 | secp384r1 | secp384r1(0x0018)是使用 P-384 的椭圆曲线 Diffie–Hellman。P-384 | Y | RFC 8422 |
0x0019 | secp521r1 | secp521r1(0x0019)是使用 P-521 的椭圆曲线 Diffie–Hellman。P-521 | N | RFC 8422 |
0x001A | brainpoolP256r1 | brainpoolP256r1(0x001A)是使用 brainpoolP256r1 的椭圆曲线 Diffie–Hellman。brainpoolP256r1 | N | RFC 7027 |
0x001B | brainpoolP384r1 | brainpoolP384r1(0x001B)是使用 brainpoolP384r1 的椭圆曲线 Diffie–Hellman。brainpoolP384r1 | N | RFC 7027 |
0x001C | brainpoolP512r1 | brainpoolP512r1(0x001C)是使用 brainpoolP512r1 的椭圆曲线 Diffie–Hellman。brainpoolP512r1 | N | RFC 7027 |
0x001D说明 | x25519 | x25519(0x001D)是使用 curve25519 的椭圆曲线 Diffie–Hellman。curve25519 | Y | RFC 9846RFC 8422 |
0x001E | x448 | x448(0x001E)是使用 curve448 的椭圆曲线 Diffie–Hellman。curve448 | Y | RFC 9846RFC 8422 |
0x001F | brainpoolP256r1tls13 | brainpoolP256r1tls13(0x001F)是使用 brainpoolP256r1 的椭圆曲线 Diffie–Hellman。brainpoolP256r1 | N | RFC 8734 |
0x0020 | brainpoolP384r1tls13 | brainpoolP384r1tls13(0x0020)是使用 brainpoolP384r1 的椭圆曲线 Diffie–Hellman。brainpoolP384r1 | N | RFC 8734 |
0x0021 | brainpoolP512r1tls13 | brainpoolP512r1tls13(0x0021)是使用 brainpoolP512r1 的椭圆曲线 Diffie–Hellman。brainpoolP512r1 | N | RFC 8734 |
0x0022 | GC256A | GC256A(0x0022)是使用 GC256A 的椭圆曲线 Diffie–Hellman。GC256A | N | RFC 9189 |
0x0023 | GC256B | GC256B(0x0023)是使用 GC256B 的椭圆曲线 Diffie–Hellman。GC256B | N | RFC 9189 |
0x0024 | GC256C | GC256C(0x0024)是使用 GC256C 的椭圆曲线 Diffie–Hellman。GC256C | N | RFC 9189 |
0x0025 | GC256D | GC256D(0x0025)是使用 GC256D 的椭圆曲线 Diffie–Hellman。GC256D | N | RFC 9189 |
0x0026 | GC512A | GC512A(0x0026)是使用 GC512A 的椭圆曲线 Diffie–Hellman。GC512A | N | RFC 9189 |
0x0027 | GC512B | GC512B(0x0027)是使用 GC512B 的椭圆曲线 Diffie–Hellman。GC512B | N | RFC 9189 |
0x0028 | GC512C | GC512C(0x0028)是使用 GC512C 的椭圆曲线 Diffie–Hellman。GC512C | N | RFC 9189 |
0x0029 | curveSM2 | curveSM2(0x0029)是使用 SM2 的椭圆曲线 Diffie–Hellman。SM2 | N | RFC 8998 |
0x0100说明 | ffdhe2048 | ffdhe2048(0x0100)是 RFC 7919 中定义的 2048 位有限域 Diffie–Hellman 群。 | N | RFC 7919 |
0x0101 | ffdhe3072 | ffdhe3072(0x0101)是 RFC 7919 中定义的 3072 位有限域 Diffie–Hellman 群。 | N | RFC 7919 |
0x0102 | ffdhe4096 | ffdhe4096(0x0102)是 RFC 7919 中定义的 4096 位有限域 Diffie–Hellman 群。 | N | RFC 7919 |
0x0103 | ffdhe6144 | ffdhe6144(0x0103)是 RFC 7919 中定义的 6144 位有限域 Diffie–Hellman 群。 | N | RFC 7919 |
0x0104 | ffdhe8192 | ffdhe8192(0x0104)是 RFC 7919 中定义的 8192 位有限域 Diffie–Hellman 群。 | N | RFC 7919 |
0x0200 | MLKEM512 | MLKEM512(0x0200)是仅使用 ML-KEM-512(FIPS 203)、不含经典算法组件的后量子密钥协商。 | N | RFC-ietf-tls-mlkem-10 |
0x0201说明 | MLKEM768 | MLKEM768(0x0201)是仅使用 ML-KEM-768(FIPS 203)、不含经典算法组件的后量子密钥协商。 | N | RFC-ietf-tls-mlkem-10 |
0x0202 | MLKEM1024 | MLKEM1024(0x0202)是仅使用 ML-KEM-1024(FIPS 203)、不含经典算法组件的后量子密钥协商。 | N | RFC-ietf-tls-mlkem-10 |
0x0A0A | Reserved | 0x0A0A 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0x11E9 | SecP256r1MLKEM512 | SecP256r1MLKEM512(0x11E9)是混合密钥交换:共享密钥由 secp256r1 与 ML-KEM-512 组合而成,只要两者中任意一个未被攻破,它就仍然保密。P-256 | N | draft-rosomakho-tls-ecdhe-mlkem512-00 |
0x11EA | MLKEM512X25519 | MLKEM512X25519(0x11EA)是混合密钥交换:共享密钥由 X25519 与 ML-KEM-512 组合而成,只要两者中任意一个未被攻破,它就仍然保密。curve25519 | N | draft-rosomakho-tls-ecdhe-mlkem512-00 |
0x11EB说明 | SecP256r1MLKEM768 | SecP256r1MLKEM768(0x11EB)是混合密钥交换:共享密钥由 secp256r1 与 ML-KEM-768 组合而成,只要两者中任意一个未被攻破,它就仍然保密。P-256 | N | RFC 10024 |
0x11EC说明 | X25519MLKEM768 | X25519MLKEM768(0x11EC)是混合密钥交换:共享密钥由 X25519 与 ML-KEM-768 组合而成,只要两者中任意一个未被攻破,它就仍然保密。curve25519 | Y | RFC 10024 |
0x11ED | SecP384r1MLKEM1024 | SecP384r1MLKEM1024(0x11ED)是混合密钥交换:共享密钥由 secp384r1 与 ML-KEM-1024 组合而成,只要两者中任意一个未被攻破,它就仍然保密。P-384 | N | RFC 10024 |
0x11EE | curveSM2MLKEM768 | curveSM2MLKEM768(0x11EE)是混合密钥交换:共享密钥由 curveSM2 与 ML-KEM-768 组合而成,只要两者中任意一个未被攻破,它就仍然保密。SM2 | N | draft-yang-tls-hybrid-sm2-mlkem-03 |
0x1A1A | Reserved | 0x1A1A 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0x2A2A | Reserved | 0x2A2A 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0x3A3A | Reserved | 0x3A3A 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0x4A4A | Reserved | 0x4A4A 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0x5A5A | Reserved | 0x5A5A 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0x6399 | X25519Kyber768Draft00 | X25519Kyber768Draft00(0x6399)是混合密钥交换:共享密钥由 X25519 与 Kyber768 (draft 00) 组合而成,只要两者中任意一个未被攻破,它就仍然保密。它是标准化之前的码点,现已废弃。curve25519 | D | draft-tls-westerbaan-xyber768d00-02RFC 10024 |
0x639A | SecP256r1Kyber768Draft00 | SecP256r1Kyber768Draft00(0x639A)是混合密钥交换:共享密钥由 secp256r1 与 Kyber768 (draft 00) 组合而成,只要两者中任意一个未被攻破,它就仍然保密。它是标准化之前的码点,现已废弃。P-256 | D | draft-kwiatkowski-tls-ecdhe-kyber-01RFC 10024 |
0x6A6A | Reserved | 0x6A6A 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0x7A7A | Reserved | 0x7A7A 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0x8A8A | Reserved | 0x8A8A 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0x9A9A | Reserved | 0x9A9A 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0xAAAA | Reserved | 0xAAAA 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0xBABA | Reserved | 0xBABA 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0xCACA | Reserved | 0xCACA 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0xDADA | Reserved | 0xDADA 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0xEAEA | Reserved | 0xEAEA 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0xFAFA | Reserved | 0xFAFA 是“TLS 支持的组”注册表中的 GREASE 值(RFC 8701):客户端会随机发送这类值,让服务器学会忽略未知条目。它从不代表任何真实的算法。 | N | RFC 8701 |
0xFF01 | arbitrary_explicit_prime_curves | arbitrary_explicit_prime_curves(0xFF01)告知对端:曲线参数将被显式发送,而不是指定一个组。RFC 8422 已弃用显式曲线。 | N | RFC 8422 |
0xFF02 | arbitrary_explicit_char2_curves | arbitrary_explicit_char2_curves(0xFF02)告知对端:曲线参数将被显式发送,而不是指定一个组。RFC 8422 已弃用显式曲线。 | N | RFC 8422 |
| 范围 | 状态 | 说明 |
|---|---|---|
| 0x0000 | reserved | Reserved |
| 0x002A–0x00FF | unassigned | Unassigned |
| 0x0105–0x01FB | unassigned | Unassigned |
| 0x01FC–0x01FF | private | Reserved for Private Use |
| 0x0203–0x0A09 | unassigned | Unassigned |
| 0x0A0B–0x11E8 | unassigned | Unassigned |
| 0x11EF–0x1A19 | unassigned | Unassigned |
| 0x1A1B–0x2A29 | unassigned | Unassigned |
| 0x2A2B–0x3A39 | unassigned | Unassigned |
| 0x3A3B–0x4A49 | unassigned | Unassigned |
| 0x4A4B–0x5A59 | unassigned | Unassigned |
| 0x5A5B–0x6398 | unassigned | Unassigned |
| 0x639B–0x6A69 | unassigned | Unassigned |
| 0x6A6B–0x7A79 | unassigned | Unassigned |
| 0x7A7B–0x8A89 | unassigned | Unassigned |
| 0x8A8B–0x9A99 | unassigned | Unassigned |
| 0x9A9B–0xAAA9 | unassigned | Unassigned |
| 0xAAAB–0xBAB9 | unassigned | Unassigned |
| 0xBABB–0xCAC9 | unassigned | Unassigned |
| 0xCACB–0xDAD9 | unassigned | Unassigned |
| 0xDADB–0xEAE9 | unassigned | Unassigned |
| 0xEAEB–0xFAF9 | unassigned | Unassigned |
| 0xFAFB–0xFDFF | unassigned | Unassigned |
| 0xFE00–0xFEFF | private | Reserved for Private Use |
| 0xFF00 | unassigned | Unassigned |
| 0xFF03–0xFFFF | unassigned | Unassigned |
来源:Transport Layer Security (TLS) Parameters(IANA),获取于 2026-10-20。数据许可证:CC0-1.0。 TLS Supported Groups
基于 P-256 的 ECDHE:RFC 8446 规定每个 TLS 1.3 实现都必须支持的密钥交换。
secp256r1(23)是 TLS 1.3 实现必须(MUST)支持的组(RFC 8446 §9.1),因此它是始终可用的回退选项。它的密钥共享(key share)是 65 字节的未压缩点;TLS 1.3 禁止这些曲线使用压缩点。参见 P-256。
基于 P-384 的 ECDHE,NSA 的 CNSA 1.0 套件要求使用。
IANA 将 secp384r1(24)标记为推荐,它也是符合 CNSA 的配置所使用的组。它的密钥共享为 97 字节。混合组 SecP384r1MLKEM1024 将它与 ML-KEM-1024 搭配,用于向 CNSA 2.0 过渡。参见 P-384。
基于 Curve25519 的椭圆曲线 Diffie–Hellman,是 TLS 1.3 默认的经典密钥交换。
x25519(29)是最常见的 TLS 1.3 密钥共享,也是 X25519MLKEM768 中的经典部分。RFC 8446 §9.1 规定,除必须支持的 secp256r1 外,实现还应当(SHOULD)支持它。密钥共享为 32 字节。参见 Curve25519。
RFC 7919 定义的 2048 位有限域 Diffie–Hellman 组。
RFC 7919 用五个固定的命名组取代了由服务器自选的 DHE 参数——正如 Logjam 攻击所揭示的,这类参数往往只有 1024 位,有时还被许多服务器共用,可以预先计算。TLS 1.3 通过 supported_groups 协商这些组。RFC 10015 §3 禁止在 TLS 1.2 中使用 FFDHE 密码套件,因此这些组如今只与 TLS 1.3 有关,而在 TLS 1.3 中它们也很少使用。
单独使用 ML-KEM-768、不含经典算法成分的纯后量子 TLS 密钥交换。
MLKEM768(513)只使用 FIPS 203 定义的 KEM。一旦 ML-KEM 被攻破,就没有任何东西能保护会话,因此 Web 上使用的是 X25519MLKEM768 这样的混合方案;纯后量子组面向的是策略要求只使用后量子算法的环境。
P-256 ECDHE 与 ML-KEM-768 的混合方案,适用于必须继续使用 NIST 认可曲线的部署。
SecP256r1MLKEM768(0x11EB,RFC 10024)将 P-256 密钥共享与 ML-KEM-768 组合在一起。由于两个组成部分都经过 NIST 认可,它适合无法使用 X25519 的 FIPS 验证部署。
浏览器和主流服务器默认协商的混合后量子密钥交换:X25519 与 ML-KEM-768 的组合。
X25519MLKEM768(0x11EC,RFC 10024)在同一个 key_share 条目中发送 ML-KEM-768 封装密钥和 X25519 密钥共享,并把两个共享密钥拼接起来,因此只要其中任一算法未被攻破,会话就仍然保密。它能保护当下的流量,抵御未来量子计算机发起的“先收集后解密”攻击。IANA 将其标记为推荐。
ClientHello 中的密钥共享约为 1.2 KB,这使 ClientHello 超出一个 TCP 分段,也暴露出一些无法处理分段 ClientHello 的中间设备。早期部署使用的是标准化之前的码点 X25519Kyber768Draft00(0x6399),现已废弃。