【发布时间】:2017-06-26 03:57:12
【问题描述】:
维基百科告诉我分布式哈希表 (DHT) 通常使用 128 位或 160 位键空间。
128 位是巨大的。 1.7 x 10^28。
160 位更大。 7.3 x 10^47,大致是地球上/中的原子数。
(256 位可以让你知道存在的原子数量。)
如果 10^28 的键空间太小,您会在哈希表中存储什么?他们是不是因为可以做到这一点而只大了一步?
【问题讨论】:
-
看看生日悖论:en.wikipedia.org/wiki/Birthday_problem。发生碰撞的概率比人们想象的要高得多。
-
@Henry,根据那篇文章中的表格,您需要在具有 128 位键空间的哈希表中拥有 2.2 x 10^19 项,然后才有 50% 的冲突机会。即使您只准备容忍 10^6 中的 1 个机会,您仍然需要插入 2.6 x 10^16 项才能达到该阈值。这是一个巨大的数字。
-
SHA1 为您提供 160 位,这让您有理由使用 160 位密钥,而无需考虑技术原因
-
对于生日悖论,这并不重要;哈希表中期望重叠的存储桶可以使用树进行存储。 160 位密钥 DHT 是否使用开放寻址?
-
SHA1...好吧,那很有意义。跳到 SHA-256 也没有多大意义,因为如果你已经有了一个更小的工具,那就太傻了。