Security 如果使用哈希,为什么要使用经过身份验证的加密?
与CRC或SHA等哈希函数等更简单的方法相比,使用GCM或EAX等经过身份验证的加密方案有什么好处 据我所知,这些方法基本上是向消息添加消息身份验证代码(),以便对其进行验证。但是,如果计算CRC或哈希值并将其附加到明文()中,则同样可能。这样就不可能篡改消息,因为散列可能不再匹配Security 如果使用哈希,为什么要使用经过身份验证的加密?,security,authentication,encryption,hash,aes-gcm,Security,Authentication,Encryption,Hash,Aes Gcm,与CRC或SHA等哈希函数等更简单的方法相比,使用GCM或EAX等经过身份验证的加密方案有什么好处 据我所知,这些方法基本上是向消息添加消息身份验证代码(),以便对其进行验证。但是,如果计算CRC或哈希值并将其附加到明文()中,则同样可能。这样就不可能篡改消息,因为散列可能不再匹配 链接的维基百科文章说,MIC没有考虑密钥等,但我不明白为什么这是一个问题。从概念上讲,认证加密方案(GCM、CCM、EAX等)和在加密消息上提供HMAC之间没有区别,AE算法只是约束和标准化字节模式(与encrypt
链接的维基百科文章说,MIC没有考虑密钥等,但我不明白为什么这是一个问题。从概念上讲,认证加密方案(GCM、CCM、EAX等)和在加密消息上提供HMAC之间没有区别,AE算法只是约束和标准化字节模式(与encrypt和HMAC的串行操作相比,需要更少的空间/时间) 如果您在加密之前在明文上计算未加密摘要,您确实有一个防篡改算法。但是在明文上计算摘要比在密文上计算有两个缺点:
- 仅加密:受到篡改。假设每条消息使用新的IV(而ECB未使用),则消息重复时不会显示
- 仅摘要:可能被篡改。消息为纯文本
- 仅限MAC:不受篡改。消息为纯文本
- 摘要然后加密(DtE-摘要本身是加密的):密文损坏攻击是可能的。篡改明文是可能的,如果它是已知的。消息重用是不会透露的
- 摘要和加密(D&E/E&D-摘要明文,以明文形式发送摘要):密文损坏攻击是可能的。如果已知,篡改明文是可能的。通过摘要显示消息重用,但不改变
- 加密然后摘要(EtD):这可以防止传输错误,但由于任何攻击者都可以重新计算摘要,因此这与仅加密相同
- MAC then Encrypt(MtE):与DtE具有相同的强度,但即使攻击者知道原始明文及其篡改内容,也无法更改MAC(除非明文被更改为已知的消息+MAC)
- MAC和Encrypt(M&E/E&M):与D&E一样,这揭示了消息的重用。与MtE一样,它仍然容易受到密文损坏和少量篡改的影响
- 加密然后MAC(EtM):如果MAC未能验证,则会发现任何更改密文的尝试,这可以在处理密文之前完成。不会显示消息重用,因为MAC是通过密文进行的
在一般情况下,EtM是最安全的方法。AE算法解决的问题之一是,它将如何将MAC和密码结合起来的问题从开发人员手中解决,并将其交给密码学家。从概念上讲,经过身份验证的加密方案(GCM、CCM、EAX等)之间没有区别AE算法在加密消息上提供HMAC,简单地约束和标准化字节模式(同时比encrypt和HMAC的串行操作需要更少的空间/时间) 如果您在加密之前在明文上计算未加密摘要,您确实有一个防篡改算法。但是在明文上计算摘要比在密文上计算有两个缺点:
- 仅加密:受到篡改。假设每条消息使用新的IV(而ECB未使用),则消息重复时不会显示
- 仅摘要:可能被篡改。消息为纯文本
- 仅限MAC:不受篡改。消息为纯文本
- 摘要然后加密(DtE-摘要本身是加密的):密文损坏攻击是可能的。篡改明文是可能的,如果它是已知的。消息重用是不会透露的
- 摘要和加密(D&E/E&D-摘要明文,以明文形式发送摘要):密文损坏攻击是可能的。如果已知,篡改明文是可能的。通过摘要显示消息重用,但不改变
- 加密然后摘要(EtD):这可以防止传输错误,但由于任何攻击者都可以重新计算摘要,因此这与仅加密相同
- MAC then Encrypt(MtE):与DtE具有相同的强度,但即使攻击者知道原始明文及其篡改内容,也无法更改MAC(除非明文被更改为已知的消息+MAC)
- MAC和加密(M&E/E&M):与D&E一样,这揭示了消息的重用