我对SHA512的以下用法的安全性有疑问:
如果我有两个字符串, x 和 y 。 是否可以从SHA( x + y )派生SHA( x )和SHA( y )或反转? x + y 是字符串 x 与 y 连接。
提前致谢!
答案 0 :(得分:4)
SHA512是预图像,第二原像和前缀 - 原像前抗性。
因此:
鉴于SHA512(X)和SHA512(Y),计算SHA512(X + Y)也很困难,因为SHA512不是线性函数。
一般来说SHA512可以抵抗所有已知的攻击,除了X的强力X是来自一个小集合 - 所以例如如果SHA512(X)是密码的SHA512且密码很弱,有可能通过蛮力找到X,但这是因为您选择的X被破坏,而不是SHA512被破坏。
通常,如果难以猜测X,则SHA512(X)不会显示X的任何特征。
答案 1 :(得分:3)
简短的回答是“不”。这会使散列函数(如SHA512)对像HMAC这样的键控散列方案毫无用处。