提供 BLAKE3 加密哈希函数,比 SHA-10 快 2 倍

算法的最终实现已经发布 布莱克3,它提供了专为文件完整性检查、消息身份验证和生成数字签名数据等应用而设计的加密哈希函数。 BLAKE3 不适用于散列密码(对于密码,您需要使用 yescrypt、bcrypt、scrypt 或 Argon2),因为它的目的是尽快计算散列,并保证不发生冲突、防止 寻找原型 并且对散列数据的大小不敏感。 BLAKE3的参考实现 发表 获得公共领域 (CC0) 和 Apache 2.0 的双重许可。

新哈希函数的主要区别在于哈希计算的性能非常高,同时保持 SHA-3 级别的可靠性。 默认情况下,BLAKE3 中生成的哈希大小为 32 字节(256 位),但它可以扩展到任意值。 在针对 16 KB 文件的哈希生成测试中,BLAKE3 的性能优于 SHA3-256 15 倍、SHA-256 12 倍、SHA-512 8 倍、SHA-1 6 倍、BLAKE2b 4 倍。 当处理大量数据时,仍然存在很大的差距,例如,BLAKE3 被证明是 更快 计算 256GB 随机数据的哈希值时,SHA-8 乘以 1 倍。

提供 BLAKE3 加密哈希函数,比 SHA-10 快 2 倍

该算法由著名密码学专家(杰克·奥康纳, 让-菲利普·奥马松, 塞缪尔·内维斯, Zooko Wilcox-O'Hearn)并继续开发算法 布莱克2 并使用一种机制对区块链树进行编码 。 与 BLAKE2(BLAKE2b、BLAKE2s)不同,BLAKE3 为所有平台提供单一算法,不受位深度和哈希大小的限制。

通过将轮数从 10 减少到 7 并以 1 KB 的块单独散列块,实现了性能的提高。 根据创作者的说法,他们找到了一个令人信服的 证据,你可以用 7 轮而不是 10 轮来完成,同时保持相同水平的可靠性(为了清楚起见,你可以举一个在搅拌机中混合水果的例子 - 7 秒后,水果已经完全混合,另外 3 秒将不影响混合物的稠度)。 然而,一些研究人员表示怀疑,认为即使目前 7 轮足以抵御所有已知的哈希攻击,但如果将来发现新的攻击,额外的 3 轮可能会有用。

至于划分块,在 BLAKE3 中,流被划分为 1 KB 的块,并且每个块都独立进行哈希处理。 基于基础上碎片的哈希值 二叉默克尔树 形成一个大散列。 这种划分使我们能够解决计算哈希时并行数据处理的问题——例如,可以使用4线程SIMD指令同时计算4个块的哈希。 传统的 SHA-* 哈希函数按顺序处理数据。

BLAKE3的特点:

  • 高性能;
  • 安全性,包括抵抗力 消息延长攻击,SHA-2 对其敏感;
  • 确保任意数量的线程和SIMD通道上的计算并行化;
  • 增量更新和验证流处理的可能性;
  • 用于 PRF、MAC、KDF、XOF 模式并作为常规哈希;
  • 适用于所有架构的单一算法,在 x86-64 系统和 32 位 ARM 处理器上都快速运行。

来源: opennet.ru

添加评论