Ciphers are mathematical algorithms which transform an original plaintext message into a secret ciphertext. Understanding the various types of ciphers, such as symmetric and asymmetric, and their strengths and weaknesses is critical for understanding cryptography.