All Topics  
Symmetric-key algorithm

 

   Email Print
   Bookmark   Link






 

Symmetric-key algorithm



 
 
Symmetric-key algorithms are a class of algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
s for cryptography
Cryptography

Cryptography is the practice and study of hiding information. In modern times cryptography is considered a branch of both mathematics and computer science and is affiliated closely with information theory, computer security and engineering....
 that use trivially related, often identical, 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
Shared secret

In cryptography, a shared secret is a piece of data only known to the parties involved in a secure communication. The shared secret can be a password, a passphrase, a big number or an array of randomly chosen bytes....
 between two or more parties that can be used to maintain a private information link.

Other terms for symmetric-key encryption are secret-key, single-key, shared-key, one-key and eventually private-key encryption.






Discussion
Ask a question about 'Symmetric-key algorithm'
Start a new discussion about 'Symmetric-key algorithm'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Symmetric-key algorithms are a class of algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
s for cryptography
Cryptography

Cryptography is the practice and study of hiding information. In modern times cryptography is considered a branch of both mathematics and computer science and is affiliated closely with information theory, computer security and engineering....
 that use trivially related, often identical, 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
Shared secret

In cryptography, a shared secret is a piece of data only known to the parties involved in a secure communication. The shared secret can be a password, a passphrase, a big number or an array of randomly chosen bytes....
 between two or more parties that can be used to maintain a private information link.

Other terms for symmetric-key encryption are secret-key, single-key, shared-key, one-key and eventually private-key encryption. Use of the latter term does conflict with the term private key in public-key cryptography
Public-key cryptography

Public-key cryptography is a method for secret communication between two parties without requiring an initial key exchange of secret key. It can also be used to create digital signature....
.

Types of symmetric-key algorithms

Symmetric-key algorithms can be divided into stream cipher
Stream cipher

In cryptography, a stream cipher is a symmetric key algorithm cipher where plaintext bits are combined with a pseudorandom cipher bit stream , typically by an exclusive-or operation....
s and block cipher
Block cipher

In cryptography, a block cipher is a symmetric key algorithm cipher which operates on fixed-length groups of bits, termed blocks, with an unvarying transformation....
s. 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
Advanced Encryption Standard

In cryptography, the Advanced Encryption Standard is an encryption standard adopted by the Federal government of the United States. The standard comprises three block ciphers, AES-128, AES-192 and AES-256, adopted from a larger collection originally published as Rijndael. Each AES cipher has a 128 bit block size, with key sizes of 128...
 algorithm approved by NIST in December 2001 uses 128-bit blocks.

Some examples of popular and well-respected symmetric algorithms include Twofish
Twofish

In cryptography, Twofish is a Symmetric-key algorithm block cipher with a block size of 128 bits and key sizes up to 256 bits. It was one of the five finalists of the Advanced Encryption Standard process, but was not selected for standardisation....
, Serpent
Serpent (cipher)

Serpent is a symmetric key block cipher which was a finalist in the Advanced Encryption Standard process, where it came second to Rijndael. Serpent was designed by Ross Anderson, Eli Biham, and Lars Knudsen....
, AES
Advanced Encryption Standard

In cryptography, the Advanced Encryption Standard is an encryption standard adopted by the Federal government of the United States. The standard comprises three block ciphers, AES-128, AES-192 and AES-256, adopted from a larger collection originally published as Rijndael. Each AES cipher has a 128 bit block size, with key sizes of 128...
 (Rijndael), Blowfish
Blowfish (cipher)

In cryptography, Blowfish is a key ed, symmetric key algorithm block cipher, designed in 1993 by Bruce Schneier and included in a large number of cipher suites and encryption products....
, CAST5, RC4
RC4

In cryptography, RC4 is the most widely-used software stream cipher and is used in popular protocols such as Secure Sockets Layer and Wired Equivalent Privacy ....
, TDES
Triple DES

In cryptography, Triple DES is a block cipher formed from the Data Encryption Standard cipher by using it three times....
, and IDEA
International Data Encryption Algorithm

In cryptography, the International Data Encryption Algorithm is a block cipher designed by Xuejia Lai and James Massey of ETH Zurich and was first described in 1991....
.

Symmetric vs. asymmetric algorithms


Unlike symmetric algorithms, asymmetric key algorithms use a different key for encryption than for decryption. I.e., a user knowing the encryption key of an asymmetric algorithm can encrypt messages, but cannot derive the decryption key and cannot decrypt messages encrypted with that key. A short comparison of these two types of algorithms is given below:

Speed


Symmetric-key algorithms are generally much less computationally intensive than asymmetric key algorithms. In practice, asymmetric key algorithms are typically hundreds to thousands times slower than symmetric key algorithms.

Key management

Main article: Key management
Key management

Key management is a term used to describe two different fields; cryptography, and Key management within building or campus access control....
One disadvantage of symmetric-key algorithms is the requirement of a shared secret key, with one copy at each end. In order to ensure secure communications between everyone in a population of n people a total of n(n − 1)/2 keys are needed, which is the total number of possible communication channels. To limit the impact of a potential discovery by a cryptographic adversary, they should be changed regularly and kept secure
Secure channel

In cryptography, a secure channel is a way of transferring data that is resistant to interception and tampering.A confidential channel is a way of transferring data that is resistant to interception, but not necessarily resistant to tampering....
 during distribution and in service. The process of selecting, distributing and storing keys is known as key management
Key management

Key management is a term used to describe two different fields; cryptography, and Key management within building or campus access control....
, and is difficult to achieve reliably and securely.

Hybrid cryptosystem

Main article: hybrid cryptosystem
Hybrid cryptosystem

In cryptography, public-key cryptography are convenient in that they do not require the sender and receiver to share a common secret in order to communicate securely ....
In modern cryptosystem
Cryptosystem

There are two different meanings of the word cryptosystem. One is used by the cryptographic community, while the other is the meaning understood by the public....
s designs, both asymmetric (public key) and symmetric algorithms are used to take advantage of the virtues of both. Asymmetric algorithms are used to distribute symmetric-keys at the start of a session. Once a symmetric key is known to all parties of the session, faster symmetric-key algorithms using that key can be used to encrypt the remainder of the session. This simplifies the key distribution problem, because asymmetric keys only have to be distributed authentically
Authentication

Authentication is the act of establishing or confirming something as authentic, that is, that claims made by or about the subject are true....
, whereas symmetric keys need to be distributed in an authentic and confidential
Confidentiality

Confidentiality has been defined by the International Organization for Standardization as "ensuring that information is accessible only to those authorized to have access" and is one of the cornerstones of information security....
 manner.

Systems that use such a hybrid approach include SSL, PGP
Pretty Good Privacy

Pretty Good Privacy is a computer program that provides cryptographic privacy and authentication. PGP is often used for signing, encrypting and decrypting e-mails to increase the security of e-mail communications....
 and GPG
GNU Privacy Guard

GNU Privacy Guard is a free software alternative to the Pretty Good Privacy suite of cryptography software. GnuPG is compliant with RFC 4880, which is the current Internet Engineering Task Force standards track specification of OpenPGP....
, etc.

Cryptographic primitives based on symmetric ciphers


Symmetric ciphers are often used to achieve other cryptographic primitives than just encryption.

Encrypting a message does not guarantee that this message is not changed while encrypted. Hence often a message authentication code
Message authentication code

A cryptography message authentication code is a short piece of information used to authenticate a message.A MAC algorithm accepts as input a secret key and an arbitrary-length message to be authenticated, and outputs a MAC ....
 is added to a ciphertext to ensure that changes to the ciphertext will be noted by the receiver. Message authentication codes can be constructed from symmetric ciphers (e.g. CBC-MAC
CBC-MAC

In cryptography, a Cipher Block Chaining Message Authentication Code, abbreviated CBC-MAC, is a technique for constructing a message authentication code from a block cipher....
). However, these messages authentication codes cannot be used for non-repudiation
Non-repudiation

Non-repudiation is the concept of ensuring that a party in a dispute cannot repudiate, or refute the validity of a statement or contract. Although this concept can be applied to any transmission, including television and radio, by far the most common application is in the verification and trust of signatures....
 purposes.

Another application is to build hash functions from block ciphers. See one-way compression function for descriptions of several such methods.

Construction of symmetric ciphers

Main article: Feistel cipher
Feistel cipher

In cryptography, a Feistel cipher is a symmetric structure used in the construction of block ciphers, named after the German IBM cryptographer Horst Feistel; it is also commonly known as a Feistel network....


Many modern block ciphers are based on a construction proposed by Horst Feistel. Feistel's construction allows to build invertible functions from other functions that are themselves not invertible.

Security of symmetric ciphers


Symmetric ciphers have historically been susceptible to known-plaintext attack
Known-plaintext attack

The known-plaintext attack is an attack model for cryptanalysis where the attacker has samples of both the plaintext and its encryption version and is at liberty to make use of them to reveal further secret information such as Cryptographic key and Code book....
s, chosen plaintext attacks, differential cryptanalysis
Differential cryptanalysis

Differential cryptanalysis is a general form of cryptanalysis applicable primarily to block ciphers, but also to stream ciphers and cryptographic hash functions....
 and linear cryptanalysis
Linear cryptanalysis

In cryptography, linear cryptanalysis is a general form of cryptanalysis based on finding affine transformation approximations to the action of a cipher....
. Careful construction of the functions for each round can greatly reduce the chances of a successful attack.

Key generation

When used with asymmetric ciphers for key transfer, pseudorandom key generator
Cryptographically secure pseudorandom number generator

A cryptographically secure pseudo-random number generator is a pseudo-random number generator with properties that make it suitable for use in cryptography....
s are nearly always used to generate the symmetric cipher session keys. However, lack of randomness in those generators or in their initialization vector
Initialization vector

In cryptography, an initialization vector is a block of bits that is required to allow a stream cipher or a block cipher to be executed in any of several block cipher modes of operation to produce a unique stream independent from other streams produced by the same encryption key, without having to go through a re-keying process....
s is disastrous and has led to cryptanalytic breaks in the past. Therefore, it is essential that an implementation uses a source of high entropy for its initialization.