Product Pricing Security & data Research Publications Blog About Careers Alpha Talk to us Download alpha
Research Cryptography · 26 June 2026 · 8 min read

The latency cost of post-quantum TLS, measured over 1.2 million handshakes

Post-quantum key exchange is routinely described as too expensive to enable by default. We instrumented our alpha builds and measured it. On every network condition we tested, the median penalty was smaller than the variance introduced by ordinary Wi-Fi.

ReportDBR-2026-04
Versionv1.0
AreaApplied cryptography

Published 26 June 2026

Abstract

We collected timing data from 1.24 million TLS handshakes performed by Dart alpha builds between February and June 2026, comparing classical X25519 key exchange against the hybrid X25519MLKEM768 construction. Median handshake latency increased by 6.8 ms — roughly 9% — while the interquartile range of handshake latency on residential Wi-Fi was 41 ms. The dominant cost is not computation but the additional round trip induced when the larger ClientHello exceeds the initial congestion window, which affects a minority of connections but affects them severely.

6.8 msmedian added latency for hybrid post-quantum key exchange
1,120 Badditional bytes in the ClientHello over classical X25519
3.1%of connections incurring an extra round trip from ClientHello growth

The case against enabling post-quantum key exchange by default has always been about cost. The keys are larger, the ClientHello is bigger, the computation is heavier, and — the argument goes — users will notice. We shipped it on by default in the alpha specifically so we could find out whether that is true.

Between February and June 2026 we collected timing telemetry from 1.24 million TLS handshakes across our alpha population. Because Dart sends no telemetry by default, this data comes exclusively from testers who explicitly opted into the measurement programme, and it contains handshake timings and network class only — no hostnames, no addresses, no content. That constraint shaped the study and it also limits it, which we come back to at the end.

The headline number is small

01002003004002060100140180220medianhandshake completion time (ms)
Distribution of handshake completion time for hybrid X25519MLKEM768 across all network classes. The long tail is real but thin.

Median handshake latency for the hybrid construction was 81.4 ms against 74.6 ms for classical X25519 — a difference of 6.8 ms, or about 9%. For context, the interquartile range of handshake latency on residential Wi-Fi in the same dataset was 41 ms. The post-quantum penalty is, for most users on most connections, considerably smaller than the noise introduced by walking to another room.

01002003004003137Fibre5865Cable7481Residential Wi-Fi112119Mobile 5G210217Mobile 4GX25519 (classical)X25519MLKEM768 (hybrid)
Median handshake latency by network class. The penalty is roughly constant in absolute terms, which means it is proportionally largest on the fastest connections.

Breaking the data down by network class shows the penalty is roughly constant in absolute terms rather than proportional. On fibre, where a classical handshake completes in 31 ms, the additional 6 ms is a 19% increase. On a congested mobile connection at 210 ms, the same 7 ms is lost entirely in the noise. This is the opposite of the pattern people intuitively expect, and it means the users most likely to perceive post-quantum overhead are the ones on the best connections.

The real cost is a packet-size problem, not a maths problem

Only about 1.1 ms of the median penalty is computation. ML-KEM-768 encapsulation and decapsulation are fast — faster, in fact, than the X25519 scalar multiplication they accompany on most of the hardware we sampled. The remaining cost comes from size.

ComponentClassical X25519Hybrid X25519MLKEM768Delta
ClientHello key share32 B1,216 B+1,184 B
ServerHello key share32 B1,120 B+1,088 B
Total ClientHello517 B1,637 B+1,120 B
Client CPU (median)0.42 ms0.98 ms+0.56 ms
Server CPU (median)0.38 ms0.91 ms+0.53 ms
Measured on the alpha population; server-side figures from our own test endpoints only.

A classical ClientHello fits comfortably in a single packet. A hybrid one is 1,637 bytes, which exceeds the common 1,500-byte Ethernet MTU and therefore spans two packets. For most connections this costs nothing measurable. For connections where the initial congestion window is small, or where a middlebox handles the second packet poorly, it costs an entire additional round trip.

0%5%10%15%20%Satellite19.4%Corporate / middlebox11.2%Mobile 4G4.8%Residential Wi-Fi2.1%Cable1.4%Fibre0.6%
Share of connections incurring an extra round trip, by network class. The aggregate figure of 3.1% conceals a much worse experience for a specific minority.
The average is fine. A specific 3.1% of connections have a genuinely bad time, and reporting only the median would hide them. Both numbers belong in the summary.

This is where we think the public discussion has been imprecise. The claim “post-quantum TLS costs about 9%” is true of the median and misleading about the tail. For the 3.1% of connections that incur an extra round trip, the penalty was a median of 94 ms — more than doubling handshake time. Those users are concentrated on satellite links, some corporate networks with aggressive middleboxes, and older mobile infrastructure. They are a minority, they are not randomly distributed, and an average hides them completely.

Why we still ship it on by default

The threat model is what settles this. Harvest-now-decrypt-later attacks do not require a quantum computer to exist today; they require an adversary willing to store ciphertext until one does. Traffic captured in 2026 and decrypted in 2034 is still disclosed. For data with a long confidentiality lifetime — legal correspondence, medical records, source code, journalism — the correct comparison is not 7 ms against zero. It is 7 ms against the cost of that disclosure.

We also think the tail problem is fixable rather than fundamental. Most of it is congestion-window behaviour that improves as TLS 1.3 stacks and middleboxes catch up with larger ClientHellos, and some of it is already addressed by the ongoing work on key-share prediction. We would rather ship it, measure the tail, and report it honestly than wait for a version with no tail at all.

Method and limitations

Timings were captured client-side using the browser's internal network stack instrumentation, from the first byte of ClientHello to the completion of the handshake. Network class was inferred from the interface type and a bandwidth estimate, not from any address. Participants opted in explicitly and could inspect the exact payload before it was sent.

Sample1,243,912 handshakes · 4,180 opted-in devices · Feb–Jun 2026
ConstructionsX25519 (classical) · X25519MLKEM768 (hybrid, RFC 9370 style)
CapturedHandshake duration, key-share sizes, round-trip count, network class
Not capturedHostnames, IP addresses, certificates, any content whatsoever

The most important limitation is selection bias, and it is severe. Testers who opt into a measurement programme run by a privacy-focused browser are not a random sample of internet users; they skew technical, well-connected, and geographically concentrated in North America and Western Europe. We have almost no data from regions where the tail problem is likely to be worst. Treat the 3.1% figure as a floor rather than an estimate.

Aggregated handshake timings are published quarterly at dartbrowser.com/research. If you operate network infrastructure in an under-represented region and would be willing to run a measurement client, we would like to hear from you: research@dartbrowser.com.

The performance of post-quantum key exchange in TLS has been measured before, most visibly by browser and CDN operators running large-scale experiments [6, 7]. Those studies report from the server side of a very large sample and are authoritative on aggregate cost. They are necessarily less informative about the tail, because a server operator sees connections that completed. Our sample is far smaller and heavily self-selected, but it is client-side and therefore includes the connections that struggled. We read the two sets of results as complementary rather than competing: the medians agree closely, and our contribution is a client-side view of who pays the additional round trip.

Artefacts

Everything below is published or available on request. A number nobody can reproduce is an advertisement, not a result.

dataAggregated handshake timingsCSV · bucketed, no identifiers · CC BY 4.0
harnessdart-tls-probeMeasurement client · Apache-2.0
specNetwork class inference methodWritten specification

References

  1. National Institute of Standards and Technology (2024). FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard.
  2. National Institute of Standards and Technology (2024). FIPS 204: Module-Lattice-Based Digital Signature Standard.
  3. Rescorla, E. (2018). RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3. IETF.
  4. Stebila, D., Fluhrer, S., & Gueron, S. Hybrid key exchange in TLS 1.3. IETF, draft-ietf-tls-hybrid-design.
  5. Bernstein, D. J., & Lange, T. (2017). Post-quantum cryptography. Nature, 549.
  6. Langley, A. (2018–2019). CECPQ2 and experiments with post-quantum key agreement. Google.
  7. Westerbaan, B., et al. (2024). The state of the post-quantum Internet. Cloudflare.
Cite this work

Bhardwaj, M. (2026). The latency cost of post-quantum TLS, measured over 1.2 million handshakes. Dart Browser Research, DBR-2026-04.

Mohit Bhardwaj

Member of Technical Staff · Dart Browser

Mohit works on the inference and retrieval layer of the Dart Agent, where he is responsible for on-device model integration, the semantic index, and the benchmark harness the team uses to decide what ships. He writes up the measurements that changed our minds.