With the growing demand for security and privacy, the field of cryptography has expanded rapidly in the past three decades. Beyond the original goal of ensuring secure communication, innovative and powerful concepts and primitives have emerged that enable new secure paradigm of computing. In this course, we will survey some of the exciting new developments in private database, computation over encrypted data, secure computation without trusted third party, and verifiable outsourcing of computation.
The basic nature of cryptography is all-or-nothing, protecting the privacy of honest individuals against the evil. Core cryptographic primitives, such as, encryption, hash functions, signatures etc., are developed and continuously improved to ensure data confidentiality, integrity and authenticity. A fundamental question that follows is how to extract utility from the heavily securely guarded data? Can we still compute over them? Can we collaborate across boundaries of trust? Can we support dynamic data, maintain efficiency and flexibility? We will see examples of new cryptographic primitives—Oblivious RAM, Searchable Encryption, Fully Homomorphic Encryption, Secure Multi-Party Computation, and Universal Arguments—that achieve both security and utility in some scenarios, and brainstorm about other scenarios where security and utility remain in conflict.