**Master Course Description**

**No:** EE 418

**Title:** Network Security and
Cryptography

**Credits:** 3

**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

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

**Textbooks:
**

*Cryptography Theory and Practice*, 3rd edition, D. Stinson, CRC Press.

**Reference
Texts: **

*Network Security (private communication in a public world),*2nd edition by C. Kaufman, R. Perlman, M. Speciner.*Cryptography and Network Security,*3rd edition, W. Stallings. Prentice Hall*Applied cryptography,*B. Schneier, Prentice Hall.*Handbook of Applied Cryptography,*by A. Menezes, P. Van Oorschot, S. Vanstone, CRC Press.

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

**Topics:**

- Introduction and history. Overview of cryptography.
- Basic Secret Key Encryption Techniques (Security Against Eavesdropping)
- Message Integrity (Hashing)
- Public Key Encryption (RSA, El-Gamal)
- Digital Signatures (RSA, El-Gamal, DSA)
- Crypto in the Real World
- Authentication and Key Exchange
- Trust establishment and propagation in wireless and social networks
- 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