1

我正在研究不同的哈希函数并遇到了SuperFastHash。该散列函数使用了一种称为“雪崩”的技术,其定义如下:

/* Force "avalanching" of final 127 bits */
hash ^= hash << 3;
hash += hash >> 5;
hash ^= hash << 4;
hash += hash >> 17;
hash ^= hash << 25;
hash += hash >> 6;

雪崩的目的是什么?为什么要使用这些特定的位移步骤(3、5、4..)?

4

1 回答 1

1

雪崩只是一个术语,用于定义对最终结果的输入的微小变化的“扩散”,对于不可逆性非常关键的加密散列,具有相似的输入提供真正不同的结果是避免近似攻击的理想特征单个哈希。在http://en.wikipedia.org/wiki/Avalanche_effect查看更多信息

我看不出它为什么使用这些步骤,但它使用 AND 和 XOR 以及自己的移位结果来增加扩散,可能其他值会执行类似的操作,但这需要更深入的分析

于 2013-04-02T10:56:05.017 回答