Course discipline
MSIT
Course description
Cryptography is literally thousands of years old because it has always been important to secure information in a manner that only the intended recipient can access it. One famous cipher, Caesar's cipher, was apparently used by the Romans. Today, cryptography is essential for e-commerce and communication. But cryptography is more than just encrypting data. Cryptographic techniques address other system-level problems too, including but not limited to:
- How do I know I'm talking to the person I think I am?
- How can I securely verify that the person I'm talking to knows a shared secret?
- How can I electronically "sign" a document I produce in a way that anyone can verify it came from me, but no one can produce a forgery?
- How can I securely exchange encryption keys with a friend?
In this course, students will learn the foundations of modern cryptography, and how they are used to solve such problems.
Learning objectives
Students will learn:
- The difference between symmetric and asymmetric encryption
- What hash functions are and how they are used in cryptographic applications
- The purpose of message authentication codes and how they are used
- How cryptographic systems work mathematically
- How a system's security can be mathematically defined and estimated
- Why it is important that the same message be encrypted differently if it is sent twice, and how nonces are used to make that possible
- Public key infrastructure and the role of certificates
Outcomes
After completing this course, students will be able to:
- Read and understand protocols and system documentation that employ cryptography.
- Make informed decisions about how to use cryptography in systems.
- Write Python code using public libraries to perform cryptographic operations.
- Understand and explain the mathematical underpinnings of several cryptographic systems.
Content details
- Block ciphers and stream ciphers
- Permutation and substitution networks
- Key expansion
- AES
- Multiplicative groups, testing for primality
- Diffie Hellman key exchange
- El Gamal public key / private key cryptography
- RSA public key / private key cryptography and digital signatures
- Sha-256
- Keyed message authentication codes
- Schnorr identification
- PKI and certificates
- Case study: how WhatsApp does encryption
- How bitcoin works and its cryptographic underpinnings
Prerequisites
None
Faculty
Mike Perkins