EAX模式
EAX 模式(encrypt-then-authenticate-then-translate[1] )是一种分组密码工作模式。它是一种带有关联数据的认证加密 ( AEAD ) 算法,旨在通过两遍方案同时提供消息的认证和隐私(认证加密),一次用于实现隐私,另一遍用于每个块的真实性。
EAX 模式于 2003 年 10 月 3 日提交给 NIST,以取代CCM作为标准 AEAD 工作模式,因为 CCM 模式缺乏 EAX 的一些重要属性且更加复杂。
加密与认证
[编辑]EAX 是一种灵活的,使用随机数的两遍 AEAD 方案,对要使用的块密码原语和分组大小没有限制,并且支持任意长度的消息。身份验证标签长度可以任意调整,最多可达所使用的密码的块大小。
分组密码原语在CTR 模式下用于加密,并作为OMAC通过 EAX 组合方法对每个块进行身份验证,这可以视作是被称为 EAX2 的更通用算法的特殊情况,这也在EAX 操作模式[2]中进行了描述。 [3]
上述论文中的参考实现使用 AES-CTR进行加密,并结合 AES OMAC 进行身份验证。
性能
[编辑]作为一种两遍方案,EAX 模式比基于相同原语的精心设计的单遍方案略慢一些。
EAX 模式有几个理想的特性,特别是:
- 可证明安全性(取决于底层加密算法的安全性);
- 最小化消息扩展,开销仅限于标签长度;
- 使用CTR模式意味着密码只需为了加密而实现,简化了某些密码的实现(这对于硬件实现来说是极其理想的特性);
- 该算法是“在线”的,这意味着可以使用常量内存处理数据流,无需预先知道总数据长度;
- 该算法可以预处理静态关联数据(Associated Data, AD),这对于通信会话参数的加解密很有用(其中会话参数可以代表关联数据)。
值得注意的是,CCM 模式缺少最后 2 个属性(CCM 能够处理关联数据,但无法进行预处理)。
专利状况
[编辑]EAX 模式的作者Mihir Bellare 、 Phillip Rogaway和David Wagner将该作品直接公开,并表示他们不知道涉及该技术的任何专利。因此,EAX 操作模式被认为是免费且不受任何使用限制的。
用途
[编辑]EAX 模式的修改版(所谓的EAX'或 EAXprime)用于ANSI C12.22标准中,用于通过网络传输基于仪表的数据。 2012 年,Kazuhiko Minematsu、 Stefan Lucks 、Hiraku Morita 和 Tetsu Iwata 发表了一篇论文,证明了消息长于密钥的模式的安全性,但演示了使用该模式对短消息进行的简单攻击。作者表示,他们不清楚ANSI C12.22 协议是否易受攻击。 [4] [5]
参见
[编辑]- 带有关联数据的验证加密(AEAD)、认证加密(AE)
- CCM模式
- 计数器模式(CTR)
- One-key MAC(One-key MAC,OMAC)
参考
[编辑]- ^ Bellare, M.; Rogaway, P.; Wagner, D. EAX: A Conventional Authenticated-Encryption Mode. IACR. 2003-09-09 [2017-08-15]. (原始内容存档于2024-04-16).
- ^ Bellare, Mihir; Rogaway, Phillip; Wagner, David. The EAX Mode of Operation (A Two-Pass Authenticated Encryption Scheme Optimized for Simplicity and Efficiency). Fast Software Encryption (FSE) 2004. April 2003 [2017-08-15]. (原始内容存档于2023-04-21).
- ^ Bellare, Mihir; Rogaway, Phillip; Wagner, David. The EAX Mode of Operation (A Two-Pass Authenticated Encryption Scheme Optimized for Simplicity and Efficiency). Fast Software Encryption (FSE) 2004. April 2003 [2017-08-15]. (原始内容存档于2023-04-21).
- ^ Minematsu, Kazuhiko; Lucks, Stefan; Morita, Hiraku; Iwata, Tetsu. Attacks and Security Proofs of EAX-Prime. IACR. 2013-05-14 [2017-08-15]. (原始内容存档于2023-12-06).
- ^ NEC security evaluation report on EAXprime (Letter). Letter to. 2012-01-14. (原始内容使用
|archiveurl=
需要含有|url=
(帮助)存档于2013-03-02). Via Public Comments, Block Cipher Modes, csrc.nist.gov, archived 2012-05-03.
外部链接
[编辑]软件实施
[编辑]- C++:Brian Gladman 博士的加密库实现 EAX 操作模式 (页面存档备份,存于互联网档案馆)
- Pascal / Delphi:Wolfgang Ehrhardt 的加密库实现 EAX 操作模式 (页面存档备份,存于互联网档案馆)
- Java:BouncyCastle 加密库实现 EAX 操作模式 (页面存档备份,存于互联网档案馆)
- C: libtomcrypt 实现 EAX 操作模式 (页面存档备份,存于互联网档案馆)