CS 494 Introduction to Cryptography (Fall 2020)

Course Overview

This course is an introduction to modern cryptography, from both foundational and practical perspectives.

  • For foundational cryptographic primitives and algorithms such as encryption schemes, pseudorandom generators, hash functions, message authentication codes, etc., we will see what security guarantees are desirable, how to properly dene these security guarantees, and how to design cryptographic primitives and algorithms that satisfy them.

  • For cryptosystems widely used in practice including DES, RC4, SHA, Diffie-Hellman, etc., we will see precisely how these practical cryptosystems are built, and what security level they achieve in various scenarios.

  • Time permitting, more advanced topics will also be covered, such as zero-knowledge proofs, secure computation, blockchain and cryptocurrency.

By the end of this course, you will gain a good understanding of both foundations and practice of cryptography. You will be able to design and analyze real-world cryptosystems as well as understand a good portion of cryptography research papers and standards.

Basic Information

Lecture Time: 2:00 - 3:15pm, Tuesdays and Thursdays (synchronous, online/on-campus blended).

Instructor: Peihan Miao.

Office Hour: 3:15 - 4:30pm Tuesdays or by appointment.

Online Lecture/Offie Hour Location: Zoom.

On-Campus Lecture Location: Lecture Center Building D, D4.

Zoom Information:

On-Campus Lecture Sessions: There will be 6 on-campus lecture sessions at regular lecture time on Thursdays every other week starting on Sept. 3 (exact dates listed on the schedule). In-person attendance is not mandatory; you can also join on Zoom (using the above link). If you attend these sessions in person, bring your UIC i-card to swipe into the building (LCD). Before entering the classroom, clean your hands with hand sanitizer (available at the entrance). You are required to wear a face mask and keep a social distance of 6 feet at all time. If you have any symptoms that may be caused by COVID-19, or if you are tested positive for COVID-19, please don't come to the lecture.

All the lectures will be recorded and will be available online in a day after each lecture.

Prerequisites

(a) CS 251 and (b) STAT 381 or IE 342 or STAT 401. CS 401 is highly recommended.

Specifically, we will assume familiarity with basic (discrete) probability and modular arithmetic. Students enrolled are also expected to have had some exposure to algorithms, mainly to be comfortable reading pseudocode and to be familiar with big-O notation.

Class announcements and homework submission

We will be using Piazza for all course announcements, discussions, surveys, etc. and Gradescope for grading (homework, midterms, and final).

Textbook and Readings

This course will follow the book Introduction to Modern Cryptography by Jonathan Katz and Yehuda Lindell, 2nd edition. The textbook is available for purchase at the UIC Bookstore.

Here are some other excellent (and mostly free) resources:

Grading and Policies

  • Homework: 30% (best 8 out of 10)

  • Midterm 1: 20% (Sept. 22, take-home)

  • Midterm 2: 20% (Oct. 27, take-home)

  • Final: 30% (Dec. 9, take-home)

You are encouraged to work on homework problems with fellow students; however, you must always write up the solutions on your own and explicitly acknowledge everyone whom you have worked with or who has given you any significant ideas about the homework. Similarly, you may use books or online resources to help solve homework problems, but you must always credit all such sources in your write-up and you must never copy material verbatim. At no time should you be in possession of another student's solution.

Midterm and final exams will be take-home and open-book. They will be released at noon on the exam day and will be due in 24 hours. You are expected to spend 75 minutes for each midterm exam and 2 hours for the final exam. While taking the exam, you are subject to the UIC Honor Code of Conduct. You may consult any materials that you have collected for this course, including but not limited to the textbook, recommended readings, lecture notes, homework solutions. However, you are NOT permitted to do any online or library research to answer the exam questions. You may NOT discuss it with anyone else until after the exam is due.

Any late submission of the homework or exams will NOT be accepted.

Tentative Schedule

CS 494