Standards and Deployment (W8) — read upstream#
The final Tuesday wraps up with a survey of the NIST PQC standards (most of the technical material is in upstream Ch 44) and a deployment-focused lab on hybrid TLS. Project presentations close the course.
Week |
Chapter |
Direct link |
|---|---|---|
W8 (lecture) |
Ch 44 — NIST Post-Quantum Cryptography Standards |
|
W8 (closing) |
Ch 45 — Synthesis: From Al-Kindi to Post-Quantum |
What we add on top of Ch 44#
The upstream chapter is current as of early 2025. In the lecture we update it with:
HQC selected as fifth NIST standard (announced 11 March 2025).
Draft FIPS 206 (FN-DSA / Falcon) status — final publication expected in 2025/2026.
Hybrid deployments in TLS 1.3, SSH, and IKEv2: the IETF TLS WG draft Hybrid key exchange in TLS 1.3 (draft-ietf-tls-hybrid-design) and the associated
oqs-providerfor OpenSSL.CNSA 2.0 (US NSA, 2022/2024 updates) deadlines: software-signing PQC by 2025; TLS/IPsec PQC by 2030; full transition by 2033.
BSI / ANSSI / ENISA guidance for the EU side; positions on hybrid-only-for-now vs. PQC-only acceptance.
Crypto agility as a software-engineering requirement: separating algorithm choice from protocol implementation, telemetry to monitor algorithm usage, key-rotation playbooks.
Lab — hybrid TLS handshake#
Goal: stand up a TLS 1.3 server using OpenSSL + oqs-provider, configure
hybrid X25519+Kyber768 key exchange, capture the handshake in Wireshark,
and measure the byte-overhead vs. classical X25519.
# 1. Install OpenSSL >= 3.2 and oqs-provider
# Follow https://github.com/open-quantum-safe/oqs-provider#installation
# 2. Generate a self-signed cert (classical, for simplicity)
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
-keyout server.key -out server.crt -days 1 -nodes -subj '/CN=localhost'
# 3. Start a server with hybrid groups enabled
openssl s_server -accept 4433 -cert server.crt -key server.key \
-groups x25519_kyber768 -tls1_3
# 4. Connect from a client and observe the handshake
openssl s_client -connect localhost:4433 -groups x25519_kyber768 -tls1_3 \
-msg -trace
Capture the corresponding ClientHello and ServerHello in Wireshark; compute
the byte difference vs. a classical-only x25519 handshake.
Project presentations#
Pairs present their PQC project (10 min + 5 min Q&A). Hand in:
The toy implementation (single Python file or Jupyter notebook).
A 2-page write-up: scheme overview, parameter choices, attack reproduced, measurement results.
The slides used in the presentation.
Submission deadline: end-of-day on the W8 Tuesday.