## Symmetric Algorithms

# Symmetric Algorithms

**Symmetric-key algorithms** are a class of algorithms for cryptography that use trivially related, often identical, cryptographic keys for both decryption and encryption.

The encryption key is simply related to the decryption key, in that they may be identical or there is a simple relation between the two keys. The keys, in practice, represent a shared secret between two or more parties that can be used to maintain a private secure connection.

Other terms for symmetric-key encryption are **secret-key**, **single-key**, **shared-key**, **one-key** and eventually **private-key** encryption. Make sure that the use of the latter term does conflict with the term *private key* in public-key cryptography.

Symmetric-key algorithms can be divided into stream ciphers and block ciphers. Stream ciphers encrypt the bits of the message as a stream of bits one at a time, and block ciphers take a number of bits and encrypt them as a single unit. Blocks of 64 bits have been commonly used; though modern ciphers like the Advanced Encryption Standard algorithm uses 128-bit blocks.

Symmetric ciphers have historically been susceptible to known-plaintext attacks, chosen plaintext attacks, differential cryptanalysis and linear cryptanalysis.

Symmetric-keys are generated using the process of cryptographic keys generation, though it is recommended to use highly entropy systems to generate the initial seed.

Examples of popular symmetric cyphers include Twofish, Serpent, AES (aka Rijndael), Blowfish, CAST5, RC4, TDES, and IDEA.

## Let's hear what you have to say.