# Cryptography **Cryptography** is the study of encryption principles and/or methods. | Key Term | | | --------------------- | --------------------------------------------------------------------- | | *plaintext* | the original message | | *ciphertext* | the encrypted message | | *cipher* | the encryption algorithm for transforming plaintexxt to ciphertext | | *key(s)* | info used by cipher algorithm should be known only to sender/receiver | | *enchipher* (encrypt) | converting plaintext to ciphertext | | *decipher* (decrypt) | recovering plaintext from ciphertext | | *crypto* | | An **attack vector** is a particular method for executing an attack. $C=E_K(M) \text{ or } C=E(k, M)$ where: - $M$ represents the plaintext message - $C$ represents the ciphertext - $E$ represents the encryption algorithm/function - $K$ is the key ## Encryption - Public-Key Encryption - Use a different key for decryption than for encryption - The keys are related mathematically ### Ciphers > See also: > - [[Ciphers]] ### Hashing Algorithms > See also: > - [[Hash Functions]] - Hashing algorithms are often tuned to the data that is being hashed **Requirements:** - Collision resistance: prevent duplicate hash values ### Random Numbers **Requirements:** - True Randomness: Requires a [[Probability Distributions 1|uniform distribution]] where each value is equally likely - Independence **Shortcomings of Pseudo-Random Generators** - --- - [ ] Digital Signatures ## Public-Key Cryptography - [ ] Diffie-Hellman Key Exchange - [ ] RSA Encryption ## Private-Key Cryptography