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
Type | Formula | What it Achieves |
---|---|---|
Symmetric encryption | C = Enc(Key, Message) M = Dec(Key, C) | Confidentiality |
message authentication code | T = Tag(Key, Message) Verify T | Integrity, Authenticity |
authenticated-encryption | C, T = Enc(Key, Message) Dec(Key, C, T) | Confidentiality, Integrity, Authenticity |
pseudorandom generator | R = PRG(Key) | Key expansion |
pseudorandom function | R = PRF(Key, input) | Deterministic randomness |
Asymmetric
Type | Formula | What it Achieves |
---|---|---|
asymmetric encryption | C = Enc(PubKey, Message) M = Dec(PriKey, Message) | Confidentiality |
digital signatures | T = Sign(PriKey, Message) Verify(PubKey, Message, T) | Integrity, Authenticity, Non-repudiation |