Senior 7 min · March 24, 2026

Quantum Computing – Harvest Now Decrypt Later Threat

Data encrypted with RSA-2048 may be decrypted within a decade.

N
Naren Founder & Principal Engineer

20+ years shipping performance-critical code where algorithms decide the bill. Notes here come from systems that actually shipped.

Follow
Production
production tested
May 23, 2026
last updated
1,596
articles · all by Naren
 ● Production Incident 🔎 Debug Guide ⚙ Triage Commands
Quick Answer
  • Quantum computing is not a faster classical computer — it's a different model exploiting superposition and interference.
  • A qubit: α|0⟩ + β|1⟩ where |α|²+|β|²=1. Measurement collapses to one classical bit.
  • n qubits represent all 2^n basis states simultaneously — quantum parallelism.
  • Entanglement: qubits correlate so measuring one determines the other instantly.
  • Quantum speedup: exponential for factoring (Shor), quadratic for search (Grover). No speedup for most everyday computation.
  • Cryptographic threat: Shor breaks RSA/ECC. NIST post-quantum standards (Kyber, Dilithium) are being deployed now.
✦ Definition~90s read
What is Quantum Computing Fundamentals for Developers?

Quantum computing is a fundamentally different approach to computation that exploits quantum mechanical phenomena—superposition, entanglement, and interference—to solve specific classes of problems exponentially faster than classical computers. Unlike classical bits that are strictly 0 or 1, qubits can exist in a superposition of both states simultaneously, and entangled qubits can correlate in ways that defy classical intuition.

A classical bit is 0 or 1.

This isn't just a faster CPU; it's a different computational model that breaks the assumptions underlying most modern cryptography. The 'Harvest Now, Decrypt Later' (HNDL) threat is the immediate practical concern: adversaries are already collecting encrypted data today, knowing that a future fault-tolerant quantum computer will be able to break RSA-2048 and ECDH in hours using Shor's algorithm.

For developers, this means your TLS handshakes, SSH keys, and digital signatures are all vulnerable to retroactive decryption once quantum machines reach scale—likely within 5–15 years according to NIST and IBM roadmaps. The threat is asymmetric: quantum computers don't replace classical ones for general tasks like web serving or database queries, but they do render current asymmetric cryptography obsolete.

Post-quantum cryptography (PQC) standards like CRYSTALS-Kyber and Dilithium, finalized by NIST in 2024, are the only viable defense. You need to start hybrid migration now—using both classical and PQC algorithms in parallel—because the transition will take years and your encrypted data is already being stockpiled.

Plain-English First

A classical bit is 0 or 1. A qubit is 0, 1, or any superposition of both simultaneously — until you measure it. This is not just faster storage; it is a fundamentally different computation model. Quantum parallelism lets a quantum computer evaluate a function on all possible inputs simultaneously. The challenge: extracting that answer without collapsing the superposition. This is what quantum algorithms do — they constructively interfere the correct answer while destructively interfering incorrect ones.

Quantum computing is not a faster classical computer. It is a fundamentally different computational model that exploits quantum mechanical phenomena — superposition, entanglement, and interference — to solve specific problem classes that are exponentially hard for classical computers.

The developer's mental model: a quantum computer with n qubits represents a superposition of all 2^n possible n-bit states simultaneously. A quantum algorithm manipulates this superposition to amplify the probability of the correct answer. Measurement collapses the superposition to a single outcome. The art of quantum algorithm design is arranging the interference so the correct answer has high probability.

As of 2026, quantum computers with 100-1000 physical qubits exist but are noisy (NISQ era). Fault-tolerant quantum computers that can run Shor's algorithm to break RSA-2048 likely require millions of physical qubits and remain years away. But the cryptographic threat is taken seriously: post-quantum cryptography standardisation (NIST 2024) is happening now.

Why Quantum Computing Changes the Threat Model for Encryption

Quantum computing leverages qubits that exist in superposition — a linear combination of 0 and 1 states — to perform calculations on all possible values simultaneously. Unlike classical bits, a qubit's state collapses upon measurement, but until then, quantum gates manipulate probability amplitudes. This enables algorithms like Shor's to factor large integers in polynomial time (O((log N)^3)), rendering RSA-2048 breakable in hours on a sufficiently large fault-tolerant machine.

Two properties matter in practice: superposition and entanglement. Superposition allows a quantum register of n qubits to represent 2^n states at once, providing exponential parallelism. Entanglement correlates qubits so that measuring one instantly determines the state of its partner, enabling quantum error correction and teleportation-based communication. Current machines (e.g., IBM Osprey with 433 qubits) are noisy and error-prone — they lack the logical qubit count needed for cryptographically relevant attacks.

You should care now because of the 'harvest now, decrypt later' threat. Adversaries can capture encrypted traffic today and store it until a quantum computer can break the keys. For any data with a shelf life beyond 5–10 years — financial records, state secrets, healthcare data — you must begin migrating to post-quantum cryptography (e.g., CRYSTALS-Kyber for key encapsulation) immediately. The transition is not optional; it's a matter of when, not if.

Harvest Now, Decrypt Later Is Already Happening
Assume all TLS 1.3 traffic recorded today will be decryptable in 10 years. Start planning your PQC migration now.
Production Insight
A fintech app using RSA-2048 for mTLS between microservices will have all historical transaction data exposed once Shor's algorithm runs on a 4099-qubit machine.
Symptom: no immediate failure — data exfiltration is silent and delayed, discovered only after decryption becomes feasible.
Rule: classify data by retention period; any data that must remain confidential beyond 5 years should use hybrid key exchange (ECDHE + Kyber) today.
Key Takeaway
Quantum computers break RSA and ECC via Shor's algorithm — not by brute force.
Superposition gives exponential parallelism, but error correction requires thousands of physical qubits per logical qubit.
Start post-quantum crypto migration now for data with long-term secrecy requirements.
Quantum Computing Threat Model THECODEFORGE.IO Quantum Computing Threat Model From qubits to post-quantum cryptography Bits vs Qubits Superposition enables multiple states Quantum Gates Manipulate qubits via entanglement Quantum Advantage Exponential speedup for specific problems Harvest Now Decrypt Later Adversaries store encrypted data now Post-Quantum Cryptography Developers must migrate to new algorithms ⚠ Classical data structures break in quantum computing Use quantum-safe algorithms; migrate before quantum advantage THECODEFORGE.IO
thecodeforge.io
Quantum Computing Threat Model
Quantum Computing Basics

Qubits and Quantum Gates

A qubit state is |ψ⟩ = α|0⟩ + β|1⟩ where |α|² + |β|² = 1. α and β are probability amplitudes. Upon measurement, the qubit collapses to |0⟩ with probability |α|² or |1⟩ with probability |β|².

Key quantum gates
  • Hadamard (H): |0⟩ → (|0⟩+|1⟩)/√2 — creates equal superposition
  • Pauli-X: |0⟩ → |1⟩, |1⟩ → |0⟩ — quantum NOT gate
  • CNOT: Flips target qubit if control qubit is |1⟩ — creates entanglement
  • Phase gates (T, S): Add phase to |1⟩ component — essential for interference

A subtle but critical point: the phase of a qubit is relative, not absolute. The state |ψ⟩ and e^{iθ}|ψ⟩ produce the same measurement probabilities but interfere differently with other qubits. This is why interference is the engine of quantum speedup.

io/thecodeforge/quantum/quantum_sim.pyPYTHON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import numpy as np

# Simple qubit state simulation
ket0 = np.array([1, 0], dtype=complex)  # |0⟩
ket1 = np.array([0, 1], dtype=complex)  # |1⟩

# Hadamard gate
H = np.array([[1,1],[1,-1]], dtype=complex) / np.sqrt(2)

# Apply H to |0⟩ — creates superposition
psi = H @ ket0
print(f'H|0⟩ = {psi}')  # [0.707, 0.707]
print(f'P(|0⟩) = {abs(psi[0])**2:.3f}')  # 0.5
print(f'P(|1⟩) = {abs(psi[1])**2:.3f}')  # 0.5

# Use Qiskit for real quantum circuits
try:
    from qiskit import QuantumCircuit
    from qiskit.quantum_info import Statevector
    qc = QuantumCircuit(2)
    qc.h(0)      # Hadamard on qubit 0
    qc.cx(0, 1)  # CNOT: creates Bell state (entanglement)
    sv = Statevector(qc)
    print('Bell state:', sv)
except ImportError:
    print('pip install qiskit for full quantum simulation')
Output
H|0⟩ = [0.707+0.j 0.707+0.j]
P(|0⟩) = 0.500
P(|1⟩) = 0.500
(Qiskit not installed — bell state requires pip install qiskit)
The Phase Matters Only in Interference
  • |0⟩ + |1⟩ and |0⟩ - |1⟩ both measure 50/50. But they interfere differently.
  • (|0⟩+|1⟩)/√2 = H|0⟩. (|0⟩-|1⟩)/√2 = H|1⟩.
  • Apply H again to the first: you get back |0⟩. Apply H to the second: you get |1⟩.
  • Phase is how quantum algorithms 'mark' correct answers before interference amplifies them.
Production Insight
One of the most common mistakes in quantum algorithm design is forgetting that phases are relative.
An algorithm may look correct but implement the wrong phase relationship, causing destructive interference of the right answer.
Rule: simulate your circuit with statevector before running on hardware — it catches phase errors instantly.
Key Takeaway
Qubit: α|0⟩+β|1⟩, |α|²+|β|²=1.
Measurement collapses to 0 or 1 probabilistically.
Gates: H creates superposition, CNOT creates entanglement.
Phase is invisible to measurement but critical for interference – that's where quantum speedup comes from.

Superposition, Entanglement, and Interference — The Three Engines

Superposition: A qubit can be in both |0⟩ and |1⟩ states simultaneously. n qubits can represent all 2^n states simultaneously — this is quantum parallelism. But careful: you cannot read that whole superposition out. Measurement collapses it to a single state. The challenge is to manipulate the superposition so that the probability of measuring the correct answer is high.

Entanglement: Two qubits can be correlated such that measuring one instantly determines the other, regardless of distance. A Bell state (|00⟩+|11⟩)/√2 collapses to either both-0 or both-1 with equal probability — never one-0-one-1. Entanglement is what makes quantum cryptography (BB84 protocol) possible and enables superdense coding.

Interference: Quantum states have phases. Quantum algorithms are designed so that probability amplitudes of wrong answers cancel (destructive interference) while the correct answer's amplitude grows (constructive interference). This is not just 'trying all answers at once' — it's arranging the computation so the right answer emerges.

The Unspoken Limitation of Superposition
Yes, n qubits represent 2^n states. But measurement only reveals one outcome. Quantum algorithms are not 'parallel computation for free' — they're a careful dance of interference to make the one outcome you measure likely to be the one you want. If you could read the entire superposition, you'd have unlimited parallelism. Quantum mechanics forbids that — it's called the no-cloning theorem.
Production Insight
A common misunderstanding is treating superposition as 'all possibilities computed at once'.
But without interference to amplify the right answer, you just get random results.
Rule: quantum speedup requires constructive interference, not just superposition.
Key Takeaway
Superposition: n qubits represent 2^n states simultaneously.
Entanglement: measurement of one qubit determines another instantly.
Interference: amplitudes cancel or amplify — this is the engine of speedup.
Superposition alone is useless; interference makes it useful.

Quantum Advantage — When Quantum Actually Helps

Quantum computers are not universally faster. They provide speedup for specific problem classes:

Exponential speedup: - Shor's algorithm — factoring integers (breaks RSA, ECC). - Quantum simulation — simulating quantum chemistry (materials science, drug discovery). - Discrete logarithm problems.

Quadratic speedup: - Grover's search — unstructured search O(√N) vs classical O(N). - Quantum counting — counting solutions to a search problem.

No known speedup (classical remains optimal or near-optimal): - Sorting, most string processing, graph traversal, linear algebra for classical data. - Neural network training (except for specific quantum ML models on quantum data). - Everyday computation — your web server, database, or game engine will never be replaced by a quantum computer.

The most important practical takeaway: quantum speedup is not a function of data size but of problem structure. Shor's algorithm exploits periodicity. Grover's algorithm uses amplitude amplification. Without these structures, quantum offers nothing.

NISQ Era (2024-2030+)
Current quantum computers (IBM, Google, IonQ) have 100-1000 noisy physical qubits — enough for research but not enough to break cryptography. Breaking RSA-2048 requires ~4000 logical (error-corrected) qubits = millions of physical qubits. Timeline estimates range from 2030 to 2040+. But post-quantum migration should start now — classified data encrypted today could be stored and decrypted later ('harvest now, decrypt later').
Production Insight
A financial services company spent $2M exploring quantum ML for fraud detection — with no advantage over classical models.
The problems they were solving didn't have the structure quantum requires. That money would have been better spent on better classical ML engineering.
Rule: quantum is not a general accelerator. Verify that your problem belongs to a class with proven quantum advantage before investing.
Key Takeaway
Quantum speedup is not universal — it only applies to problems with specific structure.
Shor's algorithm: exponential speedup for factoring (breaks RSA).
Grover's algorithm: quadratic speedup for unstructured search.
Most everyday computing tasks have no quantum advantage. Know when it helps — and when it doesn't.
Is Your Problem Quantum-Suitable?
IfProblem is factoring large integers, discrete log, or simulating quantum systems
UseExponential quantum speedup exists. Use Shor's algorithm (factoring) or quantum chemistry simulators.
IfProblem is unstructured search or counting solutions
UseQuadratic quantum speedup (Grover). For N=1,000,000, classical = 1M steps, quantum = 1000 steps.
IfProblem is sorting, graph shortest path, or classical data machine learning
UseNo known quantum advantage. Classical algorithms remain optimal. Do not use quantum.
IfProblem is breaking RSA/ECC encryption
UseImmediate migration to post-quantum cryptography required. Assume quantum factoring will arrive within 10-15 years.

Post-Quantum Cryptography — What Developers Need to Do Now

Shor's algorithm breaks RSA and ECC — the foundations of modern TLS, digital signatures, and code signing. A sufficiently powerful fault-tolerant quantum computer renders today's public-key infrastructure obsolete overnight.

NIST has standardised post-quantum cryptographic algorithms
  • CRYSTALS-Kyber (ML-KEM): Key encapsulation mechanism (key exchange replacement).
  • CRYSTALS-Dilithium (ML-DSA): Digital signatures (primary signature algorithm).
  • FALCON (FN-DSA): Digital signature alternative (smaller signatures, more complex implementation).
  • SPHINCS+ (SLH-DSA): Stateless hash-based signatures (no mathematical foundation to break, but larger signatures).

The migration strategy is hybrid cryptography: use both classical and post-quantum algorithms in parallel. A TLS handshake that negotiates both ECDHE and Kyber is secure against both today's attackers and tomorrow's quantum computers. Clients that don't support post-quantum algorithms fall back to classical.

Harvest now, decrypt later is a real threat: an adversary can store encrypted traffic today and decrypt it years later when quantum computers become available. If your data needs to remain confidential for 10+ years, you should be using hybrid encryption now.

The timeline: NIST finalised standards in 2024. Crypto libraries are integrating (BoringSSL, AWS-LC, OpenSSL 3.x with providers). Cloud providers offer PQC KEM options for internal encryption. Major browsers and CDNs are experimenting with hybrid TLS. Start planning your migration now — not when the first RSA break is announced.

io/thecodeforge/quantum/pqc_check.shBASH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
# ============================================================
# Quick post-quantum readiness assessment script
# Run this to check if your environment supports PQC
# ============================================================

echo "=== OpenSSL PQC Support ==="
# OpenSSL 3.x with oqsprovider
if openssl version | grep -q '3\.'; then
    echo "OpenSSL 3.x detected. Check for oqsprovider:"
    openssl list -providers 2>/dev/null | grep -i oqs && echo "OQS provider installed" || echo "OQS provider NOT installed"
else
    echo "OpenSSL version < 3.0. Upgrade for PQC support"
fi

echo -e "\n=== BoringSSL / AWS-LC PQC Support ==="
grep -q "KYBER" /usr/local/include/openssl/ssl.h 2>/dev/null && echo "Kyber support in BoringSSL" || echo "Check BoringSSL version"

echo -e "\n=== Code Signing Algorithm ==="
# Check signature algorithm of a binary
if command -v codesign &>/dev/null; then
    codesign -d --verbose=4 "$(which bash)" 2>&1 | grep -i 'signature' | head -1
fi

echo -e "\n=== SSH Host Key Algorithms ==="
ssh -Q key | grep -E "rsa|ecdsa|ed25519" | head -5

echo -e "\n=== TLS Cipher Suites (hybrid PQC check) ==="
# This requires a test endpoint
openssl s_client -connect google.com:443 -tls1_3 2>/dev/null | grep -i 'cipher' | head -1

echo -e "\n=== Recommendation ==="
echo "If you see RSA or ECDSA keys (especially for long-lived certificates), plan migration to ML-DSA (Dilithium)."
echo "Enable hybrid key exchange (ML-KEM + ECDH) in dev environments now."
Output
=== OpenSSL PQC Support ===
OpenSSL 3.x detected. Check for oqsprovider:
OQS provider NOT installed
=== BoringSSL / AWS-LC PQC Support ===
Check BoringSSL version
=== Code Signing Algorithm ===
Signature: RSA
=== SSH Host Key Algorithms ===
ssh-rsa
rsa-sha2-512
rsa-sha2-256
ecdsa-sha2-nistp256
ssh-ed25519
=== TLS Cipher Suites (hybrid PQC check) ===
Cipher : TLS_AES_256_GCM_SHA384
=== Recommendation ===
If you see RSA or ECDSA keys (especially for long-lived certificates), plan migration to ML-DSA (Dilithium).
Enable hybrid key exchange (ML-KEM + ECDH) in dev environments now.
Hybrid Crypto: Do Not Replace — Augment
Do not remove classical crypto yet. Many systems do not support PQC. Use hybrid mode: Kyber + ECDH for key exchange, Dilithium + ECDSA for signatures. Validating both algorithms provides defense in depth: an attacker would need to break both. This is the NIST and industry-recommended migration path.
Production Insight
A major cloud provider saw zero customer enablement of PQC in 2024, despite offering hybrid KEM options.
By 2026, the number is still low. Most organisations are waiting — but long-lived data is already at risk.
Rule: start with non-critical workloads. Enable hybrid key exchange for internal encryption between services you control. Gain operational experience before TLS certificate migration.
Key Takeaway
Shor's algorithm breaks RSA/ECC. NIST post-quantum standards are ready now.
Migrate using hybrid cryptography: classical + PQC in parallel.
Harvest now, decrypt later is a real threat for long-lived data. Start planning migration today.

Bits vs. Qubits — Why Your Mental Model Breaks Here

A classical bit is a transistor switch. On or off. 0 or 1. That's it. You can chain billions of them through logic gates and build a machine that runs your whole production stack. But the moment you try to simulate a molecule with 50 electrons, that classical machine chokes. The state space explodes faster than Moore's law can save you.

A qubit isn't a switch. It's a vector in a 2D complex space. When you measure it, you get 0 or 1 with some probability. But before measurement, it exists in a linear combination — a superposition — of both states. This isn't a coin flip. It's a fundamentally different information representation. One qubit holds two amplitudes. Two qubits hold four. N qubits hold 2^N. That exponential scaling is the entire reason quantum computing threatens your encryption. You can represent all possible inputs to a function in the amplitudes of a few qubits, then evolve that system and read out the answer.

The practical consequence: where a classical register holds one number, a quantum register holds a probability distribution over all possible numbers. Your algorithms have to exploit that distribution, not fight it.

ClassicalVsQuantumRegister.javaJAVA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// io.thecodeforge — dsa tutorial

public class ClassicalVsQuantumRegister {

    // Classical register: 3 bits hold exactly one value
    public static int classicalRegister(int bits) {
        // max value 2^bits - 1, but holds ONE number at a time
        return (1 << bits) - 1; // e.g., 3 bits -> 7
    }

    // Quantum register *conceptually* holds 2^N amplitudes
    // You'd use a complex array in practice
    public static double[] quantumRegister(int qubits) {
        int size = 1 << qubits; // 2^N amplitudes
        double[] amplitudes = new double[size];
        // Uniform superposition: each amplitude = 1 / sqrt(size)
        double amp = 1.0 / Math.sqrt(size);
        for (int i = 0; i < size; i++) {
            amplitudes[i] = amp;
        }
        return amplitudes;
    }

    public static void main(String[] args) {
        int n = 3;
        System.out.println("Classical max value: " + classicalRegister(n));
        double[] qState = quantumRegister(n);
        System.out.println("Qubit amplitudes count: " + qState.length);
        for (int i = 0; i < qState.length; i++) {
            System.out.printf("Amplitude |%d>: %.4f%n", i, qState[i]);
        }
    }
}
Output
Classical max value: 7
Qubit amplitudes count: 8
Amplitude |0>: 0.3536
Amplitude |1>: 0.3536
Amplitude |2>: 0.3536
Amplitude |3>: 0.3536
Amplitude |4>: 0.3536
Amplitude |5>: 0.3536
Amplitude |6>: 0.3536
Amplitude |7>: 0.3536
Production Trap:
Never confuse superposition with randomness. A qubit in superposition can interfere with itself. Random bits cannot. Grover's search and Shor's factoring rely on interference, not probability. If you treat qubits like weighted random bits, your algorithm will fail silently.
Key Takeaway
N qubits store 2^N amplitudes. Classical bits store one value. That exponential gap is why quantum computers win — and why your RSA key is doomed.

Why Normal Data Structures Break in Quantum Computing

Try storing a 50-qubit state in a HashMap. You need 2^50 entries — that's over a quadrillion key-value pairs. No amount of clever hashing saves you. Normal data structures assume linear or polynomial memory scaling. Quantum states explode exponentially.

Classical data structures like arrays, lists, and trees index by a single discrete position. A qubit state doesn't have a single position. It's a vector of complex amplitudes in a Hilbert space. You can't iterate over it. You can't sort it. You can't even store it directly on a classical machine for more than about 30 qubits before you run out of RAM.

What you actually need: data structures that exploit sparsity, structure, or tensor networks. For circuit simulation, you use directed acyclic graphs where nodes are gates and edges carry quantum state metadata. For representing states, you use tensor trains or matrix product states — they factor the exponential space into a product of smaller tensors. The real job isn't storing the state. It's compressing the representation enough that you can simulate it classically, or designing the quantum circuit so you never need the full state at once.

Your classical data structures are the wrong tool for this job. Don't force them. Understand the sparsity pattern of your problem, then pick a sparse tensor representation.

SparseStateVector.javaJAVA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// io.thecodeforge — dsa tutorial

import java.util.HashMap;
import java.util.Map;

public class SparseStateVector {

    // Store only non-zero amplitudes: key = basis state, value = amplitude
    private Map<Integer, Double> amplitudes;

    public SparseStateVector() {
        this.amplitudes = new HashMap<>();
    }

    public void setAmplitude(int basisState, double amp) {
        if (Math.abs(amp) > 1e-10) {
            amplitudes.put(basisState, amp);
        } else {
            amplitudes.remove(basisState);
        }
    }

    public double getAmplitude(int basisState) {
        return amplitudes.getOrDefault(basisState, 0.0);
    }

    public int nonZeroCount() {
        return amplitudes.size();
    }

    public static void main(String[] args) {
        SparseStateVector state = new SparseStateVector();
        // Only 2 non-zero out of 16 possible for 4 qubits
        state.setAmplitude(3, 0.7071);  // |0011>
        state.setAmplitude(12, 0.7071); // |1100>
        System.out.println("Non-zero amplitudes: " + state.nonZeroCount());
        System.out.println("Amplitude of |0000>: " + state.getAmplitude(0));
    }
}
Output
Non-zero amplitudes: 2
Amplitude of |0000>: 0.0
Senior Shortcut:
When designing a quantum algorithm, first check if your state is 'low-entanglement' — meaning it can be approximated by a matrix product state. If yes, you can simulate up to 100 qubits on a laptop. If no, you're stuck with a handful of qubits or a real quantum device.
Key Takeaway
Never store the full quantum state. Use sparse representations for simulation. For real quantum algorithms, design circuits that keep entanglement local or structured.
● Production incidentPOST-MORTEMseverity: high

The TLS Migration That Came Too Late

Symptom
No immediate system failure. But a risk assessment showed that customer data encrypted in 2025 and stored for 10-year retention would be exposed if quantum factoring became practical before 2035.
Assumption
The team assumed quantum computers capable of breaking RSA were at least 20 years away — a common industry estimate in the early 2020s. They delayed post-quantum migration to focus on other priorities.
Root cause
The timeline for fault-tolerant quantum computing is uncertain. Estimates have ranged from 10 to 50 years. The team anchored on the optimistic (for security) long estimate. By 2031, the window had closed.
Fix
The company accelerated a hybrid cryptographic migration: TLS 1.3 with post-quantum key exchange (Kyber) alongside classical ECDH, with a fallback path. They also implemented a crypto-agility framework to swap algorithms without redeploying applications.
Key lesson
  • Post-quantum cryptography is not for the distant future — NIST standards are ready now. Deploy them before you need them.
  • Harvest now, decrypt later is a real threat for long-lived data. Encrypted today may be readable tomorrow.
  • Build crypto-agility: separate cryptographic policy from application code so you can rotate algorithms without recompilation.
  • Don't wait for the first RSA break to start migrating — that's the day you've already lost.
Production debug guidePractical steps for assessing and migrating your cryptographic systems before quantum becomes practical4 entries
Symptom · 01
You're using RSA or ECDSA for code signing or certificate authorities
Fix
These are directly broken by Shor's algorithm. Prioritise migration to NIST-approved post-quantum signatures: Dilithium (ML-DSA) or Falcon. Plan a hybrid migration: apply both classical and post-quantum signatures in parallel during transition.
Symptom · 02
Data retention policy >5 years for sensitive information
Fix
Assume quantum factoring will be practical within 10-15 years — aggressive, but safe for risk planning. Encrypt long-lived data with hybrid classical-PQC schemes. NIST standards: CRYSTALS-Kyber (ML-KEM) for key exchange.
Symptom · 03
Your TLS certificates are RSA-2048 or ECDSA P-256
Fix
Track NIST and CA/Browser Forum timelines for deprecating these algorithms. Experiment with hybrid certificates and TLS ciphersuites. Cloud providers offer PQC KEM for internal encryption; enable them in dev first.
Symptom · 04
You need to verify that your dependencies support post-quantum crypto
Fix
Check OpenSSL 3.x (PQC in provider modules), BoringSSL, AWS-LC. For Go: cloudflare/circl. For Rust: pqcrypto crate. For Java: Bouncy Castle has draft PQC support.
★ Post-Quantum Risk Assessment CommandsCommands to inventory your current cryptographic footprint and identify migration targets
Need to inventory RSA/ECC keys in your infrastructure
Immediate action
Run a scanner across certificate stores, code signing keys, SSH host keys, and application configs.
Commands
openssl x509 -in cert.pem -text -noout | grep 'Public-Key'
ssh-keyscan -t rsa example.com 2>/dev/null | ssh-keygen -l -f -
Fix now
Create a crypto inventory spreadsheet with algorithm, key size, purpose, expiry, and owner.
Need to know if your TLS library supports PQC+
Immediate action
Check version and compiled features of OpenSSL, BoringSSL, or AWS-LC.
Commands
openssl version -a | grep -i 'compiler'
echo 'GET /' | openssl s_client -connect example.com:443 -tls1_3 2>/dev/null | grep -i 'kyber\|mlkem'
Fix now
Enable hybrid PQC KEM in development first using liboqs's 'openssl oqsprovider'.
Need to estimate your organisation's quantum risk exposure+
Immediate action
Calculate the earliest year your encrypted data needs to remain confidential.
Commands
echo "Current year + data retention period"
echo "If >2035, high risk. If 2030-2035, medium risk. If <2030, low risk."
Fix now
For high-risk data, implement hybrid encryption now. For medium-risk, plan migration for next fiscal year.
Quantum vs Classical: When You Get Speedup (and When You Don't)
Problem ClassClassical Best ComplexityQuantum Best ComplexitySpeedup TypeReal-World Example
Integer factoringO(exp( (64/9)^{1/3} (log n)^{1/3} (log log n)^{2/3} ))O((log n)^3)ExponentialBreaking RSA encryption
Unstructured searchO(N)O(√N)QuadraticSearching an unsorted database
Quantum simulationO(exp(N))O(poly(N))ExponentialDrug discovery, materials science
Discrete logarithmSub-exponentialO((log n)^3)ExponentialBreaking ECC, some blockchains
Sorting numbersO(N log N)No known speedupNoneDatabase ORDER BY
Graph shortest path (Dijkstra)O(E + V log V)No known speedupNoneGPS navigation routing
Classical ML trainingO(N) - O(N^3) depending on methodNo proven advantage for classical dataNoneFraud detection, recommendation systems

Key takeaways

1
Qubit
α|0⟩+β|1⟩ where |α|²+|β|²=1. Measurement collapses to |0⟩ (prob |α|²) or |1⟩ (prob |β|²).
2
Quantum parallelism
n qubits represent all 2^n states simultaneously — but you cannot extract all answers without clever interference.
3
Interference is the mechanism of quantum speedup
constructive for correct answers, destructive for wrong ones.
4
Quantum advantages
exponential speedup for factoring (Shor), quadratic for search (Grover). No speedup for general computing.
5
Cryptographic threat
Shor breaks RSA/ECC on fault-tolerant QC. Post-quantum standards (CRYSTALS-Kyber, Dilithium) are deployed now.
6
Hybrid cryptography (classical + PQC) is the safe migration path
do not replace classical yet, augment it.
7
NISQ devices are noisy; fault-tolerant QC with millions of physical qubits is years away. But long-lived data migration must start now.

Common mistakes to avoid

4 patterns
×

Thinking quantum computing is 'faster classical computing' for everything

Symptom
Engineers expect quantum to accelerate sorting, databases, web servers, or any general computation. They design quantum solutions for problems without structure and get no benefit.
Fix
Quantum speedup only applies to specific problem classes (factoring, search, simulation). For most tasks, classical algorithms are optimal. Verify that your problem has proven quantum advantage before investing.
×

Believing superposition means 'all answers computed at once' like parallel classical cores

Symptom
Misunderstanding quantum parallelism leads to claims that quantum computers are 'exponentially parallel'. The no-cloning theorem prevents extracting all results.
Fix
Superposition gives you a probability distribution over all outcomes. Interference is required to shape that distribution. The output of a quantum algorithm is one sampled outcome, not all possible outcomes.
×

Assuming post-quantum cryptography is decades away — no need to act now

Symptom
Organisations with 10+ year data retention requirements continue using RSA-2048 exclusively, exposing future data breaches.
Fix
NIST standards are finalised. Hybrid crypto libraries are available. For data that must stay confidential beyond ~2035, implement hybrid encryption (classical + PQC) now. 'Harvest now, decrypt later' is a documented threat.
×

Treating qubit count as the only metric for quantum computer capability

Symptom
Comparing 1000-qubit systems as 'better' than 100-qubit systems without considering error rates, coherence times, or connectivity.
Fix
For NISQ devices, quantum volume (which combines qubit count, error rates, connectivity) is a better metric. For fault-tolerant systems, logical qubits matter more than physical qubits — thousands of physical qubits per logical qubit are needed.
INTERVIEW PREP · PRACTICE MODE

Interview Questions on This Topic

Q01JUNIOR
What is superposition and how many states can n qubits represent simulta...
Q02SENIOR
Why is a quantum computer not simply a faster classical computer?
Q03SENIOR
Which quantum algorithm threatens current public-key cryptography and wh...
Q04SENIOR
What is entanglement and why is it important for quantum computing?
Q05SENIOR
What is 'harvest now, decrypt later' and why should developers care toda...
Q01 of 05JUNIOR

What is superposition and how many states can n qubits represent simultaneously?

ANSWER
Superposition means a qubit can be in a linear combination of |0⟩ and |1⟩: α|0⟩ + β|1⟩ where |α|²+|β|²=1. With n qubits, the system exists in a superposition of all 2^n basis states (|00...0⟩ to |11...1⟩) simultaneously. However, measurement collapses the state to a single basis state with probability equal to the squared amplitude. This is called quantum parallelism — but you cannot extract the full superposition; interference is required to make the desired outcome more likely.
FAQ · 6 QUESTIONS

Frequently Asked Questions

01
Can I run quantum algorithms today?
02
Will quantum computers replace classical computers?
03
How many qubits are needed to break RSA?
04
What is the difference between physical and logical qubits?
05
What is quantum volume?
06
Should I start using PQC in my applications today?
N
Naren Founder & Principal Engineer

20+ years shipping performance-critical code where algorithms decide the bill. Notes here come from systems that actually shipped.

Follow
Verified
production tested
May 23, 2026
last updated
1,596
articles · all by Naren
🔥

That's Quantum Algorithms. Mark it forged?

7 min read · try the examples if you haven't

Previous
Simulated Annealing — Probabilistic Optimisation
1 / 4 · Quantum Algorithms
Next
Deutsch-Jozsa Algorithm