Applied Cryptography
- Level
- Undergraduate
- Status
- Under development
Note: this course is still being designed and calibrated; the page content is for reference and does not represent the final teaching version.
Syllabus
Course Overview
Applied Cryptography focuses on how cryptographic mechanisms are correctly selected, composed, implemented, and deployed. Topics include symmetric encryption, hashing, message authentication, public-key cryptography, signatures, key exchange, TLS, cryptographic protocols, and common implementation mistakes.
This is the cryptographic foundation for network protocols, secure systems, trusted computing, and compliance automation.
Prerequisites
- Discrete mathematics, especially modular arithmetic and basic probability.
- Ability to write and test small programs.
- Computer networking background is recommended.
Learning Outcomes
- Explain security goals and usage boundaries of major cryptographic primitives.
- Identify common cryptographic misuse and protocol-composition errors.
- Use standard libraries to implement secure data-protection flows.
- Analyze TLS, signatures, key exchange, and certificate chains.
- Design key-management and rotation plans for practical systems.
Course Format
- Two meetings per week: one for core concepts and one for labs, paper discussion, or project review.
- The course proceeds over 16 weeks, each with a checkable assignment, lab, or project milestone.
- Reproducibility is required: code, configuration, data, lab logs, and reports must be reviewable by staff or peers.
Weekly Plan
Threat models and cryptographic engineering principles
Analyze a real cryptographic failure.
Threat models and cryptographic engineering principles: lab and review
Analyze a real cryptographic failure. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Hashing, MACs, and authenticated encryption
Implement secure message envelopes and tamper tests.
Hashing, MACs, and authenticated encryption: lab and review
Implement secure message envelopes and tamper tests. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Randomness, KDFs, and password storage
Evaluate password hashing and parameter choices.
Randomness, KDFs, and password storage: lab and review
Evaluate password hashing and parameter choices. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Public-key cryptography and digital signatures
Implement signature verification and error handling.
Public-key cryptography and digital signatures: lab and review
Implement signature verification and error handling. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Key exchange and TLS
Analyze TLS handshakes and certificate chains from traces.
Key exchange and TLS: lab and review
Analyze TLS handshakes and certificate chains from traces. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Protocol composition and formal intuition
Review security goals of an authentication protocol.
Protocol composition and formal intuition: lab and review
Review security goals of an authentication protocol. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Implementation attacks, side channels, and constant time
Observe timing leakage and propose mitigations.
Implementation attacks, side channels, and constant time: lab and review
Observe timing leakage and propose mitigations. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Key management and deployment audit
Submit a system-level cryptographic usage audit.
Key management and deployment audit: lab and review
Submit a system-level cryptographic usage audit. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Assessment
Concept questions, reading responses, design tasks, and small programming or lab exercises.
Cryptographic implementation, protocol analysis, audit report, and tests.
Participation in discussions, demos, code or paper reviews, and peer feedback.
Submit reproducible artifacts, a technical report, and a demo explaining methods, results, limitations, and future work.
Course Project
Students audit or build a small cryptographic application and document threat model, primitive choices, key lifecycle, error handling, and test evidence.
Policies
- AI tools are allowed, but generated code, lab notes, and design suggestions must be reviewed by the student and disclosed in the report.
- Students may not submit code, proofs, configuration, or experimental results they cannot explain; each member must defend their own design, tests, and tradeoffs.
- Late work affects iteration grades, but the course values reproducible, auditable, and maintainable results over last-minute accumulation.
Reference Courses
International
- CambridgeCryptography
- CMU15-356/15-856: Introduction to Cryptography
- ETH ZurichApplied Cryptography
- Georgia TechCS 6260: Applied Cryptography
- MIT6.875: Cryptography and Cryptanalysis
- OxfordApplied Cryptography
- PrincetonCOS 433: Cryptography
- StanfordCS 255: Introduction to Cryptography
- UC BerkeleyCS 276: Cryptography
- University of WashingtonCSEP 590: Applied Cryptography