CYSE/ECE 476: Cryptography Fundamentals (Fall 2023)


Giuseppe Ateniese (

Office hours: Tuesday 4:30pm - 5:30pm (Zoom)


Cryptography is the science of secure communication and combines math and art. Cryptography Fundamentals (CYSE/ECE 476) introduces the student to both foundational principles and modern engineering applications of cryptography. It will focus on cryptographic primitives, such as symmetric and asymmetric encryption, hashing, digital signatures, and their critical role in everyday life. In addition, it will cover advanced topics such as end-to-end encryption, hardware cryptography, zero-knowledge proofs, and cryptocurrencies.

This course aims to provide students with practical insights and tools for understanding how cryptography can be used in the real world. They will learn how cryptographers come up with better protocols and respond to new vulnerabilities, which is an important skill for anyone who wants to work with or build secure systems.

We will use Blackboard for Q&As, course materials, and assignments.

Scheduled Meeting Times:

Monday 4:30pm - 7:10pm, HORIZN 1012

Reading material:

The primary textbook is:

Real-World Cryptography by David Wong

We will also use material from:

The Joy of Cryptography by Mike Rosulek

Note: The goal of this course is to introduce students to how practitioners in the field use cryptography in practice. If you would like to learn more about theoretical cryptography, I encourage you to take this course instead: "CS 487 / CS 587: Introduction to Cryptography", which focuses on foundations and "provable" security. Excellent books, in this case, include: "Introduction to modern cryptography" by Katz and Lindell and "A Graduate Course in Applied Cryptography" by Boneh and Shoup.


50% Assignments

40% Final

10% Participation


GMU Honor Code

CS Department Honor Code