热点、深度、趋势全掌握,尽在BTC区块圈
热点、深度、趋势全掌握,尽在BTC区块圈

SipHash 快速哈希算法 与 WASM

_哈希算法难吗_哈希算法sha1

JP Aumasson 和 Daniel J Bernstein (djb)

SipHash 和 WASM

最优秀的两位网络安全研究员分别是:JP Aumasson ;以及 Daniel J Bernstein (djb) 。JP 以共同创建 BLAKE2 和 BLAKE3 快速哈希方法,以及共同创建 GPU 破坏性哈希方法 Argon 2 而闻名。对于 djb,我们看到了长期的创新,包括创建 ChaCha20、Salsa20 和 Curve 25519。

大约在 2011/2012 年,JP Aumasson 和 Daniel J Bernstein (djb) 实际上合作识别了现有哈希方法的一些主要风险 :

_哈希算法sha1_哈希算法难吗

为此,JP 和 djb 概述了如何通过向服务器发送相同的哈希(多重冲突)来在哈希表上创建 DoS(拒绝服务)。这会导致最坏情况下的插入时间,并可能导致针对哈希方法的 DoS。给出的示例是发送 2MB 的 POST 数据,其中包含 200,000 个相同的 10 字节字符串,这会导致 40,000,000,000 次字符串比较 —— 对 2 GHz 机器的计算时间产生大约 10 秒的影响。他们发现 MurmurHash2/3 和 Google 的 CityHash 容易受到这些攻击。此后,Google 发布了 FarmHash 以解决此弱点。

但对于 JP 和 djb 来说,这不仅仅是概述弱点,而是他们如何使用 SipHash 解决问题。这解决了 DoS 攻击对哈希方法造成的一些问题 :

_哈希算法sha1_哈希算法难吗

它包含以下大胆声明:

“我们建议哈希表切换到 SipHash 作为哈希函数。”

总的来说,SipHash 是一种基于密钥的哈希函数,我们可以使用密钥来生成无法逆转的哈希值。因此,哈希是从密钥 ( K_in) 生成的,得到 SipHash( D_in, K_in)。如果没有密钥的知识,将极难确定输入数据值。

SipHash 被认为是周围最好的非密码学哈希之一,并且通常没有安全问题。它使用树哈希方法,我们首先分解输入数据,然后在树结构中将这些哈希在一起,最终提供根哈希值。SipHash 使用英特尔的 SIMD(单指令多数据)扩展,并使用 16 个 SIMD 寄存器来执行快速乘法。总的来说,与 SipHash 一样,它是一种 密钥哈希 方法,我们可以应用密钥来扩展给定输入的可能哈希范围。SipHash 使用 128 位密钥进行哈希。总的来说,对于 MAC,SipHash 比 HMAC 快得多。

Siphash

SipHash 生成一个哈希函数,该函数针对短消息的速度进行了优化。它通常用于网络应用程序,并且比加密哈希方法更简单。它产生一个 64 位输出,并且可以产生 Gigahashes/秒。它不如 xxHash 快,但比 MD5 和 SHA-1 快得多。一个示例运行是 :

======Siphash=========
Key:        0123456789ABCDE0
Message:    hello
Hash:       10442178880121868220

Siphash 的性能相当不错,但远不如 xxHash64 Cityhash64, Spooky 和 Farm64 快:

_哈希算法sha1_哈希算法难吗

使用本文
0
共享
上一篇

tokio-fusion 线程池 v0.1 发布

下一篇

区块链技术社区

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

阅读下一页