16. Tools from Complexity Theory

16.1. A bit of number theory

16.2. Public key cryptography

16.3. The RSA cipher

16.4. Digital signatures

16.5. Discrete square roots

16.6. Zero-knowledge proofs