CSE 664 Spring 2020: 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 written homework assignments (HW), a midterm exam (ME), and a course project (CP). Tentatively, the grade will consist of 35% HW, 35% ME, and 30% CP. The exam is currently scheduled for April 16.

There will be five written homeworks, and the instructor reserves the right to grade a subset of them. The current plan is to have the homeworks to be due on Feb 18, Mar 5, Mar 24, Apr 9, and Apr 30. There will be one large project of your choosing (done in teams of two or individually) that must use cryptographic techniques and include a programming component. The project will be due during the last week of classes on May 5 and teams are responsible for short in-class presentations of their projects on May 7. Each team will first submit a project proposal (due on Feb 25) and later a project progress report (due on Mar 31) to ensure continuing progress on the project.

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 (to lower the grade expectations) 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 integrity is a fundamental university value. Through the honest completion of academic work, students sustain the integrity of the university and of themselves while facilitating the university's imperative for the transmission of knowledge and culture based upon the generation of new and innovative ideas.

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. Repeated violations always result in a failure in the course with possibly more severe actions imposed by the university.

For more information, please refer to the CSE academic integrity policy, UB academic integrity policy, and UB graduate academic integrity policy.

Accessility Resources

If you have any disability which requires reasonable accommodations to enable you to participate in this course, please contact the Office of Accessibility Resources in 60 Capen Hall, 716-645-2608 and also the instructor of this course during the first week of class. The office will provide you with information and review appropriate arrangements for reasonable accommodations, which can be found on the web at: http://www.buffalo.edu/studentlife/who-we-are/departments/accessibility.html.

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 27 - 31)
  • Lecture: Introduction
  • Recommended reading: Sections 1.1-1.2 and 1.4
  • Assigned reading: Section 1.3; UB and CSE academic integrity policies
  • Additional resources: How to start with LaTeX, background exercises
Week 2 (Feb 3 - 7)
  • Lecture: Perfect Secrecy (cont.)
Week 3 (Feb 10 - 14)
  • Lecture: Symmetric Encryption (cont.), PRG exercises
  • Lecture: Symmetric Encryption II, PRF exercises
  • Recommended reading: Sections 3.4-3.6
  • Project proposal is assigned
Week 4 (Feb 17 - 21)
  • Lecture: Symmetric Encryption II (cont.), sym. encryption exercises
Week 5 (Feb 24 - 28)
  • Lecture: Data Integrity
  • Recommended reading: Sections 4.1-4.4
  • Homework 2 is assigned
  • Lecture: Hash Functions
  • Recommended reading: Sections 5.1-5.2, 5.4-5.5, and 6.3
Week 6 (Mar 2 - 6)
  • Lecture: Hash Functions (cont.), hash function exercises
  • Lecture is canceled
  • Homework 3 is assigned
Week 7 (Mar 9 - 13)
  • Lecture: Number Theory II
  • Recommended reading: Sections 8.1-8.2 (partially), Appendix B.2 (partially)
  • Project progress report is assigned
Week 8 (Mar 16 - 20)
  • Spring break
  • Spring break
Week 9 (Mar 23 - 27)
  • Lecture: Security of RSA
  • Recommended reading: Section 11.5 (except starred subsections)
Week 10 (Mar 30 - Apr 3)
Week 11 (Apr 6 - 10)
Week 12 (Apr 13 - 17)
  • Lecture: Material overview
  • Midterm exam
Week 13 (Apr 20 - 24)
Week 14 (Apr 27 - May 1)
  • Lecture: Midterm review
  • Project reports are assigned
Week 15 (May 4 - 8)
  • Project presentations