Project 12: Post-Quantum Cryptography (The Software’s Shield)
Build a demo that compares classical and post-quantum encryption schemes.
Project Overview
| Attribute | Value |
|---|---|
| Difficulty | Level 2: Intermediate |
| Time Estimate | Weekend |
| Main Language | Python |
| Alternative Languages | Rust, Java |
| Knowledge Area | Post-quantum cryptography |
| Tools | PQC library (for demo) |
| Main Book | “Post-Quantum Cryptography” by Daniel J. Bernstein et al. |
What you’ll build: A simple demo that generates keys, encrypts, and compares performance of a PQC scheme to RSA.
Why it teaches quantum: It shows how software adapts to quantum threats today.
Core challenges you’ll face:
- Understanding lattice-based cryptography basics
- Comparing key sizes and performance
- Explaining security assumptions
Real World Outcome
You will generate keys and compare encryption/decryption times and key sizes.
Example Output:
$ python pqc_demo.py
RSA key size: 2048 bits
PQC key size: 4096 bytes
RSA encrypt: 2.1 ms
PQC encrypt: 3.4 ms
Verification steps:
- Confirm decryption restores original message
- Compare sizes and speeds across runs
The Core Question You’re Answering
“How do we secure software against future quantum attacks?”
This project connects quantum algorithms to real-world crypto migration.
Concepts You Must Understand First
Stop and research these before coding:
- Quantum threat models
- Why does Shor’s algorithm break RSA and ECC?
- Book Reference: “Post-Quantum Cryptography” by Bernstein et al., Ch. 1
- Lattice-based crypto
- What is the basic hardness assumption?
- Book Reference: “Post-Quantum Cryptography” by Bernstein et al., Ch. 2
- Migration issues
- Why do key sizes and performance matter?
- Book Reference: “Post-Quantum Cryptography” by Bernstein et al., Ch. 1
Questions to Guide Your Design
- Scheme selection
- Which PQC scheme will you demo (e.g., Kyber)?
- How will you compare with RSA fairly?
- Benchmarking
- How will you measure time and key sizes?
- How many trials will you run for averages?
Thinking Exercise
Security Tradeoff
Why might a larger key size be acceptable if it resists quantum attacks?
Questions while working:
- What system constraints are affected by larger keys?
- How does this impact network protocols?
The Interview Questions They’ll Ask
Prepare to answer these:
- “Why is post-quantum cryptography needed?”
- “What is lattice-based cryptography?”
- “How do PQC key sizes compare to RSA?”
- “What are the migration challenges?”
- “Which NIST PQC standards are selected?”
Hints in Layers
Hint 1: Starting Point Start with an existing PQC library for key generation.
Hint 2: Next Level Measure encryption/decryption times over multiple runs.
Hint 3: Technical Details Log key sizes and ciphertext sizes side-by-side.
Hint 4: Tools/Debugging Verify round-trip correctness for both schemes.
Books That Will Help
| Topic | Book | Chapter |
|---|---|---|
| Quantum threats | “Post-Quantum Cryptography” by Bernstein et al. | Ch. 1 |
| Lattice crypto | “Post-Quantum Cryptography” by Bernstein et al. | Ch. 2 |
| Migration | “Post-Quantum Cryptography” by Bernstein et al. | Ch. 1 |
Implementation Hints
- Use small messages for consistency.
- Avoid network dependencies; keep demo local.
- Report both time and size metrics.
Learning Milestones
- First milestone: You can generate PQC keys and encrypt data.
- Second milestone: You can compare key sizes and performance.
- Final milestone: You can explain why PQC is necessary.