【问题标题】:Secure usage of SHA512SHA512 的安全使用
【发布时间】:2012-03-08 05:39:35
【问题描述】:

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

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

提前致谢!

【问题讨论】:

标签: security cryptography sha sha512


【解决方案1】:

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 的任何特征。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 稍微更广泛:散列算法应该不受长度扩展攻击的攻击,这似乎是您正在寻找的功能......
    猜你喜欢
    • 2011-09-09
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 2011-12-04
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多