Credits: 3


Prerequisite: (CMSC106, CMSC131, or ENEE150; or equivalent programming experience); and (2 courses from (CMSC330, CMSC351, ENEE324, or ENEE380); or any one of these courses and a 400-level MATH course, or two 400-level MATH courses); and Permission of CMNS-Mathematics department or permission of instructor .
Cross-listed with: MATH456, CMSC456.
Credit only granted for: MATH456, CMSC456 or ENEE456.
The theory, application, and implementation of mathematical techniques used to secure modern communications. Topics include symmetric and public-key encryption, message integrity, hash functions, block-cipher design and analysis, number theory, and digital signatures.

Semesters Offered

Spring 2019, Fall 2019, Spring 2020, Fall 2020, Spring 2021, Fall 2021, Spring 2022, Spring 2023

Learning Objectives

  • Understand the theoretical foundations for real-world cryptosystems
  • Study formal security models for widely used cryptographic applications
  • Analyze various cryptographic schemes and understand their proofs of security
  • Become familiar with number theoretic tools used in cryptography

Topics Covered

  • Classical ciphers, Shannon perfect security and impossibility results
  • Computational security
  • Symmetric-key encryption
  • Pseudorandom generators
  • Pseudorandom functions, pseudorandom permutations, Feistel transform
  • Stream ciphers, block ciphers, modes of operation
  • MACs, Authenticated Encryption
  • Number theory background
  • Collision resistant hash functions
  • Public Key Encryption
  • Digital Signature Schemes
  • Additional advanced topics as time permits