04-622   Applied Cryptography

Location: Africa

Units: 6

Semester Offered: Spring

Course discipline


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


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




Mike Perkins