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.
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). Or permission of instructor.
Also offered as: CMSC456, MATH456.
Credit only granted for: MATH456, CMSC456 or ENEE456.
Semesters OfferedSpring 2019, Fall 2019, Spring 2020
- 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
- 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