CSE 664 Spring 2018: Applied Cryptography and Computer
- Tue Thu 11:00am - 12:20pm, Jan 29 - May 11, 2018
- Alumni Arena 90
- Marina Blanton
- Email: mblanton at buffalo.edu
- Office: 333 Davis Hall
- Office hours: Mon 3:00-4:00pm, Thu 10:00-10:50am or by appointment
- Jonathan Katz and Yehuda Lindell, Introduction to Modern
Cryptography, second edition, Chapman & Hall/CRC, 2014.
- Alfred J. Menezes, Paul C. Oorschot, and Scott A. Vanstone, Handbook of Applied
Cryptography, CRC Press.
- Douglas R. Stinson, Cryptography: Theory and Practice,
- William Stallings, Cryptography and Network Security, Principles and
Practice, Prentice Hall.
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.
This course provides rigorous treamtent of cryptographic techniques
used in computer security and is aimed at graduate students.
A tentative syllabus is:
- Week 1: Concepts and principles of cryptography; classical ciphers
- Week 2: Perfect secrecy; symmetric key encryption
- Week 3: symmetric key encryption
- Week 4: Block ciphers and encryption standards (DES, AES)
- Week 5: Data integrity
- Week 6: Hash functions and applications
- Week 7: Number theory
- Week 8: Spring break
- Week 9: Public-key cryptography and RSA
- Week 10: Discrete logarithms and ElGamal
- Week 11: Material review; midterm exam
- Week 12: Digital signatures (DSA, RSA, ElGamal)
- Week 13: Elliptic-curve cryptography; authentication
- Week 14: Key exchange and other protocols (such as digital cash and
electronic voting, computing on encrypted data)
- Week 15: Additional protocols; project presentations
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.
- All homework is due at the beginning of the class at 11:00am.
- All homeworks must be done individually unless announced otherwise.
- Discussion of homeworks is acceptable until you begin to formulate
- Writing homeworks must be done individually.
- Any external source that aided homework preparation must be clearly
- Homeworks must be typed (diagrams can be hand-drawn).
- Each student receives two days that can be used to turn
any assignment in late. Whenever using one or more of these days on an
assignment, you must communicate this to the instructor prior to the
deadline. Each extra day extends the deadline by 24 hours. Homework then
can be submitted by e-mail and is also due at 11:00am.
- No late assignment beyond the two extra days is accepted.
- The midterm exam is open notes, open books, but no electronic
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
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.
|Week 1 (Jan 29 - Feb 2)
|Week 2 (Feb 5 - 9)
- 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
- Project progress report is due
|Week 8 (Mar 19 - 23)
|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
|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