Serpent (cipher)
From Wikipedia, the free encyclopedia
Serpent's linear mixing stage
|
|
Designer(s): | Ross Anderson, Eli Biham, Lars Knudsen |
---|---|
First published: | 1998-08-21 |
Derived from: | Square |
Certification: | AES finalist |
Key size(s): | 128, 192 or 256 bits |
Block size(s): | 128 bits |
Structure: | Substitution-permutation network |
Rounds: | 32 |
Serpent is a symmetric key block cipher which was a finalist in the Advanced Encryption Standard contest, where it came second to Rijndael. Serpent was designed by Ross Anderson, Eli Biham, and Lars Knudsen.
Like other AES submissions, Serpent has a block size of 128 bits and supports a key size of 128, 192 or 256 bits. The cipher is a 32-round substitution-permutation network operating on a block of four 32-bit words. Each round applies one of eight 4-bit to 4-bit S-boxes 32 times in parallel. Serpent was designed so that all operations can be executed in parallel, using 32 1-bit slices. This maximizes parallelism, but also allows use of the extensive cryptanalysis work performed on DES.
Serpent was widely viewed as taking a more conservative approach to security than the other AES finalists, opting for a larger security margin: the designers deemed 16 rounds to be sufficient against known types of attack, but specified 32 rounds as insurance against future discoveries in cryptanalysis.
[edit] Security
If it is effective, the XSL attack would weaken Serpent (but not as much as it would weaken AES). However, many cryptanalysts believe that once implementation considerations are taken into account the XSL attack would be more expensive than a brute force attack.