Blockchains and Cryptocurrencies
Fall 2024 · Applications · Matthew Green
This course will introduce students to cryptocurrencies and the main underlying technology of blockchains. The course will start with the relevant background in cryptography and then proceed to cover the recent advances in the design and applications of blockchains. This course should primarily appeal to students who want to conduct research in this area or wish to build new applications on top of blockchains. It should also appeal to those who have a casual interest in this topic or are generally interested in cryptography. Students are expected to have mathematical maturity.
Computer Systems Fundamentals
Summer 2024 · Undergraduate · Brennon Brimhall and David Hovemeyer
We study the design and performance of a variety of computer systems from simple 8-bit micro-controllers through 32/64-bit RISC architectures all the way to ubiquitous x86 CISC architecture. We’ll start from logic gates and digital circuits before delving into arithmetic and logic units, registers, caches, memory, stacks and procedure calls, pipelined execution, super-scalar architectures, memory management units, etc. Along the way we’ll study several typical instruction set architectures and review concepts such as interrupts, hardware and software exceptions, serial and other peripheral communications protocols, etc. A number of programming projects, frequently done in assembly language and using various processor simulators, round out the course.
Practical Cryptographic Systems
Spring 2024 · Software · Matthew Green
This semester-long course will teach systems and cryptographic design principles by example: by studying and identifying flaws in widely-deployed cryptographic products and protocols. Our focus will be on the techniques used in practical security systems, the mistakes that lead to failure, and the approaches that might have avoided the problem. We will place a particular emphasis on the techniques of provable security and the feasibility of reverse-engineering undocumented cryptographic systems.
Advanced Topics in Cryptography
Spring 2023 · Elective · Abhishek Jain
This course will focus on advanced cryptographic topics with an emphasis on open research problems and student presentations.
Blockchains and Cryptocurrencies
Spring 2023 · Theory · Abhishek Jain
This course will introduce students to cryptocurrencies and the main underlying technology of Blockchains. The course will start with the relevant background in cryptography and then proceed to cover the recent advances in the design and applications of blockchains. This course should primarily appeal to students who want to conduct research in this area or wish to build new applications on top of blockchains. It should also appeal to those who have a casual interest in this topic or are generally interested in cryptography. Students are expected to have mathematical maturity.
Modern Cryptography
Fall 2022 · Theory · Abhishek Jain
Modern Cryptography includes seemingly paradoxical notions such as communicating privately without a shared secret, proving things without leaking knowledge, and computing on encrypted data. In this challenging but rewarding course we will start from the basics of private and public key cryptography and go all the way up to advanced notions such as zero-knowledge proofs, functional encryption and program obfuscation. The class will focus on rigorous proofs and require mathematical maturity.
Advanced Topics in Secure and Censorship-Resistant Communications
Spring 2021 · Systems · Matthew Green
Topics will vary from year to year, but will focus on applied cryptography and communications, focused on the development of secure and uncensorable communication mechanisms for communities at risk. This course will include topics such as: communication protocol design and analysis, blockchain-based protocols, anonymous communication, cryptographic backdoors, and other topics. Emphasis in this course is on understanding how cryptographic issues impact real systems, while maintaining an appreciation for grounding the work in fundamental science. The course will consist of in-class workshops and interactive discussions. There will be programming assignments and a course project with real world impact. Students will also be expected to read assigned papers and to present at least one research paper and lead a discussion on it.
Practical Cryptographic Systems
Spring 2021 · Software · Matthew Green
This semester-long course will teach systems and cryptographic design principles by example: by studying and identifying flaws in widely-deployed cryptographic products and protocols. Our focus will be on the techniques used in practical security systems, the mistakes that lead to failure, and the approaches that might have avoided the problem. We will place a particular emphasis on the techniques of provable security and the feasibility of reverse-engineering undocumented cryptographic systems.
Practical Cryptographic Systems
Fall 2021 · Software · Matthew Green and Alishah Chator
This semester-long course will teach systems and cryptographic design principles by example: by studying and identifying flaws in widely-deployed cryptographic products and protocols. Our focus will be on the techniques used in practical security systems, the mistakes that lead to failure, and the approaches that might have avoided the problem. We will place a particular emphasis on the techniques of provable security and the feasibility of reverse-engineering undocumented cryptographic systems.
Modern Cryptography
Fall 2020 · Theory · Abhishek Jain
Modern Cryptography includes seemingly paradoxical notions such as communicating privately without a shared secret, proving things without leaking knowledge, and computing on encrypted data. In this challenging but rewarding course we will start from the basics of private and public key cryptography and go all the way up to advanced notions such as zero-knowledge proofs, functional encryption and program obfuscation. The class will focus on rigorous proofs and require mathematical maturity.
Blockchains and Cryptocurrencies
Fall 2020 · Theory · Matthew Green
This course will introduce students to cryptocurrencies and the main underlying technology of Blockchains. The course will start with the relevant background in cryptography and then proceed to cover the recent advances in the design and applications of blockchains. This course should primarily appeal to students who want to conduct research in this area or wish to build new applications on top of blockchains. It should also appeal to those who have a casual interest in this topic or are generally interested in cryptography. Students are expected to have mathematical maturity.
Practical Cryptographic Systems
Spring 2020 · Software · Matthew Green
This semester-long course will teach systems and cryptographic design principles by example: by studying and identifying flaws in widely-deployed cryptographic products and protocols. Our focus will be on the techniques used in practical security systems, the mistakes that lead to failure, and the approaches that might have avoided the problem. We will place a particular emphasis on the techniques of provable security and the feasibility of reverse-engineering undocumented cryptographic systems.
Advanced Topics in Cryptography
Spring 2020 · Elective · Abhishek Jain
This course will focus on advanced cryptographic topics with an emphasis on open research problems and student presentations.
Modern Cryptography
Fall 2019 · Theory · Abhishek Jain
Modern Cryptography includes seemingly paradoxical notions such as communicating privately without a shared secret, proving things without leaking knowledge, and computing on encrypted data. In this challenging but rewarding course we will start from the basics of private and public key cryptography and go all the way up to advanced notions such as zero-knowledge proofs, functional encryption and program obfuscation. The class will focus on rigorous proofs and require mathematical maturity.
Selected Topics in Applied Cryptography
Fall 2019 · Elective · Matthew Green
This course will focus on advanced cryptographic topics with an emphasis on open research problems and student presentations.
Advanced Topics in Applied Cryptography
Fall 2019 · Theory · Matthew Green
This course will focus on advanced cryptographic topics with an emphasis on open research problems and student presentations.
Blockchains and Cryptocurrencies
Spring 2019 · Theory · Matthew Green and Abhishek Jain
This course will introduce students to cryptocurrencies and the main underlying technology of Blockchains. The course will start with the relevant background in cryptography and then proceed to cover the recent advances in the design and applications of blockchains. This course should primarily appeal to students who want to conduct research in this area or wish to build new applications on top of blockchains. It should also appeal to those who have a casual interest in this topic or are generally interested in cryptography. Students are expected to have mathematical maturity.
Practical Cryptographic Systems
Fall 2018 · Software · Matthew Green
This semester-long course will teach systems and cryptographic design principles by example: by studying and identifying flaws in widely-deployed cryptographic products and protocols. Our focus will be on the techniques used in practical security systems, the mistakes that lead to failure, and the approaches that might have avoided the problem. We will place a particular emphasis on the techniques of provable security and the feasibility of reverse-engineering undocumented cryptographic systems.
Modern Cryptography
Fall 2018 · Theory · Abhishek Jain
Modern Cryptography includes seemingly paradoxical notions such as communicating privately without a shared secret, proving things without leaking knowledge, and computing on encrypted data. In this challenging but rewarding course we will start from the basics of private and public key cryptography and go all the way up to advanced notions such as zero-knowledge proofs, functional encryption and program obfuscation. The class will focus on rigorous proofs and require mathematical maturity.
Selected Topics in Applied Cryptography
Fall 2018 · Elective · Matthew Green
This course will focus on advanced cryptographic topics with an emphasis on open research problems and student presentations.
Advanced Topics in Applied Cryptography
Spring 2018 · Theory · Matthew Green
This course will focus on advanced cryptographic topics with an emphasis on open research problems and student presentations.
Blockchains and Cryptocurrencies
Spring 2018 · Theory · Abhishek Jain
This course will introduce students to cryptocurrencies and the main underlying technology of Blockchains. The course will start with the relevant background in cryptography and then proceed to cover the recent advances in the design and applications of blockchains. This course should primarily appeal to students who want to conduct research in this area or wish to build new applications on top of blockchains. It should also appeal to those who have a casual interest in this topic or are generally interested in cryptography. Students are expected to have mathematical maturity.
Practical Cryptographic Systems
Fall 2017 · Software · Matthew Green
This semester-long course will teach systems and cryptographic design principles by example: by studying and identifying flaws in widely-deployed cryptographic products and protocols. Our focus will be on the techniques used in practical security systems, the mistakes that lead to failure, and the approaches that might have avoided the problem. We will place a particular emphasis on the techniques of provable security and the feasibility of reverse-engineering undocumented cryptographic systems.
Modern Cryptography
Fall 2017 · Theory · Abhishek Jain
Modern Cryptography includes seemingly paradoxical notions such as communicating privately without a shared secret, proving things without leaking knowledge, and computing on encrypted data. In this challenging but rewarding course we will start from the basics of private and public key cryptography and go all the way up to advanced notions such as zero-knowledge proofs, functional encryption and program obfuscation. The class will focus on rigorous proofs and require mathematical maturity.