Crypto for Data Science

Author

Mayank Varia

Published

September 2, 2026

Course description

Crypto for Data Science (BU CDS 453/653) investigates techniques for performing trustworthy data analyses without a trusted party, and for conducting data science without data sharing. The course contains four units that explore protecting data integrity, availability, and confidentiality in turn, and a capstone unit on protecting data science.

This course follows Boston University’s academic conduct code and policies on absence for religious reasons, accommodations, plagiarism, and generative AI use. See the syllabus for more details. Students are responsible for adhering to course policies at all times!

This class also uses the Piazza and Gradescope websites.

Course info

Lectures are on Mon/Wed at 10:10-11:55am in EPC 205. Labs are on Fridays at 10:10-11:00am and 11:15am-12:05pm in PSY B53. Office hours are posted on Piazza.

Prerequisites for this course are: mathematical maturity with linear algebra and probability, solid understanding of programming in Python, and familiarity with basic concepts in algorithms such as asymptotic complexity.

Textbooks

Calendar

This schedule includes the learning objectives that students are expected to learn by the end of each unit of the course, along with the weekly lesson plan and links to lecture videos, textbook reading, lab worksheets, and homework assignments. The schedule will be updated throughout the semester. The password to watch the recorded videos is available here.

Unit 1: Protecting data integrity

Learning Objectives: Describe the properties of hash functions, and explain how to use them in protecting passwords and message commitments. Define the security requirements of MACs and digital signatures, and explain their role in authenticating people and data.

Date Class Links
Wed 9/2 Lecture 1: Course overview NotesVideo
Fri 9/4 Lab 1
Wed 9/9 Lecture 2: Cryptographic hash functions Notes • Video
Fri 9/11 Lab 2 on Reading NBFMG section 1.1, pages 23–31 Worksheet
Mon 9/14 Lecture 3: Password hashing Notes • Video
Wed 9/16 Lecture 4: (Pseudo)randomness Notes • Video
HW 1 due DownloadSubmit
Fri 9/18 Lab 3 on Reading PPG sections 13.1–13.2, pages 466–472 Worksheet
Mon 9/21 Lecture 5: Message authentication codes Notes • Video
Wed 9/23 Lecture 6: Digital signatures Notes • Video
HW 2 due DownloadSubmit
Fri 9/25 Lab 4 on Reading NBFMG sections 1.3–1.4, pages 37–42 Worksheet
Mon 9/28 Lecture 7: Key exchange Notes • Video
Wed 9/30 HW 3 due DownloadSubmit

Unit 2: Protecting data availability

Learning Objectives: Explain the components of a cryptocurrency including transactions, mining algorithms, and the blockchain data structure. Describe the goal of decentralization and distributed consensus abstractly, in any scenario needing data liveness and safety.

Date Class Links
Wed 9/30 Lecture 8: Bitcoin overview Notes • Video
Fri 10/2 Lab 5 on Reading NBFMG sections 2.1–2.3, pages 51–61 Worksheet
Mon 10/5 Exam 1 on Unit 1
Wed 10/7 Lecture 9: Proof of work mining Notes • Video
Fri 10/9 Lab 6 on Reading NBFMG sections 2.4–3.1 and 3.4–3.5, pages 56–78 and 88–95 Worksheet
Mon 10/12 No lecture
Tue 10/13 Lecture 10: Bitcoin security Notes • Video
Wed 10/14 Lecture 11: Byzantine broadcast Notes • Video
HW 4 due DownloadSubmit
Fri 10/16 Lab 7 on Reading Shi sections 5–6, pages 27–38 Worksheet
Mon 10/19 Lecture 12: Synchronous blockchains Notes • Video
Wed 10/21 HW 5 due DownloadSubmit

Unit 3: Protecting data confidentiality

Learning Objectives: Explain how encryption protects data on the Internet, and the role of one-time pads and (pseudo)randomness within authenticated encryption. Describe how secure messaging applications provide end-to-end encryption, as well as pre- and post-compromise security.

Date Class Links
Wed 10/21 Lecture 13: Secret splitting and one-time pads Notes • Video
Fri 10/23 Lab 8 on Reading Rosulek section 1, pages 10–17 Worksheet
Mon 10/26 Exam 2 on Unit 2
Wed 10/28 Lecture 14: Authenticated encryption Notes • Video
HW 6 due DownloadSubmit
Fri 10/30 Lab 9 on Reading Aumasson, pages 7–12 Worksheet
Mon 11/2 Lecture 15: Disk encryption Notes • Video
Wed 11/4 Lecture 16: Signal’s double ratchet Notes • Video
HW 7 due DownloadSubmit
Fri 11/6 Lab 10 on Reading Signal’s double ratchet algorithm Worksheet
Mon 11/9 Lecture 17: Transport Layer Security Notes • Video
Wed 11/11 HW 8 due DownloadSubmit

Unit 4: Protecting data science

Learning Objectives: Describe how multi-party computation enables people to perform data science together, without data sharing. Explain how zero knowledge proofs allow people to participate in the digital economy while preserving their privacy. Engage with ethical, regulatory, and policy questions about the role of crypto toward addressing social challenges.

Date Class Links
Wed 11/11 Lecture 18: Secure multi-party computation Notes • Video
Fri 11/13 Lab 11 on Reading EKR sections 1.2–1.3, pages 7–14 Worksheet
Mon 11/16 Exam 3 on Unit 3
Wed 11/18 Lecture 19: Verifiable MPC Notes • Video
Fri 11/20 Lab 12 on Reading Lindell-Pinkas section 2.1, pages 4–9 Worksheet
Mon 11/23 Lecture 20: Zero knowledge proofs Notes • Video
HW 9 due DownloadSubmit
Wed 11/25 No lecture
Fri 11/27 No lab
Mon 11/30 Lecture 21: Faster & smaller ZK proofs Notes • Video
Wed 12/2 Lecture 22: Private cryptocurrencies Notes • Video
Fri 12/4 Lab 13 on Reading Blogs on ZK and succinct ZK Worksheet
Mon 12/7 Lecture 23: Crypto and elections Notes • Video
HW 10 due DownloadSubmit
Wed 12/9 Lecture 24: Crypto and the law Notes • Video
Fri 12/11 No lab, optional Reading MIT Media Lab blog post
Wed 12/16 Final Exam at 9–11am (per the BU Final Exam Schedule)