Cryptography and Network Security

Cryptography provides the fundamental building blocks for secure communication and information security. This course introduces the principles and practices of modern cryptography, with an emphasis on two key areas: (1) the design and analysis of core cryptographic primitives such as encryption schemes and digital signatures, and (2) their application in securing real-world systems to ensure data confidentiality, integrity, authenticity, and non-repudiation. Topics include classical ciphers, private- and public-key cryptography, block ciphers, hash functions, message authentication codes (MACs), digital signature schemes (e.g., RSA), and security protocols such as TLS and HTTPS.

Course Overview

This course introduces essential cryptographic primitives along with their associated security models, concrete constructions, and applications in network security. Cryptographic techniques are typically categorized into two main paradigms: private-key (symmetric-key) and public-key (asymmetric-key) cryptography. In real-world applications, these two paradigms are often integrated to provide robust security solutions. The course is structured into four modules:

  • Module 1 introduces foundational mathematics, including modular arithmetic, number theory, and basic discrete structures such as groups.
  • Module 2 covers private-key primitives such as symmetric-key encryption, block ciphers, hash functions, and message authentication codes (MACs).
  • Module 3 explores public-key cryptographic primitives, including public-key encryption, key exchange protocols, and digital signature schemes.
  • Module 4 focuses on real-world network security applications, such as SSL/TLS and HTTPS.

Each module incorporates hands-on coding exercises and practical examples to support an in-depth understanding of theoretical concepts.

Learning Objectives

By the end of this course, students will have the opportunity to:

  • Understand the fundamental goals of cryptography, including confidentiality, integrity, authenticity, and non-repudiation.
  • Learn the mathematical foundations necessary for cryptographic algorithms, such as modular arithmetic and number theory.
  • Identify and explain various cryptographic primitives, including symmetric and asymmetric encryption, hash functions, and digital signatures.
  • Analyze how cryptographic techniques are applied to real-world network security protocols.
  • Gain hands-on experience implementing secure systems using cryptographic libraries and tools.
  • Apply cryptographic principles to design and implement secure communication systems in practical scenarios.

Learning Outcomes

After completing this course, students should be able to:

  • Explain the concepts of data confidentiality, authenticity, integrity, and non-repudiation. | Know/Knowledge Outcome
  • Identify which cryptographic primitives provide specific security properties. | Comprehend Outcome
  • Describe the roles of digital signatures, encryption, and key exchange in real-world communication systems. | Know/Knowledge Outcome
  • Apply knowledge of basic cryptographic building blocks to design customized secure systems. | Apply Outcome
  • Explain at which layers of the computer network stack security mechanisms should be integrated and how they operate. | Comprehend Outcome
  • Design new network security protocols (e.g., a personalized messenger) using existing cryptographic libraries such as OpenSSL. | Apply Outcome
  • Develop new network security protocols using custom-built cryptographic primitives.  Apply Outcome
  • Cryptography: Theory and Practice by  Douglas Robert Stinson and Maura Paterson.
  • Handbook of Applied Cryptography by  Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone.
  • Introduction to Modern Cryptography by Jonathan Katz and Yehuda Lindell.