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:

  1. Quantum threat models
    • Why does Shor’s algorithm break RSA and ECC?
    • Book Reference: “Post-Quantum Cryptography” by Bernstein et al., Ch. 1
  2. Lattice-based crypto
    • What is the basic hardness assumption?
    • Book Reference: “Post-Quantum Cryptography” by Bernstein et al., Ch. 2
  3. 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

  1. Scheme selection
    • Which PQC scheme will you demo (e.g., Kyber)?
    • How will you compare with RSA fairly?
  2. 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:

  1. “Why is post-quantum cryptography needed?”
  2. “What is lattice-based cryptography?”
  3. “How do PQC key sizes compare to RSA?”
  4. “What are the migration challenges?”
  5. “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

  1. First milestone: You can generate PQC keys and encrypt data.
  2. Second milestone: You can compare key sizes and performance.
  3. Final milestone: You can explain why PQC is necessary.