This course provides a broad introduction to cryptography and communication security mechanisms based on cryptography. The course covers fundamental aspects such as security evaluation criteria and the mathematical constructs underlying cryptographic primitives as well as applied aspects like the design of major encryption and hashing algorithms, details of security mechanisms relying on cryptography such as data encryption, integrity, digital signature, authentication, key management, and public-key infrastructures.
Teaching and Learning Methods : Lectures and Lab sessions
Course Policies : Attendance to Lab sessions is mandatory.
- Introduction to Modern Cryptography - Jonathan Katz, Yehuda Lindell
- Handbook of Applied Cryptography - Alfred Menezes, Paul van Oorschot, Scott Vanstone -
Available on-line for personal use http://www.cacr.math.uwaterloo.ca/hac/
Basic knowledge in Computer Science and Discrete Math
Security requirements, services and security function placement in layered communication systems.Classical ciphers, security evaluation, entropy, key equivocation function, unicity distance, perfect secrecy, one-time pad. Symmetric algorithms, Feistel cipher, DES, Number Theory, IDEA, AES, stream ciphers, RC4. Asymmetric algorithms, Diffie-Hellman, RSA, El Gamal, Elliptic Curve Cryptography. Modes of operation (CBC, CFB, OFB, CTR, XTS), hash functions and data integrity, MAC and MDC. Digital Signatures and Non-Repudiation. Authentication protocols, personal devices, key generation, symmetric key distribution, Kerberos, public-key certification and PKI systems.
- be able to Identify security services required by a computing system
- be able to design a secure communication system using cryptographic mechanisms
- be able to analyze the security of an existing communication system
Nb hours: 42.00, including 3 Lab sessions (9 hours)
Grading Policy: Labs (30%), Exam (70%)