根据这个答案的说法,“SHA-256 d”是在弗格森/施耐尔的一本书中提出的,如下所示:
SHA-256d(x) = SHA-256(SHA-256(x))显然,这种结构的动机是避免长度扩展攻击。
顺便提一句,SHA-256 d是构成比特币核心的散列函数。
根据对上面链接的答案的评论,SHA-256 d中已经知道了“一些小弱点”。他们是什么?
发布于 2013-04-02 21:34:56
唯一能立即想到的是,如果你知道某些字符串X的SHA-256 d,就可以计算字符串SHA256( X )的SHA-256 d,即使不知道其他任何关于X的信息。
在某种意义上,这类似于“长度扩展”攻击,因为它允许您,给定哈希(X),计算哈希( F (X)),对某些函数F。
对于哈希函数来说,这是否是一个关键问题取决于您使用哈希函数的目的。如果它取代了随机Oracle,这可能是一个理论问题;如果您在签名方案中使用它,它可能不是一个问题。
https://crypto.stackexchange.com/questions/7895
复制相似问题