Popular Symmetric Encryption Algorithms

Symmetric key encryption algorithms (like AES) are designed by mathematicians and cryptographers with the idea, that it should be infeasible to decrypt the ciphertext without having the encryption key. This is true for the modern secure symmetric encryption algorithms (like AES and ChaCha20) and may be disputable or false for others, which are considered insecure symmetric encryption algorithms (like DES and RC4).

Some popular symmetric encryption algorithms are: AES, ChaCha20, CAST, Twofish, IDEA, Serpent, RC5, RC6, Camellia and ARIA. All these algorithms are considered secure (when configured and used correctly).

AES (Rijndael)

AES (Advanced Encryption Standard, also known as Rijndael) is the most popular and widely used symmetric encryption algorithm in the modern IT industry. This is because AES is proven to be highly secure, fast and well standardised and very well supported on virtually all platforms. AES is 128-bit block cipher and uses 128, 192 or 256-bit secret keys. It is usually used in a block mode like AES-CTR or AES-GCM to process streaming data. In the most block modes AES require also a random 128-bit initial vector (IV, nonce).

Rijndael was the winner in the AES competition organized by NIST (1997-2000) and it was announced officially under the name "AES" (the next official symmetric block cipher after DES). In 2001 AES was adopted as official recommendation by the US government and no significant weakness or attack was found since this moment.

The Rijndael (AES) algorithm is free for any use: public or private, commercial or non-commercial.

Salsa20 / ChaCha20

Salsa20, along with its improved variants ChaCha (ChaCha8, ChaCha12, ChaCha20) and XSalsa20, are a family of modern, fast, symmetric stream ciphers, designed by the distinguished cryptographer Daniel Bernstein. The Salsa20 cipher was one of the finalists in the eSTREAM contest for designing of new symmetric stream ciphers (2004-2008) and was widely adopted afterwards, together with the related BLAKE hash function. Salsa20 and its variants are royalty-free, not patented.

The Salsa20 cipher takes as input a 128-bit or 256-bit symmetric secret key + randomly generated 64-bit nonce (initial vector) and a stream of data of unlimited length and produces as output an encrypted stream of data with the same length as the input stream. The Salsa20 cipher is typically used as authenticated encryption construction: ChaCha20-Poly1305.

Other Popular Symmetric Ciphers

Other modern secure symmetric ciphers, used more rarely than EAS and ChaCha20, but still popular in the software developer and information security communities, are the following:

Most applications today should prefer some of the above encryption schemes for symmetric encryption, instead of constructing their own encryption scheme. The above schemes are highly-secure, proven, well tested and come out-of-the box from the crypto libraries.

Note that ChaCha20-Poly1305 is high-performance cipher (3 times faster than AES-128-GCM on mobile devices), so it is recommended to be used instead of AES-GCM.