Description

This course introduces the science and art behind the design, security analysis, and implementation of modern day cryptosystems that protect privacy and authenticity of data at rest, in transit, and during use. We will see how cryptosystems evolved to withstand systems-level threats and mathematical cryptanalysis.

General Information

Lecture times
This class meets twice per week, on Tuesdays and Thursdays, at 3:30-4:45pm in room CAS 211. Students are expected to attend all lectures.
Lab times
This class has 3 different recitation lab sections, all of which are on Fridays. Each student is expected to attend 1 Friday lab section per week. Please stick to the lab for which you are registered, though if you have a conflict and cannot make it on a particular week, let the TA Nicolas know and you can attend a different section if there is space available.
VPN information
Some of the textbooks and reading assignments require access to the websites of publishers like Springer, IEEE, and ACM. You will only be able to access these papers if you are on the BU network or if you VPN into it. Instructions to VPN into the BU network are located here: http://www.bu.edu/tech/services/support/remote/vpn/. Alternatively, prepending "http://ezproxy.bu.edu/login?url=" to the front of a URL allows you to view a single website through the BU network without the need to VPN.
Academic honesty
You must adhere to BU’s Academic Conduct Code at all times. Please be sure to read it here: https://www.bu.edu/academics/policies/academic-conduct-code and https://www.bu.edu/cas/files/2017/02/GRS-Academic-Conduct-Code-Final.pdf. In particular: cheating on an exam, passing off another student’s work as your own, or plagiarism of writing or code are grounds for a grade reduction in the course and referral to BU’s Academic Conduct Committee. Graders will check for instances of strong similarity in homework assignments.
Absences
This course follows BU’s policy on religious observance. Otherwise, it is expected that students attend all lectures and recitation labs. If you miss a lecture, please review the lecture slides posted on Piazza.
Collaboration policy
I encourage you to collaborate with classmates in studying lecture materials and preparing exams. You may also discuss ideas and approaches to the homework assignments with others, as long as you document this fact at the top of your solution and you keep these discussions at a conceptual level. You may not share actual code snippets with classmates or search on the Internet for answers. If you are uncertain whether a particular kind of interaction with someone else violates these rules, please ask me beforehand. Finally, the midterm and final exams are intended to reflect individual activity, so all collaboration is strictly prohibited.
Learning environment
This course follows all BU policies regarding accommodations for students with documented disabilities. Also, while I encourage discussion and debate on ideas, I won’t tolerate criticism of other people. Please respect your fellow classmates and contribute toward a positive learning environment.

Announcements

Course schedule
1/21/20 1:47 AM

This post will be continually updated as new textbook reading and homework assignments are posted.

Part 1. Protecting data confidentiality at rest

WeekTopicReadingHomework
1Unpredictability

The Block Cipher Companion, Chapter 1

Encryption & Regulation, a short blog post summarizing the types of crypto we will consider and some of the laws/regulations that impact it

HW 1, due 1/27
2Block ciphers

Serious Cryptography, Chapter 4 (pages 1-13)

Read or (better) listen to NPR's Planet Money episode 773 about pseudorandomness gone wrong

HW 2, due 2/3
3Encryption via enciphering

Serious Cryptography, Chapter 4 (pages 13-23)

HW 3, due 2/10

Part 2. Attacking data confidentiality at rest

WeekTopicReadingHomework
4Side channel attacksSystematic Classification of Side-Channel Attacks: A Case Study for Mobile DevicesHW 4, due 2/18
5(Test on February 20)The Block Cipher Companion, Sections 4.1 through 4.3 (everything here should be review except for CFB and OFB modes in Sec 4.2.1 and 4.2.2, which you should ignore)None

 

Part 3. Adding data integrity

WeekTopicReadingHomework
6Hash functions and MACs

The Hash Function BLAKE, Sections 2.1, 2.2, and 2.4

The Block Cipher Companion, Section 4.4

Optional: Real-World Cryptography, Chapter 2

HW 5, due 3/2
7Authenticated encryptionThe Block Cipher Companion, Section 4.5HW 6, due 3/18



Part 4. Protecting data in transit

WeekTopicReadingHomework
8Authenticated key exchange

Cryptography Made Simple, Sections 18.1-18.4.3, pages 369-385

HW 7, due 3/25
9Signal's key ratcheting

The Double Ratchet Algorithm

Optional: Designing [the Kerberos] Authentication System

HW 8, due 4/1

Part 5. Protecting data during use

WeekTopicReadingHomework
10Protecting general computation

Secure Multiparty Computation for Privacy-Preserving Data Mining, Section 3

Optional: Secure Multiparty Computation (MPC)

HW 9, due 4/8
11Protecting location, databases

Cryptographically Protected Database Search

Optional: Anonymous Collocation Discovery

none
12Protecting voting

End-to-end Verifiability

none [project due 4/22]



Part 6. Final topics

WeekTopicReadingHomework
13Cipher design and cryptanalysis

The Block Cipher Companion, Section 6.1 (and optionally also 7.1)

HW 10, due 4/29
14Crypto and the lawOptional: Orin Kerr's Computer Crime Law, Chapter 1None

#pin

Staff Office Hours
NameOffice Hours
Mayank Varia
When?
Where?
Harrison Richmond
When?
Where?
Elyse Kaczmarek
When?
Where?
Xinyuan Zhang
When?
Where?
Nicolas Alhaddad
When?
Where?

Lecture Notes

Lecture Notes
Lecture Date
Apr 23, 2020
Apr 21, 2020
Apr 16, 2020
Apr 14, 2020
Apr 14, 2020
Apr 9, 2020
Apr 2, 2020
Mar 31, 2020
Mar 26, 2020
Mar 24, 2020
Mar 19, 2020
Mar 17, 2020
Mar 5, 2020
Mar 3, 2020
Feb 27, 2020
Feb 25, 2020
Feb 13, 2020
Feb 11, 2020
Feb 6, 2020
Feb 4, 2020
Jan 30, 2020
Jan 28, 2020
Jan 23, 2020
Jan 21, 2020