# Symmetric key algorithm

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

The encryption key is trivially related to the decryption key, in that they may be identical or there is a simple transform to go 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 information link.

Other terms for symmetric-key encryption are single-key and private-key encryption. Use of the latter term can sometimes conflict with the term private key in public key cryptography.

 Contents

## Types of symmetric-key algorithms

Symmetric-key algorithms can be divided into stream ciphers and block ciphers. Stream ciphers encrypt the bits of the message 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; the Advanced Encryption Standard algorithm approved by NIST in December 2001 uses 128-bit blocks.

## Speed

Symmetric-key algorithms are generally much faster to execute electronically than asymmetric key algorithms. The disadvantage of symmetric-key algorithms is the requirement of a shared secret key, with one copy at each end. Since keys are subject to discovery by a cryptographic adversary, they need to be changed often and kept secure during distribution and in service. The consequent requirement to choose, distribute and store keys without error and without loss is difficult. In practice, it is a very severe problem, and has never been adequately solved. Given the presence of humans in the distribution mechanisms, there is no prospect of an easy solution.

## Reversibility

Cryptographic functions must, by definition, be reversible.

To achieve this for symmetric-key algorithms a simple scheme is usually employed:

The bits to be encoded are split into two parts P1 and P2. P1 is unchanged, P2 is added (or exclusive-or'd) to a one-way hashed function f (varied by a key or 'salt') of P1. The two results are then swapped over. This is called 'a round'.

i.e. round(p1, p2, key, f) -> p1', p2' such that:

p1' = p2 + f(p1, key)

p2' = p1

Since the output of the round still has access to the value P1, and the addition is a reversible operation, then this operation may be undone.

Whilst a single round is very insecure, as p1 is unchanged, repeating this operation more than once, often with different functions and keys, greatly improves the strength.

To decrypt multiple rounds, each round is undone in reverse order, hence for decryption the keys are applied in reverse order.

After sufficient rounds (typically between 8 and 64) have been performed, the output is very scrambled until, ideally brute force attacks are the quickest way to crack the code.

## Attacks on symmetric cyphers

Symmetric cyphers are often susceptible to known-plaintext attacks, chosen plaintext attacks, differential cryptanalysis and linear cryptanalysis. Careful construction of the functions for each round can make these attacks difficult to perform.de:Symmetrisches Kryptosystem es:Criptografía simétrica fr:Cryptographie symétrique it:Crittografia simmetrica lt:Simetrinio rakto kriptografija nl:Symmetrische cryptografie pl:Kryptografia symetryczna pt:Criptografia simétrica ja:共通鍵暗号

• Art and Cultures
• Countries of the World (http://www.academickids.com/encyclopedia/index.php/Countries)
• Space and Astronomy