I work on applying mathematical proof techniques to reason about software security. My research focuses on proving that a security-critical program demonstrates end-to-end security by modeling programs in a formal system (e.g. first-order logic) and using formal analysis (e.g. theorem proving, type checking) to prove an absence of errors. Specifically, I am using these techniques to build provably correct security-critical applications to run on trusted hardware such as Intel SGX. I am being advised by Prof. Sanjit Seshia at UC Berkeley, where I am currently pursuing my PhD in Electrical Engineering and Computer Science.

In reverse chronological order:

Moat: Verifying Confidentiality Properties of Enclave Programs (CCS 2015) [slides]

Automatic Rootcausing for Program Equivalence Failures (CAV 2015)

Formal Modeling and Verification of CloudProxy (VSTTE 2014)

Symbolic Software Model Validation (MEMOCODE 2013) [slides]

Verification with Small and Short Worlds (FMCAD 2012) [slides]

My undergraduate research in design automation resulted in the following publications: