【发布时间】:2012-03-08 05:39:35
【问题描述】:
我对以下使用 SHA512 的安全性有疑问:
如果我有两个字符串,x 和 y。 是否可以从 SHA(x+y) 或反向推导出 SHA(x) 和 SHA(y)? x+y 是字符串 x 与 y 连接。
提前致谢!
【问题讨论】:
-
也许security.stackexchange.com 会是这个问题的更好论坛。
标签: security cryptography sha sha512
我对以下使用 SHA512 的安全性有疑问:
如果我有两个字符串,x 和 y。 是否可以从 SHA(x+y) 或反向推导出 SHA(x) 和 SHA(y)? x+y 是字符串 x 与 y 连接。
提前致谢!
【问题讨论】:
标签: security cryptography sha sha512
SHA512 具有原像、第二原像和前缀原像抗性。
因此:
鉴于 SHA512(X) 和 SHA512(Y),也很难计算 SHA512(X+Y),因为 SHA512 不是线性函数。
一般来说,SHA512 可以抵抗所有已知的攻击,除了 X 的蛮力是 X 来自一个小集合 - 例如,如果 SHA512(X) 是密码的 SHA512 并且密码很弱,可以通过蛮力找到 X,但这是因为您选择的 X 已损坏,而不是 SHA512 已损坏。
一般来说,如果 X 难以猜测,SHA512(X) 不会揭示 X 的任何特征。
【讨论】:
简短的回答是“不”。这将使散列函数(如 SHA512)对于像 HMAC 这样的键控散列方案无用。
【讨论】: