The quantum threat to public-key cryptography is no longer theoretical, and the regulatory clocks are no longer abstract. NIST finalized the first post-quantum standards in August 2024. The NSA’s CNSA 2.0 mandate requires post-quantum cryptography across National Security Systems by 2030. Industry guidance, including from CISA and the major cloud providers, points to 2035 as the practical deadline for everything else. If your TLS termination, code signing, S/MIME, or VPN stack still relies exclusively on RSA or ECC in 2030, you will be migrating under duress.
This is a playbook for engineering leaders who need to move from “we should look into PQC” to a multi-year migration program with measurable milestones. The work decomposes into four phases: inventory, algorithm selection, hybrid deployment, and crypto-agility. None of them are optional, and the first one is harder than it looks.
The NIST PQC Standards You Need to Know
NIST published four standards in the first wave. Each addresses a different cryptographic primitive, and you will likely need three of them in production.
- ML-KEM (FIPS 203), formerly Kyber. Key encapsulation mechanism. This replaces RSA and ECDH for key exchange in TLS, IPsec, SSH, and any protocol that establishes a session key. ML-KEM-768 is the recommended general-purpose parameter set; ML-KEM-1024 for high-assurance environments.
- ML-DSA (FIPS 204), formerly Dilithium. Digital signature algorithm. Replaces RSA and ECDSA for code signing, certificate signing, and document signing. ML-DSA-65 is the typical choice; ML-DSA-87 for long-lived signatures.
- SLH-DSA (FIPS 205), formerly SPHINCS+. Stateless hash-based signatures. Slower and larger than ML-DSA but built on conservative hash-based assumptions, making it the hedge against unforeseen lattice attacks. Use for root certificate authorities, firmware signing, and anything with a multi-decade trust horizon.
- FALCON (forthcoming as FIPS 206). Lattice-based signatures with smaller signatures than ML-DSA but more complex implementation. Choose FALCON when bandwidth or storage for signatures dominates the cost calculation, such as constrained IoT or high-throughput certificate systems.
For most enterprise migrations, the working pair is ML-KEM for key exchange and ML-DSA for signatures, with SLH-DSA reserved for the highest trust roots. FALCON enters the conversation only for specific bandwidth-constrained use cases.
Phase One: Cryptographic Inventory
You cannot migrate what you have not catalogued. The inventory phase is where most programs stall, because cryptography is embedded in places no one documented. Plan for this phase to take six to twelve months in a mid-sized organization, longer if you have significant on-premises footprint or third-party integrations.
What to Inventory
The minimum viable inventory covers eight categories: TLS endpoints (both server and client roles), code signing infrastructure, internal and public certificate authorities, S/MIME and email signing, VPN and IPsec tunnels, secrets management and HSM-backed keys, document signing systems, and any cryptography embedded in proprietary protocols or firmware. For each item, capture the algorithm, key length, certificate validity, ownership, and renewal process.
Tools That Help
Network scanning with Nmap’s ssl-enum-ciphers script, certificate transparency logs for your domains, and CBOM (cryptography bill of materials) tooling such as IBM’s CBOMkit or the open-source CycloneDX CBOM extension. For source code, semgrep rules targeting calls to crypto primitives in your major languages will surface most usage. None of these tools are complete; they are starting points. Plan for manual review of high-risk systems, particularly anything that loads a certificate or key from a configuration file.
The Harvest-Now-Decrypt-Later Problem
The inventory must include data in motion that an adversary could record today and decrypt in a decade. Long-lived secrets, source code, intellectual property, and personal data with extended sensitivity windows are the priority. If your TLS sessions today carry data that will still be sensitive in 2035, those sessions need post-quantum key exchange now, not in 2030.
Phase Two: Hybrid Deployment
Hybrid mode combines a classical algorithm with a post-quantum algorithm, deriving the final session key from both. If either algorithm is broken, the other still protects the session. This is the recommended migration pattern from CNSA 2.0, BSI, and the IETF working groups, and it is what AWS, Cloudflare, and Google have already deployed in production TLS.
Hybrid TLS Today
TLS 1.3 with the X25519MLKEM768 hybrid key exchange is supported in OpenSSL 3.5, BoringSSL, and recent versions of Chrome, Firefox, and Edge. AWS Network Load Balancer, CloudFront, and KMS support hybrid TLS. Cloudflare enables it by default for inbound connections. Enabling hybrid TLS at your edge is the single highest-leverage move in the migration program: it protects new sessions against harvest-now-decrypt-later with minimal application change, and it surfaces compatibility issues with legacy clients while you still have time to address them.
Performance Realities
ML-KEM-768 adds roughly 1.2 kilobytes to the TLS handshake. On modern hardware, the cryptographic cost is negligible; the real cost is in the additional packet, which can push the handshake into a second round trip on lossy networks. ML-DSA signatures are larger than ECDSA by an order of magnitude, which matters for certificate chain size and OCSP stapling. SLH-DSA signatures are larger still, in the 8 to 50 kilobyte range depending on parameters. Budget for these sizes in any protocol with tight MTU constraints or high signature throughput.
Phase Three: Code Signing and PKI
Code signing and certificate authorities are harder than TLS because the trust horizon is longer and the verifier population is more diverse. A code signature issued today may need to verify on devices for ten or fifteen years. A root CA certificate may be embedded in firmware that ships for two decades.
The pragmatic pattern is dual-signing: produce both an ECDSA and an ML-DSA signature, and let the verifier accept either. This requires updates to verifier code wherever signatures are checked, which is the slow path of the migration. Start with the systems that have the longest signature lifetime and the smallest verifier population, typically internal firmware and enterprise software updates. Public code signing for consumer software follows the certificate authority ecosystem, which is moving on its own timeline coordinated through the CA/Browser Forum.
Phase Four: Crypto-Agility
The PQC migration is the second of many. The lattice assumptions underlying ML-KEM and ML-DSA are well-studied but not as old as the integer factorization assumption underlying RSA. If a cryptanalytic advance forces a third migration in a decade, the organizations that build crypto-agility now will move in months instead of years.
What Crypto-Agility Looks Like
Algorithm identifiers are configuration, not code constants. Every cryptographic operation goes through an abstraction layer that can swap algorithms without changing call sites. Keys carry algorithm metadata, not just key material. Certificate templates and signing pipelines are parameterized by algorithm. Most importantly, the organization runs a periodic exercise in which a designated algorithm is deprecated in a non-production environment and the migration is timed end-to-end. That exercise will surface the hard-coded OIDs, the assumed key sizes, and the legacy clients that the inventory missed.
Realistic Timeline
The deadlines are not uniform. Federal contractors and National Security Systems have a 2030 hard date under CNSA 2.0. Financial services regulators are signaling 2030 to 2032 for critical infrastructure. The German BSI and French ANSSI recommend completion by 2030 for high-sensitivity data. The 2035 industry-wide horizon is the latest defensible date, not the target.
A reasonable schedule for a mid-sized enterprise: complete the inventory by end of 2026, deploy hybrid TLS at all internet-facing edges by end of 2027, migrate internal certificate authorities to dual-signing by end of 2028, retire pure-classical signatures from new code-signing operations by end of 2029, and complete the long-tail cleanup by 2032. Every quarter you delay the inventory pushes the entire schedule back, because the inventory is the dependency for every other phase.
Recommendation
Start the inventory this quarter. Enable hybrid TLS at your edge before the end of next quarter. Build the algorithm abstraction layer in your shared libraries before you migrate the first internal CA. Do not wait for vendor announcements or perfect tooling; the standards are stable, the production deployments at hyperscalers are live, and the deadlines compress every quarter.
When This Applies, and When It Does Not
This playbook applies to any organization that operates its own TLS endpoints, signs its own code, runs internal certificate authorities, or handles data with sensitivity windows extending past 2035. It is overkill for a small startup that consumes managed TLS exclusively from a hyperscaler and signs nothing itself; in that case, the migration happens to you when your providers flip the switch, and your only obligation is to keep client libraries current. For everyone else, the migration is your problem, and the work starts with knowing what cryptography you have.