Below are some of the projects I have worked on. Click on the headings to bring up more details.

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 line of 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).

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 both explore the connections between different flavors of functional encryption as well as give new candidate constructions of functional encryption.

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. The first constructions of order-revealing encryption relied on either multilinear maps or indistinguishability obfuscation, and thus, are unlikely to be practical in the foreseeable future. This project initiates the study of more practical order-revealing encryption schemes that provide a security/efficiency tradeoff. We give several constructions and implementations of highly practical ORE schemes (based only on pseudorandom functions such as AES). We also explore ways of using order-revealing encryption in encrypted database applications in a way that is robust against inference attacks.

Fully Homomorphic Encryption

A fully homomorphic encryption system enables computations to be performed on encrypted data without needing to first decrypt the data. Such cryptosystems have natural applications in secure, privacy-preserving computation as well as many other areas. Since Gentry's breakthrough work on fully homomorphic encryption (FHE) [Gen09], there has been much excitement and attention devoted towards developing practical FHE systems. 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.