跳到主要内容
uencoder

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 ciphertext

    The 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

相关词条

相关工具

参考链接