demo · v147 · security · post-quantum
Key Exchange Benchmark
Side-by-side performance comparison of X25519 (classical) versus X25519Kyber768 (post-quantum hybrid), using the Web Crypto API for real key generation and simulated Kyber operations.
Byte visualisation — each block = 32 bytes of ClientHello key_share extension:
X25519 (1 block, 32 bytes) Kyber768 additional bytes (37 blocks, 1,184 bytes)
why size matters
The 1,216-byte hybrid key share is ~38× larger than the 32-byte X25519 share. During Chrome's initial Kyber rollout in 2023, some corporate network middleboxes rejected TLS ClientHellos with unexpectedly large key_share extensions — causing connection failures. Chrome later limited Kyber to certain server configurations to avoid this. The tradeoff is temporary: as server ecosystems update, the hybrid can be deployed universally.
see also
implementation reference
Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗