1

如果用户通过不同的消息知道多个消化的输出。是否能够让用户获得秘密?

示例:用户可以通过知道以下数据找到未知的秘密吗?

编辑:更新以更有意义。

unknown = ??;
(unknown+"A") = "";
SHA512(unknown+"B") = "";
SHA512(unknown+"C") = "";

..等...(可以无限期地继续)

未知变量能被发现吗?

4

1 回答 1

2

即使给定一组已知的明文和散列,也没有安全散列函数可以比蛮力更快地恢复有效的未知输入。这包括 SHA512。

另外,请注意 HMAC-SHA512 并未按照您的建议实施。SHA512(key+data) 的系统容易受到长度扩展攻击:给定 SHA512(key+"Hi") 的哈希,攻击者可以计算具有该前缀的任何字符串的哈希,例如 SHA512(key+"Hi,我是一名黑客”)不知道密钥。HMAC 结构避免了这个问题。

于 2013-09-26T10:56:05.680 回答