Cryptography is the science of keeping information secret. It allows for confidentiality, authentication, integrity, and nonrepudiation. There are two main types of encryption algorithms: symmetric which uses a single shared key, and asymmetric which uses a public/private key pair. Hashing algorithms are used to verify integrity rather than keep information secret. Common symmetric algorithms include AES and DES, while RSA and DSA are examples of asymmetric algorithms. Cryptanalysis involves attempting to break or bypass cryptography. Cryptography should be used anywhere secret communication or stored data is needed such as in SSL, VPNs, and encrypted file systems.