由罗斯·安德森(Ross Anderson)、伊莱·比哈姆(Eli Biham)和拉斯·克努森(Lars Knudsen)设计,于1998年发布。它使用256位密钥、128位块,并以XTS模式运行(请参阅操作模式部分)。Serpent是高级加密标准(AES)的最终候选算法之一。尽管它似乎比获胜的Rijndael算法具有更高的安全裕度,但它并未被选为提议的AES算法[4]。更具体地说,Serpent似乎具有高安全裕度,而Rijndael似乎只有足够的安全裕度[4]。此外,Rijndael的数学结构也受到了一些批评,有人认为这可能会在未来导致攻击[4]。
在文献[5]中,Twofish团队给出了AES最终候选算法的安全系数表。安全系数的定义为:完整密码的轮数除以已被破解的最大轮数。因此,被破解的密码的安全系数最低,为1。在AES最终候选算法中,Serpent的安全系数最高,为3.56(适用于所有支持的密钥长度)。Rijndael - 256的安全系数为1.56。
尽管有这些情况,但由于Rijndael在安全性、性能、效率、可实现性和灵活性方面的综合表现,它被认为是AES的合适选择[4]。在最后一届AES候选算法会议上,Rijndael获得了86票,Serpent获得了59票,Twofish获得了31票,RC6获得了23票,MARS获得了13票[18, 19]。*
* 这些是赞成票。如果从赞成票中减去反对票,得到以下结果:Rijndael:76票,Serpent:52票,Twofish:10票,RC6: - 14票,MARS: - 70票[19]。