CyberGlossary

密码学

Twofish

定义

由 Schneier 等人设计的 128 位分组、128/192/256 位密钥的对称密码,曾是 AES 候选决赛算法;安全但因 AES 成为标准而使用较少。

Twofish 是一种基于 Feistel 结构的 16 轮分组密码,分组长度 128 位,密钥长度 128、192 或 256 位,由 Bruce Schneier、Niels Ferguson、John Kelsey、Doug Whiting、David Wagner 与 Chris Hall 设计。它是 AES 竞赛(1997–2000)五大决赛算法之一,使用密钥相关的 S 盒、伪 Hadamard 变换以及复杂的密钥编排。Twofish 不受专利与版权约束,至今未被破解,但在 AES 决赛中因性能与简洁性而败给 Rijndael。今天,它在 TrueCrypt/VeraCrypt、GnuPG 等工具中作为备选密码出现而非默认选择。新系统通常选用 AES,或在追求算法多样化时,与 ChaCha20 等流密码并用。

示例

  • VeraCrypt 允许将 Twofish 与 AES、Serpent 组合实现级联加密。
  • GnuPG 将 Twofish 作为可选的对称加密算法之一。

相关术语