Parameters & Sizes
Post-quantum keys, ciphertexts, and signatures are far larger than RSA-2048 or elliptic-curve equivalents. This page consolidates the sizes across standardized, selected, and notable candidate/historical schemes alongside the classical baselines, and explains what those sizes mean once they hit real protocols.
Consolidated size table
All values are in bytes. KEM rows give the public encapsulation key (ek) and ciphertext (ct); signature rows give the public key (pk) and signature (sig). Sizes are approximate where rounding or encoding varies.
| Scheme | Type | Level | Public key / ek | Ciphertext / signature |
|---|---|---|---|---|
| RSA-2048 | classical | — | 256 | 256 |
| Ed25519 | classical | — | 32 | 64 |
| ML-KEM-512 | KEM | 1 | 800 | 768 |
| ML-KEM-768 | KEM | 3 | 1184 | 1088 |
| ML-KEM-1024 | KEM | 5 | 1568 | 1568 |
| Classic McEliece | KEM | 1–5 | ~261,120–1,357,824 | ~96–208 |
| HQC-128 | KEM | 1 | ~2249 | ~4433 |
| BIKE (L1) | KEM | 1 | ~1541 | ~1573 |
| ML-DSA-44 | signature | 2 | 1312 | 2420 |
| ML-DSA-65 | signature | 3 | 1952 | 3309 |
| ML-DSA-87 | signature | 5 | 2592 | 4627 |
| Falcon-512 | signature | 1 | ~897 | ~666 |
| Falcon-1024 | signature | 5 | ~1793 | ~1280 |
| SLH-DSA-128s | signature | 1 | 32 | ~7856 |
| SLH-DSA-128f | signature | 1 | 32 | ~17,088 |
| SLH-DSA-192s | signature | 3 | 48 | ~16,224 |
| SLH-DSA-256s | signature | 5 | 64 | ~29,792 |
Falcon signature sizes shown are the fixed-length padded values (666 / 1280). The standard Falcon-512 / Falcon-1024 produce variable-length signatures — typically ~650 / ~1270 bytes, up to 752 / 1462 — so libraries report the padded numbers here while falcon.html gives the variable-length detail.
HQC does not yet have a finalized FIPS standard, so its sizes may be adjusted slightly as the final standard draft is settled.
Reading the table — the tradeoffs
- Lattice KEMs (ML-KEM) are well-balanced: roughly 1 KB each way, fast. This is why
ML-KEM-768is the common default. - Classic McEliece inverts the tradeoff: tiny ciphertexts but a public key over a quarter-megabyte, which makes it impractical to ship keys per-connection but attractive where a public key is pinned once and reused.
- ML-DSA signatures sit in the 2.4–4.6 KB range — large but manageable.
- Falcon: among the post-quantum signature schemes selected by NIST, Falcon/FN-DSA has a very compact overall size, at the cost of a difficult-to-secure signer.
- SLH-DSA pays heavily in signature size, and its
f("fast") variants trade even larger signatures for faster signing versus thes("small") variants.
What the sizes mean for protocols
Size is not a cosmetic concern — it interacts with hard protocol and network limits:
- TLS record and ClientHello limits. A hybrid key share (X25519 + ML-KEM-768) pushes the ClientHello toward or past common ~1.5 KB assumptions, and some middleboxes mishandle large or fragmented initial flights. A full PQC certificate chain (multiple ML-DSA-65 public keys and signatures) can run to tens of kilobytes, adding round-trips.
- MTU and fragmentation. The typical Ethernet MTU is 1500 bytes. KEM ciphertexts and signatures routinely exceed a single packet, forcing IP/QUIC fragmentation or extra TLS records, which raises latency and amplifies packet-loss impact.
- UDP-based protocols (DTLS, QUIC, IKE). These are especially sensitive: large handshake messages must be fragmented at the application layer, and oversized first flights enable amplification-attack concerns.
- Certificate storage and chains. Each hop in an X.509 chain now carries a multi-kilobyte signature plus a multi-kilobyte public key. Deep chains multiply this; consider chain shortening and intermediate suppression.
Why ML-KEM-768 / ML-DSA-65 are common defaults
They sit at the sweet spot: Level 3 security margin, sub-2 KB public keys, sub-3.5 KB signatures/ciphertexts, fast constant-time implementations, and the widest interoperability across libraries and TLS stacks. Unless you have a confidentiality horizon that demands Level 5 or a size budget that forces Falcon, this pairing is the safe starting point.
Related
Standards & references
- FIPS 203 (ML-KEM) — defines the KEM parameter sets and their sizes.
- FIPS 204 (ML-DSA) — defines the lattice signature parameter sets and their sizes.
- FIPS 205 (SLH-DSA) — defines the hash-based signature parameter sets and their sizes.
- NIST Post-Quantum Cryptography project — the source for all standardized and candidate parameters.
- Resources — full standards register
参数与体积
后量子的密钥、密文和签名远大于 RSA-2048 或同等强度的椭圆曲线方案。本页对标准化、已选定及重要候选/历史方案的体积进行汇总,并列出经典基线,进而说明这些体积一旦落到真实协议上意味着什么。
体积汇总表
所有数值单位为字节。KEM 行给出公开封装密钥(ek)与密文(ct);签名行给出公钥(pk)与签名(sig)。因取整或编码差异,部分数值为近似值。
| 方案 | 类型 | 等级 | 公钥 / ek | 密文 / 签名 |
|---|---|---|---|---|
| RSA-2048 | 经典 | — | 256 | 256 |
| Ed25519 | 经典 | — | 32 | 64 |
| ML-KEM-512 | KEM | 1 | 800 | 768 |
| ML-KEM-768 | KEM | 3 | 1184 | 1088 |
| ML-KEM-1024 | KEM | 5 | 1568 | 1568 |
| Classic McEliece | KEM | 1–5 | 约 261,120–1,357,824 | 约 96–208 |
| HQC-128 | KEM | 1 | 约 2249 | 约 4433 |
| BIKE(L1) | KEM | 1 | 约 1541 | 约 1573 |
| ML-DSA-44 | 签名 | 2 | 1312 | 2420 |
| ML-DSA-65 | 签名 | 3 | 1952 | 3309 |
| ML-DSA-87 | 签名 | 5 | 2592 | 4627 |
| Falcon-512 | 签名 | 1 | 约 897 | 约 666 |
| Falcon-1024 | 签名 | 5 | 约 1793 | 约 1280 |
| SLH-DSA-128s | 签名 | 1 | 32 | 约 7856 |
| SLH-DSA-128f | 签名 | 1 | 32 | 约 17,088 |
| SLH-DSA-192s | 签名 | 3 | 48 | 约 16,224 |
| SLH-DSA-256s | 签名 | 5 | 64 | 约 29,792 |
表中 Falcon 签名尺寸为定长 padded 值(666 / 1280)。标准 Falcon-512 / Falcon-1024 产生变长签名——通常约 650 / 1270 字节,上限 752 / 1462——因此此处按库报告的 padded 数值给出;变长口径详见 falcon.html。
HQC 尚未发布最终 FIPS 标准,尺寸可能随最终标准草案微调。
读懂这张表 各种取舍
- 格 KEM(ML-KEM)较为均衡:双向各约 1 KB,速度快。这正是
ML-KEM-768成为常见默认值的原因。 - Classic McEliece 反转了取舍:密文极小,但公钥超过四分之一兆字节,因而不宜为每条连接传输密钥,却适合公钥一次固定、反复复用的场景。
- ML-DSA 签名落在 2.4–4.6 KB 区间——偏大但尚可管理。
- Falcon:在 NIST 已选中的主流后量子签名方案中,Falcon/FN-DSA 的整体尺寸非常紧凑,代价是签名端难以保证安全。
- SLH-DSA 在签名体积上付出沉重代价,其
f(fast)变体相比s(small)变体以更大的签名换取更快的签名速度。
体积对协议意味着什么
体积绝非外观层面的小事——它会与协议和网络的硬性上限相互作用:
- TLS 记录与 ClientHello 限制。混合密钥份额(X25519 + ML-KEM-768)会把 ClientHello 推向甚至越过常见的约 1.5 KB 假设,部分中间盒会错误处理过大或分片的首批数据。一条完整的 PQC 证书链(多个 ML-DSA-65 公钥与签名)可达数十 KB,从而增加往返次数。
- MTU 与分片。典型以太网 MTU 为 1500 字节。KEM 密文与签名往往超过单个数据包,迫使 IP/QUIC 分片或拆成多条 TLS 记录,既抬高时延,又放大丢包影响。
- 基于 UDP 的协议(DTLS、QUIC、IKE)。这类协议尤为敏感:大型握手消息须在应用层分片,而过大的首批数据会引发放大攻击隐患。
- 证书存储与链路。X.509 链上每一跳如今都携带数 KB 的签名外加数 KB 的公钥。深层链路使之成倍累积;可考虑缩短链路并抑制中间证书。
为何 ML-KEM-768 ML-DSA-65 成为常见默认值
它们恰处于甜点区:Level 3 安全裕度、不足 2 KB 的公钥、不足 3.5 KB 的签名/密文、快速的恒定时间实现,以及跨各类库与 TLS 栈的最佳互操作性。除非你的机密期长到必须用 Level 5,或体积预算紧到不得不选 Falcon,否则这对组合就是稳妥的起点。
相关链接
标准与参考
- FIPS 203 ML-KEM — 定义 KEM 参数组及其体积。
- FIPS 204 ML-DSA — 定义格签名参数组及其体积。
- FIPS 205 SLH-DSA — 定义哈希签名参数组及其体积。
- NIST 后量子密码项目 — 所有标准化及候选参数的来源。
- 资源链接 — 完整标准登记册