假设在发送到服务器之前,随机生成256位密钥,并使用AES-GCM-256加密数据。
其目标是使服务器能够确定其接收的数据的唯一性,而不实际显示明文数据。
除了纯文本数据所以SHA-256(key +明文)之外,使用SHA-256是否安全?所谓安全,我的意思是,这样做会大大降低密钥的安全性吗?
如果不安全,那么需要有多大的随机字节字符串才能使SHA足够难强制执行?
发布于 2019-08-23 23:10:33
我使用HKDF将密钥分成两个256位键,其中一个用于GCM模式,另一个用于明文上的哈希。然而,我将使用HMAC而不是SHA-256作为它的接受和密钥作为一个单独的实体在应用程序。
HKDF密钥派生函数的优点是用于认证加密和哈希函数的密钥之间有更多的“距离”。也就是说,仅仅重用密钥不太可能带来直接的漏洞。使用KDF从单个共享密钥派生其他密钥也更“整洁”。
使用HMAC的优点是可以防止长度扩展攻击。此外,HMAC显式地接受密钥而不仅仅是数据,因此密钥可能会受到更好的保护,以防止攻击,当然这取决于所使用的系统。
否则,可以使用共享秘密和数据上的散列来确定唯一性(当然,在加密散列的情况下具有很高的确定性),前提是在需要此属性的时候密钥不会更改。所以是的,我不认为这是怎么回事(但请不要认为这是科学的证据)。
https://crypto.stackexchange.com/questions/72766
复制相似问题