Serpent
Serpent 是 Ross Anderson 等为 AES 竞赛设计的对称分组密码,使用 128 位分组与 128/192/256 位密钥,以高安全余量著称。
用途
提供比 Rijndael 更保守的安全余量(32 轮 vs 10 轮),牺牲速度换取安全分析信心。
机制
基于 SPN(替换-置换网络),32 轮。每轮包含 8 个 4×4 S 盒并行替换、线性变换与轮密钥异或。S 盒通过 bitslice 实现避免时序攻击。密钥扩展产生 33 个 128 位子密钥。
用例
- AES 竞赛研究
- 高安全余量需求
- 密码学教学
- 保守设计分析
示例
- 输入
key=256bit, data=16bytes输出16-byte ciphertextAES finalist
常见错误
- Misusing an unoptimized software implementation yields poor performance
- Use bitslice-optimized implementations