Master Course Description

No: EE 418

Title: Network Security and Cryptography

Credits: 3

UW Course Catalog Description

Coordinator: Radha Poovendran, Associate Professor of Electrical Engineering

Goals: To develop an understanding of the fundamental principles of cryptography and its application to network and communication security. This course will serve as an introduction to the fundamental tools in cryptography and the protocols that enable its application to network and communication security. This course is an introduction to the basic theory and practice of cryptographic techniques used in computer security. We will cover topics such as encryption (secret-key and public-key), digital signatures, secure authentication, key management, cryptographic hashing, Internet voting systems, copyright protection, and ethics associated with the use of computer security.

Learning Objectives: At the end of this course, students will be able to

  1. Describe the basic cryptographic primitives, authentication protocols and why they work, what are the common design errors.
  2. Write computer (MATLAB, or other languages such as Mathematica) programs to design and analyze some of the simpler algorithms.
  3. Apply the concepts to develop algorithms for applications in speech and signal/image processing.
  4. Analyze the given cipher text using standard cryptanalysis tools to be presented in class.
  5. Describe and analyze authentication protocols for two party communications.
  6. Design algorithms using block ciphers
  7. Describe the ethical issues related to the misuse of computer security.


Reference Texts:

Prerequisites by Topic: Math 308; Either Math 390, Stat 390 or Industrial Engineering 315. Familiarity with MATLAB is essential.


  1. Introduction and history. Overview of cryptography.
  2. Basic Secret Key Encryption Techniques (Security Against Eavesdropping)
  3. Message Integrity (Hashing)
  4. Public Key Encryption (RSA, El-Gamal)
  5. Digital Signatures (RSA, El-Gamal, DSA)
  6. Crypto in the Real World
  7. Authentication and Key Exchange
  8. Trust establishment and propagation in wireless and social networks
  9. Defensive Programming Approaches

Course Structure: The class meets for three lectures a week. There is weekly homework due that includes small computer projects in MATLAB. Two team oriented project are planned in this course either with MATLAB or other programming language like C. Course includes one midterm and one final exam.

Computer Resources: The computer project can be done on any PC or workstation that contains MATLAB. The EE computers are available to all the students registered for the course.

Grading: 20% Homework, 30% projects, 20%midterm, 30% final exam.

Outcome Coverage (Notation: (L) - low significance; (M) - medium significance; (H) - high significance):

(a) (H) An ability to apply knowledge of mathematics, science and engineering. The course uses mathematical tools. Students must identify and design suitable algorithms. Engineering judgment is developed through the understanding the limitations and advantages of a given cryptographic algorithm or network security protocol. Throughout the course we emphasize the need to use sound design principles instead of relying on mathematics only. Towards this direction, security protocols that were mathematically correct but had design flaws are discussed. Assignments require students to analyze other protocols with weaknesses.

(b) (N/A) An ability to design and conduct experiments, as well as to analyze and interpret data.

(c) (H) An ability to design a system, component or process to meet desired needs. The project challenges the students to develop, design and implement different cryptographic algorithms. In most cases, this is implemented in MATLAB.

(d) (N/A) An ability to function on multidisciplinary teams.

(e) (H) An ability to identify, formulate and solve engineering problems. The homework involves solving engineering problems identified by the assignments and exemplified by class discussion. The exams and projects challenge the students to identify the issues and formulate their individual solutions. The students develop an implementation for stream cipher based encryption of speech.

(f) (H) An understanding of professional and ethical responsibilities. The course covers security vulnerabilities in systems and their societal implications, enabling the students to recognize the ethical dilemmas that they may face in their professions.

(g) (H) An ability to communicate effectively. Students are required to write up their simulations in an engineering format. The ability to communicate effectively in writing is a portion of the grade received on homework and projects.

(h) (H) The broad education necessary to understand the impact of engineering solutions in a global and societal context. Impact of good network security protocols is emphasized. We discuss the impact of design and implementation of insecure protocols and the way they can be exploited. Main focus here will be to show how to design protocols that are resilient to common security threats such as user collusion.

(i) (H) A recognition of the need for, and an ability to engage in life-long learning. The course emphasizes the need for evolving current secure system designs as new threats emerge and security assumptions are weakened. Further, pointers to security websites and articles are provided in order to enhance personal knowledge in this developing area.

(j): (M) Knowledge of contemporary issues. Security standards and security related findings in the news are discussed.

(k) (H) An ability to use the techniques, skills, and modern engineering tool necessary for engineering practice. The software tool MATLAB will serve this purpose in this course.

Prepared By: Radha Poovendran

Last revised: 12/21/12