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.