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.