# Symmetric Cryptography

*Symmetric cryptography* consists in using identical cryptographic keys for both decryption of ciphertext and encryption of plaintext. An early, world-wide known example of its usage was the enigma cipher used by Germans during the Second World War. Mathematically, it relies on building invertible functions from functions that are, themselves, not invertible.

Its advantages over asymmetric cryptography include fixed overhead and better performance (by orders of magnitude). Also, it is much stronger than asymmetric cryptography *given the same key length*. The crucial disadvantage is obvious: both sides need to have the key, meaning that key distribution becomes an issue immediately. This is the reason symmetric cryptography is typically found in combination with asymmetric cryptography for the initial key transfer.

Typical examples of symmetric cyphers: Advanced Encryption Standard (AES, sometimes known as Rijndael), Serpend, Blowish or its successor, Twofish. Check them out online at http://bitwiseshiftleft.github.io/sjcl/demo/.