Whirlpool

Whirlpool
设计者
Vincent Rijmen, Paulo S.L.M. Barreto
首次发布
2000年
最终版本
Whirlpool-T (2003)
类别
密码学哈希函数
输出长度
512 bit
分组大小
512 bit
结构
Miyaguchi-Preneel (基于分组密码)
内部密码
W (类 AES, 8×8 S-box)
速度
~1.0 GB/s
标准
NESSIE, ISO/IEC 10118-3
安全状态
安全

Whirlpool是由 Vincent Rijmen(AES 共同设计者)和 Paulo S.L.M. Barreto 于 2000 年设计的 512 位密码学哈希函数。Whirlpool 基于一个专用的分组密码 W(结构类似 AES),使用 Miyaguchi-Preneel 压缩模式。Whirlpool 被 NESSIE 项目和 ISO/IEC 10118-3 标准收录。

设计特点
  • 内置分组密码 W 使用 8×8 位 S-box,结构与 AES 相似但不相同
  • 状态为 8×8 字节矩阵(64 字节 = 512 位),采用 SubBytes、ShiftColumns、MixRows 操作
  • 使用 Miyaguchi-Preneel 压缩函数:H_i = H_{i-1} ⊕ W(H_{i-1} ⊕ M_i) ⊕ M_i
  • 与 AES 不同,W 密码的 S-box 来源于递归的结构化构造(不是随机选取)
版本
版本年份变更
Whirlpool (原始)2000初始版本
Whirlpool-T2001更换了 S-box 生成多项式,改进扩散矩阵
Whirlpool (当前)2003进一步优化 S-box 和扩散层,是推荐版本
参考文献
  1. Rijmen, V., Barreto, P.S.L.M. (2000). "The Whirlpool Hashing Function". NESSIE submission.
  2. ISO/IEC 10118-3:2004. "Information technology — Security techniques — Hash-functions — Part 3: Dedicated hash-functions".