认证加密
认证加密(英语:Authenticated encryption,AE)和带有关联数据的认证加密(authenticated encryption with associated data,AEAD,AE的变种)是一种能够同时保证数据的保密性、 完整性和真实性的一种加密模式。这些属性都是在一个易于使用的编程接口下提供的。
人们观察发现安全地将保密模式与认证模式组合可能是容易出错和困难的,于是认证加密应运而生。[1][2] 这一点已由许多实际攻击证实,这些攻击通过对身份验证(包括SSL与TLS)的不正确实现或缺失,引入到了生产协议和应用程序中。[3]
在2000年左右,围绕这个概念进行了一些努力。特别是,2000年Charanjit Jutla发表IACBC和IAPM模式,引发了人们对这些模式的强烈兴趣。[4] ISO/IEC 19772:2009已经对六种不同的认证加密模式(即OCB 2.0,Key Wrap, CCM, EAX,Encrypt-then-MAC(EtM)和GCM)进行了标准化。[5] 在NIST的征集下开发了更多的模式。[6] 海绵函数可以在双工模式下使用,提供经过认证的加密。[7]
认证加密的方法
Encrypt-then-MAC (EtM)
首先对明文进行加密,然后根据得到的密文生成消息认证码(MAC)。密文和它的MAC一起发送。例如IPsec。EtM是ISO/IEC 19772:2009规定的六种认证加密方法中的一种。[5]这是唯一可以达到认证加密安全性最高定义的方法,但这只有在使用的MAC“强不可伪造”时才能实现。[8]2014年11月,EtM的传输层安全性协议(TLS)和资料包传输层安全(DTLS)扩展已经作为RFC 7366发布。各种EtM密码包也存在于SSHv2中(例如hmac-sha1-etm@openssh.com)。
Encrypt-and-MAC (E&M)
基于明文生成MAC,并且明文在没有MAC的情况下被加密。明文的MAC和密文一起发送。用于例如SSH。E&M方法本身并未被证明是“强不可伪造”的。[8]
MAC-then-Encrypt (MtE)
基于明文生成MAC,然后将明文和MAC一起加密以基于两者生成密文。密文(包含加密的MAC)被发送。MtE方法本身并未被证明是“强不可伪造”的。用于例如SSL/TLS。[8]尽管有理论上的安全性,但对SSL/TLS进行更深入的分析将保护模型化为MAC-then-pad-then-encrypt,即明文先填充到加密函数的块大小。填充错误通常会导致接收方发现可检测到的错误,从而导致密文填塞攻击(Padding oracle attack),如Lucky Thirteen attack。
参见
- 分组密码工作模式
- CCM mode
- CWC mode
- OCB mode
- EAX mode
- GCM
- SGCM
- Signcryption
参考文献
- ^ "people had been doing rather poorly when they tried to glue together a traditional (privacy-only) encryption scheme and a message authentication code (MAC)", in: M. Bellare; P. Rogaway; D. Wagner. A Conventional Authenticated-Encryption Mode (PDF). NIST. [March 12, 2013]. (原始内容存档 (PDF)于2011-10-19).
- ^ "it is very easy to accidentally combine secure encryption schemes with secure MACs and still get insecure authenticated encryption schemes", in: T. Kohno; J. Viega & D. Whiting. The CWC Authenticated Encryption (Associated Data) Mode (PDF). NIST. [March 12, 2013]. (原始内容存档 (PDF)于2011-10-19).
- ^ Failures of secret-key cryptography (PDF). Daniel J. Bernstein. [March 12, 2013]. (原始内容 (PDF)存档于2013-04-18).
- ^ Jutl, Charanjit S. Encryption Modes with Almost Free Message Integrity. Cryptology ePrint Archive: Report 2000/039. IACR. 2000-08-01 [2013-03-16]. (原始内容存档于2012-08-19).
- ^ 5.0 5.1 Information technology -- Security techniques -- Authenticated encryption. 19772:2009. ISO/IEC. [March 12, 2013]. (原始内容存档于2016-04-16).
- ^ Encryption modes development. NIST. [April 17, 2013]. (原始内容存档于2017-09-04).
- ^ The Keccak Team. Duplexing The Sponge (PDF). [2018-01-29]. (原始内容 (PDF)存档于2017-08-22).
- ^ 8.0 8.1 8.2 Authenticated Encryption: Relations among notions and analysis of the generic composition paradigm. M. Bellare and C. Namprempre. [April 13, 2013]. (原始内容存档于2018-01-23).
- 一般性
- Bellare, M.; Namprempre, C., T. Okamoto , 编, Authenticated Encryption: Relations among notions and analysis of the generic composition paradigm, Extended abstract in Advances in Cryptology: Asiacrypt 2000 Proceedings, Lecture Notes in Computer Science (Springer-Verlag), 2000, 1976: 531 [2018-01-29], ISBN 978-3-540-41404-9, doi:10.1007/3-540-44448-3_41, (原始内容存档于2018-01-23)
外部链接
- NIST: Modes Development(页面存档备份,存于互联网档案馆)
- How to choose an Authenticated Encryption mode(页面存档备份,存于互联网档案馆)