The intersection of cryptography and complexity theory is where some of the most fascinating problems in computer science reside.