Below, I describe some of the major themes of my research. Click on the headings for more details.

Lattice-Based Cryptography

Lattice-based cryptography is one of the leading candidates for post-quantum cryptography. A major focus of my work has been on constructing new cryptographic primitives such as zero-knowledge proof systems, watermarking, and more, from standard lattice assumptions.

Proof Systems

A proof system is a two-party protocol between a prover and a verifier, where the goal of the prover is to convince the verifier that some statement is true. In this project, we study and construct new proof systems that satisfy special properties such as zero-knowledge (where we require that the proof does not reveal anything more about the statement other than its truth) and succinctness (where proofs are short and can be verified quickly).

Watermarking and Traitor Tracing

A software watermarking scheme enables a user to embed a tag (e.g., a developer's name or a serial number) into a program while preserving the program's functionality. Moreover, it should be difficult to remove the watermark from the resulting program without destroying its functionality. Closely related is the notion of traitor tracing, which are cryptographic schemes that enable users or authorities to trace the source of compromised cryptographic keys and programs. Both of these primitives are useful for protecting against unauthorized use or redistribution of digital content. In this project, we study and propose new constructions of these primitives.

Genome Privacy

Patient genomes are typically interpretable only in the context of other genomes. However, genome sharing opens individuals up to possible discrimination and identification. Some of my research has focused on developing cryptographic methods to protect the privacy of a patient's genome while still enabling useful computations across multiple genomes.

Privacy-Preserving Systems

Functionality and user privacy are often in tension with each other, especially when it comes to modern data-driven and cloud-based applications. Much of my research is on leveraging cryptographic tools and techniques to provide a balance between the need for privacy and the need for functionality. Examples include designing private discovery protocols for the Internet of Things, constructing private navigation systems, and building systems for privacy-preserving machine learning.

Private Constrained PRFs

A constrained pseudorandom function (PRF) is a PRF for which one can generate constrained keys that can only be used to evaluate the PRF on a subset of the domain. In this work, we introduce the notion of a private constrained PRF, which is a constrained PRF with the additional property that the constrained key also hides the constraint. In addition to giving constructions of private constrained PRFs, we also explore the connections between private constrained PRFs and other cryptographic primitives, such as watermarking and constrained invertible pseudorandom functions (IPFs).

Order-Revealing Encryption

An order-revealing encryption (ORE) scheme is an encryption scheme where there is a public function that can be used to compare ciphertexts. Because ORE enables comparisons on ciphertexts, it has many applications in searching over and sorting encrypted data. In this project, we design and implement several practical ORE schemes (based only on pseudorandom functions such as AES).

Foundations of Cryptography

This line of work studies new assumptions and approaches for constructing basic cryptographic primitives (e.g., pseudorandom functions) as well as the limitations (i.e., lower bounds) of using such primitives to construct more advanced cryptographic functionalities.

Functional Encryption

Functional encryption (FE) enables fine-grained access control of sensitive data. In an FE scheme, decryption keys are associated with functions. Decrypting an encryption of a message m using a secret key associated with a function f yields the function evaluation f(x), and nothing more about x. In this line of work, we explore the connections between different flavors of functional encryption and give new candidate constructions of functional encryption.

Fully Homomorphic Encryption

A fully homomorphic encryption system enables computations to be performed on encrypted data without needing to first decrypt the data. In this project, we provide an implementation of Brakerski's scale-invariant somewhat homomorphic encryption (SWHE) system [Bra12]. In addition, we examine several candidate applications of FHE and SWHE systems, such as performing statistical analysis on encrypted data or evaluating private database queries over an encrypted database.

Text Recognition in Natural Images

Reading text from natural images is a challenging problem that has received significant attention in recent years. Traditional systems in this area have generally relied on elaborate models incorporating carefully hand-engineered features or large amounts of prior knowledge. In this project, we take a different approach and instead, leverage the power of unsupervised feature learning in conjunction with deep, multi-layer neural networks in order to develop robust, high-performing modules for text recognition in natural images.