CSE 664 Spring 2018: Applied Cryptography and Computer Security

General Information

Class Schedule



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 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 30% HW, 35% ME, and 35% CP. The exam is tentatively scheduled for April 12.

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 29 - Feb 2)
Week 2 (Feb 5 - 9)
  • Lecture: Symmetric Encryption
  • Practice homework 1 is assigned
  • Recommended reading: Sections 3.1-3.3
  • Lecture: Symmetric Encryption (cont.), PRG exercises
  • Project proposal is assigned (due on Feb. 20)
Week 3 (Feb 12 - 16)
  • Lecture: Symmetric Encryption II (cont.), PRF exercises
  • Graded homework 1 is assigned
  • Assigned reading: Section 6.2
Week 4 (Feb 19 - 23)
  • Lecture: sym. encryption exercises, DES
  • Project proposal is due
Week 5 (Feb 26 - Mar 2)
  • Lecture: Data Integrity
  • Recommended reading: Sections 4.1-4.4
  • Homework 1 is due
  • Lecture: Hash Functions
  • Recommended reading: Sections 5.1-5.2, 5.4-5.5, and 6.3
  • Practice homework 2 is assigned
Week 6 (Mar 5 - 9)
  • Lecture: Hash Functions (cont.), hash function exercises
Week 7 (Mar 12 - 16)
  • Lecture: Number Theory
  • Recommended reading: Section 8.1.1, Appendix B.1
  • Lecture: Number Theory II
  • Recommended reading: Sections 8.1-8.2 (partially), Appendix B.2 (partially)
  • Project progress report is due
Week 8 (Mar 19 - 23)
  • Spring break
  • Spring break
Week 9 (Mar 26 - 30)
  • Lecture: Number Theory II (cont.)
  • Homework 2 is assigned
Week 10 (Apr 2 - 6)
  • Lecture: Security of RSA
  • Recommended reading: Section 11.5 (except starred subsections)
Week 11 (Apr 9 - 13)
  • Lecture: Material overview
  • Midterm exam
Week 12 (Apr 16 - 20)
  • Lecture: Midterm review
  • Practice homework 3 is assigned
Week 13 (Apr 23 - 27)
  • Lecture: Elliptic Curves
  • Recommended reading: Section 8.3.4
  • Homework 3 is assigned
Week 14 (Apr 30 - May 4)
Week 15 (May 7 - 11)
  • Project presentations
  • Projects are due on May 9
  • Project presentations and semester overview
  • Projects demos are on May 11