0

我对以下使用 SHA512 的安全性有疑问:

如果我有两个字符串,xy。是否可以从 SHA( x+y ) 或反向 推导出 SHA( x ) 和 SHA( y )?x+y是字符串xy连接。

提前致谢!

4

2 回答 2

4

SHA512 具有原像、第二原像和前缀原像抗性。

最后:

  • 在给定 SHA512(X) 的情况下找到任何 X 都很难。
  • 在给定 SHA512(X+Y) 和 Y 的情况下找到任何 X 都很难
  • 在给定 SHA512(Y+X) 和 Y 的情况下找到任何 X 都很难。

给定 SHA512(X) 和 SHA512(Y) 也很难计算 SHA512(X+Y),因为 SHA512 不是线性函数。

一般来说,SHA512 可以抵抗所有已知的攻击,除了 X 的蛮力是 X 来自一个小集合 - 例如,如果 SHA512(X) 是密码的 SHA512 并且密码很弱,它可能是可以通过蛮力找到 X,但这是由于您选择的 X 已损坏,而不是 SHA512 已损坏。

一般来说,如果 X 难以猜测,SHA512(X) 不会揭示 X 的任何特征。

于 2012-03-07T21:39:35.390 回答
3

最简洁的答案是不”。这将使散列函数(如 SHA512)对于像HMAC这样的键控散列方案无用。

于 2012-03-07T17:05:46.200 回答