Course Websites

ECE 407 - Cryptography

Last offered Spring 2025

Official Description

Cryptography is a powerful toolbox for building secure systems --- not just for private communication, but also for building fault tolerant protocols, for securely outsourcing computation to untrusted services, and more. The goal of this course is to introduce the concepts of modern cryptography, including a combination of theoretical foundations (how do we precisely state security guarantees and assumptions, and prove that a protocol is designed correctly?) and practical techniques (how do we combine secure primitives to make effective systems?). This course is intended for senior undergraduate students with an interest in applying cryptographic techniques to building secure systems, and for graduate students with an interest in cryptography or systems security. Course Information: Same as CS 407. 3 or 4 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 225.

Related Faculty

Course Director

Topics

  • Introduction: motivations, descriptions and design principles of cryptography.
  • Ancient ciphers: encryption methods in the old days and attacks against them.
  • Modern cryptography: rigorous definitions of perfect secrecy; encryption method of one-time pad; formal proof of security.
  • Computational security: limitations of perfect secrecy; relaxation of probabilistic polynomial time adversaries and attacks with negligible probability.
  • Symmetric-key encryptions: pseudorandomness; chosen plaintext attack; stream cipher and block cipher, AES and DES.
  • Message-authentication codes: integrity and confidentiality; chosen ciphertext attack; authenticated encryption.
  • Cryptographic hash functions: birthday attack; SHA.
  • Number theory: mathematical background of public-key cryptography.
  • Public-key encryptions: RSA encryption, El-Gamal encryption, Diffie-Hellman key exchange.
  • Digital Signatures: RSA signature, Schnorr Signature, public key infrastructure, elliptic curves.

Lab Projects

There 5 homework assignments, 1 midterm exam and 1 final exam.

Lab Equipment

None

Topical Prerequisites

Prerequisite: CS 225

Texts

Introduction to Modern Cryptography, 3rd edition, Jonathan Katz and and Yehuda Lindell.

References

Slides and references distributed on Canvas and course webpage

Required, Elective, or Selected Elective

Elective

Course Goals

Cryptography uses mathematical algorithms and protocols to ensure the confidentiality, integrity, and authenticity of information. Today, cryptographic principles and systems form an integral part of almost all online activity. The goal of the course is to provide the students fundamentals of modern cryptography, including their definitions, security goals, concrete constructions in practice and formal security proofs. The course prepares the students for applying cryptographic primitives to enhance the security and privacy of data and computations in their future industrial positions.


Instructional Objectives

By the first homework assignment, the students should be able to do the following:

  • Identify the vulnerabilities of ancient ciphers and old cryptographic designs (1, 6)
  • Understand the rigorous definitions of modern cryptography (1)
  • Perform reductions to reason about different variants of security definitions (6)
  • Formally prove the security of cryptographic protocols (1,6)

By the second homework assignment, the students should be able to do the following:

  • Understand the relaxed definitions of computational security (1)
  • Construct secure encryption schemes under various definitions using building blocks such as pseudo-random generators and pseudo-random functions (2)
  • Formally prove the security of protocols based on cryptographic assumptions (6)
  • Understand the constructions and design principles of ciphers used in practice, such as DES and AES (1, 2)
  • Complete the assignment in a team and present the results to other groups (3, 5)

By the third homework assignment and the midterm, the students should be able to do the following:

  • Differentiate the guarantees of confidentiality, integrity and availability in cybersecurity (4)
  • Design protocols of message authentication code using existing cryptographic primitives and reason about their integrity guarantees under proper security definitions (2, 6, 7)
  • Combine both encryptions and message authentication codes to build authenticated encryptions, achieving both confidentiality and integrity (1, 2, 6)
  • Understand the security definition of cryptographic hash functions and the concrete instantiations such as SHA2 (1)

By the fourth homework assignment, the students should be able to do the following:

  • Understand the limitations of symmetric-key cryptography with a share-secret key (6)
  • Apply the mathematical background of number theory to the area of cryptography (1, 2)
  • Reason about new cryptographic assumptions used in public-key cryptography such as factoring large numbers and solving discrete-logarithm (6)
  • Develop public-key encryption schemes and formally prove their security under cryptographic assumptions (2, 6, 7)

By the last homework assignment and the final exam, the students should be able to do the following:

  • Develop digital signature schemes and formally prove their security under cryptographic assumptions (2, 6, 7)
  • Implement cryptographic primitives using standard libraries such as OpenSSL (6, 7)
  • Understand the public-key infrastructure to establish the hierarchy of trust on the Internet (1)
  • Apply appropriate cryptographic primitives to solve various security problems in real-world scenarios (2, 4)
  • Understand the functionalities of advanced cryptographic primitives (7)

Schedule and Instructors

TitleSectionCRNTypeHoursTimesDaysLocationInstructor
CryptographyA76034LEC31030 - 1150 T R  3013 Electrical & Computer Eng Bldg David Heath