Skip to content

回复:Hash() 函数不安全 ​

原始发布页

打开来源页面
查看 1 个交叉存档

SHA256 并不像从 128 位跨越到 160 位那样。

打个比方,它更像是从 32 位地址空间跨越到 64 位地址空间。使用 16 位计算机时,我们很快就耗尽了地址空间;使用 32 位计算机时,我们在 4GB 处耗尽了地址空间,但这并不意味着使用 64 位后很快还会再次耗尽。

在我们的有生之年,摩尔定律带来的计算能力提升不会攻破 SHA256。如果它真会被攻破,那也会是某种突破性的破解方法所致。若一种攻击能把 SHA256 彻底击溃到计算上可行的范围,那么它很可能也会重创 SHA512。

如果我们看到 SHA256 的弱点逐渐显现,就可以在某个区块高度之后过渡到新的哈希函数。每个人都必须在达到该区块高度前升级软件。新软件会为所有旧区块保留一种新的哈希,以确保它们不会被具有相同旧哈希的另一个区块替换。

英文原文 ​

展开英文原文

SHA256 is not like the step from 128 bit to 160 bit.

To use an analogy, it's more like the step from 32-bit to 64-bit address space. We quickly ran out of address space with 16-bit computers, we ran out of address space with 32-bit computers at 4GB, that doesn't mean we're going to run out again with 64-bit anytime soon.

SHA256 is not going to be broken by Moore's law computational improvements in our lifetimes. If it's going to get broken, it'll be by some breakthrough cracking method. An attack that could so thoroughly vanquish SHA256 to bring it within computationally tractable range has a good chance of clobbering SHA512 too.

If we see a weakness in SHA256 coming gradually, we can transition to a new hash function after a certain block number. Everyone would have to upgrade their software by that block number. The new software would keep a new hash of all the old blocks to make sure they're not replaced with another block with the same old hash.

为历史保存,为中文读者整理。每篇档案均附来源与英文原文。