Blowfish
Blowfish 是 Bruce Schneier 于 1993 年设计的对称分组密码,使用变长密钥(32-448 位)与 64 位分组,速度快且无专利限制。
用途
提供 DES 的安全替代方案,支持长密钥且无使用许可限制。
机制
基于 Feistel 网络,16 轮。密钥扩展生成 P 数组(18 个 32 位)与 4 个 S 盒(各 256 项),用密钥与固定常数(π 的十六进制)初始化。加密时左右半经 F 函数异或迭代。
用例
- OpenPGP 可选算法
- bcrypt 密码哈希的底层
- 嵌入式与软件加密
- 教学示例
示例
- 输入
key=128bit, data=8bytes输出8-byte ciphertextThe 64-bit block is now considered small
常见错误
- The 64-bit block invites Sweet32 attacks on large data volumes
- Use AES or Twofish with 128-bit blocks
相关词条
AES
AES(高级加密标准)是 NIST 于 2001 年确立的对称分组密码,支持 128/192/256 位密钥,是现代加密的事实标准。 词汇表
Twofish
Twofish 是 Bruce Schneier 等为 AES 竞赛设计的对称分组密码,使用 128 位分组与 128/192/256 位密钥,是 AES 决赛候选之一。 词汇表
DES
DES(数据加密标准)是 1977 年确立的对称分组密码,使用 56 位密钥与 64 位分组,因密钥过短已被淘汰。 词汇表
Block Cipher
分组密码是对固定长度分组(如 128 位)执行加密/解密的对称密码,需配合工作模式处理任意长度数据。 词汇表