Crypto for Data Science

Fall 2026

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 first half of the course investigates cryptocurrencies, the blockchain technology underpinning them, and the incentives for each participant. The second half of the course focuses on privacy and anonymity using advanced tools from cryptography.

This course follows Boston University’s academic conduct code and policies on plagiarism, generative AI use, absence for religious observance, and accommodations.

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.

Unit 1 – Protecting Data Integrity (authenticity without trust)

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 Session Details
Wed 9/2 Lecture 1: Course overview Notes • Video
Fri 9/4 Lab 1: Bytestrings in Python
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: Commitments and (Pseudo)randomness Notes • Video
HW 1 due Download • Submit
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 Download • Submit
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 Download • Submit

Unit 2 – Protecting Data Availability (communication without censorship)

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 Session Details
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 Download • Submit
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 Download • Submit

Unit 3 – Protecting Data Confidentiality (messaging without meeting)

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 Session Details
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 Download • Submit
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 Download • Submit
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 Download • Submit

Unit 4 – Protecting Data Science (analyzing without sharing)

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 Session Details
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 Download • Submit
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 Download • Submit
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)