Serpent is a symmetric key block cipher that was a finalist in the Advanced Encryption Standard (AES) contest, in which it ranked second to Rijndael.
[2] Serpent was designed by Ross Anderson, Eli Biham, and Lars Knudsen.
[citation needed] The Serpent cipher algorithm is in the public domain and has not been patented.
As a result, anyone is free to incorporate Serpent in their software (or in hardware implementations) without paying license fees.
These were transformed by swapping entries, resulting arrays with desired properties were stored as the Serpent s-boxes.
Serpent is a substitution–permutation network which has thirty-two rounds, plus an initial and a final permutation to simplify an optimized implementation.
The round function in Serpent consists of key-mixing XOR, thirty-two parallel applications of the same 4×4 S-box, and a linear transformation, except in the last round, wherein another key-mixing XOR replaces the linear transformation.
The original Serpent, Serpent-0, was presented at the 5th workshop on Fast Software Encryption, but a somewhat tweaked version, Serpent-1, was submitted to the AES competition.
[11] A 2009 paper has noticed that the nonlinear order of Serpent S-boxes were not 3 as was claimed by the designers.
[8] A 2011 attack by Hongjun Wu, Huaxiong Wang and Phuong Ha Nguyen, also using linear cryptanalysis, breaks 11 rounds of Serpent-128 with 2116 known plaintexts, 2107.5 time and 2104 memory.