an encryption key to encrypt the data (plaintext);
an encryption algorithm that, with the encryption key, transforms the plaintext into
ciphertext;
a decryption key to decrypt the ciphertext;
a decryption algorithm that, with the decryption key, transforms the ciphertext back into
plaintext.