在SHA512中。如果用户使用不同的消息知道多个消化的输出。是否可以破解以便用户可以获得秘密?
示例:用户是否可以通过了解以下数据来查找未知秘密?
编辑:更新以使其更有意义。
unknown = ??;
SHA512(unknown+"A") = "73add1b948efa9e0dd0a944329a28c58cda4f98f80c2ad6419d1cf8860d988916b4451d3ad434e95bb523897dd16a2c006a30bfc3b6645c5b7160d8efcd96111";
SHA512(unknown+"B") = "5170c2f580d47328f1a06f944b4308e2a7665f4c6b16a6096dd18fe7480b88cd313a945c467458fd7f8d041d0f449959ef8ba1b756c3d624c96b21407f7b935a";
SHA512(unknown+"C") = "a1347b0ca2fe14b27b94592a593890aae3f684d7b5664eca85b166113cc7cf89ab32df8be6d623a934a8af1e8cd4c74bb1c9721d0d686b94b0795e44262419a7";
.. etc ... ( can continue indefinitely )
可以发现未知变量吗?
答案 0 :(得分:2)
即使给出一组已知的明文和哈希值,安全散列函数也不允许比强力恢复有效的未知输入更快。这包括SHA512。
另请注意,HMAC-SHA512未按照您的建议实施。 SHA512(密钥+数据)系统容易受到长度扩展攻击:给定SHA512的散列(密钥+“Hi”),攻击者可以计算具有该前缀的任何字符串的散列,例如SHA512(密钥+“嗨,我不知道钥匙,我是一个黑客。 HMAC的构建避免了这个问题。