CS487/ CS587: Introduction to Cryptography
George Mason University, Computer Science, Fall 2021
Instructor: Prof. Foteini Baldimtsi (email@example.com)
Office Hours: Wednesdays 2:00PM - 4:00PM, ENG 5333
Lectures: Wednesdays 4:30PM-7:10PM, Location: East 201
Class website: https://www.baldimtsi.com/teaching/crypto_f21
Teaching Assistant: Anuj Pokhrel, Tuesdays 2pm-3pm ENG 4456, Thursdays 3pm-4pm Zoom
The course will provide an introduction to modern cryptography. We will cover many practical topics, such as how to correctly use block ciphers and hash functions for the most common tasks: encryption and message authentication, the differences between public key cryptography and symmetric key cryptography, and a few ways to build public key encryption and signatures. We will learn about how to properly define security, and how to prove that our constructions are secure. In addition, and if time permits, we will also cover some recent topics in cryptography, such as the use of blockchains for crypto currencies (i.e. Bitcoin), zero-knowledge proofs of knowledge, and searching on encrypted databases.
Objectives: The main objectives are to convey the importance of provable security, to teach students how to use cryptographic tools in a way that is provably secure, to provide students with the ability to decide whether a protocol is secure, and to demonstrate the range of what can be achieved with provable security.
Course Outcomes: Students taking this class will be able to: (a) understand the security properties achieved by common cryptographic mechanisms such as encryption or digital signatures, (b) be familiar with a number of cryptographic protocols (toolbox) available to solve a variety of problems, (c) gain some experience on how cryptographic tools are used to secure modern systems such as cryptocurrencies.
Prerequisites: The prerequisites for the class are CS 310, CS 330 and STAT 344.
Although we will learn about practical topics in cryptography, students will need some level of mathematical maturity, i.e. being familiar with concepts in probability theory (computation of expectation, conditional probability etc) and complexity theory (Turing machines, NP-completeness etc) would be helpful for an easier understanding of formal security definitions and proofs. This is not a course about computer hacking or computer security.
Communications: We will use Piazza to communicate with you. If you have a question about the course you should: (a) Come to office hours, OR (b) Post on Piazza. We have already set up different tags for HW problems and lectures. Please don't use private posts/emails to ask technical questions. The rest of the class is probably also interested in your question, so make it public!
Lectures: The class will meet in person once a week on Wednesdays. I mainly use the whiteboard during lecture, taking notes is recommended but most of the material we will cover, will also be included in the book.
Class Material: Any given class material (slides, notes, videos with sample HW problems etc) will be posted on Blackboard. Most of the class material will be presented on whiteboard, thus taking notes is highly recommended.
Assignment Submission and Late Policy: We will have 6-7 sets of assigned homework problems (roughly bi-weekly). Assignments will be posted on Blackboard and solutions have to be submitted on Blackboard by Friday 11:59pm (we will stop answering to questions on piazza at 5pm on Fridays so we highly recommend to submit before that). No credit will be given to late submissions. To be fair with everyone in class no exception will be made to the rule above.
Quizzes: All class quizzes will happen at the beginning of the class, electronically on Blackboard. You need to have an electronic device with you in class (laptop, tablet, smartphone) with access to Blackboard. If you need special accommodations please contact the instructor in advance.
Graduate Students (CS 587): Graduate students will be given an extra HW problem to solve in most of the assignments. They will also have to solve an extra problem in both midterm and final and will have to independently study some additional material.
Text Book: Katz and Lindell. Introduction to modern cryptography, Second Edition. (Required).
There will also be additional readings for each class (available online for free) listed below.
A Graduate Course in Applied Cryptography, Dan Boneh, Victor Shoup
Cryptography Primitives and Protocols, Aggelos Kiayias
The Joy of Cryptography, Mike Rosulek
A course on Cryptography, Rafael Pass & abhi shelat
Cryptography, an introduction, Nigel Smart
Introduction to Modern Cryptography, Mihir Bellare & Phil Rogaway
Assignments: 35% (6-7 assignments)
Quizzes: 10% (~11 quizzes, lowest grade dropped)
Class Schedule (Tentative):
Additional Class Information
Honor code: All students must adhere to the GMU Honor Code. You can discuss lecture material with other students in class but you have to work on the assignments alone. More specifically: (1) You must work on the homework problems and write your solutions completely on your own, without looking at other people’s write-ups. (2) You are welcome to use any textbooks, online sources, blogs, research papers, Wikipedia, etc to better understand a notion covered in class or in a homework question. If you do so you have to properly cited it in any submitted work. Failure to do this is plagiarism and is serious violation of the GMU Honor Code and basic scientific ethics, and will not be tolerated. Note that it is not OK to search for solutions to HW problems online.
Disability Accommodations: Disability Services at George Mason University is committed to providing equitable access to learning opportunities for all students by upholding the laws that ensure equal treatment of people with disabilities. If you are seeking accommodations for this class, please first visit http://ds.gmu.edu/ for detailed information about the Disability Services registration process. Then please discuss your approved accommodations with me. Disability Services is located in Student Union Building I (SUB I), Suite 2500. Email:firstname.lastname@example.org | Phone: (703) 993-2474
Misconduct Report: As a faculty member, I am designated as a “Non-Confidential Employee,” and must report all disclosures of sexual assault, sexual harassment, interpersonal violence, stalking, sexual exploitation, complicity, and retaliation to Mason’s Title IX Coordinator per University Policy 1202. If you wish to speak with someone confidentially, please contact one of Mason’s confidential resources, such as Student Support and Advocacy Center (SSAC) at 703-380-1434 or Counseling and Psychological Services (CAPS) at 703-993-2380. You may also seek assistance or support measures from Mason’s Title IX Coordinator by calling 703-993-8730, or emailing email@example.com.