Migration Guide

Migrating from classical cryptography to PQC is a multi-year effort. This guide gives you a concrete, phased roadmap with entry criteria, actions, and exit criteria for each phase.

The Timeline

NIST will deprecate all quantum-vulnerable algorithms by 2035 (NIST IR 8547). Work backward from that deadline.

gantt
    title PQC Migration Timeline
    dateFormat YYYY
    axisFormat %Y

    section Standards
    FIPS 203-205 Published          :done, 2024, 2024
    FIPS 206-207 Expected           :active, 2025, 2026
    Classical Crypto Deprecated     :crit, 2035, 2035

    section Migration Phases
    Phase 0 - Inventory             :p0, 2025, 2026
    Phase 1 - Hybrid Deployment     :p1, 2026, 2030
    Phase 2 - Full PQC              :p2, 2030, 2033
    Phase 3 - Classical Removal     :p3, 2033, 2035

Phase 0: Inventory (2025-2026)

Goal: Know exactly where and how you use cryptography.

Entry Criteria

  • Decision to begin PQC migration
  • Engineering team assigned

Actions

Crypto Inventory Checklist:

  • TLS endpoints: List all services using TLS. Note TLS library versions.
  • SSH access: Inventory SSH key types and key exchange algorithms across all hosts.
  • VPN connections: Document VPN protocols and key exchange methods (IKEv2, WireGuard, OpenVPN).
  • Certificates: Catalog all X.509 certificates — CA hierarchy, signature algorithms, expiration dates.
  • Code signing: Identify all code/artifact signing keys and algorithms.
  • Data at rest: Document encryption of stored data — AES key sizes, key wrapping algorithms.
  • Key management: Map key derivation, key exchange, and key agreement protocols.
  • Third-party APIs: Identify external services and their crypto requirements (mTLS, webhook signatures, JWT).
  • Embedded/IoT devices: List constrained devices with crypto — firmware update cycles, hardware crypto capabilities.
  • Compliance requirements: Note any regulatory crypto requirements (FIPS 140, PCI-DSS, HIPAA, FedRAMP).

Exit Criteria

  • Complete inventory of all crypto usage with algorithm details
  • Risk assessment prioritizing harvest-now-decrypt-later targets
  • Migration plan with timeline and resource estimates

Phase 1: Hybrid Deployment (2026-2030)

Goal: Deploy PQC alongside classical crypto. Both run in parallel — if either is secure, you’re protected.

Entry Criteria

  • Phase 0 inventory complete
  • PQC-capable library versions available for your stack

Actions

flowchart TD
    KEX[Key Exchange<br/>Highest Priority] --> HYBRID_KEM[Deploy hybrid<br/>X25519 + ML-KEM-768]
    SIG[Signatures<br/>Medium Priority] --> HYBRID_SIG[Deploy hybrid<br/>ECDSA + ML-DSA-65]
    DATA[Data at Rest<br/>Lower Priority] --> AES256[Ensure AES-256<br/>already quantum-safe]

    classDef high fill:#8e5050,stroke:#6e3030,color:#2c3e50
    classDef med fill:#8e7060,stroke:#6e5040,color:#2c3e50
    classDef low fill:#6b8e6b,stroke:#4a6a4a,color:#2c3e50

    class KEX high
    class SIG med
    class DATA low
    class HYBRID_KEM,HYBRID_SIG,AES256 low

Priority order:

  1. Key exchange first — this is where harvest-now-decrypt-later attacks hit. Deploy hybrid X25519+ML-KEM in TLS and SSH.
  2. Signatures second — less urgent (can’t retroactively forge signatures), but needed for certificate chains.
  3. Data at rest — if you’re already using AES-256, you’re quantum-safe. Focus on key wrapping and key derivation.

How Hybrid Mode Works

Hybrid key exchange combines classical and PQC algorithms. The shared secret is derived from both:

shared_secret = HKDF(classical_secret || pqc_secret)

This gives you AND security during transition:

  • If classical holds but PQC is broken → still secure
  • If PQC holds but classical is broken → still secure
  • Only fails if both are broken simultaneously

Exit Criteria

  • All external-facing TLS endpoints using hybrid PQC key exchange
  • SSH key exchange upgraded to PQC hybrid
  • VPN connections using PQC key exchange where possible
  • New certificates issued with PQC signature algorithms
  • Performance impact measured and acceptable

Phase 2: Full PQC (2030-2033)

Goal: PQC becomes the primary algorithm. Classical remains as fallback for interoperability.

Entry Criteria

  • Phase 1 hybrid deployment stable in production
  • PQC-only standards finalized and widely supported
  • Interoperability tested with all partners and clients

Actions

  • Switch from “classical primary, PQC secondary” to “PQC primary, classical fallback”
  • Reissue certificate hierarchies with PQC-only root and intermediate CAs
  • Update key management systems to generate PQC keys by default
  • Begin firmware updates for constrained/IoT devices
  • Negotiate PQC requirements with third-party API providers

Exit Criteria

  • All new deployments use PQC-only (no classical)
  • Existing deployments run PQC primary with classical fallback
  • All certificate chains use PQC signatures
  • Constrained devices have PQC-capable firmware

Phase 3: Classical Removal (2033-2035)

Goal: Remove classical algorithms entirely before the NIST 2035 deprecation deadline.

Entry Criteria

  • Phase 2 complete — PQC is primary everywhere
  • All interoperability partners support PQC-only
  • No remaining devices/systems require classical algorithms

Actions

  • Remove classical algorithm support from configurations
  • Revoke classical-only certificates
  • Update compliance documentation
  • Final security audit confirming no classical crypto remains

Exit Criteria

  • Zero classical public-key cryptography in production
  • All systems pass compliance audits
  • Documentation updated to reflect PQC-only state

Common Pitfalls

Don’t skip hybrid mode. Going directly to PQC-only is risky — PQC algorithms are newer and could have undiscovered vulnerabilities. Hybrid mode protects you either way.

Don’t forget certificate chains. A single classical signature in your cert chain means the chain is quantum-vulnerable. You need PQC signatures at every level (root CA → intermediate → leaf).

Don’t ignore third parties. Your migration timeline depends on your partners, CAs, and cloud providers. Start conversations early.


Migration Decision Map

flowchart TD
    Q1[Do you handle data<br/>confidential for 10+ years?] -->|Yes| URGENT[Start Phase 0 NOW<br/>Harvest-now threat is real]
    Q1 -->|No| Q2[Are you in a<br/>regulated industry?]
    Q2 -->|Yes| PLAN[Start Phase 0 in 2025<br/>Compliance deadlines coming]
    Q2 -->|No| Q3[Do you have<br/>IoT/embedded devices?]
    Q3 -->|Yes| PLAN
    Q3 -->|No| NORMAL[Start Phase 0 by 2027<br/>Plan for 2035 deadline]

    classDef urgent fill:#8e5050,stroke:#6e3030,color:#2c3e50
    classDef plan fill:#8e7060,stroke:#6e5040,color:#2c3e50
    classDef normal fill:#6b8e6b,stroke:#4a6a4a,color:#2c3e50
    classDef question fill:#5a8eaa,stroke:#3a6e8a,color:#2c3e50

    class Q1,Q2,Q3 question
    class URGENT urgent
    class PLAN plan
    class NORMAL normal

Next: Look up any unfamiliar terms in the Glossary.


Last updated: 2026-02-13


Back to top

PQC Engineering Guide — part of the libpqcx project. Content is provided for educational purposes.

This site uses Just the Docs, a documentation theme for Jekyll.