使用经过验证的加密方案(如GCM或EAX)与CRC等简单方法或SHA等哈希函数相比有什么好处?
据我所知,这些方法基本上都会在消息中添加消息验证码(MAC),以便对其进行验证。但是,如果计算CRC或散列值并将其附加到明文(MIC),则可能会出现同样的情况。这样就不可能篡改消息,因为散列可能不再匹配了。
链接的维基百科文章称,中等收入国家不会考虑密钥等,但我不明白为什么这是一个问题。
答案 0 :(得分:4)
在认证加密方案(GCM,CCM,EAX等)和提供HMAC而非加密消息之间,概念上没有区别,AE算法简单地约束和标准化字节模式(同时趋于需要更少空间/时间比加密和HMAC的串行操作。)
如果您在加密前通过纯文本计算未加密的摘要,则确实有防篡改算法。但是,通过明文计算摘要比通过密文计算摘要有两个缺点:
当然,消化之后的缺点是,在你的无键方法中,任何篡改密文的人都可以简单地在篡改后重新计算密文的SHA-2-256摘要。对此的解决方案是不进行无键的摘要,而是进行键控摘要,如HMAC。
选项包括:
EtM是一般情况下最安全的方法。 AE算法解决的一个问题是,它解决了如何将MAC和密码结合在开发人员手中并将其交给密码学家的问题。