CMSC 818J: Design Secure Systems with Cryptography
Instructor
|
Elaine Shi
|
Location
|
CSI 2107
|
Lecture Times
|
TuTh 3:30pm-4:45pm
|
Course Description
The class focuses on practical use of cryptography in securing cloud computing and distributed systems. The class lies at the intersection of cryptography and secure systems. The course is structured to start from cryptographic primitives, and then cover secure system building using these cryptographic primitives.
This class may be of interest to both theory and systems students. Formal security definitions and proofs are NOT required for the course.
However, students are expected to intuitively reason about a system or a protocol's security
and privacy guarantees.
Cryptographic primitives:
-- Efficient constructions for securing cloud computing, including authenticated data structures, proofs of retrievability, searchable encryption, oblivious RAM, efficient constructions for set operations.
-- Background on general techniques for secure computation, including garbled circuits, fully-homomorphic encryption, verified computation.
Building secure systems:
-- Efficient implementations of general secure computation and verified computation
-- Programming language techniques for making cryptography more efficient, and more usable by non-security experts.
-- Use of secure hardware in secure computation, including TPMs and Trusted Computing, secure processor technology, PUFs, etc.
-- Case study: Securing miscellaneous distributed systems, e.g., securing BGP, Bitcoin, encryption-based access control and attribute-based encryption, privacy-preserving advertising.
Syllabus
A tentative syllabus is linked here .
Grading Policy
10% Class participation
15% 1 midterm
15% Reading notes and critique
15% Short presentation
45% Project
Prerequisite
I try to make the class accessible to students who have not taken security
or cryptography before.
The above information is subject to change.