Various number theoretic problems, such as factoring of integers, primality testing, discrete logarithms and quadratic residuocity, are used as a basis for public key cryptosystems. The security of such crpytosystems therefore depends on the complexity of these problems. A deeper understanding of the complexity of these problems can help in reasoning about the security of the cryptosystems.

Currently, proving the correctness and security of cryptoprotocols is hard. I am working on general techniques that can be applied to constructing protocols for which it is possible to prove things about.