是否有可能重建密码哈希的密钥

rec*_*ell 4 security encryption

我们想在我们的数据库中以加密方式(SHA-256)散列一个秘密值.由于我们希望将此作为查询数据库中单个记录的方法,因此我们不能为每个加密值使用不同的随机盐.

我的问题是:无限制地访问我们的数据库,并且鉴于攻击者至少知道一个秘密值和散列值对,攻击者是否可以对加密密钥进行反向工程?IE,那么攻击者能够反转所有哈希并确定所有秘密值吗?

如果是这样的话,似乎这会破坏加密哈希的整个目的,所以也许我错过了一些东西.

eri*_*son 6

没有发布针对SHA-256的"第一次预映像"攻击.如果没有这样的攻击来打开快捷方式,攻击者就无法从其SHA-256哈希中恢复秘密值.

然而,提到"秘密密钥"可能表明对哈希的一些混淆.散列算法不使用密钥.因此,如果攻击者能够攻击一个"秘密 - 值 - 哈希值"对,他就不会学习能够轻松反转其余哈希值的"密钥".

当哈希被成功攻击时,通常是因为原始消息来自一个小空间.例如,大多数密码是从相对较短的真实单词列表中选择的,可能具有一些简单的排列.因此,攻击者不是系统地测试每个可能的密码,而是从几十亿个最常用密码的有序列表开始.为避免这种情况,从大空间中随机选择"秘密值"非常重要.

存在消息认证算法,其将密钥与一些数据一起散列.这些算法用于保护消息的完整性以防止篡改.但它们无助于阻止前映像攻击.


jkp*_*jkp 5

简而言之,是的