Ciphers
This chapter describes the symmetric ciphers implemented by GNU Crypto,
and how to create and use them. The package name for all GNU Crypto
ciphers is gnu.crypto.cipher. The ciphers implemented by GNU Crypto
are:
- The Advanced Encryption Standard, or the AES. The AES is a
symmetric block cipher with a 128 bit block size and a key size of 128,
192, or 256 bits. The AES was adopted as US FIPS PUB 197 [NIST01] by the
National Institute of Standards and Technology (NIST) in November 2001
after a five-year process of standarization and public comment. The AES
was written by Joan Daemen and Vincent Rijmen for the AES process, and
is derived from the Rijndael cipher.
- Anubis. The Anubis cipher is a symmetric block cipher with a
128 bit block size and a key size from 128 to 320 bits, with increments
of 32 bits. Anubis was designed by Paulo Barreto and Vincent Rijmen, and
has been submitted as a candidate cipher to the New European Schemes for
Signatures, Integrity, and Encryption (NESSIE) process.
- Blowfish. The Blowfish symmetric block cipher was designed by
Bruce Schneier. It has a 64 bit block size and a key size of up to 448
bits. Blowfish encryption and decryption are very fast in software,
especially on 32 bit microprocessor architectures.
- DES. DES is the Data encryption standard, a 64-bit cipher with a
56-bit key. DES was developed by IBM in the 1970's for a
standardization process begun by the National Bureau of Standards (now
NIST). DES should not be used in new applications in favor of the new
standard, AES, except for compatibility.
- Identity cipher. The identity, or null cipher, is not a true
cipher as it does not transform the data input, but rather copies it
directly to the output.
- Khazad. The Khazad cipher is a symmetric block cipher with a 64
bit block size and a 128 bit key size. Khazad was designed by Paulo
Barreto and Vincent Rijmen, and has been submitted as a candidate cipher
to the New European Schemes for Signatures, Integrity, and Encryption
(NESSIE) process.
- Rijndael. Rijndael is a symmetric block cipher written by Joan
Daemen and Vincent Rijmen as a candidate to the Advanced Encryption
Standard process, and was adopted as the AES. Rijndael additionally has
a 192 and 256 bit block size.
- Serpent. The Serpent cipher was designed by Ross Anderson, Eli
Biham, and Lars Knudsen as a proposed cipher for the Advanced Encryption
Standard. Serpent has a 128 bit block size, and a key size of 128, 192,
or 256 bits.
- Square. The Square cipher was designed by Joan Daemen and
Vincent Rijmen and was cryptanalyzed by Lars Knudsen. It has a 128 bit
block size and a 128 bit key size.
- Triple-DES, or DESede, is a combined cipher based on the Data
Encryption Standard. It is the iteration of three seperate instances of
DES with three independent keys, and therefore has a 64 bit block
size and a key size of 168 bits.
- Twofish. The Twofish cipher was designed by Bruce Schneier,
John Kelsey, Doug Whiting, David Wagner, Chris Hall, and Niels Ferguson
as a proposed cipher for the Advanced Encryption Standard. Twofish has a
128 bit block size, and a key size of 128, 192, or 256 bits.