【密码学百科】认证加密(AEAD):GCM、ChaCha20-Poly1305 与 OCB

💡 原文中文,约21700字,阅读约需52分钟。
📝

内容提要

本文讨论了认证加密(AEAD)的重要性,强调同时保证机密性和完整性。介绍了三种主要的AEAD方案:AES-GCM、ChaCha20-Poly1305和OCB,分析了它们的内部结构及nonce管理的挑战。AEAD通过将加密和认证结合为一个原子操作,简化了密码学工程,避免了传统组合方式的安全隐患。最后,探讨了选择AEAD方案时需考虑的因素。

🎯

关键要点

  • 认证加密(AEAD)同时保证机密性和完整性,避免了传统组合方式的安全隐患。

  • AEAD 方案包括 AES-GCM、ChaCha20-Poly1305 和 OCB,分别具有不同的内部结构和 nonce 管理挑战。

  • 仅加密不提供完整性,攻击者可以篡改密文而不被发现。

  • Encrypt-then-MAC 是唯一一种在通用组合下总能提供认证加密安全性的方式,但工程实践中容易出错。

  • AEAD 通过将加密和认证封装为一个原子操作,简化了密码学工程,减少了出错的可能性。

  • Nonce 的唯一性对 AEAD 的安全性至关重要,重用 nonce 会导致机密性和认证性的丧失。

  • AES-GCM 是最广泛使用的 AEAD 方案,具有高性能和硬件加速支持,但需要严格管理 nonce。

  • ChaCha20-Poly1305 在没有 AES 硬件加速的平台上表现优越,天然抗时序攻击。

  • OCB 模式虽然效率高,但因专利问题未能广泛采用。

  • AES-GCM-SIV 提供了抗 nonce 误用的特性,适合 nonce 管理困难的场景。

  • Ascon 是 NIST 标准化的轻量级 AEAD 方案,适用于资源受限的设备。

  • 选择 AEAD 方案时需考虑多种因素,包括性能、安全性和适用场景。

延伸问答

什么是认证加密(AEAD)?

认证加密(AEAD)是一种同时提供机密性和完整性的加密方案,避免了传统加密和认证分离带来的安全隐患。

AES-GCM、ChaCha20-Poly1305和OCB有什么区别?

AES-GCM是最广泛使用的AEAD方案,依赖硬件加速;ChaCha20-Poly1305在无AES硬件加速的平台上表现优越;OCB虽然效率高,但因专利问题未能广泛采用。

Nonce在AEAD中有什么重要性?

Nonce的唯一性对AEAD的安全性至关重要,重用nonce会导致机密性和认证性的丧失。

AES-GCM-SIV有什么特点?

AES-GCM-SIV是一种抗nonce误用的AEAD方案,即使在nonce重用的情况下也能保持机密性,适合nonce管理困难的场景。

选择AEAD方案时需要考虑哪些因素?

选择AEAD方案时需考虑性能、安全性、适用场景以及nonce管理的难易程度。

Ascon是什么,它的应用场景有哪些?

Ascon是NIST标准化的轻量级AEAD方案,适用于资源受限的设备,如物联网设备和嵌入式系统。

➡️

继续阅读