Encryption is the process of turning readable data (plaintext) into an unreadable form (ciphertext). Only someone with the right key can turn the ciphertext back into plaintext via decryption.

There are two main types of encryption. Symmetric encryption uses the same key to encrypt and decrypt. By contrast, asymmetric encryption uses one key to encrypt and another key to decrypt. However, because asymmetric encryption is typically orders of magnitude more expensive than symmetric encryption, hybrid encryption is commonly used in practice.

Overview of Encryption Methods

Symmetric

TypeFormulaWhat it Achieves
Symmetric encryptionC = Enc(Key, Message)
M = Dec(Key, C)
Confidentiality
message authentication codeT = Tag(Key, Message)
Verify T
Integrity, Authenticity
authenticated-encryptionC, T = Enc(Key, Message)
Dec(Key, C, T)
Confidentiality, Integrity, Authenticity
pseudorandom generatorR = PRG(Key)Key expansion
pseudorandom functionR = PRF(Key, input)Deterministic randomness

Asymmetric

TypeFormulaWhat it Achieves
asymmetric encryptionC = Enc(PubKey, Message)
M = Dec(PriKey, Message)
Confidentiality
digital signaturesT = Sign(PriKey, Message)
Verify(PubKey, Message, T)
Integrity, Authenticity,
Non-repudiation