CSE 664 Spring 2017: Applied Cryptography and Computer Security

General Information

Class Schedule

Instructor

Textbooks

Textbook: Additional resources:

Course Objectives

The objectives of this course consist of developing deep understanding of common cryptographic functionalities and their security objectives, as well as be able to use them in practical security systems through rigorous formulation of such functionalities and discussions of their applications. Course assignments are designed to demonstrate understanding of the security and cryptography principles and show the ability to correctly use the concepts and their implementations to meet security objectives of various systems. The course project additionally includes a research component to demonstrate the ability to build a complex security system and show that its security objectives are properly met.

Course Description

This course provides rigorous treamtent of cryptographic techniques used in computer security and is aimed at graduate students. A tentative syllabus is:

Grading

Grading for this course will be based on homework assignments (HW), a midterm exam (ME), and a course project (CP). Tentatively, the grade will consist of 20% HW, 40% ME, and 40% CP.

Three sets of homeworks will be graded, more homeworks will be assigned, but not graded. Homeworks might include programming components. There will be one large project of your choosing (done in teams of two or individually) that must use cryptographic techniques. The project will be due during the last week of classes and teams are responsible for short in-class presentations of their projects.

You can expect that performance at 90% or higher earns an A, 80% or higher earns a B, etc. The scale might be adjusted by the instructor if deemed necessary.

Assignment Policies

Academic Integrity

Computer science, as a profession, requires us to seek truth not only in scientific discoveries, but also in dealing with the public, as the public depends on our expertise and honesty to construct their computing infrastructure. Thus, competence and trust are essential to being a scholar and a computing professional in particular.

Your instructor will treat you as a professional, and you should plan on conducting yourself in an appropriate way. No behavior that compromises academic honesty (such as use of someone else's work or code, using prohibited materials during tests, or making your work available to others) will be tolerated in this course. If you need assistance with anything, do not hesitate to contact the instructor.

It is expected that your work represents your own understanding of the problem. If work of others is used, it must be properly cited. Use of properly cited material is acceptable, but no referencing is treated as claiming the work as your own.

Academic dishonesty will not be tolerated in this course. It is the CSE policy that each case of academic integrity violation is recorded. The standing policy of the department is that all students involved in an academic integrity violation will receive an F grade for the course, unless the instructor recommends a lesser penalty for the first instance of academic integrity violation for the student in question.

Additional information about the CSE policies can be found here; UB academic integrity policies are available here; and UB graduate school guidelines can be found here.

Detailed Course Schedule

Homework assignments and other course-related materials not posted on this web page are available through UBlearns.

  Tuesday Thursday
Week 1 (Jan 30 - Feb 3)
Week 2 (Feb 6 - 10)
  • Lecture: Symmetric Encryption
  • Project proposal is assigned (due on Feb 16)
  • Recommended reading: Sections 3.1-3.3
  • Lecture: Symmetric Encryption (cont.), PRG exercises
  • Practice homework 1 is assigned
Week 3 (Feb 13 - 17)
  • Lecture: Symmetric Encryption II (cont.), PRF exercises
  • Project proposal is due, graded homework 1 is assigned
  • Assigned reading: Section 6.2
Week 4 (Feb 20 - 24)
  • Lecture: Symmetric Encryption II (cont.), sym. encryption exercises
Week 5 (Feb 27 - Mar 3)
  • Lecture: Data Integrity
  • Recommended reading: Sections 4.1-4.4
  • Homework 1 is due
  • Lecture: Hash Functions, hash function exercises
  • Recommended reading: Sections 5.1-5.2, 5.4-5.5, and 6.3
Week 6 (Mar 6 - 10)
  • Lecture: Hash Functions (cont.)
  • Project progress report is assigned
Week 7 (Mar 13 - 17)
  • Snow day
  • Lecture: Applications of Hash Functions (cont.)
  • Project progress report is due
Week 8 (Mar 20 - 24)
  • Spring break
  • Spring break
Week 9 (Mar 27 - 31)
  • Lecture: Number Theory
  • Recommended reading: Section 8.1.1, Appendix B.1
  • Homework 2 is assigned
  • Lecture: Number Theory II
  • Recommended reading: Sections 8.1-8.2 (partially), Appendix B.2 (partially)
Week 10 (Apr 3 - 7)
  • Lecture: Public-Key Cryptography and RSA (cont.)
  • Homework 2 is due
Week 11 (Apr 10 - 14)
  • Lecture: Material overview
  • Midterm exam
Week 12 (Apr 17 - 21)
  • Lecture: Security of RSA
  • Recommended reading: Section 11.5 (except starred subsections)
  • Practice homework 3 is assigned
Week 13 (Apr 24 - 28)
  • Lecture: Discrete Logarithms and ElGamal (cont.)
  • Homework 3 is assigned
Week 14 (May 1 - 5)