The "It Works on My Machine" Problem — But for Cryptography
The quantum computing threat isn't theoretical anymore — it's a timeline. Here's why every developer needs to start preparing now.
The "It Works on My Machine" Problem — But for Cryptography
Most developers never think about which cryptographic algorithm their application uses. It's hidden behind libraries, frameworks, and APIs. But here's the uncomfortable truth:
If your application uses RSA, ECC, or Diffie-Hellman, a sufficiently powerful quantum computer can break it.
This isn't a "maybe someday" problem. It's a "when, not if" problem — and the migration will take years. Developers need to start understanding their cryptographic footprint now.
Why This Is a Developer Problem
Post-quantum security isn't just for cryptographers. Developers make the architectural decisions that determine whether an application is quantum-ready:
- Library choices: Which crypto library are you using? Does it support PQC?
- Key management: Where are keys generated, stored, and rotated?
- Protocol selection: Are you using TLS 1.3 with hybrid key exchange?
- Data retention: How long does sensitive data need to remain encrypted?
- Architecture: Is crypto abstracted behind an interface, or hardcoded?
Every one of these decisions affects your application's quantum resilience.
Harvest Now, Decrypt Later
This is the most urgent threat most developers don't know about.
The concept is simple:
- An adversary captures encrypted data today
- They store it securely
- Years from now, when quantum computers arrive, they decrypt it
Think about what data your application handles that needs to stay confidential for years:
| Data Type | Typical Retention | HNDL Risk |
|---|---|---|
| Healthcare records | 30+ years | CRITICAL |
| Government classified | 50+ years | CRITICAL |
| Financial transactions | 7+ years | HIGH |
| Corporate intellectual property | Trade secret lifetime | CRITICAL |
| Personal communications | Indefinite | HIGH |
| Software dependencies | Years (legacy) | MEDIUM |
The critical insight is that RSA and ECC are broken by Shor's algorithm, while AES-256 is only weakened by Grover's algorithm (reducing effective security from 256-bit to 128-bit, which is still strong). So not all encryption is equally vulnerable.
Crypto Agility: The Architecture Pattern You Need
Crypto agility is the ability to swap cryptographic algorithms without rewriting your application. It's the software engineering equivalent of dependency injection — but for cryptography.
Here's the problem: most applications have crypto hardcoded throughout the codebase:
# BAD: Hardcoded crypto
from cryptography.hazmat.primitives.asymmetric import rsa
def generate_key():
return rsa.generate_private_key(
public_exponent=65537,
key_size=2048 # Quantum-vulnerable!
)
When you need to migrate to PQC, you'd have to find and change every instance. With crypto agility:
# BETTER: Abstracted crypto
class CryptoProvider:
def __init__(self, algorithm: str):
self.algorithm = algorithm
def generate_key(self):
if self.algorithm == "rsa-2048":
return self._generate_rsa(2048)
elif self.algorithm == "ml-kem-512":
return self._generate_mlkem(512)
# Easy to add new algorithms!
# Application code never changes
provider = CryptoProvider(settings.CRYPTO_ALGORITHM)
key = provider.generate_key()
With this pattern, migrating from RSA to ML-KEM requires only a configuration change — no application code modifications.
Crypto Inventory: Know What You Use
Before you can migrate, you need to know what you have. A crypto inventory catalogs every cryptographic algorithm, key size, and implementation in your codebase.
Here's what a thorough inventory should find:
| Category | Examples | Quantum Risk |
|---|---|---|
| Asymmetric encryption | RSA, ECC, Diffie-Hellman | BROKEN |
| Digital signatures | RSA-PSS, ECDSA, EdDSA | BROKEN |
| Symmetric encryption | AES-128, AES-256, ChaCha20 | SAFE (with larger keys) |
| Hash functions | SHA-256, SHA-384, SHA-512 | WEAKENED (use longer) |
| Key exchange | RSA-KEM, ECDH | BROKEN |
| Key derivation | PBKDF2, Argon2 | SAFE |
| Message authentication | HMAC-SHA256 | SAFE |
Use these commands to scan your Python projects:
# Find RSA/ECC usage
grep -rn "RSA\|ECDH\|ECDSA" --include="*.py" .
# Find deprecated hash usage
grep -rn "md5\|sha1" --include="*.py" .
# Find TLS configuration
grep -rn "SSL\|TLS" --include="*.py" .
# Check OpenSSL version
python -c "import ssl; print(ssl.OPENSSL_VERSION)"
Migration Is Not Just Swapping Algorithms
Migrating to post-quantum cryptography is a multi-year effort. Here's a realistic timeline:
| Phase | Duration | What Happens |
|---|---|---|
| Phase 1: Inventory | 1-2 months | Catalog all crypto usage, algorithms, key sizes |
| Phase 2: Assess Risk | 1 month | Classify by data sensitivity, retention, HNDL exposure |
| Phase 3: Crypto Agility | 2-4 months | Abstract crypto behind interfaces |
| Phase 4: Hybrid Mode | 2-3 months | Test classical + PQC together |
| Phase 5: PQC Migration | 6-12 months | Replace vulnerable algorithms |
| Phase 6: Verification | Ongoing | Monitor, audit, update |
The NIST Standards You Need to Know
NIST finalized the first post-quantum cryptography standards in August 2024:
| Algorithm | Type | Purpose | Status |
|---|---|---|---|
| ML-KEM (Kyber) | Key Encapsulation | Key exchange | FIPS 203 ✓ |
| ML-DSA (Dilithium) | Digital Signature | Signatures | FIPS 204 ✓ |
| SLH-DSA (SPHINCS+) | Hash-based Signature | Signatures | FIPS 205 ✓ |
| FN-DSA (Falcon) | Lattice-based Signature | Compact signatures | Expected 2025 |
These aren't proposals — they're finalized standards. Libraries like liboqs, PQCA, and BoringSSL already implement them.
What Developers Should Do Today
Action Items
Immediate (This Week):
- Run a crypto inventory on your most critical projects
- Identify any RSA, ECC, or Diffie-Hellman usage
- Check data retention requirements — what needs 10+ year confidentiality?
Short-Term (This Quarter):
- Abstract crypto behind interfaces (crypto agility)
- Document all cryptographic dependencies
- Test your application with a PQC-capable library
Medium-Term (This Year):
- Implement hybrid classical + PQC for new deployments
- Benchmark PQC performance impact
- Update key rotation policies
- Train team on PQC migration
Try It Yourself
Start with a crypto inventory of your own project. Use the Quick Audit Commands to scan your codebase, then classify each finding by quantum risk.
- Hash Checksum Verifier — Verify hash algorithms in your project
- AES Key Generator — Generate quantum-safe symmetric keys
- Password Strength Checker — Evaluate KDF strength
- Port Reference — Check TLS port configurations
Further Reading
- Post-Quantum Cryptography Explained — The technical foundations
- Quantum Computing for Software Developers — Understanding the quantum threat
- How HTTPS and TLS Actually Work — What needs to change
- Secrets Management for Developers — Protecting cryptographic keys
- Docker Security for Developers — Container security foundations
Regulatory information checked: August 2026. NIST FIPS 203, 204, 205 finalized August 13, 2024.
Try the Password Strength Checker
Put what you've learned into practice with this free BestWordz tool.
💬 Discuss this topic
Have questions or insights about The "It Works on My Machine" Problem — But for Cryptography? Join the BestWordz Community.
📚 Related Articles
The 8-Stage Cybersecurity Roadmap
Cybersecurity in 2026 requires a layered learning path: networking fundamentals, Linux proficiency,…
CybersecuritySecrets Management for Developers: From .env Files to Secret Managers
KEY TAKEAWAY Secrets management is the practice of storing, accessing, rotating and revoking cred…
CybersecurityThe 10-Stage CS Learning Roadmap
A computer science education in 2026 requires more than traditional coursework. Today's students ne…
CybersecurityThe 15 AI Security Domains
AI security is not one problem — it is 15 interconnected domains. From prompt injection to sandboxi…
CybersecurityIs AI-Generated Code Secure? A Developer Security Checklist
Key Takeaway AI-generated code is not automatically secure. LLMs produce syntactically …
CybersecurityHow HTTPS and TLS Actually Work
Key Takeaway --> HTTPS is HTTP running over TLS. The TLS handshake performs three critical functio…
🔧 Related Tools
AES Key Generator
Generate cryptographically secure AES-128, AES-192, or AES-256 keys.
Try it now →Password Strength Checker
Analyze password strength, entropy, and common weaknesses - entirely in your browser.
Try it now →Port Reference
Reference table of common network ports and protocols.
Try it now →Hash Checksum Verifier
Verify a hash checksum by comparing it against an expected value.
Try it now →💬 Discuss on BestWordz Community
Join the conversation about Python, Docker, LLMs on the BestWordz Community forum.
Visit Forum →