## Definition

Symmetric encryption is a cryptographic algorithm utilizing a single key for encrypting and decrypting a message.
Two different fundamental modes of encryption the message exist.

With a block based algorithm the message is split into blocks of equal size.
Each block is encrypted with a with a block specific random, which is derived from the initial key.

A stream cipher algorithm encrypts the message one byte at a time.
Based on a pseudo-random number generator the key stream is generated.
This stream is XOR-ed with the message bytes to generate the cipher text.
The initial state of the generator is based on the key.

The following two aspects have to be considered when talking about symmetric encryption.

**Key Distribution** - the key is required for decryption and encryption.
Consequently, all involved parties have to know the key.**Performance** - symmetric encryption is faster than asymmetric encryption.
One major advantage are the simple bit based operations required for symmetric encryption.
These can be implemented in hardware quite well and therefore perform quite well.

The ancient roman Caesar cipher can be seen as a first example of symmetric encryption.
Another classical example is the Vigenère cipher suite.
Some modern symmetric encryption algorithms are RC4, 3DES and AES.

## Additional Resources