This week, our host Kyle Polich is joined by guest Tim Henderson from Google to talk about the computational complexity foundation of cryptography and the complexity issues that underlie the field of modern cryptography.

The fundamental task of cryptography is encryption. Cryptography has been around for a long time— it was used for thousands of years to hide secret messages that would be difficult for others to decipher. But the numerous methods of encryption devised over the years all seem to share one common characteristic- sooner or later they'd get broken. But everything changed with the emergence of modern cryptography, whereby computational complexity was used to argue about the security of the encryption schemes. And unlike older notions of cryptography, modern cryptographic schemes involve much more than just encryption.

The introduction of the computer brought about the need for automated tools to protect files and other information that would stored on the computer. Cryptography allow people to have confidence in the digital world, in which the integrity of the computer network and its transmitted data are protected.

But how confident should we be in this enciphering? Our guest Tim says that it all comes down to the mathematical problems that are used to do these public key cryptographic operations. Modern cryptographic systems are built on problems that are assumed to be computationally infeasible, which are problems that are computable but would require too many resources to actually compute. And these problems have a certain form, in that they are one-way functions. A one-way function is a function which is easy to compute but hard to invert. It is not known whether one-way functions exist. However, such functions can exist under a variety of assumption; for instance, one assumption is that factoring integers requires time super-polynomial time in the integer's bit-length to solve in the average case. Hence, one-way functions are more of a theoretical construct than an actual mathematical construct, and they can fit the criterion of easy and hard computations without basing itself with exact definitions. How do one-way functions apply to the cryptographer? Well, they can be used to define secure cryptosystems.

So what does it mean for encryption to be secure? Should we trust modern cryptography? Tune in to learn more! Additional topics discussed during the show include: the class of bounded probability polynomial time problems (BPP), the relationship between the security of digital cryptography and the P vs. NP question, public key schemes, and more.

Cryptography and Complexity - Tim Henderson's article that inspired this episode

*Tim Henderson*

Tim Henderson holds a B.S. and Ph.D. in Computer Science from Case Western Reserve University. He currently works as a software engineer at Google, Inc. Tim's research areas are in data mining, software engineering, and program analysis. When he's away from the computer, he likes to run, hike, camp, read and occasionally paint.