Cryptography mostly concerns itself with secure communications and includes hiding information from adversaries and authentication of individuals.
Hashes, asymmetric encryption, and symmetric encryption are often used together to allow for secure communications. In popular cryptographic systems, like PGP, OTR, and VPNs, different algorithms are often used together, including:
Hash functions that allow us to identify files, text, and keys conveniently
Asymmetric encryption functions to securely exchange encryption keys over insecure channels
Symmetric encryption functions to efficiently encrypt large amounts of data
Key exchange functions to securely negotiate encryption keys over insecure channels
Zero-knowledge proofs are encryption schemes used to prove that you know something without revealing what it is. For example, you can show without a doubt that you know the answer to a puzzle without actually disclosing the solution.
Zero-knowledge proofs are still relatively new and have only found a common use-case recently in cryptocurrencies.
